Skip to main content
AI agent network visualization

Terjemah String Catalog Xcode dalam Beberapa Saat

Bentuk jamak betul mengikut CLDR. Variasi peranti dikekalkan. Keadaan terjemahan dijejaki. Fail .xcstrings anda diterjemahkan tanpa meninggalkan IDE.

Terjemahan String Catalog Lebih Kompleks daripada Jangkaan

String Catalog Xcode 15 menggantikan .strings dan .stringsdict dengan satu fail JSON, tetapi kerumitannya tidak hilang. Bentuk jamak memerlukan kategori CLDR yang betul untuk setiap bahasa, variasi peranti (iPhone lwn iPad lwn Mac) perlu kekal dipasangkan dengan kekuncinya, dan penjejakan keadaan Xcode menyebabkan satu medan yang salah membatalkan seluruh entri.

Setiap bahasa memerlukan kategori bentuk jamak CLDR yang berbeza—bahasa Arab memerlukan kesemua enam kategori, Jepun hanya 'other', dan Rusia memerlukan empat bentuk berbeza

Variasi rentetan khusus peranti (iPhone, iPad, Mac, Apple Watch) perlu kekal dikaitkan dengan kekunci induknya secara betul

Xcode menjejaki keadaan terjemahan (new, needs_review, translated, stale)—nilai keadaan yang salah menyebabkan Xcode mengabaikan atau menandai terjemahan secara tidak tepat

Pemindahan daripada .strings/.stringsdict lama kepada .xcstrings menimbulkan perbezaan format yang tidak dikendalikan oleh alat umum

Sumber (Bahasa Inggeris)
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"
                }
              }
            }
          }
        }
      }
    }
  }
}
Diterjemahkan (Jerman)
Localizable.xcstrings (dengan 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"
                }
              }
            }
          }
        }
      }
    }
  }
}

Perkara yang Dikekalkan oleh i18n Agent

Bentuk Jamak

Kategori bentuk jamak CLDR yang betul dijana untuk setiap bahasa sasaran—daripada bahasa Jepun dengan satu kategori hingga Arab dengan enam kategori

Variasi Peranti

Variasi rentetan iPhone, iPad, Mac, dan Apple Watch kekal dikaitkan dengan kekunci induknya secara betul

Kesedaran Keadaan

Keadaan terjemahan (new, needs_review, translated) ditetapkan dengan betul supaya aliran kerja penyetempatan Xcode berfungsi dengan sewajarnya

Keserasian Format

Output serasi sepenuhnya dengan editor String Catalog Xcode serta bersepadu dengan baik ke dalam projek baharu dan projek hasil pemindahan

Berfungsi Merentas Pembangunan Apple

String Catalog Xcode 15+
Penyetempatan SwiftUI
UIKit / AppKit
Pakej Swift

Cara Ia Berfungsi

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.

Tiada salin-tampal manual. Tiada pengekstrakan rentetan. Hanya fail terjemahan.

Cuba i18n Agent Sekarang

Lepaskan fail terjemahan anda di sini

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

atau klik untuk semak imbas

Bahasa sasaran

Tidak perlu mendaftarAnggaran serta-merta

Soalan Lazim

Pembangun?

Pasang alat CLI dan terjemah fail pertama anda dalam 2 minit.

Pasang Alat CLI

Pasukan perusahaan?

Masih terikat dengan kontrak TMS? Mari berbincang tentang pemindahan anda.