我即將爲我的僱主啓動一個本地化項目。它涉及一個預先存在的項目,它具有許多Windows窗體和一個已建立的代碼庫,用C#和ASP.NET編程。我已經研究瞭如何在Visual Studio中本地化應用程序並找到資源。用擴展方法替代本地化
雖然這些都是解決問題的充分辦法,但我並不完全滿意使用資源的不利方面。這就是說,它具有相當大的佔用空間,需要對每個表單文件進行更改。此外,資源文件只能在Visual Studio中編輯。我寧願讓沒有編程知識的外部翻譯人員進行翻譯。
於是我想出了一個替代解決方案:
建立一個靜態的本地化工具類的擴展方法對字符串:
public static String Localize(this String s)
從文件的實用程序類加載的本地化字符串上啓動。當程序需要某個字符串時,它被稱爲
"foo".Localize();
而程序將使用字符串本身作爲表中的鍵來查找翻譯。 這似乎是一個安全和有效的解決方案,我很滿意它留在現有代碼庫上的小腳印。
基本上我要問:
- 是否有不足之處,以我的解決方案,我已經錯過了嗎?
- 我應該查看哪些文件格式的本地化數據(我已經遇到.po文件格式)?
- 是否有足夠的理由偏離資源文件解決方案?
任何建議和/或您可能有的考慮將不勝感激。
我認爲對現有代碼庫的影響是一樣的。您必須將該方法添加到所有當前文字。你打算使用文字「選擇三個選項之一香蕉,獼猴桃還是橙色」作爲關鍵?聽起來很棘手。我不會偏離完美理智的默認解決方案。如果添加了不同的語言,您總是可以重新部署應用程序。 – Bas