Настроить Mainstoryboard.strings на цель

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

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

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

Ответ 1

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

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 при переключении между целевыми объектами. Но, я думаю, это не поможет для строк на самой раскадровке.

Ответ 2

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

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

Xcode Example