无法覆盖翻译(journal-lang)
Cannot override tranlations (journal-lang)
我想覆盖一些 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"(添加字段)。有什么可能的解决方案吗?
journal-lang
是一个语言组件。为了覆盖它们中的一些字符串,您必须为 bundle com.liferay.journal.web
或 com.liferay.journal.service
.
创建一个组件
您必须使用 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);
}
这应该覆盖整个门户的翻译。
我想覆盖一些 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"(添加字段)。有什么可能的解决方案吗?
journal-lang
是一个语言组件。为了覆盖它们中的一些字符串,您必须为 bundle com.liferay.journal.web
或 com.liferay.journal.service
.
您必须使用 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);
}
这应该覆盖整个门户的翻译。