GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come personalizzare una lingua di sistema?

Al sistema Amministrazione Supporto linguistico Testo. Posso solo scegliere le impostazioni locali standard, ma vorrei perfezionare. Ad esempio in Windows potrei personalizzare cose come il formato di ora e data, unità di misura, separatore decimale, valuta, ecc. manualmente – come posso farlo in Ubuntu?

Migliore risposta

Questa risposta dimostrerà come personalizzare completamente una locale, utilizzando facoltativamente una locale esistente come base. Il tipo di locale che verrà utilizzato in questa risposta è i18n genere; tale tipo di locale sarà implicito in ogni menzione della parola "locale" nel corpo della risposta.

Trova una guida

La prima cosa di cui hai bisogno per personalizzare una lingua, è conoscere il formato della lingua. Questo editor di localizzazione web ha una descrizione completa di ogni campo in una locale, nonostante non sia utilizzabile da chiunque in modo immediato. Questa sarà la guida da usare.

Strumenti necessari

Gli unici strumenti di cui hai bisogno per lavorare con le impostazioni locali sono

  1. Un editor di testo. Qualsiasi andrà bene, anche se VIM eccellerà.
  2. Un convertitore da testo a Unicode. Ci si aspetterebbe molto che tu non ne abbia uno, quindi te ne fornirò uno semplice. Leggi la prossima sottosezione per ottenerlo.

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 (encodestr)

NOTA: se stai utilizzando caratteri non comuni potresti avere problemi con lo script che scrivo di seguito; potresti dare un'occhiata agli script alternativi collegati da nass .

Salva il codice seguente in un file. Questo file verrà identificato dal tuo sistema come uno script python, il che va bene perché è uno. Questa guida presuppone che tu abbia chiamato lo script encodestr .

#!/usr/bin/env python3

import sys

def main():
    if len(sys.argv) != 2:
        exit(f'Usage: {sys.argv[0]} <string to encode>')
    print(encode(sys.argv[1]))

def encode(s):
    return ''.join(f"<U{ord(c):04X}>" for c in s)

if __name__ == '__main__':
    sys.exit(main())

Dopo averlo salvato, dai il permesso di esecuzione del file:questo sarà utile. Puoi farlo usando nautilus, oppure eseguendo da terminale il seguente comando, nella directory in cui hai salvato lo script:chmod +x encodestr .

Ora puoi testare questo script eseguendo nella stessa directory:./encodestr hello . Dovresti ottenere un output uguale a <U0068><U0065><U006C><U006C><U006F> .

Modifica una locale esistente

La modifica di una lingua esistente è il caso più semplice, poiché idealmente sceglierai una lingua che si adatta quasi totalmente alle tue esigenze, nel qual caso devi apportare solo piccole modifiche. Per personalizzarlo, puoi utilizzare la guida per sapere quali delle sezioni sono quelle che desideri modificare e come puoi modificarle. Tutte le localizzazioni installate risiedono in /usr/share/i18n/locales , tuttavia la guida contiene praticamente tutte le impostazioni locali mai create.

Tuttavia, la prima cosa che noterai quando apri un locale è che leggerai parole inglesi tanto quanto strane <UXXXX> codici. Dovrai essere in grado di creare questi codici:è qui che si trova encodestr arriva lo script.

Quando sai quali sezioni devi modificare, devi conoscere ogni campo contenuto nella sezione.

Ad esempio, il LC_TIME contiene il campo t_fmt , e molti altri. Ogni campo ha una propria descrizione nella 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 testo e le comuni variabili strfmt.

Proprio quando sai cosa scrivere sui campi che vuoi modificare, esegui il testo attraverso il encodestr script per ottenere il suo equivalente codificato.

Correlati:come eseguire l'applicazione per un determinato periodo di tempo nella shell?

NOTA: Non tutti i campi devono essere codificati, utilizzare una locale esistente come riferimento se necessario.

Ad esempio, se vuoi avere il formato dell'ora Time: %T nel t_fmt campo, esegui ./encodestr "Time: %T"; questo restituirà <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054> e quindi avrai la riga t_fmt <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054> nella tua lingua (nella rispettiva sezione, ovviamente).

Dopo aver modificato tutti i campi desiderati, dovrai procedere con l'installazione della locale sul sistema, in modo che possa essere utilizzata. Procedi alla sezione di installazione per questo.

