1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
//
// ViewModel.swift
// BreastFeedingDemo
//
// Created by Jay Zhang on 2022/6/5.
//
import Foundation
class ViewModel {
/// 语言枚举,enum代表语言包文件名,rawValue代表语言选项
enum Language: String, CaseIterable {
case english = "English"
case french = "Français"
case spanish = "Español"
}
var env: String = "testing"
var apiKey: String = "DLAB-customername-12345687"
var region: String = "apac"
var language: Language = .english {
didSet {
setupText()
}
}
var string: StringModel!
var languagePack: [String: Any] {
let languageFile = "\(language)".appending(".json")
let path: String = Bundle.main.path(forResource: languageFile, ofType: nil)!
let nsUrl = URL(fileURLWithPath: path)
let nsData = try! Data(contentsOf: nsUrl)
let json = try! JSONSerialization.jsonObject(with: nsData) as! [String: Any]
return json
}
var flutterArguments: String {
let arguments: [String: Any] = [
"languagePack": languagePack,
"env": env,
"apiKey": apiKey,
"region": region,
]
let data = try? JSONSerialization.data(withJSONObject: arguments, options: [])
let str = String(data: data!, encoding: String.Encoding.utf8)
return str!
}
init() {
language = .english
setupText()
}
fileprivate func setupText() {
let languageFile = "string_\(language)".appending(".json")
let path: String = Bundle.main.path(forResource: languageFile, ofType: nil)!
let nsUrl = URL(fileURLWithPath: path)
let nsData = try! Data(contentsOf: nsUrl)
let json = try! JSONSerialization.jsonObject(with: nsData) as! [String: Any]
string = .init(fromDictionary: json)
}
}