Contributte/Translation – integrace symfony translation do Nette

jikki
Člen | 71
+
0
-

Ahoj lidi,

funguje vám fallback, tak jak je to uvedené configu v dokumentaci?

translation:
	locales:
		whitelist: [en, cs, sk]
		default: en
		fallback: [en]

Mě to nefunguje, ale zjistil jsem, že když napíšu en_US místo en, tak to funguje. Zkoušel jsem verzi 0.8.3 a 0.9.3

		fallback: [en_US]

Nevím, jestli je to chyba u mě nebo v balíčku. Potvrdí někdo?

Díky moc

SankaCoffee
Člen | 7
+
0
-

Podíval jsem se do posledního projektu a funguje to s nastavením dle dokumentace. Jede to na verzi 0.8.3.

translation:
    locales:
        whitelist: [en, da]
        default: da
        fallback: [da]
jikki
Člen | 71
+
0
-

SankaCoffee napsal(a):

Podíval jsem se do posledního projektu a funguje to s nastavením dle dokumentace. Jede to na verzi 0.8.3.

translation:
    locales:
        whitelist: [en, da]
        default: da
        fallback: [da]

Díky za potvrzení. Kamarád, který má 0.8.3 a nejdříve tvrdil, že mu to funguje, nakonec zjistil, že má stejný problém jako já. Když smaže jeden konkrétní CS překlad, vymaže app cache, tak by se měl ten konkrétní překlad zobrazit ve fallback jazyce, v našem případě EN. Ale zobrazí se messages.domain.text. Asi máme s kamarádem stejnou chybu, nenapadá mě však kde ani jak to zjistit.

Editoval jikki (17. 9. 2021 9:50)

jikki
Člen | 71
+
+1
-

Už asi vím, kde vzniká problém.
V dokumentaci je uvedené, že config soubor by se měl jmenovat např. messages.en_US.neon.
Když soubor přejmenuji na messages.en.neon, tak fallback funguje is s pouhým en.

@SankaCoffee Jak máš prosím tě pojmenované config soubory u sebe?

Michal Kumžák
Člen | 106
+
0
-

jikki napsal(a):

Už asi vím, kde vzniká problém.
V dokumentaci je uvedené, že config soubor by se měl jmenovat např. messages.en_US.neon.
Když soubor přejmenuji na messages.en.neon, tak fallback funguje is s pouhým en.

@SankaCoffee Jak máš prosím tě pojmenované config soubory u sebe?

Zdar

Tohle je podle mě pro případ, kdy máš více verzí stejného jazyka.

SankaCoffee
Člen | 7
+
0
-

@jikki pokud se nic nezměnilo, tak dle dokumentace (přecházel jsem na Nette 3.0 a musel jsem se zbavit Kdyby knihoven).

app.da_DK.neon
app.en_GB.neon
datagrid.da_DK.neon
datagrid.en_GB.neon

Blonďák
Člen | 11
+
0
-

U mě to vypadlo na problém s symfony/translation vyřešil jsem to

composer require symfony/translation:v4.4.26
johnnie
Člen | 53
+
0
-

Ahoj,

riesil prosim niekto situaciu, kde na jednej appke viac domen, ktore si svoje jazyky spravuju samostatne? Jedna sa o eshop, ale kazda krajina si spravuje zvlast svoj trh a preklady.

Pouzivame nettedatabase loader a problemy nastali v momente ked viacero domen pouziva rovnaku locale.

Napr. otvorim si eshop.sk/en, prve nacitanie webu bez cache vygeneruje prekladovy subor „catalogue.en.8Fea9HX.php“.

Nasledne si otvorim eshop.de/en, ktory ma samostatne prelozenu EN verziu, no preklady cerpaju z cache suboru „catalogue.en.8Fea9HX.php“ ktory vygenerovalo nacitanie eshop.sk/en, teda nespravne preklady.

Ak niekto riesil podobnu situaciu, pripadne vie ma nasmerovat budem vdacny.

// EDIT

napadlo upravit cache > dir ale neviem ci je to spravna cesta.

	cache:
		dir: %tempDir%/cache/translations/%domainId%/

Editoval johnnie (2. 3. 16:44)

MajklNajt
Člen | 423
+
+1
-

ahoj, napadá ma jedine si tie jazyky prefixovať/suffixovať doménou… čiže nebudeš mať catalogue.en.8Fea9HX.php ale catalogue.domena1_en.8Fea9HX.php, catalogue.domena2_en.8Fea9HX.php, čiže aj locale nebude en ale domena1_en, domena2_en – akurát si budeš musieť premennú $locale modifikovať v routri.

