美文网首页
iOS本地化/国际化/多语言切换(Objective-C)

iOS本地化/国际化/多语言切换(Objective-C)

作者: Raywf | 来源:发表于2018-03-10 12:41 被阅读0次

    2018.3.10
    demo下载地址 GitHub
    demo是基于objective-c的纯代码实现,已剥离xib,关于xib的本地化实现,这里没有。

    README
    1. Info.plist文件不可以本地化
    因为本地化之后,Info.plist文件被移动至本地化语言文件夹中,项目根目录下不存在Info.plist文件,系统读取不到元数据,程序无法加载。
    2. 利用InfoPlist.strings文件和CFBundleDisplayName,实现应用名称的本地化显示
    但是,该本地化显示仅支持跟随系统语言设定。
    3.同样的,通过在(2.)中的文件中设置相应的权限的Key,也可以实现权限提示内容的本地化
    同理本地化显示也仅支持跟随系统语言设定。
    
    功能文件
    简单的代码为应用实现多语言的功能,不使用更加清晰的枚举值来表示不同语言,是为了便于二次开发/自定义需求的实现。
    RFLanguageHelper.h
    RFLanguageHelper.m
    
    调用方式
    1.在AppDelegate中的didFinishLaunchingWithOptions方法中调用初始化方法:
    [RFLanguageHelper InitLanguageHelper:@"本地化多语言文件名"];
    2.基本调用,示例代码:self.title = RFLanguage(@"标题");
    3.多语言切换,示例代码:详见demo中的 ViewController.m 文件。
    
    补充
    2018.3.30更新
    发现的bug,
    不同的手机版本,语言码对应的语言会不一样。。
    解决方案如下,
    新增一个方法 + (NSInteger)LanguageCodeViaKey:(NSString *)key 
    运行时利用新的方法获取到准确的语言码,而后做相应的设定
    

    相关文章

      网友评论

          本文标题:iOS本地化/国际化/多语言切换(Objective-C)

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