ΛειτουργίεςPluginΤιμολόγησηΠόροι
Αλλαγή γλώσσας
ΠόροιΠώς να διορθώσετε τις ασαφείς μεταφράσεις σε αρχεία .po του WordPress

Πώς να διορθώσετε τις ασαφείς μεταφράσεις σε αρχεία .po του WordPress

SimplePoTranslate Team11 Μαΐου 2026
Πώς να διορθώσετε τις ασαφείς μεταφράσεις σε αρχεία .po του WordPress

Μεταφράσατε κάθε συμβολοσειρά. Αποθηκεύσατε το αρχείο, ανεβάσατε το .mo και ανανεώσατε τον ιστότοπό σας. Κι όμως, ένα μικρό πλήθος ετικετών παραμένει επίμονα στα Αγγλικά. Ανοίγετε το αρχείο .po, βρίσκετε τη συμβολοσειρά, και να την, τέλεια μεταφρασμένη. Γιατί λοιπόν το WordPress την αγνοεί; Η απάντηση είναι σχεδόν πάντα μια μικροσκοπική σημαία κρυμμένη πάνω από την καταχώρηση: #, fuzzy. Μια ασαφής μετάφραση είναι ο τρόπος του gettext να πει «αυτή η μετάφραση μπορεί να είναι λανθασμένη, οπότε μην την εμπιστεύεστε ακόμα». Και το σημαντικότερο, το WordPress αρνείται να εμφανίσει ασαφείς συμβολοσειρές στον ζωντανό ιστότοπο, επιστρέφοντας αντ' αυτού στα πρωτότυπα Αγγλικά. Αυτή είναι μία από τις πιο παρεξηγημένες αιτίες του προβλήματος «η μετάφρασή μου δεν εμφανίζεται».

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

Τι Σημαίνει Πραγματικά η Σημαία Ασαφούς Μετάφρασης;

Η σημαία ασαφούς μετάφρασης είναι ένας δείκτης που προσθέτει το gettext σε μια καταχώρηση μετάφρασης για να υποδείξει ότι η μετάφραση είναι αβέβαιη και χρειάζεται ανθρώπινη αναθεώρηση. Στο αρχείο .po εμφανίζεται ως ένα ειδικό σχόλιο ακριβώς πάνω από τη συμβολοσειρά.

#: includes/cart.php:88
#, fuzzy
msgid "Add to cart"
msgstr "Im Warenkorb"

Αυτή η γραμμή #, fuzzy ενημερώνει κάθε εργαλείο που είναι συμβατό με gettext, συμπεριλαμβανομένου του WordPress, ότι το msgstr που βρίσκεται κάτω από αυτήν είναι προσωρινό. Η μετάφραση υπάρχει, αλλά το gettext δεν την θεωρεί επιβεβαιωμένη.

Γιατί το WordPress Παραβλέπει τις Ασαφείς Συμβολοσειρές

Να η συμπεριφορά που εκπλήσσει τους πάντες. Όταν το WordPress μεταγλωττίζει ή διαβάζει ένα αρχείο .mo, αντιμετωπίζει τις ασαφείς καταχωρήσεις ως αμετάφραστες. Η συμβολοσειρά είναι τεχνικά παρούσα στο αρχείο, αλλά το WordPress την αγνοεί εσκεμμένα και εμφανίζει αντ' αυτού το αρχικό msgid.

Έτσι, από τη δική σας οπτική, η μετάφραση είναι «έτοιμη», είναι εκεί στο αρχείο. Αλλά από την οπτική του WordPress, αυτή η συμβολοσειρά δεν έχει αξιόπιστη μετάφραση, οπότε αποδίδει την αγγλική πηγή. Αυτός είναι ακριβώς ο λόγος για τον οποίο ένας κατάλογος που φαίνεται ολοκληρωμένος μπορεί ακόμα να εμφανίζει αμετάφραστο κείμενο στο frontend.

