Tipy pro vícejazyčné weby
Pár tipů pro uživatele, kteří používají vícejazyčný web pomocí modulu i18n. Pochází z těžce vydřených zkušeností při vývoji vícejazyčného webu :-) Jak na vícejazyčnou úvodní stránku a jak na vícejazyčné proměnné?
Vše si ukážeme na příkladu s třemi jazyky: Češtinou, Angličtinou a Ruštinou…
Vícejazyčná úvodní stránka
Musím říct, že zde jsem tápal. Nakonec jsem podlehl Linuxovému vzdělání a kouknul do manuálu, hned to bylo jasné. Předtím už jsem dokonce zkoumal kód i18n, jestli někde není chyba…
Pokud děláte vícejazyčný web, většinou nemáte jako úvodní stránku nastavené „node“. Zároveň chcete, aby /cs vedlo na českou, /en na anglickou stránku, apod.
Je to jednoduché. Princip je při tvoření URL aliasů vždy používat kód jazyka. Nastavte jako úvodní stránku pro všechny jazyky:
cs/home -> cs/node/1
en/home -> en/node/2
ru/home -> ru/node/3
Slovo home musí být u všech jazyků stejné (I když zde je to příklad, vy můžete použít třeba uvod). Čísla nodů vedou na jednotlivé překlady úvodní stránky.
Vícejazyčné proměnné
Pokud potřebujete vícejazyčné proměnné, jako je: Cíl stránky, Patička, Jméno webu, apod., stačí použít funkci i18n_variables.
Do settings.php pro Váš web vložte úplně na konec:
$conf['i18n_variables'] = array(
'site_name', // jmeno webu
'site_slogan', // slogan
'site_mission', // cil
'site_footer', // paticka
);
Poté navštivte URL: http://www.example.com/cs/admin/settings/site-information http://www.example.com/en/admin/settings/site-information http://www.example.com/ru/admin/settings/site-information
A vždy nastavte příslušnou hodnotu proměnné.

