美文网首页iOS Developer
iOS App国际化/本地化的实现过程

iOS App国际化/本地化的实现过程

作者: 小码码 | 来源:发表于2017-03-30 19:53 被阅读554次

公司原本有一款仅支持中文的app,随着国际化发展,产品经理要求添加相关设置,让app在支持中文的同时,可以支持英文。简书搜索,发现以下两篇文章可以参考:
文章一: http://www.jianshu.com/p/88c1b65e3ddb
文章二:http://www.jianshu.com/p/782aaf3bf7da

文章一写得非常详细,没有任何经验的小白,只要按照作者分享的步骤一步步操作,很快就可以学会。遗憾的是作者还没有补上xib和storyBoard的国际化过程。

文章二写得相对简单,但是添加了xib和storyBoard的国际化过程。

本文综合两篇文章的精华和自己的实现过程,基于xcode8.1,简要描述一下实现国际化的核心步骤,方便自己今后查阅。

1 配置需要国际化的语言

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

2 应用名称本地化/国际化

比如,微信在简体中文环境下App名称显示为“微信”,在英语环境下显示为“weChat”。下面就开始进行应用名称本地化。


文件名字命名为InfoPlist,且必须是这个名字(因每个人电脑设置差异,此处本人电脑没有显示strings后缀名):


点击create后,Xcode左侧导航列表就会出现名为InfoPlist.strings的文件,如下图:



选中InfoPlist.strings,在Xcode的File inspection(Xcode右侧文件检查器)中点击Localize,目的是选择我们需要本地化的语言,如下图:



弹框:

选中语言后:

勾选这需要支持的语言。

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


语言配置完成了,接下来,我们分别用不同的语言给InfoPlist.strings下的文件设置对应的名字。

(1)在InfoPlist.strings(english)中加入如下代码:
// Localizable App Name是App在英语环境环境下显示的名称
CFBundleDisplayName = "Localizable App Name";

(2)在InfoPlist.strings(Chinese(Simplified))中加入如下代码
CFBundleDisplayName = "国际化App";

app名称国际化完成,语言设置为中文时,显示中文;语言设置英文时,显示英文

3 代码中字符串的本地化

3.1 创建Localizable.strings文件

字符本地化和App名称本地化过程如出一辙,只是创建的文件名成不一样(连同后缀一起,文件名必须是Localizable.strings),其他步骤完全相同。

3.2 字符串赋值

xcode左侧项目列表中出现不同语言下的Localizable.strings文件后,
在对应的文件中,分别以Key-Value的形式,为代码中每一个需要本地化的字符串赋值。

//  Localizable.strings(English)
"content" = "line";

//  Localizable.strings(chinese(Simplified))
"content" = "行";

// 代码中本地化
UITableViewCell *cell = [[UITableViewCell alloc] init];
    NSString *str = NSLocalizedString(@"content", nil);
    cell.textLabel.text = str;
备注:NSLocalizedString(key, comment)是Foundation框架自带的宏,程序运行时根据Key获取对应的字符串,然后赋值给代码中的字符串。

4 图片本地化

测试表明,如果图片名称为英文,无论中文还是英文环境下,图片都能正常显示,所以暂时没有对图片做任何配置

5 XIB和storyBoard本地化

5.1 Localize

选择要本地化的Storyboard或XIB,在File inspection中点击Localize,然后勾选需要支持的本地化语言。

5.1 修改对应的Key-Value

Xcode会自动为你生成对应的Key-Value,对应修改即可:

经过以上操作,app的名称、代码中的字符串、xib和storyBoard已经国际化完毕了,不同的环境下就会显示不同的语言。

相关文章

  • 2018-02-08

    iOS开发 App本地化(国际化)笔记

  • 【技术文章收集】收集

    3分钟实现iOS语言本地化/国际化(图文详解) Apple Watch App开发基础 crash iOS Cra...

  • iOS国际化遇到的那些坑

    本文主要讲述国际化过程中所遇到的那些问题,国际化的详细步骤可以参考:3分钟实现iOS语言本地化/国际化(图文详解)...

  • iOS语言国际化

    首先建议参考VV木公子的 3分钟实现iOS语言本地化/国际化(图文详解),值得阅读。 上面的方式都是退出App,重...

  • iOS App国际化/本地化的实现过程

    公司原本有一款仅支持中文的app,随着国际化发展,产品经理要求添加相关设置,让app在支持中文的同时,可以支持英文...

  • iOS语言本地化/国际化(图文详解)

    3分钟实现iOS语言本地化/国际化(图文详解)前言语言本地化,又叫做语言国际化。是指根据用户操作系统的语言设置,自...

  • iOS 优雅的集成 App 内切换多国语言功能

    前言 本文在 App 已经手动集成语言本地化/国际化功能的基础上实现用户手动切换语言功能。如果对集成本地化/国际化...

  • App 的国际化和本地化

    1. App的国际化和本地化(一) —— 简单介绍(一)2. App的国际化和本地化(二) —— 查看语言和区域设...

  • iOS APP本地化以及内部实现修改语言

    最近公司项目中要求本地化,以及实现内部修改语言的功能,通俗来说本地化或者国际化就是app显示的语言和手机系统...

  • iOS国际化(本地化)

    iOS App国际化(本地化)分为App内部语言更换和App跟随手机语言变化,本文所记录的是跟随手机语言变化 在X...

网友评论

    本文标题:iOS App国际化/本地化的实现过程

    本文链接:https://www.haomeiwen.com/subject/blppottx.html