internationalization

来自于:官方立即使用

概述

对于一个 iOS 应用程序,可以在多个国家和地区的苹果商店(苹果商店分中国区、日本区、美国区等)上架。如果想要每个国家和地区的用户都能获得良好的使用体验,首先需要做的就是能让用户打开 App 的第一时间,看到的是自己熟悉的语言。也就是说 App 能够根据用户当前系统所使用的语言或者用户手动选择的语言,实时的改变 App 内的语言。这就是 App 国际化所要实现的目的。

在 iOS 端,App 国际化分为应用内的国际化和 App 名及其申请权限提示语的国际化。对于前者 APICloud 开发者应该非常了解。本模块主要封装实现了对 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.lprojen.lprojBase.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 提示语