Lokalizace

Renderer zpřístupňuje aktuální jazyk, překlady a generování lokalizovaných URL. Přepínač jazyka je běžný odkaz vykreslený na serveru.

Nastavení jazyků

Localization.yaml nastavuje default_locale i fallback_locale na cs a v supported_locales povoluje cs/en. url.enabled zapíná lokalizované URL. Soubor se načte jen tehdy, když manifest Config.yaml uvádí modul Localization.

app/Config/Localization.yaml
module: localization
config:
  default_locale: cs
  fallback_locale: cs
  supported_locales: [cs, en]
  url:
    enabled: true

Překladový soubor

app/Language/en/messages.php vrací překlady anglické skupiny messages. Jméno souboru určuje skupinu, proto se klíč welcome čte jako messages.welcome. Česká varianta patří do app/Language/cs/messages.php.

app/Language/en/messages.php
<?php

declare(strict_types=1);

return [
    'welcome' => 'Welcome to Lemonade.',
    'navigation.home' => 'Home',
];

Překlad a lokalizovaná URL

Routing registruje pojmenovanou routu home v localizedGroup(), aby pro ni šlo sestavit jazykovou URL. Ve view lang() čte aktuální překlad, localizedUrl() vytvoří odkaz a e() obě hodnoty escapuje pro HTML. Mimo view lze překlad získat přes TranslatorInterface::get().

Routing and view
<?php

declare(strict_types=1);

$router->localizedGroup(static function (Router $router): void {
    $router->getNamed(
        'home',
        '/',
        ControllerAction::for(HomeController::class, 'index'),
    );
});

?>
<!-- In a request-rendered view: -->
<h1><?= e($this->lang('messages.welcome')) ?></h1>
<a href="<?= e($this->localizedUrl('home')) ?>">Home</a>
Související dokumentaceVíce informací najdete v kapitole Lokalizace v dokumentaci.

← Všechny ukázky