Skip to main content
AI agent network visualization

Preložte katalógy reťazcov Xcode za niekoľko sekúnd

Tvary množného čísla budú zodpovedať CLDR. Varianty zariadení sa zachovajú. Stavy prekladu sa sledujú. Súbory .xcstrings preložíte bez opustenia IDE.

Preklad katalógov reťazcov je zložitejší, než sa zdá

Katalógy reťazcov Xcode 15 nahradili súbory .strings a .stringsdict jediným súborom JSON, no zložitosť nezmizla. Tvary množného čísla potrebujú správne kategórie CLDR pre každý jazyk, varianty zariadení (iPhone, iPad, Mac) musia zostať spárované so svojimi kľúčmi a pri sledovaní stavov v Xcode jediné nesprávne pole zneplatní celú položku.

Každý jazyk potrebuje iné kategórie množného čísla CLDR — arabčina všetkých šesť, japončina iba 'other' a ruština štyri odlišné tvary

Varianty reťazcov pre jednotlivé zariadenia (iPhone, iPad, Mac, Apple Watch) musia zostať správne priradené k nadradeným kľúčom

Xcode sleduje stavy prekladu (new, needs_review, translated, stale) — nesprávne hodnoty spôsobia, že Xcode preklady ignoruje alebo nesprávne označí

Migrácia zo starších .strings/.stringsdict na .xcstrings prináša rozdiely formátu, ktoré všeobecné nástroje nezvládajú

Zdroj (angličtina)
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"
                }
              }
            }
          }
        }
      }
    }
  }
}
Preklad (nemčina)
Localizable.xcstrings (s 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"
                }
              }
            }
          }
        }
      }
    }
  }
}

Čo i18n Agent zachováva

Tvary množného čísla

Pre každý cieľový jazyk sa vytvoria správne kategórie CLDR — od jedinej kategórie v japončine po šesť kategórií v arabčine

Varianty zariadení

Varianty reťazcov pre iPhone, iPad, Mac a Apple Watch zostanú správne priradené k nadradeným kľúčom

Zohľadnenie stavov

Stavy prekladu (new, needs_review, translated) sa nastavia správne, aby lokalizačný pracovný postup Xcode fungoval bez problémov

Kompatibilita formátu

Výstup je plne kompatibilný s editorom katalógov reťazcov Xcode a bez problémov sa integruje s novými aj migrovanými projektmi

Funguje naprieč vývojovým prostredím Apple

Katalógy reťazcov Xcode 15+
Lokalizácia SwiftUI
UIKit / AppKit
Balíky Swift

Ako to funguje

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.

Bez manuálneho kopírovania, vkladania a extrakcie reťazcov. Iba preložené súbory.

Vyskúšajte i18n Agent teraz

Potiahnite súbor na preklad sem

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

alebo kliknite a vyberte súbor

Cieľové jazyky

Bez registrácieOkamžitý odhad

Často kladené otázky

Ste vývojár?

Nainštalujte server MCP a preložte svoj prvý súbor za 2 minúty.

Nainštalovať server MCP

Podnikový tím?

Stále Vás viaže zmluva s TMS? Porozprávajme sa o migrácii.