พารามิเตอร์ที่สองของ NSLocalizedString () คืออะไร?


123

อะไรคือสิ่งที่*commentพารามิเตอร์ใน:

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

ถ้าฉันทำสิ่งนี้:

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

และมี Localizable.strings สองเวอร์ชัน (อังกฤษและสเปน) แต่ละเวอร์ชันจำเป็นต้องมีรายการ:

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

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

ภาษาอังกฤษไม่ซ้ำซ้อนเหรอ?

คำตอบ:


72

แอ็พพลิเคชันไม่สนใจสตริงข้อคิดเห็น ใช้เพื่อประโยชน์ของนักแปลเพื่อเพิ่มความหมายให้กับการใช้งานตามบริบทของคีย์ที่พบในแอปพลิเคชันของคุณ

ตัวอย่างเช่นHello_World_Keyคีย์อาจใช้ค่าที่แตกต่างกันในภาษาหนึ่ง ๆ ขึ้นอยู่กับว่าHello Worldวลีที่เป็นทางการหรือไม่เป็นทางการต้องเป็นภาษานั้นอย่างไร ("What's up World", "Yo World", "Good Day World" ฯลฯ )

คุณสามารถเพิ่มสตริงในช่องความคิดเห็นเพื่อบอกใบ้การใช้งานนี้ให้กับนักแปลซึ่ง (ใครจะคิดว่า) สามารถแปลแอปพลิเคชันของคุณได้ดีกว่า


277

พารามิเตอร์ที่สองคือข้อคิดเห็นที่จะปรากฏในไฟล์สตริงโดยอัตโนมัติหากคุณใช้ยูทิลิตี้บรรทัดคำสั่งgenstringsซึ่งสามารถสร้างไฟล์สตริงให้คุณได้โดยการสแกนซอร์สโค้ดของคุณ

ความคิดเห็นนี้มีประโยชน์สำหรับคนท้องถิ่นของคุณ ตัวอย่างเช่น:

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

เมื่อคุณเรียกใช้ genstrings สิ่งนี้จะสร้างรายการในไฟล์ Localizable.strings ดังนี้:

/* Title of the Save button in the theme saving dialog */
"Save" = "Save";

@JuandelaTorre: คำถามนี้มีอายุหลายปีแล้วอาจจะเป็น 4thSpace (ผู้ถามคำถาม) ไม่ได้ดูคำถามของเขาเนื่องจากเขายอมรับคำตอบข้อใดข้อหนึ่ง
Manni

นอกจากนี้ยังเป็นสิ่งที่จะใช้หากไฟล์สตริงไม่มีรายการที่ตรงกับตัวระบุที่คุณระบุ
ออสกา

4
ไม่คีย์จะถูกใช้ในกรณีนั้นไม่ใช่ความคิดเห็น
Nick Lockwood

ประเด็นคืออะไร? ใช่มันมีประโยชน์สำหรับ id สั้น ๆ ( "id" - "word";เช่นในตัวอย่างของคุณ"Save" = "Save";) แต่คุณต้องเพิ่มสิ่งที่ยาวกว่าด้วยตนเอง"id" - "word 1 word 2 word 3";
user924

ความคิดเห็น (พารามิเตอร์ที่สอง) ใช้สำหรับ localizers ผู้ที่กำลังเพิ่มสตริงสำหรับแอปของคุณในภาษาอื่นต้องการบริบทเพื่อที่จะได้ทราบว่าต้องใช้คำแปลใด พารามิเตอร์แรกเพียงระบุคีย์ในไฟล์สตริงการแปลไฟล์สตริงคือสิ่งที่เก็บข้อความที่จะแสดงใน UI
Rob Keniger

0

เพียงเพื่อความเข้าใจของนักพัฒนาเกี่ยวกับการแปลนั่นคือคุณกำลังให้คีย์เพื่อรับสตริงที่เกี่ยวข้องจากไฟล์สตริงที่เกี่ยวข้อง

พารามิเตอร์ความคิดเห็นช่วยให้นักพัฒนาเข้าใจว่าคีย์นั้นหมายถึงอะไร ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.