Перечисление локализованных файлов

#objective-c #nsbundle #localized

#objective-c #nsbundle #локализованный

Вопрос:

Ребята из Коничива, я ломаю голову над нестандартной процедурой чтения кучи локализованных XML-файлов, расположенных в моем проекте.

Моя цель — рекурсивно прочитать все эти файлы, чтобы передать базу данных coredata sqlite для создания различных версий одной и той же базы данных на основе lang.

Во-первых, я попробовал старую школьную технику, например:

 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-файлы в моем проекте и ничего больше.

итак, мне было интересно, есть ли способ получить эти проклятые не локализованные XML-файлы.

заранее спасибо.

Если у вас есть сомнения или вопросы, не будьте незнакомцем, напишите мне.

-k-

Ответ №1:

хорошо, решено!

для тех, кто ищет ответ на проблему, вот решение:

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

помните, что параметр, который содержит нужный язык
, всегда должен совпадать с параметром каталога .plist, содержащего нужные файлы в вашем проекте.

итак, если у вас есть English.plist с нужным вам материалом, это также должна быть строка имени для передачи (как показано в приведенном выше примере), в противном случае, если вы имеете дело с en.plist, @»en» должно быть строкой.

вот и все, вот и все.