damus

nostr ios client
git clone git://jb55.com/damus
Log | Files | Refs | README | LICENSE

LibreTranslateServer.swift (921B)


      1 //
      2 //  LibreTranslateServer.swift
      3 //  damus
      4 //
      5 //  Created by Terry Yiu on 1/21/23.
      6 //
      7 
      8 import Foundation
      9 
     10 enum LibreTranslateServer: String, CaseIterable, Identifiable, StringCodable {
     11     var id: String { self.rawValue }
     12 
     13     struct Model: Identifiable, Hashable {
     14         var id: String { self.tag }
     15         var tag: String
     16         var displayName: String
     17         var url: String?
     18     }
     19 
     20     func to_string() -> String {
     21         return rawValue
     22     }
     23 
     24     init?(from string: String) {
     25         guard let libreTranslateServer = LibreTranslateServer(rawValue: string) else {
     26             return nil
     27         }
     28         self = libreTranslateServer
     29     }
     30 
     31     case custom
     32 
     33     var model: Model {
     34         switch self {
     35         case .custom:
     36             return .init(tag: self.rawValue, displayName: NSLocalizedString("Custom", comment: "Dropdown option for selecting a custom translation server."), url: nil)
     37         }
     38     }
     39 }