Přechod na nový NetteTranslator

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
miler
Člen | 75
+
0
-

Ahoj,

používám NetteTranslator a rád bych ho aktualizoval na verzi 2.0.0.

V configu mám službu translator definovanou takhle:

services:
	translator:
		create: NetteTranslator\Gettext::getTranslator

	setup:
		- addFile(%appDir%/lang, frontend)
		- NetteTranslator\Panel::register

Teď je to ale na pla-nette popsané trochu jinak a moc tomu nerozumím.

Já tu službu už v configu předávám jiné službě, jak to teď v té nové konfiguraci udělám, prosím?

Editoval miler (31. 3. 2013 0:47)

castamir
Člen | 629
+
0
-

V podstatě se toho pro tebe moc nemění. Zjednoduší se zápis, ale jinak to budeš moct používat vlastně úplně stejně.

#definice NetteTranslator
	netteTranslator:
		lang: cs
		files:
			frontend: '%appDir%/lang'
#pouziti NetteTranslator u dalsich sluzeb
	services:
		tvaSluzba: TvaTrida ( @netteTranslator.translator )
		# nebo to nechas na auto-wiring
		tvaSluzba: TvaTrida

Editoval castamir (31. 3. 2013 1:11)

miler
Člen | 75
+
0
-

Paráda, já právě zkoušel

tvaSluzba: TvaTrida ( @netteTranslator )

a to mi nešlo. Díky moc!

castamir
Člen | 629
+
0
-

Mírně jsem doplnil ten ukázkový neon.

miler
Člen | 75
+
0
-

Ještě jeden dotaz – po přechodu na novou verzi se potýkám s:

exception 'Nette\InvalidStateException' with message 'Language must be defined.'
in web\libs\Plugins\NetteTranslator\Gettext.php:102

ale pouze u AdminModule, u FrontModule to jde bez problémů, oba dědí od stejného BasePresenteru. V DebugBaru je normálně $lang nastavená.

castamir
Člen | 629
+
0
-

Nenastavuješ tam prázdný string? Třeba i nechtěně? Je fakt, že tohle ošetření by tam chybí. Tahle výjimka je vyhozená až jako důsledek.

Editoval castamir (31. 3. 2013 3:18)

miler
Člen | 75
+
0
-

Omlouvám se, něvím co jsem změnil, různě jsem si dumpoval getLang(), byl vždy naplněný, nicméně najednou to jde. Taky jsem ztměnil routu – pro AdminModule jsem neměl lang v hezké URL. Každopádně ještě jednou díky moc za pomoc.

Editoval miler (31. 3. 2013 3:30)