Untuk mengesahkan pemegang tempat terjemahan pada Mac anda, bandingkan kedudukan, jenis dan tujuan penggunaan setiap argumen dengan mesej sumber. Gunakan diagnostik ketidakpadanan Xcode, kemudian periksa penggantian jamak dan uji label yang dipaparkan dengan nilai sampel yang berbeza.

Panduan ini ditujukan kepada sesiapa yang menyemak label setempat bagi app Mac dalam Xcode. Tugasnya ialah memeriksa satu mesej dan terjemahannya berdasarkan nilai yang diberikan oleh app. Semua label di bawah ialah contoh bahasa Inggeris rekaan; contoh tersebut menggambarkan mekanisme pemformatan dan bukannya terjemahan sebenar.

Apakah yang terkandung dalam kontrak argumen mesej?

Kontrak argumen ialah rekod semakan yang menerangkan nilai yang diterima oleh sesuatu mesej: kedudukan, jenis pemformatan, makna dan penggunaan yang dijangka. Kontrak ini ialah senarai semak praktikal yang diperoleh daripada kod sumber dan katalog, bukannya format fail Apple yang berasingan.

Swift String.LocalizationValue menyokong rentetan boleh setempat dengan nilai masa jalan yang disisipkan. Dokumentasinya turut membezakan penggunaan teks sumber sebagai kunci penyetempatan dengan pemberian kunci dan nilai lalai yang berasingan. Oleh itu, pengecam sahaja mungkin tidak mendedahkan argumen mesej: periksa teks sumber lalai dan lokasi panggilannya. String.LocalizationValue

Pertimbangkan rentetan format Added %lld items to %@. Untuk contoh ini, app memberikan kiraan integer diikuti label koleksi berasaskan objek. Catat kontrak sebelum menyunting terjemahan:

Kedudukan argumen Makna Format yang dijangka Nilai contoh
1 Bilangan item yang ditambahkan %lld 7
2 Label koleksi destinasi %@ Canvas

Rujukan format Apple mentakrifkan %@ sebagai penukaran objek, %d sebagai integer bertanda 32 bit, %f sebagai penukaran double dan ll sebagai pengubah panjang integer untuk long long. Rujukan itu turut mendokumenkan bentuk kedudukan seperti %1$@. Kekalkan maklumat jenis yang lengkap; menukar %lld kepada %d mengubah jenis integer yang dijangka. Rujukan ini telah diarkibkan, jadi gunakannya untuk sintaks format bersama dokumentasi katalog semasa. String Format Specifiers

Catat makna argumen dalam rekod semakan walaupun jenisnya sama. Bagi Moved %@ to %@, semakan jenis tidak dapat membezakan label item daripada label destinasi. Sintaks yang betul tetap perlu mengekalkan hubungan yang tepat antara nilai dengan perkataan.

Bagaimanakah anda mencari sumber berautoriti dalam Xcode?

Mulakan dengan projek terbuka dalam Xcode dan kenal pasti katalog yang mengandungi mesej tersebut. Jika sumber telah berubah, pilih Product > Build untuk mengemas kini rentetan yang diekstrak. Pilih katalog dalam navigator Project, pilih Editor > Assistant, kemudian pilih kunci mesej untuk melihat sumbernya. Apple mendokumenkan aliran kerja ini untuk mencari dan mengemas kini entri katalog. Localizing and varying text with a string catalog

Periksa nilai yang sebenarnya diberikan oleh lokasi panggilan, susunannya dan API penyetempatan yang digunakan. Apple mengesyorkan API boleh setempat seperti String(localized:); pemula dengan defaultValue yang berasingan menggunakan parameter pertamanya sebagai kunci dan parameter keduanya sebagai rentetan sumber lalai. Perkara ini penting apabila pengecam neutral seperti collection.added.summary memiliki mesej tersebut. Preparing your app’s text for translation

Catat tiga perkara bersama-sama: katalog dan kunci, perkataan sumber lalai, serta makna dan jenis argumen mengikut susunan. Jika semuanya tidak sepadan, selesaikan percanggahan itu sebelum melaraskan terjemahan. Jika tidak, anda mungkin membuat terjemahan sepadan dengan sumber yang sudah lapuk dan bukannya input semasa app.

