2012-01-13 29 views
1

我已经成功添加了法语本地化到我的应用程序。在XCode 4中,仅仅是选择Localizable.strings并在File Inspector中添加新的(法语)本地化的情况。然后,我将法语翻译(从Word - unicode 16)复制/粘贴到生成的新Localizable.strings(法语)文件中。iOS - 一些但不是全部字符串出现本地化。

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

嘿presto - 一切都用法语。除此之外,这里和那里还保留着英语。似乎是这些线路没有共同的元素 - 无论是口音,格式或arguments.For例如:

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 %@"; 

仍然显示为“你刚刚认识......”,而不是法国。我似乎无法弄清楚为什么这几行不是在翻译其他所有内容时。任何帮助非常感谢!

谢谢,迈克尔。

+0

你能分享一点点源代码吗?我希望看到上述示例的英文和法文localizable.strings行。你也不需要删除你的应用程序并重新安装本地化。但是在更改语言之前,您必须停止使用Xcode运行应用程序。 – Daniel 2012-01-13 11:26:02

+0

我面临同样的问题。我只是剪切文本并粘贴到Localizable.string的顶部。我知道这不是技术性的,但它对我有用 – Hiren 2012-01-13 11:26:24

+0

您是否在Localizable.strings文件中设置了“您刚遇到的”法语文本? – 2012-01-13 11:29:54

回答

1

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

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

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

+0

这似乎已经做到了!我只是重新键入'在字符串文件中,现在该行显示为法语。奇怪的是我有大约1000行,其中很多都带有撇号。我认为在Word中翻译工作的人可能已经意外更换了它。由于我的翻译员无法打开.strings文件,因此Word似乎是一种必然的恶行,我需要熟悉的东西。但是在Word中打开一个.strings文件应该保持UTF16格式不应该?有没有更好的方式将文档以熟悉的格式提供给翻译人员?或者至少转换它。 – Smikey 2012-01-13 12:52:44

+0

不,Word不支持unicode,所以它不会保留UTF16。您可以要求译员确保在他们的MS Word偏好设置中禁用了“自动插入智能报价”功能,但最安全的方法是在您收回文件后手动检查所有文件,就像您一直在做的那样。 – 2012-01-13 17:35:52

1

在NSLocalizedString函数中不能使用高位ASCII字符。
要修复它只是改变你的钥匙串:

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

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

这似乎是一个合理的解释,除非'不是一个高ascii字符,除非你实际上通过从MS Word中复制和粘贴字符串来使用'聪明'撇号字符,并且它只是在StackOverflow中显示为常规' 。 – 2012-01-13 12:16:50

+0

我在当前项目中给出Localized String不起作用,但在其他项目中它正在工作。没有错误。请帮我 – 2012-04-10 08:34:10