From 5fc81e2479bc33a581b5321399dbbc8c0d278b7d Mon Sep 17 00:00:00 2001 From: FranzBot Date: Sat, 5 Oct 2019 00:00:21 +0000 Subject: Automatic i18n update (i18n.meetfranz.com) --- src/i18n/locales/nl.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index d302c7429..607e81c89 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -91,7 +91,7 @@ "menu.services" : "Services", "menu.services.activatePreviousService" : "Activeer vorige service", "menu.services.addNewService" : "Nieuwe service toevoegen...", - "menu.services.goHome" : "Home", + "menu.services.goHome" : "Thuis", "menu.services.setNextServiceActive" : "Activeer volgende service", "menu.todos" : "Taken", "menu.todos.enableTodos" : "Todo's inschakelen", @@ -123,9 +123,9 @@ "password.submit.label" : "Verzenden", "password.successInfo" : "Controleer je e-mail", "premiumFeature.button.upgradeAccount" : "Upgrade Account", - "pricing.features.adFree" : "Forever ad-free", + "pricing.features.adFree" : "Voor altijd reclamevrij", "pricing.features.appDelays" : "Geen wachtschermen", - "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.customWebsites" : "Voeg eigen websites toe", "pricing.features.onPremise" : "On-premise & other Hosted Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", @@ -373,7 +373,7 @@ "validation.url" : "{field} is geen geldige URL", "webControls.back" : "Back", "webControls.forward" : "Forward", - "webControls.goHome" : "Home", + "webControls.goHome" : "Thuis", "webControls.openInBrowser" : "Open in Browser", "webControls.reload" : "Herladen", "welcome.loginButton" : "Log in op je account", -- cgit v1.2.3-70-g09d2 From ea366b28cccb457064df1747db9f8d4f425c2998 Mon Sep 17 00:00:00 2001 From: FranzBot Date: Tue, 8 Oct 2019 12:00:20 +0000 Subject: Automatic i18n update (i18n.meetfranz.com) --- src/i18n/locales/id.json | 154 +++++++++++++++++++++++------------------------ 1 file changed, 77 insertions(+), 77 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json index 0c66f59bc..841644703 100644 --- a/src/i18n/locales/id.json +++ b/src/i18n/locales/id.json @@ -4,12 +4,12 @@ "feature.announcements.changelog.headline" : "Perubahan dalam Franz {version}", "feature.delayApp.headline" : "Beli Lisensi Pendukung Franz agar tidak perlu menunggu", "feature.delayApp.text" : "Franz akan melanjutkan dalam {seconds} detik.", - "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", - "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", + "feature.delayApp.trial.action" : "Ya, saya ingin menguji gratis 14 hari Franz Professional", + "feature.delayApp.trial.actionShort" : "Aktifkan uji coba gratis Franz Professional", + "feature.delayApp.trial.headline" : "Dapatkan uji coba gratis 14 hari Franz Professional dan tak perlu lagi menunggu!", "feature.delayApp.upgrade.action" : "Dapatkan Lisensi Pendukung Franz", "feature.delayApp.upgrade.actionShort" : "Tingkatkan akun", - "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", + "feature.serviceLimit.limitReached" : "Anda telah menambahkan {amount} dari kuota {limit} layanan yang tersedia untuk paket Anda. Tingkatkan akun untuk menambahkan layanan lain.", "feature.shareFranz.action.email" : "Kirim sebagai email", "feature.shareFranz.action.facebook" : "Bagikan di Facebook", "feature.shareFranz.action.twitter" : "Bagikan di Twitter", @@ -17,17 +17,17 @@ "feature.shareFranz.shareText.email" : "Saya telah menambahkan layanan {count} ke Franz! Dapatkan aplikasi gratis untuk WhatsApp, Messenger, Slack, Skype dan co di www.meetfranz.com", "feature.shareFranz.shareText.twitter" : "Saya telah menambahkan {count} layanan di Franz! Dapatkan aplikasi gratis untuk WhatsApp, Messenger, Slack, Skype dan lainnya di www.meetfranz.com \/cc @FranzMessenger", "feature.shareFranz.text" : "Beri tahu teman dan kolega Anda betapa hebatnya Franz dan bantu kami menyebarkan berita.", - "feature.todos.premium.info" : "Franz Todos are available to premium users now!", - "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", - "feature.todos.premium.upgrade" : "Upgrade Account", - "global.api.unhealthy" : "Tidak dapat tersambung ke layanan Franz", - "global.franzProRequired" : "Franz Professional Required", + "feature.todos.premium.info" : "Kini Franz Todos tersedia untuk pengguna premium!", + "feature.todos.premium.rollout" : "Yang lain harus menunggu lebih lama.", + "feature.todos.premium.upgrade" : "Tingkatkan Akun", + "global.api.unhealthy" : "Tidak dapat tersambung ke layanan online Franz", + "global.franzProRequired" : "Diperlukan Franz Professional", "global.notConnectedToTheInternet" : "Anda tidak tersambung ke internet.", "global.spellchecker.useDefault" : "Gunakan Bawaan Sistem ({default})", "global.spellchecking.autodetect" : "Deteksi bahasa secara otomatis", "global.spellchecking.autodetect.short" : "Otomatis", "global.spellchecking.language" : "Periksa ejaan", - "global.upgradeButton.upgradeToPro" : "Upgrade to Franz Professional", + "global.upgradeButton.upgradeToPro" : "Tingkatkan ke Franz Professional", "import.headline" : "Impor layanan Franz 4 Anda", "import.notSupportedHeadline" : "Layanan belum didukung di Franz 5", "import.skip.label" : "Saya ingin menambahkan layanan secara manual", @@ -37,12 +37,12 @@ "infobar.buttonReloadServices" : "Muat ulang layanan", "infobar.requiredRequestsFailed" : "Gagal memuat layanan dan informasi pengguna", "infobar.servicesUpdated" : "Layanan Anda telah diperbarui", - "infobar.trialActivated" : "Your trial was successfully activated. Happy messaging!", + "infobar.trialActivated" : "Uji coba Anda berhasil diaktifkan! Selamat berpesan ria!", "infobar.updateAvailable" : "Versi baru Franz tersedia.", "invite.email.label" : "Alamat email", "invite.headline.friends" : "Undang 3 teman atau kolega Anda", "invite.name.label" : "Nama", - "invite.skip.label" : "Saya ingin melakukan ini nanti", + "invite.skip.label" : "Nanti saja", "invite.submit.label" : "Kirim undangan", "invite.successInfo" : "Undangan berhasil dikirim", "login.email.label" : "Alamat email", @@ -54,8 +54,8 @@ "login.serverLogout" : "Sesi Anda telah berakhir, silakan masuk kembali.", "login.submit.label" : "Masuk", "login.tokenExpired" : "Sesi Anda telah kedaluwarsa, silakan masuk kembali.", - "menu.Todoss.closeTodosDrawer" : "Close Todos drawer", - "menu.Todoss.openTodosDrawer" : "Open Todos drawer", + "menu.Todoss.closeTodosDrawer" : "Tutup laci Todos", + "menu.Todoss.openTodosDrawer" : "Buka laci Todos", "menu.app.about" : "Tentang Franz", "menu.app.announcement" : "Yang baru", "menu.app.checkForUpdates" : "Periksa versi baru", @@ -81,9 +81,9 @@ "menu.file" : "Berkas", "menu.help" : "Bantuan", "menu.help.changelog" : "Log Perubahan", - "menu.help.debugInfo" : "Copy Debug Information", - "menu.help.debugInfoCopiedBody" : "Your Debug Information has been copied to your clipboard.", - "menu.help.debugInfoCopiedHeadline" : "Franz Debug Information", + "menu.help.debugInfo" : "Salin Informasi Debug", + "menu.help.debugInfoCopiedBody" : "Informasi Debug Anda telah disalin ke papan klip.", + "menu.help.debugInfoCopiedHeadline" : "Informasi Debug Franz", "menu.help.learnMore" : "Pelajari Lebih Lanjut", "menu.help.privacy" : "Pernyataan Privasi", "menu.help.support" : "Dukungan", @@ -91,10 +91,10 @@ "menu.services" : "Layanan", "menu.services.activatePreviousService" : "Aktifkan layanan sebelumnya", "menu.services.addNewService" : "Tambahkan Layanan Baru...", - "menu.services.goHome" : "Home", + "menu.services.goHome" : "Beranda", "menu.services.setNextServiceActive" : "Aktifkan layanan berikutnya", "menu.todos" : "Todos", - "menu.todos.enableTodos" : "Enable Todos", + "menu.todos.enableTodos" : "Aktifkan Todos", "menu.view" : "Tampilan", "menu.view.enterFullScreen" : "Masuk ke Mode Layar Penuh", "menu.view.exitFullScreen" : "Keluar dari Layar Penuh", @@ -104,13 +104,13 @@ "menu.view.toggleDevTools" : "Aktif\/Nonaktifkan alat pengembang", "menu.view.toggleFullScreen" : "Aktif\/Nonaktifkan Layar Penuh", "menu.view.toggleServiceDevTools" : "Aktif\/Nonaktifkan layanan alat pengembang", - "menu.view.toggleTodosDevTools" : "Toggle Todos Developer Tools", + "menu.view.toggleTodosDevTools" : "Aktif\/Nonaktifkan Alat Pengembang Todos", "menu.view.zoomIn" : "Perbesar", "menu.view.zoomOut" : "Perkecil", "menu.window" : "Jendela", "menu.window.close" : "Tutup", "menu.window.minimize" : "Minimalkan", - "menu.workspaces" : "Ruang kerja", + "menu.workspaces" : "Ruang Kerja", "menu.workspaces.addNewWorkspace" : "Tambah Ruang Kerja Baru...", "menu.workspaces.closeWorkspaceDrawer" : "Tutup laci ruang kerja", "menu.workspaces.defaultWorkspace" : "Semua layanan", @@ -123,33 +123,33 @@ "password.submit.label" : "Kirim", "password.successInfo" : "Periksa email Anda", "premiumFeature.button.upgradeAccount" : "Tingkatkan akun", - "pricing.features.adFree" : "Forever ad-free", - "pricing.features.appDelays" : "No Waiting Screens", - "pricing.features.customWebsites" : "Add Custom Websites", - "pricing.features.onPremise" : "On-premise & other Hosted Services", - "pricing.features.serviceProxies" : "Service Proxies", - "pricing.features.spellchecker" : "Spellchecker support", - "pricing.features.teamManagement" : "Team Management", - "pricing.features.thirdPartyServices" : "Install 3rd party services", - "pricing.features.unlimitedServices" : "Add unlimited services", - "pricing.features.workspaces" : "Ruang kerja", + "pricing.features.adFree" : "Bebas iklan selamanya", + "pricing.features.appDelays" : "Tanpa Layar Penjeda Waktu", + "pricing.features.customWebsites" : "Tambahkan Situs Web Khusus", + "pricing.features.onPremise" : "Layanan On-premise dan Hosted lainnya", + "pricing.features.serviceProxies" : "Proksi Layanan", + "pricing.features.spellchecker" : "Dukungan pengecek ejaan", + "pricing.features.teamManagement" : "Manajemen Tim", + "pricing.features.thirdPartyServices" : "Instal layanan pihak ketiga", + "pricing.features.unlimitedServices" : "Tambahkan layanan tak terbatas", + "pricing.features.workspaces" : "Ruang Kerja", "pricing.plan.free" : "Franz Free", "pricing.plan.legacy" : "Franz Premium", "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", + "pricing.plan.personal-monthly" : "Franz Personal Bulanan", + "pricing.plan.personal-yearly" : "Franz Personal Tahunan", "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", - "pricing.trial.cta.skip" : "Continue to Franz", - "pricing.trial.error" : "Sorry, we could not activate your trial!", - "pricing.trial.features.headline" : "Franz Professional includes:", + "pricing.plan.pro-monthly" : "Franz Professional Bulanan", + "pricing.plan.pro-yearly" : "Franz Professional Tahunan", + "pricing.trial.cta.accept" : "Ya, tingkatkan akun saya ke Franz Professional", + "pricing.trial.cta.skip" : "Lanjutkan ke Franz", + "pricing.trial.error" : "Maaf, kami tidak bisa mengaktifkan uji coba Anda!", + "pricing.trial.features.headline" : "Franz Professional menyertakan:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", - "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", - "pricing.trial.terms.headline" : "No strings attached", - "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.subheadline" : "Penawaran spesial untuk Anda:", + "pricing.trial.terms.automaticTrialEnd" : "Uji coba gratis Anda berakhir secara otomatis dalam 14 hari", + "pricing.trial.terms.headline" : "Tanpa embel-embel", + "pricing.trial.terms.noCreditCard" : "Tidak memerlukan kartu kredit", "service.crashHandler.action" : "Muat Ulang {name}", "service.crashHandler.autoReload" : "Mencoba memulihkan {name} secara otomatis dalam {seconds} detik", "service.crashHandler.headline" : "Ya Ampun!", @@ -161,11 +161,11 @@ "service.errorHandler.headline" : "Oh tidak!", "service.errorHandler.message" : "Kesalahan", "service.errorHandler.text" : "{name} gagal dimuat", - "service.restrictedHandler.action" : "Upgrade Account", - "service.restrictedHandler.customUrl.headline" : "Franz Professional Plan required", - "service.restrictedHandler.customUrl.text" : "Please upgrade to the Franz Professional plan to use custom urls & self hosted services.", - "service.restrictedHandler.serviceLimit.headline" : "You have reached your service limit.", - "service.restrictedHandler.serviceLimit.text" : "Please upgrade your account to use more than {count} services.", + "service.restrictedHandler.action" : "Tingkatkan Akun", + "service.restrictedHandler.customUrl.headline" : "Diperlukan Paket Franz Professional", + "service.restrictedHandler.customUrl.text" : "Tingkatkan ke paket Franz Professional untuk menggunakan URL khusus dan layanan hosted mandiri.", + "service.restrictedHandler.serviceLimit.headline" : "Anda telah mencapai batas kota layanan.", + "service.restrictedHandler.serviceLimit.text" : "Tingkatkan akun Anda untuk menggunakan lebih dari {count} layanan.", "service.webviewLoader.loading" : "Memuat", "services.getStarted" : "Memulai", "services.welcome" : "Selamat datang di Franz", @@ -183,19 +183,19 @@ "settings.account.headlinePassword" : "Ubah sandi", "settings.account.headlineProfile" : "Perbarui profil", "settings.account.headlineSubscription" : "Langganan Anda", - "settings.account.headlineTrialUpgrade" : "Get the free 14 day Franz Professional Trial", - "settings.account.headlineUpgradeAccount" : "Upgrade your account & get the full Franz experience", + "settings.account.headlineTrialUpgrade" : "Dapatkan Uji Coba Gratis 14 Hari Franz Professional", + "settings.account.headlineUpgradeAccount" : "Tingkatkan akun Anda dan dapatkan pengalaman Franz lengkap", "settings.account.invoiceDownload" : "Unduh", "settings.account.manageSubscription.label" : "Kelola langganan Anda", "settings.account.successInfo" : "Perubahan Anda telah disimpan", - "settings.account.trial" : "Free Trial", - "settings.account.trialEndsIn" : "Your free trial ends in {duration}.", - "settings.account.trialUpdateBillingInfo" : "Please update your billing info to continue using {license} after your trial period.", + "settings.account.trial" : "Uji Coba Gratis", + "settings.account.trialEndsIn" : "Uji coba gratis Anda berakhir dalam {duration}.", + "settings.account.trialUpdateBillingInfo" : "Perbarui informasi penagihan Anda untuk melanjutkan menggunakan {license} setelah uji coba Anda berakhir.", "settings.account.tryReloadServices" : "Coba lagi", "settings.account.tryReloadUserInfoRequest" : "Coba lagi", - "settings.account.upgradeToPro.label" : "Upgrade to Franz Professional", + "settings.account.upgradeToPro.label" : "Tingkatkan ke Franz Professional", "settings.account.userInfoRequestFailed" : "Gagal memuat informasi pengguna", - "settings.account.yourLicense" : "Your Franz License", + "settings.account.yourLicense" : "Lisensi Franz Anda", "settings.app.buttonClearAllCache" : "Bersihkan singgahan", "settings.app.buttonInstallUpdate" : "Mulai ulang dan instal versi baru", "settings.app.buttonSearchForUpdate" : "Periksa pembaruan", @@ -208,8 +208,8 @@ "settings.app.form.enableGPUAcceleration" : "Aktifkan Akselerasi GPU", "settings.app.form.enableSpellchecking" : "Aktifkan pemeriksaan ejaan", "settings.app.form.enableSystemTray" : "Tampilkan Franz di baki sistem", - "settings.app.form.enableTodos" : "Enable Franz Todos", - "settings.app.form.keepAllWorkspacesLoaded" : "Keep all workspaces loaded", + "settings.app.form.enableTodos" : "Aktifkan Franz Todos", + "settings.app.form.keepAllWorkspacesLoaded" : "Muat semua ruang kerja Anda", "settings.app.form.language" : "Bahasa", "settings.app.form.minimizeToSystemTray" : "Perkecil Franz ke baki sistem", "settings.app.form.runInBackground" : "Tetap jalankan Franz di latar belakang saat menutup jendela", @@ -238,13 +238,13 @@ "settings.navigation.yourServices" : "Layanan Anda", "settings.navigation.yourWorkspaces" : "Ruang kerja Anda", "settings.recipes.all" : "Semua layanan", - "settings.recipes.custom" : "Custom Services", - "settings.recipes.customService.headline.communityRecipes" : "Community 3rd Party Recipes", - "settings.recipes.customService.headline.customRecipes" : "Custom 3rd Party Recipes", - "settings.recipes.customService.headline.devRecipes" : "Your Development Service Recipes", - "settings.recipes.customService.intro" : "To add a custom service, copy the service recipe to:", - "settings.recipes.customService.openDevDocs" : "Developer Documentation", - "settings.recipes.customService.openFolder" : "Open folder", + "settings.recipes.custom" : "Layanan Khusus", + "settings.recipes.customService.headline.communityRecipes" : "Resep Komunitas Pihak Ketiga", + "settings.recipes.customService.headline.customRecipes" : "Resep Khusus Pihak Ketiga", + "settings.recipes.customService.headline.devRecipes" : "Resep Layanan Pengembangan Anda", + "settings.recipes.customService.intro" : "Untuk menambahkan layanan khusus, salin resep layanan ke:", + "settings.recipes.customService.openDevDocs" : "Dokumentasi Pengembang", + "settings.recipes.customService.openFolder" : "Buka folder", "settings.recipes.headline" : "Layanan tersedia", "settings.recipes.missingService" : "Layanan tidak tersedia?", "settings.recipes.mostPopular" : "Terpopuler", @@ -257,7 +257,7 @@ "settings.service.form.addServiceHeadline" : "Tambahkan {name}", "settings.service.form.availableServices" : "Layanan tersedia", "settings.service.form.customUrl" : "Server khusus", - "settings.service.form.customUrlPremiumInfo" : "Untuk menambahkan layanan hosted yang dijalankan mandiri, Anda membutuhkan Franz Premium Supporter Account.", + "settings.service.form.customUrlPremiumInfo" : "Untuk menambahkan layanan hosted mandiri, Anda membutuhkan Franz Premium Supporter Account.", "settings.service.form.customUrlUpgradeAccount" : "Tingkatkan akun Anda", "settings.service.form.customUrlValidationError" : "Gagal memvalidasi server {nama} khusus.", "settings.service.form.deleteButton" : "Hapus layanan", @@ -331,10 +331,10 @@ "settings.workspaces.workspaceFeatureInfo" : "Ruang Kerja Franz dapat digunakan untuk tetap fokus pada hal penting saat ini. Siapkan sekelompok layanan yang berbeda dan dengan mudah beralih ke yang lain. Anda yang memutuskan layanan mana yang Anda perlukan dan kapan, agar kami bisa membantu Anda tetap berada di garis depan - atau dengan mudah mengakhiri hari kerja kapan saja Anda inginkan.", "settings.workspaces.workspacesRequestFailed" : "Tidak dapat memuat ruang kerja Anda", "sidebar.addNewService" : "Tambahkan layanan baru", - "sidebar.closeTodosDrawer" : "Close Franz Todos", + "sidebar.closeTodosDrawer" : "Tutup Franz Todos", "sidebar.closeWorkspaceDrawer" : "Tutup laci ruang kerja", "sidebar.muteApp" : "Nonaktifkan pemberitahuan & audio", - "sidebar.openTodosDrawer" : "Open Franz Todos", + "sidebar.openTodosDrawer" : "Buka Franz Todos", "sidebar.openWorkspaceDrawer" : "Buka laci ruang kerja", "sidebar.settings" : "Pengaturan", "sidebar.unmuteApp" : "Aktifkan pemberitahuan", @@ -349,12 +349,12 @@ "signup.link.login" : "Sudah punya akun, masuk?", "signup.password.label" : "Sandi", "signup.submit.label" : "Buat akun", - "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", - "subscription.cta.allOptions" : "See all options", - "subscription.cta.choosePlan" : "Choose your plan", - "subscription.includedProFeatures" : "The Franz Professional Plan includes:", - "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", - "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", + "subscription.cta.activateTrial" : "Ya, mulai uji coba gratis Franz Professional", + "subscription.cta.allOptions" : "Lihat semua opsi", + "subscription.cta.choosePlan" : "Pilih paket Anda", + "subscription.includedProFeatures" : "Paket Franz Professional menyertakan:", + "subscription.teaser.includedFeatures" : "Paket Franz Berbayar mencakup:", + "subscription.teaser.intro" : "Franz 5 menyertakan berbagai macan fitur baru untuk mempercanggih komunikasi sehari-hari. Lihat paket baru kami dan temukan yang cocok untuk Anda!", "subscriptionPopup.buttonCancel" : "Batalkan", "subscriptionPopup.buttonDone" : "Selesai", "tabs.item.deleteService" : "Hapus layanan", @@ -371,10 +371,10 @@ "validation.oneRequired" : "Setidaknya diperlukan satu", "validation.required" : "{field} wajib diisi", "validation.url" : "{field} bukan URL yang benar", - "webControls.back" : "Back", - "webControls.forward" : "Forward", - "webControls.goHome" : "Home", - "webControls.openInBrowser" : "Open in Browser", + "webControls.back" : "Mundur", + "webControls.forward" : "Maju", + "webControls.goHome" : "Beranda", + "webControls.openInBrowser" : "Buka di Browser", "webControls.reload" : "Muat Ulang", "welcome.loginButton" : "Masuk ke akun Anda", "welcome.signupButton" : "Buat akun gratis", -- cgit v1.2.3-70-g09d2 From 69f0a063fd64ee10984f1c7ed0b6fa0cd26bbf5c Mon Sep 17 00:00:00 2001 From: FranzBot Date: Wed, 9 Oct 2019 12:00:21 +0000 Subject: Automatic i18n update (i18n.meetfranz.com) --- src/i18n/locales/fr.json | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 5ba652004..7bfa523f1 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -9,7 +9,7 @@ "feature.delayApp.trial.headline" : "Obtenir l'essai gratuit de 14 jours pour Franz Professionnel et éviter la file d'attente", "feature.delayApp.upgrade.action" : "Acheter une license Franz", "feature.delayApp.upgrade.actionShort" : "Augmenter le niveau de mon compte", - "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", + "feature.serviceLimit.limitReached" : "Vous avez ajouté {amount} services sur les {limit} qui sont inclus dans votre offre. Veuillez améliorer votre compte pour ajouter plus de services.", "feature.shareFranz.action.email" : "Envoyer par mail", "feature.shareFranz.action.facebook" : "Partager sur Facebook", "feature.shareFranz.action.twitter" : "Partager sur Twitter", @@ -17,9 +17,9 @@ "feature.shareFranz.shareText.email" : "J'ai ajouté {count} services sur Franz ! Télécharger l'appli gratuite pour WhatsApp, Messenger, Skype et autres sur www.meetfranz.com", "feature.shareFranz.shareText.twitter" : "J'ai ajouté {count} services à Franz! Télécharge l'application gratuite pour WhatsApp, Messenger, Slack, Skype et autres sur www.meetfranz.com \/cc @FranzMessenger", "feature.shareFranz.text" : "Dites à vos amis et collègues a quel point Franz est super et aidez nous à faire passer le mot.", - "feature.todos.premium.info" : "Franz Todos are available to premium users now!", - "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", - "feature.todos.premium.upgrade" : "Upgrade Account", + "feature.todos.premium.info" : "Franz Todos est maintenant disponible pour les utilisateurs premium !", + "feature.todos.premium.rollout" : "Tous les autres doivent encore attendre un peu.", + "feature.todos.premium.upgrade" : "Améliorer son Compte", "global.api.unhealthy" : "Impossible de se connecter aux services en ligne de Franz", "global.franzProRequired" : "Un abonnement Franz Professionnel est requis", "global.notConnectedToTheInternet" : "Vous n'êtes pas connecté à Internet.", @@ -27,7 +27,7 @@ "global.spellchecking.autodetect" : "Detecter automatiquement la langue", "global.spellchecking.autodetect.short" : "Automatiquement", "global.spellchecking.language" : "Langue de la vérification orthographique", - "global.upgradeButton.upgradeToPro" : "Upgrade to Franz Professional", + "global.upgradeButton.upgradeToPro" : "Passer à Franz Professional", "import.headline" : "Importez vos services depuis la version 4 de Franz.", "import.notSupportedHeadline" : "Ces services ne sont pas encore supportés par la version 5 de Franz", "import.skip.label" : "Je veux ajouter des services manuellement", @@ -37,7 +37,7 @@ "infobar.buttonReloadServices" : "Recharger les services", "infobar.requiredRequestsFailed" : "Impossible d'accéder aux services et informations de l'utilisateur", "infobar.servicesUpdated" : "Vos services ont été mis à jour.", - "infobar.trialActivated" : "Your trial was successfully activated. Happy messaging!", + "infobar.trialActivated" : "Votre essai a été activé avec succès. Bon tchat !", "infobar.updateAvailable" : "Une nouvelle mise à jour de Franz est disponible.", "invite.email.label" : "Adresse Email", "invite.headline.friends" : "Invitez 3 amis ou collègues", @@ -54,8 +54,8 @@ "login.serverLogout" : "Votre session a expiré. Reconnectez-vous s'il vous plaît.", "login.submit.label" : "Se connecter", "login.tokenExpired" : "Votre session a expiré, veuillez vous reconnecter.", - "menu.Todoss.closeTodosDrawer" : "Close Todos drawer", - "menu.Todoss.openTodosDrawer" : "Open Todos drawer", + "menu.Todoss.closeTodosDrawer" : "Fermer Todos", + "menu.Todoss.openTodosDrawer" : "Ouvrir Todos", "menu.app.about" : "À propos de Franz", "menu.app.announcement" : "Quoi de neuf ? ", "menu.app.checkForUpdates" : "Vérifier les mises à jour", @@ -82,8 +82,8 @@ "menu.help" : "Aide", "menu.help.changelog" : "Liste des modifications", "menu.help.debugInfo" : "Copier les information de débogage", - "menu.help.debugInfoCopiedBody" : "Your Debug Information has been copied to your clipboard.", - "menu.help.debugInfoCopiedHeadline" : "Franz Debug Information", + "menu.help.debugInfoCopiedBody" : "Vos informations de débogage ont été copiées dans le presse-papier.", + "menu.help.debugInfoCopiedHeadline" : "Information de débogage", "menu.help.learnMore" : "En savoir plus", "menu.help.privacy" : "Déclaration de confidentialité", "menu.help.support" : "Assistance", @@ -91,10 +91,10 @@ "menu.services" : "Services", "menu.services.activatePreviousService" : "Activer le service précédent", "menu.services.addNewService" : "Ajouter un nouveau service...", - "menu.services.goHome" : "Home", + "menu.services.goHome" : "Accueil", "menu.services.setNextServiceActive" : "Activer le service suivant", - "menu.todos" : "Todos", - "menu.todos.enableTodos" : "Enable Todos", + "menu.todos" : "Tâches", + "menu.todos.enableTodos" : "Activers les Tâches", "menu.view" : "Aperçu", "menu.view.enterFullScreen" : "Entrer en mode plein écran", "menu.view.exitFullScreen" : "Sortir du mode plein écran", @@ -161,7 +161,7 @@ "service.errorHandler.headline" : "Oh non !", "service.errorHandler.message" : "Erreur", "service.errorHandler.text" : "Le chargement de {name} a échoué.", - "service.restrictedHandler.action" : "Upgrade Account", + "service.restrictedHandler.action" : "Améliorer son Compte", "service.restrictedHandler.customUrl.headline" : "Franz Professional Plan required", "service.restrictedHandler.customUrl.text" : "Please upgrade to the Franz Professional plan to use custom urls & self hosted services.", "service.restrictedHandler.serviceLimit.headline" : "Vous avez atteint votre limite de services.", @@ -193,7 +193,7 @@ "settings.account.trialUpdateBillingInfo" : "Please update your billing info to continue using {license} after your trial period.", "settings.account.tryReloadServices" : "Réessayer", "settings.account.tryReloadUserInfoRequest" : "Réessayer", - "settings.account.upgradeToPro.label" : "Upgrade to Franz Professional", + "settings.account.upgradeToPro.label" : "Passer à Franz Professional", "settings.account.userInfoRequestFailed" : "Impossible de charger les informations de l'utilisateur", "settings.account.yourLicense" : "Your Franz License", "settings.app.buttonClearAllCache" : "Vider le cache", @@ -373,7 +373,7 @@ "validation.url" : "{field} n'est pas une URL valide", "webControls.back" : "Back", "webControls.forward" : "Forward", - "webControls.goHome" : "Home", + "webControls.goHome" : "Accueil", "webControls.openInBrowser" : "Open in Browser", "webControls.reload" : "Reload", "welcome.loginButton" : "Se connecter sur son compte", -- cgit v1.2.3-70-g09d2 From 106174c56df9dee1647a9e14d0ffdee7336737b0 Mon Sep 17 00:00:00 2001 From: FranzBot Date: Fri, 11 Oct 2019 00:00:21 +0000 Subject: Automatic i18n update (i18n.meetfranz.com) --- src/i18n/locales/pt-BR.json | 64 ++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 32 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index dfdaaa1ee..df5404ccf 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -6,7 +6,7 @@ "feature.delayApp.text" : "Franz continuará em {seconds} segundos.", "feature.delayApp.trial.action" : "Sim, eu quero o período de testes gratuito de 14 dias do Franz Professional", "feature.delayApp.trial.actionShort" : "Ativar período de testes gratuito do Franz Professional", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", + "feature.delayApp.trial.headline" : "Teste o Franz Professional por 14 dias grátis e fure a fila.", "feature.delayApp.upgrade.action" : "Adquira uma licença de suporte Franz", "feature.delayApp.upgrade.actionShort" : "Atualizar conta", "feature.serviceLimit.limitReached" : "Você adicionou {amount} serviços de um total de {limit} que estão inclusos no seu plano. Por favor, atualize sua conta para adicionar mais serviços.", @@ -19,9 +19,9 @@ "feature.shareFranz.text" : "Conte aos seus amigos e colegas o quanto incrível o Franz é e nos ajude a espalhar a mensagem. ", "feature.todos.premium.info" : "As Listas de Tarefa do Franz estão disponíveis para usuários premium!", "feature.todos.premium.rollout" : "As outras pessoas terão que esperar um pouquinho mais.", - "feature.todos.premium.upgrade" : "Upgrade Account", + "feature.todos.premium.upgrade" : "Melhore sua conta", "global.api.unhealthy" : "Não foi possível conectar-se aos serviços on-line do Franz.", - "global.franzProRequired" : "Franz Professional Required", + "global.franzProRequired" : "Franz Profissional necessário", "global.notConnectedToTheInternet" : "Você não está conectado à internet", "global.spellchecker.useDefault" : "Use o padrão do sistema ({default})", "global.spellchecking.autodetect" : "Detectar idioma automaticamente.", @@ -91,10 +91,10 @@ "menu.services" : "Serviços", "menu.services.activatePreviousService" : "Pular para serviço anterior", "menu.services.addNewService" : "Adicionar Novo Serviço", - "menu.services.goHome" : "Home", + "menu.services.goHome" : "Inicio", "menu.services.setNextServiceActive" : "Pular para próximo serviço", - "menu.todos" : "Todos", - "menu.todos.enableTodos" : "Enable Todos", + "menu.todos" : "A fazer", + "menu.todos.enableTodos" : "Habilitar logs", "menu.view" : "Visualizar ", "menu.view.enterFullScreen" : "Modo Tela Cheia", "menu.view.exitFullScreen" : "Sair da Tela Cheia", @@ -123,15 +123,15 @@ "password.submit.label" : "Enviar", "password.successInfo" : "Por favor, verifique o seu e-mail", "premiumFeature.button.upgradeAccount" : "Atualizar conta", - "pricing.features.adFree" : "Forever ad-free", + "pricing.features.adFree" : "Pra sempre sem propagandas", "pricing.features.appDelays" : "Sem Telas de Espera", "pricing.features.customWebsites" : "Adicionar Websites Personalizados", "pricing.features.onPremise" : "On-premise & other Hosted Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Gestão de Time", - "pricing.features.thirdPartyServices" : "Install 3rd party services", - "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.thirdPartyServices" : "Instalar serviços de terceiros", + "pricing.features.unlimitedServices" : "Adicione ilimitados serviços", "pricing.features.workspaces" : "Áreas de Trabalho", "pricing.plan.free" : "Franz Gratuito", "pricing.plan.legacy" : "Franz Premium", @@ -149,7 +149,7 @@ "pricing.trial.subheadline" : "Sua oferta pessoal de boas-vindas:", "pricing.trial.terms.automaticTrialEnd" : "Seu período de testes encerra automaticamente em 14 dias", "pricing.trial.terms.headline" : "Sem vínculos", - "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.noCreditCard" : "Cartão de crédito não exigido", "service.crashHandler.action" : "Recarregar {name}", "service.crashHandler.autoReload" : "Tentando reestabelecer {name} automaticamente em {seconds} segundos", "service.crashHandler.headline" : "Ah, não!", @@ -161,11 +161,11 @@ "service.errorHandler.headline" : "Ah, não!", "service.errorHandler.message" : "Erro", "service.errorHandler.text" : "{name} não pôde ser carregado.", - "service.restrictedHandler.action" : "Upgrade Account", - "service.restrictedHandler.customUrl.headline" : "Franz Professional Plan required", - "service.restrictedHandler.customUrl.text" : "Please upgrade to the Franz Professional plan to use custom urls & self hosted services.", - "service.restrictedHandler.serviceLimit.headline" : "You have reached your service limit.", - "service.restrictedHandler.serviceLimit.text" : "Please upgrade your account to use more than {count} services.", + "service.restrictedHandler.action" : "Melhorar sua conta", + "service.restrictedHandler.customUrl.headline" : "Franz Professional exigido", + "service.restrictedHandler.customUrl.text" : "Por favor, atualize para o Franz Professional para usar urls customizadas e serviços próprios", + "service.restrictedHandler.serviceLimit.headline" : "Você atingiu seu limite de serviço", + "service.restrictedHandler.serviceLimit.text" : "Por favor, atualize sua conta para usar mais do que {count} serviços", "service.webviewLoader.loading" : "Carregando", "services.getStarted" : "Iniciar", "services.welcome" : "Bem-vindo ao Franz!", @@ -183,19 +183,19 @@ "settings.account.headlinePassword" : "Mudar senha", "settings.account.headlineProfile" : "Atualizar perfil", "settings.account.headlineSubscription" : "Sua assinatura", - "settings.account.headlineTrialUpgrade" : "Get the free 14 day Franz Professional Trial", - "settings.account.headlineUpgradeAccount" : "Upgrade your account & get the full Franz experience", + "settings.account.headlineTrialUpgrade" : "Teste o Franz Professional por 14 dias de graça.", + "settings.account.headlineUpgradeAccount" : "Dê um upgrade na sua conta e tenha uma completa experiência do Franz", "settings.account.invoiceDownload" : "Baixar", "settings.account.manageSubscription.label" : "Gerencie a sua assinatura", "settings.account.successInfo" : "Suas alterações foram gravadas", - "settings.account.trial" : "Free Trial", - "settings.account.trialEndsIn" : "Your free trial ends in {duration}.", - "settings.account.trialUpdateBillingInfo" : "Please update your billing info to continue using {license} after your trial period.", + "settings.account.trial" : "Teste grátis", + "settings.account.trialEndsIn" : "Seu teste grátis acaba em {duration}", + "settings.account.trialUpdateBillingInfo" : "Por favor, atualize suas informações de compra para continuar usando {license} depois do período de teste grátis", "settings.account.tryReloadServices" : "Tente novamente", "settings.account.tryReloadUserInfoRequest" : "Tentar novamente", - "settings.account.upgradeToPro.label" : "Atualizar para o Franz Profissional", + "settings.account.upgradeToPro.label" : "Upgrade para o Franz Professional", "settings.account.userInfoRequestFailed" : "Não foi possível carregar as informações do usuário", - "settings.account.yourLicense" : "Your Franz License", + "settings.account.yourLicense" : "Sua lincença do Franz", "settings.app.buttonClearAllCache" : "Limpar cache", "settings.app.buttonInstallUpdate" : "Reiniciar e instalar atualização", "settings.app.buttonSearchForUpdate" : "Verificar por atualizações", @@ -209,7 +209,7 @@ "settings.app.form.enableSpellchecking" : "Ativar correção ortográfica", "settings.app.form.enableSystemTray" : "Exibir o Franz na barra de sistema", "settings.app.form.enableTodos" : "Enable Franz Todos", - "settings.app.form.keepAllWorkspacesLoaded" : "Keep all workspaces loaded", + "settings.app.form.keepAllWorkspacesLoaded" : "Matenha todos os workspaces carregados", "settings.app.form.language" : "Idioma", "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a área de sistema", "settings.app.form.runInBackground" : "Manter o Franz no fundo quando fechar a janela", @@ -238,13 +238,13 @@ "settings.navigation.yourServices" : "Seus serviços", "settings.navigation.yourWorkspaces" : "Suas áreas de trabalho", "settings.recipes.all" : "Todos os serviços", - "settings.recipes.custom" : "Custom Services", + "settings.recipes.custom" : "Serviços customizados", "settings.recipes.customService.headline.communityRecipes" : "Community 3rd Party Recipes", "settings.recipes.customService.headline.customRecipes" : "Custom 3rd Party Recipes", "settings.recipes.customService.headline.devRecipes" : "Your Development Service Recipes", "settings.recipes.customService.intro" : "To add a custom service, copy the service recipe to:", - "settings.recipes.customService.openDevDocs" : "Developer Documentation", - "settings.recipes.customService.openFolder" : "Open folder", + "settings.recipes.customService.openDevDocs" : "Documentação do desenvolvedor", + "settings.recipes.customService.openFolder" : "Abrir pasta", "settings.recipes.headline" : "Serviços disponíveis", "settings.recipes.missingService" : "Sentiu falta de algum serviço?", "settings.recipes.mostPopular" : "Mais populares", @@ -350,9 +350,9 @@ "signup.password.label" : "Senha", "signup.submit.label" : "Criar uma conta", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", - "subscription.cta.allOptions" : "See all options", - "subscription.cta.choosePlan" : "Choose your plan", - "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.cta.allOptions" : "Ver todas as opções", + "subscription.cta.choosePlan" : "Escolha seu plano", + "subscription.includedProFeatures" : "O Franz Professional inclui:", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "O Franz 5 vem com uma variedade de novas funcionalidades para melhorar a sua comunicação diária - pilhas inclusas. Confira os nossos novos planos e encontre aquele que melhor serve para você!", "subscriptionPopup.buttonCancel" : "Cancelar", @@ -371,10 +371,10 @@ "validation.oneRequired" : "Necessário pelo menos um", "validation.required" : "{campo} obrigatório", "validation.url" : "{campo} essa URL não é válida", - "webControls.back" : "Back", - "webControls.forward" : "Forward", + "webControls.back" : "Voltar", + "webControls.forward" : "Avançar", "webControls.goHome" : "Home", - "webControls.openInBrowser" : "Open in Browser", + "webControls.openInBrowser" : "Abrir no navegador", "webControls.reload" : "Recarregar", "welcome.loginButton" : "Entrar na sua conta", "welcome.signupButton" : "Criar uma conta grátis", -- cgit v1.2.3-70-g09d2 From 91a0fb20ef02dfa342cf26df3e047b2bd4370b9f Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Tue, 15 Oct 2019 21:40:14 +0200 Subject: simplify plan selection --- packages/theme/src/themes/dark/index.ts | 4 +- src/actions/index.js | 2 + src/components/auth/Pricing.js | 17 +- src/components/layout/AppLayout.js | 2 + .../settings/account/AccountDashboard.js | 3 +- src/components/ui/FeatureItem.js | 1 + src/components/ui/FeatureList.js | 73 +++- src/config.js | 8 +- src/containers/auth/PricingScreen.js | 3 +- src/features/planSelection/actions.js | 13 + src/features/planSelection/api.js | 26 ++ src/features/planSelection/components/PlanItem.js | 186 ++++++++++ .../planSelection/components/PlanSelection.js | 233 ++++++++++++ .../containers/PlanSelectionScreen.js | 138 +++++++ src/features/planSelection/index.js | 30 ++ src/features/planSelection/store.js | 113 ++++++ src/features/shareFranz/index.js | 3 +- src/helpers/plan-helpers.js | 8 +- src/i18n/locales/defaultMessages.json | 396 +++++++++++++++++++-- src/i18n/locales/en-US.json | 46 ++- src/i18n/messages/src/components/auth/Pricing.json | 4 +- .../messages/src/components/layout/AppLayout.json | 12 +- .../messages/src/components/ui/FeatureList.json | 105 ++++-- .../planSelection/components/PlanItem.json | 28 ++ .../planSelection/components/PlanSelection.json | 145 ++++++++ .../planSelection/components/PlanTeaser.json | 28 ++ .../containers/PlanSelectionScreen.json | 54 +++ src/i18n/messages/src/helpers/plan-helpers.json | 8 +- src/stores/FeaturesStore.js | 2 + src/stores/index.js | 2 + 30 files changed, 1589 insertions(+), 104 deletions(-) create mode 100644 src/features/planSelection/actions.js create mode 100644 src/features/planSelection/api.js create mode 100644 src/features/planSelection/components/PlanItem.js create mode 100644 src/features/planSelection/components/PlanSelection.js create mode 100644 src/features/planSelection/containers/PlanSelectionScreen.js create mode 100644 src/features/planSelection/index.js create mode 100644 src/features/planSelection/store.js create mode 100644 src/i18n/messages/src/features/planSelection/components/PlanItem.json create mode 100644 src/i18n/messages/src/features/planSelection/components/PlanSelection.json create mode 100644 src/i18n/messages/src/features/planSelection/components/PlanTeaser.json create mode 100644 src/i18n/messages/src/features/planSelection/containers/PlanSelectionScreen.json (limited to 'src/i18n') diff --git a/packages/theme/src/themes/dark/index.ts b/packages/theme/src/themes/dark/index.ts index 67d0cfb71..9a66f3463 100644 --- a/packages/theme/src/themes/dark/index.ts +++ b/packages/theme/src/themes/dark/index.ts @@ -65,8 +65,8 @@ export const selectOptionItemHoverColor = selectColor; export const selectSearchColor = inputBackground; // Modal -export const colorModalOverlayBackground = color(legacyStyles.darkThemeBlack).alpha(0.8).rgb().string(); -export const colorModalBackground = colorContentBackground; +export const colorModalOverlayBackground = color(legacyStyles.darkThemeBlack).alpha(0.5).rgb().string(); +export const colorModalBackground = legacyStyles.darkThemeGrayDark; // Services export const services = merge({}, defaultStyles.services, { diff --git a/src/actions/index.js b/src/actions/index.js index 336344d76..1c033fb96 100644 --- a/src/actions/index.js +++ b/src/actions/index.js @@ -14,6 +14,7 @@ import requests from './requests'; import announcements from '../features/announcements/actions'; import workspaces from '../features/workspaces/actions'; import todos from '../features/todos/actions'; +import planSelection from '../features/planSelection/actions'; const actions = Object.assign({}, { service, @@ -33,4 +34,5 @@ export default Object.assign( { announcements }, { workspaces }, { todos }, + { planSelection }, ); diff --git a/src/components/auth/Pricing.js b/src/components/auth/Pricing.js index cbeaaa5d9..40ce49814 100644 --- a/src/components/auth/Pricing.js +++ b/src/components/auth/Pricing.js @@ -18,7 +18,7 @@ const messages = defineMessages({ }, personalOffer: { id: 'pricing.trial.subheadline', - defaultMessage: '!!!Your personal welcome offer:', + defaultMessage: '!!!Here\'s a special welcome for you:', }, noStringsAttachedHeadline: { id: 'pricing.trial.terms.headline', @@ -38,7 +38,7 @@ const messages = defineMessages({ }, ctaAccept: { id: 'pricing.trial.cta.accept', - defaultMessage: '!!!Yes, upgrade my account to Franz Professional', + defaultMessage: '!!!Start my 14-day Franz Professional Trial ', }, ctaSkip: { id: 'pricing.trial.cta.skip', @@ -58,6 +58,7 @@ const styles = theme => ({ welcomeOffer: { textAlign: 'center', fontWeight: 'bold', + marginBottom: '6 !important', }, keyTerms: { textAlign: 'center', @@ -101,6 +102,7 @@ export default @observer @injectSheet(styles) class Signup extends Component { isLoadingRequiredData: PropTypes.bool.isRequired, isActivatingTrial: PropTypes.bool.isRequired, trialActivationError: PropTypes.bool.isRequired, + canSkipTrial: PropTypes.bool.isRequired, classes: PropTypes.object.isRequired, }; @@ -114,6 +116,7 @@ export default @observer @injectSheet(styles) class Signup extends Component { isLoadingRequiredData, isActivatingTrial, trialActivationError, + canSkipTrial, classes, } = this.props; const { intl } = this.context; @@ -138,7 +141,7 @@ export default @observer @injectSheet(styles) class Signup extends Component {

