2010-04-12 59 views
3

我們走向全球。我一直負責重構現有產品以支持本地化。上週,我避開了使用資源文件(.resx)而採用家庭數據庫查找方法。在遇到嚴重的問題後,我回到了使用resx的微軟方式。重構現有.net應用程序以支持本地化的技巧?

到目前爲止,我所見過的所有文檔都詳細說明了如何創建新的「世界就緒」應用程序,但我沒有看到任何改變現有應用程序的內容。我唯一的辦法是通過控件的形式和控制來觸摸應用程序表單,使其指向新創建的資源文件?

任何良好的來源/鏈接爲您的應用程序國際化?

編輯: 這些是C#winform應用程序,我主要使用2.0框架。我是公司的新人。

回答

2

對不起,沒有好的來源或鏈接來使您的appolication國際化,但也許使用此resource refactoring tool連同localization FxCop rule可能有助於查找所有字符串進行本地化。 Imo,這個規則太嚴格了(例如,例外文本或日誌記錄輸出不意味着被最終用戶讀取),但是你的里程可能會有所不同。

+0

用於重構工具的+1。我希望在2周前手動完成整個網站時, – Brandon 2010-04-12 20:25:08

0

這將會是很多工作,可能比如果應用程序本地化開始,因爲現在你必須刪除/編輯的東西,而不是僅僅創建它們。

即使有一個自動化的工具來幫助您,您仍然需要逐一查看每個表單以確保格式不會因爲本地化字符串而中斷(某些語言通常比其他語言更長;也就是說,德語與英語)。這個應該是對於Web表單應用程序來說更容易,但是你沒有指定應用程序類型,所以我會嘗試在這裏給出一箇中等中立的答案。

看看我對this question的回答,瞭解我通過應用程序分發本地化字符串的策略。

我見過的最大問題是本地化字符串,其中語言語法很重要,代碼是以編程方式將值注入字符串。儘量避免這些,因爲它們只會導致你痛苦。我記得關於本地化字符串的一個問題,比如「x天,y小時,z分鐘」 - 或者這個問題。

我在大多數情況下使用的策略是找到一種方法,如果可能的話,以本地中立的方式顯示相同的數據。例如,不用具有「45分鐘」文本的單個標籤來重構它,以將標籤與值分隔爲「分鐘:」和「45」。像這樣的東西。重構用戶界面與科學一樣重要,因此很難在不知道你在處理什麼,業務領域或用例等的情況下給出具體的答案。