Ket nyelvu weboldal tervezese eseten mi a legesszerubb modszer a ket nyelv tarolasara?
3 jutott eszembe,
1. Ugymond ketszer megcsinalni a weboldalt, es az egyik nyelvet kivalasztva az egyik oldal toltodik be, a masik nyelvet kivalasztva meg a masik. Kicsit putri modszernek tunik.
2. Adatbazisban tarolni a 2 nyelvet es a nyelvvalasztasnal csak egy kulcsszo donti el a szoveg lekerdezesnel, h az elso vagy a masodik nyelv tablajat hasznalja. Csak ez meg gondolom nagyon megterhelne az adatbazist ha sok szoveg lenne az oldalon.
3. Hasonloan a 2.-hoz itt is adatbazisban lennenek a szovegek, csak az oldal elso betoltesenel kerdezne le az oldalon levo osszes szoveget, es ezeket mondjuk valtozokba tarolnam, vagy hasonlo.
A profi cegek ezeket hogyan oldjak meg, ha nem is ezek kozul valamelyik?
PHP-s tapasztalatom van, ezért egy ilyen példával tudok előjönni.
Én a legésszerűbbnek azt találom,hogy:
Van egy hu.php és mondjuk egy en.php a magyar és angol nyelvnek.
Minden fix szöveget (például menüpontok neve, footer szöveg stb..) előre definiálunk.
define("OLDALCIME","Ez az oldal cime");
define("FOOTERSZOVEG","footer copyright");
És az adott részeken ahol más nyelven mást kell kiírni, nem a szöveget írod ki hanem ezt a "változót" amit fentebb definiáltál.
Értelemszerűen hu.php-ban magyarul írva a szöveg, en.php-ban angolul írva a szöveg.
Ellenőrzöd, hogy az oldal éppen milyen nyelvre van állítva, és aszerint meghívod a kívánt nyelvi fájlt.
Onnantól kezdve pedig hozzáférésed van a definiált "változóhoz".
Koszonom mindket valaszt. :)
A masodikhoz szolva, nem vettel eszre lassulast a sok lekerdezes miatt? Egyebkent enis azert ezt preferalnam, mert egyszeru modositani, es esetleg kesobb kiboviteni.
Erre vannak technikák és toolok. Fölösleges újra feltalálni a kereket.
A lényeg: kell egy default fallback nyelv, ezen jelenik meg minden string, ha nincs az adott nyelven fordítása, és kell egy eszköz, amivel a stringeket más nyelveken meg lehet adni.
Én a cakephp keretrendszert használom többnyire, annak profi többnyelv kezelése van. Használj keretrendszert fejlesztésre, sokkal gyorsabban tudsz dolgozni. Rá kell szánni az időt a megismerésére, de ez megtérül.
Ha usercontentet is mekk multilang kezelni, akkor kell tool a userednek, hogy az egyes nyelveken is fel tudja vinni a tartalmat.
A php gettext függvényének, i18-nak, *.po, *.mo fájlok készítésének nézz utána, ha plain php-t akarsz használni.
Ha ezt túl bonyolultnak találod, akkor adatbázisos megoldást válassz, vagy esetleg egy nyelvi fájlt, ami feltölt egy tömböt, pl. $szovegek["hu"]["oldalcim"] = "oldal címe"; $szovegek["en"]["oldalcim"] = "page title";
de ezt macerásabb karbantartani.
Adatbázis. Fentebb leírták az okokat.
Persze, mindenképp lassít. Ez olyan kérdés, hogy a cnc gép mozgó részei nem kopnak? Remélem érted mire gondolok.
Na most akad egy kis időm. Bocsi de sokat dolgozok.
Én úgy írtam meg, van egy language tábla, az oszlopai pedig
Id, alias, hu, en
Majd a nyelvi beállításnak megfelelően helyettesítem be. Természetesen lehet cachelni, ha valóban ritkán van módosítva.
Én a adatokat egy osztályban húzom le, és abból íratom ki a fordítást.
$this->translate('sitename');
Remélem tudtam segíteni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!