自定義多國語言指的是開發者可以通過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