i18n
Zrovna také začínám pracovat na vícejazyčném webu a rozhodoval jsem se mezi localizerem a i18n. Po tom, co jsem oboje vyzkoušel (první localizer), musím říct, že je i18n (alespoň pro mne) o několik řádů lepší. Není potřeba žádná úprava core modulů, nastavení mi přijde jednodušší a hlavně upravuje adresy s prefixem jazyka, což je naprosto geniální věc. Takže je pak možné vytvářet jednoduše různé path aliasy. Localizer např. pro přeložení nějakého termínů vůbec nevytvářel nový, ale nějakým způsobem jen přeložil nadpis, což mi přijde z jedná strany hezké, ale z druhého pohledu je to nepřípustné.
Obe maji hrozne
Obe maji hrozne mouchy…i18n si zase neporadi s [lang] v pathauto kdyz klikate na preklady (udelal jsem bug), prace s menu je oskliva (vlastne – prisel jste na to? ja udelal nakonec tri zvlastni menu, pro kazdy jazyk jedno).
Na menu jsem ještě
Na menu jsem ještě nekoukal. V path auto [lang] nepoužívám, protože si ho to tam sází nějak samo. Nějak víc jsem s tím zatím nelaboroval, ale jak prozkoumám, tak sem napíši.
Zkoušel jste i localizer? Já jen, jestli tam neexistuje nějaká možnost, jak zapnout přidávání kodu jazyka do URL, jinak mi to přijde dosti nepoužitelné.
localizer
Já na tohle používám standardní funkci url aliasy. Tj prostě si pro každý překlad napíšu parametr „Nastavení URL“ manuálně. Tj například ten „cs/home“.
Možná
To je také možnost, ale pro někoho je to nepoužitelné, když je potřeba aby se aliasy generovaly automaticky.
Menu
Tak jsem to již otestoval a chová se to perfektně podle mých představ :) Vytvořím nějaké menu a do něj vkládám položky – při vložení vybírám jakého jazyka se to týká (položka se zobrazuje jen při zvolení tohoto jazyka, ale pozor v administraci menu se zobrazují všechny – to mate). To je užitečné pro různé položky. Pak také ale mohu vložit položku bez vyplnění jazyka, která se následně zobrazuje ve všech jazycích. Její překlady dále vytvořím pomocí Lokalizace → Správa řetězců. Přijde mi to naprosto jednoduché a přehledné.
Vícejazyčný web a více domén
Bylo by zajímavé, kdyby se někdo podělil o tipy z provozu/sestavení multijazyčného webu v kombinaci se dvěma a více různými doménami pro odpovídající jazyky (třeba .cz a .com).
Různé domény
Tak s těmi různými doménami by mě to také zajímalo. O tom jsem něco viděl v nastavení localizeru, ale měl by to zvládnout myslím i i18n.
Vícejazyčný web a /node...
Chápu to dobře, že ten návod s úvodní stránkou node/1 node/2 node/3 platí pro případ, kdy je úvodní stránka statická? Protože já mám na cs/node výpis uzlů česky, na en/node výpis uzlů anglicky. Funguje to včetně překladů site name a site sloganu, pathauto zdá se taky fungovat dobře, což je super, jen mi vrtá hlavou, jestli mám ty URL fakt správně. Jestli ne tak mě prosím někdo nadrupněte a předem díky.
vícejazyčbá galerie
Máte někdo zkušenosti s vícejazyčnou galerií?
Samotnej web mi vícejazyčně funguje bezvadně, ale zkoušel jsem modul image galery a ta mi více jazykuů nepodporuje. Sice by to šlo vyřešit tak, že udělám galerii pro každý jazyk zvlášť, jenže pak by bylo jiný ovládání pro celý web a jiný pro galerii – tj. když u webu mám zobrazený článek a přepnu jazyk, tak se mi zobrazí stejný článek v druhém jazyce – u galerie by to pak takto nešlo.
Další problíém mám u popisu obrázků, kdy abych měl více jazyků, musím stejný obrázek nahrát pro každý jazyk zvlášť…
Se základní galerii jako
Se základní galerii jako takovou ne, můžeš zkusit vytvořit galerie pomocí CCK a Views modulů. Ve Views by jsi potom měl mít možnost nastavit jako jeden z filtrů i jazykové nastavení (osobně jsem testoval pouze s modulem Localizer, místo i18n). Více zde – http://www.drupal.cz/…ne-nastaveni
Pro překládání přímo textu nodu, místo vytvoření jeho kopie v jiném jazyce můžeš zkusit u každého image nodu zadat text ve formátu <?php t(„This is my content“); a potom vyhledat a přeložit „This is my content“ v
admin/settings/locale/string/search.Fakt, víte určitě, že to
Fakt, víte určitě, že to nejde? Já se s tím právcě docela peru (používám i18n a hlásí mi to pořád nějaký chyby v URL aliasech), ale kdybych věděla, že to NEJDE, tak si teda ušetřím nervy a zkusím rovnou něco jiného.
Na dvoujazyčném webu nemohu
Na dvoujazyčném webu nemohu docílit, aby po změně jazyka odkazovali primární odkazy na druhý jazyk. Příklad: stránka node/2 má path ubytovani a je česky. V němčině je to node/15 s patchem ubytovani. Prefixy /de/ system při přepnutí dává. Proměnné jsou přeloženy i názvy primárních odkazů a úvodní stránka také přepíná (nastaveno podle tohoto článku). Primární odkaz ubytovani směřuje na xx.cz/ubytovani když přepnu do němčiny odkazuje tento na xx.cz/de/node/2 a to je česká stránka. Pokud napíšu ručne xx.cz/de/ubytovani zobrazí se německá verze stránky dobře. Co se týče obsahu, myslím, že tam není problém. Jen nevím jak přimět primární odkaz aby fungoval správně.
Tak to mi dela taky bojhuzel
Tak to mi dela taky bojhuzel taky. Prisel jsi na to nejak od toho brezna? Nejaka rada od ostatnich? Jedniny co jsem tu vycetl, je ze lepsi to asi bude s tim i18n, nez jen se samotnym drupalem.
Take jsem se trápil s tím,
Take jsem se trápil s tím, jak rozjet překlad. Tady posílam odkaz podle ktereho jsem to celkem dobře rozjel.
http://www.isegura.es/…onfiguration http://drupal-translation.com/…lingual-site
překlad
Ahoj, na svém webu jsem rozchodil i anglickou verzi. Vše se pěkně přepíná, ale …
Když se přepnu do angličtiny, tak se to přepne na anglické články a přepne se i administrátorské rozhraní. Ale už se nepřepne pod článkem „Přidat komentář“ na „Add comment“. Setkal jste se s tím někdo? Kde bych mohl hledat zádrhel?
jde o stránky
jde o stránky http://www.bloodhounds.cz/cz/
prepinaji se pouze retezce
prepinaji se pouze retezce ktere jsou v modulu nebo tematu vzhledu vlozeny funkcí t(); – takze je pravdepodobne ze je tam nekde napsano pridat komentar bez obaleni tou funkci. do te funkce zadavejte stringy anglicky.
Multijazyčný web
Chtěl bych se zeptat, zda nevíte, jak zabránit Drupalu, aby šlo přepínat mezi jazyky v místech, kde není překlad. Např. mám uzel typu hra, který je v obou jazycích. K němu přidávám uzly typu log s průběžnou prací – překládáno. Ale pak třeba udělám záznam pro českou verzi („opravena diakritika“) a nechci, aby bylo možné se přepnout do angličtiny. Ono to totiž jde, i když to není přeloženo…
A kdyby to mělo jazyk
A kdyby to mělo jazyk „neutrální“?
Jestli to bylo na mě, tak
Jestli to bylo na mě, tak tomu moc nerozumím – jednak z logiky věci (český, příp. anglický text označit jako neutrální?) a druhak to stále neřeší můj problém…
Tak možná jsem špatně
Tak možná jsem špatně pochopila zadání. Myslela jsem, když se při tvorbě uzlu zadá „Jazykově neutrální“, žádný link na překlad by to nemělo ukazovat. Ale u mě ani nepřeložené uzly (české bez En překladu) neukazujou link. Mám to ale jen v testovacím prostředí, na ostrém webu odkazy v uzlech nepoužívám. Všimla jsem si ale, že když jsem je jednou (v uzlech) zrušila, nějak to nejde jednoduše nahodit zpátky (nevím proč a nezabývám se tím, protože to nepotřebuju). Jen mě napadlo, jestli to nemůže zlobit i naopak, že tam ikona zůstává, i když nemá být (v cache nebo kdovíkde).
Nejspíš jsem se špatně
Nejspíš jsem se špatně vyjádřil. Normální situace: vytvořím cs uzel node/2 a jeho překlad node/3. Když si otevřu node/2 a v nabídce jazyků kliknu na angličtinu, je tam odkaz node/3. Můj problém: vytvořím cs uzel node/4, ale jeho anglická verze neexistuje, ale odkaz na angličtinu tu je a vede na node/4. Tedy v anglickém webu český text – nežádoucí (pro mne). Tedy nemám problém s odkazem „přeložit“, ale v přepínání jazyků, omlouvám se za nepřesnost.
a tu vlajku tam nechcete
a tu vlajku tam nechcete vubec nebo aby sla na homepage? protoze v nejake verzi i18n me zase stvalo ze tam nejsou vlajky jazyku kdyz to neni prelozene. takze je vlastne i mozne ze to jde nekde nastavit, pripadne udelat v theme.
Poslat nový komentář