Когда вы смотрите документацию по тексту, вы видите, что он берет LocalizedStringKey, а не строку в свой инициализатор:
init(_ key: LocalizedStringKey, tableName: String? = nil, bundle: Bundle? = nil, comment: StaticString? = nil)
Это делает локализацию очень простой. Все, что вам нужно сделать, это:
- создать новый файл типа Strings File, назовите его Localizable
- , выберите новый файл и перейдите к File Inspector на правой панели инажмите Localize ...
- перейдите к файлу вашего проекта в раздел Localizations и добавьте другой язык в список - Xcode создаст файлы локализации для вас
Когда вы выберете Localizable. Строки, вы увидите, что он содержит файлы для исходного языка и языка, который вы только что добавили. Вот куда вы переводите свои переводы, т. Е. Парные локализованные текстовые пары.
Если у вас есть такой текст, как ваше приложение:
Text("Hello World!")
Теперь вам нужно добавить в свои Localizable.stringsваши переводы:
для вашего базового языка:
"Hello World!" = "Hello World!";
и для вашего второго языка (в данном случае немецкий):
"Hello World!" = "Hallo Welt!";
Чтобы увидеть, что ваши предварительные просмотры локализованы, выможно определить их так:
struct ContentViewView_Previews: PreviewProvider {
static var previews: some View {
ForEach(["en", "de"], id: \.self) { id in
ContentView()
.environment(\.locale, .init(identifier: id))
}
}
}