codecamp

UI 本地化

标准 UI

请遵循下列简单步骤来为 CLI UI 提交一种其它语言的翻译!

  1. 运行 navigator.languages 或 navigator.language 为新的地区获取语言代码。例如:'fr'。
  2. 搜索 npm 确认名为 vue-cli-locale-<language code> 的包是否已经存在。如果存在,则请通过 PR 为它贡献!如果没找到,则创建一个新的名为 vue-cli-locale-<language code> 的地区的包。例如:vue-cli-locale-fr.
  3. 将地区的 JSON 文件放置在一个 locales 文件夹并将这个文件命名为语言代码。例如:locales/fr.json。
  4. 在 package.json 文件中,设置 unpkg 字段为地区文件的路径。例如:"unpkg": "./locales/fr.json"。
  5. 将包发布到 npm 上。

可以参考这里的英文地区文件。

作为示例,参考一份法语的包

翻译插件

你也可以在插件的根目录的 locales 文件夹放置与 vue-i18n 兼容的地区文件。这样做会在项目打开的时候自动加载,然后你可以使用 $t 在你的组件和 vue-i18n 辅助函数里翻译字符串。同样的 UI API (像 describeTask) 用到的字符串将会进入 vue-i18n,这样你就可以对它们做本地化。

示例 locales 文件夹:

vue-cli-plugin/locales/en.json
vue-cli-plugin/locales/fr.json

API 的用法示例:

api.describeConfig({
  // vue-i18n 路径
  description: 'com.my-name.my-plugin.config.foo'
})

危险

请确定为 id 设置正确的命名空间,因为它需要跨所有插件保持唯一。我们推荐使用反向域名记号 (reverse domain name notation)

在组件中使用的示例:

<VueButton>{{ $t('com.my-name.my-plugin.actions.bar') }}</VueButton>

如果你愿意的话,可以使用 ClientAddonApi 在一个客户端 addon 加载地区文件:

// 加载本地文件 (使用 vue-i18n)
const locales = require.context('./locales', true, /[a-z0-9]+\.json$/i)
locales.keys().forEach(key => {
  const locale = key.match(/([a-z0-9]+)\./i)[1]
  ClientAddonApi.addLocalization(locale, locales(key))
})


UI 插件 API
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Vue CLI 插件开发

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }