Pada topik artikel ini saya diminta oleh sebuah cerita dari masa lalu yang sangat baru. Saya pergi ke halaman produk yang disebut Supersite, perusahaan We Will Poke Fingers LLC (tetapi orang-orang dari industri domainer akan mengenali). Saya pergi dari kantor saya yang nyaman di Latvia dan terkejut menemukan gambar berikut:

Dan, secara sederhana, saya bingung dengan mata uang di mana biaya layanan ditunjukkan. Memang, di halaman paruh kedua 2018, dan lat Latvia secara resmi tidak ada pada Januari 2014 dan digantikan oleh euro. Dan selama 4 tahun, perusahaan tidak disebutkan di atas tidak repot-repot untuk mengaudit lokasi yang digunakan.
Di bawah potongan, saya akan memberi tahu Anda apa yang harus diingat ketika menginternasionalkan dan melokalisasi produk Anda dan di mana mendapatkan data untuk revisi berkala.
Definisi
Adalah logis untuk memahami pada awalnya apa itu dan menyetujui apa yang akan kita sebut di masa depan. Jadi ...
- Internasionalisasi (internasionalisasi, i18n) - menyiapkan produk perangkat lunak untuk bekerja dengan berbagai bahasa dan perbedaan lokal tanpa perlu menyelesaikan file selama implementasinya. Banyak surat, oleh karena itu saya akan jelaskan dengan contoh. Gambar situs web Anda sehingga tanpa intervensi tambahan dari
file tata letak , ini berfungsi untuk mengeja dari kiri ke kanan dan dari kanan ke kiri - internasionalisasi. Ganti seluruh hardcode teks dengan variabel bahasa - itu sama. Mengajarkan produk untuk memformat tanggal juga sama. Ngomong-ngomong, angka 18 dalam i18n berarti hanya jumlah huruf antara yang pertama dan terakhir dalam kata internasionalisasi. Saya malas, untuk kenyamanan, saya akan terus menggunakan i18n. - Lokalisasi (lokalisasi, L10n) - adaptasi dari perangkat lunak yang diinternasionalkan dengan standar wilayah tertentu (lokal). Yaitu ketika Anda memberikan daftar variabel bahasa untuk diterjemahkan ke dalam Bahasa Inggris
Bushman dan menentukan format angka untuk orang India, ini adalah L10n. - Lokal adalah seperangkat parameter yang mendefinisikan bahasa dan pengaturan antarmuka pengguna tertentu yang sesuai dengan kebiasaan pengguna dari wilayah tertentu.
Mengapa Anda membutuhkan ini?
Pertanyaan yang bagus Banyak bahasa pemrograman modern mengandung algoritma bawaan untuk lokalisasi dasar (memformat tanggal, angka, mata uang). Dan jika
Anda tidak peduli, Anda benar-benar siap untuk mempercayai teknologi yang telah Anda pilih, dan
Anda tidak peduli dengan pengguna, visi Anda tentang i18n untuk produk Anda tidak melampaui ini, satu-satunya alasan yang mungkin adalah keingintahuan kosong dan pengembangan umum.
Namun, iblis ada dalam rinciannya. Dan hal-hal kecil ini terkadang tidak memperhatikan, yang bisa sangat mengganggu pengguna. Jika Anda sudah memiliki pengalaman yang solid dengan i18n, kemungkinan besar Anda akan menemukan sedikit di artikel ini (mungkin beberapa contoh dari kehidupan). Dalam hal ini, saya akan berterima kasih jika Anda menambahkan komentar dari pengalaman Anda (dan memperbaiki saya jika saya melakukan kesalahan dalam sesuatu). Sisanya, saya harap, akan menemukan makanan untuk dipikirkan.
Aspek apa yang termasuk dalam wilayah tersebut?
Seringkali lokal ditentukan sebagai kombinasi bahasa dan negara. Parameter ini cukup untuk mengatur kombinasi nuansa bahasa dan parameter lain yang digunakan di wilayah tersebut. Untuk beberapa tugas khusus, pembagian yang lebih rumit mungkin diperlukan (misalnya, yurisdiksi pajak beberapa negara). Dalam hal ini, parameter ketiga masih disetel - variasi (misalnya, untuk wilayah tertentu, sistem operasi, dll.). Juga, banyak tergantung pada seberapa dekat Anda ingin dengan pengguna Anda (misalnya, di Filipina ada 12 bahasa asli dengan lebih dari satu juta penutur, mereka akan senang).
Jadi apa saja yang termasuk dalam wilayah tersebut?
Populer dan jelas
Memformat sebagian besar parameter dari grup ini menyediakan, mungkin, sebagian besar bahasa pemrograman modern. Meskipun lebih baik menjaga mereka sedikit untuk jaga-jaga. Atau setidaknya dalam waktu untuk memperbarui versi perpustakaan yang sesuai.
- Penerjemahan - semuanya jelas di sini, tidak ada bahasa pemrograman yang akan melakukan ini untuk Anda. Saat menyiapkan produk untuk diterjemahkan, ingat aturan sederhana: unit minimum yang diinginkan untuk variabel bahasa adalah kalimat (sejauh mungkin). Ungkapan yang lebih baik secara keseluruhan. Ini mungkin tidak jelas jika arsitek sistem hanya tahu satu bahasa atau dua yang secara tata bahasa sangat dekat (saya harus berurusan dengan pengalaman pribadi seperti itu, dan sebagai hasilnya, pengembang harus mengulang dan menulis ulang sejumlah besar pesan teks dalam kode mereka). Tetapi bahasa dalam arti luas adalah cerminan gaya hidup dan karakteristik budaya orang tertentu.
Misalnya, semua (atau banyak) dari Anda tahu bahwa dalam bahasa Inggris ada urutan kata-kata yang ketat. Sejauh yang saya tahu, dalam bahasa Mandarin juga. Tetapi dalam bahasa Rusia, urutan kata mungkin tidak memiliki arti sama sekali atau mengubah artinya ("kamu sangat pintar" terdengar seperti pujian, dan "kamu sangat pintar" seperti ancaman). Dalam bahasa Arab, ada perbedaan komunikasi dengan pria dan wanita, dalam bahasa Jepang - antara kelas sosial. Bergantung pada seberapa penting audiens ini atau itu bagi Anda, Anda harus mempelajari seluk-beluk ini secara rinci bersama dengan penutur asli atau mengabaikannya. - Tanggal dan waktu untuk sebagian besar berbeda persis dalam memformat tanggal. Perbedaan dalam format waktu terutama format 12 atau 24 jam. Tetapi dengan tanggal pilihan lebih banyak. Format tanggal sering dianggap banyak. Hari dan bulan; hari, bulan, tahun dalam format numerik; hari, bulan, tahun dalam format diperpanjang. Dan kemudian jumlah opsi berkembang pesat. Di suatu tempat, pemisah adalah titik, di suatu tempat - garis miring, di suatu tempat dalam format singkat, yang pertama adalah hari, di suatu tempat bulan. Lebih menyenangkan dengan format yang diperluas. Ambil contoh tanggal kelahiran saya (saya sederhana, ya). Jadi, pada tanggal 5 September 1986, seorang lelaki dilahirkan dengan byte kotor dengan karya ini. Ayo pergi ke lokasi. Dua negara berbahasa Inggris untuk memulai.
- AS - 5 September 1986.
- Inggris Raya - 5 September 1986.
Dan ini baru permulaan. Tidak ada kasus dalam bahasa Inggris, tetapi bahkan pada awal perjalanan kami, en_US dan en_UK berbeda. Lihatlah lebih dekat pada bahasa negara-negara?
- Rusia - 5 September 1986. Jadi kasusnya telah muncul. Dan di sini kejutan bisa dimulai, karena alat format tanggal standar dalam bahasa pemrograman Anda mungkin tidak mengetahui kasus nominatif dan genitif.
- Latvia - Anda ingin menyebutkan tanggal saja atau mengatakan sesuatu terjadi pada tanggal tersebut? Di Rusia (hari ini) 5 September dan (lahir) 5 September, semuanya genitif. Namun dalam bahasa Latvia, nama sederhana untuk tanggal tersebut adalah 1986 gada 5.septembris. Dan jika "Aku lahir" - 1986 gada 5.septembrī. Tahun adalah yang pertama, angkanya dalam kasus lokal (terjemahan kasar adalah “pada 5 September”). Dan setelah semua nomor urut dalam bahasa Latvia, suatu periode dimasukkan.
Targetkan seluruh dunia? Pikirkan format tanggal mana yang akan digunakan. Mungkin lebih baik tidak macam-macam dengan yang canggih, tidak mungkin fungsi pemformatan bawaan memperhitungkan semua seluk-beluk yang disebutkan di atas. Dan saya hanya melewati 4 dari 195 negara - anggota dan pengamat PBB. - Format angka juga mengandung banyak kebingungan. Saya tahu hanya pemisah dari bagian integer dan fraksional (biasanya suatu periode atau koma) dan pemisah di dalam bagian integer (saya telah memenuhi opsi "no separator", koma, spasi, saya juga mengizinkan penggunaan periode dan apostrof). Peran juga dimainkan oleh posisi di mana pembatas ditempatkan. Katakanlah kita (dan tidak hanya) digunakan untuk mengatur pembagi setiap 3 posisi (ribuan, jutaan, dll.). Tetapi di sini penduduk India dan negara-negara tetangga yang disebutkan di atas menjalani kehidupan mereka sendiri. Pemisah pertama di bagian bilangan bulat (menghitung dari desimal) datang setelah 3 posisi (ribuan), dan kemudian setiap dua: lakh (100 ribu), crore (10 juta) dan seterusnya. Dengan demikian, 42.000.000 kami dalam sistem rekaman India akan terlihat seperti 4.20,00.000 . Dan mereka sering mengukur gaji tahunan di lakh rupee di sana. Namun, dalam masalah memformat angka dengan tingkat keandalan yang tinggi, Anda dapat mengandalkan bahasa pemrograman.
- Format mata uang pada dasarnya adalah angka yang diformat, dibumbui dengan awalan atau akhiran untuk simbol atau kode mata uang. Hal utama di sini adalah memastikan bahwa tidak ada petualangan, seperti pada awal artikel. Saat ini, terutama berlaku untuk negara-negara UE, seperti beberapa mungkin bergabung dengan zona turnover euro.
- Arah penulisan sebenarnya mencakup sedikit lebih dari sekadar menulis seluruh teks dengan cara lain dalam beberapa bahasa. Ini adalah pekerjaan untuk perancang tata letak atau perancang UI. Saat melokalisasi antarmuka yang dibuat untuk bahasa “dari kiri ke kanan”, sering kali sepenuhnya dicerminkan untuk bahasa “dari kanan ke kiri” (misalnya, logo dan bilah samping dengan menu situs ada di sebelah kanan).
Kurang jelas
Beberapa data yang terkait dengan i18n cukup sering digunakan, tetapi terkadang dengan sedikit kelalaian. Di sini, bahasa pemrograman tidak membantu Anda, Anda harus bekerja dengan pena.
- Kode Pos Coba tebak, berapa banyak negara yang tidak menggunakan kode pos sama sekali? Menurut sebuah artikel di Great and All-Knowing , 66! Dalam keadilan, saya perhatikan bahwa 3 dari mereka menggunakan sistem yang mirip dengan kode pos, yang memungkinkan Anda untuk menyandikan ke jalan / kelompok rumah / rumah. Tetapi lebih banyak lagi yang tersisa, di mana kode pos tidak digunakan sama sekali, atau implementasinya sudah direncanakan atau direncanakan. Dan ini hampir sepertiga dari negara-negara di dunia. Sekarang ingat berapa banyak situs yang Anda temui, di mana kode pos merupakan bidang wajib? Dan tidak ada yang bisa dilakukan tentang itu. Meskipun pendekatan yang tepat adalah membuatnya wajib hanya untuk negara-negara di mana ia ada. Selain itu, jika diinginkan, Anda dapat memeriksa input ke standar negara yang dipilih oleh pengguna. Untungnya, informasi ini tersedia (termasuk tautan di atas).
- Wilayah Sebagai opsi - sebutkan, wilayah ... Bidang lain yang mereka suka wajibkan, tidak memperhitungkan situasi sebenarnya dengan pengalamatan pos di negara tersebut. Ya, bahkan di negara-negara terkecil sekalipun ada semacam pembagian administratif ( perincian tentang wiki yang sama ), tetapi tidak selalu layak menjadikan lapangan wajib.
- Nomor telepon Ini terdiri dari kode negara dan pengidentifikasi nasional. Dan jika bukan masalah untuk mendapatkan daftar kode negara, nuansa mungkin timbul dengan memvalidasi pengidentifikasi nasional. Misalnya, berapa panjang minimum nomor yang dijahit ke verifikasi Anda? Tetapi panjang angka minimum sebenarnya adalah 4 digit. Ya, ini hanya berlaku untuk dua wilayah miniatur, yang satu adalah yang kelima pada akhirnya dalam hal populasi, yang lain juga dekat di suatu tempat. Tapi di sini saya ingin lebih fokus pada validitas daripada pada kesempatan untuk mendapatkan salah satu dari sekitar 1600-1700 penduduk Niue sebagai pengguna. Dengan referensi, Anda bisa mendapatkan ide tentang panjang pengidentifikasi nasional berdasarkan negara.
- Nama dan daya tarik (gelar). Di sini banyak rata-rata yang biasa sudah cukup. Fields untuk nama depan dan belakang ditambah perlakuan hormat. Seperti poin-poin lain di bagian ini, semuanya tergantung pada seberapa "Anda" Anda inginkan. Jika secara umum, nama dan nama keluarga adalah wajib (meskipun dalam kasus yang jarang hukum dapat menetapkan hanya satu ini). Untuk kenyamanan, Anda dapat membuat bidang untuk sirkulasi, nama lain dan akhiran (semua ini adalah "junior", "ketiga"). Jika Anda masuk secara khusus, aturan penulisan dapat sangat bervariasi dari satu budaya ke budaya, dari bahasa ke bahasa.
- Rusia - kita semua tahu bahwa nama lengkap terdiri dari nama keluarga, nama, dan patronimik. Dalam bahasa tersebut, seperti halnya di negara itu sendiri, urutannya sangat kondisional, oleh karena itu dalam alamat nama keluarga mungkin di tempat pertama atau terakhir, dan nama tengah dapat dihilangkan. Opsional dapat ditambahkan pada awal banding Bpk / Ibu (Bpk / Ibu).
- AS - nama lengkap seringkali terdiri dari nama itu sendiri (nama depan, nama "depan"), nama tengah atau nama (nama tengah), atau nama depan dan belakang. Itu ditulis sebagai standar dalam urutan ini, nama-nama perantara dapat dihilangkan. Secara opsional, banding dapat ditambahkan (yang paling populer: Tuan, Ibu, Ibu, Dr).
- Latvia - nama lengkap terdiri dari nama dan nama keluarga, selalu dalam urutan itu. Patronimik seperti itu hanya ada dalam akta kelahiran, tidak digunakan dalam dokumen lain. Ada bentuk perlakuan sopan kungs / kundze (analog dari pria / nyonya Rusia), yang ditempatkan setelah nama keluarga (mis. Di akhir, dan bukan di awal, seperti di versi sebelumnya). Nama keluarga kemudian dicatat dalam pembayaran genitive.
- Cina - dalam catatan China asli, nama selalu lebih dulu, kemudian nama. Ada bentuk banding sopan yang bergabung dengan nama belakang (menyatu dengan itu, dan tidak dengan satu kata). Nama keluarga saya Vasiliskov dalam catatan Tiongkok akan terlihat seperti 瓦西里斯科夫. Dan rekan Cina, "Mr. Basilisk" adalah 瓦西里斯科夫 先生.
Memanjakan dengan CinaTidak relevan dengan topik artikel, tetapi bisa membawa banyak lulz. Jika Anda menggunakan kata tersebut, menerjemahkan penerjemah Google ke bahasa Mandarin, dan membagi hasilnya menjadi 1-2 hieroglif dan menerjemahkannya kembali, Anda dapat menghabiskan waktu yang sangat menyenangkan. Katakan, 瓦西 里 ia menerjemahkan sebagai "Basil", 斯科夫 sebagai "bay", 科夫 sebagai "Krakow". Tetapi makna rahasia pengetahuan kuno dapat diungkapkan dengan kata-kata biasa. Katakanlah telepon diterjemahkan menjadi 电话. Dalam hal ini, 电 - "listrik", 话 - "kata-kata". Dengan kata lain dengan listrik: 电池 - baterai (池 - kolam), 电脑 - komputer (脑 - otak), 电影 - film (影 - bayangan). Saya tidak memeriksa dengan bahasa Mandarin asli di bagian ini, tetapi waktu dapat dihabiskan dengan cara ini dengan sangat baik. Secara umum, bahasa yang menarik. Setelah orang Latvia dan Polandia harus melakukan ...
- Filipina - di sini sistem ejaan nama Amerika dan Spanyol secara historis bercampur. Diambil dari zaman penjajahan Spanyol, tradisi mengeja nama ibu dan ayah dicampur dengan Amerika untuk memberikan nama perantara. Dalam versi saat ini, nama yang diberikan saat lahir dicatat di kolom "nama", nama anak menjadi nama ayah, dan nama tengah adalah nama gadis ibu.
Seperti yang Anda lihat, mengadaptasi sistem ke semua opsi perekaman yang mungkin dapat membuatnya terlalu rumit. Tetapi jika salah satu pasar penting untuk produk Anda terletak di negara tertentu, Anda harus mencobanya.
Opsi yang lebih jarang
Sebagian besar dari Anda tidak mungkin membutuhkan aspek i18n dari kategori ini. Tetapi mungkin masih berguna untuk mengingatnya.
- Sistem unit. Apakah pengguna Anda terbiasa dengan meter, kilogram, liter, dan derajat Celcius? Atau kaki, pound, galon dan derajat Kelvin? Saya sendiri belum pernah ke Amerika Serikat, tetapi mereka yang pernah ke sana mengatakan kepada saya bahwa setibanya di sana Anda menemukan diri Anda di
Narnia, dunia yang indah dari unit-unit "tidak sistematis". Dan setelah menghabiskan waktu di sana, Anda mulai melupakan yang sistem. - Ukuran kertas. Ini sebagian terkait dengan yang sebelumnya dan sangat berguna jika Anda menghasilkan beberapa faktur, formulir kertas dan sesuatu yang berpotensi dicetak dan dimasukkan ke dalam folder untuk rekaman atau diberikan kepada seseorang. Sebagian besar negara terbiasa dengan format A4. Tetapi Amerika Serikat, misalnya, banyak menggunakan format Letter (8 1⁄2 x 11 inci, 216 x 279 mm) dan Legal (8 1⁄2 x 14 inci, 216 x 356 mm).
- Aturan string gabungan. Salah satu aspek yang sebenarnya bisa sering bermanfaat, dan mana yang sulit diimplementasikan. Dengan aturan string gabungan, maksud saya kasus-kasus ketika Anda perlu membentuk sepotong teks, dan tidak hanya menghasilkan variabel bahasa. Contohnya termasuk, tetapi tidak terbatas pada:
- kemunduran kata-kata yang berhubungan dengan nomor (dalam keranjang Anda 3 produk / 5 produk);
- pembentukan nama lengkap dari contoh di atas;
- penggunaan yang benar dari gender gramatikal dalam bahasa-bahasa di mana ia berada (Dear Mr. Ivanov / Dear Ms. Ivanova), dll.
Apa yang harus dilakukan dengan mereka? Jika Anda menargetkan sejumlah lokal atau memperluas secara bertahap, Anda dapat memikirkan arsitektur untuk tempat-tempat licin tersebut. Tetapi akan ideal untuk mengelak dari mereka dengan hati-hati dan netral.
Di mana mendapatkan informasi?
Dalam teks artikel saya memberikan tautan ke Wikipedia, tetapi kita semua tahu bahwa lebih baik tidak menggunakannya sebagai sumber pengetahuan yang serius. Untungnya, ada proyek
Gudang Data Umum Lokal yang didukung oleh
Konsorsium Unicode . Tidak hanya mengandung
banyak aspek dan parameter lokal yang luar biasa dan diperbarui secara berkala oleh komunitas, data juga tersedia untuk diunduh secara gratis dalam format XML, yang memungkinkan standar reguler diperbarui tanpa rasa sakit dengan arsitektur yang tepat.
Saya menyentuh hanya pada aspek-aspek dasar menurut pendapat saya. Jika Anda berpikir bahwa saya melewatkan sesuatu, tulis di komentar, saya akan menambahkan. Bagikan pengalaman Anda dengan produk lokal pada saat yang bersamaan.
Terima kasih telah tinggal bersama kami. Apakah Anda suka artikel kami? Ingin melihat materi yang lebih menarik? Dukung kami dengan melakukan pemesanan atau merekomendasikannya kepada teman-teman Anda,
diskon 30% untuk pengguna Habr pada analog unik dari server entry-level yang kami buat untuk Anda: Seluruh kebenaran tentang VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps dari $ 20 atau bagaimana membagi server? (opsi tersedia dengan RAID1 dan RAID10, hingga 24 core dan hingga 40GB DDR4).
VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps hingga Desember secara gratis ketika membayar untuk jangka waktu enam bulan, Anda dapat memesan di
sini .
Dell R730xd 2 kali lebih murah? Hanya kami yang memiliki
2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV dari $ 249 di Belanda dan Amerika Serikat! Baca tentang
Cara Membangun Infrastruktur Bldg. kelas menggunakan server Dell R730xd E5-2650 v4 seharga 9.000 euro untuk satu sen?