使用者:Shyangs/中文化
出自 MozTW Wiki
內容大綱
教學
編碼
逸出萬國碼(escaped Unicode)(UTF-16BE)(UTF-16 Big Endian)
中文化
關於 .dtd 檔
- .dtd檔,一定要是 UTF8 編碼格式儲存,且不得有BOM開頭字元
關於 .properties 檔
- 兩種編碼格式可以選擇 UTF-8 或 ANSI (ASCII)
UTF-8
- 必須是 NO BOM 的 UTF8 編碼格式儲存。
ANSI
- 一行一敘述,按 [Enter] 換行。
- 翻譯的字符串必須是 UTF-16BE 格式。
- 例如:
- 敘述 upload_center.done=Done 譯成 upload_center.done=完成 ,還必須替換字符串為 upload_center.done=\u5b8c\u6210
- 例如:
- 以 ANSI 編碼格式儲存。
編碼之選擇
- Q: 將.properties檔存成ANSI編碼格式 好像比較麻煩?
- A: 是的,存成 UTF-8 編碼格式 比較方便,也不會像天書一樣讓人看不懂;但極少數的擴充套件,對UTF-8的.properties檔 似乎消化不良,會出現錯誤,存成ANSI編碼格式 則可正常運作。例如:ImageBot v3.3.5的套件敘述,UTF-8 編碼格式會讓extensions description無法正常顯現。
- Q: 若我選擇ANSI編碼格式,但是其中有某一句敘述沒有翻譯,我是否要將該字符串轉換成UTF-16BE 格式 呢?
- A: 該字符串可以轉成 UTF-16BE 格式,也可以保留原句ANSI格式。
- 例如: 原來 en-US (ANSI) 敘述upload_center.imagesCopiedWithTemplate= %S image(s) copied with Template -> %S ,放到 zh-TW (ANSI) 可以為upload_center.imagesCopiedWithTemplate= %S image(s) copied with Template -> %S ,也可以為upload_center.imagesCopiedWithTemplate=\u0025\u0053\u0020\u0069\u006d\u0061\u0067\u0065\u0028\u0073\u0029\u0020\u0063\u006f\u0070\u0069\u0065\u0064\u0020\u0077\u0069\u0074\u0068\u0020\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0020\u002d\u003e\u0020\u0025\u0053
- A: 該字符串可以轉成 UTF-16BE 格式,也可以保留原句ANSI格式。
.properties 檔 中文化實例
ImageBot v3.3.5
- 檔案 imgbot.properties
en-US : ANSI 編碼格式
extensions.{55009080-176f-11da-8cd6-0800200c9a66}.description= An Image Uploader upload_center.loginTo = Login to %S upload_center.loggedInAs= Log %S out of %S upload_center.clickToLogin= Click to Login upload_center.clickToLogout= Click to Logout upload_center.loading= Loading upload_center.done= Done upload_center.errorType= Error: File Type upload_center.errorSize= Error: File Size upload_center.errorIntegrity= Error: File Integrity upload_center.errorDupe= Error: Duplicate Image upload_center.errorMisc= Error: Miscellaneous upload_center.selectFiles= Select Files to Upload upload_center.supportedTypes= %S Supported Types upload_center.initialized= ImageBot [Upload Center] initialized on %S upload_center.imagesAdded= %S image(s) added upload_center.imagesSelected= %S image(s) selected upload_center.imagesCopied= %S image(s) copied upload_center.imagesViewed= %S image(s) viewed upload_center.imagesDeleted= %S image(s) deleted upload_center.confirmDelete= Are you sure you want to delete %S image(s)? upload_center.imagesCopiedWithTemplate= %S image(s) copied with Template -> %S upload_center.filterDeactivated= Filter Deactivated upload_center.filterActivated= Filter Activated: %S upload_center.requiresLogin= Error! %S requires you to be logged in if uploading images. template_editor.initialized= ImageBot [Template Editor] initialized on %S template_editor.selected= Template selected -> %S template_editor.movedUp= Template moved up template_editor.movedDown= Template moved down template_editor.created= New Template created template_editor.saved= Template saved template_editor.deleted= Template deleted -> %S patcher.done= Done! host0.incorrectUsernameOrPassword= Username and password you've entered do not match host0.name= ImageShack host0.syncNotLoggedIn= Error! You must be logged into %S to synchronize your images! host0.syncing= Synchronizing %S's %S Images host1.incorrectUsernameOrPassword= Incorrect Username or Password host1.tooManyFailedLogins= Too many failed login attempts host1.requiredFieldMissing= Required field missing host1.unknownError= Unknown Error
zh-TW : UTF-8 編碼格式
extensions.{55009080-176f-11da-8cd6-0800200c9a66}.description=一個圖片上傳管理器 upload_center.loginTo =登入 %S upload_center.loggedInAs=將帳戶 %S 登出 %S upload_center.clickToLogin=點此登入 upload_center.clickToLogout=點此登出 upload_center.loading=上傳中 upload_center.done=完成 upload_center.errorType=錯誤: 檔案格式 upload_center.errorSize=錯誤: 檔案大小 upload_center.errorIntegrity=錯誤: 檔案完整性 upload_center.errorDupe=錯誤: 重複的圖片 upload_center.errorMisc=錯誤: Miscellaneous upload_center.selectFiles= 選取欲上傳檔案 upload_center.supportedTypes= %S Supported Types upload_center.initialized= ImageBot [上傳管理中心] initialized on %S upload_center.imagesAdded=加入了 %S 張圖片 upload_center.imagesSelected=選取 %S 張圖片 upload_center.imagesCopied=複製了 %S 張圖片之網址 upload_center.imagesViewed=檢視 %S 張圖片 upload_center.imagesDeleted= 刪除了 %S 張圖片 upload_center.confirmDelete=確定要刪除這 %S 張圖片嗎? upload_center.imagesCopiedWithTemplate= %S image(s) copied with Template -> %S upload_center.filterDeactivated= Filter Deactivated upload_center.filterActivated= Filter Activated: %S upload_center.requiresLogin= 錯誤! %S 必須登入, 才可上傳圖片 template_editor.initialized= ImageBot [範本編輯] initialized on %S template_editor.selected=範本選擇 -> %S template_editor.movedUp=範本上移 template_editor.movedDown=範本下移 template_editor.created=新範本創建 template_editor.saved=範本儲存 template_editor.deleted=範本刪除 -> %S patcher.done=完成! host0.incorrectUsernameOrPassword=使用者名稱和密碼不符合 host0.name= ImageShack host0.syncNotLoggedIn=錯誤! 您必須登入 %S 才可同步化您的圖檔! host0.syncing=同步化 %S's %S 張圖片 host1.incorrectUsernameOrPassword=使用者名稱或密碼輸入錯誤 host1.tooManyFailedLogins= 多次嘗試登入失敗 host1.requiredFieldMissing= Required field missing host1.unknownError=未知的錯誤
zh-TW : ANSI 編碼格式
extensions.{55009080-176f-11da-8cd6-0800200c9a66}.description=\u4e00\u500b\u5716\u7247\u4e0a\u50b3\u7ba1\u7406\u5668 upload_center.loginTo =\u767b\u5165\u0020\u0025\u0053 upload_center.loggedInAs=\u5c07\u5e33\u6236\u0020\u0025\u0053\u0020\u767b\u51fa\u0020\u0025\u0053 upload_center.clickToLogin=\u9ede\u6b64\u767b\u5165 upload_center.clickToLogout=\u9ede\u6b64\u767b\u51fa upload_center.loading=\u4e0a\u50b3\u4e2d upload_center.done=\u5b8c\u6210 upload_center.errorType=\u932f\u8aa4\u003a\u0020\u6a94\u6848\u683c\u5f0f upload_center.errorSize=\u932f\u8aa4\u003a\u0020\u6a94\u6848\u5927\u5c0f upload_center.errorIntegrity=\u932f\u8aa4\u003a\u0020\u6a94\u6848\u5b8c\u6574\u6027 upload_center.errorDupe=\u932f\u8aa4\u003a\u0020\u91cd\u8907\u7684\u5716\u7247 upload_center.errorMisc=\u932f\u8aa4\u003a\u0020\u004d\u0069\u0073\u0063\u0065\u006c\u006c\u0061\u006e\u0065\u006f\u0075\u0073 upload_center.selectFiles=\u9078\u53d6\u6b32\u4e0a\u50b3\u6a94\u6848 upload_center.supportedTypes=\u0025\u0053\u0020\u0053\u0075\u0070\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0054\u0079\u0070\u0065\u0073 upload_center.initialized=\u0049\u006d\u0061\u0067\u0065\u0042\u006f\u0074\u0020\u005b\u4e0a\u50b3\u7ba1\u7406\u4e2d\u5fc3\u005d\u0020\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0069\u007a\u0065\u0064\u0020\u006f\u006e\u0020\u0025\u0053 upload_center.imagesAdded=\u52a0\u5165\u4e86\u0020\u0025\u0053\u0020\u5f35\u5716\u7247 upload_center.imagesSelected=\u9078\u53d6\u0020\u0025\u0053\u0020\u5f35\u5716\u7247 upload_center.imagesCopied=\u8907\u88fd\u4e86\u0020\u0025\u0053\u0020\u5f35\u5716\u7247\u4e4b\u7db2\u5740 upload_center.imagesViewed=\u6aa2\u8996\u0020\u0025\u0053\u0020\u5f35\u5716\u7247 upload_center.imagesDeleted=\u522a\u9664\u4e86\u0020\u0025\u0053\u0020\u5f35\u5716\u7247 upload_center.confirmDelete=\u78ba\u5b9a\u8981\u522a\u9664\u9019\u0020\u0025\u0053\u0020\u5f35\u5716\u7247\u55ce\u003f upload_center.imagesCopiedWithTemplate=\u0025\u0053\u0020\u0069\u006d\u0061\u0067\u0065\u0028\u0073\u0029\u0020\u0063\u006f\u0070\u0069\u0065\u0064\u0020\u0077\u0069\u0074\u0068\u0020\u0054\u0065\u006d\u0070\u006c\u0061\u0074\u0065\u0020\u002d\u003e\u0020\u0025\u0053 upload_center.filterDeactivated=\u0046\u0069\u006c\u0074\u0065\u0072\u0020\u0044\u0065\u0061\u0063\u0074\u0069\u0076\u0061\u0074\u0065\u0064 upload_center.filterActivated=\u0046\u0069\u006c\u0074\u0065\u0072\u0020\u0041\u0063\u0074\u0069\u0076\u0061\u0074\u0065\u0064\u003a\u0020\u0025\u0053 upload_center.requiresLogin=\u932f\u8aa4\u0021\u0020\u0025\u0053\u0020\u5fc5\u9808\u767b\u5165\u002c\u0020\u624d\u53ef\u4e0a\u50b3\u5716\u7247 template_editor.initialized=\u0049\u006d\u0061\u0067\u0065\u0042\u006f\u0074\u0020\u005b\u7bc4\u672c\u7de8\u8f2f\u005d\u0020\u0069\u006e\u0069\u0074\u0069\u0061\u006c\u0069\u007a\u0065\u0064\u0020\u006f\u006e\u0020\u0025\u0053 template_editor.selected=\u7bc4\u672c\u9078\u64c7\u0020\u002d\u003e\u0020\u0025\u0053 template_editor.movedUp=\u7bc4\u672c\u4e0a\u79fb template_editor.movedDown=\u7bc4\u672c\u4e0b\u79fb template_editor.created=\u65b0\u7bc4\u672c\u5275\u5efa template_editor.saved=\u7bc4\u672c\u5132\u5b58 template_editor.deleted=\u7bc4\u672c\u522a\u9664\u0020\u002d\u003e\u0020\u0025\u0053 patcher.done=\u5b8c\u6210\u0021 host0.incorrectUsernameOrPassword=\u4f7f\u7528\u8005\u540d\u7a31\u548c\u5bc6\u78bc\u4e0d\u7b26\u5408 host0.name=\u0049\u006d\u0061\u0067\u0065\u0053\u0068\u0061\u0063\u006b host0.syncNotLoggedIn=\u932f\u8aa4\u0021\u0020\u60a8\u5fc5\u9808\u767b\u5165\u0020\u0025\u0053\u0020\u624d\u53ef\u540c\u6b65\u5316\u60a8\u7684\u5716\u6a94\u0021 host0.syncing=\u540c\u6b65\u5316\u0020\u0025\u0053\u0027\u0073\u0020\u0025\u0053\u0020\u5f35\u5716\u7247 host1.incorrectUsernameOrPassword=\u4f7f\u7528\u8005\u540d\u7a31\u6216\u5bc6\u78bc\u8f38\u5165\u932f\u8aa4 host1.tooManyFailedLogins=\u591a\u6b21\u5617\u8a66\u767b\u5165\u5931\u6557 host1.requiredFieldMissing=\u0052\u0065\u0071\u0075\u0069\u0072\u0065\u0064\u0020\u0066\u0069\u0065\u006c\u0064\u0020\u006d\u0069\u0073\u0073\u0069\u006e\u0067 host1.unknownError=\u672a\u77e5\u7684\u932f\u8aa4