下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Linux下的本地化與國際化-2.gettextGNUgettext是一套GNU下的國際化工具,幾乎支持所有Linux下的計算機語言。在gettext的幫助下,可以輕松完成程序的國際化。一、相關(guān)文件.potpo的模版,可由xgettext生成.po翻譯的源,可由msginit+.pot生成.gmo編譯后的po,可由msgfmt+.po生成.mo同上,只是gmo通常指的是未安裝的mo,可由install+.gmo生成二、相關(guān)工具xgettext從源代碼中提取需要翻譯的字串,生成pot文件msginit替換pot中的Entry信息,如譯者,文件編碼等msgmerge合并現(xiàn)有的.po文件msgfmt把.po文件生成.gmo或.mo文件三、相關(guān)函數(shù)bindtextdomain(constchar*domain,constchar*dirname)通過domain與dirname綁定mo文件的域textdomain(constchar*domainname)指定gettext所用的域gettext(constchar*msgid):由locale與textdomain指定的domain得到翻譯后的字串ngettext(constchar*msgid1,constchar*msgid2,unsignedlongintn):通過n返回單數(shù)的msgid1或復(fù)數(shù)的msgid2dgettext(constchar*domain,constchar*msgid)扌旨定domain的gettextdngettext(constchar*domain,constchar*msgid,unsignedlongintn);扌旨定domain的ngettextdcgettext(constchar*domain,constchar*msgid,intcategory):扌旨定domain與category的gettext
dcngettext(constchar*domain,constchar*msgid1,constchar*msgid2,unsignedlongintn,intcategory):扌旨定domain與category的ngettextgettext的dirname,localedomain,category,在磁盤上的結(jié)構(gòu)為dirname/locale/category/domain.mo如/usr/share/locale/zh_CN/LC_MESSAGES/gettext_demo.mo默認的category為LC_MESSAGES四、實例—新建文件gettext_demo.cviewplaincopytoclipboardprint?#include<locale.h>#include<libintl.h>#include<stdio.h>3.#define_(string)gettext(string)5.constchar*DOMAIN="gettext_demo";constchar*DIRNAME="languages";8.intmain(intargc,char**argv){10./x設(shè)置locale與系統(tǒng)一致*/setlocale(LC_ALL,"");13./x添加域gettext_test在目錄po*/bindtextdomain(DOMAIN,DIRNAME);16./x設(shè)定默認域為gettext_test*/textdomain(DOMAIN);19./xgettext(HelloWorld)*/puts(_("Hello"));return0;}制作zh_CN.UTF-8的語言包gettext_demo$lsgettext_demo.cgettext_demo$mkdirpogettext_demo$cdpo由xgettext生成pot
gettext_demo/po$xgettext-k_——package-namegettext_demo——package-version0.1../x.c-ogettext_demo.potgettext_demo/po$lsgettext_demo.pot由gettext_demo.pot生成zh_CN.pogettext_demo/po$msginit#因為我的系統(tǒng)locale為zh_CN.UTF-8,因此msginit自動生成針對zh_CN.UTF-8的pogettext_demo/po$lsgettext_demo.potzh_CN.po修改po文件#:../gettext_demo.c:22msgid"Hello"msgstr""為#:../gettext_demo.c:22msgid"Hello"msgstr"你好"由zh_CN.po生成zh_CN.mogettext_demo/po$msgfmtzh_CN.po-ozh_CN.mogettext_demo/po$lsgettext_demo.potzh_CN.mozh_CN.po復(fù)制0zh_CN.mo至到../languages/zh_CN/LC_MESSAGES/gettext_demo.mogettext_demo/po$mkdir-p../languages/zh_CN/LC_MESSAGESgettext_demo/po$cpzh_CN.mo../languages/zh_CN/LC_MESSAGES/gettext_demo.mo編譯并測試gettext_demo$gccgettext_demo.c-ogettext_demogettext_demo$lsgettext_demogettext_demo.clanguagespogettext_demo$./gettext_demo你好測試英文環(huán)境gettext_demo$LC_ALL=en_US./gettext_demoHello女口果嘗試LC_ALL=zh_CN.GBK./gettext_demo在UTF-8環(huán)下顯示"舌L碼",因為顯示的是GBK編碼,gettext轉(zhuǎn)換到相應(yīng)的編碼了。</pre〉當(dāng)系統(tǒng)發(fā)生變化時,添加了新的語句,為此通過工具msgmerge進行和并修改gettext_demo.c
/xgettext(HelloWorld)*/puts(_("Hello"));為/xgettext(HelloWorld)*/puts(_("Hello"));puts(_("World"));gettext_demo/po$xgettext-k_——package-namegettext_demo——package-version0.1../x.c-ogettext_demo.potgettext_demo/po$msgmergezh_CN.pogettext_demo.pot-ozh_CN.po.完成。修改文件zh_CN.po#:../gett
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年無機械動力飛機項目建議書
- 2025年文字、語音、圖象識別設(shè)備項目建議書
- 2024年版權(quán)轉(zhuǎn)讓合同(含作品類型與轉(zhuǎn)讓費用)
- 2025餐飲合作協(xié)議合同模板
- 建筑工程槽探施工合同
- 教育資源二手房直賣協(xié)議
- 2025供貨合同范本【官方版】
- 2024年高效軟件開發(fā)服務(wù)合作合同版B版
- 農(nóng)業(yè)資金效益
- 城市自行車道擴建砂石路施工合同
- 舞蹈療法在減少壓力和焦慮中的作用
- 女性婦科保健知識講座
- 《電力系統(tǒng)治安反恐防范要求 第3部分:水力發(fā)電企業(yè)》
- 部編版語文四年級下冊第二單元大單元教學(xué)設(shè)計核心素養(yǎng)目標
- 2024年小學(xué)教師聽課、評課制度
- 精品解析:河北省衡水市衡水中學(xué)2023-2024學(xué)年高一上學(xué)期期末數(shù)學(xué)試題(解析版)
- 2023年《鐵道概論》考試復(fù)習(xí)題庫附答案(含各題型)
- (電焊工)勞務(wù)分包合同
- 陜西省西安市西咸新區(qū)2023-2024學(xué)年七年級上學(xué)期1月期末歷史試題
- 北師大版數(shù)學(xué)三年級下冊全冊教案教學(xué)設(shè)計及教學(xué)反思
- 重難點06讀后續(xù)寫-2023年高考英語【熱點·重點·難點】(新高考專用)
評論
0/150
提交評論