ugrás a tartalomhoz

Nyelvválasztás módjai

Radon · 2015. Júl. 10. (P), 15.29
Sziasztok!
Azt szeretném megkérdezni, hogy többnyelvű weboldalakon hogyan szokták megoldani a nyelveket.
Lenne dinamikus tartalom, amit a felhasználók hoznak létre, és az oldalhoz tartozó cucc, linkek menü stb.

Hogy a felhasználók milyen nyelvűek, azt gondolom egy egyszerű sessionnal eltárolom, vagy a user táblában. Amikor felvesznek tartalmat, akkor elég a felhasználó, abból kiderítem ő milyen nyelvű, és az lesz a hozzászólás nyelve is?

És a weboldal részeit hogyan kell? Valami .iniről olvastam. Vagy esetleg azt is sqlbe menteni? Bővíthetőt szeretnék, bármennyi nyelvre.
köszi
 
1

A weboldal részhez a

rrd · 2015. Júl. 10. (P), 19.01
A weboldal részhez a Gettextre lesz szükséged

A tartalomnál meg kiindulhatsz abból, hogy milyen nyelvű a user, de nem árt azért lecsekkolni, mert lehetnek userek akik több nyelven is képesek kommunikálni.
2

köszi. így már remélem menni

Radon · 2015. Júl. 11. (Szo), 13.35
köszi. így már remélem menni fog.
16

tutorial

darevish · 2015. Szep. 17. (Cs), 12.03
3

Nemigazán értem ezt a

Radon · 2015. Szep. 14. (H), 11.59
Nemigazán értem ezt a gettextet. valaki tudna segíteni elindulni? mit hova másoljak, milyen fájlokat töltsek le, mit írjak át, hogyan működik?
A html fájlomba beírhatom a menük neveit magyarul, és majd a gettext megkeresi, és átírja az angol megfelelőjére?
4

Dokumentáció

Hidvégi Gábor · 2015. Szep. 14. (H), 12.22
5

A .mo fileokat hogyan töltöm

Radon · 2015. Szep. 14. (H), 14.23
A .mo fileokat hogyan töltöm fel adattal? Van hozzá progi?
6

Megírod a PHP szkriptet, a

kuka · 2015. Szep. 14. (H), 15.06
  • Megírod a PHP szkriptet, a lefordítandó szövegrészeket gettext() vagy _() függvény paramétereként használva
  • xgettext segédprogrammal kigyűjteted a lefordítandó szövegrészeket egy .pot állományba
  • msginit segédprogrammal létrehozatod belőle a .po nyelvállomány(oka)t
  • A .po állomány(ok)ban egy szövegszerkesztővel átírod a fordításokat
  • msgfmt segédprogrammal konvertáltatod .mo formátumba

Egyébkét igen, vannak po szerkesztők, melyek a konverziót és egyéb műveleteket is levezénylik, de erről majd más ír. Én nem sok hasznukat láttam.
8

köszi, ezeknek nekiugrok, és

Radon · 2015. Szep. 14. (H), 15.45
köszi, ezeknek nekiugrok, és megnézem milyenek.
7

A tartalom fordítás nem olyan

pp · 2015. Szep. 14. (H), 15.28
A tartalom fordítás nem olyan egyszerű, mint elsőre tűnik.

Sokszor nem csak nyelvváltásról van szó, hanem localizációról(jelentősen más probléma). Vannak olyan mondatok, ami az angoloknak és az ausztráloknak tök mást jelentenek. Nem beszélve arról, hogy a dátum formátumok, mértékegységek is mind mind más lehet, annak ellenére, hogy a nyelv ugyan az.

De simán lehet egy országon belül több nyelv is, mint pl. Svájc, vagy Belgium. Ilyenkor a svájci német oldalon a nyelv az német, de tök más lehet az ár, mint mondjuk egy német oldalon (Svájci frank / EURO)

Sokszor előfordul, hogy vannak nyelvfüggetlen tartalmak. Pl. egy termék fotó minden nyelven ugyan úgy néz ki, vagy akár a mérete, súlya egy-egy terméknek (persze lehet, hogy tök nem, lásd előző megjegyzés a localizációról)

