gpt4 book ai didi

ios - NSLocalizedString 有时会加载字符串,但并非总是如此

转载 作者:可可西里 更新时间:2023-11-01 03:31:50 25 4
gpt4 key购买 nike

NSLocalizedString 仅在我返回所引用键的预期值的一半时间内工作。其他时候我会取回在 NSLocalizedString 中指定的键名,并且在其他每次运行中都会出现这种情况。

目前我只支持英文

我调用:

NSString *someText = NSLocalizedString(@"mystring.keyname", nil);

en.lproj/Localizable.strings 的内容:

"mystring.keyname" = "Hello there!";

当它不能正常工作时,someText 的 值为mystring.keyname

这是我测试可靠性的方式:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
NSLog(@"Strings file: %@", [bundle pathForResource:@"Localizable" ofType:@".strings"]);
NSLog(@"Localizations: %@", [bundle localizations]);
NSLog(@"Local Dict: %@", [bundle localizedInfoDictionary]);
NSLog(@"localizedStringForKey: %@", [bundle localizedStringForKey:@"mystring.keyname"value:@"Wha happened?" table:nil]);
NSLog(@"Localized String: %@", NSLocalizedString(@"mystring.keyname", @"Are you sure you want to start a new game?"));
}

这会每隔一次运行打印出期望值:

Run #1:
Local Dict: (null)
localizedStringForKey: Hello there!
Localized String: Hello there!

Run #2:
Local Dict: (null)
localizedStringForKey: Wha happened?
Localized String: mystring.keyname

我的文件是这样布局的:

WORKSPACE_DIR/ 
my_workspace_name.xcworkspace
PROJECT_DIR/
- my_project_name.xcodeproj
RESOURCES_DIR/
- en.lproj/
Localizable.strings

XCode 的项目级设置:

1) Build Phases has Localizable.strings listed in the "Copy Bundle Resources".

2) Build Settings:
Convert Copied Files => YES
Property List Output Encoding => binary
Strings file Output Encoding => UTF-16

3) Info.plist's: CFBundleDevelopmentRegion => 'en'

Localizable.strings 配置为 UTF-16,尽管我在文件检查器中没有看到选择了字符串文件的文本设置选项。但是我已经通过在 TextWrangler 中打开文件验证了编码类型,该文件显示编码为 Unicode (UTF-16) with Unix LF。

关于如何让它一直工作有什么建议吗?

最佳答案

如果您的可本地化文件中有任何额外的分号,它会构建但无法本地化。

关于ios - NSLocalizedString 有时会加载字符串,但并非总是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14486857/

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