У меня есть список переставляемых текстовых файлов, и их заголовки перечислены в табличном представлении, и я пытаюсь найти наилучший способ добавления субтитров. Я хотел бы, чтобы названия были названиями текстов на их иностранном языке, а субтитры были бы переведенными именами.
В настоящее время я перечислил названия, подобные этому:
stories = Bundle.main.urls(forResourcesWithExtension: "txt", subdirectory: nil)!
А потом я добавляю имя файла и расширение полосы так:
cell.textLabel?.text = stories[indexPath.row].deletingPathExtension().lastPathComponent
Один из способов сделать это - поместить все строки txt-файлов в строковый массив, а затем поместить субтитры в txt-файлы в строке 1, а затем добавить их в виде субтитров в виде таблицы. Но я пока не знаю, как это сделать, не читая целые файлы текста и затем читая строку 1. Есть ли способ прочитать только первую строку всех текстовых плиток и поместить их в массив субтитров, который соответствует названия?
Второй способ, который я подумал - возможно, добавить оригинальный язык и заголовки перевода в имена файлов для текстовых файлов, разделенных символом «-». Есть ли способ прочитать текст перед дефисом как одну строку, а текст после - как вторую строку?
Есть ли еще лучший способ сделать это?
Добавлено: истории открываются этим методом.
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if let vc = storyboard?.instantiateViewController(withIdentifier: "Detail") as? DetailViewController {
vc.selectedStory = stories[indexPath.row]
navigationController?.pushViewController(vc, animated: true)
}
}
Обновление: по какой-то причине я решил создать словарь так:
var storyTitles:[String:String] = [
"foreign lang title A":"english translation A",
"foreign lang title B":"english translation B",
]
и добавил все мои названия на иностранных языках: переведенные названия.
Затем я подключил его к cell.detailText вот так и все заработало!
let storyForeignTitle = stories[indexPath.row].deletingPathExtension().lastPathComponent
cell.textLabel?.text = storyForeignTitle
let storyEnglishTitle = storyTitles[storyForeignTitle]
cell.detailTextLabel?.text = storyEnglishTitle
Итак, последний вопрос: у меня будет около 50 историй. Есть ли недостатки у решения, которое я придумал? Я беспокоился, что это не сработает, потому что иностранный язык - это не латинский текст, но в моем симуляторе все в порядке.