Wersje językowe

Adam Boduch

Często pisząc program chcesz, aby mógł być w dwóch wersjach językowych - np: angielskiej i polskiej, ale bez konieczności wymiany całego programu. Po prostu jeden plik, który całkowicie zmienia wersje językową. Jest to możliwe o czym zaraz się przekonasz :)

Załóżmy, że masz program w polskiej wersji językowej i chciałbyś zrobić angielską. Delphi 5 ( nie wiem, czy starsze też ) udostępnia przyjemny i łatwy w obsłudze program do zmiany wersji językowych. Dzięki niemu można zmienić wszystko - od właściwości "Caption" komponentu po "dymki" podpowiedzi ( Hint ).

Ok, przyjmijmy, że masz program i chcesz zrobić angielską wersję językową. Z menu "Project" wybierz "Languages", a następnie "Add".
Pojawi się okno, w którym kliknij klawisz "Next". Następnie będziesz musiał wybrać język. Ja wybiorę "Angielski ( Stany Zjednoczone )". Postaw "haczyk" przy nazwie i kliknij "Next". Ponownie dwa razy "Next" i w końcu "Finish". Powinno wyświetlić się okno z podsumowaniem - kliknij OK - po chwili będziesz musiał zapisać "ProjectGroup" czyli kolejne udogodnienie "Borlanda" dzięki, któremu będziesz się mógł łatwo przełączać między oknami. Nie będę się tutaj na ten temat rozpisywał gdyż to nie jest temat tego artykułu. Zapisz "ProjectGroup" obojętnie gdzie.
Teraz najważniejsza część. Oto wyświetli się okienko całego programu, w którym to będziesz zmieniał wersje językową. Klikasz na napisie "Angileski (Stany Zjednoczone)" po lewej stronie co spowoduje rozwinięcie następnych kluczy. Po kliknięciu na "Forms" pojawi się lista z używanymi przez Twoją aplikację formami. Po kliknięciu na którąś z nich po prawej pojawi się tabelka. W kolumnie "Polski" znajdują się nie przetłumaczone nazwy komponentów ( tzn. nie nazwy, ale texty z właściwości "Caption" danego przycisku. ). W kolumnie "Angielski" możesz wpisać angielskie odpowiedniki ( uwaga! muszą one być wpisane w apostrofy ). Ok, w kluczu "Resource Scripts" znajdują się jeszcze inne pozycje, które możesz zmienić np. komunikaty błędów generowane przez Delphi oraz domyślne nazwy przycisków ( "OK", "Cancel", "Abort" itp. ). Możesz je także zmienić na język polski.
Teraz jeżeli to zrobisz musisz zapisać ( Ctrl + S ) i wcisnąć klawisze: Ctrl + U ( Update ). Spowoduje to zapisanie zmian. Teraz wciśnij Alt + S ( "Set Active Language" ) co spowoduje wyświetlenie kolejnego okna. Zaznacz w nim "Angielski" i kliknij "Finish". Właśnie ustawiłeś język angielski jako domyślny. Możesz już zamknąć to okno - dokonałeś przetłumaczenia na język angielski.

Teraz pozostało jeszcze skompilowanie całego skryptu. Musisz kliknąć na małym przycisku ze strzałką obok przycisku "Run" ( na pewno wiesz o który chodzi przecież to nim uruchamiasz swoje programy! ).
Rozwinie się menu, w którym musisz wybrać NIE pogrubioną pozycję - spowoduje to aktywacje skryptu. Teraz wybierz "Project" -> "Build" - skrypt zostanie skompilowany. Zapisz wszystko.

W katalogu z Twoim programem powinien znaleźć się plik z rozszerzeniem *.enu. To jest właśnie nowa wersja językowa. Ten plik musi być zawsze dołączany do katalogu z programem jeżeli chcesz mieć polską wersję. W Delphi ponownie kliknij na strzałkę obok przycisku "Run" i wybierz NIE pogrubioną pozycję - aktywowałeś właśnie swój program. Możesz go teraz uruchomić.
O ile wszystko robiłeś tak jak to opisałem w tym artykule to powinieneś mieć zmienione napisy na komponentach na takie jakie zmieniłeś.

To chyba nie jest trudny proces, co?

Jeżeli będziecie mieli jakieś pytania - piszcie!

Inne sposoby...

Taka metoda jaką tutaj opisałem jest bardzo wygodna lecz nie wszyscy mają odpowiedni program, dzięki czemu mogą to zrobić. Bo zdaje się, że możliwe jest to tylko w wersji Professional oraz Enterprise. Możecie sobie ściągnąć program Translate Master, dzięki czemu również w prosty sposób zmienisz wersję językową programu. Sam program możesz ściągnąć tutaj. Zasada działania jest prosta. Wystarczy załadować plik DFM programu. Program przeanalizuje plik i wyświetli w komponencie wszystkie komponenty użyte w programie. Również z właściwościami Caption oraz Hint. Jedno klikniecie myszy i edytujemy wybrane pozycje. Później można zapisać ponownie plik, tyle, że już zmieniony. Po otwarciu projektu w Delphi będziesz miał już nową wersję językową.

14 komentarzy

Zapraszam na moją stronę http://www.programistakuty.pl. Tam prezentuje mój darmowy program (bardzo łatwo konfigurowalny) do tworzenia wersji językowych programu. Prezentuje tam wykorzystanie go w delphi oraz dołączam przykładowy projekt. Strona artykułu http://programistakuty.pl/kuty-language-changer/

i mam to samo pytanie co mike_p:
no ale jak aktywować jeden z języków podczas działania programu????

A ja chce zmienic kod np wartosc ShowMessage ???????????????????????????????? :-/

Ja mam D7 Personal i nima:/ Może zrobi ktos arta o tym, ale na plikach ini

Ja mam D7 Personal i nima:/ Może zrobi ktos arta o tym, ale na plikach ini

co zrobic, jesli po zmianie nazwy katalogu, w ktorym jest program, nowa wersja jezykowa przestaje dzialac??????

Ja mam delphi 2005 Personal i nie moge znaleźć
//edit: A teraz mam Architekta i da się:P

Ja zrobiłem to na plikach INI.

no ale jak aktywować jeden z języków podczas działania programu????

Cos jest nie tak w Delphi 6 Professiona chyba tego nie ma

U mnie na D7 Ent. jest.Szukajciwe a znajdziecie.

Ja też ma D7 Enterprise i nie mam tego!!!

Mam d& enterprise i niemoge tego znalesć :(((((((((!!!!!!!!!

fajne ;) nie cztalem bo mam modem ;)
przeczytam offlline :P