Sediakan konteks untuk suntingan akan datang juga. Apple menyokong komen pada rentetan boleh setempat untuk menerangkan penggunaannya. Komen rekaan yang berguna boleh menyatakan bahawa argumen 1 ialah kiraan item dan argumen 2 ialah label koleksi destinasi. Ini memberikan maklumat kepada penterjemah yang tidak dapat disampaikan oleh penentu format. Preparing your app’s text for translation

Bagaimanakah anda menyemak kiraan, jenis dan kedudukan argumen?

Apple memperkenalkan pengesahan Katalog Rentetan untuk masalah lazim, termasuk ketidakpadanan penentu format, dengan pembetulan tersedia bagi sesetengah isu. Periksa sebarang diagnostik yang dipaparkan oleh Xcode untuk entri tersebut. Anggap pembetulan yang dicadangkan sebagai pembaikan sintaks dan sahkan bahawa pembetulan itu mengekalkan makna mesej. Build multilingual-ready apps

Bagi mesej ringkas tanpa penggantian jamak, gunakan urutan semakan ini:

  1. Kenal pasti setiap pemegang tempat yang menggunakan argumen dalam teks sumber dan teks calon.
  2. Tetapkan setiap pemegang tempat kepada kedudukan argumennya.
  3. Bandingkan jenis format lengkapnya dengan kontrak.
  4. Pastikan setiap nilai yang diperlukan muncul di tempat yang dijangkakan oleh perkataan tersebut.
  5. Teliti setiap rujukan yang ditambah, digugurkan atau diulang secara berasingan.

Notasi kedudukan membolehkan terjemahan mengubah susunan perkataan sambil mengekalkan identiti argumen. Dalam %2$@: added %1$lld items, pemegang tempat yang kelihatan dahulu merujuk argumen 2, manakala yang kedua merujuk argumen 1. Apple mendokumenkan sintaks kedudukan n$. String Format Specifiers

Jadual keputusan berikut digunakan untuk kontrak dua argumen contoh di atas. Ini ialah hasil semakan yang dicadangkan, bukannya hasil daripada menjalankan Xcode:

Teks format calon Hasil semakan Sebab
Added %lld items to %@ Menepati kontrak ringkas Kiraan dahulu, destinasi kemudian
%2$@: added %1$lld items Menepati kontrak selepas penyusunan semula Kedudukan eksplisit mengekalkan identiti kedua-dua argumen
Added %d items to %@ Betulkan jenis integer Argumen 1 tidak lagi menggunakan pengubah panjang yang dijangka
Added %lld items Teliti pengguguran ini Destinasi yang diperlukan oleh mesej ini tiada
Added %1$lld items to %1$@ Betulkan rujukan Argumen 1 dirujuk dengan jenis yang bercanggah; argumen 2 tiada
Added %1$lld items to %2$@ (%2$@) Semak pengulangan ini Terdapat tiga kemunculan tetapi hanya dua argumen berbeza yang dirujuk

Asingkan bilangan kemunculan daripada bilangan argumen berbeza. Baris terakhir sengaja menunjukkan perbezaannya: mengulang argumen 2 tidak menghasilkan nilai ketiga yang diberikan. Sama ada pengulangan itu sesuai dalam perkataan ialah keputusan editorial. Untuk tugas ini, tandakannya sehingga tujuannya dipastikan.

Begitu juga, jangan kira setiap aksara peratus sebagai argumen. Apple mentakrifkan %% sebagai tanda peratus literal. Label format seperti Scale: %lld%% mengandungi satu pemegang tempat nilai dan satu tanda peratus terlepas. String Format Specifiers

Mengapakah penggantian jamak memerlukan semakan yang berbeza?

Mesej jamak memerlukan semakan terhadap mekanisme pemilihan serta teks yang memaparkan nilai. Dalam sesi Katalog Rentetannya, Apple menjelaskan bahawa penggantian boleh mengandungi kamus kes jamak. Pemeriksa menunjukkan kedudukan argumen kawalan dan penentu format gaya C. Oleh itu, penggantian mungkin bergantung pada argumen walaupun cabang tertentu tidak memaparkan argumen itu secara angka. Discover String Catalogs

Bagi mesej kiraan item rekaan, bandingkan One item added dengan %lld items added. Cabang pertama mengeja kuantiti, manakala cabang kedua memaparkannya. Peraturan yang mewajibkan bilangan pemegang tempat yang kelihatan sama dalam setiap cabang akan menolak cabang pertama tanpa sebab. Tingkah laku kamus stringsdict yang didokumenkan Apple secara jelas membenarkan penentu format angka digugurkan daripada bentuk jamak dan memberikan ejaan penuh nombor sebagai satu pilihan. Stringsdict file format

Gunakan semakan yang mengambil kira cabang ini:

  • Sahkan kedudukan dan jenis argumen kawalan penggantian dalam pemeriksa.
  • Periksa setiap cabang jamak yang tersedia bagi penyetempatan sasaran.
  • Semak setiap pemegang tempat yang dipaparkan berdasarkan argumen yang dirujuknya.
  • Jelaskan sebarang paparan angka yang digugurkan melalui perkataan dalam cabang tersebut.
  • Semak argumen mesej lain secara berasingan; mengeja kiraan tidak menjelaskan label koleksi yang hilang.

Bagi dua kiraan yang berubah secara berasingan, kekalkan peranan masing-masing. Mesej rekaan tentang item dan koleksi memerlukan kiraan item mengawal penggantian item dan kiraan koleksi mengawal penggantian koleksi. Apple mendokumenkan berbilang penggantian dalam satu mesej dan menjelaskan bahawa output masa jalan menggabungkan kes jamak yang dipilih. Discover String Catalogs

Bagaimanakah anda mengesahkan mesej yang telah dibetulkan pada Mac anda?

Selepas membaiki entri, bina app dan periksa sebarang diagnostik katalog yang masih ada. Kemudian jalankan skrin berkaitan dalam penyetempatan sasaran. Aliran kerja yang disokong Apple ialah memilih Product > Scheme > Edit Scheme, pilih Run, buka Options, pilih App Language dan App Region yang sesuai, klik Close, kemudian jalankan destinasi yang dipilih. Testing localizations when running your app

Pilih nilai sampel yang menjadikan pertukaran mudah dilihat. Bagi dua argumen kiraan, gunakan nombor yang berbeza, seperti 2 dan 7. Bagi dua argumen teks, gunakan label berbeza seperti Tile dan Canvas. Ini ialah input ujian contoh: tujuannya untuk menunjukkan nilai yang diberikan muncul di bahagian mesej yang mana.

Bagi mesej berjamak, uji nilai yang mencapai cabang yang sedang disemak. Apabila dua penggantian berubah secara berasingan, sertakan gabungan yang mengubah satu kiraan sambil mengekalkan kiraan yang lain. Periksa perkataan yang dipilih dan kedudukan setiap nilai yang dipaparkan. Paparan yang berjaya bagi satu gabungan tidak bermakna cabang lain telah diperiksa.

Asingkan status terjemahan daripada semakan kontrak anda. Apple menerangkan bahawa tanda semak hijau katalog menandakan keadaan diterjemahkan selepas teks dimasukkan. Catat semakan sebenar yang anda lakukan—pemetaan argumen, perbandingan jenis, pemeriksaan cabang dan contoh paparan—dan jangan anggap penunjuk status itu sebagai bukti bagi keempat-empatnya. Localizing and varying text with a string catalog

Mesej sedia diteruskan apabila pemegang tempatnya sepadan dengan argumen yang diberikan seperti yang dimaksudkan, jenisnya sepadan dan sebarang pengguguran atau pengulangan khusus cabang mempunyai penjelasan yang jelas. Menyimpan kontrak ringkas itu bersama mesej memudahkan penilaian suntingan sumber atau terjemahan yang seterusnya.

Sumber