Autor Téma: Jazyková lokalizace v rozsáhlé aplikaci  (Přečteno 2658 krát)

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1112
  • Karma: 47
    • Verze Delphi: 10.3
Re:Jazyková lokalizace v rozsáhlé aplikaci
« Odpověď #15 kdy: 09-12-2019, 20:48:37 »
Zkoušel jsem v Better Translation Manageru načíst .bpl - funguje, načte.

Jinak k té velikosti - není to nakonec jedno, jestli je jeden veliký .exe, nebo jeden menší .exe a k němu další .bpl, takže celková velikost je stejně spíš větší? Normálně si Win natáhnou do paměti stejně jen tu část, která je potřeba.

Offline neo

  • Plnoletý
  • ***
  • Příspěvků: 120
  • Karma: 2
    • Verze Delphi: Delphi 6, Delphi 10.3.3
Re:Jazyková lokalizace v rozsáhlé aplikaci
« Odpověď #16 kdy: 09-12-2019, 20:54:34 »
Tak to je dobrá zpráva.
Jinak v runtimu je to asi jedno ale během vývoje se nemusí kompilovat tolik řádků ... jedná se o cca 3 000 000 řádků.

Offline neo

  • Plnoletý
  • ***
  • Příspěvků: 120
  • Karma: 2
    • Verze Delphi: Delphi 6, Delphi 10.3.3
Re:Jazyková lokalizace v rozsáhlé aplikaci
« Odpověď #17 kdy: 18-12-2019, 09:04:07 »
Zapátral jsem na netu a vychází mi čtyři varianty pro lokalizaci. Zajímají mě vaše názory, pokud se někdo něčímm podobným zabýval.
Vandrovnik doporučuje Better translation. Líbí se mi také - trochu se obávám ztráty další podpory. K dispozici jsou zdrojáky.
GNU gettext - do něj se mi moc nechce jít.
Další dva nástroje jsou komerční - cena není podstatná.

Samozřejmě se pustím do testování jednotlivých možností - úvodní názor více lídí může být zajímavé vodítko pro výběr.

https://bitbucket.org/anders_melander/better-translation-manager/src/master/  ... zajímavá varianta
nebo
GNU gettext
nebo
Tsilang    https://www.tsilang.com/
nebo
Sisulizer  https://www.sisulizer.com/

Apliace má přes 1700 dfm souboru a desítky tisíc řetězců k překladu. Požadované jazyky anlgličtina, němčina, maďarština, rumunština, bulharština.
Přepínání jazyků v runtimu. Překlad by probíhal průběžně, pokud by to bylo možné tak i za aktivní pomoci zákazníku.
Je potřeba mít spolehlivý a stabilní nástroj pro řízení a správu lokalizací.

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1112
  • Karma: 47
    • Verze Delphi: 10.3
Re:Jazyková lokalizace v rozsáhlé aplikaci
« Odpověď #18 kdy: 18-12-2019, 09:17:32 »
Když jsem chtěl laborovat s GetText a nějaký si tu nainstaloval, nešlo mi pak z GetIt instalovat JVCL. V poznámkách mám, že instalace JVCL pomocí GetIt selže (naprosto zahltí počítač), pokud je během jeho instalace dostupná složka C:\Program Files (x86)\dxgettext, protože si to z ní iniciativně spouští nějaký .exe (asi pro překlad textu), který ale nefunguje správně, takže za chvíli visí spuštěný tolikrát, že je počítač zralý na reset.

Offline neo

  • Plnoletý
  • ***
  • Příspěvků: 120
  • Karma: 2
    • Verze Delphi: Delphi 6, Delphi 10.3.3
Re:Jazyková lokalizace v rozsáhlé aplikaci
« Odpověď #19 kdy: 19-12-2019, 08:55:43 »
Tak jsem zkusil Better translation ... ale lokalizaci to nenačte ... nechodí mi ani demo. Postup je tak jednoduchý, že se v něm snad nedá udělat chyba ... ale prostě to nechodí :-)
Další otázka je, jak přepínat jazyky za chodu ?

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1112
  • Karma: 47
    • Verze Delphi: 10.3
Re:Jazyková lokalizace v rozsáhlé aplikaci
« Odpověď #20 kdy: 19-12-2019, 10:26:44 »
Pro inspiraci - určitě by to šlo udělat i lépe. Nevím, jestli je ještě nutné to ScaleForPPI, v nějaké verzi to bez něj haprovalo a pak jsem to už znovu nezkoušel.
Unita ReInit byla kdysi převzatá z nějaké ukázky.

