Skip to main content
AI agent network visualization

แปล String Catalog ของ Xcode ได้ภายในไม่กี่วินาที

รูปพหูพจน์ถูกต้องตาม CLDR รูปแบบเฉพาะอุปกรณ์ยังอยู่ ติดตามสถานะการแปล แปลไฟล์ .xcstrings ได้โดยไม่ต้องออกจาก IDE

การแปล String Catalog ซับซ้อนกว่าที่เห็น

String Catalog ของ Xcode 15 แทนที่ .strings และ .stringsdict ด้วยไฟล์ JSON ไฟล์เดียว แต่ความซับซ้อนยังคงอยู่ รูปพหูพจน์ต้องใช้หมวดหมู่ CLDR ที่ถูกต้องตามภาษา รูปแบบเฉพาะอุปกรณ์ (iPhone เทียบกับ iPad และ Mac) ต้องจับคู่กับคีย์เดิม และการติดตามสถานะของ Xcode ทำให้ช่องข้อมูลที่ผิดเพียงช่องเดียวทำให้รายการทั้งหมดใช้ไม่ได้

แต่ละภาษาต้องใช้หมวดหมู่พหูพจน์ CLDR ต่างกัน ภาษาอาหรับต้องใช้ครบหกหมวดหมู่ ภาษาญี่ปุ่นใช้เพียง 'other' และภาษารัสเซียใช้สี่รูปแบบที่แตกต่างกัน

รูปแบบข้อความเฉพาะอุปกรณ์ (iPhone, iPad, Mac, Apple Watch) ต้องเชื่อมโยงกับคีย์หลักอย่างถูกต้อง

Xcode ติดตามสถานะการแปล (new, needs_review, translated, stale) ค่าสถานะที่ผิดทำให้ Xcode มองข้ามหรือทำเครื่องหมายคำแปลไม่ถูกต้อง

การย้ายจาก .strings/.stringsdict แบบเดิมไปยัง .xcstrings ทำให้เกิดความแตกต่างด้านรูปแบบที่เครื่องมือทั่วไปจัดการไม่ได้

ต้นฉบับ (อังกฤษ)
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"
                }
              }
            }
          }
        }
      }
    }
  }
}
ฉบับแปล (เยอรมัน)
Localizable.xcstrings (พร้อม 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"
                }
              }
            }
          }
        }
      }
    }
  }
}

สิ่งที่ i18n Agent รักษาไว้

รูปพหูพจน์

ระบบสร้างหมวดหมู่พหูพจน์ CLDR ที่ถูกต้องสำหรับแต่ละภาษาเป้าหมาย ตั้งแต่ภาษาญี่ปุ่นหนึ่งหมวดหมู่ไปจนถึงภาษาอาหรับหกหมวดหมู่

รูปแบบเฉพาะอุปกรณ์

รูปแบบข้อความสำหรับ iPhone, iPad, Mac และ Apple Watch ยังคงเชื่อมโยงกับคีย์หลักอย่างถูกต้อง

การรับรู้สถานะ

ระบบตั้งค่าสถานะการแปล (new, needs_review, translated) อย่างถูกต้อง เพื่อให้เวิร์กโฟลว์โลคัลไลเซชันของ Xcode ทำงานได้ตามปกติ

ความเข้ากันได้ของรูปแบบ

ผลลัพธ์เข้ากันได้อย่างสมบูรณ์กับเครื่องมือแก้ไข String Catalog ของ Xcode และเชื่อมต่อกับทั้งโปรเจกต์ใหม่กับโปรเจกต์ที่ย้ายมาได้อย่างเรียบร้อย

ใช้งานได้ทั่วทั้งการพัฒนาสำหรับ Apple

String Catalog ของ Xcode 15+
โลคัลไลเซชัน SwiftUI
UIKit / AppKit
แพ็กเกจ Swift

วิธีการทำงาน

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.

ไม่ต้องคัดลอกและวางด้วยตนเอง ไม่ต้องแยกข้อความ มีเพียงไฟล์ที่แปลแล้ว

ลองใช้ i18n Agent ตอนนี้

ลากและวางไฟล์แปลของคุณที่นี่

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

หรือคลิกเพื่อเลือกไฟล์

ภาษาเป้าหมาย

ไม่ต้องลงทะเบียนประเมินราคาได้ทันที

คำถามที่พบบ่อย

เป็นนักพัฒนาใช่ไหม?

ติดตั้งเครื่องมือ CLI แล้วแปลไฟล์แรกของคุณได้ภายใน 2 นาที

ติดตั้งเครื่องมือ CLI

เป็นทีมองค์กรใช่ไหม?

ยังติดสัญญา TMS อยู่ใช่ไหม? มาคุยเรื่องการย้ายระบบกัน