0

Konichiwa 伙计们,我正在努力通过一个非标准程序来读取位于我的项目中的一堆本地化 xml。

我的目的是递归读取所有这些文件,以便为 coredata sqlite db 提供数据,以创建同一数据库的各种基于语言的版本。

首先,我尝试了一种老式的技术,例如:

NSString *bundleRoot = [[NSBundle mainBundle] bundlePath];
NSArray *dirContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:bundleRoot error:nil];
NSArray *onlyXMLs = [dirContents filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self ENDSWITH '.xml'"]];
for (NSString *tString in onlyXMLs) { 
   /* stuff */
}

一点运气都没有,因为它会弹出我项目中的所有非本地化 xml,仅此而已。

所以我想知道是否有办法让那些该死的没有本地化的 xmls 出来。

提前致谢。

如果您有疑问或问题,请不要陌生,请给我留言。

-k-

4

1 回答 1

0

好的,解决了!

对于那些正在寻找问题答案的人,这里是解决方案:

    NSArray *onlyXMLs = [[NSBundle mainBundle] pathsForResourcesOfType:@"xml" inDirectory:nil forLocalization:@"English"];

请记住,携带所需语言的参数必须始终与项目中包含所需文件的 .plist 目录相同。

所以如果你有一个包含你需要的东西的English.plist,那也必须是要传递的名称字符串(如上面的例子所示),否则如果你正在处理一个en.plist,@" en" 应为字符串。

就是这样,就是这样。

于 2011-10-20T14:05:04.993 回答