美文网首页iOS基础知识
iOS语言本地化(NSLocalized​String)

iOS语言本地化(NSLocalized​String)

作者: 托尔里 | 来源:发表于2021-10-18 20:18 被阅读0次

应用中那些字符串需要本地化

一般而言,所有你想以某种形式展现在用户眼前的字符串都需要本地化,包括标签和按钮上的文本,或者在运行时通过格式化字符串和数据动态生成的字符串。

工程配置(添加多语言)

选中PROJECT->INFO->Localizations,然后点击"+"号,添加你需要的语言类别

1

创建好工程之后默认的语言为英语。这里我们需要添加简体中文

2

添加完毕,我们可以看到有两种语言Chinese和English

3


本地化应用名称(InfoPlist.strings)

通过InfoPlist.strings文件,应用可以在不同的手机语言环境中,显示不同预先设置好的名字。例如,微信在简体中文环境下显示的名字为“微信”,而在英语环境下显示为“weChat”。

创建文件。command + N -> iOS -> Resource -> Strings File

4

文件名字必须为InfoPlist

5

默认为English,点击Localize

勾选Chinese(Simplified)

创建完成,此时我们可以看到,InfoPlist.strings文件以包含英语以及简体中文两种语言的文件

接下来,我们分别在不同的语言文件中设置响应的App名字

我们可以看到在不同的手机语言环境中,App显示的名字是不同的。

NSLocalizedString

NSLocalized​String这个宏是字符串本地化的核心。NSLocalizedString提供本地化字符串的 “一次编译,随处运行” 的方式,根据用户设置的字符串表把所有本地化字符串替换成对应的翻译。

它有两个参数key:进行本地化的唯一字符串标识, comment:用于提供用来准确翻译的足够的上下文的字符串。在实践中,key往往只是用来翻译的基准字符串,而comment通常是 nil

在运行时,NSLocalizedString首先会确定当前的手机语言环境,并在应用程序包中找到相应的Localizable.strings文件,查找和参数匹配的键值(在下面的例子中 key==home),然后读出真正要显示的字符串。

在实践中,key 往往只是用来翻译的基准字符串,而 comment 通常是 nil

在使用NSLocalized​String之前我们需要先创建好相应的Localizable.strings文件,创建的方法跟创建InfoPlist.strings相同,这里就不具体说明了。

再次声明,命名为“Localizable”

在英语环境中,打印的是“hello”,而在中文环境中,打印的是“你好”


调试技巧

切换语言无需在模拟器中设置,只需要在Xcode中进行如下设置: Edit->Scheme->Run->Options ->Application Languages -> 选择需要调试的语言。


结尾

这次介绍了NSLocalizedString的基本用法,以及它的几个类似宏的应用场景。这几个宏对于规模稍大的项目,以及模块化思路都有很好的帮助。还给大家分享了关于注释和键值命名的一些建议。无论你开发的 APP 是否真的需要多语言,使用NSLocalizedString而不是直接把字符串写到代码里面都是一个相对好一些的选择,因为能够轻松地查看所有用户将看到字符串是很有用的。

最后,喜欢的话请点个赞吧!

相关文章

  • iOS语言本地化(NSLocalized​String)

    应用中那些字符串需要本地化 一般而言,所有你想以某种形式展现在用户眼前的字符串都需要本地化,包括标签和按钮上的文本...

  • iOS 多国语言本地化与App内语言切换(Swift)

    iOS 多国语言本地化与App内语言切换(Swift) iOS 多国语言本地化与App内语言切换(Swift)

  • iOS本地化01-语言本地化(NSLocalized​Strin

    下面这段话摘自苹果的国际化和本地化指南: Localization is the process of trans...

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

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

  • iOS 本地化入门教程

    iOS 本地化入门教程 iOS应用的本地化原理非常简单,是通过strings类型的文件,为同一种语言的不同翻译设置...

  • iOS工程的本地化-Swift

    应用如果需要根据设备语言显示不同的语言,就需要进行本地化的工作。就iOS工程而言,需要本地化的内容主要有:文字、图...

  • ♦️ iOS 名称及内容本地化

    好坑呀找了许久的名称本地化真难找,这里就介绍下应用名称和内容本地化 一.iOS名称本地化(根据系统语言修改App的...

  • iOS语言本地化

    Brief### iOS实现语言的本地化很简单,这里只是为了简单的记录一下过程。 一、本地化storyboard上...

  • 本地化

    今天做不如修仙的本地化,看到这篇文章很详细3分钟实现iOS语言本地化/国际化,评论区还有应用内切换语言的方法,修改...

  • 【技术文章收集】收集

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

网友评论

    本文标题:iOS语言本地化(NSLocalized​String)

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