Destinate public: webmasteri, administratorii de servere, precum și cei care doresc să înțeleagă mai bine cum să afișeze limba conținutului de pe serverul Apache.
Cum pot utiliza abordarea MultiViews pe un server web Apache pentru întreținerea automată a resurselor în limba, care a fost trimis la solicitarea HTTP?
Aplicația client solicită un document de la server, informații cu privire la preferința de limbă a utilizatorului este de obicei transmise la server prin antetul HTTP Accept-Language. Dacă serverul stochează pagini web în mai multe limbi, aceste informații HTTP pot fi folosite pentru pagina în limba pe care utilizatorul preferă, în cazul în care limba este disponibil. Dacă serverul are doar o versiune a paginii, atunci acesta va fi primit.
Mecanismul de selectare a paginii corespunzătoare pentru a reveni la utilizator, pe baza informațiilor Accept-Language în cererea HTTP, și se numește coordonare a limbajului.
În multe cazuri, aplicația client are setările inițiale corecte. De exemplu, dacă aveți versiunea japoneză a browser-ului, browser-ul presupune în mod obișnuit că preferați pagini în limba japoneză, și trimite aceste informații către server. browserele principale vă permit să modificați aceste preferințe de limbă. Pentru mai multe informații, consultați Setarea preferințelor de limbă într-un browser.
Apache are două abordări diferite pentru alinierea resurselor. Prima implică utilizarea unui tip de hartă de fișier (de ex. Fișier Var), care denumește fișierele care conțin variațiile așteptate, al doilea implică utilizarea de căutare „MultiViews“, în cazul în care serverul face un șablon de mapare nume de fișier implicit și alege una dintre rezultatele. Opțiunea MultiViews poate fi, de asemenea, stabilite pentru fiecare dosar, în cazul în care este permis, administratorul serverului.
Acest articol discută despre modul de configurare a documentelor pe un server Apache, folosind abordarea MultiViews, astfel încât limba de lucru de negociere.
În primul rând, rețineți că armonizarea limbii, deoarece poate fi cel mai bun mod pentru menținerea conținutului dvs. multilingv pentru cititorii dvs., astfel încât să nu existe. În unele cazuri, de exemplu, site-urile localizate pot fi menținute mai bine prin stocarea versiunilor traduse ale paginii în dosarul în limbi corespunzătoare sau prin amestecarea celor de mai sus două abordări. Ce abordare este mai adecvată, și ce situația va fi luate în considerare în articolul următor.
Setarea limbii de potrivire include:
- dezvoltarea unei strategii pentru diferitele versiuni lingvistice ale unui fișier,
- Planificarea unei strategii de rezervă pentru o acțiune la cererea limbilor pe care nu acceptă, și
- să stabilească directivele de server adecvate pentru a face să funcționeze.
Există mai multe modalități de a configura negocieri de limbă pe servere Apache, iar abordarea corectă va depinde de stabilirea unui nivel mai ridicat, și activat sau dezactivat de către serverul de administrator privilegiu. Poate fi necesar să contactați administratorul serverului pentru a vedea care abordare este disponibilă și ce aveți privilegii.
Având în vedere numărul de moduri în care configurația serverului poate varia, este dificil de a descrie pur și simplu, și în cele din urmă modul de configurare a limbii de potrivire. Ceea ce urmează descrie o abordare tipică. Presupunem că opțiunea MultiViews este activată (implicit) și. utilizatorul poate modifica fișierele unele directive .htaccess (fișiere text mici în structura de directoare). Pentru a aborda o fabrică htaccess, Directiva AllowOverride trebuie să fie configurat în mod corespunzător de către administratorul serverului. Trebuie să contactați administratorul serverului pentru a afla pentru tine o astfel de abordare.
Ne propunem să utilizeze următorul exemplu: un example.html intitulat document disponibil în 3 limbi: engleză, franceză și germană, iar limba implicită este engleza. În ciuda faptului că exemplul se limitează la .html fișiere, negociere limbaj pot fi aplicate și la alte tipuri de fișiere.
Fiecare versiune lingvistică este indicată printr-o expansiune separată, care poate avea loc înainte sau după extensia .html. În practică, există unele considerații cu privire la plasarea acestei extensii, aveți nevoie pentru a păstra în minte.
Trebuie sa fii atent cu niște extensii. De exemplu, utilizarea codului ISO pentru .pl limba poloneză se va confunda cu extensia, care este de obicei folosit pentru a se referi la documentația Perl. Astfel, dacă doriți, puteți utiliza următoarea notație PL-PL pentru limba poloneză.
Rețineți că utilizatorii pot avea acces la un anumit fișier, tastați calea completă și numele de fișier, de exemplu, example.fr.html va porni în limba franceză, indiferent de setările de limbă.
De obicei, utilizați o AddLanguage directivă. pentru a specifica care sunt extensiile specificate pentru o intrare specifică de conținut în limba HTTP.
De exemplu, următoarea directivă trimite o cerere HTTP la conținutul care este scris în limba franceză pe .fr extensie:
AddLanguage fr .fr
Există mai multe locuri unde poți cere asta. Acesta poate fi deja observate pe o scară globală, din cauza înregistrării în serverul de fișiere httpd.conf, sau administratorul serverului poate adăuga la acesta. În plus, descărcarea de conținut de către utilizator poate fi specificat într-un fișier în ierarhia de dosare. Acest fișier este de obicei numit .htaccess.
Este important să specificați fișierul implicit, astfel încât utilizatorul nu are limba engleză, franceză sau germană în lista de limbi preferate (să zicem, de exemplu, utilizatorii spanioli), sau a căror aplicație client nu acceptă coordonarea conținutului, sau altfel nu va obține fișierul, și HTTP 406 rezultat (Neacceptat).
Rețineți, de asemenea, că unele dintre cele mai importante browsere pentru utilizatorii din SUA pentru a seta limba implicită a utilizatorului este en-ne. Nu se va potrivi cu en. care este instalat pe server, astfel încât trebuie să vă asigurați că vă permit utilizatorului să obțină documentul în limba engleză.
Cel mai bun mod de a specifica un fișier implicit va varia, în funcție de extensiile de limbă - fie că precede, sau dacă urmează extensia .html, și pe ce versiune de Apache pe care îl utilizați. În exemplele care urmează, vom presupune că limba implicită este setată la limba engleză (probabil, cel mai adesea poate fi cea mai bună opțiune în mod implicit, având în vedere răspândirea largă a limbii engleze).
În versiunile 2.0.30 și mai sus pe un server Apache folosind ForceLanguagePriority și directivele LanguagePriority puteți seta destul de clar fișierul implicit (pentru o descriere detaliată a funcționării acestor orientări click aici).
De exemplu nostru, am putea stabili implicit limba engleză, folosind următoarele două linii:
LanguagePriority en fr de
ForceLanguagePriority Alternativă
Acum, în cazul în care utilizatorii spanioli vor solicita documentul spaniol în contextul exemplul nostru, în loc de spaniolă, ei vor primi un document în limba engleză. Acesta este primul punct al listei LanguagePriority.
Dacă versiunea anterioară serverul la 2.0.30, atunci va trebui să facă o mulțime de muncă pentru a seta fișierul implicit, pentru că nu există nicio directivă ForceLanguagePriority disponibilă. Mai mult decât atât, abordarea va depinde în cazul în care există o extensie a limbajului înainte sau după .html expansiune.
Dacă extensia limba vine după .html (de exemplu, .html extensia pot fi incluse sau excluse de la accesarea fișierului), atunci ai nevoie pentru a denumi o copie a fișierului limba engleză, după cum urmează:
Fișierul implicit are o .html.html extensia, deoarece, în cazul în care fișierul implicit numit example.html și utilizatorul solicită un fișier ca example.html, conținutul de potrivire nu va avea loc (deoarece nu se poate găsi o potrivire exactă).
Dacă dosarul are un fișier cu numele dat și fără extensii la limba, aceasta va fi menținută indiferent de preferințele de limbă ale clientului.
Această tehnică poate fi aplicată și altor tipuri de fișiere, în plus față de HTML. Noi folosim doar exemplul HTML aici, deoarece este o cerință comună.