ITranslatablePlugin 允许您定义语言资源字符串,以便在可以在 Limyee 电商平台翻译的插件中使用.
我为什么要翻译我的插件?
创建插件可供重用,或使插件可以在可能超出单一语言或文化范围的平台中使用时,能规划全球化。该过程的一个步骤是确保为最终用户使用生成的文本可以轻松地翻译。Limyee 电商平台通过与 ITranslatablePlugin 插件类型的交互,为翻译插件使用的文本提供支持。
创建可翻译的插件
要提供翻译插件渲染文本的支持,请实现 ITranslatablePlugin 接口(这需要引用 Limyee.Components.dll)。ITranslatablePlugin 接口扩展了 IPlugin 以添加对翻译的支持。
首先,我们将使用 ITranslatablePlugin 接口的 DefaultTranslations 属性定义一个或多个主要翻译集:
此示例定义了美国英语 (en-us) 的默认翻译,其中包含两个已翻译的资源:名为 my_translation_hello 的 "hello" 和名为 my_translation_world 的 "world"。资源名称用于从平台检索已翻译的字符串,仅能用英文编写,可包含以下非英文字符:-._。
通过定义默认的翻译集,Limyee 电商平台可以通过插件资源导出和导入过程公开这些选项,以使默认字符串能够翻译成平台启用的其他语言。要检索这些翻译,插件应使用 ITranslatablePlugin 的 SetController 方法从平台请求翻译:
通常,控制器存储在插件的实例变量中,供以后使用。在插件初始化期间接收后,翻译控制器便可用于检索翻译的资源字符串。
以下是我们的可翻译插件示例的完整源代码:
将此示例部署到 Limyee 电商平台后,该插件将显示在 管理 > 扩展 中,可启用即时翻译:
并且其语言资源将包含在 管理 > 网站 > 插件翻译 中,可将所有插件的语言资源导入/导出,以实现批量/异地翻译。
使用已翻译的资源字符串
实现 ITranslatablePlugin 后,应使用翻译控制器使用默认翻译中定义的资源名称来检索已翻译的文本。使用上面的示例,我们可以与插件的 _translationController 实例变量进行交互,以检索 “hello” 的翻译:
翻译控制器的 GetLanguageResourceValue 方法将为当前访问用户(如果未提供显式语言)或提供的显式语言返回所请求语言资源的最佳匹配翻译。
在实现通过 UI 或后台进程与用户交互其他插件类型时,翻译语言资源字符串是非常有用。