Questa risposta dimostrerà come personalizzare completamente una locale, usando facoltativamente una locale esistente come base. Il tipo di locale che verrà utilizzato in questa risposta è il i18n
tipo; tale tipo di locale sarà implicito in ogni menzione della parola "locale" nel corpo della risposta.
Trova una guida
La prima cosa che devi personalizzare una localizzazione è conoscere il formato della localizzazione. Questo editor di impostazioni internazionali per il Web ha una descrizione completa di tutti i campi di un'impostazione internazionale, nonostante non sia utilizzabile da chiunque in modo immediato. Questa sarà la guida da usare.
Strumenti necessari
Gli unici strumenti necessari per lavorare con le localizzazioni sono
- Un editor di testo. Qualunque cosa accadrà, sebbene VIM eccellerà.
- Un convertitore da testo a Unicode. Ci si aspetterebbe che tu non ne avessi uno, quindi te ne fornirò uno semplice. Leggi la sottosezione successiva per ottenerla.
Ti consiglio di creare una directory e di salvare su di essa tutto ciò che riguarda il lavoro che farai sulla locale.
Convertitore da testo a Unicode (codifica)
NOTA: se stai usando caratteri non comuni potresti avere problemi con lo script che scrivo di seguito; ti consigliamo di dare un'occhiata agli script alternativi collegati da nass .
Salva il seguente codice in un file. Questo file verrà identificato dal tuo sistema come uno script Python, che va bene perché è uno. Questa guida presuppone che tu abbia chiamato lo script encodestr
.
#!/usr/bin/python
def encode(string):
newstring = str()
for ch in string:
newstring += "<U%04X>" % ord(ch)
return newstring
if __name__ == '__main__':
import sys
print encode(sys.argv[1])
Dopo averlo salvato, concedere l'autorizzazione per l'esecuzione del file, questo sarà utile. È possibile farlo usando nautilus, o eseguendo da un terminale il seguente comando, nella directory in cui è stato salvato lo script: chmod +x encodestr
.
A questo punto è possibile verificare questo script in esecuzione sullo stesso directory: ./encodestr hello
. Dovresti ottenere un output uguale a <U0068><U0065><U006C><U006C><U006F>
.
Modifica una locale esistente
La modifica di una locale esistente è il caso più semplice, poiché idealmente sceglierai una locale che si adatta alle tue esigenze quasi totalmente, nel qual caso devi apportare solo piccole modifiche. Per personalizzarlo, puoi utilizzare la guida per sapere quali delle sezioni sono quelle che vuoi modificare e come modificarle. Tutte le impostazioni locali installate risiedono /usr/share/i18n/locales
, tuttavia la guida contiene praticamente tutte le impostazioni locali mai create.
Tuttavia, la prima cosa che noterai quando apri una localizzazione è che leggerai parole inglesi tanto quanto <UXXXX>
codici strani . Dovrai essere in grado di creare questi codici: è qui che encodestr
arriva lo script.
Quando sai quali sezioni devi modificare, devi conoscere ogni campo contenuto nella sezione.
Ad esempio, la LC_TIME
sezione contiene il campo t_fmt
e molti altri. Ogni campo ha la sua descrizione sulla guida .
Ora che sai quali campi modificare, usa di nuovo la guida per scoprire quali valori accetta il campo.
Ad esempio, il campo t_fmt
accetta il testo e le variabili strfmt comuni .
Proprio quando sai cosa scrivere sui campi che vuoi modificare, esegui il testo attraverso lo encodestr
script per ottenere il suo equivalente codificato.
NOTA: non tutti i campi devono essere codificati, se necessario utilizzare una locale esistente come riferimento.
Ad esempio, se si desidera avere il formato dell'ora Time: %T
nel t_fmt
campo, eseguire ./encodestr "Time: %T"
; questo tornerà <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054>
e quindi avrai la linea t_fmt <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054>
nella tua locale (nella sua rispettiva sezione, ovviamente).
Dopo aver modificato tutti i campi desiderati, sarà necessario procedere con l'installazione delle impostazioni internazionali sul sistema, in modo che possa essere utilizzato. Procedere alla sezione di installazione per questo.
Creare un locale da zero
Invece di modificarne uno, l'altro metodo che puoi usare per creare la tua localizzazione personalizzata ci sta lavorando da zero. Questo non è molto difficile se, di nuovo, usi la guida . Ecco un consiglio utile però: è possibile copiare sezioni da altre impostazioni locali senza i metodi di copia e incolla reali . Devi solo seguire questo formato:
LC_SECTION
copy "locale"
END LC_SECTION
Dov'è LC_SECTION
la sezione che si desidera modificare ed locale
è la locale da cui si desidera copiare quella sezione.
Ad esempio, se si desidera copiare il formato dell'ora nella locale inglese, si dovrebbe avere questo testo come file locale personalizzato:
LC_TIME
copy "en_GB"
END LC_TIME
Ciò consente di risparmiare molto lavoro e garantisce che qualsiasi modifica apportata alle impostazioni internazionali di riferimento verrà rispecchiata nel tuo.
Installazione delle impostazioni internazionali personalizzate
I passaggi che sto per mostrare di seguito potrebbero non essere ottimali, ma funzionano.
Compila il tuo locale. Non fatevi prendere dal panico! Questo non richiede tempo. Basta eseguire il comando sudo localedef -i custom -f UTF-8 custom.UTF-8 -c -v
dove si custom
trova il nome della propria locale.
Copia le impostazioni internazionali nella /usr/share/i18n/locales/
directory. Avrai sicuramente bisogno dei privilegi di sudo per farlo, e puoi farlo con il comando sudo cp locale /usr/share/i18n/locales/
dove si locale
trova il nome file della tua localizzazione personalizzata.
Specifica la tua locale in /var/lib/locales/supported.d/
. Ad esempio, crea un nome file /var/lib/locales/supported.d/asd
e aggiungi la riga custom UTF-8
, dove personalizzato è il nome della tua locale.
Esegui il comando magico. In realtà non so cosa faccia esattamente questo comando, ma è cruciale. Corri sudo locale-gen
. È molto probabile che generi riferimenti ai locali disponibili dove necessario.
Di 'al tuo sistema di usare la localizzazione. Se si desidera che le impostazioni internazionali vengano utilizzate a livello di sistema, modificare il /etc/environment
file. In caso contrario, è possibile modificare il ~/.profile
file o qualsiasi altro proveniente all'avvio. Se non sai cosa significa quest'ultimo, non ti preoccupare, usa il ~/.profile
file. Per sapere cosa devi scrivere, esegui prima il locale
comando. Si dovrebbe emettere una lista con oggetti come LANGUAGE
, LC_MESSAGES
, LC_CTYPE
e molti altri. Scriverai, per ciascuna delle sezioni che desideri (elencate dal comando precedente), su righe separate, SECTION="locale"
dove si SECTION
trovano la sezione e locale
il nome della tua localizzazione personalizzata.
Ad esempio, se si desidera utilizzare il formato ora dai Paesi Bassi, ma la lingua inglese, scrivere:
LANGUAGE="en_GB:en"
LC_TIME="nl_NL"
NOTA: se si desidera utilizzare una locale per ogni impostazione locale, scrivere LC_ALL="locale"
dove si locale
trova il nome della propria locale personalizzata. Se si desidera utilizzare un'impostazione internazionale per tutto tranne che per la lingua, è possibile scrivere LANG="locale"
e (su un'altra riga, ovviamente) LANGUAGE="locale":XX
dove si XX
trova il codice di 2 lettere per la lingua desiderata.
Ad esempio, se si desidera utilizzare la lingua olandese e la lingua inglese, è possibile utilizzare:
LANG="nl_NL"
LANGUAGE="nl_NL:en"
Tu hai finito
Al prossimo accesso, le impostazioni internazionali dovrebbero essere in uso. È possibile verificarlo eseguendo locale
nuovamente il comando.
Si prega di commentare incoerenze o dichiarazioni false in questa guida!
πμ
, viene generato<U00CF><U0080><U00CE><U00BC>
, anziché i caratteri previsti<U03C0><U03BC>
. Ecco un link che funziona.