# 插件多语言
插件接入多语言平台,支持资源异步更新。接入步骤:
- 从多语言平台导出基础资源包,将其中的json文件放入插件内;
- 插件集成SLanguage,封装方法调用SLanguage.getLanguageByCode;
- 在业务代码中调用封装的方法,传入当前语言码,获取当前语种资源。
# 示例代码
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;
}
# 请求参数
| 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不传 |
# 更新机制
- 在多语言平台更新资源并生效 --> 打开插件触发异步更新 --> 退出插件后重新进入 --> 展示新资源