Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Free Software Localization
Search
趙惟倫
August 03, 2006
How-to & DIY
140
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Free Software Localization
自由軟體本地化
https://github.com/bluebat/.presentations/raw/master/free-software-localization.odp
趙惟倫
August 03, 2006
Transcript
14 slides
趙惟倫 <
[email protected]
> 2006 年 8 月 3 日、 2008 年
1 月 26 日 2012 年 9 月 20 日、 2016 年 6 月 7 日 自由軟體本地化 自由軟體本地化 TOSSUG
軟體使用者 軟體使用者 傳統字漢語 簡化字漢語 英語 法語 日語 德語 西班牙語 傳統字漢語
简化字汉语 English Français 日本語 Deutsch Español
軟體開發者 軟體開發者 C/C++/C# Pascal/Fortran BASIC/PHP Python/Perl Java/JavaScript 傳統字漢語 简化字汉语 English
Français 日本語 Deutsch Español
如果你曾經… 如果你曾經…
語區 語區 en de fr zh ...... zh_CN zh_HK zh_TW
zh_TW.Big5 zh_TW.UTF-8 Locale
名詞解釋 名詞解釋 NLS : 多國語言支援 (National Language Support) g11n :
全球化 (Globalization) i18n : 國際化 (Internationalization) L10n : 本地化 (Localization) m17n : 多語化 (Multilingualization) 廠商 廠商 作者 翻譯者 使用者
系統選單 系統選單 範例: /usr/share/applications/mplayer.desktop [Desktop Entry] Type=Application Encoding=UTF-8 Name=MPlayer Name[zh_TW]=MPlayer
播放器 GenericName=Multimedia player Comment=Multimedia player Comment[zh_TW]= 多媒體播放器 Icon=mplayer.xpm TryExec=gmplayer Exec=gmplayer Terminal=false Categories=Application;AudioVideo;Player; [Desktop Entry] Type=Application Encoding=UTF-8 Name=MPlayer Name[zh_TW]=MPlayer 播放器 GenericName=Multimedia player Comment=Multimedia player Comment[zh_TW]= 多媒體播放器 Icon=mplayer.xpm TryExec=gmplayer Exec=gmplayer Terminal=false Categories=Application;AudioVideo;Player;
國際化方案 國際化方案 *.c *.h *.msg *.catin(makemsg gencat) *.ts *.qm(Qt) *.properties(Java)
*.xml *.json *.po *.mo(gettext) 從前 現在
翻譯內容 翻譯內容
翻譯工具 翻譯工具 專用編輯器 (poEdit, Lokalize, Gtranslator) 文字編輯器 (vi, nano, joe)
通用編輯器 (gEdit, kWrite)
注意事項 注意事項 首項訊息記錄翻譯資訊 "Last-Translator: Wei-Lun Chao <
[email protected]
>\n" "Language-Team: Chinese (traditional)
<zh-
[email protected]
>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" 不隨意更改 msgstr 內容以外的文字 msgctxt "Software" msgid "%s: Fille shrank by %s byte" msgid_plural "%s: Fille shrank by %s bytes" msgstr[0] "%s :檔案縮減了 %s 位元組 " 快速鍵記號 (& 或 _) msgid "_Preferences..." msgstr " 偏好設定 (_P)..." msgid "Show Time&zone" msgstr " 顯示時區 (&Z)" 第二人稱單數通常翻譯為「您」 msgid "You must specify a file.\n" msgstr " 您必須指定檔案。 \n" 標點符號轉為全形 msgid "The strokes follow a \"flowing\" pattern..." msgstr " 筆劃會以「流動」的方式來鋪排… " 格式化輸出注意中文與英文的螢幕寬度比例 msgid "Idx Name Size" msgstr " 索引名稱 大小 " 必須依原型使用的名稱不需要翻譯 msgid "CLOSE, Closes the current tab" msgstr "CLOSE ,關閉目前分頁 " \ 表示跳脫字元, % 表示變數 msgid "<span weight=\"bold\">Miscellaneous\t</span>" msgstr "<span weight=\"bold\"> 其 他 \t</span>" msgid "Searching in page %d of %d...\n" msgstr " 正在搜尋 %2$d 頁中的第 %1$d 頁… \n" 訊息原文的意思是「鳴謝歷來翻譯者」 msgid "translator-credits" msgstr " 趙惟倫 <
[email protected]
>, 2006"
轉換流程 轉換流程 msginit -i name.pot -o zh_TW.po $EDITOR zh_TW.po msgfmt
zh_TW.po -cvo /dev/null msgfmt zh_TW.po -cvo zh_TW.gmo install zh_TW.gmo /usr/share/locale/zh_TW/LC_MESSAGES/name.mo gettext -e -s --domain=name "OK"
msg* msg* 命令群 命令群 msgattrib msgcmp msgen msgfmt msginit msguniq
msgcat msgcomm msgexec msggrep msgmerge msgconv msgfilter msghack msgunfmt
謝謝各位 敬請指教 簡報模板:資訊未來大自由 ( 孫賜萍 )
More Decks by 趙惟倫
See All by 趙惟倫
BASH Basics
bluebat
0
130
VDI Historical Overview
bluebat
1
220
RPM Sphere Repository
bluebat
0
1.6k
Multiplication Table in Various Programming Languages
bluebat
0
680
Gamelets Arena for AI Players
bluebat
0
1k
Alternative Web Services
bluebat
0
300
Look at Yue Desktop
bluebat
0
580
msgchi L10n Tool
bluebat
0
790
Making P-Font with FontForge
bluebat
0
240
Other Decks in How-to & DIY
See All in How-to & DIY
Azure PortalのQoLを上げてたら Big Techに怒られた
horihiro
2
660
2026.6.27 お誕生日会で配布された透明シェルを交換する際の注意点について
mongonta0716
0
270
電子線香で老人を救え
izawa
0
120
薪と薪スト
hirashun
0
130
大量のiOSシミュレータにアプリをインストールする
gurrium
0
210
Linuxが動く自作SBCを作る話.pdf
daimiya
1
1k
おっきなガジェットの回線事情
2bo
1
260
ATOMS3R-CAMとClaude SKILLSでタイムラプスチャレンジ #iotlt
n0bisuke2
0
470
なぜISPでオリジナルカードゲームを作ったのか?制作者と対談 - NIFTY Tech Talk #25
niftycorp
PRO
0
150
蓮ノ三連華は如何にしてBGPにたどり着いたのか
subroh0508
0
140
透析という名の登山:元SEが挑む、週3回のリアル・クエスト
ohbayukio2026
0
130
タスク管理で人生はもっと楽しくなる
naomik92
2
130
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
エンジニアに許された特別な時間の終わり
watany
109
250k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
60k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.3k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
48k
KATA
mclloyd
PRO
35
16k
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k