设备面板多语言业务包

更新时间:2024-10-30 10:07:24下载pdf

涂鸦设备面板多语言业务包是在集成涂鸦 Cube App SDK 的前提下,通过调用设备面板多语言业务包,达到更新以及获取对应产品的面板语言包的功能。您可以在 涂鸦开发者平台 的产品多语言中维护对应产品多语言的相关词条。

功能说明

  • 通过以下代码,获取相关面板多语言 SDK 的能力:

    IPanelI18n i18nManager = ThingPanelI18nEntrance.getInstance();
    
  • build.gradle 文件依赖声明中配置相关依赖:

      
      dependencies {
          // for panel i18n
          api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
          implementation "com.thingclips.smart:thingsmart-sdk-i18n"
          implementation "com.thingclips.smart:thingsmart-sdk-i18n-api"
          // requested
          implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
      }
      
      

    $kotlin_version 表示需要由您自定义 Kotlin 相关版本。

更新对应面板多语言内容

更新相关面板多语言内容,当内部请求失败时,通过回调通知。

接口说明

void updateI18n(I18nRequestParam requestParam, IThingResultCallback<Object> listener)

参数说明

参数 说明
requestParam 请求包装参数,您需要维护 productIdi18nTime
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);
            }
        });
    }

获取对应面板多语言内容

根据 productIdproductVer 以及 i18nTime,获取对应面板多语言缓存内容。以其中一份产品对应语言包内容为例,您可以通过 SDK 的获取多语言接口功能,获取全语种多语言内容。

面板开始时可以通过指定语种和词条键,获取对应语种内容。需要注意的是,首次获取对应面板多语言内容之前,您需要先调用更新对应面板多语言方法。

接口说明

获取到的 Map 采用键值对格式,一级键表示语种,例如 en。键的值继续采用键值对格式,二级键表示对应词条,值为词条对应语种的文案。

Map<String, Map<String, Object>> getI18nMap(I18nRequestParam requestParam)

参数说明

参数 说明
requestParam 请求包装参数,您需要维护 productIdproductVeri18nTime

示例代码

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":"星期一"
    }
}