管理Java属性文件的本地化

时间:2009-09-02 01:07:12

标签: java localization properties

我有一个用Java编写的Web应用程序,该应用程序针对的是几个国家,所有这些国家都使用不同的语言(通常是几种语言 - 欧洲适合您)。

我们有一堆.properties个文件来保存本地化的字符串,我们当前的程序是在进行重大更新之前将特定语言的文件通过电子邮件发送给我们的合作伙伴进行更新。

然而,这个过程相当容易出错,因为有时人们会忘记翻译新的字符串,有时新的字符串不会被添加到每个语言文件中,因此很容易出现小错误。

有没有人知道任何可以帮助我们清除这个烂摊子的现有软件?

至少,我正在考虑允许您加载主文件(例如,英文),本地化文件,然后突出显示添加到主文件或从主文件中删除的键的内容

13 个答案:

答案 0 :(得分:9)

我已将Jinto用于此目的以及EPFE(旧版本,尚未尝试过最新版本)。

两者都是Eclipse插件,如果你能够通过他们将重新排序资源包中的密钥的事实,两者都相当不错。然后还有Babel - 我没有亲自尝试过,所以我不知道它有多好。

答案 1 :(得分:5)

我们使用https://webtranslateit.com/作为托管服务。

我们的持续集成服务器会在发生更改时上传我们的(英语)Java属性文件。然后,不同语言的用户可以登录并更新其翻译。

有一个很好的API允许我们为我们的Web应用程序“动态”获取翻译,但这只是目前的内部解决方案。

当有版本时,我们下载文件,将它们与我们的应用程序捆绑在一起并进行部署。

该解决方案突出了翻译,未翻译,需要验证,提供翻译记忆和整合,即谷歌翻译。

祝你好运, 亚历山大。

答案 2 :(得分:3)

Netbeans有一个非常出色的Java属性编辑器,可以并排显示每个语言环境。您可以轻松查看不同语言的哪些属性不存在。

答案 3 :(得分:3)

为了导入,管理甚至可能为您没有内部翻译的语言订购翻译,myGengo的String(http://mygengo.com/string/about)是一个免费的托管解决方案。支持为各种平台导入各种语言文件。 (完全披露 - 我是myGengo的联合创始人)

答案 4 :(得分:3)

即使这是原始海报的时间范围:

i18nBinder

是用于将属性文件转换为Excel XLS文件的Ant任务。

区域设置位于每个键(行)的列中。

之后,它会将xls文件中的更改写回原始文件。这非常方便,因为您使用Excel进行编辑,所以每个人都熟悉它。

祝你好运

答案 5 :(得分:2)

localizedproperties Eclipse插件怎么样?它与Jinto类似,但支持Eclipse版本高达3.6。

答案 6 :(得分:2)

Eclipse ResourceBundle Editor似乎是" Eclipse插件中的最新(和更好的,恕我直言)选择"部。

enter image description here

答案 7 :(得分:1)

  

有时人们会忘记翻译新的字符串,有时新的字符串不会被添加到每个语言文件中,因此很容易出现小错误。

我使用了稍微不同的方法,因为我发送了包含现有本地化字符串的.properties文件,这些字符串按照我想要的顺序与新的未翻译字符串合并。

新字符串标有“伪翻译”字符,因此通过简单的文本搜索很容易找到未翻译的字符串。

翻译人员很少会丢失属性或忘记翻译字符串。最常见的错误是忘记从新翻译的字符串中删除伪翻译字符。在将新翻译提交回修订控制系统之前进行的差异检查非常适合捕获这些错误。

这个系统运行良好,现在它是半自动化的,每个本地化更新需要大约一个小时,而不是过程完全手动时所用的1-2天。

我编写了自己的工具来生成合并文件,并在新主服务器,旧本地化文件和新生成的合并文件之间进行三向比较,但是以相同方式合并更改的任何工具都可以使用过程

答案 8 :(得分:1)

我一直在使用JRC Editor来管理资源包。它将突出显示缺少值的键,如下面的screen shot所示。

它还允许您使用本机语言处理捆绑包(因此最终用户友好),并且它将在幕后将字符转换为“\ uxxx”。

答案 9 :(得分:1)

我尝试了Everit - i18n Props XLS Converter并完成了工作。

您可以指定包含翻译的属性.properties的位置,并且您将获得填充了其中包含的所有值的.xls。

此时,您可以将xls发送给您的翻译器,翻译器将使用正确的翻译填充它,然后将其转换回.properties以在您的Java项目中使用。

该项目托管在github中,需要使用maven和jdk8构建。

答案 10 :(得分:0)

CAL10N项目旨在解决此问题。它通过添加验证原语来构建资源包。它也很容易使用。

答案 11 :(得分:0)

答案有点晚,但为了将来参考,还有Tongue-Tied。它是一个基于Web的开源应用程序,用于管理静态资源和翻译。可以通过Web界面输入翻译。它支持导入/导出许多格式,如java属性文件,excel文件,csv等。如果需要,它还内置了一个小工作流程。

免责声明:我是项目主管。

答案 12 :(得分:-1)

哇,我很惊讶人们没有在Excel中探索明显的重要性。

转到Excel - >导入 - >选择属性文件(选择打开文件类型中的所有文件)。

它会询问您是否要对列进行分隔,请检查该选项。

在导入过程的下一个屏幕上,它会询问您想要哪种分隔符,选择其他并在框中添加“=”(不带引号)

选择下一个,然后瞧。你有一张excel表,准备好了。