GWT i18n - 复数形式根本不起作用?

标签 gwt internationalization gwt2

我正在使用 GWT 国际化消息。 documentation for Plural Forms说这应该有效:

@DefaultMessage("{0} {1,number} hours {2}")
@PluralText({"one", "an hour"})
String hours(String prefix, @PluralCount int count, String suffix);

嗯,事实并非如此。 count 的任意值它仍然提供 DefaultMessage (例如“1 小时前”)。如果我使用 .properties 文件也一样:

hours[one]=an hour
hours[few]=some hours
hours={0} {1,number} hours {2}

文档或 GWT(我使用的是 GWT 2.0.3)或我自己有错误吗?如果前两者中的任何一个,有人知道解决方法吗?

编辑:这个谜团的更多线索。如果我不依赖默认语言环境处理,我可以获得复数处理。也就是说,我需要:

  • 在我模块的 gwt.xml 文件中:

    <extend-property name="locale" values="en"/>

  • 在我的消息扩展中:

    @DefaultLocale("en")

    public interface MyMessages extends Messages { ...

  • 通过附加到 URL 显式加载“en”语言环境

    &locale=en

参见 http://groups.google.com/group/google-web-toolkit/browse_thread/thread/80ae300213cc6adb我在哪里交叉发布了这个问题。

编辑 2: 我进入这个 GWT 复数领域的原因是我正在创建一个“GWT HUman Readable Relative Timestamps”模块。在 GitHub 上开源:http://github.com/PEZ/GWT-Relative-Time请检查一下。它很快就会有正确的单数形式并支持某些语言。 =)

最佳答案

另外,我认为知道默认的英文复数规则仅支持"other""one" 会节省人们的时间。

DefaultRule_en.java使用 DefaultRule_1_0n.java

所以你必须重新定义DefaultRule_en.java如果你想使用"none","two",few"... 可以在包com.google.gwt.i18n.client.impl.plurals中看到可用的规则.

关于GWT i18n - 复数形式根本不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3014047/

相关文章:

python - Django 国际化 (i18n) lint 检查器?告诉我什么还没有 _( )'ed or {% trans %}' ed

GWT Requestfactory性能建议

java - gwt的优点和缺点是什么?而我为什么要选择它来使用呢?

java - 如何仅使用 GWT 开发模块化企业应用程序

mysql - GWT+EJB+MYSQL

java - 如何将 Excel 文件写入可选文件位置?

不支持语言的 iOS 本地化

css - GWT 覆盖主题 CSS

ruby-on-rails - 您在 Rails 中使用 TextMate 的 i18n 工作流程?

java - GWT 中 RPC 调用后的流程?