私は、文字列とdbの文字列を比較する必要があります。ローカライズされた文字列とデータベースの文字列を比較するには?
var variableFromDB = "test"
if "test" == variableFromDB{
print("Success")
}
英語の言語で問題なく動作します。私はそれをアラビア語でどのように比較するのか分かりません。アラビア語でチェックする必要もあります。それを確認するために私に教えてください。
私は、文字列とdbの文字列を比較する必要があります。ローカライズされた文字列とデータベースの文字列を比較するには?
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
}
をあなたローカライズ文字列をチェックし、私は本当にあなたの質問を理解していないが、私は、次の遊び場コードがあなたを助けることができる願っています:
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")
}
あなたはopをなぜ理解していないのですか? –
一般に、表示文字列に基づいて意思決定を行うのは悪い考えです。これは、表示文字列では2倍になります。
アラビア語を話す人は、開発言語をアラビア語にしてから、必要に応じて他の言語にローカライズすることができます。
いずれの場合でも、固定文字列をキーとして使用し、NSLocalizedString(_:tableName:bundle:value:comment:)
を呼び出すか、バリアントの1つを呼び出して表示文字列を取得することをお勧めします。例:
let screen1Prompt = "screen1Prompt"
その後、あなたは表示のためにローカライズされた文字列必要がある場合:
実際のプロンプト文字列があるかもしれないlet prompt = NSLocalizedString(screen1Prompt)
を "キーを共有することができるので、どこかの中央にこのコードを入れて
お支払いの日付を選択してください。英語、アラビア語など
データベース内で何かを照合する必要がある場合は、ローカライズされた表示文字列ではなく、ローカライズされていないキーを使用して検索してください。
このようにして後で表示文字列を変更しても、コードは引き続き動作します。
ようこそスタックオーバーフロー! [何を試しましたか?](http://whathaveyoutried.com)。あなたは動作しない例がありますか?失敗したバージョン([mcve]として)とその出力と期待される出力を表示すれば、誰かを助けることができるでしょう。 –