Αυτός ο σχεδιασμός είναι σκόπιμος και, για να είμαστε δίκαιοι, λογικός. Ο όλος σκοπός της σημαίας ασαφούς μετάφρασης είναι να αποτρέψει την εμφάνιση μη επαληθευμένων, δυνητικά λανθασμένων μεταφράσεων. Φανταστείτε μια συμβολοσειρά που αρχικά έγραφε «Delete account» (Διαγραφή λογαριασμού) και αργότερα άλλαξε σε «Deactivate account» (Απενεργοποίηση λογαριασμού). Εάν το gettext διατηρούσε τυφλά την παλιά μετάφραση, οι χρήστες σας μπορεί να έβλεπαν ένα κουμπί με την ετικέτα «Delete account» που στην πραγματικότητα απλά απενεργοποιεί, μια επικίνδυνη αναντιστοιχία. Κρύβοντας τις ασαφείς συμβολοσειρές, το gettext αναγκάζει έναν άνθρωπο να επιβεβαιώσει ότι η μετάφραση εξακολουθεί να ταιριάζει με τη νέα σημασία προτού φτάσει σε οποιονδήποτε. Η σημαία είναι ένας μηχανισμός ασφαλείας, όχι ένα σφάλμα.

Γιατί Εμφανίζονται Συνέχεια οι Σημαίες Ασαφούς Μετάφρασης;

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

Η Αρχική Συμβολοσειρά Άλλαξε

Η πιο συνηθισμένη αιτία είναι μια ενημέρωση της πηγής. Φανταστείτε ότι ο προγραμματιστής αλλάζει μια συμβολοσειρά στην επόμενη έκδοση του plugin από «Add to cart» σε «Add to basket». Όταν συγχωνεύετε το νέο πρότυπο στην υπάρχουσα μετάφρασή σας, το gettext διαπιστώνει ότι η πηγή δεν ταιριάζει πλέον με αυτό που είχατε αρχικά μεταφράσει. Αντί να πετάξει την παλιά σας μετάφραση, την κρατά, αλλά την επισημαίνει ως ασαφή, λέγοντας ουσιαστικά: «τα Αγγλικά άλλαξαν, οπότε παρακαλώ ελέγξτε ξανά αν η μετάφρασή σας εξακολουθεί να ταιριάζει».

Αυτόματη Αντιστοίχιση από τη Μεταφραστική Μνήμη και το msgmerge

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

# Merge a new template into an existing translation.
# Similar-but-changed strings get marked #, fuzzy automatically.
msgmerge --update awesome-plugin-de_DE.po awesome-plugin.pot

Η Μεταφραστική Μνήμη σε επιτραπέζιους επεξεργαστές συμπεριφέρεται με τον ίδιο τρόπο: όταν συμπληρώνει αυτόματα μια πρόταση από μια σχεδόν-αντιστοιχία, επισημαίνει το αποτέλεσμα ως ασαφές ώστε να θυμάστε να το επαληθεύσετε. Και στις δύο περιπτώσεις, η σημαία κάνει τη δουλειά της. Το πρόβλημα είναι μόνο ότι οι ασαφείς καταχωρήσεις παραμένουν χωρίς αναθεώρηση και το WordPress τις κρύβει αθόρυβα.

Υπάρχει μια τρίτη, πιο ύπουλη πηγή που αξίζει να γνωρίζετε: τα εργαλεία αντιγραφής-επικόλλησης και μαζικής εισαγωγής. Ορισμένες πλατφόρμες μετάφρασης και σενάρια εισαγωγής επισημαίνουν κάθε καταχώρηση ως ασαφή από προεπιλογή ως ένα συντηρητικό μέτρο, αναμένοντας από έναν άνθρωπο να επιβεβαιώσει κάθε μία αργότερα. Εάν εισάγετε έναν κατάλογο από άλλο σύστημα και διαπιστώσετε ότι κάθε συμβολοσειρά είναι ξαφνικά ασαφής, αυτός είναι συνήθως ο λόγος. Οι μεταφράσεις μπορεί να είναι απολύτως καλές, αλλά μέχρι να εκκαθαριστούν οι σημαίες, καμία από αυτές δεν θα εμφανιστεί στον ιστότοπό σας. Γνωρίζοντας την πηγή των σημαιών σας λέει αν χρειάζεται πραγματικά να αναθεωρήσετε κάθε καταχώρηση ή αν μια μαζική εκκαθάριση είναι ασφαλής.

