我有一个字符串与db中的字符串进行比较。
var variableFromDB = "test"
if "test" == variableFromDB{
print("Success")
}
它在英语中运作良好。我不知道如何用阿拉伯语进行比较。是否需要检查阿拉伯语。请告诉我知道检查。
答案 0 :(得分:1)
通常,您的代码根据显示字符串做出决策是个坏主意。这对显示字符串来说是双倍的。
如果您的主要受众是讲阿拉伯语的,您可以将您的开发语言设为阿拉伯语,然后根据需要将其他语言本地化。
在任何情况下,我建议使用一组固定字符串作为键,然后调用NSLocalizedString(_:tableName:bundle:value:comment:)
或其中一个变体来获取显示字符串。例如:
将此代码放在中央位置,以便共享密钥:
let screen1Prompt = "screen1Prompt"
然后当您需要显示的本地化字符串时:
let prompt = NSLocalizedString(screen1Prompt)
实际提示字符串可能是“请选择付款日期”。英语,阿拉伯语等
然后,如果您需要匹配数据库中的某些内容,请使用未本地化的密钥进行查找,而不是使用本地化的显示字符串。
这样,如果您以后更改显示字符串,您的代码仍然有效。
答案 1 :(得分:0)
var language: String
UserDefaults.standard.set("AE", forKey: "Apple") // manually set language
UserDefaults.standard.synchronize()
self.language = UserDefaults.standard.object(forKey: "Apple")as! String
// self.language = Locale.current.languageCode // your device language
extension String {
func stringlocalized(lang:String) ->String {
let path = Bundle.main.path(forResource: lang, ofType: "lproj")
let bundle = Bundle(path: path!)
return NSLocalizedString(self, tableName: nil, bundle: bundle!, value: "", comment: "")
}}
//使用当前语言检查本地化字符串
let str = “ test”.localized(lang: self.language! )
if str ==variableFromDB
{ // Your logic here
}
答案 2 :(得分:-2)
我真的不明白你的问题,但我希望以下游乐场代码可以帮到你:
import UIKit
//Your example
var variableFromDB = "test"
if "test" == variableFromDB {
print("Success")
}
//The equality check is same for arabic or any other language because the strings in Swift are it UTF8
var arabicVariableFromDB = "بل مارد الخاصّة وفي, عل عدد أكثر استدعى. بلاده وإقامة هو أضف,"
if "بل مارد الخاصّة وفي, عل عدد أكثر استدعى. بلاده وإقامة هو أضف," == arabicVariableFromDB {
print("Success")
}
//Example for using NSLocalizesStrings
//You need to define KeyForTheString in Localizable.strings for exapmple.
//The shorter form for NSLocalizes string is: NSLocalizedString("KeyForString", comment: "Just a comment for the translator")
var localizedString = NSLocalizedString("KeyForString",
tableName: nil,
bundle: Bundle.main,
value: "بل مارد الخاصّة وفي, عل عدد أكثر استدعى. بلاده وإقامة هو أضف,",
comment: "Just a comment for the translator")
arabicVariableFromDB = "بل مارد الخاصّة وفي, عل عدد أكثر استدعى. بلاده وإقامة هو أضف,"
if localizedString == arabicVariableFromDB {
print("Success")
}//: Playground - noun: a place where people can play
import UIKit
//Your example
var variableFromDB = "test"
if "test" == variableFromDB {
print("Success")
}
//The equality check is same for arabic or any other language because the strings in Swift are it UTF8
var arabicVariableFromDB = "بل مارد الخاصّة وفي, عل عدد أكثر استدعى. بلاده وإقامة هو أضف,"
if "بل مارد الخاصّة وفي, عل عدد أكثر استدعى. بلاده وإقامة هو أضف," == arabicVariableFromDB {
print("Success")
}
//Example for using NSLocalizesStrings
//You need to define KeyForTheString in Localizable.strings for exapmple.
//The shorter form for NSLocalizes string is: NSLocalizedString("KeyForString", comment: "Just a comment for the translator")
var localizedString = NSLocalizedString("KeyForString",
tableName: nil,
bundle: Bundle.main,
value: "بل مارد الخاصّة وفي, عل عدد أكثر استدعى. بلاده وإقامة هو أضف,",
comment: "Just a comment for the translator")
arabicVariableFromDB = "بل مارد الخاصّة وفي, عل عدد أكثر استدعى. بلاده وإقامة هو أضف,"
if localizedString == arabicVariableFromDB {
print("Success")
}