【问题标题】:Cannot override tranlations (journal-lang)无法覆盖翻译(期刊语言)
【发布时间】:2016-11-28 08:51:51
【问题描述】:

我想覆盖一些 Liferay 的模块翻译。我在闲散:https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/overriding-a-modules-language-keys

它有效,但不适用于所有字符串。首先,我想覆盖 journal-lang 模块(com.liferay.journal.lang)中的一些字符串,但是这个模块没有 servlet 上下文名称。我试图跳过它,但它不起作用。如何覆盖这些字符串?

我也在尝试覆盖一些核心字符串(来自portal-impl),但其中一些仍未翻译。例如“添加字段”(add-field)来自定义新的表单视图。任何可能的解决方案?

【问题讨论】:

    标签: liferay liferay-7


    【解决方案1】:

    journal-lang是一个语言组件。为了覆盖其中的一些字符串,您必须为 bundle com.liferay.journal.webcom.liferay.journal.service 创建一个组件。

    【讨论】:

      【解决方案2】:

      您必须使用 extends ResourceBundle 创建一个 CustomResourceBundle

      @Component(immediate = true, property = { "language.id=en_US" }, service = ResourceBundle.class)
      public class DefaultCustomResourceBundle extends ResourceBundle {
      
          @Override
          public Enumeration<String> getKeys() {
              return _resourceBundle.getKeys();
          }
      
          @Override
          protected Object handleGetObject(String key) {
              return _resourceBundle.getObject(key);
          }
      
          private final ResourceBundle _resourceBundle = ResourceBundle.getBundle("content.Language", UTF8Control.INSTANCE);
      
      }
      

      这应该覆盖整个门户的翻译。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-11
        • 1970-01-01
        • 2015-04-03
        • 1970-01-01
        • 2015-09-03
        • 2014-12-07
        • 1970-01-01
        相关资源
        最近更新 更多