博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS本地化学习小结
阅读量:4297 次
发布时间:2019-05-27

本文共 1373 字,大约阅读时间需要 4 分钟。

国际化学习

国际化也称作本地化,为了使不同国家和地区的用户能够有良好的体验,需要对自己所开发的应用进行不同语言的适配。

iOS中的NSBundle.h中提供了本地化的实现方法:

/* Method for retrieving localized strings. */- (NSString *)localizedStringForKey:(NSString *)key value:(NSString *)value table:(NSString *)tableName NS_FORMAT_ARGUMENT(1);
  • key 查找的字符串的唯一标识
  • value 查找的字符串的默认值
  • tableName 查找的文件名,传入的文件名参数不应包含后缀名 strings,若为nil或空,则默认查找文件Localizable.strings
key value return
nil nil 空串
nil 非 nil value
未找到 nil 或 空串 key
未找到 非 nil 且 非空串 value

一般可以直接使用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)]
  • NSLocalizedString(key, comment)
  • NSLocalizedStringFromTable(key, tbl, comment)

    使用这两个宏时,都是使用与系统语言相同的语言资源包,但前者是使用默认的字符串文件Localizable.strings,而后者使用传入的文件进行查找。

  • NSLocalizedStringFromTableInBundle(key, tbl, bundle, comment)

  • NSLocalizedStringWithDefaultValue(key, tbl, bundle, val, comment)
    使用这两个宏,可以指定资源包,即可以加载自己想要显示的语言的资源,从而实现应用内语言的切换。
    在实现应用内语言切换,需要监听用户切换语言的动作,当用户切换语言时,发送通知,加载相应语言的资源包,再去刷新界面,显示正确的语言。

转载地址:http://vtdws.baihongyu.com/

你可能感兴趣的文章
JDK1.8-Stream API使用
查看>>
cant connect to local MySQL server through socket /tmp/mysql.sock (2)
查看>>
vue中的状态管理 vuex store
查看>>
Maven之阿里云镜像仓库配置
查看>>
Maven:mirror和repository 区别
查看>>
微服务网关 Spring Cloud Gateway
查看>>
SpringCloud Feign的使用方式(一)
查看>>
SpringCloud Feign的使用方式(二)
查看>>
关于Vue-cli+ElementUI项目 打包时排除Vue和ElementUI
查看>>
Vue 路由懒加载根据根路由合并chunk块
查看>>
vue中 不更新视图 四种解决方法
查看>>
MySQL 查看执行计划
查看>>
OpenGL ES 3.0(四)图元、VBO、VAO
查看>>
OpenGL ES 3.0(五)纹理
查看>>
OpenGL ES 3.0(八)实现带水印的相机预览功能
查看>>
OpenGL ES 3.0(九)实现美颜相机功能
查看>>
FFmpeg 的介绍与使用
查看>>
Android 虚拟机简单介绍——ART、Dalvik、启动流程分析
查看>>
原理性地理解 Java 泛型中的 extends、super 及 Kotlin 的协变、逆变
查看>>
FFmpeg 是如何实现多态的?
查看>>