基於Qtopia的嵌入式Linux俄文環境解決方案

2020-12-17 電子產品世界

Qtopia是Trollteeh面向嵌入式Linux的綜合應用平臺,它是基於Qt的嵌入式版本Qt/Embedded庫的基礎上,專門針對PDA,SmartPhone這類運行嵌入式Linux的移動計算設備和手持設備所開發的一套開放源碼的應用程式包和開發庫。Qtopia目前成功應用在包括無線電話、PDA、媒體播放器以及其他消費型電子產品,汽車,醫療與工業電子設備中。

本文引用地址:http://www.eepw.com.cn/article/152432.htm

本文主要介紹基於Qtopia的嵌入式Linux俄文環境解決方案

1 Qtopia移植

將Qtopia移植到嵌入式設備中,要在安裝有Linux作業系統的PC機中交叉編譯Qtopia所需要的資源文件和環境,交叉編譯Qtopia原始碼,然後把生成的Qtopia系統下載到設備中。要先建立一個開發環境,其中必須要有提供qte的庫qt-embedded-2.3.10。提供相應的qtdesigner和虛擬qvfb的qt-x11-2.3.2。qte的桌面環境程序qtopia-free-2.1.1以及tmake-1.13的關係如表1所示。

在編譯並下載後,可以看到一個英文的虛擬PDA界面。Qtopia包含完整的應用層、靈活的用戶界面、窗口作業系統、應用程式、啟動程序以及開發框架。

2 構建嵌入式Linux俄文環境

由於Qtopia的界面使用Unicode作為內部編碼,可以同時支持多種編碼,對國際化標準支持的非常完備,這就為英文的Qtopia進行俄文本地化提供了可能。

本地化是將國際化的資源(信息、產品等)進行翻譯、註解、融合、交匯等延伸,賦予其本土特質。本地化是針對應用程式支持的每一個區域性將應用程式的資源翻譯為本地化版本的過程。在Qtopia中,應用程式分為2個概念塊:一個是包含所有用戶界面元素的塊,另一個包含可執行代碼的塊。用戶界面塊僅包含非特定區域性的可本地化用戶界面元素,如字符串、錯誤信息、對話框、菜單、嵌入的對象資源等。代碼塊僅包含由所有支持的區域性使用的應用程式代碼。對所有用戶可見的文本使用tr()將文本標識出來,這樣利用Qt提供的翻譯工具將很容易把這些文本轉化成所需要的語言。這裡的本地化操作只要在用戶界面塊操作就可以,而不需要修改代碼塊。

Qtopia默認的語言是英語。要將Qtopia本地化成俄文,必須重新配置qtopia。

第一步,在終端中輸入命令:configure-languages「ru」,這會告訴編譯系統,它也需要建立檔案,翻譯俄文。

第二步,輸入命令make lupdate。lupdate的功能是讀取一個Qt.pro項目文件並且產生或者更新項目文件中列出的.ts翻譯源文件。ts文件是Qt原始碼中的可翻譯文本,是一個給翻譯者手工編譯的信息文件。ts文件是XML格式,可以用記事本打開,也可以用QT語言學家(QT Linguist)打開。

翻譯人員可以用Qt語言學家(QT Linguist)來讀取這個翻譯文件並且插入翻譯。在Qtopia的i18n文件夾中創建ru文件夾和伺服器具體翻譯文件(例如qtopiaapplications.ts),其中TS文件就是待翻譯的文件。啟動Qt Linguist將topiaapplieations.ts文件導入,將需要翻譯的內容翻譯成俄文,翻譯完成之後,點擊File→Release,將文件保存為topiaapplications_ru.qm。QM文件是Qtopia程序能夠識別的文件,TS必須要轉換成QM文件才能被系統識別。換句話說TS文件是給我們看的,QM文件是給系統看的。除了這些自動生成的文件,還要手動在ru文件夾中創建一個.direetory文件。

然後重新運行make lupdate命令,重新更新一下系統。如果仔細地分析研究Qtopia的源文件夾,就可以發現解壓後的Qtopia2.1.1裡面有src文件夾。其中的每一個應用程式的文件裡面都有幾個TS文件,比如在\src\game\snake文件夾裡面可以發現有snake-de.ts,snake-ja.ts,snake-no.ts,snake-en_GB.ts等4個TS文件,在每個應用程式文件夾裡面複製一個TS文件放到RU文件夾中就可以。接下來把每個TS文件翻譯成俄文。運行語言學家的工具Linguist,就可以很輕鬆地把所有的英文翻譯成俄文。之後,通過Linguist把翻譯好的TS文件轉換成QM文件放到i18n/ru文件夾裡面。

