zoukankan      html  css  js  c++  java
  • ios软件支持双语(本地化、国际化)

    获取ios系统语言的方法:   

        NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];

        NSArray* languagesArray = [defaults objectForKey:@"AppleLanguages"];

        NSString* systemlanguage = [languagesArray objectAtIndex:0];

    最后获得的systemlanguage即是当前系统的语言。( en:英文  zh-Hans:简体中文   zh-Hant:繁体中文)

     languagesArray 为设置-通用-多语言里面的语言数组,顺序一致,所以index=0即是当前语言。

    不过如果工程中许多地方需要适配多种语言,这个方法就不适合了。

    ios中有专门的属性支持本地化:Localizable.strings

    首先的工程中添加文件:Strings File (在ios-Resource里),将其名字改为Localizable.strings。

    选中Localizable.strings,打开Utilities,选中show the File inspector 在Localization中添加你需要支持的语言(比如English和Chinese),这是你会发现Localizable.strings就包含了2个文件(English和Chinese)。

    准备工作做完了,然后在需要设置双语的地方(比如要设置“Title”和“标题”)使用NSLocalizedString(@"Title", nil)。

    NSLocalizedString 第一个参数是key, 第二个参数是注释(个人觉得没什么用,所以一般设为nil...谁知道有啥特别的用处可以告诉我下。)。

    在Localizable.strings(English)中添加 “Tltle” = “Title”。

    在Localizable.strings(Chinese)中添加 “Tltle” = “标题”。

    其他地方类似设置~

  • 相关阅读:
    4种方法教你如何截取JS字符串最后一位
    12种JS常用获取时间的方式
    拖动的模态框
    计算鼠标在盒子内的坐标
    offset与style的区别
    offset系列属性
    Words
    #一些真相# 和自己握手言和,不要期盼另一片荒岛可以让你变成陆地
    Stack为什么翻译成栈?- 根据字形来辨别容易混淆的堆和栈
    [Hardware] 机械硬盘和固态硬盘功耗对比
  • 原文地址:https://www.cnblogs.com/nanoCramer/p/2829135.html
Copyright © 2011-2022 走看看