- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
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/
我正在尝试本地化我的应用程序,但应用程序在遇到我使用 localizedStringWithFormat 的本地化字符串时崩溃了。这是一个例子: cell.productRangeLabel.text
是否可以将 NSLocalizedString 基础结构(基于 localized.strings)与自定义定义的“本地化”结合使用? 问题是,有些语言对男性和女性有不同的措辞。我想在首次启动时询问用
有没有办法在界面生成器中插入 NSLocalizedString。例如,将标签文本设置为本地化字符串而不是静态字符串? 我真的很讨厌为每个需要本地化字符串的项目创建一个属性。 最佳答案 这篇文章可能会
我遇到了一个问题,即 NSLocalizedString 总是返回大写的字符串,而不管其输入如何。本地化工作 我假设我做了一些导致这种情况的事情,但我似乎无法 弄清楚到底发生了什么变化。 这是我的代码
我正在学习翻译我的申请,但我有一个问题。 如果设备语言尚未放入 Localized.string 中,会发生什么情况?例如我想在英文文件中使用单词“Hello”我在西类牙语文件中添加 HELLO =
我是 Objective-C 的新手。这是我的问题: 在我的两个字符串文件中有以下两个条目: (德语字符串文件) /* Class = "IBUILabel"; text = "Import to D
有人知道为什么我的本地化字符串被忽略吗? 谢谢。 最佳答案 文件Settings.bundle/XX.lproj/Root.strings仅在Settings.bundle中使用。 如果您想使用 NS
我想知道是否有人知道如何连接我的应用程序语言和 NSLocalizeStrings,例如:我的应用程序在 fr、ru、ro 上,但用户设备在 en 上,当用户打开应用程序时,它在 en 上,但在应用程
我需要在点击按钮时使用本地化来切换语言。 我试过了,错误是元素不刷新。 -它们设置如下: self.lblSectionMyPictures.text=NSLocalizedString(@"lblS
我在 Prefix.pch 中像这样为 NSLocalizedString 构建了一个宏: #undef NSLocalizedString #define NSLocalizedString(key
我正在尝试以编程方式本地化我的项目,因为基础国际化不会自动在 Storyboard上选取我的菜单项。我想本地化数组中的字符串。我遇到的具体问题是这段代码: - (void)viewDidLo
我有 2 个本地化字符串文件,一个用于罗马尼亚语,一个用于英语。在这两个文件中我都有这一行: 英语: "invalidSum" = "Invalid amount" 罗马尼亚语: "invalidSu
我正在开发我的第一个 Swift 应用程序。现在我想使用 NSLocalizedString 翻译 BUTTON 中的文本,但我不知道如何快速编写它。 这是我的 else-if 函数: overrid
我想给标签一个包含多种字体的文本。这可以通过创建一个 NSMutableAttributedString 来完成。但是,我不确定如何格式化以下情况: String(format: NSLocalize
我的项目基本语言是英语。我的模拟器/电话是英文的。这些项目支持英语、法语、荷兰语。 当应用程序首次启动时,即使手机是英文的,应用程序始终是法语。 当我调试并打印出这一行时: [NSLocale pre
我误解了 NSLocalizedString。 我有一个包含法语和英语 .strings 文件的项目。在项目目标 - 本地化中,我有 6 个法语和英语文件。 在 english.strings 文件中
好吧,我正式大吃一惊。前段时间我开始了一个 IOS 项目,一开始在本地化方面有点杂乱无章,因为我还不知道如何正确地做到这一点。 现在我决定从头开始进行本地化,因此丢弃了所有 .strings 文件,并
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
我在调试我的 NSLocalizedString 实现时遇到了一些问题。应该很简单,但无论我做什么,函数只返回 KEY 字符串。 我正在使用 XCode 4.5 和 iOS6,所以我: 添加了一个名为
我有英文、日文、韩文的 Localizable.strings 文件。我无法从韩国文件中加载一些单词。我也检查了拼写、大写字母或小写字母。它是正确的。我还清理了项目,重置了模拟器并删除了设备上的应用程
我是一名优秀的程序员,十分优秀!