2012-08-02 79 views
2

我有一個需要國際化的Grails應用程序。 Grails使用messages.properties文件可以很容易地翻譯固定字符串,但是我找不到如何翻譯模型字段。在Grails應用程序中國際化模型

是否有某種方式可以管理國際化模型,以便可以在某個管理區域輸入多語言模型,並在視圖中選擇正確的模型?

我可以捲起我自己的系統,但也許這種類型的東西已經存在了,它比我寫的更具特色和戰鬥測試。 Django發生了這種情況:我使用了一個自定義系統 - 我將在下面介紹 - 用於國際化,只是爲了發現各種Django應用程序已經解決了這個問題。

如何解決這個問題

如果不清楚是什麼,我想實現的一個例子,在這裏我描述我在Django上使用的實現。

我有兩個基本的抽象模型,I18NModelTranslationModel。應用程序中使用的實際模型從前者繼承,而從後者翻譯。在繼承中,他們需要爲未翻譯的模型定義一個外鍵,並用關聯的語言定義一個字段。

反過來,原始模型繼承了方法translate,該方法使用語言並返回代理模型。該代理對原始未翻譯模型和與正確項目和語言相關的已翻譯模型都有參考。

每當您詢問代理上的字段時,它都會嘗試查找它是否在翻譯的模型上定義。如果是的話,它會返回,否則它會默認爲未翻譯模型上的字段。

與方法掛鉤它來查找當前語言,我得到結果的東西,我可以在模板中使用這樣的:

<h1>{{ article.translate.title }}</h1> 

同時允許編輯插入在管理方面的翻譯。

+1

是否這樣? http://grails.org/plugin/i18n-fields – 2012-08-02 09:15:00

+0

謝謝,這正是我正在尋找的!如果你插入它作爲答案,我會很高興接受它 – Andrea 2012-08-02 09:25:58

回答