আপনি যখন একটি এসডিকে বিকাশ করছেন। আপনার কিছু অতিরিক্ত অপারেশন দরকার।
1) আপনার লোকালাইজডেমোএসডিকে যথারীতি লোকালাইজেবল.স্ট্রিং তৈরি করুন ।
2) আপনার লোকালাইজডেমোতে একই স্থানীয়করণযোগ্য strস্ট্রিংগুলি তৈরি করুন ।
3) আপনার লোকালাইজডেমোএসডিকে আপনার বান্ডিল পাথটি সন্ধান করুন।
সুইফট 4 :
// if you use NSLocalizeString in NSObject, you can use it like this
let value = NSLocalizedString("key", tableName: nil, bundle: Bundle(for: type(of: self)), value: "", comment: "")
Bundle(for: type(of: self))
আপনাকে আপনার লোকালাইজডেমোএসডিকে বান্ডিলটি সন্ধান করতে সহায়তা করে। আপনি যদি এর Bundle.main
পরিবর্তে ব্যবহার করেন তবে আপনি একটি ভুল মান পাবেন (আসলে এটি কীটির সাথে একই স্ট্রিংটি হবে)।
তবে আপনি যদি ড ওক্স দ্বারা উল্লিখিত স্ট্রিং এক্সটেনশনটি ব্যবহার করতে চান । আপনার আরও কিছু করা দরকার। উত্সের এক্সটেনশনটি এর মতো দেখাচ্ছে।
extension String {
var localized: String {
return NSLocalizedString(self, tableName: nil, bundle: Bundle.main, value: "", comment: "")
}
}
যেমনটি আমরা জানি, আমরা একটি এসডিকে তৈরি করছি, Bundle.main
করছি, আপনারলোক্যালাইজডেমোর বান্ডিলটি পাব। আমরা যা চাই তা তা নয়। আপনার লোকালাইজডেমোএসডিকে আমাদের বান্ডিল দরকার। এটি দ্রুত খুঁজে পেতে একটি কৌশল।
আপনারলোক্যালাইজডেমোএসডিকে একটি এনএসবজেক্ট ইভেন্টে নীচের কোডটি চালান। এবং আপনি YourLocalizeDemoSDK এর URL পাবেন।
let bundleURLOfSDK = Bundle(for: type(of: self)).bundleURL
let mainBundleURL = Bundle.main.bundleURL
দুটি ইউআরএল উভয়ই মুদ্রণ করুন, আপনি দেখতে পাবেন যে আমরা মেইনবান্ডেল URL এ bundleURLofSDK বেস তৈরি করতে পারি। এই ক্ষেত্রে, এটি হবে:
let bundle = Bundle(url: Bundle.main.bundleURL.appendingPathComponent("Frameworks").appendingPathComponent("YourLocalizeDemoSDK.framework")) ?? Bundle.main
এবং স্ট্রিং এক্সটেনশনটি হ'ল:
extension String {
var localized: String {
let bundle = Bundle(url: Bundle.main.bundleURL.appendingPathComponent("Frameworks").appendingPathComponent("YourLocalizeDemoSDK.framework")) ?? Bundle.main
return NSLocalizedString(self, tableName: nil, bundle: bundle, value: "", comment: "")
}
}
আশা করি এটা সাহায্য করবে.