Il modulo locale accede al database delle localizzazioni POSIX, ed alle sue funzionalità. Il meccanismo della localizzazione POSIX consente ai programmatori di occuparsi solamente dei messaggi inviati da un'applicazione, senza dover conoscere le specifiche dei Paesi in cui il software verrà eseguito.
Il modulo locale viene implementato sul modulo _locale, che usa a sua volta una implementzione della localizzazione ANSI C, se disponibile.
Il modulo locale definisce le seguenti funzioni ed eccezioni:
| category[, locale]) | 
(language code, 
  encoding), o None.  Se è una tupla, viene convertita in 
  una stringa usando il motore di aliasing locale.  Se locale
  viene fornito e non è None, setlocale() modifica 
  l'impostazione locale per la categoria category.  Le categorie 
  disponibili vengono elencate nella descrizione qui sotto. Il valore è 
  il nome di una localizzazione.  Una stringa vuota specifica le 
  impostazioni predefinite dell'utente.  Se la modifica della 
  localizzazione fallisce, viene sollevata l'eccezione 
  Error. Se ha successo, viene restituita l'impostazione 
  della nuova localizzazione.
Se locale viene omesso o è None, viene restituito il
  valore corrente per category. 
setlocale() non garantisce la sicurezza del thread sulla maggior parte dei sistemi. Le applicazioni si avviano tipicamente con una chiamata di
import locale locale.setlocale(locale.LC_ALL, '')
Questa imposta la localizzazione per tutte le categorie dei parametri utente (solitamente specificati nella variabile d'ambiente LANG). Se da questo punto in poi la localizzazione non viene modificata, usare il multithreading non dovrebbe causare problemi.
Modificato nella versione 2.0: Aggiunto il supporto per valori tupla del parametro locale.
| ) | 
| Chiave | Categoria | Significato | 
|---|---|---|
'decimal_point' | 
        Carattere del punto decimale. | |
'grouping' | 
        Sequenza di numeri che specifica in quali posizioni
            relative il 'thousands_sep' è atteso.  Se la
            sequenza viene terminata con CHAR_MAX, non verrà
            effettuato nessun altro ragguppamento.  Se la sequenza
            termina con 0, la misura dell'ultimo gruppo viene
            usata ripetutamente. | 
    |
'thousands_sep' | 
        Carattere usato tra gruppi. | |
'int_curr_symbol' | 
        Simbolo di valuta internazionale. | |
'currency_symbol' | 
        Simbolo di valuta locale. | |
'mon_decimal_point' | 
        Punto decimale usato per valori monetari. | |
'mon_thousands_sep' | 
        Separatore di gruppo usato per valori monetari. | |
'mon_grouping' | 
        Equivalente a 'grouping', usato per valori monetari. | 
    |
'positive_sign' | 
        Simbolo usato per annotare un valore monetario positivo. | |
'negative_sign' | 
        Simbolo usato per annotare un valore monetario negativo. | |
'frac_digits' | 
        Numero di cifre frazionarie usate nella formattazione locale dei valori monetari. | |
'int_frac_digits' | 
        Numero di cifre frazionarie usate nella formattazione internazionale dei valori monetari. | 
I possibili valori per 'p_sign_posn' e 'n_sign_posn'
  vengono forniti qui sotto. 
| Valore | Spiegazione | 
|---|---|
| La valuta ed il valore vengono racchiusi tra parentesi. | |
| Il segno dovrebbe precedere il valore ed il simbolo di valuta. | |
| Il segno dovrebbe seguire il valore ed il simbolo di valuta. | |
| Il segno dovrebbe precedere immediatamente il valore. | |
| Il segno dovrebbe seguire immediatamente seguire il valore. | |
| Non è specificato niente in questa localizzazione. | 
| option) | 
Restituisce alcune informazioni sulle specifiche della localizzazione, sotto forma di stringa. Questa funzione non è disponibile in tutti i sistemi, e l'insieme delle possibili opzioni potrebbe variare attraverso le piattaforme. I possibili valori degli argomenti sono numeri, per i quali le costanti simboliche sono disponibili nel modulo locale.
| [envvars]) | 
(language code, encoding). 
In accordo con POSIX, un programma che non ha effettuato una chiamata
  a setlocale(LC_ALL, '') viene eseguito usando la localizzazione 
  portabile 'C'.  La chiamata a setlocale(LC_ALL, '') fa
  invece in modo che il programma usi la localizzazione predefinita,
  impostata dalla variabile LANG.  Poiché non vogliamo 
  interferire con l'impostazione della localizzazione corrente, emuliamo 
  così il comportamento nel modo descritto sopra. 
