Локализация SwiftUI - PullRequest
       3

Локализация SwiftUI

2 голосов
/ 01 августа 2020

Я столкнулся с проблемой локализации в SwiftUI. Проблема возникает, когда у перевода есть заполнитель. Я получаю сообщение об ошибке «Метод экземпляра 'appendInterpolation' требует, чтобы 'LocalizedStringKey' соответствовал '_FormatSpecifiable'»

Код

struct Translation {
    struct school{
        static var location: LocalizedStringKey {
            return "schoolLocation %@"
        }
     }
}

Файл перевода

"schoolLocation% @" = "Моя школа находится в% @";

Просмотр SwiftUI

var location = "Some Name"
.navigationBarTitle("\(Translation.school.location) \(location)") 

Пожалуйста, помогите мне, если я делаю что-то не так.

1 Ответ

0 голосов
/ 06 сентября 2020

То, что вы делаете, это возвращает уже интерполированную строку с %@ интерполированной строке. Таким образом, генерируемая вами строка выглядит так: "schoolLocation %@ Some Name". Вы можете сделать это так:

struct Translation {
    struct school{
        static func location(name: String): LocalizedStringKey {
            return "schoolLocation \(name)"
        }
     }
}

А потом вы можете использовать свой перевод так:

var location = "Some Name"
.navigationBarTitle(Translation.school.location(name: location))
...