aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar Raino <rainoboy97@gmail.com>2017-10-27 20:56:35 +0200
committerLibravatar Raino <rainoboy97@gmail.com>2017-10-27 20:56:35 +0200
commit059319506050ac652a4e790475fd9423db4f5133 (patch)
treee3aa16dcd0fe26b17c234ea43bbcfeb3bec93c05 /src
parent[translation] Add norwegian translations (diff)
parentMerge pull request #152 from meetfranz/chore/travis-setup (diff)
downloadferdium-app-059319506050ac652a4e790475fd9423db4f5133.tar.gz
ferdium-app-059319506050ac652a4e790475fd9423db4f5133.tar.zst
ferdium-app-059319506050ac652a4e790475fd9423db4f5133.zip
Fix merge conflict and add missing translation
Diffstat (limited to 'src')
-rw-r--r--src/components/layout/Sidebar.js2
-rw-r--r--src/components/services/tabs/TabBarSortableList.js110
-rw-r--r--src/i18n/languages.js2
-rw-r--r--src/i18n/locales/de.json1
-rw-r--r--src/i18n/locales/el-GR.json1
-rw-r--r--src/i18n/locales/en-US.json1
-rw-r--r--src/i18n/locales/es-ES.json168
-rw-r--r--src/i18n/locales/fr.json1
-rw-r--r--src/i18n/locales/ja.json6
-rw-r--r--src/i18n/locales/nb-NO.json1
-rw-r--r--src/i18n/locales/nl-BE.json7
-rw-r--r--src/i18n/locales/nl.json5
-rw-r--r--src/i18n/locales/pl.json1
-rw-r--r--src/i18n/locales/pt-BR.json8
-rw-r--r--src/i18n/locales/ru.json1
-rw-r--r--src/i18n/locales/ua.json1
-rw-r--r--src/i18n/locales/zh-Hant.json168
-rw-r--r--src/index.js2
-rw-r--r--src/lib/Tray.js9
-rw-r--r--src/stores/ServicesStore.js2
20 files changed, 439 insertions, 58 deletions
diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js
index 4aee1ec60..6a5c0f365 100644
--- a/src/components/layout/Sidebar.js
+++ b/src/components/layout/Sidebar.js
@@ -52,7 +52,7 @@ export default class Sidebar extends Component {
52 <button 52 <button
53 onClick={openSettings} 53 onClick={openSettings}
54 className="sidebar__settings-button" 54 className="sidebar__settings-button"
55 data-tip={`Settings (${ctrlKey}+,)`} 55 data-tip={`${intl.formatMessage(messages.settings)} (${ctrlKey}+,)`}
56 > 56 >
57 {isPremiumUser && ( 57 {isPremiumUser && (
58 <span className="emoji"> 58 <span className="emoji">
diff --git a/src/components/services/tabs/TabBarSortableList.js b/src/components/services/tabs/TabBarSortableList.js
index c0a68d1a5..e5ae36419 100644
--- a/src/components/services/tabs/TabBarSortableList.js
+++ b/src/components/services/tabs/TabBarSortableList.js
@@ -1,44 +1,78 @@
1import React from 'react'; 1import React, { Component } from 'react';
2import { observer } from 'mobx-react'; 2import { observer, PropTypes as MobxPropTypes } from 'mobx-react';
3import PropTypes from 'prop-types';
3import { SortableContainer } from 'react-sortable-hoc'; 4import { SortableContainer } from 'react-sortable-hoc';
5import { defineMessages, intlShape } from 'react-intl';
4 6
5import TabItem from './TabItem'; 7import TabItem from './TabItem';
6import { ctrlKey } from '../../../environment'; 8import { ctrlKey } from '../../../environment';
7 9
8export default SortableContainer(observer(({ 10const messages = defineMessages({
9 services, 11 addNewService: {
10 setActive, 12 id: 'sidebar.addNewService',
11 reload, 13 defaultMessage: '!!!Add new service',
12 toggleNotifications, 14 },
13 deleteService, 15});
14 disableService, 16
15 openSettings, 17@observer
16}) => ( 18class TabBarSortableList extends Component {
17 <ul 19 static propTypes = {
18 className="tabs" 20 services: MobxPropTypes.arrayOrObservableArray.isRequired,
19 > 21 setActive: PropTypes.func.isRequired,
20 {services.map((service, index) => ( 22 openSettings: PropTypes.func.isRequired,
21 <TabItem 23 reload: PropTypes.func.isRequired,
22 key={service.id} 24 toggleNotifications: PropTypes.func.isRequired,
23 clickHandler={() => setActive({ serviceId: service.id })} 25 deleteService: PropTypes.func.isRequired,
24 service={service} 26 disableService: PropTypes.func.isRequired,
25 index={index} 27 }
26 shortcutIndex={index + 1} 28
27 reload={() => reload({ serviceId: service.id })} 29 static contextTypes = {
28 toggleNotifications={() => toggleNotifications({ serviceId: service.id })} 30 intl: intlShape,
29 deleteService={() => deleteService({ serviceId: service.id })} 31 };
30 disableService={() => disableService({ serviceId: service.id })} 32
31 openSettings={openSettings} 33 render() {
32 /> 34 const {
33 ))} 35 services,
34 <li> 36 setActive,
35 <button 37 reload,
36 className="sidebar__add-service" 38 toggleNotifications,
37 onClick={() => openSettings({ path: 'recipes' })} 39 deleteService,
38 data-tip={`Add new service (${ctrlKey}+N)`} 40 disableService,
41 openSettings,
42 } = this.props;
43
44 const { intl } = this.context;
45
46 return (
47 <ul
48 className="tabs"
39 > 49 >
40 <span className="mdi mdi-plus" /> 50 {services.map((service, index) => (
41 </button> 51 <TabItem
42 </li> 52 key={service.id}
43 </ul> 53 clickHandler={() => setActive({ serviceId: service.id })}
44))); 54 service={service}
55 index={index}
56 shortcutIndex={index + 1}
57 reload={() => reload({ serviceId: service.id })}
58 toggleNotifications={() => toggleNotifications({ serviceId: service.id })}
59 deleteService={() => deleteService({ serviceId: service.id })}
60 disableService={() => disableService({ serviceId: service.id })}
61 openSettings={openSettings}
62 />
63 ))}
64 <li>
65 <button
66 className="sidebar__add-service"
67 onClick={() => openSettings({ path: 'recipes' })}
68 data-tip={`${intl.formatMessage(messages.addNewService)} (${ctrlKey}+N)`}
69 >
70 <span className="mdi mdi-plus" />
71 </button>
72 </li>
73 </ul>
74 );
75 }
76}
77
78export default SortableContainer(TabBarSortableList);
diff --git a/src/i18n/languages.js b/src/i18n/languages.js
index 0f93d236d..4d9707a13 100644
--- a/src/i18n/languages.js
+++ b/src/i18n/languages.js
@@ -10,5 +10,7 @@ module.exports = {
10 pl: 'Polish', 10 pl: 'Polish',
11 ru: 'Русский', 11 ru: 'Русский',
12 ua: 'Українська', 12 ua: 'Українська',
13 'es-ES': 'Español - España',
14 'zh-Hant': 'Chinese (Traditional)',
13 'nb-NO': 'Norsk' 15 'nb-NO': 'Norsk'
14}; 16};
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json
index 0964169a8..80b66db08 100644
--- a/src/i18n/locales/de.json
+++ b/src/i18n/locales/de.json
@@ -60,6 +60,7 @@
60 "infobar.buttonInstallUpdate": "Neustarten & Aktualisierung installieren", 60 "infobar.buttonInstallUpdate": "Neustarten & Aktualisierung installieren",
61 "infobar.requiredRequestsFailed": "Dienste und Benutzerinformationen konnten nicht geladen werden", 61 "infobar.requiredRequestsFailed": "Dienste und Benutzerinformationen konnten nicht geladen werden",
62 "sidebar.settings": "Einstellungen", 62 "sidebar.settings": "Einstellungen",
63 "sidebar.addNewService": "!!!Add new service",
63 "services.welcome": "Willkommen bei Franz", 64 "services.welcome": "Willkommen bei Franz",
64 "services.getStarted": "Loslegen", 65 "services.getStarted": "Loslegen",
65 "settings.account.headline": "Konto", 66 "settings.account.headline": "Konto",
diff --git a/src/i18n/locales/el-GR.json b/src/i18n/locales/el-GR.json
index dfada77a2..3710bc9a2 100644
--- a/src/i18n/locales/el-GR.json
+++ b/src/i18n/locales/el-GR.json
@@ -60,6 +60,7 @@
60 "infobar.buttonInstallUpdate": "Επανεκκίνηση & εγκατάσταση ενημερώσεων", 60 "infobar.buttonInstallUpdate": "Επανεκκίνηση & εγκατάσταση ενημερώσεων",
61 "infobar.requiredRequestsFailed": "Δεν ήταν δυνατή η φόρτωση υπηρεσιών και πληροφοριών χρηστών", 61 "infobar.requiredRequestsFailed": "Δεν ήταν δυνατή η φόρτωση υπηρεσιών και πληροφοριών χρηστών",
62 "sidebar.settings": "Ρυθμίσεις", 62 "sidebar.settings": "Ρυθμίσεις",
63 "sidebar.addNewService": "!!!Add new service",
63 "services.welcome": "Καλώς ορίσατε στον Franz", 64 "services.welcome": "Καλώς ορίσατε στον Franz",
64 "services.getStarted": "Ξεκινήστε", 65 "services.getStarted": "Ξεκινήστε",
65 "settings.account.headline": "Λογαριασμός", 66 "settings.account.headline": "Λογαριασμός",
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index b9ed51b83..b1d260f0a 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -60,6 +60,7 @@
60 "infobar.buttonInstallUpdate": "Restart & install update", 60 "infobar.buttonInstallUpdate": "Restart & install update",
61 "infobar.requiredRequestsFailed": "Could not load services and user information", 61 "infobar.requiredRequestsFailed": "Could not load services and user information",
62 "sidebar.settings": "Settings", 62 "sidebar.settings": "Settings",
63 "sidebar.addNewService": "Add new service",
63 "services.welcome": "Welcome to Franz", 64 "services.welcome": "Welcome to Franz",
64 "services.getStarted": "Get started", 65 "services.getStarted": "Get started",
65 "settings.account.headline": "Account", 66 "settings.account.headline": "Account",
diff --git a/src/i18n/locales/es-ES.json b/src/i18n/locales/es-ES.json
new file mode 100644
index 000000000..f71b07b2d
--- /dev/null
+++ b/src/i18n/locales/es-ES.json
@@ -0,0 +1,168 @@
1{
2 "global.api.unhealthy": "No se pudo conectar con los servicios online de Franz",
3 "global.notConnectedToTheInternet": "No estás conectado a internet.",
4 "welcome.signupButton": "Crea una cuenta gratuita",
5 "welcome.loginButton": "Accede a tu cuenta",
6 "welcome.slogan": "Mensajería hecha para ti",
7 "login.headline": "Acceder",
8 "login.email.label": "Dirección de Email",
9 "login.password.label": "Contraseña",
10 "login.submit.label": "Acceder",
11 "login.invalidCredentials": "Email o contraseña no válidos",
12 "login.tokenExpired": "Tu sesión ha expirado. Por favor, accede de nuevo.",
13 "login.serverLogout": "Tu sesión ha expirado. Por favor, accede de nuevo.",
14 "login.link.signup": "Crea una cuenta gratuita",
15 "login.link.password": "Restablecer contraseña",
16 "password.headline": "Restablecer contraseña",
17 "password.email.label": "Dirección de Email",
18 "password.submit.label": "Enviar",
19 "password.noUser": "No hemos encontrado un usuario con ese email",
20 "password.successInfo": "Por favor, comprueba tu email",
21 "password.link.signup": "Crea una cuenta gratuita",
22 "password.link.login": "Accede a tu cuenta",
23 "signup.headline": "Crea tu cuenta",
24 "signup.firstname.label": "Nombre",
25 "signup.lastname.label": "Apellidos",
26 "signup.email.label": "Dirección de Email",
27 "signup.company.label": "Empresa",
28 "signup.password.label": "Contraseña",
29 "signup.submit.label": "Crear cuenta",
30 "signup.link.login": "¿Tienes ya una cuenta? Accede",
31 "signup.emailDuplicate": "Ya existe un usuario con esa dirección de email",
32 "signup.legal.info": "Al crear una cuenta de Franz aceptas los",
33 "signup.legal.terms": "Términos de servicio",
34 "signup.legal.privacy": "Política de privacidad",
35 "pricing.headline": "Ayuda a Franz",
36 "pricing.support.label": "Selecciona tu plan de ayuda",
37 "pricing.submit.label": "Quiero ayudar al desarrollo de Franz",
38 "pricing.link.skipPayment": "No quiero ayudar al desarrollo de Franz.",
39 "import.headline": "Importa tus servicios de Franz 4",
40 "import.notSupportedHeadline": "Servicios aún no disponibles en Franz 5",
41 "import.submit.label": "Importar servicios",
42 "import.skip.label": "Quiero añadir los servicios manualmente",
43 "invite.submit.label": "Enviar invitaciones",
44 "invite.headline.friends": "Invita a 3 de tus amigos o compañeros",
45 "invite.name.label": "Nombre",
46 "invite.email.label": "Dirección de Email",
47 "invite.skip.label": "Prefiero hacer esto luego",
48 "subscription.submit.label": "Quiero ayudar al desarrollo de Franz",
49 "subscription.paymentSessionError": "No se ha podido inicializar el formulario de pago",
50 "subscription.includedFeatures": "La cuenta de Franz Premium Supporter incluye",
51 "subscription.features.onpremise": "Añadir servicios in-situ/alojados como HipChat",
52 "subscription.features.customServices": "Servicios privados para ti y tu equipo",
53 "subscription.features.encryptedSync": "Sincronización de sesión encriptada",
54 "subscription.features.vpn": "Soporte para Proxy y VPN",
55 "subscription.features.ads": "¡Sin anuncios, para siempre!",
56 "subscription.features.comingSoon": "próximamente",
57 "infobar.servicesUpdated": "Tus servicios han sido actualizados.",
58 "infobar.updateAvailable": "Una nueva actualización para Franz está disponible.",
59 "infobar.buttonReloadServices": "Volver a cargar servicios",
60 "infobar.buttonInstallUpdate": "Reiniciar e instalar actualizaciones",
61 "infobar.requiredRequestsFailed": "No se han podido cargar los servicios y la información de usuario",
62 "sidebar.settings": "Ajustes",
63 "services.welcome": "Bienvenido a Franz",
64 "services.getStarted": "Comienza",
65 "settings.account.headline": "Mi cuenta",
66 "settings.account.headlineSubscription": "Tu suscripción",
67 "settings.account.headlineUpgrade": "Mejora tu cuenta y ayuda a Franz",
68 "settings.account.headlineInvoices": "Recibos",
69 "settings.account.manageSubscription.label": "Administra tu suscripción",
70 "settings.account.accountType.basic": "Cuenta Básica",
71 "settings.account.accountType.premium": "Cuenta Premium Supporter",
72 "settings.account.account.editButton": "Editar cuenta",
73 "settings.account.invoiceDownload": "Descargar",
74 "settings.account.userInfoRequestFailed": "No se ha podido cargar la información de usuario",
75 "settings.account.tryReloadUserInfoRequest": "TPrueba otra vez",
76 "settings.account.headlineProfile": "Actualizar perfil",
77 "settings.account.headlineAccount": "Información de la cuenta",
78 "settings.account.headlinePassword": "Cambiar contraseña",
79 "settings.account.successInfo": "Tus cambios han sido guardados",
80 "settings.account.buttonSave": "Actualizar perfil",
81 "settings.account.mining.thankyou": "Gracias por ayudar a Franz con tu procesador.",
82 "settings.account.mining.active": "Ahora mismo estás haciendo {hashes} cálculos por segundo.",
83 "settings.account.mining.moreInformation": "Obtén más información",
84 "settings.account.mining.cancel": "Cancelar minado",
85 "settings.navigation.availableServices": "Servicios disponibles",
86 "settings.navigation.yourServices": "Tus servicios",
87 "settings.navigation.account": "Cuenta",
88 "settings.navigation.settings": "Ajustes",
89 "settings.navigation.logout": "Desconectar",
90 "settings.recipes.headline": "Servicios disponibles",
91 "settings.recipes.mostPopular": "Más populares",
92 "settings.recipes.all": "Todos los servicios",
93 "settings.recipes.dev": "Desarrollo",
94 "settings.recipes.nothingFound": "Lo sentimos, no hemos encontrado nada.",
95 "settings.recipes.servicesSuccessfulAddedInfo": "Servicio añadido con éxito",
96 "settings.service.form.saveButton": "Guardar servicio",
97 "settings.service.form.deleteButton": "Eliminar servicio",
98 "settings.service.form.availableServices": "Servicios disponibles",
99 "settings.service.form.yourServices": "Tus servicios",
100 "settings.service.form.addServiceHeadline": "Añadir {name}",
101 "settings.service.form.editServiceHeadline": "Editar {name}",
102 "settings.service.form.tabHosted": "Alojados",
103 "settings.service.form.tabOnPremise": "Autoalojados ⭐️",
104 "settings.service.form.customUrlValidationError": "No se ha podido validar el servidor personalizado {name}.",
105 "settings.service.form.customUrlPremiumInfo": "Para añadir servicios autoalojados necesitas una cuenta de Franz Premium Supporter.",
106 "settings.service.form.customUrlUpgradeAccount": "Mejora tu cuenta",
107 "settings.service.form.indirectMessageInfo": "Serás notificado sobre todos los nuevos mensajes en un canal, no solo @username, @channel, @here, ...",
108 "settings.service.error.headline": "Error",
109 "settings.service.error.goBack": "Volver a los servicios",
110 "settings.service.error.message": "No se ha podido cargar el servicio.",
111 "settings.services.tooltip.isDisabled": "Servicio deshabilitado",
112 "settings.services.tooltip.notificationsDisabled": "Notificaciones deshabilitadas",
113 "settings.services.headline": "Tus servicios",
114 "settings.services.noServicesAdded": "Aún no has añadido ningún servicio.",
115 "settings.services.discoverServices": "Descubrir servicios",
116 "settings.services.updatedInfo": "Tu cambios han sido guardados",
117 "settings.services.deletedInfo": "Se ha eliminado el servicio",
118 "settings.app.headline": "Ajustes",
119 "settings.app.headlineGeneral": "Generales",
120 "settings.app.headlineLanguage": "Idioma",
121 "settings.app.headlineUpdates": "Actualizaciones",
122 "settings.app.buttonSearchForUpdate": "Buscar actualizaciones",
123 "settings.app.buttonInstallUpdate": "Reiniciar e instalar actualizaciones",
124 "settings.app.updateStatusSearching": "Buscando actualizaciones",
125 "settings.app.updateStatusAvailable": "Actualización disponible, descargando...",
126 "settings.app.updateStatusUpToDate": "Estás utilizando la última versión de Franz",
127 "settings.app.form.autoLaunchOnStart": "Iniciar Franz al encender",
128 "settings.app.form.autoLaunchInBackground": "Abrir en segundo plano",
129 "settings.app.form.enableSystemTray": "Mostrar Franz en la barra de tareas",
130 "settings.app.form.minimizeToSystemTray": "Minimizar Franz a la barra de tareas",
131 "settings.app.form.runInBackground": "Mantener Franz abierto en segundo plano al cerrar la ventana",
132 "settings.app.form.language": "Idioma",
133 "settings.app.form.beta": "Incluir versiones beta",
134 "settings.app.currentVersion": "Versión actual:",
135 "settings.service.form.name": "Nombre",
136 "settings.service.form.enableService": "Habilitar servicio",
137 "settings.service.form.enableNotification": "Habilitar notificaciones",
138 "settings.service.form.team": "Equipo",
139 "settings.service.form.customUrl": "Servidor personalizado",
140 "settings.service.form.indirectMessages": "Mostrar señal para todos los mensajes nuevos",
141 "settings.user.form.firstname": "Nombre",
142 "settings.user.form.lastname": "Apellidos",
143 "settings.user.form.email": "Email",
144 "settings.user.form.currentPassword": "Contraseña actual",
145 "settings.user.form.newPassword": "Nueva contraseña",
146 "settings.user.form.accountType.label": "Tipo de cuenta",
147 "settings.user.form.accountType.individual": "Individual",
148 "settings.user.form.accountType.non-profit": "Sin ánimo de lucro",
149 "settings.user.form.accountType.company": "Empresa",
150 "subscription.type.free": "gratis",
151 "subscription.type.month": "mensual",
152 "subscription.type.year": "anual",
153 "subscription.type.mining": "Ayuda a Franz con tu procesador",
154 "subscription.mining.headline": "¿Cómo funciona?",
155 "subscription.mining.experimental": "experimental",
156 "subscription.mining.line1": "Al habilitar \"Ayuda a Franz con tu procesador\", Franz utilizará entre un 20-50% de tu CPU para minar la criptomoneda Monero, lo que equivale a aproximadamente 5$ anuales.",
157 "subscription.mining.line2": "Adaptaremos el uso de CPU basándonos en tu carga de trabajo para no vaciar tu batería ni realentizar tu ordenador.",
158 "subscription.mining.line3": "Siempre que el minero esté activo, tendrás acceso ilimitado a todas las ventajas de la cuenta Franz Premium Supporter.",
159 "subscription.mining.moreInformation": "Obtén más información sobre este plan.",
160 "subscriptionPopup.buttonCancel": "Cancelar",
161 "subscriptionPopup.buttonDone": "Hecho",
162 "tabs.item.reload": "Recargar",
163 "tabs.item.edit": "Editar",
164 "tabs.item.disableNotifications": "Desactivar notificaciones",
165 "tabs.item.enableNotification": "Activar notificaciones",
166 "tabs.item.disableService": "Deshabilitar servicio",
167 "tabs.item.deleteService": "Eliminar servicio"
168}
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json
index 84cf54492..2863f47e4 100644
--- a/src/i18n/locales/fr.json
+++ b/src/i18n/locales/fr.json
@@ -60,6 +60,7 @@
60 "infobar.buttonInstallUpdate": "Redémarrer et installer la mise à jour", 60 "infobar.buttonInstallUpdate": "Redémarrer et installer la mise à jour",
61 "infobar.requiredRequestsFailed": "Impossible de charger les services et les informations de l'utilisateur", 61 "infobar.requiredRequestsFailed": "Impossible de charger les services et les informations de l'utilisateur",
62 "sidebar.settings": "Paramètres", 62 "sidebar.settings": "Paramètres",
63 "sidebar.addNewService": "!!!Add new service",
63 "services.welcome": "Bienvenue sur Franz", 64 "services.welcome": "Bienvenue sur Franz",
64 "services.getStarted": "Commencer", 65 "services.getStarted": "Commencer",
65 "settings.account.headline": "Compte", 66 "settings.account.headline": "Compte",
diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json
index a283154c9..98b7cbb19 100644
--- a/src/i18n/locales/ja.json
+++ b/src/i18n/locales/ja.json
@@ -60,12 +60,13 @@
60 "infobar.buttonInstallUpdate": "再起動して更新をインストールする", 60 "infobar.buttonInstallUpdate": "再起動して更新をインストールする",
61 "infobar.requiredRequestsFailed": "サービスとユーザー情報が読み込めません", 61 "infobar.requiredRequestsFailed": "サービスとユーザー情報が読み込めません",
62 "sidebar.settings": "設定", 62 "sidebar.settings": "設定",
63 "sidebar.addNewService": "!!!Add new service",
63 "services.welcome": "Franzにようこそ", 64 "services.welcome": "Franzにようこそ",
64 "services.getStarted": "はじめる", 65 "services.getStarted": "はじめる",
65 "settings.account.headline": "アカウント", 66 "settings.account.headline": "アカウント",
66 "settings.account.headlineSubscription": "サブスクリプション内容", 67 "settings.account.headlineSubscription": "サブスクリプション内容",
67 "settings.account.headlineUpgrade": "アカウントをアップグレードし、Franzを支援する", 68 "settings.account.headlineUpgrade": "アカウントをアップグレードし、Franzを支援する",
68 "settings.account.headlineInvoices": "Invoices", 69 "settings.account.headlineInvoices": "インボイス",
69 "settings.account.manageSubscription.label": "サブスクリプションの管理", 70 "settings.account.manageSubscription.label": "サブスクリプションの管理",
70 "settings.account.accountType.basic": "Basicアカウント", 71 "settings.account.accountType.basic": "Basicアカウント",
71 "settings.account.accountType.premium": "Premium Supporterアカウント", 72 "settings.account.accountType.premium": "Premium Supporterアカウント",
@@ -126,6 +127,7 @@
126 "settings.app.updateStatusUpToDate": "お使いのFranzは最新です", 127 "settings.app.updateStatusUpToDate": "お使いのFranzは最新です",
127 "settings.app.form.autoLaunchOnStart": "システム起動時にFranzを開く", 128 "settings.app.form.autoLaunchOnStart": "システム起動時にFranzを開く",
128 "settings.app.form.autoLaunchInBackground": "バックグラウンドで開く", 129 "settings.app.form.autoLaunchInBackground": "バックグラウンドで開く",
130 "settings.app.form.enableSystemTray": "Franzをシステムトレイに表示する",
129 "settings.app.form.minimizeToSystemTray": "Franzをシステムトレイに最小化する", 131 "settings.app.form.minimizeToSystemTray": "Franzをシステムトレイに最小化する",
130 "settings.app.form.runInBackground": "ウインドウを閉じた際にFranzをバックグラウンドで実行させておく", 132 "settings.app.form.runInBackground": "ウインドウを閉じた際にFranzをバックグラウンドで実行させておく",
131 "settings.app.form.language": "言語", 133 "settings.app.form.language": "言語",
@@ -150,7 +152,7 @@
150 "subscription.type.month": "月間", 152 "subscription.type.month": "月間",
151 "subscription.type.year": "年間", 153 "subscription.type.year": "年間",
152 "subscription.type.mining": "PCの処理能力を使ってFranzを支援する", 154 "subscription.type.mining": "PCの処理能力を使ってFranzを支援する",
153 "subscription.mining.headline": "これはどのよう", 155 "subscription.mining.headline": "これはどのようか",
154 "subscription.mining.experimental": "実験的", 156 "subscription.mining.experimental": "実験的",
155 "subscription.mining.line1": "\"PCの処理能力を使ってFranzを支援する\"を有効にすることで、Franzはおよそ20-50%のCPUパワーを暗号通貨Moneroのマイニングに使用し、これはおよそ年間で5ドル分にあたります。", 157 "subscription.mining.line1": "\"PCの処理能力を使ってFranzを支援する\"を有効にすることで、Franzはおよそ20-50%のCPUパワーを暗号通貨Moneroのマイニングに使用し、これはおよそ年間で5ドル分にあたります。",
156 "subscription.mining.line2": "処理能力に基づいてCPUの使用率を適応しますのでバッテリーを無駄に消費したり、システムを遅くすることはありません。", 158 "subscription.mining.line2": "処理能力に基づいてCPUの使用率を適応しますのでバッテリーを無駄に消費したり、システムを遅くすることはありません。",
diff --git a/src/i18n/locales/nb-NO.json b/src/i18n/locales/nb-NO.json
index ec0599535..976c54787 100644
--- a/src/i18n/locales/nb-NO.json
+++ b/src/i18n/locales/nb-NO.json
@@ -60,6 +60,7 @@
60 "infobar.buttonInstallUpdate": "Restart & installer oppdatering", 60 "infobar.buttonInstallUpdate": "Restart & installer oppdatering",
61 "infobar.requiredRequestsFailed": "Kunne ikke laste tjenester og brukerinformasjon", 61 "infobar.requiredRequestsFailed": "Kunne ikke laste tjenester og brukerinformasjon",
62 "sidebar.settings": "Innstillinger", 62 "sidebar.settings": "Innstillinger",
63 "sidebar.addNewService": "Legg til ny tjeneste",
63 "services.welcome": "Velkommen til Franz", 64 "services.welcome": "Velkommen til Franz",
64 "services.getStarted": "Kom i gang", 65 "services.getStarted": "Kom i gang",
65 "settings.account.headline": "Konto", 66 "settings.account.headline": "Konto",
diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json
index 40cc14c50..a19d51b2b 100644
--- a/src/i18n/locales/nl-BE.json
+++ b/src/i18n/locales/nl-BE.json
@@ -54,12 +54,13 @@
54 "subscription.features.vpn": "Proxy & VPN ondersteuning", 54 "subscription.features.vpn": "Proxy & VPN ondersteuning",
55 "subscription.features.ads": "Geen reclame, nooit!", 55 "subscription.features.ads": "Geen reclame, nooit!",
56 "subscription.features.comingSoon": "komt binnenkort", 56 "subscription.features.comingSoon": "komt binnenkort",
57 "infobar.servicesUpdated": "Je services zijn geüpdated.", 57 "infobar.servicesUpdated": "Je services zijn geüpdatet.",
58 "infobar.updateAvailable": "Er is een nieuwe update van Franz beschikbaar.", 58 "infobar.updateAvailable": "Er is een nieuwe update van Franz beschikbaar.",
59 "infobar.buttonReloadServices": "Services herladen", 59 "infobar.buttonReloadServices": "Services herladen",
60 "infobar.buttonInstallUpdate": "Herstarten & update installeren", 60 "infobar.buttonInstallUpdate": "Herstarten & update installeren",
61 "infobar.requiredRequestsFailed": "Kon services en gebruikersinformatie niet laden", 61 "infobar.requiredRequestsFailed": "Kon services en gebruikersinformatie niet laden",
62 "sidebar.settings": "Instellingen", 62 "sidebar.settings": "Instellingen",
63 "sidebar.addNewService": "!!!Add new service",
63 "services.welcome": "Welkom bij Franz", 64 "services.welcome": "Welkom bij Franz",
64 "services.getStarted": "Begin", 65 "services.getStarted": "Begin",
65 "settings.account.headline": "Account", 66 "settings.account.headline": "Account",
@@ -76,7 +77,7 @@
76 "settings.account.headlineProfile": "Profiel aanpassen", 77 "settings.account.headlineProfile": "Profiel aanpassen",
77 "settings.account.headlineAccount": "Accountinformatie", 78 "settings.account.headlineAccount": "Accountinformatie",
78 "settings.account.headlinePassword": "Wachtwoord veranderen", 79 "settings.account.headlinePassword": "Wachtwoord veranderen",
79 "settings.account.successInfo": "Je wijzigingen werden bewaard", 80 "settings.account.successInfo": "Je wijzigingen zijn opgeslagen",
80 "settings.account.buttonSave": "Profiel aanpassen", 81 "settings.account.buttonSave": "Profiel aanpassen",
81 "settings.account.mining.thankyou": "Bedankt om Franz te steunen met je rekenkracht.", 82 "settings.account.mining.thankyou": "Bedankt om Franz te steunen met je rekenkracht.",
82 "settings.account.mining.active": "Op dit moment maak je {hashes} berekeningen per seconde.", 83 "settings.account.mining.active": "Op dit moment maak je {hashes} berekeningen per seconde.",
@@ -113,7 +114,7 @@
113 "settings.services.headline": "Jouw services", 114 "settings.services.headline": "Jouw services",
114 "settings.services.noServicesAdded": "Je hebt nog geen services toegevoegd.", 115 "settings.services.noServicesAdded": "Je hebt nog geen services toegevoegd.",
115 "settings.services.discoverServices": "Services ontdekken", 116 "settings.services.discoverServices": "Services ontdekken",
116 "settings.services.updatedInfo": "Je veranderingen werden bewaard", 117 "settings.services.updatedInfo": "Je wijzigingen werden bewaard",
117 "settings.services.deletedInfo": "Service werd verwijderd", 118 "settings.services.deletedInfo": "Service werd verwijderd",
118 "settings.app.headline": "Instellingen", 119 "settings.app.headline": "Instellingen",
119 "settings.app.headlineGeneral": "Algemeen", 120 "settings.app.headlineGeneral": "Algemeen",
diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json
index 159d1f328..aee1a52c8 100644
--- a/src/i18n/locales/nl.json
+++ b/src/i18n/locales/nl.json
@@ -10,7 +10,7 @@
10 "login.submit.label": "Inloggen", 10 "login.submit.label": "Inloggen",
11 "login.invalidCredentials": "E-mailadres of wachtwoord ongeldig", 11 "login.invalidCredentials": "E-mailadres of wachtwoord ongeldig",
12 "login.tokenExpired": "De sessie is verlopen, log opnieuw in alsjeblieft.", 12 "login.tokenExpired": "De sessie is verlopen, log opnieuw in alsjeblieft.",
13 "login.serverLogout": "De sessie is verlopen, log opnieuw in alsjeblieft..", 13 "login.serverLogout": "De sessie is verlopen, log opnieuw in alsjeblieft.",
14 "login.link.signup": "Maak een gratis account", 14 "login.link.signup": "Maak een gratis account",
15 "login.link.password": "Wachtwoord vergeten", 15 "login.link.password": "Wachtwoord vergeten",
16 "password.headline": "Wachtwoord vergeten", 16 "password.headline": "Wachtwoord vergeten",
@@ -60,6 +60,7 @@
60 "infobar.buttonInstallUpdate": "Herstart & installeer update", 60 "infobar.buttonInstallUpdate": "Herstart & installeer update",
61 "infobar.requiredRequestsFailed": "Kon services en gebruikerinformatie niet laden", 61 "infobar.requiredRequestsFailed": "Kon services en gebruikerinformatie niet laden",
62 "sidebar.settings": "Instellingen", 62 "sidebar.settings": "Instellingen",
63 "sidebar.addNewService": "Voeg nieuwe service toe",
63 "services.welcome": "Welkom bij Franz", 64 "services.welcome": "Welkom bij Franz",
64 "services.getStarted": "Beginnen", 65 "services.getStarted": "Beginnen",
65 "settings.account.headline": "Account", 66 "settings.account.headline": "Account",
@@ -157,7 +158,7 @@
157 "subscription.mining.line2": "We zullen het CPU-gebruik aanpassen aan je gebruik en daarmee voorkomen dat de batterij niet leegloopt of dat jij en je werk afgeremd wordt.", 158 "subscription.mining.line2": "We zullen het CPU-gebruik aanpassen aan je gebruik en daarmee voorkomen dat de batterij niet leegloopt of dat jij en je werk afgeremd wordt.",
158 "subscription.mining.line3": "Zolang de miner actief is, heb je onbeperkt toegang tot alle Franz Premium Supporter Features.", 159 "subscription.mining.line3": "Zolang de miner actief is, heb je onbeperkt toegang tot alle Franz Premium Supporter Features.",
159 "subscription.mining.moreInformation": "Verkrijg meer informatie over dit plan.", 160 "subscription.mining.moreInformation": "Verkrijg meer informatie over dit plan.",
160 "subscriptionPopup.buttonCancel": "Cancel", 161 "subscriptionPopup.buttonCancel": "Annuleer",
161 "subscriptionPopup.buttonDone": "Klaar", 162 "subscriptionPopup.buttonDone": "Klaar",
162 "tabs.item.reload": "Herlaad", 163 "tabs.item.reload": "Herlaad",
163 "tabs.item.edit": "Bewerk", 164 "tabs.item.edit": "Bewerk",
diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json
index 1a8e9ad54..a884ef319 100644
--- a/src/i18n/locales/pl.json
+++ b/src/i18n/locales/pl.json
@@ -60,6 +60,7 @@
60 "infobar.buttonInstallUpdate": "Uruchom ponownie i zainstaluj aktualizacje", 60 "infobar.buttonInstallUpdate": "Uruchom ponownie i zainstaluj aktualizacje",
61 "infobar.requiredRequestsFailed": "Nie można wczytać usług i informacji o użytkowniku", 61 "infobar.requiredRequestsFailed": "Nie można wczytać usług i informacji o użytkowniku",
62 "sidebar.settings": "Ustawienia", 62 "sidebar.settings": "Ustawienia",
63 "sidebar.addNewService": "!!!Add new service",
63 "services.welcome": "Witaj w aplikcji Franz", 64 "services.welcome": "Witaj w aplikcji Franz",
64 "services.getStarted": "Zacznij", 65 "services.getStarted": "Zacznij",
65 "settings.account.headline": "Konto", 66 "settings.account.headline": "Konto",
diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json
index 38f0836a7..8a139a4f5 100644
--- a/src/i18n/locales/pt-BR.json
+++ b/src/i18n/locales/pt-BR.json
@@ -59,7 +59,8 @@
59 "infobar.buttonReloadServices": "Recarregar serviços", 59 "infobar.buttonReloadServices": "Recarregar serviços",
60 "infobar.buttonInstallUpdate": "Reiniciar & instalar atualização", 60 "infobar.buttonInstallUpdate": "Reiniciar & instalar atualização",
61 "infobar.requiredRequestsFailed": "Não foi possível carregar serviços e informações do usuário", 61 "infobar.requiredRequestsFailed": "Não foi possível carregar serviços e informações do usuário",
62 "sidebar.settings": "Configurações", 62 "sidebar.addNewService": "!!!Add new service",
63 "sidebar.settings": "Ajustes",
63 "services.welcome": "Bem-vindo ao Franz", 64 "services.welcome": "Bem-vindo ao Franz",
64 "services.getStarted": "Começar", 65 "services.getStarted": "Começar",
65 "settings.account.headline": "Conta", 66 "settings.account.headline": "Conta",
@@ -85,7 +86,7 @@
85 "settings.navigation.availableServices": "Serviços disponíveis", 86 "settings.navigation.availableServices": "Serviços disponíveis",
86 "settings.navigation.yourServices": "Seus serviços", 87 "settings.navigation.yourServices": "Seus serviços",
87 "settings.navigation.account": "Conta", 88 "settings.navigation.account": "Conta",
88 "settings.navigation.settings": "Configurações", 89 "settings.navigation.settings": "Ajustes",
89 "settings.navigation.logout": "Logout", 90 "settings.navigation.logout": "Logout",
90 "settings.recipes.headline": "Serviços disponíveis", 91 "settings.recipes.headline": "Serviços disponíveis",
91 "settings.recipes.mostPopular": "Mais populares", 92 "settings.recipes.mostPopular": "Mais populares",
@@ -115,7 +116,7 @@
115 "settings.services.discoverServices": "Descobrir serviços", 116 "settings.services.discoverServices": "Descobrir serviços",
116 "settings.services.updatedInfo": "Suas mudanças foram salvas", 117 "settings.services.updatedInfo": "Suas mudanças foram salvas",
117 "settings.services.deletedInfo": "Serviço apagado", 118 "settings.services.deletedInfo": "Serviço apagado",
118 "settings.app.headline": "Configurações", 119 "settings.app.headline": "Ajustes",
119 "settings.app.headlineGeneral": "Geral", 120 "settings.app.headlineGeneral": "Geral",
120 "settings.app.headlineLanguage": "Idioma", 121 "settings.app.headlineLanguage": "Idioma",
121 "settings.app.headlineUpdates": "Atualizações", 122 "settings.app.headlineUpdates": "Atualizações",
@@ -126,6 +127,7 @@
126 "settings.app.updateStatusUpToDate": "Você está usando a última versão do Franz", 127 "settings.app.updateStatusUpToDate": "Você está usando a última versão do Franz",
127 "settings.app.form.autoLaunchOnStart": "Abrir o Franz iniciar o sistema", 128 "settings.app.form.autoLaunchOnStart": "Abrir o Franz iniciar o sistema",
128 "settings.app.form.autoLaunchInBackground": "Abrir no fundo", 129 "settings.app.form.autoLaunchInBackground": "Abrir no fundo",
130 "settings.app.form.enableSystemTray": "Mostrar o Franz na bandeja do sistema",
129 "settings.app.form.minimizeToSystemTray": "Minimizar o Franz para a bandeja do sistema", 131 "settings.app.form.minimizeToSystemTray": "Minimizar o Franz para a bandeja do sistema",
130 "settings.app.form.runInBackground": "Manter o Franz no fundo quando fechar a janela", 132 "settings.app.form.runInBackground": "Manter o Franz no fundo quando fechar a janela",
131 "settings.app.form.language": "Idioma", 133 "settings.app.form.language": "Idioma",
diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json
index 44ced9e43..97b746097 100644
--- a/src/i18n/locales/ru.json
+++ b/src/i18n/locales/ru.json
@@ -60,6 +60,7 @@
60 "infobar.buttonInstallUpdate": "Перезапустить и обновить", 60 "infobar.buttonInstallUpdate": "Перезапустить и обновить",
61 "infobar.requiredRequestsFailed": "Невозможно загрузить сервисы и информацию пользователя", 61 "infobar.requiredRequestsFailed": "Невозможно загрузить сервисы и информацию пользователя",
62 "sidebar.settings": "Настройки", 62 "sidebar.settings": "Настройки",
63 "sidebar.addNewService": "!!!Add new service",
63 "services.welcome": "Добро пожаловать во Franz", 64 "services.welcome": "Добро пожаловать во Franz",
64 "services.getStarted": "Начать работу", 65 "services.getStarted": "Начать работу",
65 "settings.account.headline": "Аккаунт", 66 "settings.account.headline": "Аккаунт",
diff --git a/src/i18n/locales/ua.json b/src/i18n/locales/ua.json
index 63135e52c..fcb99c4e4 100644
--- a/src/i18n/locales/ua.json
+++ b/src/i18n/locales/ua.json
@@ -60,6 +60,7 @@
60 "infobar.buttonInstallUpdate": "Перезавантажити і встановити оновлення", 60 "infobar.buttonInstallUpdate": "Перезавантажити і встановити оновлення",
61 "infobar.requiredRequestsFailed": "Не вдалося завантажити сервіси та інформацію користувача", 61 "infobar.requiredRequestsFailed": "Не вдалося завантажити сервіси та інформацію користувача",
62 "sidebar.settings": "Налаштування", 62 "sidebar.settings": "Налаштування",
63 "sidebar.addNewService": "!!!Add new service",
63 "services.welcome": "Ласкаво просимо в Franz", 64 "services.welcome": "Ласкаво просимо в Franz",
64 "services.getStarted": "Почати", 65 "services.getStarted": "Почати",
65 "settings.account.headline": "Акаунт", 66 "settings.account.headline": "Акаунт",
diff --git a/src/i18n/locales/zh-Hant.json b/src/i18n/locales/zh-Hant.json
new file mode 100644
index 000000000..e52b9ca26
--- /dev/null
+++ b/src/i18n/locales/zh-Hant.json
@@ -0,0 +1,168 @@
1{
2 "global.api.unhealthy": "無法連接到Franz網路服務",
3 "global.notConnectedToTheInternet": "您未連上網際網路",
4 "welcome.signupButton": "建立一個免費帳戶",
5 "welcome.loginButton": "登入",
6 "welcome.slogan": "Messaging that works for you",
7 "login.headline": "登入",
8 "login.email.label": "電子郵件信箱",
9 "login.password.label": "密碼",
10 "login.submit.label": "登入",
11 "login.invalidCredentials": "電子郵件帳戶或密碼有誤",
12 "login.tokenExpired": "登入狀態過期,請重新登入",
13 "login.serverLogout": "登入狀態過期,請重新登入",
14 "login.link.signup": "建立一個免費帳戶",
15 "login.link.password": "密碼重設",
16 "password.headline": "密碼重設",
17 "password.email.label": "電子郵件信箱",
18 "password.submit.label": "送出",
19 "password.noUser": "此電子郵件帳戶不存在",
20 "password.successInfo": "請重新確認您的電子郵件信箱",
21 "password.link.signup": "建立一個免費帳戶",
22 "password.link.login": "登入您的帳戶",
23 "signup.headline": "註冊",
24 "signup.firstname.label": "名子",
25 "signup.lastname.label": "姓氏",
26 "signup.email.label": "電子郵件信箱",
27 "signup.company.label": "公司",
28 "signup.password.label": "密碼",
29 "signup.submit.label": "建立帳戶",
30 "signup.link.login": "您已有一個帳戶,請問是否要登入?",
31 "signup.emailDuplicate": "此電子郵件信箱已被註冊",
32 "signup.legal.info": "在建立帳戶同時,您同意:",
33 "signup.legal.terms": "服務條款",
34 "signup.legal.privacy": "隱私聲明",
35 "pricing.headline": "贊助 Franz",
36 "pricing.support.label": "選擇贊助方案",
37 "pricing.submit.label": "我想協助 Franz 的開發",
38 "pricing.link.skipPayment": "我不想協助 Franz 的開發",
39 "import.headline": "匯入您的 Franz 4 服務",
40 "import.notSupportedHeadline": "此服務不被 Franz 5 支持",
41 "import.submit.label": "匯入服務",
42 "import.skip.label": "我想手動匯入",
43 "invite.submit.label": "Send invites",
44 "invite.headline.friends": "邀請三個人",
45 "invite.name.label": "名子",
46 "invite.email.label": "電子郵件信箱",
47 "invite.skip.label": "我想晚點進行",
48 "subscription.submit.label": "我想協助 Franz 的開發",
49 "subscription.paymentSessionError": "無法初始化付費表單",
50 "subscription.includedFeatures": "Paid Franz Premium Supporter Account includes",
51 "subscription.features.onpremise": "Add on-premise/hosted services like HipChat",
52 "subscription.features.customServices": "Private services for you and your team",
53 "subscription.features.encryptedSync": "Encrypted session synchronization",
54 "subscription.features.vpn": "支援 Proxy & VPN",
55 "subscription.features.ads": "不再有任何廣告",
56 "subscription.features.comingSoon": "敬請期待",
57 "infobar.servicesUpdated": "您的服務已更新",
58 "infobar.updateAvailable": "有新的更新可安裝",
59 "infobar.buttonReloadServices": "重新載入",
60 "infobar.buttonInstallUpdate": "重新啟動並且更新",
61 "infobar.requiredRequestsFailed": "無法載入服務與帳戶資訊",
62 "sidebar.settings": "設定",
63 "services.welcome": "歡迎使用 Franz",
64 "services.getStarted": "開始使用",
65 "settings.account.headline": "帳戶",
66 "settings.account.headlineSubscription": "您的訂閱",
67 "settings.account.headlineUpgrade": "升級帳戶以及贊助 Franz",
68 "settings.account.headlineInvoices": "Invoices",
69 "settings.account.manageSubscription.label": "管理訂閱",
70 "settings.account.accountType.basic": "基本帳戶",
71 "settings.account.accountType.premium": "Premium Supporter Account",
72 "settings.account.account.editButton": "更改帳戶資訊",
73 "settings.account.invoiceDownload": "下載",
74 "settings.account.userInfoRequestFailed": "無法載入帳戶資訊",
75 "settings.account.tryReloadUserInfoRequest": "請重試",
76 "settings.account.headlineProfile": "更新帳戶資訊",
77 "settings.account.headlineAccount": "帳戶資訊",
78 "settings.account.headlinePassword": "更改密碼",
79 "settings.account.successInfo": "您的更改已經儲存",
80 "settings.account.buttonSave": "更新帳戶資訊",
81 "settings.account.mining.thankyou": "感謝您贊助運算能力",
82 "settings.account.mining.active": "您現在每秒執行 {hashes} 個計算",
83 "settings.account.mining.moreInformation": "取得更多資訊",
84 "settings.account.mining.cancel": "取消贊助運算",
85 "settings.navigation.availableServices": "可用服務",
86 "settings.navigation.yourServices": "您的服務",
87 "settings.navigation.account": "帳戶",
88 "settings.navigation.settings": "設定",
89 "settings.navigation.logout": "登出",
90 "settings.recipes.headline": "可用服務",
91 "settings.recipes.mostPopular": "熱門",
92 "settings.recipes.all": "全部",
93 "settings.recipes.dev": "開發中",
94 "settings.recipes.nothingFound": "抱歉,找不到您所要的服務",
95 "settings.recipes.servicesSuccessfulAddedInfo": "新增服務成功",
96 "settings.service.form.saveButton": "儲存",
97 "settings.service.form.deleteButton": "刪除",
98 "settings.service.form.availableServices": "可用服務",
99 "settings.service.form.yourServices": "您的服務",
100 "settings.service.form.addServiceHeadline": "新增 {name}",
101 "settings.service.form.editServiceHeadline": "更改 {name}",
102 "settings.service.form.tabHosted": "Hosted",
103 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
104 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.",
105 "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Franz Premium Supporter Account.",
106 "settings.service.form.customUrlUpgradeAccount": "升級帳戶",
107 "settings.service.form.indirectMessageInfo": "除了 @username, @channel, @here 之外,當您參與的頻道有訊息時,就會通知",
108 "settings.service.error.headline": "錯誤",
109 "settings.service.error.goBack": "返回",
110 "settings.service.error.message": "無法載入服務元件",
111 "settings.services.tooltip.isDisabled": "已停用服務",
112 "settings.services.tooltip.notificationsDisabled": "已停用通知",
113 "settings.services.headline": "您的服務",
114 "settings.services.noServicesAdded": "您還沒加入任何服務",
115 "settings.services.discoverServices": "服務列表",
116 "settings.services.updatedInfo": "更動已經儲存",
117 "settings.services.deletedInfo": "服務已刪除",
118 "settings.app.headline": "設定",
119 "settings.app.headlineGeneral": "一般",
120 "settings.app.headlineLanguage": "語言",
121 "settings.app.headlineUpdates": "更新",
122 "settings.app.buttonSearchForUpdate": "檢查更新",
123 "settings.app.buttonInstallUpdate": "重新開啟並且更新",
124 "settings.app.updateStatusSearching": "檢查更新中...",
125 "settings.app.updateStatusAvailable": "有可用更新,下載中...",
126 "settings.app.updateStatusUpToDate": "已經是最新版本了",
127 "settings.app.form.autoLaunchOnStart": "開機時啟動",
128 "settings.app.form.autoLaunchInBackground": "背景啟動",
129 "settings.app.form.enableSystemTray": "在系統匣上顯示",
130 "settings.app.form.minimizeToSystemTray": "最小化至系統匣",
131 "settings.app.form.runInBackground": "關閉時保持在背景運作",
132 "settings.app.form.language": "語言",
133 "settings.app.form.beta": "包含開發中版本",
134 "settings.app.currentVersion": "當前版本:",
135 "settings.service.form.name": "Name",
136 "settings.service.form.enableService": "啟用服務",
137 "settings.service.form.enableNotification": "啟用通知",
138 "settings.service.form.team": "Team",
139 "settings.service.form.customUrl": "Custom server",
140 "settings.service.form.indirectMessages": "針對全部訊息顯示通知",
141 "settings.user.form.firstname": "名子",
142 "settings.user.form.lastname": "姓氏",
143 "settings.user.form.email": "電子郵件信箱",
144 "settings.user.form.currentPassword": "舊密碼",
145 "settings.user.form.newPassword": "新密碼",
146 "settings.user.form.accountType.label": "帳戶類型",
147 "settings.user.form.accountType.individual": "個人",
148 "settings.user.form.accountType.non-profit": "非營利",
149 "settings.user.form.accountType.company": "公司",
150 "subscription.type.free": "免費",
151 "subscription.type.month": "月",
152 "subscription.type.year": "年",
153 "subscription.type.mining": "用您機器的計算能力來贊助 Franz",
154 "subscription.mining.headline": "如何進行的?",
155 "subscription.mining.experimental": "實驗性功能",
156 "subscription.mining.line1": "Franz 運用您CPU的20%至50%的運算能力來挖門羅幣(一種開源加密貨幣),每年約莫可得到5美元。",
157 "subscription.mining.line2": "我們會調整運算強度,避免消耗過多電池電量及影響效能。",
158 "subscription.mining.line3": "當您允許我們挖掘門羅幣之時,我們便允許您使用全部的加值服務。",
159 "subscription.mining.moreInformation": "取得更多資訊",
160 "subscriptionPopup.buttonCancel": "取消",
161 "subscriptionPopup.buttonDone": "完成",
162 "tabs.item.reload": "重新載入",
163 "tabs.item.edit": "更改",
164 "tabs.item.disableNotifications": "停用通知",
165 "tabs.item.enableNotification": "啟用通知",
166 "tabs.item.disableService": "停用服務",
167 "tabs.item.deleteService": "刪除服務"
168}
diff --git a/src/index.js b/src/index.js
index 9ca059f48..030736fee 100644
--- a/src/index.js
+++ b/src/index.js
@@ -66,7 +66,7 @@ const createWindow = async () => {
66 }); 66 });
67 67
68 // Initialize System Tray 68 // Initialize System Tray
69 const trayIcon = new Tray(mainWindow); 69 const trayIcon = new Tray();
70 70
71 // Initialize ipcApi 71 // Initialize ipcApi
72 ipcApi({ mainWindow, settings, trayIcon }); 72 ipcApi({ mainWindow, settings, trayIcon });
diff --git a/src/lib/Tray.js b/src/lib/Tray.js
index 67150971e..525ce592e 100644
--- a/src/lib/Tray.js
+++ b/src/lib/Tray.js
@@ -6,13 +6,8 @@ const INDICATOR_TRAY_PLAIN = 'tray';
6const INDICATOR_TRAY_UNREAD = 'tray-unread'; 6const INDICATOR_TRAY_UNREAD = 'tray-unread';
7 7
8export default class TrayIcon { 8export default class TrayIcon {
9 mainWindow = null;
10 trayIcon = null; 9 trayIcon = null;
11 10
12 constructor(mainWindow) {
13 this.mainWindow = mainWindow;
14 }
15
16 show() { 11 show() {
17 if (this.trayIcon) return; 12 if (this.trayIcon) return;
18 13
@@ -21,7 +16,7 @@ export default class TrayIcon {
21 { 16 {
22 label: 'Show Franz', 17 label: 'Show Franz',
23 click() { 18 click() {
24 this.mainWindow.show(); 19 app.mainWindow.show();
25 }, 20 },
26 }, { 21 }, {
27 label: 'Quit Franz', 22 label: 'Quit Franz',
@@ -35,7 +30,7 @@ export default class TrayIcon {
35 this.trayIcon.setContextMenu(trayMenu); 30 this.trayIcon.setContextMenu(trayMenu);
36 31
37 this.trayIcon.on('click', () => { 32 this.trayIcon.on('click', () => {
38 this.mainWindow.show(); 33 app.mainWindow.show();
39 }); 34 });
40 } 35 }
41 36
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js
index 19db05494..4510146e0 100644
--- a/src/stores/ServicesStore.js
+++ b/src/stores/ServicesStore.js
@@ -383,7 +383,7 @@ export default class ServicesStore extends Store {
383 data.forEach((s) => { 383 data.forEach((s) => {
384 const service = s; 384 const service = s;
385 385
386 service.order = this.one(s.id).order; 386 service.order = services[s.id];
387 }); 387 });
388 }); 388 });
389 389