- Get the free 14 day Franz Professional trial and see your communication evolving. + For the next 14 days, we are going to give you the full Franz Professional experience so you can watch your communication evolve!

@@ -167,9 +170,11 @@ export default @observer @injectSheet(styles) class Signup extends Component { busy={isActivatingTrial} disabled={isLoadingRequiredData || isActivatingTrial} /> -

- {intl.formatMessage(messages.ctaSkip)} -

+ {canSkipTrial && ( +

+ {intl.formatMessage(messages.ctaSkip)} +

+ )}
diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js index 200777ae6..fe81b1911 100644 --- a/src/components/layout/AppLayout.js +++ b/src/components/layout/AppLayout.js @@ -19,6 +19,7 @@ import { workspaceStore } from '../../features/workspaces'; import AppUpdateInfoBar from '../AppUpdateInfoBar'; import TrialActivationInfoBar from '../TrialActivationInfoBar'; import Todos from '../../features/todos/containers/TodosScreen'; +import PlanSelection from '../../features/planSelection/containers/PlanSelectionScreen'; function createMarkup(HTMLString) { return { __html: HTMLString }; @@ -176,6 +177,7 @@ class AppLayout extends Component {
+ ); diff --git a/src/components/settings/account/AccountDashboard.js b/src/components/settings/account/AccountDashboard.js index 08e86fda6..9a1b31d0f 100644 --- a/src/components/settings/account/AccountDashboard.js +++ b/src/components/settings/account/AccountDashboard.js @@ -217,7 +217,8 @@ class AccountDashboard extends Component { {intl.formatMessage(messages.yourLicense)}

- {isPremiumOverrideUser ? 'Franz Premium' : planName} + Franz + {isPremiumOverrideUser ? 'Premium' : planName} {user.team.isTrial && ( <> {' – '} diff --git a/src/components/ui/FeatureItem.js b/src/components/ui/FeatureItem.js index 7c482c4d4..4926df470 100644 --- a/src/components/ui/FeatureItem.js +++ b/src/components/ui/FeatureItem.js @@ -10,6 +10,7 @@ const styles = theme => ({ padding: [8, 0], display: 'flex', alignItems: 'center', + textAlign: 'left', }, featureIcon: { fill: theme.brandSuccess, diff --git a/src/components/ui/FeatureList.js b/src/components/ui/FeatureList.js index 62944ad75..732b40e40 100644 --- a/src/components/ui/FeatureList.js +++ b/src/components/ui/FeatureList.js @@ -3,12 +3,33 @@ import PropTypes from 'prop-types'; import { defineMessages, intlShape } from 'react-intl'; import { FeatureItem } from './FeatureItem'; +import { PLANS } from '../../config'; const messages = defineMessages({ + availableRecipes: { + id: 'pricing.features.recipes', + defaultMessage: '!!!Choose from more than 70 Services', + }, + accountSync: { + id: 'pricing.features.accountSync', + defaultMessage: '!!!Account Synchronisation', + }, + desktopNotifications: { + id: 'pricing.features.desktopNotifications', + defaultMessage: '!!!Desktop Notifications', + }, unlimitedServices: { id: 'pricing.features.unlimitedServices', defaultMessage: '!!!Add unlimited services', }, + upToThreeServices: { + id: 'pricing.features.upToThreeServices', + defaultMessage: '!!!Add up to 3 services', + }, + upToSixServices: { + id: 'pricing.features.upToSixServices', + defaultMessage: '!!!Add up to 6 services', + }, spellchecker: { id: 'pricing.features.spellchecker', defaultMessage: '!!!Spellchecker support', @@ -51,6 +72,7 @@ export class FeatureList extends Component { static propTypes = { className: PropTypes.string, featureClassName: PropTypes.string, + plan: PropTypes.oneOf(PLANS).isRequired, }; static defaultProps = { @@ -66,21 +88,52 @@ export class FeatureList extends Component { const { className, featureClassName, + plan, } = this.props; const { intl } = this.context; + const features = []; + if (plan === PLANS.FREE) { + features.push( + messages.upToThreeServices, + messages.availableRecipes, + messages.accountSync, + messages.desktopNotifications, + ); + } else if (plan === PLANS.PERSONAL) { + features.push( + messages.upToSixServices, + messages.spellchecker, + messages.appDelays, + messages.adFree, + ); + } else if (plan === PLANS.PRO) { + features.push( + messages.unlimitedServices, + messages.workspaces, + messages.customWebsites, + // messages.onPremise, + messages.thirdPartyServices, + // messages.serviceProxies, + ); + } else { + features.push( + messages.unlimitedServices, + messages.spellchecker, + messages.workspaces, + messages.customWebsites, + messages.onPremise, + messages.thirdPartyServices, + messages.serviceProxies, + messages.teamManagement, + messages.appDelays, + messages.adFree, + ); + } + return (

    - - - - - - - - - - + {features.map(feature => )}
); } diff --git a/src/config.js b/src/config.js index 78a92d948..11e6cb91f 100644 --- a/src/config.js +++ b/src/config.js @@ -91,10 +91,10 @@ export const ALLOWED_PROTOCOLS = [ ]; export const PLANS = { - PERSONAL: 'PERSONAL', - PRO: 'PRO', - LEGACY: 'LEGACY', - FREE: 'FREE', + PERSONAL: 'personal', + PRO: 'pro', + LEGACY: 'legacy', + FREE: 'free', }; export const PLANS_MAPPING = { diff --git a/src/containers/auth/PricingScreen.js b/src/containers/auth/PricingScreen.js index af1651931..8e0ded16a 100644 --- a/src/containers/auth/PricingScreen.js +++ b/src/containers/auth/PricingScreen.js @@ -38,7 +38,7 @@ export default @inject('stores', 'actions') @observer class PricingScreen extend } = this.props; const { getUserInfoRequest, activateTrialRequest } = stores.user; - const { featuresRequest } = stores.features; + const { featuresRequest, features } = stores.features; return ( ); diff --git a/src/features/planSelection/actions.js b/src/features/planSelection/actions.js new file mode 100644 index 000000000..21aa38ace --- /dev/null +++ b/src/features/planSelection/actions.js @@ -0,0 +1,13 @@ +import PropTypes from 'prop-types'; +import { createActionsFromDefinitions } from '../../actions/lib/actions'; + +export const planSelectionActions = createActionsFromDefinitions({ + upgradeAccount: { + planId: PropTypes.string.isRequired, + onCloseWindow: PropTypes.func.isRequired, + }, + downgradeAccount: {}, + hideOverlay: {}, +}, PropTypes.checkPropTypes); + +export default planSelectionActions; diff --git a/src/features/planSelection/api.js b/src/features/planSelection/api.js new file mode 100644 index 000000000..734643f10 --- /dev/null +++ b/src/features/planSelection/api.js @@ -0,0 +1,26 @@ +import { sendAuthRequest } from '../../api/utils/auth'; +import { API, API_VERSION } from '../../environment'; +import Request from '../../stores/lib/Request'; + +const debug = require('debug')('Franz:feature:planSelection:api'); + +export const planSelectionApi = { + downgrade: async () => { + const url = `${API}/${API_VERSION}/payment/downgrade`; + const options = { + method: 'PUT', + }; + debug('downgrade UPDATE', url, options); + const result = await sendAuthRequest(url, options); + debug('downgrade RESULT', result); + if (!result.ok) throw result; + + return result.ok; + }, +}; + +export const downgradeUserRequest = new Request(planSelectionApi, 'downgrade'); + +export const resetApiRequests = () => { + downgradeUserRequest.reset(); +}; diff --git a/src/features/planSelection/components/PlanItem.js b/src/features/planSelection/components/PlanItem.js new file mode 100644 index 000000000..a49cd40d3 --- /dev/null +++ b/src/features/planSelection/components/PlanItem.js @@ -0,0 +1,186 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer } from 'mobx-react'; +import { defineMessages, intlShape } from 'react-intl'; +import injectSheet from 'react-jss'; +import classnames from 'classnames'; +import color from 'color'; + +import { H2 } from '@meetfranz/ui'; + +import { Button } from '@meetfranz/forms'; +import { mdiArrowRight } from '@mdi/js'; +// import { FeatureList } from '../ui/FeatureList'; +// import { PLANS, PAYMENT_INTERVAL } from '../../config'; +// import { i18nPlanName, i18nIntervalName } from '../../helpers/plan-helpers'; +// import { PLAN_INTERVAL_CONFIG_TYPE } from './types'; + +const messages = defineMessages({ + perMonth: { + id: 'subscription.interval.perMonth', + defaultMessage: '!!!per month', + }, + perMonthPerUser: { + id: 'subscription.interval.perMonthPerUser', + defaultMessage: '!!!per month & user', + }, +}); + +const styles = theme => ({ + root: { + display: 'flex', + flexDirection: 'column', + borderRadius: theme.borderRadius, + flex: 1, + color: theme.styleTypes.primary.accent, + overflow: 'hidden', + textAlign: 'center', + + '& h2': { + textAlign: 'center', + marginBottom: 20, + fontSize: 30, + color: theme.styleTypes.primary.contrast, + // fontWeight: 'bold', + }, + }, + currency: { + fontSize: 35, + }, + priceWrapper: { + height: 50, + }, + price: { + fontSize: 50, + + '& sup': { + fontSize: 20, + verticalAlign: 20, + }, + }, + interval: { + // paddingBottom: 40, + }, + text: { + marginBottom: 'auto', + }, + cta: { + background: theme.styleTypes.primary.accent, + color: theme.styleTypes.primary.contrast, + margin: [40, 'auto', 0, 'auto'], + + // '&:active': { + // opacity: 0.7, + // }, + }, + divider: { + width: 40, + border: 0, + borderTop: [1, 'solid', theme.styleTypes.primary.contrast], + margin: [30, 'auto'], + }, + header: { + padding: 20, + background: color(theme.styleTypes.primary.accent).darken(0.25).hex(), + color: theme.styleTypes.primary.contrast, + }, + content: { + padding: 20, + // border: [1, 'solid', 'red'], + background: '#EFEFEF', + }, + simpleCTA: { + background: 'none', + color: theme.styleTypes.primary.accent, + + '& svg': { + fill: theme.styleTypes.primary.accent, + }, + }, +}); + + +export default @observer @injectSheet(styles) class PlanItem extends Component { + static propTypes = { + name: PropTypes.string.isRequired, + text: PropTypes.string.isRequired, + price: PropTypes.number.isRequired, + currency: PropTypes.string.isRequired, + upgrade: PropTypes.func.isRequired, + ctaLabel: PropTypes.string.isRequired, + simpleCTA: PropTypes.bool, + perUser: PropTypes.bool, + classes: PropTypes.object.isRequired, + children: PropTypes.element, + }; + + static defaultProps = { + simpleCTA: false, + perUser: false, + children: null, + } + + static contextTypes = { + intl: intlShape, + }; + + render() { + const { + name, + text, + price, + currency, + classes, + upgrade, + ctaLabel, + simpleCTA, + perUser, + children, + } = this.props; + const { intl } = this.context; + + const priceParts = `${price}`.split('.'); + // const intervalName = i18nIntervalName(PAYMENT_INTERVAL.MONTHLY, intl); + + return ( +
+
+

{name}

+

+ {text} +

+
+

+ {currency} + + {priceParts[0]} + {priceParts[1]} + +

+

+ {intl.formatMessage(perUser ? messages.perMonthPerUser : messages.perMonth)} +

+
+ +
+ {children} + +
+ +
+ ); + } +} diff --git a/src/features/planSelection/components/PlanSelection.js b/src/features/planSelection/components/PlanSelection.js new file mode 100644 index 000000000..84d2d9e89 --- /dev/null +++ b/src/features/planSelection/components/PlanSelection.js @@ -0,0 +1,233 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer } from 'mobx-react'; +import injectSheet from 'react-jss'; +import { defineMessages, intlShape } from 'react-intl'; +import { H1, H2, Icon } from '@meetfranz/ui'; +import color from 'color'; + +import { mdiRocket } from '@mdi/js'; +import PlanItem from './PlanItem'; +import { i18nPlanName } from '../../../helpers/plan-helpers'; +import { PLANS } from '../../../config'; +import { FeatureList } from '../../../components/ui/FeatureList'; + +const messages = defineMessages({ + welcome: { + id: 'feature.planSelection.fullscreen.welcome', + defaultMessage: '!!!Welcome back, {name}', + }, + subheadline: { + id: 'feature.planSelection.fullscreen.subheadline', + defaultMessage: '!!!It\'s time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.', + }, + textFree: { + id: 'feature.planSelection.free.text', + defaultMessage: '!!!Basic functionality', + }, + textPersonal: { + id: 'feature.planSelection.personal.text', + defaultMessage: '!!!More services, no waiting - ideal for personal use.', + }, + textProfessional: { + id: 'feature.planSelection.pro.text', + defaultMessage: '!!!Unlimited services and professional features for you - and your team.', + }, + ctaStayOnFree: { + id: 'feature.planSelection.cta.stayOnFree', + defaultMessage: '!!!Stay on Free', + }, + ctaDowngradeFree: { + id: 'feature.planSelection.cta.ctaDowngradeFree', + defaultMessage: '!!!Downgrade to Free', + }, + actionTrial: { + id: 'feature.planSelection.cta.trial', + defaultMessage: '!!!Start my free 14-days Trial', + }, + shortActionPersonal: { + id: 'feature.planSelection.cta.upgradePersonal', + defaultMessage: '!!!Choose Personal', + }, + shortActionPro: { + id: 'feature.planSelection.cta.upgradePro', + defaultMessage: '!!!Choose Professional', + }, + fullFeatureList: { + id: 'feature.planSelection.fullFeatureList', + defaultMessage: '!!!Complete comparison of all plans', + }, +}); + +const styles = theme => ({ + root: { + background: theme.colorModalOverlayBackground, + width: '100%', + height: '100%', + position: 'absolute', + top: 0, + left: 0, + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + zIndex: 999999, + }, + container: { + width: '80%', + height: 'auto', + background: theme.styleTypes.primary.accent, + padding: 40, + borderRadius: theme.borderRadius, + maxWidth: 1000, + + '& h1, & h2': { + textAlign: 'center', + }, + }, + plans: { + display: 'flex', + margin: [40, 0, 0], + height: 'auto', + + '& > div': { + margin: [0, 15], + flex: 1, + height: 'auto', + background: theme.styleTypes.primary.contrast, + boxShadow: [0, 2, 30, color('#000').alpha(0.1).rgb().string()], + }, + }, + bigIcon: { + background: theme.styleTypes.danger.accent, + width: 120, + height: 120, + display: 'flex', + alignItems: 'center', + borderRadius: '100%', + justifyContent: 'center', + margin: [-100, 'auto', 20], + + '& svg': { + width: '80px !important', + }, + }, + headline: { + fontSize: 40, + }, + subheadline: { + maxWidth: 660, + fontSize: 22, + lineHeight: 1.1, + margin: [0, 'auto'], + }, + featureList: { + '& li': { + borderBottom: [1, 'solid', '#CECECE'], + }, + }, + fullFeatureList: { + marginTop: 40, + textAlign: 'center', + display: 'block', + color: `${theme.styleTypes.primary.contrast} !important`, + }, +}); + +@injectSheet(styles) @observer +class PlanSelection extends Component { + static propTypes = { + classes: PropTypes.object.isRequired, + firstname: PropTypes.string.isRequired, + plans: PropTypes.object.isRequired, + currency: PropTypes.string.isRequired, + subscriptionExpired: PropTypes.bool.isRequired, + upgradeAccount: PropTypes.func.isRequired, + stayOnFree: PropTypes.func.isRequired, + hadSubscription: PropTypes.bool.isRequired, + }; + + static contextTypes = { + intl: intlShape, + }; + + render() { + const { + classes, + firstname, + plans, + currency, + subscriptionExpired, + upgradeAccount, + stayOnFree, + hadSubscription, + } = this.props; + + const { intl } = this.context; + + return ( +
+
+
+ +
+

{intl.formatMessage(messages.welcome, { name: firstname })}

+

{intl.formatMessage(messages.subheadline)}

+
+ stayOnFree()} + simpleCTA + > + + + upgradeAccount(plans.personal.yearly.id)} + > + + + upgradeAccount(plans.personal.yearly.id)} + perUser + > + + +
+ + {intl.formatMessage(messages.fullFeatureList)} + +
+
+ ); + } +} + +export default PlanSelection; diff --git a/src/features/planSelection/containers/PlanSelectionScreen.js b/src/features/planSelection/containers/PlanSelectionScreen.js new file mode 100644 index 000000000..b0d9b5ab5 --- /dev/null +++ b/src/features/planSelection/containers/PlanSelectionScreen.js @@ -0,0 +1,138 @@ +import React, { Component } from 'react'; +import { observer, inject } from 'mobx-react'; +import PropTypes from 'prop-types'; +import { remote } from 'electron'; +import { defineMessages, intlShape } from 'react-intl'; + +import FeaturesStore from '../../../stores/FeaturesStore'; +import UserStore from '../../../stores/UserStore'; +import PlanSelection from '../components/PlanSelection'; +import ErrorBoundary from '../../../components/util/ErrorBoundary'; +import { planSelectionStore } from '..'; + +const { dialog, app } = remote; + +const messages = defineMessages({ + dialogTitle: { + id: 'feature.planSelection.fullscreen.dialog.title', + defaultMessage: '!!!Downgrade your Franz Plan', + }, + dialogMessage: { + id: 'feature.planSelection.fullscreen.dialog.message', + defaultMessage: '!!!You\'re about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.', + }, + dialogCTADowngrade: { + id: 'feature.planSelection.fullscreen.dialog.cta.downgrade', + defaultMessage: '!!!Downgrade to Free', + }, + dialogCTAUpgrade: { + id: 'feature.planSelection.fullscreen.dialog.cta.upgrade', + defaultMessage: '!!!Choose Personal', + }, +}); + +@inject('stores', 'actions') @observer +class PlanSelectionScreen extends Component { + static contextTypes = { + intl: intlShape, + }; + + upgradeAccount(planId) { + const { user, features } = this.props.stores; + const { upgradeAccount, hideOverlay } = this.props.actions.planSelection; + + upgradeAccount({ + planId, + onCloseWindow: () => { + hideOverlay(); + user.getUserInfoRequest.invalidate({ immediately: true }); + features.featuresRequest.invalidate({ immediately: true }); + }, + }); + } + + render() { + if (!planSelectionStore || !planSelectionStore.isFeatureActive || !planSelectionStore.showPlanSelectionOverlay) { + return null; + } + + const { intl } = this.context; + + const { user, features } = this.props.stores; + const { plans, currency } = features.features.pricingConfig; + const { activateTrial } = this.props.actions.user; + const { upgradeAccount, downgradeAccount, hideOverlay } = this.props.actions.planSelection; + + // const planConfig = [{ + // id: 'free', + // price: 0, + // }, { + // id: plans.personal.yearly.id, + // price: plans.personal.yearly.price, + // }, { + // id: plans.pro.yearly.id, + // price: plans.pro.yearly.price, + // }]; + + return ( + + { + if (user.data.hadSubscription) { + this.upgradeAccount(planId); + } else { + activateTrial({ + planId, + }); + } + }} + stayOnFree={() => { + const selection = dialog.showMessageBoxSync(app.mainWindow, { + type: 'question', + message: intl.formatMessage(messages.dialogTitle), + detail: intl.formatMessage(messages.dialogMessage, { + currency, + price: plans.personal.yearly.price, + }), + buttons: [ + intl.formatMessage(messages.dialogCTADowngrade), + intl.formatMessage(messages.dialogCTAUpgrade), + ], + }); + + if (selection === 0) { + downgradeAccount(); + hideOverlay(); + } else { + upgradeAccount(plans.personal.yearly.id); + } + }} + subscriptionExpired={user.team && user.team.state === 'expired' && !user.team.userHasDowngraded} + hadSubscription={user.data.hadSubscription} + /> + + ); + } +} + +export default PlanSelectionScreen; + +PlanSelectionScreen.wrappedComponent.propTypes = { + stores: PropTypes.shape({ + features: PropTypes.instanceOf(FeaturesStore).isRequired, + user: PropTypes.instanceOf(UserStore).isRequired, + }).isRequired, + actions: PropTypes.shape({ + planSelection: PropTypes.shape({ + upgradeAccount: PropTypes.func.isRequired, + downgradeAccount: PropTypes.func.isRequired, + hideOverlay: PropTypes.func.isRequired, + }), + user: PropTypes.shape({ + activateTrial: PropTypes.func.isRequired, + }), + }).isRequired, +}; diff --git a/src/features/planSelection/index.js b/src/features/planSelection/index.js new file mode 100644 index 000000000..81189207a --- /dev/null +++ b/src/features/planSelection/index.js @@ -0,0 +1,30 @@ +import { reaction } from 'mobx'; +import PlanSelectionStore from './store'; + +const debug = require('debug')('Franz:feature:planSelection'); + +export const GA_CATEGORY_PLAN_SELECTION = 'planSelection'; + +export const planSelectionStore = new PlanSelectionStore(); + +export default function initPlanSelection(stores, actions) { + stores.planSelection = planSelectionStore; + const { features } = stores; + + // Toggle planSelection feature + reaction( + () => features.features.isPlanSelectionEnabled, + (isEnabled) => { + if (isEnabled) { + debug('Initializing `planSelection` feature'); + planSelectionStore.start(stores, actions); + } else if (planSelectionStore.isFeatureActive) { + debug('Disabling `planSelection` feature'); + planSelectionStore.stop(); + } + }, + { + fireImmediately: true, + }, + ); +} diff --git a/src/features/planSelection/store.js b/src/features/planSelection/store.js new file mode 100644 index 000000000..50e46dfb3 --- /dev/null +++ b/src/features/planSelection/store.js @@ -0,0 +1,113 @@ +import { + action, + observable, + computed, +} from 'mobx'; +import { remote } from 'electron'; + +import { planSelectionActions } from './actions'; +import { FeatureStore } from '../utils/FeatureStore'; +// import { createReactions } from '../../stores/lib/Reaction'; +import { createActionBindings } from '../utils/ActionBinding'; +import { downgradeUserRequest } from './api'; + +const debug = require('debug')('Franz:feature:planSelection:store'); + +const { BrowserWindow } = remote; + +export default class PlanSelectionStore extends FeatureStore { + @observable isFeatureEnabled = false; + + @observable isFeatureActive = false; + + @observable hideOverlay = false; + + @computed get showPlanSelectionOverlay() { + const { team } = this.stores.user; + if (team && !this.hideOverlay) { + return team.state === 'expired' && !team.userHasDowngraded; + } + + return false; + } + + // ========== PUBLIC API ========= // + + @action start(stores, actions, api) { + debug('PlanSelectionStore::start'); + this.stores = stores; + this.actions = actions; + this.api = api; + + // ACTIONS + + this._registerActions(createActionBindings([ + [planSelectionActions.upgradeAccount, this._upgradeAccount], + [planSelectionActions.downgradeAccount, this._downgradeAccount], + [planSelectionActions.hideOverlay, this._hideOverlay], + ])); + + // REACTIONS + + // this._allReactions = createReactions([ + // this._setFeatureEnabledReaction, + // this._updateTodosConfig, + // this._firstLaunchReaction, + // this._routeCheckReaction, + // ]); + + // this._registerReactions(this._allReactions); + + this.isFeatureActive = true; + } + + @action stop() { + super.stop(); + debug('PlanSelectionStore::stop'); + this.reset(); + this.isFeatureActive = false; + } + + // ========== PRIVATE METHODS ========= // + + // Actions + + @action _upgradeAccount = ({ planId, onCloseWindow = () => null }) => { + let hostedPageURL = this.stores.features.features.subscribeURL; + + const parsedUrl = new URL(hostedPageURL); + const params = new URLSearchParams(parsedUrl.search.slice(1)); + + params.set('plan', planId); + + hostedPageURL = this.stores.user.getAuthURL(`${parsedUrl.origin}${parsedUrl.pathname}?${params.toString()}`); + + const win = new BrowserWindow({ + parent: remote.getCurrentWindow(), + modal: true, + title: '🔒 Upgrade Your Franz Account', + width: 800, + height: window.innerHeight - 100, + maxWidth: 800, + minWidth: 600, + webPreferences: { + nodeIntegration: true, + webviewTag: true, + }, + }); + win.loadURL(`file://${__dirname}/../../index.html#/payment/${encodeURIComponent(hostedPageURL)}`); + + win.on('closed', () => { + onCloseWindow(); + }); + }; + + @action _downgradeAccount = () => { + console.log('downgrade to free', downgradeUserRequest); + downgradeUserRequest.execute(); + } + + @action _hideOverlay = () => { + this.hideOverlay = true; + } +} diff --git a/src/features/shareFranz/index.js b/src/features/shareFranz/index.js index 87deacef4..a39d7a6e6 100644 --- a/src/features/shareFranz/index.js +++ b/src/features/shareFranz/index.js @@ -3,6 +3,7 @@ import ms from 'ms'; import { state as delayAppState } from '../delayApp'; import { gaEvent, gaPage } from '../../lib/analytics'; +import { planSelectionStore } from '../planSelection'; export { default as Component } from './Component'; @@ -35,7 +36,7 @@ export default function initialize(stores) { () => stores.user.isLoggedIn, () => { setTimeout(() => { - if (stores.settings.stats.appStarts % 50 === 0) { + if (stores.settings.stats.appStarts % 50 === 0 && !planSelectionStore.showPlanSelectionOverlay) { if (delayAppState.isDelayAppScreenVisible) { debug('Delaying share modal by 5 minutes'); setTimeout(() => showModal(), ms('5m')); diff --git a/src/helpers/plan-helpers.js b/src/helpers/plan-helpers.js index e0f1fd89a..ee22e4471 100644 --- a/src/helpers/plan-helpers.js +++ b/src/helpers/plan-helpers.js @@ -4,19 +4,19 @@ import { PLANS_MAPPING, PLANS } from '../config'; const messages = defineMessages({ [PLANS.PRO]: { id: 'pricing.plan.pro', - defaultMessage: '!!!Franz Professional', + defaultMessage: '!!!Professional', }, [PLANS.PERSONAL]: { id: 'pricing.plan.personal', - defaultMessage: '!!!Franz Personal', + defaultMessage: '!!!Personal', }, [PLANS.FREE]: { id: 'pricing.plan.free', - defaultMessage: '!!!Franz Free', + defaultMessage: '!!!Free', }, [PLANS.LEGACY]: { id: 'pricing.plan.legacy', - defaultMessage: '!!!Franz Premium', + defaultMessage: '!!!Premium', }, }); diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 703f800f9..210ea001a 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -430,7 +430,7 @@ } }, { - "defaultMessage": "!!!Your personal welcome offer:", + "defaultMessage": "!!!Here's a special welcome for you:", "end": { "column": 3, "line": 22 @@ -495,7 +495,7 @@ } }, { - "defaultMessage": "!!!Yes, upgrade my account to Franz Professional", + "defaultMessage": "!!!Start my 14-day Franz Professional Trial", "end": { "column": 3, "line": 42 @@ -721,39 +721,39 @@ "defaultMessage": "!!!Your services have been updated.", "end": { "column": 3, - "line": 31 + "line": 32 }, "file": "src/components/layout/AppLayout.js", "id": "infobar.servicesUpdated", "start": { "column": 19, - "line": 28 + "line": 29 } }, { "defaultMessage": "!!!Reload services", "end": { "column": 3, - "line": 35 + "line": 36 }, "file": "src/components/layout/AppLayout.js", "id": "infobar.buttonReloadServices", "start": { "column": 24, - "line": 32 + "line": 33 } }, { "defaultMessage": "!!!Could not load services and user information", "end": { "column": 3, - "line": 39 + "line": 40 }, "file": "src/components/layout/AppLayout.js", "id": "infobar.requiredRequestsFailed", "start": { "column": 26, - "line": 36 + "line": 37 } } ], @@ -3016,134 +3016,199 @@ }, { "descriptors": [ + { + "defaultMessage": "!!!Choose from more than 70 Services", + "end": { + "column": 3, + "line": 12 + }, + "file": "src/components/ui/FeatureList.js", + "id": "pricing.features.recipes", + "start": { + "column": 20, + "line": 9 + } + }, + { + "defaultMessage": "!!!Account Synchronisation", + "end": { + "column": 3, + "line": 16 + }, + "file": "src/components/ui/FeatureList.js", + "id": "pricing.features.accountSync", + "start": { + "column": 15, + "line": 13 + } + }, + { + "defaultMessage": "!!!Desktop Notifications", + "end": { + "column": 3, + "line": 20 + }, + "file": "src/components/ui/FeatureList.js", + "id": "pricing.features.desktopNotifications", + "start": { + "column": 24, + "line": 17 + } + }, { "defaultMessage": "!!!Add unlimited services", "end": { "column": 3, - "line": 11 + "line": 24 }, "file": "src/components/ui/FeatureList.js", "id": "pricing.features.unlimitedServices", "start": { "column": 21, - "line": 8 + "line": 21 + } + }, + { + "defaultMessage": "!!!Add up to 3 services", + "end": { + "column": 3, + "line": 28 + }, + "file": "src/components/ui/FeatureList.js", + "id": "pricing.features.upToThreeServices", + "start": { + "column": 21, + "line": 25 + } + }, + { + "defaultMessage": "!!!Add up to 6 services", + "end": { + "column": 3, + "line": 32 + }, + "file": "src/components/ui/FeatureList.js", + "id": "pricing.features.upToSixServices", + "start": { + "column": 19, + "line": 29 } }, { "defaultMessage": "!!!Spellchecker support", "end": { "column": 3, - "line": 15 + "line": 36 }, "file": "src/components/ui/FeatureList.js", "id": "pricing.features.spellchecker", "start": { "column": 16, - "line": 12 + "line": 33 } }, { "defaultMessage": "!!!Workspaces", "end": { "column": 3, - "line": 19 + "line": 40 }, "file": "src/components/ui/FeatureList.js", "id": "pricing.features.workspaces", "start": { "column": 14, - "line": 16 + "line": 37 } }, { "defaultMessage": "!!!Add Custom Websites", "end": { "column": 3, - "line": 23 + "line": 44 }, "file": "src/components/ui/FeatureList.js", "id": "pricing.features.customWebsites", "start": { "column": 18, - "line": 20 + "line": 41 } }, { "defaultMessage": "!!!On-premise & other Hosted Services", "end": { "column": 3, - "line": 27 + "line": 48 }, "file": "src/components/ui/FeatureList.js", "id": "pricing.features.onPremise", "start": { "column": 13, - "line": 24 + "line": 45 } }, { "defaultMessage": "!!!Install 3rd party services", "end": { "column": 3, - "line": 31 + "line": 52 }, "file": "src/components/ui/FeatureList.js", "id": "pricing.features.thirdPartyServices", "start": { "column": 22, - "line": 28 + "line": 49 } }, { "defaultMessage": "!!!Service Proxies", "end": { "column": 3, - "line": 35 + "line": 56 }, "file": "src/components/ui/FeatureList.js", "id": "pricing.features.serviceProxies", "start": { "column": 18, - "line": 32 + "line": 53 } }, { "defaultMessage": "!!!Team Management", "end": { "column": 3, - "line": 39 + "line": 60 }, "file": "src/components/ui/FeatureList.js", "id": "pricing.features.teamManagement", "start": { "column": 18, - "line": 36 + "line": 57 } }, { "defaultMessage": "!!!No Waiting Screens", "end": { "column": 3, - "line": 43 + "line": 64 }, "file": "src/components/ui/FeatureList.js", "id": "pricing.features.appDelays", "start": { "column": 13, - "line": 40 + "line": 61 } }, { "defaultMessage": "!!!Forever ad-free", "end": { "column": 3, - "line": 47 + "line": 68 }, "file": "src/components/ui/FeatureList.js", "id": "pricing.features.adFree", "start": { "column": 10, - "line": 44 + "line": 65 } } ], @@ -3831,6 +3896,273 @@ ], "path": "src/features/delayApp/Component.json" }, + { + "descriptors": [ + { + "defaultMessage": "!!!per month", + "end": { + "column": 3, + "line": 22 + }, + "file": "src/features/planSelection/components/PlanItem.js", + "id": "subscription.interval.perMonth", + "start": { + "column": 12, + "line": 19 + } + }, + { + "defaultMessage": "!!!per month & user", + "end": { + "column": 3, + "line": 26 + }, + "file": "src/features/planSelection/components/PlanItem.js", + "id": "subscription.interval.perMonthPerUser", + "start": { + "column": 19, + "line": 23 + } + } + ], + "path": "src/features/planSelection/components/PlanItem.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Welcome back, {name}", + "end": { + "column": 3, + "line": 19 + }, + "file": "src/features/planSelection/components/PlanSelection.js", + "id": "feature.planSelection.fullscreen.welcome", + "start": { + "column": 11, + "line": 16 + } + }, + { + "defaultMessage": "!!!It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "end": { + "column": 3, + "line": 23 + }, + "file": "src/features/planSelection/components/PlanSelection.js", + "id": "feature.planSelection.fullscreen.subheadline", + "start": { + "column": 15, + "line": 20 + } + }, + { + "defaultMessage": "!!!Basic functionality", + "end": { + "column": 3, + "line": 27 + }, + "file": "src/features/planSelection/components/PlanSelection.js", + "id": "feature.planSelection.free.text", + "start": { + "column": 12, + "line": 24 + } + }, + { + "defaultMessage": "!!!More services, no waiting - ideal for personal use.", + "end": { + "column": 3, + "line": 31 + }, + "file": "src/features/planSelection/components/PlanSelection.js", + "id": "feature.planSelection.personal.text", + "start": { + "column": 16, + "line": 28 + } + }, + { + "defaultMessage": "!!!Unlimited services and professional features for you - and your team.", + "end": { + "column": 3, + "line": 35 + }, + "file": "src/features/planSelection/components/PlanSelection.js", + "id": "feature.planSelection.pro.text", + "start": { + "column": 20, + "line": 32 + } + }, + { + "defaultMessage": "!!!Stay on Free", + "end": { + "column": 3, + "line": 39 + }, + "file": "src/features/planSelection/components/PlanSelection.js", + "id": "feature.planSelection.cta.stayOnFree", + "start": { + "column": 17, + "line": 36 + } + }, + { + "defaultMessage": "!!!Downgrade to Free", + "end": { + "column": 3, + "line": 43 + }, + "file": "src/features/planSelection/components/PlanSelection.js", + "id": "feature.planSelection.cta.ctaDowngradeFree", + "start": { + "column": 20, + "line": 40 + } + }, + { + "defaultMessage": "!!!Start my free 14-days Trial", + "end": { + "column": 3, + "line": 47 + }, + "file": "src/features/planSelection/components/PlanSelection.js", + "id": "feature.planSelection.cta.trial", + "start": { + "column": 15, + "line": 44 + } + }, + { + "defaultMessage": "!!!Choose Personal", + "end": { + "column": 3, + "line": 51 + }, + "file": "src/features/planSelection/components/PlanSelection.js", + "id": "feature.planSelection.cta.upgradePersonal", + "start": { + "column": 23, + "line": 48 + } + }, + { + "defaultMessage": "!!!Choose Professional", + "end": { + "column": 3, + "line": 55 + }, + "file": "src/features/planSelection/components/PlanSelection.js", + "id": "feature.planSelection.cta.upgradePro", + "start": { + "column": 18, + "line": 52 + } + }, + { + "defaultMessage": "!!!Complete comparison of all plans", + "end": { + "column": 3, + "line": 59 + }, + "file": "src/features/planSelection/components/PlanSelection.js", + "id": "feature.planSelection.fullFeatureList", + "start": { + "column": 19, + "line": 56 + } + } + ], + "path": "src/features/planSelection/components/PlanSelection.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!per {interval}", + "end": { + "column": 3, + "line": 19 + }, + "file": "src/features/planSelection/components/PlanTeaser.js", + "id": "subscription.interval.per", + "start": { + "column": 7, + "line": 16 + } + }, + { + "defaultMessage": "!!!Upgrade Account", + "end": { + "column": 3, + "line": 23 + }, + "file": "src/features/planSelection/components/PlanTeaser.js", + "id": "subscription.planItem.upgradeAccount", + "start": { + "column": 7, + "line": 20 + } + } + ], + "path": "src/features/planSelection/components/PlanTeaser.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Downgrade your Franz Plan", + "end": { + "column": 3, + "line": 19 + }, + "file": "src/features/planSelection/containers/PlanSelectionScreen.js", + "id": "feature.planSelection.fullscreen.dialog.title", + "start": { + "column": 15, + "line": 16 + } + }, + { + "defaultMessage": "!!!You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "end": { + "column": 3, + "line": 23 + }, + "file": "src/features/planSelection/containers/PlanSelectionScreen.js", + "id": "feature.planSelection.fullscreen.dialog.message", + "start": { + "column": 17, + "line": 20 + } + }, + { + "defaultMessage": "!!!Downgrade to Free", + "end": { + "column": 3, + "line": 27 + }, + "file": "src/features/planSelection/containers/PlanSelectionScreen.js", + "id": "feature.planSelection.fullscreen.dialog.cta.downgrade", + "start": { + "column": 22, + "line": 24 + } + }, + { + "defaultMessage": "!!!Choose Personal", + "end": { + "column": 3, + "line": 31 + }, + "file": "src/features/planSelection/containers/PlanSelectionScreen.js", + "id": "feature.planSelection.fullscreen.dialog.cta.upgrade", + "start": { + "column": 20, + "line": 28 + } + } + ], + "path": "src/features/planSelection/containers/PlanSelectionScreen.json" + }, { "descriptors": [ { @@ -4487,7 +4819,7 @@ { "descriptors": [ { - "defaultMessage": "!!!Franz Professional", + "defaultMessage": "!!!Professional", "end": { "column": 3, "line": 8 @@ -4500,7 +4832,7 @@ } }, { - "defaultMessage": "!!!Franz Personal", + "defaultMessage": "!!!Personal", "end": { "column": 3, "line": 12 @@ -4513,7 +4845,7 @@ } }, { - "defaultMessage": "!!!Franz Free", + "defaultMessage": "!!!Free", "end": { "column": 3, "line": 16 @@ -4526,7 +4858,7 @@ } }, { - "defaultMessage": "!!!Franz Premium", + "defaultMessage": "!!!Premium", "end": { "column": 3, "line": 20 diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index aea74768d..4e1b01419 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline": "Get the free Franz Professional 14 day trial and skip the line", "feature.delayApp.upgrade.action": "Get a Franz Supporter License", "feature.delayApp.upgrade.actionShort": "Upgrade account", + "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", + "feature.planSelection.cta.stayOnFree": "Stay on Free", + "feature.planSelection.cta.trial": "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal": "Choose Personal", + "feature.planSelection.cta.upgradePro": "Choose Professional", + "feature.planSelection.free.text": "Basic functionality", + "feature.planSelection.fullFeatureList": "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade": "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade": "Choose Personal", + "feature.planSelection.fullscreen.dialog.message": "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title": "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline": "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome": "Welcome back, {name}", + "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached": "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email": "Send as email", "feature.shareFranz.action.facebook": "Share on Facebook", @@ -123,30 +138,35 @@ "password.submit.label": "Submit", "password.successInfo": "Please check your email", "premiumFeature.button.upgradeAccount": "Upgrade account", + "pricing.features.accountSync": "Account Synchronisation", "pricing.features.adFree": "Forever ad-free", "pricing.features.appDelays": "No Waiting Screens", "pricing.features.customWebsites": "Add Custom Websites", + "pricing.features.desktopNotifications": "Desktop Notifications", "pricing.features.onPremise": "On-premise & other Hosted Services", + "pricing.features.recipes": "Choose from more than 70 Services", "pricing.features.serviceProxies": "Service Proxies", "pricing.features.spellchecker": "Spellchecker support", "pricing.features.teamManagement": "Team Management", "pricing.features.thirdPartyServices": "Install 3rd party services", "pricing.features.unlimitedServices": "Add unlimited services", + "pricing.features.upToSixServices": "Add up to 6 services", + "pricing.features.upToThreeServices": "Add up to 3 services", "pricing.features.workspaces": "Workspaces", - "pricing.plan.free": "Franz Free", - "pricing.plan.legacy": "Franz Premium", - "pricing.plan.personal": "Franz Personal", - "pricing.plan.personal-monthly": "Franz Personal Monthly", - "pricing.plan.personal-yearly": "Franz Personal Yearly", - "pricing.plan.pro": "Franz Professional", - "pricing.plan.pro-monthly": "Franz Professional Monthly", - "pricing.plan.pro-yearly": "Franz Professional Yearly", - "pricing.trial.cta.accept": "Yes, upgrade my account to Franz Professional", + "pricing.plan.free": "Free", + "pricing.plan.legacy": "Premium", + "pricing.plan.personal": "Personal", + "pricing.plan.personal-monthly": "Personal Monthly", + "pricing.plan.personal-yearly": "Personal Yearly", + "pricing.plan.pro": "Professional", + "pricing.plan.pro-monthly": "Professional Monthly", + "pricing.plan.pro-yearly": "Professional Yearly", + "pricing.trial.cta.accept": "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip": "Continue to Franz", "pricing.trial.error": "Sorry, we could not activate your trial!", "pricing.trial.features.headline": "Franz Professional includes:", "pricing.trial.headline": "Franz Professional", - "pricing.trial.subheadline": "Your personal welcome offer:", + "pricing.trial.subheadline": "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd": "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline": "No strings attached", "pricing.trial.terms.noCreditCard": "No credit card required", @@ -353,6 +373,10 @@ "subscription.cta.allOptions": "See all options", "subscription.cta.choosePlan": "Choose your plan", "subscription.includedProFeatures": "The Franz Professional Plan includes:", + "subscription.interval.per": "per {interval}", + "subscription.interval.perMonth": "per month", + "subscription.interval.perMonthPerUser": "per month & user", + "subscription.planItem.upgradeAccount": "Upgrade Account", "subscription.teaser.includedFeatures": "Paid Franz Plans include:", "subscription.teaser.intro": "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel": "Cancel", @@ -389,4 +413,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} \ No newline at end of file +} diff --git a/src/i18n/messages/src/components/auth/Pricing.json b/src/i18n/messages/src/components/auth/Pricing.json index f15617ca5..2d09c9ebb 100644 --- a/src/i18n/messages/src/components/auth/Pricing.json +++ b/src/i18n/messages/src/components/auth/Pricing.json @@ -14,7 +14,7 @@ }, { "id": "pricing.trial.subheadline", - "defaultMessage": "!!!Your personal welcome offer:", + "defaultMessage": "!!!Here's a special welcome for you:", "file": "src/components/auth/Pricing.js", "start": { "line": 19, @@ -79,7 +79,7 @@ }, { "id": "pricing.trial.cta.accept", - "defaultMessage": "!!!Yes, upgrade my account to Franz Professional", + "defaultMessage": "!!!Start my 14-day Franz Professional Trial", "file": "src/components/auth/Pricing.js", "start": { "line": 39, diff --git a/src/i18n/messages/src/components/layout/AppLayout.json b/src/i18n/messages/src/components/layout/AppLayout.json index 44cf4fab9..22f11cedd 100644 --- a/src/i18n/messages/src/components/layout/AppLayout.json +++ b/src/i18n/messages/src/components/layout/AppLayout.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Your services have been updated.", "file": "src/components/layout/AppLayout.js", "start": { - "line": 28, + "line": 29, "column": 19 }, "end": { - "line": 31, + "line": 32, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!Reload services", "file": "src/components/layout/AppLayout.js", "start": { - "line": 32, + "line": 33, "column": 24 }, "end": { - "line": 35, + "line": 36, "column": 3 } }, @@ -30,11 +30,11 @@ "defaultMessage": "!!!Could not load services and user information", "file": "src/components/layout/AppLayout.js", "start": { - "line": 36, + "line": 37, "column": 26 }, "end": { - "line": 39, + "line": 40, "column": 3 } } diff --git a/src/i18n/messages/src/components/ui/FeatureList.json b/src/i18n/messages/src/components/ui/FeatureList.json index 497e299a4..3201115b3 100644 --- a/src/i18n/messages/src/components/ui/FeatureList.json +++ b/src/i18n/messages/src/components/ui/FeatureList.json @@ -1,14 +1,79 @@ [ + { + "id": "pricing.features.recipes", + "defaultMessage": "!!!Choose from more than 70 Services", + "file": "src/components/ui/FeatureList.js", + "start": { + "line": 9, + "column": 20 + }, + "end": { + "line": 12, + "column": 3 + } + }, + { + "id": "pricing.features.accountSync", + "defaultMessage": "!!!Account Synchronisation", + "file": "src/components/ui/FeatureList.js", + "start": { + "line": 13, + "column": 15 + }, + "end": { + "line": 16, + "column": 3 + } + }, + { + "id": "pricing.features.desktopNotifications", + "defaultMessage": "!!!Desktop Notifications", + "file": "src/components/ui/FeatureList.js", + "start": { + "line": 17, + "column": 24 + }, + "end": { + "line": 20, + "column": 3 + } + }, { "id": "pricing.features.unlimitedServices", "defaultMessage": "!!!Add unlimited services", "file": "src/components/ui/FeatureList.js", "start": { - "line": 8, + "line": 21, "column": 21 }, "end": { - "line": 11, + "line": 24, + "column": 3 + } + }, + { + "id": "pricing.features.upToThreeServices", + "defaultMessage": "!!!Add up to 3 services", + "file": "src/components/ui/FeatureList.js", + "start": { + "line": 25, + "column": 21 + }, + "end": { + "line": 28, + "column": 3 + } + }, + { + "id": "pricing.features.upToSixServices", + "defaultMessage": "!!!Add up to 6 services", + "file": "src/components/ui/FeatureList.js", + "start": { + "line": 29, + "column": 19 + }, + "end": { + "line": 32, "column": 3 } }, @@ -17,11 +82,11 @@ "defaultMessage": "!!!Spellchecker support", "file": "src/components/ui/FeatureList.js", "start": { - "line": 12, + "line": 33, "column": 16 }, "end": { - "line": 15, + "line": 36, "column": 3 } }, @@ -30,11 +95,11 @@ "defaultMessage": "!!!Workspaces", "file": "src/components/ui/FeatureList.js", "start": { - "line": 16, + "line": 37, "column": 14 }, "end": { - "line": 19, + "line": 40, "column": 3 } }, @@ -43,11 +108,11 @@ "defaultMessage": "!!!Add Custom Websites", "file": "src/components/ui/FeatureList.js", "start": { - "line": 20, + "line": 41, "column": 18 }, "end": { - "line": 23, + "line": 44, "column": 3 } }, @@ -56,11 +121,11 @@ "defaultMessage": "!!!On-premise & other Hosted Services", "file": "src/components/ui/FeatureList.js", "start": { - "line": 24, + "line": 45, "column": 13 }, "end": { - "line": 27, + "line": 48, "column": 3 } }, @@ -69,11 +134,11 @@ "defaultMessage": "!!!Install 3rd party services", "file": "src/components/ui/FeatureList.js", "start": { - "line": 28, + "line": 49, "column": 22 }, "end": { - "line": 31, + "line": 52, "column": 3 } }, @@ -82,11 +147,11 @@ "defaultMessage": "!!!Service Proxies", "file": "src/components/ui/FeatureList.js", "start": { - "line": 32, + "line": 53, "column": 18 }, "end": { - "line": 35, + "line": 56, "column": 3 } }, @@ -95,11 +160,11 @@ "defaultMessage": "!!!Team Management", "file": "src/components/ui/FeatureList.js", "start": { - "line": 36, + "line": 57, "column": 18 }, "end": { - "line": 39, + "line": 60, "column": 3 } }, @@ -108,11 +173,11 @@ "defaultMessage": "!!!No Waiting Screens", "file": "src/components/ui/FeatureList.js", "start": { - "line": 40, + "line": 61, "column": 13 }, "end": { - "line": 43, + "line": 64, "column": 3 } }, @@ -121,11 +186,11 @@ "defaultMessage": "!!!Forever ad-free", "file": "src/components/ui/FeatureList.js", "start": { - "line": 44, + "line": 65, "column": 10 }, "end": { - "line": 47, + "line": 68, "column": 3 } } diff --git a/src/i18n/messages/src/features/planSelection/components/PlanItem.json b/src/i18n/messages/src/features/planSelection/components/PlanItem.json new file mode 100644 index 000000000..839686390 --- /dev/null +++ b/src/i18n/messages/src/features/planSelection/components/PlanItem.json @@ -0,0 +1,28 @@ +[ + { + "id": "subscription.interval.perMonth", + "defaultMessage": "!!!per month", + "file": "src/features/planSelection/components/PlanItem.js", + "start": { + "line": 19, + "column": 12 + }, + "end": { + "line": 22, + "column": 3 + } + }, + { + "id": "subscription.interval.perMonthPerUser", + "defaultMessage": "!!!per month & user", + "file": "src/features/planSelection/components/PlanItem.js", + "start": { + "line": 23, + "column": 19 + }, + "end": { + "line": 26, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/features/planSelection/components/PlanSelection.json b/src/i18n/messages/src/features/planSelection/components/PlanSelection.json new file mode 100644 index 000000000..3dc4f74f4 --- /dev/null +++ b/src/i18n/messages/src/features/planSelection/components/PlanSelection.json @@ -0,0 +1,145 @@ +[ + { + "id": "feature.planSelection.fullscreen.welcome", + "defaultMessage": "!!!Welcome back, {name}", + "file": "src/features/planSelection/components/PlanSelection.js", + "start": { + "line": 16, + "column": 11 + }, + "end": { + "line": 19, + "column": 3 + } + }, + { + "id": "feature.planSelection.fullscreen.subheadline", + "defaultMessage": "!!!It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "file": "src/features/planSelection/components/PlanSelection.js", + "start": { + "line": 20, + "column": 15 + }, + "end": { + "line": 23, + "column": 3 + } + }, + { + "id": "feature.planSelection.free.text", + "defaultMessage": "!!!Basic functionality", + "file": "src/features/planSelection/components/PlanSelection.js", + "start": { + "line": 24, + "column": 12 + }, + "end": { + "line": 27, + "column": 3 + } + }, + { + "id": "feature.planSelection.personal.text", + "defaultMessage": "!!!More services, no waiting - ideal for personal use.", + "file": "src/features/planSelection/components/PlanSelection.js", + "start": { + "line": 28, + "column": 16 + }, + "end": { + "line": 31, + "column": 3 + } + }, + { + "id": "feature.planSelection.pro.text", + "defaultMessage": "!!!Unlimited services and professional features for you - and your team.", + "file": "src/features/planSelection/components/PlanSelection.js", + "start": { + "line": 32, + "column": 20 + }, + "end": { + "line": 35, + "column": 3 + } + }, + { + "id": "feature.planSelection.cta.stayOnFree", + "defaultMessage": "!!!Stay on Free", + "file": "src/features/planSelection/components/PlanSelection.js", + "start": { + "line": 36, + "column": 17 + }, + "end": { + "line": 39, + "column": 3 + } + }, + { + "id": "feature.planSelection.cta.ctaDowngradeFree", + "defaultMessage": "!!!Downgrade to Free", + "file": "src/features/planSelection/components/PlanSelection.js", + "start": { + "line": 40, + "column": 20 + }, + "end": { + "line": 43, + "column": 3 + } + }, + { + "id": "feature.planSelection.cta.trial", + "defaultMessage": "!!!Start my free 14-days Trial", + "file": "src/features/planSelection/components/PlanSelection.js", + "start": { + "line": 44, + "column": 15 + }, + "end": { + "line": 47, + "column": 3 + } + }, + { + "id": "feature.planSelection.cta.upgradePersonal", + "defaultMessage": "!!!Choose Personal", + "file": "src/features/planSelection/components/PlanSelection.js", + "start": { + "line": 48, + "column": 23 + }, + "end": { + "line": 51, + "column": 3 + } + }, + { + "id": "feature.planSelection.cta.upgradePro", + "defaultMessage": "!!!Choose Professional", + "file": "src/features/planSelection/components/PlanSelection.js", + "start": { + "line": 52, + "column": 18 + }, + "end": { + "line": 55, + "column": 3 + } + }, + { + "id": "feature.planSelection.fullFeatureList", + "defaultMessage": "!!!Complete comparison of all plans", + "file": "src/features/planSelection/components/PlanSelection.js", + "start": { + "line": 56, + "column": 19 + }, + "end": { + "line": 59, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/features/planSelection/components/PlanTeaser.json b/src/i18n/messages/src/features/planSelection/components/PlanTeaser.json new file mode 100644 index 000000000..015304a2e --- /dev/null +++ b/src/i18n/messages/src/features/planSelection/components/PlanTeaser.json @@ -0,0 +1,28 @@ +[ + { + "id": "subscription.interval.per", + "defaultMessage": "!!!per {interval}", + "file": "src/features/planSelection/components/PlanTeaser.js", + "start": { + "line": 16, + "column": 7 + }, + "end": { + "line": 19, + "column": 3 + } + }, + { + "id": "subscription.planItem.upgradeAccount", + "defaultMessage": "!!!Upgrade Account", + "file": "src/features/planSelection/components/PlanTeaser.js", + "start": { + "line": 20, + "column": 7 + }, + "end": { + "line": 23, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/features/planSelection/containers/PlanSelectionScreen.json b/src/i18n/messages/src/features/planSelection/containers/PlanSelectionScreen.json new file mode 100644 index 000000000..04b2144b4 --- /dev/null +++ b/src/i18n/messages/src/features/planSelection/containers/PlanSelectionScreen.json @@ -0,0 +1,54 @@ +[ + { + "id": "feature.planSelection.fullscreen.dialog.title", + "defaultMessage": "!!!Downgrade your Franz Plan", + "file": "src/features/planSelection/containers/PlanSelectionScreen.js", + "start": { + "line": 16, + "column": 15 + }, + "end": { + "line": 19, + "column": 3 + } + }, + { + "id": "feature.planSelection.fullscreen.dialog.message", + "defaultMessage": "!!!You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "file": "src/features/planSelection/containers/PlanSelectionScreen.js", + "start": { + "line": 20, + "column": 17 + }, + "end": { + "line": 23, + "column": 3 + } + }, + { + "id": "feature.planSelection.fullscreen.dialog.cta.downgrade", + "defaultMessage": "!!!Downgrade to Free", + "file": "src/features/planSelection/containers/PlanSelectionScreen.js", + "start": { + "line": 24, + "column": 22 + }, + "end": { + "line": 27, + "column": 3 + } + }, + { + "id": "feature.planSelection.fullscreen.dialog.cta.upgrade", + "defaultMessage": "!!!Choose Personal", + "file": "src/features/planSelection/containers/PlanSelectionScreen.js", + "start": { + "line": 28, + "column": 20 + }, + "end": { + "line": 31, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/helpers/plan-helpers.json b/src/i18n/messages/src/helpers/plan-helpers.json index df8ee19e3..3f3e7e85d 100644 --- a/src/i18n/messages/src/helpers/plan-helpers.json +++ b/src/i18n/messages/src/helpers/plan-helpers.json @@ -1,7 +1,7 @@ [ { "id": "pricing.plan.pro", - "defaultMessage": "!!!Franz Professional", + "defaultMessage": "!!!Professional", "file": "src/helpers/plan-helpers.js", "start": { "line": 5, @@ -14,7 +14,7 @@ }, { "id": "pricing.plan.personal", - "defaultMessage": "!!!Franz Personal", + "defaultMessage": "!!!Personal", "file": "src/helpers/plan-helpers.js", "start": { "line": 9, @@ -27,7 +27,7 @@ }, { "id": "pricing.plan.free", - "defaultMessage": "!!!Franz Free", + "defaultMessage": "!!!Free", "file": "src/helpers/plan-helpers.js", "start": { "line": 13, @@ -40,7 +40,7 @@ }, { "id": "pricing.plan.legacy", - "defaultMessage": "!!!Franz Premium", + "defaultMessage": "!!!Premium", "file": "src/helpers/plan-helpers.js", "start": { "line": 17, diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js index cf28b6bec..bffcb01bc 100644 --- a/src/stores/FeaturesStore.js +++ b/src/stores/FeaturesStore.js @@ -19,6 +19,7 @@ import settingsWS from '../features/settingsWS'; import serviceLimit from '../features/serviceLimit'; import communityRecipes from '../features/communityRecipes'; import todos from '../features/todos'; +import planSelection from '../features/planSelection'; import { DEFAULT_FEATURES_CONFIG } from '../config'; @@ -81,5 +82,6 @@ export default class FeaturesStore extends Store { serviceLimit(this.stores, this.actions); communityRecipes(this.stores, this.actions); todos(this.stores, this.actions); + planSelection(this.stores, this.actions); } } diff --git a/src/stores/index.js b/src/stores/index.js index 10dd56665..4eeef7982 100644 --- a/src/stores/index.js +++ b/src/stores/index.js @@ -15,6 +15,7 @@ import { announcementsStore } from '../features/announcements'; import { serviceLimitStore } from '../features/serviceLimit'; import { communityRecipesStore } from '../features/communityRecipes'; import { todosStore } from '../features/todos'; +import { planSelectionStore } from '../features/planSelection'; export default (api, actions, router) => { const stores = {}; @@ -37,6 +38,7 @@ export default (api, actions, router) => { serviceLimit: serviceLimitStore, communityRecipes: communityRecipesStore, todos: todosStore, + planSelection: planSelectionStore, }); // Initialize all stores Object.keys(stores).forEach((name) => { -- cgit v1.2.3-70-g09d2 From 939c00860ae65231070338b5bc0b09db7af0e149 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Tue, 15 Oct 2019 22:28:44 +0200 Subject: plan selection polishing --- .../planSelection/components/PlanSelection.js | 123 +++++++++++---------- .../containers/PlanSelectionScreen.js | 13 ++- src/i18n/locales/en-US.json | 2 +- .../planSelection/components/PlanSelection.json | 44 ++++---- .../containers/PlanSelectionScreen.json | 16 +-- 5 files changed, 108 insertions(+), 90 deletions(-) (limited to 'src/i18n') diff --git a/src/features/planSelection/components/PlanSelection.js b/src/features/planSelection/components/PlanSelection.js index d26cc08a2..9cd592083 100644 --- a/src/features/planSelection/components/PlanSelection.js +++ b/src/features/planSelection/components/PlanSelection.js @@ -11,6 +11,7 @@ import PlanItem from './PlanItem'; import { i18nPlanName } from '../../../helpers/plan-helpers'; import { PLANS } from '../../../config'; import { FeatureList } from '../../../components/ui/FeatureList'; +import Appear from '../../../components/ui/effects/Appear'; const messages = defineMessages({ welcome: { @@ -132,6 +133,10 @@ const styles = theme => ({ display: 'block', color: `${theme.styleTypes.primary.contrast} !important`, }, + scrollContainer: { + border: '1px solid red', + overflow: 'scroll-x', + }, }); @injectSheet(styles) @observer @@ -166,67 +171,69 @@ class PlanSelection extends Component { const { intl } = this.context; return ( -
-
-
- -
-

{intl.formatMessage(messages.welcome, { name: firstname })}

-

{intl.formatMessage(messages.subheadline)}

-
- stayOnFree()} - simpleCTA - > - - - upgradeAccount(plans.personal.yearly.id)} - > - - - upgradeAccount(plans.personal.yearly.id)} - perUser + +
+
+
+ +
+

{intl.formatMessage(messages.welcome, { name: firstname })}

+

{intl.formatMessage(messages.subheadline)}

+
+ stayOnFree()} + simpleCTA + > + + + upgradeAccount(plans.personal.yearly.id)} + > + + + upgradeAccount(plans.personal.yearly.id)} + perUser + > + + +
+ - - + {intl.formatMessage(messages.fullFeatureList)} +
- - {intl.formatMessage(messages.fullFeatureList)} -
-
+ ); } } diff --git a/src/features/planSelection/containers/PlanSelectionScreen.js b/src/features/planSelection/containers/PlanSelectionScreen.js index b0d9b5ab5..01b357861 100644 --- a/src/features/planSelection/containers/PlanSelectionScreen.js +++ b/src/features/planSelection/containers/PlanSelectionScreen.js @@ -8,7 +8,8 @@ import FeaturesStore from '../../../stores/FeaturesStore'; import UserStore from '../../../stores/UserStore'; import PlanSelection from '../components/PlanSelection'; import ErrorBoundary from '../../../components/util/ErrorBoundary'; -import { planSelectionStore } from '..'; +import { planSelectionStore, GA_CATEGORY_PLAN_SELECTION } from '..'; +import { gaEvent } from '../../../lib/analytics'; const { dialog, app } = remote; @@ -37,6 +38,10 @@ class PlanSelectionScreen extends Component { intl: intlShape, }; + componentDidMount() { + gaEvent(GA_CATEGORY_PLAN_SELECTION, 'show'); + } + upgradeAccount(planId) { const { user, features } = this.props.stores; const { upgradeAccount, hideOverlay } = this.props.actions.planSelection; @@ -83,6 +88,8 @@ class PlanSelectionScreen extends Component { upgradeAccount={(planId) => { if (user.data.hadSubscription) { this.upgradeAccount(planId); + + gaEvent(GA_CATEGORY_PLAN_SELECTION, 'SelectPlan', planId); } else { activateTrial({ planId, @@ -103,11 +110,15 @@ class PlanSelectionScreen extends Component { ], }); + gaEvent(GA_CATEGORY_PLAN_SELECTION, 'SelectPlan', 'Stay on Free'); + if (selection === 0) { downgradeAccount(); hideOverlay(); } else { upgradeAccount(plans.personal.yearly.id); + + gaEvent(GA_CATEGORY_PLAN_SELECTION, 'SelectPlan', 'Revoke'); } }} subscriptionExpired={user.team && user.team.state === 'expired' && !user.team.userHasDowngraded} diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 4e1b01419..f2fd7a52a 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -413,4 +413,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} +} \ No newline at end of file diff --git a/src/i18n/messages/src/features/planSelection/components/PlanSelection.json b/src/i18n/messages/src/features/planSelection/components/PlanSelection.json index 3dc4f74f4..76f4ed50b 100644 --- a/src/i18n/messages/src/features/planSelection/components/PlanSelection.json +++ b/src/i18n/messages/src/features/planSelection/components/PlanSelection.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Welcome back, {name}", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 16, + "line": 17, "column": 11 }, "end": { - "line": 19, + "line": 20, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 20, + "line": 21, "column": 15 }, "end": { - "line": 23, + "line": 24, "column": 3 } }, @@ -30,11 +30,11 @@ "defaultMessage": "!!!Basic functionality", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 24, + "line": 25, "column": 12 }, "end": { - "line": 27, + "line": 28, "column": 3 } }, @@ -43,11 +43,11 @@ "defaultMessage": "!!!More services, no waiting - ideal for personal use.", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 28, + "line": 29, "column": 16 }, "end": { - "line": 31, + "line": 32, "column": 3 } }, @@ -56,11 +56,11 @@ "defaultMessage": "!!!Unlimited services and professional features for you - and your team.", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 32, + "line": 33, "column": 20 }, "end": { - "line": 35, + "line": 36, "column": 3 } }, @@ -69,11 +69,11 @@ "defaultMessage": "!!!Stay on Free", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 36, + "line": 37, "column": 17 }, "end": { - "line": 39, + "line": 40, "column": 3 } }, @@ -82,11 +82,11 @@ "defaultMessage": "!!!Downgrade to Free", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 40, + "line": 41, "column": 20 }, "end": { - "line": 43, + "line": 44, "column": 3 } }, @@ -95,11 +95,11 @@ "defaultMessage": "!!!Start my free 14-days Trial", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 44, + "line": 45, "column": 15 }, "end": { - "line": 47, + "line": 48, "column": 3 } }, @@ -108,11 +108,11 @@ "defaultMessage": "!!!Choose Personal", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 48, + "line": 49, "column": 23 }, "end": { - "line": 51, + "line": 52, "column": 3 } }, @@ -121,11 +121,11 @@ "defaultMessage": "!!!Choose Professional", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 52, + "line": 53, "column": 18 }, "end": { - "line": 55, + "line": 56, "column": 3 } }, @@ -134,11 +134,11 @@ "defaultMessage": "!!!Complete comparison of all plans", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 56, + "line": 57, "column": 19 }, "end": { - "line": 59, + "line": 60, "column": 3 } } diff --git a/src/i18n/messages/src/features/planSelection/containers/PlanSelectionScreen.json b/src/i18n/messages/src/features/planSelection/containers/PlanSelectionScreen.json index 04b2144b4..905c6e09a 100644 --- a/src/i18n/messages/src/features/planSelection/containers/PlanSelectionScreen.json +++ b/src/i18n/messages/src/features/planSelection/containers/PlanSelectionScreen.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Downgrade your Franz Plan", "file": "src/features/planSelection/containers/PlanSelectionScreen.js", "start": { - "line": 16, + "line": 17, "column": 15 }, "end": { - "line": 19, + "line": 20, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "file": "src/features/planSelection/containers/PlanSelectionScreen.js", "start": { - "line": 20, + "line": 21, "column": 17 }, "end": { - "line": 23, + "line": 24, "column": 3 } }, @@ -30,11 +30,11 @@ "defaultMessage": "!!!Downgrade to Free", "file": "src/features/planSelection/containers/PlanSelectionScreen.js", "start": { - "line": 24, + "line": 25, "column": 22 }, "end": { - "line": 27, + "line": 28, "column": 3 } }, @@ -43,11 +43,11 @@ "defaultMessage": "!!!Choose Personal", "file": "src/features/planSelection/containers/PlanSelectionScreen.js", "start": { - "line": 28, + "line": 29, "column": 20 }, "end": { - "line": 31, + "line": 32, "column": 3 } } -- cgit v1.2.3-70-g09d2 From a7c222298e07800d0e09fa064ad257df4e0b6515 Mon Sep 17 00:00:00 2001 From: FranzBot Date: Wed, 16 Oct 2019 00:00:21 +0000 Subject: Automatic i18n update (i18n.meetfranz.com) --- src/i18n/locales/pl.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 13207f0ef..e803cc282 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -37,7 +37,7 @@ "infobar.buttonReloadServices" : "Odśwież usługi", "infobar.requiredRequestsFailed" : "Nie można załadować usług i informacji użytkownika", "infobar.servicesUpdated" : "Usługi zostały zaktualizowane.", - "infobar.trialActivated" : "Your trial was successfully activated. Happy messaging!", + "infobar.trialActivated" : "Twój okres próbny właśnie się rozpoczął.Pozytywnych wrażeń!", "infobar.updateAvailable" : "Dostępna jest nowa wersja Franza.", "invite.email.label" : "Adres email", "invite.headline.friends" : "Zaproś 3 znajomych lub kolegów", @@ -91,7 +91,7 @@ "menu.services" : "Usługi", "menu.services.activatePreviousService" : "Poprzednia usługa", "menu.services.addNewService" : "Dodaj nową usługę...", - "menu.services.goHome" : "Home", + "menu.services.goHome" : "Strona główna", "menu.services.setNextServiceActive" : "Następna usługa", "menu.todos" : "Lista zadań", "menu.todos.enableTodos" : "Enable Todos", @@ -124,7 +124,7 @@ "password.successInfo" : "Proszę sprawdzić swój email", "premiumFeature.button.upgradeAccount" : "Ulepsz konto", "pricing.features.adFree" : "Na zawsze bez reklam", - "pricing.features.appDelays" : "No Waiting Screens", + "pricing.features.appDelays" : "Bez czekania", "pricing.features.customWebsites" : "Dodawanie dowolnych stron internetowych", "pricing.features.onPremise" : "On-premise & other Hosted Services", "pricing.features.serviceProxies" : "Service Proxies", @@ -373,7 +373,7 @@ "validation.url" : "Pole {field} nie jest poprawnym ciągiem URL.", "webControls.back" : "Back", "webControls.forward" : "Forward", - "webControls.goHome" : "Home", + "webControls.goHome" : "Strona główna", "webControls.openInBrowser" : "Open in Browser", "webControls.reload" : "Reload", "welcome.loginButton" : "Zaloguj się na swoje konto", -- cgit v1.2.3-70-g09d2 From ba578b8a6df8d31136fb170e78b70a71dad85e31 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 16 Oct 2019 10:22:00 +0200 Subject: polishing --- src/components/auth/Pricing.js | 15 +++ src/containers/auth/PricingScreen.js | 11 +++ src/features/planSelection/components/PlanItem.js | 50 +++++++--- .../planSelection/components/PlanSelection.js | 27 +++--- .../containers/PlanSelectionScreen.js | 14 --- src/features/planSelection/store.js | 3 + src/i18n/locales/defaultMessages.json | 102 +++++++++++++-------- src/i18n/locales/en-US.json | 4 +- src/i18n/messages/src/components/auth/Pricing.json | 29 ++++-- .../planSelection/components/PlanItem.json | 19 +++- 10 files changed, 184 insertions(+), 90 deletions(-) (limited to 'src/i18n') diff --git a/src/components/auth/Pricing.js b/src/components/auth/Pricing.js index 40ce49814..67af04470 100644 --- a/src/components/auth/Pricing.js +++ b/src/components/auth/Pricing.js @@ -32,6 +32,10 @@ const messages = defineMessages({ id: 'pricing.trial.terms.automaticTrialEnd', defaultMessage: '!!!Your free trial ends automatically after 14 days', }, + trialWorth: { + id: 'pricing.trial.terms.trialWorth', + defaultMessage: '!!!Free trial (normally {currency}{price} per month)', + }, activationError: { id: 'pricing.trial.error', defaultMessage: '!!!Sorry, we could not activate your trial!', @@ -104,6 +108,8 @@ export default @observer @injectSheet(styles) class Signup extends Component { trialActivationError: PropTypes.bool.isRequired, canSkipTrial: PropTypes.bool.isRequired, classes: PropTypes.object.isRequired, + currency: PropTypes.string.isRequired, + price: PropTypes.number.isRequired, }; static contextTypes = { @@ -118,6 +124,8 @@ export default @observer @injectSheet(styles) class Signup extends Component { trialActivationError, canSkipTrial, classes, + currency, + price, } = this.props; const { intl } = this.context; @@ -156,6 +164,13 @@ export default @observer @injectSheet(styles) class Signup extends Component { {intl.formatMessage(messages.noStringsAttachedHeadline)}
    +
diff --git a/src/containers/auth/PricingScreen.js b/src/containers/auth/PricingScreen.js index 8e0ded16a..ff378bd8b 100644 --- a/src/containers/auth/PricingScreen.js +++ b/src/containers/auth/PricingScreen.js @@ -40,6 +40,15 @@ export default @inject('stores', 'actions') @observer class PricingScreen extend const { getUserInfoRequest, activateTrialRequest } = stores.user; const { featuresRequest, features } = stores.features; + const { pricingConfig } = features; + + let currency = '$'; + let price = '5.99'; + if (pricingConfig) { + ({ currency } = pricingConfig); + ({ price } = pricingConfig.plans.pro.yearly); + } + return ( ); } diff --git a/src/features/planSelection/components/PlanItem.js b/src/features/planSelection/components/PlanItem.js index a49cd40d3..ea04c8448 100644 --- a/src/features/planSelection/components/PlanItem.js +++ b/src/features/planSelection/components/PlanItem.js @@ -10,10 +10,6 @@ import { H2 } from '@meetfranz/ui'; import { Button } from '@meetfranz/forms'; import { mdiArrowRight } from '@mdi/js'; -// import { FeatureList } from '../ui/FeatureList'; -// import { PLANS, PAYMENT_INTERVAL } from '../../config'; -// import { i18nPlanName, i18nIntervalName } from '../../helpers/plan-helpers'; -// import { PLAN_INTERVAL_CONFIG_TYPE } from './types'; const messages = defineMessages({ perMonth: { @@ -24,6 +20,10 @@ const messages = defineMessages({ id: 'subscription.interval.perMonthPerUser', defaultMessage: '!!!per month & user', }, + bestValue: { + id: 'subscription.bestValue', + defaultMessage: '!!!Best value', + }, }); const styles = theme => ({ @@ -41,7 +41,6 @@ const styles = theme => ({ marginBottom: 20, fontSize: 30, color: theme.styleTypes.primary.contrast, - // fontWeight: 'bold', }, }, currency: { @@ -58,9 +57,6 @@ const styles = theme => ({ verticalAlign: 20, }, }, - interval: { - // paddingBottom: 40, - }, text: { marginBottom: 'auto', }, @@ -68,10 +64,6 @@ const styles = theme => ({ background: theme.styleTypes.primary.accent, color: theme.styleTypes.primary.contrast, margin: [40, 'auto', 0, 'auto'], - - // '&:active': { - // opacity: 0.7, - // }, }, divider: { width: 40, @@ -83,10 +75,10 @@ const styles = theme => ({ padding: 20, background: color(theme.styleTypes.primary.accent).darken(0.25).hex(), color: theme.styleTypes.primary.contrast, + position: 'relative', }, content: { padding: 20, - // border: [1, 'solid', 'red'], background: '#EFEFEF', }, simpleCTA: { @@ -97,6 +89,20 @@ const styles = theme => ({ fill: theme.styleTypes.primary.accent, }, }, + bestValue: { + background: theme.styleTypes.success.accent, + color: theme.styleTypes.success.contrast, + right: -66, + top: -40, + height: 'auto', + position: 'absolute', + transform: 'rotateZ(45deg)', + textAlign: 'center', + padding: [5, 50], + transformOrigin: 'left bottom', + fontSize: 12, + boxShadow: '0 2px 6px rgba(0,0,0,0.15)', + }, }); @@ -111,6 +117,8 @@ export default @observer @injectSheet(styles) class PlanItem extends Component { simpleCTA: PropTypes.bool, perUser: PropTypes.bool, classes: PropTypes.object.isRequired, + bestValue: PropTypes.bool, + className: PropTypes.string, children: PropTypes.element, }; @@ -118,6 +126,8 @@ export default @observer @injectSheet(styles) class PlanItem extends Component { simpleCTA: false, perUser: false, children: null, + bestValue: false, + className: '', } static contextTypes = { @@ -135,16 +145,26 @@ export default @observer @injectSheet(styles) class PlanItem extends Component { ctaLabel, simpleCTA, perUser, + bestValue, + className, children, } = this.props; const { intl } = this.context; const priceParts = `${price}`.split('.'); - // const intervalName = i18nIntervalName(PAYMENT_INTERVAL.MONTHLY, intl); return ( -
+
+ {bestValue && ( +
+ {intl.formatMessage(messages.bestValue)} +
+ )}

{name}

{text} diff --git a/src/features/planSelection/components/PlanSelection.js b/src/features/planSelection/components/PlanSelection.js index 9cd592083..1a45cf035 100644 --- a/src/features/planSelection/components/PlanSelection.js +++ b/src/features/planSelection/components/PlanSelection.js @@ -137,6 +137,9 @@ const styles = theme => ({ border: '1px solid red', overflow: 'scroll-x', }, + featuredPlan: { + transform: 'scale(1.05)', + }, }); @injectSheet(styles) @observer @@ -197,29 +200,31 @@ class PlanSelection extends Component { /> upgradeAccount(plans.personal.yearly.id)} + className={classes.featuredPlan} + perUser + bestValue > upgradeAccount(plans.personal.yearly.id)} - perUser > diff --git a/src/features/planSelection/containers/PlanSelectionScreen.js b/src/features/planSelection/containers/PlanSelectionScreen.js index 01b357861..dff9051d8 100644 --- a/src/features/planSelection/containers/PlanSelectionScreen.js +++ b/src/features/planSelection/containers/PlanSelectionScreen.js @@ -43,15 +43,12 @@ class PlanSelectionScreen extends Component { } upgradeAccount(planId) { - const { user, features } = this.props.stores; const { upgradeAccount, hideOverlay } = this.props.actions.planSelection; upgradeAccount({ planId, onCloseWindow: () => { hideOverlay(); - user.getUserInfoRequest.invalidate({ immediately: true }); - features.featuresRequest.invalidate({ immediately: true }); }, }); } @@ -68,17 +65,6 @@ class PlanSelectionScreen extends Component { const { activateTrial } = this.props.actions.user; const { upgradeAccount, downgradeAccount, hideOverlay } = this.props.actions.planSelection; - // const planConfig = [{ - // id: 'free', - // price: 0, - // }, { - // id: plans.personal.yearly.id, - // price: plans.personal.yearly.price, - // }, { - // id: plans.pro.yearly.id, - // price: plans.pro.yearly.price, - // }]; - return ( { + this.stores.user.getUserInfoRequest.invalidate({ immediately: true }); + this.stores.features.featuresRequest.invalidate({ immediately: true }); + onCloseWindow(); }); }; diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 210ea001a..eafac1f87 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -482,55 +482,68 @@ } }, { - "defaultMessage": "!!!Sorry, we could not activate your trial!", + "defaultMessage": "!!!Free trial (normally {currency}{price} per month)", "end": { "column": 3, "line": 38 }, "file": "src/components/auth/Pricing.js", + "id": "pricing.trial.terms.trialWorth", + "start": { + "column": 14, + "line": 35 + } + }, + { + "defaultMessage": "!!!Sorry, we could not activate your trial!", + "end": { + "column": 3, + "line": 42 + }, + "file": "src/components/auth/Pricing.js", "id": "pricing.trial.error", "start": { "column": 19, - "line": 35 + "line": 39 } }, { "defaultMessage": "!!!Start my 14-day Franz Professional Trial", "end": { "column": 3, - "line": 42 + "line": 46 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.cta.accept", "start": { "column": 13, - "line": 39 + "line": 43 } }, { "defaultMessage": "!!!Continue to Franz", "end": { "column": 3, - "line": 46 + "line": 50 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.cta.skip", "start": { "column": 11, - "line": 43 + "line": 47 } }, { "defaultMessage": "!!!Franz Professional includes:", "end": { "column": 3, - "line": 50 + "line": 54 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.features.headline", "start": { "column": 20, - "line": 47 + "line": 51 } } ], @@ -3923,6 +3936,19 @@ "column": 19, "line": 23 } + }, + { + "defaultMessage": "!!!Best value", + "end": { + "column": 3, + "line": 30 + }, + "file": "src/features/planSelection/components/PlanItem.js", + "id": "subscription.bestValue", + "start": { + "column": 13, + "line": 27 + } } ], "path": "src/features/planSelection/components/PlanItem.json" @@ -3933,143 +3959,143 @@ "defaultMessage": "!!!Welcome back, {name}", "end": { "column": 3, - "line": 19 + "line": 20 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.fullscreen.welcome", "start": { "column": 11, - "line": 16 + "line": 17 } }, { "defaultMessage": "!!!It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "end": { "column": 3, - "line": 23 + "line": 24 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.fullscreen.subheadline", "start": { "column": 15, - "line": 20 + "line": 21 } }, { "defaultMessage": "!!!Basic functionality", "end": { "column": 3, - "line": 27 + "line": 28 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.free.text", "start": { "column": 12, - "line": 24 + "line": 25 } }, { "defaultMessage": "!!!More services, no waiting - ideal for personal use.", "end": { "column": 3, - "line": 31 + "line": 32 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.personal.text", "start": { "column": 16, - "line": 28 + "line": 29 } }, { "defaultMessage": "!!!Unlimited services and professional features for you - and your team.", "end": { "column": 3, - "line": 35 + "line": 36 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.pro.text", "start": { "column": 20, - "line": 32 + "line": 33 } }, { "defaultMessage": "!!!Stay on Free", "end": { "column": 3, - "line": 39 + "line": 40 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.cta.stayOnFree", "start": { "column": 17, - "line": 36 + "line": 37 } }, { "defaultMessage": "!!!Downgrade to Free", "end": { "column": 3, - "line": 43 + "line": 44 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.cta.ctaDowngradeFree", "start": { "column": 20, - "line": 40 + "line": 41 } }, { "defaultMessage": "!!!Start my free 14-days Trial", "end": { "column": 3, - "line": 47 + "line": 48 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.cta.trial", "start": { "column": 15, - "line": 44 + "line": 45 } }, { "defaultMessage": "!!!Choose Personal", "end": { "column": 3, - "line": 51 + "line": 52 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.cta.upgradePersonal", "start": { "column": 23, - "line": 48 + "line": 49 } }, { "defaultMessage": "!!!Choose Professional", "end": { "column": 3, - "line": 55 + "line": 56 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.cta.upgradePro", "start": { "column": 18, - "line": 52 + "line": 53 } }, { "defaultMessage": "!!!Complete comparison of all plans", "end": { "column": 3, - "line": 59 + "line": 60 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.fullFeatureList", "start": { "column": 19, - "line": 56 + "line": 57 } } ], @@ -4112,52 +4138,52 @@ "defaultMessage": "!!!Downgrade your Franz Plan", "end": { "column": 3, - "line": 19 + "line": 20 }, "file": "src/features/planSelection/containers/PlanSelectionScreen.js", "id": "feature.planSelection.fullscreen.dialog.title", "start": { "column": 15, - "line": 16 + "line": 17 } }, { "defaultMessage": "!!!You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "end": { "column": 3, - "line": 23 + "line": 24 }, "file": "src/features/planSelection/containers/PlanSelectionScreen.js", "id": "feature.planSelection.fullscreen.dialog.message", "start": { "column": 17, - "line": 20 + "line": 21 } }, { "defaultMessage": "!!!Downgrade to Free", "end": { "column": 3, - "line": 27 + "line": 28 }, "file": "src/features/planSelection/containers/PlanSelectionScreen.js", "id": "feature.planSelection.fullscreen.dialog.cta.downgrade", "start": { "column": 22, - "line": 24 + "line": 25 } }, { "defaultMessage": "!!!Choose Personal", "end": { "column": 3, - "line": 31 + "line": 32 }, "file": "src/features/planSelection/containers/PlanSelectionScreen.js", "id": "feature.planSelection.fullscreen.dialog.cta.upgrade", "start": { "column": 20, - "line": 28 + "line": 29 } } ], diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index f2fd7a52a..6977ec096 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -170,6 +170,7 @@ "pricing.trial.terms.automaticTrialEnd": "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline": "No strings attached", "pricing.trial.terms.noCreditCard": "No credit card required", + "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)", "service.crashHandler.action": "Reload {name}", "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds", "service.crashHandler.headline": "Oh no!", @@ -369,6 +370,7 @@ "signup.link.login": "Already have an account, sign in?", "signup.password.label": "Password", "signup.submit.label": "Create account", + "subscription.bestValue": "Best value", "subscription.cta.activateTrial": "Yes, start the free Franz Professional trial", "subscription.cta.allOptions": "See all options", "subscription.cta.choosePlan": "Choose your plan", @@ -413,4 +415,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} \ No newline at end of file +} diff --git a/src/i18n/messages/src/components/auth/Pricing.json b/src/i18n/messages/src/components/auth/Pricing.json index 2d09c9ebb..3f0cf4e86 100644 --- a/src/i18n/messages/src/components/auth/Pricing.json +++ b/src/i18n/messages/src/components/auth/Pricing.json @@ -64,16 +64,29 @@ "column": 3 } }, + { + "id": "pricing.trial.terms.trialWorth", + "defaultMessage": "!!!Free trial (normally {currency}{price} per month)", + "file": "src/components/auth/Pricing.js", + "start": { + "line": 35, + "column": 14 + }, + "end": { + "line": 38, + "column": 3 + } + }, { "id": "pricing.trial.error", "defaultMessage": "!!!Sorry, we could not activate your trial!", "file": "src/components/auth/Pricing.js", "start": { - "line": 35, + "line": 39, "column": 19 }, "end": { - "line": 38, + "line": 42, "column": 3 } }, @@ -82,11 +95,11 @@ "defaultMessage": "!!!Start my 14-day Franz Professional Trial", "file": "src/components/auth/Pricing.js", "start": { - "line": 39, + "line": 43, "column": 13 }, "end": { - "line": 42, + "line": 46, "column": 3 } }, @@ -95,11 +108,11 @@ "defaultMessage": "!!!Continue to Franz", "file": "src/components/auth/Pricing.js", "start": { - "line": 43, + "line": 47, "column": 11 }, "end": { - "line": 46, + "line": 50, "column": 3 } }, @@ -108,11 +121,11 @@ "defaultMessage": "!!!Franz Professional includes:", "file": "src/components/auth/Pricing.js", "start": { - "line": 47, + "line": 51, "column": 20 }, "end": { - "line": 50, + "line": 54, "column": 3 } } diff --git a/src/i18n/messages/src/features/planSelection/components/PlanItem.json b/src/i18n/messages/src/features/planSelection/components/PlanItem.json index 839686390..5a94f32ee 100644 --- a/src/i18n/messages/src/features/planSelection/components/PlanItem.json +++ b/src/i18n/messages/src/features/planSelection/components/PlanItem.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!per month", "file": "src/features/planSelection/components/PlanItem.js", "start": { - "line": 19, + "line": 15, "column": 12 }, "end": { - "line": 22, + "line": 18, "column": 3 } }, @@ -17,9 +17,22 @@ "defaultMessage": "!!!per month & user", "file": "src/features/planSelection/components/PlanItem.js", "start": { - "line": 23, + "line": 19, "column": 19 }, + "end": { + "line": 22, + "column": 3 + } + }, + { + "id": "subscription.bestValue", + "defaultMessage": "!!!Best value", + "file": "src/features/planSelection/components/PlanItem.js", + "start": { + "line": 23, + "column": 13 + }, "end": { "line": 26, "column": 3 -- cgit v1.2.3-70-g09d2 From 0b08e1e7e6a07acd21af71fd27f4c4acfa34dbba Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 16 Oct 2019 15:16:26 +0200 Subject: Add trialStatusBar & polishing --- packages/theme/src/themes/dark/index.ts | 13 +- packages/theme/src/themes/default/index.ts | 11 ++ src/actions/index.js | 2 + src/actions/payment.js | 4 + src/components/layout/AppLayout.js | 2 + src/components/ui/FeatureList.js | 3 +- src/features/planSelection/actions.js | 4 - .../planSelection/components/PlanSelection.js | 2 +- .../containers/PlanSelectionScreen.js | 13 +- src/features/planSelection/store.js | 40 +----- src/features/trialStatusBar/actions.js | 13 ++ .../trialStatusBar/components/ProgressBar.js | 46 +++++++ .../trialStatusBar/components/TrialStatusBar.js | 135 +++++++++++++++++++++ .../containers/TrialStatusBarScreen.js | 101 +++++++++++++++ src/features/trialStatusBar/index.js | 30 +++++ src/features/trialStatusBar/store.js | 72 +++++++++++ src/i18n/locales/defaultMessages.json | 125 +++++++++++++++++-- src/i18n/locales/en-US.json | 7 ++ .../messages/src/components/layout/AppLayout.json | 12 +- .../trialStatusBar/components/TrialStatusBar.json | 41 +++++++ .../containers/TrialStatusBarScreen.json | 54 +++++++++ src/stores/AppStore.js | 14 +++ src/stores/FeaturesStore.js | 2 + src/stores/PaymentStore.js | 37 ++++++ src/stores/UserStore.js | 4 +- 25 files changed, 718 insertions(+), 69 deletions(-) create mode 100644 src/features/trialStatusBar/actions.js create mode 100644 src/features/trialStatusBar/components/ProgressBar.js create mode 100644 src/features/trialStatusBar/components/TrialStatusBar.js create mode 100644 src/features/trialStatusBar/containers/TrialStatusBarScreen.js create mode 100644 src/features/trialStatusBar/index.js create mode 100644 src/features/trialStatusBar/store.js create mode 100644 src/i18n/messages/src/features/trialStatusBar/components/TrialStatusBar.json create mode 100644 src/i18n/messages/src/features/trialStatusBar/containers/TrialStatusBarScreen.json (limited to 'src/i18n') diff --git a/packages/theme/src/themes/dark/index.ts b/packages/theme/src/themes/dark/index.ts index 9a66f3463..30cc19d99 100644 --- a/packages/theme/src/themes/dark/index.ts +++ b/packages/theme/src/themes/dark/index.ts @@ -65,7 +65,7 @@ export const selectOptionItemHoverColor = selectColor; export const selectSearchColor = inputBackground; // Modal -export const colorModalOverlayBackground = color(legacyStyles.darkThemeBlack).alpha(0.5).rgb().string(); +export const colorModalOverlayBackground = color(legacyStyles.darkThemeBlack).alpha(0.8).rgb().string(); export const colorModalBackground = legacyStyles.darkThemeGrayDark; // Services @@ -146,3 +146,14 @@ export const todos = merge({}, defaultStyles.todos, { background: legacyStyles.themeGrayLight, }, }); + +// TrialStatusBar +export const trialStatusBar = merge({}, defaultStyles.trialStatusBar, { + bar: { + background: legacyStyles.darkThemeGray, + }, + progressBar: { + background: legacyStyles.darkThemeGrayLighter, + progressIndicator: legacyStyles.darkThemeGrayLightest, + }, +}); diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts index 057fde72f..b484d9972 100644 --- a/packages/theme/src/themes/default/index.ts +++ b/packages/theme/src/themes/default/index.ts @@ -238,3 +238,14 @@ export const todos = { backgroundHover: styleTypes.primary.accent, }, }; + +// TrialStatusBar +export const trialStatusBar = { + bar: { + background: legacyStyles.themeGray, + }, + progressBar: { + background: legacyStyles.themeGrayLight, + progressIndicator: legacyStyles.themeGrayLighter, + }, +}; diff --git a/src/actions/index.js b/src/actions/index.js index 1c033fb96..9d3684edc 100644 --- a/src/actions/index.js +++ b/src/actions/index.js @@ -15,6 +15,7 @@ import announcements from '../features/announcements/actions'; import workspaces from '../features/workspaces/actions'; import todos from '../features/todos/actions'; import planSelection from '../features/planSelection/actions'; +import trialStatusBar from '../features/trialStatusBar/actions'; const actions = Object.assign({}, { service, @@ -35,4 +36,5 @@ export default Object.assign( { workspaces }, { todos }, { planSelection }, + { trialStatusBar }, ); diff --git a/src/actions/payment.js b/src/actions/payment.js index 2aaefc025..f61faf197 100644 --- a/src/actions/payment.js +++ b/src/actions/payment.js @@ -4,5 +4,9 @@ export default { createHostedPage: { planId: PropTypes.string.isRequired, }, + upgradeAccount: { + planId: PropTypes.string.isRequired, + onCloseWindow: PropTypes.func, + }, createDashboardUrl: {}, }; diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js index fe81b1911..9b110262a 100644 --- a/src/components/layout/AppLayout.js +++ b/src/components/layout/AppLayout.js @@ -20,6 +20,7 @@ import AppUpdateInfoBar from '../AppUpdateInfoBar'; import TrialActivationInfoBar from '../TrialActivationInfoBar'; import Todos from '../../features/todos/containers/TodosScreen'; import PlanSelection from '../../features/planSelection/containers/PlanSelectionScreen'; +import TrialStatusBar from '../../features/trialStatusBar/containers/TrialStatusBarScreen'; function createMarkup(HTMLString) { return { __html: HTMLString }; @@ -174,6 +175,7 @@ class AppLayout extends Component { {services} {children} +
diff --git a/src/components/ui/FeatureList.js b/src/components/ui/FeatureList.js index 732b40e40..7ba8b54d7 100644 --- a/src/components/ui/FeatureList.js +++ b/src/components/ui/FeatureList.js @@ -72,12 +72,13 @@ export class FeatureList extends Component { static propTypes = { className: PropTypes.string, featureClassName: PropTypes.string, - plan: PropTypes.oneOf(PLANS).isRequired, + plan: PropTypes.oneOf(PLANS), }; static defaultProps = { className: '', featureClassName: '', + plan: false, } static contextTypes = { diff --git a/src/features/planSelection/actions.js b/src/features/planSelection/actions.js index 21aa38ace..83f58bfd7 100644 --- a/src/features/planSelection/actions.js +++ b/src/features/planSelection/actions.js @@ -2,10 +2,6 @@ import PropTypes from 'prop-types'; import { createActionsFromDefinitions } from '../../actions/lib/actions'; export const planSelectionActions = createActionsFromDefinitions({ - upgradeAccount: { - planId: PropTypes.string.isRequired, - onCloseWindow: PropTypes.func.isRequired, - }, downgradeAccount: {}, hideOverlay: {}, }, PropTypes.checkPropTypes); diff --git a/src/features/planSelection/components/PlanSelection.js b/src/features/planSelection/components/PlanSelection.js index 1a45cf035..cf4474114 100644 --- a/src/features/planSelection/components/PlanSelection.js +++ b/src/features/planSelection/components/PlanSelection.js @@ -205,7 +205,7 @@ class PlanSelection extends Component { price={plans.pro.yearly.price} currency={currency} ctaLabel={intl.formatMessage(hadSubscription ? messages.shortActionPro : messages.actionTrial)} - upgrade={() => upgradeAccount(plans.personal.yearly.id)} + upgrade={() => upgradeAccount(plans.pro.yearly.id)} className={classes.featuredPlan} perUser bestValue diff --git a/src/features/planSelection/containers/PlanSelectionScreen.js b/src/features/planSelection/containers/PlanSelectionScreen.js index dff9051d8..6e8cdbf47 100644 --- a/src/features/planSelection/containers/PlanSelectionScreen.js +++ b/src/features/planSelection/containers/PlanSelectionScreen.js @@ -43,13 +43,10 @@ class PlanSelectionScreen extends Component { } upgradeAccount(planId) { - const { upgradeAccount, hideOverlay } = this.props.actions.planSelection; + const { upgradeAccount } = this.props.actions.payment; upgradeAccount({ planId, - onCloseWindow: () => { - hideOverlay(); - }, }); } @@ -63,7 +60,7 @@ class PlanSelectionScreen extends Component { const { user, features } = this.props.stores; const { plans, currency } = features.features.pricingConfig; const { activateTrial } = this.props.actions.user; - const { upgradeAccount, downgradeAccount, hideOverlay } = this.props.actions.planSelection; + const { downgradeAccount, hideOverlay } = this.props.actions.planSelection; return ( @@ -102,7 +99,7 @@ class PlanSelectionScreen extends Component { downgradeAccount(); hideOverlay(); } else { - upgradeAccount(plans.personal.yearly.id); + this.upgradeAccount(plans.personal.yearly.id); gaEvent(GA_CATEGORY_PLAN_SELECTION, 'SelectPlan', 'Revoke'); } @@ -123,8 +120,10 @@ PlanSelectionScreen.wrappedComponent.propTypes = { user: PropTypes.instanceOf(UserStore).isRequired, }).isRequired, actions: PropTypes.shape({ - planSelection: PropTypes.shape({ + payment: PropTypes.shape({ upgradeAccount: PropTypes.func.isRequired, + }), + planSelection: PropTypes.shape({ downgradeAccount: PropTypes.func.isRequired, hideOverlay: PropTypes.func.isRequired, }), diff --git a/src/features/planSelection/store.js b/src/features/planSelection/store.js index e229c37e5..0d4672722 100644 --- a/src/features/planSelection/store.js +++ b/src/features/planSelection/store.js @@ -42,7 +42,6 @@ export default class PlanSelectionStore extends FeatureStore { // ACTIONS this._registerActions(createActionBindings([ - [planSelectionActions.upgradeAccount, this._upgradeAccount], [planSelectionActions.downgradeAccount, this._downgradeAccount], [planSelectionActions.hideOverlay, this._hideOverlay], ])); @@ -64,47 +63,12 @@ export default class PlanSelectionStore extends FeatureStore { @action stop() { super.stop(); debug('PlanSelectionStore::stop'); - this.reset(); this.isFeatureActive = false; } // ========== PRIVATE METHODS ========= // // Actions - - @action _upgradeAccount = ({ planId, onCloseWindow = () => null }) => { - let hostedPageURL = this.stores.features.features.subscribeURL; - - const parsedUrl = new URL(hostedPageURL); - const params = new URLSearchParams(parsedUrl.search.slice(1)); - - params.set('plan', planId); - - hostedPageURL = this.stores.user.getAuthURL(`${parsedUrl.origin}${parsedUrl.pathname}?${params.toString()}`); - - const win = new BrowserWindow({ - parent: remote.getCurrentWindow(), - modal: true, - title: '🔒 Upgrade Your Franz Account', - width: 800, - height: window.innerHeight - 100, - maxWidth: 800, - minWidth: 600, - webPreferences: { - nodeIntegration: true, - webviewTag: true, - }, - }); - win.loadURL(`file://${__dirname}/../../index.html#/payment/${encodeURIComponent(hostedPageURL)}`); - - win.on('closed', () => { - this.stores.user.getUserInfoRequest.invalidate({ immediately: true }); - this.stores.features.featuresRequest.invalidate({ immediately: true }); - - onCloseWindow(); - }); - }; - @action _downgradeAccount = () => { downgradeUserRequest.execute(); } @@ -112,4 +76,8 @@ export default class PlanSelectionStore extends FeatureStore { @action _hideOverlay = () => { this.hideOverlay = true; } + + @action _showOverlay = () => { + this.hideOverlay = false; + } } diff --git a/src/features/trialStatusBar/actions.js b/src/features/trialStatusBar/actions.js new file mode 100644 index 000000000..38df76458 --- /dev/null +++ b/src/features/trialStatusBar/actions.js @@ -0,0 +1,13 @@ +import PropTypes from 'prop-types'; +import { createActionsFromDefinitions } from '../../actions/lib/actions'; + +export const trialStatusBarActions = createActionsFromDefinitions({ + upgradeAccount: { + planId: PropTypes.string.isRequired, + onCloseWindow: PropTypes.func.isRequired, + }, + downgradeAccount: {}, + hideOverlay: {}, +}, PropTypes.checkPropTypes); + +export default trialStatusBarActions; diff --git a/src/features/trialStatusBar/components/ProgressBar.js b/src/features/trialStatusBar/components/ProgressBar.js new file mode 100644 index 000000000..80d478d8c --- /dev/null +++ b/src/features/trialStatusBar/components/ProgressBar.js @@ -0,0 +1,46 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer } from 'mobx-react'; +import injectSheet from 'react-jss'; + +const styles = theme => ({ + root: { + background: theme.trialStatusBar.progressBar.background, + width: '25%', + maxWidth: 200, + height: 8, + display: 'flex', + alignItems: 'center', + borderRadius: theme.borderRadius, + overflow: 'hidden', + }, + progress: { + background: theme.trialStatusBar.progressBar.progressIndicator, + width: ({ percent }) => `${percent}%`, + height: '100%', + }, +}); + +@injectSheet(styles) @observer +class ProgressBar extends Component { + static propTypes = { + classes: PropTypes.object.isRequired, + percent: PropTypes.number.isRequired, + }; + + render() { + const { + classes, + } = this.props; + + return ( +
+
+
+ ); + } +} + +export default ProgressBar; diff --git a/src/features/trialStatusBar/components/TrialStatusBar.js b/src/features/trialStatusBar/components/TrialStatusBar.js new file mode 100644 index 000000000..b8fe4acc9 --- /dev/null +++ b/src/features/trialStatusBar/components/TrialStatusBar.js @@ -0,0 +1,135 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer } from 'mobx-react'; +import injectSheet from 'react-jss'; +import { defineMessages, intlShape } from 'react-intl'; +import { Icon } from '@meetfranz/ui'; +import { mdiArrowRight, mdiWindowClose } from '@mdi/js'; +import classnames from 'classnames'; + +import ProgressBar from './ProgressBar'; + +const messages = defineMessages({ + restTime: { + id: 'feature.trialStatusBar.restTime', + defaultMessage: '!!!Your Free Franz {plan} Trial ends in {time}.', + }, + expired: { + id: 'feature.trialStatusBar.expired', + defaultMessage: '!!!Your free Franz {plan} Trial has expired, please upgrade your account.', + }, + cta: { + id: 'feature.trialStatusBar.cta', + defaultMessage: '!!!Upgrade now', + }, +}); + +const styles = theme => ({ + root: { + background: theme.trialStatusBar.bar.background, + width: '100%', + height: 25, + order: 10, + display: 'flex', + alignItems: 'center', + fontSize: 12, + padding: [0, 10], + justifyContent: 'flex-end', + }, + ended: { + background: theme.styleTypes.warning.accent, + color: theme.styleTypes.warning.contrast, + }, + message: { + marginLeft: 20, + }, + action: { + marginLeft: 20, + fontSize: 12, + color: theme.colorText, + textDecoration: 'underline', + display: 'flex', + + '& svg': { + margin: [1, 2, 0, 0], + }, + }, +}); + +@injectSheet(styles) @observer +class TrialStatusBar extends Component { + static propTypes = { + planName: PropTypes.string.isRequired, + percent: PropTypes.number.isRequired, + upgradeAccount: PropTypes.func.isRequired, + hideOverlay: PropTypes.func.isRequired, + trialEnd: PropTypes.string.isRequired, + hasEnded: PropTypes.bool.isRequired, + classes: PropTypes.object.isRequired, + }; + + static contextTypes = { + intl: intlShape, + }; + + render() { + const { + planName, + percent, + upgradeAccount, + hideOverlay, + trialEnd, + hasEnded, + classes, + } = this.props; + + const { intl } = this.context; + + return ( +
+ + {' '} + + {!hasEnded ? ( + intl.formatMessage(messages.restTime, { + plan: planName, + time: trialEnd, + }) + ) : ( + intl.formatMessage(messages.expired, { + plan: planName, + }) + )} + + + +
+ ); + } +} + +export default TrialStatusBar; diff --git a/src/features/trialStatusBar/containers/TrialStatusBarScreen.js b/src/features/trialStatusBar/containers/TrialStatusBarScreen.js new file mode 100644 index 000000000..eb0aafaea --- /dev/null +++ b/src/features/trialStatusBar/containers/TrialStatusBarScreen.js @@ -0,0 +1,101 @@ +import React, { Component } from 'react'; +import { observer, inject } from 'mobx-react'; +import PropTypes from 'prop-types'; +import ms from 'ms'; + +import FeaturesStore from '../../../stores/FeaturesStore'; +import UserStore from '../../../stores/UserStore'; +import TrialStatusBar from '../components/TrialStatusBar'; +import ErrorBoundary from '../../../components/util/ErrorBoundary'; +import { trialStatusBarStore } from '..'; + +@inject('stores', 'actions') @observer +class TrialStatusBarScreen extends Component { + state = { + showOverlay: true, + percent: 0, + restTime: '', + hasEnded: false, + }; + + percentInterval = null; + + componentDidMount() { + this.percentInterval = setInterval(() => { + this.calculateRestTime(); + }, ms('1m')); + + this.calculateRestTime(); + } + + componentWillUnmount() { + clearInterval(this.percentInterval); + } + + calculateRestTime() { + const { trialEndTime } = trialStatusBarStore; + const percent = Math.abs(100 - Math.abs(trialEndTime.asMilliseconds()) * 100 / ms('14d')).toFixed(2); + const restTime = trialEndTime.humanize(); + const hasEnded = trialEndTime.asMilliseconds() > 0; + + this.setState({ + percent, + restTime, + hasEnded, + }); + } + + hideOverlay() { + this.setState({ + showOverlay: false, + }); + } + + + render() { + const { + showOverlay, + percent, + restTime, + hasEnded, + } = this.state; + + if (!trialStatusBarStore || !trialStatusBarStore.isFeatureActive || !showOverlay || !trialStatusBarStore.showTrialStatusBarOverlay) { + return null; + } + + const { user } = this.props.stores; + const { upgradeAccount } = this.props.actions.payment; + + console.log('hasEnded', hasEnded); + + return ( + + upgradeAccount({ + planId: user.team.plan, + })} + hideOverlay={() => this.hideOverlay()} + hasEnded={hasEnded} + /> + + ); + } +} + +export default TrialStatusBarScreen; + +TrialStatusBarScreen.wrappedComponent.propTypes = { + stores: PropTypes.shape({ + features: PropTypes.instanceOf(FeaturesStore).isRequired, + user: PropTypes.instanceOf(UserStore).isRequired, + }).isRequired, + actions: PropTypes.shape({ + payment: PropTypes.shape({ + upgradeAccount: PropTypes.func.isRequired, + }), + }).isRequired, +}; diff --git a/src/features/trialStatusBar/index.js b/src/features/trialStatusBar/index.js new file mode 100644 index 000000000..ec84cdfd7 --- /dev/null +++ b/src/features/trialStatusBar/index.js @@ -0,0 +1,30 @@ +import { reaction } from 'mobx'; +import TrialStatusBarStore from './store'; + +const debug = require('debug')('Franz:feature:trialStatusBar'); + +export const GA_CATEGORY_TRIAL_STATUS_BAR = 'trialStatusBar'; + +export const trialStatusBarStore = new TrialStatusBarStore(); + +export default function initTrialStatusBar(stores, actions) { + stores.trialStatusBar = trialStatusBarStore; + const { features } = stores; + + // Toggle trialStatusBar feature + reaction( + () => features.features.isTrialStatusBarEnabled, + (isEnabled) => { + if (isEnabled) { + debug('Initializing `trialStatusBar` feature'); + trialStatusBarStore.start(stores, actions); + } else if (trialStatusBarStore.isFeatureActive) { + debug('Disabling `trialStatusBar` feature'); + trialStatusBarStore.stop(); + } + }, + { + fireImmediately: true, + }, + ); +} diff --git a/src/features/trialStatusBar/store.js b/src/features/trialStatusBar/store.js new file mode 100644 index 000000000..89cf32392 --- /dev/null +++ b/src/features/trialStatusBar/store.js @@ -0,0 +1,72 @@ +import { + action, + observable, + computed, +} from 'mobx'; +import moment from 'moment'; + +import { trialStatusBarActions } from './actions'; +import { FeatureStore } from '../utils/FeatureStore'; +import { createActionBindings } from '../utils/ActionBinding'; + +const debug = require('debug')('Franz:feature:trialStatusBar:store'); + +export default class TrialStatusBarStore extends FeatureStore { + @observable isFeatureActive = false; + + @observable isFeatureEnabled = false; + + @computed get showTrialStatusBarOverlay() { + if (this.isFeatureActive) { + const { team } = this.stores.user; + if (team && !this.hideOverlay) { + return team.state !== 'expired' && team.isTrial; + } + } + + return false; + } + + @computed get trialEndTime() { + if (this.isFeatureActive) { + const { team } = this.stores.user; + + if (team && !this.hideOverlay) { + return moment.duration(moment().diff(team.trialEnd)); + } + } + + return moment.duration(); + } + + // ========== PUBLIC API ========= // + + @action start(stores, actions, api) { + debug('TrialStatusBarStore::start'); + this.stores = stores; + this.actions = actions; + this.api = api; + + // ACTIONS + + this._registerActions(createActionBindings([ + [trialStatusBarActions.hideOverlay, this._hideOverlay], + ])); + + this.isFeatureActive = true; + } + + @action stop() { + super.stop(); + debug('TrialStatusBarStore::stop'); + this.isFeatureActive = false; + } + + // ========== PRIVATE METHODS ========= // + + // Actions + + @action _hideOverlay = () => { + this.hideOverlay = true; + } +} diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index eafac1f87..98f37cf8a 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -734,39 +734,39 @@ "defaultMessage": "!!!Your services have been updated.", "end": { "column": 3, - "line": 32 + "line": 33 }, "file": "src/components/layout/AppLayout.js", "id": "infobar.servicesUpdated", "start": { "column": 19, - "line": 29 + "line": 30 } }, { "defaultMessage": "!!!Reload services", "end": { "column": 3, - "line": 36 + "line": 37 }, "file": "src/components/layout/AppLayout.js", "id": "infobar.buttonReloadServices", "start": { "column": 24, - "line": 33 + "line": 34 } }, { "defaultMessage": "!!!Could not load services and user information", "end": { "column": 3, - "line": 40 + "line": 41 }, "file": "src/components/layout/AppLayout.js", "id": "infobar.requiredRequestsFailed", "start": { "column": 26, - "line": 37 + "line": 38 } } ], @@ -3915,39 +3915,39 @@ "defaultMessage": "!!!per month", "end": { "column": 3, - "line": 22 + "line": 18 }, "file": "src/features/planSelection/components/PlanItem.js", "id": "subscription.interval.perMonth", "start": { "column": 12, - "line": 19 + "line": 15 } }, { "defaultMessage": "!!!per month & user", "end": { "column": 3, - "line": 26 + "line": 22 }, "file": "src/features/planSelection/components/PlanItem.js", "id": "subscription.interval.perMonthPerUser", "start": { "column": 19, - "line": 23 + "line": 19 } }, { "defaultMessage": "!!!Best value", "end": { "column": 3, - "line": 30 + "line": 26 }, "file": "src/features/planSelection/components/PlanItem.js", "id": "subscription.bestValue", "start": { "column": 13, - "line": 27 + "line": 23 } } ], @@ -4378,6 +4378,107 @@ ], "path": "src/features/todos/components/TodosWebview.json" }, + { + "descriptors": [ + { + "defaultMessage": "!!!Your Free Franz {plan} Trial ends in {time}.", + "end": { + "column": 3, + "line": 16 + }, + "file": "src/features/trialStatusBar/components/TrialStatusBar.js", + "id": "feature.trialStatusBar.restTime", + "start": { + "column": 12, + "line": 13 + } + }, + { + "defaultMessage": "!!!Your free Franz {plan} Trial has expired, please upgrade your account.", + "end": { + "column": 3, + "line": 20 + }, + "file": "src/features/trialStatusBar/components/TrialStatusBar.js", + "id": "feature.trialStatusBar.expired", + "start": { + "column": 11, + "line": 17 + } + }, + { + "defaultMessage": "!!!Upgrade now", + "end": { + "column": 3, + "line": 24 + }, + "file": "src/features/trialStatusBar/components/TrialStatusBar.js", + "id": "feature.trialStatusBar.cta", + "start": { + "column": 7, + "line": 21 + } + } + ], + "path": "src/features/trialStatusBar/components/TrialStatusBar.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Downgrade your Franz Plan", + "end": { + "column": 3, + "line": 19 + }, + "file": "src/features/trialStatusBar/containers/TrialStatusBarScreen.js", + "id": "feature.trialStatusBar.fullscreen.dialog.title", + "start": { + "column": 15, + "line": 16 + } + }, + { + "defaultMessage": "!!!You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "end": { + "column": 3, + "line": 23 + }, + "file": "src/features/trialStatusBar/containers/TrialStatusBarScreen.js", + "id": "feature.trialStatusBar.fullscreen.dialog.message", + "start": { + "column": 17, + "line": 20 + } + }, + { + "defaultMessage": "!!!Downgrade to Free", + "end": { + "column": 3, + "line": 27 + }, + "file": "src/features/trialStatusBar/containers/TrialStatusBarScreen.js", + "id": "feature.trialStatusBar.fullscreen.dialog.cta.downgrade", + "start": { + "column": 22, + "line": 24 + } + }, + { + "defaultMessage": "!!!Choose Personal", + "end": { + "column": 3, + "line": 31 + }, + "file": "src/features/trialStatusBar/containers/TrialStatusBarScreen.js", + "id": "feature.trialStatusBar.fullscreen.dialog.cta.upgrade", + "start": { + "column": 20, + "line": 28 + } + } + ], + "path": "src/features/trialStatusBar/containers/TrialStatusBarScreen.json" + }, { "descriptors": [ { diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 6977ec096..1ba91bdfa 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -35,6 +35,13 @@ "feature.todos.premium.info": "Franz Todos are available to premium users now!", "feature.todos.premium.rollout": "Everyone else will have to wait a little longer.", "feature.todos.premium.upgrade": "Upgrade Account", + "feature.trialStatusBar.cta": "Upgrade now", + "feature.trialStatusBar.expired": "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade": "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message": "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title": "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime": "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy": "Can't connect to Franz online services", "global.franzProRequired": "Franz Professional Required", "global.notConnectedToTheInternet": "You are not connected to the internet.", diff --git a/src/i18n/messages/src/components/layout/AppLayout.json b/src/i18n/messages/src/components/layout/AppLayout.json index 22f11cedd..95da24042 100644 --- a/src/i18n/messages/src/components/layout/AppLayout.json +++ b/src/i18n/messages/src/components/layout/AppLayout.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Your services have been updated.", "file": "src/components/layout/AppLayout.js", "start": { - "line": 29, + "line": 30, "column": 19 }, "end": { - "line": 32, + "line": 33, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!Reload services", "file": "src/components/layout/AppLayout.js", "start": { - "line": 33, + "line": 34, "column": 24 }, "end": { - "line": 36, + "line": 37, "column": 3 } }, @@ -30,11 +30,11 @@ "defaultMessage": "!!!Could not load services and user information", "file": "src/components/layout/AppLayout.js", "start": { - "line": 37, + "line": 38, "column": 26 }, "end": { - "line": 40, + "line": 41, "column": 3 } } diff --git a/src/i18n/messages/src/features/trialStatusBar/components/TrialStatusBar.json b/src/i18n/messages/src/features/trialStatusBar/components/TrialStatusBar.json new file mode 100644 index 000000000..bf211a016 --- /dev/null +++ b/src/i18n/messages/src/features/trialStatusBar/components/TrialStatusBar.json @@ -0,0 +1,41 @@ +[ + { + "id": "feature.trialStatusBar.restTime", + "defaultMessage": "!!!Your Free Franz {plan} Trial ends in {time}.", + "file": "src/features/trialStatusBar/components/TrialStatusBar.js", + "start": { + "line": 13, + "column": 12 + }, + "end": { + "line": 16, + "column": 3 + } + }, + { + "id": "feature.trialStatusBar.expired", + "defaultMessage": "!!!Your free Franz {plan} Trial has expired, please upgrade your account.", + "file": "src/features/trialStatusBar/components/TrialStatusBar.js", + "start": { + "line": 17, + "column": 11 + }, + "end": { + "line": 20, + "column": 3 + } + }, + { + "id": "feature.trialStatusBar.cta", + "defaultMessage": "!!!Upgrade now", + "file": "src/features/trialStatusBar/components/TrialStatusBar.js", + "start": { + "line": 21, + "column": 7 + }, + "end": { + "line": 24, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/features/trialStatusBar/containers/TrialStatusBarScreen.json b/src/i18n/messages/src/features/trialStatusBar/containers/TrialStatusBarScreen.json new file mode 100644 index 000000000..306cd0fee --- /dev/null +++ b/src/i18n/messages/src/features/trialStatusBar/containers/TrialStatusBarScreen.json @@ -0,0 +1,54 @@ +[ + { + "id": "feature.trialStatusBar.fullscreen.dialog.title", + "defaultMessage": "!!!Downgrade your Franz Plan", + "file": "src/features/trialStatusBar/containers/TrialStatusBarScreen.js", + "start": { + "line": 16, + "column": 15 + }, + "end": { + "line": 19, + "column": 3 + } + }, + { + "id": "feature.trialStatusBar.fullscreen.dialog.message", + "defaultMessage": "!!!You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "file": "src/features/trialStatusBar/containers/TrialStatusBarScreen.js", + "start": { + "line": 20, + "column": 17 + }, + "end": { + "line": 23, + "column": 3 + } + }, + { + "id": "feature.trialStatusBar.fullscreen.dialog.cta.downgrade", + "defaultMessage": "!!!Downgrade to Free", + "file": "src/features/trialStatusBar/containers/TrialStatusBarScreen.js", + "start": { + "line": 24, + "column": 22 + }, + "end": { + "line": 27, + "column": 3 + } + }, + { + "id": "feature.trialStatusBar.fullscreen.dialog.cta.upgrade", + "defaultMessage": "!!!Choose Personal", + "file": "src/features/trialStatusBar/containers/TrialStatusBarScreen.js", + "start": { + "line": 28, + "column": 20 + }, + "end": { + "line": 31, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index f102fc370..329c43f32 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js @@ -81,6 +81,8 @@ export default class AppStore extends Store { dictionaries = []; + fetchDataInterval = null; + constructor(...args) { super(...args); @@ -102,6 +104,7 @@ export default class AppStore extends Store { this._setLocale.bind(this), this._muteAppHandler.bind(this), this._handleFullScreen.bind(this), + this._handleLogout.bind(this), ]); } @@ -129,6 +132,11 @@ export default class AppStore extends Store { this._systemDND(); setInterval(() => this._systemDND(), ms('5s')); + this.fetchDataInterval = setInterval(() => { + this.stores.user.getUserInfoRequest.invalidate({ immediately: true }); + this.stores.features.featuresRequest.invalidate({ immediately: true }); + }, ms('10s')); + // Check for updates once every 4 hours setInterval(() => this._checkForUpdates(), CHECK_INTERVAL); // Check for an update in 30s (need a delay to prevent Squirrel Installer lock file issues) @@ -430,6 +438,12 @@ export default class AppStore extends Store { } } + _handleLogout() { + if (!this.stores.user.isLoggedIn) { + clearInterval(this.fetchDataInterval); + } + } + // Helpers _appStartsCounter() { this.actions.settings.update({ diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js index bffcb01bc..5d379fd3e 100644 --- a/src/stores/FeaturesStore.js +++ b/src/stores/FeaturesStore.js @@ -20,6 +20,7 @@ import serviceLimit from '../features/serviceLimit'; import communityRecipes from '../features/communityRecipes'; import todos from '../features/todos'; import planSelection from '../features/planSelection'; +import trialStatusBar from '../features/trialStatusBar'; import { DEFAULT_FEATURES_CONFIG } from '../config'; @@ -83,5 +84,6 @@ export default class FeaturesStore extends Store { communityRecipes(this.stores, this.actions); todos(this.stores, this.actions); planSelection(this.stores, this.actions); + trialStatusBar(this.stores, this.actions); } } diff --git a/src/stores/PaymentStore.js b/src/stores/PaymentStore.js index d4de476c8..b90e8f006 100644 --- a/src/stores/PaymentStore.js +++ b/src/stores/PaymentStore.js @@ -1,10 +1,13 @@ import { action, observable, computed } from 'mobx'; +import { remote } from 'electron'; import Store from './lib/Store'; import CachedRequest from './lib/CachedRequest'; import Request from './lib/Request'; import { gaEvent } from '../lib/analytics'; +const { BrowserWindow } = remote; + export default class PaymentStore extends Store { @observable plansRequest = new CachedRequest(this.api.payment, 'plans'); @@ -14,6 +17,7 @@ export default class PaymentStore extends Store { super(...args); this.actions.payment.createHostedPage.listen(this._createHostedPage.bind(this)); + this.actions.payment.upgradeAccount.listen(this._upgradeAccount.bind(this)); } @computed get plan() { @@ -30,4 +34,37 @@ export default class PaymentStore extends Store { return request; } + + @action _upgradeAccount({ planId, onCloseWindow = () => null }) { + let hostedPageURL = this.stores.features.features.subscribeURL; + + const parsedUrl = new URL(hostedPageURL); + const params = new URLSearchParams(parsedUrl.search.slice(1)); + + params.set('plan', planId); + + hostedPageURL = this.stores.user.getAuthURL(`${parsedUrl.origin}${parsedUrl.pathname}?${params.toString()}`); + + const win = new BrowserWindow({ + parent: remote.getCurrentWindow(), + modal: true, + title: '🔒 Upgrade Your Franz Account', + width: 800, + height: window.innerHeight - 100, + maxWidth: 800, + minWidth: 600, + webPreferences: { + nodeIntegration: true, + webviewTag: true, + }, + }); + win.loadURL(`file://${__dirname}/../index.html#/payment/${encodeURIComponent(hostedPageURL)}`); + + win.on('closed', () => { + this.stores.user.getUserInfoRequest.invalidate({ immediately: true }); + this.stores.features.featuresRequest.invalidate({ immediately: true }); + + onCloseWindow(); + }); + } } diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js index b652098f9..735e8f886 100644 --- a/src/stores/UserStore.js +++ b/src/stores/UserStore.js @@ -77,6 +77,8 @@ export default class UserStore extends Store { @observable logoutReason = null; + fetchUserInfoInterval = null; + constructor(...args) { super(...args); @@ -161,7 +163,7 @@ export default class UserStore extends Store { } @computed get isPremiumOverride() { - return ((!this.team || !this.team.plan) && this.isPremium) || (this.team.state === 'expired' && this.isPremium); + return ((!this.team || !this.team.plan) && this.isPremium) || (this.team && this.team.state === 'expired' && this.isPremium); } @computed get isPersonal() { -- cgit v1.2.3-70-g09d2 From 55f833c6e5cdbc9679795699433065afb7046d5b Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 16 Oct 2019 16:13:52 +0200 Subject: Update text --- src/i18n/locales/en-US.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 1ba91bdfa..16f4bff46 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -2,12 +2,12 @@ "app.errorHandler.action": "Reload", "app.errorHandler.headline": "Something went wrong", "feature.announcements.changelog.headline": "Changes in Franz {version}", - "feature.delayApp.headline": "Please purchase a Franz Supporter License to skip waiting", + "feature.delayApp.headline": "Upgrade your Franz plan to skip the wait", "feature.delayApp.text": "Franz will continue in {seconds} seconds.", "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Franz Professional", "feature.delayApp.trial.actionShort": "Activate the free Franz Professional trial", - "feature.delayApp.trial.headline": "Get the free Franz Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action": "Get a Franz Supporter License", + "feature.delayApp.trial.headline": "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action": "Upgrade Franz", "feature.delayApp.upgrade.actionShort": "Upgrade account", "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", "feature.planSelection.cta.stayOnFree": "Stay on Free", -- cgit v1.2.3-70-g09d2 From 8c194bb9c5423fb9b44d11609dae72ac8497eb85 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 16 Oct 2019 16:54:59 +0200 Subject: add space --- src/components/settings/account/AccountDashboard.js | 1 + src/i18n/locales/en-US.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'src/i18n') diff --git a/src/components/settings/account/AccountDashboard.js b/src/components/settings/account/AccountDashboard.js index 9a1b31d0f..776a8fd08 100644 --- a/src/components/settings/account/AccountDashboard.js +++ b/src/components/settings/account/AccountDashboard.js @@ -218,6 +218,7 @@ class AccountDashboard extends Component {

Franz + {' '} {isPremiumOverrideUser ? 'Premium' : planName} {user.team.isTrial && ( <> diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 16f4bff46..ce35c29a8 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -422,4 +422,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} +} \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 066dd3639676c07ed61f9d8eb3f1a1f85cae9db4 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 16 Oct 2019 22:05:07 +0200 Subject: polishing --- src/features/delayApp/Component.js | 2 +- src/i18n/messages/src/features/delayApp/Component.json | 2 +- src/styles/settings.scss | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'src/i18n') diff --git a/src/features/delayApp/Component.js b/src/features/delayApp/Component.js index 6344edb89..fcc27c75c 100644 --- a/src/features/delayApp/Component.js +++ b/src/features/delayApp/Component.js @@ -24,7 +24,7 @@ const messages = defineMessages({ }, action: { id: 'feature.delayApp.upgrade.action', - defaultMessage: '!!!Get a Franz Supporter License', + defaultMessage: '!!!Upgrade Franz', }, actionTrial: { id: 'feature.delayApp.trial.action', diff --git a/src/i18n/messages/src/features/delayApp/Component.json b/src/i18n/messages/src/features/delayApp/Component.json index 0d345a47b..f6bf9369a 100644 --- a/src/i18n/messages/src/features/delayApp/Component.json +++ b/src/i18n/messages/src/features/delayApp/Component.json @@ -27,7 +27,7 @@ }, { "id": "feature.delayApp.upgrade.action", - "defaultMessage": "!!!Get a Franz Supporter License", + "defaultMessage": "!!!Upgrade Franz", "file": "src/features/delayApp/Component.js", "start": { "line": 25, diff --git a/src/styles/settings.scss b/src/styles/settings.scss index bb95ab5d2..150d58e76 100644 --- a/src/styles/settings.scss +++ b/src/styles/settings.scss @@ -366,7 +366,7 @@ .account__subscription-button { margin-left: auto; } .franz-form__button { white-space: nowrap; } div { height: auto; } - [data-type="franz-button"] div { height: 100% } + [data-type="franz-button"] div { height: 20px } .invoices { width: 100%; -- cgit v1.2.3-70-g09d2 From 800ef0bad64d21e2f4c93221f984dafe6fee7bec Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 16 Oct 2019 22:09:50 +0200 Subject: Update defaultMessages.json --- src/i18n/locales/defaultMessages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 98f37cf8a..cd876c0ea 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -3868,7 +3868,7 @@ } }, { - "defaultMessage": "!!!Get a Franz Supporter License", + "defaultMessage": "!!!Upgrade Franz", "end": { "column": 3, "line": 28 -- cgit v1.2.3-70-g09d2 From b1f4aa268419130f0f656d1a70e0097195badc74 Mon Sep 17 00:00:00 2001 From: FranzBot Date: Thu, 17 Oct 2019 00:00:44 +0000 Subject: Automatic i18n update (i18n.meetfranz.com) --- src/i18n/locales/ca.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/cs.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/de.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/el.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/es.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/fr.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/ga.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/hr.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/hu.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/id.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/it.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/ja.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/ka.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/nl-BE.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/nl.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/pl.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/pt-BR.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/pt.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/ru.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/sk.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/sr.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/tr.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/uk.json | 53 ++++++++++++++++++++++++++++++++++++--------- src/i18n/locales/zh-TW.json | 53 ++++++++++++++++++++++++++++++++++++--------- 24 files changed, 1032 insertions(+), 240 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index be22bd411..1495f2d44 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", "feature.delayApp.upgrade.action" : "Aconsegueix una llicència de suport per a Franz", "feature.delayApp.upgrade.actionShort" : "Millorar el teu compte", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Envia com a correu", "feature.shareFranz.action.facebook" : "Compartir en Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos are available to premium users now!", "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", "feature.todos.premium.upgrade" : "Upgrade Account", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "No es pot connectar amb els serveis en línia de Franz", "global.franzProRequired" : "Franz Professional Required", "global.notConnectedToTheInternet" : "No esteu connectat a Internet.", @@ -123,33 +145,39 @@ "password.submit.label" : "Enviar", "password.successInfo" : "Comproveu el vostre correu electrònic", "premiumFeature.button.upgradeAccount" : "Millorar el teu compte", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Forever ad-free", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Workspaces", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Recarrega {name}", "service.crashHandler.autoReload" : "Intentant restablir automàticament {name} en {seconds} segons", "service.crashHandler.headline" : "Oh no!", @@ -349,10 +377,15 @@ "signup.link.login" : "Ja teniu un compte, iniciar la sessió?", "signup.password.label" : "Contrasenya", "signup.submit.label" : "Crea un compte", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Upgrade Account", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "Cancel·la", diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index d49b626f7..4064372c4 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Získejte zdarma zkušební verzi Franz Profesionnal na 14 dní a už nečekejte", "feature.delayApp.upgrade.action" : "Podpoř Franz a získej Supporter licenci", "feature.delayApp.upgrade.actionShort" : "Vylepši si svůj účet", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Přidali jste {amount} z {limit} služeb, které jsou součástí vašeho předplatného. Pro přidání dalších služeb proveďte upgrade vašeho účtu.", "feature.shareFranz.action.email" : "Poslat jako e-mail", "feature.shareFranz.action.facebook" : "Sdílet na Facebooku", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Todos ve Franzovi jsou nyní dostupné prémiovým uživatelům!", "feature.todos.premium.rollout" : "Ostatní si budou muset ještě chvíli počkat.", "feature.todos.premium.upgrade" : "Změnit typ účtu", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Nemůžeme připojit Franz k online službám", "global.franzProRequired" : "Vyžadován účet Franz Professional", "global.notConnectedToTheInternet" : "Připojení k internetu není k dispozici.", @@ -123,33 +145,39 @@ "password.submit.label" : "Odeslat", "password.successInfo" : "Prosím, zkontrolujte svůj e-mail", "premiumFeature.button.upgradeAccount" : "Vylepši si svůj účet", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Forever ad-free", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Pracovní plochy", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Načíst znovu {name}", "service.crashHandler.autoReload" : "Pokus o automatické obnovení {name} za {seconds} sekund", "service.crashHandler.headline" : "Ale ne!", @@ -349,10 +377,15 @@ "signup.link.login" : "Již máte účet, přihlásit se?", "signup.password.label" : "Heslo", "signup.submit.label" : "Vytvořit účet", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Změnit typ účtu", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "Zrušit", diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 8b46a46f0..589d7fa4d 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Hol dir die kostenlose Franz Professional Testlizenz und es geht ohne Warten weiter!", "feature.delayApp.upgrade.action" : "Hol dir Franz Premium!", "feature.delayApp.upgrade.actionShort" : "Account upgraden", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Du hast {amount} von {limit} in deiner Lizenz inkludierten Services hinzugefügt. Bitte führe ein Upgrade deines Accounts durch, um mehr Services hinzuzufügen.", "feature.shareFranz.action.email" : "Als E-Mail senden", "feature.shareFranz.action.facebook" : "Auf Facebook teilen", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz ToDos sind jetzt für Premium User verfügbar!", "feature.todos.premium.rollout" : "Alle anderen müssen sich noch ein wenig gedulden.", "feature.todos.premium.upgrade" : "Account Upgrade", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Verbindung zum Franz-Online-Service fehlgeschlagen", "global.franzProRequired" : "Franz Professional benötigt", "global.notConnectedToTheInternet" : "Du bist nicht mit dem Internet verbunden.", @@ -123,33 +145,39 @@ "password.submit.label" : "Absenden", "password.successInfo" : "Wir haben Dir eine E-Mail mit weiteren Anweisungen geschickt.", "premiumFeature.button.upgradeAccount" : "Account upgraden", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Keine Werbung", "pricing.features.appDelays" : "Keine unnötigen Unterbrechungen", "pricing.features.customWebsites" : "Hinzufügen von eigenen Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & andere Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Rechtschreibprüfung", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Integration von Services über Drittanbieter", "pricing.features.unlimitedServices" : "Unbegrenztes hinzufügen von Services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Workspaces", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal monatlich", - "pricing.plan.personal-yearly" : "Franz Personal jährlich", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional monatlich", - "pricing.plan.pro-yearly" : "Franz Professional jährlich", - "pricing.trial.cta.accept" : "Ja, Upgrade zu Franz Professional durchführen", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Weiter zu Franz!", "pricing.trial.error" : "Tut uns leid, wir konnten deine kostenlose Testlizenz nicht aktivieren.", "pricing.trial.features.headline" : "Franz Professional beinhaltet:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Dein persönliches Willkommensangebot:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Deine kostenlose Testlizenz endet automatisch nach 14 Tagen", "pricing.trial.terms.headline" : "Ohne Bindung, ohne Haken", "pricing.trial.terms.noCreditCard" : "Keine Kreditkarte notwendig", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "{name} neu laden", "service.crashHandler.autoReload" : "{name} wird in {seconds} Sekunden automatisch wiederhergestellt", "service.crashHandler.headline" : "Oh nein!", @@ -349,10 +377,15 @@ "signup.link.login" : "Du hast bereits ein Konto? Melde Dich an.", "signup.password.label" : "Passwort", "signup.submit.label" : "Konto erstellen", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Ja, kostenlose Franz Professional Testlizenz starten", "subscription.cta.allOptions" : "Alle Optionen anzeigen", "subscription.cta.choosePlan" : "Wähle deine Lizenz", "subscription.includedProFeatures" : "Die Franz Professional Lizenz beinhaltet:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Account Upgrade", "subscription.teaser.includedFeatures" : "Bezahlte Franz Lizenzen beinhalten:", "subscription.teaser.intro" : "Franz 5 ist voll gepackt mit vielen neuen Features, damit du für jegliche kommunikative Eventualität gerüstet bist. Nimm dir was du brauchst und leg los!", "subscriptionPopup.buttonCancel" : "Abbrechen", diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json index e8dd96a2e..b53b21c86 100644 --- a/src/i18n/locales/el.json +++ b/src/i18n/locales/el.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", "feature.delayApp.upgrade.action" : "Get a Franz Supporter License", "feature.delayApp.upgrade.actionShort" : "Upgrade account", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Send as email", "feature.shareFranz.action.facebook" : "Share on Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos are available to premium users now!", "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", "feature.todos.premium.upgrade" : "Upgrade Account", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Δεν είναι δυνατή η σύνδεση με τις ζωντανές υπηρεσίες του Franz", "global.franzProRequired" : "Franz Professional Required", "global.notConnectedToTheInternet" : "Έχετε αποσυνδεθεί από το Διαδίκτυο", @@ -123,33 +145,39 @@ "password.submit.label" : "Υποβολή", "password.successInfo" : "Ελέγξτε το email σας", "premiumFeature.button.upgradeAccount" : "Upgrade account", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Forever ad-free", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Workspaces", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Επαναφόρτωση {name}", "service.crashHandler.autoReload" : "Γίνεται προσπάθεια αυτόματης ανάκτησης του {name} σε {seconds} δευτερόλεπτα", "service.crashHandler.headline" : "Ω, όχι!", @@ -349,10 +377,15 @@ "signup.link.login" : "Έχετε ήδη λογαριασμό? Συνδεθείτε.", "signup.password.label" : "Κωδικός πρόσβασης", "signup.submit.label" : "Δημιουργία λογαριασμού", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Upgrade Account", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "Ακύρωση", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 940da3606..dfd843098 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Empieza el periodo de prueba de Franz Profesional por 14 días y cruza la linea.", "feature.delayApp.upgrade.action" : "Consigue una Licencia de Soporte de Franz", "feature.delayApp.upgrade.actionShort" : "Mejora tu cuenta", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Has sumado {amount} servicios más de los que están incluídos en tu plan. Por favor mejora tu cuenta para sumar más servicios.", "feature.shareFranz.action.email" : "Enviar como correo", "feature.shareFranz.action.facebook" : "Compartir en Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Todos de Franz está disponible para usuarios premium ahora!", "feature.todos.premium.rollout" : "El resto de los usuarios deberán esperar un poco más de tiempo.", "feature.todos.premium.upgrade" : "Actualizar cuenta", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "No es posible conectarse a los servicios en línea de Franz.", "global.franzProRequired" : "Se requiere una cuenta Franz Profesional", "global.notConnectedToTheInternet" : "No estás conectado a Internet", @@ -123,33 +145,39 @@ "password.submit.label" : "Enviar", "password.successInfo" : "Por favor revisa tu correo electrónico", "premiumFeature.button.upgradeAccount" : "Mejorar cuenta", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Sin anuncios para siempre!", "pricing.features.appDelays" : "Sin pantallas de espera", "pricing.features.customWebsites" : "Agregue sitios personalizados", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "En sitio y otros servicios alojados", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Apoderados de Servicio", "pricing.features.spellchecker" : "Soporte de corrector ortográfico", "pricing.features.teamManagement" : "Gestión de equipos", "pricing.features.thirdPartyServices" : "Instalar servicios de terceros", "pricing.features.unlimitedServices" : "Agregar servicios ilimitados", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Áreas de trabajo", - "pricing.plan.free" : "Franz gratis", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Mensual", - "pricing.plan.personal-yearly" : "Franz Personal Anual", - "pricing.plan.pro" : "Franz Profesional", - "pricing.plan.pro-monthly" : "Franz Profesional Mensual", - "pricing.plan.pro-yearly" : "Franz Profesional Anual", - "pricing.trial.cta.accept" : "Si, actualizar mi cuenta a Franz Profesional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continuar a Franz", "pricing.trial.error" : "Disculpe, no pudimos activar su prueba!", "pricing.trial.features.headline" : "Franz Profesional incluye:", "pricing.trial.headline" : "Franz Profesional", - "pricing.trial.subheadline" : "Su oferta de bienvenida personal", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Su prueba gratis finaliza automáticamente después de 14 días", "pricing.trial.terms.headline" : "Sin condiciones", "pricing.trial.terms.noCreditCard" : "No necesita tarjeta de crédito", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Recargar {name}", "service.crashHandler.autoReload" : "Intentando recuperar automáticamente {name} en {seconds} segundos", "service.crashHandler.headline" : "¡Oh, no!", @@ -349,10 +377,15 @@ "signup.link.login" : "Ya tienes una cuenta, ¿Iniciar sesión?", "signup.password.label" : "Contraseña", "signup.submit.label" : "Crear cuenta", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Si, empezar la versión de prueba de Franz Profesional", "subscription.cta.allOptions" : "Mostrar todas las opciones", "subscription.cta.choosePlan" : "Elija su plan", "subscription.includedProFeatures" : "El Plan de Franz Profesional incluye:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Upgrade Account", "subscription.teaser.includedFeatures" : "Los planes de pago de Franz incluyen:", "subscription.teaser.intro" : "Franz 5 incluye un amplio espectro de nuevas características para potenciar sus comunicaciones diarias! (las baterías están incluidas). Mire los nuevos planes y descubra cual es mejor para usted!", "subscriptionPopup.buttonCancel" : "Cancelar", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 7bfa523f1..127df0334 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Obtenir l'essai gratuit de 14 jours pour Franz Professionnel et éviter la file d'attente", "feature.delayApp.upgrade.action" : "Acheter une license Franz", "feature.delayApp.upgrade.actionShort" : "Augmenter le niveau de mon compte", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Vous avez ajouté {amount} services sur les {limit} qui sont inclus dans votre offre. Veuillez améliorer votre compte pour ajouter plus de services.", "feature.shareFranz.action.email" : "Envoyer par mail", "feature.shareFranz.action.facebook" : "Partager sur Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos est maintenant disponible pour les utilisateurs premium !", "feature.todos.premium.rollout" : "Tous les autres doivent encore attendre un peu.", "feature.todos.premium.upgrade" : "Améliorer son Compte", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Impossible de se connecter aux services en ligne de Franz", "global.franzProRequired" : "Un abonnement Franz Professionnel est requis", "global.notConnectedToTheInternet" : "Vous n'êtes pas connecté à Internet.", @@ -123,33 +145,39 @@ "password.submit.label" : "Soumettre", "password.successInfo" : "Merci de consulter vos emails", "premiumFeature.button.upgradeAccount" : "Augmenter le niveau de mon compte", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Forever ad-free", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Espace de travail", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Recharger {name}", "service.crashHandler.autoReload" : "Tentative de restauration automatique de {name} dans {seconds} secondes", "service.crashHandler.headline" : "Oh non !", @@ -349,10 +377,15 @@ "signup.link.login" : "Vous avez déjà un compte ? Connectez-vous", "signup.password.label" : "Mot de passe", "signup.submit.label" : "Créer un compte", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "Voir toutes les options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Améliorer son Compte", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "Annuler", diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json index 602ca6e73..7aed75d4b 100644 --- a/src/i18n/locales/ga.json +++ b/src/i18n/locales/ga.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Tástáil Franz Professional le feadh 14 lá agus gearr isteach sa scuaine!", "feature.delayApp.upgrade.action" : "Faigh Franz Premium!", "feature.delayApp.upgrade.actionShort" : "Uasghrádaigh cuntas", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Tá {amount} as {limit} seirbhísí atá san áireamh i do phlean curtha agat cheana féin. Uasghrádaigh do chuntas chun tuilleadh seirbhísí a chur leis, le do thoil.", "feature.shareFranz.action.email" : "Seol mar ríomhphost", "feature.shareFranz.action.facebook" : "Roinn ar Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos are available to premium users now!", "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", "feature.todos.premium.upgrade" : "Upgrade Account", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Ní féidir nascadh le seirbhísí Franz ar líne", "global.franzProRequired" : "Franz Professional Required", "global.notConnectedToTheInternet" : "Níl tú nasctha leis an Idirlíon.", @@ -123,33 +145,39 @@ "password.submit.label" : "Cuir isteach", "password.successInfo" : "Seiceáil do chuid ríomhphoist le do thoil", "premiumFeature.button.upgradeAccount" : "Uasghrádaigh cuntas", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Forever ad-free", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Workspaces", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Athlódáil {name}", "service.crashHandler.autoReload" : "Ag iarraidh {name} a thabhairt ar ais go huathoibríoch i gceann {seconds} shoicind", "service.crashHandler.headline" : "Oró, ní hea!", @@ -349,10 +377,15 @@ "signup.link.login" : "Cuntas agat cheana féin, logáil isteach?", "signup.password.label" : "Pasfhocal", "signup.submit.label" : "Cruthaigh cuntas", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Upgrade Account", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "Cealaigh", diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index 78c017e96..61e5c3f01 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", "feature.delayApp.upgrade.action" : "Get a Franz Supporter License", "feature.delayApp.upgrade.actionShort" : "Upgrade account", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Send as email", "feature.shareFranz.action.facebook" : "Share on Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos are available to premium users now!", "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", "feature.todos.premium.upgrade" : "Upgrade Account", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Nije se moguće povezati na Francove on-line servise. ", "global.franzProRequired" : "Franz Professional Required", "global.notConnectedToTheInternet" : "Sada ste povezani s internetom. ", @@ -123,33 +145,39 @@ "password.submit.label" : "Pošalji", "password.successInfo" : "Molimo Vas da provjerite svoju e-mail adresu", "premiumFeature.button.upgradeAccount" : "Upgrade account", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Forever ad-free", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Workspaces", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Osvježi okvir", "service.crashHandler.autoReload" : "Pokušati ću automatski povratiti {ime} u {sekundi} sekundi", "service.crashHandler.headline" : "O, ne! ", @@ -349,10 +377,15 @@ "signup.link.login" : "Imate račun? Prijavite se.", "signup.password.label" : "Lozinka", "signup.submit.label" : "Napravite novi račun", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Upgrade Account", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "Odustani", diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json index c6e808a86..38c3c1197 100644 --- a/src/i18n/locales/hu.json +++ b/src/i18n/locales/hu.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", "feature.delayApp.upgrade.action" : "Szerezz egy Franz Támogatói Liszencet", "feature.delayApp.upgrade.actionShort" : "Fiók frissítése", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Küldés email-ben", "feature.shareFranz.action.facebook" : "Megosztás Facebook-on", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "A Franz Tennivalók már elérhető a prémium felhasználók részére!", "feature.todos.premium.rollout" : "Mindenki másnak még egy kicsit tovább kell várni.", "feature.todos.premium.upgrade" : "Fiók frissítése", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Nem lehet csatlakozni a Franz online szolgáltatáshoz", "global.franzProRequired" : "Franz Professional szükséges", "global.notConnectedToTheInternet" : "Nincs hálózati kapcsolat.", @@ -123,33 +145,39 @@ "password.submit.label" : "Küldés", "password.successInfo" : "Ellenőrizd az email fiókodat", "premiumFeature.button.upgradeAccount" : "Fiók frissítése", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Hirdetésmentesség, örökre!", "pricing.features.appDelays" : "Nincsenek töltőképernyők", "pricing.features.customWebsites" : "Egyéni weboldalak megadása", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "Helyi és egyéb távoli szolgáltatások", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Szolgáltatás Proxy-k", "pricing.features.spellchecker" : "Helyesírás-ellenőrzés támogatás", "pricing.features.teamManagement" : "Csapatkezelés", "pricing.features.thirdPartyServices" : "Harmadik féltől származó szolgáltatások használata", "pricing.features.unlimitedServices" : "Korlátlan szolgáltatások felvitele", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Munkaterületek", - "pricing.plan.free" : "Ingyenes Franz", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "{name} újratöltése", "service.crashHandler.autoReload" : "{name} automatikusan helyreállítása {seconds} másodpercen belül", "service.crashHandler.headline" : "Jajj ne!", @@ -349,10 +377,15 @@ "signup.link.login" : "Már van fiókod? Lépj be!", "signup.password.label" : "Jelszó", "signup.submit.label" : "Fiók létrehozása", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Fiók frissítése", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "Mégsem", diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json index 841644703..203bf5185 100644 --- a/src/i18n/locales/id.json +++ b/src/i18n/locales/id.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Dapatkan uji coba gratis 14 hari Franz Professional dan tak perlu lagi menunggu!", "feature.delayApp.upgrade.action" : "Dapatkan Lisensi Pendukung Franz", "feature.delayApp.upgrade.actionShort" : "Tingkatkan akun", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Anda telah menambahkan {amount} dari kuota {limit} layanan yang tersedia untuk paket Anda. Tingkatkan akun untuk menambahkan layanan lain.", "feature.shareFranz.action.email" : "Kirim sebagai email", "feature.shareFranz.action.facebook" : "Bagikan di Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Kini Franz Todos tersedia untuk pengguna premium!", "feature.todos.premium.rollout" : "Yang lain harus menunggu lebih lama.", "feature.todos.premium.upgrade" : "Tingkatkan Akun", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Tidak dapat tersambung ke layanan online Franz", "global.franzProRequired" : "Diperlukan Franz Professional", "global.notConnectedToTheInternet" : "Anda tidak tersambung ke internet.", @@ -123,33 +145,39 @@ "password.submit.label" : "Kirim", "password.successInfo" : "Periksa email Anda", "premiumFeature.button.upgradeAccount" : "Tingkatkan akun", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Bebas iklan selamanya", "pricing.features.appDelays" : "Tanpa Layar Penjeda Waktu", "pricing.features.customWebsites" : "Tambahkan Situs Web Khusus", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "Layanan On-premise dan Hosted lainnya", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Proksi Layanan", "pricing.features.spellchecker" : "Dukungan pengecek ejaan", "pricing.features.teamManagement" : "Manajemen Tim", "pricing.features.thirdPartyServices" : "Instal layanan pihak ketiga", "pricing.features.unlimitedServices" : "Tambahkan layanan tak terbatas", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Ruang Kerja", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Bulanan", - "pricing.plan.personal-yearly" : "Franz Personal Tahunan", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Bulanan", - "pricing.plan.pro-yearly" : "Franz Professional Tahunan", - "pricing.trial.cta.accept" : "Ya, tingkatkan akun saya ke Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Lanjutkan ke Franz", "pricing.trial.error" : "Maaf, kami tidak bisa mengaktifkan uji coba Anda!", "pricing.trial.features.headline" : "Franz Professional menyertakan:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Penawaran spesial untuk Anda:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Uji coba gratis Anda berakhir secara otomatis dalam 14 hari", "pricing.trial.terms.headline" : "Tanpa embel-embel", "pricing.trial.terms.noCreditCard" : "Tidak memerlukan kartu kredit", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Muat Ulang {name}", "service.crashHandler.autoReload" : "Mencoba memulihkan {name} secara otomatis dalam {seconds} detik", "service.crashHandler.headline" : "Ya Ampun!", @@ -349,10 +377,15 @@ "signup.link.login" : "Sudah punya akun, masuk?", "signup.password.label" : "Sandi", "signup.submit.label" : "Buat akun", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Ya, mulai uji coba gratis Franz Professional", "subscription.cta.allOptions" : "Lihat semua opsi", "subscription.cta.choosePlan" : "Pilih paket Anda", "subscription.includedProFeatures" : "Paket Franz Professional menyertakan:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Tingkatkan Akun", "subscription.teaser.includedFeatures" : "Paket Franz Berbayar mencakup:", "subscription.teaser.intro" : "Franz 5 menyertakan berbagai macan fitur baru untuk mempercanggih komunikasi sehari-hari. Lihat paket baru kami dan temukan yang cocok untuk Anda!", "subscriptionPopup.buttonCancel" : "Batalkan", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 0b863099f..a9a814412 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Ottieni la prova gratuita per 14 giorni di Franz Professional e salta la coda", "feature.delayApp.upgrade.action" : "Ricevi una Licenza Supporter di Franz", "feature.delayApp.upgrade.actionShort" : "Effettua l'upgrade del tuo account", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Hai aggiunto {amount} su {limit} servizi che sono inclusi nel tuo piano. Per favore potenzia il tuo account per aggiungere più servizi.", "feature.shareFranz.action.email" : "Manda come email", "feature.shareFranz.action.facebook" : "Condividi su Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Le attività Franz sono ora disponibili agli utenti premium!", "feature.todos.premium.rollout" : "Chiunque altro dovrà aspettare un po' di più.", "feature.todos.premium.upgrade" : "Potenzia l'Account", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Impossibile connettersi ai servizi online di Franz", "global.franzProRequired" : "Richiesto Franz Professional", "global.notConnectedToTheInternet" : "Non sei connesso a Internet.", @@ -123,33 +145,39 @@ "password.submit.label" : "Invia", "password.successInfo" : "Per favore controlla la tua email", "premiumFeature.button.upgradeAccount" : "Effettua il potenziamento del tuo account", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Senza pubblicità per sempre", "pricing.features.appDelays" : "Nessuna schermata di attesa", "pricing.features.customWebsites" : "Aggiungi siti web personalizzati", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "Servizi ospitati & on-premise", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Proxy di servizio", "pricing.features.spellchecker" : "Supporto per il correttore ortografico", "pricing.features.teamManagement" : "Gestione del team", "pricing.features.thirdPartyServices" : "Installa servizi di terze parti", "pricing.features.unlimitedServices" : "Aggiungi servizi illimitati", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Workspace", - "pricing.plan.free" : "Franz Gratuito", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Mensile", - "pricing.plan.personal-yearly" : "Franz Personal Annuale", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Mensile", - "pricing.plan.pro-yearly" : "Franz Professional Annuale", - "pricing.trial.cta.accept" : "Sì, potenzia il mio account a Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continua su Franz", "pricing.trial.error" : "Ci dispiace, non abbiamo potuto attivare la tua prova!", "pricing.trial.features.headline" : "Franz Professional include:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "La tua personale offerta di benvenuto:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "La tua prova gratuita finirà automaticamente dopo 14 giorni", "pricing.trial.terms.headline" : "Senza impegno", "pricing.trial.terms.noCreditCard" : "Nessuna carta di credito richiesta", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Ricarica {name}", "service.crashHandler.autoReload" : "Tentativo di ripristino automatico di {name} in {seconds} secondi", "service.crashHandler.headline" : "Oh no!", @@ -349,10 +377,15 @@ "signup.link.login" : "Hai già un account, vuoi accedere?", "signup.password.label" : "Password", "signup.submit.label" : "Crea un account", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Sì, inizia la prova gratuita di Franz Professional", "subscription.cta.allOptions" : "Vedi tutte le opzioni", "subscription.cta.choosePlan" : "Scegli il tuo piano", "subscription.includedProFeatures" : "Il piano Franz Professional include:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Potenzia l'Account", "subscription.teaser.includedFeatures" : "I piani Franz a pagamento includono:", "subscription.teaser.intro" : "Franz 5 contiene un ampia gamma di nuove caratteristiche per potenziare le tue comunicazioni di tutti i giorni - incluse le batterie. Dai un'occhiata ai nostri nuovi piani per scoprire quale si adatta di più a te!", "subscriptionPopup.buttonCancel" : "Annulla", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 5af4c6bd1..27cb6a3c7 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", "feature.delayApp.upgrade.action" : "Franzサポーターライセンスを購入する", "feature.delayApp.upgrade.actionShort" : "アカウントをアップグレード", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "メールで送信", "feature.shareFranz.action.facebook" : "Facebookでシェア", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos are available to premium users now!", "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", "feature.todos.premium.upgrade" : "Upgrade Account", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Franzのオンラインサービスに接続できません。", "global.franzProRequired" : "Franz Professional Required", "global.notConnectedToTheInternet" : "インターネットに接続されていません。", @@ -123,33 +145,39 @@ "password.submit.label" : "送信", "password.successInfo" : "メールを確認して下さい", "premiumFeature.button.upgradeAccount" : "アカウントをアップグレード", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Forever ad-free", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Workspaces", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "{name}を再読み込み", "service.crashHandler.autoReload" : "{seconds}秒後、自動的に{name}の復旧を試みます", "service.crashHandler.headline" : "しまった!", @@ -349,10 +377,15 @@ "signup.link.login" : "アカウントを既に持っていますか? こちらからサインイン", "signup.password.label" : "パスワード", "signup.submit.label" : "アカウントの作成", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Upgrade Account", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "キャンセル", diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json index 9b186b505..7440fd916 100644 --- a/src/i18n/locales/ka.json +++ b/src/i18n/locales/ka.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", "feature.delayApp.upgrade.action" : "Get a Franz Supporter License", "feature.delayApp.upgrade.actionShort" : "Upgrade account", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Send as email", "feature.shareFranz.action.facebook" : "Share on Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos are available to premium users now!", "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", "feature.todos.premium.upgrade" : "Upgrade Account", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Franz-ის ონლაინ სერვისთან დაკავშირება ვერ მოხერხდა", "global.franzProRequired" : "Franz Professional Required", "global.notConnectedToTheInternet" : "თქვენ არ ხართ ინტერნეტთან დაკავშირებული.", @@ -123,33 +145,39 @@ "password.submit.label" : "დადასტურება", "password.successInfo" : "გთხოვთ შეამოწმეთ მეილი", "premiumFeature.button.upgradeAccount" : "Upgrade account", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Forever ad-free", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Workspaces", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Reload {name}", "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", "service.crashHandler.headline" : "Oh no!", @@ -349,10 +377,15 @@ "signup.link.login" : "უკვე გაქვთ ანგარიში?", "signup.password.label" : "პაროლი", "signup.submit.label" : "ანგარიშის შექმნა", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Upgrade Account", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "გაუქმება", diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json index 80852f0de..349e4f80c 100644 --- a/src/i18n/locales/nl-BE.json +++ b/src/i18n/locales/nl-BE.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", "feature.delayApp.upgrade.action" : "Neem een Franz Supporter Licentie ", "feature.delayApp.upgrade.actionShort" : "Upgrade account", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Verstuur als e-mail", "feature.shareFranz.action.facebook" : "Deel op Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos are available to premium users now!", "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", "feature.todos.premium.upgrade" : "Upgrade Account", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Kan geen verbinding maken met de Franz services", "global.franzProRequired" : "Franz Professional Required", "global.notConnectedToTheInternet" : "Je hebt geen internet verbinding.", @@ -123,33 +145,39 @@ "password.submit.label" : "Verzenden", "password.successInfo" : "Controleer alsjeblieft je e-mail", "premiumFeature.button.upgradeAccount" : "Upgrade account", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Forever ad-free", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Workspaces", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "{naam} herladen", "service.crashHandler.autoReload" : "Ga proberen om {name} te herstellen over {seconds} seconden", "service.crashHandler.headline" : "Oh nee!", @@ -349,10 +377,15 @@ "signup.link.login" : "Al een account, inloggen?", "signup.password.label" : "Wachtwoord", "signup.submit.label" : "Account aanmaken", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Upgrade Account", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "Annuleren", diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index 607e81c89..61a212335 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", "feature.delayApp.upgrade.action" : "Sponsor Franz", "feature.delayApp.upgrade.actionShort" : "Upgrade Account", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Verstuur als e-mail", "feature.shareFranz.action.facebook" : "Deel op Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos are available to premium users now!", "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", "feature.todos.premium.upgrade" : "Upgrade account", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Kan geen verbinding maken met de Franz-services.", "global.franzProRequired" : "Franz Professional benodigd", "global.notConnectedToTheInternet" : "U bent niet verbonden met het internet.", @@ -123,33 +145,39 @@ "password.submit.label" : "Verzenden", "password.successInfo" : "Controleer je e-mail", "premiumFeature.button.upgradeAccount" : "Upgrade Account", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Voor altijd reclamevrij", "pricing.features.appDelays" : "Geen wachtschermen", "pricing.features.customWebsites" : "Voeg eigen websites toe", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Werkruimtes", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Laad {name} opnieuw", "service.crashHandler.autoReload" : "Bezig om {name} te herstellen over {seconds} seconden", "service.crashHandler.headline" : "Oh nee!", @@ -349,10 +377,15 @@ "signup.link.login" : "Heb je al een account? Log in!", "signup.password.label" : "Wachtwoord", "signup.submit.label" : "Account aanmaken", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Upgrade account", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "Annuleer", diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index e803cc282..2ea92b2b3 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", "feature.delayApp.upgrade.action" : "Uzyskaj licencję Franz Supporter", "feature.delayApp.upgrade.actionShort" : "Ulepsz swoje konto", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Dodałeś {amount} z {limit} usług, które oferuje twój plan. Ulepsz swoje konto, aby dodać więcej usług.", "feature.shareFranz.action.email" : "Wyślij jako email", "feature.shareFranz.action.facebook" : "Udostępnij na Facebooku", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Listy zadań Franz są już dostępne dla użytkowników premium!", "feature.todos.premium.rollout" : "Wszyscy inni będą musieli zaczekać nieco dłużej.", "feature.todos.premium.upgrade" : "Ulepsz konto", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Nie można połączyć się z usługami Franz online", "global.franzProRequired" : "Wymagany Franz Professional", "global.notConnectedToTheInternet" : "Nie masz połączenia z Internetem.", @@ -123,33 +145,39 @@ "password.submit.label" : "Wyślij", "password.successInfo" : "Proszę sprawdzić swój email", "premiumFeature.button.upgradeAccount" : "Ulepsz konto", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Na zawsze bez reklam", "pricing.features.appDelays" : "Bez czekania", "pricing.features.customWebsites" : "Dodawanie dowolnych stron internetowych", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Obsługa sprawdzania pisowni", "pricing.features.teamManagement" : "Zarządzanie zespołem", "pricing.features.thirdPartyServices" : "Instalacja zewnętrznych usług", "pricing.features.unlimitedServices" : "Dodawanie nielimitowanych usług", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Obszary robocze", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Przeładuj {name}", "service.crashHandler.autoReload" : "Próba automatycznego odnowienia {name} za {seconds} sekund\/y", "service.crashHandler.headline" : "O nie!", @@ -349,10 +377,15 @@ "signup.link.login" : "Masz już konto, zalogować się?", "signup.password.label" : "Hasło", "signup.submit.label" : "Stwórz konto", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Ulepsz konto", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "Anuluj", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index df5404ccf..1ee7c04de 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Teste o Franz Professional por 14 dias grátis e fure a fila.", "feature.delayApp.upgrade.action" : "Adquira uma licença de suporte Franz", "feature.delayApp.upgrade.actionShort" : "Atualizar conta", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Você adicionou {amount} serviços de um total de {limit} que estão inclusos no seu plano. Por favor, atualize sua conta para adicionar mais serviços.", "feature.shareFranz.action.email" : "Enviar por e-mail", "feature.shareFranz.action.facebook" : "Compartilhar no Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "As Listas de Tarefa do Franz estão disponíveis para usuários premium!", "feature.todos.premium.rollout" : "As outras pessoas terão que esperar um pouquinho mais.", "feature.todos.premium.upgrade" : "Melhore sua conta", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Não foi possível conectar-se aos serviços on-line do Franz.", "global.franzProRequired" : "Franz Profissional necessário", "global.notConnectedToTheInternet" : "Você não está conectado à internet", @@ -123,33 +145,39 @@ "password.submit.label" : "Enviar", "password.successInfo" : "Por favor, verifique o seu e-mail", "premiumFeature.button.upgradeAccount" : "Atualizar conta", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Pra sempre sem propagandas", "pricing.features.appDelays" : "Sem Telas de Espera", "pricing.features.customWebsites" : "Adicionar Websites Personalizados", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Gestão de Time", "pricing.features.thirdPartyServices" : "Instalar serviços de terceiros", "pricing.features.unlimitedServices" : "Adicione ilimitados serviços", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Áreas de Trabalho", - "pricing.plan.free" : "Franz Gratuito", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Pessoal", - "pricing.plan.personal-monthly" : "Franz Pessoal Mensal", - "pricing.plan.personal-yearly" : "Franz Pessoal Anual", - "pricing.plan.pro" : "Franz Profissional", - "pricing.plan.pro-monthly" : "Franz Profissional Mensal", - "pricing.plan.pro-yearly" : "Franz Profissional Anual", - "pricing.trial.cta.accept" : "Sim, atualizar minha conta para o Franz Profissional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continuar para o Franz", "pricing.trial.error" : "Desculpe, não conseguimos ativar o seu período de testes", "pricing.trial.features.headline" : "Incluso no Franz Profissional:", "pricing.trial.headline" : "Franz Profissional", - "pricing.trial.subheadline" : "Sua oferta pessoal de boas-vindas:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Seu período de testes encerra automaticamente em 14 dias", "pricing.trial.terms.headline" : "Sem vínculos", "pricing.trial.terms.noCreditCard" : "Cartão de crédito não exigido", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Recarregar {name}", "service.crashHandler.autoReload" : "Tentando reestabelecer {name} automaticamente em {seconds} segundos", "service.crashHandler.headline" : "Ah, não!", @@ -349,10 +377,15 @@ "signup.link.login" : "Já tem uma conta?", "signup.password.label" : "Senha", "signup.submit.label" : "Criar uma conta", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "Ver todas as opções", "subscription.cta.choosePlan" : "Escolha seu plano", "subscription.includedProFeatures" : "O Franz Professional inclui:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Upgrade Account", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "O Franz 5 vem com uma variedade de novas funcionalidades para melhorar a sua comunicação diária - pilhas inclusas. Confira os nossos novos planos e encontre aquele que melhor serve para você!", "subscriptionPopup.buttonCancel" : "Cancelar", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index 07ea5c8a2..0b553b049 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", "feature.delayApp.upgrade.action" : "Faz parte do grupo de apoio do Franz", "feature.delayApp.upgrade.actionShort" : "Atualiza a tua conta", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Enviar por e-mail", "feature.shareFranz.action.facebook" : "Compartilahr no Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos está agora disponível para utilizadores premium!", "feature.todos.premium.rollout" : "Todos os outros vão ter de esperar um pouco mais.", "feature.todos.premium.upgrade" : "Melhorar a conta", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Não foi possível estabelecer ligação aos serviços do Franz", "global.franzProRequired" : "Franz Professional Required", "global.notConnectedToTheInternet" : "Não estás ligado à Internet", @@ -123,33 +145,39 @@ "password.submit.label" : "Submeter", "password.successInfo" : "Por favor verifique o seu endereço de e-mail", "premiumFeature.button.upgradeAccount" : "Atualizar conta", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Sem publicidade para sempre", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Espaços de trabalho", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Recarregar {name}", "service.crashHandler.autoReload" : "A tentar restaurar automaticamente {name} em {seconds} segundos", "service.crashHandler.headline" : "Oh não!", @@ -349,10 +377,15 @@ "signup.link.login" : "Já tem uma conta, iniciar sessão?", "signup.password.label" : "Palavra-passe", "signup.submit.label" : "Criar uma conta", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Melhorar a conta", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "Cancelar", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 04ed6473c..37dcd4712 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Получить бесплатную 14-дневную триальную версию Franz Professional и перейти к следующему полю", "feature.delayApp.upgrade.action" : "Получите лицензию поддержки Franz", "feature.delayApp.upgrade.actionShort" : "Апгрейдить аккаунт", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Вы добавили {amount} максимальное {limit} количество сервисов, входящих в ваш план. Пожалуйста, обновите свой план чтобы добавить больше сервисов.", "feature.shareFranz.action.email" : "Отправить по email", "feature.shareFranz.action.facebook" : "Поделиться на Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos are available to premium users now!", "feature.todos.premium.rollout" : "Всем остальным придётся ждать чуть-чуть дольше", "feature.todos.premium.upgrade" : "Улучшить Аккаунт", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Невозможно подключиться к онлайн-сервисам Franz", "global.franzProRequired" : "Требуется \"Franz Professional\"", "global.notConnectedToTheInternet" : "Вы не подключены к сети Интернет", @@ -123,33 +145,39 @@ "password.submit.label" : "Принять", "password.successInfo" : "Проверьте вашу электронную почту", "premiumFeature.button.upgradeAccount" : "Перейти на платную подписку", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Forever ad-free", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Окружение", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Перезагрузить {name}", "service.crashHandler.autoReload" : "Пытаюсь автоматически восстановить {name} в течение {seconds} секунд", "service.crashHandler.headline" : "О, нет!", @@ -349,10 +377,15 @@ "signup.link.login" : "Уже есть аккаунт, войти?", "signup.password.label" : "Пароль", "signup.submit.label" : "Создать аккаунт", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Улучшить Аккаунт", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "Отмена", diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json index c0efc6b0e..e853dac7f 100644 --- a/src/i18n/locales/sk.json +++ b/src/i18n/locales/sk.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Získajte bezplatnú 14 dňovú skúšobnú verziu Franz Professional a preskočte riadok", "feature.delayApp.upgrade.action" : "Získajte licenciu pre Franz podporu", "feature.delayApp.upgrade.actionShort" : "Upgradovať účet", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Pridali ste {amount} z {limit} služieb, ktoré sú zahrnuté vo vašom pláne. Ak chcete pridať ďalšie služby, inovujte svoj účet.", "feature.shareFranz.action.email" : "Odoslať ako e-mail", "feature.shareFranz.action.facebook" : "Zdielať na Facebook-u", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos sú teraz k dispozícii pre prémiových používateľov!", "feature.todos.premium.rollout" : "Všetci ostatní budú musieť počkať trochu dlhšie.", "feature.todos.premium.upgrade" : "Upgrade Account", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Nedá sa pripojiť k online službám Franz", "global.franzProRequired" : "Franz Professional Required", "global.notConnectedToTheInternet" : "Nie ste pripojení k internetu.", @@ -123,33 +145,39 @@ "password.submit.label" : "Odoslať", "password.successInfo" : "Skontrolujte prosím váš e-mail", "premiumFeature.button.upgradeAccount" : "Upgradovať účet", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Forever ad-free", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Workspaces", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Znovu načítať {name}", "service.crashHandler.autoReload" : "Najbližší pokus o automatické obnovenie {name} o {seconds} sekúnd", "service.crashHandler.headline" : "Ale nie!", @@ -349,10 +377,15 @@ "signup.link.login" : "Už máte účet, chcete sa prihlásiť?", "signup.password.label" : "Heslo", "signup.submit.label" : "Vytvoriť účet", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Upgrade Account", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "Zrušiť", diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 3cd8127f0..dc2d0af08 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", "feature.delayApp.upgrade.action" : "Get a Franz Supporter License", "feature.delayApp.upgrade.actionShort" : "Upgrade account", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Send as email", "feature.shareFranz.action.facebook" : "Share on Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos are available to premium users now!", "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", "feature.todos.premium.upgrade" : "Upgrade Account", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Nije moguće pristupiti Franz-ovim on-line servisima. ", "global.franzProRequired" : "Franz Professional Required", "global.notConnectedToTheInternet" : "Niste povezani sa serverom.", @@ -123,33 +145,39 @@ "password.submit.label" : "Pošalji", "password.successInfo" : "Molimo Vas da provjerite vašu e-mail adresu", "premiumFeature.button.upgradeAccount" : "Upgrade account", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Forever ad-free", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Workspaces", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Osvježi {ime}", "service.crashHandler.autoReload" : "Pokušaću automatski povratiti {ime} u {sekundi} sekundi", "service.crashHandler.headline" : "O, ne! ", @@ -349,10 +377,15 @@ "signup.link.login" : "Imate račun? Prijavite se.", "signup.password.label" : "Lozinka", "signup.submit.label" : "Napravite novi račun", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Upgrade Account", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "Odustani", diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 56f1e1643..d40d3323d 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", "feature.delayApp.upgrade.action" : "Franz Destek Lisansı'nı alın", "feature.delayApp.upgrade.actionShort" : "Hesabı Yükselt", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Mail olarak gönder", "feature.shareFranz.action.facebook" : "Facebook'ta Paylaş", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos are available to premium users now!", "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", "feature.todos.premium.upgrade" : "Upgrade Account", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Franz hizmetlerine şu anda erişilemiyor", "global.franzProRequired" : "Franz Professional Required", "global.notConnectedToTheInternet" : "İnternete bağlı değilsiniz.", @@ -123,33 +145,39 @@ "password.submit.label" : "Gönder", "password.successInfo" : "E-postanızı kontrol ediniz", "premiumFeature.button.upgradeAccount" : "Hesabı Yükselt", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Forever ad-free", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Workspaces", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "{name} yeniden yükle", "service.crashHandler.autoReload" : "{name}'i {seconds} saniye içerisinde otomatik onarmayı deniyoruz", "service.crashHandler.headline" : "Aman Tanrım hayır!", @@ -349,10 +377,15 @@ "signup.link.login" : "Hali hazırda hesabınız varsa giriş yapmak ister misiniz?", "signup.password.label" : "Şifre", "signup.submit.label" : "Hesap oluştur", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Upgrade Account", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "İptal", diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json index 3a9ef73c4..c20b3b6b9 100644 --- a/src/i18n/locales/uk.json +++ b/src/i18n/locales/uk.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Отримати безкоштовну 14-денну триальную версію Franz Professional і перейти до наступного поля", "feature.delayApp.upgrade.action" : "Отримати ліцензію Franz Supporter ", "feature.delayApp.upgrade.actionShort" : "Преміум акаунт", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Ви додали {amount} максимальну {limit} кількість сервісів, що входять в ваш план. Будь ласка, поновіть свій план щоб додати більше сервісів.", "feature.shareFranz.action.email" : "Надіслати по email", "feature.shareFranz.action.facebook" : "Поділитися на Facebook", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos тепер доступний для преміум-користувачів!", "feature.todos.premium.rollout" : "Всім іншим доведеться почекати ще трохи.", "feature.todos.premium.upgrade" : "Поліпшити Аккаунт", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Не можливо підключитись до онлайн сервісів Franz", "global.franzProRequired" : "Franz Professional обов'язковий", "global.notConnectedToTheInternet" : "Ви не підключені до Інтернету.", @@ -123,33 +145,39 @@ "password.submit.label" : "Подати", "password.successInfo" : "Будь ласка, перевірте ваш email", "premiumFeature.button.upgradeAccount" : "Преміум акаунт", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Forever ad-free", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "Робочі простори", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "Перезавантажити {name}", "service.crashHandler.autoReload" : "Спробую автоматично відновити {name} через {seconds} с", "service.crashHandler.headline" : "О, ні!", @@ -349,10 +377,15 @@ "signup.link.login" : "У вас вже є обліковий запис, увійти?", "signup.password.label" : "Пароль", "signup.submit.label" : "Створити акаунт", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Поліпшити Аккаунт", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "Відмінити", diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index 89b684fea..17dadebdf 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -9,6 +9,21 @@ "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", "feature.delayApp.upgrade.action" : "取得 Franz 支援授權", "feature.delayApp.upgrade.actionShort" : "升級帳號", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", + "feature.planSelection.cta.stayOnFree" : "Stay on Free", + "feature.planSelection.cta.trial" : "Start my free 14-days Trial", + "feature.planSelection.cta.upgradePersonal" : "Choose Personal", + "feature.planSelection.cta.upgradePro" : "Choose Professional", + "feature.planSelection.free.text" : "Basic functionality", + "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", + "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "以電子郵件傳送", "feature.shareFranz.action.facebook" : "透過 Facebook 分享", @@ -20,6 +35,13 @@ "feature.todos.premium.info" : "Franz Todos are available to premium users now!", "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", "feature.todos.premium.upgrade" : "Upgrade Account", + "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "無法連線至 Franz 的伺服器", "global.franzProRequired" : "Franz Professional Required", "global.notConnectedToTheInternet" : "你沒有連上網路。", @@ -123,33 +145,39 @@ "password.submit.label" : "送出", "password.successInfo" : "請檢查您的電子郵件", "premiumFeature.button.upgradeAccount" : "升級帳號", + "pricing.features.accountSync" : "Account Synchronisation", "pricing.features.adFree" : "Forever ad-free", "pricing.features.appDelays" : "No Waiting Screens", "pricing.features.customWebsites" : "Add Custom Websites", + "pricing.features.desktopNotifications" : "Desktop Notifications", "pricing.features.onPremise" : "On-premise & other Hosted Services", + "pricing.features.recipes" : "Choose from more than 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Spellchecker support", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Install 3rd party services", "pricing.features.unlimitedServices" : "Add unlimited services", + "pricing.features.upToSixServices" : "Add up to 6 services", + "pricing.features.upToThreeServices" : "Add up to 3 services", "pricing.features.workspaces" : "工作區", - "pricing.plan.free" : "Franz Free", - "pricing.plan.legacy" : "Franz Premium", - "pricing.plan.personal" : "Franz Personal", - "pricing.plan.personal-monthly" : "Franz Personal Monthly", - "pricing.plan.personal-yearly" : "Franz Personal Yearly", - "pricing.plan.pro" : "Franz Professional", - "pricing.plan.pro-monthly" : "Franz Professional Monthly", - "pricing.plan.pro-yearly" : "Franz Professional Yearly", - "pricing.trial.cta.accept" : "Yes, upgrade my account to Franz Professional", + "pricing.plan.free" : "Free", + "pricing.plan.legacy" : "Premium", + "pricing.plan.personal" : "Personal", + "pricing.plan.personal-monthly" : "Personal Monthly", + "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.pro" : "Professional", + "pricing.plan.pro-monthly" : "Professional Monthly", + "pricing.plan.pro-yearly" : "Professional Yearly", + "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Your personal welcome offer:", + "pricing.trial.subheadline" : "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", + "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", "service.crashHandler.action" : "重新載入{name}", "service.crashHandler.autoReload" : "嘗試在{seconds}秒內自動恢復{name}", "service.crashHandler.headline" : "噢不!", @@ -349,10 +377,15 @@ "signup.link.login" : "已經有一個帳戶,登入?", "signup.password.label" : "密碼", "signup.submit.label" : "建立帳號", + "subscription.bestValue" : "Best value", "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", "subscription.cta.allOptions" : "See all options", "subscription.cta.choosePlan" : "Choose your plan", "subscription.includedProFeatures" : "The Franz Professional Plan includes:", + "subscription.interval.per" : "per {interval}", + "subscription.interval.perMonth" : "per month", + "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.planItem.upgradeAccount" : "Upgrade Account", "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", "subscriptionPopup.buttonCancel" : "取消", -- cgit v1.2.3-70-g09d2 From ab78d8ad9097ce92eae337f319245819ba93ca40 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Thu, 17 Oct 2019 10:58:45 +0200 Subject: polishing --- packages/theme/src/themes/default/index.ts | 9 +++++---- src/containers/settings/AccountScreen.js | 9 ++++++--- src/features/planSelection/components/PlanSelection.js | 4 +++- src/i18n/locales/en-US.json | 4 ++-- .../src/features/planSelection/components/PlanSelection.json | 2 +- 5 files changed, 17 insertions(+), 11 deletions(-) (limited to 'src/i18n') diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts index b484d9972..3decec88f 100644 --- a/packages/theme/src/themes/default/index.ts +++ b/packages/theme/src/themes/default/index.ts @@ -1,6 +1,7 @@ import color from 'color'; import { cloneDeep } from 'lodash'; +import { darkgreen } from 'color-name'; import * as legacyStyles from '../legacy'; export interface IStyleTypes { @@ -224,7 +225,7 @@ export const signup = { // Todos export const todos = { todosLayer: { - borderLeftColor: legacyStyles.themeGrayLighter, + borderLeftColor: color(legacyStyles.themeGrayLighter).darken(0.1).hex(), }, toggleButton: { background: styleTypes.primary.accent, @@ -242,10 +243,10 @@ export const todos = { // TrialStatusBar export const trialStatusBar = { bar: { - background: legacyStyles.themeGray, + background: legacyStyles.themeGrayLightest, }, progressBar: { - background: legacyStyles.themeGrayLight, - progressIndicator: legacyStyles.themeGrayLighter, + background: color(legacyStyles.themeGrayLighter).darken(0.1).hex(), + progressIndicator: legacyStyles.themeGrayLight, }, }; diff --git a/src/containers/settings/AccountScreen.js b/src/containers/settings/AccountScreen.js index b08b52e6f..88ecd55d5 100644 --- a/src/containers/settings/AccountScreen.js +++ b/src/containers/settings/AccountScreen.js @@ -35,12 +35,15 @@ export default @inject('stores', 'actions') @observer class AccountScreen extend render() { const { user, payment, features } = this.props.stores; - const { user: userActions } = this.props.actions; + const { + user: userActions, + payment: paymentActions, + } = this.props.actions; const isLoadingUserInfo = user.getUserInfoRequest.isExecuting; const isLoadingPlans = payment.plansRequest.isExecuting; - const { upgradeAccount } = payment; + const { upgradeAccount } = paymentActions; return ( @@ -57,7 +60,7 @@ export default @inject('stores', 'actions') @observer class AccountScreen extend isLoadingDeleteAccount={user.deleteAccountRequest.isExecuting} isDeleteAccountSuccessful={user.deleteAccountRequest.wasExecuted && !user.deleteAccountRequest.isError} openEditAccount={() => this.handleWebsiteLink('/user/profile')} - upgradeToPro={() => upgradeAccount({ planId: features.features.pricingConfig.pro.yearly.id })} + upgradeToPro={() => upgradeAccount({ planId: features.features.pricingConfig.plans.pro.yearly.id })} openBilling={() => this.handleWebsiteLink('/user/billing')} openInvoices={() => this.handleWebsiteLink('/user/invoices')} /> diff --git a/src/features/planSelection/components/PlanSelection.js b/src/features/planSelection/components/PlanSelection.js index cf4474114..9407f6dd3 100644 --- a/src/features/planSelection/components/PlanSelection.js +++ b/src/features/planSelection/components/PlanSelection.js @@ -16,7 +16,7 @@ import Appear from '../../../components/ui/effects/Appear'; const messages = defineMessages({ welcome: { id: 'feature.planSelection.fullscreen.welcome', - defaultMessage: '!!!Welcome back, {name}', + defaultMessage: '!!!Are you ready to choose, {name}', }, subheadline: { id: 'feature.planSelection.fullscreen.subheadline', @@ -83,6 +83,7 @@ const styles = theme => ({ '& h1, & h2': { textAlign: 'center', + color: theme.styleTypes.primary.contrast, }, }, plans: { @@ -111,6 +112,7 @@ const styles = theme => ({ '& svg': { width: '80px !important', filter: 'drop-shadow( 0px 2px 3px rgba(0, 0, 0, 0.3))', + fill: theme.styleTypes.danger.contrast, }, }, headline: { diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index ce35c29a8..8af42554b 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message": "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title": "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline": "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome": "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome": "Are you ready to choose, {name}?", "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached": "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", @@ -422,4 +422,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} \ No newline at end of file +} diff --git a/src/i18n/messages/src/features/planSelection/components/PlanSelection.json b/src/i18n/messages/src/features/planSelection/components/PlanSelection.json index 76f4ed50b..2e66c8dfe 100644 --- a/src/i18n/messages/src/features/planSelection/components/PlanSelection.json +++ b/src/i18n/messages/src/features/planSelection/components/PlanSelection.json @@ -1,7 +1,7 @@ [ { "id": "feature.planSelection.fullscreen.welcome", - "defaultMessage": "!!!Welcome back, {name}", + "defaultMessage": "!!!Are you ready to choose, {name}", "file": "src/features/planSelection/components/PlanSelection.js", "start": { "line": 17, -- cgit v1.2.3-70-g09d2 From b6276bd0cb88ce681bc35a6fc7b1ae0cf6ac56ea Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Thu, 17 Oct 2019 14:12:36 +0200 Subject: optimize trial signup flow --- src/actions/user.js | 4 +- src/api/server/ServerApi.js | 2 +- src/components/auth/Pricing.js | 92 +++++++++++++++------ src/containers/auth/PricingScreen.js | 17 ++-- src/containers/auth/SignupScreen.js | 22 ++++- src/i18n/locales/defaultMessages.json | 94 +++++++++++++++++----- src/i18n/locales/en-US.json | 6 +- src/i18n/messages/src/components/auth/Pricing.json | 81 ++++++++++++++----- src/stores/FeaturesStore.js | 1 + src/stores/UserStore.js | 4 +- 10 files changed, 245 insertions(+), 78 deletions(-) (limited to 'src/i18n') diff --git a/src/actions/user.js b/src/actions/user.js index 5d7d9a899..7061a367a 100644 --- a/src/actions/user.js +++ b/src/actions/user.js @@ -11,8 +11,10 @@ export default { lastname: PropTypes.string.isRequired, email: PropTypes.string.isRequired, password: PropTypes.string.isRequired, - accountType: PropTypes.string.isRequired, + accountType: PropTypes.string, company: PropTypes.string, + plan: PropTypes.string, + currency: PropTypes.string, }, retrievePassword: { email: PropTypes.string.isRequired, diff --git a/src/api/server/ServerApi.js b/src/api/server/ServerApi.js index f56c7b6e4..1f538368d 100644 --- a/src/api/server/ServerApi.js +++ b/src/api/server/ServerApi.js @@ -87,7 +87,7 @@ export default class ServerApi { } const trial = await request.json(); - debug('ServerApi::signup resolves', trial); + debug('ServerApi::activateTrial resolves', trial); return true; } diff --git a/src/components/auth/Pricing.js b/src/components/auth/Pricing.js index 67af04470..86b6a4263 100644 --- a/src/components/auth/Pricing.js +++ b/src/components/auth/Pricing.js @@ -13,12 +13,20 @@ import { FeatureList } from '../ui/FeatureList'; const messages = defineMessages({ headline: { - id: 'pricing.trial.headline', - defaultMessage: '!!!Franz Professional', + id: 'pricing.trial.headline.pro', + defaultMessage: '!!!Hi {name}, welcome to Franz', }, - personalOffer: { - id: 'pricing.trial.subheadline', - defaultMessage: '!!!Here\'s a special welcome for you:', + specialTreat: { + id: 'pricing.trial.intro.specialTreat', + defaultMessage: '!!!We have a special treat for you.', + }, + tryPro: { + id: 'pricing.trial.intro.tryPro', + defaultMessage: '!!!Enjoy the full Franz Professional experience completely free for 14 days.', + }, + happyMessaging: { + id: 'pricing.trial.intro.happyMessaging', + defaultMessage: '!!!Happy messaging,', }, noStringsAttachedHeadline: { id: 'pricing.trial.terms.headline', @@ -44,6 +52,10 @@ const messages = defineMessages({ id: 'pricing.trial.cta.accept', defaultMessage: '!!!Start my 14-day Franz Professional Trial ', }, + ctaStart: { + id: 'pricing.trial.cta.start', + defaultMessage: '!!!Start using Franz', + }, ctaSkip: { id: 'pricing.trial.cta.skip', defaultMessage: '!!!Continue to Franz', @@ -98,6 +110,34 @@ const styles = theme => ({ margin: [20, 0, 0], color: theme.styleTypes.danger.accent, }, + priceContainer: { + display: 'flex', + justifyContent: 'space-evenly', + margin: [10, 0, 15], + }, + price: { + '& sup': { + verticalAlign: 14, + fontSize: 20, + }, + }, + figure: { + fontSize: 40, + }, + regularPrice: { + position: 'relative', + + '&:before': { + content: '" "', + position: 'absolute', + width: '130%', + height: 1, + top: 14, + left: -12, + borderBottom: [3, 'solid', 'red'], + transform: 'rotateZ(-20deg)', + }, + }, }); export default @observer @injectSheet(styles) class Signup extends Component { @@ -129,6 +169,8 @@ export default @observer @injectSheet(styles) class Signup extends Component { } = this.props; const { intl } = this.context; + const [intPart, fractionPart] = (price).toString().split('.'); + return (
@@ -140,25 +182,39 @@ export default @observer @injectSheet(styles) class Signup extends Component { alt="" /> )} -

{intl.formatMessage(messages.personalOffer)}

-

{intl.formatMessage(messages.headline)}

+

{intl.formatMessage(messages.headline, { name: 'Stefan' })}

- We built Franz with a lot of effort, manpower and love, - to boost up your messaging experience. + {intl.formatMessage(messages.specialTreat)}

- For the next 14 days, we are going to give you the full Franz Professional experience so you can watch your communication evolve! + {intl.formatMessage(messages.tryPro)}

- Thanks for being a hero. + {intl.formatMessage(messages.happyMessaging)}

Stefan Malzner

+
+

+ + {currency} + {intPart} + + {fractionPart} +

+

+ + {currency} + 0 + + 00 +

+

{intl.formatMessage(messages.noStringsAttachedHeadline)} @@ -179,7 +235,7 @@ export default @observer @injectSheet(styles) class Signup extends Component {

{intl.formatMessage(messages.activationError)}

)}

- {/*
    - - - - - - - - - - -
*/}
diff --git a/src/containers/auth/PricingScreen.js b/src/containers/auth/PricingScreen.js index ff378bd8b..55811ed23 100644 --- a/src/containers/auth/PricingScreen.js +++ b/src/containers/auth/PricingScreen.js @@ -20,14 +20,19 @@ export default @inject('stores', 'actions') @observer class PricingScreen extend } = this.props; const { activateTrialRequest } = stores.user; - const { defaultTrialPlan } = stores.features.features; + const { defaultTrialPlan, canSkipTrial } = stores.features.anonymousFeatures; - actions.user.activateTrial({ planId: defaultTrialPlan }); - await activateTrialRequest._promise; - - if (!activateTrialRequest.isError) { + if (!canSkipTrial) { stores.router.push('/'); stores.user.hasCompletedSignup = true; + } else { + actions.user.activateTrial({ planId: defaultTrialPlan }); + await activateTrialRequest._promise; + + if (!activateTrialRequest.isError) { + stores.router.push('/'); + stores.user.hasCompletedSignup = true; + } } } @@ -43,7 +48,7 @@ export default @inject('stores', 'actions') @observer class PricingScreen extend const { pricingConfig } = features; let currency = '$'; - let price = '5.99'; + let price = 5.99; if (pricingConfig) { ({ currency } = pricingConfig); ({ price } = pricingConfig.plans.pro.yearly); diff --git a/src/containers/auth/SignupScreen.js b/src/containers/auth/SignupScreen.js index efc7ea4c1..f93498be2 100644 --- a/src/containers/auth/SignupScreen.js +++ b/src/containers/auth/SignupScreen.js @@ -4,6 +4,7 @@ import { inject, observer } from 'mobx-react'; import Signup from '../../components/auth/Signup'; import UserStore from '../../stores/UserStore'; +import FeaturesStore from '../../stores/FeaturesStore'; import { globalError as globalErrorPropType } from '../../prop-types'; @@ -12,11 +13,27 @@ export default @inject('stores', 'actions') @observer class SignupScreen extends error: globalErrorPropType.isRequired, }; + onSignup(values) { + const { actions, stores } = this.props; + + const { canSkipTrial, defaultTrialPlan, pricingConfig } = stores.features.anonymousFeatures; + + if (!canSkipTrial) { + Object.assign(values, { + plan: defaultTrialPlan, + currency: pricingConfig.currencyID, + }); + } + + actions.user.signup(values); + } + render() { - const { actions, stores, error } = this.props; + const { stores, error } = this.props; + return ( this.onSignup(values)} isSubmitting={stores.user.signupRequest.isExecuting} loginRoute={stores.user.loginRoute} error={error} @@ -33,5 +50,6 @@ SignupScreen.wrappedComponent.propTypes = { }).isRequired, stores: PropTypes.shape({ user: PropTypes.instanceOf(UserStore).isRequired, + features: PropTypes.instanceOf(FeaturesStore).isRequired, }).isRequired, }; diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index cd876c0ea..e46c69d67 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -417,133 +417,185 @@ { "descriptors": [ { - "defaultMessage": "!!!Franz Professional", + "defaultMessage": "!!!Hi {name}, welcome to Franz", "end": { "column": 3, "line": 18 }, "file": "src/components/auth/Pricing.js", - "id": "pricing.trial.headline", + "id": "pricing.trial.headline.pro", "start": { "column": 12, "line": 15 } }, { - "defaultMessage": "!!!Here's a special welcome for you:", + "defaultMessage": "!!!We have a special treat for you.", "end": { "column": 3, "line": 22 }, "file": "src/components/auth/Pricing.js", + "id": "pricing.trial.intro.specialTreat", + "start": { + "column": 16, + "line": 19 + } + }, + { + "defaultMessage": "!!!Try out the full Franz Professional experience completely free for 14 days.", + "end": { + "column": 3, + "line": 26 + }, + "file": "src/components/auth/Pricing.js", + "id": "pricing.trial.intro.tryPro", + "start": { + "column": 10, + "line": 23 + } + }, + { + "defaultMessage": "!!!Happy messaging,", + "end": { + "column": 3, + "line": 30 + }, + "file": "src/components/auth/Pricing.js", + "id": "pricing.trial.intro.happyMessaging", + "start": { + "column": 18, + "line": 27 + } + }, + { + "defaultMessage": "!!!Here's a special welcome for you:", + "end": { + "column": 3, + "line": 34 + }, + "file": "src/components/auth/Pricing.js", "id": "pricing.trial.subheadline", "start": { "column": 17, - "line": 19 + "line": 31 } }, { "defaultMessage": "!!!No strings attached", "end": { "column": 3, - "line": 26 + "line": 38 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.headline", "start": { "column": 29, - "line": 23 + "line": 35 } }, { "defaultMessage": "!!!No credit card required", "end": { "column": 3, - "line": 30 + "line": 42 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.noCreditCard", "start": { "column": 16, - "line": 27 + "line": 39 } }, { "defaultMessage": "!!!Your free trial ends automatically after 14 days", "end": { "column": 3, - "line": 34 + "line": 46 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.automaticTrialEnd", "start": { "column": 21, - "line": 31 + "line": 43 } }, { "defaultMessage": "!!!Free trial (normally {currency}{price} per month)", "end": { "column": 3, - "line": 38 + "line": 50 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.trialWorth", "start": { "column": 14, - "line": 35 + "line": 47 } }, { "defaultMessage": "!!!Sorry, we could not activate your trial!", "end": { "column": 3, - "line": 42 + "line": 54 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.error", "start": { "column": 19, - "line": 39 + "line": 51 } }, { "defaultMessage": "!!!Start my 14-day Franz Professional Trial", "end": { "column": 3, - "line": 46 + "line": 58 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.cta.accept", "start": { "column": 13, - "line": 43 + "line": 55 + } + }, + { + "defaultMessage": "!!!Start using Franz", + "end": { + "column": 3, + "line": 62 + }, + "file": "src/components/auth/Pricing.js", + "id": "pricing.trial.cta.start", + "start": { + "column": 12, + "line": 59 } }, { "defaultMessage": "!!!Continue to Franz", "end": { "column": 3, - "line": 50 + "line": 66 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.cta.skip", "start": { "column": 11, - "line": 47 + "line": 63 } }, { "defaultMessage": "!!!Franz Professional includes:", "end": { "column": 3, - "line": 54 + "line": 70 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.features.headline", "start": { "column": 20, - "line": 51 + "line": 67 } } ], @@ -3956,7 +4008,7 @@ { "descriptors": [ { - "defaultMessage": "!!!Welcome back, {name}", + "defaultMessage": "!!!Are you ready to choose, {name}", "end": { "column": 3, "line": 20 diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 8af42554b..6b0aebb13 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -170,9 +170,13 @@ "pricing.plan.pro-yearly": "Professional Yearly", "pricing.trial.cta.accept": "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip": "Continue to Franz", + "pricing.trial.cta.start": "Start using Franz", "pricing.trial.error": "Sorry, we could not activate your trial!", "pricing.trial.features.headline": "Franz Professional includes:", - "pricing.trial.headline": "Franz Professional", + "pricing.trial.headline.pro": "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging": "Happy messaging,", + "pricing.trial.intro.specialTreat": "We have a special treat for you.", + "pricing.trial.intro.tryPro": "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.subheadline": "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd": "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline": "No strings attached", diff --git a/src/i18n/messages/src/components/auth/Pricing.json b/src/i18n/messages/src/components/auth/Pricing.json index 3f0cf4e86..6db39148c 100644 --- a/src/i18n/messages/src/components/auth/Pricing.json +++ b/src/i18n/messages/src/components/auth/Pricing.json @@ -1,7 +1,7 @@ [ { - "id": "pricing.trial.headline", - "defaultMessage": "!!!Franz Professional", + "id": "pricing.trial.headline.pro", + "defaultMessage": "!!!Hi {name}, welcome to Franz", "file": "src/components/auth/Pricing.js", "start": { "line": 15, @@ -13,28 +13,54 @@ } }, { - "id": "pricing.trial.subheadline", - "defaultMessage": "!!!Here's a special welcome for you:", + "id": "pricing.trial.intro.specialTreat", + "defaultMessage": "!!!We have a special treat for you.", "file": "src/components/auth/Pricing.js", "start": { "line": 19, - "column": 17 + "column": 16 }, "end": { "line": 22, "column": 3 } }, + { + "id": "pricing.trial.intro.tryPro", + "defaultMessage": "!!!Enjoy the full Franz Professional experience completely free for 14 days.", + "file": "src/components/auth/Pricing.js", + "start": { + "line": 23, + "column": 10 + }, + "end": { + "line": 26, + "column": 3 + } + }, + { + "id": "pricing.trial.intro.happyMessaging", + "defaultMessage": "!!!Happy messaging,", + "file": "src/components/auth/Pricing.js", + "start": { + "line": 27, + "column": 18 + }, + "end": { + "line": 30, + "column": 3 + } + }, { "id": "pricing.trial.terms.headline", "defaultMessage": "!!!No strings attached", "file": "src/components/auth/Pricing.js", "start": { - "line": 23, + "line": 31, "column": 29 }, "end": { - "line": 26, + "line": 34, "column": 3 } }, @@ -43,11 +69,11 @@ "defaultMessage": "!!!No credit card required", "file": "src/components/auth/Pricing.js", "start": { - "line": 27, + "line": 35, "column": 16 }, "end": { - "line": 30, + "line": 38, "column": 3 } }, @@ -56,11 +82,11 @@ "defaultMessage": "!!!Your free trial ends automatically after 14 days", "file": "src/components/auth/Pricing.js", "start": { - "line": 31, + "line": 39, "column": 21 }, "end": { - "line": 34, + "line": 42, "column": 3 } }, @@ -69,11 +95,11 @@ "defaultMessage": "!!!Free trial (normally {currency}{price} per month)", "file": "src/components/auth/Pricing.js", "start": { - "line": 35, + "line": 43, "column": 14 }, "end": { - "line": 38, + "line": 46, "column": 3 } }, @@ -82,11 +108,11 @@ "defaultMessage": "!!!Sorry, we could not activate your trial!", "file": "src/components/auth/Pricing.js", "start": { - "line": 39, + "line": 47, "column": 19 }, "end": { - "line": 42, + "line": 50, "column": 3 } }, @@ -95,11 +121,24 @@ "defaultMessage": "!!!Start my 14-day Franz Professional Trial", "file": "src/components/auth/Pricing.js", "start": { - "line": 43, + "line": 51, "column": 13 }, "end": { - "line": 46, + "line": 54, + "column": 3 + } + }, + { + "id": "pricing.trial.cta.start", + "defaultMessage": "!!!Start using Franz", + "file": "src/components/auth/Pricing.js", + "start": { + "line": 55, + "column": 12 + }, + "end": { + "line": 58, "column": 3 } }, @@ -108,11 +147,11 @@ "defaultMessage": "!!!Continue to Franz", "file": "src/components/auth/Pricing.js", "start": { - "line": 47, + "line": 59, "column": 11 }, "end": { - "line": 50, + "line": 62, "column": 3 } }, @@ -121,11 +160,11 @@ "defaultMessage": "!!!Franz Professional includes:", "file": "src/components/auth/Pricing.js", "start": { - "line": 51, + "line": 63, "column": 20 }, "end": { - "line": 54, + "line": 66, "column": 3 } } diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js index 5d379fd3e..adbd401b4 100644 --- a/src/stores/FeaturesStore.js +++ b/src/stores/FeaturesStore.js @@ -67,6 +67,7 @@ export default class FeaturesStore extends Store { if (this.stores.user.isLoggedIn) { this.featuresRequest.invalidate({ immediately: true }); } else { + this.defaultFeaturesRequest.execute(); this.defaultFeaturesRequest.invalidate({ immediately: true }); } } diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js index 735e8f886..297ea1121 100644 --- a/src/stores/UserStore.js +++ b/src/stores/UserStore.js @@ -205,7 +205,7 @@ export default class UserStore extends Store { } @action async _signup({ - firstname, lastname, email, password, accountType, company, + firstname, lastname, email, password, accountType, company, plan, currency, }) { const authToken = await this.signupRequest.execute({ firstname, @@ -215,6 +215,8 @@ export default class UserStore extends Store { accountType, company, locale: this.stores.app.locale, + plan, + currency, }); this.hasCompletedSignup = false; -- cgit v1.2.3-70-g09d2 From 501790b55625a59831e369ed263f14c72164fa70 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Thu, 17 Oct 2019 14:14:24 +0200 Subject: update strings --- src/i18n/locales/defaultMessages.json | 51 +++++++++++++---------------------- src/i18n/locales/en-US.json | 3 +-- 2 files changed, 20 insertions(+), 34 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index e46c69d67..e283614d2 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -443,7 +443,7 @@ } }, { - "defaultMessage": "!!!Try out the full Franz Professional experience completely free for 14 days.", + "defaultMessage": "!!!Enjoy the full Franz Professional experience completely free for 14 days.", "end": { "column": 3, "line": 26 @@ -468,134 +468,121 @@ "line": 27 } }, - { - "defaultMessage": "!!!Here's a special welcome for you:", - "end": { - "column": 3, - "line": 34 - }, - "file": "src/components/auth/Pricing.js", - "id": "pricing.trial.subheadline", - "start": { - "column": 17, - "line": 31 - } - }, { "defaultMessage": "!!!No strings attached", "end": { "column": 3, - "line": 38 + "line": 34 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.headline", "start": { "column": 29, - "line": 35 + "line": 31 } }, { "defaultMessage": "!!!No credit card required", "end": { "column": 3, - "line": 42 + "line": 38 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.noCreditCard", "start": { "column": 16, - "line": 39 + "line": 35 } }, { "defaultMessage": "!!!Your free trial ends automatically after 14 days", "end": { "column": 3, - "line": 46 + "line": 42 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.automaticTrialEnd", "start": { "column": 21, - "line": 43 + "line": 39 } }, { "defaultMessage": "!!!Free trial (normally {currency}{price} per month)", "end": { "column": 3, - "line": 50 + "line": 46 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.terms.trialWorth", "start": { "column": 14, - "line": 47 + "line": 43 } }, { "defaultMessage": "!!!Sorry, we could not activate your trial!", "end": { "column": 3, - "line": 54 + "line": 50 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.error", "start": { "column": 19, - "line": 51 + "line": 47 } }, { "defaultMessage": "!!!Start my 14-day Franz Professional Trial", "end": { "column": 3, - "line": 58 + "line": 54 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.cta.accept", "start": { "column": 13, - "line": 55 + "line": 51 } }, { "defaultMessage": "!!!Start using Franz", "end": { "column": 3, - "line": 62 + "line": 58 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.cta.start", "start": { "column": 12, - "line": 59 + "line": 55 } }, { "defaultMessage": "!!!Continue to Franz", "end": { "column": 3, - "line": 66 + "line": 62 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.cta.skip", "start": { "column": 11, - "line": 63 + "line": 59 } }, { "defaultMessage": "!!!Franz Professional includes:", "end": { "column": 3, - "line": 70 + "line": 66 }, "file": "src/components/auth/Pricing.js", "id": "pricing.trial.features.headline", "start": { "column": 20, - "line": 67 + "line": 63 } } ], diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 6b0aebb13..8bef09d4d 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -177,7 +177,6 @@ "pricing.trial.intro.happyMessaging": "Happy messaging,", "pricing.trial.intro.specialTreat": "We have a special treat for you.", "pricing.trial.intro.tryPro": "Enjoy the full Franz Professional experience completely free for 14 days.", - "pricing.trial.subheadline": "Here's a special welcome for you:", "pricing.trial.terms.automaticTrialEnd": "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline": "No strings attached", "pricing.trial.terms.noCreditCard": "No credit card required", @@ -426,4 +425,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} +} \ No newline at end of file -- cgit v1.2.3-70-g09d2 From a220bcde9585ca611f591622c675b2e8b7ab6924 Mon Sep 17 00:00:00 2001 From: FranzBot Date: Thu, 17 Oct 2019 12:20:31 +0000 Subject: Automatic i18n update (i18n.meetfranz.com) --- src/i18n/locales/ca.json | 15 +++++++++------ src/i18n/locales/cs.json | 15 +++++++++------ src/i18n/locales/de.json | 15 +++++++++------ src/i18n/locales/el.json | 15 +++++++++------ src/i18n/locales/es.json | 15 +++++++++------ src/i18n/locales/fr.json | 15 +++++++++------ src/i18n/locales/ga.json | 15 +++++++++------ src/i18n/locales/hr.json | 15 +++++++++------ src/i18n/locales/hu.json | 15 +++++++++------ src/i18n/locales/id.json | 15 +++++++++------ src/i18n/locales/it.json | 15 +++++++++------ src/i18n/locales/ja.json | 15 +++++++++------ src/i18n/locales/ka.json | 15 +++++++++------ src/i18n/locales/nl-BE.json | 15 +++++++++------ src/i18n/locales/nl.json | 15 +++++++++------ src/i18n/locales/pl.json | 15 +++++++++------ src/i18n/locales/pt-BR.json | 15 +++++++++------ src/i18n/locales/pt.json | 15 +++++++++------ src/i18n/locales/ru.json | 15 +++++++++------ src/i18n/locales/sk.json | 15 +++++++++------ src/i18n/locales/sr.json | 15 +++++++++------ src/i18n/locales/tr.json | 15 +++++++++------ src/i18n/locales/uk.json | 15 +++++++++------ src/i18n/locales/zh-TW.json | 15 +++++++++------ 24 files changed, 216 insertions(+), 144 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index 1495f2d44..79deb7c87 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Recarrega", "app.errorHandler.headline" : "Quelcom ha anat malament", "feature.announcements.changelog.headline" : "Canvis en Franz {version}", - "feature.delayApp.headline" : "Si us plau, compra una llicència de suport per a Franz per saltar l'espera", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz continuarà en {seconds} segons", "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action" : "Aconsegueix una llicència de suport per a Franz", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Millorar el teu compte", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index 4064372c4..658c813e6 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Obnovit", "app.errorHandler.headline" : "Něco se pokazilo", "feature.announcements.changelog.headline" : "Změny ve Franz {version}", - "feature.delayApp.headline" : "Kup si Franz Supporter licenci a nebudeš už muset čekat", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz bude pokračovat v {seconds} sekundách.", "feature.delayApp.trial.action" : "Ano, chci vyzkoušet Franz Professional na 14 dní zdarma.", "feature.delayApp.trial.actionShort" : "Aktivovat zdarma zkušební verzi Franz Professional", - "feature.delayApp.trial.headline" : "Získejte zdarma zkušební verzi Franz Profesionnal na 14 dní a už nečekejte", - "feature.delayApp.upgrade.action" : "Podpoř Franz a získej Supporter licenci", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Vylepši si svůj účet", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Přidali jste {amount} z {limit} služeb, které jsou součástí vašeho předplatného. Pro přidání dalších služeb proveďte upgrade vašeho účtu.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 589d7fa4d..74579592a 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Neu laden", "app.errorHandler.headline" : "Es ist ein Fehler aufgetreten", "feature.announcements.changelog.headline" : "Was ist neu in Franz {version}", - "feature.delayApp.headline" : "Erspare dir das Warten mit Franz Premium!", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "In {seconds} Sekunden geht's weiter!", "feature.delayApp.trial.action" : "Ja, ich möchte Franz Professional 14 Tage gratis testen", "feature.delayApp.trial.actionShort" : "Aktiviere die kostenlose Franz Professional Testlizenz", - "feature.delayApp.trial.headline" : "Hol dir die kostenlose Franz Professional Testlizenz und es geht ohne Warten weiter!", - "feature.delayApp.upgrade.action" : "Hol dir Franz Premium!", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Account upgraden", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Du hast {amount} von {limit} in deiner Lizenz inkludierten Services hinzugefügt. Bitte führe ein Upgrade deines Accounts durch, um mehr Services hinzuzufügen.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Weiter zu Franz!", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Tut uns leid, wir konnten deine kostenlose Testlizenz nicht aktivieren.", "pricing.trial.features.headline" : "Franz Professional beinhaltet:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Deine kostenlose Testlizenz endet automatisch nach 14 Tagen", "pricing.trial.terms.headline" : "Ohne Bindung, ohne Haken", "pricing.trial.terms.noCreditCard" : "Keine Kreditkarte notwendig", diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json index b53b21c86..b9995de0b 100644 --- a/src/i18n/locales/el.json +++ b/src/i18n/locales/el.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Επαναφόρτωση", "app.errorHandler.headline" : "Κάτι δεν λειτουργεί", "feature.announcements.changelog.headline" : "Changes in Franz {version}", - "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz θα συνεχίσει σε {seconds} δευτερόλεπτα.", "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action" : "Get a Franz Supporter License", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Upgrade account", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index dfd843098..fdc3b22af 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Volver a cargar", "app.errorHandler.headline" : "Algo salió mal.", "feature.announcements.changelog.headline" : "Cambios en Franz {version}", - "feature.delayApp.headline" : "Por favor compra una Licencia de Soporte de Franz para omitir la espera", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz continuará en {seconds} segundos.", "feature.delayApp.trial.action" : "Si! Quiero probar Franz Profesional por 14 días, gratis!", "feature.delayApp.trial.actionShort" : "Activar el período de prueba de Franz Profesional", - "feature.delayApp.trial.headline" : "Empieza el periodo de prueba de Franz Profesional por 14 días y cruza la linea.", - "feature.delayApp.upgrade.action" : "Consigue una Licencia de Soporte de Franz", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Mejora tu cuenta", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Has sumado {amount} servicios más de los que están incluídos en tu plan. Por favor mejora tu cuenta para sumar más servicios.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continuar a Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Disculpe, no pudimos activar su prueba!", "pricing.trial.features.headline" : "Franz Profesional incluye:", - "pricing.trial.headline" : "Franz Profesional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Su prueba gratis finaliza automáticamente después de 14 días", "pricing.trial.terms.headline" : "Sin condiciones", "pricing.trial.terms.noCreditCard" : "No necesita tarjeta de crédito", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 127df0334..ee4df697a 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Actualiser", "app.errorHandler.headline" : "On dirait que quelque chose ne va pas", "feature.announcements.changelog.headline" : "Les nouveaux changements dans Franz {version}", - "feature.delayApp.headline" : "Achetez la licence Franz pour ne plus avoir de temps d'attente", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz s'ouvrira dans {seconds} secondes.", "feature.delayApp.trial.action" : "Oui, je veux les 14 jours d'essai gratuits de Franz Professionnel", "feature.delayApp.trial.actionShort" : "Activer l'essai gratuit de Franz Professionnel ", - "feature.delayApp.trial.headline" : "Obtenir l'essai gratuit de 14 jours pour Franz Professionnel et éviter la file d'attente", - "feature.delayApp.upgrade.action" : "Acheter une license Franz", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Augmenter le niveau de mon compte", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Vous avez ajouté {amount} services sur les {limit} qui sont inclus dans votre offre. Veuillez améliorer votre compte pour ajouter plus de services.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json index 7aed75d4b..d206c04e1 100644 --- a/src/i18n/locales/ga.json +++ b/src/i18n/locales/ga.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Athlódáil", "app.errorHandler.headline" : "Chuaigh cúrsaí chun donais", "feature.announcements.changelog.headline" : "Athraithe i Franz {version}", - "feature.delayApp.headline" : "Ceannaigh Franz Premium chun am a spáráil, le do thoil", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Leanfaidh Franz ar aghaidh i gceann {seconds} soicind.", "feature.delayApp.trial.action" : "Sea, ba mhaith liom Franz Professional a thástáil le feadh 14 lá", "feature.delayApp.trial.actionShort" : "Cuir tástáil saor Franz Professional i bhfeidhm", - "feature.delayApp.trial.headline" : "Tástáil Franz Professional le feadh 14 lá agus gearr isteach sa scuaine!", - "feature.delayApp.upgrade.action" : "Faigh Franz Premium!", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Uasghrádaigh cuntas", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Tá {amount} as {limit} seirbhísí atá san áireamh i do phlean curtha agat cheana féin. Uasghrádaigh do chuntas chun tuilleadh seirbhísí a chur leis, le do thoil.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index 61e5c3f01..7fb3169e5 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Ponovno učitavanje", "app.errorHandler.headline" : "Something went wrong", "feature.announcements.changelog.headline" : "Changes in Franz {version}", - "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action" : "Get a Franz Supporter License", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Upgrade account", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json index 38c3c1197..4bf6fc0e3 100644 --- a/src/i18n/locales/hu.json +++ b/src/i18n/locales/hu.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Újratöltés", "app.errorHandler.headline" : "Valami nem jött össze", "feature.announcements.changelog.headline" : "Franz {version} változásai", - "feature.delayApp.headline" : "Kérjük vásárolj egy Franc Támogatói Liszencet a várakozás átugrásához", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "A Franz továbblép {seconds} másodperc múlva.", "feature.delayApp.trial.action" : "Igen, szeretném kipróbálni 14 napig a Franz Professional-t ingyen", "feature.delayApp.trial.actionShort" : "Aktiválom az ingyenes Franz Professional próbaidőszakot", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action" : "Szerezz egy Franz Támogatói Liszencet", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Fiók frissítése", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json index 203bf5185..40cffb49d 100644 --- a/src/i18n/locales/id.json +++ b/src/i18n/locales/id.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Muat Ulang", "app.errorHandler.headline" : "Terjadi kesalahan", "feature.announcements.changelog.headline" : "Perubahan dalam Franz {version}", - "feature.delayApp.headline" : "Beli Lisensi Pendukung Franz agar tidak perlu menunggu", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz akan melanjutkan dalam {seconds} detik.", "feature.delayApp.trial.action" : "Ya, saya ingin menguji gratis 14 hari Franz Professional", "feature.delayApp.trial.actionShort" : "Aktifkan uji coba gratis Franz Professional", - "feature.delayApp.trial.headline" : "Dapatkan uji coba gratis 14 hari Franz Professional dan tak perlu lagi menunggu!", - "feature.delayApp.upgrade.action" : "Dapatkan Lisensi Pendukung Franz", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Tingkatkan akun", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Anda telah menambahkan {amount} dari kuota {limit} layanan yang tersedia untuk paket Anda. Tingkatkan akun untuk menambahkan layanan lain.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Lanjutkan ke Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Maaf, kami tidak bisa mengaktifkan uji coba Anda!", "pricing.trial.features.headline" : "Franz Professional menyertakan:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Uji coba gratis Anda berakhir secara otomatis dalam 14 hari", "pricing.trial.terms.headline" : "Tanpa embel-embel", "pricing.trial.terms.noCreditCard" : "Tidak memerlukan kartu kredit", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index a9a814412..2edbfd2e8 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Ricarica", "app.errorHandler.headline" : "Qualcosa è andato storto", "feature.announcements.changelog.headline" : "Modifiche in Franz {Version}", - "feature.delayApp.headline" : "Per favore, compra una Licenza Supporter di Franz per saltare l'attesa", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz continuerà tra {seconds} secondi.", "feature.delayApp.trial.action" : "Sì, voglio la prova gratuita di 14 giorni di Franz Professional", "feature.delayApp.trial.actionShort" : "Attiva la prova gratuita di Franz Professional", - "feature.delayApp.trial.headline" : "Ottieni la prova gratuita per 14 giorni di Franz Professional e salta la coda", - "feature.delayApp.upgrade.action" : "Ricevi una Licenza Supporter di Franz", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Effettua l'upgrade del tuo account", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Hai aggiunto {amount} su {limit} servizi che sono inclusi nel tuo piano. Per favore potenzia il tuo account per aggiungere più servizi.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continua su Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Ci dispiace, non abbiamo potuto attivare la tua prova!", "pricing.trial.features.headline" : "Franz Professional include:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "La tua prova gratuita finirà automaticamente dopo 14 giorni", "pricing.trial.terms.headline" : "Senza impegno", "pricing.trial.terms.noCreditCard" : "Nessuna carta di credito richiesta", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 27cb6a3c7..98132854f 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "再読み込み", "app.errorHandler.headline" : "間違えている部分があります", "feature.announcements.changelog.headline" : "Changes in Franz {version}", - "feature.delayApp.headline" : "Franzをすぐに起動するには、Franz サポーターライセンスを購入してください。", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franzはあと{seconds}秒後に起動します。", "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action" : "Franzサポーターライセンスを購入する", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "アカウントをアップグレード", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json index 7440fd916..c9236622d 100644 --- a/src/i18n/locales/ka.json +++ b/src/i18n/locales/ka.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "ჩატვირთვა", "app.errorHandler.headline" : "Something went wrong", "feature.announcements.changelog.headline" : "Changes in Franz {version}", - "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action" : "Get a Franz Supporter License", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Upgrade account", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json index 349e4f80c..d5cf9ac1e 100644 --- a/src/i18n/locales/nl-BE.json +++ b/src/i18n/locales/nl-BE.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Herladen", "app.errorHandler.headline" : "Er ging iets mis", "feature.announcements.changelog.headline" : "Wijzigingen in Franz {versie}", - "feature.delayApp.headline" : "Neem een Franz Supporter Licentie om niet meer te hoeven wachten", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz gaat over {seconds} seconden verder.", "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action" : "Neem een Franz Supporter Licentie ", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Upgrade account", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index 61a212335..a80f80674 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Herladen", "app.errorHandler.headline" : "Er is iets mis gegaan", "feature.announcements.changelog.headline" : "Wijzigingen in Franz {version}", - "feature.delayApp.headline" : "Sponsor Franz om wachten over te slaan", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz gaat over {seconds} seconden verder.", "feature.delayApp.trial.action" : "Ja, ik wil graag 14 dagen lang Franz Professional uitproberen", "feature.delayApp.trial.actionShort" : "Activeer de gratis Franz Professional probeerversie", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action" : "Sponsor Franz", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Upgrade Account", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 2ea92b2b3..71b35f626 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Odśwież", "app.errorHandler.headline" : "Coś poszło nie tak.", "feature.announcements.changelog.headline" : "Zmiany we Franzie {version}", - "feature.delayApp.headline" : "Aby nie czekać, kup licencję Franz Supporter", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz będzie kontynuował za {seconds} sekund.", "feature.delayApp.trial.action" : "Tak, chcę darmową 14-dniową wersję próbną Franz Professional", "feature.delayApp.trial.actionShort" : "Aktywuj darmową wersję próbną Franz Professional", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action" : "Uzyskaj licencję Franz Supporter", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Ulepsz swoje konto", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Dodałeś {amount} z {limit} usług, które oferuje twój plan. Ulepsz swoje konto, aby dodać więcej usług.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 1ee7c04de..e42f68a8f 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Recarregar", "app.errorHandler.headline" : "Opa! Algo deu errado.", "feature.announcements.changelog.headline" : "Mudanças no Franz {version}", - "feature.delayApp.headline" : "Por favor, adquira uma licença para pular o tempo de espera", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz continuará em {seconds} segundos.", "feature.delayApp.trial.action" : "Sim, eu quero o período de testes gratuito de 14 dias do Franz Professional", "feature.delayApp.trial.actionShort" : "Ativar período de testes gratuito do Franz Professional", - "feature.delayApp.trial.headline" : "Teste o Franz Professional por 14 dias grátis e fure a fila.", - "feature.delayApp.upgrade.action" : "Adquira uma licença de suporte Franz", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Atualizar conta", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Você adicionou {amount} serviços de um total de {limit} que estão inclusos no seu plano. Por favor, atualize sua conta para adicionar mais serviços.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continuar para o Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Desculpe, não conseguimos ativar o seu período de testes", "pricing.trial.features.headline" : "Incluso no Franz Profissional:", - "pricing.trial.headline" : "Franz Profissional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Seu período de testes encerra automaticamente em 14 dias", "pricing.trial.terms.headline" : "Sem vínculos", "pricing.trial.terms.noCreditCard" : "Cartão de crédito não exigido", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index 0b553b049..0224668d7 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Recarregar", "app.errorHandler.headline" : "Alguma coisa correu mal", "feature.announcements.changelog.headline" : "Alterações no Franz {version}", - "feature.delayApp.headline" : "Por favor compre uma licença Franz Supporter para saltar a fila de espera", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz irá continuar em {seconds} segundos.", "feature.delayApp.trial.action" : "Sim, Quero a versão experimental do Franz Profissional de 14 dias", "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action" : "Faz parte do grupo de apoio do Franz", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Atualiza a tua conta", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 37dcd4712..133614cf1 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Перезагрузить", "app.errorHandler.headline" : "Что-то пошло не так", "feature.announcements.changelog.headline" : "Изменения в версии Franz {version}", - "feature.delayApp.headline" : "Пожалуйста приобретите лицензию Franz Supporter чтобы убрать ожидание", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz продолжит работу через {seconds} секунд.", "feature.delayApp.trial.action" : "Да, я хочу бесплатную 14-дневную триальную версию Franz Professional", "feature.delayApp.trial.actionShort" : "Активировать бесплатную триальную версию Franz Professional", - "feature.delayApp.trial.headline" : "Получить бесплатную 14-дневную триальную версию Franz Professional и перейти к следующему полю", - "feature.delayApp.upgrade.action" : "Получите лицензию поддержки Franz", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Апгрейдить аккаунт", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Вы добавили {amount} максимальное {limit} количество сервисов, входящих в ваш план. Пожалуйста, обновите свой план чтобы добавить больше сервисов.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json index e853dac7f..35752c4ad 100644 --- a/src/i18n/locales/sk.json +++ b/src/i18n/locales/sk.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Obnoviť", "app.errorHandler.headline" : "Niečo sa pokazilo", "feature.announcements.changelog.headline" : "Zmeny vo Franz {version}", - "feature.delayApp.headline" : "Prosím, kúp si licenciu Franz Supporter a nebudeš musieť čakať", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz bude pokračovať v {seconds} sekundách.", "feature.delayApp.trial.action" : "Áno, chcem bezplatnú 14-dňovú skúšobnú verziu Franz Professional", "feature.delayApp.trial.actionShort" : "Aktivujte bezplatnú skúšobnú verziu Franz Professional", - "feature.delayApp.trial.headline" : "Získajte bezplatnú 14 dňovú skúšobnú verziu Franz Professional a preskočte riadok", - "feature.delayApp.upgrade.action" : "Získajte licenciu pre Franz podporu", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Upgradovať účet", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Pridali ste {amount} z {limit} služieb, ktoré sú zahrnuté vo vašom pláne. Ak chcete pridať ďalšie služby, inovujte svoj účet.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index dc2d0af08..889f3e526 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Ponovno učitavanje", "app.errorHandler.headline" : "Something went wrong", "feature.announcements.changelog.headline" : "Changes in Franz {version}", - "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action" : "Get a Franz Supporter License", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Upgrade account", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index d40d3323d..e20266cd8 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Tekrar Yükle", "app.errorHandler.headline" : "Bir terslik çıktı", "feature.announcements.changelog.headline" : "Changes in Franz {version}", - "feature.delayApp.headline" : "Beklememek için Franz Destek Lisansı'nı satın alın", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz {seconds} saniye sonra devam edecek.", "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action" : "Franz Destek Lisansı'nı alın", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Hesabı Yükselt", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json index c20b3b6b9..69b608e94 100644 --- a/src/i18n/locales/uk.json +++ b/src/i18n/locales/uk.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "Перезавантажити", "app.errorHandler.headline" : "Щось пішло не так", "feature.announcements.changelog.headline" : "Зміни у версії Franz {version}", - "feature.delayApp.headline" : "Будь ласка, придбайте ліцензію Franz Supporter аби пропустити очікування", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz відновить роботу за {seconds} секунд", "feature.delayApp.trial.action" : "Так, я хочу безкоштовну 14-денну триальную версію Franz Professional", "feature.delayApp.trial.actionShort" : "Активувати безкоштовну триальную версію Franz Professional", - "feature.delayApp.trial.headline" : "Отримати безкоштовну 14-денну триальную версію Franz Professional і перейти до наступного поля", - "feature.delayApp.upgrade.action" : "Отримати ліцензію Franz Supporter ", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Преміум акаунт", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Ви додали {amount} максимальну {limit} кількість сервісів, що входять в ваш план. Будь ласка, поновіть свій план щоб додати більше сервісів.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index 17dadebdf..e24b3a6f4 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -2,12 +2,12 @@ "app.errorHandler.action" : "重新整理", "app.errorHandler.headline" : "糟糕!有些地方出問題了。", "feature.announcements.changelog.headline" : "透過 email 傳送", - "feature.delayApp.headline" : "請購買 Franz 支援授權以跳過等候", + "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", "feature.delayApp.text" : "Franz 會在 {seconds} 秒後繼續。", "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action" : "取得 Franz 支援授權", + "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", + "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "升級帳號", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", @@ -21,7 +21,7 @@ "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Welcome back, {name}", + "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", @@ -170,10 +170,13 @@ "pricing.plan.pro-yearly" : "Professional Yearly", "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", "pricing.trial.cta.skip" : "Continue to Franz", + "pricing.trial.cta.start" : "Start using Franz", "pricing.trial.error" : "Sorry, we could not activate your trial!", "pricing.trial.features.headline" : "Franz Professional includes:", - "pricing.trial.headline" : "Franz Professional", - "pricing.trial.subheadline" : "Here's a special welcome for you:", + "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", + "pricing.trial.intro.happyMessaging" : "Happy messaging,", + "pricing.trial.intro.specialTreat" : "We have a special treat for you.", + "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", "pricing.trial.terms.headline" : "No strings attached", "pricing.trial.terms.noCreditCard" : "No credit card required", -- cgit v1.2.3-70-g09d2 From 452cb3dcf7fd2f40a1b9006110f93001749bf578 Mon Sep 17 00:00:00 2001 From: FranzBot Date: Sun, 20 Oct 2019 00:00:21 +0000 Subject: Automatic i18n update (i18n.meetfranz.com) --- src/i18n/locales/pt-BR.json | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index e42f68a8f..ef38e6e0a 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -10,20 +10,20 @@ "feature.delayApp.upgrade.action" : "Upgrade Franz", "feature.delayApp.upgrade.actionShort" : "Atualizar conta", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", - "feature.planSelection.cta.stayOnFree" : "Stay on Free", - "feature.planSelection.cta.trial" : "Start my free 14-days Trial", - "feature.planSelection.cta.upgradePersonal" : "Choose Personal", - "feature.planSelection.cta.upgradePro" : "Choose Professional", - "feature.planSelection.free.text" : "Basic functionality", - "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", + "feature.planSelection.cta.stayOnFree" : "Continuar no plano grátis", + "feature.planSelection.cta.trial" : "Iniciar minha avaliação gratuita de 14 dias", + "feature.planSelection.cta.upgradePersonal" : "Escolha o plano Pessoal", + "feature.planSelection.cta.upgradePro" : "Escolha o plano Profissional", + "feature.planSelection.free.text" : "Funcionalidade básica", + "feature.planSelection.fullFeatureList" : "Comparação completa de todos os planos", "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", - "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", - "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", - "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", - "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", - "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", - "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Escolha o plano Pessoal", + "feature.planSelection.fullscreen.dialog.message" : "Você está prestes a mudar para o plano Gratuito. Você tem certeza? Se não, clique aqui para obter mais serviços e funcionalidade por apenas {currency}{price} por mês.", + "feature.planSelection.fullscreen.dialog.title" : "Alterar seu Plano Franz", + "feature.planSelection.fullscreen.subheadline" : "É hora de fazer uma escolha. O Franz trabalha melhor nos nossos planos Pessoal e Profissional. Por favor, dê uma olhada e veja qual a melhor opção para você.", + "feature.planSelection.fullscreen.welcome" : "Você está pronto para escolher, {name}?", + "feature.planSelection.personal.text" : "Mais serviços, sem espera - ideal para uso pessoal.", + "feature.planSelection.pro.text" : "Serviços ilimitados e funcionalidades profissionais para você - e seu time.", "feature.serviceLimit.limitReached" : "Você adicionou {amount} serviços de um total de {limit} que estão inclusos no seu plano. Por favor, atualize sua conta para adicionar mais serviços.", "feature.shareFranz.action.email" : "Enviar por e-mail", "feature.shareFranz.action.facebook" : "Compartilhar no Facebook", @@ -35,12 +35,12 @@ "feature.todos.premium.info" : "As Listas de Tarefa do Franz estão disponíveis para usuários premium!", "feature.todos.premium.rollout" : "As outras pessoas terão que esperar um pouquinho mais.", "feature.todos.premium.upgrade" : "Melhore sua conta", - "feature.trialStatusBar.cta" : "Upgrade now", + "feature.trialStatusBar.cta" : "Atualizar agora", "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", - "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", - "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", - "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Escolha o plano Pessoal", + "feature.trialStatusBar.fullscreen.dialog.message" : "Você está prestes a mudar para o plano Gratuito. Você tem certeza? Se não, clique aqui para obter mais serviços e funcionalidade por apenas {currency}{price} por mês.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Alterar seu Plano Franz", "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", "global.api.unhealthy" : "Não foi possível conectar-se aos serviços on-line do Franz.", "global.franzProRequired" : "Franz Profissional necessário", -- cgit v1.2.3-70-g09d2 From 828e6aad2a3eb661af3065289730a26a3764a4f4 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Mon, 21 Oct 2019 15:25:32 +0200 Subject: Fix missing icons --- .../workspaces/components/WorkspaceDrawer.js | 4 +-- .../workspaces/components/WorkspacesDashboard.js | 5 ++-- .../workspaces/components/WorkspacesDashboard.json | 32 +++++++++++----------- 3 files changed, 21 insertions(+), 20 deletions(-) (limited to 'src/i18n') diff --git a/src/features/workspaces/components/WorkspaceDrawer.js b/src/features/workspaces/components/WorkspaceDrawer.js index d5616b4da..07100f5a1 100644 --- a/src/features/workspaces/components/WorkspaceDrawer.js +++ b/src/features/workspaces/components/WorkspaceDrawer.js @@ -7,7 +7,7 @@ import { H1, Icon, ProBadge } from '@meetfranz/ui'; import { Button } from '@meetfranz/forms/lib'; import ReactTooltip from 'react-tooltip'; -import { mdiPlusBox, mdiSettings } from '@mdi/js'; +import { mdiPlusBox, mdiSettings, mdiStar } from '@mdi/js'; import WorkspaceDrawerItem from './WorkspaceDrawerItem'; import { workspaceActions } from '../actions'; import { GA_CATEGORY_WORKSPACES, workspaceStore } from '../index'; @@ -177,7 +177,7 @@ class WorkspaceDrawer extends Component { className={classes.premiumCtaButton} buttonType="primary" label={intl.formatMessage(messages.reactivatePremiumAccount)} - icon="mdiStar" + icon={mdiStar} onClick={() => { onUpgradeAccountClick(); gaEvent('User', 'upgrade', 'workspaceDrawer'); diff --git a/src/features/workspaces/components/WorkspacesDashboard.js b/src/features/workspaces/components/WorkspacesDashboard.js index 70e213912..4fb302be2 100644 --- a/src/features/workspaces/components/WorkspacesDashboard.js +++ b/src/features/workspaces/components/WorkspacesDashboard.js @@ -5,6 +5,7 @@ import { defineMessages, intlShape } from 'react-intl'; import injectSheet from 'react-jss'; import { Infobox, Badge } from '@meetfranz/ui'; +import { mdiCheckboxMarkedCircleOutline } from '@mdi/js'; import Loader from '../../../components/ui/Loader'; import WorkspaceItem from './WorkspaceItem'; import CreateWorkspaceForm from './CreateWorkspaceForm'; @@ -128,7 +129,7 @@ class WorkspacesDashboard extends Component { @@ -142,7 +143,7 @@ class WorkspacesDashboard extends Component { diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json index 7eb4fab50..8a20eb8e8 100644 --- a/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json +++ b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Your workspaces", "file": "src/features/workspaces/components/WorkspacesDashboard.js", "start": { - "line": 19, + "line": 20, "column": 12 }, "end": { - "line": 22, + "line": 23, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!You haven't added any workspaces yet.", "file": "src/features/workspaces/components/WorkspacesDashboard.js", "start": { - "line": 23, + "line": 24, "column": 19 }, "end": { - "line": 26, + "line": 27, "column": 3 } }, @@ -30,11 +30,11 @@ "defaultMessage": "!!!Could not load your workspaces", "file": "src/features/workspaces/components/WorkspacesDashboard.js", "start": { - "line": 27, + "line": 28, "column": 27 }, "end": { - "line": 30, + "line": 31, "column": 3 } }, @@ -43,11 +43,11 @@ "defaultMessage": "!!!Try again", "file": "src/features/workspaces/components/WorkspacesDashboard.js", "start": { - "line": 31, + "line": 32, "column": 23 }, "end": { - "line": 34, + "line": 35, "column": 3 } }, @@ -56,11 +56,11 @@ "defaultMessage": "!!!Your changes have been saved", "file": "src/features/workspaces/components/WorkspacesDashboard.js", "start": { - "line": 35, + "line": 36, "column": 15 }, "end": { - "line": 38, + "line": 39, "column": 3 } }, @@ -69,11 +69,11 @@ "defaultMessage": "!!!Workspace has been deleted", "file": "src/features/workspaces/components/WorkspacesDashboard.js", "start": { - "line": 39, + "line": 40, "column": 15 }, "end": { - "line": 42, + "line": 43, "column": 3 } }, @@ -82,11 +82,11 @@ "defaultMessage": "!!!Info about workspace feature", "file": "src/features/workspaces/components/WorkspacesDashboard.js", "start": { - "line": 43, + "line": 44, "column": 24 }, "end": { - "line": 46, + "line": 47, "column": 3 } }, @@ -95,11 +95,11 @@ "defaultMessage": "!!!Less is More: Introducing Franz Workspaces", "file": "src/features/workspaces/components/WorkspacesDashboard.js", "start": { - "line": 47, + "line": 48, "column": 28 }, "end": { - "line": 50, + "line": 51, "column": 3 } } -- cgit v1.2.3-70-g09d2 From 8a4a5c3d3545f295ba99761308697c9f27a6bf29 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Mon, 21 Oct 2019 15:26:47 +0200 Subject: Update defaultMessages.json --- src/i18n/locales/defaultMessages.json | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index e283614d2..9818dca87 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -4861,104 +4861,104 @@ "defaultMessage": "!!!Your workspaces", "end": { "column": 3, - "line": 22 + "line": 23 }, "file": "src/features/workspaces/components/WorkspacesDashboard.js", "id": "settings.workspaces.headline", "start": { "column": 12, - "line": 19 + "line": 20 } }, { "defaultMessage": "!!!You haven't added any workspaces yet.", "end": { "column": 3, - "line": 26 + "line": 27 }, "file": "src/features/workspaces/components/WorkspacesDashboard.js", "id": "settings.workspaces.noWorkspacesAdded", "start": { "column": 19, - "line": 23 + "line": 24 } }, { "defaultMessage": "!!!Could not load your workspaces", "end": { "column": 3, - "line": 30 + "line": 31 }, "file": "src/features/workspaces/components/WorkspacesDashboard.js", "id": "settings.workspaces.workspacesRequestFailed", "start": { "column": 27, - "line": 27 + "line": 28 } }, { "defaultMessage": "!!!Try again", "end": { "column": 3, - "line": 34 + "line": 35 }, "file": "src/features/workspaces/components/WorkspacesDashboard.js", "id": "settings.workspaces.tryReloadWorkspaces", "start": { "column": 23, - "line": 31 + "line": 32 } }, { "defaultMessage": "!!!Your changes have been saved", "end": { "column": 3, - "line": 38 + "line": 39 }, "file": "src/features/workspaces/components/WorkspacesDashboard.js", "id": "settings.workspaces.updatedInfo", "start": { "column": 15, - "line": 35 + "line": 36 } }, { "defaultMessage": "!!!Workspace has been deleted", "end": { "column": 3, - "line": 42 + "line": 43 }, "file": "src/features/workspaces/components/WorkspacesDashboard.js", "id": "settings.workspaces.deletedInfo", "start": { "column": 15, - "line": 39 + "line": 40 } }, { "defaultMessage": "!!!Info about workspace feature", "end": { "column": 3, - "line": 46 + "line": 47 }, "file": "src/features/workspaces/components/WorkspacesDashboard.js", "id": "settings.workspaces.workspaceFeatureInfo", "start": { "column": 24, - "line": 43 + "line": 44 } }, { "defaultMessage": "!!!Less is More: Introducing Franz Workspaces", "end": { "column": 3, - "line": 50 + "line": 51 }, "file": "src/features/workspaces/components/WorkspacesDashboard.js", "id": "settings.workspaces.workspaceFeatureHeadline", "start": { "column": 28, - "line": 47 + "line": 48 } } ], -- cgit v1.2.3-70-g09d2 From a36d3c0b14aa2cb4813d072182396f1f1975ef8c Mon Sep 17 00:00:00 2001 From: FranzBot Date: Tue, 22 Oct 2019 00:00:21 +0000 Subject: Automatic i18n update (i18n.meetfranz.com) --- src/i18n/locales/es.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index fdc3b22af..46992b183 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -6,8 +6,8 @@ "feature.delayApp.text" : "Franz continuará en {seconds} segundos.", "feature.delayApp.trial.action" : "Si! Quiero probar Franz Profesional por 14 días, gratis!", "feature.delayApp.trial.actionShort" : "Activar el período de prueba de Franz Profesional", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", - "feature.delayApp.upgrade.action" : "Upgrade Franz", + "feature.delayApp.trial.headline" : "Prueba gratuitamente Franz Professional por 14 días", + "feature.delayApp.upgrade.action" : "Actualizar Franz", "feature.delayApp.upgrade.actionShort" : "Mejora tu cuenta", "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", "feature.planSelection.cta.stayOnFree" : "Stay on Free", -- cgit v1.2.3-70-g09d2 From a7615ae9550e6456b4e08843891f45ab503f4cc4 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Tue, 22 Oct 2019 11:50:15 +0200 Subject: update strings --- src/i18n/locales/defaultMessages.json | 44 +++++++++++----------- .../planSelection/components/PlanSelection.json | 44 +++++++++++----------- 2 files changed, 44 insertions(+), 44 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 9818dca87..9b77fe34c 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -3998,143 +3998,143 @@ "defaultMessage": "!!!Are you ready to choose, {name}", "end": { "column": 3, - "line": 20 + "line": 21 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.fullscreen.welcome", "start": { "column": 11, - "line": 17 + "line": 18 } }, { "defaultMessage": "!!!It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "end": { "column": 3, - "line": 24 + "line": 25 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.fullscreen.subheadline", "start": { "column": 15, - "line": 21 + "line": 22 } }, { "defaultMessage": "!!!Basic functionality", "end": { "column": 3, - "line": 28 + "line": 29 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.free.text", "start": { "column": 12, - "line": 25 + "line": 26 } }, { "defaultMessage": "!!!More services, no waiting - ideal for personal use.", "end": { "column": 3, - "line": 32 + "line": 33 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.personal.text", "start": { "column": 16, - "line": 29 + "line": 30 } }, { "defaultMessage": "!!!Unlimited services and professional features for you - and your team.", "end": { "column": 3, - "line": 36 + "line": 37 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.pro.text", "start": { "column": 20, - "line": 33 + "line": 34 } }, { "defaultMessage": "!!!Stay on Free", "end": { "column": 3, - "line": 40 + "line": 41 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.cta.stayOnFree", "start": { "column": 17, - "line": 37 + "line": 38 } }, { "defaultMessage": "!!!Downgrade to Free", "end": { "column": 3, - "line": 44 + "line": 45 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.cta.ctaDowngradeFree", "start": { "column": 20, - "line": 41 + "line": 42 } }, { "defaultMessage": "!!!Start my free 14-days Trial", "end": { "column": 3, - "line": 48 + "line": 49 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.cta.trial", "start": { "column": 15, - "line": 45 + "line": 46 } }, { "defaultMessage": "!!!Choose Personal", "end": { "column": 3, - "line": 52 + "line": 53 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.cta.upgradePersonal", "start": { "column": 23, - "line": 49 + "line": 50 } }, { "defaultMessage": "!!!Choose Professional", "end": { "column": 3, - "line": 56 + "line": 57 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.cta.upgradePro", "start": { "column": 18, - "line": 53 + "line": 54 } }, { "defaultMessage": "!!!Complete comparison of all plans", "end": { "column": 3, - "line": 60 + "line": 61 }, "file": "src/features/planSelection/components/PlanSelection.js", "id": "feature.planSelection.fullFeatureList", "start": { "column": 19, - "line": 57 + "line": 58 } } ], diff --git a/src/i18n/messages/src/features/planSelection/components/PlanSelection.json b/src/i18n/messages/src/features/planSelection/components/PlanSelection.json index 2e66c8dfe..685e81e82 100644 --- a/src/i18n/messages/src/features/planSelection/components/PlanSelection.json +++ b/src/i18n/messages/src/features/planSelection/components/PlanSelection.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Are you ready to choose, {name}", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 17, + "line": 18, "column": 11 }, "end": { - "line": 20, + "line": 21, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 21, + "line": 22, "column": 15 }, "end": { - "line": 24, + "line": 25, "column": 3 } }, @@ -30,11 +30,11 @@ "defaultMessage": "!!!Basic functionality", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 25, + "line": 26, "column": 12 }, "end": { - "line": 28, + "line": 29, "column": 3 } }, @@ -43,11 +43,11 @@ "defaultMessage": "!!!More services, no waiting - ideal for personal use.", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 29, + "line": 30, "column": 16 }, "end": { - "line": 32, + "line": 33, "column": 3 } }, @@ -56,11 +56,11 @@ "defaultMessage": "!!!Unlimited services and professional features for you - and your team.", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 33, + "line": 34, "column": 20 }, "end": { - "line": 36, + "line": 37, "column": 3 } }, @@ -69,11 +69,11 @@ "defaultMessage": "!!!Stay on Free", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 37, + "line": 38, "column": 17 }, "end": { - "line": 40, + "line": 41, "column": 3 } }, @@ -82,11 +82,11 @@ "defaultMessage": "!!!Downgrade to Free", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 41, + "line": 42, "column": 20 }, "end": { - "line": 44, + "line": 45, "column": 3 } }, @@ -95,11 +95,11 @@ "defaultMessage": "!!!Start my free 14-days Trial", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 45, + "line": 46, "column": 15 }, "end": { - "line": 48, + "line": 49, "column": 3 } }, @@ -108,11 +108,11 @@ "defaultMessage": "!!!Choose Personal", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 49, + "line": 50, "column": 23 }, "end": { - "line": 52, + "line": 53, "column": 3 } }, @@ -121,11 +121,11 @@ "defaultMessage": "!!!Choose Professional", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 53, + "line": 54, "column": 18 }, "end": { - "line": 56, + "line": 57, "column": 3 } }, @@ -134,11 +134,11 @@ "defaultMessage": "!!!Complete comparison of all plans", "file": "src/features/planSelection/components/PlanSelection.js", "start": { - "line": 57, + "line": 58, "column": 19 }, "end": { - "line": 60, + "line": 61, "column": 3 } } -- cgit v1.2.3-70-g09d2 From 65e68cfce042b238f4d2a1f9cd79fa11426186ea Mon Sep 17 00:00:00 2001 From: FranzBot Date: Wed, 23 Oct 2019 12:00:21 +0000 Subject: Automatic i18n update (i18n.meetfranz.com) --- src/i18n/locales/de.json | 104 +++++++++++++++++++++++------------------------ 1 file changed, 52 insertions(+), 52 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 74579592a..0042d0596 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -2,28 +2,28 @@ "app.errorHandler.action" : "Neu laden", "app.errorHandler.headline" : "Es ist ein Fehler aufgetreten", "feature.announcements.changelog.headline" : "Was ist neu in Franz {version}", - "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", + "feature.delayApp.headline" : "Führe ein Upgrade deines Accounts durch, um nicht mehr warten zu müssen", "feature.delayApp.text" : "In {seconds} Sekunden geht's weiter!", "feature.delayApp.trial.action" : "Ja, ich möchte Franz Professional 14 Tage gratis testen", "feature.delayApp.trial.actionShort" : "Aktiviere die kostenlose Franz Professional Testlizenz", - "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", - "feature.delayApp.upgrade.action" : "Upgrade Franz", + "feature.delayApp.trial.headline" : "Hol dir eine 14-tägige kostenlose Franz Professional Testlizenz und überspringe die Wartezeit", + "feature.delayApp.upgrade.action" : "Franz Upgrade durchführen", "feature.delayApp.upgrade.actionShort" : "Account upgraden", - "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", - "feature.planSelection.cta.stayOnFree" : "Stay on Free", - "feature.planSelection.cta.trial" : "Start my free 14-days Trial", - "feature.planSelection.cta.upgradePersonal" : "Choose Personal", - "feature.planSelection.cta.upgradePro" : "Choose Professional", - "feature.planSelection.free.text" : "Basic functionality", - "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", - "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", - "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", - "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", - "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", - "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", - "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", - "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", - "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", + "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade zu Free", + "feature.planSelection.cta.stayOnFree" : "Ich bleibe bei Free", + "feature.planSelection.cta.trial" : "Starte meine 14-tägige kostenlose Testlizenz", + "feature.planSelection.cta.upgradePersonal" : "Ich will Franz Personal", + "feature.planSelection.cta.upgradePro" : "Ich will Franz Professional", + "feature.planSelection.free.text" : "Das Minimum", + "feature.planSelection.fullFeatureList" : "Alle Lizenzen im Vergleich", + "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade zu Free", + "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Ich will Franz Personal", + "feature.planSelection.fullscreen.dialog.message" : "Dein Account wird auf Free herabgestuft - bist du sicher? Klicke hier für mehr Services und Funktionen für nur {currency}{price} pro Monat.", + "feature.planSelection.fullscreen.dialog.title" : "Downgrade deines Franz Accounts", + "feature.planSelection.fullscreen.subheadline" : "Es ist Zeit für eine Entscheidung! Mit Personal und Professional holst du das Beste aus Franz heraus. Hier ist ein Überblick für dich, wähle aus was zu dir passt.", + "feature.planSelection.fullscreen.welcome" : "{name}, bist du bereit?", + "feature.planSelection.personal.text" : "Mehr Services, kein Warten - ideal für private Nutzung.", + "feature.planSelection.pro.text" : "Unlimitierte Services und alle Features für dich - und dein Team.", "feature.serviceLimit.limitReached" : "Du hast {amount} von {limit} in deiner Lizenz inkludierten Services hinzugefügt. Bitte führe ein Upgrade deines Accounts durch, um mehr Services hinzuzufügen.", "feature.shareFranz.action.email" : "Als E-Mail senden", "feature.shareFranz.action.facebook" : "Auf Facebook teilen", @@ -35,13 +35,13 @@ "feature.todos.premium.info" : "Franz ToDos sind jetzt für Premium User verfügbar!", "feature.todos.premium.rollout" : "Alle anderen müssen sich noch ein wenig gedulden.", "feature.todos.premium.upgrade" : "Account Upgrade", - "feature.trialStatusBar.cta" : "Upgrade now", - "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", - "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", - "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", - "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", - "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", - "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", + "feature.trialStatusBar.cta" : "Upgrade jetzt durchführen", + "feature.trialStatusBar.expired" : "Deine kostenlose Franz {plan} Testlizenz ist abgelaufen, bitte führe ein Upgrade deines Accounts durch.", + "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade zu Free", + "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Ich will Franz Personal", + "feature.trialStatusBar.fullscreen.dialog.message" : "Dein Account wird zu Free herabgestuft, bist du sicher? Klicke hier für mehr Services und Funktionen für nur {currency}{price} im Monat.", + "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade durchführen", + "feature.trialStatusBar.restTime" : "Deine kostenlose Franz {plan} Testlizenz endet in {time}.", "global.api.unhealthy" : "Verbindung zum Franz-Online-Service fehlgeschlagen", "global.franzProRequired" : "Franz Professional benötigt", "global.notConnectedToTheInternet" : "Du bist nicht mit dem Internet verbunden.", @@ -116,7 +116,7 @@ "menu.services.goHome" : "Home", "menu.services.setNextServiceActive" : "Nächster Dienst", "menu.todos" : "ToDos", - "menu.todos.enableTodos" : "Enable Todos", + "menu.todos.enableTodos" : "Todos aktivieren", "menu.view" : "Darstellung", "menu.view.enterFullScreen" : "Vollbildmodus", "menu.view.exitFullScreen" : "Vollbildmodus aus", @@ -145,42 +145,42 @@ "password.submit.label" : "Absenden", "password.successInfo" : "Wir haben Dir eine E-Mail mit weiteren Anweisungen geschickt.", "premiumFeature.button.upgradeAccount" : "Account upgraden", - "pricing.features.accountSync" : "Account Synchronisation", + "pricing.features.accountSync" : "Account Synchronisierung", "pricing.features.adFree" : "Keine Werbung", "pricing.features.appDelays" : "Keine unnötigen Unterbrechungen", "pricing.features.customWebsites" : "Hinzufügen von eigenen Websites", - "pricing.features.desktopNotifications" : "Desktop Notifications", + "pricing.features.desktopNotifications" : "Desktop Benachrichtigungen", "pricing.features.onPremise" : "On-premise & andere Hosted Services", - "pricing.features.recipes" : "Choose from more than 70 Services", + "pricing.features.recipes" : "Wähle aus über 70 Services", "pricing.features.serviceProxies" : "Service Proxies", "pricing.features.spellchecker" : "Rechtschreibprüfung", "pricing.features.teamManagement" : "Team Management", "pricing.features.thirdPartyServices" : "Integration von Services über Drittanbieter", "pricing.features.unlimitedServices" : "Unbegrenztes hinzufügen von Services", - "pricing.features.upToSixServices" : "Add up to 6 services", - "pricing.features.upToThreeServices" : "Add up to 3 services", + "pricing.features.upToSixServices" : "Füge bis zu 6 Services hinzu", + "pricing.features.upToThreeServices" : "Füge bis zu 3 Services hinzu", "pricing.features.workspaces" : "Workspaces", "pricing.plan.free" : "Free", "pricing.plan.legacy" : "Premium", "pricing.plan.personal" : "Personal", - "pricing.plan.personal-monthly" : "Personal Monthly", - "pricing.plan.personal-yearly" : "Personal Yearly", + "pricing.plan.personal-monthly" : "Personal monatlich", + "pricing.plan.personal-yearly" : "Personal jährlich", "pricing.plan.pro" : "Professional", - "pricing.plan.pro-monthly" : "Professional Monthly", - "pricing.plan.pro-yearly" : "Professional Yearly", - "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", + "pricing.plan.pro-monthly" : "Professional monatlich", + "pricing.plan.pro-yearly" : "Professional jährlich", + "pricing.trial.cta.accept" : "Starte meine 14-tägige Franz Professional Testlizenz", "pricing.trial.cta.skip" : "Weiter zu Franz!", - "pricing.trial.cta.start" : "Start using Franz", + "pricing.trial.cta.start" : "Los geht's mit Franz!", "pricing.trial.error" : "Tut uns leid, wir konnten deine kostenlose Testlizenz nicht aktivieren.", "pricing.trial.features.headline" : "Franz Professional beinhaltet:", - "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", - "pricing.trial.intro.happyMessaging" : "Happy messaging,", - "pricing.trial.intro.specialTreat" : "We have a special treat for you.", - "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", + "pricing.trial.headline.pro" : "Hi {name}, willkommen bei Franz", + "pricing.trial.intro.happyMessaging" : "Viel Spaß,", + "pricing.trial.intro.specialTreat" : "Wir haben ein besonderes Geschenk für dich.", + "pricing.trial.intro.tryPro" : "Hol dir Franz Professional kostenlos für 14 Tage.", "pricing.trial.terms.automaticTrialEnd" : "Deine kostenlose Testlizenz endet automatisch nach 14 Tagen", "pricing.trial.terms.headline" : "Ohne Bindung, ohne Haken", "pricing.trial.terms.noCreditCard" : "Keine Kreditkarte notwendig", - "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", + "pricing.trial.terms.trialWorth" : "Kostenlose Testlizenz (sonst {currency}{price} im Monat)", "service.crashHandler.action" : "{name} neu laden", "service.crashHandler.autoReload" : "{name} wird in {seconds} Sekunden automatisch wiederhergestellt", "service.crashHandler.headline" : "Oh nein!", @@ -240,7 +240,7 @@ "settings.app.form.enableSpellchecking" : "Rechtschreibprüfung aktivieren", "settings.app.form.enableSystemTray" : "Franz im Infobereich anzeigen", "settings.app.form.enableTodos" : "Franz Todos aktivieren", - "settings.app.form.keepAllWorkspacesLoaded" : "Keep all workspaces loaded", + "settings.app.form.keepAllWorkspacesLoaded" : "Alle Dienste in den Workspaces aktiv lassen", "settings.app.form.language" : "Sprache", "settings.app.form.minimizeToSystemTray" : "Franz in den Infobereich minimieren", "settings.app.form.runInBackground" : "Franz im Hintergrund behalten, wenn das Fenster geschlossen wird", @@ -362,10 +362,10 @@ "settings.workspaces.workspaceFeatureInfo" : "Mit Franz Workspaces hast du alles im Blick, was gerade wichtig ist - und nur das. Erstelle unterschiedliche Sets von Services, und wechsle jederzeit zwischen ihnen hin und her. Du entscheidest welche Services du wann und wo brauchst, um ungestört arbeiten zu können - oder zu Hause besser abzuschalten.", "settings.workspaces.workspacesRequestFailed" : "Workspaces konnte nicht geladen werden", "sidebar.addNewService" : "Neuen Dienst hinzufügen", - "sidebar.closeTodosDrawer" : "Close Franz Todos", + "sidebar.closeTodosDrawer" : "Franz Todos schließen", "sidebar.closeWorkspaceDrawer" : "Workspaces schließen", "sidebar.muteApp" : "Benachrichtigungen & Audio deaktivieren", - "sidebar.openTodosDrawer" : "Open Franz Todos", + "sidebar.openTodosDrawer" : "Franz Todos öffnen", "sidebar.openWorkspaceDrawer" : "Workspaces öffnen", "sidebar.settings" : "Einstellungen", "sidebar.unmuteApp" : "Benachrichtigungen & Audio aktivieren", @@ -380,14 +380,14 @@ "signup.link.login" : "Du hast bereits ein Konto? Melde Dich an.", "signup.password.label" : "Passwort", "signup.submit.label" : "Konto erstellen", - "subscription.bestValue" : "Best value", + "subscription.bestValue" : "Bester Preis", "subscription.cta.activateTrial" : "Ja, kostenlose Franz Professional Testlizenz starten", "subscription.cta.allOptions" : "Alle Optionen anzeigen", "subscription.cta.choosePlan" : "Wähle deine Lizenz", "subscription.includedProFeatures" : "Die Franz Professional Lizenz beinhaltet:", - "subscription.interval.per" : "per {interval}", - "subscription.interval.perMonth" : "per month", - "subscription.interval.perMonthPerUser" : "per month & user", + "subscription.interval.per" : "pro {interval}", + "subscription.interval.perMonth" : "pro Monat", + "subscription.interval.perMonthPerUser" : "pro Monat & User", "subscription.planItem.upgradeAccount" : "Account Upgrade", "subscription.teaser.includedFeatures" : "Bezahlte Franz Lizenzen beinhalten:", "subscription.teaser.intro" : "Franz 5 ist voll gepackt mit vielen neuen Features, damit du für jegliche kommunikative Eventualität gerüstet bist. Nimm dir was du brauchst und leg los!", @@ -407,10 +407,10 @@ "validation.oneRequired" : "Mindestens ein Wert wird benötigt", "validation.required" : "{field} wird benötigt", "validation.url" : "{field} ist keine gültige URL", - "webControls.back" : "Back", - "webControls.forward" : "Forward", + "webControls.back" : "Zurück", + "webControls.forward" : "Weiter", "webControls.goHome" : "Home", - "webControls.openInBrowser" : "Open in Browser", + "webControls.openInBrowser" : "Im Browser öffnen", "webControls.reload" : "Neu laden", "welcome.loginButton" : "Bei Franz einloggen", "welcome.signupButton" : "Kostenloses Konto erstellen", -- cgit v1.2.3-70-g09d2 From c4f369510632704114c3f162ac61b81a47dad7c5 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 23 Oct 2019 14:06:39 +0200 Subject: Add price disclaimer --- .../planSelection/components/PlanSelection.js | 46 +++++++++++++++++----- src/i18n/locales/defaultMessages.json | 13 ++++++ src/i18n/locales/en-US.json | 3 +- .../planSelection/components/PlanSelection.json | 13 ++++++ 4 files changed, 64 insertions(+), 11 deletions(-) (limited to 'src/i18n') diff --git a/src/features/planSelection/components/PlanSelection.js b/src/features/planSelection/components/PlanSelection.js index aff6bf94f..b6bb9d32d 100644 --- a/src/features/planSelection/components/PlanSelection.js +++ b/src/features/planSelection/components/PlanSelection.js @@ -6,7 +6,7 @@ import { defineMessages, intlShape } from 'react-intl'; import { H1, H2, Icon } from '@meetfranz/ui'; import color from 'color'; -import { mdiRocket } from '@mdi/js'; +import { mdiRocket, mdiArrowRight } from '@mdi/js'; import PlanItem from './PlanItem'; import { i18nPlanName } from '../../../helpers/plan-helpers'; import { PLANS } from '../../../config'; @@ -59,6 +59,10 @@ const messages = defineMessages({ id: 'feature.planSelection.fullFeatureList', defaultMessage: '!!!Complete comparison of all plans', }, + pricesBasedOnAnnualPayment: { + id: 'feature.planSelection.pricesBasedOnAnnualPayment', + defaultMessage: '!!!All prices based on yearly payment', + }, }); const styles = theme => ({ @@ -132,11 +136,23 @@ const styles = theme => ({ borderBottom: [1, 'solid', '#CECECE'], }, }, + footer: { + display: 'flex', + color: theme.styleTypes.primary.contrast, + marginTop: 20, + padding: [0, 15], + }, fullFeatureList: { - marginTop: 40, + marginRight: 'auto', textAlign: 'center', - display: 'block', + display: 'flex', + justifyContent: 'center', + alignItems: 'center', color: `${theme.styleTypes.primary.contrast} !important`, + + '& svg': { + marginRight: 5, + }, }, scrollContainer: { border: '1px solid red', @@ -145,6 +161,10 @@ const styles = theme => ({ featuredPlan: { transform: 'scale(1.05)', }, + disclaimer: { + textAlign: 'right', + margin: [10, 15, 0, 0], + }, }); @injectSheet(styles) @observer @@ -238,13 +258,19 @@ class PlanSelection extends Component { />
- - {intl.formatMessage(messages.fullFeatureList)} - +
+ + + {intl.formatMessage(messages.fullFeatureList)} + + {/*

*/} + {intl.formatMessage(messages.pricesBasedOnAnnualPayment)} + {/*

*/} +
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 9b77fe34c..9dfaf959d 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -4136,6 +4136,19 @@ "column": 19, "line": 58 } + }, + { + "defaultMessage": "!!!All prices are based on the yearly plan", + "end": { + "column": 3, + "line": 65 + }, + "file": "src/features/planSelection/components/PlanSelection.js", + "id": "feature.planSelection.pricesBasedOnAnnualPayment", + "start": { + "column": 30, + "line": 62 + } } ], "path": "src/features/planSelection/components/PlanSelection.json" diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 8bef09d4d..6e84d47f7 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline": "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome": "Are you ready to choose, {name}?", "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached": "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email": "Send as email", @@ -425,4 +426,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} \ No newline at end of file +} diff --git a/src/i18n/messages/src/features/planSelection/components/PlanSelection.json b/src/i18n/messages/src/features/planSelection/components/PlanSelection.json index 685e81e82..7f1de6cfd 100644 --- a/src/i18n/messages/src/features/planSelection/components/PlanSelection.json +++ b/src/i18n/messages/src/features/planSelection/components/PlanSelection.json @@ -141,5 +141,18 @@ "line": 61, "column": 3 } + }, + { + "id": "feature.planSelection.pricesBasedOnAnnualPayment", + "defaultMessage": "!!!All prices based on yearly payment", + "file": "src/features/planSelection/components/PlanSelection.js", + "start": { + "line": 62, + "column": 30 + }, + "end": { + "line": 65, + "column": 3 + } } ] \ No newline at end of file -- cgit v1.2.3-70-g09d2 From ea9249028dd3561fb630a1c0a2ec250c994f1947 Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Wed, 23 Oct 2019 14:17:12 +0200 Subject: Update strings --- src/i18n/locales/defaultMessages.json | 2 +- src/i18n/locales/en-US.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/i18n') diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 9dfaf959d..9cfeaed42 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -4138,7 +4138,7 @@ } }, { - "defaultMessage": "!!!All prices are based on the yearly plan", + "defaultMessage": "!!!All prices based on yearly payment", "end": { "column": 3, "line": 65 diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 6e84d47f7..a701836dc 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -426,4 +426,4 @@ "workspaceDrawer.workspaceFeatureInfo": "

Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.

You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} +} \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 0baa9572d905a225451fe26ebcdbcef78e270cbd Mon Sep 17 00:00:00 2001 From: FranzBot Date: Wed, 23 Oct 2019 12:21:00 +0000 Subject: Automatic i18n update (i18n.meetfranz.com) --- src/i18n/locales/ca.json | 1 + src/i18n/locales/cs.json | 1 + src/i18n/locales/de.json | 1 + src/i18n/locales/el.json | 1 + src/i18n/locales/es.json | 1 + src/i18n/locales/fr.json | 1 + src/i18n/locales/ga.json | 1 + src/i18n/locales/hr.json | 1 + src/i18n/locales/hu.json | 1 + src/i18n/locales/id.json | 1 + src/i18n/locales/it.json | 1 + src/i18n/locales/ja.json | 1 + src/i18n/locales/ka.json | 1 + src/i18n/locales/nl-BE.json | 1 + src/i18n/locales/nl.json | 1 + src/i18n/locales/pl.json | 1 + src/i18n/locales/pt-BR.json | 1 + src/i18n/locales/pt.json | 1 + src/i18n/locales/ru.json | 1 + src/i18n/locales/sk.json | 1 + src/i18n/locales/sr.json | 1 + src/i18n/locales/tr.json | 1 + src/i18n/locales/uk.json | 1 + src/i18n/locales/zh-TW.json | 1 + 24 files changed, 24 insertions(+) (limited to 'src/i18n') diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index 79deb7c87..897bcbf8f 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Envia com a correu", diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index 658c813e6..636c2f12a 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Přidali jste {amount} z {limit} služeb, které jsou součástí vašeho předplatného. Pro přidání dalších služeb proveďte upgrade vašeho účtu.", "feature.shareFranz.action.email" : "Poslat jako e-mail", diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 0042d0596..dd2fa5554 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "Es ist Zeit für eine Entscheidung! Mit Personal und Professional holst du das Beste aus Franz heraus. Hier ist ein Überblick für dich, wähle aus was zu dir passt.", "feature.planSelection.fullscreen.welcome" : "{name}, bist du bereit?", "feature.planSelection.personal.text" : "Mehr Services, kein Warten - ideal für private Nutzung.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimitierte Services und alle Features für dich - und dein Team.", "feature.serviceLimit.limitReached" : "Du hast {amount} von {limit} in deiner Lizenz inkludierten Services hinzugefügt. Bitte führe ein Upgrade deines Accounts durch, um mehr Services hinzuzufügen.", "feature.shareFranz.action.email" : "Als E-Mail senden", diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json index b9995de0b..dc6d27849 100644 --- a/src/i18n/locales/el.json +++ b/src/i18n/locales/el.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Send as email", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 46992b183..0b5f60ef7 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Has sumado {amount} servicios más de los que están incluídos en tu plan. Por favor mejora tu cuenta para sumar más servicios.", "feature.shareFranz.action.email" : "Enviar como correo", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index ee4df697a..cef9a4e76 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Vous avez ajouté {amount} services sur les {limit} qui sont inclus dans votre offre. Veuillez améliorer votre compte pour ajouter plus de services.", "feature.shareFranz.action.email" : "Envoyer par mail", diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json index d206c04e1..d7520e27b 100644 --- a/src/i18n/locales/ga.json +++ b/src/i18n/locales/ga.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Tá {amount} as {limit} seirbhísí atá san áireamh i do phlean curtha agat cheana féin. Uasghrádaigh do chuntas chun tuilleadh seirbhísí a chur leis, le do thoil.", "feature.shareFranz.action.email" : "Seol mar ríomhphost", diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index 7fb3169e5..8640a215b 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Send as email", diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json index 4bf6fc0e3..b537b869b 100644 --- a/src/i18n/locales/hu.json +++ b/src/i18n/locales/hu.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Küldés email-ben", diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json index 40cffb49d..0e1dc7815 100644 --- a/src/i18n/locales/id.json +++ b/src/i18n/locales/id.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Anda telah menambahkan {amount} dari kuota {limit} layanan yang tersedia untuk paket Anda. Tingkatkan akun untuk menambahkan layanan lain.", "feature.shareFranz.action.email" : "Kirim sebagai email", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 2edbfd2e8..350c0ce56 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Hai aggiunto {amount} su {limit} servizi che sono inclusi nel tuo piano. Per favore potenzia il tuo account per aggiungere più servizi.", "feature.shareFranz.action.email" : "Manda come email", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 98132854f..f3fe9d59c 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "メールで送信", diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json index c9236622d..7222deb06 100644 --- a/src/i18n/locales/ka.json +++ b/src/i18n/locales/ka.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Send as email", diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json index d5cf9ac1e..c23788237 100644 --- a/src/i18n/locales/nl-BE.json +++ b/src/i18n/locales/nl-BE.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Verstuur als e-mail", diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index a80f80674..42d4fe995 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Verstuur als e-mail", diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 71b35f626..ae2a62d05 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Dodałeś {amount} z {limit} usług, które oferuje twój plan. Ulepsz swoje konto, aby dodać więcej usług.", "feature.shareFranz.action.email" : "Wyślij jako email", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index ef38e6e0a..3ebbee605 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "É hora de fazer uma escolha. O Franz trabalha melhor nos nossos planos Pessoal e Profissional. Por favor, dê uma olhada e veja qual a melhor opção para você.", "feature.planSelection.fullscreen.welcome" : "Você está pronto para escolher, {name}?", "feature.planSelection.personal.text" : "Mais serviços, sem espera - ideal para uso pessoal.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Serviços ilimitados e funcionalidades profissionais para você - e seu time.", "feature.serviceLimit.limitReached" : "Você adicionou {amount} serviços de um total de {limit} que estão inclusos no seu plano. Por favor, atualize sua conta para adicionar mais serviços.", "feature.shareFranz.action.email" : "Enviar por e-mail", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index 0224668d7..ff2d46b83 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Enviar por e-mail", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 133614cf1..725ff0576 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Вы добавили {amount} максимальное {limit} количество сервисов, входящих в ваш план. Пожалуйста, обновите свой план чтобы добавить больше сервисов.", "feature.shareFranz.action.email" : "Отправить по email", diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json index 35752c4ad..df8ee4b47 100644 --- a/src/i18n/locales/sk.json +++ b/src/i18n/locales/sk.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Pridali ste {amount} z {limit} služieb, ktoré sú zahrnuté vo vašom pláne. Ak chcete pridať ďalšie služby, inovujte svoj účet.", "feature.shareFranz.action.email" : "Odoslať ako e-mail", diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 889f3e526..97de357ec 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Send as email", diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index e20266cd8..c91ade6bb 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "Mail olarak gönder", diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json index 69b608e94..4cf53d7c4 100644 --- a/src/i18n/locales/uk.json +++ b/src/i18n/locales/uk.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "Ви додали {amount} максимальну {limit} кількість сервісів, що входять в ваш план. Будь ласка, поновіть свій план щоб додати більше сервісів.", "feature.shareFranz.action.email" : "Надіслати по email", diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index e24b3a6f4..a8000c13d 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json @@ -23,6 +23,7 @@ "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", + "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", "feature.shareFranz.action.email" : "以電子郵件傳送", -- cgit v1.2.3-70-g09d2