Struts2 i18n - 是否可以轻松查看缺失的翻译?

时间:2012-10-04 15:57:46

标签: java internationalization struts2

我使用struts2属性文件来提供对多种语言的支持,并且工作正常。

在某些JSP中忘记一些硬编码的文本或者没有正确翻译的错误总是很容易。

有没有一种简单的方法可以通过用“ZZZ”替换所有翻译的项目来形象化,因此我们只会看到没有提供翻译的地方?

一个想法是以某种方式动态地(在运行时)用“ZZZ”替换属性文件中的所有文本项 - 是否有一种简单的方法可以做到这一点?我的意思是覆盖所有翻译的项目(不触及文件本身,只是在内存中)?

2 个答案:

答案 0 :(得分:0)

我们只需创建一个属性文件,其值设置为?es_firstNameLabel等,并将语言环境设置为使用该属性文件。然后,通过您的应用程序查看enlgish(或任何您的母语)。这很难看,但这很好 - 它应该是丑陋的,这样你就可以更容易地完成演出了。

不幸的是,没有真正简单的方法来自动化检查部分,您只需逐个回归页面。

当完成所有操作后,您可以返回并开始使用适当的值替换?es_propertyLabel内容,因此在您开始创建新语言条目时效果很好。

答案 1 :(得分:0)

您所指的是一个名为伪构建的概念。通常在资源字符串(属性文件中的值)中添加前缀和后缀,并测试应用程序是否存在错误,而不是替换。

不幸的是,这只会给你硬编码字符串缺陷的子集,因为几乎没有办法测试所有可能的执行路径。当然,在测试过程中很容易省略alt和title属性的内容 - 你可能很难注意到这个问题。

老实说,没有简单的方法来发现代码中的i18n错误。为此,您可能需要运行一些商业工具,如Globylizer,或开发自己的工具。如果你只专注于硬编码字符串(坦白地说只是问题的一部分),你可能会破解一些正则表达式来查找开始和结束标记之间的文本,如果不是<s:text>之类的话,可以提交缺陷。你用来翻译。