大佬教程收集整理的这篇文章主要介绍了ios – 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中打开文件来验证编码类型,该文件使用Unix LF将编码显示为Unicode(UTF-16).
关于如何让这个工作一直有效的任何建议?
以上是大佬教程为你收集整理的ios – NSLocalizedString有时会加载字符串,而不是总是全部内容,希望文章能够帮你解决ios – NSLocalizedString有时会加载字符串,而不是总是所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。