Traducere în aplicații delphi

Implementarea traducerii în aplicațiile Delphi poate fi implementată în mai multe moduri:

  • modul standard de localizare.
  • localizare cu ajutorul resurselor de text: ini-file sau xml-file.

Modul standard pentru localizarea aplicațiilor

Utilizarea resurselor în limba dorită (folosind meniul Proiect -> Limbi). Această metodă este adesea descrisă în cărți despre Delphi, precum și într-un număr mare de articole de pe Internet. Prin urmare, această metodă nu va fi descrisă în acest articol.







Această metodă are avantaje și dezavantaje.

Avantajele includ: viteza acestei implementări, precum și faptul că această metodă este implementată chiar în Delphi.

  • Trebuie să traduceți direct în mediul de dezvoltare Delphi.
  • În mod implicit, o resursă este extrasă din limba instalată în Windows.

Localizarea cu resurse de text

Din păcate, localizarea prin intermediul resurselor de text în Delphi nu este furnizată. Deși, uneori, această metodă poate fi mai preferabilă decât traducerea utilizând resursele implementate în Delphi.

Avantajele acestei metode includ:

Dezavantajele acestei metode includ:

  • Viteza mai mică a muncii decât prin resurse.
  • Această metodă nu este implementată în pachetul standard Delphi.
  • O dimensiune mai mare a fișierului decât un fișier de resurse.

În format text, puteți salva ca un ini-fișier, xml-fișier sau text cu delimitatorii specificați.

Există componente care implementează o sarcină similară, dar, de cele mai multe ori, aceste componente sunt plătite.

În acest articol, vom descrie metoda de localizare în formatul xml.

Localizarea cu fișiere xml

Mai întâi de toate, trebuie să decidem ceea ce traducem.







Translatăm:

  • resurse de șir;
  • tipuri de variante;
  • tipuri de caractere;

Toate celelalte tipuri de date pe care nu le traducem.

Procesul de traducere poate fi împărțit în două etape:

Prima etapă. Generați un fișier text pentru o traducere ulterioară. Salvează-l. Traducere. Transferul în catalogul limbii respective.

A doua etapă. Descărcarea în aplicație dintr-un fișier xml.

Generarea unui fișier text pentru traducerea ulterioară

Pentru a genera un fișier pentru traducere, trebuie să trecem prin toate componentele și toate proprietățile, formând un fișier text.

Este necesar să se ia în considerare faptul că forma poate conține nu numai componente, ci și cadre care includ ele însele alte componente.

Pot exista și componente pe care nu dorim să le traducem. Trebuie să fie excluși de la traducere. De exemplu, nu este recomandabil să traduceți TDBEdit, TDBDateTimeEditE, TDBLookupComboboxEh, deoarece Nu este nevoie să traducem informațiile preluate din baza de date.

Mai jos, prezentăm o funcție care generează un fișier xml pentru traducere.

Funcție pentru generarea xml pentru o componentă dată:

Funcție pentru generarea xml pentru o anumită proprietate:

Funcțiile utilizate în acest cod:

Descărcarea la o aplicație dintr-un fișier xml

Trebuie să descărcați un fișier text, să decodificăm informațiile din el și să setăm proprietățile.

Deci, procedura de decodare a unui fișier text:

Obținerea de text între etichete:

Salvați și descărcați traducerea

Având procedurile și funcțiile descrise mai sus, putem salva și încărca cu ușurință informații.

Fișierele pentru diferite limbi pe care le scriem în diferite directoare, așa că implementăm funcția de ieșire a căii spre fișierul de traducere:

În această funcție:

  • User_Sets.LangInterface - numele limbii curente. În loc de această variabilă, puneți-vă propriul.
  • NormalDir - normalizează directorul. Această funcție este preluată de la JVCL. Puteți face acest lucru fără această funcție.

Generarea unui fișier pentru traducere:

Traducerea variabilelor, constante

Din constante va trebui să fie abandonată.

Urmăm tradiția și implementăm traducerea cu xml. Pentru aceasta folosim TXMLCollectionItem și TXMLCollection.

Elemente de traducere (TXMLCollectionItem):

Colectarea elementelor de traducere (TXMLCollecție):

Procedura de transfer al tuturor resurselor:

Proiect demonstrativ

Texte sursă ale proiectului demonstrativ:
Translate.zip (ZIP, 59Kb)

Proiectul demonstrativ compilat:
Translate-exe.zip







Articole similare

Trimiteți-le prietenilor: