Lokalizace dlouhých řetězců

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

Ahoj,

prosím, začal jsem na webu používat add-on kdyby/translation, který načítá texty z neonu. Všechno fungovalo krásně do doby, než jsem se pokusil načíst poměrně dlouhý text. Dokud tento string mám v neonu, tak web se nenačte (na localu) – hlásí klasiku „Chyba spojení“.

První prosba: Tušíte jak by to šlo rozchodit na tom neonu (než to předělávat do nějakých složitých věcí)…

A druhá prosba: Mohl by mě někdo prosím trochu nasměrovat jak by se to mělo řešit správněji… moc se mi nechce dělat lokalizované celé šablony a nějaký rozumný mezistupeň mě nenapadá.

Děkuji.
Roman

David Matějka
Moderator | 6445
+
+3
-

Mozna to bude souviset s: https://forum.nette.org/…ows-riesenie

ChocoTUx
Člen | 31
+
0
-

Super, řešní funguje.

Děkuji Davide :)

Každopádně mám pocit že celý je to docela prasárna (nechávat takové dlouhé texty překládat v tomto modulu).
Pokud máte nějaký drobný článek jak se to řeší nebo stručně popsat možnost… byl bych moc rád.

Roman

akadlec
Člen | 1326
+
0
-

A co to jsou za texty? Jestli třeba náhodou nepatří mimo tento translátor např. do db?

ChocoTUx
Člen | 31
+
0
-

Jako v podstatě je to obsah celé stránky…takže ve finále řeším lokalizaci celé template. Myšlenka byla taková, že to je jediná taková stránka a proto jsme to nechtěli komplikovat…

Každopádně kdybych chtěl řešit lokalizaci template tak se mi nepodařilo najít článek, který by to alespoň trochu popsal…

Pavel Kravčík
Člen | 1196
+
0
-

Pokud je to jedna stránka tak bych to řešil jednoduše. Možná se tím i zjednoduší překlad, pokud to nebude vytržený z kontexu.

	cz.stranka.latte
	en.stranka.latte
akadlec
Člen | 1326
+
0
-

tak pokud je to jedna šablona view či tak něco, tak proč to nerozdělit na soubory? Než to pracně celé cpát do translatoru?

Dle mě, obecně, by se měl translator použít na informační hlášky, tlačítka, formuláře apod. prvky co netvoří obsah a obsah by se měl řešit jinde, třeba v databázi.

ChocoTUx
Člen | 31
+
0
-

njn, ale pak s narůstem jazyků bude pak každá změna v kodu docela brutal (toho se chci vyhnout)…ale asi použiju databázi nebo nějaký externí soubor na načítání… nevidím jinou cestu, jak vkládat delší texty a nechat přitom jednu latte šablonu (ještě je možnost použit include blocky), ale to taky nevím jeslti je úplně super řešení…
Respektivě teď spíše hledám možnosti, které se dají použít.

akadlec
Člen | 1326
+
0
-

tak pokud plánuješ 20 jazykových mutací tak asi jo, ale 2–4 jazyky v jedné šabloně zas tolik starostí nenadělají, navíc když jde jen o jednu stránku.

ChocoTUx
Člen | 31
+
0
-

A kdybych to chtěl řešit přes databázi? Vytvořil bych si componentu něco jako Article a kde něco takového budu potřebovat, tak zavolam v šabloně {control s parametry} //teda ještě jsem nezjistil, jak přidat parametry, snad to půjde :D.

ChocoTUx
Člen | 31
+
0
-

No nakonec jsem to vyřešil tak, že jsem si udělal v databázi tabulku (text, jazyk, identifikator). S tabulkou pracuje komponenta, kterou pak na mistech kde ji potrebuji volam {control} a predavam jazyk s identifikatorem.
Je to prijemne jak pro spravu tech clanku tak i pro psani sablon, kde staci opravdu trochu (zbytek nette a basePresenter).

Dikec kluci za konzultaci.
Roman

Filip Procházka
Moderator | 4668
+
0
-

Translator je určený na překlad aplikace – tedy třeba menu (pokud není dynamické), hlášky, formuláře, věci typu „pod článkem je 10 komentářů“ a další podobné věci.

Není ale určený na překlad samotného obsahu… na to se hodí lépe databáze, nebo pokud děláš převážně statický web, tak klidně stačí i mít více šablon pro jednu stránku, jak už navrhoval @kzk_cz.

ChocoTUx
Člen | 31
+
0
-

