book
  • Book
  • Nette Framework
    • How to start developing multilanguage website with Nette Framework and Kdyby\Translation
    • Jak na multijazyčný web s Nette Framework a Kdyby\Translation
    • Načítání Facebook postů v Nette Framework
    • Jak začít a propojit Doctrine a Nette Framework
    • Zkrášlujte formulářové prvky, snadno pomocí setOption
    • Jak řešit překlady flash zpráviček v Nette Framework
Powered by GitBook
On this page
  • Instalace
  • Konfigurace
  • Presenter
  • Router
  • Slovníky
  • Obsah slovníku
  • Šablona
  • Profit

Was this helpful?

  1. Nette Framework

Jak na multijazyčný web s Nette Framework a Kdyby\Translation

PreviousHow to start developing multilanguage website with Nette Framework and Kdyby\TranslationNextNačítání Facebook postů v Nette Framework

Last updated 4 years ago

Was this helpful?

Na Nette fóru se objevila otázka . Také jsem měl před časem podobnou otázku a řekl si, že už to nebudu pytlíkovat "tak nějak podle sebe", ale použiji řešení od Filipa Procházky a musím říci, že jsem udělal dobře. Bylo to po Filipově ve které mě nalákal na spoustu super drobností.

Rozhodl jsem se tedy, že natočím video, ve kterém Kdyby\Translation použiji a zkusím se vejít do 4 minut ať je vidět, že začít je opravdu snadné.

Instalace

instalace Nette web project $ composer create-project nette/web-project

instalace Kdyby/Translation $ composer require kdyby/translation

Konfigurace

do config.neon přidáme extension

extensions:
    translation: Kdyby\Translation\DI\TranslationExtension

Presenter

Do BasePresenteru přidáme proměnou $locale a necháme si injectnout službu Translator, která nám vše bude překládat (v ukázce nemám BasePresenter, ale pouze jeden presenter HomepagePresenter)

Proměnná $locale je , proto aby se "neztratila" během procházení webem.

{
    /** @persistent */
    public $locale;

    /** @var \Kdyby\Translation\Translator @inject */
    public $translator;

}

Router

Nahradíme původní definici defaultního routeru

$router[] = new Route('[<locale=cs cs|en>/]<presenter>/<action>', "Homepage:default");

Slovníky

Do adresáře app/lang přidáme dva soubory ui.cs_CZ.neon a ui.en_US.neon

takže pokud bych chtěl třeba ruštinu tak použiji koncovku ru_RU

Keeping both the language and the country in the culture is necessary because you may have a different French translation for users from France, Belgium, or Canada, and a different Spanish content for users from Spain or Mexico. The language is coded in two lowercase characters, according to the ISO 639-1 standard (for instance, en for English). The country is coded in two uppercase characters, according to the ISO 3166-1 standard (for instance, GB for Great Britain).

Obsah slovníku

ui.cs_CZ.neon

title: Vitejte

ui.en_US.neon

title: Hello

Šablona

V šabloně použijeme makro {_ ui.title} pro vypsání překladu.

Profit

kde ui je pojmenování našeho slovníku a cs_CZ je kombinace jazyka a státu ( a )

Používám formát

Začít je opravdu snadné. Více najdete v dokumentaci na

Ako jednoducho spravit viacjazycny portal?
Kdyby\Translation
přednášce
https://www.youtube.com/watch?v=9u7S8tDWRxY
persistentní
ISO_639-1
ISO 3166-1
http://symfony.com/legacy/doc/book/1_0/en/13-I18n-and-L10n
neon
https://github.com/Kdyby/Translation/blob/master/docs/en/index.md