如何为多语言创建字符串?
我希望此规则适用于更多语言。
localNotification.alertBody = "You have received \(Int(msg)) new messages"
我想要这个:
U_Have =“你收到了”; (英文)
U_Have =“U heeft”; (荷兰)
New_msg =“新消息”; (英文)
New_msg =“nieuwe berichten”; (荷兰)
我认为这看起来很像:
localNotification.alertBody = "U_Have \(Int(msg)) New_msg"
但是如何使用Swift for iOS实现这一目标呢?
答案 0 :(得分:2)
你想要做什么 - 翻译单词而不是整个短语 - 在某些语言中出现了严重错误。
关于地方化和最佳实践的文献很多。去,读一读,也许开始here。
答案 1 :(得分:1)
试试这样:
func getSystemLanguage() -> String{
var Language: String = "en"
if let preferredLanguage = NSLocale.preferredLanguages()[0] as String? {
Language = preferredLanguage
if(Language.rangeOfString("en") == nil && Language.rangeOfString("da") == nil){
Language = "en";
}
if Language.rangeOfString("en") != nil {
Language = "en";
}
if(Language.rangeOfString("da") != nil){
Language = "da"
}
}
return Language
}
然后:
if(getSystemLanguage == "da"){
U_Have = "U heeft"; (Dutch)
} else {
U_Have = "You have receive"; (English)
}
我强烈建议你把所有字符串都放在一个文件中并做这样的事情,因为如果你不这样做,如果你添加一种新语言就会有很多工作:
class LocalizedStrings {
class func getVariable(Variable: String) -> String{
var Key: String = "Key"
switch (Variable) {
case "Test":
if(Logic.getSystemLanguage() == "da"){
Key = "Dutch"
return Key
} else {
Key = "English"
return Key
}
default:
return "NotFound"
}
}
}
然后:
LocalizedString.getVariable("Test")
如果您只想本地化在故事板中设置的字符串,则更容易: