2009-09-02 58 views
23

我用Java编写的Web应用程序的目标是一些国家,它们都说着不同的语言(和更多的往往不是,几种语言 - 这是欧洲为你)。管理Java属性的本地化文件

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

然而,这个过程是相当容易出错,因为有时人们忘记翻译新字符串,有时新的字符串没有被添加到每一个语言文件,因此小失误打通变得非常容易。

有谁知道任何现有的软件可以帮助我们清除这个混乱?

至少,我正在考虑一些能够加载主文件(例如英文)的本地化文件,然后突出显示添加到主服务器或从主服务器中删除的密钥文件。

+0

这是我作为实习生的第一个项目; -P!不幸的是,它是一个内部工具。 – 2009-09-02 01:37:58

回答

9

我用Jinto用于这一目的,以及EPFE(旧版本,还没有试过最新的一个)。

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

+0

这些确实是一些有趣的项目,但不幸的是,他们似乎不适合没有一些主要工作的非技术翻译人员。 – andri 2009-09-02 18:45:28

+0

@andri - “主要工作”是什么意思?您需要安装Eclipse和其中一个插件 - 就是这样;之后没有任何“技术”参与。你的翻译人员会看到这样一个屏幕:http://www.guh-software.de/images/jinto1.gif,做他们的事情,你会找回你的资源包。如果你觉得冒险:-)你甚至可以向他们展示如何从Eclipse中检查它。 – ChssPly76 2009-09-02 19:22:39

+0

我的意思是用户是*非技术* - 安装Eclipse和插件,更不用说使用SCM,远远超过他们。我需要使用精简的Eclipse(因为过多的功能必然会混淆它们)使用这些插件创建一个包,并希望它们在安装时不会弄乱某些东西。 – andri 2009-09-02 21:31:18

0

CAL10N项目旨在解决这一问题。它通过添加验证基元来建立在资源束上。它也相当容易使用。

3

Netbeans有一个真正优秀的Java属性编辑器,显示你每个地区并排侧。你可以很容易地看到哪些属性缺席不同的语言。

+0

鉴于Jinto尚未更新并且[MultiProperties](http://code.google.com/a/eclipselabs.org/p/multiproperties/)能够运行,但使用自定义XML,NetBeans似乎是最佳选择 - 即使Eclipse用户。 – 2012-11-28 01:05:30

1

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

我使用稍微不同的方法,我发送.properties文件包含现有的本地化字符串与新的未翻译的字符串合并的顺序,我希望他们回来。

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

翻译者很少失去属性或忘记翻译字符串。最常见的错误是忘记从新翻译的字符串中删除伪翻译字符。在将新翻译提交到修订控制系统之前进行差异检查,可以很好地捕捉这些错误。

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

我写了自己的工具来生成合并文件,并对新主文件,旧本地化文件和新生成的合并文件进行了三方比较,但任何以相同方式合并更改的工具都可以处理这个流程。

3

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

+0

你的工具看起来很不错。是否有任何建议甚至实施过程来配合版本控制?我希望别人翻译我的文件,但我也必须在版本控制中保留最终结果。 – Lunikon 2011-05-25 09:47:06

+0

+1,任何工作流程操作? – 2011-09-11 17:31:53

1

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

它还允许您使用本地语言(因此最终用户友好)使用捆绑软件,并将字符转换为“\ uxxx”,相当于幕后。

+0

可能很有趣,但它是否适用于Windows 3.1以外的任何操作系统? – 2016-03-08 03:44:14

3

即使这是出于时间范围为原来的海报:

i18nBinder

是一个Ant任务属性文件转换到Excel XLS文件。

语言环境在那里放置在每个键(行)的列中。

然后它将xls文件中的更改写回原始文件。这非常方便,而且由于您使用Excel进行编辑,所以每个人都熟悉这一点。

问候

0

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

免责声明:我是项目负责人。

5

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

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

有一个不错的API,它允许我们为我们的Web应用程序“实时”获取翻译,但这只是此刻的内部解决方案。

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

该解决方案突出了翻译,未翻译,需要验证,提供翻译记忆库以及整合(即Google翻译)的内容。

此致敬礼, 亚历山大。

-1

哇,我很惊讶有多疯狂,人们没有探索在Excel中明显的导入。

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

它会询问您是否希望分隔列,请检查该选项。

在进口过程中的下一屏幕,它会问你想要什么样的分隔符,选择其他,并放入盒(不带引号)

选择下一步,瞧“=”。你有一个excel表,物业准备好去。

+0

这个问题与Excel有什么关系? – 2012-11-13 21:53:24

+1

这会导致很多问题,从第一个问题后如何处理引号开始。然后有unicode逃脱。可能还有其他一些。 – 2013-07-25 23:42:36

+1

这听起来不错,但我认为你会得到unicodes的问题。以及如何再次导出属性文件。 – OblongZebra 2014-01-16 08:26:39

0

我试图Everit - i18n Props XLS Converter和它的工作。

您可以指定包含翻译的.rsperties的位置,您将得到一个包含所有值的.xls文件。

此时,您可以将xls发送给您的翻译人员,他们将用正确的翻译填充它,然后将其转换回.properties以用于您的Java项目。

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