- Redmi Watch 5 Lite - filléres fitneszfelügyelő
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Apple iPhone 15 Pro Max - Attack on Titan
- Apple iPhone 16 - ígéretek földje
- Honor Magic V5 - méret a kamera mögött
- Samsung Galaxy A56 - megbízható középszerűség
- Bivalyerős lett a Poco F6 és F6 Pro
- Hivatalos a OnePlus 13 startdátuma
- Nothing Phone (3) – tervezett kaotika
- Magyarországra jött az ultravékony S25 Edge
Ú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.
Új hozzászólás Aktív témák
- Azonnali fáradt gőzös kérdések órája
- Hardcore pizza és kenyér topik
- Redmi Watch 5 Lite - filléres fitneszfelügyelő
- Autós topik
- TCL LCD és LED TV-k
- Kormányok / autós szimulátorok topikja
- Kerékpárosok, bringások ide!
- Először égett le egy újságnál a GeForce RTX 5090
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Motoros topic
- További aktív témák...
- Asus G752VS Gamer laptop eladó!
- Makulátlan iPad Air 5 (M1 chip) 64GB Wi-Fi + Cellular, prémium kiegészítőkkel!
- DJI AVATA 2 Fly More Combo drón - 3 akku, garancia, FPV RC 3, sok tartozék
- szinte új iPhone 16 Plus 128GB white fehér független Apple 3 év garancia ajándék
- Samsung Galaxy A32 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Készpénzes / Utalásos Videokártya és Hardver felvásárlás! Személyesen vagy Postával!
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
- Telefon felvásárlás!! Xiaomi Redmi Note 13, Xiaomi Redmi Note 13 Pro, Xiaomi Redmi Note 13 Pro+
- Bomba ár! Dell Latitude E6520 - i5-2GEN I 6GB I 320GB I HDMI I 15,6" HD+ I W10 I Gari!
Állásajánlatok
Cég: FOTC
Város: Budapest