Локализация не влияет на некоторые файлы .strings - PullRequest
3 голосов
/ 12 декабря 2011

Я использую SORelativeDateTransformer в моем проекте.

Я локализовал свой проект (перевел раскадровку и создал Localizable.strings (я использовал NSLocalizedString)), и эта часть переводится идеально.

Проблема в том, что SORelativeDateTransformer использует свои собственные SORelativeDateTransformer.strings (использует NSLocalizedStringFromTable), который работает в демо, но не в моем проекте.

Upd .: Обнаружено также, что некоторые метки, которые я перевел на норвежскую локализацию, содержат английские слова. Oughh!

Есть идеи?

1 Ответ

1 голос
/ 04 августа 2016

Я знаю, что этот вопрос довольно старый, но вот решение, которое я использовал.Существует способ заставить SORelativeDateTransformer загружать конкретную базу строк локализации по вашему предпочтению.Если вы использовали ручную установку вместо pod, вы можете отредактировать базу .m по своему усмотрению.Например, вот как я реализую его в методе + (NSBundle *)

+ (NSBundle *)bundle {
static NSBundle *bundle = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    NSString *systemLanguage = [[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0];//you can use conditional statement after here to load a specific bundle since you now have you language codes here (e.g. 'en' for English, 'zh-Hans' for Chinese (Simplified) etc) 
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"SORelativeDateTransformer" withExtension:@"bundle"];
    bundle = [[NSBundle alloc] initWithURL:url];
    NSString *path = [bundle pathForResource:systemLanguage ofType:@"lproj"];
    bundle = [NSBundle bundleWithPath:path];
});
return bundle;
}

Это должно сработать.

...