FunkciókBővítményÁrazásForrások
Nyelv módosítása
ForrásokHogyan javítsuk a homályos fordításokat a WordPress .po fájlokban

Hogyan javítsuk a homályos fordításokat a WordPress .po fájlokban

SimplePoTranslate Team2026. május 11.
Hogyan javítsuk a homályos fordításokat a WordPress .po fájlokban

Lefordított minden karakterláncot. Mentette a fájlt, feltöltötte a .mo fájlt, és frissítette a webhelyét. És mégis, néhány címke továbbra is makacsul angolul jelenik meg. Megnyitja a .po fájlt, megkeresi a karakterláncot, és ott van, tökéletesen lefordítva. Akkor miért hagyja figyelmen kívül a WordPress?

A válasz szinte mindig egy apró jelző, amely a bejegyzés felett rejtőzik: #, fuzzy. A homályos fordítás a gettext kifejezésmódja arra, hogy "ez a fordítás hibás lehet, ezért még ne bízzon benne". És ami kritikus, a WordPress megtagadja a homályos karakterláncok megjelenítését az élő webhelyen, helyette az eredeti angolra vált vissza. Ez az egyik leginkább félreértett oka annak a problémának, hogy "nem jelenik meg a fordításom".

Ez az útmutató pontosan elmagyarázza, mit jelent a homályos fordítás jelzője, miért jelenik meg folyamatosan a katalógusaiban, és hogyan találhatja meg és törölheti a homályos karakterláncokat a Poeditben, parancssorból, és nagy méretben egy teljes hátralék esetén. Amint megérti a mechanizmust, eltűnik a hiányzó fordítások rejtélye.

Mit is jelent valójában a Fuzzy jelző?

A fuzzy jelző egy marker, amelyet a gettext hozzáad egy fordítási bejegyzéshez, jelezve, hogy a fordítás bizonytalan és emberi felülvizsgálatra szorul. A nyers .po fájlban speciális megjegyzésként jelenik meg közvetlenül a karakterlánc felett.

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

Ez a #, fuzzy sor minden gettext-kompatibilis eszköznek, beleértve a WordPress-t is, azt jelzi, hogy az alatta lévő msgstr ideiglenes. A fordítás létezik, de a gettext nem tekinti megerősítettnek.

Miért hagyja figyelmen kívül a WordPress a homályos karakterláncokat?

Ez az a viselkedés, ami mindenkit meglep. Amikor a WordPress lefordít vagy beolvas egy .mo fájlt, a homályos bejegyzéseket lefordítatlanként kezeli. A karakterlánc technikailag jelen van a fájlban, de a WordPress szándékosan figyelmen kívül hagyja, és ehelyett az eredeti msgid-t mutatja.

Tehát az Ön szemszögéből a fordítás "elkészült", ott van a fájlban. De a WordPress szemszögéből ez a karakterlánc nem rendelkezik megbízható fordítással, ezért az angol forrást jeleníti meg. Pontosan ezért fordul elő, hogy egy késznek tűnő katalógus továbbra is lefordítatlan szöveget jelenít meg a frontendben.

Ez a tervezés szándékos és, őszintén szólva, értelmes. A fuzzy jelző célja, hogy megakadályozza a nem ellenőrzött, potenciálisan hibás fordítások csendes élesítését. Képzeljen el egy karakterláncot, amely eredetileg "Delete account" volt, majd később "Deactivate account" lett. Ha a gettext vakon megtartotta volna a régi fordítást, a felhasználók egy "Delete account" feliratú gombot láthatnának, amely valójában csak inaktiválja a fiókot – ez veszélyes eltérés. A homályos karakterláncok elrejtésével a gettext arra kényszerít egy embert, hogy megerősítse, a fordítás továbbra is megfelel az új jelentésnek, mielőtt bárkihez is eljutna. A jelző egy biztonsági mechanizmus, nem hiba.

Miért jelennek meg folyamatosan a Fuzzy jelzők?

A fuzzy jelzők nem véletlenszerűek. Két fő helyzetben automatikusan generálja őket a gettext eszköztára, és mindkettő megértése segít megelőzni őket.

Megváltozott a forrás karakterlánc

