Skip to main content
AI agent network visualization

Traduceți cataloage de șiruri Xcode în câteva secunde

Forme de plural corecte conform CLDR. Variante pentru dispozitive păstrate. Stări ale traducerii urmărite. Fișierele dumneavoastră .xcstrings sunt traduse fără să părăsiți IDE-ul.

Traducerea cataloagelor de șiruri este mai complexă decât pare

Cataloagele de șiruri din Xcode 15 au înlocuit fișierele .strings și .stringsdict cu un singur fișier JSON, dar complexitatea nu a dispărut. Formele de plural necesită categoriile CLDR corecte pentru fiecare limbă, variantele pentru dispozitive (iPhone, iPad sau Mac) trebuie să rămână asociate cheilor lor, iar urmărirea stărilor în Xcode înseamnă că un singur câmp greșit invalidează întreaga intrare.

Fiecare limbă necesită categorii de plural CLDR diferite — araba le necesită pe toate cele șase, japoneza necesită doar „other”, iar rusa necesită patru forme distincte

Variantele de șir specifice dispozitivelor (iPhone, iPad, Mac, Apple Watch) trebuie să rămână asociate corect cheilor lor părinte

Xcode urmărește stările traducerii (new, needs_review, translated, stale) — valorile incorecte determină Xcode să ignore traducerile sau să le marcheze greșit

Migrarea de la fișierele .strings/.stringsdict vechi la .xcstrings introduce diferențe de format pe care instrumentele generice nu le gestionează

Sursă (engleză)
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"
                }
              }
            }
          }
        }
      }
    }
  }
}
Traducere (germană)
Localizable.xcstrings (cu 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"
                }
              }
            }
          }
        }
      }
    }
  }
}

Ce păstrează i18n Agent

Formele de plural

Sunt generate categoriile de plural CLDR corecte pentru fiecare limbă-țintă — de la japoneza cu o singură categorie până la araba cu șase categorii

Variante pentru dispozitive

Variantele de șir pentru iPhone, iPad, Mac și Apple Watch rămân asociate corect cheilor lor părinte

Gestionarea stărilor

Stările traducerii (new, needs_review, translated) sunt configurate corect, astfel încât fluxul de localizare din Xcode să funcționeze corespunzător

Compatibilitatea formatului

Rezultatul este pe deplin compatibil cu editorul de cataloage de șiruri din Xcode și se integrează fără probleme atât în proiectele noi, cât și în cele migrate

Funcționează în întregul ecosistem de dezvoltare Apple

Cataloage de șiruri Xcode 15+
Localizare SwiftUI
UIKit / AppKit
Pachete Swift

Cum funcționează

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.

Fără copiere și lipire manuală. Fără extragerea textelor. Doar fișiere traduse.

Încercați acum i18n Agent

Plasați aici fișierul de traducere

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

sau faceți clic pentru a-l selecta

Limbi țintă

Nu este necesară înregistrareaEstimare instantanee

Întrebări frecvente

Sunteți dezvoltator?

Instalați instrumentul CLI și traduceți primul fișier în 2 minute.

Instalați instrumentul CLI

Reprezentați o companie?

Aveți încă un contract TMS care vă ține pe loc? Haideți să discutăm despre migrare.