Přeskočit přímo na text


Vícejazyčný web, aneb jak na modul Localizer

Snad každý tvůrce webových stránek se někdy potýkal s vícejazyčnou verzí webu. Drupal 5.x je vybavený skvělým modulem Localizer, se kterým není problém snadno vytvořit vícejazyčný web. Pojďme se tedy podívat jak modul Localizer funguje a co umí.

Použití tohoto modulu umožňuje uživateli kdykoli změnit jazyk stránky přičemž se vždy zobrazí aktuální stránka ve zvoleném jazyku. Také registrovaní uživatelé mohou ve svém účtu využívat volby jazyka. Celá administrace je kompletně lokalizovaná. Nastavením v administraci můžeme povolit nebo zakázat přístup k lokalizovaným stránkám anonymním, či registrovaným uživatelům. Dále můžeme nastavit registrovaným nebo anonymním uživatelům z jakých jazyků si budou moci vybírat.

Modul Localizer disponuje nastavením, kde je možné nadefinovat vzhled zobrazení bloku s ikonkami výběru jazyka, jeho titulku apod. Pokud budeme myslet na SEO a chtít i url stránky v daném jazyce, i toto modul Localizer umí. Přeloží url konkrétní stránky. Umí změnit doménu např. na cs.domena.cz, en.domena.cz apod.

Modul Localizer umí překládat:

  • menu
  • bloky
  • obsah (uzly)
  • taxonomy

Než začneme s nainstalovaným modulem překládat, je třeba

  • přidat jazyk v Administrace → Nastavení webu → Lokalizace
  • stáhnout si lokalizaci zvoleného jazyka, kterou importujeme také v Administrace → Nastavení webu → Lokalizace
  • nastavíme výchozí jazyk a povolení jazyka

Nastaveni jazyka
Klikněte pro detail

  • nastavíme uživatelům přístup k lokalizovaným stránkám. V Administrace → Uživatelé → Kontrola přístupu nastavíme oprávnění modulu Localizer. Např. pokud chceme povolit přístup všem uživatelům zaškrtneme Access Localizer pro anonymy.

Nastavení

Administrace → Localizer můžeme provést tato nastavení:

  • zvolit titulek bloku s výběrem jazyka, nebo titulek zakázat
  • skrýt nebo zobrazovat aktuální jazyk
  • možnost zobrazení názvu jazyka
  • možnost zobrazení vlaječek jazyka
  • velikost ikonek
  • oddělovač mezi ikonou a názvem jazyka
  • možnost zjišťování lokality uživatele, pro nastavení výchozího jazyka
  • volba zobrazování úvodní stránky v lokalizované verzi
  • nastavení předpony domény (cs.domena.cz, en.domena.cz)
  • možnost nastavení vícejazyčné podpory (nastavení pro anonymní a registrované uživatele)

Tyto možnosti nastavte dle svého gusta.

Překlad

Nyní se můžeme pustit do překladu a ukážeme si:

Jak překládat obsah

  • Zobrazíme stránku, kterou chceme překládat, vybereme položku translations a u zvoleného jazyka create translation.

Prelozeni obsahu
Klikněte pro detail

  • A vložíme přeložený obsah stránky. Můžeme si zde zároveň přeložit i položku menu, když rozklikneme nastavení menu – pokročilé nastavení. Rozklikneme translations a požadovaný jazyk. Zde napíšeme překlad menu. Stejným způsobem lze přeložit i url stránky, když rozklikneme nastavení url.

Jak překládat menu

  • V administraci vybereme Prvky webu → Menu. U požadované položky zvolíme operaci upravit. Rozklikneme položku translations a zvolený jazyk. Zapíšeme překlad.

Prelozeni menu
Klikněte pro detail

Jak překládat bloky

  • V administraci vybereme položku Prvky webu – Bloky. U zvoleného bloku vybereme Konfigurace. Rozklikneme translations, vybereme jazyk a můžeme překládat.

Prelozeni bloku
Klikněte pro detail

