【在 iOS 开发路上的大小事-Day08】让你的 App 与世界接轨!

前情提要

一般在开发 App 的时候,除非是只想在单一国家上架,不然基本上都会做多国语系,来让 App 可以根据系统语言来切换 App 内元件显示的语言,所以今天要来介绍,如何让你的 App 与世界接轨

实作环节 Part 1 (元件)

首先,打开专案的 xcodeproj,点击「PROJECT」,找到「Localization」,将你想要新增的语系新增进去,这边是示范新增「繁体中文跟韩文」这两种语系

接着在左边档案列表内新增一个资料夹叫做「Localizable」,用来分类各国语系,然後新增一个 Strings 档案,Strings 档案的档名一定要叫做「Localizable」

接着点开 Localizable.strings,在右侧点击「Localize...」,选择你要支援的其中一种语系,这边是选择「English」

接着将右侧 Localization 里要支援的语系打勾

这时候,Localizable.strings 里就会出现所有有打勾的语系档

下面就示范繁体中文跟韩文的部分,其他语系也是一样的做法
新增的方法,很简单,在对应语言的 Localizable.strings 加入 Key 和 Value,每行最後都要加分号,下面是范例

"Hello" = "你好"; // 繁体中文范例
"Hello" = "안녕하세요"; // 韩文范例

接着在你有需要多国语系的元件,改成下面的程序码,以 UILabel 做示范
前面的 Hello 就是我们的 Key,後面的 comment 是注解,如果没有特殊需求的话,打空字串就可以了

label.text = NSLocalizedString("Hello", comment: "")

实作环节 Part 2 (App 显示名称)

接着是如何让 App 显示名称也可以多国语系化
这边可以参考 Apple Developer 官方文件

作法跟前面的基本上是大同小异,唯一有差别的地方是档名和 Key 的不同
档名只能取「InfoPlist.strings」,Key 只能打「CFBundleDisplayName」,这是 Apple 规定的

"CFBundleDisplayName" = "本地化 Demo"; // 繁体中文范例
"CFBundleDisplayName" = "현지화 데모"; // 韩文范例

成果


本篇的范例程序码:GitHub

参考资料

  1. https://franksios.medium.com/ios-localization-%E6%9C%AC%E5%9C%B0%E5%8C%96-7b16b58bb9df
  2. https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html

<<:  Day 08 - 智慧城市Go Smart Award 经历(2) - 复赛

>>:  企划实现(5)

【day2】突然想吃樱桃鸭握寿司之典华烤鸭

前阵子突然很想念樱桃鸭握寿司 因为疫情关系又不方便呼朋引伴到礁溪吃一顿 意外的在天母地区发现典华系列...

D14 - 用 Swift 和公开资讯,打造投资理财的 Apps { 加权指数K线图实作.2 }

制作 K 线的 Data Model,从前面文章 [加权指数K线图实作.2] 的 response ...

有空再说与 TODO

前言 今天来跟大家聊聊一个轻松的话题,与先前我们提过关於时间的主题有点关系,就是当我们听到「有空再说...

Day 25. Hashicorp Vault: Diagnose Vault server

Hashicorp Vault: Diagnose Vault server 这是Vault 1.8...

【设计+切版30天实作】|Day2 - 开始设计前的环境建立 (Adobe XD)

简介 今天会讲一下在设计前要怎麽建立环境,毕竟在设计前还是要先备好画布嘛,但画布的尺寸要怎麽挑选呢?...