Untuk membuat terjemahan aplikasi Mac pergi balik, eksport Katalog Penyetempatan Xcode, kekalkan struktur bentuk jamak dan pemetaan argumennya, kemudian import dan uji pakej yang dikembalikan. Panduan ini menggunakan label pemilihan sintetik untuk menunjukkan dengan tepat perkara yang perlu diserahkan dan diperiksa.

Tugas ini ditujukan kepada seseorang yang menyediakan bahan serahan penterjemah dalam Xcode pada Mac: hantarkan satu mesej yang bergantung pada bilangan untuk diterjemahkan dan bawa kembali tanpa mengubah kelakuannya. Contoh labelnya ialah Selected 3 tiles in 2 groups. Kedua-dua bilangan boleh berubah secara berasingan, jadi bahan serahan mesti mengekalkan lebih daripada sekadar kata-kata yang mudah dibaca.

Tetapkan kontrak mesej sebelum mengeksport

Anggap kontrak mesej sebagai spesifikasi ringkas: entri yang dicari oleh aplikasi, nilai masa jalan yang dibekalkannya dan nilai yang mengawal perubahan tatabahasa. Apple mendokumentasikan bahawa String.LocalizationValue menyokong rentetan yang boleh disetempatkan dengan interpolasi, termasuk nilai yang dibekalkan semasa masa jalan. Dokumentasinya turut menerangkan penggunaan kunci statik dan nilai lalai yang berasingan apabila pengecam perlu berbeza daripada teks sumber yang dipaparkan. String.LocalizationValue

Untuk contoh ini, catatkan kontrak berikut bersama permintaan terjemahan. Ini ialah keperluan ilustrasi untuk label sintetik, bukannya format fail Apple.

Unsur kontrak Keperluan untuk contoh ini
Tujuan mesej Merumuskan pilihan semasa
Sumber bahasa Inggeris Selected 3 tiles in 2 groups. dengan kedua-dua nombor dibekalkan semasa masa jalan
Argumen 1 Bilangan jubin; mengawal bentuk tile
Argumen 2 Bilangan kumpulan; mengawal bentuk group
Perwakilan angka Kekalkan jenis dan penentu format yang direkodkan Xcode untuk setiap argumen
Kebebasan terjemahan Susun semula ayat sambil mengekalkan makna setiap argumen
Kelakuan yang diperlukan Setiap kata nama sepadan dengan bilangannya sendiri

Catatkan juga katalog, jadual dan kunci sebenar daripada projek. Jangan cipta kunci gantian semasa menterjemah. Panduan persediaan Apple menerangkan bahawa API yang boleh disetempatkan mengisi katalog semasa binaan dan parameter table atau tableName memilih katalog. Panduan itu turut menyokong komen yang menerangkan konteks rentetan. Menyediakan teks aplikasi anda untuk terjemahan

Komen sintetik yang berguna ialah: Ringkasan pilihan. Argumen 1 ialah bilangan jubin yang dipilih. Argumen 2 ialah bilangan kumpulan yang mengandungi jubin tersebut. Kedua-dua bilangan berubah secara berasingan. Pastikan setiap bilangan kekal dikaitkan dengan kata nama yang sepadan. Ini memberikan maklumat yang cukup kepada penterjemah untuk membezakan dua argumen walaupun kedua-duanya menggunakan jenis angka yang sama.

Sediakan variasi bentuk jamak yang berasingan dalam katalog

Mulakan dengan mesej dalam sumber setempat aplikasi, kemudian bina projek. Dalam editor katalog rentetan, Control-klik kunci yang berkaitan dan pilih Vary by Plural. Apple mendokumentasikan bahawa Xcode menentukan penentu format interpolasi, menambah bentuk jamak bahasa tersebut dan pada mulanya mengisi medan variasi dengan nilai sedia ada. Nilai yang telah diisi itu masih perlu disunting. Menyetempatkan dan mempelbagaikan teks dengan katalog rentetan

Bagi sumber bahasa Inggeris, hasil paparan yang dimaksudkan termasuk Selected 1 tile in 1 group., Selected 3 tiles in 1 group. dan Selected 1 tile in 2 groups. Satu pilihan yang hanya berdasarkan bilangan jubin tidak dapat menghasilkan setiap gabungan dengan betul.

Demonstrasi String Catalog Apple menyokong variasi berbilang argumen melalui penggantian. Setiap penggantian mengandungi kes bentuk jamak, dan pemeriksanya mengenal pasti kedudukan argumen serta penentu format gaya C. Masa jalan menggabungkan penggantian yang dipilih dengan mesej di sekelilingnya. Kenali String Catalogs

