Di Sistem → Administrasi → Dukungan bahasa → Teks. Saya hanya dapat memilih lokal standar, tetapi saya ingin menyempurnakannya. Misalnya di Windows saya dapat menyesuaikan hal-hal seperti format waktu dan tanggal, satuan ukuran, pemisah desimal, mata uang, dll secara manual – bagaimana saya bisa melakukannya di Ubuntu?
Jawaban Terbaik
Jawaban ini akan menunjukkan cara menyesuaikan lokal sepenuhnya, secara opsional menggunakan lokal yang ada sebagai basis. Jenis lokal yang akan digunakan dalam jawaban ini adalah i18n
Tipe; jenis lokal seperti itu akan tersirat dalam setiap penyebutan kata "lokal" di badan jawaban.
Temukan panduan
Hal pertama yang Anda perlukan untuk menyesuaikan lokal, adalah mengenal format lokal. Editor lokal web ini memiliki deskripsi komprehensif dari setiap bidang di lokal, meskipun tidak dapat digunakan oleh sembarang orang secara langsung. Ini akan menjadi panduan untuk digunakan.
Alat yang dibutuhkan
Satu-satunya alat yang Anda perlukan untuk bekerja dengan lokal adalah
- Editor teks. Apa pun akan berhasil, meskipun VIM akan unggul.
- Konverter teks-ke-unicode. Sangat diharapkan bahwa Anda tidak memilikinya, jadi saya akan memberi Anda yang sederhana. Baca subbagian berikutnya untuk mendapatkannya.
Saya menyarankan Anda untuk membuat direktori dan menyimpan semua yang terkait dengan pekerjaan yang akan Anda lakukan di lokalnya.
Konverter teks-ke-unicode (encodestr)
CATATAN: jika Anda menggunakan karakter tidak umum Anda mungkin memiliki masalah dengan skrip yang saya tulis di bawah ini; Anda mungkin ingin melihat skrip alternatif yang ditautkan oleh nass .
Simpan kode berikut ke file. File ini akan diidentifikasi oleh sistem Anda sebagai skrip python, yang baik-baik saja karena ini adalah satu. Panduan ini mengasumsikan Anda memanggil skrip 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())
Setelah Anda menyimpannya, berikan izin eksekusi file – ini akan berguna. Anda dapat melakukannya menggunakan nautilus, atau dengan menjalankan dari terminal perintah berikut, pada direktori tempat Anda menyimpan skrip:chmod +x encodestr
.
Anda sekarang dapat menguji skrip ini dengan menjalankan di direktori yang sama:./encodestr hello
. Anda harus mendapatkan output yang sama dengan <U0068><U0065><U006C><U006C><U006F>
.
Ubah lokal yang ada
Memodifikasi lokal yang ada adalah kasus yang paling mudah, karena idealnya Anda akan memilih lokal yang paling sesuai dengan kebutuhan Anda, dalam hal ini Anda hanya perlu melakukan sedikit modifikasi. Untuk menyesuaikannya, Anda dapat menggunakan panduan untuk mengetahui bagian mana yang ingin Anda ubah, dan bagaimana Anda dapat mengubahnya. Semua lokal yang diinstal berada di /usr/share/i18n/locales
, namun panduan ini berisi hampir semua lokal yang pernah dibuat.
Namun, hal pertama yang akan Anda perhatikan saat membuka lokal adalah Anda akan membaca kata-kata bahasa Inggris sebanyak yang aneh <UXXXX>
kode. Anda harus dapat membuat kode-kode ini – di sinilah encodestr
naskah datang.
Saat Anda mengetahui bagian mana yang harus Anda ubah, Anda perlu mengetahui setiap bidang yang terdapat di bagian tersebut.
Misalnya,
LC_TIME
bagian berisi bidangt_fmt
, dan banyak lagi. Setiap bidang memiliki deskripsinya sendiri pada panduan.
Sekarang setelah Anda mengetahui bidang mana yang harus diubah, gunakan panduan lagi untuk mengetahui nilai apa yang diterima bidang tersebut.
Misalnya, bidang
t_fmt
menerima teks dan variabel strfmt umum.
Tepat ketika Anda tahu apa yang harus ditulis pada bidang yang ingin Anda ubah, jalankan teks melalui encodestr
skrip untuk mendapatkan padanan yang disandikan.
CATATAN: Tidak semua bidang perlu dikodekan, gunakan lokal yang ada sebagai referensi jika diperlukan.
Misalnya, jika Anda ingin memiliki format waktu
Time: %T
dit_fmt
bidang, jalankan./encodestr "Time: %T"
; ini akan mengembalikan<U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054>
sehingga Anda akan memiliki barist_fmt <U0054><U0069><U006D><U0065><U003A><U0020><U0025><U0054>
di lokal Anda (di bagian masing-masing, tentu saja).
Setelah Anda memodifikasi setiap bidang yang Anda inginkan, Anda harus melanjutkan untuk menginstal lokal ke sistem, sehingga dapat digunakan. Lanjutkan ke bagian instalasi untuk ini.
Membuat lokal dari awal
Berbeda dengan memodifikasi satu, metode lain yang dapat Anda gunakan untuk membuat lokal kustom Anda sedang mengerjakannya dari awal. Ini tidak terlalu sulit jika – sekali lagi – Anda menggunakan panduan ini. Berikut adalah tip yang berguna:Anda dapat menyalin bagian dari lokal lain tanpa salin dan tempel yang sebenarnya metode. Anda hanya perlu mengikuti format ini:
LC_SECTION
copy "locale"
END LC_SECTION
Dimana LC_SECTION
adalah bagian yang ingin Anda ubah, dan locale
adalah lokal tempat Anda ingin menyalin bagian tersebut.
Misalnya, jika Anda ingin menyalin format waktu dalam bahasa Inggris, Anda akan memiliki teks ini sebagai file lokal khusus Anda:
LC_TIME
copy "en_GB"
END LC_TIME
Dan itu menghemat banyak pekerjaan Anda dan memastikan bahwa setiap perubahan yang dibuat pada lokal yang direferensikan akan dicerminkan ke Anda.
Memasang lokal khusus Anda
Langkah-langkah yang akan saya tunjukkan di bawah ini mungkin tidak optimal, tetapi berhasil.
-
Kompilasi lokal Anda. Jangan panik! Ini tidak memakan waktu. Jalankan saja perintah
sudo localedef -i custom -f UTF-8 custom.UTF-8 -c -v
di manacustom
adalah nama lokal Anda. -
Salin lokal Anda ke
/usr/share/i18n/locales/
direktori. Anda pasti membutuhkan sudo hak istimewa untuk melakukan ini, dan Anda dapat melakukannya dengan perintahsudo cp locale /usr/share/i18n/locales/
di manalocale
adalah nama file dari lokal kustom Anda. -
Tentukan lokal Anda di
/var/lib/locales/supported.d/
. Misalnya, buat nama file/var/lib/locales/supported.d/asd
dan tambahkan bariscustom UTF-8
, di mana custom adalah nama lokal Anda. -
Jalankan perintah ajaib. Saya sebenarnya tidak tahu persis apa yang dilakukan perintah ini, tetapi ini sangat penting. Jalankan
sudo locale-gen
. Kemungkinan besar itu menghasilkan referensi ke lokal yang tersedia jika diperlukan. -
Beri tahu sistem Anda untuk menggunakan lokal. Jika Anda ingin lokal digunakan di seluruh sistem, ubah
/etc/environment
mengajukan. Jika tidak, Anda dapat mengubah~/.profile
file, atau yang lain yang bersumber saat startup. Jika Anda tidak tahu apa artinya yang terakhir, jangan khawatir, cukup gunakan~/.profile
mengajukan. Untuk mengetahui apa yang harus Anda tulis di dalamnya, pertama jalankanlocale
memerintah. Itu harus mengeluarkan daftar dengan item sepertiLANGUAGE
,LC_MESSAGES
,LC_CTYPE
dan banyak lagi. Anda akan menulis, untuk setiap bagian yang Anda inginkan (didaftarkan oleh perintah sebelumnya), pada baris terpisah,SECTION="locale"
ini di manaSECTION
adalah bagian danlocale
nama lokal kustom Anda.
Misalnya, jika Anda ingin menggunakan format waktu dari Belanda, tetapi bahasa Inggris, tulis:
LANGUAGE="en_GB:en"
LC_TIME="nl_NL"
CATATAN: Jika Anda ingin menggunakan satu lokal untuk setiap setelan lokal, tulis LC_ALL="locale"
di mana locale
adalah nama lokal kustom Anda. Jika Anda ingin menggunakan lokal untuk semuanya kecuali bahasa, Anda dapat menulis LANG="locale"
dan (di baris lain, tentu saja) LANGUAGE="locale":XX
dimana XX
adalah kode 2 huruf untuk bahasa yang Anda inginkan.
Misalnya, jika Anda ingin menggunakan bahasa Belanda dan bahasa Inggris, Anda dapat menggunakan:
LANG="nl_NL"
LANGUAGE="nl_NL:en"
Anda telah selesai
Lain kali Anda masuk, lokal Anda harus digunakan. Anda dapat menguji ini dengan menjalankan locale
perintah lagi.
Beri komentar tentang inkonsistensi atau pernyataan salah dalam panduan ini!