在Grails应用程序中国际化模型

时间:2012-08-02 09:01:54

标签: grails internationalization

我有一个需要国际化的Grails应用程序。 Grails可以使用messages.properties文件轻松翻译固定字符串,但我找不到如何翻译模型字段。

  

有没有办法管理国际化模型,以便可以在某个管理区域输入多种语言的模型,并在视图中选择正确的模型?

我可以卷起我自己的系统,但也许这种类型的东西已经存在,并且它比我写的更具特色和战斗测试。这在Django中发生在我身上:我使用了一个自定义系统 - 我在下面描述 - 用于国际化,但却发现各种Django应用程序已经解决了这个问题。

如何解决此问题的示例

如果我不清楚我想要实现什么,这里我描述了我在Django上使用的实现。

我有两个基本抽象模型,I18NModelTranslationModel。应用程序中使用的实际模型从前者继承而来自后者的翻译。在继承中,他们需要为未翻译的模型定义外键并定义具有相关语言的字段。

反过来,原始模型继承了一种方法translate,它采用了一种语言并返回了一个代理模型。此代理既可以引用原始的,未翻译的模型,也可以引用与正确的项目和语言相关联的翻译模型。

每当您在代理上询问某个字段时,它会尝试查找是否在已翻译的模型上定义了该字段。如果是,它将返回,否则它将默认为未翻译模型上的字段。

用一种找到当前语言的方法来挂钩,结果我在模板中可以使用这样的东西:

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

允许编辑者在管理区域中插入翻译。

1 个答案:

答案 0 :(得分:4)

看起来像i18n-fields plugin那样。