【问题标题】:Best internationalization strategy for ZKZK的最佳国际化战略
【发布时间】:2011-02-15 09:25:24
【问题描述】:

您使用什么策略来国际化用 ZK 编写的 Web 应用程序?

我目前正在使用他们的“有趣”语法 ${c:l('LABEL_NAME')},但它使用的机制有两个问题:

1) 它不接受 \uchcode 语法,这是 java 中资源包的标准。无法从 NetBeans 编辑此类文件。

2) 他们对整个 webapp 只使用一个文件,这可能非常大,我担心可能的性能因素。

因此我有两个问题:

1) 使用单个大型属性文件是否存在性能问题?

2) 还有没有其他好方法可以国际化 ZK 应用(zscript 我不认为是好方法)?

【问题讨论】:

    标签: internationalization zk


    【解决方案1】:

    1) 这对我来说不是问题。语言文件比其他文件小得多(因此读取它们的负载很轻)

    2) imo,我不会在我的在线项目中使用 zscript,你可以看看官方的性能提示 - Not to Use zscript for Better Performance

    更多关于ZK应用国际化的信息,请参考ZK Developer's Reference - Labels

    顺便说一句,我曾经创建一个 LabelManager 并在不同的语言/语言环境中管理源代码。

    【讨论】:

    • 嗯,通常语言文件要小得多,因为模块/页面通常有单独的语言文件。然而在 ZK 中,当整个应用程序只有一个文件时,这个文件可能是最大的......
    【解决方案2】:

    我认为加载 i18n 消息没有性能问题,它使用快速哈希来定位消息,但存在内存问题(将消息文本加载到不同本地的内存中)。但是我不关心内存问题,因为它只是短信,服务器功能强大并且内存很大。

    对我来说,我总是使用 ascii 作为键,所以没有键编码问题。

    有一点不太方便,我可以在一个 i3 文件中设置消息,如果我想设置多个(用于模块化消息)文件,我必须编写将 LabelLocator 注册到标签的代码。

    【讨论】:

      【解决方案3】:

      据我所知,c:l() 只是检索 I18N 标签的默认方式。如果您愿意,可以使用标准资源包。您所要做的就是实现一个静态方法,然后使用它来将其映射到 ZUL 页面。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-04-22
        • 1970-01-01
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-20
        • 2010-09-14
        相关资源
        最近更新 更多