diff --git a/IceCubesApp/Resources/Localization/Plurals/en.lproj/Localizable.stringsdict b/IceCubesApp/Resources/Localization/Plurals/en.lproj/Localizable.stringsdict index f626910d..cc0e48b9 100644 --- a/IceCubesApp/Resources/Localization/Plurals/en.lproj/Localizable.stringsdict +++ b/IceCubesApp/Resources/Localization/Plurals/en.lproj/Localizable.stringsdict @@ -2,37 +2,37 @@ - timeline-new-posts %lld - - NSStringLocalizedFormatKey - %#@timelineNewPosts@ - timelineNewPosts - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - lld - one - %lld new post - other - %lld new posts - - - notifications-others-count %lld - - NSStringLocalizedFormatKey - %#@noficationsOthersCount@ - noficationsOthersCount - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - lld - one - and %lld other - other - and %lld others - - + timeline-new-posts %lld + + NSStringLocalizedFormatKey + %#@timelineNewPosts@ + timelineNewPosts + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + lld + one + %lld new post + other + %lld new posts + + + notifications-others-count %lld + + NSStringLocalizedFormatKey + %#@noficationsOthersCount@ + noficationsOthersCount + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + lld + one + and %lld other + other + and %lld others + + diff --git a/IceCubesApp/Resources/Localization/be.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/be.lproj/Localizable.strings index 0f96edf4..800f4207 100644 --- a/IceCubesApp/Resources/Localization/be.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/be.lproj/Localizable.strings @@ -372,8 +372,8 @@ // MARK: Package: Status "status.action.translate" = "Перакласці"; -"status.action.translate-from-%@" = "Перакласці з %@"; "status.action.translated-label-%@" = "Пераклад з дапамогай %@"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "Закладка"; "status.action.boost" = "Павышэнне"; "status.action.boost-to-followers" = "Павысіць для падпісчыкаў"; diff --git a/IceCubesApp/Resources/Localization/ca.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/ca.lproj/Localizable.strings index eaf28baf..556580fa 100644 --- a/IceCubesApp/Resources/Localization/ca.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/ca.lproj/Localizable.strings @@ -366,8 +366,8 @@ // MARK: Package: Status "status.action.translate" = "Tradueix"; -"status.action.translate-from-%@" = "Tradueix del %@"; "status.action.translated-label-%@" = "Traduït amb %@"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "Afegeix als marcadors"; "status.action.boost" = "Impulsa"; "status.action.boost-to-followers" = "Boost to Followers"; diff --git a/IceCubesApp/Resources/Localization/de.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/de.lproj/Localizable.strings index ba811ba2..b1a9b99a 100644 --- a/IceCubesApp/Resources/Localization/de.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/de.lproj/Localizable.strings @@ -363,8 +363,8 @@ // MARK: Package: Status "status.action.translate" = "Übersetzen"; -"status.action.translate-from-%@" = "Aus %@ übersetzen"; "status.action.translated-label-%@" = "Übersetzt mit %@"; +"status.action.translated-label-from-%@-%@" = "Aus %@ mit %@ übersetzt"; "status.action.bookmark" = "Lesezeichen setzen"; "status.action.boost" = "Boosten"; "status.action.boost-to-followers" = "An Follower boosten"; diff --git a/IceCubesApp/Resources/Localization/en-GB.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/en-GB.lproj/Localizable.strings index cfe90532..7b9d263e 100644 --- a/IceCubesApp/Resources/Localization/en-GB.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/en-GB.lproj/Localizable.strings @@ -369,8 +369,8 @@ // MARK: Package: Status "status.action.translate" = "Translate"; -"status.action.translate-from-%@" = "Translate from %@"; "status.action.translated-label-%@" = "Translated using %@"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "Bookmark"; "status.action.boost" = "Boost"; "status.action.boost-to-followers" = "Boost to Followers"; diff --git a/IceCubesApp/Resources/Localization/en.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/en.lproj/Localizable.strings index 0eef021b..d85510c6 100644 --- a/IceCubesApp/Resources/Localization/en.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/en.lproj/Localizable.strings @@ -368,8 +368,8 @@ // MARK: Package: Status "status.action.translate" = "Translate"; -"status.action.translate-from-%@" = "Translate from %@"; "status.action.translated-label-%@" = "Translated using %@"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "Bookmark"; "status.action.boost" = "Boost"; "status.action.boost-to-followers" = "Boost to Followers"; diff --git a/IceCubesApp/Resources/Localization/es.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/es.lproj/Localizable.strings index 1620da67..fad3d32a 100644 --- a/IceCubesApp/Resources/Localization/es.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/es.lproj/Localizable.strings @@ -368,8 +368,8 @@ // MARK: Package: Status "status.action.translate" = "Traducir"; -"status.action.translate-from-%@" = "Traducir desde %@"; "status.action.translated-label-%@" = "Traducido usando %@"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "Añadir a marcadores"; "status.action.boost" = "Retootear"; "status.action.boost-to-followers" = "Retootear a tus seguidores"; diff --git a/IceCubesApp/Resources/Localization/eu.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/eu.lproj/Localizable.strings index d89532c9..aa51c5e6 100644 --- a/IceCubesApp/Resources/Localization/eu.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/eu.lproj/Localizable.strings @@ -361,8 +361,8 @@ // MARK: Package: Status "status.action.translate" = "Itzuli"; -"status.action.translate-from-%@" = "Itzuli %@(e)tik"; "status.action.translated-label-%@" = "%@ erabiliz itzulia"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "Jarri laster-marka"; "status.action.boost" = "Bultzatu"; "status.action.boost-to-followers" = "Bultzatu jarraitzaileek ikus dezaten"; diff --git a/IceCubesApp/Resources/Localization/fr.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/fr.lproj/Localizable.strings index 901626a3..133a8caa 100644 --- a/IceCubesApp/Resources/Localization/fr.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/fr.lproj/Localizable.strings @@ -363,8 +363,8 @@ // MARK: Package: Status "status.action.translate" = "Traduire"; -"status.action.translate-from-%@" = "Traduire de %@"; "status.action.translated-label-%@" = "Traduit avec %@"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "Marquer"; "status.action.boost" = "Promouvoir"; "status.action.boost-to-followers" = "Boost to Followers"; diff --git a/IceCubesApp/Resources/Localization/it.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/it.lproj/Localizable.strings index a959b7e4..eab0a1b6 100644 --- a/IceCubesApp/Resources/Localization/it.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/it.lproj/Localizable.strings @@ -368,8 +368,8 @@ // MARK: Package: Status "status.action.translate" = "Traduci"; -"status.action.translate-from-%@" = "Traduci da %@"; "status.action.translated-label-%@" = "Tradotto usando %@"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "Salva nei segnalibri"; "status.action.boost" = "Condividi"; "status.action.boost-to-followers" = "Condividi con i follower"; diff --git a/IceCubesApp/Resources/Localization/ja.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/ja.lproj/Localizable.strings index a3510083..49fc4d54 100644 --- a/IceCubesApp/Resources/Localization/ja.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/ja.lproj/Localizable.strings @@ -367,8 +367,8 @@ // MARK: Package: Status "status.action.translate" = "翻訳"; -"status.action.translate-from-%@" = "%@ から翻訳"; "status.action.translated-label-%@" = "%@ を使用して翻訳"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "ブックマーク"; "status.action.boost" = "ブースト"; "status.action.boost-to-followers" = "フォロワーにブースト"; diff --git a/IceCubesApp/Resources/Localization/ko.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/ko.lproj/Localizable.strings index 809d1d6b..728d2183 100644 --- a/IceCubesApp/Resources/Localization/ko.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/ko.lproj/Localizable.strings @@ -369,8 +369,8 @@ // MARK: Package: Status "status.action.translate" = "번역"; -"status.action.translate-from-%@" = "%@에서 번역"; "status.action.translated-label-%@" = "번역 제공: %@"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "보관함에 추가"; "status.action.boost" = "부스트"; "status.action.boost-to-followers" = "팔로워에게만 부스트"; diff --git a/IceCubesApp/Resources/Localization/nb.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/nb.lproj/Localizable.strings index 7503df59..f19c5866 100644 --- a/IceCubesApp/Resources/Localization/nb.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/nb.lproj/Localizable.strings @@ -367,8 +367,8 @@ // MARK: Package: Status "status.action.translate" = "Oversett"; -"status.action.translate-from-%@" = "Oversett fra %@"; "status.action.translated-label-%@" = "Oversatt ved hjelp av %@"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "Bokmerk"; "status.action.boost" = "Forsterk"; "status.action.boost-to-followers" = "Boost to Followers"; diff --git a/IceCubesApp/Resources/Localization/nl.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/nl.lproj/Localizable.strings index 88aaf2e8..6bf5915c 100644 --- a/IceCubesApp/Resources/Localization/nl.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/nl.lproj/Localizable.strings @@ -362,8 +362,8 @@ // MARK: Package: Status "status.action.translate" = "Vertaal"; -"status.action.translate-from-%@" = "Vertaal uit het %@"; "status.action.translated-label-%@" = "Vertaald met behulp van %@"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "Voeg bladwijzer toe"; "status.action.boost" = "Boost"; "status.action.boost-to-followers" = "Boost aan volgers"; diff --git a/IceCubesApp/Resources/Localization/pl.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/pl.lproj/Localizable.strings index 9645640f..afdf2dc0 100644 --- a/IceCubesApp/Resources/Localization/pl.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/pl.lproj/Localizable.strings @@ -363,8 +363,8 @@ // MARK: Package: Status "status.action.translate" = "Przetłumacz"; -"status.action.translate-from-%@" = "Przetłumacz tekst %@"; "status.action.translated-label-%@" = "Przetłumaczono za pomocą %@"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "Dodaj zakładkę"; "status.action.boost" = "Podbij"; "status.action.boost-to-followers" = "Podbij do obserwujących"; diff --git a/IceCubesApp/Resources/Localization/pt-BR.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/pt-BR.lproj/Localizable.strings index a75e1c78..805ce83b 100644 --- a/IceCubesApp/Resources/Localization/pt-BR.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/pt-BR.lproj/Localizable.strings @@ -367,8 +367,8 @@ // MARK: Package: Status "status.action.translate" = "Traduzir"; -"status.action.translate-from-%@" = "Traduzir do %@"; "status.action.translated-label-%@" = "Traduzir usando %@"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "Salvar"; "status.action.boost" = "Boost"; "status.action.boost-to-followers" = "Boost to Followers"; diff --git a/IceCubesApp/Resources/Localization/tr.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/tr.lproj/Localizable.strings index 4f98a516..716d2436 100644 --- a/IceCubesApp/Resources/Localization/tr.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/tr.lproj/Localizable.strings @@ -363,8 +363,8 @@ // MARK: Package: Status "status.action.translate" = "Tercüme et"; -"status.action.translate-from-%@" = "Tercüme et %@"; "status.action.translated-label-%@" = "%@ tarafından tercüme edildi"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "Yer İmi Ekle"; "status.action.boost" = "Yükselt"; "status.action.boost-to-followers" = "Boost to Followers"; diff --git a/IceCubesApp/Resources/Localization/zh-Hans.lproj/Localizable.strings b/IceCubesApp/Resources/Localization/zh-Hans.lproj/Localizable.strings index 888841bc..4ae0ffdd 100644 --- a/IceCubesApp/Resources/Localization/zh-Hans.lproj/Localizable.strings +++ b/IceCubesApp/Resources/Localization/zh-Hans.lproj/Localizable.strings @@ -366,8 +366,8 @@ // MARK: Package: Status "status.action.translate" = "翻译"; -"status.action.translate-from-%@" = "翻译 %@"; "status.action.translated-label-%@" = "由 %@ 翻译"; +"status.action.translated-label-from-%@-%@" = "Translated from %@ using %@"; "status.action.bookmark" = "书签"; "status.action.boost" = "转发"; "status.action.boost-to-followers" = "转发给粉丝"; diff --git a/Packages/Status/Sources/Status/Row/StatusRowViewModel.swift b/Packages/Status/Sources/Status/Row/StatusRowViewModel.swift index 3ca02552..52123ea2 100644 --- a/Packages/Status/Sources/Status/Row/StatusRowViewModel.swift +++ b/Packages/Status/Sources/Status/Row/StatusRowViewModel.swift @@ -312,10 +312,6 @@ public class StatusRowViewModel: ObservableObject { } func translate(userLang: String) async { - await translate(userLang: userLang, sourceLang: getStatusLang()) - } - - private func translate(userLang: String, sourceLang _: String?) async { do { withAnimation { isLoadingTranslation = true diff --git a/Packages/Status/Sources/Status/Row/Subviews/StatusRowContextMenu.swift b/Packages/Status/Sources/Status/Row/Subviews/StatusRowContextMenu.swift index 00c33aba..ca46994d 100644 --- a/Packages/Status/Sources/Status/Row/Subviews/StatusRowContextMenu.swift +++ b/Packages/Status/Sources/Status/Row/Subviews/StatusRowContextMenu.swift @@ -145,13 +145,7 @@ struct StatusRowContextMenu: View { await viewModel.translate(userLang: lang) } } label: { - if let statusLang = viewModel.getStatusLang(), - let languageName = Locale.current.localizedString(forLanguageCode: statusLang) - { - Label("status.action.translate-from-\(languageName)", systemImage: "captions.bubble") - } else { Label("status.action.translate", systemImage: "captions.bubble") - } } } diff --git a/Packages/Status/Sources/Status/Row/Subviews/StatusRowTranslateView.swift b/Packages/Status/Sources/Status/Row/Subviews/StatusRowTranslateView.swift index 461b1921..d80473c1 100644 --- a/Packages/Status/Sources/Status/Row/Subviews/StatusRowTranslateView.swift +++ b/Packages/Status/Sources/Status/Row/Subviews/StatusRowTranslateView.swift @@ -25,6 +25,15 @@ struct StatusRowTranslateView: View { } } + private func getLocalizedString(langCode: String, provider: String) -> String { + if let localizedLanguage = Locale.current.localizedString(forLanguageCode: langCode) { + let format = NSLocalizedString("status.action.translated-label-from-%@-%@", comment: "") + return String.localizedStringWithFormat(format, localizedLanguage, provider) + } else { + return "status.action.translated-label-\(provider)" + } + } + var body: some View { if !isInCaptureMode, let userLang = preferences.serverPreferences?.postLanguage, @@ -38,13 +47,7 @@ struct StatusRowTranslateView: View { if viewModel.isLoadingTranslation { ProgressView() } else { - if let statusLanguage = viewModel.getStatusLang(), - let languageName = Locale.current.localizedString(forLanguageCode: statusLanguage) - { - Text("status.action.translate-from-\(languageName)") - } else { Text("status.action.translate") - } } } .buttonStyle(.borderless) @@ -55,7 +58,7 @@ struct StatusRowTranslateView: View { VStack(alignment: .leading, spacing: 4) { Text(translation.content.asSafeMarkdownAttributedString) .font(.scaledBody) - Text("status.action.translated-label-\(translation.provider)") + Text(getLocalizedString(langCode: translation.detectedSourceLanguage, provider: translation.provider)) .font(.footnote) .foregroundColor(.gray) }