Skip to main content
AI agent network visualization

Tulkojiet Xcode virkņu katalogus dažās sekundēs

Pareizas CLDR daudzskaitļa formas. Ierīču varianti saglabāti. Tulkojuma stāvokļi izsekoti. Jūsu .xcstrings faili iztulkoti, neizejot no IDE.

Virkņu katalogu tulkošana ir maldinoši sarežģīta

Xcode 15 virkņu katalogi aizstāja .strings un .stringsdict ar vienu JSON failu, taču sarežģītība nepazuda. Daudzskaitļa formām vajadzīgas pareizas CLDR kategorijas katrai valodai, ierīču variantiem (iPhone, iPad vai Mac) jāpaliek saistītiem ar savām atslēgām, bet Xcode stāvokļu izsekošanas dēļ viens nepareizs lauks padara nederīgu visu ierakstu.

Katrai valodai vajadzīgas atšķirīgas CLDR daudzskaitļa kategorijas — arābu valodai visas sešas, japāņu tikai „other“, bet krievu četras atšķirīgas formas

Ierīcēm specifiskajiem virkņu variantiem (iPhone, iPad, Mac, Apple Watch) jāpaliek pareizi saistītiem ar vecākatslēgām

Xcode izseko tulkojuma stāvokļus (new, needs_review, translated, stale) — nepareizu stāvokļa vērtību dēļ Xcode ignorē tulkojumus vai nepareizi tos atzīmē

Migrējot no mantotajiem .strings/.stringsdict uz .xcstrings, rodas formātu atšķirības, ko vispārīgi rīki neapstrādā

Avots (angļu val.)
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"
                }
              }
            }
          }
        }
      }
    }
  }
}
Tulkojums (vācu val.)
Localizable.xcstrings (ar 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"
                }
              }
            }
          }
        }
      }
    }
  }
}

Ko saglabā i18n Agent

Daudzskaitļa formas

Katrai mērķa valodai tiek ģenerētas pareizas CLDR daudzskaitļa kategorijas — no japāņu valodas ar vienu kategoriju līdz arābu valodai ar sešām kategorijām

Ierīču varianti

iPhone, iPad, Mac un Apple Watch virkņu varianti paliek pareizi saistīti ar vecākatslēgām

Stāvokļu pārzināšana

Tulkojuma stāvokļi (new, needs_review, translated) tiek iestatīti pareizi, lai Xcode lokalizācijas darbplūsma darbotos kā paredzēts

Formātu saderība

Izvade ir pilnībā saderīga ar Xcode virkņu katalogu redaktoru un nevainojami integrējas gan jaunos, gan migrētos projektos

Darbojas visā Apple izstrādes vidē

Xcode 15+ virkņu katalogi
SwiftUI lokalizācija
UIKit / AppKit
Swift pakotnes

Kā tas darbojas

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ālas kopēšanas. Bez virkņu izvilkšanas. Tikai tulkoti faili.

Izmēģiniet i18n Agent tūlīt

Nometiet tulkošanas failu šeit

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

vai noklikšķiniet, lai izvēlētos

Mērķa valodas

Reģistrācija nav vajadzīgaTūlītēja tāme

Bieži uzdotie jautājumi

Izstrādātājs?

Instalējiet CLI rīku un 2 minūtēs iztulkojiet pirmo failu.

Instalēt CLI rīku

Uzņēmuma komanda?

Joprojām esat piesaistīti TMS līgumam? Apspriedīsim migrāciju.