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वाक्यांश को उस भाषा ("व्हाट्स अप वर्ल्ड", "यो वर्ल्ड", "गुड डे वर्ल्ड", आदि) में कितना औपचारिक या अनौपचारिक होना चाहिए।

आप इस उपयोग को संकेत करने के लिए टिप्पणी फ़ील्ड में एक स्ट्रिंग जोड़ सकते हैं, जो आपके आवेदन को स्थानीयकृत करने में बेहतर होगा (एक अनुमान लगाएगा)।


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 (सवाल पूछने वाले व्यक्ति) के सवाल का एक नज़र नहीं है क्योंकि वह जवाबों में से एक को स्वीकार करता है।
मन्नी

यदि स्ट्रिंग्स फ़ाइल में आपके द्वारा निर्दिष्ट पहचानकर्ता से मेल नहीं खाता है, तो यह भी उपयोग किया जाएगा।
ऑस्कर

4
नहीं, उस मामले में कुंजी का उपयोग किया जाता है, टिप्पणी नहीं।
निक लॉकवुड

मुद्दा क्या है? हाँ यह शॉर्ट आईडी के लिए उपयोगी है ( "id" - "word";जैसे, आपके उदाहरण में "Save" = "Save";), लेकिन आपको मैन्युअल रूप से कुछ जोड़ना होगा"id" - "word 1 word 2 word 3";
user924

टिप्पणी (दूसरा पैरामीटर) स्थानीय लोगों के लिए है। कोई व्यक्ति जो किसी अन्य भाषा में आपके ऐप के लिए तार जोड़ रहा है, उसे यह जानने के लिए संदर्भ की आवश्यकता है कि किस अनुवाद को लागू करना है। पहला पैरामीटर सिर्फ स्थानीयकरण स्ट्रिंग्स फ़ाइल में कुंजी निर्दिष्ट करता है, स्ट्रिंग्स फ़ाइल वह है जो वास्तव में UI में प्रदर्शित करने के लिए पाठ को संग्रहीत करता है।
रॉब केनगर

0

यह अनुवाद पर सिर्फ डेवलपर समझ के लिए है, कि आप संबंधित स्ट्रिंग फ़ाइल से संबंधित स्ट्रिंग प्राप्त करने के लिए एक कुंजी दे रहे हैं।

टिप्पणी पैरामीटर डेवलपर को यह समझने में सक्षम बनाता है कि कुंजी क्या दर्शाती है ...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.