char latChar = (actLat > 0) ? 'N' : 'S';
NSString *latString = [NSString stringWithFormat:@"%c" , latChar];
NSString *latStringLocal = [NSString stringWithFormat:NSLocalizedString(@"%c",nil), latString];
在第一行:哪个角色是正确的。纬度> 0度是N,< 0它是一个S.这是有效的。 在第二行我将char转换为字符串。工作正常。 在第三行中,所有这一切都出了问题。运行应用程序时,会显示所有类型的符号和普通字符。每一秒都是新的。 最后一部分是可以理解的,因为locationmanager是不断更新的。
但为什么那些人物呢?我在这里做错了什么?请参阅localizable.strings文件
en.lproj
"N" = "N";
"S" = "S";
"W" = "W";
"E" = "E";
nl.proj
"N" = "N";
"S" = "Z";
"W" = "W";
"E" = "O";
app displayname工作正常,因此.strings文件在“read”中找到。 请指教。提前谢谢。
答案 0 :(得分:0)
我不知道你在用NSLocalizedString()
做什么;第一个参数应该是@"N"
,@"S"
而不是@"%c"
。
答案 1 :(得分:0)
我会这样写:
NSString *latStringLocal = actLat > 0 ? NSLocalizedString(@"N", @"North abbreviation") : NSLocalizedString(@"S", @"South abbreviation");
然后重新生成英文字符串:
find . -name \*.m | xargs genstrings
en.lproj / Localizable.strings将包含:
/* North abbreviation */
"N" = "N";
/* South abbreviation */
"S" = "S";
...和nl.lproj / Localizable.strings应包含:
/* North abbreviation */
"N" = "N";
/* South abbreviation */
"S" = "Z";
请注意, genstrings 实用程序不喜欢NSLocalizedString的变量参数(不会为它生成密钥)。但是在运行时 - 如果密钥存在于[NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:nil]
中 - 所有都应该有效。
答案 2 :(得分:-1)
NSString *latStringLocal = NSLocalizedString((actLat > 0) ? @"N" : @"Y", @"");