Creazione di una localizzazione da zero

Invece di modificarne uno, l'altro metodo che puoi utilizzare per creare la tua locale personalizzata sta lavorando su di esso da zero. Questo non è molto difficile se, ancora una volta, usi la guida. Tuttavia, ecco un suggerimento utile:puoi copiare sezioni da altre località senza copiare e incollare effettivi metodi. Devi solo seguire questo formato:

LC_SECTION
copy "locale"
END LC_SECTION

Dove LC_SECTION è la sezione che vuoi modificare e locale è la lingua da cui vuoi copiare quella sezione.

Ad esempio, se desideri copiare il formato dell'ora nella lingua inglese, dovresti avere questo testo come file della lingua personalizzata:

LC_TIME
copy "en_GB"
END LC_TIME

E questo ti fa risparmiare un sacco di lavoro e assicura che qualsiasi modifica apportata alla locale di riferimento verrà rispecchiata nella tua.

Installazione della lingua personalizzata

I passaggi che mostrerò di seguito potrebbero non essere ottimali, ma funzionano.

  1. Compila il tuo locale. Niente panico! Questo non richiede tempo. Basta eseguire il comando sudo localedef -i custom -f UTF-8 custom.UTF-8 -c -v dove custom è il nome della tua località.

  2. Copia la tua locale in /usr/share/i18n/locales/ directory. Avrai sicuramente bisogno di sudo privilegi per farlo, e puoi farlo con il comando sudo cp locale /usr/share/i18n/locales/ dove locale è il nome del file della tua locale personalizzata.

  3. 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 custom è il nome della tua locale.

  4. Esegui il comando magico. In realtà non so cosa faccia esattamente questo comando, ma è fondamentale. Esegui sudo locale-gen . È molto probabile che generi riferimenti alle localizzazioni disponibili dove necessario.

  5. Dì al tuo sistema di usare la locale. Se vuoi che la locale venga usata a livello di sistema, modifica il /etc/environment file. In caso contrario, puoi modificare il tuo ~/.profile file o qualsiasi altro originato all'avvio. Se non sai cosa significa quest'ultimo non ti preoccupare, usa semplicemente il ~/.profile file. Per sapere cosa devi scrivere al suo interno, esegui prima il locale comando. Dovrebbe pubblicare un elenco con elementi come LANGUAGE , LC_MESSAGES , LC_CTYPE e molti altri. Scriverai, per ciascuna delle sezioni che desideri (elencate dal comando precedente), su righe separate, questo SECTION="locale" dove SECTION è la sezione e locale il nome della tua locale personalizzata.

Ad esempio, se vuoi utilizzare il formato dell'ora dai Paesi Bassi, ma la lingua inglese, scrivi:

LANGUAGE="en_GB:en"
LC_TIME="nl_NL"

NOTA: Se desideri utilizzare una lingua per ogni impostazione locale, scrivi LC_ALL="locale" dove locale è il nome della tua locale personalizzata. Se vuoi usare una localizzazione per tutto tranne che per la lingua, puoi scrivere LANG="locale" e (su un'altra riga, ovviamente) LANGUAGE="locale":XX dove XX è il codice di 2 lettere per la lingua desiderata.

Ad esempio, se desideri utilizzare la locale olandese e la lingua inglese, puoi utilizzare:

LANG="nl_NL"
LANGUAGE="nl_NL:en"

Hai finito

La prossima volta che accedi, la tua lingua dovrebbe essere in uso. Puoi verificarlo eseguendo locale comando di nuovo.

Correlati:Iptables:impossibile inizializzare il filtro della tabella?

Si prega di commentare le incongruenze o le dichiarazioni false in questa guida!


Ubuntu
  1. Come installare Ruby su Windows 10

  2. Come modificare una locale di sistema su RHEL7 Linux

  3. Come installare Gradle su Ubuntu 18.04

  4. Come configurare le impostazioni internazionali del sistema su CentOS 7

  5. Come configurare la localizzazione del sistema su Ubuntu 16.04

Come aggiungere una stampante a Ubuntu

Come reinstallare Ubuntu

Come installare urBackup su Ubuntu 20.04

Come installare Dropbox su Ubuntu 18.04 e 16.04

Capire come funziona un sistema di posta elettronica

Come personalizzare Cinnamon Desktop in un sistema Linux