• IOS 程序内部切换语言 的一种方法


      本文转载至  http://www.cnblogs.com/wuyijibei/archive/2013/08/01/3230468.html

     

    1: 首先, 所有的语言资源还是需要和现在的i18n方法一样,写在文件中,如下"textA = textA", "textB = textB" , 这个是英文的; 中文的就是"textA = A文字", "textB = B文字"。

    2: 定义一个语言类(LVC),单列,并在初始化的时候把资源文件load到LVC一个字典中,并且这个LVC得提供一个方法,返回在不同语言环境下的key对应的string 。再 定义一个Delegate,加入一个方法,refresh()。

    3 : 所有VC都实现语言类的Delegate,并设置 LVC.delegate = self;  在继承的refresh方法中重置界面上的的文字 , (文字是通过类似 LVC.getInstance().getStringByKey:"textName" 的方法来获取的)

    4 用户点击语言切换时,首先替换LVC中的语言标签,再调用delegate.refresh() ,  所有VC都会重新刷新控件上的字体,这个时候取出来的,就是当前语言的string了。

    首先需要想办法如何取到本地化数据

    NSString*loc =@"zh-Hans";if(![self isChinese]){
            loc =@"en";}

    NSString*path =[[NSBundle mainBundle] pathForResource:_file ofType:@"strings" inDirectory:nil forLocalization:loc];

    // compiled .strings file becomes a "binary property list"

    NSDictionary*dict =[NSDictionary dictionaryWithContentsOfFile:path];

    NSString*str =[dict objectForKey:_key];if(str)
    {

    return str;

    }
    return _key;


    剩下的就是如何各种通过 NSLocalizedString载入了。
  • 相关阅读:
    训练深度学习网络时候,出现Nan 或者 震荡
    Jupyter Notebook 的快捷键
    pyspark RandomForestRegressor 随机森林回归
    深度学习图像标注工具VGG Image Annotator (VIA)使用教程
    python 中 with 用法
    python 报错 SyntaxError: Non-ASCII character
    YOLO 详解
    Spark与Pandas中DataFrame对比
    利用WGET下载文件,并保存到指定目录
    http 三次握手
  • 原文地址:https://www.cnblogs.com/Camier-myNiuer/p/3316339.html
Copyright © 2020-2023  润新知