Katakanlah bahasa asli Anda adalah bahasa Ibrani, dan Anda bekerja dalam bahasa pemrograman seperti Python 3, yang memungkinkan Anda memasukkan bahasa Ibrani ke dalam kode sumber. Bagus untukmu! Anda punya dict
:
d = {'a': 1}
dan Anda ingin menggantinya a
dengan beberapa bahasa Ibrani. Jadi Anda mengganti karakter tunggal itu:
d = {'א': 1}
Uh oh. Hanya dengan mengganti satu karakter, tanpa membuat perubahan lain , tampilan Anda menjadi gila. Segala sesuatu mulai dari bahasa Ibrani sampai yang 1
terbelakang, dan sangat tidak jelas bahwa ini bahkan sintaksis yang valid ( itu adalah ), apalagi apa artinya.
Bahasa Ibrani secara intrinsik kanan-ke-kiri, dan bahkan tanpa karakter kontrol yang tidak terlihat, teks Ibrani akan muncul dari kanan ke kiri. Ini juga berlaku untuk karakter "reguler" tertentu di posisi dekat Ibrani, serta karakter dari beberapa skrip lainnya. Detailnya rumit.
Bagaimana Anda menangani ini? Anda tidak dapat menempel karakter kontrol ke kode sumber Anda untuk memperbaiki tampilan tanpa melanggar kode. Menulis semua yang ada di hex berhasil menukar satu jenis ketidakbacaan dengan yang lain. Bahkan jika Anda mengundurkan diri untuk menamai semuanya dengan karakter dari blok Latin Dasar dan menempelkan semua string Ibrani dalam file pelokalan, sulit untuk menghindari pencampuran teks kanan-ke-kiri dengan kiri-ke-kanan.
JSON atau CSV dengan bahasa Ibrani di dalamnya akan kacau. Jika file pelokalan tempat Anda memasukkan string Anda seharusnya dapat dibaca oleh manusia, ya, mungkin tidak. Apa yang kamu kerjakan?
sumber
'.dlrow olleH'
. Jika kanan-ke-kiri, Visual Studio Anda melakukan sesuatu yang aneh yang tidak dipaksa dari kiri ke kanan atau Algoritma Bidirectional Unicode yang tepat. Kasus mana pun memiliki sumber kebingungannya sendiri.Jawaban:
AFAIK, ini sebagian besar relevan ketika Anda menggunakan huruf non-ASCII dalam pengidentifikasi (dan mungkin komentar) dalam kode Anda.
Jika Anda mendisiplinkan diri untuk menghindari hal itu, misalnya jika kode Anda menggunakan pengidentifikasi dan kata kunci yang mencari "Bahasa Inggris" dan komentar, ini bukan masalah (dan setiap pengembang perangkat lunak harus dapat membaca dokumentasi dan kode Bahasa Inggris). Kemudian, internasionalisasi & lokalisasi aplikasi Anda hanya terjadi di pesan , terutama string literal .
Anda kemudian dapat menggunakan beberapa katalog pesan. Misalnya dalam C dan POSIX, Anda akan menggunakan gettext (3) dan teman-teman. Katalog pesan terlokalisasi berisi semua varian pesan terlokalisasi / internasional. Jika aplikasi Anda hanya untuk pengguna Ibrani (dan itu bukan pasar besar) miliki bahasa Ibrani hanya dalam string literal.
Untuk lebih spesifik, aplikasi hello world akan berisi
dan aplikasi Anda akan menyesuaikan sendiri saat mulai dijalankan dengan memanggil beberapa setlocale (3) dengan argumen yang sesuai.
Lihat lokal (7) . Sesuaikan semua ini dengan Python dan sistem operasi Anda. Banyak kerangka kerja lintas-platform (misalnya Qt ) memiliki dukungan luas untuk internasionalisasi & lokalisasi.
Tentu saja ada masalah rumit untuk menampilkan string Unicode. Tampilan dan pustaka GUI yang paling serius dan toolkit (Qt, GTk, ...) dapat menangani string bahasa campuran (misalnya menampilkan sesuatu yang mengandung bahasa Ibrani dan Inggris dan Rusia dan Cina).
Untuk tampilan yang lebih luas, baca wikipage tentang internasionalisasi dan lokalisasi perangkat lunak.
File JSON valid ketika hanya berisi karakter ASCII, dengan karakter lain (yang hanya akan muncul dalam string JSON) yang dikodekan dengan
\u05d0
(bukanא
) dalam string.Mungkin Anda bisa menemukan editor yang cukup bagus dan menyesuaikannya untuk kebutuhan Anda. Saya yakin Anda dapat menemukan beberapa submode Emacs (atau menyesuaikan satu) untuk membahas masalah tertentu yaitu memiliki string literal bahasa Ibrani dengan Python (tetapi masih memiliki pengidentifikasi dan komentar yang terlihat dalam bahasa Inggris).
BTW, saya tidak tahu bagaimana keyboard Ibrani terlihat, tetapi di sebagian besar layout keyboard, Anda dapat mengonfigurasinya sehingga mengetik huruf ASCII (yaitu yang Latin) lebih cepat daripada mengetik yang bukan ASCII. Jadi, bahkan untuk Anda sendiri, bisa lebih baik untuk mengetik kode yang terlihat dalam bahasa Inggris.
Mengenai data JSON, Anda harus dapat mengkonfigurasi editor Anda untuk melihat
א
kapan sebuah string berisi\u05d0
(jika tidak gunakan konverter JSON à la jq )Jadi saya percaya masalah Anda yang sebenarnya adalah memilih dan mengonfigurasikan editor yang cukup baik (walaupun memiliki bahasa Ibrani hanya di dalam string literal; dalam kasus yang jarang terjadi di mana string literal perlu mengandung bahasa Ibrani dan Inggris, pisahkan menjadi beberapa bagian.). Saya kira Emacs dan Vim dapat dikonfigurasi agar sesuai dengan kebutuhan Anda.
sumber