|
Dokumentace
Rezervovat demoPlatforma
PlatformaMCPCLIAPIWorkflows
Návody
Changelog

Lokalizace

  • Přehled
  • Translation API
  • Lokalizace webových aplikací
  • Lokalizace mobilních aplikací
  • iOS se String Catalogs
  • Android a strings.xml
  • Lokalizace e-mailů
  • Statický obsah (např. .md, .json)
  • Next.js s Markdoc
  • Rails s i18n

Workflowy

  • Nastavení engine pomocí MCP
  • Jira Triage
  • CI/CD

Lokalizace iOS aplikace pomocí Xcode String Catalogs

Lingo.dev CLI překládá Xcode String Catalogs (.xcstrings) pomocí nakonfigurovaného lokalizačního engine. String Catalogs jsou moderní lokalizační formát od Applu, představený v Xcode 15, který ukládá všechny jazyky do jednoho JSON souboru. CLI tento soubor upravuje přímo na místě – bez potřeby samostatných adresářů pro jednotlivé jazyky.

Tento průvodce vás krok za krokem provede lokalizací iOS aplikace: od nastavení CLI přes lokální překlad až po automatizaci pomocí GitHub App, takže se překlady nasazují při každém pushi.

Ukázkový repozitář

Naklonujte nebo forkněte lingodotdev/ios-app-localization-example a pokračujte podle návodu. Repozitář obsahuje funkční projekt v Xcode se String Catalogs a konfigurací CLI pro Lingo.dev.

Jak fungují String Catalogs#

Před Xcode 15 znamenala lokalizace iOS správu samostatných souborů .strings a .stringsdict v různých adresářích [locale].lproj/. String Catalogs to nahrazují jediným souborem Localizable.xcstrings, který Xcode spravuje automaticky.

Když ve SwiftUI nebo UIKit označíte řetězec jako lokalizovatelný, Xcode ho při buildu rozpozná a přidá položku do String Catalogu. Každá položka sleduje zdrojový řetězec, jeho překlady pro každý nakonfigurovaný jazyk a nepovinné pole s komentářem, které překladatelům poskytuje kontext.

OblastStarší .stringsString Catalogs .xcstrings
Počet souborůJeden pro každý jazyk a tabulkuJeden soubor pro všechny jazyky
FormátText klíč–hodnotaStrukturovaný JSON
Podpora množného číslaSamostatný soubor .stringsdictVestavěná pravidla pro plurály
Integrace s XcodeRuční export/importAutomatické rozpoznání
Poznámky pro překladateleBez podporyPole komentáře u každé položky

CLI rozpozná formát .xcstrings podle přípony souboru, zpracuje tuto JSON strukturu, přeloží každou položku přes lokalizační engine a zapíše překlady zpět do stejného souboru — se zachováním komentářů, pravidel množného čísla i metadat.

Předpoklady#

1

Vytvořte lokalizační engine

Každý překlad prochází přes lokalizační engine — konfiguraci, která určuje, jaký model LLM, glosář, hlas značky a pravidla se použijí. Vytvořte ho v Lingo.dev dashboard a vygenerujte API key.

2

Ověřte Node.js

CLI vyžaduje Node.js 22 nebo novější:

bash
node -v
3

Zapněte lokalizaci v Xcode

V projektu v Xcode přejděte do Project Settings > Info > Localizations a přidejte cílové jazyky. Xcode vytvoří položky String Catalogu pro každý jazyk, který přidáte. Podrobnosti najdete v dokumentaci Applu k lokalizaci.

Nainstalujte a nastavte CLI#

Nainstalujte CLI, přihlaste se a pak nastavte projekt. Kompletní postup najdete v Quickstart.

bash
npm install -g @lingo.dev/cli
lingo login

V kořenovém adresáři projektu spusťte lingo init a odpovězte na výzvy (zdrojový jazyk, cílové jazyky a vzor souborů odkazující na váš String Catalog), potom spusťte lingo link, aby se projekt propojil s vaší organizací a enginem. Tím se vytvoří .lingo/config.json:

json
{
  "orgId": "org_...",
  "engineId": "eng_...",
  "sourceLocale": "en",
  "targetLocales": ["es", "fr", "de", "ja"],
  "files": [{ "pattern": "MyApp/Localizable.xcstrings" }]
}

