Drupal 7 - jazykové mutace webu

Verze pro tiskVerze pro tisk

Návod

https://www.lullabot.com/articles/localized-and-multilingual-content-in-...

https://www.bramvandenbulcke.be/en/article/drupal-entity-translation-guide

 

Moduly

stáhni si a nainstaluj moduly:

zapni moduly:

1. várka:

  • Locale (je v jádře Drupal 7)
  • Entity Translation
  • Internationalization
  • Variable
  • Language Icons
  • Title
  • Localization update

2. várka:

  • Entity Translation Menu
  • Block languages
  • Field translation
  • Menu translation
  • String translation
  • Translation sets
  • Variable translation
  • Views translation
  • Variable realm
  • Variable store

 

NASTAVENÍ JAZYKŮ

Nastavení > Regionální a jazyková nastavení > Jazyky

Jazyky > Seznam

  • zapni, respektive přidej a zapni potřebné jazyky
  • na řádku English klikni na "upravit" a zadej kód jazyka v prefixu cesty "en"

Jazyky > Detekce a výběr

  • detekce...Text uživatelského rozhraní - zapni zatržítko v řádku URL
  • detekce...Obsah - zapni zatržítko v řádku URL

Jazyky > Ikony

  • nastav umístění ikon: "Nahradit odkaz" = pouze vlaječka
  • případně velikost obrázků 18x15 (některá témata v css dopočítávají výšku obrázků height: auto;)

vyber, které typy entit se budou překládat

  • Nastavení > Regionální a jazyková nastavení > Entity translation
  • ponechat zatrženo: Allow language fallback
  • možno zrušit zatržení: Display shared labels
    (ve formuláři uzlu přidává popisek "všechny jazyky" pro pole, která se nepřekládají)
  • Translate entity types - zatrženo "Uzly", případně "Termín taxonomie"

nastavení pro překlad textů

  • Nastavení > Regionální a jazyková nastavení > Multilingual settings > Strings
  • vyber formáty v "Translatable text formats", které budeš potřebovat přeložit
  • uložit

 

PŘEPÍNAČ JAZYKŮ

  • Struktura > Bloky
  • blok "Přepínač jazyka (Obsah)" umísti do vhodného regionu
  • případně vypni nadpis bloku <none>
  • blok může být dočasně viditelný jen pro admina
  • uprav vzhled bloku
  • případně pomocí css odstraň odrážky v bloku
    #block-locale-language-content .content ul li { list-style-type:none; margin:10px 0; }
    a uprav vzhled

 

TYPY OBSAHU

nastav přeložitelnost typu obsahu

  • Struktura > Typy obsahu > ...
  • Možnosti vydání (Možnosti zveřejnění) > Podpora více jazyků -
  • vyber "Enabled, with field translation"
  • zatrhni "Hide content translation links"
  • uložit

základní nastavení typu obsahu

  • Nastavení > Regionální a jazyková nastavení > Entity translation
  • Uzly > Výchozí jazyk - namísto "Jazykově neutrální" vyber
    • "Aktuální jazyk" - jestliže uzel vytváří návštěvník webu
    • "Česky" - jestliže uzel vytváří redaktor webu
  • zatrhni "Hide language selector"
  • případně také zatrhni "Hide shared elements on translation forms"
    (pole, která se nepřekládají, budou dostupná pouze ve formuláři pro výchozí jazyk, ve formuláři překladu uzlu budou skrytá)

instrukce k vyplňování formuláře uzlu

  • text zadaný v nastavení typu obsahu - karta "Nastavení formuláře pro odeslání" > "Vysvětlení..." - přeložit nejde
  • okénko v nastavení typu obsahu ponechej prázdné
  • vytvoř nový blok
    • do Těla bloku vlož instrukce v češtině
    • blok umísti do regionu Obsah - nahoru
    • Stránky > Zobrazit... "Jen uvedené stránky" - node/add/xxxx
    • Jazyky - zatrhni "Make this block translatable"
    • dole "Save and translate"
    • na řádku English klikni na "přeložit"
    • vlož anglickou verzi bloku a ulož
  • uprav vzhled bloku - css

 

NADPIS A POLE

