Il modulo gettext definisce la seguente API, che è molto simile alla API GNU gettext. Se usate questa API i suoi effetti interesseranno la traduzione della vostra applicazione globalmente. Spesso è ciò che desiderate se la vostra applicazione è monolingua, con la scelta della localizzazione dipendente da quella del vostro utente. Se state localizzando un modulo Python, o se la vostra applicazione ha bisogno di cambiare linguaggio al volo, probabilmente vorrete usare, al suo posto, la classe basata su API.
domain[, localedir]) |
Se localedir viene omesso o è None
, allora viene restituito
il corrente collegamento per il dominio domain.6.2
[domain]) |
None
, viene restituito il corrente dominio globale, altrimenti
questo viene impostato e restituito a domain.
message) |
domain, message) |
singular, plural, n) |
Come gettext(), ma considera le forme plurali. Se viene trovata una traduzione, applica la formula plurale a n, e restituisce il messaggio risultante (alcuni linguaggi hanno più di due forme plurali). Se non viene rinvenuta alcuna traduzione, restituisce singular (NdT: singolare) se n è 1; altrimenti restituisce plural (NdT: plurale).
La formula Plurale viene presa dall'header del catalogo. È un'espressione in C o in Python che ha una variabile libera n; l'espressione valuta l'indice del plurale nel catalogo. Vedete la documentazione di GNU gettext per la sintassi esatta da usare nei file .po, e le formule per i vari linguaggi.
Nuovo nella versione 2.3.
domain, singular, plural, n) |
Nuovo nella versione 2.3.
Notate che GNU gettext definisce anche un metodo dcgettext(), ma questo è stato definito inutile e quindi non più implementato.
Ecco un esempio di uso tipico di questa API:
import gettext gettext.bindtextdomain('myapplication', '/path/to/my/language/directory') gettext.textdomain('myapplication') _ = gettext.gettext # ... print _('This is a translatable string.')
sys.prefix
/share/locale.
Per questo motivo, è sempre meglio chiamare
bindtextdomain() con il suo percorso assoluto,
all'inizio della vostra applicazione.