iOS Localizable.strings 未从 BASE 文件中检索

标签 ios ios7 localization ios6.1 localizable.strings

我在 iOS 上无法按照我认为的方式进行本地化,但这是我第一次涉足本地化,所以我可能有误解。

我有三个 Localizable.strings 文件:

基地

"TAB_TITLE_Camera" = "CAMERA";

英语

"TAB_TITLE_Camera" = "Camera";

西类牙语

"TAB_TITLE_Camera" = "Cámara";

NSLocalizedString(@"TAB_TITLE_Camera", nil)

iOS 6.1

Xcode 5 上与运行 iOS 6.1英语西类牙语的第 4 代 iPod Touch 似乎有效,但如果我更改为 German (或任何其他没有本地化文件的语言)它不会拉 来自 Base Localizable.strings,而是从 English 文件中提取。

为什么它BASE文件中提取?

为什么 DOES 它从 English 文件中提取?


iOS 7.1

此外,对于运行 iOS 7.1第 5 代 iPod Touch,当我更改为德语时,它似乎从上次选择的语言中提取出来具有本地化文件,英语西类牙语。啊?!

最佳答案

找到了一种方法来确定我是否有当前所选语言的本地化文件,如果没有,我可以从 Base 本地化文件中提取。

NSString *path = [[NSBundle mainBundle] pathForResource:[[NSLocale preferredLanguages] objectAtIndex:0] ofType:@"lproj"];
if (path == nil)
{
    path = [[NSBundle mainBundle] pathForResource:@"Base" ofType:@"lproj"];
}

NSLocalizedStringFromTableInBundle(@"TAB_TITLE_Camera", @"Localizable", [NSBundle bundleWithPath:path], @"");

如果当前语言是:

English 它返回Camera

西类牙语 它返回Cámara

任何没有本地化文件的东西都会返回CAMERA

满足我所有需要的简单解决方案。

适用于 iOS 6.1iOS 7.1

关于iOS Localizable.strings 未从 BASE 文件中检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25680874/

相关文章:

ios - 如何自定义我的 UITableView 单元格如下

ios - 跟踪UIBarButtonItem的选定状态?

spring - 如何在 Spring Framework 3 中翻译 Controller 内的文本?

iphone - 常见 UI 字符串的本地化

ios - CLLocationCoordinate2D 两点之间的距离

asp.net - int 溢出时本地化为 "the value {0} is invalid"

ios - InAppPurchase 中标识符无效的问题

iphone - segue.destinationViewController 究竟做了什么?

ios - UIImageView 重复显示在另一个单元格中

ios - UITextView textViewDidChange : does not recognize newline character