1
Vývoj / Re:Překlad frontendu ve Vue
« Poslední příspěvek od BoneFlute kdy Dnes v 00:19:59 »...Jen tak pro zajímavost, a v jaké podobě to dostane překladatel?
No tak PO subor to uz asi nebude. Prekladat cele templejty tiez nie je idealne riesenie, kedze mozno kvoli par vetam kopirovat cely template je dost neprijemne z mnohych hladisiek. Ale nevidim ine vychodisko momentalne.
Ono je jedna vec ked mamKód: [Vybrat]Hello <a href="@link">world</a>.
ako kedysi. Ale dnes mamKód: [Vybrat]Hello <router-link :to={...}>world</router-link>
a teda to musi byt interpretovane a nie len jednoducho vyprintovane ako plain text/html.
Tady si asi nerozumíme.
1/ Já bych to rozhodně nerozsekával. Naopak.
2/ Takto:
Kód: [Vybrat]
Hello <a href="@link">world</a>.
spíše ne.Já bych to dělal takto:
Kód: [Vybrat]
Hello <a ref="link">world</a>.
V tom překladovém řetězci je jen to nejnutnější, aby překladatel věděl, že kde ten tag začíná, kde končí, a jak se jmenuje. V žádném případě tam nesmí být žádná složitost.
Takže následně se to přeloží
Kód: [Vybrat]
<a ref="link">
se nahradí za Kód: [Vybrat]
<router-link :to={...}>
.Analogicky když máš větší komponentu. Komponenta sama o sobě je překládaná separátně. Ledaže by bylo žádoucí nějak zohledňovat kontext. Což se řeší stejným způsobem jako u toho odkazu:
Kód: [Vybrat]
Hello <a ref="link" title="To je odkaz, víme?">world</a>.
Navyse je hlavnym problemom to, ze ak mam napriklad vetuV čem přesně je ten problém? Mě to přijde celkem přímočaré a nekomplikované.Kód: [Vybrat]Hello <component>world, is it nice</component> today?
tak ja potrebujem tomu komponentu dodat prelozeny text, cize v tomto pripadeKód: [Vybrat]world, is it nice
lenze to skratka nie je nijako mozne kedze ja nemam ako urobit interpetaciu otvaracich a zatvaracich tagov toho komponentu a vyrenderovat to dynamicky a nemozem to rozsekat na 3x t() pretoze tam nema sancu vediet sklonovanie.
Mám komponentu ve zdrojáku (pseudokód):
Kód: [Vybrat]
trans = "Hello <component ref="a">world, is it nice</component> today?"
node = translator.translate(trans)
component_a = createComponentA()
component_a.content = node.placeholders['a'].content
node.translate(["a": component_a])
toliko princip. Předpokládám, že každý normální FW to bude mít nějak řešený. Přiznávám, že jak je to řešené ve Vue nevím, ale pokud jsem se ztratil v teorii, a ty si chtěl konkrétní řešení zrovna pro Vue, tak se omlouvám.
Takhle bych to řešil, a pokud to Vua neumí, tak bych si to naimplementoval.
Proste poreklady v dynamickych/interpretovanych JS frontendoch je naproste peklo pretoze dnes prakticky dynamicky tvorime templejty ktore musia byt interpretovane nez vypoluju vysledok kdzeto v minulosti sa len printoval primo text bez dynamickych komponentov.Pokud se ošklivě nepletu, tak bych ten problém spíše viděl v tom, že se na to autoři vykašlali :-) Jak na to by neměl být problém. Že to není naimplementované, to je možné.