无法覆盖翻译(journal-lang)

时间:2016-11-28 08:51:52

标签: liferay liferay-7

我想覆盖一些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)。任何可能的解决方案?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您已经使用扩展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);

}

这应该覆盖门户网站的翻译。