Код: Выделить всё
TrackingSecondView
Код: Выделить всё
Cannot convert value of type 'String' to expected argument type 'LocalizedStringKey'
Cannot convert value of type 'String' to expected argument type 'String.LocalizationValue'
использует помощник, который возвращает строку :
Код: Выделить всё
private func localizedText(_ key: String) -> String {
NSLocalizedString(key, comment: "")
}
< /code>
, а затем я передаю этот результат в элементы Swiftui, например ,::
Text(localizedText("track_title"))
TextField(localizedText("tf_tracking_placeholder"), text: $trackingNumber)
Label(localizedText("share_app"), systemImage: "square.and.arrow.up")
.accessibilityLabel(localizedText("open_menu"))
< /code>
У меня также есть несколько строк /карт, которые отображают текст API (динамические строки) и несколько локализации запасных отступлений.Localizable.strings
Код: Выделить всё
"key" = "value";< /code>) и [b] целевое членство < /strong> включено. < /p>
< /li>
[*] Файл корректируется (я ранее видел это, теперь исправлено):
NSCocoaErrorDomain Code=264 "…text encoding of its contents can’t be determined"
, что все еще происходит в этом одном представлении
- , если я передаю строку
, если я прохожу. В определенные инициализаторы Swiftui (например, метка (_: SystemImage, некоторые текстовые залы Подсказки, доступность lockelbel (_
) Я получаю ошибку с компиляцией времени, потому что эти инициализаторы ожидают локализованного строки (или string.localizationValue ) , не string>. /> < /li>
Если я изменяю их на простые строковые литералы, он компилируется, но все еще показывает необработанные ключи во время выполнения, если я не использую правильный инициализатор. /> несоответствие типа инициализатора : некоторые API swiftui (например, метка (_: systemimage, text (_ ключ: локализованный источник) , acvactibuithlabel (_
) ожидайте
[/b], а не строка . Передача строки из nslocalizedstring достигает этих ошибок «не может…»Код: Выделить всё
LocalizedStringKey
Код: Выделить всё
Label(LocalizedStringKey("share_app"), systemImage: "square.and.arrow.up") Text(LocalizedStringKey("track_title")) TextField("", text: $trackingNumber, prompt: Text(LocalizedStringKey("tf_tracking_placeholder"))) .accessibilityLabel(Text(LocalizedStringKey("open_menu"))) < /code> < /li> или определить крошечного помощника: < /p> private func L(_ key: String) -> LocalizedStringKey { LocalizedStringKey(key) } // then: Label(L("share_app"), systemImage: "square.and.arrow.up")
- для dynamic (не ключ) Strings, используйте текст (vorbatim
или создайте текст из строки среды и избегайте локализованного стрки .
/> кодирование файлов строк (теперь исправлено): ранее файлы .strings не были читаемыми (code = 264). Это вызывает nslocalizedString /
Код: Выделить всё
LocalizedStringKey
Код: Выделить всё
Label
Код: Выделить всё
TextField

Подробнее здесь: https://stackoverflow.com/questions/797 ... e-string-t