Jak překládat taxonomy

  • Taxonomy se překládají úplně stejným způsobem jako bloky.

Jak překládat url

  • V administraci zobrazíme stránku, jejíž url budeme překládat. Klikneme na translations a na nadpis stránky v požadovaném jazyku a dále na upravit. Rozklikneme nastavení url a zapíšeme překlad.

Závěr

Doufáme, že Vás tento lehký úvod do modulu Localizer naladil a pomůže Vám tvořit vícejazyčné weby v Drupalu. Už teď se můžeme těšit na verzi Drupal 6.x, která bude možnosti přeložení obsahovat již v jádru systému.

 

Bloky

Hezký článek, to jste s ním nemohl přijít před 14 dny? Sem si to musel vybádat sám ;)

Funguje mi vše až na překlad názvu bloku a zrovna tady se autor článku dopustil několika nepřesností:

„U zvoleného bloku vybereme upravit.“

V mé verzi překladu Drupalu mohu vybrat tak akorát „Konfigurace“ (uznávám, je to ptákovina, ale proč nenazývat věci jejich jmény?)

Obrázek v kapitole „Jak překládat bloky“ zobrazuje překlad menu, takže mi nepomohl, protože já v konfiguraci bloku vidím akorát rozbalovací menu s výběrem jazyků, ale formulářová pole pro všechny jazykové verze bloku (jako u ostatních prvků webu) tam bohužel nemám. Pokud z rozbalovacího menu s výběrem jazyků vyberu nějaký jazyk, změním název bloku a uložím konfiguraci bloku, pak se změna provede názvu ve všech jazykových verzích, což je dost bl.. nežádoucí :-( Kudy kam?

Iru je zena :-) Ten obrazek

Iru je zena :-) Ten obrazek je spatne, zkusime opravit, konfiguraci jsem opravil

Nebylo by tedy vhodnější

Nebylo by tedy vhodnější překládat „Vložil/a“?

Ano, ve verzi 5.x to tak

Ano, ve verzi 5.x to tak myslim i je, zde mame jeste 4.7

Obrázek

„Ten obrazek je spatne, zkusime opravit“

Zapomnělo se/nechtělo se/nešlo to?

a

a

Re: bloky