Commitněte .lingo/config.json — je to jediný zdroj pravdy pro to, co se má překládat. Formát .xcstrings se rozpoznává podle přípony souboru. Protože String Catalogs ukládají všechny jazyky v jednom souboru, není ve vzoru potřeba žádný zástupný symbol pro jazyk: CLI načte položky ve zdrojovém jazyce a zapíše všechny cílové jazyky zpět do stejného souboru. Kompletní schéma najdete v configuration reference.

Více String Catalogs

Pokud váš projekt používá více souborů String Catalog (například jeden pro každý framework target), přidejte pro každý z nich položku files:

json
{
  "files": [
    { "pattern": "MyApp/Localizable.xcstrings" },
    { "pattern": "MyAppWidgets/Localizable.xcstrings" }
  ]
}

Překládejte lokálně#

V kořenovém adresáři projektu spusťte první překlad:

bash
lingo push --backfill-missing

CLI načte váš String Catalog, přeloží všechny chybějící položky přes váš lokalizační engine, počká na dokončení běhu a zapíše výsledky zpět do souboru .xcstrings. Otevřete soubor v Xcode a uvidíte doplněné překlady pro každý nakonfigurovaný jazyk.

Když upravíte zdrojové řetězce, běžné lingo push přeloží jen změny — položky, jejichž zdroj se nezměnil, se na serveru přeskočí a sledují se přes lockfile:

bash
lingo push

Poznámky pro překladatele#

String Catalogs podporují u každé položky pole s komentářem, které CLI zahrnuje do požadavků na překlad. Tyto komentáře dávají lokalizačnímu engine kontext – pomáhají rozlišit význam termínů, upřesnit tón nebo popsat, kde se řetězec v UI zobrazuje.

V Xcode vyberte v editoru String Catalog řetězec a přidejte komentář v panelu inspektoru. Komentář se uloží do JSON .xcstrings:

json
{
  "sourceLanguage": "en",
  "strings": {
    "Set": {
      "comment": "Refers to a collection of items, not the verb",
      "localizations": { }
    }
  }
}

CLI tento komentář odesílá spolu s řetězcem a vede model ke správné interpretaci. „Set“ se bez kontextu může v mnoha jazycích přeložit jako sloveso – komentář tuto nejednoznačnost odstraňuje. Další vzory najdete v Translator Notes.

Plurály#

String Catalogs nativně pracují s tvary množného čísla pomocí CLDR pravidel pro plurály. Když v Xcode definujete variantu množného čísla, String Catalog uloží pravidla pro každou kategorii plurálu (zero, one, two, few, many, other), kterou cílový jazyk vyžaduje.

CLI tuto strukturu při překladu zachovává a generuje správné kategorie plurálu pro každý cílový jazyk. Angličtina používá dvě kategorie (one a other), ale arabština jich potřebuje šest, polština čtyři a japonština jednu. Lokalizační engine tyto rozdíly řeší automaticky.

Automatizujte to s GitHub App#

Nainstalujte si do repozitáře Lingo.dev GitHub App pro průběžnou lokalizaci — bez CI runneru, tajného API klíče i lockfile, o které byste se museli starat. Jakmile ji nainstalujete a nasměrujete na svůj .lingo/config.json (včetně engineId), začne automaticky reagovat na push i pull requesty: rozpozná změněné zdrojové řetězce, přeloží je přes váš engine a commitne aktualizovaný soubor .xcstrings zpět do větve nebo otevře pull request.

Raději to spouštíte sami?

Můžete také spouštět lingo push ve vlastním CI jobu (na libovolném runneru s Node.js) a commitovat výsledky s ověřením přes LINGO_API_KEY. Varianty pro runner najdete v CI/CD Workflows.

Ověření před nasazením#

Použijte lingo check jako kontrolu před nasazením, abyste měli jistotu, že se do produkce nedostanou žádné nepřeložené řetězce. Nahlásí chybějící nebo zastaralé překlady a skončí s nenulovým stavovým kódem, pokud ještě zbývá práce:

bash
lingo check

Přidejte ho jako samostatný CI krok před buildem.

Další kroky#

Lokalizace mobilních aplikací
Přehled všech mobilních platforem – iOS, Android, Flutter a React Native
CI/CD Workflows
GitHub App a CI varianty založené na runneru
Glosáře
Uzamkněte názvy značek a technické termíny, aby se nepřekládaly
Poznámky pro překladatele
Dodejte kontext pro vyšší přesnost překladu

Byla tato stránka užitečná?

Max PrilutskiyMax Prilutskiy·Aktualizováno před 8 dny·5 min čtení