gpt4 book ai didi

ios - iOS 中的 Localizable.strings 而不是本地化语言

转载 作者:可可西里 更新时间:2023-11-01 05:54:48 25 4
gpt4 key购买 nike

我正在构建一个将在未来版本中进行本地化的应用程序,因此我想对其进行设置以为此做好准备。

目前我只有一种语言(法语)并且 fr.lproj 文件夹包含 Localizable.strings 以及相关键的法语翻译。

问题是,如果我将我的设备设置为英语,我不会收到法语默认翻译,但我会看到我在 NSLocalizedString 中使用的 Keys 名称。

例如,如果我尝试通过以下方式获取 View Controller 的标题:

NSLocalizedStrings(@"viewController_Title",nil);

对于英语设备, View Controller 显示“viewController_title”作为标题,而如果我设置法语,它可以正常工作。

我该如何处理?

最佳答案

你的问题是你需要一种语言来回退。据我所知,没有官方的解决方法,我过去写过这样的方法:

NSString * L(NSString * translation_key) {
NSString * s = NSLocalizedString(translation_key, nil);
if (![[[NSLocale preferredLanguages] objectAtIndex:0] isEqualToString:@"en"] && [s isEqualToString:translation_key]) {
NSString * path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
NSBundle * languageBundle = [NSBundle bundleWithPath:path];
s = [languageBundle localizedStringForKey:translation_key value:@"" table:nil];
}
return s;
}

在这种情况下,使用 L(@"viewController_Title"); 将返回默认语言的字符串,在这种情况下为英语。

Shameless self-citation

关于ios - iOS 中的 Localizable.strings 而不是本地化语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20516790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com