SwiftUI - Локализация динамического c текста - PullRequest
0 голосов
/ 08 мая 2020

Я борюсь с локализацией некоторых моих текстовых полей. Обычно «нормальная» локализация Text () или TextField () работает без проблем в моем приложении, если текст, который я хочу перевести, жестко запрограммирован следующим образом:

Text("English Text")

Я перевожу его в моем Localizable. такие строки:

"English Text" = "German Text";

Теперь я хочу перевести текстовые поля, которые более динамичны c, но где я знаю каждую возможную запись:

                TextField("New note" + (refresh ? "" : " "),text: $newToDo, onCommit: {
                    self.addToDo()
                    self.refresh.toggle()
                })

(refre sh необходимо из-за ошибки SwiftUI, иногда не отображающей текст-заполнитель снова.)

Другой пример:

    func dayWord() -> String {
        let dateFormatter = DateFormatter()
        dateFormatter.timeZone = TimeZone.current
        dateFormatter.locale = Locale(identifier: "de_DE")
        dateFormatter.dateFormat = "EEEE"
        return dateFormatter.string(from: self)
    }

    var day: String {
        return data.date.dateFromMilliseconds().dayWord()
    }

   Text(day.prefix(2))

Текст (day.prefix (2)) имеет только семь возможные состояния, но я не знаю, что написать в качестве ключа в моих Localizable.strings.

1 Ответ

1 голос
/ 08 мая 2020

Используйте NSLocalizedString, например

TextField(NSLocalizedString("New note", comment: "") + (refresh ? "" : " "), ...
...