Seperti yang Anda ketahui, iOS 8 memerlukan NSLocationWhenInUseUsUageDescription kunci untuk menggunakan lokasi pengguna. Saya telah menambahkan kunci ini dan beberapa informasi umum ke dalam daftar info saya.
Bagaimana saya bisa menggunakan string terjemahan di dalam file plist?
- Perbarui -
Saya sudah memiliki string yang dapat dilokalisasi. Saya hanya ingin tahu apakah saya dapat menggunakan sesuatu seperti NSLocalizedString (MYSTRING, nil) di dalam string plist. Saya tahu bahwa saya dapat membuat beberapa file info.plist untuk pelokalan, tetapi saya bertanya-tanya mungkin ada cara yang lebih mudah.
Jawaban:
Anda harus menggunakan
InfoPlist.strings
file untuk melokalkan nilaiInfo.plist
. Untuk melakukan ini, bukaFile->New->File
, pilih diStrings File
bawahResource
tabiOS
, beri namaInfoPlist
, dan buat. Buka dan masukkanInfo.plist
nilai yang ingin Anda pelokalkan seperti:Sekarang Anda dapat melokalkan
InfoPlist.strings
file dengan terjemahan. Semoga berhasil!EDIT:
pilih opsi pelokalan, atau aktifkan pelokalan jika diperlukan,
Anda harus dapat melihat file juga di editor sisi kiri.
EDIT:
Berikut ini adalah dokumentasi resmi untuk
Info.plist
pelokalan kunci.Penghargaan untuk Marco , terima kasih telah menyertakan foto dalam jawaban ini!
sumber
Semua hal di atas tidak bekerja untuk saya (XCode 7.3) jadi saya membaca referensi Apple tentang cara melakukannya, dan itu jauh lebih sederhana daripada yang dijelaskan di atas. Menurut Apple:
Oleh karena itu, saya membuat file string bernama InfoPlist.strings dan meletakkannya di folder xx.lproj dari bahasa "xx" (dan menambahkannya ke proyek menggunakan File-> Tambah File ke ...). Itu dia. Tidak perlu untuk kunci "Sumber daya lokal dapat dicampur" = YA, dan tidak perlu untuk InfoPlist.strings di base.lproj atau en.lproj.
Aplikasi menggunakan nilai kunci Info.plist sebagai nilai default jika tidak dapat menemukan kunci dalam file bahasa tertentu. Jadi, saya meletakkan nilai bahasa Inggris saya di file Info.plist dan yang diterjemahkan dalam file khusus bahasa, diuji dan semuanya berfungsi.
Secara khusus, tidak perlu melokalisasi InfoPlist.strings (yang membuat versi file di base.lproj, en.lroj, dan xx.lproj), dan dalam kasus saya seperti itu tidak akan berhasil.
sumber
Jika ada yang tidak berfungsi, pastikan Anda menambahkan:
"Sumber daya lokal dapat dicampur" = YA
ke dalam info.plist. Dalam kasus saya, file InfoPlist.strings diabaikan.
sumber
Kiat
Ingatlah bahwa Simulator iOS mengeksploitasi secara default bahasa sistem Anda. Silakan ubah bahasa (dan wilayah) di Pengaturan Simulator iOS juga untuk menguji terjemahan Anda.
String pelokalan (lihat dokumen Apple di sini ) seharusnya
dan tidak (dengan kutipan "...")
sumber
"NSLocationWhenInUseUsageDescription"="description"
valid). Bisa dengan atau tanpa.Saya akan sangat merekomendasikan membaca panduan Apple, dan melihat sumber WWDC yang tercantum di sini: Topik Internasionalisasi dan Lokalisasi
Untuk secara spesifik menjawab pertanyaan Anda, ketika Anda menambahkan bahasa baru ke proyek Anda, Anda mendapat kesempatan untuk memilih file InfoPlist apa yang akan dimasukkan (jika Anda memiliki beberapa target, Anda akan memiliki beberapa file info Info). Yang perlu Anda lakukan untuk mendapatkan layar berikut adalah tekan + di bawah Lokalisasi dan pilih bahasa baru untuk menambahkan dukungan.
Setelah Anda menambahkan, itu akan membuat file string yang diperlukan di direktori lproj yang sesuai untuk bahasa yang diberikan.
--EDIT--
Untuk lebih jelasnya, iOS akan menukar string untuk file Plist Anda berdasarkan bahasa yang saat ini dipilih pengguna menggunakan kunci entri plist sebagai kunci dalam file string terlokalisasi.
sumber
Langkah demi langkah melokalkan Info.plist:
Save As
lapangan tulis InfoPlist ONLY (modal "I" dan "P")"NSLocationAlwaysAndWhenInUseUsageDescription" = "blabla";
"NSLocationAlwaysUsageDescription" = "blabla2";
Itu semua berfungsi dan Anda telah melokalkan file info.plist Anda!
sumber
Bagi siapa pun yang mengalami masalah info.plist tidak disertakan ketika mencoba menambahkan pelokalan, seperti pada Xcode 9.
Anda perlu membuat localiazble info.plist dengan masuk ke dalamnya dan mengklik tombol pelokalan di inspektur file, seperti yang ditunjukkan di bawah ini.
Info.plist kemudian akan dimasukkan dalam sumber daya file ketika Anda pergi untuk menambahkan Lokalisasi baru.
sumber
Seperti yang dikatakan RGML, Anda dapat membuat InfoPlist.strings, melokalkannya lalu menambahkan kunci Anda dan nilai seperti ini: "NSLocationWhenInUseUsUageDescription" = "Bantuan untuk menemukan saya!";
Ini akan menambahkan kunci ke info.plist Anda untuk bahasa yang ditentukan.
sumber
Dalam kasus saya semuanya sudah diatur dengan benar tetapi masih file InfoPlist.strings tidak ditemukan.
Satu-satunya hal yang benar-benar berfungsi adalah, untuk menghapus dan menambahkan file InfoPlist.strings lagi ke proyek.
sumber
Dalam kasus saya pelokalan tidak berfungsi karena simbol '-' dalam nama. Contoh: "aero-Info.plist" Dan file yang dilokalkan: "aero-InfoPlist.strings" dan "aeroInfoPlist.strings" tidak berfungsi.
sumber
Saat menggunakan
InfoPlist.strings
file (dalam XCode itu harus ditempatkan di sebelahInfo.plist
file - lokasi file nyata dapat di mana saja di dalam proyek mungkin) hati-hati menggunakan nama pendek kunci untuk terjemahan.
Saya mencoba menggunakan
Privacy - Camera Usage Description
, tetapi kunci kerjanyaNSCameraUsageDescription
sumber