Skip to main content
AI agent network visualization

Μεταφράστε αρχεία Flutter ARB σε δευτερόλεπτα

Τα μεταδεδομένα παραμένουν ανέπαφα. Τα σύμβολα κράτησης θέσης διατηρούνται. Οι μορφές πληθυντικού ακολουθούν σωστά το CLDR. Μεταφράστε τα αρχεία ARB χωρίς να προκαλέσετε προβλήματα στο flutter gen-l10n.

Η μετάφραση ARB προκαλεί σφάλματα στα build του 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 αντιστοιχούν στο αρχείο προέλευσης, ώστε τα diff να παραμένουν καθαρά

Λειτουργεί με το δικό σας οικοσύστημα 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; Ας συζητήσουμε τη μετάβαση.