自定义多国语言指的是开发者可以通过SDK进行自定义更新不同国家的语言,使得自有App更加快速的实现多国语言配置。本文介绍如何通过SDK自定义多国语言。
背景信息
生活物联网平台支持设备在海外使用,云端到App端的管理都需要适应当地国家的语言,方便用户能更加顺畅地与设备进行交互,提升用户体验效果。
开发Android自定义多国语言
Android中原生就支持多国语言,需要进行一些简单的操作,可以大致分为以下这几个步骤。
- 在res资源文件夹下的value文件夹中单击右键创建一个和SDK中xml文件相同名字的xml资源文件。
- 先单击local,然后单击进入选择语言界面,选择自己想要的国家和语言。
- 单击ok系统会自动创建一个xml文件。
- 复制一份SDK中的xml文件中的所有string字段到自己刚刚创建的文件中。
- 把需要的自定义的key对应的value值修改为自己想要的值即可。
注意 如果这样自定义,不能删除任意一个string,否则会编译报错。
开发iOS自定义多国语言
OA语言切换
- 自定义方式(简单集成)
- 集成以下依赖文件
pod 'IMSOpenAccountCustom', '1.1.9' pod 'AlicloudALBBOpenAccount', '3.4.0.52'
。 - 将IMSOpenAccountCustom的IMSOpenAccountCustomResource.bundle下的xib放到主工程。
- 设置语言,只需要指定前缀即可。例如,中文设置为
zh
。 OA模块可设置的语言种类与SDK相同,详细请参见通用SDK
使用默认的翻译资源文件
[[IMSiLopOALanguageManage shareInstance] setOpenAccountModuleLanguageWithLanguagePrefix:@"ko"];
使用自己的翻译资源文件
- 拷贝IMSOpenAccountCustom下IMSOpenAccountCustomResource.bundle中的.lproj文件,整理一份相同key的多国语言翻译 。
- 在
Language.json
中按照格式添加自行增加的语言的配置。[[IMSiLopOALanguageManage shareInstance] setOpenAccountModuleLanguageWithLanguagePrefix:@"xxx" ];
- 集成以下依赖文件
- 高度自定义方式(自定义较高)
- 设置云端语言,支持的语言种类请参见通用SDK
[[ALBBOpenAccountSDK sharedInstance] setRpcLocale:locale];
- 修改xib上显示语言,默认显示中文。
- 拷贝ALBBOpenAccountUI下ALBBOpenAccount.bundle中的.lproj文件内容,整理一份相同key的多国语言翻译。
- 设置显示的国际化文件
[[ALBBOpenAccountSDK sharedInstance] setLocale:@"zh.lproj"];
- 指定国际化文件的具体路径。
NSString *bundlePath = [NSString stringWithFormat:@"%@/%@.bundle/zh.lproj",[NSBundle mainBundle].bundlePath, bundleName]; [[ALBBOpenAccountSDK sharedInstance] setLocaleBundle:[NSBundle bundleWithPath:bundlePath]];
- 通过设置xib各个控制器的代理,自行在代理方法中对控件进行取多语言文案,实现赋值操作 。
id<ALBBOpenAccountUIService> uiService = ALBBService(ALBBOpenAccountUIService); [uiService setLoginViewDelegate:self]; - (void)loginViewDidLoad:(ALBBOpenAccountLoginViewController *)viewController { viewController.usernameField.placeholder = @"xxx";// 自行取资源赋值 viewController.usernameLabel.text = @"xxx";// 自行取资源赋值 }
- 设置云端语言,支持的语言种类请参见通用SDK