Xcodebuild --exportLocalization создает недопустимый контент при использовании с SwiftUI Text(NSLocalizedString("key", v ⇐ IOS
-
Anonymous
Xcodebuild --exportLocalization создает недопустимый контент при использовании с SwiftUI Text(NSLocalizedString("key", v
У меня возникла проблема при экспорте строк в файл 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.
У меня возникла проблема при экспорте строк в файл 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.
Мобильная версия