Wordpress téma, hogyan kell lefordítani más nyelvre
Ne figyeljen más nyelveken a fejlesztés a WordPress téma nagyon egyszerű, de ez egy rossz szokás, és ő azonnal elutasítja a WordPress felhasználói piacon, és az esetleges ezer dolláros bevételkiesést okoznak. Az első 10 ország, hogy keres a Google WordPress témák, csak egy angol nyelvű (USA), a másik - 9. Abban az időben írom ezt a cikket az adatbázisban WordPress téma a több mint 1500 minden volt 269 rá van írva, kész fordítást. Ez csak 18%. Megmutatom, hogyan teheti alá egyiket.
Ez hogy működik
A megoldás erre a problémára -, hogy visszatérjen-e a szövegbevitel segítségével az egyik a négy funkció WordPress, amelyek célja, hogy küldje el a fájlt, hogy a nyelv a szöveget. Amikor szöveges zárt ezeket a funkciókat, akkor létrehozhat egy fájlt, amely az összes fordítást, és ami viszont minden alkalommal a téma betöltésekor.
Íme három fájlátvitel. hogy az általunk használt:
- .pot (Portable Object Template) - a sablon, amely tartalmazza a linket a szöveg egyes sorai a téma, hogy le kell fordítani. A fájl nem tartalmaz fordítást. Ez egy egyszerű szöveges fájl.
- .po (Portable Object) - létrehozott .pot fájlt. po minden húrok és fordítások egy adott nyelvet. Ez is egy szöveges fájl, amely lehet szerkeszteni.
- .mo (Machine Object) - bináris változata a .po fájlt. Ha ön használ natív kód, a fájl használható sokkal gyorsabban, mint a szöveges változata.
1. lépés: a négy funkció
Mind a négy funkció használatához legalább egy érv - a kívánt szöveget lefordítani. funkciók:
__ () és _E ()
Ez a legegyszerűbb funkció átalakítására, amely tud nyújtani WordPress. Nézzünk egy példát az egyes funkciók:
Mindkét funkciók teszik ugyanezt. Jóváhagyása „ez egy post” ellenőrizzük jelenlétét a .mo fájlt, és visszaadja az eredményt.
__ () és _e () függvény csak egy érv, amit át kell adni - a szöveg fordításra. Az egyetlen különbség a két funkciót - a __ () kifejezés kell álljon a visszhang. Nézzünk egy példát, ahol __ () jobban működik, mint _E ():
Ahelyett továbbítja _content () függvény karakterlánc. használtuk __ (). fordítandó szöveget. Ha ehelyett a _e (). ahelyett, hogy továbbítja a szöveget the_content (). fordítását a szöveg jelenik meg a dokumentumban, ami okozhat mindenféle bajt.
Mi van, ha olyan helyzetben, amikor a szöveget, amit rajzolni lehet többes szám vagy egyedi, „X megjegyzések” a fenti példában? Ahelyett, hogy két különböző vonalak fordítandó szöveget, akkor azt mondják, hogy van egy része a szöveg, amelyre szüksége van a fordítás egységes és többes számban. A következő két példa a kimenet a felhasználó ugyanazt az eredményt:
_x () és _ex ()
Tegyük fel, hogy az Ön által fordított .pot fájlt, elhalad a „scroll”. Értelmezed, mint „egy darab csavart papír” vagy „lefelé görgetve az oldalon?” Akkor használja a helyi megmagyarázni, hogy miért kell fordítani. Ezek a funkciók kapsz ezt a lehetőséget, mint a második, kötelező attribútum, amely megköveteli egy rövid leírást a kifejezések vagy szavak. Nézd meg egy példát:
korszerű technikák
Tegyük fel, hogy van egy helyzet, amikor a szöveget, amit szeretne generálni, amely egy szöveg, amely az eredménye egy funkció vagy változó értékét valahol benne. Érdemes lehet írni, valahogy így:
Amikor létrehozza a .pot fájl Poedit figyelmen kívül hagyja, mert nem akarja, hogy egy változót egy mondatban. A .pot fájl hozzáadva Kiválasztotta a $ szín felhasználásával. de amikor a keresés lesz a fordítás, amikor a szkript lefut, akkor kiegyenlített a húr Kiválasztotta a kék témát. amelyek nem találhatók meg. Ez az, amit teszünk:
Így a script képes lesz fogadni a pénzt, de ez mára nehéz lefordítani, mivel a kínálat van törve. Ez az ajánlat nem is lehet több nyelvre lefordított, amelyek nagyon eltérő szintaxis, például a német, ahol a szó fordítása „kiválasztott”, hogy a végén a mondat. Meg kell magyarázni, hogy ez két külön sor szöveget - egy része, és hogy a „téma” lehet fordítani a „téma”.
Megoldás - hogy egyetlen sort. Itt hasznos lesz a printf () vagy sprintf (). Nézzük meg, mi kell kinéznie kód:
Ez nem csak megoldani a problémát, de ez sokkal inkább óvatos végrehajtás, és csupán egy sor kód. Az első argumentum printf () vagy a sprintf () - karakterlánc kimenet, amely magában foglalja a legalább egy töltőanyagot, ebben az esetben a% s (ami azt jelenti, típusa szerint „string”), és az összes többi érv - változókat kell beilleszteni a kiindulási vonal .
Sok különböző töltőanyagok, amelynek segítségével a húr, megtalálja egy teljes lista a sprintf a PHP kézikönyv. Vegye figyelembe, hogy a különbség a printf () és az sprintf (), mint a különbség _e () és a __ (), ill.
2. lépés: Bevezetés a POEdit
Most, hogy megfelelően megjelölte az összes kimenetet a téma szöveget, meg kell gyűjteni az információkat egy .pot fájlt. POEdit - egy fantasztikus program, amely lehetővé teszi, hogy a .pot fájlt, és azt is előírja egy könnyen használható GUI, amelyeket fel lehet használni, hogy elkészítette a tagjai által elkészített, és ami még fontosabb, azt is .mo fájlokat.
Először is, le kell töltenie POEdit. amely megtalálható a Windows, Mac és Linux ezen a linken.
Amikor POEdit telepítve, akkor létrehozhatunk .pot fájlt. Ehhez menj a Fájl → Új katalógus. Látni fogja, egy párbeszédablak, ahol meg kell adnia az alapvető adatokat. A „Project Info” fül - a projekt nevét és a nyelvet / országot. Azt is meg a „többes számú alakok” rész a következő:
Többes számú alakokra. nplurals = 2; ! Plural = n = 1;
A „Paths” lapon adja meg az útvonalat, ahol a fájlok találhatók kapcsolatban az a hely, ahol fekszik etot.pot fájlt. Például, ha a hely egy .pot fájlt a gyökérkönyvtárban a téma adja. (Dot). Ha azt szeretnénk, .pot fájlt a mappában „nyelv” téma a gyökérkönyvtárban írja .. (két pont).
Most meg kell mondani POEdit. Mik a legfontosabb szavakat kell keresni, amikor olvas a fájlokat. Írja be az alábbi:
Ha azt szeretnénk, hogy minimális támogatási nemzetközi átutalás, akkor adja meg .pot fájlt, valamint a téma és hagyja azt, hogy, de ha lehet lefordítani a téma egy másik nyelvre magát, meg tudja adni a saját téma egy fordítási leírtak 3. lépésben.
3. lépés: Transzfer és létrehozása a .po fájl
- Listája húrok lefordítani.
- Jelenlegi lefordítható szálakat.
- A sortöréseket.
- Egyes és többes számú az aktuális sor.
- Fülek közötti váltás egyes és többes számban.
- A fordítást.
Miután elmentettük alapértelmezés POEdit automatikusan létrehoz .mo fájl mellett a .po fájlt. Javasoljuk, hogy mind a három fájlokat a téma, hogy az emberek, hogy saját fordítás és egyszerűen szerkesztheti a meglévőket.
4. lépés: WordPress beállítás
Foglaljuk össze, amit eddig tettünk. Azt mondta, a szöveg WordPress, szeretné elérhetővé tenni a transzfer, akkor már használt POEdit, hogy összegyűjti a húrok, és helyezd el őket a .pot fájlt. ami lehet fordítani a fájlok .po és .mo. Ezek a fájlok ezután szerepel a téma fájlokat.
Az utolsó lépés - ez a csomag a téma, telepíteni, és érteni WordPress, .mo fájl melyik nyelvet szeretné használni. Ez egy nagyon egyszerű eljárás, ahol éri a wp-config.php fájlt a gyökérkönyvtárban a WordPress.
A fájl már tartalmaznia kell meghatározni ( „WPLANG”, „”); - de ha nem, akkor adjunk hozzá. Csak azt kell adni a nyelvi és hely kód határozza meg. Ha lefordítjuk a témát orosz, akkor a következő:
A kész! Ne felejtsük el, hogy add meg a .pot fájlt a téma, és ha lehet lefordítani a témát egy másik nyelvre, is tagjai által elkészített és .mo fájlokat.
Forrás: WP.tutsplus.com
Jó napot! Van egy ilyen probléma: a téma Adava szerzett, a wp-config.php fájlt, nincs vonal határozza meg (# „WPLANG #” # '#'); Hozzátette után határozzák meg (# 'WP_DEBUG #', true); A feltöltött fájlok .po és .mo a téma könyvtárban. Lefordítva, de nem minden. Bár vannak tagjai által elkészített fordítási fájl. Amit tettem, nem igaz?
Ő fordította a sablont, és létre ru_Ru.po és ru_Ru.mo. Dobtam őket a sablon könyvtárat a nyelv mappát / wp-content / languages / témák, átnevezés a nazvanieshablona-ru_Ru.po / .mo.
Hozzáadjuk a wp-config meghatározzák string ( 'WPLANG', 'ru_RU');
Számos lehetőség hozzá functions.php sablon.
Semmi sem segített. Mit kell tenni?
És van egy mappát a könyvtárban közvetlenül a témában? / Wp-content / themes / vashatema / nyelvet. Általában meg kell tenni a lokalizációs fájlt, mert abban a mappában, az Ön által megadott - a tárolt lokalizáció a rendszeres típusú twentyfifteen stb
Mindent elkövetnek az Ön utasításait. Semmi sem történt.
Keresztül történik Poedit, minden mozgott, elment a tárhely (RU-Központ)
File Manager és a hozzáadott .mo fájl frissített honlapon, mind jól, semmi
át. Továbbá, .po és hozzátette, nem működött. Prompt hogyan helyesen
lefordítani, mert a mindent megtett az utasítások szerint, és nem működött
:(
A fájl bekerül a mappát a téma, a gyökér.
A mentés után a fordítást a kimeneti kell 2 fájlokat. po és .mo. Abban, amit kell, hogy egy adott véget a címet, így az orosz nyelvi fájlokat kell nevezni, és ru_RU.po ru_RU.mo. Ezután töltse igényüket nem a gyökér, a tárgy és nyelv mappát a gyökér a szálakat. Ha ez a mappa nem létezik, akkor létre kell hoznia.
Köszönöm a választ!
Igen, igen, ezek a fájlok mindketten fájl dobtam át a fájlkezelő a tárhely, / themes / témám / nyelv. Mindkét fájlt egyesült ott, ott már .pot fájlt vele rájöttem, hogy nem kell csinálni semmit. Frissítette a témát, még mindig nem fordította le, mondja meg, mi a probléma? Nem vagyok különösebben különleges ebben a helyzetben, én megtettem a leckét, de semmi sem történt. Fordítás és kiderült, minden kiderült. Kinyitottam egyszerre POEdit fordította néhány tucat szavakat és kifejezéseket. Olvastam az interneten, hogy mindezek után, meg kell találni a téma úgy tűnik functions.php be ezt a sort, hogy hívja load_theme_textdomain (domain-name) keresztül Jegyzettömb, hogy a téma tudott csatlakozni ehhez a nyelv, nem? Tehát nem próbáltam meg, mert nem értettem pontosan, hol és miért. Ha csak ezt a két fájlt nyelvek mappája a téma is, ismétlem, semmi nem történik, minden kifejezések a téma angol nyelvű, de a téma kész fordítást, úgy találtam, hogy csak a webhely egy linket themeforest :)
Segítsen, kérlek, nagyon szeretném, ha az oroszul érzi magát, mert a fordítás készen van, de nyilvánvaló, hogy valamit valahol össze kell kötni!
Semmi más nem szükséges a funkciókba írni. Győződjön meg róla, hogy a wp-config.php fájlban a helyes nyelv azonosítója meg van határozva a webhely definíciójában ('WPLANG', 'ru_RU');