更新时间:2023-07-03 03:04:42下载pdf
涂鸦设备面板多语言业务包是在集成涂鸦 智能生活 App SDK 的前提下,通过调用设备面板多语言业务包,达到更新以及获取对应产品的面板语言包的功能。您可以在 涂鸦 IoT 平台 的产品多语言中维护对应产品多语言的相关词条。
通过以下代码来获取相关面板多语言 SDK 的能力:
IPanelI18n i18nManager = ThingPanelI18nEntrance.getInstance();
build.gradle
文件依赖声明中配置相关依赖:
dependencies {
// for panel i18n
implementation "com.thingclips.smart:thingsmart-sdk-i18n:2.0.1-cube.1 "
implementation "com.thingclips.smart:thingsmart-sdk-i18n-api:2.0.1-cube.1 "
// requested
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
$kotlin_version
表示需要由您自定义 Kotlin 相关版本。
更新相关面板多语言内容,当内部请求失败时,通过回调通知。
接口说明
void updateI18n(I18nRequestParam requestParam, IThingResultCallback<Object> listener)
参数说明
参数 | 说明 |
---|---|
requestParam | 请求包装参数,您需要维护 productId 和 i18nTime |
listener | 回调,当请求更新成功以及请求更新失败时会触发回调 |
I18nRequestParam 字段信息
字段 | 类型 | 描述 |
---|---|---|
productId | String | 产品 ID,同一个产品 ID,Schema 信息一致,可通过DeviceBean#getProductId 查询 |
productVer | String | 产品 Version,可通过DeviceBean#getProductVer 查询 |
i18nTime | Long | 对应产品多语言时间戳,可通过 DeviceBean#getI18nTime 查询 |
示例代码
public void updateI18n(String productId,String productVer, long i18nTime){
I18nRequestParam param = new I18nRequestParam(productId,productVer, i18nTime);
ThingPanelI18nEntrance.getInstance().updateI18n(param, new IThingResultCallback<Object>() {
@Override
public void onSuccess(Object result) {
// 更新请求成功
v.updateSuccess();
}
@Override
public void onError(String errorCode, String errorMessage) {
// 更新请求失败
v.updateFail(errorMessage);
}
});
}
根据 productId
,productVer
以及 i18nTime
获取对应面板多语言缓存内容。以其中一份产品对应语言包内容为例,您可以通过 SDK 的获取多语言接口功能可以获得全语种多语言内容。面板开始时可以通过指定语种和词条键来获得对应语种内容。需要注意的是,首次获取对应面板多语言内容之前,您需要先调用更新对应面板多语言方法。
接口说明
获取到的 Map
采用键值对格式,一级键表示语种,例如 en
。键的值继续采用键值对格式,二级键表示对应词条,值为词条对应语种的文案。
Map<String, Map<String, Object>> getI18nMap(I18nRequestParam requestParam)
参数说明
参数 | 说明 |
---|---|
requestParam | 请求包装参数,您需要维护 productId ,productVer 和 i18nTime |
示例代码
public void showI18n(){
long homeId = 1L;
// 获取deviceBean
DeviceBean deviceBean = ThingHomeSdk.newHomeInstance(homeId).getHomeBean().getDeviceList().get(0);
// 通过deviceBean获取产品id
String productId = deviceBean.getProductId();
// 获取语言包时间戳
long i18nTime = deviceBean.getI18nTime();
//产品版本
String productVer = deviceBean.getProductVer();
// 获取对应pid的语言包map
Map<String, Map<String, Object>> contentMap = ThingPanelI18nEntrance.getInstance().getI18nMap(new I18nRequestParam(productId, productVer, i18nTime));
for (Map.Entry<String, Map<String, Object>> langEntry : contentMap.entrySet()) {
// key为语种
String lang = langEntry.getKey();
for(Map.Entry<String, Object> entry : langEntry.getValue().entrySet()){
// key为词条key
String key = entry.getKey();
// value为对应语种的对应词条的多语言内容
String i18nValue = (String) entry.getValue();
}
}
// 以获取英文语种下的power_tip词条为例
String lang = "en";
String key = "power_tip";
String i18nValue = (String) contentMap.get(lang).get(key);
}
返回示例
{
"en":{
"cancel":"Cancel",
"removeFailed":"Failed to remove the device",
"TYTimer_endTimeTilte":"End Time",
"power_tip":"Tap to start",
"openBle":"Open Bluetooth",
"Edit":"Edit",
"setting":"Setting",
"TYTimer_editTimer":"Edit",
"mode_white":"White Mode",
"8ea247cc_label":"Scene",
"TYTimer_dayOnce":"Once",
"dp_battery":"BATTERY",
"quickop_dp_temp_value":"Color Temp",
"scene_leisure":"Leisure",
"d0ba1d23_label":"White",
"backToHome":"Back Home",
"TYTimer_dayEvery":"EveryDay",
"day8":"Once",
"day6":"Sat",
"day7":"Everyday",
"day4":"Thur",
"day5":"Fri",
"day2":"Tues",
"day3":"Wed",
"day0":"Sun",
"day1":"Mon"
},
"zh_Hans_CN":{
"cancel":"取消",
"removeFailed":"删除失败",
"TYTimer_endTimeTilte":"结束时间",
"power_tip":"点击开灯",
"openBle":"开启系统蓝牙",
"Edit":"编辑",
"setting":"设置",
"TYTimer_editTimer":"编辑",
"mode_white":"白光模式",
"8ea247cc_label":"情景",
"TYTimer_dayOnce":"仅一次",
"dp_battery":"剩余电量",
"quickop_dp_temp_value":"冷暖值",
"scene_leisure":"休闲",
"d0ba1d23_label":"白光",
"backToHome":"返回首页",
"TYTimer_dayEvery":"每天",
"day8":"仅此一次",
"day6":"星期六",
"day7":"每天",
"day4":"星期四",
"day5":"星期五",
"day2":"星期二",
"day3":"星期三",
"day0":"星期天",
"day1":"星期一"
}
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