Swift: 从 Localizable 字符串中读取多个单词
Swift: read multiple words from Localizable string
我创建了这个从英语到西班牙语的迷你翻译。单词从 Localizable.strings 中读取并使用 NSLocalizedString 检索单词 "cat" = "gato"。目前它只从字符串中读取一个单词,我想知道是否有任何方法可以从 Localizable.string 中检索多个单词,例如 "the" + "cat" = "el gato"
var myEnglishArray = [String]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.translateTextField.delegate = self
picker.delegate = self
picker.dataSource = self
//var myEnglishArray = [String]()
if let URL = NSBundle.mainBundle().URLForResource("englishArray", withExtension: "plist") {
if let englishFromPlist = NSArray(contentsOfURL: URL) as? [String] {
for myEnglish in englishFromPlist {
myEnglishArray.append(myEnglish)
}
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func translateButtonTapped(sender: UIButton) {
let emptyString = self.translateTextField.text
if (emptyString!.isEmpty) {
print("please enter a word")
}
for transIndex in myEnglishArray.indices {
if myEnglishArray[transIndex] == emptyString!.lowercaseString {
//englishArray
//translateLabel.text = "\(spanishArray[transIndex])"
translateLabel.text = NSLocalizedString(emptyString!.lowercaseString, comment:"")
print(emptyString)
return
}
}
}
我认为您应该为 iOS 使用本地化 - 而不是文件或数组或类似的东西。
您将需要创建多个 localizable.strings 文件并将其用作密钥,例如 NSLocalizedString("yourKeyForWordYouWantToTranslate", comment: "")
.
因此,如果您想让此代码正常工作,您必须再次创建可本地化的字符串并将您的项目设置为支持多种语言。这是关于这种情况的精彩教程(也适用于 swift):
https://www.raywenderlich.com/64401/internationalization-tutorial-for-ios-2014
我举个例子。
How to make Localizable in SWIFT APP
打开Xcode然后点击文件->新建->项目
创建一个新项目并选择单视图应用程序。
输入 "Localizable" 作为应用名称
在 "Localizable" 应用程序名称上,右键单击并选择新建文件。
点击"Resource","Strings File"
输入"Localizable.strings"作为文件名
点击"Localize"
请选择"Base"并点击"Localize"
要查找 "info" of "Localizations",然后单击添加“+”
选择应用的语言
选择"Localizable.strings",然后点击"Finish"
您将有两个名为 "Localizable.strings"
的文件
我创建了这个从英语到西班牙语的迷你翻译。单词从 Localizable.strings 中读取并使用 NSLocalizedString 检索单词 "cat" = "gato"。目前它只从字符串中读取一个单词,我想知道是否有任何方法可以从 Localizable.string 中检索多个单词,例如 "the" + "cat" = "el gato"
var myEnglishArray = [String]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.translateTextField.delegate = self
picker.delegate = self
picker.dataSource = self
//var myEnglishArray = [String]()
if let URL = NSBundle.mainBundle().URLForResource("englishArray", withExtension: "plist") {
if let englishFromPlist = NSArray(contentsOfURL: URL) as? [String] {
for myEnglish in englishFromPlist {
myEnglishArray.append(myEnglish)
}
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func translateButtonTapped(sender: UIButton) {
let emptyString = self.translateTextField.text
if (emptyString!.isEmpty) {
print("please enter a word")
}
for transIndex in myEnglishArray.indices {
if myEnglishArray[transIndex] == emptyString!.lowercaseString {
//englishArray
//translateLabel.text = "\(spanishArray[transIndex])"
translateLabel.text = NSLocalizedString(emptyString!.lowercaseString, comment:"")
print(emptyString)
return
}
}
}
我认为您应该为 iOS 使用本地化 - 而不是文件或数组或类似的东西。
您将需要创建多个 localizable.strings 文件并将其用作密钥,例如 NSLocalizedString("yourKeyForWordYouWantToTranslate", comment: "")
.
因此,如果您想让此代码正常工作,您必须再次创建可本地化的字符串并将您的项目设置为支持多种语言。这是关于这种情况的精彩教程(也适用于 swift):
https://www.raywenderlich.com/64401/internationalization-tutorial-for-ios-2014
我举个例子。 How to make Localizable in SWIFT APP
打开Xcode然后点击文件->新建->项目
创建一个新项目并选择单视图应用程序。
输入 "Localizable" 作为应用名称
在 "Localizable" 应用程序名称上,右键单击并选择新建文件。
点击"Resource","Strings File"
输入"Localizable.strings"作为文件名
点击"Localize"
请选择"Base"并点击"Localize"
要查找 "info" of "Localizations",然后单击添加“+”
选择应用的语言
选择"Localizable.strings",然后点击"Finish"
您将有两个名为 "Localizable.strings"
的文件