gpt4 book ai didi

java - 国际化java软件

转载 作者:行者123 更新时间:2023-12-01 04:37:00 24 4
gpt4 key购买 nike

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

我做了一些研究,但没有找到可行的解决方案。我的项目经理要求我在 stackoverflow 上询问,

为了使 Java 软件国际化,你们工作人员目前采取了哪些做法?

编辑

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

由于该软件是用Java编写的,因此显然使用了RessourceBundles。 RessourceBundles 提供良好的键值查找,如果当前区域设置不存在特定翻译,则可以回退到默认值。 ResourceBundles 也不限于文本翻译,还包括资源的国际化。例如,颜色或图像对于不同的文化意味着不同的事物。

虽然这一切都很好,但纯粹使用 Java PropertiesResourceBundles 无法为翻译器提供元数据,也无法处理复数形式。

GNU Gettext 采用另一种国际化方法。消息以英文源代码编写,然后提取并存储到文件中。提取程序搜索函数调用并提取参数。例如,tr("Hello, World!") 命令行实用程序 xgettext 将搜索函数“tr”的出现并提取所有字符串文字。

存在 gettext 的 Java 实现,例如:

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

最佳答案

阅读本文 trail因为它应该可以回答您的大部分问题。

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

翻译全部保存在具有标准化格式和命名约定的属性文件中。对于客户端应用程序,该过程的工作方式大致相同,尽管我不认为它那么顺利

据我了解,专业翻译人员拥有可以加载属性文件并协助他们进行翻译的软件。在属性文件中添加注释非常有用,这样翻译人员在翻译时就有了一些上下文。

关于java - 国际化java软件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17193826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com