2012-08-02 77 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

回答