我制作了 Localized.string 文件并编译了我的项目(我的源代码使用 NSLocalizedString
宏函数),但由于 Localized.string
文件,我的项目无法编译。如果我注释 Localized.string
文件中的所有行,我的项目就会成功编译。
因此,问题与 Localized.string
文件有关。我在Google上搜索了一下,发现UTF-8文件(Localized.string)已更改为UTF-16。虽然我尝试过这个……但这个方法也行不通。
================================================== ===============
我的 Localized.string 文件包含:
"LOCAL_APP_GRADE" = "Basic"
"LOCAL_APP_LAST_UPDATED_DATE" = "2011/04/20"
"LOCAL_MAIN_MENU_TITLE" = "Main Menu"
在我的源代码中:
NSLocalizedString( @"LOCAL_MAIN_MENU_TITLE", @"" );
错误消息:
Copy .strings file Error Validation failed: The data couldn't be read because it has been corrupted.
最佳答案
我假设这里使用的是 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";
不过,我认为这不是警告的原因。至少我从未见过对此的警告。它通常仅在运行时显示在应用程序中而不是主菜单中显示 LOCAL_MAIN_MENU_TITLE 时。如果构建过程确实检查分号,那就太好了。编辑文件时很容易错过添加一项。
关于iphone - 构建失败,Localized.strings 中的验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5683803/