Swift Academy · पाठ

स्ट्रिंग कैटलॉग और स्थानीयकृत स्ट्रिंग

आधुनिक String Catalog से पाठ का स्थानीयकरण कीजिए।

पाठ 1, कुल 4 में से13 चरण

स्ट्रिंग कैटलॉग और स्थानीयकृत स्ट्रिंग, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

स्थानीयकरण करें ही क्यों

स्थानीयकरण (l10n) का अर्थ है ऐप का पाठ उपयोगकर्ता की भाषा में प्रस्तुत करना; अंतरराष्ट्रीयकरण (i18n) का अर्थ है कोड को इस तरह व्यवस्थित करना कि स्थानीयकरण संभव हो। पहला कदम है उपयोगकर्ता को दिखने वाली स्ट्रिंग को कोड में स्थायी रूप से लिखना बंद करना और उसे किसी resource कैटलॉग से प्राप्त करना।

// Hardcoded — bad for localization
// let title = "Welcome"

// Localized — looked up by key
let title = String(localized: "Welcome")

स्ट्रिंग कैटलॉग

आधुनिक Xcode प्रोजेक्ट स्ट्रिंग कैटलॉग (.xcstrings फ़ाइल) का उपयोग करते हैं। यह JSON-आधारित एकल फ़ाइल होती है, जिसमें हर स्थानीयकरण योग्य key, हर भाषा के लिए उसका अनुवाद और टिप्पणियों तथा बहुवचन रूप जैसी मेटाडेटा दी जाती है। Xcode आपके कोड से key अपने-आप निकाल सकता है।

// Localizable.xcstrings holds entries like:
// key: "Welcome"
//   en: "Welcome"
//   tr: "Hos geldiniz"
//   ja: "Yokoso"

String(localized:)

कोड में String(localized:) रनटाइम पर किसी key को वर्तमान लोकेल के अनुवाद में बदलता है। आपके द्वारा दिया गया लिटरल key और विकास-भाषा का fallback—दोनों के रूप में काम करता है।

let greeting = String(localized: "Welcome back")
let cancel = String(localized: "Cancel")
print(greeting)

अनुवादकों के लिए टिप्पणियाँ जोड़ना

Run जैसा अकेला शब्द निष्पादन या दौड़ने, दोनों का अर्थ दे सकता है। comment: पैरामीटर अनुवादकों को संदर्भ देता है, ताकि वे सही शब्द चुन सकें। टिप्पणियाँ अपने-आप स्ट्रिंग कैटलॉग में चली जाती हैं।

let runLabel = String(
    localized: "Run",
    comment: "Button that executes the user's code")

मानों का इंटरपोलेशन

आप स्थानीयकृत स्ट्रिंग में रनटाइम मान शामिल कर सकते हैं। Swift हर इंटरपोलेशन को फ़ॉर्मैट प्लेसहोल्डर में बदल देता है, ताकि अनुवादक उनका क्रम बदल सकें। अलग-अलग भाषाओं में कर्ता और संख्या अलग-अलग स्थानों पर आते हैं।

let name = "Mira"
let count = 3
let msg = String(localized: "\(name) has \(count) new messages")
print(msg)

SwiftUI में LocalizedStringKey

SwiftUI में आप शायद ही कभी सीधे String(localized:) कॉल करते हैं। टेक्स्ट लेने वाले अधिकांश दृश्य LocalizedStringKey स्वीकार करते हैं, इसलिए साधारण स्ट्रिंग लिटरल अपने-आप स्थानीयकृत हो जाता है।

// In SwiftUI — the literal is a LocalizedStringKey
// Text("Welcome back")        // auto-localized
// Button("Save") { save() }   // auto-localized
let key: LocalizedStringKey = "Welcome back"
_ = key

अनजाने में होने वाले स्थानीयकरण से बचना

क्योंकि SwiftUI लिटरल को key मानता है, इसलिए गतिशील String चर का स्थानीयकरण नहीं होता। यदि आप टेक्स्ट को जोड़कर बनाते हैं, तो कैटलॉग को वास्तविक key कभी दिखाई नहीं देती। जहाँ स्थानीयकरण चाहिए वहाँ एकल लिटरल पास करें, और जहाँ जानबूझकर स्थानीयकरण नहीं करना हो वहाँ verbatim: का उपयोग करें।

