Internationalisering och lokalisering¶
Översikt¶
Målet med internationalisering och lokalisering är att en och samma webbapplikation ska kunna erbjuda sitt innehåll på språk och i format som är anpassade till målgruppen.
Django har fullt stöd för översättning av text, formatering av datum, tider och siffror och tidszoner.
Django gör i huvudsak två saker:
Det gör det möjligt för utvecklare och mallförfattare att ange vilka delar av deras appar som ska översättas eller formateras för lokala språk och kulturer.
Den använder dessa krokar för att lokalisera webbappar för vissa användare enligt deras preferenser.
Översättningen beror på målspråket, och formateringen beror vanligtvis på mållandet. Denna information tillhandahålls av webbläsare i Accept-Language
-headern. Tidszonen är dock inte lättillgänglig.
Definitioner¶
Orden ”internationalisering” och ”lokalisering” skapar ofta förvirring; här följer en förenklad definition:
- internationalisering¶
Förbereda programvaran för lokalisering. Görs vanligtvis av utvecklare.
- lokalisering¶
Skriva översättningarna och de lokala formaten. Görs vanligen av översättare.
Mer information finns i W3C Web Internationalization FAQ, Wikipedia-artikeln eller GNU gettext-dokumentationen.
Varning
Översättning styrs av inställningen USE_I18N
. Det handlar dock om internationalisering och lokalisering. Namnet på inställningen är ett olyckligt resultat av Djangos historia.
Här är några andra termer som kan hjälpa oss att hantera ett gemensamt språk:
- lokalt namn¶
Ett lokalt namn, antingen en språkspecifikation av formen
ll
eller en kombinerad språk- och landsspecifikation av formenll_CC
. Exempel:it
,de_AT
,es
,pt_BR
,r_Latn
. Språkdelen skrivs alltid med små bokstäver. Landet skrivs med versaler om det har mer än 2 tecken, annars skrivs det med versaler. Separatorn är ett understreck.- språkkod¶
Representerar namnet på ett språk. Webbläsare skickar namnen på de språk de accepterar i HTTP-headern
Accept-Language
med detta format. Exempel på språk:it
,de-at
,es
,pt-br
. Språkkoder representeras i allmänhet med gemener, men HTTP-huvudetAccept-Language
är okänsligt för gemener. Separatorn är ett bindestreck.- meddelandefil¶
En meddelandefil är en fil i klartext som representerar ett enda språk och som innehåller alla tillgängliga översättningssträngar och hur de ska representeras på det givna språket. Meddelandefiler har filändelsen
.po
.- översättningssträng¶
Ett bokstavligt ord som kan översättas.
- format fil¶
En formatfil är en Python-modul som definierar dataformaten för en viss lokal.