java软件国际化

java软件国际化,java,internationalization,gettext,po,xliff,Java,Internationalization,Gettext,Po,Xliff,在实习期间,我被要求对软件国际化以及当前的实践和解决方案进行一些研究 我做了一些研究,没有找到可行的解决办法。我的项目经理要求我询问stackoverflow 为了实现Java软件的国际化,你们目前的工作实践是什么 编辑 以下是我的研究总结,以防其他人对我的发现感兴趣: 由于软件是用Java编写的,因此显然使用了ResSourceBundle。如果当前区域设置不存在特定的转换,ResSourceBundle提供良好的键值查找,并返回默认值。ResourceBundle还不仅限于文本的翻译,还包括

在实习期间,我被要求对软件国际化以及当前的实践和解决方案进行一些研究

我做了一些研究,没有找到可行的解决办法。我的项目经理要求我询问stackoverflow

为了实现Java软件的国际化,你们目前的工作实践是什么

编辑

以下是我的研究总结,以防其他人对我的发现感兴趣:

由于软件是用Java编写的,因此显然使用了ResSourceBundle。如果当前区域设置不存在特定的转换,ResSourceBundle提供良好的键值查找,并返回默认值。ResourceBundle还不仅限于文本的翻译,还包括资源的国际化。例如,颜色或图像对于不同的文化意味着不同的东西

虽然这一切都很好,但仅仅使用Java属性资源绑定无法为转换器提供元数据,也无法处理复数形式

GNUGetText采取了另一种国际化方法。消息以英文源代码编写,然后提取并存储到文件中。提取程序搜索函数调用并提取参数。例如,你好,世界!命令行实用程序xgettext将搜索函数tr的出现,并提取所有字符串文本

存在gettext的Java实现,例如:

gettext提供的ResourceBundle所没有的是复数处理和翻译的上下文。

请阅读此内容,因为它可以回答您的大多数问题

对于web应用程序,我们使用JavaEE提供的标准工具。这本质上意味着将消息包传递到JSF页面,然后在页面中使用类似于{msg.hello}的标记。msg是消息包的名称,hello是用于查找已翻译字符串的键

翻译都保存在具有标准格式和命名约定的属性文件中。对于客户端应用程序,这个过程的工作方式基本相同,尽管我觉得它不是很顺利


据我所知,专业翻译人员有软件可以加载属性文件,并帮助他们制作翻译。在属性文件中添加注释非常有用,这样翻译人员在翻译时就有了一些上下文。

除了其他答案之外,我建议使用一些技术/软件来分析/检查项目中的所有本地化资源是否同步。 这通常应该在构建时完成,这样您就可以更早地发现/捕获错误

我个人使用并推荐的一种工具是


希望这能有所帮助。

看。让你的经理回答你的问题。他还将学会更好地使用。