Podarilo se nekomu prelozity blok? Me ne :-((

www.lvrdesign.com

Tip

aj, přesně tak. Tento článek sem potřeboval před měsícem :-)

Jinak mám tip jak na menu. Když to uděláte postupem zde popsaným, položky všech jazykových verzí webu se Vám nacpou do jednoho menu a v administraci je v tom pak dost binec. Osotně to řeším ne tímto výchozím způsobem – vytvořím si zvlášť menu pro každý jazyk (Menu CZ, Menu EN…), pak si vytvořím multilingual blok a do něho ty meny vložím vždy pro ten správný jazyk… výhoda je jak jsem napsal podstatně lepší přehlednost menu a modul i18n_menu můžete i vypnout (čím míň modulů tím líp…)

Taky doporučuji modul Pathauto, který Vám URL v jazyce vygeneruje automaticky, pokud ho nezadáte. Funguje bezvadně i s Localizer.

Poslední připomínka – Localizer zatím bohužel nepodporuje Views (nebo je to obráceně?..), takže pokud chcete překládat i pohledy, musíte buď upravit zdroják nebo mít jeden pohled pro každý jazyk. Což je hloupý. Pokud by měl někdo zájem pošlu návod jak se to dá drobnou změnou ve zdroji modulu views a jedním hookem ve vlastním modulu jakž-takž udělat.

ze neskoro

ja som lokalizaciu robil v oktobri a na drupal.sk som dal co to co sa tazko vybadalavo … ale je pravda ze vtedy to bola este hlboka doba 4.7.x verzie … ktora sa, ako sa zda jednoznacne pominula nuz i18n bol omnoho tazsi oriesok … (aj ked som toto nove translation este nenahodil ale vyzera „much more easy“)

Problém s překladem modulu Contact

Modul localizer jsem doposud bez problémů používal, dnes jsem však narazil. Zapnul jsem si totiž modul Contact, u kterého mi nelze přeložit položka menu. Resp. překlad v Administrace → Menu normálně vyrobím, Drupal ho uloží (vidím, že ho má v Translation uložený), ale v bloku Navigace ten překlad nikdy nezobrazí…

Pokud někdo víte, kde dělám chybu, budu moc vděčný za info.

ERROR!

Tak jsem ti ho nainstaloval a po zapnutí modulů jsem dostal zprávu:

user warning: Table ‚drupal_dacom.localizertranslation‘ doesn't exist query: SELECT * FROM localizertranslation WHERE (object_name = ‚menu‘ OR object_name = ‚menu_item‘) AND locale = ‚cs‘ in /home/www/dacom/dacom.cz/htdocs/includes/database.mysql.inc on line 120.

:( Používám verzi 4.7 a localizer pro 4.7

Máte někdo nějaký tip?

Už je to OK.

Prostě se nevytvořila tabulka. Tak jsem ji udělal ručně a hotovo. Nechápu, občas mi to takhle dělá.

Localizer - dost divné chování

tak se tu už několik hodin mořím s jedním problémem s modulem Localizer. Nainstaloval jsem ho a jede naprosto bezchybně. Až do té doby, než se odhlásím. Pak to dělá tuhle záhadu:

Stránky, které jsou přeloženy, tak přepnout do anglické verze jdou, ale stránky jako například hlavní strana, nebo článková stránka se už nepřepíná.

Viz: www.dacom.cz – tahle halvní stránka pro nepřihlášené přeonout NEJDE, ale jakmile se zaloguju (ne jako Administrator, ale i jako obyčejný uživatel), tak přepnout jde. Ale běžná stránka jako: www.dacom.cz/image/tid/5 zase nepřihlášenému nejde přepnout do češtiny a je pouze anglicky.

Dělá to skutečně psí kusy a já nejsem schopen odhalit čím to může být :( Nemáte někdo podobnou zkušenosti, nebo nápad?

A mám to

Tak sotva to sem napíšu tak mne napadlo vypnout cache. A světe div se – ono to pomohlo. Teda je to dost divný, ale funguje to…

no vidíte cache je někdy

no vidíte cache je někdy slušnej nepřítel :-) ale možná by stačilo jí jen vymazat ne?

Na vymazanie cache

Na vymazanie cache doporucujem modul http://drupal.org/project/devel… Oplati sa ho mat zapnuty pri vyvoji webu – pre programatora je nepostradatelny…

Lokalizer

Nainstaloval jsem lokalizer a administrace uz funguje jenom v anglictine :-( Po prepnuti do nejakeho jineho jazyka dostavam hlasku „Internal server error“. pouzivam www.cesky-hosting.cz, na blacklistu nebyl :-) Nemeli jste nekdo podobny problem? diky za radu.

opraveno, zapomel jsem na

opraveno, zapomel jsem na instalaci patchu :-) Tak snad uz to bude vsechno slapat :-)

problém s instalací

Zdravím, nevím proč ale nedaři se mi Localizer nainstalovat na web. Stahl jsem si ho a rozbalil podle navodu. Pak ho nahrál na web do korenoveho adresare webu. Cesta k Lacalizeru je www.doma.com/drupal-5.2/ jenže když tuto cestu zavolám na stránce se zobrazí „Internal Server Error“ a nevím co s tím. Prosím o pomoc!

spatne nastaveny htaccess

spatne nastaveny htaccess nebo webserver pro htaccesss a tudiz problem nesouvisejici s localizerem?

Vyresil nekdo ty bloky ???

Vyresil nekdo ty bloky ??? DIKY DIKY

Nevim, jestli myslíš přesně tohle ...

… ale pokud potřebuješ vytvořit vlastní vícejazyčný blok, dá se to vyřešit takto – do těla bloku vlož tento kod (nezapomeň přepnout Input format na PHP).

 <?php 
$languages=localizer_get_uilocale();
if ($languages == „cs“) { 
// Zde bude obsah bloku v češtině
}

