我使用struts2屬性文件來提供對多種語言的支持,並且工作正常。Struts2 i18n - 是否可以輕鬆查看缺失的翻譯?
忘記在某些JSP中硬編碼的某些文本或未正確翻譯的錯誤總是很容易的。
是否有一種簡單的方法可以通過將所有翻譯的項目替換爲「ZZZ」來進行可視化,因此我們只會看到沒有提供翻譯的地方?
一個想法是以某種方式動態地(在運行時)用「ZZZ」替換屬性文件中的所有文本項 - 有沒有一種簡單的方法來做到這一點?我的意思是覆蓋所有已翻譯的項目(不涉及文件本身,只是在內存中)?
我使用struts2屬性文件來提供對多種語言的支持,並且工作正常。Struts2 i18n - 是否可以輕鬆查看缺失的翻譯?
忘記在某些JSP中硬編碼的某些文本或未正確翻譯的錯誤總是很容易的。
是否有一種簡單的方法可以通過將所有翻譯的項目替換爲「ZZZ」來進行可視化,因此我們只會看到沒有提供翻譯的地方?
一個想法是以某種方式動態地(在運行時)用「ZZZ」替換屬性文件中的所有文本項 - 有沒有一種簡單的方法來做到這一點?我的意思是覆蓋所有已翻譯的項目(不涉及文件本身,只是在內存中)?
我們只需創建一個屬性文件,其值設置爲類似於?es_firstNameLabel等,並將語言環境設置爲使用該屬性文件。然後你通過你的應用程序查看enlgish(或者你的母語是什麼)。這很醜陋,但這很好 - 它應該是醜陋的,所以你更容易地展示節目。
不幸的是,沒有真正簡單的方法來自動化檢查部分,你只需要逐個迴歸你的頁面。
當這一切都說過和做過,你可以回去,並開始用適當的值替換?es_propertyLabel的東西,所以當你開始創建新的語言條目它工作得很好。
你指的是一個叫做僞構建的概念。不用替換,通常會向資源字符串(屬性文件中的值)添加前綴和後綴,並測試應用程序是否有錯誤。
不幸的是,這樣只會讓你硬編碼字符串缺陷的子集,因爲幾乎沒有辦法測試所有可能的執行路徑。當然,在測試過程中省略alt和title屬性的內容很容易 - 您可能很難注意到問題。
老實說,沒有簡單的方法來發現代碼中的國際化錯誤。爲了做到這一點,您可能需要運行一些像Globylizer這樣的商業工具,或者開發自己的工具。如果只注重硬編碼字符串(這是坦率地說只是問題的一部分),你可以破解一些正則表達式找到打開和關閉標籤之間的文本和文件的缺陷,如果它是不喜歡隨便你使用翻譯<s:text>
或任何。