diff --git a/CHANGELOG.md b/CHANGELOG.md index 4cc95bd2..1bcb1176 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,8 @@ Rules: - Locked Word, Excel, PowerPoint, Pages, Numbers and Keynote files open with their password. +- Lite sells a yearly pass for €3: no ads and all Pro features. The heart on + the start screen, "Support the app" in the menu and the Pro gate offer it. ### Changed diff --git a/OpenDocumentReader.xcodeproj/xcshareddata/xcschemes/ODR Lite.xcscheme b/OpenDocumentReader.xcodeproj/xcshareddata/xcschemes/ODR Lite.xcscheme index 57d52da8..89558c2b 100644 --- a/OpenDocumentReader.xcodeproj/xcshareddata/xcschemes/ODR Lite.xcscheme +++ b/OpenDocumentReader.xcodeproj/xcshareddata/xcschemes/ODR Lite.xcscheme @@ -50,6 +50,9 @@ ReferencedContainer = "container:OpenDocumentReader.xcodeproj"> + + \(NSLocalizedString("loading", comment: ""))") diff --git a/OpenDocumentReader/Features.swift b/OpenDocumentReader/Features.swift index 27b20187..49b5766d 100644 --- a/OpenDocumentReader/Features.swift +++ b/OpenDocumentReader/Features.swift @@ -6,7 +6,12 @@ enum Features { /// The ad banner and the consent form in front of it: Lite only. static var withAds: Bool { LINKS_ADS } - /// Formatting, paragraph changes and pdf marks: Pro only. The Lite edit - /// screenshot turns them off, because it is taken from the Pro build. - static var advancedEditing: Bool { ADVANCED_EDITING && ScreenshotMode.screen != .editLite } + /// Whether a document shows the ad banner: Lite, until the yearly pass is active. + static var showsAds: Bool { withAds && !Pass.shared.isActive } + + /// Formatting, paragraph changes and pdf marks: Pro, or Lite with the yearly pass. The Lite + /// edit screenshot turns them off, because it is taken from the Pro build. + static var advancedEditing: Bool { + (ADVANCED_EDITING || Pass.shared.isActive) && ScreenshotMode.screen != .editLite + } } diff --git a/OpenDocumentReader/Pass.swift b/OpenDocumentReader/Pass.swift new file mode 100644 index 00000000..2156941e --- /dev/null +++ b/OpenDocumentReader/Pass.swift @@ -0,0 +1,142 @@ +import StoreKit +import UIKit + +/// The yearly pass that Lite sells: no ads and all Pro features, for as long as the App Store +/// reports the subscription. Pro sells nothing, so there the pass is never active. +final class Pass { + + static let shared = Pass() + + /// The subscription Lite sells, the same id as on Android. It renews every year. + static let productID = "pro_pass" + + /// Posted on the main thread when the pass becomes active. `userInfo["purchased"]` is true + /// after a purchase from the sheet, and false when the App Store gives back an earlier one. + static let didUnlock = Notification.Name("PassDidUnlock") + + /// What the App Store last said, kept so that a launch without the network keeps the pass. + private static let activeKey = "passActive" + + /// Read from any thread: `Features.advancedEditing` asks while a document translates. + var isActive: Bool { + Features.withAds && UserDefaults.standard.bool(forKey: Pass.activeKey) + } + + /// Whether "Support the app" is offered: in Lite, until the pass is active. + var offersSupport: Bool { + Features.withAds && !isActive + } + + /// The product, once the App Store gives it. It carries the price. + private(set) var product: Product? + + private var updates: Task? + + private init() {} + + /// Asks the App Store at each launch, because a pass ends. Lite only. + func start() { + guard Features.withAds, updates == nil else { return } + + // a purchase on another device, a renewal, or a refund + updates = Task.detached { [weak self] in + for await result in Transaction.updates { + guard case .verified(let transaction) = result else { continue } + + await transaction.finish() + await self?.refresh(purchased: false) + } + } + + Task { + await refresh(purchased: false) + _ = await loadProduct() + } + } + + /// The product with its price, asked again if the App Store did not give it before. + @MainActor + func loadProduct() async -> Product? { + if let product { return product } + + do { + product = try await Product.products(for: [Pass.productID]).first + } catch { + CrashManager.shared.log(error) + } + + return product + } + + enum PurchaseOutcome { + case unlocked + /// The user cancelled, or the purchase waits for approval, for example by a parent. + case notNow + /// No product: the App Store is not reachable, or the user is not signed in. + case unavailable + } + + @MainActor + func purchase() async -> PurchaseOutcome { + guard let product = await loadProduct() else { return .unavailable } + + do { + switch try await product.purchase() { + case .success(.verified(let transaction)): + await transaction.finish() + await refresh(purchased: true) + + return isActive ? .unlocked : .notNow + case .success(.unverified(_, let error)): + CrashManager.shared.log(error) + + return .notNow + case .userCancelled, .pending: + return .notNow + @unknown default: + return .notNow + } + } catch { + CrashManager.shared.log(error) + + return .unavailable + } + } + + /// Syncs with the App Store, for a user who bought the pass on another device or before a + /// reinstall. Returns whether the pass is active afterwards. + @MainActor + func restore() async -> Bool { + do { + try await AppStore.sync() + } catch { + // the user cancelled the sign-in, or there is no network + CrashManager.shared.log(error) + } + + await refresh(purchased: false) + + return isActive + } + + /// Reads the current entitlements, and tells the app if the pass just became active. An + /// ended pass only turns the flag off: the ads come back with the next document. + @MainActor + private func refresh(purchased: Bool) async { + var active = false + for await result in Transaction.currentEntitlements { + guard case .verified(let transaction) = result else { continue } + + if transaction.productID == Pass.productID, transaction.revocationDate == nil { + active = true + } + } + + let wasActive = isActive + UserDefaults.standard.set(active, forKey: Pass.activeKey) + + if active, !wasActive { + NotificationCenter.default.post(name: Pass.didUnlock, object: self, userInfo: ["purchased": purchased]) + } + } +} diff --git a/OpenDocumentReader/PassViewController.swift b/OpenDocumentReader/PassViewController.swift new file mode 100644 index 00000000..76724a16 --- /dev/null +++ b/OpenDocumentReader/PassViewController.swift @@ -0,0 +1,263 @@ +import StoreKit +import UIKit + +/// Offers the yearly pass, with the Pro app beside it for a single payment. Lite only. From the +/// gate, `featureMessage` says what the user just tried; nil from every other way in. +final class PassViewController: UIViewController { + + /// What the user just tried, from the gate. Also the name analytics reports it under. + struct Feature { + let name: String + let message: String + } + + private let feature: Feature? + + /// After the sheet is gone: open the Pro app on the App Store. + var onGetPro: (() -> Void)? + + private let subscribeButton = UIButton(type: .system) + private let restoreButton = UIButton(type: .system) + + init(feature: Feature?) { + self.feature = feature + + super.init(nibName: nil, bundle: nil) + + modalPresentationStyle = .pageSheet + sheetPresentationController?.detents = [.medium(), .large()] + sheetPresentationController?.prefersGrabberVisible = true + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) is not used") + } + + /// Shows the sheet over `host`, and reports it the way OpenDocument.droid does. + static func present(from host: UIViewController, feature: Feature?, onGetPro: @escaping () -> Void) { + if let feature { + AnalyticsManager.shared.report("pro_gate_shown", parameters: ["feature": feature.name]) + } else { + AnalyticsManager.shared.report("pass_shown") + } + + let sheet = PassViewController(feature: feature) + sheet.onGetPro = onGetPro + + host.present(sheet, animated: true) + } + + override func viewDidLoad() { + super.viewDidLoad() + + view.backgroundColor = .systemBackground + + let titleLabel = label( + NSLocalizedString(feature == nil ? "pass_title" : "pro_feature_title", comment: ""), + font: .preferredFont(forTextStyle: .title2).bold, color: .label) + titleLabel.accessibilityTraits = .header + + var subscribe = UIButton.Configuration.filled() + subscribe.title = NSLocalizedString("pass_buy_no_price", comment: "") + subscribe.buttonSize = .large + subscribeButton.configuration = subscribe + subscribeButton.addTarget(self, action: #selector(subscribeTapped), for: .touchUpInside) + + var pro = UIButton.Configuration.bordered() + pro.title = NSLocalizedString("pass_get_pro", comment: "") + pro.buttonSize = .large + let proButton = UIButton(configuration: pro) + proButton.addTarget(self, action: #selector(getProTapped), for: .touchUpInside) + + var notNow = UIButton.Configuration.plain() + notNow.title = NSLocalizedString("not_now", comment: "") + let notNowButton = UIButton(configuration: notNow) + notNowButton.addTarget(self, action: #selector(notNowTapped), for: .touchUpInside) + + // the App Store asks for these next to a subscription + restoreButton.configuration = smallLink(NSLocalizedString("pass_restore", comment: "")) + restoreButton.addTarget(self, action: #selector(restoreTapped), for: .touchUpInside) + let termsButton = UIButton(configuration: smallLink(NSLocalizedString("pass_terms_of_use", comment: ""))) + termsButton.addTarget(self, action: #selector(termsTapped), for: .touchUpInside) + let privacyButton = UIButton(configuration: smallLink(NSLocalizedString("pass_privacy_policy", comment: ""))) + privacyButton.addTarget(self, action: #selector(privacyTapped), for: .touchUpInside) + + let links = UIStackView(arrangedSubviews: [restoreButton, termsButton, privacyButton]) + links.axis = .horizontal + links.distribution = .equalCentering + + var rows: [UIView] = [titleLabel] + if let feature { + rows.append(label(feature.message, font: .preferredFont(forTextStyle: .body), color: .label)) + } + rows += [ + label( + NSLocalizedString("pass_why", comment: ""), font: .preferredFont(forTextStyle: .body), + color: .secondaryLabel), + subscribeButton, + label( + NSLocalizedString("pass_terms", comment: ""), font: .preferredFont(forTextStyle: .footnote), + color: .secondaryLabel, centered: true), + proButton, + notNowButton, + links, + ] + + let stack = UIStackView(arrangedSubviews: rows) + stack.axis = .vertical + stack.spacing = 12 + stack.setCustomSpacing(4, after: subscribeButton) + stack.translatesAutoresizingMaskIntoConstraints = false + + let scroll = UIScrollView() + scroll.translatesAutoresizingMaskIntoConstraints = false + scroll.addSubview(stack) + view.addSubview(scroll) + + NSLayoutConstraint.activate([ + scroll.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), + scroll.bottomAnchor.constraint(equalTo: view.bottomAnchor), + scroll.leadingAnchor.constraint(equalTo: view.leadingAnchor), + scroll.trailingAnchor.constraint(equalTo: view.trailingAnchor), + + stack.topAnchor.constraint(equalTo: scroll.contentLayoutGuide.topAnchor, constant: 28), + stack.bottomAnchor.constraint(equalTo: scroll.contentLayoutGuide.bottomAnchor, constant: -16), + stack.leadingAnchor.constraint(equalTo: scroll.frameLayoutGuide.leadingAnchor, constant: 24), + stack.trailingAnchor.constraint(equalTo: scroll.frameLayoutGuide.trailingAnchor, constant: -24), + ]) + + // the button is up from the start, and shows the price once the App Store gives one + Task { [weak self] in + guard let product = await Pass.shared.loadProduct(), let self else { return } + + self.subscribeButton.configuration?.title = String( + format: NSLocalizedString("pass_buy", comment: ""), product.displayPrice) + } + } + + private func label(_ text: String, font: UIFont, color: UIColor, centered: Bool = false) -> UILabel { + let label = UILabel() + label.text = text + label.font = font + label.textColor = color + label.numberOfLines = 0 + label.adjustsFontForContentSizeCategory = true + label.textAlignment = centered ? .center : .natural + + return label + } + + private func smallLink(_ title: String) -> UIButton.Configuration { + var configuration = UIButton.Configuration.plain() + configuration.title = title + configuration.buttonSize = .mini + configuration.contentInsets = NSDirectionalEdgeInsets(top: 4, leading: 2, bottom: 4, trailing: 2) + configuration.titleTextAttributesTransformer = UIConfigurationTextAttributesTransformer { attributes in + var attributes = attributes + attributes.font = .preferredFont(forTextStyle: .caption1) + + return attributes + } + + return configuration + } + + // MARK: - actions + + private func reportGateTapped() { + // the gate's purchase, under the name OpenDocument.droid reports it + if let feature { + AnalyticsManager.shared.report("pro_gate_tapped", parameters: ["feature": feature.name]) + } + } + + @objc private func subscribeTapped() { + AnalyticsManager.shared.report("pass_tapped", parameters: ["feature": feature?.name ?? "none"]) + reportGateTapped() + + subscribeButton.configuration?.showsActivityIndicator = true + subscribeButton.isEnabled = false + + Task { [weak self] in + let outcome = await Pass.shared.purchase() + + guard let self else { return } + + self.subscribeButton.configuration?.showsActivityIndicator = false + self.subscribeButton.isEnabled = true + + switch outcome { + case .unlocked: + // the screen below says thank you, see Pass.didUnlock + self.dismiss(animated: true) + case .notNow: + break + case .unavailable: + self.say(NSLocalizedString("pass_unavailable", comment: "")) + } + } + } + + @objc private func getProTapped() { + reportGateTapped() + + let onGetPro = self.onGetPro + dismiss(animated: true) { + onGetPro?() + } + } + + @objc private func notNowTapped() { + dismiss(animated: true) + } + + @objc private func restoreTapped() { + AnalyticsManager.shared.report("pass_restore_tapped") + + restoreButton.isEnabled = false + + Task { [weak self] in + let restored = await Pass.shared.restore() + + guard let self else { return } + + self.restoreButton.isEnabled = true + + if restored { + // the screen below says that the purchase is restored, see Pass.didUnlock + self.dismiss(animated: true) + } else { + self.say(NSLocalizedString("pass_nothing_to_restore", comment: "")) + } + } + } + + @objc private func termsTapped() { + open("https://www.apple.com/legal/internet-services/itunes/dev/stdeula/") + } + + @objc private func privacyTapped() { + open("https://opendocument.app/privacy") + } + + private func open(_ address: String) { + guard let url = URL(string: address) else { return } + + UIApplication.shared.open(url) + } + + private func say(_ message: String) { + let alert = UIAlertController(title: nil, message: message, preferredStyle: .alert) + alert.addAction(UIAlertAction(title: NSLocalizedString("ok", comment: ""), style: .default)) + + present(alert, animated: true) + } +} + +extension UIFont { + fileprivate var bold: UIFont { + guard let descriptor = fontDescriptor.withSymbolicTraits(.traitBold) else { return self } + + return UIFont(descriptor: descriptor, size: 0) + } +} diff --git a/OpenDocumentReader/ca.lproj/Localizable.strings b/OpenDocumentReader/ca.lproj/Localizable.strings index 7d74ddb1..57333cfc 100644 --- a/OpenDocumentReader/ca.lproj/Localizable.strings +++ b/OpenDocumentReader/ca.lproj/Localizable.strings @@ -163,11 +163,10 @@ "edit_refused_sheet_cut" = "Aquest full és massa gran per mostrar-lo sencer. Només es pot editar la part que es mostra."; /* What Pro adds, shown in the Lite app */ -"pro_feature_title" = "Part de Pro"; -"pro_feature_formatting" = "La negreta, la cursiva, els colors i la mida del text, i afegir o unir paràgrafs, formen part d’OpenDocument Reader Pro. El marcador hi és a totes les edicions."; -"pro_feature_pdf" = "Subratllar, ratllar i dibuixar en un PDF formen part d’OpenDocument Reader Pro. El marcador hi és a totes les edicions."; -"pro_feature_structure" = "Afegir i suprimir files i columnes forma part d’OpenDocument Reader Pro. El marcador hi és a totes les edicions."; -"pro_feature_formulas" = "Escriure fórmules en un full de càlcul forma part d’OpenDocument Reader Pro. El marcador hi és a totes les edicions."; +"pro_feature_title" = "Funció Pro"; +"pro_feature_formatting" = "La negreta, la cursiva, els colors, la mida del text i els paràgrafs nous o units són funcions Pro. El ressaltador és gratuït."; +"pro_feature_pdf" = "Subratllar, ratllar i dibuixar en un PDF són funcions Pro. El ressaltador és gratuït."; +"pro_feature_sheet" = "La negreta, la cursiva, els colors, la mida del text, l'alineació, les fórmules i inserir o suprimir files i columnes són funcions Pro. L'emplenament és gratuït."; "not_now" = "Ara no"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ pt"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "Doneu suport a OpenDocument Reader"; +"pass_why" = "OpenDocument Reader el fa un equip petit. L'aplicació no us fa cap seguiment, però els anuncis de la versió gratuïta sí que en poden fer. La vostra compra elimina els anuncis i finança les actualitzacions i les funcions noves."; +"pass_buy" = "Subscriu-te per %@ l'any"; +"pass_buy_no_price" = "Subscriu-te"; +"pass_get_pro" = "Paga una vegada: obtén l'aplicació Pro"; +"pass_unlocked" = "Gràcies! Les funcions Pro ja estan activades."; +"pass_unlocked_editing" = "Gràcies! Sortiu del mode d'edició per fer servir totes les eines Pro."; +"pass_restored" = "S'ha restaurat la vostra compra. Les funcions Pro estan activades."; +"pass_restored_editing" = "S'ha restaurat la vostra compra. Sortiu del mode d'edició per fer servir totes les eines Pro."; +"pass_on_editing" = "Les funcions Pro estan activades. Sortiu del mode d'edició per fer servir totes les eines Pro."; +"menu_support" = "Doneu suport a l'aplicació"; +"pass_terms" = "Sense anuncis i amb totes les funcions Pro durant 1 any. Es renova cada any. Cancel·leu-la quan vulgueu a l'App Store."; +"pass_unavailable" = "L'App Store no està disponible. Inicieu la sessió a l'App Store i torneu-ho a provar."; +"pass_restore" = "Restaura la compra"; +"pass_nothing_to_restore" = "No s'ha trobat cap subscripció activa."; +"pass_terms_of_use" = "Condicions d'ús"; +"pass_privacy_policy" = "Política de privadesa"; diff --git a/OpenDocumentReader/cs.lproj/Localizable.strings b/OpenDocumentReader/cs.lproj/Localizable.strings index 75d9fe5c..0654b59b 100644 --- a/OpenDocumentReader/cs.lproj/Localizable.strings +++ b/OpenDocumentReader/cs.lproj/Localizable.strings @@ -163,11 +163,10 @@ "edit_refused_sheet_cut" = "Tento list je příliš velký na úplné zobrazení. Upravit lze jen zobrazenou část."; /* What Pro adds, shown in the Lite app */ -"pro_feature_title" = "Součást Pro"; -"pro_feature_formatting" = "Tučné písmo, kurzíva, barvy a velikost textu a přidávání nebo spojování odstavců jsou součástí OpenDocument Reader Pro. Zvýrazňovač je v každé edici."; -"pro_feature_pdf" = "Podtržení, přeškrtnutí a kreslení v PDF jsou součástí OpenDocument Reader Pro. Zvýrazňovač je v každé edici."; -"pro_feature_structure" = "Přidávání a odstraňování řádků a sloupců je součástí OpenDocument Reader Pro. Zvýrazňovač je v každé edici."; -"pro_feature_formulas" = "Zadávání vzorců do tabulky je součástí OpenDocument Reader Pro. Zvýrazňovač je v každé edici."; +"pro_feature_title" = "Funkce Pro"; +"pro_feature_formatting" = "Tučné písmo, kurzíva, barvy, velikost textu a nové nebo spojené odstavce jsou funkce Pro. Zvýrazňovač je zdarma."; +"pro_feature_pdf" = "Podtržení, přeškrtnutí a kreslení v PDF jsou funkce Pro. Zvýrazňovač je zdarma."; +"pro_feature_sheet" = "Tučné písmo, kurzíva, barvy, velikost textu, zarovnání, vzorce a vkládání nebo odstraňování řádků a sloupců jsou funkce Pro. Výplň je zdarma."; "not_now" = "Teď ne"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ pt"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "Podpořte OpenDocument Reader"; +"pass_why" = "OpenDocument Reader vytváří malý tým. Aplikace vás nesleduje, ale reklamy v bezplatné verzi mohou. Váš nákup odstraní reklamy a zaplatí aktualizace a nové funkce."; +"pass_buy" = "Předplatit za %@ ročně"; +"pass_buy_no_price" = "Předplatit"; +"pass_get_pro" = "Zaplaťte jednou: získejte aplikaci Pro"; +"pass_unlocked" = "Děkujeme! Funkce Pro jsou nyní zapnuté."; +"pass_unlocked_editing" = "Děkujeme! Ukončete režim úprav, abyste mohli používat všechny nástroje Pro."; +"pass_restored" = "Váš nákup byl obnoven. Funkce Pro jsou zapnuté."; +"pass_restored_editing" = "Váš nákup byl obnoven. Ukončete režim úprav, abyste mohli používat všechny nástroje Pro."; +"pass_on_editing" = "Funkce Pro jsou zapnuté. Ukončete režim úprav, abyste mohli používat všechny nástroje Pro."; +"menu_support" = "Podpořit aplikaci"; +"pass_terms" = "Bez reklam a se všemi funkcemi Pro na 1 rok. Obnovuje se každý rok. Zrušit můžete kdykoli v App Storu."; +"pass_unavailable" = "App Store není k dispozici. Přihlaste se do App Storu a zkuste to znovu."; +"pass_restore" = "Obnovit nákup"; +"pass_nothing_to_restore" = "Nebylo nalezeno žádné aktivní předplatné."; +"pass_terms_of_use" = "Podmínky použití"; +"pass_privacy_policy" = "Zásady ochrany osobních údajů"; diff --git a/OpenDocumentReader/da.lproj/Localizable.strings b/OpenDocumentReader/da.lproj/Localizable.strings index 9bf1854f..ab46a0c7 100644 --- a/OpenDocumentReader/da.lproj/Localizable.strings +++ b/OpenDocumentReader/da.lproj/Localizable.strings @@ -163,11 +163,10 @@ "edit_refused_sheet_cut" = "Dette ark er for stort til at blive vist helt. Kun den viste del kan redigeres."; /* What Pro adds, shown in the Lite app */ -"pro_feature_title" = "En del af Pro"; -"pro_feature_formatting" = "Fed, kursiv, farver og tekststørrelse samt tilføjelse eller sammenføjning af afsnit er en del af OpenDocument Reader Pro. Overstregningstuschen er med i alle udgaver."; -"pro_feature_pdf" = "Understregning, gennemstregning og tegning i en PDF er en del af OpenDocument Reader Pro. Overstregningstuschen er med i alle udgaver."; -"pro_feature_structure" = "Indsættelse og sletning af rækker og kolonner er en del af OpenDocument Reader Pro. Overstregningstuschen er med i alle udgaver."; -"pro_feature_formulas" = "At skrive formler i et regneark er en del af OpenDocument Reader Pro. Overstregningstuschen er med i alle udgaver."; +"pro_feature_title" = "Pro-funktion"; +"pro_feature_formatting" = "Fed, kursiv, farver, tekststørrelse samt nye eller sammenlagte afsnit er Pro-funktioner. Fremhævning er gratis."; +"pro_feature_pdf" = "Understregning, gennemstregning og tegning på en PDF er Pro-funktioner. Fremhævning er gratis."; +"pro_feature_sheet" = "Fed, kursiv, farver, tekststørrelse, justering, formler samt indsættelse og sletning af rækker og kolonner er Pro-funktioner. Fyld er gratis."; "not_now" = "Ikke nu"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ pt"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "Støt OpenDocument Reader"; +"pass_why" = "Et lille team laver OpenDocument Reader. Appen sporer dig ikke, men det kan reklamerne i den gratis version. Dit køb fjerner reklamerne og betaler for opdateringer og nye funktioner."; +"pass_buy" = "Abonner for %@ om året"; +"pass_buy_no_price" = "Abonner"; +"pass_get_pro" = "Betal én gang: få Pro-appen"; +"pass_unlocked" = "Tak! Pro-funktionerne er nu slået til."; +"pass_unlocked_editing" = "Tak! Afslut redigeringstilstanden for at bruge alle Pro-værktøjer."; +"pass_restored" = "Dit køb er gendannet. Pro-funktionerne er slået til."; +"pass_restored_editing" = "Dit køb er gendannet. Afslut redigeringstilstanden for at bruge alle Pro-værktøjer."; +"pass_on_editing" = "Pro-funktionerne er slået til. Afslut redigeringstilstanden for at bruge alle Pro-værktøjer."; +"menu_support" = "Støt appen"; +"pass_terms" = "Ingen reklamer og alle Pro-funktioner i 1 år. Fornyes hvert år. Opsig når som helst i App Store."; +"pass_unavailable" = "App Store er ikke tilgængelig. Log ind i App Store, og prøv igen."; +"pass_restore" = "Gendan køb"; +"pass_nothing_to_restore" = "Der blev ikke fundet noget aktivt abonnement."; +"pass_terms_of_use" = "Brugsvilkår"; +"pass_privacy_policy" = "Privatlivspolitik"; diff --git a/OpenDocumentReader/de.lproj/Localizable.strings b/OpenDocumentReader/de.lproj/Localizable.strings index 8b2822cb..0a6cd9b6 100644 --- a/OpenDocumentReader/de.lproj/Localizable.strings +++ b/OpenDocumentReader/de.lproj/Localizable.strings @@ -163,11 +163,10 @@ "edit_refused_sheet_cut" = "Diese Tabelle ist zu groß, um sie ganz anzuzeigen. Nur der angezeigte Teil kann bearbeitet werden."; /* What Pro adds, shown in the Lite app */ -"pro_feature_title" = "Teil von Pro"; -"pro_feature_formatting" = "Fett, kursiv, Farben und Schriftgröße sowie Absätze einfügen oder zusammenführen sind Teil von OpenDocument Reader Pro. Der Textmarker ist in jeder Ausgabe dabei."; -"pro_feature_pdf" = "Unterstreichen, Durchstreichen und Zeichnen in einem PDF sind Teil von OpenDocument Reader Pro. Der Textmarker ist in jeder Ausgabe dabei."; -"pro_feature_structure" = "Zeilen und Spalten einfügen und löschen ist Teil von OpenDocument Reader Pro. Der Textmarker ist in jeder Ausgabe dabei."; -"pro_feature_formulas" = "Formeln in eine Tabelle eingeben ist Teil von OpenDocument Reader Pro. Der Textmarker ist in jeder Ausgabe dabei."; +"pro_feature_title" = "Pro-Funktion"; +"pro_feature_formatting" = "Fett, kursiv, Farben, Textgröße sowie neue oder verbundene Absätze sind Pro-Funktionen. Der Textmarker ist kostenlos."; +"pro_feature_pdf" = "Unterstreichen, Durchstreichen und Zeichnen in einem PDF sind Pro-Funktionen. Der Textmarker ist kostenlos."; +"pro_feature_sheet" = "Fett, kursiv, Farben, Textgröße, Ausrichtung, Formeln sowie das Einfügen oder Löschen von Zeilen und Spalten sind Pro-Funktionen. Die Füllfarbe ist kostenlos."; "not_now" = "Nicht jetzt"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ pt"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "Unterstützen Sie OpenDocument Reader"; +"pass_why" = "OpenDocument Reader wird von einem kleinen Team entwickelt. Die App verfolgt Sie nicht, die Werbung in der kostenlosen Version aber möglicherweise schon. Ihr Kauf entfernt die Werbung und finanziert Updates und neue Funktionen."; +"pass_buy" = "Für %@ pro Jahr abonnieren"; +"pass_buy_no_price" = "Abonnieren"; +"pass_get_pro" = "Einmal zahlen: Pro-App holen"; +"pass_unlocked" = "Vielen Dank! Die Pro-Funktionen sind jetzt aktiviert."; +"pass_unlocked_editing" = "Vielen Dank! Beenden Sie den Bearbeitungsmodus, um alle Pro-Werkzeuge zu nutzen."; +"pass_restored" = "Ihr Kauf wurde wiederhergestellt. Die Pro-Funktionen sind aktiviert."; +"pass_restored_editing" = "Ihr Kauf wurde wiederhergestellt. Beenden Sie den Bearbeitungsmodus, um alle Pro-Werkzeuge zu nutzen."; +"pass_on_editing" = "Die Pro-Funktionen sind aktiviert. Beenden Sie den Bearbeitungsmodus, um alle Pro-Werkzeuge zu nutzen."; +"menu_support" = "App unterstützen"; +"pass_terms" = "Keine Werbung und alle Pro-Funktionen für 1 Jahr. Verlängert sich jährlich. Jederzeit im App Store kündbar."; +"pass_unavailable" = "Der App Store ist nicht verfügbar. Melden Sie sich im App Store an und versuchen Sie es erneut."; +"pass_restore" = "Kauf wiederherstellen"; +"pass_nothing_to_restore" = "Es wurde kein aktives Abo gefunden."; +"pass_terms_of_use" = "Nutzungsbedingungen"; +"pass_privacy_policy" = "Datenschutzerklärung"; diff --git a/OpenDocumentReader/en.lproj/Localizable.strings b/OpenDocumentReader/en.lproj/Localizable.strings index 192b33ae..8a6ed05d 100644 --- a/OpenDocumentReader/en.lproj/Localizable.strings +++ b/OpenDocumentReader/en.lproj/Localizable.strings @@ -163,11 +163,10 @@ "edit_refused_sheet_cut" = "This sheet is too large to show in full. Only the part on screen can be edited."; /* What Pro adds, shown in the Lite app. The highlighter is free in both kinds */ -"pro_feature_title" = "Part of Pro"; -"pro_feature_formatting" = "Bold, italic, colors and text size, and adding or joining paragraphs, are part of OpenDocument Reader Pro. The highlighter is in every edition."; -"pro_feature_pdf" = "Underlining, striking out and drawing on a PDF are part of OpenDocument Reader Pro. The highlighter is in every edition."; -"pro_feature_structure" = "Adding and deleting rows and columns is part of OpenDocument Reader Pro. The highlighter is in every edition."; -"pro_feature_formulas" = "Typing formulas into a spreadsheet is part of OpenDocument Reader Pro. The highlighter is in every edition."; +"pro_feature_title" = "Pro feature"; +"pro_feature_formatting" = "Bold, italic, colors, text size, and new or joined paragraphs are Pro features. The highlighter is free."; +"pro_feature_pdf" = "Underline, strikethrough and drawing on a PDF are Pro features. The highlighter is free."; +"pro_feature_sheet" = "Bold, italic, colors, text size, alignment, formulas, and inserting or deleting rows and columns are Pro features. The fill is free."; "not_now" = "Not now"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ pt"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "Support OpenDocument Reader"; +"pass_why" = "A small team makes OpenDocument Reader. The app does not track you, but the ads in the free version can. Your purchase removes the ads and pays for updates and new features."; +"pass_buy" = "Subscribe for %@ per year"; +"pass_buy_no_price" = "Subscribe"; +"pass_get_pro" = "Pay once: get the Pro app"; +"pass_unlocked" = "Thank you! The Pro features are now on."; +"pass_unlocked_editing" = "Thank you! Leave the edit mode to use every Pro tool."; +"pass_restored" = "Your purchase is restored. The Pro features are on."; +"pass_restored_editing" = "Your purchase is restored. Leave the edit mode to use every Pro tool."; +"pass_on_editing" = "The Pro features are on. Leave the edit mode to use every Pro tool."; +"menu_support" = "Support the app"; +"pass_terms" = "No ads and all Pro features for 1 year. Renews every year. Cancel any time in the App Store."; +"pass_unavailable" = "The App Store is not available. Sign in to the App Store and try again."; +"pass_restore" = "Restore purchase"; +"pass_nothing_to_restore" = "No active subscription was found."; +"pass_terms_of_use" = "Terms of Use"; +"pass_privacy_policy" = "Privacy Policy"; diff --git a/OpenDocumentReader/es.lproj/Localizable.strings b/OpenDocumentReader/es.lproj/Localizable.strings index c9eb8b4a..136efb4d 100644 --- a/OpenDocumentReader/es.lproj/Localizable.strings +++ b/OpenDocumentReader/es.lproj/Localizable.strings @@ -163,11 +163,10 @@ "edit_refused_sheet_cut" = "Esta hoja es demasiado grande para mostrarla entera. Solo se puede editar la parte que se muestra."; /* What Pro adds, shown in the Lite app */ -"pro_feature_title" = "Parte de Pro"; -"pro_feature_formatting" = "La negrita, la cursiva, los colores y el tamaño del texto, y añadir o unir párrafos, forman parte de OpenDocument Reader Pro. El marcador está en todas las ediciones."; -"pro_feature_pdf" = "Subrayar, tachar y dibujar en un PDF forman parte de OpenDocument Reader Pro. El marcador está en todas las ediciones."; -"pro_feature_structure" = "Añadir y eliminar filas y columnas forma parte de OpenDocument Reader Pro. El marcador está en todas las ediciones."; -"pro_feature_formulas" = "Escribir fórmulas en una hoja de cálculo es parte de OpenDocument Reader Pro. El marcador está en todas las ediciones."; +"pro_feature_title" = "Función Pro"; +"pro_feature_formatting" = "La negrita, la cursiva, los colores, el tamaño del texto y crear o unir párrafos son funciones Pro. El resaltador es gratuito."; +"pro_feature_pdf" = "Subrayar, tachar y dibujar en un PDF son funciones Pro. El resaltador es gratuito."; +"pro_feature_sheet" = "La negrita, la cursiva, los colores, el tamaño del texto, la alineación, las fórmulas y la inserción o eliminación de filas y columnas son funciones Pro. El relleno es gratuito."; "not_now" = "Ahora no"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ pt"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "Apoye a OpenDocument Reader"; +"pass_why" = "Un pequeño equipo crea OpenDocument Reader. La aplicación no le rastrea, pero los anuncios de la versión gratuita sí pueden hacerlo. Su compra elimina los anuncios y financia las actualizaciones y las nuevas funciones."; +"pass_buy" = "Suscribirse por %@ al año"; +"pass_buy_no_price" = "Suscribirse"; +"pass_get_pro" = "Pago único: consiga la aplicación Pro"; +"pass_unlocked" = "¡Gracias! Las funciones Pro ya están activadas."; +"pass_unlocked_editing" = "¡Gracias! Salga del modo de edición para usar todas las herramientas Pro."; +"pass_restored" = "Se ha restaurado su compra. Las funciones Pro están activadas."; +"pass_restored_editing" = "Se ha restaurado su compra. Salga del modo de edición para usar todas las herramientas Pro."; +"pass_on_editing" = "Las funciones Pro están activadas. Salga del modo de edición para usar todas las herramientas Pro."; +"menu_support" = "Apoyar la aplicación"; +"pass_terms" = "Sin anuncios y con todas las funciones Pro durante 1 año. Se renueva cada año. Cancele cuando quiera en el App Store."; +"pass_unavailable" = "El App Store no está disponible. Inicie sesión en el App Store y vuelva a intentarlo."; +"pass_restore" = "Restaurar compra"; +"pass_nothing_to_restore" = "No se ha encontrado ninguna suscripción activa."; +"pass_terms_of_use" = "Condiciones de uso"; +"pass_privacy_policy" = "Política de privacidad"; diff --git a/OpenDocumentReader/fr.lproj/Localizable.strings b/OpenDocumentReader/fr.lproj/Localizable.strings index ad894a33..89457eca 100644 --- a/OpenDocumentReader/fr.lproj/Localizable.strings +++ b/OpenDocumentReader/fr.lproj/Localizable.strings @@ -163,11 +163,10 @@ "edit_refused_sheet_cut" = "Cette feuille est trop grande pour être affichée en entier. Seule la partie affichée peut être modifiée."; /* What Pro adds, shown in the Lite app */ -"pro_feature_title" = "Réservé à Pro"; -"pro_feature_formatting" = "Le gras, l’italique, les couleurs et la taille du texte, ainsi que l’ajout ou la fusion de paragraphes, font partie d’OpenDocument Reader Pro. Le surligneur est dans toutes les éditions."; -"pro_feature_pdf" = "Souligner, barrer et dessiner sur un PDF font partie d’OpenDocument Reader Pro. Le surligneur est dans toutes les éditions."; -"pro_feature_structure" = "Ajouter et supprimer des lignes et des colonnes fait partie d’OpenDocument Reader Pro. Le surligneur est dans toutes les éditions."; -"pro_feature_formulas" = "Saisir des formules dans un tableur fait partie d’OpenDocument Reader Pro. Le surligneur est dans toutes les éditions."; +"pro_feature_title" = "Fonctionnalité Pro"; +"pro_feature_formatting" = "Le gras, l'italique, les couleurs, la taille du texte ainsi que la création ou la fusion de paragraphes sont des fonctionnalités Pro. Le surligneur est gratuit."; +"pro_feature_pdf" = "Souligner, barrer et dessiner sur un PDF sont des fonctionnalités Pro. Le surligneur est gratuit."; +"pro_feature_sheet" = "Le gras, l'italique, les couleurs, la taille du texte, l'alignement, les formules ainsi que l'insertion ou la suppression de lignes et de colonnes sont des fonctionnalités Pro. Le remplissage est gratuit."; "not_now" = "Pas maintenant"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ pt"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "Soutenez OpenDocument Reader"; +"pass_why" = "OpenDocument Reader est créé par une petite équipe. L'application ne vous piste pas, mais les publicités de la version gratuite peuvent le faire. Votre achat supprime les publicités et finance les mises à jour et les nouvelles fonctionnalités."; +"pass_buy" = "S'abonner pour %@ par an"; +"pass_buy_no_price" = "S'abonner"; +"pass_get_pro" = "Payer une fois : obtenir l'appli Pro"; +"pass_unlocked" = "Merci ! Les fonctionnalités Pro sont désormais activées."; +"pass_unlocked_editing" = "Merci ! Quittez le mode édition pour utiliser tous les outils Pro."; +"pass_restored" = "Votre achat a été restauré. Les fonctionnalités Pro sont activées."; +"pass_restored_editing" = "Votre achat a été restauré. Quittez le mode édition pour utiliser tous les outils Pro."; +"pass_on_editing" = "Les fonctionnalités Pro sont activées. Quittez le mode édition pour utiliser tous les outils Pro."; +"menu_support" = "Soutenir l'application"; +"pass_terms" = "Aucune publicité et toutes les fonctionnalités Pro pendant 1 an. Renouvellement chaque année. Résiliable à tout moment dans l'App Store."; +"pass_unavailable" = "L'App Store n'est pas disponible. Connectez-vous à l'App Store et réessayez."; +"pass_restore" = "Restaurer l'achat"; +"pass_nothing_to_restore" = "Aucun abonnement actif n'a été trouvé."; +"pass_terms_of_use" = "Conditions d'utilisation"; +"pass_privacy_policy" = "Politique de confidentialité"; diff --git a/OpenDocumentReader/ga.lproj/Localizable.strings b/OpenDocumentReader/ga.lproj/Localizable.strings index eaef7663..7516e223 100644 --- a/OpenDocumentReader/ga.lproj/Localizable.strings +++ b/OpenDocumentReader/ga.lproj/Localizable.strings @@ -163,11 +163,10 @@ "edit_refused_sheet_cut" = "Tá an bhileog seo rómhór le taispeáint ina hiomláine. Ní féidir ach an chuid a thaispeántar a chur in eagar."; /* What Pro adds, shown in the Lite app */ -"pro_feature_title" = "Cuid de Pro"; -"pro_feature_formatting" = "Is cuid de OpenDocument Reader Pro iad cló trom, cló iodálach, dathanna agus méid an téacs, agus ailt a chur leis nó a nascadh. Tá an marcóir i ngach eagrán."; -"pro_feature_pdf" = "Is cuid de OpenDocument Reader Pro iad líne a chur faoi théacs, líne a chur tríd agus líníocht a dhéanamh ar PDF. Tá an marcóir i ngach eagrán."; -"pro_feature_structure" = "Is cuid de OpenDocument Reader Pro é rónna agus colúin a chur leis agus a scriosadh. Tá an marcóir i ngach eagrán."; -"pro_feature_formulas" = "Is cuid de OpenDocument Reader Pro é foirmlí a chlóscríobh i scarbhileog. Tá an marcóir i ngach eagrán."; +"pro_feature_title" = "Gné Pro"; +"pro_feature_formatting" = "Is gnéithe Pro iad trom, iodálach, dathanna, méid an téacs, agus míreanna nua nó cumaiscthe. Tá an t-aibhsitheoir saor in aisce."; +"pro_feature_pdf" = "Is gnéithe Pro iad líne faoi, líne tríd agus líníocht ar PDF. Tá an t-aibhsitheoir saor in aisce."; +"pro_feature_sheet" = "Is gnéithe Pro iad trom, iodálach, dathanna, méid an téacs, ailíniú, foirmlí, agus rónna agus colúin a ionsá nó a scriosadh. Tá an líonadh saor in aisce."; "not_now" = "Ní anois"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ pt"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "Tabhair tacaíocht d'OpenDocument Reader"; +"pass_why" = "Is foireann bheag a dhéanann OpenDocument Reader. Ní rianaíonn an aip thú, ach is féidir leis na fógraí sa leagan saor in aisce é sin a dhéanamh. Cuireann do cheannach deireadh leis na fógraí agus íocann sé as nuashonruithe agus gnéithe nua."; +"pass_buy" = "Liostáil ar %@ in aghaidh na bliana"; +"pass_buy_no_price" = "Liostáil"; +"pass_get_pro" = "Íoc uair amháin: faigh an aip Pro"; +"pass_unlocked" = "Go raibh maith agat! Tá na gnéithe Pro ar siúl anois."; +"pass_unlocked_editing" = "Go raibh maith agat! Fág an mód eagarthóireachta chun gach uirlis Pro a úsáid."; +"pass_restored" = "Tá do cheannach athchóirithe. Tá na gnéithe Pro ar siúl."; +"pass_restored_editing" = "Tá do cheannach athchóirithe. Fág an mód eagarthóireachta chun gach uirlis Pro a úsáid."; +"pass_on_editing" = "Tá na gnéithe Pro ar siúl. Fág an mód eagarthóireachta chun gach uirlis Pro a úsáid."; +"menu_support" = "Tacaigh leis an aip"; +"pass_terms" = "Gan fógraí agus gach gné Pro ar feadh bliana. Athnuaitear é gach bliain. Cealaigh am ar bith ar an App Store."; +"pass_unavailable" = "Níl an App Store ar fáil. Sínigh isteach ar an App Store agus bain triail eile as."; +"pass_restore" = "Athchóirigh an ceannach"; +"pass_nothing_to_restore" = "Níor aimsíodh aon síntiús gníomhach."; +"pass_terms_of_use" = "Téarmaí Úsáide"; +"pass_privacy_policy" = "Polasaí Príobháideachais"; diff --git a/OpenDocumentReader/it.lproj/Localizable.strings b/OpenDocumentReader/it.lproj/Localizable.strings index 0d367288..1d587ac5 100644 --- a/OpenDocumentReader/it.lproj/Localizable.strings +++ b/OpenDocumentReader/it.lproj/Localizable.strings @@ -163,11 +163,10 @@ "edit_refused_sheet_cut" = "Questo foglio è troppo grande per essere mostrato per intero. Si può modificare solo la parte mostrata."; /* What Pro adds, shown in the Lite app */ -"pro_feature_title" = "Parte di Pro"; -"pro_feature_formatting" = "Il grassetto, il corsivo, i colori e la dimensione del testo, e aggiungere o unire paragrafi, fanno parte di OpenDocument Reader Pro. L’evidenziatore c’è in ogni edizione."; -"pro_feature_pdf" = "Sottolineare, barrare e disegnare su un PDF fanno parte di OpenDocument Reader Pro. L’evidenziatore c’è in ogni edizione."; -"pro_feature_structure" = "Aggiungere ed eliminare righe e colonne fa parte di OpenDocument Reader Pro. L’evidenziatore c’è in ogni edizione."; -"pro_feature_formulas" = "Digitare formule in un foglio di calcolo fa parte di OpenDocument Reader Pro. L’evidenziatore c’è in ogni edizione."; +"pro_feature_title" = "Funzione Pro"; +"pro_feature_formatting" = "Grassetto, corsivo, colori, dimensione del testo e paragrafi nuovi o uniti sono funzioni Pro. L'evidenziatore è gratuito."; +"pro_feature_pdf" = "Sottolineatura, barratura e disegno su un PDF sono funzioni Pro. L'evidenziatore è gratuito."; +"pro_feature_sheet" = "Grassetto, corsivo, colori, dimensione del testo, allineamento, formule e l'inserimento o l'eliminazione di righe e colonne sono funzioni Pro. Il riempimento è gratuito."; "not_now" = "Non ora"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ pt"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "Sostieni OpenDocument Reader"; +"pass_why" = "OpenDocument Reader è realizzata da un piccolo team. L'app non ti traccia, ma la pubblicità nella versione gratuita può farlo. Il tuo acquisto rimuove la pubblicità e finanzia aggiornamenti e nuove funzioni."; +"pass_buy" = "Abbonati per %@ all'anno"; +"pass_buy_no_price" = "Abbonati"; +"pass_get_pro" = "Paga una volta: acquista l'app Pro"; +"pass_unlocked" = "Grazie! Le funzioni Pro ora sono attive."; +"pass_unlocked_editing" = "Grazie! Esci dalla modalità di modifica per usare tutti gli strumenti Pro."; +"pass_restored" = "Il tuo acquisto è stato ripristinato. Le funzioni Pro sono attive."; +"pass_restored_editing" = "Il tuo acquisto è stato ripristinato. Esci dalla modalità di modifica per usare tutti gli strumenti Pro."; +"pass_on_editing" = "Le funzioni Pro sono attive. Esci dalla modalità di modifica per usare tutti gli strumenti Pro."; +"menu_support" = "Sostieni l'app"; +"pass_terms" = "Niente pubblicità e tutte le funzioni Pro per 1 anno. Si rinnova ogni anno. Puoi annullare l'abbonamento in qualsiasi momento nell'App Store."; +"pass_unavailable" = "L'App Store non è disponibile. Accedi all'App Store e riprova."; +"pass_restore" = "Ripristina acquisto"; +"pass_nothing_to_restore" = "Nessun abbonamento attivo trovato."; +"pass_terms_of_use" = "Condizioni d'uso"; +"pass_privacy_policy" = "Informativa sulla privacy"; diff --git a/OpenDocumentReader/ja.lproj/Localizable.strings b/OpenDocumentReader/ja.lproj/Localizable.strings index 179ee9a4..bf5b5c50 100644 --- a/OpenDocumentReader/ja.lproj/Localizable.strings +++ b/OpenDocumentReader/ja.lproj/Localizable.strings @@ -163,11 +163,10 @@ "edit_refused_sheet_cut" = "このシートは大きすぎてすべてを表示できません。編集できるのは表示されている部分だけです。"; /* What Pro adds, shown in the Lite app */ -"pro_feature_title" = "Proの機能"; -"pro_feature_formatting" = "太字、斜体、色、文字サイズと、段落の追加や結合はOpenDocument Reader Proの機能です。蛍光ペンはどの版でも使えます。"; -"pro_feature_pdf" = "PDFへの下線、取り消し線、手書きはOpenDocument Reader Proの機能です。蛍光ペンはどの版でも使えます。"; -"pro_feature_structure" = "行と列の追加と削除はOpenDocument Reader Proの機能です。蛍光ペンはどの版でも使えます。"; -"pro_feature_formulas" = "表計算に数式を入力する機能はOpenDocument Reader Proの機能です。蛍光ペンはどの版でも使えます。"; +"pro_feature_title" = "Pro の機能"; +"pro_feature_formatting" = "太字、斜体、色、文字サイズ、段落の追加や結合は Pro の機能です。ハイライトは無料で使えます。"; +"pro_feature_pdf" = "PDF への下線、取り消し線、描画は Pro の機能です。ハイライトは無料で使えます。"; +"pro_feature_sheet" = "太字、斜体、色、文字サイズ、配置、数式、行や列の挿入・削除は Pro の機能です。塗りつぶしは無料で使えます。"; "not_now" = "あとで"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ pt"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "OpenDocument Reader を応援する"; +"pass_why" = "OpenDocument Reader は小さなチームが作っています。このアプリがあなたを追跡することはありませんが、無料版の広告は追跡する可能性があります。ご購入いただくと広告が消え、アップデートや新機能の開発を支えることができます。"; +"pass_buy" = "年額 %@ で登録"; +"pass_buy_no_price" = "登録する"; +"pass_get_pro" = "買い切り:Pro アプリを購入"; +"pass_unlocked" = "ありがとうございます! Pro の機能が有効になりました。"; +"pass_unlocked_editing" = "ありがとうございます! 編集モードを終了すると、すべての Pro ツールを使えるようになります。"; +"pass_restored" = "購入を復元しました。Pro の機能が有効になっています。"; +"pass_restored_editing" = "購入を復元しました。編集モードを終了すると、すべての Pro ツールを使えるようになります。"; +"pass_on_editing" = "Pro の機能は有効になっています。編集モードを終了すると、すべての Pro ツールを使えるようになります。"; +"menu_support" = "アプリを応援する"; +"pass_terms" = "1 年間、広告なしですべての Pro 機能を使えます。毎年自動で更新されます。App Store でいつでも解約できます。"; +"pass_unavailable" = "App Store を利用できません。App Store にサインインしてから、もう一度お試しください。"; +"pass_restore" = "購入を復元"; +"pass_nothing_to_restore" = "有効なサブスクリプションが見つかりませんでした。"; +"pass_terms_of_use" = "利用規約"; +"pass_privacy_policy" = "プライバシーポリシー"; diff --git a/OpenDocumentReader/pl.lproj/Localizable.strings b/OpenDocumentReader/pl.lproj/Localizable.strings index 57c730d6..08a46dc2 100644 --- a/OpenDocumentReader/pl.lproj/Localizable.strings +++ b/OpenDocumentReader/pl.lproj/Localizable.strings @@ -163,11 +163,10 @@ "edit_refused_sheet_cut" = "Ten arkusz jest za duży, aby pokazać go w całości. Można edytować tylko pokazaną część."; /* What Pro adds, shown in the Lite app */ -"pro_feature_title" = "Część wersji Pro"; -"pro_feature_formatting" = "Pogrubienie, kursywa, kolory i rozmiar tekstu oraz dodawanie i łączenie akapitów to część OpenDocument Reader Pro. Zakreślacz jest w każdej edycji."; -"pro_feature_pdf" = "Podkreślanie, przekreślanie i rysowanie w PDF to część OpenDocument Reader Pro. Zakreślacz jest w każdej edycji."; -"pro_feature_structure" = "Dodawanie i usuwanie wierszy i kolumn to część OpenDocument Reader Pro. Zakreślacz jest w każdej edycji."; -"pro_feature_formulas" = "Wpisywanie formuł w arkuszu jest częścią OpenDocument Reader Pro. Zakreślacz jest w każdej edycji."; +"pro_feature_title" = "Funkcja Pro"; +"pro_feature_formatting" = "Pogrubienie, kursywa, kolory, rozmiar tekstu oraz nowe lub połączone akapity to funkcje Pro. Wyróżnianie jest bezpłatne."; +"pro_feature_pdf" = "Podkreślenie, przekreślenie i rysowanie w pliku PDF to funkcje Pro. Wyróżnianie jest bezpłatne."; +"pro_feature_sheet" = "Pogrubienie, kursywa, kolory, rozmiar tekstu, wyrównanie, formuły oraz wstawianie i usuwanie wierszy i kolumn to funkcje Pro. Wypełnienie jest bezpłatne."; "not_now" = "Nie teraz"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ pt"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "Wesprzyj OpenDocument Reader"; +"pass_why" = "OpenDocument Reader tworzy mały zespół. Aplikacja cię nie śledzi, ale reklamy w bezpłatnej wersji mogą to robić. Twój zakup usuwa reklamy i finansuje aktualizacje oraz nowe funkcje."; +"pass_buy" = "Subskrybuj za %@ rocznie"; +"pass_buy_no_price" = "Subskrybuj"; +"pass_get_pro" = "Zapłać raz: kup aplikację Pro"; +"pass_unlocked" = "Dziękujemy! Funkcje Pro są już włączone."; +"pass_unlocked_editing" = "Dziękujemy! Wyjdź z trybu edycji, aby używać wszystkich narzędzi Pro."; +"pass_restored" = "Twój zakup został przywrócony. Funkcje Pro są włączone."; +"pass_restored_editing" = "Twój zakup został przywrócony. Wyjdź z trybu edycji, aby używać wszystkich narzędzi Pro."; +"pass_on_editing" = "Funkcje Pro są włączone. Wyjdź z trybu edycji, aby używać wszystkich narzędzi Pro."; +"menu_support" = "Wesprzyj aplikację"; +"pass_terms" = "Bez reklam i ze wszystkimi funkcjami Pro przez 1 rok. Subskrypcja odnawia się co roku. Możesz ją anulować w dowolnej chwili w App Store."; +"pass_unavailable" = "App Store jest niedostępny. Zaloguj się w App Store i spróbuj ponownie."; +"pass_restore" = "Przywróć zakup"; +"pass_nothing_to_restore" = "Nie znaleziono aktywnej subskrypcji."; +"pass_terms_of_use" = "Warunki korzystania"; +"pass_privacy_policy" = "Polityka prywatności"; diff --git a/OpenDocumentReader/pt-BR.lproj/Localizable.strings b/OpenDocumentReader/pt-BR.lproj/Localizable.strings index c3266b24..f219d0dc 100644 --- a/OpenDocumentReader/pt-BR.lproj/Localizable.strings +++ b/OpenDocumentReader/pt-BR.lproj/Localizable.strings @@ -163,11 +163,10 @@ "edit_refused_sheet_cut" = "Esta planilha é grande demais para ser mostrada inteira. Só a parte mostrada pode ser editada."; /* What Pro adds, shown in the Lite app */ -"pro_feature_title" = "Parte do Pro"; -"pro_feature_formatting" = "Negrito, itálico, cores e tamanho do texto, e adicionar ou juntar parágrafos, fazem parte do OpenDocument Reader Pro. O marca-texto está em todas as edições."; -"pro_feature_pdf" = "Sublinhar, riscar e desenhar em um PDF fazem parte do OpenDocument Reader Pro. O marca-texto está em todas as edições."; -"pro_feature_structure" = "Adicionar e excluir linhas e colunas faz parte do OpenDocument Reader Pro. O marca-texto está em todas as edições."; -"pro_feature_formulas" = "Digitar fórmulas numa planilha faz parte do OpenDocument Reader Pro. O marca-texto está em todas as edições."; +"pro_feature_title" = "Recurso Pro"; +"pro_feature_formatting" = "Negrito, itálico, cores, tamanho do texto e parágrafos novos ou unidos são recursos Pro. O marca-texto é grátis."; +"pro_feature_pdf" = "Sublinhar, tachar e desenhar em um PDF são recursos Pro. O marca-texto é grátis."; +"pro_feature_sheet" = "Negrito, itálico, cores, tamanho do texto, alinhamento, fórmulas e inserir ou excluir linhas e colunas são recursos Pro. O preenchimento é grátis."; "not_now" = "Agora não"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ pt"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "Apoie o OpenDocument Reader"; +"pass_why" = "Uma pequena equipe desenvolve o OpenDocument Reader. O app não rastreia você, mas os anúncios da versão gratuita podem rastrear. Sua compra remove os anúncios e financia atualizações e novos recursos."; +"pass_buy" = "Assinar por %@ por ano"; +"pass_buy_no_price" = "Assinar"; +"pass_get_pro" = "Pague uma vez: adquira o app Pro"; +"pass_unlocked" = "Obrigado! Os recursos Pro estão ativados."; +"pass_unlocked_editing" = "Obrigado! Saia do modo de edição para usar todas as ferramentas Pro."; +"pass_restored" = "Sua compra foi restaurada. Os recursos Pro estão ativados."; +"pass_restored_editing" = "Sua compra foi restaurada. Saia do modo de edição para usar todas as ferramentas Pro."; +"pass_on_editing" = "Os recursos Pro estão ativados. Saia do modo de edição para usar todas as ferramentas Pro."; +"menu_support" = "Apoie o app"; +"pass_terms" = "Sem anúncios e com todos os recursos Pro por 1 ano. Renovação anual. Cancele quando quiser na App Store."; +"pass_unavailable" = "A App Store não está disponível. Inicie sessão na App Store e tente novamente."; +"pass_restore" = "Restaurar compra"; +"pass_nothing_to_restore" = "Nenhuma assinatura ativa foi encontrada."; +"pass_terms_of_use" = "Termos de Uso"; +"pass_privacy_policy" = "Política de Privacidade"; diff --git a/OpenDocumentReader/ru.lproj/Localizable.strings b/OpenDocumentReader/ru.lproj/Localizable.strings index 81c9f6eb..1cf28010 100644 --- a/OpenDocumentReader/ru.lproj/Localizable.strings +++ b/OpenDocumentReader/ru.lproj/Localizable.strings @@ -163,11 +163,10 @@ "edit_refused_sheet_cut" = "Этот лист слишком большой, чтобы показать его целиком. Изменить можно только показанную часть."; /* What Pro adds, shown in the Lite app */ -"pro_feature_title" = "Часть Pro"; -"pro_feature_formatting" = "Полужирный, курсив, цвета и размер текста, а также добавление и объединение абзацев — часть OpenDocument Reader Pro. Маркер есть в любом издании."; -"pro_feature_pdf" = "Подчёркивание, зачёркивание и рисование в PDF — часть OpenDocument Reader Pro. Маркер есть в любом издании."; -"pro_feature_structure" = "Добавление и удаление строк и столбцов — часть OpenDocument Reader Pro. Маркер есть в любом издании."; -"pro_feature_formulas" = "Ввод формул в таблицу входит в OpenDocument Reader Pro. Маркер есть в любом издании."; +"pro_feature_title" = "Функция Pro"; +"pro_feature_formatting" = "Полужирный, курсив, цвета, размер текста, а также создание и объединение абзацев — функции Pro. Выделение цветом доступно бесплатно."; +"pro_feature_pdf" = "Подчёркивание, зачёркивание и рисование в PDF — функции Pro. Выделение доступно бесплатно."; +"pro_feature_sheet" = "Полужирный, курсив, цвета, размер текста, выравнивание, формулы, а также вставка и удаление строк и столбцов — функции Pro. Заливка доступна бесплатно."; "not_now" = "Не сейчас"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ пт"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "Поддержите OpenDocument Reader"; +"pass_why" = "OpenDocument Reader создаёт небольшая команда. Приложение не отслеживает вас, но реклама в бесплатной версии может это делать. Ваша покупка убирает рекламу и оплачивает обновления и новые функции."; +"pass_buy" = "Подписаться за %@ в год"; +"pass_buy_no_price" = "Подписаться"; +"pass_get_pro" = "Разовая покупка: приложение Pro"; +"pass_unlocked" = "Спасибо! Функции Pro включены."; +"pass_unlocked_editing" = "Спасибо! Выйдите из режима редактирования, чтобы пользоваться всеми инструментами Pro."; +"pass_restored" = "Ваша покупка восстановлена. Функции Pro включены."; +"pass_restored_editing" = "Ваша покупка восстановлена. Выйдите из режима редактирования, чтобы пользоваться всеми инструментами Pro."; +"pass_on_editing" = "Функции Pro включены. Выйдите из режима редактирования, чтобы пользоваться всеми инструментами Pro."; +"menu_support" = "Поддержать приложение"; +"pass_terms" = "Без рекламы и со всеми функциями Pro на 1 год. Подписка продлевается ежегодно. Отменить её можно в любое время в App Store."; +"pass_unavailable" = "App Store недоступен. Войдите в App Store и повторите попытку."; +"pass_restore" = "Восстановить покупку"; +"pass_nothing_to_restore" = "Активная подписка не найдена."; +"pass_terms_of_use" = "Условия использования"; +"pass_privacy_policy" = "Политика конфиденциальности"; diff --git a/OpenDocumentReader/sl.lproj/Localizable.strings b/OpenDocumentReader/sl.lproj/Localizable.strings index 8d86a235..83662ceb 100644 --- a/OpenDocumentReader/sl.lproj/Localizable.strings +++ b/OpenDocumentReader/sl.lproj/Localizable.strings @@ -163,11 +163,10 @@ "edit_refused_sheet_cut" = "Ta list je prevelik, da bi ga prikazali v celoti. Urejati je mogoče le prikazani del."; /* What Pro adds, shown in the Lite app */ -"pro_feature_title" = "Del različice Pro"; -"pro_feature_formatting" = "Krepko, ležeče, barve in velikost besedila ter dodajanje ali združevanje odstavkov so del OpenDocument Reader Pro. Označevalnik je v vsaki izdaji."; -"pro_feature_pdf" = "Podčrtovanje, prečrtovanje in risanje v PDF so del OpenDocument Reader Pro. Označevalnik je v vsaki izdaji."; -"pro_feature_structure" = "Dodajanje in brisanje vrstic in stolpcev je del OpenDocument Reader Pro. Označevalnik je v vsaki izdaji."; -"pro_feature_formulas" = "Vnašanje formul v preglednico je del OpenDocument Reader Pro. Označevalnik je v vsaki izdaji."; +"pro_feature_title" = "Funkcija Pro"; +"pro_feature_formatting" = "Krepko, ležeče, barve, velikost besedila ter novi ali združeni odstavki so funkcije Pro. Označevanje je brezplačno."; +"pro_feature_pdf" = "Podčrtovanje, prečrtovanje in risanje po PDF-ju so funkcije Pro. Označevanje je brezplačno."; +"pro_feature_sheet" = "Krepko, ležeče, barve, velikost besedila, poravnava, formule ter vstavljanje in brisanje vrstic in stolpcev so funkcije Pro. Polnilo je brezplačno."; "not_now" = "Ne zdaj"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ pt"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "Podprite OpenDocument Reader"; +"pass_why" = "OpenDocument Reader razvija majhna ekipa. Aplikacija vam ne sledi, oglasi v brezplačni različici pa vam lahko. Z nakupom odstranite oglase ter podprete posodobitve in nove funkcije."; +"pass_buy" = "Naroči se za %@ na leto"; +"pass_buy_no_price" = "Naroči se"; +"pass_get_pro" = "Enkratno plačilo: aplikacija Pro"; +"pass_unlocked" = "Hvala! Funkcije Pro so zdaj vklopljene."; +"pass_unlocked_editing" = "Hvala! Zapustite način urejanja, da boste lahko uporabljali vsa orodja Pro."; +"pass_restored" = "Vaš nakup je obnovljen. Funkcije Pro so vklopljene."; +"pass_restored_editing" = "Vaš nakup je obnovljen. Zapustite način urejanja, da boste lahko uporabljali vsa orodja Pro."; +"pass_on_editing" = "Funkcije Pro so vklopljene. Zapustite način urejanja, da boste lahko uporabljali vsa orodja Pro."; +"menu_support" = "Podprite aplikacijo"; +"pass_terms" = "Brez oglasov in vse funkcije Pro za 1 leto. Naročnina se podaljša vsako leto. Kadar koli jo lahko prekličete v App Storu."; +"pass_unavailable" = "App Store ni na voljo. Prijavite se v App Store in poskusite znova."; +"pass_restore" = "Obnovi nakup"; +"pass_nothing_to_restore" = "Aktivne naročnine ni bilo mogoče najti."; +"pass_terms_of_use" = "Pogoji uporabe"; +"pass_privacy_policy" = "Pravilnik o zasebnosti"; diff --git a/OpenDocumentReader/tr.lproj/Localizable.strings b/OpenDocumentReader/tr.lproj/Localizable.strings index 585c12cd..27a232d8 100644 --- a/OpenDocumentReader/tr.lproj/Localizable.strings +++ b/OpenDocumentReader/tr.lproj/Localizable.strings @@ -163,11 +163,10 @@ "edit_refused_sheet_cut" = "Bu sayfa tamamı gösterilemeyecek kadar büyük. Yalnızca gösterilen kısım düzenlenebilir."; /* What Pro adds, shown in the Lite app */ -"pro_feature_title" = "Pro’nun parçası"; -"pro_feature_formatting" = "Kalın, italik, renkler ve metin boyutu ile paragraf eklemek ya da birleştirmek OpenDocument Reader Pro’nun bir parçasıdır. Fosforlu kalem her sürümde vardır."; -"pro_feature_pdf" = "Bir PDF’te altını çizmek, üstünü çizmek ve çizim yapmak OpenDocument Reader Pro’nun bir parçasıdır. Fosforlu kalem her sürümde vardır."; -"pro_feature_structure" = "Satır ve sütun eklemek ve silmek OpenDocument Reader Pro’nun bir parçasıdır. Fosforlu kalem her sürümde vardır."; -"pro_feature_formulas" = "Bir tabloya formül yazmak OpenDocument Reader Pro’nun parçasıdır. Fosforlu kalem her sürümde vardır."; +"pro_feature_title" = "Pro özelliği"; +"pro_feature_formatting" = "Kalın, italik, renkler, metin boyutu ve paragraf ekleme ya da birleştirme Pro özellikleridir. Vurgulayıcı ücretsizdir."; +"pro_feature_pdf" = "PDF üzerinde altını çizme, üstünü çizme ve çizim yapma Pro özellikleridir. Vurgulayıcı ücretsizdir."; +"pro_feature_sheet" = "Kalın, italik, renkler, metin boyutu, hizalama, formüller ve satır ya da sütun ekleme veya silme Pro özellikleridir. Dolgu ücretsizdir."; "not_now" = "Şimdi değil"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ pt"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "OpenDocument Reader'a destek olun"; +"pass_why" = "OpenDocument Reader'ı küçük bir ekip geliştiriyor. Uygulama sizi izlemez, ancak ücretsiz sürümdeki reklamlar izleyebilir. Satın alımınız reklamları kaldırır, güncellemelerin ve yeni özelliklerin masrafını karşılar."; +"pass_buy" = "Yıllık %@ ile abone ol"; +"pass_buy_no_price" = "Abone ol"; +"pass_get_pro" = "Bir kez ödeyin: Pro uygulamasını alın"; +"pass_unlocked" = "Teşekkürler! Pro özellikleri artık açık."; +"pass_unlocked_editing" = "Teşekkürler! Tüm Pro araçlarını kullanmak için düzenleme modundan çıkın."; +"pass_restored" = "Satın alımınız geri yüklendi. Pro özellikleri açık."; +"pass_restored_editing" = "Satın alımınız geri yüklendi. Tüm Pro araçlarını kullanmak için düzenleme modundan çıkın."; +"pass_on_editing" = "Pro özellikleri açık. Tüm Pro araçlarını kullanmak için düzenleme modundan çıkın."; +"menu_support" = "Uygulamaya destek olun"; +"pass_terms" = "1 yıl boyunca reklamsız kullanım ve tüm Pro özellikleri. Her yıl yenilenir. İstediğiniz zaman App Store'dan iptal edebilirsiniz."; +"pass_unavailable" = "App Store kullanılamıyor. App Store'da oturum açıp tekrar deneyin."; +"pass_restore" = "Satın alımı geri yükle"; +"pass_nothing_to_restore" = "Etkin abonelik bulunamadı."; +"pass_terms_of_use" = "Kullanım Koşulları"; +"pass_privacy_policy" = "Gizlilik Politikası"; diff --git a/OpenDocumentReader/zh-Hans.lproj/Localizable.strings b/OpenDocumentReader/zh-Hans.lproj/Localizable.strings index ece647bb..bb40028f 100644 --- a/OpenDocumentReader/zh-Hans.lproj/Localizable.strings +++ b/OpenDocumentReader/zh-Hans.lproj/Localizable.strings @@ -164,10 +164,9 @@ /* What Pro adds, shown in the Lite app */ "pro_feature_title" = "Pro 功能"; -"pro_feature_formatting" = "粗体、斜体、颜色和文字大小,以及添加或合并段落,都是 OpenDocument Reader Pro 的功能。荧光笔在每个版本中都能用。"; -"pro_feature_pdf" = "在 PDF 上添加下划线、删除线和手绘是 OpenDocument Reader Pro 的功能。荧光笔在每个版本中都能用。"; -"pro_feature_structure" = "添加和删除行与列是 OpenDocument Reader Pro 的功能。荧光笔在每个版本中都能用。"; -"pro_feature_formulas" = "在电子表格中输入公式是 OpenDocument Reader Pro 的功能。荧光笔在每个版本中都能用。"; +"pro_feature_formatting" = "粗体、斜体、颜色、文字大小以及新建或合并段落都是 Pro 功能。突出显示可免费使用。"; +"pro_feature_pdf" = "在 PDF 上添加下划线、删除线和绘图都是 Pro 功能。突出显示可免费使用。"; +"pro_feature_sheet" = "粗体、斜体、颜色、文字大小、对齐、公式以及插入或删除行和列都是 Pro 功能。填充可免费使用。"; "not_now" = "暂不"; /* Shown when the marking tools come up on a PDF */ @@ -181,3 +180,22 @@ /* The size of the selected text, on the size tool: "12 pt" */ "edit_font_size_points" = "%@ 磅"; + +/* the yearly pass in Lite, from the Pro gate or from "Support the app" */ +"pass_title" = "支持 OpenDocument Reader"; +"pass_why" = "OpenDocument Reader 由一个小团队开发。本应用不会跟踪您,但免费版中的广告可能会。您的购买可以去掉广告,并资助更新和新功能的开发。"; +"pass_buy" = "订阅,每年 %@"; +"pass_buy_no_price" = "订阅"; +"pass_get_pro" = "一次性买断:获取 Pro 应用"; +"pass_unlocked" = "谢谢!Pro 功能现已开启。"; +"pass_unlocked_editing" = "谢谢!退出编辑模式后即可使用所有 Pro 工具。"; +"pass_restored" = "您的购买已恢复。Pro 功能已开启。"; +"pass_restored_editing" = "您的购买已恢复。退出编辑模式后即可使用所有 Pro 工具。"; +"pass_on_editing" = "Pro 功能已开启。退出编辑模式后即可使用所有 Pro 工具。"; +"menu_support" = "支持本应用"; +"pass_terms" = "1 年内无广告,并可使用所有 Pro 功能。每年自动续订。可随时在 App Store 中取消。"; +"pass_unavailable" = "App Store 不可用。请登录 App Store 后重试。"; +"pass_restore" = "恢复购买"; +"pass_nothing_to_restore" = "未找到有效的订阅。"; +"pass_terms_of_use" = "使用条款"; +"pass_privacy_policy" = "隐私政策"; diff --git a/configs/lite/Pass.storekit b/configs/lite/Pass.storekit new file mode 100644 index 00000000..8a6ef786 --- /dev/null +++ b/configs/lite/Pass.storekit @@ -0,0 +1,63 @@ +{ + "identifier" : "0D7A1F3E", + "nonRenewingSubscriptions" : [ + + ], + "products" : [ + + ], + "settings" : { + "_applicationInternalID" : "", + "_developerTeamID" : "5LS6X97G6J", + "_failTransactionsEnabled" : false, + "_lastSynchronizedDate" : 0, + "_locale" : "de_DE", + "_storefront" : "DEU", + "_storeKitErrors" : [ + + ] + }, + "subscriptionGroups" : [ + { + "id" : "8C4E2A10", + "localizations" : [ + + ], + "name" : "Pro pass", + "subscriptions" : [ + { + "adHocOffers" : [ + + ], + "codeOffers" : [ + + ], + "displayPrice" : "3.00", + "familyShareable" : false, + "groupNumber" : 1, + "internalID" : "5A9B7C21", + "introductoryOffer" : null, + "localizations" : [ + { + "description" : "No ads and all Pro features for 1 year", + "displayName" : "Pro pass", + "locale" : "en_US" + } + ], + "productID" : "pro_pass", + "recurringSubscriptionPeriod" : "P1Y", + "referenceName" : "Pro pass", + "subscriptionGroupID" : "8C4E2A10", + "type" : "RecurringSubscription", + "winbackOffers" : [ + + ] + } + ] + } + ], + "version" : { + "major" : 4, + "minor" : 0 + } +}