Mohl jsem to vyřešit pomocí duplicitních šablon v jazykových mutací… ale tak už jsem se zabral do toho tématu, že mě zajímalo, jak by se to mělo správně řešit… respektivě jak obsluhovat tu databázi? Dá se moje řešení považovat za nějaké rozumné?

akadlec
Člen | 1326
+
0
-

Tak je to vždy o tom co od toho chceš, jak to chceš administrovat apod. Dle toho se pak navrhne řešení.

Azathoth
Člen | 495
+
-1
-

Taky jsem se s tím problémem setkal. Jaký je best practise, když mám dlouhé texty, které ale nebudu administrovat, resp. budu je administrovat tím, že je přepíšu v tom souboru, jako v Kdyby\Translation?

akadlec
Člen | 1326
+
0
-

už to tady padlo

Azathoth
Člen | 495
+
0
-

Spíš mi jde o to, když je na webu stránka „o nás“, kde je odstavec textu, tak velký, že se nevejde do jednoho překladu a přitom to je podle mne logicky spíš část aplikace, protože okolo toho jsou další věci, jako formuláře, apod., které se překládají přes Kdyby/Translation.
Teď mám ten odstavec rozseknutý na dva řádky v překladu, ale dělat jen na tuhle jednu stránku více šablon mi přijde trochu jako overkill.

ChocoTUx
Člen | 31
+
0
-

No v podstatě chápu to, že best practise je tady závislé na okolností. Pokud takových textů máš více, tak je dobré udělat v databázi tabulku na to a řešit to přes nějakou třídu, která to odbavý. Pokud to jsou dvě tři místa a nemáš ani moc jazyků, tak má smysl to řešit přes duplicitní šablony (nebo v šabloně mít include a vkládat tam přeložené bloky). – tím že můžeš do jedne latte šablony vložit více bloků, tak si můžeš udělat něco jako cz_text.latte a uvnitř mít {block #text_onas} {block #text_faq} a načítat co potřebuješ (je to správa v jednom souboru… (ale tohle asi nebude úplně pěkné řešení).

Asi nejčisčí vidím použití databáze, ale programovat kus kódu kvůli jednomu odstavci je svým způsobem možná větší overkill.

David Matějka
Moderator | 6445
+
-1
-

Castecne by tuto mezeru, kdy je databaze zbytecny overkill a v neonu je to neprehledny (treba i kvuli tomu, ze retezec nejde hezky zformatovat na vic radku), mohlo vyresit jednoduche rozsireni NeonFileLoader-u v kdyby/translation, aby podporoval include z textovych souboru, pak by se neon zprehlednil treba na

my:
	string: Include(foo.cs.txt)

co myslite? mam poslat PR? :)

ChocoTUx
Člen | 31
+
0
-

Jako ve finále, kdo řeší překlady, tak stejně bude ve většině případů řešit i delší texty (přece obsah je hlavní doménou webů), takže i v mém případě nakonec nějak implementuji databázi… Je otázka jestli vůbec psát rozšíření, které povolí takové menší prasárny „lokalizovat obsahu přes translator“, ale myslím že pár lidem to může usnadnit práci, takže proč ne :)

Azathoth
Člen | 495
+
+1
-

jestli to chceš dělat přes databázi, a používáš doctrine, tak doporučuji https://github.com/…nslatable.md

Jiří Nápravník
Člen | 710
+
0
-

Nevývíjíš na Windows a pak to běží na Linuxu a ty neony mezi sebou převádíš? Já jo a dělá mi to pávě obdobný problém. Tak jestli tam nemůže být nějký konflikt v tomhle ohledu

Používám Kdyby/Translation nejen na jednoduché fráze, ale například i box od facebooku pro každou mutaci jiny, formular pro mailchimp apod.

Azathoth
Člen | 495
+
0
-

ano, vyvíjím na windows a pak to cpu na linux server. Jaký problém by tam mohl být? A jak se ho zbavit?

Jiří Nápravník
Člen | 710
+
0
-

Nevim, jaky problem tam muze byt a treba to nesouvisi, ale ja kdyz si stahnu ty neony ze serveru (tam jsou zpracovany pomoci aplikace, ci-li linux) a dam je u sebe na windows, tak se to chova prave nejak podobne divne… obracene to same

Pavel Kravčík
Člen | 1196
+
0
-

@Azathoth, @JiříNápravník: Nám ve firmě to občas změní velikost písmen – z autoFormulář se stane autoformulář a podoboně. :)