19 | 本地化(国际化)
iPhone拥有完整的本体化(Localization)体系结构,使用它可以将应用程序翻译成多种语言,如此就可以把程序发布在任何一个语言区的AppStore上。
链接:Localization_Demo
本地化主要分为三类:
本地化字符串
本地化nib文件
本地化图像:本地化图像 & 本地化应用程序图标
预备知识点:
NSLocalizationString(key,comment)函数:
NSLocalizationString在应用程序束中查找名为localizable.strings的字符串文件。如果找到了,则返回key对应的值,未找到则返回key。comment参数只是一个对key的注释
----------------------------------------------
添加需要国际化的语言 | 这里以英文和简体中文为例
说明:
目前,应用程序展示的所有文本都是以硬编码字符串存在于Main.storyboard和ViewController里面的。为了本地化这些字符串,你就需要把它们放在一个扩展名为.strings(Xcode使用这种格式的文件来存储和检索app中使用的所有字符串,以支持各种语言)的单独问件中。根据iOS设备当前使用的语言,代码中一个简单的方法调用将会查找并返回要求的字符串。
应用程序名称国际化:
注意:添加.strings文件,名字用InfoPlist.strings。
好了,看看效果:
这是简体中文下的效果:
总结:你想让你的程序国际化哪种语言,就添加哪种语言,并在InfoPlist.strings下面找到属于那种语言的文件,输入上面的代码,就OK。
字符串国际化
注意:添加.strings文件,名字为Localizable.strings
说明:内容国际化,在文件里面是"键" = "值"的形式来存储数据的。用法如下:
说明:调用文件里面的数据用NSLocalizedString方法,第一个参数是键。将模拟器的语言设置为English,运行:
说明:这就是内容国际化。将文件名定为Localizable.strings(系统默认)的方式就是上面的。如果文件名是随便设的,只是调用方法不一样,用NSLocalizedStringFromTable这个方法,第一个参数同上,第二个参数是文件名称,第三个同上。推荐使用默认的。
图片国际化
StoryBoard国际化|nib国际化一样的操作
storyBoard国际化很简单:
说明:只要你的SB里面有文字,你的文件里面就会自动生成。比方说你的SB里面有字符串“仓井空”,那么生成的几个文件你都可以找到,但是你得把不同语言文件里面的字符串改过来,中文里面,找到““苍井空””不改,英文里面同样找到““苍井空””,改成““Aoi Sora””,记住,只改对应的文字,其它的别动。
19 | 本地化(国际化)相关推荐
- 3分钟实现iOS语言本地化/国际化(图文详解)
为什么80%的码农都做不了架构师?>>> 原文 前言 语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往 ...
- iOS - 实现语言本地化/国际化
实现iOS语言本地化/国际化(图文详解) 前言 语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往一些应用程序需要提供给多个国家 ...
- Strust2 本地化/国际化
一个关于本地化/国际化的例子 参考 点击打开链接(非常完善的例子) 点击打开链接(ActionSupport.getText()方法) 注意s:radio的修改 1 package test;imp ...
- iOS语言本地化/国际化宝典
语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往一些应用程序需要提供给多个国家的人群使用,或者一个国家有多种语言,这就要求应用 ...
- 应用名称本地化/国际化
应用名称本地化,是指同一个App的名称,在不同的语言环境下(也就是手机设备的语言设置)显示不同的名称. 比如,微信在简体中文环境下App名称显示为"微信",在英语环境下显示为&qu ...
- struts国际化java_java框架篇---Struts2 本地化/国际化(i18n)
国际化(i18n)是规划和实施的产品和服务,使他们能很容易地适应特定的本地语言和文化的过程中,这个过程被称为本地化.国际化的过程有时也被称为翻译或本地化启用.国际化是缩写i18n,因为我和两端用n字打 ...
- 软件本地化(国际化)步骤
增加本地化代码实例 #define LOCALE_DIR "/usr/share/locale" #define LOCALE_DIR ""//如果设置当前目录 ...
- app的本地化 国际化
IOS篇 1. app name 多语言设置 注意:xcode 8 以后没有support Files 文件夹了,不用care, 只要配置文件名称填对就行 InfoPlist.strings , ...
- Spring Security 入门(1-9)国际化的使用
转载于:https://www.cnblogs.com/lexiaofei/p/7016222.html
- Qt Quick的国际化和本地化
Qt Quick的国际化和本地化 Qt Quick的国际化和本地化 国际化您的应用程序 1.对所有文字用户界面字符串使用qsTr() 2.为翻译器添加上下文 3.歧义相同的文本 4.用于%x将参数插入 ...
最新文章
- 什么是DCI? 它有什么用?
- JavaScript[对象.属性]集锦
- 全球所有货币币种汇总
- Reactive Extensions for .NET (Rx)
- ALV报表中设置可修改字段
- 梦世界服务器修改指令,我的世界梦世界有哪些指令必须知道 梦世界所有必须知道指令汇总...
- lua实现stack(lua程序设计21.7 练习21.1题)
- 排名前20位的在线编程课程,可促进您的职业发展
- 【基础】Qt-VS调试器下载与配置
- 数据结构与算法 pdf_整理一个月完成的数据结构与算法PDF和测试代码免费拿
- java线程interu_Intel 10nm服务器U首曝:多线程性能提升118%
- Spring Cloud 全家桶 入门介绍
- 2019 ACOUG年会圆满结束(附PPT和视频下载)
- 华为畅享max有没有人脸识别_华为三款5000mAh超大电池手机,都是续航王者,最低只要1499元...
- Angular - - ng-focus、ng-blur
- 免校准的电量计量芯片_免校准的高精度计量芯片HLW8032
- [Zer0pts2020]Can you guess it?
- 推荐几个笔记类APP,自学提示必备
- IDEA 添加类注释、方法注释(快捷键 /** + Enter)
- 敏涵化妆品何以圈粉Z世代消费群体?
热门文章
- 三维圆柱绕流建模与网格划分
- 性能提升40%: 腾讯 TKE 用 eBPF 绕过 conntrack 优化 K8s Service
- 支付宝蚂蚁森林惹争议!超6亿人“为种真树”积极参与,阿拉善277号林却现荒地?官方回应来了...
- 通过usb linux 显示器,惠普的新款 4K 显示器都能通过 USB Type-C 驱动
- 新加坡计算机金融专业,新加坡金融专业为何如此热门?
- 华为机试108题(C 语言解答)
- okhttp之拦截器
- 自动驾驶代客泊车AVP功能介绍
- POJ 3744 Scout YYF I 期望dp
- INI文件编程,WINAPI函数WritePrivateProfileString,GetPrivateProfileString