Autor Téma: Usnadnění překladů aplikací  (Přečteno 520 krát)

Offline surad

  • Nováček
  • *
  • Příspěvků: 36
  • Karma: 0
    • www.instaluj.cz
Usnadnění překladů aplikací
« kdy: 15-05-2017, 19:34:32 »
Máte někdo nějaký TIP na SW / komponentu, která umí dobře spravovat vícejazyčné aplikace? Zkoušel jsem vestavěný překladač v Delphi, nevím jak starší verze ale v Seattle mi to padalo a házelo chyby, pak jsem objevil http://www.regulace.org/index.php?cPath=26 vypadá jednoduše ale než se pustím do větších akci, určitě tady někdo máte s tím zkušenosti taky...

Offline chaloup

  • Mladík
  • **
  • Příspěvků: 80
  • Karma: 9
    • Verze Delphi: Delphi 10.1
Re:Usnadnění překladů aplikací
« Odpověď #1 kdy: 15-05-2017, 20:51:35 »
Já to používám, funguje to dobře (můj názor), autor komunikuje, opravuje chyby... vyzkoušej personal verzi http://www.regulace.org/files.php?figr=1 a jsou tam i nějaký dema. Výhoda je, že se dá program překládat za běhu, bez nějakých speciálních nástrojů.
Používám to jen na VCL, mobilní aplikace lokalizovat jde bez systémových hlášek, takže taková lokalizace na 1/2. Nevím o tom, že by některý program uměl měnit v mobilní aplikaci překlady FMX knihovny. Je to bohužel nedomyšlenou prací s resource stringy v FMX. http://qc.embarcadero.com/wc/qcmain.aspx?d=119409

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 811
  • Karma: 19
    • Verze Delphi: D2007, XE2, XE6
Re:Usnadnění překladů aplikací
« Odpověď #2 kdy: 15-05-2017, 22:22:00 »
Dělal jsem něco jako multilang pro RxLibrary (je to spíš integrátor), která má vlastní jazykové mutace asi pro pětadvacet jazyků.
Pro okamžité přepínání jsem přizpůsobil komponent, který se jmenuje TRxTranslator a je určen k překladu konkrétního formuláře (má i vlastního wizarda pro stažení statických textů z formu). Používám to spíš pro jednoduché programy typu instalátor nebo nějaké utility. To je ale tak všechno, ostatní, jako třeba řízení nebo ukládání/načítání do/z DB, je svépomocí.
Docela zajímavý language switch má v TinyDB přiložený program DBManager, který umí docela zajímavě přepínat angličtinu a čínštinu a to pomocí právě uložených překladů ve vlastní DB. Pro inspiraci dobrý.

Offline surad

  • Nováček
  • *
  • Příspěvků: 36
  • Karma: 0
    • www.instaluj.cz
Re:Usnadnění překladů aplikací
« Odpověď #3 kdy: 16-05-2017, 10:38:37 »
Našel jsem i https://korzh.com/localizer to vypadá taky dosti šikovně, nicméně narazil jsem u mě na problém, používám komponenty z TMS např. AdvSmoothLabel a ani regulace.org ani korzh.com si s tím neporadí, ani JVTranslator z JEDI, nenajde to jejich stringy, tak si to nakonec asi udělám ručně :-)

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 811
  • Karma: 19
    • Verze Delphi: D2007, XE2, XE6