johnnie napsal(a):

Ahoj,

riesil prosim niekto situaciu, kde na jednej appke viac domen, ktore si svoje jazyky spravuju samostatne? Jedna sa o eshop, ale kazda krajina si spravuje zvlast svoj trh a preklady.

Pouzivame nettedatabase loader a problemy nastali v momente ked viacero domen pouziva rovnaku locale.

Napr. otvorim si eshop.sk/en, prve nacitanie webu bez cache vygeneruje prekladovy subor „catalogue.en.8Fea9HX.php“.

Nasledne si otvorim eshop.de/en, ktory ma samostatne prelozenu EN verziu, no preklady cerpaju z cache suboru „catalogue.en.8Fea9HX.php“ ktory vygenerovalo nacitanie eshop.sk/en, teda nespravne preklady.

Ak niekto riesil podobnu situaciu, pripadne vie ma nasmerovat budem vdacny.

// EDIT

napadlo upravit cache > dir ale neviem ci je to spravna cesta.

	cache:
		dir: %tempDir%/cache/translations/%domainId%/
mario85
Člen | 20
+
0
-

Ahoj,
zprovozňuji balíček contributte/translation pro nette 3.1. Vše, zdá se, chodí v pořádku, jen v tracy se objevuje podivná chyba.

ErrorException: The advice of session locale resolver is required but the session has not been started and headers had been already sent. Either start your sessions earlier or disable the SessionResolver. in C:\xampp\htdocs\simonat.cz\vendor\contributte\translation\src\LocalesResolvers\Session.php:44
Stack trace:
#0 [internal function]: Tracy\Bar->Tracy\{closure}(512, 'The advice of s...', 'C:\\xampp\\htdocs...', 44)
#1 C:\xampp\htdocs\simonat.cz\vendor\contributte\translation\src\LocalesResolvers\Session.php(44): trigger_error('The advice of s...', 512)
#2 C:\xampp\htdocs\simonat.cz\vendor\contributte\translation\src\Tracy\Panel.php(94): Contributte\Translation\LocalesResolvers\Session->resolve(Object(Contributte\Translation\Translator))
#3 C:\xampp\htdocs\simonat.cz\vendor\tracy\tracy\src\Tracy\Bar\Bar.php(141): Contributte\Translation\Tracy\Panel->getPanel()
#4 C:\xampp\htdocs\simonat.cz\vendor\tracy\tracy\src\Tracy\Bar\Bar.php(113): Tracy\Bar->renderPanels('')
#5 C:\xampp\htdocs\simonat.cz\vendor\tracy\tracy\src\Tracy\Bar\Bar.php(87): Tracy\Bar->renderPartial('main')
#6 C:\xampp\htdocs\simonat.cz\vendor\tracy\tracy\src\Tracy\Debugger\DevelopmentStrategy.php(138): Tracy\Bar->render(Object(Tracy\DeferredContent))
#7 C:\xampp\htdocs\simonat.cz\vendor\tracy\tracy\src\Tracy\Debugger\Debugger.php(298): Tracy\DevelopmentStrategy->renderBar()
#8 [internal function]: Tracy\Debugger::shutdownHandler()
#9 {main}

nesetkal se s tím někdo? Případně, co přesně to znamená?
Díky

Gappa
Nette Blogger | 181
+
0
-

mario85 napsal(a):

nesetkal se s tím někdo? Případně, co přesně to znamená?
Díky

Nesetkal, ale kód okolo může napovědět:

Pokud není nastartovaná Session, ale už se odeslaly hlavičky, tak to vyhodí právě tuhle chybu. Začátek té hlášky mi ale nedává v EN moc smysl :)

Takže asi si zkusit pohrát s hodnotou u autoStart:

Editoval Gappa (24. 3. 0:06)

jannemec
Člen | 73
+
0
-

Tak podle návodu, jen jdu přes web-skeleton a dostávám chybu
Service of type Contributte\Translation\LocalesResolvers\Session

kajinek32
Člen | 27
+
0
-

Ahoj,
dá se nějak do překladového neonu zapsat array?

Potřebuju překládat nějaké odrážky, ale v každém jazyce je jich jiný počet. Myslel jsem si, že bych to vyřešil pomocí:

items:
	- Položka 1
	- Položka 2
	- Položka 3

a v latte pak „nějak“

<ul>
	{foreach _items as $item}
		<li>{$item|translate}</li> // nefunguje, protože _items nevrátí pole
	{/foreach}
</ul>

Díky za radu.