internationalization
概述
对于一个 iOS 应用程序,可以在多个国家和地区的苹果商店(苹果商店分中国区、日本区、美国区等)上架。如果想要每个国家和地区的用户都能获得良好的使用体验,首先需要做的就是能让用户打开 App 的第一时间,看到的是自己熟悉的语言。也就是说 App 能够根据用户当前系统所使用的语言或者用户手动选择的语言,实时的改变 App 内的语言。这就是 App 国际化所要实现的目的。
在 iOS 端,App 国际化分为应用内的国际化和 App 名及其申请权限提示语的国际化。对于前者 YonBuilder移动开发平台 开发者应该非常了解。本原生插件主要封装实现了对 App 名及其申请权限提示语的国际化。
注意:应用内的国际化支持用户手动选择开发者设定的语言。App 名及其申请权限提示语的国际化不支持让用户手动设定,只能根据用户当前系统所使用的语言实现自适配。
原生插件使用攻略
本原生插件无接口。只需制作一个附加原生插件,作为自定义原生插件上传,并在云编译时勾选该自定义原生插件即可。
自定义原生插件制作:
下载 international 原生插件 zip 包并解压,按需修改 zip 包内 localization 目录下的各个 .lproj
文件内的 InfoPlist.strings
文件。然后重新压缩为 internationalization.zip 文件上传自定义原生插件,云编译时勾选该原生插件。 (重新压缩时注意不要多一层目录。_MACOSX 文件夹删掉,这是由于压缩包是 Mac 上制作的,在 windows 解压产生多的文件。 或者使用 winRAR 解压。)
.lproj
文件
localization 目录下包函多个 .lproj
文件。如:Base.lproj、en.lproj、zh-Hans.lproj。一个 .lproj
文件对应一种语言。下面是各个常用语言对应关系列表:
- ar.lproj:阿拉伯文
- Base.lproj:基础(没有系统当前语言对应的语言包时显示本文件内设置的语言文字)
- de.lproj:德文
- en.lproj:英文
- es.lproj:西班牙文
- fr.lproj:法文
- id.lproj:印度尼西亚文
- it.lproj:意大利文
- ja.lproj:日文
- ko.lproj:韩文
- ms.lproj:马来西亚文
- pt-PT.lproj:葡萄牙文
- ru.lproj:俄文
- th.lproj:泰文
- tr.lproj:土耳其文
- vi.lproj:越南文
- zh-Hans-SG.lproj:简体中文(新加坡)
- zh-Hans.lproj:简体中文
- zh-Hant-MO.lproj:繁体中文(澳门)
- zh-Hant-TW.lproj:繁体中文(台湾)
- zh-Hant.lproj:繁体中文
- zh-Hant-HK.lproj:繁体中文(香港)
注意:不需要的语言包删除即可。例如,你的 App 只需要适配简体中文和英文,那么只需保留 zh-Hans.lproj
、en.lproj
、Base.lproj
三个语言包即可。
InfoPlist.strings
文件
本文件内包涵国际化的字段。各种权限和 KEY 的对应关系列表如下:
- CFBundleDisplayName:App 名称
- NSBluetoothPeripheralUsageDescription:蓝牙共享提示语
- NSCalendarsUsageDescription:访问日历提示语
- NSCameraUsageDescription:访问相机权限提示语的 Key
- NSContactsUsageDescription:访问联系人提示语
- NSFaceIDUsageDescription:人脸识别提示语
- NSHealthClinicalHealthRecordsShareUsageDescription:
- NSHealthShareUsageDescription:访问健康提示语
- NSHealthUpdateUsageDescription:健康写入数据提示语
- NSLocationAlwaysAndWhenInUseUsageDescription:始终使用定位提示语(适配 iOS11 及以上系统)
- NSLocationAlwaysUsageDescription:始终使用定位提示语(适配 iOS10 及以下系统)
- NSLocationWhenInUseUsageDescription:使用期间定位提示语
- NSAppleMusicUsageDescription:访问音乐提示语
- NSMicrophoneUsageDescription:访问麦克风提示语
- NSMotionUsageDescription:Motion & Fitness 提示语
- NFCReaderUsageDescription:访问 NFC 提示语
- NSPhotoLibraryAddUsageDescription:相册加入照片提示语
- NSPhotoLibraryUsageDescription:从相册读取照片提示语
- NSRemindersUsageDescription:访问提醒提示语
- NSSiriUsageDescription:访问 Siri 提示语
- NSSpeechRecognitionUsageDescription:语音识别提示语
- NSHomeKitUsageDescription:访问 HomeKit 提示语