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” = “标题”。

    其他地方类似设置~

  • 相关阅读:
    WEB前端第十九课——雪碧图&滑动门
    近期网上资源收集(一)
    飞利浦 PHILIPS 电动牙刷HX6730 拆解
    webvtt字幕转srt字幕的python程序(附改名程序)
    [转载]Core Elements of a Program
    反正也没人看
    open read split
    蛋疼的二分法死循环
    leetcode ex3 找出穿过最多点的直线 Max Points on a Line
    leetcode AC1 感受
  • 原文地址:https://www.cnblogs.com/nanoCramer/p/2829135.html
Copyright © 2011-2022 走看看