Re:Usnadnění překladů aplikací
« Odpověď #4 kdy: 16-05-2017, 11:30:40 »
Některé knihovny používaly zvláštně uložené resource, typicky to byla knihovna Orpheus, kde se nedalo lokalizovat přímo nad otevřeným textem ale musely se texty "rekompilovat". V některých případech to nefunguje pro kontejnery stringů uložené v DFM, protože ty zase používají jednoduché rekódování, aby se nedaly jednoduše vytáhnout :(

Offline vandrovnik

  • Hrdina
  • ****
  • Příspěvků: 253
  • Karma: 4
    • Verze Delphi: 10.2
Re:Usnadnění překladů aplikací
« Odpověď #5 kdy: 16-05-2017, 16:22:05 »
Používám ten integrovaný nástroj v Delphi Tokyo + ETM, ale žádné velké štěstí to rozhodně není. Odeberete formulář z projektu - musíte ho odebrat i z projektů s překlady (ve starší verzi to myslím šlo v rámci IDE, v téhle mi to nejde). Přejmenujete formulář (např. jsem opravoval main -> Main), v překladech ho máte dvojmo. Smažete komponentu - v překladech zůstane (ano, pouštím aktualizaci, ale ta ty odstraněné věci nevyhodí, nebo mám něco špatně nastaveno, bůh ví). Pokud je .dfm soubor velký (pár MB - obsahuje třeba sestavy ve FastReportu), jeho zpracování trvá hooodně dlouho. Také jsem nenašel žádnou možnost, jak překlady (ETM) spustit dávkově, takže laborování s AutoHotkey. Také se mi nepovedlo uspokojivě vyřešit, jak zkompilovat projekt plus všechny jazykové projekty z příkazové řádky tak, aby se něco nepokazilo (např. se "neposunuly" texty v překladech, protože interně jsou asi jen pod nějakými čísly, což je k chybám docela náchylné).

Oproti práci se stařičkým Lokalizátorem je tohle porod.

Offline surad

  • Nováček
  • *
  • Příspěvků: 36
  • Karma: 0
    • www.instaluj.cz
Re:Usnadnění překladů aplikací
« Odpověď #6 kdy: 16-05-2017, 18:46:56 »
Díky všem za info a tipy, nakonec jsem použil http://www.tsilang.com/ cena je malinko nepříjemná (mě se to vrátí), ale zato funguje bezvadně a je jednoduché, na jednom formuláři živě vidíte hned i překlad (v pohodě tak doladíte délku labelu apod.), poradí si s komponentami jako je právě TMS, umí překládat resource stringy a zdá se že i umí navázat i na obyčejné stringy přímo v kódu. Umí i nadefinované stringy exportovat do souboru pro překlad překladatelem. Zatím u tohoto vidím jen plusy a setření času práce, kvalita odpovídá ceně

Offline chaloup

  • Mladík
  • **
  • Příspěvků: 80
  • Karma: 9
    • Verze Delphi: Delphi 10.1
Re:Usnadnění překladů aplikací
« Odpověď #7 kdy: 16-05-2017, 19:54:19 »
Našel jsem i https://korzh.com/localizer to vypadá taky dosti šikovně, nicméně narazil jsem u mě na problém, používám komponenty z TMS např. AdvSmoothLabel a ani regulace.org ani korzh.com si s tím neporadí, ani JVTranslator z JEDI, nenajde to jejich stringy, tak si to nakonec asi udělám ručně :-)
LangMan z regulace.org tohle umí, v souboru LMVCLAdditions.pas se nadefinuje co má hledat, tímhle mu řeknu, že má překládat Caption na TJvSpeedButtonu:

Kód: Delphi [Vybrat]
  1. procedure RegisterAdditions(Component: TComponent); // called by LangMan while initialization
  2. begin
  3.   if Component is TJvSpeedButton then
  4.   begin
  5.     RegisterProperty(Component, (Component as TJvSpeedButton).Caption, pnCaption);
  6.     Exit;
  7.   end;
  8. end;
  9.  
  10. procedure TranslateAdditions(Component: TComponent); // called by LangMan while translate
  11. begin
  12.   if Component is TJvSpeedButton then
  13.   begin
  14.     (Component as TJvSpeedButton).Caption := TranslateProperty(Component,
  15.       (Component as TJvSpeedButton).Caption, pnCaption);
  16.     Exit;
  17.   end;
  18. end;
  19.  

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2870
  • Karma: 27
    • Verze Delphi: XE7 professional
Re:Usnadnění překladů aplikací
« Odpověď #8 kdy: 16-05-2017, 21:07:51 »
Good
Rated 2 times
Len tak, aby som mal viac príspevkov ;D
Citace
LangMan z regulace.org tohle umí, v souboru LMVCLAdditions.pas se nadefinuje co má hledat
Minimálne pre TMS v tsilang nemusím nič nastavovať. A to my striekači komponentov potrebujeme :)
Tá cena $259 sa mi nezdá, pri ostatných programoch, vysoká. A keď ju porovnám s najvyššou verziou LangMan, tak je polovičná.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Kolik je šest plus čtyři (slovem):