A leggyakoribb ok egy forrásfrissítés. Képzelje el, hogy a fejlesztő a következő plugin verzióban megváltoztatja egy karakterláncot, például "Add to cart" helyett "Add to basket" lesz. Amikor egyesíti az új sablont a meglévő fordításával, a gettext látja, hogy a forrás már nem egyezik azzal, amit eredetileg lefordított. Ahelyett, hogy kidobná a régi fordítást, megtartja, de fuzzy-nak jelöli, lényegében azt mondva: "az angol megváltozott, ezért ellenőrizze újra, hogy a fordítása továbbra is illeszkedik-e".

Automatikus egyeztetés fordítási memóriával és msgmerge-vel

A második ok a homályos egyeztetés egy egyesítés során. Az msgmerge eszköz frissíti a régi fordítási fájlt egy új sablonhoz képest, és amikor olyan forrás karakterláncot talál, amely hasonló, de nem azonos egy korábbival, átmásolja a régi fordítást és fuzzy-nak jelöli.

# 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

Az asztali szerkesztőkben lévő fordítási memória (Translation Memory) ugyanígy viselkedik: amikor automatikusan kitölt egy javaslatot egy közeli egyezésből, fuzzy-nak jelöli az eredményt, hogy emlékezzen a ellenőrzésre. Mindkét esetben a jelző teszi a dolgát. A probléma csak az, hogy a fuzzy bejegyzések felülvizsgálat nélkül maradnak, és a WordPress csendesen elrejti őket.

Van egy harmadik, alattomosabb forrás is, amiről érdemes tudni: a másolás-beillesztés és a tömeges importálási eszközök. Néhány fordítási platform és importálási szkript alapértelmezés szerint fuzzy-nak jelöl minden bejegyzést óvatos intézkedésként, elvárva, hogy egy ember utólag megerősítse mindegyiket. Ha egy másik rendszerből importál egy katalógust, és azt tapasztalja, hogy hirtelen minden egyes karakterlánc fuzzy, akkor általában ez az oka. A fordítások lehetnek teljesen rendben, de amíg a jelzőket nem törlik, addig egyik sem jelenik meg az Ön webhelyén. A jelzők forrásának ismerete megmondja, hogy valóban át kell-e tekintenie minden bejegyzést, vagy biztonságos-e egy magabiztos tömeges törlés.

Hogyan találhatja meg és javíthatja a homályos karakterláncokat?

A homályos karakterláncok törlése azt jelenti, hogy áttekinti mindegyiket, és miután megerősíti, hogy a fordítás helyes, eltávolítja a jelzőt. Három praktikus módja van ennek, a feladat méretétől függően.

Homályos karakterláncok javítása a Poeditben

A Poedit teszi ezt a legkönnyebbé. Nyissa meg a .po fájlt, és használja a kereső és szűrő vezérlőket, hogy csak a fuzzy bejegyzéseket jelenítse meg; ezek színkóddal (általában narancssárgával) vannak jelölve, így azonnal szembetűnőek. Kattintson mindegyikre, erősítse meg vagy javítsa ki a fordítást, majd kapcsolja ki a fuzzy állapotot a billentyűparancs segítségével (Szerkesztés, majd "A fordítás fuzzy", vagy a menüben látható parancsikon). Mentéskor a Poedit újrafordít egy tiszta .mo fájlt, és a most már megerősített karakterláncok megjelennek az Ön webhelyén. Ha új ebben a szerkesztőben, a teljes Poedit útmutató részletesen bemutatja a szűrési és felülvizsgálati munkafolyamatot.

Homályos karakterláncok javítása parancssorból

Automatizálás vagy nagy katalógusok esetén a parancssor gyorsabb. Megszámolhatja a fuzzy bejegyzéseket, és miután tömegesen ellenőrizte őket, eltávolíthatja a jelzőket, így a WordPress betölti őket.

# 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

Legyen óvatos a tömeges törléssel. A fuzzy jelzők eltávolítása a fordítások felülvizsgálata nélkül meghiúsítja a jelző célját, és valóban hibás szöveget küldhet a felhasználóknak. Használja a parancssori megközelítést, ha megbízik a fordítások forrásában, és a kézi Poedit útvonalat, ha nem.

