Per configurare le impostazioni locali, eseguo prima uno script sed che creerà una nuova copia del file '/etc/locale.gen', in base al contenuto del file '/ usr / share / i18n / SUPPORTED'. Ogni riga del file di input verrà copiata, ma verrà trasformata in un commento a meno che non sia una voce di una locale UTF-8 per una lingua che desidero rendere disponibile sul mio sistema (ad es. Inglese, olandese, francese, e tedesco):
sed --regexp-extended --expression='
1 {
i\
# This file lists locales that you wish to have built. You can find a list\
# of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add\
# user defined locales to /usr/local/share/i18n/SUPPORTED. If you change\
# this file, you need to rerun locale-gen.\
\
}
/^(en|nl|fr|de)(_[[:upper:]]+)?(\.UTF-8)?(@[^[:space:]]+)?[[:space:]]+UTF-8$/! s/^/# /
' /usr/share/i18n/SUPPORTED > /etc/locale.gen
Successivamente, ho impostato le impostazioni predefinite dell'ambiente nel database debconf, ad esempio, sull'inglese britannico :
debconf-set-selections <<< 'locales locales/default_environment_locale select en_GB.UTF-8'
Successivamente rimuovo il file '/ etc / default / locale' esistente (solo per assicurarmi che i suoi vecchi contenuti non interferiscano con le mie nuove impostazioni), ed eseguo il comando dpkg-reconfigure per generare tutte le localizzazioni selezionate dallo script sed e per creare un nuovo file '/ etc / default / locale' con solo una voce per impostare la variabile 'LANG' sulla locale del mio ambiente predefinito selezionato:
rm --force --verbose /etc/default/locale
dpkg-reconfigure --frontend=noninteractive locales
Quindi, a seconda delle mie esigenze, potrei voler eseguire alcuni comandi di aggiornamento della locale , per sovrascrivere, ad esempio, le variabili che influenzano la formattazione dei valori e impostarli su una locale diversa (come l'inglese irlandese ):
update-locale LC_NUMERIC='en_IE.UTF-8'
update-locale LC_TIME='en_IE.UTF-8'
update-locale LC_MONETARY='en_IE.UTF-8'
update-locale LC_PAPER='en_IE.UTF-8'
update-locale LC_NAME='en_IE.UTF-8'
update-locale LC_ADDRESS='en_IE.UTF-8'
update-locale LC_TELEPHONE='en_IE.UTF-8'
update-locale LC_MEASUREMENT='en_IE.UTF-8'
update-locale LC_IDENTIFICATION='en_IE.UTF-8'
(Avrei potuto specificare tutti questi parametri in un'unica chiamata del comando update-locale , ma apparentemente l'ordine in cui le voci vengono scritte nel file '/ etc / default / locale' è imprevedibile se lo faccio. preferisco che siano sempre nello stesso ordine, motivo per cui li ho generati uno per uno.)
E infine, potrei voler eseguire il comando update-locale un'ultima volta, per impostare la variabile LANGUAGE (ovvero l'elenco delle lingue in cui voglio che vengano visualizzati i messaggi di testo traducibili):
update-locale LANGUAGE='en_GB:en_US:en'
File "/usr/share/apt-listchanges/ALChacks.py", line 32, in <module> sys.stderr.write(_("Can't set locale; make sure $LC_* and $LANG are correct!\n"))
...