Kami sedang mengembangkan aplikasi besar, yang terdiri dari banyak paket kecil. Setiap paket memiliki set sendiri file sumber daya untuk pelokalan.
Apa pendekatan terbaik untuk mengatur dan memberi nama string pelokalan?
Inilah pemikiran saya sejauh ini:
Menangani duplikat
Teks yang sama (misalnya, "Kode pos") dapat muncul beberapa kali dalam satu paket. Pemrograman insting (KERING) memberitahu saya untuk membuat sumber daya string tunggal yang dibagikan oleh semua kejadian .
Kemudian lagi, seorang penerjemah mungkin ingin memilih terjemahan yang panjang ("Postleitzahl") di beberapa tempat dan yang lebih pendek ("PLZ") di tempat-tempat dengan lebih sedikit ruang. Atau kita dapat memutuskan untuk menambahkan tanda titik dua pada beberapa kejadian ("Kode pos:"), tetapi tidak untuk yang lain. Atau kami mungkin memerlukan kapitalisasi berbeda ("kode pos") di beberapa tempat. Semua argumen ini menunjuk pada pembuatan satu sumber daya per penggunaan, meskipun kontennya identik .
Penamaan
Jika kami bertujuan untuk menghilangkan duplikat, masuk akal untuk memberi nama sumber daya dengan konten , mungkin mengisyaratkan jenis penggunaan melalui awalan. Jadi kita mungkin memiliki labelOK
= "OK" , messageFileTooLarge
= "File tersebut melebihi ukuran file maksimum." , dan labelZipCode
= "Kode pos" .
Memberi nama berdasarkan konten memiliki keuntungan menangani argumen format secara alami: Sumber daya messageFileHas_0_MBWhileMaximumIs_1_MB
jelas membutuhkan dua argumen format, ukuran file aktual dan ukuran file maksimum.
Namun, jika kami mengizinkan duplikat, penamaan berdasarkan konten saja tidak masuk akal. Untuk mendapatkan nama sumber daya yang unik, kami harus memasukkan tempat penggunaan dalam nama sumber daya tersebut. Itu bekerja untuk kontrol grafis, meskipun pengidentifikasi cenderung agak lama: fileSelectionConfirmationButtonText
= "OK" , customerDetailsTableColumnZipCode
= "Kode Pos" . Namun, untuk file kode non-visual, semakin sulit. Bagaimana Anda memberi nama penggunaan string tertentu jika Anda tidak tahu di mana akhirnya akan ditampilkan? Dengan file kode dan nama fungsi? Tampak agak canggung dan rapuh bagi saya.
Semua dalam semua, saya condong ke arah memungkinkan duplikat, tapi saya berjuang untuk menemukan skema penamaan yang konsisten yang mendukung ini.
Edit: Pertanyaan ini memiliki dua aspek: Cara mengatur sumber daya (DRY vs duplikat) dan bagaimana nama mereka. Sejauh ini, jawabannya terkonsentrasi pada aspek pertama. Saya akan menghargai umpan balik tentang konvensi penamaan!
sumber
Jawaban:
Saya akan menerima duplikasi setiap kali Anda tidak dapat benar-benar yakin artinya sama persis dalam semua kasus string tertentu digunakan.
Bahkan jika dua label selalu berisi string yang sama dalam bahasa Inggris (atau bahasa ibu Anda) mereka tidak akan selalu sama di semua bahasa. Menerima duplikasi dapat memberi Anda (atau lebih tepatnya penerjemah) fleksibilitas yang diperlukan untuk menangani situasi seperti itu.
Sebagai contoh: Pertimbangkan label "Kondisi", yang - tergantung pada konteksnya - dapat diterjemahkan ke "Zustand" atau "Bedingung" dalam bahasa Jerman (di antara banyak terjemahan lain yang mungkin).
sumber
Terima beberapa duplikat.
Anda dapat menghindari beberapa terjemahan dengan membuat kontrol tambahan. Misalnya a
CancelButton
danOKButton
yang sudah mengandung teks mereka, dan sekarang Cancel / Abbrechen OK / OK perlu diterjemahkan hanya sekali. Tapi itu hampir merupakan kasus khusus.sumber
Ini adalah cara kami menanganinya di perusahaan saya:
Konvensi penamaan: Kami memberi nama label dengan mengawali mereka dengan kelas / bagian / formulir / dll. Misalnya
loadFile_loadButton
,loadFile_fileNameLabel
,loadFile_cancel
semua label milik dialog Load File. Meskipun konvensi penamaan yang digarisbawahi ini bukan yang paling umum, kami lebih menyukainya daripada konvensi standar karena ini meningkatkan keterbacaan dan "groupability": perhatikan betapa mudahnya untuk melihat elemen mana yang dimiliki label, dan apa yang masing-masing label wakili, dibandingkan dengan label bernamaloadFileLoadButton
,loadFileNameLabel
danloadFileCancel
. Anda mungkin berpikir perbedaannya tidak terlalu besar, tetapi ketika Anda memiliki ribuan label, efek gabungannya sepadan.Komentar tajuk : Tambahan untuk awalan nama label, kami juga menambahkan komentar "tajuk" ke file sumber daya untuk menentukan dengan jelas pengelompokan label. Dengan cara ini, seseorang yang ingin memodifikasi atau menambahkan label spesifik yang terkait dengan satu kelas / bagian / formulir / dll dapat menemukan semua label yang terkait dengan elemen tertentu hanya di satu tempat, di bawah satu header, dan dapat dengan mudah melanjutkan untuk menambah atau memodifikasi label dengan mudah mengetahui bahwa mereka tidak akan merusak terjemahan untuk elemen lain (IMHO, ini juga merupakan poin yang sangat kuat tentang mengapa Anda harus mengizinkan duplikasi).
Duplikat "dibenarkan" diinginkan: Seperti yang disebutkan di atas, praktik-praktik ini secara definitif akan mengarah pada label duplikat, tetapi kami tidak melihat masalah dengan itu (lebih lanjut tentang cara menangani ini di Alat perdagangan).
Seperti yang telah ditunjukkan orang lain, satu label dalam satu bahasa dapat diterjemahkan dalam dua atau lebih cara yang berbeda dalam bahasa lain tergantung pada konteksnya. Jika Anda "menyatukan" label, penerjemah akan kesulitan menemukan label tunggal yang mengakomodasi semua konteks tempat label ditemukan. Jadi, seperti yang kita lihat, memperbolehkan duplikat "dibenarkan" membantu meningkatkan kualitas pelokalan, selama mereka tidak merujuk ke hal yang sama di bawah konteks yang sama (ini adalah arti "dibenarkan").
Alat perdagangan: Agar seefektif mungkin ketika melakukan terjemahan Anda, Anda dapat membuat alat Anda sendiri yang mencari label serupa yang ada di bundel Anda, dan menawarkan terjemahan mereka sebagai nilai default untuk label baru, atau Anda bahkan dapat gunakan layanan yang ada seperti ini , yang menyediakan alat-alat seperti yang baru saja saya sebutkan, membuat terjemahan label baru menjadi mudah (bahkan lebih lagi jika mereka diulang beberapa kali, karena alat ini akan menawarkan beberapa opsi terjemahan secara default untuk label baru) ).
Ringkasnya: Duplikasi yang dibenarkan dan label-label yang dikelompokkan secara kontekstual sangat membantu para penerjemah melakukan pekerjaan mereka. Waktu besar Pikirkan saja: memiliki konteks sangat membantu dalam membantu penerjemah untuk memilih terjemahan yang tepat. Dan memungkinkan duplikat "yang dibenarkan" menghilangkan konflik karena harus memilih satu terjemahan yang sesuai dengan beberapa konteks (tetapi tetap merupakan keseluruhan yang paling cocok).
Saya harap ini membantu!
sumber
Ketika saya sudah melakukan ini di masa lalu, kami menyusuri rute file sumber daya yang berisi kalimat lengkap. Jika kalimat yang sama persis digunakan berulang kali hebat, tetapi jika itu hanya kata-kata individual dari dalam kalimat kata-kata itu akan digandakan.
Kami terikat pada kerangka kerja di mana file sumber daya hanya berisi daftar frasa bahasa Inggris diikuti oleh terjemahan (dengan beberapa data pengindeksan di akhir untuk pencarian cepat).
Untuk perintah atau tombol data kecil, seperti nama bidang "Kode ZIP" atau tombol "OK" itu akan menyimpan string "Kode ZIP" diikuti oleh terjemahan dan akan menggunakannya di mana pun string penuh diperlukan. Tetapi (kecuali jika kami secara manual memecah string) tidak akan menggunakannya untuk "Kode ZIP" yang muncul dalam kalimat.
Menggunakan contoh Kode ZIP Anda, jika Anda mencoba dan menerjemahkannya sendiri dan menggantinya dalam semua kalimat yang menggunakannya, Anda akan mendapatkan terjemahan yang sangat sangat buruk.
Misalnya, "Kode ZIP harus dimasukkan" mungkin perlu menerjemahkan setara literal dari "Kode ZIP yang Dimasukkan harus" dalam bahasa lain. Jika Anda memotong kalimat, Anda tidak mendapatkan pembalikan kata-kata yang diperlukan dalam bahasa lain.
Itu sebabnya beberapa terjemahan yang dilakukan dengan buruk ke bahasa Inggris terlihat sangat konyol, orang yang melakukannya hanya menerjemahkan setiap kata, bukan keseluruhan kalimat.
Kami selalu menemukan yang terbaik untuk menerjemahkan kalimat secara keseluruhan, tanpa putus. Kami memiliki tempat penampung untuk data yang perlu dimasukkan (mis. "Nomor Bagian @ 1 adalah redundan") dan penerjemah dapat memindahkan penampung tempat ke posisi yang mereka inginkan untuk terjemahan yang baik.
Namun kami menemukan bahwa mengizinkan tempat-tempat yang menggunakan kalimat yang persis sama, atau prompt data yang sama atau label tombol yang sama, dll, boleh saja berbagi terjemahan. Itu tidak pernah muncul sebagai masalah dan menghemat waktu / biaya untuk penerjemah.
sumber
Pemikiran Anda tentang penamaan itu bagus.
Tujuan
Penerapan
sumber