Multijazycna etomite

Máte problém, hľadáte niečo? Opýtajte sa a poradíme...

Moderátor: Moderators

churchyard
Czech LT
Czech LT
Príspevky: 181
Dátum registrácie: Ne Nov 06, 2005 4:40 pm
Bydlisko: Praha [CZ]
Kontaktovať užívateľa:

Multijazycna etomite

Príspevok od užívateľa churchyard » Pi Jan 12, 2007 9:45 pm

Ahoj, Spade se nabíd, že by mi přeložil neverhood situ do bratrského jazyka. Nemám tušní jak to udelat... ale napada me nasledujici:
nejakym zpusobem priradit k dokumentu ID jeho slovenskeho protejsku.
"50" => "83"
atd

pokud protejsek neni nadefinovan, vyjede ceska stranka.
takze by se udelalo, ze pokud bude v url ?lang=sk ma se tisknout dokument s prislusnym id..
slo by teda udelat pomoci aliasu, ze bych udelal ekvivalentni stranky jako slk_{puvodni alias}.

A menu by se taky tahalo z tech slovenskejch, bud z nejake slozky v repository.. nevim. hlavni mi jde ale o tu funkcnost, ze pokud nebude slovenska stranka, aby to dalo ceskou, ale dalsi odkazy zustaly na slovenskou. vpravo vrohu bych do sablony dal vlajecku s odkazem "?lang=sk" a pak aby stanky byli cele v tom danem modu. Asi bych si moh udelat speciani sablonu s jinym root menem a resit to pres ty prefixy v aliasech, ale nevim, jak dodelat to nacteni ceske stranky, pokud neni slovenska.
a snippety bych taky asi musel delat vsecky dvakrat :)
  • The Neverhood - Československý web o Neverhoodovi
  • P.R.D.I. - nejlepší folkrock široko daleko
  • Yozzefy - hudební gulášek známých písní

Užívateľov profilový obrázok
Spade
etoModerator
Príspevky: 171
Dátum registrácie: Po Apr 17, 2006 2:24 pm
Kontaktovať užívateľa:

Príspevok od užívateľa Spade » Pi Jan 12, 2007 10:13 pm

Mno, mna by este zaujimalo ci je mozne nejako do toho zapracovat aj funkciu, ze sa ulozi niekde aky jazyk si dany uzivatel zvolil (na disk samozrejme, napr. Cookies). Teda ze si raz klikne na vlajku statu a ulozi sa mu to, aby viackrat nemusel klikat.
Ách deti moje zlaté, milujte sa a zložte sa. Nech si zvíratá berú od vás príklad.
Človečina, RND.

Užívateľov profilový obrázok
_rasel^
ETOMITE Admin
ETOMITE Admin
Príspevky: 1122
Dátum registrácie: Ut Sep 20, 2005 1:03 am
Bydlisko: Košice (SR)
Kontaktovať užívateľa:

Príspevok od užívateľa _rasel^ » Pi Jan 12, 2007 10:25 pm

Minule som rozmýšľal, ako urobiť multi-jazyčnými web. Asi sa to najjednoduchšie dá urobiť takto:
  • V dokumentovom roote sa vytvoria root priečinky každého jazyka. Napr.: Čeština (ID: 3), Slovenčina (ID: 4)
  • Pre každý z jakykov treba urobiť navlas rovnaký templat. Od seba by sa líšili iba tým, žeby jeden na tvorbu menu obsahoval: [[MenuBuilder?id=3]][/color] a [[MenuBuilder?id=4]][/color]. Tým docielime to, že máme dva paralelné webové stránky, ktoré sa medzi sebou nevidia (iné menu, iný obsah).
  • Musíme si určiť, ktorý dokument sa bude zobrazovať ako default pri návšteve stránky "Etomite configuration - Site start" - vložíme ID dokumentu z jednej paralelnej stránky.
  • Ďalšia možnosť je tá, že si v roote (ešte pre rootom lokalizácií) vytvoríme dokument (čistý bez obsahu) a k nemu priradíme templat v ktorom dáme na výber z jazykov pri vstupe (vlajočky).
  • Keď už teraz máme vyriešené paralelné stránky v inom jazyku, tak teraz by bolo treba poriešiť prepínanie jazykov (počas behu stránky) a to sa dá:
    • Staticky: Hore v template klasické vlajočky s odkazom na default stránku paralelného webu (2x link = jednoduché).
    • Dynamicky: Alebo pomocou snippetu, ktorý nám z poľa ktoré sme predtým definovali automaticky prepne (z ID) na paralelný dokument (na ID) v druhom jazyku - ak sme na dokumentácií-cz, tak nás prepne na dokumentáciu-sk ... a pod. Ale nato treba urobiť snippet (zaradil som si ho do zoznamu svojho work-listu).
