iOS - 部分但并非所有字符串都显示为本地化。

时间:2012-01-13 11:20:27

标签: iphone objective-c xcode4 localization nslocalizedstring

我已成功将法语本地化添加到我的应用中。在XCode 4中,只是选择了Localizable.strings并在File Inspector中添加了一个新的(法语)本地化。然后我将法语翻译(从Word - unicode 16)复制/粘贴到生成的新Localizable.strings(法语)文件中。

我将手机的语言(设备和模拟器)更改为法语,删除了当前安装的应用,清理并构建。

嘿presto - 一切都用法语。除了这里和那里有几条线仍然是英文。这些行似乎没有共同的元素 - 重音符号,格式或参数。例如:

title = [NSString stringWithFormat:NSLocalizedString(@"You've just met %@", @"New friend message title"), self.friend.name];

/* New friend message title */  
"You've just met %@" = "Vous venez de rencontrer %@";

仍然显示为'你刚刚见过......'而不是法语。我似乎无法弄清楚为什么其他一切都没有翻译这几行。任何帮助非常感谢!

谢谢,迈克尔。

2 个答案:

答案 0 :(得分:1)

您无法在NSLocalizedString函数中使用高ascii字符 要解决此问题,只需更改密钥字符串:

title = [NSString stringWithFormat:NSLocalizedString(@"YouveJustMetStr", @"New friend message title"), self.friend.name];

"YouveJustMetStr" = "Vous venez de rencontrer %@";

答案 1 :(得分:1)

Microsoft Word不是纯文本编辑器,它会通过将某些标点符号(撇号,引号,短划线)替换为看起来更好但可能具有随机unicode代码点的“智能”版本来修改文本。

我建议检查“你刚认识”中的撇号与你的代码源文件中的字符串文件中的字符完全相同。也许将字符串文件中的“你刚刚遇到”直接复制到代码中的NSLocalizedString语句中,看看是否有帮助。

我还建议不要使用Microsoft Word生成机器可读的字符串,除非你想要很多麻烦!