2010-12-08 35 views
2

我非常喜歡在這裏的人們的意見/最佳實踐和經驗塊。本地化 - 第一步

我需要在ASP.net C#中生成一個新的網站,它需要根據用戶配置文件更改語言。

我已經做了幾個簡單的樣品,但我很好奇稍低的水平。我追求的資源真的可以閱讀和評論。

什麼設計模式適用於將數據網格轉換爲不同文化的工作。

如果我要存儲貨幣信息,是否存儲匯率也是標準做法?

如果我打算使用標準ASP.net Web應用程序的路線,我可以使用URL路由來幫助選擇要使用的文化嗎?例如www.mynewsite.com/en-GB/default.aspx。

智慧/思想歡迎。

爲希望感謝,並感謝多回答,

邁克

回答

3

一對夫婦的事情,我已經學會:

  • 絕對慘遭減少你有圖像的數量包含文字。這樣做會讓你的生活變得容易十億分之一,因爲你不必爲每一種語言都獲得一組新的圖像。

  • 對css定位非常警惕,它依賴於始終保持相同大小的東西。如果這些東西包含文字,它們將不會保持相同的大小,然後您將需要返回並修復您的設計。

  • 如果您在sql表中使用字符類型,請確保任何可能接收國際輸入的字符都是unicode(nchar,nvarchar,ntext)。對於這個問題,我只會標準化使用unicode版本。

  • 如果您要動態構建SQL查詢,請確保在任何帶引號的文本之前包含N前綴(如果有可能文本可能是unicode)。如果最終將垃圾放入SQL表中,請檢查是否存在。

  • 確保您的所有網頁都明確指出它們是unicode格式。見上面提到的喬爾的文章。

  • 你將會在這個項目中使用很多資源文件。這很好 - ASP.NET 2.0對此有很好的支持。您需要查看App_LocalResources和App_GlobalResources文件夾以及GetLocalResourceObject,GetGlobalResourceObject和meta:resourceKey的概念。專業ASP.NET 2.0的第30章有一些很好的內容。本書的3.5版本可能也有很好的內容,但我不擁有它。

  • 想想字體。許多您可能想要使用的標準字體都不支持unicode。我一直很喜歡Arial Unicode MS,MS Gothic,MS Mincho。不過,我不確定這些跨平臺是如何實現的。另外請注意,並非所有的字體都支持所有的Unicode字符定義。再次,測試,測試,測試。

  • 現在開始思考你將如何獲得翻譯到這個系統。請與您的翻譯供應商談談他們希望翻譯數據的方式。考慮一下這樣一個事實,即通過本地資源文件,您可能會在系統中重複使用一些常用的字符串。你是否將這些規範化爲全局資源文件,或者是否有某種數據庫層,其中只生成每個使用文本的一個副本。在我們最近的項目中,我們使用了從數據庫表中生成的資源文件,其中包含所有翻譯和資源文件的原始英文版本。

  • 測試。一般來說,我會用德語,波蘭語,希伯來語或阿拉伯語和亞洲語言(日語,中文,韓語)進行測試。德語和波蘭語是羅嗦的,幾乎可以保證伸展文本區域,亞洲語言使用完全不同的字符集來測試您的Unicode支持,而希伯來語和阿拉伯語都是右對齊的語言。

+0

所有的優點。字符串標準化是一種痛苦,因爲翻譯可以根據上下文(例如,女性形式)進行更改。另外,你和譯者之間的轉移是整個事情的最大麻煩,海事組織。 – Greg 2010-12-08 16:34:35