Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Πώς χρησιμοποιείται η Spatie μεταφράσεις όταν χρησιμοποιούνται και τα αρχεία βάσης δεδομένων και γλώσσας


Πώς χρησιμοποιείται η Spatie μεταφράσεις όταν χρησιμοποιούνται και τα αρχεία βάσης δεδομένων και γλώσσας


Η Spatie χειρίζεται τις μεταφράσεις τόσο με τη βάση δεδομένων όσο και με αρχεία γλώσσας κυρίως μέσω του πακέτου Laravel-Translation-Loader, το οποίο ενσωματώνεται άψογα με το σύστημα μετάφρασης του Laravel.

Πώς λειτουργεί όταν χρησιμοποιείτε και τα δύο αρχεία βάσης δεδομένων και γλώσσας

- Το πακέτο σας επιτρέπει να αποθηκεύετε μεταφράσεις στη βάση δεδομένων χρησιμοποιώντας έναν ειδικό πίνακα (`language_lines`). Κάθε καταχώρηση μετάφρασης αντιπροσωπεύεται από ένα μοντέλο `model 'model' model, η οποία περιλαμβάνει:
- `Group`: Η ομάδα μετάφρασης (π.χ." επικύρωση "ή" auth ").
- `key`: Το κλειδί μετάφρασης μέσα στην ομάδα.
- `Text`: Μεταφράσεις συγκράτησης συστοιχίας για διαφορετικές τοποθεσίες (π.χ.,` ['en' => 'Αυτό είναι ένα απαιτούμενο πεδίο', 'nl' => 'dit είναι een verplicht veld']).

- Όταν ζητάτε μια μετάφραση χρησιμοποιώντας τις συνηθισμένες λειτουργίες μετάφρασης του Laravel όπως το `trans ()` ή `__ ()`, το πακέτο ελέγχει πρώτα τη βάση δεδομένων για τη μετάφραση. Εάν βρίσκει μια αντίστοιχη καταχώρηση, επιστρέφει την έκδοση βάσης δεδομένων.

- Εάν η μετάφραση δεν βρίσκεται στη βάση δεδομένων, επιστρέφει στα παραδοσιακά αρχεία γλώσσας που αποθηκεύονται στον κατάλογο Laravel's S `Resources/Lang.

- Αυτό σημαίνει ότι οι μεταφράσεις βάσεων δεδομένων παρακάμπτουν τις μεταφράσεις αρχείων γλώσσας, εάν υπάρχουν και οι δύο για το ίδιο κλειδί και τοπική.

- Το πακέτο υποστηρίζει τόσο τις μεταφράσεις που βασίζονται σε ομάδες (π.χ., «επικύρωση.Required») όσο και μεταφράσεις JSON χρησιμοποιώντας ένα ειδικό όνομα ομάδας `'*' για τις γραμμές μετάφρασης JSON.

Πρόσθετες λειτουργίες και συμπεριφορά

- Οι ομάδες μεταφράσεων προσωρινών προσώπων για τη βελτιστοποίηση της απόδοσης, μειώνοντας τα ερωτήματα βάσεων δεδομένων σε επαναλαμβανόμενες αιτήσεις μετάφρασης. Η προσωρινή μνήμη ακυρώνεται όταν δημιουργούνται, ενημερώνονται ή διαγράφονται μεταφράσεις.

- Είναι επεκτάσιμο: μπορείτε να προσθέσετε προσαρμοσμένους παρόχους μετάφρασης (π.χ., YAML, CSV) με την εφαρμογή της διεπαφής μετάφρασης μετάφρασης, επιτρέποντας τη φόρτωση μεταφράσεων από άλλες πηγές πέρα ​​από τα αρχεία της βάσης δεδομένων και της γλώσσας.

- Μπορείτε να συνεχίσετε να χρησιμοποιείτε τους προεπιλεγμένους βοηθούς μετάφρασης Laravel και τις οδηγίες λεπίδων (`@lang`,` trans () `,` __ () `) χωρίς τροποποίηση.

Περίληψη

Το πακέτο μεταφρασμού SPATIEAS SPATIE συγχωνεύει αποτελεσματικά τις μεταφράσεις που αποθηκευτούν στη βάση δεδομένων με μεταφράσεις που βασίζονται σε αρχεία Laravel με προτεραιότητα στις καταχωρήσεις βάσης δεδομένων. Αυτό επιτρέπει τη δυναμική επεξεργασία των μεταφράσεων μέσω ενός UI που υποστηρίζεται από τη βάση δεδομένων, διατηρώντας παράλληλα την απόσυρση σε αρχεία στατικής γλώσσας. Η ενσωμάτωση είναι ομαλή, απαιτώντας ελάχιστες αλλαγές στις υπάρχουσες κλήσεις μετάφρασης και προσφέρει προσωρινή αποθήκευση και επεκτασιμότητα για περιπτώσεις προχωρημένης χρήσης [1] [3] [5] [6] [7].

Αναφορές:
[1] https://github.com/spatie/laravel-translation-loader
[2] https://spatie.be/docs/laravel-translatable/v6/introduction
[3] https://laravel-news.com/translation-loader-package
[4] https://github.com/spatie/laravel-translatable
[5] https://www.laravelblogs.com/courses/multi-language-laravel/spatie-laravel-translation-loader
[6] https://packagist.org/packages/spatie/laravel-translation-loader
[7] https://freek.dev/593-a-laravel-package-to-store-language-lines-in-the-database
[8] https://laraveldaily.com/lesson/multi-language-laravel/spatie-laravel-translatable