Πώς Βρίσκετε και Διορθώνετε τις Ασαφείς Συμβολοσειρές;

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

Διόρθωση Ασαφών Συμβολοσειρών στο Poedit

Το Poedit το κάνει το πιο εύκολο. Ανοίξτε το αρχείο .po και χρησιμοποιήστε τα στοιχεία ελέγχου αναζήτησης και φίλτρου για να εμφανίσετε μόνο τις ασαφείς καταχωρήσεις, οι οποίες είναι χρωματικά κωδικοποιημένες (συνήθως πορτοκαλί) ώστε να ξεχωρίζουν αμέσως. Κάντε κλικ σε κάθε μία, επιβεβαιώστε ή διορθώστε τη μετάφραση, και μετά απενεργοποιήστε την ασαφή κατάσταση με τη συντόμευση πληκτρολογίου (Επεξεργασία και μετά «Translation is Fuzzy», ή τη συντόμευση που εμφανίζεται στο μενού). Όταν αποθηκεύσετε, το Poedit μεταγλωττίζει ξανά ένα καθαρό .mo και οι πλέον επιβεβαιωμένες συμβολοσειρές θα εμφανίζονται στον ιστότοπό σας. Εάν είστε νέοι σε αυτόν τον επεξεργαστή, ο πλήρης οδηγός Poedit καλύπτει λεπτομερώς τη ροή εργασίας φιλτραρίσματος και αναθεώρησης.

Διόρθωση Ασαφών Συμβολοσειρών στη Γραμμή Εντολών

Για αυτοματοποίηση ή μεγάλους καταλόγους, η γραμμή εντολών είναι ταχύτερη. Μπορείτε να μετρήσετε τις ασαφείς καταχωρήσεις και, αφού τις επαληθεύσετε μαζικά, να αφαιρέσετε τις σημαίες ώστε το WordPress να τις φορτώσει.

# Count how many fuzzy strings remain
msgattrib --only-fuzzy --no-obsolete awesome-plugin-de_DE.po | grep -c "msgid"

# Clear all fuzzy flags (only after you trust the translations)
msgattrib --clear-fuzzy --empty awesome-plugin-de_DE.po \
  --output-file=awesome-plugin-de_DE.po

Να είστε προσεκτικοί με τη μαζική εκκαθάριση. Η αφαίρεση των σημαιών ασαφούς μετάφρασης χωρίς αναθεώρηση των μεταφράσεων ακυρώνει τον σκοπό της σημαίας και μπορεί να παραδώσει πραγματικά λανθασμένο κείμενο στους χρήστες σας. Χρησιμοποιήστε την προσέγγιση της γραμμής εντολών όταν εμπιστεύεστε την πηγή των μεταφράσεων και τη χειροκίνητη διαδρομή του Poedit όταν δεν την εμπιστεύεστε.

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

# Extract only the fuzzy entries for focused review
msgattrib --only-fuzzy --no-obsolete awesome-plugin-de_DE.po \
  --output-file=fuzzy-only.po

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

Αφού εκκαθαρίσετε τις σημαίες, πάντα να αποθηκεύετε ξανά ή να μεταγλωττίζετε ξανά το αρχείο .mo. Η ασαφής κατάσταση βρίσκεται στο .po, αλλά το WordPress διαβάζει το δυαδικό .mo, οπότε μέχρι να το αναδημιουργήσετε, το frontend σας θα συνεχίσει να εμφανίζει Αγγλικά παρόλο που το .po φαίνεται καθαρό. Το Poedit μεταγλωττίζει αυτόματα κατά την αποθήκευση. στη γραμμή εντολών εκτελείτε msgfmt awesome-plugin-de_DE.po -o awesome-plugin-de_DE.mo. Το να ξεχνάτε αυτό το τελικό βήμα μεταγλώττισης είναι ένας από τους πιο συνηθισμένους λόγους που ένας πρόσφατα εκκαθαρισμένος κατάλογος εξακολουθεί να μην εμφανίζεται – η μετάφραση είναι επιβεβαιωμένη στο αρχείο πηγής, αλλά το δυαδικό που φορτώνει ο ιστότοπος είναι παλιό.

