SetLocale podle domény (vlastní config) Kdyby/Translation
- lokix
- Člen | 11
Zdravím zde na fóru,
měl bych jeden takový problém a nevím jak na to. S kolegou děláme
vícejazykový web, ale formou co jazyk to vlastní doména. Tedy 1 zdroj dat a
na něj směřované ostatní domény a podle domén se natáhne dodatečný
domain.config.neon, který každý má vlastní routy podle jazyku a taky
definici defaultu: translation:
default: jazyk dle domény
fallback: cs_CZ, cs Jenže při testu bohužel v panelu mám vždy cs i když
jsem třeba na sk doméně atd. V panelu mám jen:
Front:Homepage:kontakty cs
LocaleParamResolver NIC (prázdná hodnota)
AcceptHeaderResolver cs
Routy fungují a mám samo: <locale=sk sk<presenter>/<action>
6ádným překlikáním vlaječek ani detekcí header, pouze všichni na dané doméně např.: sk se má nastavit sk a je jedno jakou mají hlavičku jestli rozumíte. V podstatě nic nezmění ani to když na cz nastavím default třeba hu, sk nebo pl – pořád cs.
- GEpic
- Člen | 566
Asi bych se spíš spolehl na nastavení persistentního parametru, který by
se nastavil podle aktuální domény třeba v BasePresenteru
ve
startup
metodě a poté nastavil translator
(pokud ho
tedy využíváte)
Používá se to často a tyto věci, co popisuješ nemusíš vůbec řešit.
abstract class BasePresenter extends Nette\Application\UI\Presenter
{
/** @var string @persistent */
public $lang = "cz"; // Vychozi hodnota
public function startup()
{
parent::startup();
$this->lang = /* Zjisteji jazyka dle domeny */;
$this->translator->setCurrentLang($this->lang); // Pri pouziti LiveTranslatoru
}
}
Editoval GEpic (11. 5. 2016 23:53)