【问题标题】:Language Translation is not working in liferay 6.2语言翻译在 liferay 6.2 中不起作用
【发布时间】:2016-08-29 14:28:00
【问题描述】:

我在 liferay 6.2 中创建了一个示例 portlet,因为我需要用法语打印 unicode 值。

我在 src 文件夹中创建了 language_fr_FR.properties 文件,并在我的 jsp 页面中打印了值。

results.noresults          = No r\u00E9sultats (language_fr_FR.prop)

jsp页面

<liferay-ui:message key="results.noresults"/> 

在 jsp 中,我收到了类似的消息 没有结果

谁能告诉我这个 unicode 翻译在 liferay 中是从哪个类或方法执行的。

【问题讨论】:

    标签: java liferay liferay-6


    【解决方案1】:

    由于某种原因,Liferay 的语言属性文件需要以 UTF-8 编码,而不是其他典型的 Java 编码 ISO-8859-1(或转义字符)。

    有时很难让您的 IDE 相信这确实是预期的编码,但它确实有效。

    【讨论】:

    • 谢谢...我创建了一种解析 unicode 的方法。现在我想知道在 PropertiesUtil.java 类中调用默认解析方法的位置。在源代码中。
    • 嗨奥拉夫,你能告诉我这个 unicode 翻译在 liferay 中是从哪个类或方法执行的...下面的代码工作正常,所以我想用这个代码覆盖...字符串字符串= StringEscapeUtils.unescapeJava("Tout s \u00E9 lectionner/d \u00E9 lectionner" );
    • 除了猜测它需要一个 ext 插件来改变这种行为,而不是从我的头顶。如果您要创建一个 ext 插件,无论如何您都将进行心脏直视手术,并且应该熟悉代码。注意任何以 Language* 开头的类,并且您至少应该靠近读取属性文件的位置。无论如何,您都需要对创建 ext 的内部工作有相当多的了解(阅读:出于这个简单的目的,我建议不要这样做。只需在构建期间进行编码或接受一些批处理)
    • 是的奥拉夫,我创建了一个 ext-plugin,我只是在语言包下的 LanguageImpl.java、LanguageResources.java、LiferayResourceBundle.java 和 UnicodeLanguageImpl.java 文件的每个方法中添加了 sop,然后在 LanguageFilter.java 下filter.language 包。但我没有从控制台收到任何 sop 消息。
    【解决方案2】:

    确保您拥有正确的属性文件的一种方法是写入 xx.properties.native,并且无论其编码如何,在构建时调用 native2ascii 任务。这应该会产生一个非 ascii 字符编码为 Unicode 的文件。 如果您想直接在 xxx.properties 中使用您的区域字符写入,您必须确保使用 UTF-8 编码,并且 IDE 有时不会自动执行此操作。 Liferay IDE 在最​​新版本中使用 UTF-8 来编辑属性文件,因此您应该能够在属性文件中只编写常规法语,而无需将其转换为 Unicode。 无论如何,这就是理论。这让我有些头疼。

    【讨论】:

    • 谢谢...我创建了一种解析 unicode 的方法。现在我想知道在 PropertiesUtil.java 类中调用默认解析方法的位置。在源代码中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 2019-03-28
    相关资源
    最近更新 更多