Internasionalisasi: Hal-hal apa yang dipikirkan?

8

Saya mendengarkan ceramah Jon Skeet di StackOverflow Dev Days terakhir dan dia membangkitkan rasa ingin tahu saya mengenai internasionalisasi.

Misalkan saya memiliki program pembuat wafel, baik yang lengkap, atau masih dalam proses, dan saya ingin mendistribusikannya ke negara lain. Hal-hal apa yang perlu saya khawatirkan mengenai internasionalisasi? Apa saja jebakan yang tidak jelas tapi mudah?

rlb.usa
sumber
Maaf tentang 3 pengeditan tetapi karena suatu alasan menghapus satu tag menggantikan yang lain dengan "java".
ChrisF
Saya pribadi menganggap tag jon-skeet itu lucu.
rlb.usa
1
Mungkin lucu, tapi itu tidak terlalu berguna
ChrisF

Jawaban:

15

Hal paling jelas yang muncul di benak Anda adalah bahwa label Anda kemungkinan besar akan memiliki panjang yang berbeda dengan versi bahasa Inggris. Ini bisa memainkan malapetaka dengan tata letak Anda.

Anda bisa berakhir dengan luas ruang putih atau label yang ramai dan bahkan meluap-luap di ruang yang tersedia.

Anda perlu membuat tata letak Anda fleksibel dan mengalir terlepas dari ukuran konten. Memiliki tata letak yang dapat mengatasi resolusi layar yang berbeda akan sangat membantu untuk menyelesaikan masalah ini.

Masalah besar lainnya adalah dukungan bahasa kanan ke kiri. Ini lagi akan membutuhkan tata letak Anda agar fleksibel.

Bukan hanya menu dan dialog yang perlu diterjemahkan. Itu semua dokumentasi dukungan, file bantuan, tips alat dan judul judul jendela juga. Biasanya ada lebih banyak teks daripada yang Anda sadari dalam suatu aplikasi dan akan selalu ada beberapa string yang ditambahkan secara langsung daripada sebagai sumber daya.

ChrisF
sumber
Tanpa keraguan, panjang kata adalah bagian tersulit dari internasionalisasi. Kata-kata teknis Jerman memiliki kecenderungan sekitar 2,5 kali lebih panjang dari bahasa Inggris.
Dave Nay
misalnya kata bahasa Inggris "note" dapat diterjemahkan ke "Aufzeichnungen" dalam bahasa Jerman. Pemberi kerja sebelumnya, kami menggunakan tata letak CSS yang berbeda tergantung pada bahasa yang ditampilkan. Lihat kisi-kisi CSS seperti YUI Grids atau BlueprintCSS.
Adrian J. Moreno
TOLONG jangan lupa menerjemahkan pesan kesalahan juga!
Andy Canfield
@Andy - itu tersirat dalam bit "dialog", tapi ya layak disebut.
ChrisF
10

Zona waktu dan format tanggal! Ketika berhadapan dengan aplikasi tempat penjadwalan tanggal dan waktu melintasi zona waktu, pastikan Anda melakukan hal-hal dengan benar.

Tetap bertahan SEMUA nilai tanggal dan waktu sebagai cap waktu karena mewakili satu titik waktu. Lacak zona waktu lebih lanjut karena Anda akan memerlukan informasi zona waktu untuk menampilkan cap waktu dengan benar dalam format yang benar untuk pengguna.

Saya sedang mengerjakan aplikasi saat ini di mana pengguna di Jepang dapat menjadwalkan tanggal dan waktu untuk pengguna yang menjalankan aplikasi klien di Idaho. Memastikan bahwa ketika pengguna melihat 3:00PMbahwa mereka tahu yang 3:00PMdibicarakan semua orang.

maple_shaft
sumber
9

Ingatlah bahwa hanya karena seseorang berada di negara tertentu tidak berarti dia tahu bahasa itu. Bahasa dan lokasi adalah dua masalah yang berbeda.

Andy Canfield
sumber
1
Itu back-end bahasa geo-lokasi yang sangat populer hari ini adalah ide yang buruk! Anda mencoba menjadi orang Norwegia yang tinggal di daerah berbahasa Perancis di negara yang sebagian besar berbahasa Jerman (Jenewa, Swiss). Header Terima-Bahasa ada karena suatu alasan!
l0b0
8

Angka Sebagian besar Eropa, Amerika Selatan menggunakan koma (10,23) sebagai pemisah desimal sedangkan sisanya (Inggris, AS dll.) Menggunakan periode (10,23).

Lukasz Madon
sumber
4
Saya tahu ini adalah tautan ke Stack Overflow, tetapi masih merupakan praktik yang baik untuk meringkas konten dalam jawaban Anda.
ChrisF
3

