【问题标题】:Liferay 7.1 npm-react-module localizationLiferay 7.1 npm-react-module 本地化
【发布时间】:2019-09-11 09:07:43
【问题描述】:

我正在尝试将本地化包含到我的 npm-react-module 中,但我未能从 Langugage.properties 文件中接收到相应键的值。它只是返回密钥。我做了一些研究,但找不到任何可以帮助我解决问题的资源。

在下面我将向您展示的代码中,我在我的模块中包含了一个 Language.properties 文件。在我的 portlet 中,我已经包含了语言属性所需的配置。我也尝试为特定的语言环境添加一个单独的文件,但这也对我没有帮助。

这是我的 portlet 配置示例:

"javax.portlet.resource-bundle=content.Language"

这是我的 Language.properties 文件中的示例内容:

example-key=example-value

这就是我试图访问我的 React 组件中的值的方式:

<h1> {Liferay.Language.get('example-key')} </h1>

但它只返回“example-key”而不是“example-value”。 在我的 view.jsp 文件中,我可以使用

检索相应的值
<liferay-ui:message key='example-key'/>

我已经尝试过这种方法:https://portal.liferay.dev/docs/7-1/tutorials/-/knowledge_base/t/localizing-your-portlet,但它也不起作用。有没有人让它在他们的 npm-react-module 中正常工作?我真的不想花时间实施我自己的本地化服务。谢谢!

【问题讨论】:

    标签: reactjs liferay-7


    【解决方案1】:

    Liferay.Language.get('key') 将文本替换为构建机制。因此,没有实际的对象/类来执行此操作。我一直在努力让这个自己工作,并决定我必须自己进行国际化。

    本地化仅在构建时完成,这意味着如果您有一种语言 动态生成的密钥,您无法对其进行本地化,例如 如果您从 api fetch 获取密钥并需要对其进行本地化,则不能 因为 React 的 Liferay 本地化方法( Liferay.Language.get("yourLanguageKey") )在运行时未定义,并且 你不能用它。

    来自:https://npm.io/package/liferay-react-runtime-localization

    【讨论】:

    • 我最终也做了同样的事情。
    猜你喜欢
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 1970-01-01
    相关资源
    最近更新 更多