获取系统语言/当前 App支持语言

栏目: IOS · 发布时间: 7年前

内容简介:开发中设计多语言内容的部分总是很让人头疼。 本文也是在摸索中找到了几种可以获取当前系统语言的方法。注意区分app 内的当前语言,和系统的当前语言;

开发中设计多语言内容的部分总是很让人头疼。 本文也是在摸索中找到了几种可以获取当前系统语言的方法。

注意区分app 内的当前语言,和系统的当前语言

Swift

let userLanguage   = UserDefaults.standard.object(forKey: "AppleLanguages") //返回的也是数组
let appLanguages   = Locale.preferredLanguages // 返回一个数组
let deviceLanguage = Locale.current.languageCode
let bundleLanguages = Bundle.main.preferredLocalizations // 返回一个数组

let availableLanguages = Localize.availableLanguages() // 必须引入第三方库 import Localize_Swift, 获取当前 app 所有支持的语言列表
let currentLanguage = Localize.currentLanguage() // 引入第三方库,表示当前 App 使用的语言
复制代码

Objective C

NSString *userLanguage   = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"]
NSString *appLanguages   = [NSLocale preferredLanguages];
NSString *deviceLanguage = [[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode];
NSString *bundleLanguages =  [[NSBundle mainBundle] preferredLocalizations]
复制代码

表格说明

userLanguage appLanguages deviceLanguage bundleLanguages availableLanguages
返回类型 ["zh-Hans-CN", “en"] ["zh-Hans-CN", “en"] “zh" ["zh-Hans"] [“zh-Hans","zh-Hant”,”en"]
说明 从 userDefault 中获取到的,返回的是一个数组. 表示在当前 app 下使用过的 用户在手机系统设置里设置的语言。可以通过 设置 -> 一般 -> 语言与地区 看到,不是程序正在显示的语言。 似乎是当前使用语言的大类。不带地区码 带语言的二级分类,但不带地区码 (第三方库支持) 当前 App 设置的支持切换的语言数组

;

说明

  • 由此可以看到这几个获取系统语言的方法准确性(或者说颗粒度)是不一样的,前两种 userLanguageappLanguages 获取的会将国家地区的代码加上,而 deviceLanguage 只是显示是中文(大类),并不能区分是繁体中文还是简体中文,而最后这个方法带二级分类的语言类型
  • 表示用户在当前 app 下使用过的语言。因此返回的是一个数组。这个值返回的会带上 zh-Hans-CN 地区和分类 zh-Hant-HK
  • 我查阅了一些资料,然而并未找到具体的这几个分类的文档说明。后续有找到的话再继续补充吧。

设置当前默认的语言

import Localize_Swift

let bundleLanguage = Bundle.main.preferredLocalizations[0]
let availableLanguages = Localize.availableLanguages()
var language = "en" // 如果找不到当前匹配的语言,默认使用英语
for availableLanguage in availableLanguages {
    if let _ = availableLanguage.range(of: bundleLanguage) {
        language = appLanguage
        break
    }
}
复制代码

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

硅谷之火

硅谷之火

迈克尔·斯韦因 / 王建华 / 机械工业出版社 / 2001-1-1 / 34.00

我们今天正处于这样一个时代:充满幻想的人们发现他们获得了他们曾经梦寐以求的力量,并且可以利用这个力量来改造我们的世界。 这是个转折的时代,跨国公司迷失了发展方向,而小企业家却举起了计算机革命的大旗,成了开拓未来的先锋。在这个时代里,计算机奇才的脸上露出了胜利的微笑,胸怀 大志者成了富有理想的人,而富有理想的人则成了亿万富翁。这是一场真正的革命,它促使人们变得伟大,变得富有而充满理想,自豪而富......一起来看看 《硅谷之火》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具