Σημειώστε ότι οι ασαφείς καταχωρήσεις συχνά εμφανίζονται μαζί με πληθυντικές συμβολοσειρές, όπου ένα αλλαγμένο msgid_plural μπορεί να επισημάνει ολόκληρο το μπλοκ πληθυντικού ως ασαφές. Εάν το ασαφές σας ανεκτέλεστο έργο είναι βαρύ σε μετρήσεις και ποσότητες, ο οδηγός μας για Πληθυντικούς Gettext και σύνθετη πληθυντικοποίηση εξηγεί γιατί αυτές οι καταχωρήσεις είναι ιδιαίτερα εύθραυστες κατά τις συγχωνεύσεις.

Εκκαθάριση του Ασαφούς Ανεκτέλεστου Έργου σε Κλίμακα

Μια μοναδική ασαφής συμβολοσειρά είναι μια διόρθωση τριάντα δευτερολέπτων. Ένας κατάλογος με τετρακόσιες ασαφείς συμβολοσειρές μετά από μια σημαντική ενημέρωση plugin είναι ένα διαφορετικό πρόβλημα, και σε δώδεκα γλώσσες γίνεται ένα πραγματικό σημείο συμφόρησης. Ο πειρασμός να εκκαθαριστούν μαζικά οι σημαίες χωρίς αναθεώρηση είναι ακριβώς ο τρόπος με τον οποίο οι προβληματικές μεταφράσεις φτάνουν στην παραγωγή.

Μια πιο καθαρή λύση είναι η εκ νέου μετάφραση των ασαφών καταχωρήσεων αντί για την απλή επιβεβαίωση παλιών αντιστοιχιών. Όταν επεξεργάζεστε έναν κατάλογο μέσω του SimplePoTranslate, η AI με επίγνωση του πλαισίου παράγει μια τρέχουσα, επιβεβαιωμένη μετάφραση για κάθε αλλαγμένη συμβολοσειρά, οπότε δεν απλώς αφαιρείτε μια σημαία προειδοποίησης, αλλά αντικαθιστάτε αβέβαιες αντιστοιχίες με πραγματικές μεταφράσεις. Το Syntax Locking διατηρεί κάθε %s, %1$s, {count} και ετικέτα HTML ανέπαφη κατά τη διαδικασία, και το Smart Batching επεξεργάζεται μεγάλους καταλόγους μετά την ενημέρωση με μία κίνηση. Παίρνετε πίσω ένα καθαρό ZIP με .po, .mo, .json, .php και .xliff, χωρίς να παραμένει ασαφές ανεκτέλεστο έργο, έτοιμο για ανάπτυξη από το cloud.

Αξίζει να διακρίνουμε αυτό από το ευρύτερο ερώτημα γιατί οι μεταφράσεις αποτυγχάνουν να εμφανιστούν καθόλου. Οι σημαίες ασαφούς μετάφρασης είναι μια συγκεκριμένη αιτία, αλλά τα αρχεία .mo που λείπουν, τα λανθασμένα ονόματα αρχείων και οι αναντιστοιχίες τοπικών ρυθμίσεων προκαλούν το ίδιο σύμπτωμα. Για τον πλήρη διαγνωστικό κατάλογο, ανατρέξτε στον οδηγό αντιμετώπισης προβλημάτων για μεταφράσεις που δεν εμφανίζονται στο WordPress, ο οποίος αντιμετωπίζει τις ασαφείς συμβολοσειρές ως ένα στοιχείο σε μια μεγαλύτερη λίστα.

Έτοιμοι να εκκαθαρίσετε ολόκληρο ένα ασαφές ανεκτέλεστο έργο και να εμφανίσετε κάθε συμβολοσειρά στον ιστότοπό σας; Δοκιμάστε το SimplePoTranslate δωρεάν — δεν απαιτείται πιστωτική κάρτα. Η δωρεάν βαθμίδα μεταφράζει εκ νέου το αρχείο .po σας, αντικαθιστώντας αβέβαιες ασαφείς αντιστοιχίες με καθαρές, επιβεβαιωμένες μεταφράσεις.

Μοιραστείτε αυτό το άρθρο