读取本地化字符串
Reading Localized String
我有一个应用程序,我希望能够获取某个键的本地化字符串,无论我当前在 iPhone 上的本地化是什么。
我在 en.lproj 本地化字符串文件中有以下内容
"Black" = "Black";
在 es.lproj 本地化字符串文件中
"Black" = "Negro";
所以我想做的是在我的 phone 在美国时获取西班牙语字符串并进行相应设置
我正在使用以下代码:
let bpath:String = NSBundle.mainBundle().pathForResource("es", ofType: "lproj")! as String
let bundle = NSBundle(path: bpath as String)
let thisWord="Black"
let ourWord=NSLocalizedString(thisWord, bundle: bundle!, comment: "")
我希望 ourWord 的值达到 "Negro",但我总是得到 "Black"
我是不是遗漏了什么明显的东西?
本地化设置的应用基于您在 phone 中设置的设置,而不是位置。如果您的 phone 设置为显示西班牙语的应用程序语言,那么您将看到相应的字符串。要配置应用程序语言设置以便您可以对其进行测试,您需要编辑您的方案。
在 Xcode 7.1+ 中转到产品 > 方案 > 编辑方案
然后更改应用程序语言 and/or 区域以模拟用户看到的内容 iPhone 配置为美国英语以外的区域或语言。
(将其切换为西班牙语,然后再次在设备上调试应用程序以查看更新的本地化字符串)。
实际上我的代码工作正常。我犯了一个愚蠢的错误,没有将 "Localizable.strings" 文件设置为本地化。
现在感觉很蠢
我有一个应用程序,我希望能够获取某个键的本地化字符串,无论我当前在 iPhone 上的本地化是什么。
我在 en.lproj 本地化字符串文件中有以下内容
"Black" = "Black";
在 es.lproj 本地化字符串文件中
"Black" = "Negro";
所以我想做的是在我的 phone 在美国时获取西班牙语字符串并进行相应设置
我正在使用以下代码:
let bpath:String = NSBundle.mainBundle().pathForResource("es", ofType: "lproj")! as String
let bundle = NSBundle(path: bpath as String)
let thisWord="Black"
let ourWord=NSLocalizedString(thisWord, bundle: bundle!, comment: "")
我希望 ourWord 的值达到 "Negro",但我总是得到 "Black"
我是不是遗漏了什么明显的东西?
本地化设置的应用基于您在 phone 中设置的设置,而不是位置。如果您的 phone 设置为显示西班牙语的应用程序语言,那么您将看到相应的字符串。要配置应用程序语言设置以便您可以对其进行测试,您需要编辑您的方案。
在 Xcode 7.1+ 中转到产品 > 方案 > 编辑方案
然后更改应用程序语言 and/or 区域以模拟用户看到的内容 iPhone 配置为美国英语以外的区域或语言。
(将其切换为西班牙语,然后再次在设备上调试应用程序以查看更新的本地化字符串)。
实际上我的代码工作正常。我犯了一个愚蠢的错误,没有将 "Localizable.strings" 文件设置为本地化。
现在感觉很蠢