Kód: Delphi [Vybrat]
  1. uses ReInit;
  2.  
  3. procedure TMainForm.NastavJazyk(aIsoZkratka: string);
  4.  var Nacist: string;
  5.  begin
  6.  if JsouOtevrenaOkna then begin
  7.   Nahlas(xxNemuzePrepnoutJazyk);
  8.  end else begin
  9.   Nacist:=UpperCase(aIsoZkratka);
  10.   if Nacist='CS' then Nacist:='' else
  11.   if Nacist='PL' then Nacist:='PLK' else;
  12.   if Nacist='DE' then Nacist:='DEU';
  13.   MainForm.ScaleForPPI(96); // jinak se po reinicializaci nezobrazi spravne
  14.   LoadNewResourceModule(Nacist);
  15.   ReinitializeForms;
  16.   FormShow(self);
  17.  end;
  18. end;


Offline JaroB

  • Guru
  • *****
  • Příspěvků: 1013
  • Karma: 29
    • Verze Delphi: XE8, Seattle
Re:Jazyková lokalizace v rozsáhlé aplikaci
« Odpověď #21 kdy: 19-12-2019, 11:04:36 »
Pořád ještě používám RxTranslator z RxLibrary na form pro jednoduché aplikace a je to adoptovaný kód Vladimira Gaitanoffa z vgLib a používá se to úplně stejně.

Offline neo

  • Plnoletý
  • ***
  • Příspěvků: 120
  • Karma: 2
    • Verze Delphi: Delphi 6, Delphi 10.3.3
Re:Jazyková lokalizace v rozsáhlé aplikaci
« Odpověď #22 kdy: 19-12-2019, 11:12:54 »
Díky za tip ... ale jak jsem již psal ... tady se jedná o více než 1700 dfm a přes 11 000 resource stringu a přes 90 000 položek k překladu. Vše do několika jazyků. Vlastní překlad bude dost nákladný a proto hledám robustní řešení .. spíše komerční produkt.

Offline neo

  • Plnoletý
  • ***
  • Příspěvků: 120
  • Karma: 2
    • Verze Delphi: Delphi 6, Delphi 10.3.3
Re:Jazyková lokalizace v rozsáhlé aplikaci
« Odpověď #23 kdy: 24-12-2019, 00:16:00 »
Tak jsem zkusil Better-translation-manager  - a opravdu funguje dobře. Lokalizuje jak EXE tak BPL. Metodicky funguje podobně jako localizátor od Zbyška Hlinky.
Rychlost lokalizované aplikace se subjektivně zdá stejná jako bez lokalizace. Zatím se jedná o první testy ale vše se jeví OK.

Zatím se mi nedaří zprovoznit přepínání jazyků v runtimu.

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1112
  • Karma: 47
    • Verze Delphi: 10.3
Re:Jazyková lokalizace v rozsáhlé aplikaci
« Odpověď #24 kdy: 24-12-2019, 09:08:32 »
Tady je ukázka, .exe v ní sice není, ale zkoušel jsem a přepnutí fungovalo.

Offline neo

  • Plnoletý
  • ***
  • Příspěvků: 120
  • Karma: 2
    • Verze Delphi: Delphi 6, Delphi 10.3.3
Re:Jazyková lokalizace v rozsáhlé aplikaci
« Odpověď #25 kdy: 27-12-2019, 10:20:16 »
Díky, zkusím :-)

Offline Slavomir

  • Mladík
  • **
  • Příspěvků: 58
  • Karma: 0
    • Verze Delphi: XE2 + 10.3 Community Edition
    • RQ Money
Re:Jazyková lokalizace v rozsáhlé aplikaci
« Odpověď #26 kdy: 31-12-2019, 23:58:34 »
Úspešne používam už niekoľko rokov výborný český LangMan.
Lazarus, Delphi - RQ Money

Offline neo

  • Plnoletý
  • ***
  • Příspěvků: 120
  • Karma: 2
    • Verze Delphi: Delphi 6, Delphi 10.3.3
Re:Jazyková lokalizace v rozsáhlé aplikaci
« Odpověď #27 kdy: 06-01-2020, 20:49:14 »
Možná bude pro ostatní užitečné malé shrnutí. Po delším "výzkumu" se přikláním k použití SiSulizeru. Vzhledem k tomu, že se bude lokalizovat velice rozsáhlý komerční produkt tak cena nehraje roli. Je zde vyřešena distribuce a výměna překladových souborů pro jednotlivé jazyky (oddělený export a import překladových dat) a aplikace se jeví dostatečně robustní. Existuje podpora a je zajištěna kontinuita vývoje. Sice je to relativní ale u větších projektů důležité. Integrace do aplikace a run-time přepínání proběhlo bez potíži. Better translation je stejně použitelný ale dle mého méně robustní. V žádném případě to není chyba ale pro komerční projekt se mi zdá SiSulizer vhodnější. Případné další komentáře přivítám.