0Pricing
Swift Academy · Leçon

Catalogues de chaînes et chaînes localisées

Localisez le texte avec le catalogue de chaînes moderne.

Catalogues de chaînes et chaînes localisées est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 4 leçons au total.

Pourquoi localiser

La localisation (l10n) consiste à présenter le texte de votre application dans la langue de l'utilisateur ; l'internationalisation (i18n) consiste à structurer le code de façon à rendre la localisation possible. La première étape consiste à cesser de coder en dur les chaînes destinées aux utilisateurs et à les extraire d'un catalogue de resource.

// Hardcoded — bad for localization
// let title = "Welcome"

// Localized — looked up by key
let title = String(localized: "Welcome")

Catalogues de chaînes

Les projets Xcode modernes utilisent un catalogue de chaînes (fichier .xcstrings). Il s'agit d'un fichier unique reposant sur JSON qui répertorie chaque key localisable, ses traductions dans chaque langue et des métadonnées telles que les commentaires et la gestion du pluriel. Xcode peut extraire automatiquement les key depuis votre code.

// Localizable.xcstrings holds entries like:
// key: "Welcome"
//   en: "Welcome"
//   tr: "Hos geldiniz"
//   ja: "Yokoso"

String(localized:)

Dans le code, String(localized:) résout à l'exécution une key vers la traduction correspondant à la locale actuelle. Le littéral que vous transmettez sert à la fois de key et de fallback dans la langue de développement.

let greeting = String(localized: "Welcome back")
let cancel = String(localized: "Cancel")
print(greeting)

Ajouter des commentaires pour les traducteurs

Un mot isolé comme « Run » peut signifier exécuter ou courir. Le paramètre comment: fournit aux traducteurs le contexte nécessaire pour choisir la formulation appropriée. Les commentaires sont automatiquement intégrés au catalogue de chaînes.

let runLabel = String(
    localized: "Run",
    comment: "Button that executes the user's code")

Interpoler des valeurs

Vous pouvez intégrer des valeurs obtenues à l'exécution dans une chaîne localisée. Swift transforme chaque interpolation en espace réservé de format afin que les traducteurs puissent les réordonner. Selon la langue, le sujet et le nombre occupent des positions différentes.

let name = "Mira"
let count = 3
let msg = String(localized: "\(name) has \(count) new messages")
print(msg)

LocalizedStringKey dans SwiftUI

Dans SwiftUI, vous appelez rarement String(localized:) directement. La plupart des vues qui acceptent du texte prennent une LocalizedStringKey, si bien qu'un simple littéral de chaîne est automatiquement localisé.

// In SwiftUI — the literal is a LocalizedStringKey
// Text("Welcome back")        // auto-localized
// Button("Save") { save() }   // auto-localized
let key: LocalizedStringKey = "Welcome back"
_ = key

Éviter la localisation accidentelle

Comme SwiftUI traite les littéraux comme des key, une variable String dynamique n'est pas localisée. Si vous construisez le texte par concaténation, le catalogue ne voit jamais la véritable key. Transmettez un seul littéral chaque fois que vous souhaitez une localisation, et utilisez verbatim: lorsque vous ne voulez explicitement pas en effectuer.

let userInput = "hello"
// Text(userInput)            // NOT a localization key
// Text(verbatim: userInput)  // explicitly raw, never localized
let verbatimKey = userInput
_ = verbatimKey

Spécifier une table

Les grandes applications répartissent leurs chaînes entre plusieurs catalogues (tables). Vous pouvez cibler une table et un bundle précis, ce qui est essentiel lorsque vous fournissez des chaînes dans un framework ou un paquet Swift.

let onboardingTitle = String(
    localized: "Get Started",
    table: "Onboarding",
    bundle: .main)

LocalizedStringResource

LocalizedStringResource représente une chaîne localisable sous la forme d'une valeur que vous pouvez stocker et résoudre ultérieurement, y compris entre différents processus (ce qui est utile pour App Intents et les widgets). La recherche réelle est différée jusqu'au moment de l'affichage.

let resource = LocalizedStringResource("Order shipped")
// Resolve later, possibly in another locale context
let resolved = String(localized: resource)
print(resolved)

La localisation par défaut

La langue de développement du projet fournit le fallback lorsqu'une traduction est absente. Le littéral de chaîne que vous écrivez dans le code est traité comme la valeur dans la langue source ; votre code reste ainsi lisible et vous n'envoyez jamais aux utilisateurs une key brute telle que welcome_screen_title.

// If only 'en' is translated and device is set to 'fr',
// the development-language value is shown as fallback.
let fallback = String(localized: "Settings")
print(fallback)

Une recherche réaliste

En rassemblant tous ces éléments : une fonction qui renvoie un message entièrement localisé, avec son contexte et ses interpolations, prêt à être utilisé dans n'importe quelle interface.

func welcomeMessage(for user: String) -> String {
    return String(
        localized: "Welcome, \(user)!",
        comment: "Greeting shown after sign-in")
}
print(welcomeMessage(for: "Ada"))

Vérification rapide

Rappelez-vous comment SwiftUI détermine s'il faut localiser le texte.

Récapitulatif

Vous avez établi les fondations du texte localisé :

  • Stockez les traductions dans un catalogue de chaînes (.xcstrings).
  • Recherchez les chaînes avec String(localized:) et ajoutez comment: pour les traducteurs.
  • Dans SwiftUI, les littéraux deviennent des LocalizedStringKey et sont automatiquement localisés ; ce n'est pas le cas des variables.
  • Utilisez table:/bundle: pour les frameworks et LocalizedStringResource pour une résolution différée.

Questions Fréquemment Posées

La leçon « Catalogues de chaînes et chaînes localisées » est-elle gratuite ?

Oui — le texte complet de « Catalogues de chaînes et chaînes localisées » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Catalogues de chaînes et chaînes localisées » ?

Localisez le texte avec le catalogue de chaînes moderne. Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Swift Academy ?

Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Catalogues de chaînes et chaînes localisées » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?

Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Catalogues de chaînes et chaînes localisées
  2. Pluriels et Stringsdict
  3. Formatage selon les paramètres régionaux
  4. Écriture de droite à gauche et direction de la mise en page
← Retour à Swift Academy