自定义多国语言指的是开发者可以通过SDK进行自定义更新不同国家的语言,使得自有App更加快速的实现多国语言配置。本文介绍如何通过SDK自定义多国语言。

背景信息

生活物联网平台支持设备在海外使用,云端到App端的管理都需要适应当地国家的语言,方便用户能更加顺畅地与设备进行交互,提升用户体验效果。

开发Android自定义多国语言

Android中原生就支持多国语言,需要进行一些简单的操作,可以大致分为以下这几个步骤。

  1. 在res资源文件夹下的value文件夹中单击右键创建一个和SDK中xml文件相同名字的xml资源文件。1
  2. 先单击local,然后单击进入选择语言界面,选择自己想要的国家和语言。
  3. 单击ok系统会自动创建一个xml文件。2
  4. 复制一份SDK中的xml文件中的所有string字段到自己刚刚创建的文件中。3
  5. 把需要的自定义的key对应的value值修改为自己想要的值即可。
    注意 如果这样自定义,不能删除任意一个string,否则会编译报错。

开发iOS自定义多国语言

OA语言切换

  • 自定义方式(简单集成)
    1. 集成以下依赖文件pod 'IMSOpenAccountCustom', '1.1.9' pod 'AlicloudALBBOpenAccount', '3.4.0.52'
    2. IMSOpenAccountCustomIMSOpenAccountCustomResource.bundle下的xib放到主工程。
    3. 设置语言,只需要指定前缀即可。例如,中文设置为zh。 OA模块可设置的语言种类与SDK相同,详细请参见通用SDKios

    使用默认的翻译资源文件

     [[IMSiLopOALanguageManage shareInstance]     setOpenAccountModuleLanguageWithLanguagePrefix:@"ko"]; 

    使用自己的翻译资源文件

    1. 拷贝IMSOpenAccountCustomIMSOpenAccountCustomResource.bundle中的.lproj文件,整理一份相同key的多国语言翻译 。
    2. Language.json中按照格式添加自行增加的语言的配置。
      [[IMSiLopOALanguageManage shareInstance]      setOpenAccountModuleLanguageWithLanguagePrefix:@"xxx" ];
  • 高度自定义方式(自定义较高)
    1. 设置云端语言,支持的语言种类请参见通用SDK[[ALBBOpenAccountSDK sharedInstance] setRpcLocale:locale];
    2. 修改xib上显示语言,默认显示中文。
      1. 拷贝ALBBOpenAccountUIALBBOpenAccount.bundle中的.lproj文件内容,整理一份相同key的多国语言翻译。
      2. 设置显示的国际化文件 [[ALBBOpenAccountSDK sharedInstance] setLocale:@"zh.lproj"];
      3. 指定国际化文件的具体路径。
         NSString *bundlePath = [NSString stringWithFormat:@"%@/%@.bundle/zh.lproj",[NSBundle mainBundle].bundlePath, bundleName]; [[ALBBOpenAccountSDK sharedInstance] setLocaleBundle:[NSBundle bundleWithPath:bundlePath]]; 
      4. 通过设置xib各个控制器的代理,自行在代理方法中对控件进行取多语言文案,实现赋值操作 。
        id<ALBBOpenAccountUIService> uiService = ALBBService(ALBBOpenAccountUIService); [uiService setLoginViewDelegate:self]; - (void)loginViewDidLoad:(ALBBOpenAccountLoginViewController *)viewController {     viewController.usernameField.placeholder = @"xxx";// 自行取资源赋值     viewController.usernameLabel.text = @"xxx";// 自行取资源赋值 }