Cine implementează suportul multilingv pe site-ul Stackoverflow în limba rusă

Ei bine, abordarea din compania mea nu diferă mult de abordările @ICE și @Fike. Este mai uniformă, deoarece acest sistem se aplică în mod egal în toate produsele din CMS proprii ale companiei în PHP și ASP.NET portaluri pentru desktop și aplicații mobile la Delfi.

  • Limba sistemului este stocată în sesiune

Există un fișier XML care a declarat limbile de sistem, traducerea tuturor fraze stocate de care aveți nevoie pentru a traduce informații pentru versionare, etc. In jurul acest format, de exemplu, a declarat limbi .:

Traducerea în sine în acest format:

Datorită fișierului, se ajunge la un număr de localizări acceptate și toate traducerile sunt stocate într-un singur loc.

  • Pentru a umple fișierul cu fraze, este scris un modul care rulează prin întregul cod sursă și îl adaugă în xml. Frazele sunt marcate într-un mod special. Luăm în simboluri două procente: %% orice expresie %%. Când porniți o pagină, parserul este pornit mai întâi, toate frazele din %% %% sunt înlocuite cu limba dorită și utilizatorul primește deja o pagină în limba sa.
  • Pentru a completa fișierul cu traduceri, este scris un program pentru desktop care este convenabil pentru traducători cu normă întreagă. Ele sunt deja lucrează productiv cu fișier XML, a scăpa bazei de date (poate lucra la domiciliu, pot plăti pur și simplu să externalizeze traducere) și nu le pasă, ce această traducere. Atunci când o nouă versiune a traducerii pe server se înlocuiește cu fișier XML, fără modificări de cod sunt necesare în principiu.
  • Articolele sau textele de dimensiuni mari sunt stocate în baza de date cu diferite câmpuri pentru limbi sau limbile sunt plasate într-o tabelă separată - dacă nu sunt siguri că numărul limbilor va rămâne constant. Aici, în principiu, nimic teribil și nu

Articole similare