Локализация строк и каталогов строк
Переводите пользовательский интерфейс с помощью каталогов строк.
«Локализация строк и каталогов строк» — бесплатный урок SwiftUI Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения SwiftUI Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс SwiftUI Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Why Localize?
Localization translates your app's text so people read it in their own language. It widens your audience around the world. 🌍
Strings Are Already Keys
In SwiftUI, a Text("Hello") literal is automatically treated as a localizable key. You often get translation for free.
Text("Welcome back")Meet the String Catalog
A modern String Catalog (.xcstrings) gathers every key in one editable table with a column per language.
Adding a Catalog
Add a String Catalog via File, New File, then build once. Xcode auto-collects the strings used across your app.
Adding Languages
In project settings, add a language under Localizations. A new column appears in the catalog, ready for translations.
Interpolating Values
Insert dynamic values right inside Text. Swift turns them into a format key so each language can place them correctly.
Text("Hi, \(name)!")Giving Translators Context
Add a comment so translators know what a string means. The same word can be a noun or a verb.
Text("Open", comment: "Verb on a button that opens a file")Handling Plurals
Languages pluralize differently. A String Catalog supports plural variations so "1 item" and "5 items" both read naturally.
Text("^[\(count) item](inflect: true)")Localizing in Code
Outside a Text view, wrap user-facing strings in String(localized:) so they still get translated.
let msg = String(localized: "Saved")Don't Hardcode Layout
Translations can be much longer than English. Let views resize instead of using fixed widths so text never gets clipped.
Test with a Pseudolanguage
Run the scheme in a pseudolanguage to expand and accent text. It surfaces clipped labels before real translation begins.
Quick Check
Which file type is the modern, recommended way to manage translations in Xcode?
Recap
You can reach a global audience: Text literals are keys, a String Catalog holds translations, and comments plus plurals keep them accurate. 🌟
Часто задаваемые вопросы
Урок «Локализация строк и каталогов строк» бесплатный?
Да — полный текст урока «Локализация строк и каталогов строк» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс SwiftUI Academy, подпишись на CoddyKit PRO. Курс SwiftUI Academy содержит 4 уроков всего.
Чему я научусь в уроке «Локализация строк и каталогов строк»?
Переводите пользовательский интерфейс с помощью каталогов строк. Ты практикуешь SwiftUI Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать SwiftUI Academy?
Предыдущий опыт не требуется. SwiftUI Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Локализация строк и каталогов строк»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке SwiftUI Academy?
Да. Каждый урок SwiftUI Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- VoiceOver и метки доступности
- Динамический тип и масштабируемые шрифты
- Локализация строк и каталогов строк
- Адаптация к светлой и тёмной темам