Internacionalização e localizaçãoLink para este cabeçalho

Visão GeralLink para este cabeçalho

The goal of internationalization and localization is to allow a single Web application to offer its content in languages and formats tailored to the audience.

Django has full support for translation of text, formatting of dates, times and numbers, and time zones.

Essentially, Django does two things:

  • It allows developers and template authors to specify which parts of their apps should be translated or formatted for local languages and cultures.

  • It uses these hooks to localize Web apps for particular users according to their preferences.

Obviously, translation depends on the target language, and formatting usually depends on the target country. This information is provided by browsers in the Accept-Language header. However, the time zone isn’t readily available.

DefinitionsLink para este cabeçalho

The words “internationalization” and “localization” often cause confusion; here’s a simplified definition:

internationalizationLink para este termo

Preparing the software for localization. Usually done by developers.

localizationLink para este termo

Writing the translations and local formats. Usually done by translators.

More details can be found in the W3C Web Internationalization FAQ, the Wikipedia article or the GNU gettext documentation.

Here are some other terms that will help us to handle a common language:

locale nameLink para este termo

A locale name, either a language specification of the form ll or a combined language and country specification of the form ll_CC. Examples: it, de_AT, es, pt_BR. The language part is always in lower case and the country part in upper case. The separator is an underscore.

language codeLink para este termo

Represents the name of a language. Browsers send the names of the languages they accept in the Accept-Language HTTP header using this format. Examples: it, de-at, es, pt-br. Language codes are generally represented in lower-case, but the HTTP Accept-Language header is case-insensitive. The separator is a dash.

message fileLink para este termo

A message file is a plain-text file, representing a single language, that contains all available translation strings and how they should be represented in the given language. Message files have a .po file extension.

translation stringLink para este termo

Um literal que pode ser traduzido.

format fileLink para este termo

A format file is a Python module that defines the data formats for a given locale.