Вопрос

Есть ли способ иметь один базовый файл localizable.strings для нескольких целей в проекте, а также иметь второй файл localizable.string для каждой цели, который будет переопределять и добавлять отдельные значения в базовый файл?

РЕДАКТИРОВАТЬ

Я хочу, чтобы в моем приложении было два файла .strings — Localizable.string и Override.strings.Если строка Title.Welcome не найдена в OverrideLocalizable.strings, я бы хотел, чтобы приложение выполнило поиск Title.Welcome в Localizable.strings.По сути, указание Localizable в качестве резервного варианта, но по умолчанию используется OverrideLocalizable.strings.

Это было полезно?

Решение

Вот решение, которое я нашел:

NSString *PSILocalizedString(NSString *key, NSString *comment)
{
    return NSLocalizedStringWithDefaultValue(key,
                                             @"OverrideLocalizable",
                                             [NSBundle mainBundle],
                                             NSLocalizedString(key, nil),
                                             comment);
}

Это позволит выполнить поиск файла с именем OverrideLocalizable.strings для key.Если значение для key не найден в OverrideLocalizable.strings, он будет искать localizable.strings для key. NSLocalizedString(key, nil) по умолчанию будет искать localizable.strings

Довольно простое и элегантное решение

Другие советы

Для Swift 4 пользователей, которые сталкиваются с этой проблемой ...

    func get_overridable_string_for_key(string_key: String)-> String{
    return NSLocalizedString(string_key, tableName: "OverrideLocalizable", bundle: Bundle.main, value: NSLocalizedString(string_key, comment: ""), comment: "");
}
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top