Přeskočit přímo na text


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é.

About the author

Jakub Suchý je provozovatelem projektu Drupal.cz. Je členem Drupal Security Teamu, vytvořil několik volně dostupných modulů a také se Drupalem živí.

 

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.

Poslat nový komentář

Obsah tohoto pole je soukromý a nebude veřejně zobrazen.
  • You can use Texy! to format and alter entered content.
  • Povolené HTML značky: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <p> <br> <b> <i> <h2> <img> <pre> <sup> <sub> <pre class="php"> <span class="php-keyword1"> <span class="php-var"> <span class="php-num"> <img class="screenshot"> <p class="beginner"> <a class="greybox"> <h3> <h4>

Více informací o možnostech formátování

Idem na Drupal Camp Bratislava 2010

Hledat

Přihlášení

Poslední komentáře