Lokalizace dlouhých řetězců
- ChocoTUx
- Člen | 31
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
- ChocoTUx
- Člen | 31
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
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
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
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.
- ChocoTUx
- Člen | 31
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
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.
- Azathoth
- Člen | 495
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
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
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
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
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
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.
- Jiří Nápravník
- Člen | 710
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
@Azathoth, @JiříNápravník: Nám ve firmě to občas změní velikost písmen – z autoFormulář se stane autoformulář a podoboně. :)