Per mantenere la compatibilità verso altre piattaforme, non viene
  verificata solo la variabile LANG, ma anche tutta una lista 
  di variabili definite come parametri di ambiente. La prima trovata 
  come definita verrà usata.  I valori predefiniti di envvars
  vengono impostati dal percorso di ricerca usato da GNU Gettext; questo 
  deve sempre contenere il nome della variabile "LANG". Il percorso 
  di ricerca di GNU Gettext contiene le varibili di ambiente 
  'LANGUAGE', 'LC_ALL', 'LC_CTYPE' e 'LANG', 
  in questo ordine. 
Fatta eccezione per il linguaggio 'C', l'identificazione del
  linguaggio viene effettuata secondo il canone stabilito dalla 
  RFC 1766.  language code e encoding possono essere
  impostate a None se il loro valore non può essere determinato. 
  
Nuovo nella versione 2.0.
| [category]) | 
Fatta eccezione per il linguaggio 'C', l'identificazione del
  linguaggio viene effettuata secondo il canone stabilito dalla 
  RFC 1766.  language code e encoding possono essere
  impostate a None se il loro valore non può essere determinato. 
  
Nuovo nella versione 2.0.
| [do_setlocale]) | 
Su alcuni sistemi è necessaria per invocare setlocale
  per ottenere le preferenze dell'utente, quindi questa funzione non è
  thread-safe.  Se l'invocazione di setlocale non è 
  necessaria o desiderata, do_setlocale dovrebbe venire impostata 
  a False. 
Nuovo nella versione 2.3.
| localename) | 
Se la codifica fornita non è conosciuta, la funzione imposta il valore a quello della codifica predefinita per la localizzazione, esattamente come per setlocale(). Nuovo nella versione 2.0.
| [category]) | 
L'impostazione predefinita è determinata dalla chiamata a getdefaultlocale(). Il valore predefinito per category è LC_ALL. Nuovo nella versione 2.0.
| string1, string2) | 
0, a seconda che
  string1 sia collazionata prima o dopo string2, o che sia 
  uguale ad essa. 
| string) | 
| format, val[, grouping]) | 
%.  Per valori in virgola mobile il punto decimale, se
  necessario, viene modificato.  Se grouping ha valore vero, 
  prende anche in considerazione il grouping nel risultato. 
| float) | 
str(float), ma prende in considerazione 
  il punto decimale nel risultato. 
| string) | 
| string) | 
La funzione nl_langinfo accetta una delle seguenti chiavi. Molte di queste descrizioni sono tratte dalle corrispondenti descrizioni della libreria GNU C.
Molte localizzazioni non definiscono questo valore. Un esempio di localizzazione che definisce questo valore è la Giapponese. In Giappone, la rappresentazione tradizionale delle date include il nome dell'era corrispondente al regno di un determinato imperatore.
Normalmente non dovrebbe essere necessario usare direttamente questo
valore.  Specificando il modificatore E nelle stringhe di
formattazione, la funzione strftime userà questa
informazione.  Il  formato della stringa restituita non viene 
specificato, e quindi non dovreste darne per scontata la conoscenza su 
sistemi differenti. 
Esempio:
>>> import locale
>>> loc = locale.setlocale(locale.LC_ALL)    #  prende la localizzazione corrente
>>> locale.setlocale(locale.LC_ALL, 'de_DE') #+ usa la localizzazione tedesca; 
                                             #+ il nome potrebbe
                                             #+ variare con la piattaforma
>>> locale.strcoll('f\xe4n', 'foo')          #  confronta una stringa 
                                             #+ contenente una umlaut 
>>> locale.setlocale(locale.LC_ALL, '')      #  usa il localizzazione
                                             #+ definita dall'utente
>>> locale.setlocale(locale.LC_ALL, 'C')     #  usa la localizzazione predefinita (C)
>>> locale.setlocale(locale.LC_ALL, loc)     # ripristina la localizzazione memorizzata