Gunakan mekanisme itu untuk dua bilangan yang berasingan. Letakkan perkataan yang perlu sepadan dengan sesuatu bilangan di dalam variasi yang sepadan, bukannya meninggalkan kata nama jamak tetap dalam ayat di sekelilingnya. Berikan nama yang bermakna kepada penggantian jika editor membenarkannya, kemudian periksa pemetaannya: penggantian jubin mesti kekal menggunakan argumen 1, dan penggantian kumpulan mesti menggunakan argumen 2.

Jangan wajibkan setiap penyetempatan sasaran menghasilkan semula inventori cabang bahasa Inggeris. Apple mendokumentasikan bahawa Xcode menambah variasi bentuk jamak khusus bahasa. Menambah variasi dalam penyetempatan sumber turut menyebarkan variasi kepada terjemahan; menambahkannya hanya dalam penyetempatan lain memberi kesan kepada penyetempatan itu sahaja. Semak cabang sasaran sebenar sebelum mengeksport. Menyetempatkan dan mempelbagaikan teks dengan katalog rentetan

Kekalkan identiti argumen apabila susunan kata berubah

Kedudukan pemegang tempat dalam ayat dan nombor argumennya mempunyai fungsi yang berbeza. Penterjemah mungkin perlu meletakkan bilangan kumpulan sebelum bilangan jubin tanpa mengubah susunan aplikasi membekalkan nilai tersebut.

Rujukan penentu format Apple mendokumentasikan tatatanda kedudukan menggunakan n$. Contohnya, %1$lld merujuk kepada argumen 1 dengan penukaran integer long long, manakala %2$lld merujuk kepada argumen 2 dengan penukaran itu. %d menandakan perwakilan integer yang berbeza; ia bukan ejaan lebih pendek bagi %lld. Rujukan itu ialah dokumentasi arkib, jadi gunakanlah untuk peraturan pemformatan yang telah ditetapkan ini bersama aliran kerja katalog semasa. Penentu Format Rentetan

Pertimbangkan fragmen format ilustrasi Groups: %2$lld; tiles: %1$lld. Dengan argumen 1 bernilai 3 dan argumen 2 bernilai 2, output yang dimaksudkan ialah Groups: 2; tiles: 3. Fragmen ini hanya menunjukkan susunan argumen; ia tidak melaksanakan pemilihan bentuk jamak tatabahasa dan tidak sepatutnya menggantikan penggantian katalog.

Semak pemegang tempat berdasarkan makna, indeks dan jenis. Memeriksa bahawa dua tanda peratus masih ada sahaja tidak akan mengesan bilangan yang tertukar. Memeriksa jenis sahaja juga tidak akan mengesan pertukaran itu kerana kedua-dua nilai ialah integer. Sebaliknya, mengubah susunan argumen aplikasi semata-mata untuk memadankan satu terjemahan akan mengubah kontrak bagi setiap terjemahan lain yang menggunakan entri itu.

Untuk bahan serahan, minta penterjemah mengekalkan perkaitan argumen dan jenis pemformatan yang dieksport sambil menyesuaikan susunan kata. Perubahan struktur pada penggantian perlu disemak secara jelas berbanding kontrak. Perubahan susunan kata boleh jadi sangat sesuai.

Eksport pakej yang boleh dipulangkan oleh penterjemah

Sebelum mengeksport, dayakan tetapan binaan projek Use Compiler to Extract Swift Strings supaya rentetan Swift yang boleh disetempatkan disertakan. Pilih projek dalam navigator Project, pilih Product > Export Localizations, pilih penyetempatan dan destinasi yang diperlukan, kemudian eksport. Apple mendokumentasikan langkah ini dan pakej .xcloc yang terhasil. Mengeksport penyetempatan

Dua sambungan katalog itu mempunyai fungsi yang berbeza. Fail .xcstrings projek menyimpan String Catalognya. Pakej .xcloc yang dieksport ialah bahan serahan penterjemah; folder Localized Contents mengandungi XLIFF, dan folder Notes boleh memuatkan teks sokongan. Hantarkan pakej bersama nota kontrak, bukannya meringkaskan mesej menjadi senarai dua lajur yang hanya mengandungi ayat yang dipaparkan. Mengeksport penyetempatan

Pastikan alat terjemahan menyokong variasi String Catalog dalam XLIFF. Apple menerangkan bahawa pengecam variasi yang berasal daripada katalog mengekodkan kunci rentetan dan konfigurasi variasi, serta mendokumentasikan tetapan Localization Prefers String Catalogs untuk perwakilan eksport itu. Struktur ini perlu kekal sepanjang proses pergi balik. Kenali String Catalogs

Gunakan senarai semak bahan serahan praktikal ini. Ini ialah saranan aliran kerja berdasarkan struktur pakej yang didokumenkan dan kontrak contoh.

  • Pulangkan pakej .xcloc yang diterjemahkan dengan sumber berkaitannya yang masih utuh.
  • Kekalkan pengecam mesej dan laluan variasi melainkan perubahan struktur yang disengajakan didokumenkan.
  • Sediakan teks sasaran untuk cabang bentuk jamak yang diperlukan bagi penyetempatan sasaran.
  • Kekalkan identiti argumen, jenis angka dan pemetaan penggantian.
  • Kenal pasti sebarang perubahan sumber yang diterima selepas eksport supaya dapat diselaraskan sebelum import.

