- sziku69: Szólánc.
- gban: Ingyen kellene, de tegnapra
- sziku69: Fűzzük össze a szavakat :)
- Imilenni: Egy kis depi (szösszenet inkább), remélem elfér itt :) 3#
- Geri Bátyó: Agglegénykonyha 5 – Edények és konyhai eszközök
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- aquark: A ló túloldalán (Intel-AMD szivatás)
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
Új hozzászólás Aktív témák
-
modder
aktív tag
Háttő
Én most hirtelen kétfélé többnyelvűséget tudok megkülönböztetni:
1) Az oldalon megjelenő statikus szövegek: navigáció, regisztráció, miegyéb. Itt általában olyan megoldás van (azt hiszem ilyen a Zend i18n modul is), hogy megadsz egy nyelvi fájlt, aminek minden sorában van egy angol szöveg - másnyelvű szöveg pár. Visszaadhat akár tömböt is (Kohana pl. ezt csinálja)return array(
'Welcome :user' => 'Isten hozott :user'
)majd kódban a szövegeket speciális függvénnyel íratod ki, ami éppen aktuális nyelvi beállításoknak megfelelő nyelven írja ki a szöveget:
echo __('Welcome :user' , array(':user' => 'Laci'));
2) Dinamikus szövegek: blogpostok, cikkek, amiket adatbázisban tárolsz. Ez a bonyolultabb téma. Azért is, mert egy adatbázis rekord nem csak szövegeket, hanem számokat, kapcsolatokat is tárolhat, amit nem akarsz redundánsan tárolni a többnyelvűség miatt. Ezek a megközelítések jutnak eszembe:
a) van egy entitás táblád, és van több entitás_nyelv táblád. Az entitás táblába beleteszed a nyelvfüggetlen adatokat:
mikor készült a cikk, ki a szerzője, mikor módosították, milyen kategória...Az entitás_nyelv táblába pedig beleteszel egy kapcsolatot az entitás táblára, és a nyelvfüggő dolgokat ebbe teszed: maga a cikk szövege, cím
szerintem ez elég tiszta megoldásb) ugyanabban a táblában tárolod egy entitás minden fordítására vonatkozó adatot, és beteszel egy nyelv mezőt. Ez azért jó, mert nem kell a kapcsolatokkal foglalkozni, viszont a nyelvfüggetlen adatokat valszeg redundánsan tárolod, és konzisztensen kell tartani, amikor valami frissül
c) brutálisan általános és lassú megoldás, de cachelhető kódból, ezt már egyszer megcsináltam
Van egy nyelv táblám, aminek mezői [ id, nyelv, tablanev, tablamezo, tablaPK , szoveg ]
gondolom ebből látszik, hogy mire megy ki a játék. Az összes entitásom összes szöveges mezőjét az összes nyelvre egy rekordként tárolom. Működő megoldás, nagyon dinamikus, nem kell meglévő adatbázisstruktúrát megváltoztatni, és ha cachelsz szöveget pl. APC-be, akkor még elfogadható sebességű is lehet. Ha nem cachelsz, akkor viszont túl sok adatbázis lekérdezés. -
vakondka
őstag
Szia,
Minden nyelvnek csinálj egy mappát (vagy csak 1-1 fájlt) amiben a nyelvi definíciók vannak állandókkal. és az oldaladon nyelvváltásnál töltsd be a megfelelő nyelvi fájl.
pl:
magyar.php:define('HEADER_TITLE_CREATE_ACCOUNT', 'Regisztráció');
define('HEADER_TITLE_MY_ACCOUNT', 'Személyes beállítások');
define('HEADER_TITLE_CART_CONTENTS', 'Kosár tartalma');
define('HEADER_TITLE_CHECKOUT', 'Megrendelés');
define('HEADER_TITLE_TOP', 'Főoldal');
define('HEADER_TITLE_CATALOG', 'Katalógus');
define('HEADER_TITLE_LOGOFF', 'Kijelentkezés');
define('HEADER_TITLE_LOGIN', 'Bejelentkezés');english.php
define('HEADER_TITLE_CREATE_ACCOUNT', 'Create an Account');
define('HEADER_TITLE_MY_ACCOUNT', 'My Account');
define('HEADER_TITLE_CART_CONTENTS', 'Cart Contents');
define('HEADER_TITLE_CHECKOUT', 'Checkout');
define('HEADER_TITLE_TOP', 'Top');
define('HEADER_TITLE_CATALOG', 'Catalog');
define('HEADER_TITLE_LOGOFF', 'Log Off');
define('HEADER_TITLE_LOGIN', 'Log In');Így amikor ki akarsz írni valamit akkor ezeket használod és a megfelelő nyelven fog megjelenni.
echo HEADER_TITLE_CREATE_ACCOUNT;
Van persze sok más megoldás is, de talán ez a legegyszerűbb.
Új hozzászólás Aktív témák
Hirdetés
- OLED TV topic
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- alza vélemények - tapasztalatok
- World of Tanks - MMO
- AMD Navi Radeon™ RX 9xxx sorozat
- Elektromos autók - motorok
- Netfone
- Vírusirtó topic
- Apple iPhone 16 - ígéretek földje
- További aktív témák...
- Microsoft Surface Pro 7+ Érintős Szétszedhető Laptop Tablet 12,3" -60% i5-1135G7 16/256 Retina
- Iphone 13 Red 128GB Független
- Asztali PC , i7 12700e , RTX 3060 12GB , 32GB RAM , 512GB NVME , 1TB HDD
- Gainward GeForce RTX 4070 12GB DDR6X Panther GARI: 2026.07.26.
- GIGABYTE Z790 UD Alaplap GIGA: 2026.07.26.
- Azonnali készpénzes AMD Ryzen 1xxx 2xxx 3xxx 5xxx processzor felvásárlás személyesen / csomagküldés
- BESZÁMÍTÁS! Sony PlayStation 5 Slim 1TB SSD lemezes konzol garanciával hibátlan működéssel
- GYÖNYÖRŰ iPhone 13 128GB Starlight- 1 ÉV GARANCIA, Kártyafüggetlen,MS3435
- ÁRCSÖKKENTÉS Menő retró konfig: Q9550, Gigabyte P43, 4GB RAM, ASUS GT730
- ÁRGARANCIA!Épített KomPhone i5 13400F 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest