Разрешить только конкретные переводы для разных схем / целей

Моя проблема в том, что у меня есть базовый набор Localizable.strings для нескольких языков, но я не хочу разрешать их во всех моих целях / схемах сборки (некоторые наши клиенты хотят только эти, другие только те языки, которые разрешены).

Поскольку этот набор одинаков для всех и будет расширяться при каждом обновлении, я хочу избегать более глубокого копирования файлов в иерархии папок и сохранения каждой цели.

я использую NSLocalizedStringWithDefaultValue а также NSLocalizedString, но не нашли никакой возможности дать им разрешенные локализации.

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

1 ответ

Я закончил тем, что изменил свой путь от использования NSLocalizedString к языковым именным файлам (для немецкого языка Localizable_de.strings, для английского Localizable_en.strings и так далее).

После к

/questions/19049929/chitat-fajlstrings-v-objective-c/19049938#19049938

Я использую в моем классе перевода

NSString *tbl = [@"Localizable_" stringByAppendingString:[MyLibrary currentLocalization]];
NSString *fname = [[NSBundle mainBundle] pathForResource:tbl ofType:@"strings"];
if(!localStrings)
    localStrings = [[NSDictionary dictionaryWithContentsOfFile:fname] retain];

NSString *value = [localStrings objectForKey:key];

где [MyLibrary currentLocalization]; является

+(NSString *)currentLocalization
{
    NSString *currentLocCode = [[NSLocale preferredLanguages] objectAtIndex:0];

    if([[AppSettings supportedLocales] containsObject:currentLocCode])
        return [currentLocCode substringToIndex:2];

    return [AppSettings defaultLocalization];
}

AppSettings зависит от цели [AppSettings supportedLocales]; является

+(NSArray *)supportedLocales
{
    return [NSArray arrayWithObjects:
    @"de",
    @"de_AT",
    @"de_BE",
    @"de_CH",
    @"de_DE",
    @"de_LI",
    @"de_LU",
     //
    @"en",
    @"en_AS",
    @"en_AU",
    @"en_BB",
    @"en_BE",
    @"en_BM",
    @"en_BS",
    @"en_BW",
    @"en_BZ",
    @"en_CA",
    @"en_FJ",
    @"en_FM",
    @"en_GB",
    @"en_GM",
    @"en_GU",
    @"en_GY",
    @"en_HK",
    @"en_IE",
    @"en_IN",
    @"en_JM",
    @"en_MH",
    @"en_MP",
    @"en_MT",
    @"en_MU",
    @"en_MW",
    @"en_NA",
    @"en_NZ",
    @"en_PG",
    @"en_PH",
    @"en_PK",
    @"en_PW",
    @"en_SB",
    @"en_SC",
    @"en_SG",
    @"en_SL",
    @"en_SZ",
    @"en_TT",
    @"en_UM",
    @"en_US",
    @"en_US_POSIX",
    @"en_VI",
    @"en_ZA",
    @"en_ZW",
    //
    @"es",
    @"es_419",
    @"es_AR",
    @"es_BO",
    @"es_CL",
    @"es_CO",
    @"es_CR",
    @"es_DO",
    @"es_EC",
    @"es_ES",
    @"es_GQ",
    @"es_GT",
    @"es_HN",
    @"es_MX",
    @"es_NI",
    @"es_PA",
    @"es_PE",
    @"es_PR",
    @"es_PY",
    @"es_SV",
    @"es_US",
    @"es_UY",
    @"es_VE",
    //
    @"fr",
    @"fr_BE",
    @"fr_BF",
    @"fr_BI",
    @"fr_BJ",
    @"fr_BL",
    @"fr_CA",
    @"fr_CD",
    @"fr_CF",
    @"fr_CG",
    @"fr_CH",
    @"fr_CI",
    @"fr_CM",
    @"fr_DJ",
    @"fr_FR",
    @"fr_GA",
    @"fr_GF",
    @"fr_GN",
    @"fr_GP",
    @"fr_GQ",
    @"fr_KM",
    @"fr_LU",
    @"fr_MC",
    @"fr_MF",
    @"fr_MG",
    @"fr_ML",
    @"fr_MQ",
    @"fr_MR",
    @"fr_NE",
    @"fr_RE",
    @"fr_RW",
    @"fr_SC",
    @"fr_SN",
    @"fr_TD",
    @"fr_TG",
    @"fr_YT",
    //
    @"it",
    @"it_CH",
    @"it_IT",
            nil];
}

но все еще принимаю изменения к этому, если у кого-то есть лучшее решение:)

Другие вопросы по тегам