在我的模型类中,我重写了toString()方法,下面给出了toString方法的内容。
getQueryName() + " -" + (getCriticalities().isEmpty() ? "" : " <b>Criticalities:</b> " + getCriticalities())
+ (getCompletions().isEmpty() ? "" : " <b>Completions:</b> " + getCompletions()) + (getPriorities().isEmpty() ? "" : " <b>Priorities:</b> " + getPriorities())
+ (getUrgencies().isEmpty() ? "" : " <b>Urgencies:</b> " + getUrgencies())
+ (getHistorical().isEmpty() || getHistorical().equals("None") ? "" : " <b>Historical:</b> " + getHistorical())
+ (getPlannerGroups().isEmpty() ? "" : " <b>Planner Groups:</b> " + getPlannerGroups())
+ (getWorkOrderNumbers().isEmpty() ? "" : " <b>Work Order Number:</b> " + getWorkOrderNumbers())
+ (getWorkCenters().isEmpty() ? "" : " <b>Work Centers:</b> " + getWorkCenters());
我必须改变用户选择的语言中的关键词,完成词等词。我已经有了语言的属性文件。但由于它是一个实体类,我不确定如何改变它。
答案 0 :(得分:0)
我认为你有两个选择: 在toString方法中返回语言键而不是文字,然后使用bundle.getString(object.toString())
或者将键设置为变量,然后在toString方法中使用bundle.getString(variable)。
答案 1 :(得分:0)
我担心你会遇到“关注点分离”的问题 在理想世界中,它是负责I18n的视图,即解析翻译。您的模型应该是语言识别的具体原因吗? 就个人而言,我不这么认为。您应该尽可能保持模型与语言无关,并格式化所有数字,并翻译视图中的所有消息。
这里需要注意的一件事:如果像db.transaction(function(tx) {
fn2(tx).then(function(tx) {
// new tranaction as the old one is closed
db.transaction(function(tx) {
$q.all(fn(tx)).then(function(a) {
console.log("Result:", a);
});
});
});
});
这样的东西需要翻译并且项目没有太多,那么使用枚举而不是字符串通常是有意义的(在编程逻辑中使用字符串被认为是不好的做法,方式)。
如果必须使用特定对象,则添加特定标识符可能是有意义的,以后可以使用该标识符来解析翻译(在Criticalities
查找中)。有时您可以使用对象值,但这会降低翻译质量,因为翻译人员需要上下文(提供上下文的最简单方法是将其带入翻译密钥)。