Biztonságos középutat jelent, ha a fuzzy karakterláncokat külön fájlba exportálja, csak azokat tekinti át, majd visszaegyesíti őket. Ez érintetlenül hagyja a megerősített fordításokat, miközben Ön csak azokra a bejegyzésekre összpontosít, amelyek valóban figyelmet igényelnek.

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

Ötven izolált karakterlánc áttekintése sokkal kevésbé hibára hajlamos, mint egy ezer soros katalógus görgetése narancssárga sorok után kutatva, és tiszta nyilvántartást kap arról, hogy pontosan mi változott az utolsó frissítésben.

A jelzők törlése után mindig mentse újra vagy fordítsa újra a .mo fájlt. A fuzzy állapot a .po fájlban él, de a WordPress a bináris .mo fájlt olvassa, így amíg nem generálja újra, addig a frontend továbbra is angolul fog megjelenni, még akkor is, ha a .po tisztának tűnik. A Poedit automatikusan újrafordítja mentéskor; parancssorból a msgfmt awesome-plugin-de_DE.po -o awesome-plugin-de_DE.mo parancsot futtatja. Ennek az utolsó fordítási lépésnek az elfelejtése az egyik leggyakoribb oka annak, hogy egy frissen "fuzzytlanított" katalógus továbbra sem jelenik meg; a fordítás megerősített a forrásfájlban, de a bináris fájl, amelyet a webhely ténylegesen betölt, elavult.

Megjegyzendő, hogy a fuzzy bejegyzések gyakran megjelennek többes számú karakterláncok mellett, ahol egy megváltozott msgid_plural az egész többes számú blokkot fuzzy-nak jelölheti. Ha a fuzzy hátralék sok számlálást és mennyiséget tartalmaz, a Gettext többes számok és komplex többes számképzés című útmutatónk elmagyarázza, miért különösen sérülékenyek ezek a bejegyzések az egyesítések során.

A Fuzzy hátralék tömeges törlése

Egyetlen fuzzy karakterlánc egy harminc másodperces javítás. Egy négyszáz fuzzy karakterláncot tartalmazó katalógus egy jelentős pluginfrissítés után már más probléma, és tucatnyi nyelven igazi szűk keresztmetszetté válik. Az a kísértés, hogy tömegesen töröljük a jelzőket felülvizsgálat nélkül, pontosan az, ahogyan a hibás fordítások éles környezetbe kerülnek.

Tisztább megoldás, ha frissen újrafordítjuk a fuzzy bejegyzéseket, ahelyett, hogy elavult egyezéseket hagynánk jóvá. Amikor egy katalógust átfuttat a SimplePoTranslate-en, a környezettudatos AI aktuális, megerősített fordítást készít minden megváltozott karakterlánchoz, így nem csak egy figyelmeztető jelzőt távolít el, hanem bizonytalan egyezéseket cserél le valós fordításokra. A Szintaxis zárolás érintetlenül tartja az összes %s, %1$s, {count} és HTML taget a folyamat során, és az Intelligens kötegelés egy menetben dolgozza fel a nagy, frissítés utáni katalógusokat. Visszakap egy tiszta ZIP-et .po, .mo, .json, .php és .xliff fájlokkal, maradvány fuzzy hátralék nélkül, készen a felhőből történő telepítésre.

Érdemes megkülönböztetni ezt attól a tágabb kérdéstől, hogy miért nem jelennek meg egyáltalán a fordítások. A fuzzy jelzők egy specifikus okot jelentenek, de a hiányzó .mo fájlok, a rossz fájlnevek és a területi beállítások eltérései ugyanazt a tünetet okozzák. A teljes diagnosztikai ellenőrzőlistáért tekintse meg WordPress fordítások hibaelhárítási útmutatóját, amely a fuzzy karakterláncokat egy elemként kezeli egy nagyobb listában.

Készen áll arra, hogy törölje a teljes fuzzy hátralékot, és minden karakterláncot megjelenítsen a webhelyén? Próbálja ki ingyen a SimplePoTranslate-et — bankkártya nem szükséges. Az ingyenes szint frissen újrafordítja a .po fájlját, a bizonytalan fuzzy egyezéseket tiszta, megerősített fordításokkal helyettesítve.