Настройте Mainstoryboard.strings для каждой цели

У меня есть приложение с 2 целями. Строковые ресурсы в приложении разбросаны по коду и файлу раскадровки. Теперь мне нужен совершенно различный набор строк для обеих целей (хотя на английском языке, хотя для обеих целей). Мне удалось создать 2 разные версии Localized.strings для каждой строки по этой ссылке - Альтернативные строки для разных целей одного и того же приложения - использовать NSLocalizedString?

Но я не смог найти подобного подхода для разделения файла Mainstoryboard.strings для каждой цели. Должен ли я сделать 2 копии файла MAinstoryboard.strings и назначить для каждой цели. Я не пробовал это, но что-то подсказывает мне, что это не лучший подход.

Удивительно ничего об этом на уроках Apple. Какие-либо предложения?

2 ответа

Фрагмент кода для добавления поддельного языка, который может быть решением:

language = Bundle.main.preferredLocalizations[0]

if target == SOME_TARGET {

    if language == "en" {
        language = "fr" // fake language    
    } else if language == "ar" {
        language = "rs" // another fake language
    } else {
        // default app language
        language = "whatever" // default fake language 
    }

    UserDefaults.standard.set([language], forKey: "AppleLanguages")
    UserDefaults.standard.synchronize()
} else {
    // do nothing
}

Еще одно предлагаемое решение. Это должно иметь два файла локализации раскадровки для каждого языка. и заменить их вручную с помощью искателя OS X при переключении между целями. Но я думаю, что это не поможет для строк на самой раскадровке.

Я сделал проект Github для проблем локализации.

Используя мои компоненты iOS, вы сможете поместить localizedString прямо в файл раскадровки.

Пример XCode

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