我在这个论坛中读到可以使用NSLocalizedString作为NSDictionary的密钥。
这是我的NSDictionary:
LABELS = [[NSDictionary alloc] initWithObjectsAndKeys:
NSLocalizedString(@"Threshold 0", @"Description for threshold 0") , @"threshold_0",
NSLocalizedString(@"Threshold 1", @"Description for threshold 1"), @"threshold_1",
NSLocalizedString(@"Threshold 2", @"Description for threshold 2"), @"threshold_2",
NSLocalizedString(@"Threshold 3", @"Description for threshold 3"), @"threshold_3",
NSLocalizedString(@"Threshold 4", @"Description for threshold 4"), @"threshold_4",
nil];
这是试图访问NSDictionary的代码:
NSString *key = [NSString stringWithFormat: @"threshold_%d",{MY_VARIABLE}];
NSString *text = [LABELS objectForKey: key];
{MY_VARIABLE}可以保存0到4之间的值。
我有三个本地化(意大利语,法语,西班牙语)。我生成并翻译了所有“Localizable.strings”文件(在it.lproj,fr.lproj和es.lproj文件夹中)但是,当应用程序执行时,我只看到主翻译,例如:阈值0,阈值1 ,. ..
我做错了什么?
答案 0 :(得分:0)
在模拟器中构建并运行您的应用。在Finder中打开〜/ Library / Application Support / iPhoneSimulator / your-ios-version / Applications / your-app-id /.
然后右键单击.app文件并选择“显示包内容”并查看本地化字符串是否属于它们所在的位置。
很可能本地化资源不属于您的目标。这些设备也区分大小写,因此“Localizable.strings”是正确的,而“localizable.strings”则不是。
如果文件存在但仍然无效,请打开BBEdit中的文件并确保编码为little-endian UTF-16。 (或者,您可以使用Terminal.app并键入“file path-to-strings-file”来查看编码类型。)