Grails 本地化数据库字符串
我有一个小型Grails应用程序,它具有以下域:Grails 本地化数据库字符串,grails,Grails,我有一个小型Grails应用程序,它具有以下域: class Meal { String name String description String allergyNote } 为了本地化的目的,这三个字符串现在应该有多种语言。例如,英语用户将看到name=“Steak”,而西班牙语用户则应在输出中看到name=“Filete”。我想做以下几件事: class Language { String isoCode String languageName } class T
class Meal {
String name
String description
String allergyNote
}
为了本地化的目的,这三个字符串现在应该有多种语言。例如,英语用户将看到name=“Steak”,而西班牙语用户则应在输出中看到name=“Filete”。我想做以下几件事:
class Language {
String isoCode
String languageName
}
class TranslatedString {
Language language
String translation
}
但我不确定如何将膳食与TranslatedString链接,因为它用于三个成员,我还想将其用于其他类(不仅仅是膳食)(或者我是否需要单独的表,即MealNameTranslated、MealDescriptionTranslated等表?)。我知道这可能是一个愚蠢的问题,但我是一个初学者,还没有弄明白这一点:-(您的
TranslatedString
类不完整,因为无法知道它是什么的翻译。您需要在这里再添加一个实体,为字符串提供某种标识符:
// object/record identity is used as key
class StringKey {
String keyName // purely descriptive, not actually used at runtime
}
class TranslatedString {
// the following 2 form a primary key
StringKey key
Language language
String translation
}
class Meal {
StringKey name
StringKey description
StringKey allergyNote
}
然后,您可以查看
翻译给定键和语言您还应该查看(他是SpringSource的Grails开发负责人)这篇文章解释了如何将标准静态Grails i18n翻译属性文件移动到数据库中。它还包括缓存支持。感谢您对我的答案的解释。我已经删除了它,因为它不是您想要的。您可能希望将您在评论中的示例放入问题itse中如果要帮助澄清。谢谢,已经添加了示例(牛排->文件)谢谢,这是有意义的。至于我问题的另一部分:如果我删除了膳食,理想情况下翻译的字符串也应该删除。但是如果我将StringKey/TranslatedString用于除膳食之外的其他对象,sime“static belongsTo”(可能)将不起作用。。。