Ios 如何将本地化字符串与数据库中的字符串进行比较?
我需要比较一个字符串和数据库中的字符串Ios 如何将本地化字符串与数据库中的字符串进行比较?,ios,swift,arabic,Ios,Swift,Arabic,我需要比较一个字符串和数据库中的字符串 var variableFromDB = "test" if "test" == variableFromDB{ print("Success") } 它在英语中很好用。我不知道如何用阿拉伯语来比较。也需要用阿拉伯语检查。请告诉我要检查一下 var language: String UserDefaults.standard.set("AE", forKey: "Apple") // manually set language UserDe
var variableFromDB = "test"
if "test" == variableFromDB{
print("Success")
}
它在英语中很好用。我不知道如何用阿拉伯语来比较。也需要用阿拉伯语检查。请告诉我要检查一下
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
}
一般来说,代码根据显示字符串做出决策是个坏主意。这对于显示字符串来说是双倍的 如果您的主要受众是说阿拉伯语的,您可以将您的开发语言设置为阿拉伯语,然后根据需要对其他语言进行本地化 在任何情况下,我都会建议使用一组固定字符串作为键,然后调用NSLocalizedString::tableName:bundle:value:comment:或其变体之一来获取显示字符串。例如: 将此代码放在中央的某个位置,以便共享密钥:
let screen1Prompt = "screen1Prompt"
然后,当需要显示本地化字符串时:
let prompt = NSLocalizedString(screen1Prompt)
如果实际提示字符串可能是,请选择付款日期。用英语、阿拉伯语等
然后,如果需要匹配数据库中的某些内容,请使用未本地化的键(而不是本地化的显示字符串)进行查找
这样,如果以后更改显示字符串,代码仍然有效。欢迎使用堆栈溢出。你有没有一个不起作用的例子?向我们展示失败的版本及其输出,以及预期的输出,您将更有可能找到能够提供帮助的人。