2008-10-01 99 views
29

國際化網絡應用似乎總是一件苦差事。無論您爲可插拔語言提前計劃多少,總會遇到編碼問題,不適合模板的時髦措辭以及其他問題。國際化Web應用程序的最佳做法?

我認爲這將是得到SO社區輸入一組的東西,程序員應該看的出來決定自己的國際化網絡應用程序時非常有用。

回答

0

我有幾個應用程序,是「雙語」 我以前在ASP.NET1.1資源文件

還有一種叫做字符串資源工具 基本上你把你所有的字符串在.RES文件對於這兩種語言,然後確定基於文化或是否有人點擊了該語言

最大的疑難雜症是確保在翻譯的正確進行

9

在我的公司我們所有的字符串存儲鏈路讀什麼文件在* .properties文件中。我們的構建工具,構建屬性文件,它替換字符串這樣的「測試的語」副本:

Click here 

像這樣的東西:

[~~ Çļïčк н∑ѓё ~~ タウ ~~] 

現在,當我們將語言設置爲「測試「在我們的配置文件中,使用這些屬性文件。 (當然,我們不提供測試語言文件)。

這使我們能夠:

  1. 確保Unicode字符能夠正確顯示,包括日本/中國/韓國。
  2. 確保佈局適當擴展與不再言語語言(德語特別是對非英語平均較長的單詞)。
  3. 發現任何硬編碼字符串(因爲他們將在純英文)。

至於實際翻譯,這是由專業翻譯人員,而不是開發人員。

+2

這被稱爲[僞翻譯](http://en.wikipedia.org/wiki/Pseudolocalization)。 – Gan 2013-06-14 06:57:34

+0

談到l18n,Java很瘋狂;對於翻譯的默認存儲在.properties文件,那[不支持Unicode(http://stackoverflow.com/a/4660195/286685)開箱的幾個Java的文件格式之一! – 2016-10-30 21:26:47

45

國際化是很難的,這裏有幾件事情我已經從2個網站,均超過20種不同語言工作的經驗教訓:

  • 使用UTF-8無處不在。沒有例外。 HTML,服務器端語言(注意PHP尤其是),數據庫等
  • 圖像中沒有文本,除非你想有一個工作噸。如有必要,使用CSS將文字放在圖像上。
  • 從本地化分離配置。這樣定位器可以翻譯文本,並且您可以處理每個語言環境(功能,佈局等)的不同配置。您不希望本地化人員有能力混淆您的應用程序。
  • 確保您的佈局可以處理比英文長2-3倍的文本。而且比英語少50%(日語和中文通常更短)。
  • 一些語言需要較大的字體大小(日本,中國)
  • 顏色有特定的語言環境也。紅色和綠色並不意味着無處不在!
  • 將區域設置名稱的類名添加到文檔的主體標籤。這樣,您可以輕鬆地在CSS文件中指定特定的區域設置。
  • 小心變量替換。不要拆分你的字符串。留下他們全部像這樣:「你有X條新消息」,並用#代替'X'。
  • 不同的語言有不同的複數形式。 0,1,2-4,5-7,7-無限。很難處理。
  • 上下文很困難。有時候,本地化人員需要知道字符串在哪裏/如何使用,以確保其正確翻譯。

資源:

1

在國外生活的時候,已經成爲許多Web應用程序的做法感到沮喪國際化,有blogged about my frustrations英語的人。

我的祕訣是:

  • 想想你如何顯示網頁
  • 使用地理定位可能適用於許多用戶的一個國際版本,但我的例子顯示對於許多人來說不會
  • 爲什麼不使用Accept-Language頭用於確定哪些語言服務
  • 如果用戶通過搜索引擎訪問一個頁面,然後不重定向他們在其他地方如在不同的語言
  • 主頁這是非常惱人的改變語言,有不同的頁面重載 - 無論是服務於同一頁面或重定向他們
  • 英語之前向用戶發出警告,目前的內容不可用不同的語言是一種很常見的語言,所以也許默認爲是
  • 但要確保在變化的語言選項是在GUI清楚(我喜歡谷歌地圖正在做的,如在後)

我看到的在網絡上是企業內化錯誤。從用戶的角度來看,它確實很棘手。