কীভাবে সুইফট ইউআইতে স্থানীয়করণ কার্যকর করা যায়


10

কেউ কি আমাকে সাহায্য করতে পারেন? সুইফট ইউআইতে স্থানীয়করণের কোনও বিবরণ পাই না। যে কেউ দয়া করে পরামর্শ দিতে পারেন বা উদাহরণস্বরূপ কীভাবে স্থানীয়করণ করবেন তার একটি উদাহরণ দিতে পারেনText() ?

উত্তর:


15

আপনি যখন পাঠ্যের জন্য ডকুমেন্টেশনের দিকে নজর রাখবেন আপনি দেখতে পাবেন এটি স্থানীয়করণের স্ট্রিংকে কী স্ট্রিংকে তার আরম্ভকারী হিসাবে নেয় না:

init(_ key: LocalizedStringKey, tableName: String? = nil, bundle: Bundle? = nil, comment: StaticString? = nil)

এটি খুব সরলভাবে স্থানীয়করণ করে। আপনাকে যা করতে হবে তা হ'ল:

  • স্ট্রিংস ফাইল টাইপের একটি নতুন ফাইল তৈরি করুন, এটিকে লোকালাইজেবল বলুন
  • নতুন ফাইলটি নির্বাচন করুন এবং ডান পাশের প্যানেলে ফাইল ইন্সপেক্টরটিতে নেয়েগেট করুন এবং স্থানীয়করণ ক্লিক করুন ...
  • স্থানীয়করণ বিভাগে আপনার প্রকল্পের ফাইলটিতে যান এবং তালিকায় অন্য একটি ভাষা যুক্ত করুন - এক্সকোড আপনার জন্য স্থানীয়করণ ফাইল তৈরি করবে

আপনি যখন লোকালাইজেবল.স্ট্রিংস নির্বাচন করবেন তখন আপনি দেখতে পাবেন এটিতে মূল ভাষা এবং আপনি সবে যুক্ত হওয়া ভাষাটির জন্য ফাইল রয়েছে। আপনি এখানে আপনার অনুবাদগুলি রেখেছেন, যেমন কী - স্থানীয়করণের পাঠ্য জোড়া pairs

আপনার যদি এর মতো কোনও পাঠ্য থাকে তবে তা আপনার অ্যাপ্লিকেশন:

Text("Hello World!")

আপনাকে এখন আপনার স্থানীয়করণে যুক্ত করতে হবে your আপনার অনুবাদগুলিতে স্ট্রিংগুলি:

আপনার বেস ভাষার জন্য:

"Hello World!" = "Hello World!";

এবং আপনার দ্বিতীয় ভাষার জন্য (এই ক্ষেত্রে জার্মান):

"Hello World!" = "Hallo Welt!";

আপনার প্রাকদর্শন স্থানীয়ভাবে দেখতে আপনি এগুলি তাদের সংজ্ঞায়িত করতে পারেন:

struct ContentViewView_Previews: PreviewProvider {

    static var previews: some View {
        ForEach(["en", "de"], id: \.self) { id in
            ContentView()
                .environment(\.locale, .init(identifier: id))
        }
    }
}

ধন্যবাদ, এটি সহায়ক ছিল! তবে আমার কিছু সমস্যা ছিল কারণ এটি ইতিমধ্যে বেশ কয়েকটি ভাষা যুক্ত ছিল।
ওলেহ এইচ

আমি চিঠির এই নির্দেশাবলী অনুসরণ করেছিলাম এবং এটি কার্যকর হয়নি। আমি আইওএস 10.15.1 বিটা এবং এক্সকোড 11.1 চালাচ্ছি। কোনও পরামর্শ সানন্দে গ্রহণ করা। আপাতত আমি বিটা সফ্টওয়্যারটিতে একটি গণ্ডগোল অনুমান করতে যাচ্ছি এবং এ নিয়ে আর কোনও সময় হারাব না
জোসেফ বুইস মম

সমস্যাটা আসলে কী ছিল?
লুগুগা

1
আমি @ লুলুগা সমস্যাটি পেয়েছি। এটি স্থানান্তরিত করে যে আমি চিঠির নির্দেশাবলী অনুসরণ করছিলাম না, যেমনটি আমি বলেছিলাম আমার ছিল। আমার স্থানীয়করণের স্ট্রিং ফাইলটি একটি সাবফোল্ডারে ছিল। এটি প্রকল্পের স্তরে রাখুন এবং এটি সূক্ষ্মভাবে কাজ করে
জোসেফ বিউইস মম

1
এটিও আবিষ্কার করেছি (আমার মনে হয়) স্ট্রিংগুলিকে লোকাইজেবল ছাড়া অন্য যে কোনও কিছু বলার অর্থ এটি কার্যকর হবে না
জোসেফ বিউইস মম

3

সুইফট ইউআই ফাইলের জন্য, আপনাকে কেবল স্থানীয়করণ .স্ট্রিংস ফাইল থেকে স্ট্রিং কী sertোকাতে হবে

আমদানি SwiftUI

struct ContentView: View {
    var body: some View {
        VStack {
            Text("selectLanguage")
            Text("languagesList")
        }



    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
            .environment(\.locale, .init(identifier: "en"))
    }
}

এটি স্ট্রিং ফাইল থেকে একটি উদাহরণ

"selectLanguage" = "Select language";
"languagesList" = "Languages list";

ফলাফল এখানে


0

আপনার অ্যাপ্লিকেশন স্থানীয়করণ করতে আপনার প্রয়োজন:

  1. SwiftUI উপাদানগুলি ব্যবহার করুন: পাঠ্য ("সুন্দর") । লোকালাইজেবল.স্ট্রিংসে দুর্দান্ত হয়ে উঠেছে।
  2. যেসব ক্ষেত্রে পাঠ্যটি SwiftUI উপাদানটিতে নেই সে ক্ষেত্রে এনএসএলোক্যালাইজড স্ট্রিং ব্যবহার করা দরকার
  3. আপনার অ্যাপ্লিকেশন টার্গেটটি নির্বাচন করুন।
  4. স্থানীয়করণ রফতানি করুন : সম্পাদনা করুন -> স্থানীয়করণের জন্য রফতানি করুন ...
  5. অনুবাদককে রফতানি করা ফাইল দিন।
  6. অনুবাদগুলি আমদানি করুন : সম্পাদনা করুন -> স্থানীয়করণ আমদানি করুন ...

0

SwiftUI এ লোকালজেবল ব্যবহার করতে, আপনি এই পদ্ধতিটি সম্পাদন করতে পারেন:

আপনার ফাইলগুলিতে লোকালাইজড স্ট্রিংকি ব্যবহার করতে SwiftUI আমদানি করুন

//MARK: - File where you enum your keys to your Localized file
enum ButtonName: LocalizedStringKey {
case submit
case cancel
}

//MARK: - Your Localized file where are your translation
"submit" = "Submit is pressed";
"cancel" = "Cancel";

//MARK: - In your code
let submitButtonName = ButtonName.submit.rawValue
let cancelButtonName = ButtonName.cancel.rawValue

VStack {
Text(submitButtonName)
Text(cancelButtonName)
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.