Xcodebuild --exportLocalization создает недопустимый контент при использовании с SwiftUI Text(NSLocalizedString("key", vIOS

Программируем под IOS
Ответить
Anonymous
 Xcodebuild --exportLocalization создает недопустимый контент при использовании с SwiftUI Text(NSLocalizedString("key", v

Сообщение Anonymous »


У меня возникла проблема при экспорте строк в файл xliff с помощью xcode (14.2)

мой код выглядит так:

Text(NSLocalizedString("[функция] строковый ключ", значение: «строковое значение», комментарий: «строковый комментарий»)) Когда я экспортирую локализации (либо через xcode ui, либо с помощью xcodebuild --exportLocalizations, я получаю следующее предупреждение:

ВНИМАНИЕ: ключ «строковый ключ [функция]» используется с несколькими значениями. Значение «ключ строки [функции]» сохранено. Значение «строковое значение» игнорируется и действительно, файл xliff содержит эквивалентное содержимое:

[функция] строковый ключ [функциональный] строковый ключ строковый комментарий Проблема исчезает, когда код корректируется для хранения NSLocalizedString в переменной, примерно так:

let x = NSLocalizedString("[функция] строковый ключ", value: "строковое значение", комментарий: "строковый комментарий") Текст(х) Наличие этого обходного пути — это нормально (могут существовать и другие обходные пути), но довольно легко ошибочно использовать недопустимый шаблон, и я хотел бы понять, почему это вообще происходит и есть ли способ почини это. В проекте в некоторой степени использовался Text(NSLocalizedString(...), он никогда не делал различий между строковыми ключами и их английскими значениями (это то, что Apple рекомендует)

У меня мало опыта разработки экосистем iOS/Apple, и моя единственная гипотеза заключается в том, что код-нарушитель интерпретируется примерно так во время извлечения:

NSLocalizedString("[функция] строковый ключ", value: "строковое значение", комментарий: "строковый комментарий") Text("Ключ строки [функции]") Последний затем «сворачивается» в строку, ключ и значение которой равны «строковому ключу [feature]», но не известно, как разобраться в непрозрачности процесса экспорта локализации.
>
Некоторые руководства (а именно: How-to-localize-swiftui и руководство по локализации SwiftUI рекомендуют именно тот шаблон, который у меня не работает.

Из известных настроек сборки проект, с которым я столкнулся, использует SWIFT_EMIT_LOC_STRINGS, для которого установлено значение NO, а для LOCALIZED_STRING_SWIFTUI_SUPPORT установлено значение YES.
Ответить

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

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

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

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

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