Add translate.nostr.wine to available translation services

Closes: https://github.com/damus-io/damus/pull/1113
Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
Mazin
2023-05-09 22:38:11 -04:00
committed by William Casarin
parent a58ca2918a
commit 957ac1dc03
4 changed files with 53 additions and 0 deletions

View File

@@ -32,6 +32,7 @@ enum TranslationService: String, CaseIterable, Identifiable, StringCodable {
case libretranslate
case deepl
case nokyctranslate
case winetranslate
var model: Model {
switch self {
@@ -43,6 +44,8 @@ enum TranslationService: String, CaseIterable, Identifiable, StringCodable {
return .init(tag: self.rawValue, displayName: NSLocalizedString("DeepL (Proprietary, Higher Accuracy)", comment: "Dropdown option for selecting DeepL as the translation service."))
case .nokyctranslate:
return .init(tag: self.rawValue, displayName: NSLocalizedString("NoKYCTranslate.com (Prepay with BTC)", comment: "Dropdown option for selecting NoKYCTranslate.com as the translation service."))
case .winetranslate:
return .init(tag: self.rawValue, displayName: NSLocalizedString("translate.nostr.wine (DeepL, Pay with BTC)", comment: "Dropdown option for selecting translate.nostr.wine as the translation service."))
}
}
}

View File

@@ -244,6 +244,15 @@ class UserSettingsStore: ObservableObject {
internal_nokyctranslate_api_key = newValue == "" ? nil : newValue
}
}
var winetranslate_api_key: String {
get {
return internal_winetranslate_api_key ?? ""
}
set {
internal_winetranslate_api_key = newValue == "" ? nil : newValue
}
}
// These internal keys are necessary because entries in the keychain need to be Optional,
// but the translation view needs non-Optional String in order to use them as Bindings.
@@ -252,6 +261,9 @@ class UserSettingsStore: ObservableObject {
@KeychainStorage(account: "nokyctranslate_apikey")
var internal_nokyctranslate_api_key: String?
@KeychainStorage(account: "winetranslate_apikey")
var internal_winetranslate_api_key: String?
@KeychainStorage(account: "libretranslate_apikey")
var internal_libretranslate_api_key: String?
@@ -269,6 +281,8 @@ class UserSettingsStore: ObservableObject {
return internal_deepl_api_key != nil
case .nokyctranslate:
return internal_nokyctranslate_api_key != nil
case .winetranslate:
return internal_winetranslate_api_key != nil
}
}
}