..:: Etomite CMS → Rulezzz !.!.!. ::..

churchyard
Czech LT
Czech LT
Príspevky: 181
Dátum registrácie: Ne Nov 06, 2005 4:40 pm
Bydlisko: Praha [CZ]
Kontaktovať užívateľa:

Príspevok od užívateľa churchyard » So Jan 13, 2007 2:37 am

takze narazil sjem na problem [[ListMenu]][ nema parametr root, ani nic podobneho.
do toho kodu moc nevidim, potebuju to dat jako 107, klidne prepsat cely snippet a ulozit jako [[ListMenuSlk]], to je fuk.
  • The Neverhood - Československý web o Neverhoodovi
  • P.R.D.I. - nejlepší folkrock široko daleko
  • Yozzefy - hudební gulášek známých písní

Užívateľov profilový obrázok
grabo
Expert
Expert
Príspevky: 145
Dátum registrácie: Pi Sep 23, 2005 6:57 pm
Bydlisko: Krh.
Kontaktovať užívateľa:

Re: Multijazycna etomite

Príspevok od užívateľa grabo » So Jan 13, 2007 8:37 am

churchyard napísal:Ahoj, Spade se nabíd, že by mi přeložil neverhood situ do bratrského jazyka. .....
Multijazycna? Tak ja Ti to mozem prelozit do madarskeho jazyka. Teda ak mas zaujem. :idea:

Időmbe telhet, de képes vagyok rá. :)
Máš problém? Bloguj!

churchyard
Czech LT
Czech LT
Príspevky: 181
Dátum registrácie: Ne Nov 06, 2005 4:40 pm
Bydlisko: Praha [CZ]
Kontaktovať užívateľa:

Príspevok od užívateľa churchyard » So Jan 13, 2007 2:34 pm

Takze ad ListMenu:

Kód: Vybrať všetko

   $levelsDeep = -2;
   $directGeneology = false;
Když mám Slovak Root ve složce repository.

grabo: jestli si neděláš prdel, ale myslíš to vážně, tak se ozvi :P
  • The Neverhood - Československý web o Neverhoodovi
  • P.R.D.I. - nejlepší folkrock široko daleko
  • Yozzefy - hudební gulášek známých písní

R - stick
Moderator & CLT
Moderator & CLT
Príspevky: 215
Dátum registrácie: Pi Sep 23, 2005 10:59 am
Bydlisko: Vysoké Studnice (u Jihlavy)
Kontaktovať užívateľa:

Príspevok od užívateľa R - stick » So Jan 13, 2007 4:38 pm

Já mám multijazyčnou verzi na webu zprovozněnou - funguje mi to přesně, jak psal _rasel^ - v rootu Etomite mám pro každý jazyk vytvořený adresář, který volám v nastavení menu příkazem ?id=XX (číslo dokumentu) Pro každý jazyk pak používám samostatnou šablonu (ty jsou identické - akorát každá volá jiné ID kořenového dokumentu pro daný jazyk) Pokud používáš texty ve snippetech, je nutno definovat pro každou jazykovou verzi samostatný snippet (přejmenovat a lokalizovat hlášky)

Přeskakování na konkretní stránku mezi jazyky jsem neřešil - pokaždé se kliknutím na daný jazyk dostanu na index. Pokud totiž dělám web o něčem (nějaký produkt), vždy tam budou v každé jazykové verzi odlišnosti v obsahu. (angličana třeba nebudou zajímat podmínky České pošty a Čechovi je ukradený nějaký PayPal ....) A toto mi umožňuje uspořádat stránky přesně podle toho, co uživatele z konkrétní jazykové lokality může zajímat, a co pro něj nemá žádnou informační hodnotu - tudíž mu mohu udělat stránky "na míru". Dále si myslím, že uživatele různé jazykové verze prostě zajímat nebudou - ten potřebuje konkrétní informaci ve svém jazyku a ostatní ho jen zdržuje.

Jestli chceš vidět funkční demo mrkni se na http://www.rstick.com/index.php?id=19 Podotýkám, že další jazykové mutace zatím nemám zprovozněné - což snadno poznáš, když si klikneš na českou vlajku. (je do zatím z obchodních důvodů ....) Podstatné je, že mám připravný základ, takže mi stačí jen dosavadní stránky přeložit (nebo nechat přeložit) a pak je na web jenom nasypat ....

R - stick
Moderator & CLT
Moderator & CLT
Príspevky: 215
Dátum registrácie: Pi Sep 23, 2005 10:59 am
Bydlisko: Vysoké Studnice (u Jihlavy)
Kontaktovať užívateľa:

