Swift 2:从文件中读取

时间:2016-03-21 12:46:26

标签: arrays string swift file translation

我在英语和西班牙语单词之间创建了这个小翻译。如果用户输入了#34;猫#34;它将打印" el gato"通过检查索引号。我想知道是否有任何方法可以从包含更多单词的文件中读取。

档案1(英文) 文件2(西班牙文)

文件1将检查"你好"在文件2" Hola"并打印正确的翻译

import UIKit

class translateViewController: UIViewController {

@IBOutlet weak var translateTextField: UITextField!
@IBOutlet weak var translateButton: UIButton!
@IBOutlet weak var translateLabel: UILabel!

var englishArray: [String] = ["the cat", "the dog", "hello", ]
var spanishArray: [String] = ["el gato", "el perro", "hola"]

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

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 englishArray.indices {
        if englishArray[transIndex] == emptyString!.lowercaseString {

            translateLabel.text = "\(spanishArray[transIndex])"

            print(transIndex)
            return

            }
        }
    }
}

2 个答案:

答案 0 :(得分:0)

编辑:抱歉..完全错过了#34; swift"提到。我必须喝醉了:

在数组中添加更多单词,或者如果您想要进行归档,我认为您不需要2个文件......如果您存储像

hello = hola

然后执行一些字符串处理来检查=之前的单词如果匹配,请在=之后打印单词

或者更容易的方式......

您可以存储

等字词

Hello Hola The cat El gato

然后这样做(有点伪代码)......

while(reader.hasNextline())
{
   if (reader.readline().Equals(input_word))  // read the first line and check if it matches the input word
   {
      System.out.println(reader.readline());  // print translated word which on the next line
      break;
   }
   reader.readline();  // If it doesn't matches then skip the spanish translation on the next line
}

答案 1 :(得分:0)

为此目的推荐的方法是Localizable.stringsNSLocalizedString()

  • 创建文件Localizable.strings
  • 例如,使用键/值对填充字符串文件(即使在Swift中,包含分号的语法也是必需的。)

    "the cat" = "el gato";
    "the dog" = "el perro";
    "hello" = "hola";
    
  • 使用NSLocalizedString()

    翻译单词/表达
    translateLabel.text = NSLocalizedString(emptyString!.lowercaseString, comment:"")
    

NSLocalizedString()检索键el gato

的值the cat