0
根據文檔,app.json只允許定義一個語言環境。EXJS中的語言環境和動態多語言支持6
區域:「FR」
,如果我有一個多語言的應用程序,我希望用戶能夠動態地選擇自己的語言,會發生什麼?
如何包含多個區域設置?
然後,我怎樣才能動態地加載區域設置只改變一個Ext變量?例如:
Ext.setLocale(「es」);
根據文檔,app.json只允許定義一個語言環境。EXJS中的語言環境和動態多語言支持6
區域:「FR」
,如果我有一個多語言的應用程序,我希望用戶能夠動態地選擇自己的語言,會發生什麼?
如何包含多個區域設置?
然後,我怎樣才能動態地加載區域設置只改變一個Ext變量?例如:
Ext.setLocale(「es」);
ExtJs無法在本地執行此操作。
在我的應用程序中,我通過定義一個類似於gettext的語言類來解決這個問題。
這使我可以使用默認語言中的每個字符串包含在函數Lang ._('我的文本')中。然後獨立於ExtJs完成翻譯(在我的情況下,翻譯界面是用ExtJs編寫的,但翻譯本身是獨立的)。
我仍然不能動態地改變語言。爲此,我需要在瀏覽器中重新渲染應用程序。在我的情況下,翻譯編譯爲app.js
,因此不需要從服務器重新加載app.js
。
我只有兩種語言,所以這種方法是可以的。如果您需要支持多種語言,最好的方法是在呈現應用程序之前加載翻譯字符串。要切換語言,您需要加載翻譯並重新提交UI。
在Saki's ExtJs site上有一篇關於此的好文章。
我已經實現了'gettext'覆蓋你已經建議,但問題是,默認情況下,extjs的文本不會被locale取代。如日曆,警告消息和確認消息等,因爲我們只能在app.json文件中配置一個語言環境。如果您爲此提供解決方案,將會有所幫助。 –
我確切地知道你的意思。直到現在我沒有解決這個問題。我讓英文框架的文本常量。 –