Skip to main content
AI agent network visualization

แปลไฟล์ Flutter ARB ได้ภายในไม่กี่วินาที

เมทาดาทาครบถ้วน ตัวยึดตำแหน่งยังอยู่ รูปพหูพจน์ถูกต้องตาม CLDR แปลไฟล์ ARB ของคุณโดยไม่ทำให้ flutter gen-l10n ใช้งานไม่ได้

การแปล ARB ทำให้บิลด์ Flutter เสียหาย

ไฟล์ ARB ดูคล้าย JSON แต่ไม่เหมือนกัน ไฟล์เหล่านี้มีรายการเมทาดาทาที่ขึ้นต้นด้วย @ คำจำกัดความตัวยึดตำแหน่งพร้อมคำอธิบายชนิด และรูปพหูพจน์ ICU ที่ต้องเป็นไปตามกฎ CLDR ทุกประการ เครื่องมือแปลทั่วไปทำให้ทั้งหมดนี้เสียหาย และ flutter gen-l10n อาจล้มเหลวโดยไม่แจ้งเตือนหรือแสดงข้อผิดพลาดที่เข้าใจยาก

รายการเมทาดาทาที่ขึ้นต้นด้วย @ ถูกแปลหรือลบ ทำให้คำจำกัดความและคำอธิบายตัวยึดตำแหน่งเสียหาย

ชื่อตัวยึดตำแหน่งภายในวงเล็บปีกกาถูกแปล เปลี่ยนชื่อ หรือลบ ทำให้แอปหยุดทำงานขณะรัน

รูปพหูพจน์ ICU ต้องใช้หมวดหมู่ CLDR ที่ตรงตามแต่ละภาษา แต่เครื่องมือทั่วไปมักข้ามหรือสร้างโครงสร้างที่ไม่ถูกต้อง

ส่วนหัว @@locale เสียหายหรือไม่ตรงกัน ทำให้ flutter gen-l10n กำหนดคำแปลให้ผิดภาษา

ต้นฉบับ (อังกฤษ)
lib/l10n/app_en.arb
{
  "@@locale": "en",
  "appTitle": "My Flutter App",
  "@appTitle": {
    "description": "The title of the application"
  },
  "greeting": "Hello, {name}!",
  "@greeting": {
    "description": "A greeting with the user's name",
    "placeholders": {
      "name": {
        "type": "String",
        "example": "John"
      }
    }
  },
  "itemCount": "{count, plural, =0{No items} =1{1 item} other{{count} items}}",
  "@itemCount": {
    "description": "Number of items in the cart",
    "placeholders": {
      "count": {
        "type": "int"
      }
    }
  },
  "lastLogin": "Last login: {date}",
  "@lastLogin": {
    "placeholders": {
      "date": {
        "type": "DateTime",
        "format": "yMMMd"
      }
    }
  }
}
ฉบับแปล (ญี่ปุ่น)
lib/l10n/app_ja.arb
{
  "@@locale": "de",
  "appTitle": "Meine Flutter-App",
  "@appTitle": {
    "description": "The title of the application"
  },
  "greeting": "Hallo, {name}!",
  "@greeting": {
    "description": "A greeting with the user's name",
    "placeholders": {
      "name": {
        "type": "String",
        "example": "John"
      }
    }
  },
  "itemCount": "{count, plural, =0{Keine Artikel} =1{1 Artikel} other{{count} Artikel}}",
  "@itemCount": {
    "description": "Number of items in the cart",
    "placeholders": {
      "count": {
        "type": "int"
      }
    }
  },
  "lastLogin": "Letzte Anmeldung: {date}",
  "@lastLogin": {
    "placeholders": {
      "date": {
        "type": "DateTime",
        "format": "yMMMd"
      }
    }
  }
}

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

รายการเมทาดาทาที่ขึ้นต้นด้วย @

ระบบรักษาเมทาดาทาที่ขึ้นต้นด้วย @ ทั้งหมด ไม่ว่าจะเป็นคำอธิบาย ตัวยึดตำแหน่ง และคำอธิบายชนิดให้ตรงตามที่กำหนดทุกประการ

ความปลอดภัยของตัวยึดตำแหน่ง

ระบบจะตรวจพบตัวยึดตำแหน่งแบบมีชื่ออย่าง {userName}, {count} และ {price} แล้วคงไว้โดยไม่เปลี่ยนแปลงในคำแปลทั้งหมด

รูปพหูพจน์ CLDR

ระบบสร้างหมวดหมู่พหูพจน์ ICU (zero, one, two, few, many, other) อย่างถูกต้องสำหรับแต่ละภาษาเป้าหมายตามกฎ CLDR

โครงสร้าง JSON

ลำดับคีย์ โครงสร้างซ้อน และการจัดรูปแบบเฉพาะ ARB ตรงกับไฟล์ต้นฉบับ เพื่อให้ดูความแตกต่างได้สะอาด

ใช้งานได้กับเทคโนโลยีสแต็ก Flutter ของคุณ

flutter gen-l10n (เครื่องมือทางการ)
Easy Localization
การทำให้ GetX รองรับหลายภาษา

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

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 อยู่ใช่ไหม? มาคุยเรื่องการย้ายระบบกัน