Используй NSLocalizedString(_:comment:) для каждой строки, видимой пользователю в приложении. Этот макрос позволяет Xcode автоматически извлекать строки и сопоставлять каждый ключ с его переведённым эквивалентом во время выполнения.
let message = NSLocalizedString("welcome.message", comment: "Greeting shown on home screen")
.strings файлы для каждого поддерживаемого языка (например, en.lproj, de.lproj).xcstrings) — они объединяют все переводы в одном файле, обеспечивают встроенную поддержку форм множественного числа и подсвечивают недостающие переводыНикогда не хардкодируй форматирование даты, числа или валюты. Всегда используй форматтеры, учитывающие локаль, чтобы вывод автоматически адаптировался к региону пользователя:
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.locale = .current
Применяй тот же принцип к DateFormatter и MeasurementFormatter.
XCTest с конкретными значениями Locale для валидации вывода форматтеровstringsdict-файлы или варианты String Catalog, поскольку эти правила существенно отличаются от языка к языкуcomment в NSLocalizedString, чтобы переводчики понимали, в каком контексте используется строкаNSLocalizedString(_:comment:) автоматически обрабатывает правила множественного числа в разных языках без необходимости дополнительных файлов конфигурации.
Новый — ещё не проверен сообществом
Вы