Swift में iOS और macOS के लिए अंतर्राष्ट्रीयकरण (i18n)

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Swift में अंतर्राष्ट्रीयकरण (i18n): iOS और macOS के लिए पूरी गाइड



अंतर्राष्ट्रीयकरण (संक्षेप में i18n) — एप्लिकेशन को इस तरह डिज़ाइन करने की प्रक्रिया है ताकि इसे स्रोत कोड में बदलाव किए बिना विभिन्न भाषाओं और क्षेत्रों के अनुकूल बनाया जा सके। Apple प्लेटफ़ॉर्म (iOS, macOS, watchOS, tvOS) के डेवलपर्स के लिए Swift एक शक्तिशाली लेकिन सुरुचिपूर्ण टूलसेट प्रदान करता है। इस लेख में, हम विस्तार से समझेंगे कि Apple के अंतर्निहित तंत्र का उपयोग करके अपने Swift प्रोजेक्ट में i18n कैसे सेट अप करें।



i18n क्यों महत्वपूर्ण है?

भले ही आपका एप्लिकेशन शुरू में एक भाषा में बनाया गया हो, अंतर्राष्ट्रीयकरण को आर्किटेक्चर चरण में ही शामिल किया जाना चाहिए। इससे आप यह कर सकते हैं:

  • दर्शकों का विस्तार करें: विभिन्न देशों के उपयोगकर्ता अपनी मूल भाषा में एप्लिकेशन पसंद करते हैं।
  • स्थानीयकरण को सरल बनाएं: सही i18n नई भाषा जोड़ने को फ़ाइलों के साथ एक सरल ऑपरेशन में बदल देता है।
  • हार्डकोड से बचें: सभी स्ट्रिंग्स को अलग-अलग संसाधनों में रखा जाता है, जिससे कोड की पठनीयता और रखरखाव में सुधार होता है।


मुख्य उपकरण: NSLocalizedString

Swift में अंतर्राष्ट्रीयकरण का केंद्र मैक्रो NSLocalizedString है। यह स्थानीयकरण फ़ाइलों (.strings) में स्ट्रिंग खोजता है और अनुवादित संस्करण लौटाता है। यदि अनुवाद नहीं मिलता है, तो कुंजी (आमतौर पर अंग्रेज़ी स्ट्रिंग) का उपयोग किया जाता है।



// Swift में उपयोग का उदाहरणlet welcomeMessage = NSLocalizedString("welcome_message", comment: "मुख्य स्क्रीन पर स्वागत संदेश")label.text = welcomeMessage


हमेशा comment निर्दिष्ट करने की अनुशंसा की जाती है — यह अनुवादकों को संदर्भ समझने में मदद करता है।



स्थानीयकरण फ़ाइलों की संरचना

Xcode में, भाषाएँ Project Settings > Info > Localizations के माध्यम से जोड़ी जाती हैं। इसके बाद, xx.lproj फ़ोल्डर बनाए जाते हैं (उदाहरण के लिए, en.lproj, ru.lproj)। इनके अंदर निम्नलिखित संग्रहीत होते हैं:

  • Localizable.strings — "कुंजी" = "मान" जोड़ियों वाली मुख्य फ़ाइल;
  • InfoPlist.strings — एप्लिकेशन नाम और सिस्टम स्ट्रिंग्स के स्थानीयकरण के लिए;
  • Storyboard.strings — स्टोरीबोर्ड में बनाए गए इंटरफ़ेस के लिए स्वचालित रूप से उत्पन्न फ़ाइल।


Localizable.strings का प्रारूप

फ़ाइल का सिंटैक्स सरल है:

// अंग्रेज़ी (en.lproj/Localizable.strings)"welcome_message" = "Welcome to our app!";"login_button" = "Log In";

// हिंदी (hi.lproj/Localizable.strings)"welcome_message" = "हमारे ऐप में आपका स्वागत है!";"login_button" = "लॉग इन करें";


महत्वपूर्ण: स्ट्रिंग्स अर्धविराम से समाप्त होती हैं। फ़ाइल एन्कोडिंग UTF-8 या UTF-16 होनी चाहिए।



पैरामीटर के साथ स्ट्रिंग्स को फ़ॉर्मेट करना

अक्सर स्ट्रिंग में डायनामिक डेटा (उपयोगकर्ता नाम, आइटम की संख्या) डालने की आवश्यकता होती है। इसके लिए String(format:) का उपयोग किया जाता है:



// Localizable.strings में:"items_count" = "आपके पास %d आइटम हैं।";"user_greeting" = "नमस्ते, %@!";

// Swift कोड में:let count = 5let itemsText = String(format: NSLocalizedString("items_count", comment: "आइटमों की संख्या"), count)

let userName = "अलेक्सेय"let greeting = String(format: NSLocalizedString("user_greeting", comment: "उपयोगकर्ता को नमस्ते"), userName)


बहुवचन रूपों (1 सेब, 2 सेब, 5 सेब) के समर्थन के लिए StringDict (फ़ाइलें .stringsdict) का उपयोग करें।



अनुवादकों के लिए XLIFF के साथ काम करना

Apple XLIFF (XML Localisation Interchange File) प्रारूप का समर्थन करता है। यह अनुवादों के आदान-प्रदान के लिए एक उद्योग मानक है। Xcode में, आप सभी स्ट्रिंग्स को XLIFF फ़ाइल में निर्यात कर सकते हैं, इसे अनुवादक को दे सकते हैं, और फिर वापस आयात कर सकते हैं।



// निर्यात के लिए टर्मिनल कमांड:xcodebuild -exportLocalizations -localizationPath ./translations -project YourProject.xcodeproj

// तैयार अनुवादों का आयात:

अनुशंसाएँ