nastav přeložitelnost nadpisu uzlu

  • Struktura > Typy obsahu > ...
  • Správa polí - na řádku Nadpis klikni na "replace"
  • na následné stránce zatrhni zatržítko "Replace title with a field instance"
  • ulož
  • pro návrat zpět (=zrušení tohoto nastavení): Správa polí - na řádku title_field klikni na "delete" (="smazat")
  • v případě použití modulu Automatic Nodetitles ponechej originální drupalovský title!

která pole se budou překládat

  • Struktura > Typy obsahu > ...
  • Správa polí - u každého pole, které je potřeba přeložit, klikni na "upravit" a úplně dole povol překlad "Users may translate this field"
  • u polí, do kterých se zadává např. jméno, příjmení, telefon atd., překlad pro uživatele nepovoluj, bude přeložen jen popisek pole

přelož popisek u překládaných polí

  • Struktura > Typy obsahu > ...
  • Správa polí - klikni na "upravit"
  • nahoře karta "Přeložit"
  • na řádku English klikni na "přeložit"
  • přelož Popisek, pak ulož

překlad pole typu seznam

  • Struktura > Typy obsahu > ...
  • Správa polí - u pole typu seznam, které je potřeba přeložit, klikni na "upravit" a úplně dole NEPOVOLUJ překlad!
  • pouze nahoře vyber "Přeložit"
  • na řádku "English" klikni na "přeložit"
    • Field instance - uprav text popisku pole v angličtině
    • Nastavení pole - zadej anglickou verzi hodnot pole
    • uložit
  • Správa zobrazení - u pole typu seznam zvol formát "Default translated"

překlad popisků u Field Group

  • text nadpisu a popisu je dostupný v prostředí Překlad rozhraní
    Nastavení > Regionální... > Překlad rozhraní > Přeložit
  • proveď takto:
    • ve Správě polí vlož text nadpisu a případně i popis anglicky
    • pak v překladu rozhraní ho přelož do češtiny
    • pak ve Správě polí dokonči nastavení tohoto Field Group kliknutím dole na "Uložit" - teprve po tomto uložení jsou změny viditelné ve formuláři

nastavení URL alias

aby fungovaly odkazy na základní stránky, doporučuji zrušit zatržítko u Generate automatic URL alias u české i anglické verze a u obou nastavit stejný alias

 

PŘIDEJ NOVÝ PŘÍSPĚVEK

  • Obsah > Přidat obsah > ...
  • napiš příspěvek česky, ulož
  • klikni na ouško Přeložit
    (ouško Přeložit není k dispozici pro jazykově neutrální uzly!)
  • na řádku English (stav Nepřeloženo) klikni na "add"
  • klikni na kartu English, zadej anglickou verzi příspěvku a ulož "Save"
  • nelze provést úpravy v české i anglické verzi a uložit najednou, každé se musí uložit zvlášť

 

MENU

zapni moduly

  • Entity Translation Menu
  • Menu translation
  • Translation sets

přeložitelnost menu

  • Struktura > Menu
  • klikni na "Upravit menu" u příslušného menu
  • vyber "Translate and Localize"

přelož položky menu

  • Struktura > Menu > Hlavní menu (seznam odkazů)
  • na řádku položky menu klikni na "upravit"
    • v části Jazyk namísto "Jazykově neutrální" zadej "Česky", pak ulož
  • na řádku položky klikni na "přeložit"
    • na řádku Anglicky klikni na "přidat překlad"
    • zadej text do políčka "Nadpis odkazu menu" a ulož
  • toto proveď pro všechny položky menu
  • v seznamu odkazů menu uprav pořadí položek menu

 

VIEWS

při přidávání pole do view musíš vybrat správné pole pro přeložený nadpis uzlu:

  • Content: Title (The content title) - původní nepřeložený nadpis
  • Content: Title (Appears in:node:article,...) - nový nadpis, bude se zobrazovat ve zvoleném jazyce
  • při použití title_field namísto původního názvu uzlu, nemusí být k dispozici možnost "Propojit toto pole s původním obsahem"
    • jako první použij pole "Entity translation: Nadpis" (title_field) a skryj ho
    • jako druhý vlož původní "Obsah: Nadpis" (title), zatrhni možnost "Link this field.." a přepiš ho Rewrite results >> [title_field_et]