現在在Qtopia語言欄中選Russian,可以發現Qtopia桌面還是英文的,但是打開每個應用程式,所有的英文已經由俄文取代。這是因為沒有配置*.desktop桌面配置文件,也就是沒有在桌面應用程式啟動器文件裡面增加俄文。比如遊戲貪食蛇的桌面程序啟動器文件為snake. desktop,在裡面增加一句話:Name[ru]=3MeиKa,其中3Meиga的中文意思就是貪食蛇。

技術專區

相關焦點

  • linux基礎複習(5)建立linux開發環境
    -3.3.2 編譯Qtopia 使用- arm-linux-gcc-3.4.1 編譯內核使用- arm-linux-gcc-2.95.3 編譯vivi 使用後面兩個還可以用來編譯開發板上的應用程式,另外,裝完後要對環境變量進行設置,這有兩個版本,一個是修改 /etc/profile,一個是/etc/bashrc ,一直搞不明白有什麼區別,今天在網上搜索到答案
  • 基於嵌入式Linux的MapInfo格式地圖顯示
    在硬體環境上,使用一塊AT91rm9200為核心的開發板,32M SDRAM,16M FLASH, LCD顯示,選取嵌入式Linux作為作業系統,為了實現地圖顯示的功能,首先在宿主機上建立交叉編譯環境,移植MiniGUI到開發平臺上,使平臺支持圖形顯示,接著根據MapInfo格式的一系列文件的內部結構和相互關係編程分析,得到基礎圖元數據和類型
  • 基於busybox的嵌入式Linux根文件系統的的製作方法
    根文件系統一直是Linux系統不可或缺的組件,在嵌入式Lin-ux中,內核在啟動期間進行的最後操作之一就是安裝根文件系統。Busybox是構建嵌入式Linux根文件系統的軟體,用它製作根文件系統簡單、方便,而且設置靈活。
  • 基於S3C2440的嵌入式Linux根文件系統構建
    嵌入式Linux早已成為IT界家喻戶曉的一個名字,使用Linux進行嵌入式產品開發有一個很大的優勢,就是開發資源豐富,且成本低廉,嵌入式Linux作業系統越來越受到重視,其應用也越來越廣泛。而文件系統作為作業系統的重要組成部分,用於控制對數據文件及設備的存取,提供對文件和目錄的分層組織形式,數據緩衝以及對文件存取權限的控制。
  • 基於模型的嵌入式C代碼的實現與驗證
    摘要:以51晶片為例,講述了模型的建立、調試與驗證,以及基於模型的嵌入式C代碼的自動生成及軟硬體在環測試Matlab環境下集成的Sireulink/Stateflow模型設計和使用RTW生成目標代碼的軟體設計方案便是這一大背景的產物。基於模型的設計就是解決該問題的一種方法。Matlab MBD解決方案可以使用戶方便地穿梭於建模、仿真、驗證與實施之間,而無需重寫代碼或改變軟體環境。經過近幾年的不斷完善,這種方法已經從概念演變成實際應用中重要的開發模式。
  • 嵌入式Linux NFS 根文件系統的構建及研究
    在此基礎上,進一步構建出基於NFS的嵌入式Linux根文件系統,並給出了啟動腳本和配置文件。這種根文件系統可以方便地在線更改、調試程序,降低了嵌入式系統的開發門檻。關鍵詞:NFS;Busybox;根文件系統;S3C2440;Linux 隨著信息技術的發展,嵌入式系統技術已經廣泛應用於國防、通信、工業控制、消費電子等諸多領域。
  • 基於CPCI的嵌入式系統的電源設計
    1 引言 嵌入式系統廣泛應用於控制和通信領域。這裡介紹一種基於CPCI的嵌入式單板計算機電源的設計方案。該設計主要應用於航空設備和軍用車載設備。本文引用地址:http://www.eepw.com.cn/article/181203.htm2 系統電源需求分析與器件造型 圖1為系統整體結構框圖。
  • 採用busybox的嵌入式Linux根文件系統的的製作方法
    根文件系統一直是Linux系統不可或缺的組件,在嵌入式Lin-ux中,內核在啟動期間進行的最後操作之一就是安裝根文件系統。Busybox是構建嵌入式Linux根文件系統的軟體,用它製作根文件系統簡單、方便,而且設置靈活。
  • linux系統工控機-ubuntu烏班圖嵌入式工業電腦
    不過在工控領域,最為常見的系統只有三種,即微軟系統(Windows XP/7/8/10),安卓系統(Android5.0/5.1等)以及嵌入式的烏班圖Ubuntu Linux系統。linux系統工控機-807A正面Linux是自由的免費開源的,它是以unix為原型改造的,一個多用戶多任務的作業系統,任何人都可以修改其代碼和頁面,其中主要的目的就是為了不收商業化的限制,而我們將伺服器部署在linux系統上會更加高效穩定、安全(註:UNIX作業系統(尤尼斯),是一個強大的多用戶、多任務作業系統,支持多種處理器架構
  • 用OpenEmbedded構建嵌入式Linux系統
    本篇文章主要是教大家如何用OpenEmbedded構建嵌入式的Linux系統,不過它做得太複雜,如果不出問題,用起來很方便,但是一旦出點問題,就不知道該怎樣去弄了。作者是用Embedded-LFS構建的,它非常簡單,當然功能也要弱一些,對於只想玩玩的初學者還是有幫助的。
  • 基於Yocto Project的定製嵌入式Linux產品設計淺析
    基於Yocto Project的定製嵌入式Linux產品設計淺析 電子發燒友 發表於 2019-05-30 15:42:07 引言 Linux作為嵌入式系統的主要工具
  • Cortex-M3平臺上lwIP+AJAX的Web嵌入式應用
    摘要:本文基於lwIP乙太網協議棧將AJAX動態網頁設計技術應用於嵌入式Cortex-M3平臺,實現Web嵌入式應用所選Cortex-M3平臺內部集成PHY,lwIP協議棧及實時作業系統FreeRTOS均是開源、免費,整個系統成本在60RMB以內,對於成本較敏感的網絡互聯產品提供了一種解決方案,並給出了硬體原理圖及軟體代碼。
  • Mentor Graphics推出最廣泛的工業自動化嵌入式系統解決方案
    該方案採用獨特的多平臺方法和穩健的安全架構,與市場上的其他產品都有所不同。利用Mentor Graphics® 全新的Mentor® 嵌入式多平臺解決方案,嵌入式產品開發人員可以創造出功能更豐富、功效更高且更安全的系統。該方案涵蓋了廣泛的運行時平臺選項、定製開發工具、系統分割、電源管理、安全認證和系統特性化工具,加上擁有市場領先的多核支持,使其成為業內最廣泛的解決方案。
  • 工程師嵌入式Linux自學筆記及體會
    在設計嵌入式應用的時候,可以不按照這種層次,應用程式越過 C 庫直接和內核會話,或者把應用和內核捆綁在一起,甚至可以把應用寫為內核的一個線程,在內核中運行,雖然這樣在移植上帶來了困難,但考慮嵌入式系統對尺寸要求小的特點,是完全可行的。不過我們使用三層軟體結構的模式來學習嵌入式 linux將會是我們認識更清晰,簡單可行並使應用具有彈性。
  • 嵌入式系統課程的教與學
    常用命令                                (2學時)(1)目的要求熟悉ARM處理器linux系統下應用程式開發環境和開發模式,了解嵌入式開發的基本思想和過程。(5)實驗內容:實驗使用的作業系統環境。新建一個目錄,編寫幾個源文件,使用makefile管理項目。學習在linux下的編程和編譯過程,在linux上運行。實驗二  「hello world!」
  • 嵌入式linux內核的編譯步驟
    嵌入式linux內核的編譯步驟 華清遠見 發表於 2020-06-19 09:30:24   編譯嵌入式Linux內核都是通過make的不同命令來實現的,它的執行配置文件是
  • 吉時利發布基於LINUX的參數測試系統
    其最主要升級是在每套測試系統中的嵌入式控制電腦上移植Linux作業系統(OS)。本項升級為其控制電腦提供更穩定的OS和更長的服務壽命,減少了用戶升級新工作站和軟硬體資源的開銷。此外,此次固件升級相比原來基於UNIX的系統具有更高的測試產能。新軟體授權(license)方法採用USB棒作為每套測試器的硬體鑰匙,通過在不同工作站間的遷移縮短維護時間。
  • 圓周率:基於全景技術的空間眼及行業解決方案
    成立於 2012 年的深圳市圓周率軟體科技有限責任公司,由香港科技大學校友與多位博士共同創立,由華潤、Arm 旗下早期基金等投資,是中國最早投身嵌入式全景算法研發的團隊之一,亦是全球市場佔有率最大的全景算法供應商。
  • Linux下的遊戲解決方案
    最喜歡的事情就是教別人用 linux了,用 GitHub,也是 Fedora 社區成員,目前朝著 Fedora 大使的方向學習著Game on Linux!!!!!村長說:啊,沒錯,我又摸了好久的魚XD(求不打)!確實,摸魚摸的我都有點不好意思了,畢竟欠了好多文章呀!也該步入正軌了呢!
  • 一種嵌入式系統bootrom自動備份及切換技術
    嵌入式系統投入實際環境中運行後,一部分在軟體開發過程中無法充分測試的錯誤便會暴露出來;在嵌入式系統的運行期內,用戶也往往會對嵌入式軟體提出新的功能要求和性能要求。因此,嵌入式軟體的更新逐漸成為嵌入式系統實際應用的一個重要問題。在嵌入式系統安裝數量較多,或安裝位置不方便的情況下,採用人工更新方式會花費較大的人力和物力。