Occasionalmente il file di archivio della locale (/usr/lib/locale/locale-archive) non include una locale che si desidera utilizzare. In questo caso, è necessario creare un nuovo file locale o compilare il locale da uno esistente tramite:
# localedef -f [charmapfile] -i [inputfile] [outputpath]
ad esempio:
# localedef -f SHIFT_JIS -i ja_JP ja_JP.SJIS
Il messaggio di avviso "non compatibile con ASCII, locale non conforme a ISO C ” può essere ignorato. Questo comando può fornire le impostazioni locali appropriate anche se viene visualizzato il messaggio di avviso durante l'esecuzione del comando precedente. Il messaggio significa che “alcuni caratteri (forniti convertendo ASCII nelle impostazioni locali da te menzionate) non sono uguali ai codici che vengono convertiti in UCS-4. Ad esempio, '\' e '^' sono i caratteri tipici che non sono compatibili con UCS-4('\' è 0x00a5 e '^' è 0x203e in UCS-4, anche se '\' è 0x5c e '^' è 0x7e in ASCII).
È ora possibile utilizzare la nuova locale ja_JP.SJIS. Puoi controllare se la locale è applicata all'archivio locale tramite:
# localedef --list
La lingua elencata potrebbe essere minuscola, diversa dal nome della locale effettiva. Tieni presente che la nuova lingua potrebbe modificare la regola di elaborazione dei caratteri del testo. In questo caso, potrebbe essere necessario rimuovere la locale da locale-archive tramite:
# localedef --delete-from-archive [existent_locale_listed_in_localedef--list]