Ezeket nem árt előre tisztázni, már csak azért is, mert ezek nagyban befolyásolják a komplexitását a feladatnak.

Azt fontos tudnod, hogy egy oldalt lefordítani és többnyelvűsíteni nagyságrendileg más feladat. Tehát nagyságrendi különbség van fejlesztési időt tekintve, hogy ugyan azzal a motorral két honlapot kiszolgálj, ahol az egyes lokációk külön tárterületen futnak, és csak nagyon kevés összefüggés van közöttük, vagy egy motorral(egy telepítés) akarod kiszolgálni az összes lokációt.

pp
BTW ezért se javasolják a nyelv - zászlócska megfeleltetést.
9

Huh ez tényleg bonyolultabb,

Radon · 2015. Szep. 14. (H), 16.04
Huh ez tényleg bonyolultabb, mint gondoltam. Egyelőre csak lefordítás lesz, ha működik, akkor bővítem. köszi a segítséget.
10

Eddig megvagyok: // Set

Radon · 2015. Szep. 16. (Sze), 10.12
Eddig megvagyok:

// Set language
putenv('LC_ALL=hu_HU');
setlocale(LC_ALL, 'hu_HU');

// Specify location of translation tables
bindtextdomain("program", "./program.mo");

// Choose domain
textdomain("program");


gettext('szövegek');
Megcsináltam a fordítást, létrehoztam a .po-t, konvertáltam .mo-ra feltölöttem, és most?
11

Csak így tovább

Hidvégi Gábor · 2015. Szep. 16. (Sze), 10.24
Haladj tovább a megkezdett úton.

print gettext('szövegek');
12

ja, a print lemaradt itt,

Radon · 2015. Szep. 16. (Sze), 10.29
ja, a print lemaradt itt, mert én mindent összefűzök és a kód legvégén van 1 db print, szóval az megvan, de mikor, és mitől jelenik meg a fordított szöveg, és nem a magyar?
13

A kódod elején van két

Hidvégi Gábor · 2015. Szep. 16. (Sze), 13.16
A kódod elején van két LC_ALL-os sor, azt írd át mondjuk en_GB-re vagy olyan nyelvi kódra, amire lefordítottad a feliratokat.
14

Köszi

Radon · 2015. Szep. 17. (Cs), 10.42
Köszi, de így sem történik semmi. az a baj,hogy nincs visszajelzés, hol a hiba, és nem is tudom, hogyan működik. Esetleg a gettext() belemegy a .mo file-ba, és kikeresi a paramétere fordítását, és visszaadja? .po file nem kell?
15

Ha a gettext() hívására az

Hidvégi Gábor · 2015. Szep. 17. (Cs), 11.43
Ha a gettext() hívására az eredeti magyar szöveg jelenik meg, akkor azt jelenti, hogy nem talált hozzá fordítást.

A .po-ra elvileg futás közben nincs szükség.
17

Ha bárhol hiba van, akkor a

Radon · 2015. Szep. 19. (Szo), 22.55
Ha bárhol hiba van, akkor a magyar szöveget mutatja gondolom, így nem mutatja hol a hiba.
Még mindíg nem megy, pedig minden rendben, és a szerveren is engedélyezve van a gettext.

Eddig ezeket csináltam:
1 phpben megirtam ezeket:
putenv('LC_ALL=en_US');
setlocale(LC_ALL, 'en_US');
bindtextdomain("myapp", "./myapp.mo");
textdomain("myapp");
2 gettext()-eket beirtam mindenhova a kódba,
3 kinyertem a szavakat 1 .pot file-ba,
4 adatokat beállítottam, lefordítottam, és elmentettem .po-ba.
5 online konvertáltam .mo-ba.
6 myapp.mo-t a szerveren a főkönyvtárba másoltam, ahol az index.php szerepel.
7 Nem megy.
18

valami ötlet? elakadtam.

Radon · 2015. Szep. 23. (Sze), 16.49
valami ötlet? elakadtam.
19

Azt hogyan szokták megoldani,

Radon · 2015. Nov. 2. (H), 22.33
Azt hogyan szokták megoldani, ha kész a fordítás, és működik is minden, de később 1-1 újabb szóval akarom bővíteni a weboldalt? A poeditben nem tudom kézzel bővíteni a listát.