Príspevok od užívateľa R - stick » So Jan 13, 2007 5:14 pm

Ještě mě napadlo, jak by se dalo řešit přepínání mezi jazykovými verzemi na konkretní stránku - to by ale znamenalo dost tvrdý zásah do administrace Etomite a přidání další tabulky do databáze.

Jednalo by se o to, že by jsi přepínal mezi stránkami pomocí snippetu, který by si tahal z databáze, na jakou konkretní stránku má jít. Do administrace by se musela přidat možnost nadefinovat dokument v základním jazyku jako tzv výchozí dokument a umožnit k tomuto výchozímu dokumentu definovat další podřízené dokumenty. Tedy nastavil by jsi např dokument o firmě jako výchozí, a až by jsi dělal podobný dokument v angličtině, přřadil by jsi mu ID tohoto výchozího dokumentu. Podobně by jsi to udělal u všech cizojazyčných dokumentů s identickým obsahem.

Tabulka v databázi by měla obsahovat pole ID výchozího dokumentu propojené s tabulkou Etomite_conternt a dále by měla obsahovat pole pro jazykové mutace - tedy např pole EN, DE, FR, SP ....... tyto pole by měly jít vytvářet a mazat přes SQL a do každého by se mělo přidělit ID podřízeného dokumentu. V praxi by to vypadalo tak, že při přepnutí jazyka by snippet vzal aktuální dokument jazykové verze, zjistil by si jeho ID, našel v databázi a zjistil, zda je tomito dokumentu přiřazeno výchozí ID, a ID jazykové verze. Na tento dokument by pak přešel. Samozřejmě by se musely ošetřit všechny vyjimky.

Je to poměrně dost komplikované - ale zato definitivní a navíc by ti to ponechalo plnou kontrolu na co a kam máš přejít.

churchyard
Czech LT
Czech LT
Príspevky: 181
Dátum registrácie: Ne Nov 06, 2005 4:40 pm
Bydlisko: Praha [CZ]
Kontaktovať užívateľa:

Príspevok od užívateľa churchyard » So Jan 13, 2007 5:20 pm

R-stick: díky za tipy, ale udelam to takhle:
pro kazdou stranku mam jeji zrcadlovou podobu v jinem jazyce, i kdyz treba jen:

Kód: Vybrať všetko

{{SvkNeni}}

[[GetDocContent?id=nn]]
Pouzivam aliasy, cili mam veskere slovenske stranky jako svk_{puvodni_alias}.
ted jdu udelat snippet na slovenskou vlajecku:
udel to odkaz href="svk_[~$etomite->documentIdentifier~]"
to bude np
a pak snippet na ceskou vlajesku, kde bude str_replace("svk_", "", "[~" . $etomite->documentIdentifier . "~]")

myslim, ze by to melo fungovat
  • The Neverhood - Československý web o Neverhoodovi
  • P.R.D.I. - nejlepší folkrock široko daleko
  • Yozzefy - hudební gulášek známých písní

churchyard
Czech LT
Czech LT
Príspevky: 181
Dátum registrácie: Ne Nov 06, 2005 4:40 pm
Bydlisko: Praha [CZ]
Kontaktovať užívateľa:

Príspevok od užívateľa churchyard » So Jan 13, 2007 6:13 pm

tak to druhe nebude az zas tak logicky fungovat, pac [~XY~] se parsuje az potom, ejdine, ze bych to delal JScriptem
  • The Neverhood - Československý web o Neverhoodovi
  • P.R.D.I. - nejlepší folkrock široko daleko
  • Yozzefy - hudební gulášek známých písní

churchyard
Czech LT
Czech LT
Príspevky: 181
Dátum registrácie: Ne Nov 06, 2005 4:40 pm
Bydlisko: Praha [CZ]
Kontaktovať užívateľa:

Príspevok od užívateľa churchyard » So Jan 13, 2007 7:02 pm

heh

Kód: Vybrať všetko

if(isset($transalias)){
$tenhle_alias = $transalias;
}
else {
$tenhle_alias = $this->aliases[$etomite->documentIdentifier];
}
if($tolang == "cze") {
$novy_alias = str_replace("svk_", "", $tenhle_alias);
}
elseif($tolang == "svk") {
$novy_alias = "svk_" . $tenhle_alias;
}
else {
$novy_alias = $tenhle_alias;
}
$url = $novy_alias . ".htm";

return $url;
  • The Neverhood - Československý web o Neverhoodovi
  • P.R.D.I. - nejlepší folkrock široko daleko
  • Yozzefy - hudební gulášek známých písní

Napísať odpoveď