前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >xwiki开发者指南-国际化应用程序

xwiki开发者指南-国际化应用程序

作者头像
lovelife110
发布2021-01-14 14:37:06
5290
发布2021-01-14 14:37:06
举报
文章被收录于专栏:爱生活爱编程爱生活爱编程

教程

在XWiki页面使用propertie

  • 创建一个页面,由键/值对组成
  • 在该页面中输入所有的键/值对(使用wiki编辑)。例如: greeting=hello welcome=Welcome withparams=I can {0} pass {1} {2} params too using the Java MessageFormat syntax
  • 为你想要的所有翻译做同样的事情。 要启用多国语言,你需要到管理员页面,并设置MultiLingual为true,并在Languages字段列出你希望使用的不同语言。
  • 通过在页面添加TranslationDocumentClass对象类型来告诉XWiki你的页面是翻译页面。
  • 在页面你可以使用{{translation}}宏或者使用本地化服务脚本(查看Localization module文档)。例子: 用wiki语法: {{translation key="key"/}} 用脚本(下面例子用Velocity):

旧的方式

XWiki 4.3以前,需要在管理员页面注册一个Document Resource Bundle,选择"Localization"然后在"Internationalization Document Bundles"字段,你可以指定多个页面,以逗号分隔。

当创建"Internationalization Document Bundles",你应该避免用包含空格的名字命名。例如,一个名为Main.My Messages文档会生产问题,你应该使用Main.MyMessages。

或者你还可以在xwiki.cfg的xwiki.documentBundles指定Internationalization Document Bundles列表。

XWiki对象国际化

这目前还没实现(查看XWIKI-69)。有2个解决方法,你可以使用:

  • 有几个对象,用于每个语言,用一个语言字段来决定使用哪个对象(例如在一个Class Sheet,基于当前语言): doc.getObject('Your.Class', 'lang', context.language') ## Will select the object whose 'lang' property is set to the current language
  • 使用Velocity脚本,例如: #if ($context.language == "fr") French texts #else Default texts #end

使用静态资源包

  • 暂停XWIki实例
  • 从WEB-INF/lib/xwiki-*oldcore-*.jar文件提取对应语言的ApplicationResources*.properties文件,把他们放在WEB-INF/classes目录
  • 编辑文件,添加或者修改键值对
  • 在你的文档,使用以下key来获取相关联的值:$services.localization.render("key")

这将从资源包对应的当前语言获得值。

如果你正在写一个扩展JAR,希望拥有静态的翻译资源,你可以把他们放在位于你扩展JAR的根目录下一个ApplicationResources*.properties文件,他们将会被Localization module提取。查看Localization module了解更多信息。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/04/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 教程
  • 在XWiki页面使用propertie
    • 旧的方式
    • XWiki对象国际化
    • 使用静态资源包
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档