let userInput = "hello"
// Text(userInput)            // NOT a localization key
// Text(verbatim: userInput)  // explicitly raw, never localized
let verbatimKey = userInput
_ = verbatimKey

तालिका निर्दिष्ट करना

बड़े ऐप कई कैटलॉग (तालिकाओं) में स्ट्रिंग बाँटते हैं। आप किसी खास तालिका और बंडल को लक्षित कर सकते हैं, जो किसी फ़्रेमवर्क या Swift पैकेज के भीतर स्ट्रिंग भेजते समय आवश्यक होता है।

let onboardingTitle = String(
    localized: "Get Started",
    table: "Onboarding",
    bundle: .main)

LocalizedStringResource

LocalizedStringResource किसी स्थानीयकरण योग्य स्ट्रिंग को ऐसे मान के रूप में दर्शाता है जिसे बाद में संग्रहीत और हल किया जा सकता है, यहाँ तक कि प्रक्रियाओं के बीच भी (App Intents और विजेट के लिए उपयोगी)। यह वास्तविक खोज को प्रदर्शन के समय तक टाल देता है।

let resource = LocalizedStringResource("Order shipped")
// Resolve later, possibly in another locale context
let resolved = String(localized: resource)
print(resolved)

डिफ़ॉल्ट स्थानीयकरण

अनुवाद उपलब्ध न होने पर प्रोजेक्ट की विकास भाषा fallback प्रदान करती है। कोड में लिखा गया स्ट्रिंग लिटरल स्रोत-भाषा का मान माना जाता है, इसलिए आपका कोड पढ़ने योग्य रहता है और उपयोगकर्ताओं को welcome_screen_title जैसी raw key कभी नहीं भेजी जाती।

// If only 'en' is translated and device is set to 'fr',
// the development-language value is shown as fallback.
let fallback = String(localized: "Settings")
print(fallback)

एक वास्तविक खोज

सबको मिलाकर, ऐसा फ़ंक्शन जो किसी भी UI के लिए तैयार, पूरी तरह स्थानीयकृत, संदर्भयुक्त और इंटरपोलेशन वाला संदेश लौटाता है।

func welcomeMessage(for user: String) -> String {
    return String(
        localized: "Welcome, \(user)!",
        comment: "Greeting shown after sign-in")
}
print(welcomeMessage(for: "Ada"))

त्वरित जाँच

याद करें कि SwiftUI कैसे तय करता है कि टेक्स्ट का स्थानीयकरण करना है या नहीं।

पुनरावलोकन

आपने स्थानीयकृत टेक्स्ट की नींव तैयार करना सीखा:

  • अनुवाद स्ट्रिंग कैटलॉग (.xcstrings) में रखें।
  • String(localized:) से स्ट्रिंग खोजें और अनुवादकों के लिए comment: जोड़ें।
  • SwiftUI में लिटरल LocalizedStringKey बन जाते हैं और अपने-आप स्थानीयकृत होते हैं; चर स्थानीयकृत नहीं होते।
  • फ़्रेमवर्क के लिए table:/bundle: और स्थगित समाधान के लिए LocalizedStringResource का उपयोग करें।
शुरुआत निःशुल्क

एआई शिक्षक के साथ Swift सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
122
पाठ
409

अक्सर पूछे जाने वाले प्रश्न

क्या “स्ट्रिंग कैटलॉग और स्थानीयकृत स्ट्रिंग” पाठ निःशुल्क है?

हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “स्ट्रिंग कैटलॉग और स्थानीयकृत स्ट्रिंग” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“स्ट्रिंग कैटलॉग और स्थानीयकृत स्ट्रिंग” में मैं क्या सीखूँगा?

आधुनिक String Catalog से पाठ का स्थानीयकरण कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“स्ट्रिंग कैटलॉग और स्थानीयकृत स्ट्रिंग” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. स्ट्रिंग कैटलॉग और स्थानीयकृत स्ट्रिंग
  2. बहुवचन और Stringsdict
  3. लोकेल-अनुकूल फ़ॉर्मैटिंग
  4. दाएँ-से-बाएँ और लेआउट दिशा
← Swift Academy पर वापस जाएँ