代码之家  ›  专栏  ›  技术社区  ›  Brad Rhoads

如何保持Java属性文件的可读性

  •  0
  • Brad Rhoads  · 技术社区  · 15 年前

    GRAILS也使用Java属性文件。

    我可以使用google translate对message.properties文件进行初始翻译,甚至可以翻译成中文等语言。当我在netbeans或notepad++中查看时,我可以在新消息的属性文件中看到实际的中文字符。

    但是一旦文件进入SVN,当它被签出时,汉字就不再可见了。您所能看到的就是ISO 8859-1编码。例如:

    default.paginate.prev =\u4e0a\u4e00\u9875
    default.paginate.next =\u4e0b\u4e00\u6b65
    default.boolean.true =\u771f
    default.boolean.false =\u5047
    

    一旦应用程序运行,它仍然可以工作。谷歌翻译是翻译的一个很好的捷径。但在那之后,属性文件需要发送到一个本机扬声器进行编辑。

    那么,如何才能让i so 8859-1中的属性文件恢复为人类可读的?这样地:

    default.paginate.prev =上一页
    default.paginate.next =下一步
    default.boolean.true =真
    default.boolean.false =假
    
    4 回复  |  直到 15 年前
        1
  •  1
  •   Alexander Pogrebnyak    15 年前

    对于Eclipse,有一个“属性编辑器”插件-> http://propedit.sourceforge.jp/index_en.html

    它做的正是您要找的,对glyph执行unicode,并在幕后进行反向翻译。

        2
  •  1
  •   Thorbjørn Ravn Andersen    15 年前

    我认为你的诊断是错误的。

    属性感知编辑器使用\uxxxx语法来保存非ASCII序列,使其在编码方案和平台之间具有健壮性,我认为这就是这里所发生的事情。

    请回顾您的步骤,查看在此表单中保存的编辑器,然后继续使用此编辑器(以及其他\uxxxx意识的编辑器)或远离它。您可能希望告诉说母语的翻译人员使用与您选择的相同的编辑器。

        3
  •  1
  •   robbbert    15 年前

    我愿意去 索尔比安徒生 答案是: 性能 文件已在专用编辑器中编辑,该编辑器自动以其ASCII符号(\uxxxx)保存Unicode字符。

    亚历山大·波格利布尼亚克 提到了这样的编辑器,它们在“Java世界”中非常常见。

    摩洛尼亚 提到 native2ascii 工具(与JDK一起提供),用于在引擎盖下进行转换。


    现在有一些关于这些的背景:

    爪哇 的i18n机制主要基于 PropertyResourceBundle 类,哪个 ApiDoc 国家:

    构造PropertyResourceBundle 来自inputstream的实例需要 将输入流编码为 ISO-859-1在这种情况下,字符 不能用 ISO-8859-1编码必须 由Unicode转义表示

    因此,作为一个解决方法!!)在Java世界中,您可以使用JDK的 本地2ASCII 转换 性能 文件,或者使用专门的编辑器保存“unicode转义”,但允许编辑实际的unicode字符。

    春天 相比之下,框架i18n机制默认是基于Spring的 ResourceBundleMessageSource 类,它完全启用了Unicode。 格雷斯 ‘I18N机构基于弹簧。

    Grails默认设置 grails.enable.native2ascii = true 意在启用混合Spring/Grases和Java环境。-你也不需要 本地2ASCII 工具也不是特殊的 性能 如果你不使用Java自己的文件编辑器 ResourceBundle.getBundle("foo").getKey("bar") 如果你不使用“经典Java”JSTL或JSF标签。

    使用Grails和Spring,可以使用Unicode 性能 文件的原样。

        4
  •  0
  •   mfloryan    15 年前

    我和SVN没有关系-我不认为。Grails中有一个配置选项用于指示这种行为。在 Config.groovy 文件您将找到以下行:

    // enabled native2ascii conversion of i18n properties files
    grails.enable.native2ascii = true
    

    这意味着, native2ascii 命令应用于属性文件,并将其转换为Unicode符号。您可以将此选项设置为 false 如果要保留原始的本机语言字符集。您可以使用 native2ascii -reverse 命令。