Jedna aplikacja. Pięć języków.
Przełączanych w czasie działania.
sgcLocalization tłumaczy Twoje własne aplikacje Delphi, C++Builder i Lazarus. Każdy formularz, każdy komunikat, każdą liczbę mnogą, jednym edytorem i jedną linijką kodu do zmiany języka.
- English
- Deutsch
- Español
- Français
- Italiano
Obraz powyżej przedstawia jeden plik wykonywalny. Ten sam dashboard, te same dane, po angielsku, niemiecku, hiszpańsku, francusku i włosku, a użytkownik zmienia język z listy rozwijanej, gdy aplikacja działa. Bez restartu i bez drugiej kompilacji.
Ta aplikacja została przetłumaczona za pomocą sgcLocalization, nowego produktu pakietu sgcUI. Działa z VCL, FireMonkey i LCL, od Delphi 7 do Delphi 13, w C++Builder i w Lazarus, i jest zawarty w każdej edycji sgcUI oraz w każdym pojedynczym produkcie.
sgcLocalization w jedną minutę: skanowanie, tłumaczenie i przełączanie prawdziwej aplikacji. Także na YouTube.
Zmień język jedną linijką
To cały kod, którego potrzebuje zmiana języka:
uses
sgcLocalization_Engine;
procedure TfrmMain.btnGermanClick(Sender: TObject);
begin
sgcSetLanguage('de');
end;
Jeśli wolisz obejść się bez kodu, upuść na formularz gotową listę języków (TsgcVCLLanguageCombo lub TsgcFMXLanguageCombo). Pokazuje języki Twojego projektu i przełącza język, gdy użytkownik wybierze jeden z nich.
Przełączenie robi więcej niż podmiana podpisów:
- Formularze tworzone później są tłumaczone automatycznie. Okno dialogowe otwarte dziesięć minut po przełączeniu pojawia się we właściwym języku.
- Wartości zmienione w kodzie są zachowane. Etykieta, którą Twój kod wypełnił nazwą klienta, nie zostanie nadpisana tłumaczeniem.
- Zaznaczenia pozostają. Listy rozwijane i listy zachowują wybrany element, gdy jego elementy zmieniają język.
- Języki pisane od prawej do lewej odwracają układ, więc użytkownik arabski lub hebrajski dostaje formularz odbity lustrzanie.
Aby uruchamiać aplikację w języku systemu użytkownika, ustaw jedną właściwość:
sgcVCLLocalizer1.Language := 'auto';
Jak mało pracy to wymaga
Localizer (TsgcVCLLocalizer dla VCL, TsgcFMXLocalizer dla FireMonkey) znajduje każdą właściwość tekstową przez RTTI. Nie oznaczasz właściwości, nie zmieniasz nazw komponentów i nie zmieniasz swoich formularzy.
Wbudowane reguły ignorowania pomijają to, co nigdy nie jest tekstem: nazwy komponentów, nazwy pól, SQL, nazwy plików, ciągi formatujące i nietekstowe właściwości samych kontrolek sgcUI. Możesz dodać własne reguły. Formularz, który miesza standardowe kontrolki i kontrolki sgcUI, jest skanowany bez zakłóceń, więc lista do przetłumaczenia zawiera teksty i nic więcej.
Teksty w kodzie: fragmenty
Nie każdy tekst znajduje się w formularzu. Komunikaty, wiersze stanu i podpisy budowane w kodzie to fragmenty. Otocz tekst wywołaniem sgcT, a stanie się tłumaczony:
if MessageDlg(sgcT('Save changes?'), mtConfirmation,
[mbYes, mbNo], 0) = mrYes then
SaveOrder;
To samo słowo może wymagać dwóch tłumaczeń. W języku angielskim „Open” jest zarówno poleceniem, jak i stanem zamówienia. sgcTC dodaje kontekst, więc każde znaczenie dostaje własne tłumaczenie:
btnOpen.Caption := sgcTC('command', 'Open');
lblState.Caption := sgcTC('order status', 'Open');
Liczby mnogie obsługuje sgcTN. Piszesz liczbę pojedynczą i mnogą języka źródłowego, a tłumaczenie dostarcza tyle form, ilu potrzebuje język docelowy:
lblSelected.Caption := sgcTN('%d order selected', '%d orders selected',
Count, [Count]);
Reguły liczby mnogiej pochodzą z CLDR, więc są poprawne dla każdego języka. Polski, na przykład, dostaje cztery formy, a edytor prosi tłumacza o każdą z nich.
Jeden edytor tłumaczeń
Wszystkie tłumaczenia edytuje się w jednym miejscu. Kliknij localizer prawym przyciskiem myszy w czasie projektowania, aby otworzyć edytor wewnątrz IDE, albo użyj samodzielnego narzędzia poza nim.
- Stany elementów. Każdy tekst jest nowy, zmieniony, propozycja, przetłumaczony, zweryfikowany lub nieaktualny, a filtrować możesz według stanu.
- Filtry i zaznaczanie wielu wierszy. Filtruj według języka, formularza lub wyszukiwanego tekstu, zaznacz wiele wierszy i zmieniaj je razem.
- Oznaczanie wersji. Oznacz wydanie, a filtr „Nowe lub zmienione od” pokaże dokładnie to, co trzeba przetłumaczyć w następnym wydaniu. Nic nie zostanie pominięte.
- Język Twojego tłumacza. Sam edytor jest dostępny w 12 językach, z jasnym i ciemnym motywem.
Walidacja, która wyłapuje typowe błędy
Tłumaczenie, w którym zabrakło %d lub klawisza skrótu, łatwo napisać i trudno zauważyć. sgcLocalization sprawdza każde tłumaczenie, niezależnie od tego, czy zostało wpisane, zaimportowane, czy zaproponowane przez AI:
- specyfikatory formatu i symbole zastępcze,
- klawisze skrótu,
- podziały wierszy oraz spacje na początku i na końcu,
- puste tłumaczenia i formy liczby mnogiej.
Element z błędem nie może zostać oznaczony jako zweryfikowany, więc uszkodzony tekst nie prześlizgnie się do wydania jako gotowa praca.
Tłumaczenie przez AI, jako propozycje
Edytor potrafi tłumaczyć za pomocą usług AI, takich jak ChatGPT, Claude, Gemini i Ollama. Wybierz języki docelowe, podaj słownik i wskazówki dotyczące tonu, i uruchom.
Wyniki przychodzą jako propozycje. Każdą z nich akceptujesz lub odrzucasz, a propozycja nigdy nie nadpisuje tekstu, który jest już przetłumaczony. Działa na nich ta sama walidacja.
XLIFF dla profesjonalnych tłumaczy
Biura tłumaczeń pracują z XLIFF. sgcLocalization eksportuje XLIFF 1.2 dla wybranego języka i importuje plik, gdy wróci.
Import nigdy nie zapisuje niczego bezpośrednio w Twoim projekcie. Otwiera listę przeglądu ze wszystkimi zmianami: stary tekst, nowy tekst, rodzaj zmiany i ewentualny znaleziony problem. Stosowane są tylko wiersze, które zaznaczysz.
Jeden plik projektu
Tłumaczenia aplikacji znajdują się w jednym pliku projektu z rozszerzeniem .sgcloc. To JSON, więc dobrze współpracuje z kontrolą wersji: zmienione tłumaczenie to mała różnica, którą można przeczytać podczas przeglądu kodu. Jeśli wolisz pojedynczy plik wykonywalny bez niczego obok, projekt można zamiast tego osadzić w pliku formularza.
Zobacz to w prawdziwej aplikacji
Demo pokazowe to Order Desk, kompletna aplikacja biznesowa: dashboard, zamówienia, klienci, planer, analiza przestawna, kreator i podgląd wydruku. Jest przetłumaczona na angielski, niemiecki, hiszpański, francuski i włoski, i występuje w wersjach VCL, FireMonkey i Lazarus.
W folderze dem są także trzy szybkie starty, samodzielne narzędzie edytora tłumaczeń oraz przewodnik Getting Started, który prowadzi od pustego formularza do przetłumaczonej aplikacji.
Zawarty w sgcUI
sgcLocalization jest dostarczany z sgcUI 2026.12.0. Nie jest sprzedawany osobno: jest zawarty w każdej edycji sgcUI i w każdym pojedynczym produkcie, a w instalatorze jest wybrany domyślnie.
Twoja aplikacja w języku Twojego klienta
Pobierz sgcUI, otwórz demo Order Desk i zmień język, gdy działa. Potem upuść localizer na własny główny formularz.
Masz pytania lub uwagi? Skontaktuj się z nami, odpowiedzą Ci osoby, które napisały ten kod.
