ugrás a tartalomhoz

Többnyelvű oldal technikai megvalósítása hogy érdemes?

sospetyo · 2003. Feb. 25. (K), 14.05
Sziasztok. Arra szeretnék tippeket kérni, vagy olyan helyeket, ahol ilyennel is foglalkoznak, hogy hogyan érdemes (technikailag) megvalósítani egy többnyelvű oldalt? MySQL? Sok kis file? Teljesen külön?
Kösz szépen!
 
2

Melyik a gyorsabb?

pint3r · 2006. Feb. 27. (H), 15.07
Sziasztok!

Felhoztam ezt a témát, mivel ide kapcsolódik szerintem a kérdésem.
Most fogok nekiállni egy hírdetéses oldalnak, aminek a profilból adódóan várhatóan elég jó látogatottsága lesz majd.

Az oldal többnyelvű lesz és ehhez kapcsolódik a kérdésem, mégpedig, hogy külön fájlban érdemes -e tárolni a nyelvi környezetet vagy pedig inkább mysql adatbázisban?

Eddig úgy csináltam, hogy a különböző nyelvekhez csináltam fájlokat, amikben define("_TITLE", "Cím"); formában tároltam a nyelvi környezetet és include()-al csatoltam azokhoz a php-khez amelyekben szükség volt az adott nyelvi környezetre.

Ez utóbbi eléggé átlátható, szerkeszthető ill. bővíthető.
Viszont azt nem tudom, hogy gyorsaság szempontjából melyiket érdemes használni. Eddig céges oldalaknál amiknek nincs nagy látogatottsága nem okozott gondot, érezhető lassulást a fenti megoldás.

Melyik lehet a gyorsabb?

A válaszokat előre is köszönöm!
4

Konstanst....

-zsolti- · 2006. Feb. 27. (H), 17.14
...ilyenre soha nem használnék. Annál az asszociatív tömb is gyorsabb:

<?php
$l = array (
  'title' => 'Cím', 
  'phone' => 'Telefonszám', 
  ...
)
Adatbázist szintén felesleges ilyenért macerálni, hiszen a nyelvi definíciók gondolom nem fognak naponta változni/bővülni, akkor pedig mehet fájlba is. Én szekcionált ini fájlokat használok, amit a parse_ini_file fordít tömbbe. Ez így nyilván valamivel lassabb, mintha rögtön tömbben lennének a szavak, viszont az ini fájlt szintaktikájából adódóan könnyebb szerkeszteni.

Amúgy minden modulhoz próbáld külön csoportosítani az arra jellemző szavakat, így mindig csak ahhoz kell hozzányúlni, ahol éppen használod. Ezen kívül pedig készíthetsz egy általános nyelvi fájlt, amibe a mindenhol használatos szavak kerülnek (ok, mehet, igen, nem).
6

Re: Konstanst....

pint3r · 2006. Feb. 27. (H), 22.01
Értem, várhatóan tényleg nem fog naponta változni. Igaz nem a változtathatóság, hanem inkább a gyorsaság ennél a feladatnál a lényeg.

Amiket eddig csináltam, azoknál én is hasonlóan oldottam meg, volt egy globális nyelvi fájl azoknak a szavaknak, amik sok helyen előfordultak és a modulok számára külön-külön. A felépítés tehát az lényegében ugyanaz, csak a tárolás módja más.

Utánanézek ennek a parse ini file féle megoldásnak, köszi!
3

Gettext

Török Gábor · 2006. Feb. 27. (H), 17.11
Többnyelvű felületeket szerintem gettexttel érdemes megvalósítani, mert:
  • kiforott, megbízható technika;
  • fordítást segítő külső segédeszközök hada áll rendelkezésre minden platformon;
  • konkrét megvalósítástól független versus egy PHP specifikus megoldás;
  • szótár szervezése szerintem nagyon hatékony is;
8

Re: Gettext

pint3r · 2006. Feb. 27. (H), 22.04
Megnézem ezt is, már csak arra lennék kíváncsi, hogy sebességben melyik megoldás a legjobb?
5

Admin felület?

janoszen · 2006. Feb. 27. (H), 18.50
Üdv!

Ha az adminfelületnek is többnyelvűnek kell lennie, akkor az a szívások királya, mert akkor a hibaüzeneteket, a loggokat és minden egyebet is több nyelven kell kezelni.
7

Re: Admin felület?

pint3r · 2006. Feb. 27. (H), 22.03
Igen, sajnos annak is többnyelvűnek kell lennie.
9

Én megoldásom

janoszen · 2007. Ápr. 3. (K), 14.48
Mivel rengeteg tartalmat kellett kétnyelvűsíteni, ezért kénytelen voltam adatbázist használni egy nemrég befejezett projektnél. A lényeg az, hogy van egy Local_Strings tábla, amelyikben minden kulcs-nyelv párra volt egy érték, ami adott esetben változókat is tartalmazhatott a sablonozáshoz. Egy joinnal le lehetett kérni a tartalmakat, úgyhogy nem volt nagyon nagy overhead.
1

Re: Többnyelvű oldal

Granc Róbert · 2003. Feb. 25. (K), 17.50
Mindegyikre (na jó, talán a MySQL-re kevésbé) van számos példa, én leggyakrabban a sok kis file megoldást láttam eddig, de ott van a PHP
GetText támogatása is.

Robi