如果我从textedit或web复制某些内容并将其粘贴到可本地化的文件中,则会显示此编译错误。如果我在可本地化的文件中键入它,它不会显示任何错误。我向你保证我使用了正确的格式和';'在文件中。
"New" = "New";
"In Progress" = "In Progress";
"Waiting" = "Waiting";
"Closed" = "Closed";
你必须为每个版本的可本地化文件运行它。例如
cd
进入你的项目根目录cd eb.lproj
- 您可以将其替换为您正在使用的任何本地化。plutil -lint Localizable.strings
当您运行第3步时,您将看到一个错误,告诉您文件有什么问题。或者你会被告知文件没问题
我刚刚有这样的经历:
Localizable.strings: Unexpected character " at line 1
CardRatingView.strings: Unexpected character / at line 2
我刚刚在XCode中创建了一个新文件并复制粘贴了所有文件内容,突然一切正常。
我想在与其他文本编辑器一起工作时,某些内容可能会出错/破坏文件本身。
我遇到了这个问题,我的所有格式都是正确的。使用plutil -lint Localizable.strings
检查非法字符并使用像"utf8_utils"
这样的ruby库也无法找到非法字符。但是当我在运行irb
时将Localizable.strings内容粘贴到终端应用程序中时,它确实向我显示了奇怪的字符。
"PercentComplete" = "%d procent gennemført";
粘贴到irb:
"PercentComplete"\U+FFC2\U+FFA0= "%d procent gennemf\U+FFC3\U+FFB8rt";
然后,我所要做的就是使用正则表达式替换来修复那些奇怪的空格字符:\U+FFC2\U+FFA0
如果显示像Unexpected character " at line 1, and it is the first string like "app_name"="Any Name"
的东西
检查文件是否为UTF16
似乎SVN对此文件存在一些问题。因为它认为它是一个二进制文件。它在每个字符之间插入了许多不可打印的字符。我仍然找不到合适的解决方案。只需更改生产PC中的Localizable.string文件,以避免任何问题。
更新:将SVN客户端(smartSVN)更新到最新版本解决了该问题。似乎我的一位同事正在使用旧版本。当他将更改提交到可本地化的文件时,它会导致错误。
对我来说,它缺少了分号。如果您使用工具生成.strings
文件,请确保没有可以“吃掉”分隔分号的未转义引号。
我有同样的问题,我通过评论或删除我的Localizable.String文件中未使用的字符串解决它:)
就我而言,我在字符串对之间缺少“=”。甚至plutil都没有帮助我发现错误行。我手动检查了每个字符串对。 :/
你的语法似乎很好,我能看到的唯一的东西可以“破坏”你的文件,导致这个错误是引用字符。确保使用reqular one "
,而不是像″
这样的任何其他形式。
还要确保字符串文件名始终为Localizable.strings
我曾经有过类似的错误,结果发现文件中间有一个URL,如下所示:
// Some Comment 1
"Some key 1" = "Some value 1";
http://...whatever...
// Some Comment 2
"Some key 2" = "Some value 2";
在该文件上调用plutil -lint
时输出为:
Unexpected character / at line 1
好吧,第一个字符确实是/
,因为文件以注释开头,但删除URL后问题解决了;或者把它变成一个它实际应该存在的评论。请注意,URL远不及字符串文件的开头,它位于6000行字符串文件的中间。我只能通过浏览提交历史记录找到它,并始终查看更改。
看来你的info.plist格式不正确。检查一下。我也有同样的问题。我通过修改我的info.plist解决了这个问题。
我有类似的问题,我没有用反斜杠\
转义字符串值为我的字符串的值之一。
之前:
“INVALID_NUMBER”=“您似乎输入了无效号码。号码应以”0“或”7“开头;
更新:
“INVALID_NUMBER”=“您似乎输入了无效的号码。号码应以\”0 \“或\”7 \“”开头;
如果要显示引号"
,则需要使用反斜杠