if ($languages == „en“) {
// Here could be content in english
}
?>

Idealne...

Idealne bych potreboval:

<?php

$languages=localizer_get_uilocale();

if ($languages == „cs“) {

// ZDE JEDNO MENU (ceske)

}
if ($languages == „en“) {

// ZDE DRUHE MENU (anglicke)
}

?>
A uplne nejvic nejlepe bych chte mit:
MENU

  • Ceska vetev

--polozka 1
 –polozka 2

  • Anglicka vetev

--item 1
 –item 2
 –item 3
a pak mit:

<?php

$languages=localizer_get_uilocale();

if ($languages == „cs“) {

// CESKA VETEV MENU

}
if ($languages == „en“) {

// ANGLICKA VETEV MENU
}

?>
 

jinak dik za tvou odpoved, myslim ze uz je to dobry zaklad k tomu abych neco vymyslel (= predpokladal sem ze to pujde bez php – prece jen delam web co bude ovladat sekretarka :-/ )

vyreseno

tak aspon menu jsem uz vyresil..viz zde: http://www.drupal.cz/…-sekretarkou#… ..dik

Problémy v některých prohlížečích

Mám poměrně rozsáhlý vícejazyčný web, primárně český, do angličtiny a ostatních jazyků jsou přeložené jen důležité části.

Logické potom je zobrazit položku která není ještě přeložená v jazyce který přeložený je. Což jakž-takž funguje. Jenže když se například přepnu do angličtiny a dostanu se na tuto stránku tak se NĚKDY (zatím se nepodařilo objevit kdy přesně) stane že se spolu s obsahem přeloží zpět do češtiny i zbytek, tj. bloky a menu které přeložené jsou. Ještě horší je když se pak použiju link z menu. Občas se stane že potom následná stránka přeložená do angličtiny je, ale menu zůstane v češtině. Vlaječky v tomto případě zůstanou nastavené na angličtinu (mám nastavené schovávání vlaječky aktuálního jazyku). Nejhorší je že toto se chová víceméně v každém prohlížeči jinak. Ve firefoxu toto funguje víceméně dobře, nicméně když použiju IE, nebo operu je to katastrofa.

Buhužel jsem zatím nedokázal přijít na nějaké zákonitosti tohoto chování, proto se může zdát můj popis situace poněkud zmatený, zato se omlouvám. Pokud má někdo zkušenosti s takovýmto chováním drupalu prosím poraďte. Pokud bude potřeba pokusím se dovysvětlit potřebné aspekty.

Takže dotaz beru zpět, už je vyřešeno.

Takže dotaz beru zpět, už vyřešeno. Stačilo si přečíst návod k instalaci tohoto modulu (http://drupal.org/node/103419), je to trochu nad rámec instalace normálních modulů, což musím říct jsem trochu podcenil.

Nicméně si myslím že ani několik dalších uživatelů tady si to nepřečetlo, jinak by jim i ty blocky fungovali dobře tak jako teď i mě :-) Po správné instalaci tohoto modulu totiž budou u blocků fungovat změny jazyka. Bude to sice trochu jiné než u nodů, ale to nevadí. U standardní blocků které zobrazují menu nastavíte Jazyk: Any, aby se zobrazovali v každém jazyce. U blocků přímo vytvořených v sekci blocky (tedy ty co zobrazují přímo text) musíte block manuálně vytvořit pro každý jazyk a nastavit pro každý příslušný Jazyk. To ale nevadí, protože u nodů děláte v podstatě to samé, navíc blocků nikdy nebude nějak moc. Odkaz na návod jsem uvedl nahoře.

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í

Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.

Hledat

Přihlášení

Bezpečnost Drupalu

Z hlediska bezpečnosti je Drupal na velmi vysoké úrovni, díky propracovanému systému hlášení, prověřování a řešení možných problémů.

Čtěte více a odebírejte bezpečnostní aktuality

Poslední komentáře

Kdo je online

Momentálně je online 0 uživatelů a 0 hostů.