【问题标题】:GWT i18n Message Properties does not Display special Character like ßGWT i18n 消息属性不显示特殊字符,如 ß
【发布时间】:2015-04-14 20:15:50
【问题描述】:

我使用 GWT i18n Messages 来翻译消息:

@DefaultLocale("en")
public interface Messages extends com.google.gwt.i18n.client.Messages {

    @DefaultMessage("Size")
    String size();

}

对于德语,我有 Messages_de.properties 文件。

size=Größe äüö ÄÖÜ

在我使用的一个 UIBinder 模板中

<ui:text with="{messages.size}"/>

当用户的浏览器是de我得到Grösse ÄÖÜ ÄÖÜ而不是Größe äüö ÄÖÜ被显示。

我的工作区以及我的 .properties 文件设置为 UTF8。

我怎样才能正确显示德语中的特殊字符ß,或者有没有办法包含ASCII码?

解决方案:当您设置 CSS text-transform: uppercase; 时,ß 将转换为 SS

【问题讨论】:

    标签: java javascript html gwt internationalization


    【解决方案1】:

    GWT 始终为 UTF8。因此,解决问题的最简单方法是将工作区的编码设置为 utf-8。

    或选择您的 Messages_de.properties,鼠标右键并选择属性。使用 Resources 将属性文件的编码设置为 utf-8。

    【讨论】:

    • 你检查过浏览器内的编码吗?
    • 我所有的文件都是 UTF8
    • 您可以输入特殊字符作为utf8-codes。这会奏效。但是还有另一个问题。刚刚检查了我的项目。 ä、ü 等德语字符没问题。
    • 德语字符如 ä, ü, ö 显示为 Ä, Ü, Ö 它们总是大写。
    【解决方案2】:

    这是 Eclipse 处理 properties 文件的方式的问题。您可以将整个工作区设置为 UTF-8,它仍会将properties 文件视为ISO 8859-1 - 因为that's the default/expected encoding。但是,GWT 使用 an enhanced properties file format,它直接使用 UTF-8(无需转义字符)。

    您必须单独覆盖此设置:

    您可以在此处将所有*.properties 文件的默认编码更改为UTF-8(不要忘记点击Update 按钮)。

    但请注意,这意味着将所有 properties 文件视为 UTF-8。因此,除非您确定这不会破坏任何内容,否则我会将文件关联范围缩小到 *Messages.properties 文件(如果您的所有翻译文件都有 Messages 后缀)。或者只是使用不同的编辑器来编辑属性文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多