2009-03-06 116 views
3

我們正在本地化一個跨平臺的基於C++的客戶端應用程序。第一次本地化通行證在短期內完成了一個大合作伙伴的急件,現在是重構它的時候了。C++本地化最佳實踐?

我們目前每個語言環境都有一個XML字符串文件,每個資源都有一個公用密鑰和一個本地化值。然而,發送我們不必要的技術本地化器一個XML文件是不理想的 - 他們不知道編碼特殊字符等等我想使用一個簡單的,衆所周知的格式,如Excel/CSV與本地化器(也很好,因爲我們也有服務器端的本地化,可能在同一個文件的不同標籤中),然後從那裏代碼生成字符串文件。看來Excel不喜歡輸出UTF-8 CSV文件,這很煩人,並且阻止了我將幾個快速腳本放在一起,以自動執行Excel - >字符串文件轉換。

此問題已解決數百次。什麼樣的工作流程讓人們找到最好的工作,特別是對於本地化人員在公司外部的情況?我正在爲非技術用戶尋找一些容易的事情,並且也容易讓開發團隊用一些簡單的XML格式生成字符串文件。

+0

我正在考慮編寫我自己的本地化工具。我會稱它爲LOCutus。 – 2009-09-02 21:05:10

回答

3
  1. 使用OpenOffice代替exel,它可以轉儲爲UTF-8編碼的CSV。

  2. 我們的.xls文件帶有常見的ID,我們將其發送給翻譯公司。然後,使用OpenOffice將.xls轉儲爲CSV。我們有一個工具可以生成基於CSV文件的包含本地化文件。

0

這是一個有趣的話題。在過去,我以各種方式處理外包

有一次,我們只是使用普通格式的簡單文本文件。我們對每種語言都有不同的文件。格式是這樣的:

#LOCALIZATION_ID 
English String 

本地化者沒有問題。我用過的另一件事是一個自定義的xls電子表格應用程序。基本上應用程序通過Web服務將其數據發佈到服務器。不需要具有中間文件格式,如csv。這很好,因爲所有的字符串都是版本化的,並允許多個外包工作在同一個字符串文件上。

你或許應該能夠寫一些VBA,將您的Excel電子表格和輸出的外包商可能會通過電子郵件發送給您一個UTF-8的XML文件。在工作表頂部的一個大按鈕,上面寫着「發送XML文件」。它會將它發送到預定義的電子郵件地址,或將其發送到您的服務器。最壞的情況下,他們可以通過電子郵件發送文件本身。

1

的Qt有localization很大的便利。第一步是使用它們的字符串類QString。

接下來,您只需在tr()宏中包裝任何字符串文字。這種方法的好處是你不必浪費時間來保持常量或定義。只要輸入你想要的字符串,在你想要的地方。

稍後,您將使用Qt實用工具搜索所有代碼單元以查找可翻譯的字符串並創建.ts文件。這個文件是xml,所以你不必擔心你的數據被困在某種專有格式中。

現在你已經有了一個.ts文件,Qt提供了一個名爲linguist的翻譯編輯器。這是一個非常好的程序,向翻譯人員(人員)呈現字符串,並提供一些簡單的工具來管理整個過程。程序查找常見錯誤(不同的標點符號),跟蹤每個字符串的狀態,例如它是否已被轉換,以及源字符串是否已更改或已被刪除。該程序還將顯示開發人員可以在tr()宏中包含的每個字符串的上下文信息。

翻譯完成後,.ts文件被編譯成更小的二進制文件,與應用程序一起分發並在運行時加載。翻譯可以隨時切換。

還有更多的東西比我能在這裏完整解釋。這真的是一個值得研究的偉大系統。