Tidak selalu mudah ... Ada banyak hal yang perlu dipertimbangkan, tergantung pada kompleksitas perangkat lunak yang Anda kembangkan, dan ke mana Anda akan mengirimkannya. Bahkan mungkin berakhir di mana saja, jadi yang penting adalah lokal mana yang akan Anda dukung secara resmi.

  • Jelas, ada bahasa antarmuka. Semua teks yang Anda gunakan harus relatif mudah diubah untuk setara dalam bahasa lain. Seperti yang sudah ditunjukkan orang, panjang label akan bervariasi. Sesuatu yang ditulis dalam bahasa Cina tidak akan sama lebarnya dengan sesuatu yang ditulis dalam bahasa Jerman, misalnya. Mari kita tambahkan bahwa bukan hanya antarmuka dasar untuk menerjemahkan, tetapi semua info gelembung, file bantuan jika ada, pesan kesalahan, mungkin tidak mencatat file, tapi itu tergantung pada aplikasi yang saya kira. Jika aplikasi Anda mendukung bahasa, situs web Anda mungkin juga ingin mengejar ketinggalan.
  • Pengkodean karakter. Adalah baik untuk menyediakan banyak bahasa, tetapi bagaimana Anda akan melakukannya? Jika semuanya diprogram dengan pengkodean karakter dasar / sempit, Anda akan mengalami masalah dengan beberapa aksen dan sebagian besar bahasa yang tidak menggunakan karakter kami. Pikirkan bahasa Korea, atau Arab. Saya kira seseorang harus menggunakan Unicode sebanyak mungkin.
  • Disposisi widget / orientasi jendela. Jika Anda memilih untuk mendukung bahasa Arab, misalnya, Anda perlu memikirkan cara untuk membalikkan antarmuka Anda. Mereka membaca dari kanan ke kiri, jadi itu normal untuk memiliki label di sisi kanan elemen yang mereka jelaskan (kotak teks untuk entri, misalnya).
  • Pemformatan angka. Di beberapa lokal, ada koma bukannya titik untuk memisahkan bagian pecahan dari bagian bilangan bulat dalam angka. Yang satu itu cukup jelas, tetapi tergantung pada domain aplikasi, mungkin ada banyak hal lain yang perlu dipertimbangkan. Apakah angka negatif di antara tanda kurung atau dengan tanda '-' di depannya? Apakah ribuan dipisahkan atau tidak, dengan spasi atau dengan koma? Apakah pemisahan angka selalu dengan 3, atau hanya kelompok pertama dengan 3 dan sisanya oleh 2? Apakah Anda menggunakan angka Arab atau India, atau lainnya?
  • Pemformatan tanggal. Ini hampir sama rumitnya. Anda mungkin harus menyimpan nama lengkap hari dalam seminggu, bulan dalam setahun, dan semuanya juga diringkas. Pemesanan apa yang mereka gunakan (hari, bulan, tahun? Bulan, hari, tahun? Tahun, bulan, hari? Dll.).
  • Pemformatan waktu. 24 jam atau 12? ':' atau 'h'? ':' atau '.' selama beberapa detik? Saya tidak tahu banyak tentang format waktu, tapi saya kira ada banyak cara yang tidak diketahui bagi saya untuk menampilkan waktu.
  • Grafik! Jika Anda memiliki ikon ... Anda akan ingin memverifikasi tidak hanya bahwa huruf atau kata-kata di dalamnya masih bermakna untuk semua lokal, tetapi bahwa simbol yang Anda gunakan juga bermakna dan masih berorientasi dengan benar. Jika panah menunjuk ke kiri dalam versi bahasa Inggris, Anda memiliki kemungkinan panah itu menunjuk ke kanan dalam versi bahasa Arab (tetapi tidak harus!). Jika Anda memasang tanda berhenti sebagai oktagon merah pada ikon Anda, orang-orang di beberapa daerah tidak akan memiliki petunjuk untuk apa itu, atau lebih buruk lagi, mereka akan yakin itu harus melakukan beberapa hal lain dari apa yang Anda maksudkan dan programkan. .
  • Jika Anda harus berurusan dengan alamat di sistem Anda, mereka menjadi canggung di beberapa tempat juga. Sakit kepala hebat jika Anda harus memvalidasinya.
  • Dll

Syukurlah, ada banyak perpustakaan dalam banyak bahasa untuk menangani bagian pekerjaan yang baik. Ketika Anda tidak memiliki perpustakaan yang baik untuk melakukan itu, Anda mungkin ingin menentukan parameter untuk semua lokal Anda dan menentukan secara detail menggunakan file XML atau jenis file konfigurasi lainnya (atau dalam database jika Anda mengirim satu dengan perangkat lunak , atau jika Anda tidak keberatan menambahkan satu tapak kecil).

Joanis
sumber
2

Itu sangat tergantung pada platform yang Anda gunakan. .NET mendukung file Sumber Daya yang dapat diubah masuk dan keluar tergantung pada membangun pelanggan.

Masalah lain yang mungkin atau mungkin tidak didukung di platform Anda termasuk kemampuan membalik urutan label dan kotak teks (beberapa budaya lebih suka label berada di sebelah kanan). Budaya yang sama ini mungkin ingin semua blok teks dibaca dari kanan ke kiri.

Britt Wescott
sumber
2

Jangan lupa tentang nilai dalam tabel pencarian! Nama status pesanan, deskripsi jenis, dkk.

jika Anda memiliki deskripsi dan nama dalam tabel pencarian, misalnya {OrderStatusId, OrderStatusName, OrderStatusDescription} ini juga perlu diterjemahkan.

Steven A. Lowe
sumber
0

Selain yang di atas, pertimbangkan format tanggal, ejaan dan kontrol orientasi layar. Dalam laporan di mana bahasa dibaca dari kanan ke kiri, Anda perlu khawatir tentang arah lekukan. Akhir pekan bervariasi di setiap negara. Jika Anda menampilkan kalender, Anda harus memastikan bahwa akhir pekan ditampilkan dengan benar. Jika Anda tidak menggunakan MS-Windows, periksa tentang fitur di OS klien tentang penanganan urutan penyatuan untuk pengurutan dan bagaimana OS. Pesan kesalahan harus diterjemahkan ke pengguna saat mode ini bukan bahasa Inggris. Dalam kode. Untuk sisi basis data, Anda perlu memilih kode karakter yang benar. Ini bervariasi dari basis data ke basis data dan dapat memengaruhi perbandingan tanggal.

Tidak ada kesempatan
sumber