Apa parameter kedua NSLocalizedString ()?

123

Apa *commentparameter di:

NSString *NSLocalizedString(NSString *key, NSString *comment)

Jika saya melakukan ini:

NSLocalizedString(@"Hello_World_Key", @"Hello World")

dan memiliki dua versi Localizable.strings (Inggris dan Spanyol), apakah masing-masing memerlukan entri:

English.lproj/Localization.strings: @"Hello_World_Key" = @"Hello World";

Spanish.lproj/Localization.strings: @"Hello_World_Key" = @"Hola Mundo";

Bukankah bahasa Inggris itu berlebihan?

4thSpace
sumber

Jawaban:

72

String komentar diabaikan oleh aplikasi. Ini digunakan untuk keuntungan penerjemah, untuk menambahkan makna pada penggunaan kontekstual dari kunci yang ditemukan dalam aplikasi Anda.

Misalnya, Hello_World_Keykunci dapat mengambil nilai yang berbeda dalam bahasa tertentu, bergantung pada seberapa formal atau informal Hello Worldfrasa tersebut perlu dalam bahasa tersebut ("What's up World", "Yo World", "Good Day World", dll.).

Anda dapat menambahkan string di kolom komentar untuk mengisyaratkan penggunaan ini kepada penerjemah, yang (orang akan mengira) lebih mampu melokalkan aplikasi Anda.

Alex Reynolds
sumber
277

Parameter kedua adalah komentar yang secara otomatis akan muncul di file string jika Anda menggunakan utilitas baris perintah genstrings , yang dapat membuat file string untuk Anda dengan memindai kode sumber Anda.

Komentar tersebut berguna untuk pelokalan Anda. Sebagai contoh:

NSLocalizedString(@"Save",@"Title of the Save button in the theme saving dialog");

Saat Anda menjalankan genstrings, ini akan menghasilkan entri di file Localizable.strings seperti ini:

/* Title of the Save button in the theme saving dialog */
"Save" = "Save";
Rob Keniger
sumber
@JuandelaTorre: Pertanyaan ini berumur beberapa tahun, mungkin 4thSpace (orang yang mengajukan pertanyaan) belum melihat pertanyaannya karena dia menerima salah satu jawaban.
Manni
Itu juga yang akan digunakan jika file string tidak berisi entri yang cocok dengan pengenal yang Anda tentukan.
Oscar
4
Tidak, kuncinya digunakan dalam kasus itu, bukan komentar.
Nick Lockwood
apa intinya? ya itu berguna untuk id pendek ( "id" - "word";, seperti dalam contoh Anda "Save" = "Save";), tetapi Anda harus menambahkan sesuatu yang lebih panjang secara manual"id" - "word 1 word 2 word 3";
user924
Komentar (parameter kedua) adalah untuk pelokalan. Seseorang yang menambahkan string untuk aplikasi Anda dalam bahasa lain membutuhkan konteks untuk mengetahui terjemahan apa yang akan diterapkan. Parameter pertama hanya menentukan kunci dalam file string lokalisasi, file string adalah apa yang sebenarnya menyimpan teks untuk ditampilkan di UI.
Rob Keniger
0

Ini hanya untuk pemahaman pengembang tentang terjemahan, yaitu Anda memberikan kunci untuk mendapatkan string yang sesuai dari file string yang sesuai.

Parameter komentar memungkinkan pengembang untuk memahami apa yang diwakili oleh kunci ...

Shanmugaraja G
sumber