Cum am făcut localizarea site-ului cu ajutorul odichika

Cazul de astăzi despre cum să localizați site-ul dezvoltat de dvs. la o altă versiune lingvistică cu automatizarea traducerii expresiilor de limbă cu ajutorul serviciului Yandex.Transfer. În acest caz, sunt luate în considerare două mecanisme-cheie: procesarea fișierelor CSV cu fraze de limbă și traducerea automată a expresiilor ruse în limba ucraineană.







Cazul de astăzi despre cum să localizați site-ul dezvoltat de dvs. la o altă versiune lingvistică cu automatizarea traducerii expresiilor de limbă cu ajutorul serviciului Yandex.Transfer. În acest caz, sunt luate în considerare două mecanisme-cheie: procesarea fișierelor CSV cu fraze de limbă și traducerea automată a expresiilor ruse în limba ucraineană.

Deci, să începem. Acum, sunt angajat într-un transfer (cu o schimbare serioasă) a unui site destul de mare către Bitrix. Procesul este foarte interesant și voi încerca să fac un post mai detaliat despre el în viitorul apropiat, cu dezvăluirea punctelor-cheie. Și acum, despre localizare.

Pentru început, a fost făcută o versiune rusă a site-ului (clientul a ales această versiune ca fiind cea mai importantă). Absolut toate inscripțiile chirilici din toate componentele au fost obligatorii făcute în expresii de limbă. Foarte nu rekomeuyu fi lăsat în piesa de prelucrat fraze în limba maternă (în stilul „dintr-o dată veni la îndemână“) - nu vine la îndemână! (Și dacă aveți nevoie de ea, creați mai bine altele noi, dar tăiați munca dvs. pentru a verifica corectitudinea traducerii). Vă recomandăm, de asemenea, toate frazele comune care sunt utilizate într-un număr mare de componente template-uri, pentru a face fișierul de limbă în antetul (dar pentru pagini fără fraze antet mufă încă trebuie să dubleze sau forțați să se conecteze fișierul antet limba).

În general, legătura dintre frazele lingvistice arată, aproximativ, după cum urmează:

Începătorii dezvoltatorilor de 1C-Bitrix (deși mulți dintre ei deja au deja dezvoltatori destul de experimentați) părăsesc dreptul chirilic în șablon, crezând că mai târziu, mai târziu, vor transfera. Și tot acest terci rămâne de ani de zile în șablon. Dacă site-ul într-o singură versiune lingvistică se potrivește vizitatorilor de ani de zile și nu este necesar să-l localizeze și dacă nu, așa cum spune Semyon Slepakov? Prin urmare, obișnuiți-vă să luați întotdeauna o expresie chirilică în limbaj. Nu tu, așa că altcineva vă va mulțumi cu siguranță pentru asta.

Acum credem că întreaga chirilică este păstrată în fraze lingvistice și traducerea nu va fi prea dificilă. Pentru a scoate toate frazele de limbă pentru a face uz de traducere modulului „Traducere“ sistem 1C-Bitrix (titularii de ediții fără acest modul va trebui să scrie un script care va trage toate fișierele de limbă și de a genera un fișier CSV).







Dacă aveți un alt set de fișiere lingvistice instalate în sistem - ultimele 3 coloane vor fi diferite, dar mă gândesc la opțiunea când sistemul este rusă, ucraineană și engleză.

Pune fișierul undeva în sistem (am pus de obicei în încărcare), iar în handler-ul nostru script-ul adauga imediat prima fraza cu maxim, absollyutnogo calea către fișierul:

Și fișierul în care vom scrie rezultatul:

În continuare, conectăm clasa bitrix pentru procesarea CSV:

Biblioteca Bitrix folosesc numai pentru scrierea fișierelor CSV. Pentru a citi mai mult timp (la folosirea claselor bittixovo de aproximativ un an în urmă au aflat probleme pentru fișierul dificil la care separatorul de caractere a fost prezent și în valori) Eu folosesc o astfel de funcție:

GetTranslitCode este un wrapper în jurul funcției obișnuite Bitrix a transliterației:

Rulați fișierul csv prin procesarea csv-fișierului și obțineți o serie asociativă de linii de fișiere cu antete în formă de chei:

Creați o rescriere a fișierului rezultat:

Scrieți anteturile direct la fișierul rezultat:

Apoi continuăm traducerea. Pentru muncă, am folosit clasa Yandex_Translate. care a fost ușor corectată. deoarece descrisă în metoda habrobatye este deja destul de mult timp nu funcționează. În clasă, am corectat adresa URL la care este trimisă cererea și, de asemenea, am configurat trimiterea unei chei private care este transmisă la definirea clasei

Creați o instanță a clasei de traducător și rulați întreaga gamă de expresii de limbă prin intermediul funcției de traducere. Imediat salvăm fiecare linie într-un fișier:

Totul! Acum, expresiile de limbă sunt create și puteți să vă ocupați în siguranță de implementarea celei de-a doua localizări a site-ului.

În continuarea temei: Pentru magazinul online este un punct foarte important - afișarea valorilor proprietății, iar în multilingv este unul dintre momentele cele mai dificile. Proprietățile sunt afișate în filtrul inteligent, în lista de produse, pe cartela de produs, însă Bitrix nu are posibilitatea ca aceeași proprietate să specifice variațiile în diferite versiuni lingvistice.

Pentru valori ale proprietăților, acest dezavantaj poate fi eludate prin utilizarea proprietatea „Director“ umplere limba principală UF_NAME, și un alt domeniu (de exemplu, UF_DESCRIPTION) - iau oa doua limbă. Dar acest lucru nu se poate face pentru nume de proprietate - nu există nici un câmp în care să se stocheze.

Din această problemă sa născut o soluție: am creat un fișier de limbă separat, props.php, pe care l-am conectat lângă fișierul lingvistic al antetului:

În acest mod simplu încărcăm valorile separate pentru limba ucraineană

Mai mult, adăugăm funcția de obținere a valorilor din director:

Funcția primește parametri pe intrare pentru a alege ce director să ia și parametrii pentru filtrare - ce valori sunt necesare. La ieșirea pentru limba ucraineană vom avea înțelesuri în limba ucraineană (dacă nu sunt completate - aranjăm traducerea folosind Yandex.Translator).

În continuare - să ne uităm la numele proprietăților. Iată un exemplu pentru procesarea unui filtru inteligent:

Mai întâi conducem valorile directoarelor prin funcția descrisă mai sus, iar apoi ne ocupăm de procesarea numelor proprietății.

Pe baza proprietăților de cod de caractere verifica disponibilitatea frazelor lingvistice - fraze în cazul în care nu, apoi a produce o traducere automată de la Yandex.Translate și se înregistrează rezultatul în gol pentru scrierea într-un fișier de limbă. Mai mult, atunci când toate proprietățile enumerate în înregistrarea fișierului de limbă a primit Exemple de limbaj: lectura, fișierul nostru limbaj personalizat și fraze noi adaugă în ea.

Sa născut o astfel de soluție excelentă. Sincer, nu m-am gândit cât timp să mă ocup de proprietăți.







Articole similare

Trimiteți-le prietenilor: