Untuk memvalidasi placeholder terjemahan di Mac, bandingkan posisi, tipe, dan penggunaan yang dimaksud untuk setiap argumen dengan pesan sumber. Gunakan diagnostik ketidakcocokan Xcode, lalu periksa substitusi jamak dan uji label yang dirender dengan nilai contoh yang berbeda.

Panduan ini ditujukan bagi orang yang meninjau label aplikasi Mac yang dilokalkan di Xcode. Tugasnya adalah memeriksa satu pesan beserta terjemahannya berdasarkan nilai yang diberikan oleh aplikasi. Semua label di bawah ini adalah contoh bahasa Inggris sintetis; contoh-contoh tersebut menggambarkan mekanisme pemformatan, bukan terjemahan sungguhan.

Apa yang termasuk dalam kontrak argumen pesan?

Kontrak argumen adalah catatan peninjauan yang menjelaskan nilai-nilai yang diterima sebuah pesan: posisi, tipe pemformatan, makna, dan penggunaan yang diharapkan. Ini adalah daftar periksa praktis yang disusun dari kode sumber dan katalog, bukan format file Apple yang terpisah.

String.LocalizationValue di Swift mendukung string yang dapat dilokalkan dengan nilai runtime yang diinterpolasi. Dokumentasinya juga membedakan penggunaan teks sumber sebagai kunci pelokalan dengan pemberian kunci dan nilai default yang terpisah. Karena itu, sebuah pengenal saja mungkin tidak menunjukkan argumen pesan: periksa teks sumber default dan lokasi pemanggilannya. String.LocalizationValue

Perhatikan string format Added %lld items to %@. Untuk ilustrasi ini, aplikasi memberikan jumlah bilangan bulat diikuti label koleksi yang direpresentasikan oleh objek. Catat kontraknya sebelum mengedit terjemahan:

Posisi argumen Makna Format yang diharapkan Nilai ilustratif
1 Jumlah item yang ditambahkan %lld 7
2 Label koleksi tujuan %@ Canvas

Referensi format Apple menetapkan %@ sebagai konversi objek, %d sebagai bilangan bulat bertanda 32-bit, %f sebagai konversi double, dan ll sebagai pemodifikasi panjang bilangan bulat untuk long long. Referensi tersebut juga mendokumentasikan bentuk posisi seperti %1$@. Pertahankan informasi tipe secara utuh; mengubah %lld menjadi %d mengubah tipe bilangan bulat yang diharapkan. Referensi ini sudah diarsipkan, jadi gunakan untuk sintaks format bersama dokumentasi katalog terkini. String Format Specifiers

Tambahkan makna argumen ke catatan peninjauan meskipun tipenya sama. Untuk Moved %@ to %@, pemeriksaan tipe tidak dapat membedakan label item dari label tujuan. Sintaks yang benar tetap harus memiliki hubungan yang tepat antara nilai dan kata-kata.

Bagaimana menemukan sumber yang menjadi acuan di Xcode?

Mulai dengan membuka proyek di Xcode dan mengidentifikasi katalog yang memuat pesan tersebut. Jika sumbernya telah berubah, pilih Product > Build untuk memperbarui string yang diekstrak. Pilih katalog di navigator Project, pilih Editor > Assistant, lalu pilih kunci pesan untuk melihat sumbernya. Apple mendokumentasikan alur kerja ini untuk menemukan dan memperbarui entri katalog. Melokalkan dan memvariasikan teks dengan katalog string

Periksa nilai yang benar-benar diberikan oleh lokasi pemanggilan, urutannya, dan API pelokalan yang digunakan. Apple merekomendasikan API yang dapat dilokalkan seperti String(localized:); inisialisasi dengan defaultValue terpisah menggunakan parameter pertamanya sebagai kunci dan parameter keduanya sebagai string sumber default. Hal ini penting ketika pengenal netral seperti collection.added.summary menjadi pemilik pesan. Menyiapkan teks aplikasi untuk diterjemahkan

Catat tiga hal secara bersamaan: katalog dan kunci, redaksi sumber default, serta makna dan tipe argumen yang berurutan. Jika ketiganya tidak sesuai, selesaikan ketidaksesuaian itu sebelum menyesuaikan terjemahan. Jika tidak, Anda bisa membuat terjemahan cocok dengan sumber yang sudah usang, bukan dengan input aplikasi saat ini.

Sediakan konteks untuk pengeditan berikutnya juga. Apple mendukung komentar pada string yang dapat dilokalkan untuk menjelaskan penggunaannya. Contoh komentar sintetis yang berguna adalah bahwa argumen 1 merupakan jumlah item dan argumen 2 merupakan label koleksi tujuan. Ini memberi pelokalisasi informasi yang tidak dapat disampaikan oleh penentu format. Menyiapkan teks aplikasi untuk diterjemahkan

Bagaimana memeriksa jumlah, tipe, dan posisi argumen?

Apple memperkenalkan validasi String Catalog untuk masalah umum, termasuk penentu format yang tidak cocok, dengan perbaikan yang tersedia untuk beberapa masalah. Periksa diagnostik apa pun yang ditampilkan Xcode untuk entri tersebut. Perlakukan koreksi yang ditawarkan sebagai usulan perbaikan sintaks dan pastikan koreksi itu mempertahankan makna pesan. Membangun aplikasi yang siap untuk berbagai bahasa

Untuk pesan sederhana tanpa substitusi jamak, gunakan urutan peninjauan berikut:

  1. Identifikasi setiap placeholder yang menggunakan argumen dalam teks sumber dan teks kandidat.
  2. Tetapkan setiap placeholder ke posisi argumennya.
  3. Bandingkan tipe format lengkapnya dengan kontrak.
  4. Pastikan setiap nilai yang diperlukan muncul di tempat yang sesuai dengan redaksi.
  5. Periksa satu per satu referensi yang ditambahkan, dihilangkan, atau diulang.

Notasi posisi memungkinkan terjemahan mengubah urutan kata sambil mempertahankan identitas argumen. Dalam %2$@: added %1$lld items, placeholder yang terlihat pertama merujuk ke argumen 2 dan yang kedua merujuk ke argumen 1. Apple mendokumentasikan sintaks posisi n$. String Format Specifiers

Tabel keputusan berikut berlaku untuk kontrak dua argumen ilustratif di atas. Ini adalah hasil peninjauan yang diusulkan, bukan hasil dari menjalankan Xcode:

Teks format kandidat Hasil peninjauan Alasan
Added %lld items to %@ Sesuai dengan kontrak sederhana Jumlah terlebih dahulu, tujuan kedua
%2$@: added %1$lld items Sesuai setelah urutan diubah Posisi eksplisit mempertahankan identitas kedua argumen
Added %d items to %@ Perbaiki tipe bilangan bulat Argumen 1 tidak lagi menggunakan pemodifikasi panjang yang diharapkan
Added %lld items Periksa penghilangan Tujuan yang diwajibkan pesan ini tidak ada
Added %1$lld items to %1$@ Perbaiki referensinya Argumen 1 dirujuk dengan tipe yang bertentangan; argumen 2 tidak ada
Added %1$lld items to %2$@ (%2$@) Tinjau pengulangannya Ada tiga kemunculan, tetapi hanya dua argumen berbeda yang dirujuk

Pisahkan jumlah kemunculan dari jumlah argumen berbeda. Baris terakhir sengaja menunjukkan perbedaannya: pengulangan argumen 2 tidak menciptakan nilai ketiga. Apakah pengulangan tersebut sesuai dengan redaksinya merupakan keputusan editorial. Untuk tugas ini, tandai sampai tujuannya dipastikan.

Demikian pula, jangan hitung setiap karakter persen sebagai argumen. Apple menetapkan %% sebagai tanda persen literal. Label format seperti Scale: %lld%% berisi satu placeholder nilai dan satu tanda persen yang di-escape. String Format Specifiers

Mengapa substitusi jamak perlu pemeriksaan yang berbeda?

Pesan jamak perlu ditinjau dari mekanisme pemilihannya sekaligus teks yang menampilkan nilai. Dalam sesi String Catalog, Apple menjelaskan bahwa substitusi dapat berisi kamus kasus jamak. Inspektur menampilkan posisi argumen pengendali dan penentu format bergaya C. Karena itu, sebuah substitusi dapat bergantung pada argumen meskipun cabang tertentu tidak menampilkan argumen tersebut secara numerik. Mengenal String Catalog

Untuk pesan jumlah item sintetis, bandingkan One item added dengan %lld items added. Cabang pertama mengeja jumlahnya; cabang kedua menampilkannya. Aturan yang mewajibkan jumlah placeholder terlihat yang sama di setiap cabang akan menolak cabang pertama tanpa perlu. Perilaku kamus stringsdict yang didokumentasikan Apple secara eksplisit mengizinkan penentu format numerik dihilangkan dari bentuk jamak dan menyebutkan bahwa jumlahnya dapat dieja. Format file Stringsdict

Gunakan peninjauan yang memperhitungkan cabang berikut:

  • Verifikasi posisi dan tipe argumen pengendali substitusi di inspektur.
  • Periksa setiap cabang jamak yang tersedia untuk pelokalan target.
  • Cocokkan setiap placeholder yang ditampilkan dengan argumen yang dirujuknya.
  • Jelaskan setiap tampilan numerik yang dihilangkan melalui redaksi cabang tersebut.
  • Periksa argumen pesan lainnya secara terpisah; mengeja jumlah tidak menjelaskan label koleksi yang hilang.

Untuk dua jumlah yang bervariasi secara independen, pertahankan peran masing-masing. Pesan sintetis tentang item dan koleksi memerlukan jumlah item untuk mengendalikan substitusi item dan jumlah koleksi untuk mengendalikan substitusi koleksi. Apple mendokumentasikan beberapa substitusi dalam satu pesan dan menjelaskan bahwa keluaran runtime menggabungkan kasus jamak yang dipilih. Mengenal String Catalog

Bagaimana memastikan pesan yang sudah diperbaiki di Mac?

Setelah memperbaiki entri, bangun aplikasi dan periksa diagnostik katalog yang masih ada. Lalu jalankan layar terkait dalam pelokalan target. Alur kerja yang didukung Apple adalah memilih Product > Scheme > Edit Scheme, memilih Run, membuka Options, memilih App Language dan App Region yang sesuai, mengeklik Close, lalu menjalankan tujuan yang dipilih. Menguji pelokalan saat menjalankan aplikasi

Pilih nilai sampel yang membuat pertukaran mudah terlihat. Untuk dua argumen jumlah, gunakan angka yang berbeda, seperti 2 dan 7. Untuk dua argumen teks, gunakan label berbeda seperti Tile dan Canvas. Ini adalah input uji ilustratif: tujuannya untuk menunjukkan nilai yang diberikan mana yang muncul di setiap bagian pesan.

Untuk pesan dengan bentuk jamak, uji nilai yang mencapai cabang yang ditinjau. Jika dua substitusi bervariasi secara independen, sertakan kombinasi yang mengubah satu jumlah sambil mempertahankan jumlah lainnya. Periksa redaksi yang dipilih dan penempatan setiap nilai yang ditampilkan. Hasil render yang berhasil untuk satu kombinasi tidak memeriksa cabang lainnya.

Pisahkan status terjemahan dari pemeriksaan kontrak. Apple menjelaskan bahwa tanda centang hijau di katalog menunjukkan status diterjemahkan setelah teks dimasukkan. Catat pemeriksaan yang benar-benar Anda lakukan—pemetaan argumen, perbandingan tipe, pemeriksaan cabang, dan contoh yang dirender—alih-alih menganggap indikator status itu sebagai bukti keempatnya. Melokalkan dan memvariasikan teks dengan katalog string

Pesan siap dilanjutkan ketika placeholder-nya mengarah ke argumen yang diberikan sebagaimana dimaksud, tipenya cocok, dan setiap penghilangan atau pengulangan khusus cabang memiliki penjelasan yang jelas. Menyimpan kontrak ringkas ini di dekat pesan akan mempermudah penilaian terhadap pengeditan sumber atau terjemahan berikutnya.

Sumber