Multijazyčnosť www stránky – HTML / XHTML – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Multijazyčnosť www stránky – HTML / XHTML – Fórum – Programujte.comMultijazyčnosť www stránky – HTML / XHTML – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Anonymný
~ Anonymní uživatel
2 příspěvky
21. 9. 2013   #1
-
0
-

Zdravím vás , chcem si na svoj web spraviť multijazyčnosť a neviem ako ju integrovať ... nechcem vytvárať ďaľšie indexi s prekladom chcem radšej nejaký XML súbor a radu ako ho zadefinovať alebo niečo také ... predom ďakujem za odpoveď.

Nahlásit jako SPAM
IP: 109.230.3.–
Reklama
Reklama
prdelnatý anděl
~ Anonymní uživatel
33 příspěvků
22. 9. 2013   #2
-
0
-

Mě osobně se líbí toto řešení:

  • pro jazyk používat kódy podle ISO 639-1, s jedním defaultním (u tebe asi "sk")
  • daný jazyk uchovávat v session (například $_SESSION["language"])
  • na začátku skripu zkontrolovat, zda-li je specifikován v URL. Je-li, změnit session
  • na začátku poté kontrolovat, zda-li daný jazyk k dispozici. Není-li, přepnout na defaultní
  • u překladů rozlišuji statický text (definován ve skriptu) a dynamický text (vytvořen v CMS)

Statický text:

  • vytvořím si pro každý jazyk soubor, který budu includovat. Název souboru pro jednoduchost zvolím tak, aby obsahoval kód jazyka.
  • do souboru každého jazyka dám definici asociativního pole, které bude obsahovat překlady
  • toto pole je globání proměná (v rámci skriptu, nebo - uděláš-li si to tak - v rámci objektu nebo jmenného prostoru)
  • klíče tohoto pole jsou textové a jsou to přímo hlášky v defaultním jazyce; hodnoty pole jsou překlady do daného jazyka
  • (dále ve skriptu) vytvořím funkci s jedním parametrem, která jednoduše vrátí překlady (tedy hodnoty z globálního pole překladů). A v případě, že prvek neexistuje, vrátí samotný parametr. (Této vlastnosti půjde využít pro překladový soubor defaultního jazyka, kde bude stačit vlastně jenom deklarace prázdného pole.)
  • všude tam, kde v hlavním skriptu chci vypsat nějaký statický text, resp. jeho překlad v daném jazyce, zavolám výše zmíněnou funkci a jako parametr ji dám text v defaultním jazyku

Dynamický text:

  • dynamický text (články, aktuality, zprávičky, ...) si připravím už v návrhu databáze, kdy sloupce v tabulkách, kterých se to týká (např. nazev, perex, clanek, aktualita, zprava, obsah, ...) rozšířím o přípony v zamýšlených jazycích (např. "nazev_sk", "nazev_en", "nazev_cz", "nazev_de", atd.)
  • všude dodržuju konvenci a názvosloví, takže i tady kódy jazyků odpovídají těm, co uchovávám v session a poli překladů
  • pro vypsání dynamického textu v daném jazyce vybírám sloupce, které chci vypsat, podle jazykového kódu, který mám v session. Pro ještě větší pohodlnost používám alias. Příklad: "SELECT obsah_" . $_SESSION["language"] . " AS obsah FROM clanky"; Výsledek mám v poli pod indexem ["obsah"], ať už je aktuální jazyk jakýkoli

Nahlásit jako SPAM
IP: 213.151.77.–
prdelnatý anděl
~ Anonymní uživatel
33 příspěvků
22. 9. 2013   #3
-
0
-

edit: Teď si uvědomuju, že odpověď, kterou jsem ti poslal, je řešení specificky pro PHP a databáze. Jsou i jiná řešení k vyzkoušení, například node.js, který u mnoha lidí získává na oblibě.

Nahlásit jako SPAM
IP: 213.151.77.–
Anonymný
~ Anonymní uživatel
2 příspěvky
22. 9. 2013   #4
-
0
-

#3 prdelnatý anděl
Jo ďakujem , pomohlo :-)

Nahlásit jako SPAM
IP: 109.230.3.–
peter
~ Anonymní uživatel
2528 příspěvků
23. 9. 2013   #5
-
0
-

Statický text:
- Soubory s prekladem bych rozhodne neresil polem, pokud to neni php soubor. Ty to pak naincludujes a pokud do toho souboru nekdo pripise php kod (vir, hacker), tak se spusti i ten.
- A kdyz nenajde preklad ani original, tak se zobrazi co?

Dynamický text:
- Jestli by treba nebylo rozumnejsi vytvorit jeden radek pro stranku a k nemu navazat text podle id stranky, bud original nebo prelozeny? Takhle budes mit jedno id pro stranku a druhe id pro jazyk
tab1: id stranky (mozna dalsi spolecne sloupce pro vsechny preklady)
tab2: id stranky, id jazyk, text nadpis, text obsah
tab3: id jazyky
Ciselny udaj se hleda rychleji nez textovy (nazev_cz) v db.

Nahlásit jako SPAM
IP: 193.84.207.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 11 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý