Zmiana języka aplikacji

0

Witam,
chcę zmienić język z aplikacji napisanej w Delphi 10.1-10.2. Po moich poszukiwaniach wytypowałem 3 pakiety:

Wcześniej pod Delphi7 korzystałem z darmowego DelLoc jednak nie ma obecnie wsparcia dla nowych Delphi no i sprawdziłem, że jest problem z Unicode.
Na stronie pakietów mogę poczytać jakie są mocna strony każdego z nich, pobrałem wersje testowe i też trochę się nimi pobawiłem. Podczas testów trudno jednak wyłapać wszystkie mankamenty. Czy ktoś korzysta z któregoś z wymienionych wyżej pakietów i mógłby się podzielić swoimi przemyśleniami? W każdym pakiecie znalazłem fajne opcje ale niektóre są na tyle rozbudowane, że nie sposób sprawdzić wszystkiego. Potrzebuję wprowadzić wersje językowe do aplikacji, najlepiej ze zmianą języka z locie (chociaż nie jest to warunkiem koniecznym). Baz danych nie mam do tłumaczenia, Jedynie może skorzystałbym jeszcze z takiego 'tłumacza' przy lokalizacji help-a (.chm). Wygooglowałem trochę porównań ale od momentu publikacji tamtych wpisów trochę mogło ulec zmianie. Chciałbym zrobić kompleksowe tłumaczenie - także komunikatów w ustawieniach drukarki itp. Planowany budżet to 250-400$ czyli tak jak podstawowe wersje proponowanych pakietów. Będę wdzięczny za wszelkie sugestie i opinie, zwłaszcza obiektywne lub podsunięcie jakiejś innej ciekawej alternatywy. Chciałbym podjąć decyzję do końca weekendu.

0

jeszcze moze LangMan: http://www.regulace.org/category/26/LangMan-Components-for-Delphi,
ale nie testowałem, proste tłumaczenia można napisać samemu, ale już jakieś printdialogi to wyższa szkoła i trzeba by porzeźbić. Więc jak jest hajs na zakupy to można coś wybrac.

0

A może w ten sposób: https://github.com/albireo77/devflowcharter/blob/master/Common/LocalizationManager.pas
Przykładowe pliki translacji są w tym projekcie w katalogu loc.

0

Dzięki za przesłane propozycje. Bardziej wolałbym sugestie odnośnie zaproponowanych wcześniej pakietów bo trochę czasu poświęciłem już na zapoznanie się z nimi. Nowe rozwiązania to znowu czas potrzebny na sprawdzenie co to jest warte. Szczególnie, że poza linkami nie ma waszych opinii na temat proponowanych rozwiązań. Na szczęści kwestia tłumaczenia została przeniesiona na później. Obecnie nie mam czasu żeby się tym zająć ale jak wrócę do tematu to napiszę które rozwiązanie wybrałem i czemu.

0

Chcesz doświadczenia ... ok w linku, który Ci podałem sam naniosłem wiele zmian, autor zrobił szkielet ale aby było to w miarę użyteczne musiałem tam dorzucić nieco pracy. Użyłem to produkcyjnie tu: http://www.controlsys.com.pl/rejestracja-czasu-pracy/oprogramowanie-rcp/punktualnik-2-0-rcp/ i tu: http://www.controlsys.com.pl/kontrola-dostepu/oprogramowanie-kd/punktualnik-2-0-kd/ choć przez te kilka lat, odkąd opuściłem firmę ControlSYS mogło spowodować, że już tego nie używają. Finalnie projekt działa tak, że masz plugin (ja to robiłem na Delphi 2009), który zrzuca ci do pliku wszystkie komponenty z tekstowymi metodami, w pliku wystarczy jedynie zmienić tłumaczenie (plik chyba ini z tego co pamiętam). Następnie dodajesz unit z tematu do usesów i reszta działa. Fakt nie testowałem tego od lat ale niedługo sam będę coś takiego potrzebował w obecnym projekcie więc nie wykluczone, że wtedy zaktualizuję to narzędzie. No chyba, że ty lub ktoś inny przekona mnie do czegoś lepszego/nowszego

0

kolega chciał aby to było tłumaczenie całości, nawet printdialogów jak pamiętam, wątpie czy zwykłe tłumaczenie stringów załatwi to. Ale to tylko uwaga.

0
Clarc napisał(a):

Chciałbym zrobić kompleksowe tłumaczenie - także komunikatów w ustawieniach drukarki itp.

@baszta1: zależy czym są te "komunikaty w ustawieniach drukarki". Na pewno nie załatwi tego proste iterowanie po komponentach, bo do takich w dialogach systemowych nie ma łatwego dostępu.

Pozostaje jeszcze kwestia sensu tłumaczenia dialogów systemowych – nie spotkałem się jeszcze z aplikacją, która by to robiła. System mam w polskiej wersji językowej, a wszystkie programy używają j. angielskiego do interfejsu. No i każdy z nich wywołuje dialog drukarki w języku systemu, a nie UI.

Jedyny sens tłumaczenia systemowych okien dialogowych widziałbym wtedy, gdy użytkownik nie zna języka, którym posługuje się system. Jednak taki przypadek to jakiś margines – kto używa systemu w języku, którego w ogóle nie zna?


Jeśli chodzi o własny mechanizm tłumaczenia interfejsu to sprawa wcale nie jest taka trudna, jak to może się wydawać (ale nie twierdzę, że to banał). Plik językowy może być zwykłym drzewiastym konfigiem (np. XML), w którym mamy podział na formularze, następnie formularze dzielą się na komponenty, a komponenty na właściwości. Aby odczytać ciąg dla konkretnego komponentu, wystarczy znać nazwę formularza, nazwę komponentu, a zestaw właściwości można albo hardkodować na podstawie klasy kontrolki, albo za pomocą RTTI.

Plusem było by to, że do odczytania wszystkich ciągów dla wszystkich kontrolek dowolnego formularza, wystarczy jeden uniwersalny, niezbyt skomplikowany kawałek kodu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1