Portál AbcLinuxu, 12. května 2025 05:43
Preji pekny den
provozuji jednoduchou webovou aplikaci, ktera po odeslani formulare nejakemu PHP skriptu zpracovava vstup, vola pomocne skripty v Perlu a udela nejaky soubor, ktery se nacita pri kompilaci LaTeXem do PDF. Vysledne PDF se posila zpet (pokud nedoslo k chybe, jinak se zobrazuji ruzne chybove hlasky, podle toho, kde nastal problem).
Textove retezce jsou i tech PHP souborech (treba hlaseni, ze nastala chyba a jaka), i v tech perlovskych souborech a i v tech TeXovskych. Prepinani jazyku CZ/ENG zatim resim rozhodovanim (if then else) podle parametru v tom php, tento parametr se pripadne predava tomu perlovskemu skriptu (a taky if-then-else) a LaTeXem se kompiluje bud soubor en.tex nebo cz.tex, ktere se lisi jenom tak, ze jsou texty jsou napsane v cestine nebo anglictine.
Jak co nejlip tento zbastlenec upravit tak, aby se dal pohodlne pridat dalsi jazyk?
Koukal jsem na gettext, a to by asi bylo reseni pro tu php cast, ale nevim, jestli by prohledavanim katalogu prekladu znatelne neklesal vykon.
A co s temi texty v perlu a TeXu?
Co se týče výkonu, tam bych se nebál. Ve vaší mašinérii budou pomalejší věci. Krom toho gettext vyhledává zprávu v soboru jen při prvním dotazu na danou zprávu. Dál už leží v paměti jako statický řetězec.
V Perlu můžete opět použít gettext.
S TeXem bude trochu problém. Např. můžete \input{}em natáhnout hlavičku, která bude sama generována gettextem a bude obsahovat (odkaz na soubor s) makra s překlady.
Samozřejmě lze vynalézat divoké kombinace, ale doporučil bych veškerou lokalizaci dělat v jedné jediné vrstvě. Nezblázníte se z toho.
Ještě můžete zvážit po4a, což je nadstavba nad gettextem a umí překládat roff, TeX, XML a další formáty.
Diky, zkousel jsem to podle tutorialu zde a zde a ani jedno nefungovalo.
Mam debian Lenny, phpinfo ukazuje gettext enabled, restart apache jsem provedl, gettext a php-egttext jsou nainstalovane a presto se preklady neukazuji. Nevite nekdo co s tim?
Blba otazka: co znamena v jedne vrstve. Tim je myslen jediny .po soubor? Nebo neco jineho?
jeste jsem se chtel zeptat: mam vsechno v UTF-8, presto se mi to nekde po ceste prekodovava na ISO 8859-2
pokud pouziju emulaci gettextu pomoci php a stejny .po soubor, tak problem neni, pokud pouziju samotny gettext, tak mam probem s kodovanim.
da se to nekde poresit? Dekuji.
To bude ono. Dekuji moc.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.