Настроить 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]()