Skip to main content
AI agent network visualization

Vertaal Xcode String Catalogs in enkele seconden

Correcte meervoudsvormen volgens CLDR. Apparaatvarianten behouden. Vertaalstatussen bijgehouden. Je .xcstrings-bestanden worden vertaald, zonder dat je je IDE hoeft te verlaten.

String Catalogs vertalen is complexer dan het lijkt

Xcode 15 String Catalogs vervingen .strings en .stringsdict door één JSON-bestand — maar de complexiteit bleef. Meervoudsvormen vereisen per taal de juiste CLDR-categorieën, apparaatvarianten (iPhone, iPad en Mac) moeten aan hun sleutels gekoppeld blijven en door de statusregistratie van Xcode maakt één onjuist veld de hele vermelding ongeldig.

Elke taal vereist andere CLDR-meervoudscategorieën — het Arabisch heeft ze alle zes nodig, het Japans alleen 'other' en het Russisch vier verschillende vormen

Apparaatspecifieke tekstvarianten (iPhone, iPad, Mac, Apple Watch) moeten correct aan hun bovenliggende sleutels gekoppeld blijven

Xcode houdt vertaalstatussen bij (new, needs_review, translated, stale) — door onjuiste statuswaarden negeert of markeert Xcode vertalingen ten onrechte

Migratie van oudere .strings/.stringsdict-bestanden naar .xcstrings brengt indelingsverschillen met zich mee die algemene tools niet verwerken

Bron (Engels)
Localizable.xcstrings
{
  "sourceLanguage": "en",
  "version": "1.0",
  "strings": {
    "welcome_title": {
      "extractionState": "manual",
      "localizations": {
        "en": {
          "stringUnit": {
            "state": "translated",
            "value": "Welcome to the App"
          }
        }
      }
    },
    "item_count": {
      "localizations": {
        "en": {
          "variations": {
            "plural": {
              "zero": {
                "stringUnit": {
                  "state": "translated",
                  "value": "No items"
                }
              },
              "one": {
                "stringUnit": {
                  "state": "translated",
                  "value": "%lld item"
                }
              },
              "other": {
                "stringUnit": {
                  "state": "translated",
                  "value": "%lld items"
                }
              }
            }
          }
        }
      }
    },
    "device_greeting": {
      "localizations": {
        "en": {
          "variations": {
            "device": {
              "iphone": {
                "stringUnit": {
                  "state": "translated",
                  "value": "Tap to continue"
                }
              },
              "ipad": {
                "stringUnit": {
                  "state": "translated",
                  "value": "Tap or click to continue"
                }
              },
              "mac": {
                "stringUnit": {
                  "state": "translated",
                  "value": "Click to continue"
                }
              }
            }
          }
        }
      }
    }
  }
}
Vertaald (Duits)
Localizable.xcstrings (met de)
{
  "sourceLanguage": "en",
  "version": "1.0",
  "strings": {
    "welcome_title": {
      "extractionState": "manual",
      "localizations": {
        "de": {
          "stringUnit": {
            "state": "translated",
            "value": "Willkommen in der App"
          }
        }
      }
    },
    "item_count": {
      "localizations": {
        "de": {
          "variations": {
            "plural": {
              "zero": {
                "stringUnit": {
                  "state": "translated",
                  "value": "Keine Elemente"
                }
              },
              "one": {
                "stringUnit": {
                  "state": "translated",
                  "value": "%lld Element"
                }
              },
              "other": {
                "stringUnit": {
                  "state": "translated",
                  "value": "%lld Elemente"
                }
              }
            }
          }
        }
      }
    },
    "device_greeting": {
      "localizations": {
        "de": {
          "variations": {
            "device": {
              "iphone": {
                "stringUnit": {
                  "state": "translated",
                  "value": "Tippen zum Fortfahren"
                }
              },
              "ipad": {
                "stringUnit": {
                  "state": "translated",
                  "value": "Tippen oder klicken zum Fortfahren"
                }
              },
              "mac": {
                "stringUnit": {
                  "state": "translated",
                  "value": "Klicken zum Fortfahren"
                }
              }
            }
          }
        }
      }
    }
  }
}

Wat i18n Agent behoudt

Meervoudsvormen

Voor elke doeltaal worden de juiste CLDR-meervoudscategorieën gegenereerd — van één categorie voor het Japans tot zes voor het Arabisch

Apparaatvarianten

Tekstvarianten voor iPhone, iPad, Mac en Apple Watch blijven correct aan hun bovenliggende sleutels gekoppeld

Statusbewaking

Vertaalstatussen (new, needs_review, translated) worden correct ingesteld, zodat de lokalisatieworkflow van Xcode goed werkt

Indelingscompatibiliteit

De uitvoer is volledig compatibel met de String Catalog-editor van Xcode en kan probleemloos in zowel nieuwe als gemigreerde projecten worden geïntegreerd

Werkt in de hele Apple-ontwikkelomgeving

Xcode 15+ String Catalogs
SwiftUI-lokalisatie
UIKit / AppKit
Swift-pakketten

Hoe het werkt

How i18n Agent works: Install, Translate, Done
1
2
3
terminal
$translate_filesrc/messages/en.json
 --target["de", "ja", "es"]
Done.3 languages, 142 keys translated.

Niet handmatig kopiëren en plakken. Geen strings extraheren. Alleen vertaalde bestanden.

Probeer i18n Agent nu

Zet je vertaalbestand hier neer

JSON, YAML, PO, XML, CSV, Markdown, Properties

of klik om een bestand te selecteren

Doeltalen

Geen registratie nodigDirecte prijsindicatie

Veelgestelde vragen

Ontwikkelaar?

Installeer de CLI-tool en vertaal je eerste bestand binnen 2 minuten.

CLI-tool installeren

Enterprise-team?

Nog steeds gebonden aan een TMS-contract? Laten we de overstap bespreken.