जवाबों:
जब आप पाठ के लिए दस्तावेज देखते हैं तो आप देख सकते हैं कि यह LocalizedStringKey लेता है न कि इसके प्रारंभिक में एक स्ट्रिंग:
init(_ key: LocalizedStringKey, tableName: String? = nil, bundle: Bundle? = nil, comment: StaticString? = nil)
यह स्थानीयकरण को बहुत सीधा बनाता है। तुमको बस यह करना है:
जब आप आपको Localizable.strings चुनते हैं तो आप देखेंगे कि इसमें मूल भाषा और आपके द्वारा जोड़ी गई भाषा की फाइलें हैं। यहीं पर आप अपने अनुवाद, कुंजी - स्थानीय पाठ जोड़े जोड़ते हैं।
यदि आपके पास एक पाठ है जैसे कि यह आपका ऐप है:
Text("Hello World!")
अब आपको अपने अनुवादों में अपने Localizable.strings को जोड़ना होगा:
आपकी आधार भाषा के लिए:
"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))
}
}
}
स्विफ्ट UI फ़ाइल के लिए, आपको बस स्थानीयकरण .strings फ़ाइल से स्ट्रिंग कुंजी सम्मिलित करने की आवश्यकता है
आयात 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"))
}
}
और यह .strings फ़ाइल से एक उदाहरण है
"selectLanguage" = "Select language";
"languagesList" = "Languages list";
परिणाम यहाँ है
अपनी ऐप को स्थानीय बनाने के लिए:
SwiftUI में Localazable का उपयोग करने के लिए, आप इस तरह से प्रदर्शन कर सकते हैं:
अपनी फ़ाइलों में स्थानीयकृतStringKey का उपयोग करने के लिए 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)
}