|
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

Workflows

  • 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 provede lokalizací iOS aplikace od začátku do konce: od konfigurace CLI přes lokální překlad až po automatizaci s GitHub Actions, aby se překlady nasazovaly s každým pushem.

Ukázkový repozitář

Naklonujte nebo forkněte lingodotdev/ios-app-localization-example a postupujte podle návodu. Repozitář obsahuje funkční projekt v Xcode se String Catalogs, konfiguraci Lingo.dev CLI a workflow pro GitHub Actions.

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

Typ bucketu xcode-xcstrings v CLI parsuje tuto JSON strukturu, překládá každou položku přes lokalizační engine a zapisuje překlady zpět do stejného souboru – se zachováním komentářů, pravidel pro plurály i metadat.

Předpoklady#

1

Vytvořte lokalizační engine

Každé spuštění CLI posílá obsah přes lokalizační engine – konfiguraci, která určuje, jaký LLM model, glosář, hlas značky a instrukce se použijí. Vytvořte ho v Lingo.dev dashboardu a vygenerujte API klíč.

2

Ověřte Node.js

CLI vyžaduje Node.js 18 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.

Nakonfigurujte CLI#

V kořenovém adresáři projektu vytvořte soubor i18n.json. Bucket xcode-xcstrings řekne CLI, aby parsovalo formát String Catalog a upravovalo soubor přímo na místě:

json
{
  "$schema": "https://lingo.dev/schema/i18n.json",
  "version": "1.15",
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja"]
  },
  "buckets": {
    "xcode-xcstrings": {
      "include": ["MyApp/Localizable.xcstrings"]
    }
  }
}

Protože String Catalogs ukládají všechny jazyky do jediného souboru, v include patternu není potřeba placeholder [locale]. CLI načte položky zdrojového jazyka, přeloží je a zapíše všechny cílové jazyky zpět do stejného souboru .xcstrings.

Více String Catalogs

Pokud váš projekt používá více souborů String Catalog (například jeden pro každý framework target), vypište je všechny v poli include:

json
{
  "buckets": {
    "xcode-xcstrings": {
      "include": [
        "MyApp/Localizable.xcstrings",
        "MyAppWidgets/Localizable.xcstrings"
      ]
    }
  }
}

Překládejte lokálně#

Nastavte API klíč a spusťte CLI:

bash
export LINGO_API_KEY="your-api-key"
npx lingo.dev@latest run

CLI načte váš String Catalog, pomocí lockfile identifikuje nepřeložené položky, přeloží delta změny přes váš lokalizační engine a zapíše výsledky zpět do souboru .xcstrings. Otevřete soubor v Xcode a uvidíte vyplněné překlady pro každý nakonfigurovaný jazyk.

Pokud chcete při vývoji cílit na konkrétní jazyk:

bash
npx lingo.dev@latest run --target-locale es

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 s GitHub Actions#

Přidejte workflow soubor do .github/workflows/translate.yml, aby se překlady spouštěly při každém pushi:

Překlady se commitují přímo do mainu – bez zbytečných překážek, ideální pro malé týmy:

yaml
name: Translate
on:
  push:
    branches: [main]
permissions:
  contents: write
jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Lingo.dev
        uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}

Uložte API klíč jako LINGODOTDEV_API_KEY v Settings > Secrets and variables > Actions ve vašem GitHub repozitáři.

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

Použijte příznak --frozen jako pojistku před nasazením, abyste měli jistotu, že se do produkce nedostanou žádné nepřeložené řetězce. Pokud některé položky stále vyžadují překlad, CLI skončí s nenulovým stavovým kódem:

bash
npx lingo.dev@latest run --frozen

Přidejte to jako samostatný CI krok před buildem:

yaml
- name: Verify translations
  run: npx lingo.dev@latest run --frozen

Další kroky#

Lokalizace mobilních aplikací
Přehled všech mobilních platforem – iOS, Android, Flutter a React Native
CI/CD Workflows
Osvědčené postupy pro GitHub Actions, GitLab CI a Bitbucket Pipelines
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 3 měsíci·5 min čtení