代码之家  ›  专栏  ›  技术社区  ›  andri

管理Java属性文件的本地化

  •  24
  • andri  · 技术社区  · 15 年前

    我有一个用Java编写的Web应用程序,它的目标是几个国家,所有的国家都讲不同的语言(而且通常是几种语言,那就是欧洲)。

    我们有很多 .properties 保存本地化字符串的文件,我们当前的过程是在执行主要更新之前,将特定于语言的文件通过电子邮件发送给合作伙伴进行更新。

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

    有没有人知道有什么现有的软件可以帮助我们解决这个问题?

    至少,我在想一些东西,可以让你加载一个主文件(例如,英语),一个本地化的文件,然后突出显示添加到主文件或从主文件中删除的键。

    13 回复  |  直到 8 年前
        1
  •  9
  •   ChssPly76    15 年前

    我已经用过 Jinto 为了这个目的 EPFE (旧版本,还没试过新版本)。

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

        2
  •  5
  •   ahus1    13 年前

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

    每当有更改时,我们的持续集成服务器就上传我们的(英文)Java属性文件。不同语言的用户可以登录并更新他们的翻译。

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

    当有发行版时,我们下载文件,将它们与应用程序捆绑并部署。

    该解决方案突出了什么是翻译,未翻译,需要验证,提供翻译记忆,并集成,即谷歌翻译。

    谨致问候, 亚力山大。

        3
  •  3
  •   Mike Sickler    15 年前

    Netbeans 有一个非常优秀的Java属性编辑器,它可以同时显示每个区域。您可以很容易地看到不同语言不存在哪些属性。

        4
  •  3
  •   mromaine    14 年前

    对于导入、管理甚至可能订购没有内部翻译程序的语言的翻译,mygengo的字符串(http://mygengo.com/string/about)是一个免费的托管解决方案。支持为各种平台导入各种语言文件。(完全公开-我是MyGengo的联合创始人)

        5
  •  3
  •   Omnaest    13 年前

    即使这超出了原始海报的时间范围:

    i18nBinder

    是一个ant任务,用于将属性文件转换为excel xls文件。

    区域设置放在每个键(行)的列中。

    然后,它将xls文件中的更改写回原始文件。这很方便,因为你是用excel来编辑,每个人都很熟悉。

    最好的问候

        6
  •  2
  •   DylanYi    12 年前

    怎么样 localizedproperties eclipse插件?它类似于jinto,但支持3.6版本的eclipse。

        7
  •  2
  •   lapo    10 年前

    Eclipse ResourceBundle Editor 似乎是“EclipsePlugin”部门中最新的(更好的)选择。

    enter image description here

        8
  •  1
  •   richj    14 年前

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

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

    新的字符串用“伪翻译”字符标记,这样通过简单的文本搜索就可以很容易地找到未翻译的字符串。

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

    这个系统工作得非常好,现在它是半自动化的,每次本地化更新大约需要一个小时,而不是以前完全手工操作时的1-2天。

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

        9
  •  1
  •   Aravind Yarram    14 年前

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

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

        10
  •  1
  •   nicolimo86    8 年前

    我试过 Everit - i18n Props XLS Converter 它完成了任务。

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

    在这一点上,您可以将XLS发送给您的翻译程序,以便将其翻译成正确的翻译,然后将其转换回在Java项目中使用的属性。

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

        11
  •  0
  •   Ceki    15 年前

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

        12
  •  0
  •   Ben Sion    13 年前

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

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

        13
  •  -1
  •   user1152262    12 年前

    哇,我很惊讶人们竟然没有探索excel中显而易见的重要性。

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

    它会询问您是否希望对列进行分隔,请选中该选项。

    在导入过程的下一个屏幕上,它将询问您需要哪种分隔符,选择Other并在框中输入“=”(不带引号)

    选择“下一步”并开始。您有一个带有属性的excel工作表。