I18NExampleViewController.swift 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. //
  2. // I18NExampleViewController.swift
  3. // MJRefreshExample
  4. //
  5. // Created by Frank on 2021/7/5.
  6. // Copyright © 2021 小码哥. All rights reserved.
  7. //
  8. import UIKit
  9. class I18NExampleViewController: UITableViewController {
  10. var languages = [
  11. "zh-Hans", "zh-Hant", "en", "ru", "ko", "uk"
  12. ]
  13. var customBundles = [
  14. "zh-Hans", "zh-Hant", "en", "ru", "ko", "uk"
  15. ]
  16. override func viewDidLoad() {
  17. super.viewDidLoad()
  18. tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")
  19. MJRefreshNormalHeader {
  20. DispatchQueue.main.asyncAfter(deadline: .now() + 2) { [weak self] in
  21. guard let self = self else { return }
  22. self.tableView.mj_header?.endRefreshing()
  23. }
  24. }.autoChangeTransparency(true).link(to: tableView)
  25. MJRefreshAutoNormalFooter {
  26. DispatchQueue.main.asyncAfter(deadline: .now() + 2) { [weak self] in
  27. guard let self = self else { return }
  28. self.tableView.mj_footer?.endRefreshing()
  29. }
  30. }.link(to: tableView)
  31. }
  32. override func numberOfSections(in tableView: UITableView) -> Int {
  33. return 3
  34. }
  35. override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  36. return languages.count
  37. }
  38. override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  39. let cell = tableView.dequeueReusableCell(withIdentifier: "Cell")!
  40. cell.textLabel?.text = languages[indexPath.row]
  41. return cell
  42. }
  43. override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
  44. switch section {
  45. case 0:
  46. return "MJRefresh 系统包或 MainBundle 中默认语言包"
  47. case 1:
  48. return "🍬自定义语言包文件(MJRefresh_i18n.strings)"
  49. case 2:
  50. return "♿️自定义语言包 bundle(CustomLanguages.bundle)"
  51. default:
  52. return nil
  53. }
  54. }
  55. override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  56. switch indexPath.section {
  57. case 1:
  58. MJRefreshConfig.default.i18nFilename = "MJRefresh_i18n"
  59. MJRefreshConfig.default.languageCode = nil
  60. MJRefreshConfig.default.i18nBundle = nil
  61. case 2:
  62. MJRefreshConfig.default.i18nFilename = nil
  63. MJRefreshConfig.default.languageCode = nil
  64. MJRefreshConfig.default.i18nBundle = Bundle(path: Bundle.main.path(forResource: "CustomLanguages", ofType: "bundle")!)
  65. default:
  66. MJRefreshConfig.default.i18nFilename = nil
  67. MJRefreshConfig.default.languageCode = nil
  68. MJRefreshConfig.default.i18nBundle = nil
  69. }
  70. MJRefreshConfig.default.languageCode = languages[indexPath.row]
  71. let alertC = UIAlertController(title: "⚠️", message: "language changed to '\(languages[indexPath.row])'", preferredStyle: .alert)
  72. alertC.addAction(UIAlertAction(title: "🎉", style: .destructive))
  73. present(alertC, animated: true)
  74. }
  75. }