Move purchase strings from iOS to Core

Drop leading - from full version description. Let apps handle it.
This commit is contained in:
Davide De Rosa 2021-02-04 11:16:33 +01:00
parent e59b6c8723
commit b8d958ae84
27 changed files with 124 additions and 100 deletions

View File

@ -95,30 +95,6 @@ internal enum L10n {
}
}
}
internal enum Purchase {
/// Purchase
internal static let title = L10n.tr("App", "purchase.title")
internal enum Cells {
internal enum FullVersion {
/// - All providers (including future ones)\n%@
internal static func extraDescription(_ p1: Any) -> String {
return L10n.tr("App", "purchase.cells.full_version.extra_description", String(describing: p1))
}
}
internal enum Restore {
/// If you bought this app or feature in the past, you can restore your purchases and this screen won't show again.
internal static let description = L10n.tr("App", "purchase.cells.restore.description")
/// Restore purchases
internal static let title = L10n.tr("App", "purchase.cells.restore.title")
}
}
internal enum Sections {
internal enum Products {
/// Every product is a one-time purchase. Provider purchases do not include a VPN subscription.
internal static let footer = L10n.tr("App", "purchase.sections.products.footer")
}
}
}
internal enum Service {
internal enum Alerts {
internal enum Location {
@ -765,6 +741,30 @@ internal enum L10n {
}
}
}
internal enum Purchase {
/// Purchase
internal static let title = L10n.tr("Core", "purchase.title")
internal enum Cells {
internal enum FullVersion {
/// - All providers (including future ones)\n%@
internal static func extraDescription(_ p1: Any) -> String {
return L10n.tr("Core", "purchase.cells.full_version.extra_description", String(describing: p1))
}
}
internal enum Restore {
/// If you bought this app or feature in the past, you can restore your purchases and this screen won't show again.
internal static let description = L10n.tr("Core", "purchase.cells.restore.description")
/// Restore purchases
internal static let title = L10n.tr("Core", "purchase.cells.restore.title")
}
}
internal enum Sections {
internal enum Products {
/// Every product is a one-time purchase. Provider purchases do not include a VPN subscription.
internal static let footer = L10n.tr("Core", "purchase.sections.products.footer")
}
}
}
internal enum Reddit {
/// Did you know that Passepartout has a subreddit? Subscribe for updates or to discuss issues, features, new platforms or whatever you like.\n\nIt's also a great way to show you care about this project.
internal static let message = L10n.tr("Core", "reddit.message")

View File

@ -55,7 +55,7 @@ class PurchaseViewController: UITableViewController, StrongTableHost {
func reloadModel() {
model.clear()
model.add(.products)
model.setFooter(L10n.App.Purchase.Sections.Products.footer, forSection: .products)
model.setFooter(L10n.Core.Purchase.Sections.Products.footer, forSection: .products)
var rows: [RowType] = []
let pm = ProductManager.shared
@ -86,7 +86,7 @@ class PurchaseViewController: UITableViewController, StrongTableHost {
fatalError("No feature set for purchase")
}
title = L10n.App.Purchase.title
title = L10n.Core.Purchase.title
navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .stop, target: self, action: #selector(close))
isLoading = true
@ -211,8 +211,8 @@ extension PurchaseViewController {
case .restore:
cell.fill(
title: L10n.App.Purchase.Cells.Restore.title,
description: L10n.App.Purchase.Cells.Restore.description
title: L10n.Core.Purchase.Cells.Restore.title,
description: L10n.Core.Purchase.Cells.Restore.description
)
}
return cell

View File

@ -63,9 +63,3 @@
"shortcuts.edit.title" = "Kurzbefehle bearbeiten";
"shortcuts.edit.cells.add_shortcut.caption" = "Kurzbefehl hinzufügen";
"purchase.title" = "Kaufen";
"purchase.sections.products.footer" = "Jedes Produkt ist ein einmaliger Kauf. Der Kauf eines Providers beinhaltet kein VPN-Abonnement.";
"purchase.cells.full_version.extra_description" = "- Alle Anbieter (inklusive Zukünftige)\n%@";
"purchase.cells.restore.title" = "Einkäufe wiederherstellen";
"purchase.cells.restore.description" = "Wenn Sie diese App oder Funktion in der Vergangenheit gekauft haben, können Sie Ihre Einkäufe wiederherstellen und dieser Bildschirm wird nicht mehr angezeigt.";

View File

@ -63,9 +63,3 @@
"shortcuts.edit.title" = "Διαχείριση συντομεύσεων";
"shortcuts.edit.cells.add_shortcut.caption" = "Προσθήκη Συντόμευσης";
"purchase.title" = "Αγορά";
"purchase.sections.products.footer" = "Κάθε προϊόν είναι μια αγορά. Οι αγορές παρόχων δεν περιλαμβάνουν τη συνδρομή VPN.";
"purchase.cells.full_version.extra_description" = "- Όλοι οι πάροχοι (περιλαμβάνονται και οι μελλοντικοί)\n%@";
"purchase.cells.restore.title" = "Επαναφορά Αγορών";
"purchase.cells.restore.description" = "Εαν αγοράσατε την εφαρμογή στο παρελθόν, μπορείτε να κάνετε επαναφορά αγορών και αυτή η οθόνη δε θα εμφανιστεί ξανά.";

View File

@ -63,9 +63,3 @@
"shortcuts.edit.title" = "Manage shortcuts";
"shortcuts.edit.cells.add_shortcut.caption" = "Add shortcut";
"purchase.title" = "Purchase";
"purchase.sections.products.footer" = "Every product is a one-time purchase. Provider purchases do not include a VPN subscription.";
"purchase.cells.full_version.extra_description" = "- All providers (including future ones)\n%@";
"purchase.cells.restore.title" = "Restore purchases";
"purchase.cells.restore.description" = "If you bought this app or feature in the past, you can restore your purchases and this screen won't show again.";

View File

@ -63,9 +63,3 @@
"shortcuts.edit.title" = "Gestionar atajos";
"shortcuts.edit.cells.add_shortcut.caption" = "Añadir atajo";
"purchase.title" = "Compra";
"purchase.sections.products.footer" = "Cada producto es una compra única y no recurrente. La compra de un proveedor no incluye una suscripción al servicio.";
"purchase.cells.full_version.extra_description" = "- Todos los proveedores (incluye los futuros)\n%@";
"purchase.cells.restore.title" = "Restaurar compras";
"purchase.cells.restore.description" = "Si compraste esta aplicación o funcionalidad anteriormente, puedes restaurar tus compras y esta pantalla no volverá a aparecer.";

View File

@ -63,9 +63,3 @@
"shortcuts.edit.title" = "Gérer les raccourcis";
"shortcuts.edit.cells.add_shortcut.caption" = "Ajouter un raccourcis";
"purchase.title" = "Acheter";
"purchase.sections.products.footer" = "Chaque produit est un achat unique. Les achats n'incluent pas une souscription à un service de VPN.";
"purchase.cells.full_version.extra_description" = "- Tous les fournisseurs (incluant les prochains)\n%@";
"purchase.cells.restore.title" = "Restaurer les achats";
"purchase.cells.restore.description" = "Si vous avez acheté l'application ou une fonctionnalité dans le passé, vous pouvez restaurer les achats et ce message ne s'affichera plus.";

View File

@ -63,9 +63,3 @@
"shortcuts.edit.title" = "Gestisci comandi rapidi";
"shortcuts.edit.cells.add_shortcut.caption" = "Aggiungi comando rapido";
"purchase.title" = "Acquista";
"purchase.sections.products.footer" = "Ogni prodotto è un acquisto unico e non ricorrente. L'acquisto di un provider non include una sottoscrizione.";
"purchase.cells.full_version.extra_description" = "- Tutti i provider (inclusi quelli futuri)\n%@";
"purchase.cells.restore.title" = "Ripristina acquisti";
"purchase.cells.restore.description" = "Se hai comprato quest'applicazione o funzionalità in precedenza, puoi ripristinare i tuoi acquisti in modo che questa schermata non compaia più.";

View File

@ -63,9 +63,3 @@
"shortcuts.edit.title" = "Beheer snelkoppelingen";
"shortcuts.edit.cells.add_shortcut.caption" = "Voeg snelkoppeling toe";
"purchase.title" = "Aanschaffen";
"purchase.sections.products.footer" = "Elk product is een eenmalige aankoop. Aankopen van providers bevatten geen VPN-abonnement.";
"purchase.cells.full_version.extra_description" = "- Alle providers (inclusief toekomstige)\n%@";
"purchase.cells.restore.title" = "Herstel Aankopen";
"purchase.cells.restore.description" = "Als u deze app of functie in het verleden heeft gekocht, kunt u uw aankopen herstellen en wordt dit scherm niet meer getoond.";

View File

@ -63,9 +63,3 @@
"shortcuts.edit.title" = "Zarządzaj skrótami";
"shortcuts.edit.cells.add_shortcut.caption" = "Dodaj skrót";
"purchase.title" = "Kup";
"purchase.sections.products.footer" = "Każdy produkt to zakup jednorazowy. Kuipno usługodawcy nie zawiera subskrypcji VPN.";
"purchase.cells.full_version.extra_description" = "- Wszyscy usługodawcy (włączając przyszłych)\n%@";
"purchase.cells.restore.title" = "Przywróć zakup";
"purchase.cells.restore.description" = "Jeśli kupiłeś tą aplikację lub funkcję wcześniej, możesz przywrócić swoje zakupy i ten ekran nie będzie wyświetlony ponownie.";

View File

@ -63,9 +63,3 @@
"shortcuts.edit.title" = "Configuração de atalhos";
"shortcuts.edit.cells.add_shortcut.caption" = "Adicionar atalho";
"purchase.title" = "Comprar";
"purchase.sections.products.footer" = "Todo produto é uma compra única. As compras do fornecedor não incluem uma assinatura VPN.";
"purchase.cells.full_version.extra_description" = "- Todos os provedores (incluindo os futuros)\n%@";
"purchase.cells.restore.title" = "Restaurar compras";
"purchase.cells.restore.description" = "Se você comprou este aplicativo ou recurso no passado, pode restaurar suas compras e essa tela não será exibida novamente.";

View File

@ -63,9 +63,3 @@
"shortcuts.edit.title" = "Управлять командами";
"shortcuts.edit.cells.add_shortcut.caption" = "Создать команду";
"purchase.title" = "Покупка";
"purchase.sections.products.footer" = "Каждый продукт является разовой покупкой. Покупка провайдера не включает подписку на VPN.";
"purchase.cells.full_version.extra_description" = "- Все провайдеры (включая добавленных в будущем)\n%@";
"purchase.cells.restore.title" = "Восстановить покупки";
"purchase.cells.restore.description" = "Если Вы купили это приложение или совершили встроенные покупки в прошлом, вы можете восстановить ваши покупки, и этот баннер больше не появится.";

View File

@ -63,9 +63,3 @@
"shortcuts.edit.title" = "Hantera genvägar";
"shortcuts.edit.cells.add_shortcut.caption" = "Lägg till genväg";
"purchase.title" = "Köp";
"purchase.sections.products.footer" = "Varje produkt är ett engångsköp. Leverantörsköp inkluderar inte ett VPN-abonnemang.";
"purchase.cells.full_version.extra_description" = "- Alla leverantörer (inklusive framtida)\n%@";
"purchase.cells.restore.title" = "Återställ köp";
"purchase.cells.restore.description" = "Om du köpte den här appen eller funktionen tidigare kan du återställa dina inköp och den här skärmen visas inte igen.";

View File

@ -63,9 +63,3 @@
"shortcuts.edit.title" = "管理捷径";
"shortcuts.edit.cells.add_shortcut.caption" = "添加捷径";
"purchase.title" = "购买";
"purchase.sections.products.footer" = "每件产品都是一次性的购买。 购买的提供商并不包含VPN订阅。";
"purchase.cells.full_version.extra_description" = "- 所有的提供商(包括未来添加的)\n%@";
"purchase.cells.restore.title" = "恢复购买";
"purchase.cells.restore.description" = "如果你购买过此应用或其特征, 你可以恢复购买,此页面将不在显示。";

View File

@ -763,6 +763,30 @@ internal enum L10n {
}
}
}
internal enum Purchase {
/// Purchase
internal static let title = L10n.tr("Core", "purchase.title")
internal enum Cells {
internal enum FullVersion {
/// - All providers (including future ones)\n%@
internal static func extraDescription(_ p1: Any) -> String {
return L10n.tr("Core", "purchase.cells.full_version.extra_description", String(describing: p1))
}
}
internal enum Restore {
/// If you bought this app or feature in the past, you can restore your purchases and this screen won't show again.
internal static let description = L10n.tr("Core", "purchase.cells.restore.description")
/// Restore purchases
internal static let title = L10n.tr("Core", "purchase.cells.restore.title")
}
}
internal enum Sections {
internal enum Products {
/// Every product is a one-time purchase. Provider purchases do not include a VPN subscription.
internal static let footer = L10n.tr("Core", "purchase.sections.products.footer")
}
}
}
internal enum Reddit {
/// Did you know that Passepartout has a subreddit? Subscribe for updates or to discuss issues, features, new platforms or whatever you like.\n\nIt's also a great way to show you care about this project.
internal static let message = L10n.tr("Core", "reddit.message")

View File

@ -240,6 +240,12 @@
"shortcuts.edit.sections.all.header" = "Existierende Kurzbefehle";
"purchase.title" = "Kaufen";
"purchase.sections.products.footer" = "Jedes Produkt ist ein einmaliger Kauf. Der Kauf eines Providers beinhaltet kein VPN-Abonnement.";
"purchase.cells.full_version.extra_description" = "Alle Anbieter (inklusive Zukünftige)\n%@";
"purchase.cells.restore.title" = "Einkäufe wiederherstellen";
"purchase.cells.restore.description" = "Wenn Sie diese App oder Funktion in der Vergangenheit gekauft haben, können Sie Ihre Einkäufe wiederherstellen und dieser Bildschirm wird nicht mehr angezeigt.";
"donation.title" = "Spenden";
"donation.sections.one_time.header" = "Einmalig";
"donation.sections.one_time.footer" = "Wenn du dich erkenntlich zeigen möchtest für meine Arbeit, gibt es hier ein paar Beträge die du direkt spenden kannst.\n\nDu bezahlst pro Spende nur einmal und kannst mehrmals spenden wenn du möchtest.";

View File

@ -240,6 +240,12 @@
"shortcuts.edit.sections.all.header" = "Υπάρχουσες συντομεύσεις";
"purchase.title" = "Αγορά";
"purchase.sections.products.footer" = "Κάθε προϊόν είναι μια αγορά. Οι αγορές παρόχων δεν περιλαμβάνουν τη συνδρομή VPN.";
"purchase.cells.full_version.extra_description" = "Όλοι οι πάροχοι (περιλαμβάνονται και οι μελλοντικοί)\n%@";
"purchase.cells.restore.title" = "Επαναφορά Αγορών";
"purchase.cells.restore.description" = "Εαν αγοράσατε την εφαρμογή στο παρελθόν, μπορείτε να κάνετε επαναφορά αγορών και αυτή η οθόνη δε θα εμφανιστεί ξανά.";
"donation.title" = "Δωρεά";
"donation.sections.one_time.header" = "Μια Φορά";
"donation.sections.one_time.footer" = "Αν είστε χαρούμενη με τη δουλειά μου, εδώ είναι λίγα ποσά που μπορείτε να δώσετε αμέσως.\n\nΘα χρεωθείτε μόνο μία φορά και μπορείτε να δώσετε πολλές φορές.";

View File

@ -240,6 +240,12 @@
"shortcuts.edit.sections.all.header" = "Existing shortcuts";
"purchase.title" = "Purchase";
"purchase.sections.products.footer" = "Every product is a one-time purchase. Provider purchases do not include a VPN subscription.";
"purchase.cells.full_version.extra_description" = "All providers (including future ones)\n%@";
"purchase.cells.restore.title" = "Restore purchases";
"purchase.cells.restore.description" = "If you bought this app or feature in the past, you can restore your purchases and this screen won't show again.";
"donation.title" = "Donate";
"donation.sections.one_time.header" = "One time";
"donation.sections.one_time.footer" = "If you want to display gratitude for my free work, here are a couple amounts you can donate instantly.\n\nYou will only be charged once per donation, and you can donate multiple times.";

View File

@ -240,6 +240,12 @@
"shortcuts.edit.sections.all.header" = "Atajos existentes";
"purchase.title" = "Compra";
"purchase.sections.products.footer" = "Cada producto es una compra única y no recurrente. La compra de un proveedor no incluye una suscripción al servicio.";
"purchase.cells.full_version.extra_description" = "Todos los proveedores (incluye los futuros)\n%@";
"purchase.cells.restore.title" = "Restaurar compras";
"purchase.cells.restore.description" = "Si compraste esta aplicación o funcionalidad anteriormente, puedes restaurar tus compras y esta pantalla no volverá a aparecer.";
"donation.title" = "Donar";
"donation.sections.one_time.header" = "Única";
"donation.sections.one_time.footer" = "Si te gusta mi trabajo, aquí puedes colaborar con una donación.\n\nSólo se te cobrará una vez por donación, y puedes donar las veces que quieras.";

View File

@ -240,6 +240,12 @@
"shortcuts.edit.sections.all.header" = "Raccourcis existants";
"purchase.title" = "Acheter";
"purchase.sections.products.footer" = "Chaque produit est un achat unique. Les achats n'incluent pas une souscription à un service de VPN.";
"purchase.cells.full_version.extra_description" = "Tous les fournisseurs (incluant les prochains)\n%@";
"purchase.cells.restore.title" = "Restaurer les achats";
"purchase.cells.restore.description" = "Si vous avez acheté l'application ou une fonctionnalité dans le passé, vous pouvez restaurer les achats et ce message ne s'affichera plus.";
"donation.title" = "Faire un don";
"donation.sections.one_time.header" = "Une seule fois";
"donation.sections.one_time.footer" = "Si vous voulez manifester votre gratitude envers mon travail bénévole, voici certains montants pour faire un don instantanément.\n\n Vous n'allez être chargé qu'une seule fois par don et vous pouvez faire un don plus d'une fois.";

View File

@ -240,6 +240,12 @@
"shortcuts.edit.sections.all.header" = "Comandi esistenti";
"purchase.title" = "Acquista";
"purchase.sections.products.footer" = "Ogni prodotto è un acquisto unico e non ricorrente. L'acquisto di un provider non include una sottoscrizione.";
"purchase.cells.full_version.extra_description" = "Tutti i provider (inclusi quelli futuri)\n%@";
"purchase.cells.restore.title" = "Ripristina acquisti";
"purchase.cells.restore.description" = "Se hai comprato quest'applicazione o funzionalità in precedenza, puoi ripristinare i tuoi acquisti in modo che questa schermata non compaia più.";
"donation.title" = "Donazione";
"donation.sections.one_time.header" = "Unica";
"donation.sections.one_time.footer" = "Se vuoi mostrare gratitudine per il mio lavoro a titolo gratuito, qui trovi varie somme da donare all'istante.\n\nLa donazione ti sarà addebitata solo una volta, e puoi effettuare più donazioni.";

View File

@ -240,6 +240,12 @@
"shortcuts.edit.sections.all.header" = "Bestaande snelkoppelingen";
"purchase.title" = "Aanschaffen";
"purchase.sections.products.footer" = "Elk product is een eenmalige aankoop. Aankopen van providers bevatten geen VPN-abonnement.";
"purchase.cells.full_version.extra_description" = "Alle providers (inclusief toekomstige)\n%@";
"purchase.cells.restore.title" = "Herstel Aankopen";
"purchase.cells.restore.description" = "Als u deze app of functie in het verleden heeft gekocht, kunt u uw aankopen herstellen en wordt dit scherm niet meer getoond.";
"donation.title" = "Donatie";
"donation.sections.one_time.header" = "Eenmalig";
"donation.sections.one_time.footer" = "Als je dankbaarheid wilt tonen voor mijn gratis werk, zijn hier een paar bedragen die je direct kunt doneren.\n\nHet bedrag wordt slechts één keer per donatie in rekening gebracht en u kunt meerdere keren doneren.";

View File

@ -240,6 +240,12 @@
"shortcuts.edit.sections.all.header" = "Istniejące skróty";
"purchase.title" = "Kup";
"purchase.sections.products.footer" = "Każdy produkt to zakup jednorazowy. Kuipno usługodawcy nie zawiera subskrypcji VPN.";
"purchase.cells.full_version.extra_description" = "Wszyscy usługodawcy (włączając przyszłych)\n%@";
"purchase.cells.restore.title" = "Przywróć zakup";
"purchase.cells.restore.description" = "Jeśli kupiłeś tą aplikację lub funkcję wcześniej, możesz przywrócić swoje zakupy i ten ekran nie będzie wyświetlony ponownie.";
"donation.title" = "Dotacja";
"donation.sections.one_time.header" = "Jeden raz";
"donation.sections.one_time.footer" = "Jeśli chcesz docenić moją pracę, poniżej znajdziesz kilka kwot do wyboru dotacji.\n\nTwoje konto zostanie obciążone tylko raz na jedną dotację, możesz wysłać dotację kilka razy.";

View File

@ -240,6 +240,12 @@
"shortcuts.edit.sections.all.header" = "Atalhos existentes";
"purchase.title" = "Comprar";
"purchase.sections.products.footer" = "Todo produto é uma compra única. As compras do fornecedor não incluem uma assinatura VPN.";
"purchase.cells.full_version.extra_description" = "Todos os provedores (incluindo os futuros)\n%@";
"purchase.cells.restore.title" = "Restaurar compras";
"purchase.cells.restore.description" = "Se você comprou este aplicativo ou recurso no passado, pode restaurar suas compras e essa tela não será exibida novamente.";
"donation.title" = "Doar";
"donation.sections.one_time.header" = "Uma vez";
"donation.sections.one_time.footer" = "Se você deseja mostrar gratidão pelo meu trabalho, aqui estão alguns valores do qual você pode contribuir.\n\nVocé só será cobrado uma única vez, ou doar mais vezes caso desejar.";

View File

@ -240,6 +240,12 @@
"shortcuts.edit.sections.all.header" = "Существующие команды";
"purchase.title" = "Покупка";
"purchase.sections.products.footer" = "Каждый продукт является разовой покупкой. Покупка провайдера не включает подписку на VPN.";
"purchase.cells.full_version.extra_description" = "Все провайдеры (включая добавленных в будущем)\n%@";
"purchase.cells.restore.title" = "Восстановить покупки";
"purchase.cells.restore.description" = "Если Вы купили это приложение или совершили встроенные покупки в прошлом, вы можете восстановить ваши покупки, и этот баннер больше не появится.";
"donation.title" = "Пожертвовать";
"donation.sections.one_time.header" = "Один раз";
"donation.sections.one_time.footer" = "Если Вы хотите поблагодарить мою бесплатную работу, здесь есть несколько сумм, которые Вы можете пожертвовать прямо сейчас.\n\nСумма будет списана только один раз, а Вы можете пожертвовать несколько раз.";

View File

@ -240,6 +240,12 @@
"shortcuts.edit.sections.all.header" = "Befintliga genvägar";
"purchase.title" = "Köp";
"purchase.sections.products.footer" = "Varje produkt är ett engångsköp. Leverantörsköp inkluderar inte ett VPN-abonnemang.";
"purchase.cells.full_version.extra_description" = "Alla leverantörer (inklusive framtida)\n%@";
"purchase.cells.restore.title" = "Återställ köp";
"purchase.cells.restore.description" = "Om du köpte den här appen eller funktionen tidigare kan du återställa dina inköp och den här skärmen visas inte igen.";
"donation.title" = "Donera";
"donation.sections.one_time.header" = "En gång";
"donation.sections.one_time.footer" = "Om du vill visa tacksamhet för mitt fria arbete, här är några belopp du kan donera direkt. \n\nDu betalas endast en gång per donation, och du kan donera flera gånger. ";

View File

@ -240,6 +240,12 @@
"shortcuts.edit.sections.all.header" = "已经存在的捷径";
"purchase.title" = "购买";
"purchase.sections.products.footer" = "每件产品都是一次性的购买。 购买的提供商并不包含VPN订阅。";
"purchase.cells.full_version.extra_description" = "所有的提供商(包括未来添加的)\n%@";
"purchase.cells.restore.title" = "恢复购买";
"purchase.cells.restore.description" = "如果你购买过此应用或其特征, 你可以恢复购买,此页面将不在显示。";
"donation.title" = "捐助";
"donation.sections.one_time.header" = "一次性";
"donation.sections.one_time.footer" = "如果你想对我免费的工作表示感谢,这里是一些你可以捐助的数额。\n\n每次捐助只需要付款一次你可以捐助多次。";