iOS国际化配置

配置需要国际化的语言

配置需要国际化的语言的准备工作,一个项目中仅需要配置一次,适用范围(App名称、代码中的字符串、图片、还是storyboard和xib)。

  • 选中project->Info->Localizations,然后点击”+”,添加需要国际化/本地化的语言,如下图(默认需要勾选Use Base Internationalization):

  • 选择你需要的语言后弹出选择框,勾选你需要国际化的文件(默认全选)

应用名称国际化

App 随设备语言环境(设备语言设置后)下变更

  • 选中Info.plist,按下键盘上的command + N,找到Strings File(iOS->Resource->Strings File),点击 Next
  • 文件名字命名为 InfoPlist
  • 点击create后,Xcode左侧导航列表就会出现名为InfoPlist.strings的文件,如下图:
  • 选中InfoPlist.strings,在Xcode的File inspection(Xcode右侧文件检查器)中点击Localize,如下图:
  • 点击 Localize 后,会弹出一个对话框,展开对话框列表(下拉列表所展示的语言是刚刚上面配置的需要国际化的语言),然后点击对话框的 Localize 按钮,如下图:

  • 然后我们发现Xcode右侧的File inspection变成了下图的样式,勾选其余需要国际化的语言:

  • 此时,Xcode左侧的InfoPlist.stirings左侧多了一个箭头,点击箭头可以展开,如下图所示:

接下来,我们给InfoPlist.strings下的文件分别设置对应语言的App 名称,加入如下代码(这里用InfoPlist.strings(japanese)举例):

1
2
// App在该环境下显示的名称
CFBundleDisplayName = "swiftデモ";

至此,本地化App名称已经演示完毕。
原理总结:程序启动时,会根据操作系统设置的语言,自动加载InfoPlist.strings文件下对应的语言文件,然后显示应用程序的名字。

代码中字符串的本地化

  • 和应用名称本地化一样,首先需要command + N,选择iOS -> Resource -> Strings File,文件名必须命名为 Localizable

  • 文件创建成功,查看Xcode左侧导航列表,发现多了一个名为Localizable.strings的文件,选中Localizable.strings文件,在Xcode的File inspection中点击Localize,目的是选择我们需要本地化的语言(和应用名称国际化同理),如下图:

  • 此时,Xcode左侧的 Localizable.stirings 左侧多了一个箭头,展开后,如下图所示:

  • 然后我们只需要在Localizable.strings下对应的文件中,分别以Key-Value的形式,为代码中每一个需要本地化的字符串赋值,如下(必须以”;“结束):

    1
    2
    "首页" = "Home";
    "我的" = "Mine";
  • 我们只需要使用Foundation框架自带的NSLocalizedString(key, comment),根据Key获取对应的字符串,然后赋值给代码中的字符串。

    1
    NSLocalizedString("首页", comment: "首页")

至此,替换所有工程中需要显示的字符串后,就会随系统语言显示相应的文字。

Older Post

移动端自适应方案(基于vue-cli)

准备工作项目基础配置使用 vue-cli 生成移动端自适应方案:阿里可伸缩布局方案 - lib-flexiblepx 转 rem 工具:px2rem,它有 webpack 的 loader:px2rem-loader 开始首先,我们使用 vue 的脚手架 vue-cli 来初始化一个 webpack …

note 继续阅读