překlad nadpisů a jiných popisků

pole typu seznam

  • přidej pole jako obvykle
  • zvol formát zobrazení: "Default translated"

pole typu datum

  • přidej pole jako obvykle
  • zvol formát zobrazení Dlouhý, Střední nebo Krátký,..., nikoliv "Vlastní"
  • vhodně nastav formát data a času pro angličtinu (názvy měsíců a dnů systém přeloží sám)
    • Nastavení >> Regionální... >> Datum a čas >> Lokalizovat
    • na řádku English klikni na "upravit"

accordion

  • jako první pole dát pole přeloženého nadpisu "Entity translation: Nadpis" a skrýt ho
  • jako druhé pole dát původní "Obsah: Nadpis"
    • přepsat ho Rewrite results >> [title_field_et]
  • pokud se dá jako první přímo přeložený nadpis, dělá problémy nastylování

 

OPRÁVNĚNÍ

nastav, kdo může překládat

  • Uživatelé > Oprávnění
  • Entity Translation > Translate entities of type Uzly

nastav viditelnost přepínače jazyků

  • Struktura > Bloky ...

 

PŘEKLAD NÁZVU A SLOGANU WEBU

návod

povol překlad

  • povol modul Variable translation (v balíčku Internationalization)
  • Nastavení > Regionální a jazyková nastavení > Multilingual settings > Variables
  • karta "Informace o webu" - zkontroluj zatržení "Název webu" a "Slogan webu"
  • uložit

přelož

  • Nastavení > Systém > Informace o webu
  • v horní části stránky klikni, který jazyk upravuješ, uprav texty a ulož

 

BLOKY

návod

nastavení

  • musí být povolený modul Block languages (v balíčku Internationalization)
  • Struktura > Bloky
  • klikni na "nastavení" u bloku, který chceš přeložit
  • dole karta Jazyky
    • zatrhni "Make this block translatable"
    • zatrhni, jestli se má blok zobrazovat pouze v některých jazycích
    • uložit

přelož

  • klikni na "nastavení" u bloku, který chceš přeložit
  • nahoře "Přeložit"
  • na řádku "English" klikni na "přeložit"

 

PARAGRAPHS

https://www.drupal.org/node/2452675

stačí přeložit názvy polí a jejich obsluhu?

  • v nastavení pole typu Paragraph
    • Item Title - zadej anglické označení položky
    • Add mode - vyber "Select List" ("Seznam")
    • Překlad pole nepovoluj!
  • v nastavení pole klikni nahoře na "Přeložit"
  • pak na řádku English klikni na "přeložit" a zadej anglický název pole
  • v Překladu rozhraní přelož do češtiny
    • Add new !title
    • Add another !title
  • v Překladu rozhraní přelož do češtiny
    • No @title_multiple added yet. Select a @title type and press a button below to add one.
    • >> Zatím nebyly přidány žádné položky.

 

RULES

musí být zapnutý modul Rules translation, který je součástí modulu Rules

https://www.drupal.org/project/rules/issues/3264584

 

Show a message on the site

  • přeložit je možné jen text v některých textových políčkách
    • Show a message on the site - Hodnota
    • Send mail - Předmět, Zpráva ... zdá se, že nefunguje správně
  • políčko v původním jazyce musí být typu "textové pole", nikoliv "data selection"
  • překlad podporuje tokeny
    • je užitečné si předem vytvořit 2 textové proměnné - jednu v původním jazyce, druhou s anglickým textem
    • v místě potřeby pak do textového pole umístit první token a do překladu umístit druhý token
    • jediný token fungující pro oba jazyky stačí u
      • pole typu datum - obsah pole se přeloží automaticky
      • pole typu textový seznam, který má přeložené hodnoty (ale ne pro hodnoty tahané přes entityreference z jiného uzlu!)

Send mail

  • připravit větvení SWITCH pomocí proměnné site:current-page:language-content
  • CASE: Česky, Fall trough: false
    • Add action - Send mail... vložit české texty a proměnnou s českým textem emailu
  • CASE: Anglicky, Fall trough: false
    • Add action - Send mail... vložit anglické texty a proměnnou s anglickým textem emailu