美文网首页
多语言开发

多语言开发

作者: 冷武橘 | 来源:发表于2020-04-19 21:26 被阅读0次

    一、让你的项目支持多语言开发(项目配置)

    • 1、配置工程
      点击PROJECT,在Localizations中点击添加你所需要支持的语言


      2457121-94d3055d23915538.png
    • 2、新建String File


      2457121-b99d3bbf24c7b604.png
    • 3.本地化String
      选中 test.string文件,在文件的右侧点击Localize,然后选中你所需要支持的语言
      File


      2457121-ffbdc01c91ae2f78.png
      2457121-46c487b8d53b63ec.png

      完成以上三步,你的项目已经可以支持中文,英文,日文三种语言了,下面就是加载语言文件了,显示多语言
      二、加载test.string文件,实现多语言显示

    • 1、常用的方法和宏简单说明
    //这是加载string文件的appi方法
    a.- (NSString *)localizedStringForKey:(NSString *)key value:(nullable NSString *)value table:(nullable NSString *)tableName
    
    key:    string文件中定义的key
    
    value:    如果string文件中,通过key取不到对应的value,就默认加载传进去的value
    
    tableName:  文件名称
    
    --------------------------------------------------------------------------------------
    b./*这是苹果已经定义好的一个宏
    #define NSLocalizedStringFromTable(key, tbl, comment) \
            [NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:(tbl)]
    */
    NSLocalizedStringFromTable(key, tbl, comment) 
    --------------------------------------------------------------------------------------
    c./*
    这也是苹果已经定义好的一个宏
    #define NSLocalizedString(key, comment) \
            [NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:nil]
    说明:文件名为nil时,系统会默认从项目中加载Localizable.strings文件(当然你需要手动新建一个,并命名为Localizable)
    */
    NSLocalizedString(key, comment)
    
    • 2、点击test.string展开,分别书写key不同语言下的value
    /* 
      test.strings(Chininese)
    */
    
    "cancell" =  "取消";
    
    /* 
      test.strings(English)
    */
    //key:       value
    "cancell" =  "cancell";
    
    2457121-a7138d05342efa30-2.png
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        //1.加载多语言文件,本地化字符串
        NSString *title=[[NSBundle mainBundle] localizedStringForKey:@"cancell" value:@"cancell" table:@"test"];
        
        //2.显示文字
        UILabel *lable=[[UILabel alloc]init];
        lable.text=title;
        lable.frame=CGRectMake(100, 100, 100, 40);
        lable.backgroundColor=[UIColor redColor];
        [self.view addSubview:lable];
    
    }
    重新运行下,项目就会根据当前系统的语言加载对应的语言文字
    

    以上只有重新运行或者杀死程序后才可以改变语言,并不能手动切换

    应用内切换语言请参考:
    http://www.jianshu.com/p/627da5a9992c

    相关文章

      网友评论

          本文标题:多语言开发

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