【问题标题】:Internationalize models in Grails applications国际化 Grails 应用程序中的模型
【发布时间】:2012-08-02 09:01:54
【问题描述】:

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

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

我可以建立自己的系统,但也许这种类型的东西已经存在,而且它比我写的更具特色和经过实战考验。这在 Django 中发生在我身上:我使用了一个自定义系统(我将在下面描述)进行国际化,结果发现各种 Django 应用程序已经解决了这个问题。

如何解决此问题的示例

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

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

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

每当您在代理上请求一个字段时,它都会尝试查找它是否在翻译后的模型上定义。如果是,它会返回它,否则它会将未翻译模型上的字段作为默认值。

将它与查找当前语言的方法挂钩,结果我得到了可以在模板中使用的东西:

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

同时允许编辑在管理区域插入翻译。

【问题讨论】:

  • 谢谢,这似乎正是我想要的!如果您将其作为答案插入,我将很高兴接受它

标签: grails internationalization


【解决方案1】:

看起来i18n-fields plugin 做了这件事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多