diff --git a/damus/Models/LibreTranslateServer.swift b/damus/Models/LibreTranslateServer.swift index 57379624..513de47d 100644 --- a/damus/Models/LibreTranslateServer.swift +++ b/damus/Models/LibreTranslateServer.swift @@ -7,7 +7,7 @@ import Foundation -enum LibreTranslateServer: String, CaseIterable, Identifiable { +enum LibreTranslateServer: String, CaseIterable, Identifiable, StringCodable { var id: String { self.rawValue } struct Model: Identifiable, Hashable { @@ -17,9 +17,19 @@ enum LibreTranslateServer: String, CaseIterable, Identifiable { var url: String? } + func to_string() -> String { + return rawValue + } + + init?(from string: String) { + guard let libreTranslateServer = LibreTranslateServer(rawValue: string) else { + return nil + } + self = libreTranslateServer + } + case argosopentech case terraprint - case vern case custom var model: Model { @@ -28,8 +38,6 @@ enum LibreTranslateServer: String, CaseIterable, Identifiable { return .init(tag: self.rawValue, displayName: "translate.argosopentech.com", url: "https://translate.argosopentech.com") case .terraprint: return .init(tag: self.rawValue, displayName: "translate.terraprint.co", url: "https://translate.terraprint.co") - case .vern: - return .init(tag: self.rawValue, displayName: "lt.vern.cc", url: "https://lt.vern.cc") case .custom: return .init(tag: self.rawValue, displayName: NSLocalizedString("Custom", comment: "Dropdown option for selecting a custom translation server."), url: nil) } diff --git a/damus/Models/UserSettingsStore.swift b/damus/Models/UserSettingsStore.swift index 985e7c3c..b1cbb739 100644 --- a/damus/Models/UserSettingsStore.swift +++ b/damus/Models/UserSettingsStore.swift @@ -162,7 +162,7 @@ class UserSettingsStore: ObservableObject { } } - @Setting(key: "libretranslate_server", default_value: .vern) + @StringSetting(key: "libretranslate_server", default_value: .terraprint) var libretranslate_server: LibreTranslateServer @Setting(key: "libretranslate_url", default_value: "")