# 插件多语言

插件接入多语言平台,支持资源异步更新。接入步骤:

  1. 从多语言平台导出基础资源包,将其中的json文件放入插件内;
  2. 插件集成SLanguage,封装方法调用SLanguage.getLanguageByCode;
  3. 在业务代码中调用封装的方法,传入当前语言码,获取当前语种资源。

# 示例代码

import { SLanguage } from 'smarthome-weex-components';
import baseLangObj from './base';

/**
 * 获取当前语种资源
 * @param {string} langCode 语言码
 * @returns {Promise<object>} 当前语种资源 eg: { setting: '设置', search: '搜索' }
 */
export default async function getLanguageByCode(langCode) {
  const langObj = await SLanguage.getLanguageByCode(langCode, {
    baseLangObj,
    baseTimestamp: 1790739194768,
    system: 'SmartHome',
    repositoryCode: 10000,
    deviceType: 'AC',
  });

  return langObj;
}

base.js示例

# 请求参数

Prop Type Required Default Description
langCode string Yes - 语言码
options.baseLangObj object Yes - 本地基础资源,例如:{ zh_CN: { setting: '设置', search: '搜索' }, en_US: { ... } }
options.baseTimestamp number Yes - 基础资源时间戳,导出包的后缀,例如:1790739194768
options.system string No SmartHome/TSmartLife 应用编码,根据上架App确定
options.repositoryCode number Yes - 词库编码,参考多语言平台(平台功能待规划,暂时可找 hejian34 查询)
options.app string Yes - 业务类型,内置Weex传参,设备插件不传
options.deviceType string Yes - 品类码,设备插件传参,内置Weex不传

# 更新机制

  • 在多语言平台更新资源并生效 --> 打开插件触发异步更新 --> 退出插件后重新进入 --> 展示新资源