转自:http://blog.csdn.net/songrotek/article/details/8766641
要使应用多语言化在Xcode中实现起来其实是相当容易的。对于大多数的应用,多语言化主要在于文字的多语言化,其他的诸如图形,界面的多语言化一般的应用并不会涉及。当然,这些在Xcode中都可以实现。下面主要介绍一下文字多语言化的方法。
Step 1:为应用添加多语言版本
这个很简单,在project中info下有localizations,点击+添加所需要的版本,这时会弹出对话框显示要添加语言版本的内容。
这里面包含了storyboard,infoPlist.strings。如果要实现产品名称的多语言化,应包含infoPlist.strings。同时也可以看到我们可以直接在storyboard中实现比如按钮,图片的多语言。对于Localizable.strings,是针对文字的多语言,在下面会讲到。这个要手动添加。
Step 2:编程中的变化
要实现多语言,在编程中就不能直接用NSString 了,而是使用
NSLocalizedString(key, comment)
介绍一下基本用法:key是对应显示的NSString,comment则为注释。基本的原理就是有不同版本的Localizable.strings,相同的注释在不同语言版本中key不一样,这样显示的时候不同的语言界面显示的语言就不一样。
Step 3:获取Localizable.strings
打开Terminal终端:
然后将地址换到工程所在文件夹。基本方法是输入“cd ”然后将工程文件夹拉进其窗口。
然后输入 genstrings ./LocalizeMe/*.m 这里LocalizeMe是我这里例子的项目名称。要改成你项目的名称。 回车,然后打开工程文件夹,你就可以看到Localizable.strings文件,将其拉进Xcode项目中。
打开文件可以看到如下类似内容,Localizable.strings 包含你的项目中所有使用NSLocalizedString的内容。
这里的注释就是comment,而下面的“Three”=“Three”,左边的字符串就是Key。
Step 4:编辑Localizable.strings
如果你这时候还没有针对Localizable.strings这个文件进行多语言化也没关系。如下图:
点击这个文件,然后打开属性,可以看到右边有Localization选项,比如我要添加中文版,那就在Chinese上打钩,这样这个文件就会自动添加一个Chinese版本。
接下来就是点击这个Chinese版本进行编辑:
把每个对应的key的内容改成中文的就OK了。
现在运行程序,如果手机是中文的,那么显示的就是中文内容,如果是英文的,那就是英文内容。
Step 5:应用名称多语言化
这个很简单,在infoPlist.strings中输入
CFBundleDisplayName = "应用名";
就可以了。
=======================
自己的补充:
NSBundle.h下有
#define NSLocalizedString(key, comment) \
[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]
#define NSLocalizedStringFromTable(key, tbl, comment) \
[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:(tbl)]
#define NSLocalizedStringFromTableInBundle(key, tbl, bundle, comment) \
[bundle localizedStringForKey:(key) value:@"" table:(tbl)]
#define NSLocalizedStringWithDefaultValue(key, tbl, bundle, val, comment) \
[bundle localizedStringForKey:(key) value:(val) table:(tbl)]
4个方法
(key, tbl, bundle, val, comment)
1.key 所使用的字符串对应的key
2.tbl 所使用的字符串所在的string文件名。 ex:abc.strings的话 就输入abc
3.bundle 资源strings文件所在的文件目录。
4.val 默认字符。
5.comment 注释
相关推荐
虽然没有提供博客的具体内容,但我们可以基于iOS多语言支持的通用知识进行深入探讨。 1. **本地化基础**:在iOS中,本地化主要通过Xcode的国际化工具来实现。开发者需要在项目中添加Localizable.strings文件,该...
以下是关于iOS多语言设置、本地化和国际化的详细知识: 1. **国际化与本地化** - **国际化(Internationalization)**:是指设计和开发应用程序的过程,使其能够适应多种语言和文化环境,而不必对代码进行大量修改...
在iOS应用开发中,实现多语言支持是一项基本且重要的任务,尤其对于面向全球用户的软件来说。这使得应用程序能够根据用户设备的语言设置,显示相应的文本和图像,提供更加友好的用户体验。下面将详细介绍如何在iOS中...
iOS 国际化多语言支持 iOS 开发中,国际化是非常重要的一步,特别是在项目需要在多个国家和地区发布的情况下。国际化可以让应用程序适应不同语言和地区的需求,从而提高应用程序的用户体验和市场竞争力。 在 iOS ...
在iOS应用开发中,支持多语言切换是一项重要的功能,它可以让全球不同地区的用户根据自己的语言习惯来使用应用。本文将详细讲解如何在iOS项目中实现多语言切换,并以"iOS开发多语言切换Demo"为例进行深入探讨。 ...
在iOS应用开发中,实现多语言支持是一项重要的功能,它可以让您的应用触及更广泛的用户群体。这个名为"ios应用实现多语言demo"的项目显然旨在展示如何在iOS应用中实现这一功能。以下是对这一主题的详细说明: 1. **...
在iOS应用开发中,为了使应用能够适应全球用户的需求,多语言本地化是一个必不可少的环节。这涉及到如何设计和实现应用的国际化功能,使得不同地区的用户可以使用他们熟悉的语言进行交互。本文将深入探讨iOS应用的多...
iOS 多语言本地化是为应用程序提供不同语言支持的关键步骤,使得全球用户能够根据自己的语言偏好使用应用。本文档详细介绍了如何实现这一功能,包括自动根据系统语言切换和通过应用设置自定义语言。 1. 案例描述: ...
这个话题涉及到Swift编程、iOS应用国际化以及多语言支持。下面我们将深入探讨如何在Swift中实现这一功能。 首先,我们需要理解iOS的国际化和本地化机制。iOS通过Localizable.strings文件来处理应用的多语言支持。每...
"ios语言国际化源码"这个压缩包很可能是提供了一个Objective-C(OC)开发的示例项目,用于展示如何在iOS应用中实现多语言支持。下面将详细解释iOS应用的国际化过程,并探讨相关的关键知识点。 1. **国际化基础**: ...
"ios 多国语言,随系统,手动选择"这个标题暗示了我们要讨论的是如何在iOS应用中实现多语言支持,并且能够根据用户的系统语言设置自动切换,同时提供手动选择语言的选项。以下是对这个主题的详细讲解: 1. **...
安卓需要的文件
1. **Swift 4.2**:更新的Swift编程语言版本,带来了更多语法改进和错误处理。 2. **通用购买**:开发者可以为iOS、macOS、watchOS和tvOS应用提供单一购买方案。 3. **App Store Connect集成**:可以直接在Xcode内...
unity 多语言,支持android 和ios,操作简单,容易上手
iOS语言本地化是苹果开发平台为...总的来说,iOS的本地化机制允许开发者轻松地创建多语言应用,提升用户体验,扩大市场覆盖范围。通过正确理解和使用这些工具,开发者可以为全球用户提供更贴心、更具有吸引力的产品。
多语言支持 目前有 英语 法语 俄语 泰语 意大利语 越南语 印尼语 印地语 需要其他语言可以免费定制 多货币支持 支持以USD为主的全球主流货币,一键转换汇率,提高用户购买率 商家入驻 这是每一个跨境商城必备的...
通过以上步骤,开发者可以构建出一个完全支持多语言的iOS应用。GDLocalizableController作为一个辅助工具,简化了这一过程,使开发者能够更加专注于应用的核心功能,而不是语言切换的细节。 总之,iOS语言国际化是...
iOS 13.4是Apple公司为iPhone、iPad和iPod touch推出的操作系统版本,它带来了多项新特性和改进。此支持包文件可能是用于开发者在Xcode环境下进行iOS 13.4应用开发或更新的资源集合。Xcode是Apple官方的集成开发环境...
首先,我们来了解iOS的语言支持。苹果的iOS系统支持多种语言,包括但不限于英语、简体中文、繁体中文、法语、德语、日语、韩语等。这些语言涵盖了全球大部分地区,满足了不同国家和地区用户的需要。 接下来,我们将...
总的来说,实现“iOS视频图片混合轮播,支持视频播放和图片预览”涉及到Objective-C编程、UI设计、多媒体处理等多个方面,需要开发者具备扎实的iOS开发基础和良好的用户体验意识。通过合理的设计和编码,可以创造出...