Чтобы локализовать строку в модели Swift, вы можете использовать возможности локализации, предоставляемые инфраструктурой Foundation. Существует несколько методов, которые вы можете использовать, в зависимости от ваших конкретных требований. Вот несколько примеров:
Метод 1: NSLocalizedString
Функция NSLocalizedString обычно используется для локализации строк в Swift. Он извлекает локализованную версию строки из соответствующего файла строк на основе текущих языковых настроек устройства.
let localizedString = NSLocalizedString("Hello", comment: "Greeting")
В этом примере строка «Привет» будет локализована в соответствии с языковыми настройками пользователя. Параметр комментария является необязательным и используется для предоставления контекста или дополнительной информации о строке.
Метод 2: NSLocalizedString со спецификаторами формата
Если вам нужно включить динамические значения в локализованную строку, вы можете использовать спецификаторы формата и аргументы с функцией NSLocalizedString.
let name = "John"
let localizedString = String(format: NSLocalizedString("Hello, %@!", comment: "Greeting with name"), name)
В этом примере спецификатор формата %@ используется для указания позиции, в которой аргумент имени должен быть вставлен в локализованную строку.
Метод 3: NSLocalizedString с таблицей и пакетом
Если ваши локализованные строки хранятся в определенной таблице или пакете, вы можете указать их с помощью параметров tableName и Bundle функции NSLocalizedString.
let localizedString = NSLocalizedString("Hello", tableName: "Greetings", bundle: Bundle.main, value: "", comment: "Greeting")
В этом примере локализованная строка извлекается из файла «Greetings.strings» в основном пакете.
Метод 4: оболочка локализованных свойств
Начиная с Swift 5.1, вы можете использовать оболочку свойств @Localized, чтобы упростить локализацию строковых свойств в вашей модели.
struct Person {
@Localized("Hello", comment: "Greeting")
var greeting: String
}
let person = Person()
print(person.greeting) // Output: Localized version of "Hello" string
В этом примере оболочка свойства @Localized применяется к свойству «приветствие», которое автоматически извлекает локализованную строку на основе предоставленного ключа и комментария.
Это всего лишь несколько методов локализации строк в модели Swift. Выбор метода зависит от вашего конкретного варианта использования и требований проекта.