NSLocalizedString Path - PullRequest
       15

NSLocalizedString Path

0 голосов
/ 21 августа 2010

Есть ли способ определить пользовательский путь, из которого считываются строки для NSLocalizedString? Я знаю, что вы можете определить, с какого имени файла читать, но я пытаюсь создать редактируемую пользователем систему, которая будет храниться в папке поддержки приложений. Если нет способа изменить путь, с которого он читает, то есть ли в какао встроенный низкоуровневый класс для чтения локализованных строковых файлов?

1 Ответ

1 голос
/ 24 августа 2010

Одна вещь, которую вы можете сделать, это переопределить NSLocalizedString в вашем файле предварительно скомпилированного заголовка (.pch), чтобы он указывал на собственный класс, такой как MyLocalizationHandler, как таковой:

#undef NSLocalizedString
#define NSLocalizedString(key,comment) [[MyLocalizationHandler sharedLocalizationHandler] localizedString:key]

и затем в MyLocalizationHandler.m сделать что-то вроде:

- (NSString *)localizedString:(NSString *)key {
    // lookup the key however we want...
    NSString *value = [self lookupLocalizedKey:key];
    if (value)
        return value;
    // and maybe fall-back to the default localized string loading
    return [[NSBundle mainBundle] localizedStringForKey:key value:key table:nil];
}
...