ChWebsiteApp/CHDataManagement/Model/LocalizedText.swift
Christoph Hagen 0989f06d87 First version
2024-10-14 19:22:32 +02:00

49 lines
958 B
Swift

import Foundation
import SwiftUI
/// A simple container for localized text
final class LocalizedText: ObservableObject {
@Published
var en: String
@Published
var de: String
init(en: String, de: String) {
self.en = en
self.de = de
}
var id: String {
en
}
func set(text: String, for language: ContentLanguage) {
switch language {
case .english: self.en = text
case .german: self.de = text
}
}
func getText(for language: ContentLanguage) -> String {
switch language {
case .english: return en
case .german: return de
}
}
@MainActor
func text(for language: ContentLanguage) -> Binding<String> {
Binding(
get: {
self.getText(for: language)
},
set: { newValue in
self.set(text: newValue, for: language)
}
)
}
}