objective-c - iOS 本地化不加载语言

标签 objective-c ios cocoa-touch localization

今天我想尝试一下 iOS 的本地化功能。 我向我的项目添加了一个 Localized.strings 文件,其中包含以下内容:

"TP_Start_Button" = "Workout Plan";
"TL_Start_Button" = "Training Log";
"Calc_Start_Button" = "Calculator";

我设置了三个 UIButtons 的标题,如下所示:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.tp_start_button setTitle:NSLocalizedString(@"TP_Start_Button", nil) forState:UIControlStateNormal];
    [self.tl_start_button setTitle:NSLocalizedString(@"TL_Start_Button", nil) forState:UIControlStateNormal];
    [self.calc_start_button setTitle:NSLocalizedString(@"Calc_Start_Button", nil) forState:UIControlStateNormal];
}

之后,我通过选择我的项目并按本地化下的“+”按钮添加了另一种语言。 O 选择了德语,并创建了另一个 Localized.strings。我用德语翻译替换了内容。然后我得到了以下内容:

Localizable.strings
    Localizable.strings (English)
    Localizable.strings (German)

在我的项目文件夹中,文件夹 de.lprojen.lproj 是使用 Localized.strings 内部创建的。

但是,启动iPhone模拟器后,英文 被加载为默认语言。将语言设置为德语后,我的应用程序的语言没有改变。即使从我的应用程序中删除并重新安装该应用程序后 设备不起作用。

当设置中的语言更改时,我需要做什么才能自动切换语言?

最佳答案

正如我的评论中所述,清理并重新构建将解决问题。

对于本地化功能,您必须经常清理和重建,因为此功能由 XCode 缓存。

关于objective-c - iOS 本地化不加载语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14019612/

相关文章:

objective-c - 在 Objective-C 中使用嵌套block : EXC_BAD_ACCESS

ios - 使用自定义单元格在 UITableView 上进行多点触控

ios - MKMapSnapshotter 从快照中删除 "Legal"

ios - 为什么将UIViewController释放在主线程上?

objective-c - 是否可以恢复我删除的 xcdatamodel 文件?

ios - 检测设备信息时潜在的内存泄漏

iphone - int 和++new 每次都加 2

ios - __LP64__ 和 __arm64__ 在 Cocoa 中存在哪些定义可以在编译时区分平台?它们在哪里或如何定义?

ios - 如何开发屏幕之间的滑动

objective-c - 在 UIView 而非 UIImageView 上自由手绘