Jika alat penterjemah tidak dapat mengekalkan entri bervariasi, gunakan Xcode untuk menyunting penyetempatan yang dieksport atau memasukkan terjemahan ke dalam katalog projek. Apple mendokumentasikan penyuntingan sasaran XLIFF dan penyuntingan String Catalog dalam Xcode; eksport berikutnya akan menyertakan perubahan katalog. Pertukaran teks rata sahaja menyebabkan seseorang perlu membina semula struktur variasi. Menyunting fail XLIFF dan katalog rentetan

Import hasil terjemahan dan periksa perbezaan sebenar

Simpan eksport asal untuk perbandingan. Apabila pakej terjemahan dipulangkan, pilih projek dan pilih Product > Import Localizations. Pilih folder Xcode Localization Catalog. Dalam antara muka import, periksa amaran dan ralat melalui Issues View, kemudian periksa perubahan melalui File View sebelum melengkapkan import. Apple menyatakan bahawa editor perbandingan memaparkan versi yang diimport di sebelah kiri dan versi projek semasa di sebelah kanan. Mengimport penyetempatan

Bagi rentetan yang berasal daripada katalog, Apple mendokumentasikan pengimportan terjemahan kembali ke dalam String Catalog yang sesuai. Selepas import, buka semula entri ringkasan pilihan dan periksa kedua-dua penggantian, pemetaan argumen dan cabang sasarannya. Kenali String Catalogs

Gunakan urutan diagnostik yang terarah jika ada sesuatu yang kelihatan salah. Jika entri tiada, bandingkan jadual dan kuncinya dengan eksport asal. Jika variasi bentuk jamak tiada, bandingkan struktur variasi yang dipulangkan. Jika bilangan muncul di sebelah kata nama yang salah, bandingkan pemetaan argumen. Jika hanya satu gabungan yang tidak betul, periksa teks cabang itu sebelum mengubah kod aplikasi. Urutan ini mengikuti kebergantungan contoh; ini bukan dakwaan bahawa Xcode mengesan setiap pelanggaran kontrak secara automatik.

Uji bilangan yang tidak sama untuk mengesan argumen tertukar

Import yang berjaya menunjukkan bahawa Xcode menerima bahan serahan itu. Contoh ini masih memerlukan pemeriksaan kelakuan. Gunakan data ujian aplikasi atau kelengkapan ujian pembangunan untuk memaparkan gabungan berikut. Ayat yang dijangka ini menggambarkan kontrak sumber bahasa Inggeris; susunan kata dan pemilihan cabang bahasa sasaran mesti mengikut penyetempatan sasaran.

Bilangan jubin Bilangan kumpulan Output sumber bahasa Inggeris yang dijangka Perkara yang dapat dikenal pasti
1 1 Selected 1 tile in 1 group. Kedua-dua bentuk tunggal
3 1 Selected 3 tiles in 1 group. Variasi jubin secara berasingan
1 2 Selected 1 tile in 2 groups. Variasi kumpulan secara berasingan
3 2 Selected 3 tiles in 2 groups. Nilai berbeza yang mendedahkan argumen tertukar

Tambah pemeriksaan bilangan sifar jika aplikasi boleh memaparkan pilihan kosong. Pilih juga nilai yang meliputi setiap kategori bentuk jamak yang diperlukan oleh setiap penyetempatan sasaran. Empat baris di atas meliputi gabungan tunggal/jamak bahasa Inggeris, bukannya semua cabang sasaran yang mungkin.

Untuk menjalankan aplikasi Mac dalam penyetempatan sasaran, pilih Product > Scheme > Edit Scheme, pilih Run dan buka Options. Tetapkan App Language dan, jika perlu, App Region, tutup editor, pilih destinasi jalankan Mac, kemudian jalankan aplikasi. Apple mendokumentasikan aliran kerja pengujian berasaskan skim ini. Menguji penyetempatan semasa menjalankan aplikasi

Baca mesej yang dipaparkan dan periksa kesesuaiannya dalam antara muka desktop. Jika bilangan kekal dikaitkan dengan kata nama yang betul, setiap cabang yang diperlukan berfungsi dengan betul dan struktur yang dipulangkan sepadan dengan kontrak yang dimaksudkan, proses terjemahan pergi balik telah mengekalkan kelakuan yang diperlukan oleh label ini. Simpan nota kontrak bersama bahan serahan supaya perubahan susunan kata yang seterusnya dapat disemak berdasarkan keperluan jelas yang sama.

Sumber