xcode4中的Localizable.strings文件..

Mon*_*erK 39 iphone localization xcode4

在xcode4中,(我使用v4.0.1直到现在并且昨天下载了v4.0.2.)我制作了Localizable.string文件并编译了我的项目.(如您所知,我的源代码使用NSLocalizedString宏函数.)

但我的项目不使用Localizable.string文件进行编译.如果我将此文件中的所有代码更改为注释(如此 - > //),我的项目将完全编译.

结果,问题是Localizable.string文件.我在Google上搜索过它,我发现UTF-8文件(Localizable.string)更改为UTF-16.虽然我试过这个......这种方式也没有用.

在这一刻,许多人都在尝试使用Localizable.string文件.但他们可能会解决我不能做的这个问题.因为没有关于这个问题的问题那么多.

================================================== =============

在Localizable.string文件中,

"LOCAL_APP_GRADE"="基本"

"LOCAL_APP_LAST_UPDATED_DATE"="2011/04/20"

"LOCAL_MAIN_MENU_TITLE"="主菜单"

在我的源代码中,

NSLocalizedString( @"LOCAL_MAIN_MENU_TITLE", @"" );
Run Code Online (Sandbox Code Playgroud)

错误信息,

复制.strings文件错误验证失败:无法读取数据,因为它已损坏.

McC*_*nus 95

我在这里假设Xcode 4.仔细检查文件检查器中每个Localization.string文件的编码显示内容.当我遇到这个错误时,由于其中一个文件被读作Mac Roman而不是UTF-16.一旦我改变了编码,警告便消失了.一开始让我疯狂的是,警告只发生在Xcode 4中.Xcode 3没有给出它.

您的.string文件格式也存在问题.所有行都应以分号结尾.

"LOCAL_APP_GRADE" = "Basic";
"LOCAL_APP_LAST_UPDATED_DATE" = "2011/04/20";
"LOCAL_MAIN_MENU_TITLE" = "Main Menu"; 
Run Code Online (Sandbox Code Playgroud)

我不认为这是警告的原因.至少我从没见过它的警告.当LOCAL_MAIN_MENU_TITLE显示在应用程序而不是主菜单中时,它通常仅在运行时显示.如果构建过程确实检查了分号,那将是很好的.在编辑文件时很容易错过添加一个.

  • 哦!!!天哪!!真的非常非常感谢你.我很傻.你让我醒了 我已经改为UTF-16,但我错过了';'.这使错误发生.(复制.string文件错误验证失败).这让我感到困惑.我从没想过这会让问题发生. (13认同)

Ser*_*nce 65

每个Apple:

如果在测试期间遇到问题并发现用于检索字符串的函数和宏总是返回相同的键(而不是翻译的值),请在字符串文件上运行/ usr/bin/plutil工具.字符串文件本质上是以特殊方式格式化的属性列表文件.使用-lint选项运行plutil可以发现隐藏的字符或其他错误,这些错误会阻止正确检索字符串.

启动控制台窗口,进入项目文件夹,然后执行以下操作:

/usr/bin/plutil -lint ja.lproj/Localizable.strings
Run Code Online (Sandbox Code Playgroud)

(显然替换正确的语言文件夹名称).这将告诉您问题的确切位置!


Muh*_*aab 18

.strings文件中的所有行都应以分号结尾.它对我有用.

  • 在我的大脑停止思考分号之后,在Swift编程时这让我很困惑.这也是我的问题. (3认同)

小智 7

从Apple Notes导入本地化后,今天我遇到了同样的问题,原因非常微妙.标准双引号与斜双引号交换.

斜双引号:"

标准双引号:"