
Μεταφράστε αρχεία Flutter ARB σε δευτερόλεπτα
Τα μεταδεδομένα παραμένουν ανέπαφα. Τα σύμβολα κράτησης θέσης διατηρούνται. Οι μορφές πληθυντικού ακολουθούν σωστά το CLDR. Μεταφράστε τα αρχεία ARB χωρίς να προκαλέσετε προβλήματα στο flutter gen-l10n.
Η μετάφραση ARB προκαλεί σφάλματα στα build του Flutter
Τα αρχεία ARB μοιάζουν με JSON, αλλά δεν είναι. Περιέχουν καταχωρίσεις μεταδεδομένων με πρόθεμα @, ορισμούς συμβόλων κράτησης θέσης με επισημάνσεις τύπου και μορφές πληθυντικού ICU που πρέπει να ακολουθούν πιστά τους κανόνες CLDR. Τα γενικά εργαλεία μετάφρασης αλλοιώνουν όλα αυτά — και το flutter gen-l10n αποτυγχάνει χωρίς προειδοποίηση ή εμφανίζει ακατανόητα σφάλματα.
Οι καταχωρίσεις μεταδεδομένων με πρόθεμα @ μεταφράζονται ή διαγράφονται, με αποτέλεσμα να αλλοιώνονται οι ορισμοί και οι περιγραφές των συμβόλων κράτησης θέσης
Τα ονόματα των συμβόλων κράτησης θέσης μέσα σε άγκιστρα μεταφράζονται, μετονομάζονται ή αφαιρούνται — προκαλώντας διακοπές λειτουργίας κατά την εκτέλεση
Οι μορφές πληθυντικού ICU απαιτούν τις ακριβείς κατηγορίες CLDR κάθε γλώσσας, αλλά τα γενικά εργαλεία είτε τις παραλείπουν είτε δημιουργούν μη έγκυρες δομές
Η κεφαλίδα @@locale αλλοιώνεται ή δεν αντιστοιχεί σωστά, με αποτέλεσμα το flutter gen-l10n να εκχωρεί τις μεταφράσεις σε λάθος γλώσσα
{
"@@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"
}
}
}
}{
"@@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
Πώς λειτουργεί

Χωρίς χειροκίνητη αντιγραφή και επικόλληση. Χωρίς εξαγωγή συμβολοσειρών. Μόνο μεταφρασμένα αρχεία.
Δοκιμάστε τώρα το i18n Agent
Αφήστε εδώ το αρχείο μετάφρασής σας
JSON, YAML, PO, XML, CSV, Markdown, Properties
ή κάντε κλικ για να επιλέξετε αρχείο
Γλώσσες-στόχοι
Συχνές ερωτήσεις
Είστε προγραμματιστής;
Εγκαταστήστε το εργαλείο CLI και μεταφράστε το πρώτο σας αρχείο σε 2 λεπτά.
Εγκαταστήστε το εργαλείο CLIΕίστε εταιρική ομάδα;
Σας δεσμεύει ακόμη ένα συμβόλαιο TMS; Ας συζητήσουμε τη μετάβαση.