Каталог строк в Xcode 26 с автоматически сгенерированными символами: устройство не будет использовать правильный языкIOS

Программируем под IOS
Ответить
Anonymous
 Каталог строк в Xcode 26 с автоматически сгенерированными символами: устройство не будет использовать правильный язык

Сообщение Anonymous »

Я смотрел выступление на WWDC25, где Apple представила функцию сгенерированных символов для Каталога строк.
Поскольку я только начал новый проект в качестве своего первого опыта разработки под iOS (у меня более 10 лет опыта работы с Android), я нашел эту функцию очень удобной, учитывая, как она делалась в прошлом.
Так или иначе, я начал реализовывать свою самую первую строку для английского и французского языков (мой родной язык). Проект настроен на использование английского языка в качестве языка по умолчанию.
Мой проект разделен на несколько целей (простые платформы Swift), и в моей цели View, где я пишу код пользовательского интерфейса, я создал папку ресурсов, в которой я создал каталог строк, содержимое которого следующее:

Код: Выделить всё

{
"sourceLanguage" : "en",
"strings" : {
"loading data" : {
"extractionState" : "manual",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Loading data..."
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Chargement des données..."
}
}
}
}
},
"version" : "1.1"
}
И в коде:

Код: Выделить всё

public struct HomeScreen: View {

public init(){}

@StateObject private var viewModel: HomeViewModel = Resolver.resolve()

public var body: some View {
content
}

@ViewBuilder
private var content: some View {
switch(viewModel.uiState) {
case .loading:
ProgressView(String(localized: .HomeScreenStrings.loadinData))
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(Color(.systemBackground))
... // other cases
}
}

При создании приложения на моем iPhone X — iOS 16 (минимум, поддерживаемый приложением) отображаемый текст отображается на английском языке. Но на моем iPhone настроен французский...

Если я переключусь на французский язык в качестве языка по умолчанию в Project > Infos > Localizations, французский текст будет отображаться правильно, что, по крайней мере, подтвердит, что каталог правильно включен в мое приложение. Кстати, оба языка (FR / EN) перечислены в основном Infos.plist проекта.
Я также обязательно добавил 2 поддерживаемых языка в Infos.plist моей цели View:

Код: Выделить всё




CFBundleLocalizations

en
fr



Но в Xcode также показано, что для локализации по умолчанию установлено значение «$(DEVELOPMENT_LANGUAGE)». Не знаю, имеет ли это какое-то значение?
Наконец, если я распечатаю предпочитаемый язык моего устройства:

Код: Выделить всё

print(Locale.preferredLanguages)
получается: ["fr"].
И вот оно. Я не знаю, как это исправить. Я делаю что-то не так?

Подробнее здесь: https://stackoverflow.com/questions/798 ... use-correc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»