diff options
author | 2017-12-24 22:11:36 +0100 | |
---|---|---|
committer | 2017-12-24 22:11:36 +0100 | |
commit | df44b69c4655415fe1e44689ece443ec06ef0f52 (patch) | |
tree | e677ed5f5328bb3b14bc976c7392d8e259f89034 /src | |
parent | [wip] add icon upload (diff) | |
parent | Merge pull request #494 from heavypackets/websecurity-enable-patch (diff) | |
download | ferdium-app-df44b69c4655415fe1e44689ece443ec06ef0f52.tar.gz ferdium-app-df44b69c4655415fe1e44689ece443ec06ef0f52.tar.zst ferdium-app-df44b69c4655415fe1e44689ece443ec06ef0f52.zip |
Merge branch 'develop' into feature/icon-upload
Diffstat (limited to 'src')
89 files changed, 4757 insertions, 2154 deletions
diff --git a/src/actions/app.js b/src/actions/app.js index 25ff9344d..e4f648fc9 100644 --- a/src/actions/app.js +++ b/src/actions/app.js | |||
@@ -22,6 +22,7 @@ export default { | |||
22 | healthCheck: {}, | 22 | healthCheck: {}, |
23 | muteApp: { | 23 | muteApp: { |
24 | isMuted: PropTypes.bool.isRequired, | 24 | isMuted: PropTypes.bool.isRequired, |
25 | overrideSystemMute: PropTypes.bool, | ||
25 | }, | 26 | }, |
26 | toggleMuteApp: {}, | 27 | toggleMuteApp: {}, |
27 | }; | 28 | }; |
diff --git a/src/actions/service.js b/src/actions/service.js index 1b918251b..e3100e986 100644 --- a/src/actions/service.js +++ b/src/actions/service.js | |||
@@ -50,6 +50,10 @@ export default { | |||
50 | channel: PropTypes.string.isRequired, | 50 | channel: PropTypes.string.isRequired, |
51 | args: PropTypes.object.isRequired, | 51 | args: PropTypes.object.isRequired, |
52 | }, | 52 | }, |
53 | sendIPCMessageToAllServices: { | ||
54 | channel: PropTypes.string.isRequired, | ||
55 | args: PropTypes.object.isRequired, | ||
56 | }, | ||
53 | openWindow: { | 57 | openWindow: { |
54 | event: PropTypes.object.isRequired, | 58 | event: PropTypes.object.isRequired, |
55 | }, | 59 | }, |
diff --git a/src/actions/user.js b/src/actions/user.js index fe32b8a05..ccf1fa56a 100644 --- a/src/actions/user.js +++ b/src/actions/user.js | |||
@@ -27,4 +27,5 @@ export default { | |||
27 | importLegacyServices: PropTypes.arrayOf(PropTypes.shape({ | 27 | importLegacyServices: PropTypes.arrayOf(PropTypes.shape({ |
28 | recipe: PropTypes.string.isRequired, | 28 | recipe: PropTypes.string.isRequired, |
29 | })).isRequired, | 29 | })).isRequired, |
30 | delete: {}, | ||
30 | }; | 31 | }; |
diff --git a/src/api/UserApi.js b/src/api/UserApi.js index e8fd75bed..edfb88988 100644 --- a/src/api/UserApi.js +++ b/src/api/UserApi.js | |||
@@ -46,4 +46,8 @@ export default class UserApi { | |||
46 | getLegacyServices() { | 46 | getLegacyServices() { |
47 | return this.server.getLegacyServices(); | 47 | return this.server.getLegacyServices(); |
48 | } | 48 | } |
49 | |||
50 | delete() { | ||
51 | return this.server.deleteAccount(); | ||
52 | } | ||
49 | } | 53 | } |
diff --git a/src/api/server/ServerApi.js b/src/api/server/ServerApi.js index 932b70cdc..8b3136d27 100644 --- a/src/api/server/ServerApi.js +++ b/src/api/server/ServerApi.js | |||
@@ -12,6 +12,8 @@ import NewsModel from '../../models/News'; | |||
12 | import UserModel from '../../models/User'; | 12 | import UserModel from '../../models/User'; |
13 | import OrderModel from '../../models/Order'; | 13 | import OrderModel from '../../models/Order'; |
14 | 14 | ||
15 | import { sleep } from '../../helpers/async-helpers'; | ||
16 | |||
15 | import { API } from '../../environment'; | 17 | import { API } from '../../environment'; |
16 | 18 | ||
17 | import { | 19 | import { |
@@ -125,6 +127,19 @@ export default class ServerApi { | |||
125 | return user; | 127 | return user; |
126 | } | 128 | } |
127 | 129 | ||
130 | async deleteAccount() { | ||
131 | const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/me`, this._prepareAuthRequest({ | ||
132 | method: 'DELETE', | ||
133 | })); | ||
134 | if (!request.ok) { | ||
135 | throw request; | ||
136 | } | ||
137 | const data = await request.json(); | ||
138 | |||
139 | console.debug('ServerApi::deleteAccount resolves', data); | ||
140 | return data; | ||
141 | } | ||
142 | |||
128 | // Services | 143 | // Services |
129 | async getServices() { | 144 | async getServices() { |
130 | const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/me/services`, this._prepareAuthRequest({ | 145 | const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/me/services`, this._prepareAuthRequest({ |
@@ -290,18 +305,25 @@ export default class ServerApi { | |||
290 | 305 | ||
291 | fs.ensureDirSync(recipeTempDirectory); | 306 | fs.ensureDirSync(recipeTempDirectory); |
292 | const res = await fetch(packageUrl); | 307 | const res = await fetch(packageUrl); |
308 | console.debug('Recipe downloaded', recipeId); | ||
293 | const buffer = await res.buffer(); | 309 | const buffer = await res.buffer(); |
294 | fs.writeFileSync(archivePath, buffer); | 310 | fs.writeFileSync(archivePath, buffer); |
295 | 311 | ||
296 | tar.x({ | 312 | await sleep(10); |
313 | |||
314 | await tar.x({ | ||
297 | file: archivePath, | 315 | file: archivePath, |
298 | cwd: recipeTempDirectory, | 316 | cwd: recipeTempDirectory, |
299 | sync: true, | 317 | preservePaths: true, |
318 | unlink: true, | ||
319 | preserveOwner: false, | ||
320 | onwarn: x => console.log('warn', recipeId, x), | ||
300 | }); | 321 | }); |
301 | 322 | ||
323 | await sleep(10); | ||
324 | |||
302 | const { id } = fs.readJsonSync(path.join(recipeTempDirectory, 'package.json')); | 325 | const { id } = fs.readJsonSync(path.join(recipeTempDirectory, 'package.json')); |
303 | const recipeDirectory = path.join(recipesDirectory, id); | 326 | const recipeDirectory = path.join(recipesDirectory, id); |
304 | |||
305 | fs.copySync(recipeTempDirectory, recipeDirectory); | 327 | fs.copySync(recipeTempDirectory, recipeDirectory); |
306 | fs.remove(recipeTempDirectory); | 328 | fs.remove(recipeTempDirectory); |
307 | fs.remove(path.join(recipesDirectory, recipeId, 'recipe.tar.gz')); | 329 | fs.remove(path.join(recipesDirectory, recipeId, 'recipe.tar.gz')); |
@@ -374,7 +396,7 @@ export default class ServerApi { | |||
374 | // News | 396 | // News |
375 | async getLatestNews() { | 397 | async getLatestNews() { |
376 | // eslint-disable-next-line | 398 | // eslint-disable-next-line |
377 | const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/news?platform=${os.platform()}&arch=${os.arch()}version=${app.getVersion()}`, | 399 | const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/news?platform=${os.platform()}&arch=${os.arch()}&version=${app.getVersion()}`, |
378 | this._prepareAuthRequest({ | 400 | this._prepareAuthRequest({ |
379 | method: 'GET', | 401 | method: 'GET', |
380 | })); | 402 | })); |
diff --git a/src/components/auth/Import.js b/src/components/auth/Import.js index 06493a0fd..078244434 100644 --- a/src/components/auth/Import.js +++ b/src/components/auth/Import.js | |||
@@ -24,7 +24,7 @@ const messages = defineMessages({ | |||
24 | }, | 24 | }, |
25 | skipButtonLabel: { | 25 | skipButtonLabel: { |
26 | id: 'import.skip.label', | 26 | id: 'import.skip.label', |
27 | defaultMessage: '!!!I want add services manually', | 27 | defaultMessage: '!!!I want to add services manually', |
28 | }, | 28 | }, |
29 | }); | 29 | }); |
30 | 30 | ||
diff --git a/src/components/auth/Welcome.js b/src/components/auth/Welcome.js index 06b10ecfe..eb9fbb847 100644 --- a/src/components/auth/Welcome.js +++ b/src/components/auth/Welcome.js | |||
@@ -55,12 +55,16 @@ export default class Login extends Component { | |||
55 | </div> | 55 | </div> |
56 | <div className="welcome__featured-services"> | 56 | <div className="welcome__featured-services"> |
57 | {recipes.map(recipe => ( | 57 | {recipes.map(recipe => ( |
58 | <img | 58 | <div |
59 | key={recipe.id} | 59 | key={recipe.id} |
60 | src={recipe.icons.svg} | ||
61 | className="welcome__featured-service" | 60 | className="welcome__featured-service" |
62 | alt="" | 61 | > |
63 | /> | 62 | <img |
63 | key={recipe.id} | ||
64 | src={recipe.icons.svg} | ||
65 | alt="" | ||
66 | /> | ||
67 | </div> | ||
64 | ))} | 68 | ))} |
65 | </div> | 69 | </div> |
66 | </div> | 70 | </div> |
diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js index f60c170a8..20dc2f764 100644 --- a/src/components/layout/AppLayout.js +++ b/src/components/layout/AppLayout.js | |||
@@ -23,6 +23,10 @@ const messages = defineMessages({ | |||
23 | id: 'infobar.buttonReloadServices', | 23 | id: 'infobar.buttonReloadServices', |
24 | defaultMessage: '!!!Reload services', | 24 | defaultMessage: '!!!Reload services', |
25 | }, | 25 | }, |
26 | changelog: { | ||
27 | id: 'infobar.buttonChangelog', | ||
28 | defaultMessage: '!!!Changelog', | ||
29 | }, | ||
26 | buttonInstallUpdate: { | 30 | buttonInstallUpdate: { |
27 | id: 'infobar.buttonInstallUpdate', | 31 | id: 'infobar.buttonInstallUpdate', |
28 | defaultMessage: '!!!Restart & install update', | 32 | defaultMessage: '!!!Restart & install update', |
@@ -135,7 +139,9 @@ export default class AppLayout extends Component { | |||
135 | sticky | 139 | sticky |
136 | > | 140 | > |
137 | <span className="mdi mdi-information" /> | 141 | <span className="mdi mdi-information" /> |
138 | {intl.formatMessage(messages.updateAvailable)} | 142 | {intl.formatMessage(messages.updateAvailable)} <a href="https://meetfranz.com/changelog" target="_blank"> |
143 | <u>{intl.formatMessage(messages.changelog)}</u> | ||
144 | </a> | ||
139 | </InfoBar> | 145 | </InfoBar> |
140 | )} | 146 | )} |
141 | {services} | 147 | {services} |
diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js index ea34e8702..915ebeace 100644 --- a/src/components/layout/Sidebar.js +++ b/src/components/layout/Sidebar.js | |||
@@ -2,6 +2,7 @@ import React, { Component } from 'react'; | |||
2 | import PropTypes from 'prop-types'; | 2 | import PropTypes from 'prop-types'; |
3 | import ReactTooltip from 'react-tooltip'; | 3 | import ReactTooltip from 'react-tooltip'; |
4 | import { defineMessages, intlShape } from 'react-intl'; | 4 | import { defineMessages, intlShape } from 'react-intl'; |
5 | import { observer } from 'mobx-react'; | ||
5 | 6 | ||
6 | import Tabbar from '../services/tabs/Tabbar'; | 7 | import Tabbar from '../services/tabs/Tabbar'; |
7 | import { ctrlKey } from '../../environment'; | 8 | import { ctrlKey } from '../../environment'; |
@@ -16,15 +17,16 @@ const messages = defineMessages({ | |||
16 | defaultMessage: '!!!Add new service', | 17 | defaultMessage: '!!!Add new service', |
17 | }, | 18 | }, |
18 | mute: { | 19 | mute: { |
19 | id: 'sidebar.mute', | 20 | id: 'sidebar.muteApp', |
20 | defaultMessage: '!!!Disable audio', | 21 | defaultMessage: '!!!Disable notifications & audio', |
21 | }, | 22 | }, |
22 | unmute: { | 23 | unmute: { |
23 | id: 'sidebar.unmute', | 24 | id: 'sidebar.unmuteApp', |
24 | defaultMessage: '!!!Enable audio', | 25 | defaultMessage: '!!!Enable notifications & audio', |
25 | }, | 26 | }, |
26 | }); | 27 | }); |
27 | 28 | ||
29 | @observer | ||
28 | export default class Sidebar extends Component { | 30 | export default class Sidebar extends Component { |
29 | static propTypes = { | 31 | static propTypes = { |
30 | openSettings: PropTypes.func.isRequired, | 32 | openSettings: PropTypes.func.isRequired, |
diff --git a/src/components/services/content/ServiceDisabled.js b/src/components/services/content/ServiceDisabled.js index 732b6c003..b5af3743d 100644 --- a/src/components/services/content/ServiceDisabled.js +++ b/src/components/services/content/ServiceDisabled.js | |||
@@ -35,7 +35,7 @@ export default class ServiceDisabled extends Component { | |||
35 | const { intl } = this.context; | 35 | const { intl } = this.context; |
36 | 36 | ||
37 | return ( | 37 | return ( |
38 | <div className="services__crash-handler"> | 38 | <div className="services__info-layer"> |
39 | <h1>{intl.formatMessage(messages.headline, { name })}</h1> | 39 | <h1>{intl.formatMessage(messages.headline, { name })}</h1> |
40 | <Button | 40 | <Button |
41 | label={intl.formatMessage(messages.action, { name })} | 41 | label={intl.formatMessage(messages.action, { name })} |
diff --git a/src/components/services/content/ServiceWebview.js b/src/components/services/content/ServiceWebview.js index abbf21dee..c146abf4e 100644 --- a/src/components/services/content/ServiceWebview.js +++ b/src/components/services/content/ServiceWebview.js | |||
@@ -65,6 +65,7 @@ export default class ServiceWebview extends Component { | |||
65 | 65 | ||
66 | const webviewClasses = classnames({ | 66 | const webviewClasses = classnames({ |
67 | services__webview: true, | 67 | services__webview: true, |
68 | 'services__webview-wrapper': true, | ||
68 | 'is-active': service.isActive, | 69 | 'is-active': service.isActive, |
69 | 'services__webview--force-repaint': this.state.forceRepaint, | 70 | 'services__webview--force-repaint': this.state.forceRepaint, |
70 | }); | 71 | }); |
@@ -85,29 +86,29 @@ export default class ServiceWebview extends Component { | |||
85 | reload={reload} | 86 | reload={reload} |
86 | /> | 87 | /> |
87 | )} | 88 | )} |
88 | {!service.isEnabled && ( | 89 | {!service.isEnabled ? ( |
89 | <ServiceDisabled | 90 | <ServiceDisabled |
90 | name={service.recipe.name} | 91 | name={service.recipe.name} |
91 | webview={service.webview} | 92 | webview={service.webview} |
92 | enable={enable} | 93 | enable={enable} |
93 | /> | 94 | /> |
95 | ) : ( | ||
96 | <Webview | ||
97 | ref={(element) => { this.webview = element; }} | ||
98 | autosize | ||
99 | src={service.url} | ||
100 | preload="./webview/plugin.js" | ||
101 | partition={`persist:service-${service.id}`} | ||
102 | onDidAttach={() => setWebviewReference({ | ||
103 | serviceId: service.id, | ||
104 | webview: this.webview.view, | ||
105 | })} | ||
106 | onUpdateTargetUrl={this.updateTargetUrl} | ||
107 | useragent={service.userAgent} | ||
108 | muted={isAppMuted || service.isMuted} | ||
109 | allowpopups | ||
110 | /> | ||
94 | )} | 111 | )} |
95 | <Webview | ||
96 | ref={(element) => { this.webview = element; }} | ||
97 | autosize | ||
98 | src={service.url} | ||
99 | preload="./webview/plugin.js" | ||
100 | partition={`persist:service-${service.id}`} | ||
101 | onDidAttach={() => setWebviewReference({ | ||
102 | serviceId: service.id, | ||
103 | webview: this.webview.view, | ||
104 | })} | ||
105 | onUpdateTargetUrl={this.updateTargetUrl} | ||
106 | useragent={service.userAgent} | ||
107 | muted={isAppMuted || service.isMuted} | ||
108 | disablewebsecurity | ||
109 | allowpopups | ||
110 | /> | ||
111 | {statusBar} | 112 | {statusBar} |
112 | </div> | 113 | </div> |
113 | ); | 114 | ); |
diff --git a/src/components/services/content/WebviewCrashHandler.js b/src/components/services/content/WebviewCrashHandler.js index d48152c18..d3e6951f3 100644 --- a/src/components/services/content/WebviewCrashHandler.js +++ b/src/components/services/content/WebviewCrashHandler.js | |||
@@ -62,7 +62,7 @@ export default class WebviewCrashHandler extends Component { | |||
62 | const { intl } = this.context; | 62 | const { intl } = this.context; |
63 | 63 | ||
64 | return ( | 64 | return ( |
65 | <div className="services__crash-handler"> | 65 | <div className="services__info-layer"> |
66 | <h1>{intl.formatMessage(messages.headline)}</h1> | 66 | <h1>{intl.formatMessage(messages.headline)}</h1> |
67 | <p>{intl.formatMessage(messages.text, { name })}</p> | 67 | <p>{intl.formatMessage(messages.text, { name })}</p> |
68 | <Button | 68 | <Button |
diff --git a/src/components/services/tabs/TabBarSortableList.js b/src/components/services/tabs/TabBarSortableList.js index 2daf55676..489027d57 100644 --- a/src/components/services/tabs/TabBarSortableList.js +++ b/src/components/services/tabs/TabBarSortableList.js | |||
@@ -17,6 +17,8 @@ class TabBarSortableList extends Component { | |||
17 | deleteService: PropTypes.func.isRequired, | 17 | deleteService: PropTypes.func.isRequired, |
18 | disableService: PropTypes.func.isRequired, | 18 | disableService: PropTypes.func.isRequired, |
19 | enableService: PropTypes.func.isRequired, | 19 | enableService: PropTypes.func.isRequired, |
20 | showMessageBadgeWhenMutedSetting: PropTypes.bool.isRequired, | ||
21 | showMessageBadgesEvenWhenMuted: PropTypes.bool.isRequired, | ||
20 | } | 22 | } |
21 | 23 | ||
22 | render() { | 24 | render() { |
@@ -30,6 +32,8 @@ class TabBarSortableList extends Component { | |||
30 | disableService, | 32 | disableService, |
31 | enableService, | 33 | enableService, |
32 | openSettings, | 34 | openSettings, |
35 | showMessageBadgeWhenMutedSetting, | ||
36 | showMessageBadgesEvenWhenMuted, | ||
33 | } = this.props; | 37 | } = this.props; |
34 | 38 | ||
35 | return ( | 39 | return ( |
@@ -50,6 +54,8 @@ class TabBarSortableList extends Component { | |||
50 | disableService={() => disableService({ serviceId: service.id })} | 54 | disableService={() => disableService({ serviceId: service.id })} |
51 | enableService={() => enableService({ serviceId: service.id })} | 55 | enableService={() => enableService({ serviceId: service.id })} |
52 | openSettings={openSettings} | 56 | openSettings={openSettings} |
57 | showMessageBadgeWhenMutedSetting={showMessageBadgeWhenMutedSetting} | ||
58 | showMessageBadgesEvenWhenMuted={showMessageBadgesEvenWhenMuted} | ||
53 | /> | 59 | /> |
54 | ))} | 60 | ))} |
55 | {/* <li> | 61 | {/* <li> |
diff --git a/src/components/services/tabs/TabItem.js b/src/components/services/tabs/TabItem.js index a7136c43f..7aed8fda7 100644 --- a/src/components/services/tabs/TabItem.js +++ b/src/components/services/tabs/TabItem.js | |||
@@ -63,6 +63,8 @@ class TabItem extends Component { | |||
63 | deleteService: PropTypes.func.isRequired, | 63 | deleteService: PropTypes.func.isRequired, |
64 | disableService: PropTypes.func.isRequired, | 64 | disableService: PropTypes.func.isRequired, |
65 | enableService: PropTypes.func.isRequired, | 65 | enableService: PropTypes.func.isRequired, |
66 | showMessageBadgeWhenMutedSetting: PropTypes.bool.isRequired, | ||
67 | showMessageBadgesEvenWhenMuted: PropTypes.bool.isRequired, | ||
66 | }; | 68 | }; |
67 | 69 | ||
68 | static contextTypes = { | 70 | static contextTypes = { |
@@ -81,6 +83,8 @@ class TabItem extends Component { | |||
81 | disableService, | 83 | disableService, |
82 | enableService, | 84 | enableService, |
83 | openSettings, | 85 | openSettings, |
86 | showMessageBadgeWhenMutedSetting, | ||
87 | showMessageBadgesEvenWhenMuted, | ||
84 | } = this.props; | 88 | } = this.props; |
85 | const { intl } = this.context; | 89 | const { intl } = this.context; |
86 | 90 | ||
@@ -121,6 +125,26 @@ class TabItem extends Component { | |||
121 | }]; | 125 | }]; |
122 | const menu = Menu.buildFromTemplate(menuTemplate); | 126 | const menu = Menu.buildFromTemplate(menuTemplate); |
123 | 127 | ||
128 | let notificationBadge = null; | ||
129 | if ((showMessageBadgeWhenMutedSetting || service.isNotificationEnabled) && showMessageBadgesEvenWhenMuted && service.isBadgeEnabled) { | ||
130 | notificationBadge = ( | ||
131 | <span> | ||
132 | {service.unreadDirectMessageCount > 0 && ( | ||
133 | <span className="tab-item__message-count"> | ||
134 | {service.unreadDirectMessageCount} | ||
135 | </span> | ||
136 | )} | ||
137 | {service.unreadIndirectMessageCount > 0 | ||
138 | && service.unreadDirectMessageCount === 0 | ||
139 | && service.isIndirectMessageBadgeEnabled && ( | ||
140 | <span className="tab-item__message-count is-indirect"> | ||
141 | • | ||
142 | </span> | ||
143 | )} | ||
144 | </span> | ||
145 | ); | ||
146 | } | ||
147 | |||
124 | return ( | 148 | return ( |
125 | <li | 149 | <li |
126 | className={classnames({ | 150 | className={classnames({ |
@@ -138,18 +162,7 @@ class TabItem extends Component { | |||
138 | className="tab-item__icon" | 162 | className="tab-item__icon" |
139 | alt="" | 163 | alt="" |
140 | /> | 164 | /> |
141 | {service.unreadDirectMessageCount > 0 && ( | 165 | {notificationBadge} |
142 | <span className="tab-item__message-count"> | ||
143 | {service.unreadDirectMessageCount} | ||
144 | </span> | ||
145 | )} | ||
146 | {service.unreadIndirectMessageCount > 0 | ||
147 | && service.unreadDirectMessageCount === 0 | ||
148 | && service.isIndirectMessageBadgeEnabled && ( | ||
149 | <span className="tab-item__message-count is-indirect"> | ||
150 | • | ||
151 | </span> | ||
152 | )} | ||
153 | </li> | 166 | </li> |
154 | ); | 167 | ); |
155 | } | 168 | } |
diff --git a/src/components/services/tabs/Tabbar.js b/src/components/services/tabs/Tabbar.js index fd4325107..ceb88c51c 100644 --- a/src/components/services/tabs/Tabbar.js +++ b/src/components/services/tabs/Tabbar.js | |||
@@ -18,6 +18,8 @@ export default class TabBar extends Component { | |||
18 | toggleAudio: PropTypes.func.isRequired, | 18 | toggleAudio: PropTypes.func.isRequired, |
19 | deleteService: PropTypes.func.isRequired, | 19 | deleteService: PropTypes.func.isRequired, |
20 | updateService: PropTypes.func.isRequired, | 20 | updateService: PropTypes.func.isRequired, |
21 | showMessageBadgeWhenMutedSetting: PropTypes.bool.isRequired, | ||
22 | showMessageBadgesEvenWhenMuted: PropTypes.bool.isRequired, | ||
21 | } | 23 | } |
22 | 24 | ||
23 | onSortEnd = ({ oldIndex, newIndex }) => { | 25 | onSortEnd = ({ oldIndex, newIndex }) => { |
@@ -30,6 +32,8 @@ export default class TabBar extends Component { | |||
30 | reorder({ oldIndex, newIndex }); | 32 | reorder({ oldIndex, newIndex }); |
31 | }; | 33 | }; |
32 | 34 | ||
35 | shouldPreventSorting = event => event.target.tagName !== 'LI'; | ||
36 | |||
33 | toggleService = ({ serviceId, isEnabled }) => { | 37 | toggleService = ({ serviceId, isEnabled }) => { |
34 | const { updateService } = this.props; | 38 | const { updateService } = this.props; |
35 | 39 | ||
@@ -62,6 +66,8 @@ export default class TabBar extends Component { | |||
62 | toggleNotifications, | 66 | toggleNotifications, |
63 | toggleAudio, | 67 | toggleAudio, |
64 | deleteService, | 68 | deleteService, |
69 | showMessageBadgeWhenMutedSetting, | ||
70 | showMessageBadgesEvenWhenMuted, | ||
65 | } = this.props; | 71 | } = this.props; |
66 | 72 | ||
67 | return ( | 73 | return ( |
@@ -71,6 +77,7 @@ export default class TabBar extends Component { | |||
71 | setActive={setActive} | 77 | setActive={setActive} |
72 | onSortEnd={this.onSortEnd} | 78 | onSortEnd={this.onSortEnd} |
73 | onSortStart={disableToolTip} | 79 | onSortStart={disableToolTip} |
80 | shouldCancelStart={this.shouldPreventSorting} | ||
74 | reload={reload} | 81 | reload={reload} |
75 | toggleNotifications={toggleNotifications} | 82 | toggleNotifications={toggleNotifications} |
76 | toggleAudio={toggleAudio} | 83 | toggleAudio={toggleAudio} |
@@ -82,6 +89,8 @@ export default class TabBar extends Component { | |||
82 | axis="y" | 89 | axis="y" |
83 | lockAxis="y" | 90 | lockAxis="y" |
84 | helperClass="is-reordering" | 91 | helperClass="is-reordering" |
92 | showMessageBadgeWhenMutedSetting={showMessageBadgeWhenMutedSetting} | ||
93 | showMessageBadgesEvenWhenMuted={showMessageBadgesEvenWhenMuted} | ||
85 | /> | 94 | /> |
86 | </div> | 95 | </div> |
87 | ); | 96 | ); |
diff --git a/src/components/settings/account/AccountDashboard.js b/src/components/settings/account/AccountDashboard.js index 75dbdef49..89fa07800 100644 --- a/src/components/settings/account/AccountDashboard.js +++ b/src/components/settings/account/AccountDashboard.js | |||
@@ -28,6 +28,10 @@ const messages = defineMessages({ | |||
28 | id: 'settings.account.headlineInvoices', | 28 | id: 'settings.account.headlineInvoices', |
29 | defaultMessage: '!!Invoices', | 29 | defaultMessage: '!!Invoices', |
30 | }, | 30 | }, |
31 | headlineDangerZone: { | ||
32 | id: 'settings.account.headlineDangerZone', | ||
33 | defaultMessage: '!!Danger Zone', | ||
34 | }, | ||
31 | manageSubscriptionButtonLabel: { | 35 | manageSubscriptionButtonLabel: { |
32 | id: 'settings.account.manageSubscription.label', | 36 | id: 'settings.account.manageSubscription.label', |
33 | defaultMessage: '!!!Manage your subscription', | 37 | defaultMessage: '!!!Manage your subscription', |
@@ -72,6 +76,18 @@ const messages = defineMessages({ | |||
72 | id: 'settings.account.mining.cancel', | 76 | id: 'settings.account.mining.cancel', |
73 | defaultMessage: '!!!Cancel mining', | 77 | defaultMessage: '!!!Cancel mining', |
74 | }, | 78 | }, |
79 | deleteAccount: { | ||
80 | id: 'settings.account.deleteAccount', | ||
81 | defaultMessage: '!!!Delete account', | ||
82 | }, | ||
83 | deleteInfo: { | ||
84 | id: 'settings.account.deleteInfo', | ||
85 | defaultMessage: '!!!If you don\'t need your Franz account any longer, you can delete your account and all related data here.', | ||
86 | }, | ||
87 | deleteEmailSent: { | ||
88 | id: 'settings.account.deleteEmailSent', | ||
89 | defaultMessage: '!!!You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!', | ||
90 | }, | ||
75 | }); | 91 | }); |
76 | 92 | ||
77 | @observer | 93 | @observer |
@@ -90,6 +106,9 @@ export default class AccountDashboard extends Component { | |||
90 | openExternalUrl: PropTypes.func.isRequired, | 106 | openExternalUrl: PropTypes.func.isRequired, |
91 | onCloseSubscriptionWindow: PropTypes.func.isRequired, | 107 | onCloseSubscriptionWindow: PropTypes.func.isRequired, |
92 | stopMiner: PropTypes.func.isRequired, | 108 | stopMiner: PropTypes.func.isRequired, |
109 | deleteAccount: PropTypes.func.isRequired, | ||
110 | isLoadingDeleteAccount: PropTypes.bool.isRequired, | ||
111 | isDeleteAccountSuccessful: PropTypes.bool.isRequired, | ||
93 | }; | 112 | }; |
94 | 113 | ||
95 | static contextTypes = { | 114 | static contextTypes = { |
@@ -111,6 +130,9 @@ export default class AccountDashboard extends Component { | |||
111 | retryUserInfoRequest, | 130 | retryUserInfoRequest, |
112 | onCloseSubscriptionWindow, | 131 | onCloseSubscriptionWindow, |
113 | stopMiner, | 132 | stopMiner, |
133 | deleteAccount, | ||
134 | isLoadingDeleteAccount, | ||
135 | isDeleteAccountSuccessful, | ||
114 | } = this.props; | 136 | } = this.props; |
115 | const { intl } = this.context; | 137 | const { intl } = this.context; |
116 | 138 | ||
@@ -201,7 +223,7 @@ export default class AccountDashboard extends Component { | |||
201 | /> | 223 | /> |
202 | </div> | 224 | </div> |
203 | </div> | 225 | </div> |
204 | <div className="account__box account__box--last"> | 226 | <div className="account__box"> |
205 | <h2>{intl.formatMessage(messages.headlineInvoices)}</h2> | 227 | <h2>{intl.formatMessage(messages.headlineInvoices)}</h2> |
206 | <table className="invoices"> | 228 | <table className="invoices"> |
207 | <tbody> | 229 | <tbody> |
@@ -230,7 +252,7 @@ export default class AccountDashboard extends Component { | |||
230 | 252 | ||
231 | {user.isMiner && ( | 253 | {user.isMiner && ( |
232 | <div className="account franz-form"> | 254 | <div className="account franz-form"> |
233 | <div className="account__box"> | 255 | <div className="account__box account__box--last"> |
234 | <h2>{intl.formatMessage(messages.headlineSubscription)}</h2> | 256 | <h2>{intl.formatMessage(messages.headlineSubscription)}</h2> |
235 | <div className="account__subscription"> | 257 | <div className="account__subscription"> |
236 | <div> | 258 | <div> |
@@ -267,7 +289,7 @@ export default class AccountDashboard extends Component { | |||
267 | <Loader /> | 289 | <Loader /> |
268 | ) : ( | 290 | ) : ( |
269 | <div className="account franz-form"> | 291 | <div className="account franz-form"> |
270 | <div className="account__box account__box--last"> | 292 | <div className="account__box"> |
271 | <h2>{intl.formatMessage(messages.headlineUpgrade)}</h2> | 293 | <h2>{intl.formatMessage(messages.headlineUpgrade)}</h2> |
272 | <SubscriptionForm | 294 | <SubscriptionForm |
273 | onCloseWindow={onCloseSubscriptionWindow} | 295 | onCloseWindow={onCloseSubscriptionWindow} |
@@ -276,8 +298,29 @@ export default class AccountDashboard extends Component { | |||
276 | </div> | 298 | </div> |
277 | ) | 299 | ) |
278 | )} | 300 | )} |
301 | |||
302 | <div className="account franz-form"> | ||
303 | <div className="account__box"> | ||
304 | <h2>{intl.formatMessage(messages.headlineDangerZone)}</h2> | ||
305 | {!isDeleteAccountSuccessful && ( | ||
306 | <div className="account__subscription"> | ||
307 | <p>{intl.formatMessage(messages.deleteInfo)}</p> | ||
308 | <Button | ||
309 | label={intl.formatMessage(messages.deleteAccount)} | ||
310 | buttonType="danger" | ||
311 | onClick={() => deleteAccount()} | ||
312 | loaded={!isLoadingDeleteAccount} | ||
313 | /> | ||
314 | </div> | ||
315 | )} | ||
316 | {isDeleteAccountSuccessful && ( | ||
317 | <p>{intl.formatMessage(messages.deleteEmailSent)}</p> | ||
318 | )} | ||
319 | </div> | ||
320 | </div> | ||
279 | </div> | 321 | </div> |
280 | )} | 322 | )} |
323 | |||
281 | </div> | 324 | </div> |
282 | <ReactTooltip place="right" type="dark" effect="solid" /> | 325 | <ReactTooltip place="right" type="dark" effect="solid" /> |
283 | </div> | 326 | </div> |
diff --git a/src/components/settings/navigation/SettingsNavigation.js b/src/components/settings/navigation/SettingsNavigation.js index 3b21a7765..fea8d682d 100644 --- a/src/components/settings/navigation/SettingsNavigation.js +++ b/src/components/settings/navigation/SettingsNavigation.js | |||
@@ -74,7 +74,6 @@ export default class SettingsNavigation extends Component { | |||
74 | <Link | 74 | <Link |
75 | to="/auth/logout" | 75 | to="/auth/logout" |
76 | className="settings-navigation__link" | 76 | className="settings-navigation__link" |
77 | activeClassName="is-active" | ||
78 | > | 77 | > |
79 | {intl.formatMessage(messages.logout)} | 78 | {intl.formatMessage(messages.logout)} |
80 | </Link> | 79 | </Link> |
diff --git a/src/components/settings/recipes/RecipesDashboard.js b/src/components/settings/recipes/RecipesDashboard.js index 02ea04e35..b6ade5da4 100644 --- a/src/components/settings/recipes/RecipesDashboard.js +++ b/src/components/settings/recipes/RecipesDashboard.js | |||
@@ -9,6 +9,7 @@ import Infobox from '../../ui/Infobox'; | |||
9 | import RecipeItem from './RecipeItem'; | 9 | import RecipeItem from './RecipeItem'; |
10 | import Loader from '../../ui/Loader'; | 10 | import Loader from '../../ui/Loader'; |
11 | import Appear from '../../ui/effects/Appear'; | 11 | import Appear from '../../ui/effects/Appear'; |
12 | import { FRANZ_SERVICE_REQUEST } from '../../../config'; | ||
12 | 13 | ||
13 | const messages = defineMessages({ | 14 | const messages = defineMessages({ |
14 | headline: { | 15 | headline: { |
@@ -35,6 +36,10 @@ const messages = defineMessages({ | |||
35 | id: 'settings.recipes.servicesSuccessfulAddedInfo', | 36 | id: 'settings.recipes.servicesSuccessfulAddedInfo', |
36 | defaultMessage: '!!!Service successfully added', | 37 | defaultMessage: '!!!Service successfully added', |
37 | }, | 38 | }, |
39 | missingService: { | ||
40 | id: 'settings.recipes.missingService', | ||
41 | defaultMessage: '!!!Missing a service?', | ||
42 | }, | ||
38 | }); | 43 | }); |
39 | 44 | ||
40 | @observer | 45 | @observer |
@@ -96,33 +101,39 @@ export default class RecipesDashboard extends Component { | |||
96 | </Infobox> | 101 | </Infobox> |
97 | </Appear> | 102 | </Appear> |
98 | )} | 103 | )} |
99 | {!searchNeedle && ( | 104 | {/* {!searchNeedle && ( */} |
100 | <div className="recipes__navigation"> | 105 | <div className="recipes__navigation"> |
101 | <Link | 106 | <Link |
102 | to="/settings/recipes" | 107 | to="/settings/recipes" |
103 | className="badge" | 108 | className="badge" |
104 | activeClassName="badge--primary" | 109 | activeClassName={`${!searchNeedle ? 'badge--primary' : ''}`} |
105 | > | 110 | onClick={() => resetSearch()} |
106 | {intl.formatMessage(messages.mostPopularRecipes)} | 111 | > |
107 | </Link> | 112 | {intl.formatMessage(messages.mostPopularRecipes)} |
113 | </Link> | ||
114 | <Link | ||
115 | to="/settings/recipes/all" | ||
116 | className="badge" | ||
117 | activeClassName={`${!searchNeedle ? 'badge--primary' : ''}`} | ||
118 | onClick={() => resetSearch()} | ||
119 | > | ||
120 | {intl.formatMessage(messages.allRecipes)} | ||
121 | </Link> | ||
122 | {devRecipesCount > 0 && ( | ||
108 | <Link | 123 | <Link |
109 | to="/settings/recipes/all" | 124 | to="/settings/recipes/dev" |
110 | className="badge" | 125 | className="badge" |
111 | activeClassName="badge--primary" | 126 | activeClassName={`${!searchNeedle ? 'badge--primary' : ''}`} |
127 | onClick={() => resetSearch()} | ||
112 | > | 128 | > |
113 | {intl.formatMessage(messages.allRecipes)} | 129 | {intl.formatMessage(messages.devRecipes)} ({devRecipesCount}) |
114 | </Link> | 130 | </Link> |
115 | {devRecipesCount > 0 && ( | 131 | )} |
116 | <Link | 132 | <a href={FRANZ_SERVICE_REQUEST} target="_blank" className="link recipes__service-request"> |
117 | to="/settings/recipes/dev" | 133 | {intl.formatMessage(messages.missingService)} <i className="mdi mdi-open-in-new" /> |
118 | className="badge" | 134 | </a> |
119 | activeClassName="badge--primary" | 135 | </div> |
120 | > | 136 | {/* )} */} |
121 | {intl.formatMessage(messages.devRecipes)} ({devRecipesCount}) | ||
122 | </Link> | ||
123 | )} | ||
124 | </div> | ||
125 | )} | ||
126 | {isLoading ? ( | 137 | {isLoading ? ( |
127 | <Loader /> | 138 | <Loader /> |
128 | ) : ( | 139 | ) : ( |
diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js index bcbda7773..ee69d53aa 100644 --- a/src/components/settings/services/EditServiceForm.js +++ b/src/components/settings/services/EditServiceForm.js | |||
@@ -48,6 +48,10 @@ const messages = defineMessages({ | |||
48 | id: 'settings.service.form.tabOnPremise', | 48 | id: 'settings.service.form.tabOnPremise', |
49 | defaultMessage: '!!!Self hosted ⭐️', | 49 | defaultMessage: '!!!Self hosted ⭐️', |
50 | }, | 50 | }, |
51 | useHostedService: { | ||
52 | id: 'settings.service.form.useHostedService', | ||
53 | defaultMessage: '!!!Use the hosted {name} service.', | ||
54 | }, | ||
51 | customUrlValidationError: { | 55 | customUrlValidationError: { |
52 | id: 'settings.service.form.customUrlValidationError', | 56 | id: 'settings.service.form.customUrlValidationError', |
53 | defaultMessage: '!!!Could not validate custom {name} server.', | 57 | defaultMessage: '!!!Could not validate custom {name} server.', |
@@ -68,6 +72,18 @@ const messages = defineMessages({ | |||
68 | id: 'settings.service.form.isMutedInfo', | 72 | id: 'settings.service.form.isMutedInfo', |
69 | defaultMessage: '!!!When disabled, all notification sounds and audio playback are muted', | 73 | defaultMessage: '!!!When disabled, all notification sounds and audio playback are muted', |
70 | }, | 74 | }, |
75 | headlineNotifications: { | ||
76 | id: 'settings.service.form.headlineNotifications', | ||
77 | defaultMessage: '!!!Notifications', | ||
78 | }, | ||
79 | headlineBadges: { | ||
80 | id: 'settings.service.form.headlineBadges', | ||
81 | defaultMessage: '!!!Unread message dadges', | ||
82 | }, | ||
83 | headlineGeneral: { | ||
84 | id: 'settings.service.form.headlineGeneral', | ||
85 | defaultMessage: '!!!General', | ||
86 | }, | ||
71 | }); | 87 | }); |
72 | 88 | ||
73 | @observer | 89 | @observer |
@@ -109,13 +125,12 @@ export default class EditServiceForm extends Component { | |||
109 | this.props.form.submit({ | 125 | this.props.form.submit({ |
110 | onSuccess: async (form) => { | 126 | onSuccess: async (form) => { |
111 | const values = form.values(); | 127 | const values = form.values(); |
112 | |||
113 | let isValid = true; | 128 | let isValid = true; |
114 | 129 | ||
115 | if (recipe.validateUrl && values.customUrl) { | 130 | if (recipe.validateUrl && values.customUrl) { |
116 | this.setState({ isValidatingCustomUrl: true }); | 131 | this.setState({ isValidatingCustomUrl: true }); |
117 | try { | 132 | try { |
118 | values.customUrl = normalizeUrl(values.customUrl); | 133 | values.customUrl = normalizeUrl(values.customUrl, { stripWWW: false }); |
119 | isValid = await recipe.validateUrl(values.customUrl); | 134 | isValid = await recipe.validateUrl(values.customUrl); |
120 | } catch (err) { | 135 | } catch (err) { |
121 | console.warn('ValidateURL', err); | 136 | console.warn('ValidateURL', err); |
@@ -167,6 +182,13 @@ export default class EditServiceForm extends Component { | |||
167 | /> | 182 | /> |
168 | ); | 183 | ); |
169 | 184 | ||
185 | let activeTabIndex = 0; | ||
186 | if (recipe.hasHostedOption && service.team) { | ||
187 | activeTabIndex = 1; | ||
188 | } else if (recipe.hasHostedOption && service.customUrl) { | ||
189 | activeTabIndex = 2; | ||
190 | } | ||
191 | |||
170 | return ( | 192 | return ( |
171 | <div className="settings__main"> | 193 | <div className="settings__main"> |
172 | <div className="settings__header"> | 194 | <div className="settings__header"> |
@@ -207,11 +229,20 @@ export default class EditServiceForm extends Component { | |||
207 | </div> | 229 | </div> |
208 | {(recipe.hasTeamId || recipe.hasCustomUrl) && ( | 230 | {(recipe.hasTeamId || recipe.hasCustomUrl) && ( |
209 | <Tabs | 231 | <Tabs |
210 | active={service.customUrl ? 1 : 0} | 232 | active={activeTabIndex} |
211 | > | 233 | > |
234 | {recipe.hasHostedOption && ( | ||
235 | <TabItem title={recipe.name}> | ||
236 | {intl.formatMessage(messages.useHostedService, { name: recipe.name })} | ||
237 | </TabItem> | ||
238 | )} | ||
212 | {recipe.hasTeamId && ( | 239 | {recipe.hasTeamId && ( |
213 | <TabItem title={intl.formatMessage(messages.tabHosted)}> | 240 | <TabItem title={intl.formatMessage(messages.tabHosted)}> |
214 | <Input field={form.$('team')} suffix={recipe.urlInputSuffix} /> | 241 | <Input |
242 | field={form.$('team')} | ||
243 | prefix={recipe.urlInputPrefix} | ||
244 | suffix={recipe.urlInputSuffix} | ||
245 | /> | ||
215 | </TabItem> | 246 | </TabItem> |
216 | )} | 247 | )} |
217 | {recipe.hasCustomUrl && ( | 248 | {recipe.hasCustomUrl && ( |
@@ -240,20 +271,32 @@ export default class EditServiceForm extends Component { | |||
240 | </Tabs> | 271 | </Tabs> |
241 | )} | 272 | )} |
242 | <div className="settings__options"> | 273 | <div className="settings__options"> |
243 | <Toggle field={form.$('isNotificationEnabled')} /> | 274 | <div className="settings__settings-group"> |
244 | {recipe.hasIndirectMessages && ( | 275 | <h3>{intl.formatMessage(messages.headlineNotifications)}</h3> |
245 | <div> | 276 | <Toggle field={form.$('isNotificationEnabled')} /> |
246 | <Toggle field={form.$('isIndirectMessageBadgeEnabled')} /> | 277 | <Toggle field={form.$('isMuted')} /> |
247 | <p className="settings__help"> | 278 | <p className="settings__help"> |
248 | {intl.formatMessage(messages.indirectMessageInfo)} | 279 | {intl.formatMessage(messages.isMutedInfo)} |
249 | </p> | 280 | </p> |
250 | </div> | 281 | </div> |
251 | )} | 282 | |
252 | <Toggle field={form.$('isMuted')} /> | 283 | <div className="settings__settings-group"> |
253 | <p className="settings__help"> | 284 | <h3>{intl.formatMessage(messages.headlineBadges)}</h3> |
254 | {intl.formatMessage(messages.isMutedInfo)} | 285 | <Toggle field={form.$('isBadgeEnabled')} /> |
255 | </p> | 286 | {recipe.hasIndirectMessages && form.$('isBadgeEnabled').value && ( |
256 | <Toggle field={form.$('isEnabled')} /> | 287 | <div> |
288 | <Toggle field={form.$('isIndirectMessageBadgeEnabled')} /> | ||
289 | <p className="settings__help"> | ||
290 | {intl.formatMessage(messages.indirectMessageInfo)} | ||
291 | </p> | ||
292 | </div> | ||
293 | )} | ||
294 | </div> | ||
295 | |||
296 | <div className="settings__settings-group"> | ||
297 | <h3>{intl.formatMessage(messages.headlineGeneral)}</h3> | ||
298 | <Toggle field={form.$('isEnabled')} /> | ||
299 | </div> | ||
257 | </div> | 300 | </div> |
258 | {recipe.message && ( | 301 | {recipe.message && ( |
259 | <p className="settings__message"> | 302 | <p className="settings__message"> |
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index ba07b1a5b..ff398aa33 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js | |||
@@ -9,6 +9,8 @@ import Button from '../../ui/Button'; | |||
9 | import Toggle from '../../ui/Toggle'; | 9 | import Toggle from '../../ui/Toggle'; |
10 | import Select from '../../ui/Select'; | 10 | import Select from '../../ui/Select'; |
11 | 11 | ||
12 | import { FRANZ_TRANSLATION } from '../../../config'; | ||
13 | |||
12 | const messages = defineMessages({ | 14 | const messages = defineMessages({ |
13 | headline: { | 15 | headline: { |
14 | id: 'settings.app.headline', | 16 | id: 'settings.app.headline', |
@@ -30,6 +32,14 @@ const messages = defineMessages({ | |||
30 | id: 'settings.app.headlineAppearance', | 32 | id: 'settings.app.headlineAppearance', |
31 | defaultMessage: '!!!Appearance', | 33 | defaultMessage: '!!!Appearance', |
32 | }, | 34 | }, |
35 | headlineAdvanced: { | ||
36 | id: 'settings.app.headlineAdvanced', | ||
37 | defaultMessage: '!!!Advanced', | ||
38 | }, | ||
39 | translationHelp: { | ||
40 | id: 'settings.app.translationHelp', | ||
41 | defaultMessage: '!!!Help us to translate Franz into your language.', | ||
42 | }, | ||
33 | buttonSearchForUpdate: { | 43 | buttonSearchForUpdate: { |
34 | id: 'settings.app.buttonSearchForUpdate', | 44 | id: 'settings.app.buttonSearchForUpdate', |
35 | defaultMessage: '!!!Check for updates', | 45 | defaultMessage: '!!!Check for updates', |
@@ -116,18 +126,38 @@ export default class EditSettingsForm extends Component { | |||
116 | onChange={e => this.submit(e)} | 126 | onChange={e => this.submit(e)} |
117 | id="form" | 127 | id="form" |
118 | > | 128 | > |
119 | <h2>{intl.formatMessage(messages.headlineGeneral)}</h2> | 129 | {/* General */} |
130 | <h2 id="general">{intl.formatMessage(messages.headlineGeneral)}</h2> | ||
120 | <Toggle field={form.$('autoLaunchOnStart')} /> | 131 | <Toggle field={form.$('autoLaunchOnStart')} /> |
121 | <Toggle field={form.$('runInBackground')} /> | 132 | <Toggle field={form.$('runInBackground')} /> |
122 | <Toggle field={form.$('enableSystemTray')} /> | 133 | <Toggle field={form.$('enableSystemTray')} /> |
123 | {process.platform === 'win32' && ( | 134 | {process.platform === 'win32' && ( |
124 | <Toggle field={form.$('minimizeToSystemTray')} /> | 135 | <Toggle field={form.$('minimizeToSystemTray')} /> |
125 | )} | 136 | )} |
126 | <h2>{intl.formatMessage(messages.headlineAppearance)}</h2> | 137 | |
138 | {/* Appearance */} | ||
139 | <h2 id="apperance">{intl.formatMessage(messages.headlineAppearance)}</h2> | ||
127 | <Toggle field={form.$('showDisabledServices')} /> | 140 | <Toggle field={form.$('showDisabledServices')} /> |
128 | <h2>{intl.formatMessage(messages.headlineLanguage)}</h2> | 141 | <Toggle field={form.$('showMessageBadgeWhenMuted')} /> |
142 | |||
143 | {/* Language */} | ||
144 | <h2 id="language">{intl.formatMessage(messages.headlineLanguage)}</h2> | ||
129 | <Select field={form.$('locale')} showLabel={false} /> | 145 | <Select field={form.$('locale')} showLabel={false} /> |
130 | <h2>{intl.formatMessage(messages.headlineUpdates)}</h2> | 146 | <a |
147 | href={FRANZ_TRANSLATION} | ||
148 | target="_blank" | ||
149 | className="link" | ||
150 | > | ||
151 | {intl.formatMessage(messages.translationHelp)} <i className="mdi mdi-open-in-new" /> | ||
152 | </a> | ||
153 | |||
154 | {/* Advanced */} | ||
155 | <h2 id="advanced">{intl.formatMessage(messages.headlineAdvanced)}</h2> | ||
156 | <Toggle field={form.$('enableSpellchecking')} /> | ||
157 | {/* <Select field={form.$('spellcheckingLanguage')} /> */} | ||
158 | |||
159 | {/* Updates */} | ||
160 | <h2 id="updates">{intl.formatMessage(messages.headlineUpdates)}</h2> | ||
131 | {updateIsReadyToInstall ? ( | 161 | {updateIsReadyToInstall ? ( |
132 | <Button | 162 | <Button |
133 | label={intl.formatMessage(messages.buttonInstallUpdate)} | 163 | label={intl.formatMessage(messages.buttonInstallUpdate)} |
diff --git a/src/components/ui/AppLoader.js b/src/components/ui/AppLoader.js index 64a212969..ac3cdcb05 100644 --- a/src/components/ui/AppLoader.js +++ b/src/components/ui/AppLoader.js | |||
@@ -8,7 +8,7 @@ export default function () { | |||
8 | <div className="app-loader"> | 8 | <div className="app-loader"> |
9 | <Appear> | 9 | <Appear> |
10 | <h1 className="app-loader__title">Franz</h1> | 10 | <h1 className="app-loader__title">Franz</h1> |
11 | <Loader /> | 11 | <Loader color="#FFF" /> |
12 | </Appear> | 12 | </Appear> |
13 | </div> | 13 | </div> |
14 | ); | 14 | ); |
diff --git a/src/components/ui/Button.js b/src/components/ui/Button.js index 07e94192f..554206cb7 100644 --- a/src/components/ui/Button.js +++ b/src/components/ui/Button.js | |||
@@ -68,7 +68,7 @@ export default class Button extends Component { | |||
68 | loaded={loaded} | 68 | loaded={loaded} |
69 | lines={10} | 69 | lines={10} |
70 | scale={0.4} | 70 | scale={0.4} |
71 | color={buttonType === '' ? '#FFF' : '#373a3c'} | 71 | color={buttonType !== 'secondary' ? '#FFF' : '#373a3c'} |
72 | component="span" | 72 | component="span" |
73 | /> | 73 | /> |
74 | {label} | 74 | {label} |
diff --git a/src/components/ui/InfoBar.js b/src/components/ui/InfoBar.js index aea2bd888..84a5f1446 100644 --- a/src/components/ui/InfoBar.js +++ b/src/components/ui/InfoBar.js | |||
@@ -61,10 +61,13 @@ export default class InfoBar extends Component { | |||
61 | [`${className}`]: true, | 61 | [`${className}`]: true, |
62 | })} | 62 | })} |
63 | > | 63 | > |
64 | <div onClick={onClick} className="info-bar__content"> | 64 | <div className="info-bar__content"> |
65 | {children} | 65 | {children} |
66 | {ctaLabel && ( | 66 | {ctaLabel && ( |
67 | <button className="info-bar__cta"> | 67 | <button |
68 | className="info-bar__cta" | ||
69 | onClick={onClick} | ||
70 | > | ||
68 | <Loader | 71 | <Loader |
69 | loaded={!ctaLoading} | 72 | loaded={!ctaLoading} |
70 | lines={10} | 73 | lines={10} |
diff --git a/src/components/ui/Loader.js b/src/components/ui/Loader.js index e4fbd96a2..f73296bb6 100644 --- a/src/components/ui/Loader.js +++ b/src/components/ui/Loader.js | |||
@@ -9,12 +9,14 @@ export default class LoaderComponent extends Component { | |||
9 | children: oneOrManyChildElements, | 9 | children: oneOrManyChildElements, |
10 | loaded: PropTypes.bool, | 10 | loaded: PropTypes.bool, |
11 | className: PropTypes.string, | 11 | className: PropTypes.string, |
12 | color: PropTypes.string, | ||
12 | }; | 13 | }; |
13 | 14 | ||
14 | static defaultProps = { | 15 | static defaultProps = { |
15 | children: null, | 16 | children: null, |
16 | loaded: false, | 17 | loaded: false, |
17 | className: '', | 18 | className: '', |
19 | color: '#373a3c', | ||
18 | }; | 20 | }; |
19 | 21 | ||
20 | render() { | 22 | render() { |
@@ -22,6 +24,7 @@ export default class LoaderComponent extends Component { | |||
22 | children, | 24 | children, |
23 | loaded, | 25 | loaded, |
24 | className, | 26 | className, |
27 | color, | ||
25 | } = this.props; | 28 | } = this.props; |
26 | 29 | ||
27 | return ( | 30 | return ( |
@@ -30,7 +33,7 @@ export default class LoaderComponent extends Component { | |||
30 | // lines={10} | 33 | // lines={10} |
31 | width={4} | 34 | width={4} |
32 | scale={0.6} | 35 | scale={0.6} |
33 | color="#373a3c" | 36 | color={color} |
34 | component="span" | 37 | component="span" |
35 | className={className} | 38 | className={className} |
36 | > | 39 | > |
diff --git a/src/components/ui/Subscription.js b/src/components/ui/Subscription.js index fe0925a26..8bff72095 100644 --- a/src/components/ui/Subscription.js +++ b/src/components/ui/Subscription.js | |||
@@ -93,6 +93,10 @@ const messages = defineMessages({ | |||
93 | id: 'subscription.mining.moreInformation', | 93 | id: 'subscription.mining.moreInformation', |
94 | defaultMessage: '!!!Get more information about this plan', | 94 | defaultMessage: '!!!Get more information about this plan', |
95 | }, | 95 | }, |
96 | euTaxInfo: { | ||
97 | id: 'subscription.euTaxInfo', | ||
98 | defaultMessage: '!!!EU residents: local sales tax may apply', | ||
99 | }, | ||
96 | }); | 100 | }); |
97 | 101 | ||
98 | @observer | 102 | @observer |
@@ -144,14 +148,18 @@ export default class SubscriptionForm extends Component { | |||
144 | label: `€ ${Object.hasOwnProperty.call(this.props.plan, 'year') | 148 | label: `€ ${Object.hasOwnProperty.call(this.props.plan, 'year') |
145 | ? `${this.props.plan.year.price} / ${intl.formatMessage(messages.typeYearly)}` | 149 | ? `${this.props.plan.year.price} / ${intl.formatMessage(messages.typeYearly)}` |
146 | : 'yearly'}`, | 150 | : 'yearly'}`, |
147 | }, { | ||
148 | value: 'mining', | ||
149 | label: intl.formatMessage(messages.typeMining), | ||
150 | }], | 151 | }], |
151 | }, | 152 | }, |
152 | }, | 153 | }, |
153 | }; | 154 | }; |
154 | 155 | ||
156 | if (this.props.plan.miner) { | ||
157 | form.fields.paymentTier.options.push({ | ||
158 | value: 'mining', | ||
159 | label: intl.formatMessage(messages.typeMining), | ||
160 | }); | ||
161 | } | ||
162 | |||
155 | if (this.props.showSkipOption) { | 163 | if (this.props.showSkipOption) { |
156 | form.fields.paymentTier.options.unshift({ | 164 | form.fields.paymentTier.options.unshift({ |
157 | value: 'skip', | 165 | value: 'skip', |
@@ -259,6 +267,11 @@ export default class SubscriptionForm extends Component { | |||
259 | onClick={() => handlePayment(this.form.$('paymentTier').value)} | 267 | onClick={() => handlePayment(this.form.$('paymentTier').value)} |
260 | /> | 268 | /> |
261 | )} | 269 | )} |
270 | {this.form.$('paymentTier').value !== 'skip' && this.form.$('paymentTier').value !== 'mining' && ( | ||
271 | <p className="legal"> | ||
272 | {intl.formatMessage(messages.euTaxInfo)} | ||
273 | </p> | ||
274 | )} | ||
262 | </Loader> | 275 | </Loader> |
263 | ); | 276 | ); |
264 | } | 277 | } |
diff --git a/src/components/ui/SubscriptionPopup.js b/src/components/ui/SubscriptionPopup.js index 5aae2c47a..528d02907 100644 --- a/src/components/ui/SubscriptionPopup.js +++ b/src/components/ui/SubscriptionPopup.js | |||
@@ -58,7 +58,6 @@ export default class SubscriptionPopup extends Component { | |||
58 | 58 | ||
59 | autosize | 59 | autosize |
60 | src={encodeURI(url)} | 60 | src={encodeURI(url)} |
61 | disablewebsecurity | ||
62 | onDidNavigate={completeCheck} | 61 | onDidNavigate={completeCheck} |
63 | // onNewWindow={(event, url, frameName, options) => | 62 | // onNewWindow={(event, url, frameName, options) => |
64 | // openWindow({ event, url, frameName, options })} | 63 | // openWindow({ event, url, frameName, options })} |
diff --git a/src/config.js b/src/config.js index 1627993f5..e66594c59 100644 --- a/src/config.js +++ b/src/config.js | |||
@@ -7,11 +7,18 @@ export const GA_ID = 'UA-74126766-6'; | |||
7 | export const DEFAULT_APP_SETTINGS = { | 7 | export const DEFAULT_APP_SETTINGS = { |
8 | autoLaunchOnStart: true, | 8 | autoLaunchOnStart: true, |
9 | autoLaunchInBackground: false, | 9 | autoLaunchInBackground: false, |
10 | runInBackground: false, | 10 | runInBackground: true, |
11 | enableSystemTray: true, | 11 | enableSystemTray: true, |
12 | minimizeToSystemTray: false, | 12 | minimizeToSystemTray: false, |
13 | showDisabledServices: true, | 13 | showDisabledServices: true, |
14 | locale: 'en-US', | 14 | showMessageBadgeWhenMuted: true, |
15 | enableSpellchecking: true, | ||
16 | // spellcheckingLanguage: 'auto', | ||
17 | locale: '', | ||
18 | fallbackLocale: 'en-US', | ||
15 | beta: false, | 19 | beta: false, |
16 | isAppMuted: false, | 20 | isAppMuted: false, |
17 | }; | 21 | }; |
22 | |||
23 | export const FRANZ_SERVICE_REQUEST = 'http://bit.ly/franz-service-request'; | ||
24 | export const FRANZ_TRANSLATION = 'http://bit.ly/franz-translate'; | ||
diff --git a/src/containers/layout/AppLayoutContainer.js b/src/containers/layout/AppLayoutContainer.js index 8e5b3d2ed..e4a9d60c3 100644 --- a/src/containers/layout/AppLayoutContainer.js +++ b/src/containers/layout/AppLayoutContainer.js | |||
@@ -67,9 +67,6 @@ export default class AppLayoutContainer extends Component { | |||
67 | const isLoadingServices = services.allServicesRequest.isExecuting | 67 | const isLoadingServices = services.allServicesRequest.isExecuting |
68 | && services.allServicesRequest.isExecutingFirstTime; | 68 | && services.allServicesRequest.isExecutingFirstTime; |
69 | 69 | ||
70 | // const isLoadingRecipes = recipes.allRecipesRequest.isExecuting | ||
71 | // && recipes.allRecipesRequest.isExecutingFirstTime; | ||
72 | |||
73 | if (isLoadingServices) { | 70 | if (isLoadingServices) { |
74 | return ( | 71 | return ( |
75 | <AppLoader /> | 72 | <AppLoader /> |
@@ -80,7 +77,7 @@ export default class AppLayoutContainer extends Component { | |||
80 | <Sidebar | 77 | <Sidebar |
81 | services={services.allDisplayed} | 78 | services={services.allDisplayed} |
82 | setActive={setActive} | 79 | setActive={setActive} |
83 | isAppMuted={Boolean(app.isSystemMuted) || Boolean(settings.all.isMuted)} | 80 | isAppMuted={settings.all.isAppMuted} |
84 | openSettings={openSettings} | 81 | openSettings={openSettings} |
85 | closeSettings={closeSettings} | 82 | closeSettings={closeSettings} |
86 | reorder={reorder} | 83 | reorder={reorder} |
@@ -90,6 +87,8 @@ export default class AppLayoutContainer extends Component { | |||
90 | deleteService={deleteService} | 87 | deleteService={deleteService} |
91 | updateService={updateService} | 88 | updateService={updateService} |
92 | toggleMuteApp={toggleMuteApp} | 89 | toggleMuteApp={toggleMuteApp} |
90 | showMessageBadgeWhenMutedSetting={settings.all.showMessageBadgeWhenMuted} | ||
91 | showMessageBadgesEvenWhenMuted={ui.showMessageBadgesEvenWhenMuted} | ||
93 | /> | 92 | /> |
94 | ); | 93 | ); |
95 | 94 | ||
@@ -100,7 +99,7 @@ export default class AppLayoutContainer extends Component { | |||
100 | setWebviewReference={setWebviewReference} | 99 | setWebviewReference={setWebviewReference} |
101 | openWindow={openWindow} | 100 | openWindow={openWindow} |
102 | reload={reload} | 101 | reload={reload} |
103 | isAppMuted={settings.all.isMuted || false} | 102 | isAppMuted={settings.all.isAppMuted} |
104 | update={updateService} | 103 | update={updateService} |
105 | /> | 104 | /> |
106 | ); | 105 | ); |
diff --git a/src/containers/settings/AccountScreen.js b/src/containers/settings/AccountScreen.js index a1ac8bda3..008c495d4 100644 --- a/src/containers/settings/AccountScreen.js +++ b/src/containers/settings/AccountScreen.js | |||
@@ -69,6 +69,7 @@ export default class AccountScreen extends Component { | |||
69 | render() { | 69 | render() { |
70 | const { user, payment, app } = this.props.stores; | 70 | const { user, payment, app } = this.props.stores; |
71 | const { openExternalUrl } = this.props.actions.app; | 71 | const { openExternalUrl } = this.props.actions.app; |
72 | const { user: userActions } = this.props.actions; | ||
72 | 73 | ||
73 | const isLoadingUserInfo = user.getUserInfoRequest.isExecuting; | 74 | const isLoadingUserInfo = user.getUserInfoRequest.isExecuting; |
74 | const isLoadingOrdersInfo = payment.ordersDataRequest.isExecuting; | 75 | const isLoadingOrdersInfo = payment.ordersDataRequest.isExecuting; |
@@ -89,6 +90,9 @@ export default class AccountScreen extends Component { | |||
89 | openExternalUrl={url => openExternalUrl({ url })} | 90 | openExternalUrl={url => openExternalUrl({ url })} |
90 | onCloseSubscriptionWindow={() => this.onCloseWindow()} | 91 | onCloseSubscriptionWindow={() => this.onCloseWindow()} |
91 | stopMiner={() => this.stopMiner()} | 92 | stopMiner={() => this.stopMiner()} |
93 | deleteAccount={userActions.delete} | ||
94 | isLoadingDeleteAccount={user.deleteAccountRequest.isExecuting} | ||
95 | isDeleteAccountSuccessful={user.deleteAccountRequest.wasExecuted && !user.deleteAccountRequest.isError} | ||
92 | /> | 96 | /> |
93 | ); | 97 | ); |
94 | } | 98 | } |
@@ -109,6 +113,7 @@ AccountScreen.wrappedComponent.propTypes = { | |||
109 | }).isRequired, | 113 | }).isRequired, |
110 | user: PropTypes.shape({ | 114 | user: PropTypes.shape({ |
111 | update: PropTypes.func.isRequired, | 115 | update: PropTypes.func.isRequired, |
116 | delete: PropTypes.func.isRequired, | ||
112 | }).isRequired, | 117 | }).isRequired, |
113 | }).isRequired, | 118 | }).isRequired, |
114 | }; | 119 | }; |
diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js index 52a9fa6db..8827896ef 100644 --- a/src/containers/settings/EditServiceScreen.js +++ b/src/containers/settings/EditServiceScreen.js | |||
@@ -26,6 +26,10 @@ const messages = defineMessages({ | |||
26 | id: 'settings.service.form.enableNotification', | 26 | id: 'settings.service.form.enableNotification', |
27 | defaultMessage: '!!!Enable Notifications', | 27 | defaultMessage: '!!!Enable Notifications', |
28 | }, | 28 | }, |
29 | enableBadge: { | ||
30 | id: 'settings.service.form.enableBadge', | ||
31 | defaultMessage: '!!!Show unread message badges', | ||
32 | }, | ||
29 | enableAudio: { | 33 | enableAudio: { |
30 | id: 'settings.service.form.enableAudio', | 34 | id: 'settings.service.form.enableAudio', |
31 | defaultMessage: '!!!Enable audio', | 35 | defaultMessage: '!!!Enable audio', |
@@ -92,6 +96,11 @@ export default class EditServiceScreen extends Component { | |||
92 | value: service.isNotificationEnabled, | 96 | value: service.isNotificationEnabled, |
93 | default: true, | 97 | default: true, |
94 | }, | 98 | }, |
99 | isBadgeEnabled: { | ||
100 | label: intl.formatMessage(messages.enableBadge), | ||
101 | value: service.isBadgeEnabled, | ||
102 | default: true, | ||
103 | }, | ||
95 | isMuted: { | 104 | isMuted: { |
96 | label: intl.formatMessage(messages.enableAudio), | 105 | label: intl.formatMessage(messages.enableAudio), |
97 | value: !service.isMuted, | 106 | value: !service.isMuted, |
@@ -127,11 +136,22 @@ export default class EditServiceScreen extends Component { | |||
127 | }); | 136 | }); |
128 | } | 137 | } |
129 | 138 | ||
139 | // More fine grained and use case specific validation rules | ||
130 | if (recipe.hasTeamId && recipe.hasCustomUrl) { | 140 | if (recipe.hasTeamId && recipe.hasCustomUrl) { |
131 | config.fields.team.validate = [oneRequired(['team', 'customUrl'])]; | 141 | config.fields.team.validate = [oneRequired(['team', 'customUrl'])]; |
132 | config.fields.customUrl.validate = [url, oneRequired(['team', 'customUrl'])]; | 142 | config.fields.customUrl.validate = [url, oneRequired(['team', 'customUrl'])]; |
133 | } | 143 | } |
134 | 144 | ||
145 | // If a service can be hosted and has a teamId or customUrl | ||
146 | if (recipe.hasHostedOption && (recipe.hasTeamId || recipe.hasCustomUrl)) { | ||
147 | if (config.fields.team) { | ||
148 | config.fields.team.validate = []; | ||
149 | } | ||
150 | if (config.fields.customUrl) { | ||
151 | config.fields.customUrl.validate = [url]; | ||
152 | } | ||
153 | } | ||
154 | |||
135 | if (recipe.hasIndirectMessages) { | 155 | if (recipe.hasIndirectMessages) { |
136 | Object.assign(config.fields, { | 156 | Object.assign(config.fields, { |
137 | isIndirectMessageBadgeEnabled: { | 157 | isIndirectMessageBadgeEnabled: { |
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index b10acf3c6..45ded9e5c 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js | |||
@@ -7,7 +7,7 @@ import AppStore from '../../stores/AppStore'; | |||
7 | import SettingsStore from '../../stores/SettingsStore'; | 7 | import SettingsStore from '../../stores/SettingsStore'; |
8 | import UserStore from '../../stores/UserStore'; | 8 | import UserStore from '../../stores/UserStore'; |
9 | import Form from '../../lib/Form'; | 9 | import Form from '../../lib/Form'; |
10 | import languages from '../../i18n/languages'; | 10 | import { APP_LOCALES } from '../../i18n/languages'; |
11 | import { gaPage } from '../../lib/analytics'; | 11 | import { gaPage } from '../../lib/analytics'; |
12 | import { DEFAULT_APP_SETTINGS } from '../../config'; | 12 | import { DEFAULT_APP_SETTINGS } from '../../config'; |
13 | 13 | ||
@@ -43,6 +43,22 @@ const messages = defineMessages({ | |||
43 | id: 'settings.app.form.showDisabledServices', | 43 | id: 'settings.app.form.showDisabledServices', |
44 | defaultMessage: '!!!Display disabled services tabs', | 44 | defaultMessage: '!!!Display disabled services tabs', |
45 | }, | 45 | }, |
46 | showMessageBadgeWhenMuted: { | ||
47 | id: 'settings.app.form.showMessagesBadgesWhenMuted', | ||
48 | defaultMessage: '!!!Show unread message badge when notifications are disabled', | ||
49 | }, | ||
50 | enableSpellchecking: { | ||
51 | id: 'settings.app.form.enableSpellchecking', | ||
52 | defaultMessage: '!!!Enable spell checking', | ||
53 | }, | ||
54 | spellcheckingLanguage: { | ||
55 | id: 'settings.app.form.spellcheckingLanguage', | ||
56 | defaultMessage: '!!!Language for spell checking', | ||
57 | }, | ||
58 | // spellcheckingAutomaticDetection: { | ||
59 | // id: 'settings.app.form.spellcheckingAutomaticDetection', | ||
60 | // defaultMessage: '!!!Detect language automatically', | ||
61 | // }, | ||
46 | beta: { | 62 | beta: { |
47 | id: 'settings.app.form.beta', | 63 | id: 'settings.app.form.beta', |
48 | defaultMessage: '!!!Include beta versions', | 64 | defaultMessage: '!!!Include beta versions', |
@@ -73,6 +89,9 @@ export default class EditSettingsScreen extends Component { | |||
73 | enableSystemTray: settingsData.enableSystemTray, | 89 | enableSystemTray: settingsData.enableSystemTray, |
74 | minimizeToSystemTray: settingsData.minimizeToSystemTray, | 90 | minimizeToSystemTray: settingsData.minimizeToSystemTray, |
75 | showDisabledServices: settingsData.showDisabledServices, | 91 | showDisabledServices: settingsData.showDisabledServices, |
92 | showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted, | ||
93 | enableSpellchecking: settingsData.enableSpellchecking, | ||
94 | // spellcheckingLanguage: settingsData.spellcheckingLanguage, | ||
76 | locale: settingsData.locale, | 95 | locale: settingsData.locale, |
77 | beta: settingsData.beta, | 96 | beta: settingsData.beta, |
78 | }, | 97 | }, |
@@ -89,14 +108,25 @@ export default class EditSettingsScreen extends Component { | |||
89 | const { app, settings, user } = this.props.stores; | 108 | const { app, settings, user } = this.props.stores; |
90 | const { intl } = this.context; | 109 | const { intl } = this.context; |
91 | 110 | ||
92 | const options = []; | 111 | const locales = []; |
93 | Object.keys(languages).forEach((key) => { | 112 | Object.keys(APP_LOCALES).forEach((key) => { |
94 | options.push({ | 113 | locales.push({ |
95 | value: key, | 114 | value: key, |
96 | label: languages[key], | 115 | label: APP_LOCALES[key], |
97 | }); | 116 | }); |
98 | }); | 117 | }); |
99 | 118 | ||
119 | // const spellcheckerLocales = [{ | ||
120 | // value: 'auto', | ||
121 | // label: intl.formatMessage(messages.spellcheckingAutomaticDetection), | ||
122 | // }]; | ||
123 | // Object.keys(SPELLCHECKER_LOCALES).forEach((key) => { | ||
124 | // spellcheckerLocales.push({ | ||
125 | // value: key, | ||
126 | // label: SPELLCHECKER_LOCALES[key], | ||
127 | // }); | ||
128 | // }); | ||
129 | |||
100 | const config = { | 130 | const config = { |
101 | fields: { | 131 | fields: { |
102 | autoLaunchOnStart: { | 132 | autoLaunchOnStart: { |
@@ -129,10 +159,26 @@ export default class EditSettingsScreen extends Component { | |||
129 | value: settings.all.showDisabledServices, | 159 | value: settings.all.showDisabledServices, |
130 | default: DEFAULT_APP_SETTINGS.showDisabledServices, | 160 | default: DEFAULT_APP_SETTINGS.showDisabledServices, |
131 | }, | 161 | }, |
162 | showMessageBadgeWhenMuted: { | ||
163 | label: intl.formatMessage(messages.showMessageBadgeWhenMuted), | ||
164 | value: settings.all.showMessageBadgeWhenMuted, | ||
165 | default: DEFAULT_APP_SETTINGS.showMessageBadgeWhenMuted, | ||
166 | }, | ||
167 | enableSpellchecking: { | ||
168 | label: intl.formatMessage(messages.enableSpellchecking), | ||
169 | value: settings.all.enableSpellchecking, | ||
170 | default: DEFAULT_APP_SETTINGS.enableSpellchecking, | ||
171 | }, | ||
172 | // spellcheckingLanguage: { | ||
173 | // label: intl.formatMessage(messages.spellcheckingLanguage), | ||
174 | // value: settings.all.spellcheckingLanguage, | ||
175 | // options: spellcheckerLocales, | ||
176 | // default: DEFAULT_APP_SETTINGS.spellcheckingLanguage, | ||
177 | // }, | ||
132 | locale: { | 178 | locale: { |
133 | label: intl.formatMessage(messages.language), | 179 | label: intl.formatMessage(messages.language), |
134 | value: app.locale, | 180 | value: app.locale, |
135 | options, | 181 | options: locales, |
136 | default: DEFAULT_APP_SETTINGS.locale, | 182 | default: DEFAULT_APP_SETTINGS.locale, |
137 | }, | 183 | }, |
138 | beta: { | 184 | beta: { |
diff --git a/src/electron/deepLinking.js b/src/electron/deepLinking.js new file mode 100644 index 000000000..ef23fd3c5 --- /dev/null +++ b/src/electron/deepLinking.js | |||
@@ -0,0 +1,7 @@ | |||
1 | export default function handleDeepLink(window, rawUrl) { | ||
2 | const url = rawUrl.replace('franz://', ''); | ||
3 | |||
4 | if (!url) return; | ||
5 | |||
6 | window.webContents.send('navigateFromDeepLink', { url }); | ||
7 | } | ||
diff --git a/src/helpers/async-helpers.js b/src/helpers/async-helpers.js new file mode 100644 index 000000000..2ef01ee09 --- /dev/null +++ b/src/helpers/async-helpers.js | |||
@@ -0,0 +1,5 @@ | |||
1 | /* eslint-disable import/prefer-default-export */ | ||
2 | |||
3 | export function sleep(ms = 0) { | ||
4 | return new Promise(r => setTimeout(r, ms)); | ||
5 | } | ||
diff --git a/src/helpers/webview-ime-focus-helpers.js b/src/helpers/webview-ime-focus-helpers.js deleted file mode 100644 index 2593a5f26..000000000 --- a/src/helpers/webview-ime-focus-helpers.js +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
1 | module.exports.releaseDocumentFocus = () => { | ||
2 | const element = document.createElement('span'); | ||
3 | document.body.appendChild(element); | ||
4 | |||
5 | const range = document.createRange(); | ||
6 | range.setStart(element, 0); | ||
7 | |||
8 | const selection = window.getSelection(); | ||
9 | selection.removeAllRanges(); | ||
10 | selection.addRange(range); | ||
11 | selection.removeAllRanges(); | ||
12 | |||
13 | document.body.removeChild(element); | ||
14 | }; | ||
15 | |||
16 | module.exports.claimDocumentFocus = () => { | ||
17 | const { activeElement } = document; | ||
18 | const selection = window.getSelection(); | ||
19 | |||
20 | let selectionStart; | ||
21 | let selectionEnd; | ||
22 | let range; | ||
23 | |||
24 | if (activeElement) ({ selectionStart, selectionEnd } = activeElement); | ||
25 | if (selection.rangeCount) range = selection.getRangeAt(0); | ||
26 | |||
27 | const restoreOriginalSelection = () => { | ||
28 | if (selectionStart >= 0 && selectionEnd >= 0) { | ||
29 | activeElement.selectionStart = selectionStart; | ||
30 | activeElement.selectionEnd = selectionEnd; | ||
31 | } else if (range) { | ||
32 | selection.addRange(range); | ||
33 | } | ||
34 | }; | ||
35 | |||
36 | exports.releaseDocumentFocus(); | ||
37 | window.requestAnimationFrame(restoreOriginalSelection); | ||
38 | }; | ||
diff --git a/src/i18n/languages.js b/src/i18n/languages.js index 72d7b26c1..f32c345af 100644 --- a/src/i18n/languages.js +++ b/src/i18n/languages.js | |||
@@ -1,17 +1,66 @@ | |||
1 | module.exports = { | 1 | export const APP_LOCALES = { |
2 | 'en-US': 'English', | 2 | 'en-US': 'English', |
3 | 'pt-BR': 'Portuguese (Brazil)', | 3 | ca: 'Catalan', |
4 | 'el-GR': 'Ελληνικά (Greece)', | 4 | 'zh-HANT': 'Chinese (Traditional)', |
5 | nl: 'Nederlands', | 5 | cs: 'Czech', |
6 | 'nl-BE': 'Vlaams', | 6 | nl: 'Dutch', |
7 | de: 'Deutsch', | 7 | es: 'Spanish', |
8 | fr: 'French', | 8 | fr: 'French', |
9 | ka: 'Georgian', | ||
10 | de: 'German', | ||
11 | hu: 'Hungarian', | ||
12 | id: 'Indonesian', | ||
13 | ga: 'Irish', | ||
14 | it: 'Italian', | ||
9 | ja: 'Japanese', | 15 | ja: 'Japanese', |
10 | pl: 'Polish', | 16 | pl: 'Polish', |
11 | ru: 'Русский', | 17 | pt: 'Portuguese', |
12 | ua: 'Українська', | 18 | 'pt-BR': 'Portuguese (Brazil)', |
13 | it: 'Italian', | 19 | ru: 'Russian', |
14 | 'es-ES': 'Español - España', | 20 | sk: 'Slovak', |
15 | 'zh-Hant': 'Chinese (Traditional)', | 21 | uk: 'Ukrainian', |
16 | 'nb-NO': 'Norsk', | 22 | 'nl-BE': 'Vlaams', |
17 | }; | 23 | }; |
24 | |||
25 | export default APP_LOCALES; | ||
26 | |||
27 | // export const SPELLCHECKER_LOCALES = { | ||
28 | // af: 'Afrikaans', | ||
29 | // sq: 'Albanian', | ||
30 | // ar: 'Arabic', | ||
31 | // bg: 'Bulgarian', | ||
32 | // zh: 'Chinese', | ||
33 | // hr: 'Croatian', | ||
34 | // cs: 'Czech', | ||
35 | // da: 'Danish', | ||
36 | // nl: 'Dutch', | ||
37 | // en: 'English', | ||
38 | // 'en-AU': 'English (AU)', | ||
39 | // 'en-CA': 'English (CA)', | ||
40 | // 'en-GB': 'English (GB)', | ||
41 | // fi: 'Finnish', | ||
42 | // fr: 'French', | ||
43 | // ka: 'Georgian', | ||
44 | // de: 'German', | ||
45 | // el: 'Greek, Modern', | ||
46 | // hi: 'Hindi', | ||
47 | // hu: 'Hungarian', | ||
48 | // id: 'Indonesian', | ||
49 | // it: 'Italian', | ||
50 | // ja: 'Japanese', | ||
51 | // jv: 'Javanese', | ||
52 | // ko: 'Korean', | ||
53 | // lt: 'Lithuanian', | ||
54 | // lv: 'Latvian', | ||
55 | // ms: 'Malay', | ||
56 | // no: 'Norwegian', | ||
57 | // pl: 'Polish', | ||
58 | // pt: 'Portuguese', | ||
59 | // ro: 'Romanian, Moldavian, Moldovan', | ||
60 | // ru: 'Russian', | ||
61 | // sk: 'Slovak', | ||
62 | // es: 'Spanish', | ||
63 | // sv: 'Swedish', | ||
64 | // uk: 'Ukrainian', | ||
65 | // vi: 'Vietnamese', | ||
66 | // }; | ||
diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json new file mode 100644 index 000000000..6019d8023 --- /dev/null +++ b/src/i18n/locales/ca.json | |||
@@ -0,0 +1,192 @@ | |||
1 | { | ||
2 | "global.api.unhealthy" : "No es pot connectar amb els serveis en línia de Franz", | ||
3 | "global.notConnectedToTheInternet" : "No esteu connectat a Internet.", | ||
4 | "import.headline" : "Importa els teus serveis Franz 4", | ||
5 | "import.notSupportedHeadline" : "Serveis que encara no s'admeten a Franz 5", | ||
6 | "import.skip.label" : "Vull afegir serveis manualment", | ||
7 | "import.submit.label" : "Importar serveis", | ||
8 | "infobar.buttonChangelog" : "What is new?", | ||
9 | "infobar.buttonInstallUpdate" : "Reinicia i instal·la l'actualització", | ||
10 | "infobar.buttonReloadServices" : "Recarrega serveis", | ||
11 | "infobar.requiredRequestsFailed" : "No s'han pogut carregar els serveis i la informació de l'usuari", | ||
12 | "infobar.servicesUpdated" : "Els vostres serveis s'han actualitzat.", | ||
13 | "infobar.updateAvailable" : "Hi ha disponible una nova actualització per a Franz.", | ||
14 | "invite.email.label" : "Correu electrònic", | ||
15 | "invite.headline.friends" : "Convida 3 dels teus amics o companys", | ||
16 | "invite.name.label" : "Nom", | ||
17 | "invite.skip.label" : "Vull fer-ho més tard", | ||
18 | "invite.submit.label" : "Enviar invitacions", | ||
19 | "login.email.label" : "Correu electrònic", | ||
20 | "login.headline" : "Accedir", | ||
21 | "login.invalidCredentials" : "El correu electrònic o la contrasenya no són vàlids", | ||
22 | "login.link.password" : "Restablir contrasenya", | ||
23 | "login.link.signup" : "Crea un compte gratuït", | ||
24 | "login.password.label" : "Contrasenya", | ||
25 | "login.serverLogout" : "La teva sessió ha caducat, torna a iniciar la sessió.", | ||
26 | "login.submit.label" : "Accedir", | ||
27 | "login.tokenExpired" : "La teva sessió ha caducat, torna a iniciar la sessió.", | ||
28 | "password.email.label" : "Correu electrònic", | ||
29 | "password.headline" : "Restablir contrasenya", | ||
30 | "password.link.login" : "Inicia la sessió al teu compte", | ||
31 | "password.link.signup" : "Crea un compte gratuït", | ||
32 | "password.noUser" : "No s'ha trobat cap usuari amb aquesta adreça de correu electrònic", | ||
33 | "password.submit.label" : "Enviar", | ||
34 | "password.successInfo" : "Comproveu el vostre correu electrònic", | ||
35 | "pricing.headline" : "Donar suport a Franz", | ||
36 | "pricing.link.skipPayment" : "No vull donar suport al desenvolupament de Franz.", | ||
37 | "pricing.submit.label" : "Vull donar suport al desenvolupament de Franz", | ||
38 | "pricing.support.label" : "Seleccioneu el vostre pla de suport", | ||
39 | "service.crashHandler.action" : "Recarrega {name}", | ||
40 | "service.crashHandler.autoReload" : "Intentant restablir automàticament {name} en {seconds} segons", | ||
41 | "service.crashHandler.headline" : "Oh no!", | ||
42 | "service.crashHandler.text" : "{name} ha causat un error.", | ||
43 | "service.disabledHandler.action" : "Activar {name}", | ||
44 | "service.disabledHandler.headline" : "{name} està desactivat", | ||
45 | "services.getStarted" : "Introducció", | ||
46 | "services.welcome" : "Benvingut a Franz", | ||
47 | "settings.account.account.editButton" : "Editar Compte", | ||
48 | "settings.account.accountType.basic" : "Compte bàsic", | ||
49 | "settings.account.accountType.premium" : "Compte de Suport Premium", | ||
50 | "settings.account.buttonSave" : "Actualitzar el perfil", | ||
51 | "settings.account.headline" : "Compte", | ||
52 | "settings.account.headlineAccount" : "Informació del compte", | ||
53 | "settings.account.headlineInvoices" : "Factures", | ||
54 | "settings.account.headlinePassword" : "Canvia la contrasenya", | ||
55 | "settings.account.headlineProfile" : "Actualitza el perfil", | ||
56 | "settings.account.headlineSubscription" : "La vostra subscripció", | ||
57 | "settings.account.headlineUpgrade" : "Actualitzeu el vostre compte i doneu suport a Franz", | ||
58 | "settings.account.invoiceDownload" : "Descarregar", | ||
59 | "settings.account.manageSubscription.label" : "Gestioneu la vostra subscripció", | ||
60 | "settings.account.mining.active" : "Ara realitzeu {hashes} càlculs per segon.", | ||
61 | "settings.account.mining.cancel" : "Cancel·la la mineria", | ||
62 | "settings.account.mining.moreInformation" : "Obenir més informació", | ||
63 | "settings.account.mining.thankyou" : "Gràcies per donar suport a Franz amb el vostre poder de processament.", | ||
64 | "settings.account.successInfo" : "S'han desat els canvis", | ||
65 | "settings.account.tryReloadUserInfoRequest" : "Torna a provar-ho", | ||
66 | "settings.account.userInfoRequestFailed" : "No s'ha pogut carregar la informació de l'usuari", | ||
67 | "settings.app.buttonInstallUpdate" : "Reinicia i instal·la l'actualització", | ||
68 | "settings.app.buttonSearchForUpdate" : "Comprova si hi ha actualitzacions", | ||
69 | "settings.app.currentVersion" : "Versió actual:", | ||
70 | "settings.app.form.autoLaunchInBackground" : "Obrir en segon plà", | ||
71 | "settings.app.form.autoLaunchOnStart" : "Iniciar Franz a l'inici", | ||
72 | "settings.app.form.beta" : "Inclou versions beta", | ||
73 | "settings.app.form.enableSpellchecking" : "Habilita la comprobació ortogràfica", | ||
74 | "settings.app.form.enableSystemTray" : "Mostra Franz a la safata del sistema", | ||
75 | "settings.app.form.language" : "Idioma", | ||
76 | "settings.app.form.minimizeToSystemTray" : "Minimitza Franz a la safata del sistema", | ||
77 | "settings.app.form.runInBackground" : "Mantén a Franz en segon pla en tancar la finestra", | ||
78 | "settings.app.form.showDisabledServices" : "Mostra les pestanyes dels serveis desactivats", | ||
79 | "settings.app.headline" : "Configuració", | ||
80 | "settings.app.headlineAdvanced" : "Avançat", | ||
81 | "settings.app.headlineAppearance" : "Aparença", | ||
82 | "settings.app.headlineGeneral" : "General", | ||
83 | "settings.app.headlineLanguage" : "Idioma", | ||
84 | "settings.app.headlineUpdates" : "Actualitzacions", | ||
85 | "settings.app.restartRequired" : "Els canvis requereixen reiniciar", | ||
86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
87 | "settings.app.updateStatusAvailable" : "Actualització disponible, descarregant ...", | ||
88 | "settings.app.updateStatusSearching" : "Està buscant actualitzacions", | ||
89 | "settings.app.updateStatusUpToDate" : "Esteu utilitzant la versió més recent de Franz", | ||
90 | "settings.navigation.account" : "Compte", | ||
91 | "settings.navigation.availableServices" : "Serveis disponibles", | ||
92 | "settings.navigation.logout" : "Sortir", | ||
93 | "settings.navigation.settings" : "Configuració", | ||
94 | "settings.navigation.yourServices" : "Els vostres serveis", | ||
95 | "settings.recipes.all" : "Tots els serveis", | ||
96 | "settings.recipes.dev" : "Desenvolupament", | ||
97 | "settings.recipes.headline" : "Serveis disponibles", | ||
98 | "settings.recipes.missingService" : "Missing a service?", | ||
99 | "settings.recipes.mostPopular" : "Els més populars", | ||
100 | "settings.recipes.nothingFound" : "Ho sentim, però cap servei coincideix amb el terme cercat.", | ||
101 | "settings.recipes.servicesSuccessfulAddedInfo" : "El servei s'ha afegit correctament", | ||
102 | "settings.service.error.goBack" : "Tornar als serveis", | ||
103 | "settings.service.error.headline" : "Error", | ||
104 | "settings.service.error.message" : "No s'ha pogut carregar la recepta del servei.", | ||
105 | "settings.service.form.addServiceHeadline" : "Afegir {name}", | ||
106 | "settings.service.form.availableServices" : "Serveis disponibles", | ||
107 | "settings.service.form.customUrl" : "Servidor personalitzat", | ||
108 | "settings.service.form.customUrlPremiumInfo" : "Per afegir serveis allotjats per vosaltres mateixos, necessiteu un Compte Franz Premium Supporter.", | ||
109 | "settings.service.form.customUrlUpgradeAccount" : "Actualitzeu el vostre compte", | ||
110 | "settings.service.form.customUrlValidationError" : "No s'ha pogut validar el servidor {name} personalitzat.", | ||
111 | "settings.service.form.deleteButton" : "Suprimeix el servei", | ||
112 | "settings.service.form.editServiceHeadline" : "Edita {name}", | ||
113 | "settings.service.form.enableAudio" : "Activa l'àudio", | ||
114 | "settings.service.form.enableNotification" : "Activa les notificacions", | ||
115 | "settings.service.form.enableService" : "Activa el servei", | ||
116 | "settings.service.form.indirectMessageInfo" : "Se't notificarà sobre tots els missatges nous en un canal, no només @usuari, @canal, @aquí ...", | ||
117 | "settings.service.form.indirectMessages" : "Mostra la insígnia de missatge per a tots els missatges nous", | ||
118 | "settings.service.form.isMutedInfo" : "Quan es desactiva, tots els sons de notificació i reproducció d'àudio es silenciaran", | ||
119 | "settings.service.form.name" : "Nom", | ||
120 | "settings.service.form.saveButton" : "Desa el servei", | ||
121 | "settings.service.form.tabHosted" : "Allotjat", | ||
122 | "settings.service.form.tabOnPremise" : "Allotjat per si mateix ⭐️", | ||
123 | "settings.service.form.team" : "Equip", | ||
124 | "settings.service.form.yourServices" : "Els vostres serveis", | ||
125 | "settings.services.deletedInfo" : "S'ha eliminat el servei", | ||
126 | "settings.services.discoverServices" : "Descobrir serveis", | ||
127 | "settings.services.headline" : "Els vostres serveis", | ||
128 | "settings.services.noServicesAdded" : "Encara no heu afegit cap servei.", | ||
129 | "settings.services.tooltip.isDisabled" : "El servei està desactivat", | ||
130 | "settings.services.tooltip.isMuted" : "Tots els sons estan desactivats", | ||
131 | "settings.services.tooltip.notificationsDisabled" : "Les notificacions estan desactivades", | ||
132 | "settings.services.updatedInfo" : "S'han desat els canvis", | ||
133 | "settings.user.form.accountType.company" : "Empresa", | ||
134 | "settings.user.form.accountType.individual" : "Individual", | ||
135 | "settings.user.form.accountType.label" : "Tipus de compte", | ||
136 | "settings.user.form.accountType.non-profit" : "Sense ànim de lucre", | ||
137 | "settings.user.form.currentPassword" : "Contrasenya actual", | ||
138 | "settings.user.form.email" : "Correu electrònic", | ||
139 | "settings.user.form.firstname" : "Nom", | ||
140 | "settings.user.form.lastname" : "Cognoms", | ||
141 | "settings.user.form.newPassword" : "Nova contrasenya", | ||
142 | "sidebar.addNewService" : "Afegeix nou servei", | ||
143 | "sidebar.mute" : "Desactiva l'àudio", | ||
144 | "sidebar.settings" : "Configuració", | ||
145 | "sidebar.unmute" : "Activa l'àudio", | ||
146 | "signup.company.label" : "Empresa", | ||
147 | "signup.email.label" : "Correu electrònic", | ||
148 | "signup.emailDuplicate" : "Ja existeix un usuari amb aquesta adreça de correu electrònic", | ||
149 | "signup.firstname.label" : "Nom", | ||
150 | "signup.headline" : "Donar-se d'alta", | ||
151 | "signup.lastname.label" : "Cognoms", | ||
152 | "signup.legal.info" : "En crear un compte de Franz, accepteu", | ||
153 | "signup.legal.privacy" : "Declaració de privacitat", | ||
154 | "signup.legal.terms" : "Termes del Servei", | ||
155 | "signup.link.login" : "Ja teniu un compte, iniciar la sessió?", | ||
156 | "signup.password.label" : "Contrasenya", | ||
157 | "signup.submit.label" : "Crea un compte", | ||
158 | "subscription.euTaxInfo" : "Residents d'EU: es poden aplicar impostos locals", | ||
159 | "subscription.features.ads" : "Sense anuncis, mai!", | ||
160 | "subscription.features.comingSoon" : "properament", | ||
161 | "subscription.features.customServices" : "Serveis privats per a vostè i el seu equip", | ||
162 | "subscription.features.encryptedSync" : "Sincronització de sessió xifrada", | ||
163 | "subscription.features.onpremise" : "Afegiu serveis en premissa\/allotjats com HipChat", | ||
164 | "subscription.features.vpn" : "Compatibilitat amb proxy i VPN", | ||
165 | "subscription.includedFeatures" : "El compte de pagament Franz Premium Supporter inclou", | ||
166 | "subscription.mining.experimental" : "experimental", | ||
167 | "subscription.mining.headline" : "Com funciona?", | ||
168 | "subscription.mining.line1" : "Activant el \"Suport amb poder de processament\", Franz utilitzarà entre un 20-50% de la teva CPU de la mineria de la criptomoneda Monero que equival aproximadament a 5$\/l'any.", | ||
169 | "subscription.mining.line2" : "Adaptarem l'ús de la CPU basant-nos en els teus habits de treball per no consumir la teva bateria ni relentir el teu ordinador.", | ||
170 | "subscription.mining.line3" : "Durant el periode que mantinguis la mineria activa, tindrás accés ilimitat a totes les carectarístiques ilimitades de Franz Premium Supporter.", | ||
171 | "subscription.mining.moreInformation" : "Obtenir més informació sobre aquest pla.", | ||
172 | "subscription.paymentSessionError" : "No s'ha pogut inicialitzar el formulari de pagament", | ||
173 | "subscription.submit.label" : "Vull donar suport al desenvolupament de Franz", | ||
174 | "subscription.type.free" : "gratuït", | ||
175 | "subscription.type.mining" : "Donar suport a Franz amb el poder de processament", | ||
176 | "subscription.type.month" : "mes", | ||
177 | "subscription.type.year" : "any", | ||
178 | "subscriptionPopup.buttonCancel" : "Cancel·la", | ||
179 | "subscriptionPopup.buttonDone" : "Fet", | ||
180 | "tabs.item.deleteService" : "Suprimeix el servei", | ||
181 | "tabs.item.disableAudio" : "Desactiva l'àudio", | ||
182 | "tabs.item.disableNotifications" : "Desactiva les notificacions", | ||
183 | "tabs.item.disableService" : "Desactiva el servei", | ||
184 | "tabs.item.edit" : "Edita", | ||
185 | "tabs.item.enableAudio" : "Activa l'àudio", | ||
186 | "tabs.item.enableNotification" : "Activa les notificacions", | ||
187 | "tabs.item.enableService" : "Activa el servei", | ||
188 | "tabs.item.reload" : "Recarrega", | ||
189 | "welcome.loginButton" : "Inicia sessió al teu compte", | ||
190 | "welcome.signupButton" : "Crea un compte gratuït", | ||
191 | "welcome.slogan" : "Crea un compte gratuït" | ||
192 | } | ||
diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json new file mode 100644 index 000000000..122fc9b53 --- /dev/null +++ b/src/i18n/locales/cs.json | |||
@@ -0,0 +1,192 @@ | |||
1 | { | ||
2 | "global.api.unhealthy" : "Nemůžeme Franz připojit k online službám", | ||
3 | "global.notConnectedToTheInternet" : "Nejste připojen k internetu.", | ||
4 | "import.headline" : "Importovat služby z Franz 4", | ||
5 | "import.notSupportedHeadline" : "Služby nejsou podporovány v verzi Franz 5", | ||
6 | "import.skip.label" : "Chci přidat služby manuálně", | ||
7 | "import.submit.label" : "Importovat služby", | ||
8 | "infobar.buttonChangelog" : "What is new?", | ||
9 | "infobar.buttonInstallUpdate" : "Restartovat a instalovat aktualizaci", | ||
10 | "infobar.buttonReloadServices" : "Obnovit služby", | ||
11 | "infobar.requiredRequestsFailed" : "Není možné nahrát služby a informace o uživateli", | ||
12 | "infobar.servicesUpdated" : "Vaše služby byly aktualizovány", | ||
13 | "infobar.updateAvailable" : "Nová aktualizace Franz je k dispozici", | ||
14 | "invite.email.label" : "E-mailová adresa", | ||
15 | "invite.headline.friends" : "Pozvěte 3 přátele nebo kolegy", | ||
16 | "invite.name.label" : "Jméno", | ||
17 | "invite.skip.label" : "Udělám to později", | ||
18 | "invite.submit.label" : "Poslat pozvánky", | ||
19 | "login.email.label" : "E-mailová adresa", | ||
20 | "login.headline" : "Přihlásit se", | ||
21 | "login.invalidCredentials" : "E-mail nebo heslo nesouhlasí", | ||
22 | "login.link.password" : "Obnovit heslo", | ||
23 | "login.link.signup" : "Vytvořit uživatelský účet zdarma", | ||
24 | "login.password.label" : "Heslo", | ||
25 | "login.serverLogout" : "Sezení vypršelo, prosím přihlaste se znovu.", | ||
26 | "login.submit.label" : "Přihlásit se", | ||
27 | "login.tokenExpired" : "Sezení vypršelo, prosím přihlaste se znovu", | ||
28 | "password.email.label" : "E-mailová adresa", | ||
29 | "password.headline" : "Obnovit heslo", | ||
30 | "password.link.login" : "Přihlášení do vašeho účtu", | ||
31 | "password.link.signup" : "Vytvořit uživatelský účet zdarma", | ||
32 | "password.noUser" : "Uživatel s touto e-mailovou adresou nebyl nalezen", | ||
33 | "password.submit.label" : "Odeslat", | ||
34 | "password.successInfo" : "Prosím, zkontrolujte svůj e-mail", | ||
35 | "pricing.headline" : "Podpořte Franz", | ||
36 | "pricing.link.skipPayment" : "Nechci podpořit vývoj skvělé aplikace Franz.", | ||
37 | "pricing.submit.label" : "Chci podpořit vývoj aplikace Franz", | ||
38 | "pricing.support.label" : "Vyberte váš plán podpory", | ||
39 | "service.crashHandler.action" : "Reload {name}", | ||
40 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", | ||
41 | "service.crashHandler.headline" : "Oh no!", | ||
42 | "service.crashHandler.text" : "{name} has caused an error.", | ||
43 | "service.disabledHandler.action" : "Enable {name}", | ||
44 | "service.disabledHandler.headline" : "{name} is disabled", | ||
45 | "services.getStarted" : "Začněme", | ||
46 | "services.welcome" : "Vítejte v programu Franz", | ||
47 | "settings.account.account.editButton" : "Upravit účet", | ||
48 | "settings.account.accountType.basic" : "Základní účet", | ||
49 | "settings.account.accountType.premium" : "Prémiový účet podporovatele", | ||
50 | "settings.account.buttonSave" : "Aktualizovat profil", | ||
51 | "settings.account.headline" : "Účet", | ||
52 | "settings.account.headlineAccount" : "Informace o účtu", | ||
53 | "settings.account.headlineInvoices" : "Faktury", | ||
54 | "settings.account.headlinePassword" : "Změnit heslo", | ||
55 | "settings.account.headlineProfile" : "Aktualizovat profil", | ||
56 | "settings.account.headlineSubscription" : "Vaše předplatné", | ||
57 | "settings.account.headlineUpgrade" : "Aktualizujte svůj účet a podpořte Franz", | ||
58 | "settings.account.invoiceDownload" : "Stáhnout", | ||
59 | "settings.account.manageSubscription.label" : "Spravovat vaše předplatné", | ||
60 | "settings.account.mining.active" : "Právě nyní provádíte {hashes} výpočtů za sekundu.", | ||
61 | "settings.account.mining.cancel" : "Zrušit dolování", | ||
62 | "settings.account.mining.moreInformation" : "Získat další informace", | ||
63 | "settings.account.mining.thankyou" : "Děkujeme, že jste podpořili Franz vašim výpočetním výkonem.", | ||
64 | "settings.account.successInfo" : "Vaše změny byly uloženy", | ||
65 | "settings.account.tryReloadUserInfoRequest" : "Zkusit opět", | ||
66 | "settings.account.userInfoRequestFailed" : "Nelze načíst informace o uživateli.", | ||
67 | "settings.app.buttonInstallUpdate" : "Restartovat a nainstalovat aktualizace", | ||
68 | "settings.app.buttonSearchForUpdate" : "Zkontrolovat aktualizace", | ||
69 | "settings.app.currentVersion" : "Aktuální verze:", | ||
70 | "settings.app.form.autoLaunchInBackground" : "Spustit na pozadí", | ||
71 | "settings.app.form.autoLaunchOnStart" : "Spustit Franz při startu", | ||
72 | "settings.app.form.beta" : "Zahrnout beta verze", | ||
73 | "settings.app.form.enableSpellchecking" : "Enable spell checking", | ||
74 | "settings.app.form.enableSystemTray" : "Zobrazit Franz v systémové liště", | ||
75 | "settings.app.form.language" : "Jazyk", | ||
76 | "settings.app.form.minimizeToSystemTray" : "Minimalizovat Franz do systémové lišty", | ||
77 | "settings.app.form.runInBackground" : "Ponechat Franze v pozadí při zavírání okna", | ||
78 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", | ||
79 | "settings.app.headline" : "Nastavení", | ||
80 | "settings.app.headlineAdvanced" : "Advanced", | ||
81 | "settings.app.headlineAppearance" : "Appearance", | ||
82 | "settings.app.headlineGeneral" : "Obecné", | ||
83 | "settings.app.headlineLanguage" : "Jazyk", | ||
84 | "settings.app.headlineUpdates" : "Aktualizace", | ||
85 | "settings.app.restartRequired" : "Changes require restart", | ||
86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
87 | "settings.app.updateStatusAvailable" : "Aktualizace k dispozici, stahování...", | ||
88 | "settings.app.updateStatusSearching" : "Hledá aktualizace", | ||
89 | "settings.app.updateStatusUpToDate" : "Používáte nejnovější verzi programu Franz", | ||
90 | "settings.navigation.account" : "Účet", | ||
91 | "settings.navigation.availableServices" : "Dostupné služby", | ||
92 | "settings.navigation.logout" : "Odhlásit", | ||
93 | "settings.navigation.settings" : "Nastavení", | ||
94 | "settings.navigation.yourServices" : "Vaše služby", | ||
95 | "settings.recipes.all" : "Všechny služby", | ||
96 | "settings.recipes.dev" : "Vývoj", | ||
97 | "settings.recipes.headline" : "Dostupné služby", | ||
98 | "settings.recipes.missingService" : "Missing a service?", | ||
99 | "settings.recipes.mostPopular" : "Nejpopulárnější", | ||
100 | "settings.recipes.nothingFound" : "Je nám líto, ale žádná služba neodpovídá vašemu hledanému výrazu.", | ||
101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Služba byla úspěšně přidána", | ||
102 | "settings.service.error.goBack" : "Zpět na služby", | ||
103 | "settings.service.error.headline" : "Chyba", | ||
104 | "settings.service.error.message" : "Nelze načíst službu.", | ||
105 | "settings.service.form.addServiceHeadline" : "Přidat {name}", | ||
106 | "settings.service.form.availableServices" : "Dostupné služby", | ||
107 | "settings.service.form.customUrl" : "Vlastní server", | ||
108 | "settings.service.form.customUrlPremiumInfo" : "Chcete-li přidat vlastní hostované služby, potřebujete účet Franz Premium Supporter.", | ||
109 | "settings.service.form.customUrlUpgradeAccount" : "Aktualizujte svůj účet", | ||
110 | "settings.service.form.customUrlValidationError" : "Nepodařilo se ověřit vlastní server {name}.", | ||
111 | "settings.service.form.deleteButton" : "Odstranit službu", | ||
112 | "settings.service.form.editServiceHeadline" : "Upravit {name}", | ||
113 | "settings.service.form.enableAudio" : "Enable audio", | ||
114 | "settings.service.form.enableNotification" : "Povolit upozornění", | ||
115 | "settings.service.form.enableService" : "Povolit službu", | ||
116 | "settings.service.form.indirectMessageInfo" : "Budete informováni o všech nových zprávách v kanálu, nikoliv pouze @název, @kanál, @kde, ...", | ||
117 | "settings.service.form.indirectMessages" : "Zobrazovat znak zprávy pro všechny nové zprávy", | ||
118 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", | ||
119 | "settings.service.form.name" : "Jméno", | ||
120 | "settings.service.form.saveButton" : "Uložit službu", | ||
121 | "settings.service.form.tabHosted" : "Hostováno", | ||
122 | "settings.service.form.tabOnPremise" : "Samostatně hostované ⭐️", | ||
123 | "settings.service.form.team" : "Tým", | ||
124 | "settings.service.form.yourServices" : "Vaše služby", | ||
125 | "settings.services.deletedInfo" : "Služba byla odstraněna", | ||
126 | "settings.services.discoverServices" : "Objevte služby", | ||
127 | "settings.services.headline" : "Vaše služby", | ||
128 | "settings.services.noServicesAdded" : "Doposud jste nepřidali žádné služby.", | ||
129 | "settings.services.tooltip.isDisabled" : "Služba je zakázána", | ||
130 | "settings.services.tooltip.isMuted" : "All sounds are muted", | ||
131 | "settings.services.tooltip.notificationsDisabled" : "Oznámení jsou zakázána", | ||
132 | "settings.services.updatedInfo" : "Vaše změny byly uloženy", | ||
133 | "settings.user.form.accountType.company" : "Společnost", | ||
134 | "settings.user.form.accountType.individual" : "Jednotlivec", | ||
135 | "settings.user.form.accountType.label" : "Druh účtu", | ||
136 | "settings.user.form.accountType.non-profit" : "Nezisková organizace", | ||
137 | "settings.user.form.currentPassword" : "Aktuální heslo", | ||
138 | "settings.user.form.email" : "Email", | ||
139 | "settings.user.form.firstname" : "First Name", | ||
140 | "settings.user.form.lastname" : "Last Name", | ||
141 | "settings.user.form.newPassword" : "Nové heslo", | ||
142 | "sidebar.addNewService" : "Přidat novou službu", | ||
143 | "sidebar.mute" : "Disable audio", | ||
144 | "sidebar.settings" : "Nastavení", | ||
145 | "sidebar.unmute" : "Enable audio", | ||
146 | "signup.company.label" : "Společnost", | ||
147 | "signup.email.label" : "Emailová adresa", | ||
148 | "signup.emailDuplicate" : "Uživatel s touto emailovou adresou již existuje", | ||
149 | "signup.firstname.label" : "First Name", | ||
150 | "signup.headline" : "Přihlásit se", | ||
151 | "signup.lastname.label" : "Last Name", | ||
152 | "signup.legal.info" : "Vytvořením účtu Franz souhlasíte s", | ||
153 | "signup.legal.privacy" : "Prohlášení o ochraně soukromí", | ||
154 | "signup.legal.terms" : "Podmínky služby", | ||
155 | "signup.link.login" : "Již máte účet, přihlásit se?", | ||
156 | "signup.password.label" : "Heslo", | ||
157 | "signup.submit.label" : "Vytvořit účet", | ||
158 | "subscription.euTaxInfo" : "EU residents: local sales tax may apply", | ||
159 | "subscription.features.ads" : "Žádné reklamy, nikdy!", | ||
160 | "subscription.features.comingSoon" : "již brzy", | ||
161 | "subscription.features.customServices" : "Privátní služby pro vás a váš tým", | ||
162 | "subscription.features.encryptedSync" : "Šifrovaná synchronizace relací", | ||
163 | "subscription.features.onpremise" : "Přidat hostované služby jako HipChat", | ||
164 | "subscription.features.vpn" : "Proxy & VPN podpora", | ||
165 | "subscription.includedFeatures" : "Placený účet Premium Supporter Franz zahrnuje", | ||
166 | "subscription.mining.experimental" : "experimentální", | ||
167 | "subscription.mining.headline" : "Jak to funguje?", | ||
168 | "subscription.mining.line1" : "Povolením funkce \"Podpora se zpracováním výkonu\" použije Franz zhruba 20-50% vašeho procesoru, aby doloval kryptografickou měnu Monero, která se rovná přibližně 5 dolarům za rok.", | ||
169 | "subscription.mining.line2" : "Přizpůsobíme spotřebu CPU na základě vašeho pracovního chování, abychom nevyčerpali baterii a zpomalili vás a váš stroj.", | ||
170 | "subscription.mining.line3" : "Dokud je horník aktivní, budete mít neomezený přístup ke všem funkcím Franz Premium Supporter.", | ||
171 | "subscription.mining.moreInformation" : "Získejte více informací o tomto plánu.", | ||
172 | "subscription.paymentSessionError" : "Nebylo možné inicializovat platbu od", | ||
173 | "subscription.submit.label" : "Chci podpořit vývoj aplikace Franz", | ||
174 | "subscription.type.free" : "zdarma", | ||
175 | "subscription.type.mining" : "Podpořte Franz výpočetním výkonem", | ||
176 | "subscription.type.month" : "měsíc", | ||
177 | "subscription.type.year" : "rok", | ||
178 | "subscriptionPopup.buttonCancel" : "Zrušit", | ||
179 | "subscriptionPopup.buttonDone" : "Dokončit", | ||
180 | "tabs.item.deleteService" : "Odstranit službu", | ||
181 | "tabs.item.disableAudio" : "Disable audio", | ||
182 | "tabs.item.disableNotifications" : "Zakázat upozornění", | ||
183 | "tabs.item.disableService" : "Zakázat službu", | ||
184 | "tabs.item.edit" : "Upravit", | ||
185 | "tabs.item.enableAudio" : "Enable audio", | ||
186 | "tabs.item.enableNotification" : "Povolit oznamování", | ||
187 | "tabs.item.enableService" : "Povolit službu", | ||
188 | "tabs.item.reload" : "Obnovit", | ||
189 | "welcome.loginButton" : "Přihlášení do vašeho účtu", | ||
190 | "welcome.signupButton" : "Vytvořit účet zdarma", | ||
191 | "welcome.slogan" : "Zprávy, které pracují pro vás" | ||
192 | } | ||
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 80b66db08..cdfce9d55 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json | |||
@@ -1,168 +1,192 @@ | |||
1 | { | 1 | { |
2 | "global.api.unhealthy": "Verbindung mit dem Franz Online Service fehlgeschlagen.", | 2 | "global.api.unhealthy" : "Verbindung mit dem Franz Online Service fehlgeschlagen.", |
3 | "global.notConnectedToTheInternet": "Du bist nicht mit dem Internet verbunden.", | 3 | "global.notConnectedToTheInternet" : "Du bist nicht mit dem Internet verbunden.", |
4 | "welcome.signupButton": "Kostenloses Konto erstellen", | 4 | "import.headline" : "Importiere deine Franz 4 Dienste", |
5 | "welcome.loginButton": "Anmelden", | 5 | "import.notSupportedHeadline" : "Dienste, die noch nicht von Franz 5 unterstützt werden", |
6 | "welcome.slogan": "Kommunikation, die für Dich funktioniert", | 6 | "import.skip.label" : "Ich möchte meine Dienste manuell hinzufügen", |
7 | "login.headline": "Anmelden", | 7 | "import.submit.label" : "Dienste importieren", |
8 | "login.email.label": "E-Mail-Adresse", | 8 | "infobar.buttonChangelog" : "What is new?", |
9 | "login.password.label": "Passwort", | 9 | "infobar.buttonInstallUpdate" : "Neustarten & Update installieren", |
10 | "login.submit.label": "Anmelden", | 10 | "infobar.buttonReloadServices" : "Dienste neu laden", |
11 | "login.invalidCredentials": "E-Mail-Adresse oder Passwort ungültig", | 11 | "infobar.requiredRequestsFailed" : "Dienste und Benutzerinformationen konnten nicht geladen werden", |
12 | "login.tokenExpired": "Deine Sitzung ist abgelaufen, bitte melde dich erneut an.", | 12 | "infobar.servicesUpdated" : "Deine Dienste wurden aktualisiert.", |
13 | "login.serverLogout": "Deine Sitzung ist abgelaufen, bitte melde dich erneut an.", | 13 | "infobar.updateAvailable" : "Eine neue Version von Franz ist verfügbar.", |
14 | "login.link.signup": "Kostenloses Konto erstellen", | 14 | "invite.email.label" : "E-Mail Adresse", |
15 | "login.link.password": "Passwort zurücksetzen", | 15 | "invite.headline.friends" : "Lade 3 Freunde oder Kollegen ein", |
16 | "password.headline": "Passwort zurücksetzen", | 16 | "invite.name.label" : "Name", |
17 | "password.email.label": "E-Mail-Adresse", | 17 | "invite.skip.label" : "Ich möchte das später tun", |
18 | "password.submit.label": "Absenden", | 18 | "invite.submit.label" : "Einladungen senden", |
19 | "password.noUser": "Es wurde kein Benutzer mit dieser E-Mail-Adresse gefunden", | 19 | "login.email.label" : "E-Mail Adresse", |
20 | "password.successInfo": "Bitte überprüfe Deine E-Mail-Adresse", | 20 | "login.headline" : "Anmelden", |
21 | "password.link.signup": "Kostenloses Konto erstellen", | 21 | "login.invalidCredentials" : "E-Mail Adresse oder Passwort ungültig", |
22 | "password.link.login": "Anmelden", | 22 | "login.link.password" : "Passwort zurücksetzen", |
23 | "signup.headline": "Registrierung", | 23 | "login.link.signup" : "Kostenloses Konto erstellen", |
24 | "signup.firstname.label": "Vorname", | 24 | "login.password.label" : "Passwort", |
25 | "signup.lastname.label": "Nachname", | 25 | "login.serverLogout" : "Deine Sitzung ist abgelaufen, bitte melde dich erneut an.", |
26 | "signup.email.label": "E-Mail-Adresse", | 26 | "login.submit.label" : "Anmelden", |
27 | "signup.company.label": "Unternehmen", | 27 | "login.tokenExpired" : "Deine Sitzung ist abgelaufen, bitte melde dich erneut an.", |
28 | "signup.password.label": "Passwort", | 28 | "password.email.label" : "E-Mail Adresse", |
29 | "signup.submit.label": "Konto erstellen", | 29 | "password.headline" : "Passwort zurücksetzen", |
30 | "signup.link.login": "Du hast bereits ein Konto? Melde Dich an.", | 30 | "password.link.login" : "Anmelden", |
31 | "signup.emailDuplicate": "Ein Benutzer mit dieser E-Mail-Adresse existiert bereits.", | 31 | "password.link.signup" : "Kostenloses Konto erstellen", |
32 | "signup.legal.info": "Mit der Erstellung eines Franz Kontos, akzeptierst Du die", | 32 | "password.noUser" : "Es wurde kein Benutzer mit dieser E-Mail-Adresse gefunden.", |
33 | "signup.legal.terms": "Nutzungsbedingungen", | 33 | "password.submit.label" : "Absenden", |
34 | "signup.legal.privacy": "Datenschutzerklärung", | 34 | "password.successInfo" : "Wir haben dir ein E-Mail mit weiteren Anweisungen geschickt.", |
35 | "pricing.headline": "Unterstütze Franz", | 35 | "pricing.headline" : "Unterstütze Franz", |
36 | "pricing.support.label": "Wie möchtest Du Franz unterstützen?", | 36 | "pricing.link.skipPayment" : "Ich möchte die Entwicklung von Franz nicht unterstützen.", |
37 | "pricing.submit.label": "Ich möchte die Entwicklung von Franz unterstützen.", | 37 | "pricing.submit.label" : "Ich möchte die Entwicklung von Franz unterstützen.", |
38 | "pricing.link.skipPayment": "Ich möchte die Entwicklung von Franz nicht unterstützen.", | 38 | "pricing.support.label" : "Wie möchtest du Franz unterstützen?", |
39 | "import.headline": "Importiere Deine Franz 4 Dienste", | 39 | "service.crashHandler.action" : "Neu laden", |
40 | "import.notSupportedHeadline": "Dienste, die noch nicht von Franz 5 unterstützt werden", | 40 | "service.crashHandler.autoReload" : "{name} wird automatisch wiederhergestellt in {seconds} sekunden", |
41 | "import.submit.label": "Dienste importieren", | 41 | "service.crashHandler.headline" : "Oh nein!", |
42 | "import.skip.label": "Ich möchte einen Dienst manuell hinzufügen", | 42 | "service.crashHandler.text" : "{name} hat einen Fehler verursacht.", |
43 | "invite.submit.label": "Einladungen senden", | 43 | "service.disabledHandler.action" : "{name} aktivieren", |
44 | "invite.headline.friends": "Lade 3 Deiner Freund oder Kollegen ein", | 44 | "service.disabledHandler.headline" : "{name} ist deaktiviert", |
45 | "invite.name.label": "Name", | 45 | "services.getStarted" : "Loslegen", |
46 | "invite.email.label": "E-Mail-Adresse", | 46 | "services.welcome" : "Willkommen bei Franz.", |
47 | "invite.skip.label": "Ich möchte das später tun", | 47 | "settings.account.account.editButton" : "Konto bearbeiten", |
48 | "subscription.submit.label": "Ich möchte die Entwicklung von Franz unterstützen", | 48 | "settings.account.accountType.basic" : "Basis Konto", |
49 | "subscription.paymentSessionError": "Das Zahlungs-Formular konnte nicht geladen werden.", | 49 | "settings.account.accountType.premium" : "Premium-Supporter Konto", |
50 | "subscription.includedFeatures": "Bezahlte Franz Premium Support Konten beinhalten", | 50 | "settings.account.buttonSave" : "Profil aktualisieren", |
51 | "subscription.features.onpremise": "Integration von gehosteten Diensten, wie HipChat", | 51 | "settings.account.headline" : "Konto", |
52 | "subscription.features.customServices": "Private Dienste für Dich und Dein Team", | 52 | "settings.account.headlineAccount" : "Konto Informationen", |
53 | "subscription.features.encryptedSync": "Verschlüsselte Sitzungs-Synchronisation", | 53 | "settings.account.headlineInvoices" : "Rechnungen", |
54 | "subscription.features.vpn": "Proxy & VPN Unterstützung", | 54 | "settings.account.headlinePassword" : "Passwort ändern", |
55 | "subscription.features.ads": "Nie mehr Werbung!", | 55 | "settings.account.headlineProfile" : "Profil aktualisieren", |
56 | "subscription.features.comingSoon": "folgt bald", | 56 | "settings.account.headlineSubscription" : "Dein Abonnement", |
57 | "infobar.servicesUpdated": "Deine Dienste wurden aktualisiert.", | 57 | "settings.account.headlineUpgrade" : "Upgrade dein Konto & unterstütze Franz", |
58 | "infobar.updateAvailable": "Eine neue Version von Franz ist verfügbar.", | 58 | "settings.account.invoiceDownload" : "Download", |
59 | "infobar.buttonReloadServices": "Dienste neuladen", | 59 | "settings.account.manageSubscription.label" : "Verwalte Dein Abonnement", |
60 | "infobar.buttonInstallUpdate": "Neustarten & Aktualisierung installieren", | 60 | "settings.account.mining.active" : "Du führst gerade {hashes} Berechnungen pro Sekunde aus.", |
61 | "infobar.requiredRequestsFailed": "Dienste und Benutzerinformationen konnten nicht geladen werden", | 61 | "settings.account.mining.cancel" : "Mining abbrechen", |
62 | "sidebar.settings": "Einstellungen", | 62 | "settings.account.mining.moreInformation" : "Weitere Informationen", |
63 | "sidebar.addNewService": "!!!Add new service", | 63 | "settings.account.mining.thankyou" : "Vielen Dank, dass du Franz mit deiner Rechenleistung unterstützt.", |
64 | "services.welcome": "Willkommen bei Franz", | 64 | "settings.account.successInfo" : "Deine Änderungen wurden gespeichert.", |
65 | "services.getStarted": "Loslegen", | 65 | "settings.account.tryReloadUserInfoRequest" : "Erneut versuchen", |
66 | "settings.account.headline": "Konto", | 66 | "settings.account.userInfoRequestFailed" : "Benutzerinformationen konnten nicht geladen werden", |
67 | "settings.account.headlineSubscription": "Dein Abonnement", | 67 | "settings.app.buttonInstallUpdate" : "Neustarten & Update installieren", |
68 | "settings.account.headlineUpgrade": "Erweitere Dein Konto & unterstütze Franz", | 68 | "settings.app.buttonSearchForUpdate" : "Nach Updates suchen", |
69 | "settings.account.headlineInvoices": "Rechnungen", | 69 | "settings.app.currentVersion" : "Aktuelle Version:", |
70 | "settings.account.manageSubscription.label": "Verwalte Dein Abonnement", | 70 | "settings.app.form.autoLaunchInBackground" : "Im Hintergrund öffnen", |
71 | "settings.account.accountType.basic": "Basis Konto", | 71 | "settings.app.form.autoLaunchOnStart" : "Franz beim Systemstart ausführen", |
72 | "settings.account.accountType.premium": "Premium-Supporter Konto", | 72 | "settings.app.form.beta" : "Beta-Versionen einbeziehen", |
73 | "settings.account.account.editButton": "Konto bearbeiten", | 73 | "settings.app.form.enableSpellchecking" : "Rechtschreibprüfung aktivieren", |
74 | "settings.account.invoiceDownload": "Herunterladen", | 74 | "settings.app.form.enableSystemTray" : "Franz in der Systemleiste anzeigen", |
75 | "settings.account.userInfoRequestFailed": "Benutzerinformationen konnten nicht geladen werden", | 75 | "settings.app.form.language" : "Sprache", |
76 | "settings.account.tryReloadUserInfoRequest": "Erneut versuchen", | 76 | "settings.app.form.minimizeToSystemTray" : "Franz in die Systemleiste minimieren", |
77 | "settings.account.headlineProfile": "Profil aktualisieren", | 77 | "settings.app.form.runInBackground" : "Franz im Hintergrund behalten, wenn das Fenster geschlossen wird", |
78 | "settings.account.headlineAccount": "Kontoinformationen", | 78 | "settings.app.form.showDisabledServices" : "Deaktivierte Services-Tabs anzeigen", |
79 | "settings.account.headlinePassword": "Passwort ändern", | 79 | "settings.app.headline" : "Einstellungen", |
80 | "settings.account.successInfo": "Deine Änderungen wurden gespeichert.", | 80 | "settings.app.headlineAdvanced" : "Erweitert", |
81 | "settings.account.buttonSave": "Profil aktualisieren", | 81 | "settings.app.headlineAppearance" : "Darstellung", |
82 | "settings.account.mining.thankyou": "Vielen Dank, dass Du Franz mit Deiner Rechenleistung unterstützt.", | 82 | "settings.app.headlineGeneral" : "Allgemein", |
83 | "settings.account.mining.active": "Du führst gerade {hashes} Berechnungen pro Sekunde aus.", | 83 | "settings.app.headlineLanguage" : "Sprache", |
84 | "settings.account.mining.moreInformation": "Weitere Informationen", | 84 | "settings.app.headlineUpdates" : "Updates", |
85 | "settings.account.mining.cancel": "Mining abbrechen", | 85 | "settings.app.restartRequired" : "Änderungen werden erst nach einem Neustart wirksam. ", |
86 | "settings.navigation.availableServices": "Verfügbare Dienste", | 86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", |
87 | "settings.navigation.yourServices": "Deine Dienste", | 87 | "settings.app.updateStatusAvailable" : "Update verfügbar, herunterladen...", |
88 | "settings.navigation.account": "Konto", | 88 | "settings.app.updateStatusSearching" : "Suche nach Updates", |
89 | "settings.navigation.settings": "Einstellungen", | 89 | "settings.app.updateStatusUpToDate" : "Du nutzt die aktuellste Version von Franz", |
90 | "settings.navigation.logout": "Abmelden", | 90 | "settings.navigation.account" : "Konto", |
91 | "settings.recipes.headline": "Verfügbare Dienste", | 91 | "settings.navigation.availableServices" : "Verfügbare Dienste", |
92 | "settings.recipes.mostPopular": "Am beliebtesten", | 92 | "settings.navigation.logout" : "Abmelden", |
93 | "settings.recipes.all": "Alle Dienste", | 93 | "settings.navigation.settings" : "Einstellungen", |
94 | "settings.recipes.dev": "Entwicklung", | 94 | "settings.navigation.yourServices" : "Deine Dienste", |
95 | "settings.recipes.nothingFound": "Entschuldigung, aber kein Dienst entspricht Deiner Suchanfrage.", | 95 | "settings.recipes.all" : "Alle Dienste", |
96 | "settings.recipes.servicesSuccessfulAddedInfo": "Dienst erfolgreich hinzugefügt", | 96 | "settings.recipes.dev" : "Entwicklung", |
97 | "settings.service.form.saveButton": "Dienst speichern", | 97 | "settings.recipes.headline" : "Verfügbare Dienste", |
98 | "settings.service.form.deleteButton": "Dienst entfernen", | 98 | "settings.recipes.missingService" : "Missing a service?", |
99 | "settings.service.form.availableServices": "Verfügbare Dienste", | 99 | "settings.recipes.mostPopular" : "Am beliebtesten", |
100 | "settings.service.form.yourServices": "Deine Dienste", | 100 | "settings.recipes.nothingFound" : "Entschuldigung, aber kein Dienst entspricht deiner Suchanfrage.", |
101 | "settings.service.form.addServiceHeadline": "{name} hinzufügen", | 101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Dienst erfolgreich hinzugefügt", |
102 | "settings.service.form.editServiceHeadline": "{name} bearbeiten", | 102 | "settings.service.error.goBack" : "Zurück zu den Diensten", |
103 | "settings.service.form.tabHosted": "Gehostet", | 103 | "settings.service.error.headline" : "Fehler", |
104 | "settings.service.form.tabOnPremise": "Selbst gehostet ⭐️", | 104 | "settings.service.error.message" : "Das Dienst-Rezept konnte nicht geladen werden.", |
105 | "settings.service.form.customUrlValidationError": "Dein eigener {name} server konnte nicht verifiziert werden.", | 105 | "settings.service.form.addServiceHeadline" : "{name} hinzufügen", |
106 | "settings.service.form.customUrlPremiumInfo": "Um einen selbst gehosteten Dienst hinzuzufügen, brauchst Du ein Franz Premium-Supporter Konto.", | 106 | "settings.service.form.availableServices" : "Verfügbare Dienste", |
107 | "settings.service.form.customUrlUpgradeAccount": "Erweitere Dein Konto", | 107 | "settings.service.form.customUrl" : "Eigener Server", |
108 | "settings.service.form.indirectMessageInfo": "Du wirst über alle neuen Nachrichten in einem Kanal informiert, nicht nur @username, @channel, @here, ...", | 108 | "settings.service.form.customUrlPremiumInfo" : "Um einen selbst gehosteten Dienst hinzuzufügen, brauchst du ein Franz Premium-Supporter Konto.", |
109 | "settings.service.error.headline": "Fehler", | 109 | "settings.service.form.customUrlUpgradeAccount" : "Upgrade dein Konto", |
110 | "settings.service.error.goBack": "Zurück zu den Diensten", | 110 | "settings.service.form.customUrlValidationError" : "Dein {name}-Server konnte nicht verifiziert werden.\",", |
111 | "settings.service.error.message": "Das Dienst-Rezept konnte nicht geladen werden.", | 111 | "settings.service.form.deleteButton" : "Dienst entfernen", |
112 | "settings.services.tooltip.isDisabled": "Dienst deaktiviert", | 112 | "settings.service.form.editServiceHeadline" : "{name} bearbeiten", |
113 | "settings.services.tooltip.notificationsDisabled": "Benachrichtigungen deaktiviert", | 113 | "settings.service.form.enableAudio" : "Audio aktivieren", |
114 | "settings.services.headline": "Deine Dienste", | 114 | "settings.service.form.enableNotification" : "Benachrichtigungen aktivieren", |
115 | "settings.services.noServicesAdded": "Du hast noch keine Dienste hinzugefügt.", | 115 | "settings.service.form.enableService" : "Dienst aktivieren", |
116 | "settings.services.discoverServices": "Dienste entdecken", | 116 | "settings.service.form.indirectMessageInfo" : "Du wirst über alle neuen Nachrichten in einem Kanal informiert, nicht nur @username, @channel, @here, ...", |
117 | "settings.services.updatedInfo": "Deine Änderungen wurden gespeichert.", | 117 | "settings.service.form.indirectMessages" : "Nachrichten-Badge für alle neuen Nachrichten anzeigen", |
118 | "settings.services.deletedInfo": "Dienst wurde entfernt", | 118 | "settings.service.form.isMutedInfo" : "Sämtliche Wiedergabe von Tönen wird deaktiviert", |
119 | "settings.app.headline": "Einstellungen", | 119 | "settings.service.form.name" : "Name", |
120 | "settings.app.headlineGeneral": "Allgemein", | 120 | "settings.service.form.saveButton" : "Dienst speichern", |
121 | "settings.app.headlineLanguage": "Sprache", | 121 | "settings.service.form.tabHosted" : "Gehostet", |
122 | "settings.app.headlineUpdates": "Aktualisierungen", | 122 | "settings.service.form.tabOnPremise" : "Selbst gehostet ⭐️", |
123 | "settings.app.buttonSearchForUpdate": "Auf Aktualisierungen prüfen", | 123 | "settings.service.form.team" : "Team", |
124 | "settings.app.buttonInstallUpdate": "Neustarten & Aktualisierung installieren", | 124 | "settings.service.form.yourServices" : "Deine Dienste", |
125 | "settings.app.updateStatusSearching": "Suche nach Aktualisierungen", | 125 | "settings.services.deletedInfo" : "Dienst wurde entfernt", |
126 | "settings.app.updateStatusAvailable": "Aktualisierung verfügbar, herunterladen...", | 126 | "settings.services.discoverServices" : "Dienste entdecken", |
127 | "settings.app.updateStatusUpToDate": "Du nutzt die aktuellste Version von Franz", | 127 | "settings.services.headline" : "Deine Dienste", |
128 | "settings.app.form.autoLaunchOnStart": "Franz beim Systemstart ausführen", | 128 | "settings.services.noServicesAdded" : "Du hast noch keine Dienste hinzugefügt.", |
129 | "settings.app.form.autoLaunchInBackground": "Im Hintergrund öffnen", | 129 | "settings.services.tooltip.isDisabled" : "Dienst deaktiviert", |
130 | "settings.app.form.minimizeToSystemTray": "Franz in die Systemleiste minimieren", | 130 | "settings.services.tooltip.isMuted" : "Audio ist deaktiviert", |
131 | "settings.app.form.runInBackground": "Franz im Hintergrund behalten, wenn das Fenster geschlossen wird", | 131 | "settings.services.tooltip.notificationsDisabled" : "Benachrichtigungen deaktiviert", |
132 | "settings.app.form.language": "Sprache", | 132 | "settings.services.updatedInfo" : "Deine Änderungen wurden gespeichert", |
133 | "settings.app.form.beta": "Beta-Versionen einbeziehen", | 133 | "settings.user.form.accountType.company" : "Unternehmen", |
134 | "settings.app.currentVersion": "Aktuelle Version:", | 134 | "settings.user.form.accountType.individual" : "Einzelperson", |
135 | "settings.service.form.name": "Name", | 135 | "settings.user.form.accountType.label" : "Konto-Typ", |
136 | "settings.service.form.enableService": "Dienst aktivieren", | 136 | "settings.user.form.accountType.non-profit" : "Non-Profit", |
137 | "settings.service.form.enableNotification": "Benachrichtigungen aktivieren", | 137 | "settings.user.form.currentPassword" : "Aktuelles Passwort", |
138 | "settings.service.form.team": "Team", | 138 | "settings.user.form.email" : "E-Mail", |
139 | "settings.service.form.customUrl": "Eigener Server", | 139 | "settings.user.form.firstname" : "Vorname", |
140 | "settings.service.form.indirectMessages": "Nachrichten-Badge für alle neuen Nachrichten anzeigen", | 140 | "settings.user.form.lastname" : "Nachname", |
141 | "settings.user.form.firstname": "Vorname", | 141 | "settings.user.form.newPassword" : "Neues Passwort", |
142 | "settings.user.form.lastname": "Nachname", | 142 | "sidebar.addNewService" : "!!!Add new service", |
143 | "settings.user.form.email": "E-Mail-Adresse", | 143 | "sidebar.mute" : "Audio deaktivieren", |
144 | "settings.user.form.currentPassword": "Aktuelles Passwort", | 144 | "sidebar.settings" : "Einstellungen", |
145 | "settings.user.form.newPassword": "Neues Passwort", | 145 | "sidebar.unmute" : "Audio aktivieren", |
146 | "settings.user.form.accountType.label": "Konto-Typ", | 146 | "signup.company.label" : "Unternehmen", |
147 | "settings.user.form.accountType.individual": "Einzelperson", | 147 | "signup.email.label" : "E-Mail Adresse", |
148 | "settings.user.form.accountType.non-profit": "Gemeinnützig", | 148 | "signup.emailDuplicate" : "Ein Benutzer mit dieser E-Mail Adresse existiert bereits.", |
149 | "settings.user.form.accountType.company": "Unternehmen", | 149 | "signup.firstname.label" : "Vorname", |
150 | "subscription.type.free": "kostenlos", | 150 | "signup.headline" : "Registrierung", |
151 | "subscription.type.month": "Monat", | 151 | "signup.lastname.label" : "Nachname", |
152 | "subscription.type.year": "Jahr", | 152 | "signup.legal.info" : "Mit der Erstellung eines Franz Kontos akzeptierst du die", |
153 | "subscription.type.mining": "Unterstütze Franz mit Rechenleistung", | 153 | "signup.legal.privacy" : "Datenschutzerklärung", |
154 | "subscription.mining.headline": "Wie funktioniert das?", | 154 | "signup.legal.terms" : "Nutzungsbedingungen", |
155 | "subscription.mining.experimental": "experimentell", | 155 | "signup.link.login" : "Du hast bereits ein Konto? Melde dich an.", |
156 | "subscription.mining.line1": "Durch das Aktivieren von \"Unterstützung mit Rechenleistung\", wird Franz circa 20-50% deines Prozessors nutzen, um die Crypto-Währung Monero zu minen, was ungefähr 5$/Jahr entspricht.", | 156 | "signup.password.label" : "Passwort", |
157 | "subscription.mining.line2": "Wir passen die Prozessor-Nutzung an Dein Arbeitsverhalten an, um Deinen Akku nicht unnötig zu belasten oder Dein System zu verlangsamen.", | 157 | "signup.submit.label" : "Konto erstellen", |
158 | "subscription.mining.line3": "So lange der Miner aktiv ist, hast Du unbegrenzten Zugang auf alle Franz Premium-Supporter Funktionen.", | 158 | "subscription.euTaxInfo" : "Preise sind exklusive Steuern. ", |
159 | "subscription.mining.moreInformation": "Erhalte mehr Informationen über diesen Plan.", | 159 | "subscription.features.ads" : "Nie mehr Werbung!", |
160 | "subscriptionPopup.buttonCancel": "Abbrechen", | 160 | "subscription.features.comingSoon" : "folgt bald", |
161 | "subscriptionPopup.buttonDone": "Fertig", | 161 | "subscription.features.customServices" : "Private Dienste für dich und dein Team", |
162 | "tabs.item.reload": "Neuladen", | 162 | "subscription.features.encryptedSync" : "Verschlüsselte Sitzungs-Synchronisation", |
163 | "tabs.item.edit": "Bearbeiten", | 163 | "subscription.features.onpremise" : "Integration von gehosteten Diensten, wie HipChat", |
164 | "tabs.item.disableNotifications": "Benachrichtigungen deaktivieren", | 164 | "subscription.features.vpn" : "Proxy & VPN Unterstützung", |
165 | "tabs.item.enableNotification": "Benachrichtigungen aktivieren", | 165 | "subscription.includedFeatures" : "Bezahlte Franz Premium Support Konten beinhalten", |
166 | "tabs.item.disableService": "Dienst deaktivieren", | 166 | "subscription.mining.experimental" : "experimentell", |
167 | "tabs.item.deleteService": "Dienst entfernen" | 167 | "subscription.mining.headline" : "Wie funktioniert das?", |
168 | "subscription.mining.line1" : "Durch das Aktivieren von \"Unterstützung mit Rechenleistung\", wird Franz circa 20-50% deines Prozessors nutzen, um die Crypto-Währung Monero zu minen, was ungefähr 5$\/Jahr entspricht.", | ||
169 | "subscription.mining.line2" : "Wir passen die Prozessor-Nutzung an dein Arbeitsverhalten an, um deinen Akku nicht unnötig zu belasten oder dein System zu verlangsamen.", | ||
170 | "subscription.mining.line3" : "So lange der Miner aktiv ist, hast du unbegrenzten Zugang auf alle Franz Premium-Supporter Funktionen.", | ||
171 | "subscription.mining.moreInformation" : "Erhalte mehr Informationen über diesen Plan.", | ||
172 | "subscription.paymentSessionError" : "Das Zahlungs-Formular konnte nicht geladen werden.", | ||
173 | "subscription.submit.label" : "Ich möchte die Entwicklung von Franz unterstützen", | ||
174 | "subscription.type.free" : "kostenlos", | ||
175 | "subscription.type.mining" : "Unterstütze Franz mit Rechenleistung", | ||
176 | "subscription.type.month" : "Monat", | ||
177 | "subscription.type.year" : "Jahr", | ||
178 | "subscriptionPopup.buttonCancel" : "Abbrechen", | ||
179 | "subscriptionPopup.buttonDone" : "Fertig", | ||
180 | "tabs.item.deleteService" : "Dienst entfernen", | ||
181 | "tabs.item.disableAudio" : "Audio deaktivieren", | ||
182 | "tabs.item.disableNotifications" : "Benachrichtigungen deaktivieren", | ||
183 | "tabs.item.disableService" : "Dienst deaktivieren", | ||
184 | "tabs.item.edit" : "Bearbeiten", | ||
185 | "tabs.item.enableAudio" : "Audio aktivieren", | ||
186 | "tabs.item.enableNotification" : "Benachrichtigungen aktivieren", | ||
187 | "tabs.item.enableService" : "Dienst aktivieren", | ||
188 | "tabs.item.reload" : "Neu laden", | ||
189 | "welcome.loginButton" : "Anmelden", | ||
190 | "welcome.signupButton" : "Kostenloses Konto erstellen", | ||
191 | "welcome.slogan" : "Kommunikation, die für Dich funktioniert" | ||
168 | } | 192 | } |
diff --git a/src/i18n/locales/el-GR.json b/src/i18n/locales/el-GR.json deleted file mode 100644 index 3710bc9a2..000000000 --- a/src/i18n/locales/el-GR.json +++ /dev/null | |||
@@ -1,169 +0,0 @@ | |||
1 | { | ||
2 | "global.api.unhealthy": "Δεν είναι δυνατή η σύνδεση με τις online υπηρεσίες του Franz", | ||
3 | "global.notConnectedToTheInternet": "Δεν είστε συνδεδεμένοι στο διαδίκτυο.", | ||
4 | "welcome.signupButton": "Δημιουργία δωρεάν λογαριασμού", | ||
5 | "welcome.loginButton": "Σύνδεση στο λογαριασμό σας", | ||
6 | "welcome.slogan": "Μηνύματα που λειτουργούν για εσάς", | ||
7 | "login.headline": "Σύνδεση", | ||
8 | "login.email.label": "Διεύθυνση ηλεκτρονικού ταχυδρομείου", | ||
9 | "login.password.label": "Κωδικός πρόσβασης", | ||
10 | "login.submit.label": "Σύνδεση", | ||
11 | "login.invalidCredentials": "Το email ή ο κωδικός πρόσβασης δεν είναι έγκυρος", | ||
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": "Ελέγξτε το email σας", | ||
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": "Δημιουργώντας έναν λογαριασμό Franz αποδέχεστε τους", | ||
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": "Αποστολή προσκλήσεων", | ||
44 | "invite.headline.friends": "Προσκαλέστε 3 από τους φίλους ή τους συναδέλφους σας", | ||
45 | "invite.name.label": "Όνομα", | ||
46 | "invite.email.label": "Διεύθυνση ηλεκτρονικού ταχυδρομείου", | ||
47 | "invite.skip.label": "Θέλω να το κάνω αργότερα", | ||
48 | "subscription.submit.label": "Θέλω να βοηθήσω στήν ανάπτυξη του Franz", | ||
49 | "subscription.paymentSessionError": "Δεν ήταν δυνατή η προετοιμασία της φόρμας πληρωμής", | ||
50 | "subscription.includedFeatures": "Ο Premium λογαριασμός υποστήριξης Franz περιλαμβάνει", | ||
51 | "subscription.features.onpremise": "Add on-premise / hosted services όπως το HipChat", | ||
52 | "subscription.features.customServices": "Ιδιωτικές υπηρεσίες για εσάς και την ομάδα σας", | ||
53 | "subscription.features.encryptedSync": "Κρυπτογραφημένος συγχρονισμός περιόδου σύνδεσης", | ||
54 | "subscription.features.vpn": "Υποστήριξη μεσολαβητή (Proxy) και VPN", | ||
55 | "subscription.features.ads": "Τέλος στις διαφημίσεις, :-D", | ||
56 | "subscription.features.comingSoon": "σύντομα", | ||
57 | "infobar.servicesUpdated": "Οι υπηρεσίες σας έχουν ενημερωθεί.", | ||
58 | "infobar.updateAvailable": "Υπάρχει διαθέσιμη μια νέα ενημέρωση για τον Franz.", | ||
59 | "infobar.buttonReloadServices": "Υπηρεσίες ανανέωσης", | ||
60 | "infobar.buttonInstallUpdate": "Επανεκκίνηση & εγκατάσταση ενημερώσεων", | ||
61 | "infobar.requiredRequestsFailed": "Δεν ήταν δυνατή η φόρτωση υπηρεσιών και πληροφοριών χρηστών", | ||
62 | "sidebar.settings": "Ρυθμίσεις", | ||
63 | "sidebar.addNewService": "!!!Add new service", | ||
64 | "services.welcome": "Καλώς ορίσατε στον Franz", | ||
65 | "services.getStarted": "Ξεκινήστε", | ||
66 | "settings.account.headline": "Λογαριασμός", | ||
67 | "settings.account.headlineSubscription": "Η συνδρομή σας", | ||
68 | "settings.account.headlineUpgrade": "Αναβάθμιση του λογαριασμού σας και υποστήριξη Franz", | ||
69 | "settings.account.headlineInvoices": "Τιμολόγια", | ||
70 | "settings.account.manageSubscription.label": "Διαχείριση της συνδρομής σας", | ||
71 | "settings.account.accountType.basic": "Βασικός λογαριασμός", | ||
72 | "settings.account.accountType.premium": "Υποστηριζόμενος λογαριασμός Premium", | ||
73 | "settings.account.account.editButton": "Επεξεργασία λογαριασμού", | ||
74 | "settings.account.invoiceDownload": "Λήψη", | ||
75 | "settings.account.userInfoRequestFailed": "Δεν ήταν δυνατή η φόρτωση πληροφοριών χρήστη", | ||
76 | "settings.account.tryReloadUserInfoRequest": "Δοκιμάστε ξανά", | ||
77 | "settings.account.headlineProfile": "Ενημέρωση προφίλ", | ||
78 | "settings.account.headlineAccount": "Πληροφορίες λογαριασμού", | ||
79 | "settings.account.headlinePassword": "Αλλαγή κωδικού πρόσβασης", | ||
80 | "settings.account.successInfo": "Οι αλλαγές σας έχουν αποθηκευτεί", | ||
81 | "settings.account.buttonSave": "Ενημέρωση προφίλ", | ||
82 | "settings.account.mining.thankyou": "Σας ευχαριστούμε για την υποστήριξη του Franz με την ισχύ επεξεργασίας σας", | ||
83 | "settings.account.mining.active": "Τώρα πραγματοποιείτε υπολογισμούς {hashes} ανά δευτερόλεπτο.", | ||
84 | "settings.account.mining.moreInformation": "Λάβετε περισσότερες πληροφορίες", | ||
85 | "settings.account.mining.cancel": "Άκυρο εξόρυξη", | ||
86 | "settings.navigation.availableServices": "Διαθέσιμες υπηρεσίες", | ||
87 | "settings.navigation.yourServices": "Οι υπηρεσίες σας", | ||
88 | "settings.navigation.account": "Λογαριασμός", | ||
89 | "settings.navigation.settings": "Ρυθμίσεις", | ||
90 | "settings.navigation.logout": "Αποσύνδεση", | ||
91 | "settings.recipes.headline": "Διαθέσιμες υπηρεσίες", | ||
92 | "settings.recipes.mostPopular": "Τα πιο δημοφιλή", | ||
93 | "settings.recipes.all": "Όλες οι υπηρεσίες", | ||
94 | "settings.recipes.dev": "Ανάπτυξη", | ||
95 | "settings.recipes.nothingFound": "Λυπούμαστε αλλά καμία υπηρεσία δεν ταιριάζει με τον όρο αναζήτησης.", | ||
96 | "settings.recipes.servicesSuccessfulAddedInfo": "Υπηρεσία προστέθηκε με επιτυχία", | ||
97 | "settings.service.form.saveButton": "Αποθήκευση υπηρεσίας", | ||
98 | "settings.service.form.deleteButton": "Διαγραφή υπηρεσίας", | ||
99 | "settings.service.form.availableServices": "Διαθέσιμες υπηρεσίες", | ||
100 | "settings.service.form.yourServices": "Οι υπηρεσίες σας", | ||
101 | "settings.service.form.addServiceHeadline": "Προσθήκη {όνομα}", | ||
102 | "settings.service.form.editServiceHeadline": "Επεξεργασία {όνομα}", | ||
103 | "settings.service.form.tabHosted": "Φιλοξενείται", | ||
104 | "settings.service.form.tabOnPremise": "Αυτο-φιλοξενείται ⭐️", | ||
105 | "settings.service.form.customUrlValidationError": "Δεν ήταν δυνατή η επικύρωση του προσαρμοσμένου διακομιστή {name}.", | ||
106 | "settings.service.form.customUrlPremiumInfo": "Για να προσθέσετε υπηρεσίες που φιλοξενούνται μόνος σας, χρειάζεστε έναν λογαριασμό υποστήριξης Premium Franz.", | ||
107 | "settings.service.form.customUrlUpgradeAccount": "Αναβάθμιση του λογαριασμού σας", | ||
108 | "settings.service.form.indirectMessageInfo": "Θα ειδοποιηθείτε για όλα τα νέα μηνύματα σε ένα κανάλι, όχι μόνο @username, @channel, @here, ...", | ||
109 | "settings.service.error.headline": "Σφάλμα", | ||
110 | "settings.service.error.goBack": "Επιστροφή στις υπηρεσίες", | ||
111 | "settings.service.error.message": "Δεν ήταν δυνατή η φόρτωση της συνταγής υπηρεσίας.", | ||
112 | "settings.services.tooltip.isDisabled": "Η υπηρεσία είναι απενεργοποιημένη", | ||
113 | "settings.services.tooltip.notificationsDisabled": "Οι ειδοποιήσεις είναι απενεργοποιημένες", | ||
114 | "settings.services.headline": "Οι υπηρεσίες σας", | ||
115 | "settings.services.noServicesAdded": "Δεν έχετε προσθέσει ακόμα υπηρεσίες.", | ||
116 | "settings.services.discoverServices": "Ανακαλύψτε τις υπηρεσίες", | ||
117 | "settings.services.updatedInfo": "Οι αλλαγές σας έχουν αποθηκευτεί", | ||
118 | "settings.services.deletedInfo": "Η υπηρεσία έχει διαγραφεί", | ||
119 | "settings.app.headline": "Ρυθμίσεις", | ||
120 | "settings.app.headlineΓενικά": "Γενικά", | ||
121 | "settings.app.headlineLanguage": "Γλώσσα", | ||
122 | "settings.app.headlineUpdates": "Ενημερώσεις", | ||
123 | "settings.app.buttonSearchForUpdate": "Έλεγχος για ενημερώσεις", | ||
124 | "settings.app.buttonInstallUpdate": "Επανεκκίνηση & εγκατάσταση ενημερώσεων", | ||
125 | "settings.app.updateStatusSearching": "Ψάχνει για ενημέρωση", | ||
126 | "settings.app.updateStatusAvailable": "Διαθέσιμη ενημέρωση, λήψη ...", | ||
127 | "settings.app.updateStatusUpToDate": "Χρησιμοποιείτε την τελευταία έκδοση του Franz", | ||
128 | "settings.app.form.autoLaunchOnStart": "Εκκίνηση του Franz στην αρχή", | ||
129 | "settings.app.form.autoLaunchInBackground": "Άνοιγμα στο παρασκήνιο", | ||
130 | "settings.app.form.enableSystemTray": "Εμφάνιση του Franz στο δίσκο συστήματος", | ||
131 | "settings.app.form.minimizeToSystemTray": "Ελαχιστοποίηση του Franz στο δίσκο συστήματος", | ||
132 | "settings.app.form.runInBackground": "Κρατήστε Franz στο παρασκήνιο κατά το κλείσιμο του παραθύρου", | ||
133 | "settings.app.form.language": "Γλώσσα", | ||
134 | "settings.app.form.beta": "Συμπεριλάβετε εκδόσεις beta", | ||
135 | "settings.app.currentVersion": "Τρέχουσα έκδοση:", | ||
136 | "settings.service.form.name": "Όνομα", | ||
137 | "settings.service.form.enableService": "Ενεργοποίηση υπηρεσίας", | ||
138 | "settings.service.form.enableNotification": "Ενεργοποίηση ειδοποιήσεων", | ||
139 | "settings.service.form.team": "Ομάδα", | ||
140 | "settings.service.form.customUrl": "Προσαρμοσμένος διακομιστής", | ||
141 | "settings.service.form.indirectMessages": "Εμφάνιση ειδοποίησης μηνύματος για όλα τα νέα μηνύματα", | ||
142 | "settings.user.form.firstname": "Όνομα", | ||
143 | "settings.user.form.lastname": "Επίθετο", | ||
144 | "settings.user.form.email": "Email", | ||
145 | "settings.user.form.currentPassword": "Τρέχων κωδικός πρόσβασης", | ||
146 | "settings.user.form.newPassword": "Νέος κωδικός πρόσβασης", | ||
147 | "settings.user.form.accountType.label": "Τύπος λογαριασμού", | ||
148 | "settings.user.form.accountType.individual": "Ατομική", | ||
149 | "settings.user.form.accountType.non-profit": "Μη κερδοσκοπικό", | ||
150 | "settings.user.form.accountType.company": "Εταιρεία", | ||
151 | "subscription.type.free": "δωρεάν", | ||
152 | "subscription.type.month": "μήνας", | ||
153 | "subscription.type.year": "έτος", | ||
154 | "subscription.type.mining": "Υποστήριξη Franz με ισχύ CPU", | ||
155 | "subscription.mining.headline": "Πώς λειτουργεί αυτό;", | ||
156 | "subscription.mining.experimental": "πειραματική", | ||
157 | "subscription.mining.line1": "Franz χρησιμοποιεί περίπου το 20-50% της CPU σας για να εξορύξει την κρυπτογράφηση Monero που ισούται περίπου με $ 5 / έτος.", | ||
158 | "subscription.mining.line2": "Θα προσαρμόσουμε τη χρήση της CPU με βάση τη συμπεριφορά εργασίας σας ώστε να μην αποστραγγίσουμε την μπαταρία σας και να επιβραδύνουμε εσάς και το μηχάνημά σας.", | ||
159 | "subscription.mining.line3": "Εφόσον ο Miner είναι ενεργός, θα έχετε απεριόριστη πρόσβαση σε όλα τα χαρακτηριστικά του Franz Premium Supporter.", | ||
160 | "subscription.mining.moreInformation": "Λάβετε περισσότερες πληροφορίες σχετικά με αυτό το πακέτο.", | ||
161 | "subscriptionPopup.buttonCancel": "Ακύρωση", | ||
162 | "subscriptionPopup.buttonDone": "Έγινε", | ||
163 | "tabs.item.reload": "Επαναφόρτωση", | ||
164 | "tabs.item.edit": "Επεξεργασία", | ||
165 | "tabs.item.disableNotifications": "Απενεργοποίηση ειδοποιήσεων", | ||
166 | "tabs.item.enableNotification": "Ενεργοποίηση ειδοποιήσεων", | ||
167 | "tabs.item.disableService": "Απενεργοποίηση υπηρεσίας", | ||
168 | "tabs.item.deleteService": "Διαγραφή υπηρεσίας" | ||
169 | } | ||
diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json new file mode 100644 index 000000000..459d097f3 --- /dev/null +++ b/src/i18n/locales/el.json | |||
@@ -0,0 +1,192 @@ | |||
1 | { | ||
2 | "global.api.unhealthy" : "Can't connect to Franz online services", | ||
3 | "global.notConnectedToTheInternet" : "You are not connected to the internet.", | ||
4 | "import.headline" : "Import your Franz 4 services", | ||
5 | "import.notSupportedHeadline" : "Services not yet supported in Franz 5", | ||
6 | "import.skip.label" : "I want to add services manually", | ||
7 | "import.submit.label" : "Import services", | ||
8 | "infobar.buttonChangelog" : "What is new?", | ||
9 | "infobar.buttonInstallUpdate" : "Restart & install update", | ||
10 | "infobar.buttonReloadServices" : "Reload services", | ||
11 | "infobar.requiredRequestsFailed" : "Could not load services and user information", | ||
12 | "infobar.servicesUpdated" : "Your services have been updated.", | ||
13 | "infobar.updateAvailable" : "A new update for Franz is available.", | ||
14 | "invite.email.label" : "Email address", | ||
15 | "invite.headline.friends" : "Invite 3 of your friends or colleagues", | ||
16 | "invite.name.label" : "Name", | ||
17 | "invite.skip.label" : "I want to do this later", | ||
18 | "invite.submit.label" : "Send invites", | ||
19 | "login.email.label" : "Email address", | ||
20 | "login.headline" : "Sign in", | ||
21 | "login.invalidCredentials" : "Email or password not valid", | ||
22 | "login.link.password" : "Reset password", | ||
23 | "login.link.signup" : "Create a free account", | ||
24 | "login.password.label" : "Password", | ||
25 | "login.serverLogout" : "Your session expired, please login again.", | ||
26 | "login.submit.label" : "Sign in", | ||
27 | "login.tokenExpired" : "Your session expired, please login again.", | ||
28 | "password.email.label" : "Email address", | ||
29 | "password.headline" : "Reset password", | ||
30 | "password.link.login" : "Sign in to your account", | ||
31 | "password.link.signup" : "Create a free account", | ||
32 | "password.noUser" : "No user with that email address was found", | ||
33 | "password.submit.label" : "Submit", | ||
34 | "password.successInfo" : "Please check your email", | ||
35 | "pricing.headline" : "Support Franz", | ||
36 | "pricing.link.skipPayment" : "I don't want to support the development of Franz.", | ||
37 | "pricing.submit.label" : "I want to support the development of Franz", | ||
38 | "pricing.support.label" : "Select your support plan", | ||
39 | "service.crashHandler.action" : "Reload {name}", | ||
40 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", | ||
41 | "service.crashHandler.headline" : "Oh no!", | ||
42 | "service.crashHandler.text" : "{name} has caused an error.", | ||
43 | "service.disabledHandler.action" : "Enable {name}", | ||
44 | "service.disabledHandler.headline" : "{name} is disabled", | ||
45 | "services.getStarted" : "Get started", | ||
46 | "services.welcome" : "Welcome to Franz", | ||
47 | "settings.account.account.editButton" : "Edit account", | ||
48 | "settings.account.accountType.basic" : "Basic Account", | ||
49 | "settings.account.accountType.premium" : "Premium Supporter Account", | ||
50 | "settings.account.buttonSave" : "Update profile", | ||
51 | "settings.account.headline" : "Account", | ||
52 | "settings.account.headlineAccount" : "Account information", | ||
53 | "settings.account.headlineInvoices" : "Invoices", | ||
54 | "settings.account.headlinePassword" : "Change password", | ||
55 | "settings.account.headlineProfile" : "Update profile", | ||
56 | "settings.account.headlineSubscription" : "Your subscription", | ||
57 | "settings.account.headlineUpgrade" : "Upgrade your account & support Franz", | ||
58 | "settings.account.invoiceDownload" : "Download", | ||
59 | "settings.account.manageSubscription.label" : "Manage your subscription", | ||
60 | "settings.account.mining.active" : "You are right now performing {hashes} calculations per second.", | ||
61 | "settings.account.mining.cancel" : "Cancel mining", | ||
62 | "settings.account.mining.moreInformation" : "Get more information", | ||
63 | "settings.account.mining.thankyou" : "Thank you for supporting Franz with your processing power.", | ||
64 | "settings.account.successInfo" : "Your changes have been saved", | ||
65 | "settings.account.tryReloadUserInfoRequest" : "Try again", | ||
66 | "settings.account.userInfoRequestFailed" : "Could not load user information", | ||
67 | "settings.app.buttonInstallUpdate" : "Restart & install update", | ||
68 | "settings.app.buttonSearchForUpdate" : "Check for updates", | ||
69 | "settings.app.currentVersion" : "Current version:", | ||
70 | "settings.app.form.autoLaunchInBackground" : "Open in background", | ||
71 | "settings.app.form.autoLaunchOnStart" : "Launch Franz on start", | ||
72 | "settings.app.form.beta" : "Include beta versions", | ||
73 | "settings.app.form.enableSpellchecking" : "Enable spell checking", | ||
74 | "settings.app.form.enableSystemTray" : "Show Franz in system tray", | ||
75 | "settings.app.form.language" : "Language", | ||
76 | "settings.app.form.minimizeToSystemTray" : "Minimize Franz to system tray", | ||
77 | "settings.app.form.runInBackground" : "Keep Franz in background when closing the window", | ||
78 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", | ||
79 | "settings.app.headline" : "Settings", | ||
80 | "settings.app.headlineAdvanced" : "Advanced", | ||
81 | "settings.app.headlineAppearance" : "Appearance", | ||
82 | "settings.app.headlineGeneral" : "General", | ||
83 | "settings.app.headlineLanguage" : "Language", | ||
84 | "settings.app.headlineUpdates" : "Updates", | ||
85 | "settings.app.restartRequired" : "Changes require restart", | ||
86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
87 | "settings.app.updateStatusAvailable" : "Update available, downloading...", | ||
88 | "settings.app.updateStatusSearching" : "Is searching for update", | ||
89 | "settings.app.updateStatusUpToDate" : "You are using the latest version of Franz", | ||
90 | "settings.navigation.account" : "Account", | ||
91 | "settings.navigation.availableServices" : "Available services", | ||
92 | "settings.navigation.logout" : "Logout", | ||
93 | "settings.navigation.settings" : "Settings", | ||
94 | "settings.navigation.yourServices" : "Your services", | ||
95 | "settings.recipes.all" : "All services", | ||
96 | "settings.recipes.dev" : "Development", | ||
97 | "settings.recipes.headline" : "Available services", | ||
98 | "settings.recipes.missingService" : "Missing a service?", | ||
99 | "settings.recipes.mostPopular" : "Most popular", | ||
100 | "settings.recipes.nothingFound" : "Sorry, but no service matched your search term.", | ||
101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Service successfully added", | ||
102 | "settings.service.error.goBack" : "Back to services", | ||
103 | "settings.service.error.headline" : "Error", | ||
104 | "settings.service.error.message" : "Could not load service recipe.", | ||
105 | "settings.service.form.addServiceHeadline" : "Add {name}", | ||
106 | "settings.service.form.availableServices" : "Available services", | ||
107 | "settings.service.form.customUrl" : "Custom server", | ||
108 | "settings.service.form.customUrlPremiumInfo" : "To add self hosted services, you need a Franz Premium Supporter Account.", | ||
109 | "settings.service.form.customUrlUpgradeAccount" : "Upgrade your account", | ||
110 | "settings.service.form.customUrlValidationError" : "Could not validate custom {name} server.", | ||
111 | "settings.service.form.deleteButton" : "Delete service", | ||
112 | "settings.service.form.editServiceHeadline" : "Edit {name}", | ||
113 | "settings.service.form.enableAudio" : "Enable audio", | ||
114 | "settings.service.form.enableNotification" : "Enable notifications", | ||
115 | "settings.service.form.enableService" : "Enable service", | ||
116 | "settings.service.form.indirectMessageInfo" : "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", | ||
117 | "settings.service.form.indirectMessages" : "Show message badge for all new messages", | ||
118 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", | ||
119 | "settings.service.form.name" : "Name", | ||
120 | "settings.service.form.saveButton" : "Save service", | ||
121 | "settings.service.form.tabHosted" : "Hosted", | ||
122 | "settings.service.form.tabOnPremise" : "Self hosted ⭐️", | ||
123 | "settings.service.form.team" : "Team", | ||
124 | "settings.service.form.yourServices" : "Your services", | ||
125 | "settings.services.deletedInfo" : "Service has been deleted", | ||
126 | "settings.services.discoverServices" : "Discover services", | ||
127 | "settings.services.headline" : "Your services", | ||
128 | "settings.services.noServicesAdded" : "You haven't added any services yet.", | ||
129 | "settings.services.tooltip.isDisabled" : "Service is disabled", | ||
130 | "settings.services.tooltip.isMuted" : "All sounds are muted", | ||
131 | "settings.services.tooltip.notificationsDisabled" : "Notifications are disabled", | ||
132 | "settings.services.updatedInfo" : "Your changes have been saved", | ||
133 | "settings.user.form.accountType.company" : "Company", | ||
134 | "settings.user.form.accountType.individual" : "Individual", | ||
135 | "settings.user.form.accountType.label" : "Account type", | ||
136 | "settings.user.form.accountType.non-profit" : "Non-Profit", | ||
137 | "settings.user.form.currentPassword" : "Current password", | ||
138 | "settings.user.form.email" : "Email", | ||
139 | "settings.user.form.firstname" : "First Name", | ||
140 | "settings.user.form.lastname" : "Last Name", | ||
141 | "settings.user.form.newPassword" : "New password", | ||
142 | "sidebar.addNewService" : "Add new service", | ||
143 | "sidebar.mute" : "Disable audio", | ||
144 | "sidebar.settings" : "Settings", | ||
145 | "sidebar.unmute" : "Enable audio", | ||
146 | "signup.company.label" : "Company", | ||
147 | "signup.email.label" : "Email address", | ||
148 | "signup.emailDuplicate" : "A user with that email address already exists", | ||
149 | "signup.firstname.label" : "First Name", | ||
150 | "signup.headline" : "Sign up", | ||
151 | "signup.lastname.label" : "Last Name", | ||
152 | "signup.legal.info" : "By creating a Franz account you accept the", | ||
153 | "signup.legal.privacy" : "Privacy Statement", | ||
154 | "signup.legal.terms" : "Terms of service", | ||
155 | "signup.link.login" : "Already have an account, sign in?", | ||
156 | "signup.password.label" : "Password", | ||
157 | "signup.submit.label" : "Create account", | ||
158 | "subscription.euTaxInfo" : "EU residents: local sales tax may apply", | ||
159 | "subscription.features.ads" : "No ads, ever!", | ||
160 | "subscription.features.comingSoon" : "coming soon", | ||
161 | "subscription.features.customServices" : "Private services for you and your team", | ||
162 | "subscription.features.encryptedSync" : "Encrypted session synchronization", | ||
163 | "subscription.features.onpremise" : "Add on-premise\/hosted services like HipChat", | ||
164 | "subscription.features.vpn" : "Proxy & VPN support", | ||
165 | "subscription.includedFeatures" : "Paid Franz Premium Supporter Account includes", | ||
166 | "subscription.mining.experimental" : "experimental", | ||
167 | "subscription.mining.headline" : "How does this work?", | ||
168 | "subscription.mining.line1" : "By enabling \"Support with processing power\", Franz will use about 20-50% of your CPU to mine the cryptocurrency Monero which equals approximately $ 5\/year.", | ||
169 | "subscription.mining.line2" : "We will adapt the CPU usage based to your work behaviour to not drain your battery and slow you and your machine down.", | ||
170 | "subscription.mining.line3" : "As long as the miner is active, you will have unlimited access to all the Franz Premium Supporter Features.", | ||
171 | "subscription.mining.moreInformation" : "Get more information about this plan.", | ||
172 | "subscription.paymentSessionError" : "Could not initialize payment form", | ||
173 | "subscription.submit.label" : "I want to support the development of Franz", | ||
174 | "subscription.type.free" : "free", | ||
175 | "subscription.type.mining" : "Support Franz with processing power", | ||
176 | "subscription.type.month" : "month", | ||
177 | "subscription.type.year" : "year", | ||
178 | "subscriptionPopup.buttonCancel" : "Cancel", | ||
179 | "subscriptionPopup.buttonDone" : "Done", | ||
180 | "tabs.item.deleteService" : "Delete service", | ||
181 | "tabs.item.disableAudio" : "Disable audio", | ||
182 | "tabs.item.disableNotifications" : "Disable notifications", | ||
183 | "tabs.item.disableService" : "Disable service", | ||
184 | "tabs.item.edit" : "Edit", | ||
185 | "tabs.item.enableAudio" : "Enable audio", | ||
186 | "tabs.item.enableNotification" : "Enable notifications", | ||
187 | "tabs.item.enableService" : "Enable service", | ||
188 | "tabs.item.reload" : "Reload", | ||
189 | "welcome.loginButton" : "Login to your account", | ||
190 | "welcome.signupButton" : "Create a free account", | ||
191 | "welcome.slogan" : "Messaging that works for you" | ||
192 | } | ||
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index fd8ba0fef..567537d75 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json | |||
@@ -21,8 +21,8 @@ | |||
21 | "password.link.signup": "Create a free account", | 21 | "password.link.signup": "Create a free account", |
22 | "password.link.login": "Sign in to your account", | 22 | "password.link.login": "Sign in to your account", |
23 | "signup.headline": "Sign up", | 23 | "signup.headline": "Sign up", |
24 | "signup.firstname.label": "Firstname", | 24 | "signup.firstname.label": "First Name", |
25 | "signup.lastname.label": "Lastname", | 25 | "signup.lastname.label": "Last Name", |
26 | "signup.email.label": "Email address", | 26 | "signup.email.label": "Email address", |
27 | "signup.company.label": "Company", | 27 | "signup.company.label": "Company", |
28 | "signup.password.label": "Password", | 28 | "signup.password.label": "Password", |
@@ -39,7 +39,7 @@ | |||
39 | "import.headline": "Import your Franz 4 services", | 39 | "import.headline": "Import your Franz 4 services", |
40 | "import.notSupportedHeadline": "Services not yet supported in Franz 5", | 40 | "import.notSupportedHeadline": "Services not yet supported in Franz 5", |
41 | "import.submit.label": "Import services", | 41 | "import.submit.label": "Import services", |
42 | "import.skip.label": "I want add services manually", | 42 | "import.skip.label": "I want to add services manually", |
43 | "invite.submit.label": "Send invites", | 43 | "invite.submit.label": "Send invites", |
44 | "invite.headline.friends": "Invite 3 of your friends or colleagues", | 44 | "invite.headline.friends": "Invite 3 of your friends or colleagues", |
45 | "invite.name.label": "Name", | 45 | "invite.name.label": "Name", |
@@ -58,17 +58,19 @@ | |||
58 | "infobar.updateAvailable": "A new update for Franz is available.", | 58 | "infobar.updateAvailable": "A new update for Franz is available.", |
59 | "infobar.buttonReloadServices": "Reload services", | 59 | "infobar.buttonReloadServices": "Reload services", |
60 | "infobar.buttonInstallUpdate": "Restart & install update", | 60 | "infobar.buttonInstallUpdate": "Restart & install update", |
61 | "infobar.buttonChangelog": "What is new?", | ||
61 | "infobar.requiredRequestsFailed": "Could not load services and user information", | 62 | "infobar.requiredRequestsFailed": "Could not load services and user information", |
62 | "sidebar.settings": "Settings", | 63 | "sidebar.settings": "Settings", |
63 | "sidebar.addNewService": "Add new service", | 64 | "sidebar.addNewService": "Add new service", |
64 | "sidebar.mute": "Disable audio", | 65 | "sidebar.muteApp": "Disable notifications & audio", |
65 | "sidebar.unmute": "Enable audio", | 66 | "sidebar.unmuteApp": "Enable notifications & audio", |
66 | "services.welcome": "Welcome to Franz", | 67 | "services.welcome": "Welcome to Franz", |
67 | "services.getStarted": "Get started", | 68 | "services.getStarted": "Get started", |
68 | "settings.account.headline": "Account", | 69 | "settings.account.headline": "Account", |
69 | "settings.account.headlineSubscription": "Your subscription", | 70 | "settings.account.headlineSubscription": "Your subscription", |
70 | "settings.account.headlineUpgrade": "Upgrade your account & support Franz", | 71 | "settings.account.headlineUpgrade": "Upgrade your account & support Franz", |
71 | "settings.account.headlineInvoices": "Invoices", | 72 | "settings.account.headlineInvoices": "Invoices", |
73 | "settings.account.headlineDangerZone": "Danger Zone", | ||
72 | "settings.account.manageSubscription.label": "Manage your subscription", | 74 | "settings.account.manageSubscription.label": "Manage your subscription", |
73 | "settings.account.accountType.basic": "Basic Account", | 75 | "settings.account.accountType.basic": "Basic Account", |
74 | "settings.account.accountType.premium": "Premium Supporter Account", | 76 | "settings.account.accountType.premium": "Premium Supporter Account", |
@@ -85,6 +87,9 @@ | |||
85 | "settings.account.mining.active": "You are right now performing {hashes} calculations per second.", | 87 | "settings.account.mining.active": "You are right now performing {hashes} calculations per second.", |
86 | "settings.account.mining.moreInformation": "Get more information", | 88 | "settings.account.mining.moreInformation": "Get more information", |
87 | "settings.account.mining.cancel": "Cancel mining", | 89 | "settings.account.mining.cancel": "Cancel mining", |
90 | "settings.account.deleteAccount": "Delete account", | ||
91 | "settings.account.deleteInfo": "If you don't need your Franz account any longer, you can delete your account and all related data here.", | ||
92 | "settings.account.deleteEmailSent": "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", | ||
88 | "settings.navigation.availableServices": "Available services", | 93 | "settings.navigation.availableServices": "Available services", |
89 | "settings.navigation.yourServices": "Your services", | 94 | "settings.navigation.yourServices": "Your services", |
90 | "settings.navigation.account": "Account", | 95 | "settings.navigation.account": "Account", |
@@ -96,6 +101,7 @@ | |||
96 | "settings.recipes.dev": "Development", | 101 | "settings.recipes.dev": "Development", |
97 | "settings.recipes.nothingFound": "Sorry, but no service matched your search term.", | 102 | "settings.recipes.nothingFound": "Sorry, but no service matched your search term.", |
98 | "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added", | 103 | "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added", |
104 | "settings.recipes.missingService": "Missing a service?", | ||
99 | "settings.service.form.saveButton": "Save service", | 105 | "settings.service.form.saveButton": "Save service", |
100 | "settings.service.form.deleteButton": "Delete service", | 106 | "settings.service.form.deleteButton": "Delete service", |
101 | "settings.service.form.availableServices": "Available services", | 107 | "settings.service.form.availableServices": "Available services", |
@@ -104,6 +110,7 @@ | |||
104 | "settings.service.form.editServiceHeadline": "Edit {name}", | 110 | "settings.service.form.editServiceHeadline": "Edit {name}", |
105 | "settings.service.form.tabHosted": "Hosted", | 111 | "settings.service.form.tabHosted": "Hosted", |
106 | "settings.service.form.tabOnPremise": "Self hosted ⭐️", | 112 | "settings.service.form.tabOnPremise": "Self hosted ⭐️", |
113 | "settings.service.form.useHostedService": "Use the hosted {name} service.", | ||
107 | "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.", | 114 | "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.", |
108 | "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Franz Premium Supporter Account.", | 115 | "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Franz Premium Supporter Account.", |
109 | "settings.service.form.customUrlUpgradeAccount": "Upgrade your account", | 116 | "settings.service.form.customUrlUpgradeAccount": "Upgrade your account", |
@@ -111,11 +118,15 @@ | |||
111 | "settings.service.form.name": "Name", | 118 | "settings.service.form.name": "Name", |
112 | "settings.service.form.enableService": "Enable service", | 119 | "settings.service.form.enableService": "Enable service", |
113 | "settings.service.form.enableNotification": "Enable notifications", | 120 | "settings.service.form.enableNotification": "Enable notifications", |
121 | "settings.service.form.enableBadge": "Show unread message badges", | ||
114 | "settings.service.form.team": "Team", | 122 | "settings.service.form.team": "Team", |
115 | "settings.service.form.customUrl": "Custom server", | 123 | "settings.service.form.customUrl": "Custom server", |
116 | "settings.service.form.indirectMessages": "Show message badge for all new messages", | 124 | "settings.service.form.indirectMessages": "Show message badge for all new messages", |
117 | "settings.service.form.enableAudio": "Enable audio", | 125 | "settings.service.form.enableAudio": "Enable audio", |
118 | "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", | 126 | "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", |
127 | "settings.service.form.headlineNotifications": "Notifications", | ||
128 | "settings.service.form.headlineBadges": "Unread message badges", | ||
129 | "settings.service.form.headlineGeneral": "General", | ||
119 | "settings.service.error.headline": "Error", | 130 | "settings.service.error.headline": "Error", |
120 | "settings.service.error.goBack": "Back to services", | 131 | "settings.service.error.goBack": "Back to services", |
121 | "settings.service.error.message": "Could not load service recipe.", | 132 | "settings.service.error.message": "Could not load service recipe.", |
@@ -132,6 +143,7 @@ | |||
132 | "settings.app.headlineLanguage": "Language", | 143 | "settings.app.headlineLanguage": "Language", |
133 | "settings.app.headlineUpdates": "Updates", | 144 | "settings.app.headlineUpdates": "Updates", |
134 | "settings.app.headlineAppearance": "Appearance", | 145 | "settings.app.headlineAppearance": "Appearance", |
146 | "settings.app.headlineAdvanced": "Advanced", | ||
135 | "settings.app.buttonSearchForUpdate": "Check for updates", | 147 | "settings.app.buttonSearchForUpdate": "Check for updates", |
136 | "settings.app.buttonInstallUpdate": "Restart & install update", | 148 | "settings.app.buttonInstallUpdate": "Restart & install update", |
137 | "settings.app.updateStatusSearching": "Is searching for update", | 149 | "settings.app.updateStatusSearching": "Is searching for update", |
@@ -143,11 +155,15 @@ | |||
143 | "settings.app.form.minimizeToSystemTray": "Minimize Franz to system tray", | 155 | "settings.app.form.minimizeToSystemTray": "Minimize Franz to system tray", |
144 | "settings.app.form.runInBackground": "Keep Franz in background when closing the window", | 156 | "settings.app.form.runInBackground": "Keep Franz in background when closing the window", |
145 | "settings.app.form.language": "Language", | 157 | "settings.app.form.language": "Language", |
158 | "settings.app.form.enableSpellchecking": "Enable spell checking", | ||
146 | "settings.app.form.showDisabledServices": "Display disabled services tabs", | 159 | "settings.app.form.showDisabledServices": "Display disabled services tabs", |
160 | "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", | ||
147 | "settings.app.form.beta": "Include beta versions", | 161 | "settings.app.form.beta": "Include beta versions", |
162 | "settings.app.translationHelp": "Help us to translate Franz into your language.", | ||
148 | "settings.app.currentVersion": "Current version:", | 163 | "settings.app.currentVersion": "Current version:", |
149 | "settings.user.form.firstname": "Firstname", | 164 | "settings.app.restartRequired": "Changes require restart", |
150 | "settings.user.form.lastname": "Lastname", | 165 | "settings.user.form.firstname": "First Name", |
166 | "settings.user.form.lastname": "Last Name", | ||
151 | "settings.user.form.email": "Email", | 167 | "settings.user.form.email": "Email", |
152 | "settings.user.form.currentPassword": "Current password", | 168 | "settings.user.form.currentPassword": "Current password", |
153 | "settings.user.form.newPassword": "New password", | 169 | "settings.user.form.newPassword": "New password", |
@@ -165,6 +181,7 @@ | |||
165 | "subscription.mining.line2": "We will adapt the CPU usage based to your work behaviour to not drain your battery and slow you and your machine down.", | 181 | "subscription.mining.line2": "We will adapt the CPU usage based to your work behaviour to not drain your battery and slow you and your machine down.", |
166 | "subscription.mining.line3": "As long as the miner is active, you will have unlimited access to all the Franz Premium Supporter Features.", | 182 | "subscription.mining.line3": "As long as the miner is active, you will have unlimited access to all the Franz Premium Supporter Features.", |
167 | "subscription.mining.moreInformation": "Get more information about this plan.", | 183 | "subscription.mining.moreInformation": "Get more information about this plan.", |
184 | "subscription.euTaxInfo": "EU residents: local sales tax may apply", | ||
168 | "subscriptionPopup.buttonCancel": "Cancel", | 185 | "subscriptionPopup.buttonCancel": "Cancel", |
169 | "subscriptionPopup.buttonDone": "Done", | 186 | "subscriptionPopup.buttonDone": "Done", |
170 | "tabs.item.reload": "Reload", | 187 | "tabs.item.reload": "Reload", |
@@ -181,5 +198,5 @@ | |||
181 | "service.crashHandler.action": "Reload {name}", | 198 | "service.crashHandler.action": "Reload {name}", |
182 | "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds", | 199 | "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds", |
183 | "service.disabledHandler.headline": "{name} is disabled", | 200 | "service.disabledHandler.headline": "{name} is disabled", |
184 | "service.disabledHandler.action": "Enable {name}" | 201 | "service.disabledHandler.action": "Enable {name}" |
185 | } | 202 | } |
diff --git a/src/i18n/locales/es-ES.json b/src/i18n/locales/es-ES.json deleted file mode 100644 index f71b07b2d..000000000 --- a/src/i18n/locales/es-ES.json +++ /dev/null | |||
@@ -1,168 +0,0 @@ | |||
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/es.json b/src/i18n/locales/es.json new file mode 100644 index 000000000..459d097f3 --- /dev/null +++ b/src/i18n/locales/es.json | |||
@@ -0,0 +1,192 @@ | |||
1 | { | ||
2 | "global.api.unhealthy" : "Can't connect to Franz online services", | ||
3 | "global.notConnectedToTheInternet" : "You are not connected to the internet.", | ||
4 | "import.headline" : "Import your Franz 4 services", | ||
5 | "import.notSupportedHeadline" : "Services not yet supported in Franz 5", | ||
6 | "import.skip.label" : "I want to add services manually", | ||
7 | "import.submit.label" : "Import services", | ||
8 | "infobar.buttonChangelog" : "What is new?", | ||
9 | "infobar.buttonInstallUpdate" : "Restart & install update", | ||
10 | "infobar.buttonReloadServices" : "Reload services", | ||
11 | "infobar.requiredRequestsFailed" : "Could not load services and user information", | ||
12 | "infobar.servicesUpdated" : "Your services have been updated.", | ||
13 | "infobar.updateAvailable" : "A new update for Franz is available.", | ||
14 | "invite.email.label" : "Email address", | ||
15 | "invite.headline.friends" : "Invite 3 of your friends or colleagues", | ||
16 | "invite.name.label" : "Name", | ||
17 | "invite.skip.label" : "I want to do this later", | ||
18 | "invite.submit.label" : "Send invites", | ||
19 | "login.email.label" : "Email address", | ||
20 | "login.headline" : "Sign in", | ||
21 | "login.invalidCredentials" : "Email or password not valid", | ||
22 | "login.link.password" : "Reset password", | ||
23 | "login.link.signup" : "Create a free account", | ||
24 | "login.password.label" : "Password", | ||
25 | "login.serverLogout" : "Your session expired, please login again.", | ||
26 | "login.submit.label" : "Sign in", | ||
27 | "login.tokenExpired" : "Your session expired, please login again.", | ||
28 | "password.email.label" : "Email address", | ||
29 | "password.headline" : "Reset password", | ||
30 | "password.link.login" : "Sign in to your account", | ||
31 | "password.link.signup" : "Create a free account", | ||
32 | "password.noUser" : "No user with that email address was found", | ||
33 | "password.submit.label" : "Submit", | ||
34 | "password.successInfo" : "Please check your email", | ||
35 | "pricing.headline" : "Support Franz", | ||
36 | "pricing.link.skipPayment" : "I don't want to support the development of Franz.", | ||
37 | "pricing.submit.label" : "I want to support the development of Franz", | ||
38 | "pricing.support.label" : "Select your support plan", | ||
39 | "service.crashHandler.action" : "Reload {name}", | ||
40 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", | ||
41 | "service.crashHandler.headline" : "Oh no!", | ||
42 | "service.crashHandler.text" : "{name} has caused an error.", | ||
43 | "service.disabledHandler.action" : "Enable {name}", | ||
44 | "service.disabledHandler.headline" : "{name} is disabled", | ||
45 | "services.getStarted" : "Get started", | ||
46 | "services.welcome" : "Welcome to Franz", | ||
47 | "settings.account.account.editButton" : "Edit account", | ||
48 | "settings.account.accountType.basic" : "Basic Account", | ||
49 | "settings.account.accountType.premium" : "Premium Supporter Account", | ||
50 | "settings.account.buttonSave" : "Update profile", | ||
51 | "settings.account.headline" : "Account", | ||
52 | "settings.account.headlineAccount" : "Account information", | ||
53 | "settings.account.headlineInvoices" : "Invoices", | ||
54 | "settings.account.headlinePassword" : "Change password", | ||
55 | "settings.account.headlineProfile" : "Update profile", | ||
56 | "settings.account.headlineSubscription" : "Your subscription", | ||
57 | "settings.account.headlineUpgrade" : "Upgrade your account & support Franz", | ||
58 | "settings.account.invoiceDownload" : "Download", | ||
59 | "settings.account.manageSubscription.label" : "Manage your subscription", | ||
60 | "settings.account.mining.active" : "You are right now performing {hashes} calculations per second.", | ||
61 | "settings.account.mining.cancel" : "Cancel mining", | ||
62 | "settings.account.mining.moreInformation" : "Get more information", | ||
63 | "settings.account.mining.thankyou" : "Thank you for supporting Franz with your processing power.", | ||
64 | "settings.account.successInfo" : "Your changes have been saved", | ||
65 | "settings.account.tryReloadUserInfoRequest" : "Try again", | ||
66 | "settings.account.userInfoRequestFailed" : "Could not load user information", | ||
67 | "settings.app.buttonInstallUpdate" : "Restart & install update", | ||
68 | "settings.app.buttonSearchForUpdate" : "Check for updates", | ||
69 | "settings.app.currentVersion" : "Current version:", | ||
70 | "settings.app.form.autoLaunchInBackground" : "Open in background", | ||
71 | "settings.app.form.autoLaunchOnStart" : "Launch Franz on start", | ||
72 | "settings.app.form.beta" : "Include beta versions", | ||
73 | "settings.app.form.enableSpellchecking" : "Enable spell checking", | ||
74 | "settings.app.form.enableSystemTray" : "Show Franz in system tray", | ||
75 | "settings.app.form.language" : "Language", | ||
76 | "settings.app.form.minimizeToSystemTray" : "Minimize Franz to system tray", | ||
77 | "settings.app.form.runInBackground" : "Keep Franz in background when closing the window", | ||
78 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", | ||
79 | "settings.app.headline" : "Settings", | ||
80 | "settings.app.headlineAdvanced" : "Advanced", | ||
81 | "settings.app.headlineAppearance" : "Appearance", | ||
82 | "settings.app.headlineGeneral" : "General", | ||
83 | "settings.app.headlineLanguage" : "Language", | ||
84 | "settings.app.headlineUpdates" : "Updates", | ||
85 | "settings.app.restartRequired" : "Changes require restart", | ||
86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
87 | "settings.app.updateStatusAvailable" : "Update available, downloading...", | ||
88 | "settings.app.updateStatusSearching" : "Is searching for update", | ||
89 | "settings.app.updateStatusUpToDate" : "You are using the latest version of Franz", | ||
90 | "settings.navigation.account" : "Account", | ||
91 | "settings.navigation.availableServices" : "Available services", | ||
92 | "settings.navigation.logout" : "Logout", | ||
93 | "settings.navigation.settings" : "Settings", | ||
94 | "settings.navigation.yourServices" : "Your services", | ||
95 | "settings.recipes.all" : "All services", | ||
96 | "settings.recipes.dev" : "Development", | ||
97 | "settings.recipes.headline" : "Available services", | ||
98 | "settings.recipes.missingService" : "Missing a service?", | ||
99 | "settings.recipes.mostPopular" : "Most popular", | ||
100 | "settings.recipes.nothingFound" : "Sorry, but no service matched your search term.", | ||
101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Service successfully added", | ||
102 | "settings.service.error.goBack" : "Back to services", | ||
103 | "settings.service.error.headline" : "Error", | ||
104 | "settings.service.error.message" : "Could not load service recipe.", | ||
105 | "settings.service.form.addServiceHeadline" : "Add {name}", | ||
106 | "settings.service.form.availableServices" : "Available services", | ||
107 | "settings.service.form.customUrl" : "Custom server", | ||
108 | "settings.service.form.customUrlPremiumInfo" : "To add self hosted services, you need a Franz Premium Supporter Account.", | ||
109 | "settings.service.form.customUrlUpgradeAccount" : "Upgrade your account", | ||
110 | "settings.service.form.customUrlValidationError" : "Could not validate custom {name} server.", | ||
111 | "settings.service.form.deleteButton" : "Delete service", | ||
112 | "settings.service.form.editServiceHeadline" : "Edit {name}", | ||
113 | "settings.service.form.enableAudio" : "Enable audio", | ||
114 | "settings.service.form.enableNotification" : "Enable notifications", | ||
115 | "settings.service.form.enableService" : "Enable service", | ||
116 | "settings.service.form.indirectMessageInfo" : "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", | ||
117 | "settings.service.form.indirectMessages" : "Show message badge for all new messages", | ||
118 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", | ||
119 | "settings.service.form.name" : "Name", | ||
120 | "settings.service.form.saveButton" : "Save service", | ||
121 | "settings.service.form.tabHosted" : "Hosted", | ||
122 | "settings.service.form.tabOnPremise" : "Self hosted ⭐️", | ||
123 | "settings.service.form.team" : "Team", | ||
124 | "settings.service.form.yourServices" : "Your services", | ||
125 | "settings.services.deletedInfo" : "Service has been deleted", | ||
126 | "settings.services.discoverServices" : "Discover services", | ||
127 | "settings.services.headline" : "Your services", | ||
128 | "settings.services.noServicesAdded" : "You haven't added any services yet.", | ||
129 | "settings.services.tooltip.isDisabled" : "Service is disabled", | ||
130 | "settings.services.tooltip.isMuted" : "All sounds are muted", | ||
131 | "settings.services.tooltip.notificationsDisabled" : "Notifications are disabled", | ||
132 | "settings.services.updatedInfo" : "Your changes have been saved", | ||
133 | "settings.user.form.accountType.company" : "Company", | ||
134 | "settings.user.form.accountType.individual" : "Individual", | ||
135 | "settings.user.form.accountType.label" : "Account type", | ||
136 | "settings.user.form.accountType.non-profit" : "Non-Profit", | ||
137 | "settings.user.form.currentPassword" : "Current password", | ||
138 | "settings.user.form.email" : "Email", | ||
139 | "settings.user.form.firstname" : "First Name", | ||
140 | "settings.user.form.lastname" : "Last Name", | ||
141 | "settings.user.form.newPassword" : "New password", | ||
142 | "sidebar.addNewService" : "Add new service", | ||
143 | "sidebar.mute" : "Disable audio", | ||
144 | "sidebar.settings" : "Settings", | ||
145 | "sidebar.unmute" : "Enable audio", | ||
146 | "signup.company.label" : "Company", | ||
147 | "signup.email.label" : "Email address", | ||
148 | "signup.emailDuplicate" : "A user with that email address already exists", | ||
149 | "signup.firstname.label" : "First Name", | ||
150 | "signup.headline" : "Sign up", | ||
151 | "signup.lastname.label" : "Last Name", | ||
152 | "signup.legal.info" : "By creating a Franz account you accept the", | ||
153 | "signup.legal.privacy" : "Privacy Statement", | ||
154 | "signup.legal.terms" : "Terms of service", | ||
155 | "signup.link.login" : "Already have an account, sign in?", | ||
156 | "signup.password.label" : "Password", | ||
157 | "signup.submit.label" : "Create account", | ||
158 | "subscription.euTaxInfo" : "EU residents: local sales tax may apply", | ||
159 | "subscription.features.ads" : "No ads, ever!", | ||
160 | "subscription.features.comingSoon" : "coming soon", | ||
161 | "subscription.features.customServices" : "Private services for you and your team", | ||
162 | "subscription.features.encryptedSync" : "Encrypted session synchronization", | ||
163 | "subscription.features.onpremise" : "Add on-premise\/hosted services like HipChat", | ||
164 | "subscription.features.vpn" : "Proxy & VPN support", | ||
165 | "subscription.includedFeatures" : "Paid Franz Premium Supporter Account includes", | ||
166 | "subscription.mining.experimental" : "experimental", | ||
167 | "subscription.mining.headline" : "How does this work?", | ||
168 | "subscription.mining.line1" : "By enabling \"Support with processing power\", Franz will use about 20-50% of your CPU to mine the cryptocurrency Monero which equals approximately $ 5\/year.", | ||
169 | "subscription.mining.line2" : "We will adapt the CPU usage based to your work behaviour to not drain your battery and slow you and your machine down.", | ||
170 | "subscription.mining.line3" : "As long as the miner is active, you will have unlimited access to all the Franz Premium Supporter Features.", | ||
171 | "subscription.mining.moreInformation" : "Get more information about this plan.", | ||
172 | "subscription.paymentSessionError" : "Could not initialize payment form", | ||
173 | "subscription.submit.label" : "I want to support the development of Franz", | ||
174 | "subscription.type.free" : "free", | ||
175 | "subscription.type.mining" : "Support Franz with processing power", | ||
176 | "subscription.type.month" : "month", | ||
177 | "subscription.type.year" : "year", | ||
178 | "subscriptionPopup.buttonCancel" : "Cancel", | ||
179 | "subscriptionPopup.buttonDone" : "Done", | ||
180 | "tabs.item.deleteService" : "Delete service", | ||
181 | "tabs.item.disableAudio" : "Disable audio", | ||
182 | "tabs.item.disableNotifications" : "Disable notifications", | ||
183 | "tabs.item.disableService" : "Disable service", | ||
184 | "tabs.item.edit" : "Edit", | ||
185 | "tabs.item.enableAudio" : "Enable audio", | ||
186 | "tabs.item.enableNotification" : "Enable notifications", | ||
187 | "tabs.item.enableService" : "Enable service", | ||
188 | "tabs.item.reload" : "Reload", | ||
189 | "welcome.loginButton" : "Login to your account", | ||
190 | "welcome.signupButton" : "Create a free account", | ||
191 | "welcome.slogan" : "Messaging that works for you" | ||
192 | } | ||
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 2863f47e4..d54d7c34e 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json | |||
@@ -1,168 +1,192 @@ | |||
1 | { | 1 | { |
2 | "global.api.unhealthy": "Impossible de se connecter aux services en ligne de Franz", | 2 | "global.api.unhealthy" : "Impossible de se connecter aux services en ligne de Franz", |
3 | "global.notConnectedToTheInternet": "Vous n'êtes pas connecté à Internet.", | 3 | "global.notConnectedToTheInternet" : "Vous n'êtes pas connecté à Internet.", |
4 | "welcome.signupButton": "Créer un compte gratuitement", | 4 | "import.headline" : "Importez vos services depuis Franz 4", |
5 | "welcome.loginButton": "Connectez-vous à votre compte", | 5 | "import.notSupportedHeadline" : "Services non supportés actuellement dans Franz 5", |
6 | "welcome.slogan": "Une messagerie qui fonctionne pour vous", | 6 | "import.skip.label" : "Je veux ajouter des services manuellement", |
7 | "login.headline": "S'inscrire", | 7 | "import.submit.label" : "Importer des services", |
8 | "login.email.label": "Adresse e-mail", | 8 | "infobar.buttonChangelog" : "What is new?", |
9 | "login.password.label": "Mot de passe", | 9 | "infobar.buttonInstallUpdate" : "Redémarrer et installer la mise à jour", |
10 | "login.submit.label": "Se connecter", | 10 | "infobar.buttonReloadServices" : "Recharger les services", |
11 | "login.invalidCredentials": "E-mail ou mot de passe invalide", | 11 | "infobar.requiredRequestsFailed" : "Impossible de charger les services et les informations de l'utilisateur", |
12 | "login.tokenExpired": "Votre session a expiré, veuillez vous reconnecter.", | 12 | "infobar.servicesUpdated" : "Vos services ont été mis à jour.", |
13 | "login.serverLogout": "Votre session a expiré, veuillez vous reconnecter.", | 13 | "infobar.updateAvailable" : "Une nouvelle mise à jour est disponible pour Franz.", |
14 | "login.link.signup": "Créer un compte gratuitement", | 14 | "invite.email.label" : "Adresse e-mail", |
15 | "login.link.password": "Réinitialiser le mot de passe", | 15 | "invite.headline.friends" : "Invitez 3 de vos amis ou collègues", |
16 | "password.headline": "Réinitialiser le mot de passe", | 16 | "invite.name.label" : "Nom", |
17 | "password.email.label": "Adresse e-mail", | 17 | "invite.skip.label" : "Je veux faire cela plus tard", |
18 | "password.submit.label": "Soumettre", | 18 | "invite.submit.label" : "Envoyer des invitations", |
19 | "password.noUser": "Aucun utilisateur avec cette adresse e-mail n'a été trouvé", | 19 | "login.email.label" : "Adresse e-mail", |
20 | "password.successInfo": "Merci de consulter vos e-mails", | 20 | "login.headline" : "S'inscrire", |
21 | "password.link.signup": "Créer un compte gratuitement", | 21 | "login.invalidCredentials" : "E-mail ou mot de passe invalide", |
22 | "password.link.login": "Connectez-vous à votre compte", | 22 | "login.link.password" : "Réinitialiser le mot de passe", |
23 | "signup.headline": "S'inscrire", | 23 | "login.link.signup" : "Créer un compte gratuitement", |
24 | "signup.firstname.label": "Prénom", | 24 | "login.password.label" : "Mot de passe", |
25 | "signup.lastname.label": "Nom", | 25 | "login.serverLogout" : "Votre session a expiré, veuillez vous reconnecter.", |
26 | "signup.email.label": "Adresse e-mail", | 26 | "login.submit.label" : "Se connecter", |
27 | "signup.company.label": "Compagnie", | 27 | "login.tokenExpired" : "Votre session a expiré, veuillez vous reconnecter.", |
28 | "signup.password.label": "Mot de passe", | 28 | "password.email.label" : "Adresse e-mail", |
29 | "signup.submit.label": "Créer un compte", | 29 | "password.headline" : "Réinitialiser le mot de passe", |
30 | "signup.link.login": "Vous possédez déjà un compte ? Connectez-vous", | 30 | "password.link.login" : "Connectez-vous à votre compte", |
31 | "signup.emailDuplicate": "Un utilisateur avec cette adresse e-mail existe déjà", | 31 | "password.link.signup" : "Créer un compte gratuitement", |
32 | "signup.legal.info": "En créant un compte Franz, vous acceptez les", | 32 | "password.noUser" : "Aucun utilisateur avec cette adresse e-mail n'a été trouvé", |
33 | "signup.legal.terms": "Conditions d'utilisation", | 33 | "password.submit.label" : "Soumettre", |
34 | "signup.legal.privacy": "Déclaration de confidentialité", | 34 | "password.successInfo" : "Merci de consulter vos e-mails", |
35 | "pricing.headline": "Supportez Franz", | 35 | "pricing.headline" : "Supportez Franz", |
36 | "pricing.support.label": "Sélectionnez votre plan de soutien", | 36 | "pricing.link.skipPayment" : "Je ne veux pas soutenir le développement de Franz.", |
37 | "pricing.submit.label": "Je veux soutenir le développement de Franz", | 37 | "pricing.submit.label" : "Je veux soutenir le développement de Franz", |
38 | "pricing.link.skipPayment": "Je ne veux pas soutenir le développement de Franz.", | 38 | "pricing.support.label" : "Sélectionnez votre plan de soutien", |
39 | "import.headline": "Importez vos services depuis Franz 4", | 39 | "service.crashHandler.action" : "Reload {name}", |
40 | "import.notSupportedHeadline": "Services non supportés actuellement dans Franz 5", | 40 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", |
41 | "import.submit.label": "Importer des services", | 41 | "service.crashHandler.headline" : "Oh no!", |
42 | "import.skip.label": "Je veux ajouter des services manuellement", | 42 | "service.crashHandler.text" : "{name} has caused an error.", |
43 | "invite.submit.label": "Envoyer des invitations", | 43 | "service.disabledHandler.action" : "Enable {name}", |
44 | "invite.headline.friends": "Invitez 3 de vos amis ou collègues", | 44 | "service.disabledHandler.headline" : "{name} is disabled", |
45 | "invite.name.label": "Nom", | 45 | "services.getStarted" : "Commencer", |
46 | "invite.email.label": "Adresse e-mail", | 46 | "services.welcome" : "Bienvenue sur Franz", |
47 | "invite.skip.label": "Je veux faire cela plus tard", | 47 | "settings.account.account.editButton" : "Modifier le compte", |
48 | "subscription.submit.label": "Je veux soutenir le développement de Franz", | 48 | "settings.account.accountType.basic" : "Compte basique", |
49 | "subscription.paymentSessionError": "Impossible d'initialiser le formulaire de paiement", | 49 | "settings.account.accountType.premium" : "Compte Supporter Premium", |
50 | "subscription.includedFeatures": "Le compte payant Supporter Premium Franz inclut", | 50 | "settings.account.buttonSave" : "Mettre à jour le profil", |
51 | "subscription.features.onpremise": "Add on-premise/hosted services like HipChat", | 51 | "settings.account.headline" : "Compte", |
52 | "subscription.features.customServices": "Des services privés pour vous et votre équipe", | 52 | "settings.account.headlineAccount" : "Informations de compte", |
53 | "subscription.features.encryptedSync": "Synchronisation de session chiffrée", | 53 | "settings.account.headlineInvoices" : "Factures", |
54 | "subscription.features.vpn": "Support des Proxy et VPN", | 54 | "settings.account.headlinePassword" : "Changer le mot de passe", |
55 | "subscription.features.ads": "Aucune publicité !", | 55 | "settings.account.headlineProfile" : "Mettre à jour le profil", |
56 | "subscription.features.comingSoon": "arrive bientôt", | 56 | "settings.account.headlineSubscription" : "Votre abonnement", |
57 | "infobar.servicesUpdated": "Vos services ont été mis à jour.", | 57 | "settings.account.headlineUpgrade" : "Améliorez votre compte et supportez Franz", |
58 | "infobar.updateAvailable": "Une nouvelle mise à jour est disponible pour Franz.", | 58 | "settings.account.invoiceDownload" : "Télécharger", |
59 | "infobar.buttonReloadServices": "Recharger les services", | 59 | "settings.account.manageSubscription.label" : "Gérer votre abonnement", |
60 | "infobar.buttonInstallUpdate": "Redémarrer et installer la mise à jour", | 60 | "settings.account.mining.active" : "Vous êtes en train d'effectuer {hashes} calculs par seconde.", |
61 | "infobar.requiredRequestsFailed": "Impossible de charger les services et les informations de l'utilisateur", | 61 | "settings.account.mining.cancel" : "Annuler le minage", |
62 | "sidebar.settings": "Paramètres", | 62 | "settings.account.mining.moreInformation" : "Obtenir plus d'informations", |
63 | "sidebar.addNewService": "!!!Add new service", | 63 | "settings.account.mining.thankyou" : "Merci de soutenir Franz avec votre puissance de calcul.", |
64 | "services.welcome": "Bienvenue sur Franz", | 64 | "settings.account.successInfo" : "Vos modifications ont été enregistrées", |
65 | "services.getStarted": "Commencer", | 65 | "settings.account.tryReloadUserInfoRequest" : "Réessayer", |
66 | "settings.account.headline": "Compte", | 66 | "settings.account.userInfoRequestFailed" : "Impossible de charger les informations de l'utilisateur", |
67 | "settings.account.headlineSubscription": "Votre abonnement", | 67 | "settings.app.buttonInstallUpdate" : "Redémarrer et installer la mise à jour", |
68 | "settings.account.headlineUpgrade": "Améliorez votre compte et supportez Franz", | 68 | "settings.app.buttonSearchForUpdate" : "Vérifier les mises à jour", |
69 | "settings.account.headlineInvoices": "Factures", | 69 | "settings.app.currentVersion" : "Version actuelle:", |
70 | "settings.account.manageSubscription.label": "Gérer votre abonnement", | 70 | "settings.app.form.autoLaunchInBackground" : "Ouvrir en arrière-plan", |
71 | "settings.account.accountType.basic": "Compte basique", | 71 | "settings.app.form.autoLaunchOnStart" : "Lancer Franz au démarrage", |
72 | "settings.account.accountType.premium": "Compte Supporter Premium", | 72 | "settings.app.form.beta" : "Inclure les versions bêta", |
73 | "settings.account.account.editButton": "Modifier le compte", | 73 | "settings.app.form.enableSpellchecking" : "Enable spell checking", |
74 | "settings.account.invoiceDownload": "Télécharger", | 74 | "settings.app.form.enableSystemTray" : "Afficher Franz dans la barre d'état système", |
75 | "settings.account.userInfoRequestFailed": "Impossible de charger les informations de l'utilisateur", | 75 | "settings.app.form.language" : "Langue", |
76 | "settings.account.tryReloadUserInfoRequest": "Réessayer", | 76 | "settings.app.form.minimizeToSystemTray" : "Minimiser Franz dans la zone de notification", |
77 | "settings.account.headlineProfile": "Mettre à jour le profil", | 77 | "settings.app.form.runInBackground" : "Ouvrir en arrière-plan", |
78 | "settings.account.headlineAccount": "Informations de compte", | 78 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", |
79 | "settings.account.headlinePassword": "Changer le mot de passe", | 79 | "settings.app.headline" : "Paramètres", |
80 | "settings.account.successInfo": "Vos modifications ont été enregistrées", | 80 | "settings.app.headlineAdvanced" : "Advanced", |
81 | "settings.account.buttonSave": "Mettre à jour le profil", | 81 | "settings.app.headlineAppearance" : "Appearance", |
82 | "settings.account.mining.thankyou": "Merci de soutenir Franz avec votre puissance de calcul.", | 82 | "settings.app.headlineGeneral" : "Général", |
83 | "settings.account.mining.active": "Vous êtes en train d'effectuer {hashes} calculs par seconde.", | 83 | "settings.app.headlineLanguage" : "Langue", |
84 | "settings.account.mining.moreInformation": "Obtenir plus d'informations", | 84 | "settings.app.headlineUpdates" : "Mises à jour", |
85 | "settings.account.mining.cancel": "Annuler le minage", | 85 | "settings.app.restartRequired" : "Changes require restart", |
86 | "settings.navigation.availableServices": "Services disponibles", | 86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", |
87 | "settings.navigation.yourServices": "Vos services", | 87 | "settings.app.updateStatusAvailable" : "Mise à jour disponible, téléchargement...", |
88 | "settings.navigation.account": "Compte", | 88 | "settings.app.updateStatusSearching" : "Recherche des mises à jour", |
89 | "settings.navigation.settings": "Paramètres", | 89 | "settings.app.updateStatusUpToDate" : "Vous utilisez la dernière version de Franz", |
90 | "settings.navigation.logout": "Se déconnecter", | 90 | "settings.navigation.account" : "Compte", |
91 | "settings.recipes.headline": "Services disponibles", | 91 | "settings.navigation.availableServices" : "Services disponibles", |
92 | "settings.recipes.mostPopular": "Les plus populaires", | 92 | "settings.navigation.logout" : "Se déconnecter", |
93 | "settings.recipes.all": "Tous les services", | 93 | "settings.navigation.settings" : "Paramètres", |
94 | "settings.recipes.dev": "Développement", | 94 | "settings.navigation.yourServices" : "Vos services", |
95 | "settings.recipes.nothingFound": "Désolé, aucun service ne correspond à votre recherche.", | 95 | "settings.recipes.all" : "Tous les services", |
96 | "settings.recipes.servicesSuccessfulAddedInfo": "Service ajouté avec succès", | 96 | "settings.recipes.dev" : "Développement", |
97 | "settings.service.form.saveButton": "Enregistrer le service", | 97 | "settings.recipes.headline" : "Services disponibles", |
98 | "settings.service.form.deleteButton": "Supprimer le service", | 98 | "settings.recipes.missingService" : "Missing a service?", |
99 | "settings.service.form.availableServices": "Services disponibles", | 99 | "settings.recipes.mostPopular" : "Les plus populaires", |
100 | "settings.service.form.yourServices": "Vos services", | 100 | "settings.recipes.nothingFound" : "Désolé, aucun service ne correspond à votre recherche.", |
101 | "settings.service.form.addServiceHeadline": "Ajouter {name}", | 101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Service ajouté avec succès", |
102 | "settings.service.form.editServiceHeadline": "Modifier {name}", | 102 | "settings.service.error.goBack" : "Retour aux services", |
103 | "settings.service.form.tabHosted": "Hébergé", | 103 | "settings.service.error.headline" : "Erreur", |
104 | "settings.service.form.tabOnPremise": "Auto-hébergé ⭐️", | 104 | "settings.service.error.message" : "Impossible de charger le service.", |
105 | "settings.service.form.customUrlValidationError": "Impossible de valider le {name} personnalisé du serveur.", | 105 | "settings.service.form.addServiceHeadline" : "Ajouter {name}", |
106 | "settings.service.form.customUrlPremiumInfo": "Pour ajouter des services auto-hébergés, vous avez besoin d'un compte Supporter Premium Franz.", | 106 | "settings.service.form.availableServices" : "Services disponibles", |
107 | "settings.service.form.customUrlUpgradeAccount": "Améliorez votre compte", | 107 | "settings.service.form.customUrl" : "Serveur personnalisé", |
108 | "settings.service.form.indirectMessageInfo": "Vous serez averti de tous les nouveaux messages dans un salon, pas seulement @username, @channel, @here, ...", | 108 | "settings.service.form.customUrlPremiumInfo" : "Pour ajouter des services auto-hébergés, vous avez besoin d'un compte Supporter Premium Franz.", |
109 | "settings.service.error.headline": "Erreur", | 109 | "settings.service.form.customUrlUpgradeAccount" : "Améliorez votre compte", |
110 | "settings.service.error.goBack": "Retour aux services", | 110 | "settings.service.form.customUrlValidationError" : "Impossible de valider le {name} personnalisé du serveur.", |
111 | "settings.service.error.message": "Could not load service recipe.", | 111 | "settings.service.form.deleteButton" : "Supprimer le service", |
112 | "settings.services.tooltip.isDisabled": "Le service est désactivé", | 112 | "settings.service.form.editServiceHeadline" : "Modifier {name}", |
113 | "settings.services.tooltip.notificationsDisabled": "Les notifications sont désactivées", | 113 | "settings.service.form.enableAudio" : "Enable audio", |
114 | "settings.services.headline": "Vos services", | 114 | "settings.service.form.enableNotification" : "Activer les notifications", |
115 | "settings.services.noServicesAdded": "Vous n'avez pas encore ajouté de services.", | 115 | "settings.service.form.enableService" : "Activer le service", |
116 | "settings.services.discoverServices": "Découvrir des services", | 116 | "settings.service.form.indirectMessageInfo" : "Vous serez averti de tous les nouveaux messages dans un salon, pas seulement @username, @channel, @here, ...", |
117 | "settings.services.updatedInfo": "Vos modifications ont été enregistrées", | 117 | "settings.service.form.indirectMessages" : "Afficher le badge des messages pour tous les nouveaux messages", |
118 | "settings.services.deletedInfo": "Le service a été supprimé", | 118 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", |
119 | "settings.app.headline": "Paramètres", | 119 | "settings.service.form.name" : "Nom", |
120 | "settings.app.headlineGeneral": "Général", | 120 | "settings.service.form.saveButton" : "Enregistrer le service", |
121 | "settings.app.headlineLanguage": "Langue", | 121 | "settings.service.form.tabHosted" : "Hébergé", |
122 | "settings.app.headlineUpdates": "Mises à jour", | 122 | "settings.service.form.tabOnPremise" : "Auto-hébergé ⭐️", |
123 | "settings.app.buttonSearchForUpdate": "Vérifier les mises à jour", | 123 | "settings.service.form.team" : "Équipe", |
124 | "settings.app.buttonInstallUpdate": "Redémarrer et installer la mise à jour", | 124 | "settings.service.form.yourServices" : "Vos services", |
125 | "settings.app.updateStatusSearching": "Recherche des mises à jour", | 125 | "settings.services.deletedInfo" : "Le service a été supprimé", |
126 | "settings.app.updateStatusAvailable": "Mise à jour disponible, téléchargement...", | 126 | "settings.services.discoverServices" : "Découvrir des services", |
127 | "settings.app.updateStatusUpToDate": "Vous utilisez la dernière version de Franz", | 127 | "settings.services.headline" : "Vos services", |
128 | "settings.app.form.autoLaunchOnStart": "Lancer Franz au démarrage", | 128 | "settings.services.noServicesAdded" : "Vous n'avez pas encore ajouté de services.", |
129 | "settings.app.form.autoLaunchInBackground": "Ouvrir en arrière-plan", | 129 | "settings.services.tooltip.isDisabled" : "Le service est désactivé", |
130 | "settings.app.form.minimizeToSystemTray": "Minimiser Franz dans la zone de notification", | 130 | "settings.services.tooltip.isMuted" : "All sounds are muted", |
131 | "settings.app.form.runInBackground": "Gardez Franz en arrière-plan lors de la fermeture de la fenêtre", | 131 | "settings.services.tooltip.notificationsDisabled" : "Les notifications sont désactivées", |
132 | "settings.app.form.language": "Langue", | 132 | "settings.services.updatedInfo" : "Vos modifications ont été enregistrées", |
133 | "settings.app.form.beta": "Inclure les versions bêta", | 133 | "settings.user.form.accountType.company" : "Entreprise", |
134 | "settings.app.currentVersion": "Version actuelle :", | 134 | "settings.user.form.accountType.individual" : "Individuel", |
135 | "settings.service.form.name": "Nom", | 135 | "settings.user.form.accountType.label" : "Type de compte", |
136 | "settings.service.form.enableService": "Activer le service", | 136 | "settings.user.form.accountType.non-profit" : "Non lucratif", |
137 | "settings.service.form.enableNotification": "Activer les notifications", | 137 | "settings.user.form.currentPassword" : "Mot de passe actuel", |
138 | "settings.service.form.team": "Équipe", | 138 | "settings.user.form.email" : "E-mail", |
139 | "settings.service.form.customUrl": "Serveur personnalisé", | 139 | "settings.user.form.firstname" : "Prénom", |
140 | "settings.service.form.indirectMessages": "Afficher le badge des messages pour tous les nouveaux messages", | 140 | "settings.user.form.lastname" : "Nom", |
141 | "settings.user.form.firstname": "Prénom", | 141 | "settings.user.form.newPassword" : "Nouveau mot de passe", |
142 | "settings.user.form.lastname": "Nom", | 142 | "sidebar.addNewService" : "Ajouter un nouveau service", |
143 | "settings.user.form.email": "E-mail", | 143 | "sidebar.mute" : "Disable audio", |
144 | "settings.user.form.currentPassword": "Mot de passe actuel", | 144 | "sidebar.settings" : "Paramètres", |
145 | "settings.user.form.newPassword": "Nouveau mot de passe", | 145 | "sidebar.unmute" : "Enable audio", |
146 | "settings.user.form.accountType.label": "Type de compte", | 146 | "signup.company.label" : "Entreprise", |
147 | "settings.user.form.accountType.individual": "Individuel", | 147 | "signup.email.label" : "Adresse e-mail", |
148 | "settings.user.form.accountType.non-profit": "Non lucratif", | 148 | "signup.emailDuplicate" : "Un utilisateur avec cette adresse e-mail existe déjà", |
149 | "settings.user.form.accountType.company": "Compagnie", | 149 | "signup.firstname.label" : "Prénom", |
150 | "subscription.type.free": "gratuit", | 150 | "signup.headline" : "S'inscrire", |
151 | "subscription.type.month": "mois", | 151 | "signup.lastname.label" : "Nom", |
152 | "subscription.type.year": "année", | 152 | "signup.legal.info" : "En créant un compte Franz, vous acceptez les", |
153 | "subscription.type.mining": "Soutenez Franz avec de la puissance de calcul", | 153 | "signup.legal.privacy" : "Déclaration de confidentialité", |
154 | "subscription.mining.headline": "Comment cela fonctionne-t-il?", | 154 | "signup.legal.terms" : "Conditions d'utilisation", |
155 | "subscription.mining.experimental": "expérimental", | 155 | "signup.link.login" : "Vous possédez déjà un compte ? Connectez-vous", |
156 | "subscription.mining.line1": "En activant \"Soutenez Franz avec de la puissance de calcul\", Franz utilisera environ de 20 à 50% de votre CPU pour miner la crypto-monnaie Monero, ce qui équivaut à environ 5$/an.", | 156 | "signup.password.label" : "Mot de passe", |
157 | "subscription.mining.line2": "Nous adapterons l'utilisation du processeur en fonction de vos habitudes de travail pour ne pas vider votre batterie et ne pas ralentir votre machine.", | 157 | "signup.submit.label" : "Créer un compte", |
158 | "subscription.mining.line3": "Tant que le minage est actif, vous aurez un accès illimité à toutes les fonctionnalités Supporter Premium Franz.", | 158 | "subscription.euTaxInfo" : "EU residents: local sales tax may apply", |
159 | "subscription.mining.moreInformation": "Obtenir plus d'informations.", | 159 | "subscription.features.ads" : "Aucune publicité!", |
160 | "subscriptionPopup.buttonCancel": "Annuler", | 160 | "subscription.features.comingSoon" : "arrive bientôt", |
161 | "subscriptionPopup.buttonDone": "Terminé", | 161 | "subscription.features.customServices" : "Des services privés pour vous et votre équipe", |
162 | "tabs.item.reload": "Recharger", | 162 | "subscription.features.encryptedSync" : "Synchronisation de session chiffrée", |
163 | "tabs.item.edit": "Modifier", | 163 | "subscription.features.onpremise" : "Add on-premise\/hosted services like HipChat", |
164 | "tabs.item.disableNotifications": "Désactiver les notifications", | 164 | "subscription.features.vpn" : "Support des Proxy et VPN", |
165 | "tabs.item.enableNotification": "Activer les notifications", | 165 | "subscription.includedFeatures" : "Le compte payant Supporter Premium Franz inclut", |
166 | "tabs.item.disableService": "Désactiver le service", | 166 | "subscription.mining.experimental" : "expérimental", |
167 | "tabs.item.deleteService": "Supprimer le service" | 167 | "subscription.mining.headline" : "Comment cela fonctionne-t-il?", |
168 | "subscription.mining.line1" : "En activant \"Soutenez Franz avec de la puissance de calcul\", Franz utilisera environ de 20 à 50% de votre CPU pour miner la crypto-monnaie Monero, ce qui équivaut à environ 5$\/an.", | ||
169 | "subscription.mining.line2" : "Nous adapterons l'utilisation du processeur en fonction de vos habitudes de travail pour ne pas vider votre batterie et ne pas ralentir votre machine.", | ||
170 | "subscription.mining.line3" : "Tant que le minage est actif, vous aurez un accès illimité à toutes les fonctionnalités Supporter Premium Franz.", | ||
171 | "subscription.mining.moreInformation" : "Obtenir plus d'informations.", | ||
172 | "subscription.paymentSessionError" : "Impossible d'initialiser le formulaire de paiement", | ||
173 | "subscription.submit.label" : "Je veux soutenir le développement de Franz", | ||
174 | "subscription.type.free" : "gratuit", | ||
175 | "subscription.type.mining" : "Soutenez Franz avec de la puissance de calcul", | ||
176 | "subscription.type.month" : "mois", | ||
177 | "subscription.type.year" : "année", | ||
178 | "subscriptionPopup.buttonCancel" : "Annuler", | ||
179 | "subscriptionPopup.buttonDone" : "Terminé", | ||
180 | "tabs.item.deleteService" : "Supprimer le service", | ||
181 | "tabs.item.disableAudio" : "Disable audio", | ||
182 | "tabs.item.disableNotifications" : "Désactiver les notifications", | ||
183 | "tabs.item.disableService" : "Désactiver le service", | ||
184 | "tabs.item.edit" : "Modifier", | ||
185 | "tabs.item.enableAudio" : "Enable audio", | ||
186 | "tabs.item.enableNotification" : "Activer les notifications", | ||
187 | "tabs.item.enableService" : "Activer le service", | ||
188 | "tabs.item.reload" : "Recharger", | ||
189 | "welcome.loginButton" : "Connectez-vous à votre compte", | ||
190 | "welcome.signupButton" : "Créer un compte gratuitement", | ||
191 | "welcome.slogan" : "Une messagerie qui fonctionne pour vous" | ||
168 | } | 192 | } |
diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json new file mode 100644 index 000000000..63816cf65 --- /dev/null +++ b/src/i18n/locales/ga.json | |||
@@ -0,0 +1,192 @@ | |||
1 | { | ||
2 | "global.api.unhealthy" : "Ní fhéadfar nascadh le seirbhísí arlíne Franz", | ||
3 | "global.notConnectedToTheInternet" : "Níl tú nasctha leis an Idirlíon.", | ||
4 | "import.headline" : "Iompórtáil do chuid seirbhísí Franz 4", | ||
5 | "import.notSupportedHeadline" : "Níl na seirbhísí seo taca i Franz 5 go fóill", | ||
6 | "import.skip.label" : "Ba mhaith liom seirbhísí a chur leis de láimh", | ||
7 | "import.submit.label" : "Iomportaigh seirbhísí", | ||
8 | "infobar.buttonChangelog" : "What is new?", | ||
9 | "infobar.buttonInstallUpdate" : "Atosaigh & suiteáil nuashonrú", | ||
10 | "infobar.buttonReloadServices" : "Athlódáil seirbhísí", | ||
11 | "infobar.requiredRequestsFailed" : "Ní fhéadfar seirbhísí agus eolas úsáideora a lódáil", | ||
12 | "infobar.servicesUpdated" : "Nuashonraítear do chuid seirbhísí.", | ||
13 | "infobar.updateAvailable" : "Tá nuashonrú nua do Franz le fáil.", | ||
14 | "invite.email.label" : "Seoladh ríomhphoist", | ||
15 | "invite.headline.friends" : "Tabhair cuireadh do thriúr de do chairde nó chomhghleacaithe", | ||
16 | "invite.name.label" : "Ainm", | ||
17 | "invite.skip.label" : "Ba mhaith liom é seo a dhéanamh níos deireanaí", | ||
18 | "invite.submit.label" : "Seol cuireadh", | ||
19 | "login.email.label" : "Seoladh ríomhphoist", | ||
20 | "login.headline" : "Logáil isteach", | ||
21 | "login.invalidCredentials" : "Seoladh ríomhphoist nó pasfhocal neamhbhailí", | ||
22 | "login.link.password" : "Athshocraigh pasfhocal", | ||
23 | "login.link.signup" : "Cruthaigh cuntas saor in aisce", | ||
24 | "login.password.label" : "Pasfhocal", | ||
25 | "login.serverLogout" : "D'éag do sheisiún, logáil isteach arís le do thoil.", | ||
26 | "login.submit.label" : "Logáil isteach", | ||
27 | "login.tokenExpired" : "D'éag do sheisiún, logáil isteach arís le do thoil.", | ||
28 | "password.email.label" : "Seoladh ríomhphoist", | ||
29 | "password.headline" : "Athshocraigh pasfhocal", | ||
30 | "password.link.login" : "Logáil isteach i do chúntas", | ||
31 | "password.link.signup" : "Cruthaigh cuntas saor in aisce", | ||
32 | "password.noUser" : "Níor aimsíodh úsáideoir leis an seoladh ríomhphoist seo", | ||
33 | "password.submit.label" : "Cuir isteach", | ||
34 | "password.successInfo" : "Seiceáil do chuid ríomhphoist, le do thoil", | ||
35 | "pricing.headline" : "Tabhair tacaíocht do Franz", | ||
36 | "pricing.link.skipPayment" : "Ní mhaith liom tacaíocht a thabhairt d'fhorbairt Franz.", | ||
37 | "pricing.submit.label" : "Ba maith liom tacaíocht a thabhairt d'fhorbairt Franz.", | ||
38 | "pricing.support.label" : "Roghnaigh do phlean tacaíochta", | ||
39 | "service.crashHandler.action" : "Athlódáil {name}", | ||
40 | "service.crashHandler.autoReload" : "Ag baint triail {name} a thabhairt ar ais go huathoibríoch i gceann {seconds} shoicind", | ||
41 | "service.crashHandler.headline" : "Ó, ná habair!", | ||
42 | "service.crashHandler.text" : "Tá {name} tar éis earraid a dhéanamh.", | ||
43 | "service.disabledHandler.action" : "Cumasaigh {name}", | ||
44 | "service.disabledHandler.headline" : "Tá {name} díchumasaithe", | ||
45 | "services.getStarted" : "Tosaigh", | ||
46 | "services.welcome" : "Fáilte go Franz", | ||
47 | "settings.account.account.editButton" : "Cuir cuntas in eagar", | ||
48 | "settings.account.accountType.basic" : "Bunchuntas", | ||
49 | "settings.account.accountType.premium" : "Cuntas Phŕeimhtacadóra Franz", | ||
50 | "settings.account.buttonSave" : "Nuashonraigh próifíl", | ||
51 | "settings.account.headline" : "Cuntas", | ||
52 | "settings.account.headlineAccount" : "Eolas an chuntais", | ||
53 | "settings.account.headlineInvoices" : "Sonraisc", | ||
54 | "settings.account.headlinePassword" : "Athraigh pasfhocal", | ||
55 | "settings.account.headlineProfile" : "Nuashonraigh próifíl", | ||
56 | "settings.account.headlineSubscription" : "Do shintiús", | ||
57 | "settings.account.headlineUpgrade" : "Uasghrádaigh do chuntas chun tacaíocht a thabhairt do Franz", | ||
58 | "settings.account.invoiceDownload" : "Íoslódáil", | ||
59 | "settings.account.manageSubscription.label" : "Bainistigh do shintiús", | ||
60 | "settings.account.mining.active" : "Tá tú ag déanamh {hashes} áireamh in aghaidh an soicind anois.", | ||
61 | "settings.account.mining.cancel" : "Cuir an mhíneáil ar ceal", | ||
62 | "settings.account.mining.moreInformation" : "Faigh tuilleadh eolais", | ||
63 | "settings.account.mining.thankyou" : "Go raibh maith agat as ucht tacaíocht a thabhairt go Franz le do chumhacht phróiseála.", | ||
64 | "settings.account.successInfo" : "Sábhailtear do chuid athruithe", | ||
65 | "settings.account.tryReloadUserInfoRequest" : "Atriail", | ||
66 | "settings.account.userInfoRequestFailed" : "Ní fheadfar eolas úsáideora a lódáil", | ||
67 | "settings.app.buttonInstallUpdate" : "Atosaigh & suiteáil nuashonrú", | ||
68 | "settings.app.buttonSearchForUpdate" : "Seiceáil do nuashonruithe", | ||
69 | "settings.app.currentVersion" : "Leagan reatha:", | ||
70 | "settings.app.form.autoLaunchInBackground" : "Oscail sa chúlra", | ||
71 | "settings.app.form.autoLaunchOnStart" : "Láinseáil Franz ón tús", | ||
72 | "settings.app.form.beta" : "Cuir leagain béite san áireamh", | ||
73 | "settings.app.form.enableSpellchecking" : "Cumasaigh seiceáil litrithe", | ||
74 | "settings.app.form.enableSystemTray" : "Taispeáin Franz i dtrae an chórais", | ||
75 | "settings.app.form.language" : "Teanga", | ||
76 | "settings.app.form.minimizeToSystemTray" : "Íoslaghdaigh Franz go dtí trae an chórais", | ||
77 | "settings.app.form.runInBackground" : "Cóimeád Franz sa chúlra agus an fhuinneog a dhúnadh", | ||
78 | "settings.app.form.showDisabledServices" : "Taispeáin tabanna do sheirbhísí díchumasaithe", | ||
79 | "settings.app.headline" : "Socruithe", | ||
80 | "settings.app.headlineAdvanced" : "Casta", | ||
81 | "settings.app.headlineAppearance" : "Dealramh", | ||
82 | "settings.app.headlineGeneral" : "Ginearálta", | ||
83 | "settings.app.headlineLanguage" : "Teanga", | ||
84 | "settings.app.headlineUpdates" : "Nuashonruithe", | ||
85 | "settings.app.restartRequired" : "Ní gá tosú arís chun athruithe a chur i bhfeidhm", | ||
86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
87 | "settings.app.updateStatusAvailable" : "Nuashonrú le fáil, ag íoslódáil", | ||
88 | "settings.app.updateStatusSearching" : "Ag cuardú le haghaidh nuashonrú", | ||
89 | "settings.app.updateStatusUpToDate" : "Tá tú ag baint úsáid as an leagn is deireanaí de Franz", | ||
90 | "settings.navigation.account" : "Cuntas", | ||
91 | "settings.navigation.availableServices" : "Seirbhísí le fáil", | ||
92 | "settings.navigation.logout" : "Logáil amach", | ||
93 | "settings.navigation.settings" : "Socruithe", | ||
94 | "settings.navigation.yourServices" : "Do chuid seirbhísí", | ||
95 | "settings.recipes.all" : "Gach seirbhís", | ||
96 | "settings.recipes.dev" : "Forbairt", | ||
97 | "settings.recipes.headline" : "Seirbhísí le fáil", | ||
98 | "settings.recipes.missingService" : "Missing a service?", | ||
99 | "settings.recipes.mostPopular" : "Is coitianta", | ||
100 | "settings.recipes.nothingFound" : "Tá brón orm, ach níl seirbhís ar bith ag teacht le do théarma chuardach.", | ||
101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Seirbhís curtha leis go ráthúil", | ||
102 | "settings.service.error.goBack" : "Ar ais go dtí seirbhísí", | ||
103 | "settings.service.error.headline" : "Earraid", | ||
104 | "settings.service.error.message" : "Ní fhéadfar oideas seirbhíse a lódáil.", | ||
105 | "settings.service.form.addServiceHeadline" : "Cuir {name} leis", | ||
106 | "settings.service.form.availableServices" : "Seirbhísí le fáil", | ||
107 | "settings.service.form.customUrl" : "Freastalaí saincheaptha", | ||
108 | "settings.service.form.customUrlPremiumInfo" : "Chun seirbhísí féinóstáilte a chur leis, ní gá Cuntas Phŕeimhtacadóra Franz a bheith agat.", | ||
109 | "settings.service.form.customUrlUpgradeAccount" : "Uasghrádaigh do chuntas", | ||
110 | "settings.service.form.customUrlValidationError" : "Ní fhéadfar seirbhís {name} saincheaptha a dheimhniú", | ||
111 | "settings.service.form.deleteButton" : "Scrios seirbhís", | ||
112 | "settings.service.form.editServiceHeadline" : "Cuir {name} in eagar", | ||
113 | "settings.service.form.enableAudio" : "Cumasaigh fuaim", | ||
114 | "settings.service.form.enableNotification" : "Cumasaigh fógraí", | ||
115 | "settings.service.form.enableService" : "Cumasaigh seirbhís", | ||
116 | "settings.service.form.indirectMessageInfo" : "Fógraítear thú faoi gach teachtaireacht nua i gcainéail, ní amháin @username, @channel, @here, ...", | ||
117 | "settings.service.form.indirectMessages" : "Taispeáin comhartha theachtaireachta do theachtaireachtaí nua", | ||
118 | "settings.service.form.isMutedInfo" : "Nuair a dhíchumasaítear é seo, tachtar gach fuaim fógraí agus athchasadh fuaime", | ||
119 | "settings.service.form.name" : "Ainm", | ||
120 | "settings.service.form.saveButton" : "Sábhail seirbhís", | ||
121 | "settings.service.form.tabHosted" : "Óstáilte", | ||
122 | "settings.service.form.tabOnPremise" : "Féinóstáilte ⭐️", | ||
123 | "settings.service.form.team" : "Meitheal", | ||
124 | "settings.service.form.yourServices" : "Do chuid seirbhísí", | ||
125 | "settings.services.deletedInfo" : "Seirbhís scriosta", | ||
126 | "settings.services.discoverServices" : "Aimsigh seirbhísí", | ||
127 | "settings.services.headline" : "Do chuid seirbhísí", | ||
128 | "settings.services.noServicesAdded" : "Níl aon seirbhís curtha agat fós.", | ||
129 | "settings.services.tooltip.isDisabled" : "Seirbhís díchumasaithe", | ||
130 | "settings.services.tooltip.isMuted" : "Gach fuaim tachta", | ||
131 | "settings.services.tooltip.notificationsDisabled" : "Fógraí díchumasaithe", | ||
132 | "settings.services.updatedInfo" : "Sábháiltear do chuid athruithe", | ||
133 | "settings.user.form.accountType.company" : "Comhlacht", | ||
134 | "settings.user.form.accountType.individual" : "Aonair", | ||
135 | "settings.user.form.accountType.label" : "Cineál cuntais", | ||
136 | "settings.user.form.accountType.non-profit" : "Neamhbhrabúis", | ||
137 | "settings.user.form.currentPassword" : "Pasfhocal reatha", | ||
138 | "settings.user.form.email" : "Ríomhphost", | ||
139 | "settings.user.form.firstname" : "Céadainm", | ||
140 | "settings.user.form.lastname" : "Sloinne", | ||
141 | "settings.user.form.newPassword" : "Pasfhocal nua", | ||
142 | "sidebar.addNewService" : "Cuir seirbhís nua leis", | ||
143 | "sidebar.mute" : "Díchumasaigh fuaim", | ||
144 | "sidebar.settings" : "Socruithe", | ||
145 | "sidebar.unmute" : "Cumasaigh fuaim", | ||
146 | "signup.company.label" : "Comhlacht", | ||
147 | "signup.email.label" : "Seoladh ríomhphoist", | ||
148 | "signup.emailDuplicate" : "Tá úsáideoir leis an seoladh ríomhphoist sin chean féin", | ||
149 | "signup.firstname.label" : "Céadainm", | ||
150 | "signup.headline" : "Cláraigh", | ||
151 | "signup.lastname.label" : "Sloinne", | ||
152 | "signup.legal.info" : "Agus tú ag cruthú cuntais Franz glacann tú leis an", | ||
153 | "signup.legal.privacy" : "Ráiteas príobháideachais", | ||
154 | "signup.legal.terms" : "Tearmaí seirbhíse", | ||
155 | "signup.link.login" : "Cuntas agat cheana féin, logáil isteach?", | ||
156 | "signup.password.label" : "Pasfhocal", | ||
157 | "signup.submit.label" : "Cruthaigh cuntas", | ||
158 | "subscription.euTaxInfo" : "Áithritheoirí an tAÉ: féadfar cáin díolacháin áitiúla a chur i bhfeidhm", | ||
159 | "subscription.features.ads" : "Fógraí ar bith, choíche!", | ||
160 | "subscription.features.comingSoon" : "ag teacht go luath", | ||
161 | "subscription.features.customServices" : "Seirbhísí phríobháideach duitse agus do do mheitheal", | ||
162 | "subscription.features.encryptedSync" : "Sionchronú seisiúin chriptithe", | ||
163 | "subscription.features.onpremise" : "Cuir seirbhísí óstáilte ar nós HipChat leis", | ||
164 | "subscription.features.vpn" : "Tacaíocht seachfhreastalaí & LPF", | ||
165 | "subscription.includedFeatures" : "Cuireann Cuntas Phŕeimhtacadóra Franz san áireamh", | ||
166 | "subscription.mining.experimental" : "turgnamhach", | ||
167 | "subscription.mining.headline" : "Conas a oibríonn sé seo?", | ||
168 | "subscription.mining.line1" : "Tar éis chur \"Tabhair tacaíocht le cumhacht phŕóiseála\" ar chumas, bainfidh Franz úsáid as thart ar 20-50\\% de do lárionad próiseála chun an airgeadra digiteach Monero a mhíneáil, a chothromaíonn $5 sa bhliain.", | ||
169 | "subscription.mining.line2" : "Cuirimid úsáid an láríonaid próiseála in oiriúint do d'iompar oibre ionas nach mbeidh do cheallra caite agus tú agus do ríomhaire moillithe.", | ||
170 | "subscription.mining.line3" : "Fad is go bhfuil an mhianadóir gníomhach, beidh rochtain gan teorainn agat do Phŕeimhghnéithe Taca Franz.", | ||
171 | "subscription.mining.moreInformation" : "Faigh tuilleadh eolais faoin bplean seo.", | ||
172 | "subscription.paymentSessionError" : "Ní fhéadfar tús a chur leis an bhfoirm íocaíochta", | ||
173 | "subscription.submit.label" : "Ba mhaith liom tacaíocht a thabhairt d'fhorbairt Franz", | ||
174 | "subscription.type.free" : "saor in aisce", | ||
175 | "subscription.type.mining" : "Tabhair tacaíocht do Franz le cumhacht phróiseála", | ||
176 | "subscription.type.month" : "mí", | ||
177 | "subscription.type.year" : "bliain", | ||
178 | "subscriptionPopup.buttonCancel" : "Cuir ar ceal", | ||
179 | "subscriptionPopup.buttonDone" : "Déanta", | ||
180 | "tabs.item.deleteService" : "Scrios seirbhís", | ||
181 | "tabs.item.disableAudio" : "Díchumasaigh fuaim", | ||
182 | "tabs.item.disableNotifications" : "Díchumasaigh fógraí", | ||
183 | "tabs.item.disableService" : "Díchumasaigh seirbhís", | ||
184 | "tabs.item.edit" : "Cuir in eagar", | ||
185 | "tabs.item.enableAudio" : "Cumasaigh fuaim", | ||
186 | "tabs.item.enableNotification" : "Cumasaigh fógraí", | ||
187 | "tabs.item.enableService" : "Cumasaigh seirbhís", | ||
188 | "tabs.item.reload" : "Athlódáil", | ||
189 | "welcome.loginButton" : "Logáil isteach i do chuntas", | ||
190 | "welcome.signupButton" : "Cruthaigh cuntas nua", | ||
191 | "welcome.slogan" : "Teachtaireachtaí ag obair leat" | ||
192 | } | ||
diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json new file mode 100644 index 000000000..f62c0ead9 --- /dev/null +++ b/src/i18n/locales/hu.json | |||
@@ -0,0 +1,192 @@ | |||
1 | { | ||
2 | "global.api.unhealthy" : "Nem lehet csatlakozni a Franz online szolgáltatásaihoz", | ||
3 | "global.notConnectedToTheInternet" : "Nincs kapcsolat a kiszolgálóval.", | ||
4 | "import.headline" : "Importáld szolgáltatásaidat a Franz 4-ből", | ||
5 | "import.notSupportedHeadline" : "Még nem támogatott szolgáltatások a Franz 5-ben", | ||
6 | "import.skip.label" : "Kézzel szeretnék szolgáltatást felvenni", | ||
7 | "import.submit.label" : "Szolgáltatások importálása", | ||
8 | "infobar.buttonChangelog" : "What is new?", | ||
9 | "infobar.buttonInstallUpdate" : "Újraindítás és a frissítés telepítése", | ||
10 | "infobar.buttonReloadServices" : "Szolgáltatások újratöltése", | ||
11 | "infobar.requiredRequestsFailed" : "Szolgáltatások és felhasználói információk nem tölthetők be", | ||
12 | "infobar.servicesUpdated" : "A szolgáltatások frissítésre kerültek.", | ||
13 | "infobar.updateAvailable" : "Új frissítés érhető el a Franz-hoz.", | ||
14 | "invite.email.label" : "Email cím", | ||
15 | "invite.headline.friends" : "Hívd meg 3 barátodat vagy kollégádat", | ||
16 | "invite.name.label" : "Név", | ||
17 | "invite.skip.label" : "Későbbre halasztom", | ||
18 | "invite.submit.label" : "Meghívók küldése", | ||
19 | "login.email.label" : "Email cím", | ||
20 | "login.headline" : "Bejelentkezés", | ||
21 | "login.invalidCredentials" : "Hibás email cím vagy jelszó", | ||
22 | "login.link.password" : "Jelszó visszaállítás", | ||
23 | "login.link.signup" : "Új fiók létrehozása", | ||
24 | "login.password.label" : "Jelszó", | ||
25 | "login.serverLogout" : "A munkamenet lejárt, kérlek lépj be újra.", | ||
26 | "login.submit.label" : "Bejelentkezés", | ||
27 | "login.tokenExpired" : "A munkamenet lejárt, kérlek lépj be újra.", | ||
28 | "password.email.label" : "Email cím", | ||
29 | "password.headline" : "Jelszó visszaállítása", | ||
30 | "password.link.login" : "Jelentkezz be a fiókodba", | ||
31 | "password.link.signup" : "Új fiók létrehozása", | ||
32 | "password.noUser" : "Nem található felhasználó a megadott email címmel", | ||
33 | "password.submit.label" : "Küldés", | ||
34 | "password.successInfo" : "Ellenőrizd az email fiókodat", | ||
35 | "pricing.headline" : "Támogasd a Franz-ot", | ||
36 | "pricing.link.skipPayment" : "Nem szeretném támogatni a Franz fejlesztését.", | ||
37 | "pricing.submit.label" : "Támogatni szeretném a Franz fejlesztését.", | ||
38 | "pricing.support.label" : "Válaszd ki a támogatás módját", | ||
39 | "service.crashHandler.action" : "Reload {name}", | ||
40 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", | ||
41 | "service.crashHandler.headline" : "Oh no!", | ||
42 | "service.crashHandler.text" : "{name} has caused an error.", | ||
43 | "service.disabledHandler.action" : "Enable {name}", | ||
44 | "service.disabledHandler.headline" : "{name} is disabled", | ||
45 | "services.getStarted" : "Kezdj hozzá", | ||
46 | "services.welcome" : "Üdvözöl a Franz", | ||
47 | "settings.account.account.editButton" : "Fiók szerkesztése", | ||
48 | "settings.account.accountType.basic" : "Alap Fiók", | ||
49 | "settings.account.accountType.premium" : "Prémium Támogató Fiók", | ||
50 | "settings.account.buttonSave" : "Profil frissítése", | ||
51 | "settings.account.headline" : "Fiók", | ||
52 | "settings.account.headlineAccount" : "Fiókinformációk", | ||
53 | "settings.account.headlineInvoices" : "Számlák", | ||
54 | "settings.account.headlinePassword" : "Jelszócsere", | ||
55 | "settings.account.headlineProfile" : "Profil frissítése", | ||
56 | "settings.account.headlineSubscription" : "Előfizetésed", | ||
57 | "settings.account.headlineUpgrade" : "Frissítsd fiókod és támogasd a Franz-ot", | ||
58 | "settings.account.invoiceDownload" : "Letöltés", | ||
59 | "settings.account.manageSubscription.label" : "Előfizetés kezelése", | ||
60 | "settings.account.mining.active" : "Jelenleg {hashes} számítást végzel másodpercenként.", | ||
61 | "settings.account.mining.cancel" : "Bányászás megszakítása", | ||
62 | "settings.account.mining.moreInformation" : "Több információ", | ||
63 | "settings.account.mining.thankyou" : "Köszönjük, hogy számítási kapacitásoddal támogatod a Franz-ot.", | ||
64 | "settings.account.successInfo" : "A módosításokat elmentettük", | ||
65 | "settings.account.tryReloadUserInfoRequest" : "Próbáld újra", | ||
66 | "settings.account.userInfoRequestFailed" : "A felhasználói adatok betöltése sikertelen", | ||
67 | "settings.app.buttonInstallUpdate" : "Újraindítás és frissítések telepítése", | ||
68 | "settings.app.buttonSearchForUpdate" : "Frissítések keresése", | ||
69 | "settings.app.currentVersion" : "Aktuális verzió:", | ||
70 | "settings.app.form.autoLaunchInBackground" : "Megnyitás háttérben", | ||
71 | "settings.app.form.autoLaunchOnStart" : "Franz betöltése indításkor", | ||
72 | "settings.app.form.beta" : "Béta verziók keresése", | ||
73 | "settings.app.form.enableSpellchecking" : "Enable spell checking", | ||
74 | "settings.app.form.enableSystemTray" : "Franz mutatása a tálcán", | ||
75 | "settings.app.form.language" : "Nyelv", | ||
76 | "settings.app.form.minimizeToSystemTray" : "Franz kicsinyítése a tálcára", | ||
77 | "settings.app.form.runInBackground" : "Franz fusson a háttérben az ablak bezárásakor", | ||
78 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", | ||
79 | "settings.app.headline" : "Beállítások", | ||
80 | "settings.app.headlineAdvanced" : "Advanced", | ||
81 | "settings.app.headlineAppearance" : "Appearance", | ||
82 | "settings.app.headlineGeneral" : "Általános", | ||
83 | "settings.app.headlineLanguage" : "Nyelv", | ||
84 | "settings.app.headlineUpdates" : "Frissítések", | ||
85 | "settings.app.restartRequired" : "Changes require restart", | ||
86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
87 | "settings.app.updateStatusAvailable" : "Frissítés elérhető, letöltés folyamatban...", | ||
88 | "settings.app.updateStatusSearching" : "Frissítéseket keres", | ||
89 | "settings.app.updateStatusUpToDate" : "A Franz legfrissebb verzióját használod", | ||
90 | "settings.navigation.account" : "Fiók", | ||
91 | "settings.navigation.availableServices" : "Elérhető szolgáltatások", | ||
92 | "settings.navigation.logout" : "Kijelentkezés", | ||
93 | "settings.navigation.settings" : "Beállítások", | ||
94 | "settings.navigation.yourServices" : "Szolgáltatásaid", | ||
95 | "settings.recipes.all" : "Összes szolgáltatás", | ||
96 | "settings.recipes.dev" : "Fejlesztés", | ||
97 | "settings.recipes.headline" : "Elérhető szolgáltatások", | ||
98 | "settings.recipes.missingService" : "Missing a service?", | ||
99 | "settings.recipes.mostPopular" : "Legnépszerűbb", | ||
100 | "settings.recipes.nothingFound" : "Sajnáljuk, nincs egyezés a szolgáltatások között a keresett kifejezésre.", | ||
101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Szolgáltatás sikeresen hozzáadva.", | ||
102 | "settings.service.error.goBack" : "Vissza a szolgáltatásokhoz", | ||
103 | "settings.service.error.headline" : "Hiba", | ||
104 | "settings.service.error.message" : "Nem tölthető be a szolgáltatás receptje.", | ||
105 | "settings.service.form.addServiceHeadline" : "{name} hozzáadása", | ||
106 | "settings.service.form.availableServices" : "Elérhető szolgáltatások", | ||
107 | "settings.service.form.customUrl" : "Egyéni szerver", | ||
108 | "settings.service.form.customUrlPremiumInfo" : "Egyénileg üzemeltetett szolgáltatások hozzáadásához Franz Prémium Támogató Fiók szükséges.", | ||
109 | "settings.service.form.customUrlUpgradeAccount" : "Frissítsd fiókodat", | ||
110 | "settings.service.form.customUrlValidationError" : "Nem sikerült hitelesíteni az egyéni {name} szervert.", | ||
111 | "settings.service.form.deleteButton" : "Szolgáltatás törlése", | ||
112 | "settings.service.form.editServiceHeadline" : "{name} szerkesztése", | ||
113 | "settings.service.form.enableAudio" : "Enable audio", | ||
114 | "settings.service.form.enableNotification" : "Értesítések engedélyezése", | ||
115 | "settings.service.form.enableService" : "Szolgáltatás engedélyezése", | ||
116 | "settings.service.form.indirectMessageInfo" : "Értesítést kapsz minden üzenetről a csatornában, nem csak @felhasználónév, @csatorna @here és egyéb említések esetén", | ||
117 | "settings.service.form.indirectMessages" : "Üzenet kitűző megjelenítése minden üzenethez", | ||
118 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", | ||
119 | "settings.service.form.name" : "Név", | ||
120 | "settings.service.form.saveButton" : "Szolgáltatás mentése", | ||
121 | "settings.service.form.tabHosted" : "Üzemeltetett", | ||
122 | "settings.service.form.tabOnPremise" : "Egyénileg üzemeltetett", | ||
123 | "settings.service.form.team" : "Csapat", | ||
124 | "settings.service.form.yourServices" : "Szolgáltatásaid", | ||
125 | "settings.services.deletedInfo" : "A szolgáltatás törlésre került", | ||
126 | "settings.services.discoverServices" : "Szolgáltatások felfedezése", | ||
127 | "settings.services.headline" : "Szolgáltatásaid", | ||
128 | "settings.services.noServicesAdded" : "Még nem adtál hozzá egyetlen szolgáltatást sem eddig.", | ||
129 | "settings.services.tooltip.isDisabled" : "Ez a szolgáltatás le van tiltva.", | ||
130 | "settings.services.tooltip.isMuted" : "All sounds are muted", | ||
131 | "settings.services.tooltip.notificationsDisabled" : "Értesítések letiltva", | ||
132 | "settings.services.updatedInfo" : "A módosításokat elmentettük", | ||
133 | "settings.user.form.accountType.company" : "Cég", | ||
134 | "settings.user.form.accountType.individual" : "Egyén", | ||
135 | "settings.user.form.accountType.label" : "Fiók típusa", | ||
136 | "settings.user.form.accountType.non-profit" : "Non-Profit", | ||
137 | "settings.user.form.currentPassword" : "Jelenlegi jelszó", | ||
138 | "settings.user.form.email" : "Email", | ||
139 | "settings.user.form.firstname" : "First Name", | ||
140 | "settings.user.form.lastname" : "Last Name", | ||
141 | "settings.user.form.newPassword" : "Új jelszó", | ||
142 | "sidebar.addNewService" : "Szolgáltatás hozzáadása", | ||
143 | "sidebar.mute" : "Disable audio", | ||
144 | "sidebar.settings" : "Beállítások", | ||
145 | "sidebar.unmute" : "Enable audio", | ||
146 | "signup.company.label" : "Cég", | ||
147 | "signup.email.label" : "Email cím", | ||
148 | "signup.emailDuplicate" : "Ezzel az e-mail címmel már létezik felhasználó", | ||
149 | "signup.firstname.label" : "First Name", | ||
150 | "signup.headline" : "Regisztráció", | ||
151 | "signup.lastname.label" : "Last Name", | ||
152 | "signup.legal.info" : "A Franz fiók létrehozásával elfogadod az", | ||
153 | "signup.legal.privacy" : "Adatvédelmi Nyilatkozatot", | ||
154 | "signup.legal.terms" : "Felhasználási Feltételeket", | ||
155 | "signup.link.login" : "Már van fiókod? Lépj be!", | ||
156 | "signup.password.label" : "Jelszó", | ||
157 | "signup.submit.label" : "Fiók létrehozása", | ||
158 | "subscription.euTaxInfo" : "EU residents: local sales tax may apply", | ||
159 | "subscription.features.ads" : "Hirdetésmentes, mindig!", | ||
160 | "subscription.features.comingSoon" : "Hamarosan!", | ||
161 | "subscription.features.customServices" : "Privát szolgáltatások neked és a csapatodnak", | ||
162 | "subscription.features.encryptedSync" : "Titkosított munkamenet szinkronizálás", | ||
163 | "subscription.features.onpremise" : "Helyi\/üzemeltetett szolgáltatások használata, pl. HipChat", | ||
164 | "subscription.features.vpn" : "Proxy & VPN támogatás", | ||
165 | "subscription.includedFeatures" : "Az előfizetett Franz Prémium Támogató Fiók tartalmazza", | ||
166 | "subscription.mining.experimental" : "kísérleti", | ||
167 | "subscription.mining.headline" : "Hogyan működik?", | ||
168 | "subscription.mining.line1" : "A \"Franz támogatása számítási kapacitással\" opció bekapcsolásával a Franz a CPU teljesítményének 20-50%-át Monero kriptovaluta bányászatához fogja használni, ami évente $5-nak felel meg.", | ||
169 | "subscription.mining.line2" : "Alkalmazkodni fog a CPU használat a munkafolyamataidhoz, igyekszik nem terhelni az akkumulátort és lassítani a gépet.", | ||
170 | "subscription.mining.line3" : "Amíg a bányász aktív, korlátlan hozzáférésed van minden Franz Prémium Támogató Funkcióhoz.", | ||
171 | "subscription.mining.moreInformation" : "Több információ erről az opcióról.", | ||
172 | "subscription.paymentSessionError" : "Nem sikerült a fizetési felületet betölteni", | ||
173 | "subscription.submit.label" : "Szeretném támogatni a Franz fejlesztését", | ||
174 | "subscription.type.free" : "ingyenes", | ||
175 | "subscription.type.mining" : "Franz támogatása számítási kapacitással", | ||
176 | "subscription.type.month" : "hónap", | ||
177 | "subscription.type.year" : "év", | ||
178 | "subscriptionPopup.buttonCancel" : "Mégsem", | ||
179 | "subscriptionPopup.buttonDone" : "Kész", | ||
180 | "tabs.item.deleteService" : "Szolgáltatás törlése", | ||
181 | "tabs.item.disableAudio" : "Disable audio", | ||
182 | "tabs.item.disableNotifications" : "Értesítések letiltása", | ||
183 | "tabs.item.disableService" : "Szolgáltatás letiltása", | ||
184 | "tabs.item.edit" : "Szerkesztés", | ||
185 | "tabs.item.enableAudio" : "Enable audio", | ||
186 | "tabs.item.enableNotification" : "Értesítések engedélyezése", | ||
187 | "tabs.item.enableService" : "Szolgáltatás engedélyezése", | ||
188 | "tabs.item.reload" : "Újratöltés", | ||
189 | "welcome.loginButton" : "Jelentkezz be a fiókodba", | ||
190 | "welcome.signupButton" : "Új fiók létrehozása", | ||
191 | "welcome.slogan" : "Üzenetküldés okosan" | ||
192 | } | ||
diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json new file mode 100644 index 000000000..611cad550 --- /dev/null +++ b/src/i18n/locales/id.json | |||
@@ -0,0 +1,192 @@ | |||
1 | { | ||
2 | "global.api.unhealthy" : "Tidak bisa tersambung ke layanan Franz", | ||
3 | "global.notConnectedToTheInternet" : "Anda tidak tersambung ke internet.", | ||
4 | "import.headline" : "Impor layanan Franz 4 Anda", | ||
5 | "import.notSupportedHeadline" : "Layanan belum didukung di Franz 5", | ||
6 | "import.skip.label" : "Saya ingin menambahkan layanan secara manual", | ||
7 | "import.submit.label" : "Impor layanan", | ||
8 | "infobar.buttonChangelog" : "What is new?", | ||
9 | "infobar.buttonInstallUpdate" : "Mulai ulang dan instal versi baru", | ||
10 | "infobar.buttonReloadServices" : "Muat ulang layanan", | ||
11 | "infobar.requiredRequestsFailed" : "Tidak bisa memuat layanan dan informasi pengguna", | ||
12 | "infobar.servicesUpdated" : "Layanan Anda telah diperbarui", | ||
13 | "infobar.updateAvailable" : "Versi baru Franz tersedia.", | ||
14 | "invite.email.label" : "Alamat email", | ||
15 | "invite.headline.friends" : "Undang 3 teman atau kolega Anda", | ||
16 | "invite.name.label" : "Nama", | ||
17 | "invite.skip.label" : "Saya ingin melakukannya nanti saja", | ||
18 | "invite.submit.label" : "Kirim undangan", | ||
19 | "login.email.label" : "Alamat email", | ||
20 | "login.headline" : "Masuk", | ||
21 | "login.invalidCredentials" : "Email atau sandi tidak valid", | ||
22 | "login.link.password" : "Setel ulang sandi", | ||
23 | "login.link.signup" : "Buat akun gratis", | ||
24 | "login.password.label" : "Sandi", | ||
25 | "login.serverLogout" : "Sesi Anda kedaluwarsa, silakan masuk kembali.", | ||
26 | "login.submit.label" : "Masuk", | ||
27 | "login.tokenExpired" : "Sesi Anda kedaluwarsa, silakan masuk kembali.", | ||
28 | "password.email.label" : "Alamat email", | ||
29 | "password.headline" : "Setel ulang sandi", | ||
30 | "password.link.login" : "Masuk ke akun Anda", | ||
31 | "password.link.signup" : "Buat akun gratis", | ||
32 | "password.noUser" : "Tidak ditemukan pengguna dengan email tersebut", | ||
33 | "password.submit.label" : "Kirim", | ||
34 | "password.successInfo" : "Periksa email Anda", | ||
35 | "pricing.headline" : "Dukung Franz", | ||
36 | "pricing.link.skipPayment" : "Saya tidak ingin mendukung pengembangan Franz.", | ||
37 | "pricing.submit.label" : "Saya ingin mendukung pengembangan Franz", | ||
38 | "pricing.support.label" : "Pilih paket dukungan Anda", | ||
39 | "service.crashHandler.action" : "Muat Ulang {name}", | ||
40 | "service.crashHandler.autoReload" : "Mencoba memulihkan {name} secara otomatis dalam {seconds} detik", | ||
41 | "service.crashHandler.headline" : "Ya Ampun!", | ||
42 | "service.crashHandler.text" : "{name} menyebabkan kesalahan.", | ||
43 | "service.disabledHandler.action" : "Aktifkan {name}", | ||
44 | "service.disabledHandler.headline" : "{name} dinonaktifkan", | ||
45 | "services.getStarted" : "Memulai", | ||
46 | "services.welcome" : "Selamat datang di Franz", | ||
47 | "settings.account.account.editButton" : "Edit akun", | ||
48 | "settings.account.accountType.basic" : "Akun Dasar", | ||
49 | "settings.account.accountType.premium" : "Akun Pendukung Premium", | ||
50 | "settings.account.buttonSave" : "Perbarui profil", | ||
51 | "settings.account.headline" : "Akun", | ||
52 | "settings.account.headlineAccount" : "Informasi akun", | ||
53 | "settings.account.headlineInvoices" : "Tagihan", | ||
54 | "settings.account.headlinePassword" : "Ubah sandi", | ||
55 | "settings.account.headlineProfile" : "Perbarui profil", | ||
56 | "settings.account.headlineSubscription" : "Langganan Anda", | ||
57 | "settings.account.headlineUpgrade" : "Tingkatkan akun Anda & dukung Franz", | ||
58 | "settings.account.invoiceDownload" : "Unduh", | ||
59 | "settings.account.manageSubscription.label" : "Kelola langganan Anda", | ||
60 | "settings.account.mining.active" : "Anda sedang melakukan menjalankan {hashes} perhitungan per detik.", | ||
61 | "settings.account.mining.cancel" : "Batalkan penambangan", | ||
62 | "settings.account.mining.moreInformation" : "Dapatkan informasi lebih lanjut", | ||
63 | "settings.account.mining.thankyou" : "Terima kasih telah mendukung Franz dengan daya pemrosesan Anda.", | ||
64 | "settings.account.successInfo" : "Perubahan Anda telah disimpan", | ||
65 | "settings.account.tryReloadUserInfoRequest" : "Coba lagi", | ||
66 | "settings.account.userInfoRequestFailed" : "Tidak bisa memuat informasi pengguna", | ||
67 | "settings.app.buttonInstallUpdate" : "Mulai ulang dan instal versi baru", | ||
68 | "settings.app.buttonSearchForUpdate" : "Periksa versi baru", | ||
69 | "settings.app.currentVersion" : "Versi saat ini:", | ||
70 | "settings.app.form.autoLaunchInBackground" : "Buka di latar belakang", | ||
71 | "settings.app.form.autoLaunchOnStart" : "Jalankan Franz saat komputer dimulai", | ||
72 | "settings.app.form.beta" : "Sertakan versi beta", | ||
73 | "settings.app.form.enableSpellchecking" : "Aktifkan pemeriksaan ejaan", | ||
74 | "settings.app.form.enableSystemTray" : "Tampilkan Franz di baki sistem", | ||
75 | "settings.app.form.language" : "Bahasa", | ||
76 | "settings.app.form.minimizeToSystemTray" : "Perkecil Franz ke baki sistem", | ||
77 | "settings.app.form.runInBackground" : "Tetap jalankan Franz di latar belakang saat menutup jendela", | ||
78 | "settings.app.form.showDisabledServices" : "Tampilkan tab layanan yang dinonaktifkan", | ||
79 | "settings.app.headline" : "Pengaturan", | ||
80 | "settings.app.headlineAdvanced" : "Tingkat Lanjut", | ||
81 | "settings.app.headlineAppearance" : "Tampilan", | ||
82 | "settings.app.headlineGeneral" : "Umum", | ||
83 | "settings.app.headlineLanguage" : "Bahasa", | ||
84 | "settings.app.headlineUpdates" : "Versi Baru", | ||
85 | "settings.app.restartRequired" : "Perubahan membutuhkan mulai ulang", | ||
86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
87 | "settings.app.updateStatusAvailable" : "Versi baru tersedia, mengunduh...", | ||
88 | "settings.app.updateStatusSearching" : "Sedang mencari versi baru", | ||
89 | "settings.app.updateStatusUpToDate" : "Anda sedang menggunakan versi terbaru Franz", | ||
90 | "settings.navigation.account" : "Akun", | ||
91 | "settings.navigation.availableServices" : "Layanan tersedia", | ||
92 | "settings.navigation.logout" : "Keluar", | ||
93 | "settings.navigation.settings" : "Pengaturan", | ||
94 | "settings.navigation.yourServices" : "Layanan Anda", | ||
95 | "settings.recipes.all" : "Semua layanan", | ||
96 | "settings.recipes.dev" : "Pengembangan", | ||
97 | "settings.recipes.headline" : "Layanan tersedia", | ||
98 | "settings.recipes.missingService" : "Missing a service?", | ||
99 | "settings.recipes.mostPopular" : "Paling populer", | ||
100 | "settings.recipes.nothingFound" : "Maaf, tidak ada layanan yang cocok dengan pencarian Anda.", | ||
101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Layanan berhasil ditambahkan", | ||
102 | "settings.service.error.goBack" : "Kembali ke layanan", | ||
103 | "settings.service.error.headline" : "Kesalahan", | ||
104 | "settings.service.error.message" : "Tidak dapat memuat konfigurasi layanan.", | ||
105 | "settings.service.form.addServiceHeadline" : "Tambahkan {name}", | ||
106 | "settings.service.form.availableServices" : "Layanan tersedia", | ||
107 | "settings.service.form.customUrl" : "Server khusus", | ||
108 | "settings.service.form.customUrlPremiumInfo" : "Untuk menambahkan layanan yang dijalankan mandiri, Anda membutuhkan Franz Premium Supporter Account.", | ||
109 | "settings.service.form.customUrlUpgradeAccount" : "Tingkatkan akun Anda", | ||
110 | "settings.service.form.customUrlValidationError" : "Tidak bisa memvalidasi server {name} khusus.", | ||
111 | "settings.service.form.deleteButton" : "Hapus layanan", | ||
112 | "settings.service.form.editServiceHeadline" : "Edit {name}", | ||
113 | "settings.service.form.enableAudio" : "Aktifkan audio", | ||
114 | "settings.service.form.enableNotification" : "Aktifkan pemberitahuan", | ||
115 | "settings.service.form.enableService" : "Aktifkan layanan", | ||
116 | "settings.service.form.indirectMessageInfo" : "Anda akan diberi tahu tentang semua pesan dalam kanal, bukan hanya @username, @channel, @here, ...", | ||
117 | "settings.service.form.indirectMessages" : "Tampilkan lencana pesan untuk semua pesan", | ||
118 | "settings.service.form.isMutedInfo" : "Saat dinonaktifkan, semua suara notifikasi dan pemutaran audio akan dibisukan", | ||
119 | "settings.service.form.name" : "Nama", | ||
120 | "settings.service.form.saveButton" : "Simpan layanan", | ||
121 | "settings.service.form.tabHosted" : "Hosted", | ||
122 | "settings.service.form.tabOnPremise" : "Hosted mandiri", | ||
123 | "settings.service.form.team" : "Tim", | ||
124 | "settings.service.form.yourServices" : "Layanan Anda", | ||
125 | "settings.services.deletedInfo" : "Layanan telah dihapus", | ||
126 | "settings.services.discoverServices" : "Temukan layanan", | ||
127 | "settings.services.headline" : "Layanan Anda", | ||
128 | "settings.services.noServicesAdded" : "Anda belum menambahkan layanan.", | ||
129 | "settings.services.tooltip.isDisabled" : "Layanan dinonaktifkan", | ||
130 | "settings.services.tooltip.isMuted" : "Semua suara dibisukan", | ||
131 | "settings.services.tooltip.notificationsDisabled" : "Pemberitahuan dinonaktifkan", | ||
132 | "settings.services.updatedInfo" : "Perubahan telah disimpan", | ||
133 | "settings.user.form.accountType.company" : "Perusahaan", | ||
134 | "settings.user.form.accountType.individual" : "Pribadi", | ||
135 | "settings.user.form.accountType.label" : "Jenis akun", | ||
136 | "settings.user.form.accountType.non-profit" : "Nirlaba", | ||
137 | "settings.user.form.currentPassword" : "Sandi saat ini", | ||
138 | "settings.user.form.email" : "Email", | ||
139 | "settings.user.form.firstname" : "Nama Depan", | ||
140 | "settings.user.form.lastname" : "Nama Belakang", | ||
141 | "settings.user.form.newPassword" : "Sandi baru", | ||
142 | "sidebar.addNewService" : "Tambahkan layanan baru", | ||
143 | "sidebar.mute" : "Nonaktifkan audio", | ||
144 | "sidebar.settings" : "Pengaturan", | ||
145 | "sidebar.unmute" : "Aktifkan audio", | ||
146 | "signup.company.label" : "Perusahaan", | ||
147 | "signup.email.label" : "Alamat email", | ||
148 | "signup.emailDuplicate" : "Pengguna dengan alamat email ini sudah ada", | ||
149 | "signup.firstname.label" : "Nama Depan", | ||
150 | "signup.headline" : "Daftar", | ||
151 | "signup.lastname.label" : "Nama Akhir", | ||
152 | "signup.legal.info" : "Dengan membuat akun Franz, Anda menyetujui", | ||
153 | "signup.legal.privacy" : "Pernyataan Privasi", | ||
154 | "signup.legal.terms" : "Ketentuan layanan", | ||
155 | "signup.link.login" : "Sudah punya akun, masuk?", | ||
156 | "signup.password.label" : "Sandi", | ||
157 | "signup.submit.label" : "Buat akun", | ||
158 | "subscription.euTaxInfo" : "Warga UE: pajak penjualan lokal mungkin berlaku", | ||
159 | "subscription.features.ads" : "Tanpa iklan, selamanya!", | ||
160 | "subscription.features.comingSoon" : "segera hadir", | ||
161 | "subscription.features.customServices" : "Layanan pribadi untuk Anda dan tim Anda", | ||
162 | "subscription.features.encryptedSync" : "Sinkronisasi sesi terenkripsi", | ||
163 | "subscription.features.onpremise" : "Layanan add-on premise\/hosten seperti HipChat", | ||
164 | "subscription.features.vpn" : "Dukungan proxy & VPN", | ||
165 | "subscription.includedFeatures" : "Franz Premium Supporter Account berbayar menyertakan", | ||
166 | "subscription.mining.experimental" : "eksperimental", | ||
167 | "subscription.mining.headline" : "Bagaimana cara kerjanya?", | ||
168 | "subscription.mining.line1" : "Dengan mengaktifkan \"Dukung dengan daya pemrosesan\", Franz akan menggunakan 20%-50% kemampuan CPU Anda untuk menambang mata uang kripto Monero yang sepadan kira-kira $5\/tahun.", | ||
169 | "subscription.mining.line2" : "Kami akan menyesuaikan penggunaan CPU berdasarkan perilaku penggunaan komputer Anda agar tidak menghabiskan baterau dan memperlambat Anda dan pekerjaan Anda.", | ||
170 | "subscription.mining.line3" : "Selama penambang aktif Anda akan memiliki akses tak terbatas ke Franz Premium Supporter Features.", | ||
171 | "subscription.mining.moreInformation" : "Dapatkan informasi lebih lanjut tentang paket ini.", | ||
172 | "subscription.paymentSessionError" : "Tidak bisa menginisialisasi formulir pembayaran", | ||
173 | "subscription.submit.label" : "Saya ingin mendukung pengembangan Franz", | ||
174 | "subscription.type.free" : "gratis", | ||
175 | "subscription.type.mining" : "Dukung Franz dengan daya pemrosesan", | ||
176 | "subscription.type.month" : "bulan", | ||
177 | "subscription.type.year" : "tahun", | ||
178 | "subscriptionPopup.buttonCancel" : "Batalkan", | ||
179 | "subscriptionPopup.buttonDone" : "Selesai", | ||
180 | "tabs.item.deleteService" : "Hapus layanan", | ||
181 | "tabs.item.disableAudio" : "Nonaktifkan audio", | ||
182 | "tabs.item.disableNotifications" : "Nonaktifkan pemberitahuan", | ||
183 | "tabs.item.disableService" : "Nonaktifkan layanan", | ||
184 | "tabs.item.edit" : "Edit", | ||
185 | "tabs.item.enableAudio" : "Aktifkan audio", | ||
186 | "tabs.item.enableNotification" : "Aktifkan pemberitahuan", | ||
187 | "tabs.item.enableService" : "Aktifkan layanan", | ||
188 | "tabs.item.reload" : "Muat Ulang", | ||
189 | "welcome.loginButton" : "Masuk ke akun Anda", | ||
190 | "welcome.signupButton" : "Buat akun gratis", | ||
191 | "welcome.slogan" : "Perpesanan yang bekerja untuk Anda" | ||
192 | } | ||
diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index dd87599bb..ad3f9b880 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json | |||
@@ -1,168 +1,192 @@ | |||
1 | { | 1 | { |
2 | "global.api.unhealthy": "Impossibile connettersi ai servizi online di Franz", | 2 | "global.api.unhealthy" : "Impossibile collegarsi ai servizi online di Franz", |
3 | "global.notConnectedToTheInternet": "Non sei connesso ad internet.", | 3 | "global.notConnectedToTheInternet" : "Non sei connesso a Internet.", |
4 | "welcome.signupButton": "Iscriviti gratis", | 4 | "import.headline" : "Importa i tuoi servizi da Franz 4", |
5 | "welcome.loginButton": "Accedi", | 5 | "import.notSupportedHeadline" : "Servizi non ancora supportati in Franz 5", |
6 | "welcome.slogan": "Messagistica che lavora per te", | 6 | "import.skip.label" : "Voglio aggiungere servizi manualmente", |
7 | "login.headline": "Accedi", | 7 | "import.submit.label" : "Importa servizi", |
8 | "login.email.label": "Indirizzo email", | 8 | "infobar.buttonChangelog" : "What is new?", |
9 | "login.password.label": "Password", | 9 | "infobar.buttonInstallUpdate" : "Riavvia e installa aggiornamento", |
10 | "login.submit.label": "Accedi", | 10 | "infobar.buttonReloadServices" : "Ricarica servizi", |
11 | "login.invalidCredentials": "Email o password non validi", | 11 | "infobar.requiredRequestsFailed" : "Impossibile caricare servizi e info utente", |
12 | "login.tokenExpired": "La tua sessione è scaduta, accedi di nuovo per favore.", | 12 | "infobar.servicesUpdated" : "I tuoi servizi sono stati aggiornati.", |
13 | "login.serverLogout": "La tua sessione è scaduta, accedi di nuovo per favore.", | 13 | "infobar.updateAvailable" : "È disponibile un nuovo aggiornamento di Franz.", |
14 | "login.link.signup": "Iscriviti gratis", | 14 | "invite.email.label" : "Indirizzo e-mail", |
15 | "login.link.password": "Reimposta password", | 15 | "invite.headline.friends" : "Invita 3 dei tuoi amici o colleghi", |
16 | "password.headline": "Reimposta password", | 16 | "invite.name.label" : "Nome", |
17 | "password.email.label": "Indirizzo email", | 17 | "invite.skip.label" : "Voglio farlo dopo", |
18 | "password.submit.label": "Invia", | 18 | "invite.submit.label" : "Invia inviti", |
19 | "password.noUser": "Non è stato trovato nessun utente con questa email", | 19 | "login.email.label" : "Indirizzo e-mail", |
20 | "password.successInfo": "Per favore controlla la tua email", | 20 | "login.headline" : "Accedi", |
21 | "password.link.signup": "Iscriviti gratis", | 21 | "login.invalidCredentials" : "E-mail o password non valide", |
22 | "password.link.login": "Accedi", | 22 | "login.link.password" : "Reimposta password", |
23 | "signup.headline": "Accedi", | 23 | "login.link.signup" : "Crea un account gratuito", |
24 | "signup.firstname.label": "Nome", | 24 | "login.password.label" : "Password", |
25 | "signup.lastname.label": "Cognome", | 25 | "login.serverLogout" : "Sessione scaduta, accedi di nuovo.", |
26 | "signup.email.label": "Indirizzo email", | 26 | "login.submit.label" : "Accedi", |
27 | "signup.company.label": "Azienda", | 27 | "login.tokenExpired" : "Sessione scaduta, accedi di nuovo.", |
28 | "signup.password.label": "Password", | 28 | "password.email.label" : "Indirizzo e-mail", |
29 | "signup.submit.label": "Registrati", | 29 | "password.headline" : "Reimposta password", |
30 | "signup.link.login": "Hai già fatto l'iscrizione? Accedi", | 30 | "password.link.login" : "Accedi al tuo account", |
31 | "signup.emailDuplicate": "Esiste già un utente con questo indirizzo email", | 31 | "password.link.signup" : "Crea un account gratuito", |
32 | "signup.legal.info": "Iscrivendoti a Franz accetti", | 32 | "password.noUser" : "Non è stato trovato nessun utente con quell'indirizzo e-mail", |
33 | "signup.legal.terms": "Termini di servizio", | 33 | "password.submit.label" : "Invia", |
34 | "signup.legal.privacy": "Informativa sulla Privacy", | 34 | "password.successInfo" : "Controlla la tua e-mail", |
35 | "pricing.headline": "Supporta Franz", | 35 | "pricing.headline" : "Supporta Franz", |
36 | "pricing.support.label": "Seleziona il tuo piano di sostegno", | 36 | "pricing.link.skipPayment" : "Non voglio supportare lo sviluppo di Franz", |
37 | "pricing.submit.label": "Voglio sostenere lo sviluppo di Franz", | 37 | "pricing.submit.label" : "Voglio supportare lo sviluppo di Franz", |
38 | "pricing.link.skipPayment": "Non voglio sostenere lo sviluppo Franz.", | 38 | "pricing.support.label" : "Seleziona il tuo piano di supporto", |
39 | "import.headline": "Importa i tuoi servizi di Franz 4", | 39 | "service.crashHandler.action" : "Ricarica {name}", |
40 | "import.notSupportedHeadline": "Servzi non ancora supportati in Franz 5", | 40 | "service.crashHandler.autoReload" : "Prova a ripristinare automaticamente {name} in {seconds} secondi", |
41 | "import.submit.label": "Importa servizi", | 41 | "service.crashHandler.headline" : "Oh no!", |
42 | "import.skip.label": "Voglio aggiungere i servizi a mano", | 42 | "service.crashHandler.text" : "{name} ha causato un errore.", |
43 | "invite.submit.label": "Manda inviti", | 43 | "service.disabledHandler.action" : "Abilita {name}", |
44 | "invite.headline.friends": "Invita 3 dei tuoi amici o colleghi", | 44 | "service.disabledHandler.headline" : "{name} è disabilitato", |
45 | "invite.name.label": "Nome", | 45 | "services.getStarted" : "Iniziamo", |
46 | "invite.email.label": "Indirizzo email", | 46 | "services.welcome" : "Benvenuto in Franz", |
47 | "invite.skip.label": "Voglio farlo dopo", | 47 | "settings.account.account.editButton" : "Modifica account", |
48 | "subscription.submit.label": "Voglio sostenere lo sviluppo di Franz", | 48 | "settings.account.accountType.basic" : "Account Basic", |
49 | "subscription.paymentSessionError": "Impossibile inizializzare il modulo di pagamento", | 49 | "settings.account.accountType.premium" : "Premium Supporter Account", |
50 | "subscription.includedFeatures": "La sottoscrizione a pagamento Franz Premium Supporter include", | 50 | "settings.account.buttonSave" : "Aggiorna profilo", |
51 | "subscription.features.onpremise": "Agiunge servizi on-premise/hosted come HipChat", | 51 | "settings.account.headline" : "Account", |
52 | "subscription.features.customServices": "Servizi privati per te ed il tuo team", | 52 | "settings.account.headlineAccount" : "Informazioni account", |
53 | "subscription.features.encryptedSync": "Sincronizzazione sessione crittografata", | 53 | "settings.account.headlineInvoices" : "Fatture", |
54 | "subscription.features.vpn": "Supporto di Proxy e VPN", | 54 | "settings.account.headlinePassword" : "Cambia password", |
55 | "subscription.features.ads": "Nessuna pubblicità", | 55 | "settings.account.headlineProfile" : "Aggiorna profilo", |
56 | "subscription.features.comingSoon": "Presto disponibile", | 56 | "settings.account.headlineSubscription" : "La tua sottoscrizione", |
57 | "infobar.servicesUpdated": "I tuoi servizi sono stati aggiornati.", | 57 | "settings.account.headlineUpgrade" : "Aggiorna il tuo account e supporta Franz", |
58 | "infobar.updateAvailable": "È disponibile un nuovo aggiornamento per Franz.", | 58 | "settings.account.invoiceDownload" : "Scarica", |
59 | "infobar.buttonReloadServices": "Ricarica i servizi", | 59 | "settings.account.manageSubscription.label" : "Gestisci la tua sottoscrizione", |
60 | "infobar.buttonInstallUpdate": "Riavvia e installa l'aggiornamento", | 60 | "settings.account.mining.active" : "Stai eseguendo {hashes} calcoli al secondo.", |
61 | "infobar.requiredRequestsFailed": "Impossibile caricare i servizi e le informazioni dell'utente", | 61 | "settings.account.mining.cancel" : "Annulla mining", |
62 | "sidebar.settings": "Impostazioni", | 62 | "settings.account.mining.moreInformation" : "Ottieni ulteriori informazioni", |
63 | "services.welcome": "Benvenuto in Franz", | 63 | "settings.account.mining.thankyou" : "Grazier per supportare Franz con la tua potenza di calcolo.", |
64 | "services.getStarted": "Inizia", | 64 | "settings.account.successInfo" : "Le tue modifiche sono state salvate", |
65 | "settings.account.headline": "Conto", | 65 | "settings.account.tryReloadUserInfoRequest" : "Riprova ancora", |
66 | "settings.account.headlineSubscription": "La tua sottoscrizione", | 66 | "settings.account.userInfoRequestFailed" : "Impossibile caricare informazioni utente.", |
67 | "settings.account.headlineUpgrade": "Aggiorna il tuo conto e supporta Franz", | 67 | "settings.app.buttonInstallUpdate" : "Riavvia e installa aggiornamento", |
68 | "settings.account.headlineInvoices": "Fatture", | 68 | "settings.app.buttonSearchForUpdate" : "Controlla aggiornamenti", |
69 | "settings.account.manageSubscription.label": "Gestisci la tua sottoscrizione", | 69 | "settings.app.currentVersion" : "Versione attuale:", |
70 | "settings.account.accountType.basic": "Conto Base", | 70 | "settings.app.form.autoLaunchInBackground" : "Apri in secondo piano", |
71 | "settings.account.accountType.premium": "Conto Premium Supporter", | 71 | "settings.app.form.autoLaunchOnStart" : "Apri Franz all'avvio", |
72 | "settings.account.account.editButton": "Modifica conto", | 72 | "settings.app.form.beta" : "Includi versioni beta", |
73 | "settings.account.invoiceDownload": "Scarica", | 73 | "settings.app.form.enableSpellchecking" : "Abilita controllo ortografico", |
74 | "settings.account.userInfoRequestFailed": "Impossibile caricare le informazioni dell'utente", | 74 | "settings.app.form.enableSystemTray" : "Mostra Franz nell'area di notifica", |
75 | "settings.account.tryReloadUserInfoRequest": "Prova ancora", | 75 | "settings.app.form.language" : "Lingua", |
76 | "settings.account.headlineProfile": "Aggiorna profilo", | 76 | "settings.app.form.minimizeToSystemTray" : "Minimizza Franz nell'area di notifica", |
77 | "settings.account.headlineAccount": "Informazioni sul conto", | 77 | "settings.app.form.runInBackground" : "Mantieni Franz in esecuzione quando chiudi la finestra", |
78 | "settings.account.headlinePassword": "Cambia la password", | 78 | "settings.app.form.showDisabledServices" : "Mostra i tab disabilitati", |
79 | "settings.account.successInfo": "Le tue modifiche sono state salvate", | 79 | "settings.app.headline" : "Impostazioni", |
80 | "settings.account.buttonSave": "Aggiorna profilo", | 80 | "settings.app.headlineAdvanced" : "Avanzate", |
81 | "settings.account.mining.thankyou": "Grazie per supportare Franz con la tua potenza di calcolo.", | 81 | "settings.app.headlineAppearance" : "Aspetto", |
82 | "settings.account.mining.active": "Al momento stai eseguendo {hashes} calcoli al secondo.", | 82 | "settings.app.headlineGeneral" : "Generale", |
83 | "settings.account.mining.moreInformation": "Ottieni piú informazioni", | 83 | "settings.app.headlineLanguage" : "Lingua", |
84 | "settings.account.mining.cancel": "Annulla mining", | 84 | "settings.app.headlineUpdates" : "Aggiornamenti", |
85 | "settings.navigation.availableServices": "Servizi disponibili", | 85 | "settings.app.restartRequired" : "Le modifiche richiedono un riavvio", |
86 | "settings.navigation.yourServices": "I tuoi servizi", | 86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", |
87 | "settings.navigation.account": "Conto", | 87 | "settings.app.updateStatusAvailable" : "Aggiornamento disponibile, download in corso...", |
88 | "settings.navigation.settings": "Impostazioni", | 88 | "settings.app.updateStatusSearching" : "È in ricerca di un aggiornamento", |
89 | "settings.navigation.logout": "Disconnetti", | 89 | "settings.app.updateStatusUpToDate" : "Stai utilizzando l'ultima versione di Franz", |
90 | "settings.recipes.headline": "Servizi disponibili", | 90 | "settings.navigation.account" : "Account", |
91 | "settings.recipes.mostPopular": "Piú popolari", | 91 | "settings.navigation.availableServices" : "Servizi disponibili", |
92 | "settings.recipes.all": "Tutti i servizi", | 92 | "settings.navigation.logout" : "Esci", |
93 | "settings.recipes.dev": "Sviluppo", | 93 | "settings.navigation.settings" : "Impostazioni", |
94 | "settings.recipes.nothingFound": "Mi dispiace, nessuno servizio corrisponde alla tua ricerca.", | 94 | "settings.navigation.yourServices" : "I tuoi servizi", |
95 | "settings.recipes.servicesSuccessfulAddedInfo": "Servizio aggiunto con successo", | 95 | "settings.recipes.all" : "Tutti i servizi", |
96 | "settings.service.form.saveButton": "Salva servizio", | 96 | "settings.recipes.dev" : "Sviluppo", |
97 | "settings.service.form.deleteButton": "Elimina servizio", | 97 | "settings.recipes.headline" : "Servizi disponibili", |
98 | "settings.service.form.availableServices": "Servizi disponibili", | 98 | "settings.recipes.missingService" : "Missing a service?", |
99 | "settings.service.form.yourServices": "I tuoi servizi", | 99 | "settings.recipes.mostPopular" : "Più popolari", |
100 | "settings.service.form.addServiceHeadline": "Aggiungi {name}", | 100 | "settings.recipes.nothingFound" : "Ci dispiace, ma nessun servizio corrisponde alla tua ricerca.", |
101 | "settings.service.form.editServiceHeadline": "Modifica {name}", | 101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Servizio aggiunto con successo", |
102 | "settings.service.form.tabHosted": "Hosted", | 102 | "settings.service.error.goBack" : "Indietro ai servizi", |
103 | "settings.service.form.tabOnPremise": "Self hosted ⭐️", | 103 | "settings.service.error.headline" : "Errore", |
104 | "settings.service.form.customUrlValidationError": "Impossibile validare il server personale {name}.", | 104 | "settings.service.error.message" : "Impossibile caricare il servizio.", |
105 | "settings.service.form.customUrlPremiumInfo": "Per aggiungere servizi self hosted devi avere un conto Franz Premium Supporter.", | 105 | "settings.service.form.addServiceHeadline" : "Aggiungi {name}", |
106 | "settings.service.form.customUrlUpgradeAccount": "Aggiorna il tuo conto", | 106 | "settings.service.form.availableServices" : "Servizi disponibili", |
107 | "settings.service.form.indirectMessageInfo": "Riceverai notifiche per tutti i nuovi messaggi in un canale, non solo @username, @channel, @here, ...", | 107 | "settings.service.form.customUrl" : "Server personalizzato", |
108 | "settings.service.error.headline": "Errore", | 108 | "settings.service.form.customUrlPremiumInfo" : "Per aggiungere servizi self hosted, devi avere un account Franz da Premium Supporter.", |
109 | "settings.service.error.goBack": "Torna ai servizi", | 109 | "settings.service.form.customUrlUpgradeAccount" : "Aggiorna il tuo account", |
110 | "settings.service.error.message": "Impossibile caricare le specifiche del servizio.", | 110 | "settings.service.form.customUrlValidationError" : "Impossibile validare il server personalizzato {name}.", |
111 | "settings.services.tooltip.isDisabled": "Il servizio è disabilitato", | 111 | "settings.service.form.deleteButton" : "Elimina servizio", |
112 | "settings.services.tooltip.notificationsDisabled": "Le notifiche sono disabilitate", | 112 | "settings.service.form.editServiceHeadline" : "Modifica {name}", |
113 | "settings.services.headline": "I tuoi servizi", | 113 | "settings.service.form.enableAudio" : "Abilita audio", |
114 | "settings.services.noServicesAdded": "Non hai ancora aggiunto nessun servizio.", | 114 | "settings.service.form.enableNotification" : "Attiva notifiche", |
115 | "settings.services.discoverServices": "Trova servizi", | 115 | "settings.service.form.enableService" : "Attiva servizio", |
116 | "settings.services.updatedInfo": "Le tue modifiche sono state salvate", | 116 | "settings.service.form.indirectMessageInfo" : "Verrai notificato di tutti i messaggi in un canale, non solo @username, @channel, @here, ...", |
117 | "settings.services.deletedInfo": "Il servizio è stato eliminato", | 117 | "settings.service.form.indirectMessages" : "Mostra il simbolo del messaggio per tutti i messaggi", |
118 | "settings.app.headline": "Impostazioni", | 118 | "settings.service.form.isMutedInfo" : "Quando disabilitato, tutte le notifiche sonore e le riproduzioni audio saranno disattivate", |
119 | "settings.app.headlineGeneral": "Generale", | 119 | "settings.service.form.name" : "Nome", |
120 | "settings.app.headlineLanguage": "Lingua", | 120 | "settings.service.form.saveButton" : "Salva servizio", |
121 | "settings.app.headlineUpdates": "Aggiornamento", | 121 | "settings.service.form.tabHosted" : "Hosted", |
122 | "settings.app.buttonSearchForUpdate": "Controlla aggiornamento versione", | 122 | "settings.service.form.tabOnPremise" : "Self hosted ⭐️", |
123 | "settings.app.buttonInstallUpdate": "Riavvia e installa l'aggiornamento", | 123 | "settings.service.form.team" : "Team", |
124 | "settings.app.updateStatusSearching": "Sto cercando l'aggiornamento", | 124 | "settings.service.form.yourServices" : "I tuoi servizi", |
125 | "settings.app.updateStatusAvailable": "Aggiornamento disponibile, scarico...", | 125 | "settings.services.deletedInfo" : "Il servizio è stato eliminato", |
126 | "settings.app.updateStatusUpToDate": "You are using the latest version of Franz", | 126 | "settings.services.discoverServices" : "Scopri servizi", |
127 | "settings.app.form.autoLaunchOnStart": "Lancia Franz all'avvio", | 127 | "settings.services.headline" : "I tuoi servizi", |
128 | "settings.app.form.autoLaunchInBackground": "Apri in background", | 128 | "settings.services.noServicesAdded" : "Non aggiunto ancora nessun servizio.", |
129 | "settings.app.form.enableSystemTray": "Mostra Franz nella zona delle notifiche di sistema", | 129 | "settings.services.tooltip.isDisabled" : "Servizio disattivato", |
130 | "settings.app.form.minimizeToSystemTray": "Minimizza Franz nella zona delle notifiche di sistema", | 130 | "settings.services.tooltip.isMuted" : "Tutti i suoni sono disattivati", |
131 | "settings.app.form.runInBackground": "Maniteni Franz attivo in background quando chiudi la finestra", | 131 | "settings.services.tooltip.notificationsDisabled" : "Le notifiche sono state disattivate", |
132 | "settings.app.form.language": "Lingua", | 132 | "settings.services.updatedInfo" : "Le modifiche sono state salvate", |
133 | "settings.app.form.beta": "Includi versioni beta", | 133 | "settings.user.form.accountType.company" : "Società", |
134 | "settings.app.currentVersion": "Versione corrente:", | 134 | "settings.user.form.accountType.individual" : "Individuo", |
135 | "settings.service.form.name": "Nome", | 135 | "settings.user.form.accountType.label" : "Tipo account", |
136 | "settings.service.form.enableService": "Abilita servizio", | 136 | "settings.user.form.accountType.non-profit" : "Non-Profit", |
137 | "settings.service.form.enableNotification": "Abilita notifiche", | 137 | "settings.user.form.currentPassword" : "Password attuale", |
138 | "settings.service.form.team": "Team", | 138 | "settings.user.form.email" : "E-mail", |
139 | "settings.service.form.customUrl": "Server personale", | 139 | "settings.user.form.firstname" : "Nome", |
140 | "settings.service.form.indirectMessages": "Mostra il badge del messaggio per tutti i nuovi messaggi", | 140 | "settings.user.form.lastname" : "Cognome", |
141 | "settings.user.form.firstname": "Nome", | 141 | "settings.user.form.newPassword" : "Nuova password", |
142 | "settings.user.form.lastname": "Cognome", | 142 | "sidebar.addNewService" : "Aggiungi nuovo servizio", |
143 | "settings.user.form.email": "Email", | 143 | "sidebar.mute" : "Disabilita audio", |
144 | "settings.user.form.currentPassword": "Password corrente", | 144 | "sidebar.settings" : "Impostazioni", |
145 | "settings.user.form.newPassword": "Nuova password", | 145 | "sidebar.unmute" : "Abilita audio", |
146 | "settings.user.form.accountType.label": "Tipo di conto", | 146 | "signup.company.label" : "Società", |
147 | "settings.user.form.accountType.individual": "Individuale", | 147 | "signup.email.label" : "Indirizzo e-mail", |
148 | "settings.user.form.accountType.non-profit": "Non-Profit", | 148 | "signup.emailDuplicate" : "Esiste già un utente con lo stesso indirizzo e-mail", |
149 | "settings.user.form.accountType.company": "Azienda", | 149 | "signup.firstname.label" : "Nome", |
150 | "subscription.type.free": "gratis", | 150 | "signup.headline" : "Iscriviti", |
151 | "subscription.type.month": "mese", | 151 | "signup.lastname.label" : "Cognome", |
152 | "subscription.type.year": "anno", | 152 | "signup.legal.info" : "Creato un account Franz accetti", |
153 | "subscription.type.mining": "Supporta Franz con della potenza di calcolo", | 153 | "signup.legal.privacy" : "Informativa sulla Privacy", |
154 | "subscription.mining.headline": "Come funziona?", | 154 | "signup.legal.terms" : "Termini del Servizio", |
155 | "subscription.mining.experimental": "sperimentale", | 155 | "signup.link.login" : "Hai già un account, accedi?", |
156 | "subscription.mining.line1": "Abilitando \"Supporta Franz con della potenza di calcolo\",Franz userà circa il 20-50% della tua CPU per fare il mining della criptovaluta Monero che equivale approssimativamente a 5$/anno.", | 156 | "signup.password.label" : "Password", |
157 | "subscription.mining.line2": "Adatteremo l'utilizzo della CPU in base all tue abitudini di lavoro per non scaricare la tua batteria e rallentare la tua macchina.", | 157 | "signup.submit.label" : "Crea un account", |
158 | "subscription.mining.line3": "Fino a che il mining è attivo, avrai accesso illimitato a tutte le funzionalità del conto Franz Premium Supporter.", | 158 | "subscription.euTaxInfo" : "Residente nella Comunità Europea, possono essere applicate tasse locali", |
159 | "subscription.mining.moreInformation": "Ottieni più informazioni su questo piano.", | 159 | "subscription.features.ads" : "Nessuna pubblicità, mai!", |
160 | "subscriptionPopup.buttonCancel": "Annulla", | 160 | "subscription.features.comingSoon" : "in arrivo", |
161 | "subscriptionPopup.buttonDone": "Fatto", | 161 | "subscription.features.customServices" : "Servizi privati per te e il tuo team", |
162 | "tabs.item.reload": "Ricarica", | 162 | "subscription.features.encryptedSync" : "Sincronizzazione sessione crittografata", |
163 | "tabs.item.edit": "Modifica", | 163 | "subscription.features.onpremise" : "Aggiungi servizi on-premise\/hostati come HipChat", |
164 | "tabs.item.disableNotifications": "Disabilita le notifiche", | 164 | "subscription.features.vpn" : "Supporto Proxy e VPN", |
165 | "tabs.item.enableNotification": "Abilita le notifiche", | 165 | "subscription.includedFeatures" : "L'account Franz a pagamento Premium Supporter include", |
166 | "tabs.item.disableService": "Disabilita servizio", | 166 | "subscription.mining.experimental" : "sperimentale", |
167 | "tabs.item.deleteService": "Elimina servizio" | 167 | "subscription.mining.headline" : "Come funziona?", |
168 | "subscription.mining.line1" : "Attivando il \"Supporto con potenza di calcolo\", Franz utilizzerà circa il 20-50% della tua CPU per minare la criptomoneta Monero che equivale a circa 5$\/anno.", | ||
169 | "subscription.mining.line2" : "Adatteremo l'utilizzo della CPU in base al carico di lavoro per non drenare la batteria e rallentare la tua macchina.", | ||
170 | "subscription.mining.line3" : "Avrai accesso illimitato a tutte le caratteristiche Premium Supporter finché che il mining sarà attivo.", | ||
171 | "subscription.mining.moreInformation" : "Ottieni maggiori informazioni su questo piano.", | ||
172 | "subscription.paymentSessionError" : "Impossibile inizializzare il form del pagamento", | ||
173 | "subscription.submit.label" : "Voglio supportare lo sviluppo di Franz", | ||
174 | "subscription.type.free" : "gratis", | ||
175 | "subscription.type.mining" : "Supporta Franz con potenza di calcolo", | ||
176 | "subscription.type.month" : "mese", | ||
177 | "subscription.type.year" : "anno", | ||
178 | "subscriptionPopup.buttonCancel" : "Annulla", | ||
179 | "subscriptionPopup.buttonDone" : "Fatto", | ||
180 | "tabs.item.deleteService" : "Elimina servizio", | ||
181 | "tabs.item.disableAudio" : "Disattiva audio", | ||
182 | "tabs.item.disableNotifications" : "Disattiva notifiche", | ||
183 | "tabs.item.disableService" : "Disattiva servizio", | ||
184 | "tabs.item.edit" : "Modifica", | ||
185 | "tabs.item.enableAudio" : "Attiva audio", | ||
186 | "tabs.item.enableNotification" : "Attiva notifiche", | ||
187 | "tabs.item.enableService" : "Attiva servizio", | ||
188 | "tabs.item.reload" : "Ricarica", | ||
189 | "welcome.loginButton" : "Accedi al tuo account", | ||
190 | "welcome.signupButton" : "Crea un account gratuito", | ||
191 | "welcome.slogan" : "Messaging that works for you" | ||
168 | } | 192 | } |
diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 98b7cbb19..e091f1f5b 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json | |||
@@ -1,169 +1,192 @@ | |||
1 | { | 1 | { |
2 | "global.api.unhealthy": "Franzオンラインサービスに接続できません。", | 2 | "global.api.unhealthy" : "Franzオンラインサービスに接続できません。", |
3 | "global.notConnectedToTheInternet": "Internetに接続されていません。", | 3 | "global.notConnectedToTheInternet" : "Internetに接続されていません。", |
4 | "welcome.signupButton": "無料アカウントを作成", | 4 | "import.headline" : "Franz 4サービスのインポート", |
5 | "welcome.loginButton": "アカウントにログイン", | 5 | "import.notSupportedHeadline" : "サービスはFranz 5ではまだ対応されていません", |
6 | "welcome.slogan": "Messaging that works for you", | 6 | "import.skip.label" : "サービスの追加は後で行う", |
7 | "login.headline": "サインイン", | 7 | "import.submit.label" : "サービスのインポート", |
8 | "login.email.label": "メールアドレス", | 8 | "infobar.buttonChangelog" : "What is new?", |
9 | "login.password.label": "パスワード", | 9 | "infobar.buttonInstallUpdate" : "再起動して更新をインストールする", |
10 | "login.submit.label": "サインイン", | 10 | "infobar.buttonReloadServices" : "サービスのリロード", |
11 | "login.invalidCredentials": "メールアドレスかパスワードに誤りがあります。", | 11 | "infobar.requiredRequestsFailed" : "サービスとユーザー情報が読み込めません", |
12 | "login.tokenExpired": "セッションが切れました。ログインし直して下さい。", | 12 | "infobar.servicesUpdated" : "サービスが更新されました。", |
13 | "login.serverLogout": "セッションが切れました。ログインし直して下さい。", | 13 | "infobar.updateAvailable" : "Franzの新しい更新があります。", |
14 | "login.link.signup": "無料アカウントを作成", | 14 | "invite.email.label" : "メールアドレス", |
15 | "login.link.password": "パスワードをリセット", | 15 | "invite.headline.friends" : "あなたの友人や同僚の方を3名までFranzに招待できます", |
16 | "password.headline": "パスワードをリセット", | 16 | "invite.name.label" : "氏名", |
17 | "password.email.label": "メールアドレス", | 17 | "invite.skip.label" : "後にする", |
18 | "password.submit.label": "送信", | 18 | "invite.submit.label" : "招待を送る", |
19 | "password.noUser": "このメールアドレスは登録されていません", | 19 | "login.email.label" : "メールアドレス", |
20 | "password.successInfo": "メールを確認して下さい", | 20 | "login.headline" : "サインイン", |
21 | "password.link.signup": "無料アカウントを作成", | 21 | "login.invalidCredentials" : "メールアドレスかパスワードに誤りがあります", |
22 | "password.link.login": "サインイン", | 22 | "login.link.password" : "パスワードをリセット", |
23 | "signup.headline": "アカウントの作成", | 23 | "login.link.signup" : "無料アカウントを作成", |
24 | "signup.firstname.label": "名", | 24 | "login.password.label" : "パスワード", |
25 | "signup.lastname.label": "姓", | 25 | "login.serverLogout" : "セッションが切れました。ログインし直して下さい。", |
26 | "signup.email.label": "メールアドレス", | 26 | "login.submit.label" : "サインイン", |
27 | "signup.company.label": "会社名", | 27 | "login.tokenExpired" : "セッションが切れました。ログインし直して下さい。", |
28 | "signup.password.label": "パスワード", | 28 | "password.email.label" : "メールアドレス", |
29 | "signup.submit.label": "作成する", | 29 | "password.headline" : "パスワードのリセット", |
30 | "signup.link.login": "アカウントを既に持っていますか? こちらからサインイン", | 30 | "password.link.login" : "サインイン", |
31 | "signup.emailDuplicate": "このメールアドレスは既に登録されています", | 31 | "password.link.signup" : "無料アカウントを作成", |
32 | "signup.legal.info": "Franzアカウントを作成することで、以下の規約に同意したものとみなします", | 32 | "password.noUser" : "このメールアドレスは登録されていません", |
33 | "signup.legal.terms": "利用規約", | 33 | "password.submit.label" : "送信", |
34 | "signup.legal.privacy": "プライバシーについて", | 34 | "password.successInfo" : "メールを確認して下さい", |
35 | "pricing.headline": "Franzを支援する", | 35 | "pricing.headline" : "Franzを支援する", |
36 | "pricing.support.label": "プランを選択して下さい", | 36 | "pricing.link.skipPayment" : "Franzの開発を支援しない。", |
37 | "pricing.submit.label": "Franzの開発を支援したい", | 37 | "pricing.submit.label" : "Franzの開発を支援したい。", |
38 | "pricing.link.skipPayment": "Franzの開発を支援しない", | 38 | "pricing.support.label" : "プランを選択して下さい", |
39 | "import.headline": "Franz 4サービスのインポート", | 39 | "service.crashHandler.action" : "{name} をリロード", |
40 | "import.notSupportedHeadline": "サービスの機能はFranz 5ではまだ対応されていません", | 40 | "service.crashHandler.autoReload" : "{seconds}秒後、自動的に{name}の復旧を試みます", |
41 | "import.submit.label": "サービスのインポート", | 41 | "service.crashHandler.headline" : "しまった!", |
42 | "import.skip.label": "サービスの追加は後で行う", | 42 | "service.crashHandler.text" : "{name}はエラーを起こしました。", |
43 | "invite.submit.label": "招待を送る", | 43 | "service.disabledHandler.action" : "{name}を有効にする", |
44 | "invite.headline.friends": "あなたの友人や同僚の方を3名までFranzに招待できます", | 44 | "service.disabledHandler.headline" : "{name}は無効です", |
45 | "invite.name.label": "氏名", | 45 | "services.getStarted" : "はじめる", |
46 | "invite.email.label": "メールアドレス", | 46 | "services.welcome" : "Franzにようこそ", |
47 | "invite.skip.label": "後にする", | 47 | "settings.account.account.editButton" : "アカウントの編集", |
48 | "subscription.submit.label": "Franzの開発を支援したい", | 48 | "settings.account.accountType.basic" : "Basicアカウント", |
49 | "subscription.paymentSessionError": "支払いフォームを初期化出来ません", | 49 | "settings.account.accountType.premium" : "Premium Supporterアカウント", |
50 | "subscription.includedFeatures": "Franz Premium Supporter有料アカウントには以下が含まれます", | 50 | "settings.account.buttonSave" : "プロフィールの更新", |
51 | "subscription.features.onpremise": "HipChatのようなオンプレミス/ホスト型サービスの追加", | 51 | "settings.account.headline" : "アカウント", |
52 | "subscription.features.customServices": "あなたとあなたのチームのためのプライベートサービス", | 52 | "settings.account.headlineAccount" : "アカウント情報", |
53 | "subscription.features.encryptedSync": "暗号化されたセッションの同期", | 53 | "settings.account.headlineInvoices" : "請求書", |
54 | "subscription.features.vpn": "プロキシサーバーとVPNのサポート", | 54 | "settings.account.headlinePassword" : "パスワードの変更", |
55 | "subscription.features.ads": "広告は一切ありません!", | 55 | "settings.account.headlineProfile" : "プロフィールの更新", |
56 | "subscription.features.comingSoon": "まもなく登場", | 56 | "settings.account.headlineSubscription" : "サブスクリプション内容", |
57 | "infobar.servicesUpdated": "サービスが更新されました", | 57 | "settings.account.headlineUpgrade" : "アカウントをアップグレードし、Franzを支援する", |
58 | "infobar.updateAvailable": "Franzの新しい更新があります", | 58 | "settings.account.invoiceDownload" : "ダウンロード", |
59 | "infobar.buttonReloadServices": "Serviceのリロード", | 59 | "settings.account.manageSubscription.label" : "サブスクリプションの管理", |
60 | "infobar.buttonInstallUpdate": "再起動して更新をインストールする", | 60 | "settings.account.mining.active" : "1秒あたり{hashes}個のハッシュを計算中です。", |
61 | "infobar.requiredRequestsFailed": "サービスとユーザー情報が読み込めません", | 61 | "settings.account.mining.cancel" : "マイニングをキャンセルする", |
62 | "sidebar.settings": "設定", | 62 | "settings.account.mining.moreInformation" : "詳細を確認する", |
63 | "sidebar.addNewService": "!!!Add new service", | 63 | "settings.account.mining.thankyou" : "お使いのPCの処理能力をFranzの支援に活用して頂き、ありがとうございます。", |
64 | "services.welcome": "Franzにようこそ", | 64 | "settings.account.successInfo" : "変更内容が保存されました", |
65 | "services.getStarted": "はじめる", | 65 | "settings.account.tryReloadUserInfoRequest" : "再試行", |
66 | "settings.account.headline": "アカウント", | 66 | "settings.account.userInfoRequestFailed" : "ユーザ情報を読み込めませんでした", |
67 | "settings.account.headlineSubscription": "サブスクリプション内容", | 67 | "settings.app.buttonInstallUpdate" : "再起動して更新をインストールする", |
68 | "settings.account.headlineUpgrade": "アカウントをアップグレードし、Franzを支援する", | 68 | "settings.app.buttonSearchForUpdate" : "更新の確認", |
69 | "settings.account.headlineInvoices": "インボイス", | 69 | "settings.app.currentVersion" : "現在のバージョン:", |
70 | "settings.account.manageSubscription.label": "サブスクリプションの管理", | 70 | "settings.app.form.autoLaunchInBackground" : "バックグラウンドで開く", |
71 | "settings.account.accountType.basic": "Basicアカウント", | 71 | "settings.app.form.autoLaunchOnStart" : "システム起動時にFranzを開く", |
72 | "settings.account.accountType.premium": "Premium Supporterアカウント", | 72 | "settings.app.form.beta" : "Betaバージョンを含める", |
73 | "settings.account.account.editButton": "アカウントを編集する", | 73 | "settings.app.form.enableSpellchecking" : "スペルチェックを有効にする", |
74 | "settings.account.invoiceDownload": "ダウンロード", | 74 | "settings.app.form.enableSystemTray" : "Franzをシステムトレイに表示する", |
75 | "settings.account.userInfoRequestFailed": "ユーザー情報が読み込めません", | 75 | "settings.app.form.language" : "言語", |
76 | "settings.account.tryReloadUserInfoRequest": "リトライ", | 76 | "settings.app.form.minimizeToSystemTray" : "Franzをシステムトレイに最小化する", |
77 | "settings.account.headlineProfile": "プロフィールを更新する", | 77 | "settings.app.form.runInBackground" : "ウインドウを閉じた際にFranzをバックグラウンドで実行させておく", |
78 | "settings.account.headlineAccount": "アカウント情報", | 78 | "settings.app.form.showDisabledServices" : "無効化されたサービスのタブを表示する", |
79 | "settings.account.headlinePassword": "パスワードを変更する", | 79 | "settings.app.headline" : "設定", |
80 | "settings.account.successInfo": "変更内容が保存されました", | 80 | "settings.app.headlineAdvanced" : "詳細", |
81 | "settings.account.buttonSave": "プロフィールを更新", | 81 | "settings.app.headlineAppearance" : "表示スタイル", |
82 | "settings.account.mining.thankyou": "お使いのPCの処理能力をFranzの支援に活用して頂き、ありがとうございます。", | 82 | "settings.app.headlineGeneral" : "一般", |
83 | "settings.account.mining.active": "1秒あたり{hashes}個のハッシュを計算中です。", | 83 | "settings.app.headlineLanguage" : "言語", |
84 | "settings.account.mining.moreInformation": "詳細を確認する", | 84 | "settings.app.headlineUpdates" : "更新", |
85 | "settings.account.mining.cancel": "マイニングをキャンセルする", | 85 | "settings.app.restartRequired" : "変更には再起動が必要です", |
86 | "settings.navigation.availableServices": "利用可能なサービス", | 86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", |
87 | "settings.navigation.yourServices": "利用中のサービス", | 87 | "settings.app.updateStatusAvailable" : "更新が見つかりました。ダウンロードしています...", |
88 | "settings.navigation.account": "アカウント", | 88 | "settings.app.updateStatusSearching" : "更新を確認中", |
89 | "settings.navigation.settings": "設定", | 89 | "settings.app.updateStatusUpToDate" : "お使いのFranzは最新です", |
90 | "settings.navigation.logout": "ログアウト", | 90 | "settings.navigation.account" : "アカウント", |
91 | "settings.recipes.headline": "利用可能なサービス", | 91 | "settings.navigation.availableServices" : "利用可能なサービス", |
92 | "settings.recipes.mostPopular": "最も人気", | 92 | "settings.navigation.logout" : "ログアウト", |
93 | "settings.recipes.all": "全てのサービス", | 93 | "settings.navigation.settings" : "設定", |
94 | "settings.recipes.dev": "開発版", | 94 | "settings.navigation.yourServices" : "利用中のサービス", |
95 | "settings.recipes.nothingFound": "すみませんが、検索ワードに該当するサービスが見つかりませんでした。", | 95 | "settings.recipes.all" : "すべてのサービス", |
96 | "settings.recipes.servicesSuccessfulAddedInfo": "サービスが追加されました", | 96 | "settings.recipes.dev" : "開発版", |
97 | "settings.service.form.saveButton": "サービスを保存する", | 97 | "settings.recipes.headline" : "利用可能なサービス", |
98 | "settings.service.form.deleteButton": "サービスを削除する", | 98 | "settings.recipes.missingService" : "Missing a service?", |
99 | "settings.service.form.availableServices": "利用可能なサービス", | 99 | "settings.recipes.mostPopular" : "最も人気", |
100 | "settings.service.form.yourServices": "利用中のサービス", | 100 | "settings.recipes.nothingFound" : "すみませんが、検索ワードに該当するサービスが見つかりませんでした。", |
101 | "settings.service.form.addServiceHeadline": "{name}を追加", | 101 | "settings.recipes.servicesSuccessfulAddedInfo" : "サービスが追加されました", |
102 | "settings.service.form.editServiceHeadline": "{name}を編集", | 102 | "settings.service.error.goBack" : "サービスに戻る", |
103 | "settings.service.form.tabHosted": "ホスト", | 103 | "settings.service.error.headline" : "エラー", |
104 | "settings.service.form.tabOnPremise": "セルフホスト ⭐️", | 104 | "settings.service.error.message" : "サービスのレシピを読み込めませんでした。", |
105 | "settings.service.form.customUrlValidationError": "カスタムサービス{name}を検証できませんでした。", | 105 | "settings.service.form.addServiceHeadline" : "{name}を追加", |
106 | "settings.service.form.customUrlPremiumInfo": "独自サービスを追加するためには、Franz Premium Supporterアカウントが必要です。", | 106 | "settings.service.form.availableServices" : "利用可能なサービス", |
107 | "settings.service.form.customUrlUpgradeAccount": "アカウントをアップグレードする", | 107 | "settings.service.form.customUrl" : "独自サーバー", |
108 | "settings.service.form.indirectMessageInfo": "@username、@channel、@hereだけでなく、チャンネル内のすべての新規メッセージについて通知されます。", | 108 | "settings.service.form.customUrlPremiumInfo" : "独自サービスを追加するためには、Franz Premium Supporterアカウントが必要です。", |
109 | "settings.service.error.headline": "エラー", | 109 | "settings.service.form.customUrlUpgradeAccount" : "アカウントをアップグレードする", |
110 | "settings.service.error.goBack": "サービスに戻る", | 110 | "settings.service.form.customUrlValidationError" : "独自サーバー{name}を検証できませんでした。", |
111 | "settings.service.error.message": "サービスのレシピが読み込めません。", | 111 | "settings.service.form.deleteButton" : "サービスの削除", |
112 | "settings.services.tooltip.isDisabled": "サービスが無効です", | 112 | "settings.service.form.editServiceHeadline" : "{name}を編集", |
113 | "settings.services.tooltip.notificationsDisabled": "通知が無効です", | 113 | "settings.service.form.enableAudio" : "オーディオの有効化", |
114 | "settings.services.headline": "利用中のサービス", | 114 | "settings.service.form.enableNotification" : "通知を有効にする", |
115 | "settings.services.noServicesAdded": "まだ、どのサービスも追加されていません。", | 115 | "settings.service.form.enableService" : "サービスを有効にする", |
116 | "settings.services.discoverServices": "サービスを見つける", | 116 | "settings.service.form.indirectMessageInfo" : "@username、@channel、@hereだけでなく、チャンネル内のすべての新規メッセージについて通知されます。", |
117 | "settings.services.updatedInfo": "変更内容が保存されました", | 117 | "settings.service.form.indirectMessages" : "すべての新規メッセージについてバッジを表示する", |
118 | "settings.services.deletedInfo": "サービスが削除されました", | 118 | "settings.service.form.isMutedInfo" : "無効化されている場合、全ての通知音やオーディオ再生は無音になります", |
119 | "settings.app.headline": "設定", | 119 | "settings.service.form.name" : "サービス名", |
120 | "settings.app.headlineGeneral": "一般", | 120 | "settings.service.form.saveButton" : "サービスの保存", |
121 | "settings.app.headlineLanguage": "言語", | 121 | "settings.service.form.tabHosted" : "ホスト", |
122 | "settings.app.headlineUpdates": "更新", | 122 | "settings.service.form.tabOnPremise" : "セルフホスト ⭐️", |
123 | "settings.app.buttonSearchForUpdate": "更新の確認", | 123 | "settings.service.form.team" : "チーム", |
124 | "settings.app.buttonInstallUpdate": "再起動して更新をインストール", | 124 | "settings.service.form.yourServices" : "利用中のサービス", |
125 | "settings.app.updateStatusSearching": "更新を確認中", | 125 | "settings.services.deletedInfo" : "サービスが削除されました", |
126 | "settings.app.updateStatusAvailable": "更新が見つかりました。ダウンロードしています...", | 126 | "settings.services.discoverServices" : "サービスを探す", |
127 | "settings.app.updateStatusUpToDate": "お使いのFranzは最新です", | 127 | "settings.services.headline" : "利用中のサービス", |
128 | "settings.app.form.autoLaunchOnStart": "システム起動時にFranzを開く", | 128 | "settings.services.noServicesAdded" : "まだ、どのサービスも追加されていません。", |
129 | "settings.app.form.autoLaunchInBackground": "バックグラウンドで開く", | 129 | "settings.services.tooltip.isDisabled" : "サービスが無効です", |
130 | "settings.app.form.enableSystemTray": "Franzをシステムトレイに表示する", | 130 | "settings.services.tooltip.isMuted" : "無音となっています", |
131 | "settings.app.form.minimizeToSystemTray": "Franzをシステムトレイに最小化する", | 131 | "settings.services.tooltip.notificationsDisabled" : "通知は無効です", |
132 | "settings.app.form.runInBackground": "ウインドウを閉じた際にFranzをバックグラウンドで実行させておく", | 132 | "settings.services.updatedInfo" : "変更内容が保存されました", |
133 | "settings.app.form.language": "言語", | 133 | "settings.user.form.accountType.company" : "法人", |
134 | "settings.app.form.beta": "Betaバージョンを含める", | 134 | "settings.user.form.accountType.individual" : "個人", |
135 | "settings.app.currentVersion": "現在のバージョン:", | 135 | "settings.user.form.accountType.label" : "アカウントの種類", |
136 | "settings.service.form.name": "サービス名", | 136 | "settings.user.form.accountType.non-profit" : "非営利", |
137 | "settings.service.form.enableService": "サービスを有効にする", | 137 | "settings.user.form.currentPassword" : "現在のパスワード", |
138 | "settings.service.form.enableNotification": "通知を有効にする", | 138 | "settings.user.form.email" : "メールアドレス", |
139 | "settings.service.form.team": "チーム", | 139 | "settings.user.form.firstname" : "名", |
140 | "settings.service.form.customUrl": "カスタムサーバー", | 140 | "settings.user.form.lastname" : "姓", |
141 | "settings.service.form.indirectMessages": "すべての新規メッセージについてバッジを表示する", | 141 | "settings.user.form.newPassword" : "新しいパスワード", |
142 | "settings.user.form.firstname": "名", | 142 | "sidebar.addNewService" : "サービスを追加", |
143 | "settings.user.form.lastname": "姓", | 143 | "sidebar.mute" : "オーディオの無効化", |
144 | "settings.user.form.email": "メールアドレス", | 144 | "sidebar.settings" : "設定", |
145 | "settings.user.form.currentPassword": "現在のパスワード", | 145 | "sidebar.unmute" : "オーディオの有効化", |
146 | "settings.user.form.newPassword": "新しいパスワード", | 146 | "signup.company.label" : "法人", |
147 | "settings.user.form.accountType.label": "アカウントの種類", | 147 | "signup.email.label" : "メールアドレス", |
148 | "settings.user.form.accountType.individual": "個人", | 148 | "signup.emailDuplicate" : "このメールアドレスは既に登録されています", |
149 | "settings.user.form.accountType.non-profit": "非営利", | 149 | "signup.firstname.label" : "名", |
150 | "settings.user.form.accountType.company": "法人", | 150 | "signup.headline" : "アカウントの作成", |
151 | "subscription.type.free": "無料", | 151 | "signup.lastname.label" : "姓", |
152 | "subscription.type.month": "月間", | 152 | "signup.legal.info" : "Franzアカウントを作成することで、以下の規約に同意したものとみなします", |
153 | "subscription.type.year": "年間", | 153 | "signup.legal.privacy" : "プライバシーについて", |
154 | "subscription.type.mining": "PCの処理能力を使ってFranzを支援する", | 154 | "signup.legal.terms" : "利用規約", |
155 | "subscription.mining.headline": "これはどのような仕組みですか", | 155 | "signup.link.login" : "アカウントを既に持っていますか? こちらからサインイン", |
156 | "subscription.mining.experimental": "実験的", | 156 | "signup.password.label" : "パスワード", |
157 | "subscription.mining.line1": "\"PCの処理能力を使ってFranzを支援する\"を有効にすることで、Franzはおよそ20-50%のCPUパワーを暗号通貨Moneroのマイニングに使用し、これはおよそ年間で5ドル分にあたります。", | 157 | "signup.submit.label" : "アカウントの作成", |
158 | "subscription.mining.line2": "処理能力に基づいてCPUの使用率を適応しますのでバッテリーを無駄に消費したり、システムを遅くすることはありません。", | 158 | "subscription.euTaxInfo" : "EU在住者 : 地域の消費税が適用される可能性があります", |
159 | "subscription.mining.line3": "マイニングが機能している限り、Franz Premium Supporterの全ての機能を無制限で利用できます。", | 159 | "subscription.features.ads" : "広告は一切ありません!", |
160 | "subscription.mining.moreInformation": "このプランの詳細を確認する。", | 160 | "subscription.features.comingSoon" : "まもなく登場", |
161 | "subscriptionPopup.buttonCancel": "キャンセルしました", | 161 | "subscription.features.customServices" : "あなたとあなたのチームのためのプライベートサービス", |
162 | "subscriptionPopup.buttonDone": "完了しました", | 162 | "subscription.features.encryptedSync" : "暗号化されたセッションの同期", |
163 | "tabs.item.reload": "リロード", | 163 | "subscription.features.onpremise" : "HipChatのようなオンプレミス\/ホスト型サービスの追加", |
164 | "tabs.item.edit": "編集", | 164 | "subscription.features.vpn" : "プロキシサーバーとVPNのサポート", |
165 | "tabs.item.disableNotifications": "通知を無効にする", | 165 | "subscription.includedFeatures" : "Franz Premium Supporter有料アカウントには以下が含まれます", |
166 | "tabs.item.enableNotification": "通知を有効にする", | 166 | "subscription.mining.experimental" : "試験的", |
167 | "tabs.item.disableService": "サービスを無効にする", | 167 | "subscription.mining.headline" : "これはどのように機能しますか?", |
168 | "tabs.item.deleteService": "サービスを削除する" | 168 | "subscription.mining.line1" : "\"PCの処理能力を使ってFranzを支援する\"を有効にすることで、Franzはおよそ20-50%のCPUパワーを暗号通貨Moneroのマイニングに使用し、これはおよそ年間で5ドル分に相当します。", |
169 | "subscription.mining.line2" : "処理能力に基づいてCPUの使用率を適応しますのでバッテリーを無駄に消費したり、システムを遅くすることはありません。", | ||
170 | "subscription.mining.line3" : "マイニングが機能している限り、Franz Premium Supporterの全ての機能を無制限で利用できます。", | ||
171 | "subscription.mining.moreInformation" : "このプランの詳細を確認する。", | ||
172 | "subscription.paymentSessionError" : "支払いフォームを初期化出来ません", | ||
173 | "subscription.submit.label" : "Franzの開発を支援したい", | ||
174 | "subscription.type.free" : "無料", | ||
175 | "subscription.type.mining" : "PCの処理能力を使ってFranzを支援する", | ||
176 | "subscription.type.month" : "月間", | ||
177 | "subscription.type.year" : "年間", | ||
178 | "subscriptionPopup.buttonCancel" : "キャンセル", | ||
179 | "subscriptionPopup.buttonDone" : "完了", | ||
180 | "tabs.item.deleteService" : "サービスを削除する", | ||
181 | "tabs.item.disableAudio" : "オーディオの無効化", | ||
182 | "tabs.item.disableNotifications" : "通知を無効にする", | ||
183 | "tabs.item.disableService" : "サービスを無効にする", | ||
184 | "tabs.item.edit" : "編集", | ||
185 | "tabs.item.enableAudio" : "オーディオの有効化", | ||
186 | "tabs.item.enableNotification" : "通知を有効にする", | ||
187 | "tabs.item.enableService" : "サービスを有効にする", | ||
188 | "tabs.item.reload" : "再読み込み", | ||
189 | "welcome.loginButton" : "アカウントにログイン", | ||
190 | "welcome.signupButton" : "無料アカウントを作成", | ||
191 | "welcome.slogan" : "Messaging that works for you" | ||
169 | } | 192 | } |
diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json new file mode 100644 index 000000000..30337cc61 --- /dev/null +++ b/src/i18n/locales/ka.json | |||
@@ -0,0 +1,192 @@ | |||
1 | { | ||
2 | "global.api.unhealthy" : "Franz-ის ონლაინ სერვისთან დაკავშირება ვერ მოხერხდა", | ||
3 | "global.notConnectedToTheInternet" : "თქვენ არ ხართ ინტერნეტთან დაკავშირებული.", | ||
4 | "import.headline" : "შემოიტანე Franz 4-ის სერვისები", | ||
5 | "import.notSupportedHeadline" : "სერვისები ჯერ არ არის მხარდაჭერილი Franz 5-ში", | ||
6 | "import.skip.label" : "მსურს სერვისების ხელით დამატება", | ||
7 | "import.submit.label" : "მოწვევის გაგზავნა", | ||
8 | "infobar.buttonChangelog" : "What is new?", | ||
9 | "infobar.buttonInstallUpdate" : "გადატვირთეთ და დააყენეთ განახლება", | ||
10 | "infobar.buttonReloadServices" : "სერვისების გადატვირთვა ", | ||
11 | "infobar.requiredRequestsFailed" : "სერვისებისა და მომხმარებლის ინფორმაციის ჩატვირთვა ვერ მოხერხდა", | ||
12 | "infobar.servicesUpdated" : "თქვენი სერვისები განახლებულია.", | ||
13 | "infobar.updateAvailable" : "განახლება Franz-ისთვის ხელმისაწვდომია.", | ||
14 | "invite.email.label" : "მეილი", | ||
15 | "invite.headline.friends" : "მოიწვიეთ 3 თქვენი მეგობარი ან კოლეგა", | ||
16 | "invite.name.label" : "სახელი ", | ||
17 | "invite.skip.label" : "ამას მოგვიანებით გავაკეთებ", | ||
18 | "invite.submit.label" : "მოწვევის გაგზავნა", | ||
19 | "login.email.label" : "მეილი", | ||
20 | "login.headline" : "შესვლა", | ||
21 | "login.invalidCredentials" : "მეილი ან პაროლი არასწორია", | ||
22 | "login.link.password" : "პაროლის აღდგენა", | ||
23 | "login.link.signup" : "ანგარიშის შექმნა", | ||
24 | "login.password.label" : "პაროლი ", | ||
25 | "login.serverLogout" : "თქვენს სესიას ვადა გაუვიდა, შედით ანგარიშში ხელახლა.", | ||
26 | "login.submit.label" : "შესვლა", | ||
27 | "login.tokenExpired" : "თქვენს სესიას ვადა გაუვიდა, შედით ანგარიშში ხელახლა.", | ||
28 | "password.email.label" : "მეილი", | ||
29 | "password.headline" : "პაროლის აღდგენა", | ||
30 | "password.link.login" : "შედით თქვენს ანგარიშში", | ||
31 | "password.link.signup" : "ანგარიშის შექმნა", | ||
32 | "password.noUser" : "მომხმარებელი მითითებული მეილით ვერ მოიძებნა", | ||
33 | "password.submit.label" : "დადასტურება", | ||
34 | "password.successInfo" : "გთხოვთ შეამოწმეთ მეილი", | ||
35 | "pricing.headline" : "Franz-ის მხარდაჭერა", | ||
36 | "pricing.link.skipPayment" : "არ მინდა ხელი შევუწყო Franz-ის განვითარებას.", | ||
37 | "pricing.submit.label" : "მინდა ხელი შევუწყო Franz-ის განვითარებას", | ||
38 | "pricing.support.label" : "აირჩიეთ თქვენი მხარდაჭერის გეგმა", | ||
39 | "service.crashHandler.action" : "Reload {name}", | ||
40 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", | ||
41 | "service.crashHandler.headline" : "Oh no!", | ||
42 | "service.crashHandler.text" : "{name} has caused an error.", | ||
43 | "service.disabledHandler.action" : "Enable {name}", | ||
44 | "service.disabledHandler.headline" : "{name} is disabled", | ||
45 | "services.getStarted" : "დაწყება", | ||
46 | "services.welcome" : "მოგესალმებით Franz-ზე", | ||
47 | "settings.account.account.editButton" : "ანგარიშის მართვა", | ||
48 | "settings.account.accountType.basic" : "ძირითადი ანგარიში", | ||
49 | "settings.account.accountType.premium" : "პრემიუმ მხარდამჭერის ანგარიში", | ||
50 | "settings.account.buttonSave" : "პროფილის განახლება", | ||
51 | "settings.account.headline" : "ანგარიში", | ||
52 | "settings.account.headlineAccount" : "ანგარიშის ინფორმაცია", | ||
53 | "settings.account.headlineInvoices" : "ინვოისები", | ||
54 | "settings.account.headlinePassword" : "პაროლის შეცვლა", | ||
55 | "settings.account.headlineProfile" : "პროფილის განახლება", | ||
56 | "settings.account.headlineSubscription" : "თქვენი გამოწერა", | ||
57 | "settings.account.headlineUpgrade" : "განაახლეთ თქვენი ანგარიში და მხარი დაუჭირეთ Franz-ს", | ||
58 | "settings.account.invoiceDownload" : "გადმოწერა", | ||
59 | "settings.account.manageSubscription.label" : "თქვენი გამოწერის მართვა", | ||
60 | "settings.account.mining.active" : "თქვენ ახლა ასრულებთ {hashes} გაანგარიშებას წამში.", | ||
61 | "settings.account.mining.cancel" : "მაინინგის გაუქმება", | ||
62 | "settings.account.mining.moreInformation" : "მეტი ინფორმაციის მიღება", | ||
63 | "settings.account.mining.thankyou" : "გმადლობთ Franz-ის მხარდაჭერისთვის.", | ||
64 | "settings.account.successInfo" : "თქვენი ცვლილებები შენახულია", | ||
65 | "settings.account.tryReloadUserInfoRequest" : "სცადეთ ხელახლა", | ||
66 | "settings.account.userInfoRequestFailed" : "მომხმარებლის ინფორმაციის ჩატვირთვა ვერ მოხერხდა", | ||
67 | "settings.app.buttonInstallUpdate" : "გადატვირთეთ და დააყენეთ განახლება", | ||
68 | "settings.app.buttonSearchForUpdate" : "განახლებების შემოწმება", | ||
69 | "settings.app.currentVersion" : "ამჟამინდელი ვერსია:", | ||
70 | "settings.app.form.autoLaunchInBackground" : "გახსენით ფონზე", | ||
71 | "settings.app.form.autoLaunchOnStart" : "გაეშვას Franz სისტემის ჩატვირთვისას", | ||
72 | "settings.app.form.beta" : "ჩართეთ ბეტა ვერსიები", | ||
73 | "settings.app.form.enableSpellchecking" : "Enable spell checking", | ||
74 | "settings.app.form.enableSystemTray" : "აჩვენეთ Franz სისტემის უჯრაში", | ||
75 | "settings.app.form.language" : "ენა", | ||
76 | "settings.app.form.minimizeToSystemTray" : "ჩაკეცეთ Franz სისტემის უჯრაში", | ||
77 | "settings.app.form.runInBackground" : "დატოვეთ Franz გაშვებული როდესაც ფანჯარა დაიხურება", | ||
78 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", | ||
79 | "settings.app.headline" : "პარამეტრები", | ||
80 | "settings.app.headlineAdvanced" : "Advanced", | ||
81 | "settings.app.headlineAppearance" : "Appearance", | ||
82 | "settings.app.headlineGeneral" : "მთავარი", | ||
83 | "settings.app.headlineLanguage" : "ენა", | ||
84 | "settings.app.headlineUpdates" : "განახლებები", | ||
85 | "settings.app.restartRequired" : "Changes require restart", | ||
86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
87 | "settings.app.updateStatusAvailable" : "განახლება ხელმისაწვდომია, იწყება გადმოწერა...", | ||
88 | "settings.app.updateStatusSearching" : "მიმდინარეობს განახლების ძიება", | ||
89 | "settings.app.updateStatusUpToDate" : "თქვენ იყენებთ Franz-ის უახლეს ვერსიას", | ||
90 | "settings.navigation.account" : "ანგარიში", | ||
91 | "settings.navigation.availableServices" : "ხელმისაწვდომი სერვისები", | ||
92 | "settings.navigation.logout" : "გასვლა", | ||
93 | "settings.navigation.settings" : "პარამეტრები", | ||
94 | "settings.navigation.yourServices" : "თქვენი სერვისები", | ||
95 | "settings.recipes.all" : "ყველა სერვისი", | ||
96 | "settings.recipes.dev" : "განვითარება", | ||
97 | "settings.recipes.headline" : "ხელმისაწვდომი სერვისები", | ||
98 | "settings.recipes.missingService" : "Missing a service?", | ||
99 | "settings.recipes.mostPopular" : "ყველაზე პოპულარული", | ||
100 | "settings.recipes.nothingFound" : "უკაცრავად, მაგრამ არცერთი სერვისი არ შეესაბამება თქვენს ძიებას.", | ||
101 | "settings.recipes.servicesSuccessfulAddedInfo" : "სერვისი წარმატებით დაემატა", | ||
102 | "settings.service.error.goBack" : "სერვისებში დაბრუნება", | ||
103 | "settings.service.error.headline" : "შეცდომა", | ||
104 | "settings.service.error.message" : "სერვისის ჩატვირთვა ვერ მოხერხდა.", | ||
105 | "settings.service.form.addServiceHeadline" : "დაამატე {name}", | ||
106 | "settings.service.form.availableServices" : "ხელმისაწვდომი სერვისები", | ||
107 | "settings.service.form.customUrl" : "კერძო სერვერი", | ||
108 | "settings.service.form.customUrlPremiumInfo" : "თვით დაჰოსტილი სერვისების დასამატებლად საჭიროა Franz-ის პრემიუმ მხარდამჭერის ანგარიში.", | ||
109 | "settings.service.form.customUrlUpgradeAccount" : "განაახლეთ თქვენი ანგარიში", | ||
110 | "settings.service.form.customUrlValidationError" : "ვერ დადასტურდა {name} კერძო სერვერი.", | ||
111 | "settings.service.form.deleteButton" : "სერვისის წაშლა", | ||
112 | "settings.service.form.editServiceHeadline" : "შეასწორე {name}", | ||
113 | "settings.service.form.enableAudio" : "Enable audio", | ||
114 | "settings.service.form.enableNotification" : "შეტყობინებების ჩართვა", | ||
115 | "settings.service.form.enableService" : "სერვისის ჩართვა", | ||
116 | "settings.service.form.indirectMessageInfo" : "თქვენ მიიღებთ შეტყობინებას ყოველი ახალი შეტყობინებისას არხზე, არამარტო @username, @channel, @here, ...", | ||
117 | "settings.service.form.indirectMessages" : "აჩვენე შეტყობინებების ნიშანი ყოველი ახალი შეტყობინებისთვის", | ||
118 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", | ||
119 | "settings.service.form.name" : "სახელი", | ||
120 | "settings.service.form.saveButton" : "სერვისის შენახვა", | ||
121 | "settings.service.form.tabHosted" : "დაჰოსტილი", | ||
122 | "settings.service.form.tabOnPremise" : "თვით დაჰოსტილი ⭐️", | ||
123 | "settings.service.form.team" : "გუნდი", | ||
124 | "settings.service.form.yourServices" : "თქვენი სერვისები", | ||
125 | "settings.services.deletedInfo" : "სერვისი წაიშალა", | ||
126 | "settings.services.discoverServices" : "აღმოაჩინეთ სერვისები", | ||
127 | "settings.services.headline" : "თქვენი სერვისები", | ||
128 | "settings.services.noServicesAdded" : "თქვენ ჯერ არ გაქვთ სერვისები დამატებული.", | ||
129 | "settings.services.tooltip.isDisabled" : "სერვისი გათიშულია", | ||
130 | "settings.services.tooltip.isMuted" : "All sounds are muted", | ||
131 | "settings.services.tooltip.notificationsDisabled" : "შეტყობინებები გათიშულია", | ||
132 | "settings.services.updatedInfo" : "ცვლილებები შენახულია", | ||
133 | "settings.user.form.accountType.company" : "კომპანია", | ||
134 | "settings.user.form.accountType.individual" : "ინდივიდუალური", | ||
135 | "settings.user.form.accountType.label" : "ანგარიშის ტიპი", | ||
136 | "settings.user.form.accountType.non-profit" : "არაკომერციული", | ||
137 | "settings.user.form.currentPassword" : "ამჟამინდელი პაროლი", | ||
138 | "settings.user.form.email" : "მეილი", | ||
139 | "settings.user.form.firstname" : "First Name", | ||
140 | "settings.user.form.lastname" : "Last Name", | ||
141 | "settings.user.form.newPassword" : "ახალი პაროლი", | ||
142 | "sidebar.addNewService" : "Add new service", | ||
143 | "sidebar.mute" : "Disable audio", | ||
144 | "sidebar.settings" : "პარამეტრები", | ||
145 | "sidebar.unmute" : "Enable audio", | ||
146 | "signup.company.label" : "კომპანია", | ||
147 | "signup.email.label" : "მეილი", | ||
148 | "signup.emailDuplicate" : "მომხმარებელი ამ მეილით უკვე არსებობს", | ||
149 | "signup.firstname.label" : "First Name", | ||
150 | "signup.headline" : "ანგარიშის შექმნა", | ||
151 | "signup.lastname.label" : "Last Name", | ||
152 | "signup.legal.info" : "Franz-ის ანგარიშის შექმნით თქვენ ეთანხმებით", | ||
153 | "signup.legal.privacy" : "კონფიდენციალურობის შესახებ", | ||
154 | "signup.legal.terms" : "მომსახურების პირობები", | ||
155 | "signup.link.login" : "უკვე გაქვთ ანგარიში?", | ||
156 | "signup.password.label" : "პაროლი", | ||
157 | "signup.submit.label" : "ანგარიშის შექმნა", | ||
158 | "subscription.euTaxInfo" : "EU residents: local sales tax may apply", | ||
159 | "subscription.features.ads" : "არანაირი რეკლამები, არასდროს!", | ||
160 | "subscription.features.comingSoon" : "მალე", | ||
161 | "subscription.features.customServices" : "პირადი მომსახურება თქვენთვის და თქვენი გუნდისთვის", | ||
162 | "subscription.features.encryptedSync" : "დაშიფრული სესიის სინქრონიზაცია", | ||
163 | "subscription.features.onpremise" : "on-premise\/hosted სერვისების დამატება, როგორიცაა HipChat", | ||
164 | "subscription.features.vpn" : "Proxy-სა და VPN-ის მხარდაჭერა", | ||
165 | "subscription.includedFeatures" : "ფასიანი Franz-ის პრემიუმ მხარმდამჭერი ანგარიში", | ||
166 | "subscription.mining.experimental" : "ექსპერიმენტული", | ||
167 | "subscription.mining.headline" : "როგორ მუშაობს?", | ||
168 | "subscription.mining.line1" : "\"პროცესორული დამუშავების ძალით მხარდაჭერის\" გააქტიურებით, Franz გამოიყენებს თქვენი პროცესორის 20-50% სიმძლავრეს Monero კრიპტოვალუტის მაინინგისთვის, რომელიც დაახლოებით გამოიმუშავებს $5-ს წელიწადში.", | ||
169 | "subscription.mining.line2" : "ჩვენ მოვახდენთ პროცესორის გამოყენების ადაპტირებას, რათა არ გაითიშოს თქვენი ბატარეა ან შეაყოვნოს თქვენი მოწყობილობა.", | ||
170 | "subscription.mining.line3" : "სანამ მაინიგი მიმდინარეობს, თქვენ გექნებათ ულიმიტო წვდომა ყველა Franz-ის პრემიუმ მხარდამჭერის მახასიათებლებზე.", | ||
171 | "subscription.mining.moreInformation" : "მიიღეთ მეტი ინფორმაცია ამის შესახებ.", | ||
172 | "subscription.paymentSessionError" : "გადახდის ფორმატის ინიციალიზაცია ვერ მოხერხდა", | ||
173 | "subscription.submit.label" : "მინდა ხელი შევუწყო Franz-ის განვითარებას", | ||
174 | "subscription.type.free" : "უფასო", | ||
175 | "subscription.type.mining" : "Franz-ის მხარდაჭერა პროცესორული დამუშავების ძალით", | ||
176 | "subscription.type.month" : "თვე", | ||
177 | "subscription.type.year" : "წელი", | ||
178 | "subscriptionPopup.buttonCancel" : "გაუქმება", | ||
179 | "subscriptionPopup.buttonDone" : "შესრულებულია", | ||
180 | "tabs.item.deleteService" : "სერვისის წაშლა", | ||
181 | "tabs.item.disableAudio" : "Disable audio", | ||
182 | "tabs.item.disableNotifications" : "შეტყობინებების გამორთვა", | ||
183 | "tabs.item.disableService" : "სერვისის გაუქმება", | ||
184 | "tabs.item.edit" : "რედაქტირება", | ||
185 | "tabs.item.enableAudio" : "Enable audio", | ||
186 | "tabs.item.enableNotification" : "შეტყობინებების ჩართვა", | ||
187 | "tabs.item.enableService" : "სერვისის ჩართვა", | ||
188 | "tabs.item.reload" : "ჩატვირთვა", | ||
189 | "welcome.loginButton" : "შედით თქვენს ანგარიშში", | ||
190 | "welcome.signupButton" : "შექმენი ანგარიში, ეს უფასოა", | ||
191 | "welcome.slogan" : "შეტყობინების აპლიკაცია, რომელიც მუშაობს შენთვის" | ||
192 | } | ||
diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json index a19d51b2b..70ae4467e 100644 --- a/src/i18n/locales/nl-BE.json +++ b/src/i18n/locales/nl-BE.json | |||
@@ -1,168 +1,192 @@ | |||
1 | { | 1 | { |
2 | "global.api.unhealthy": "Kan geen verbinding maken met de Franz online services", | 2 | "global.api.unhealthy" : "Kan geen verbinding maken met de Franz services", |
3 | "global.notConnectedToTheInternet": "Je bent niet verbonden met het internet.", | 3 | "global.notConnectedToTheInternet" : "Je hebt geen internet verbinding.", |
4 | "welcome.signupButton": "Maak een gratis account aan", | 4 | "import.headline" : "Importeer je Franz 4 services", |
5 | "welcome.loginButton": "Inloggen op je account", | 5 | "import.notSupportedHeadline" : "De volgende services worden nog niet ondersteund in Franz 5", |
6 | "welcome.slogan": "Messaging that works for you", | 6 | "import.skip.label" : "Ik wil handmatig een service toevoegen", |
7 | "login.headline": "Inloggen", | 7 | "import.submit.label" : "Importeer services", |
8 | "login.email.label": "E-mailadres", | 8 | "infobar.buttonChangelog" : "What is new?", |
9 | "login.password.label": "Wachtwoord", | 9 | "infobar.buttonInstallUpdate" : "Start opnieuw op & installeer de update", |
10 | "login.submit.label": "Log in", | 10 | "infobar.buttonReloadServices" : "Herlaad de services", |
11 | "login.invalidCredentials": "E-mailadres of wachtwoord ongeldig", | 11 | "infobar.requiredRequestsFailed" : "Kan de services en gebruikers informatie niet laden", |
12 | "login.tokenExpired": "Je sessie is verlopen, log opnieuw in a.u.b..", | 12 | "infobar.servicesUpdated" : "Je services zijn geüpdatet.", |
13 | "login.serverLogout": "Je sessie is verlopen, log opnieuw in a.u.b..", | 13 | "infobar.updateAvailable" : "Een nieuwe update voor Franz is beschikbaar.", |
14 | "login.link.signup": "Gratis account aanmaken", | 14 | "invite.email.label" : "E-mailadres", |
15 | "login.link.password": "Wachtwoord resetten", | 15 | "invite.headline.friends" : "Nodig 3 van je vrienden of collega's uit", |
16 | "password.headline": "Wachtwoord resetten", | 16 | "invite.name.label" : "Naam", |
17 | "password.email.label": "E-mailadres", | 17 | "invite.skip.label" : "Ik wil dit later doen", |
18 | "password.submit.label": "Doorgaan", | 18 | "invite.submit.label" : "Verzend uitnodigingen", |
19 | "password.noUser": "Geen gebruiker met dit e-mailadres gevonden", | 19 | "login.email.label" : "E-mailadres", |
20 | "password.successInfo": "Kijk je mail na", | 20 | "login.headline" : "Inloggen", |
21 | "password.link.signup": "Gratis account aanmaken", | 21 | "login.invalidCredentials" : "E-mailadres of wachtwoord ongeldig", |
22 | "password.link.login": "Inloggen op je account", | 22 | "login.link.password" : "Wachtwoord resetten", |
23 | "signup.headline": "Registreren", | 23 | "login.link.signup" : "Maak een gratis account", |
24 | "signup.firstname.label": "Naam", | 24 | "login.password.label" : "Wachtwoord", |
25 | "signup.lastname.label": "Achternaam", | 25 | "login.serverLogout" : "De sessie is verlopen, log opnieuw in alsjeblieft.", |
26 | "signup.email.label": "E-mailadres", | 26 | "login.submit.label" : "Log in", |
27 | "signup.company.label": "Bedrijf", | 27 | "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.", |
28 | "signup.password.label": "Wachtwoord", | 28 | "password.email.label" : "E-mailadres", |
29 | "signup.submit.label": "Account aanmaken", | 29 | "password.headline" : "Wachtwoord resetten", |
30 | "signup.link.login": "Al een account, inloggen?", | 30 | "password.link.login" : "Log in op je account", |
31 | "signup.emailDuplicate": "Er bestaat reeds een gebruiker met dat e-mailadres", | 31 | "password.link.signup" : "Maak een gratis account", |
32 | "signup.legal.info": "Door een account aan te maken aanvaard je de", | 32 | "password.noUser" : "Geen gebruiker bekend met dat e-mailadres", |
33 | "signup.legal.terms": "Servicevoorwaarden", | 33 | "password.submit.label" : "Doorgaan", |
34 | "signup.legal.privacy": "Privacyverklaring", | 34 | "password.successInfo" : "Controleer alsjeblieft je e-mail", |
35 | "pricing.headline": "Franz Steunen", | 35 | "pricing.headline" : "Ondersteun Franz", |
36 | "pricing.support.label": "Selecteer je steunplan", | 36 | "pricing.link.skipPayment" : "Ik wil de ontwikkeling van Franz niet ondersteunen.", |
37 | "pricing.submit.label": "Ik wil de ontwikkeling van Franz steunen", | 37 | "pricing.submit.label" : "Ik wil de ontwikkeling van Franz ondersteunen", |
38 | "pricing.link.skipPayment": "Ik wil de ontwikkeling van Franz niet steunen.", | 38 | "pricing.support.label" : "Selecteer je ondersteuningsplan", |
39 | "import.headline": "Je Franz 4 services importeren", | 39 | "service.crashHandler.action" : "Reload {name}", |
40 | "import.notSupportedHeadline": "Services nog niet ondersteund in Franz 5", | 40 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", |
41 | "import.submit.label": "Services importeren", | 41 | "service.crashHandler.headline" : "Oh no!", |
42 | "import.skip.label": "Ik wil services handmatig toevoegen", | 42 | "service.crashHandler.text" : "{name} has caused an error.", |
43 | "invite.submit.label": "Uitnodiging sturen", | 43 | "service.disabledHandler.action" : "Enable {name}", |
44 | "invite.headline.friends": "3 van je vrienden of collega's uitnodigen", | 44 | "service.disabledHandler.headline" : "{name} is disabled", |
45 | "invite.name.label": "Naam", | 45 | "services.getStarted" : "Beginnen", |
46 | "invite.email.label": "E-mailadres", | 46 | "services.welcome" : "Welkom bij Franz", |
47 | "invite.skip.label": "Ik wil dit later doen", | 47 | "settings.account.account.editButton" : "Bewerk account", |
48 | "subscription.submit.label": "Ik wil de ontwikkeling van Franz steunen", | 48 | "settings.account.accountType.basic" : "Basis Account", |
49 | "subscription.paymentSessionError": "Betalingsformulier kon niet geladen worden", | 49 | "settings.account.accountType.premium" : "Premium Supporter Account", |
50 | "subscription.includedFeatures": "Een betalend account voor Franz omvat", | 50 | "settings.account.buttonSave" : "Profiel aanpassen", |
51 | "subscription.features.onpremise": "Intern gehoste services zoals HipChat", | 51 | "settings.account.headline" : "Account", |
52 | "subscription.features.customServices": "Persoonlijke services voor jou en je team", | 52 | "settings.account.headlineAccount" : "Account informatie", |
53 | "subscription.features.encryptedSync": "Synchronisatie van geëncrypteerde sessies", | 53 | "settings.account.headlineInvoices" : "Facturen", |
54 | "subscription.features.vpn": "Proxy & VPN ondersteuning", | 54 | "settings.account.headlinePassword" : "Wijzig wachtwoord", |
55 | "subscription.features.ads": "Geen reclame, nooit!", | 55 | "settings.account.headlineProfile" : "Profiel aanpassen", |
56 | "subscription.features.comingSoon": "komt binnenkort", | 56 | "settings.account.headlineSubscription" : "Je abonnement", |
57 | "infobar.servicesUpdated": "Je services zijn geüpdatet.", | 57 | "settings.account.headlineUpgrade" : "Upgrade je account & ondersteun Franz", |
58 | "infobar.updateAvailable": "Er is een nieuwe update van Franz beschikbaar.", | 58 | "settings.account.invoiceDownload" : "Download", |
59 | "infobar.buttonReloadServices": "Services herladen", | 59 | "settings.account.manageSubscription.label" : "Beheer je abonnement", |
60 | "infobar.buttonInstallUpdate": "Herstarten & update installeren", | 60 | "settings.account.mining.active" : "Op dit moment voer je {hashes} berekingen per seconde uit.", |
61 | "infobar.requiredRequestsFailed": "Kon services en gebruikersinformatie niet laden", | 61 | "settings.account.mining.cancel" : "Stop mining", |
62 | "sidebar.settings": "Instellingen", | 62 | "settings.account.mining.moreInformation" : "Meer informatie", |
63 | "sidebar.addNewService": "!!!Add new service", | 63 | "settings.account.mining.thankyou" : "Bedankt voor je ondersteuning van Franz met je rekenkracht.", |
64 | "services.welcome": "Welkom bij Franz", | 64 | "settings.account.successInfo" : "Je wijzigingen zijn opgeslagen", |
65 | "services.getStarted": "Begin", | 65 | "settings.account.tryReloadUserInfoRequest" : "Probeer opnieuw", |
66 | "settings.account.headline": "Account", | 66 | "settings.account.userInfoRequestFailed" : "Kon gebruikerinformatie niet laden", |
67 | "settings.account.headlineSubscription": "Je abonnement", | 67 | "settings.app.buttonInstallUpdate" : "Herstart & installeer update", |
68 | "settings.account.headlineUpgrade": "Upgrade je account & ondersteun Franz", | 68 | "settings.app.buttonSearchForUpdate" : "Controleer op updates", |
69 | "settings.account.headlineInvoices": "Facturen", | 69 | "settings.app.currentVersion" : "Huidige versie:", |
70 | "settings.account.manageSubscription.label": "Je abonnement beheren", | 70 | "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond", |
71 | "settings.account.accountType.basic": "Basisaccount", | 71 | "settings.app.form.autoLaunchOnStart" : "Lanceer Franz bij opstarten", |
72 | "settings.account.accountType.premium": "Premium Supporter Account", | 72 | "settings.app.form.beta" : "Inclusief bèta versies", |
73 | "settings.account.account.editButton": "Account aanpassen", | 73 | "settings.app.form.enableSpellchecking" : "Enable spell checking", |
74 | "settings.account.invoiceDownload": "Downloaden", | 74 | "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", |
75 | "settings.account.userInfoRequestFailed": "Kon de gebruikersinformatie niet laden", | 75 | "settings.app.form.language" : "Taal", |
76 | "settings.account.tryReloadUserInfoRequest": "Probeer opnieuw", | 76 | "settings.app.form.minimizeToSystemTray" : "Minimaliseer Franz naar de systeembalk", |
77 | "settings.account.headlineProfile": "Profiel aanpassen", | 77 | "settings.app.form.runInBackground" : "Houd Franz op de achtergrond wanneer het venster gesloten wordt", |
78 | "settings.account.headlineAccount": "Accountinformatie", | 78 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", |
79 | "settings.account.headlinePassword": "Wachtwoord veranderen", | 79 | "settings.app.headline" : "Instellingen", |
80 | "settings.account.successInfo": "Je wijzigingen zijn opgeslagen", | 80 | "settings.app.headlineAdvanced" : "Advanced", |
81 | "settings.account.buttonSave": "Profiel aanpassen", | 81 | "settings.app.headlineAppearance" : "Appearance", |
82 | "settings.account.mining.thankyou": "Bedankt om Franz te steunen met je rekenkracht.", | 82 | "settings.app.headlineGeneral" : "Algemeen", |
83 | "settings.account.mining.active": "Op dit moment maak je {hashes} berekeningen per seconde.", | 83 | "settings.app.headlineLanguage" : "Taal", |
84 | "settings.account.mining.moreInformation": "Meer informatie", | 84 | "settings.app.headlineUpdates" : "Updates", |
85 | "settings.account.mining.cancel": "Mijnen annuleren", | 85 | "settings.app.restartRequired" : "Changes require restart", |
86 | "settings.navigation.availableServices": "Beschikbare services", | 86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", |
87 | "settings.navigation.yourServices": "Jouw services", | 87 | "settings.app.updateStatusAvailable" : "Update beschikbaar, downloaden...", |
88 | "settings.navigation.account": "Account", | 88 | "settings.app.updateStatusSearching" : "Zoekt naar updates", |
89 | "settings.navigation.settings": "Instellingen", | 89 | "settings.app.updateStatusUpToDate" : "Je gebruikt de laatste versie van Franz", |
90 | "settings.navigation.logout": "Uitloggen", | 90 | "settings.navigation.account" : "Account", |
91 | "settings.recipes.headline": "Beschikbare services", | 91 | "settings.navigation.availableServices" : "Beschikbare services", |
92 | "settings.recipes.mostPopular": "Meest populair", | 92 | "settings.navigation.logout" : "Uitloggen", |
93 | "settings.recipes.all": "Alle services", | 93 | "settings.navigation.settings" : "Instellingen", |
94 | "settings.recipes.dev": "Ontwikkeling", | 94 | "settings.navigation.yourServices" : "Jouw services", |
95 | "settings.recipes.nothingFound": "Sorry, maar geen enkele service kwam overeen met je zoekterm.", | 95 | "settings.recipes.all" : "Alle services", |
96 | "settings.recipes.servicesSuccessfulAddedInfo": "Service succesvol toegevoegd", | 96 | "settings.recipes.dev" : "Ontwikkeling", |
97 | "settings.service.form.saveButton": "Service bewaren", | 97 | "settings.recipes.headline" : "Beschikbare services", |
98 | "settings.service.form.deleteButton": "Service verwijderen", | 98 | "settings.recipes.missingService" : "Missing a service?", |
99 | "settings.service.form.availableServices": "Beschikbare services", | 99 | "settings.recipes.mostPopular" : "Meest populair", |
100 | "settings.service.form.yourServices": "Jouw services", | 100 | "settings.recipes.nothingFound" : "Sorry, maar geen enkele service kwam overeen met je zoekterm.", |
101 | "settings.service.form.addServiceHeadline": "{name} toevoegen", | 101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Service succesvol toegevoegd", |
102 | "settings.service.form.editServiceHeadline": "{name} aanpassen", | 102 | "settings.service.error.goBack" : "Terug naar de services", |
103 | "settings.service.form.tabHosted": "Gehost", | 103 | "settings.service.error.headline" : "Fout", |
104 | "settings.service.form.tabOnPremise": "Intern gehost ⭐️", | 104 | "settings.service.error.message" : "Kon het service-recept niet laden.", |
105 | "settings.service.form.customUrlValidationError": "Kon de custom {name} server niet valideren.", | 105 | "settings.service.form.addServiceHeadline" : "{name} toevoegen", |
106 | "settings.service.form.customUrlPremiumInfo": "Om intern gehoste services toe te voegen heb je een Franz Premium Supporter Account nodig.", | 106 | "settings.service.form.availableServices" : "Beschikbare services", |
107 | "settings.service.form.customUrlUpgradeAccount": "Je account upgraden", | 107 | "settings.service.form.customUrl" : "Aangepaste server", |
108 | "settings.service.form.indirectMessageInfo": "Je wordt verwittigd over alle nieuwe berichten in een kanaal, niet alleen @username, @channel, @here, ...", | 108 | "settings.service.form.customUrlPremiumInfo" : "Om intern gehoste services toe te voegen heb je een Franz Premium Supporter Account nodig.", |
109 | "settings.service.error.headline": "Fout", | 109 | "settings.service.form.customUrlUpgradeAccount" : "Je account upgraden", |
110 | "settings.service.error.goBack": "Terug naar de services", | 110 | "settings.service.form.customUrlValidationError" : "Kon de custom {name} server niet valideren.", |
111 | "settings.service.error.message": "Kon het service-recept niet laden.", | 111 | "settings.service.form.deleteButton" : "Service verwijderen", |
112 | "settings.services.tooltip.isDisabled": "Service staat uit", | 112 | "settings.service.form.editServiceHeadline" : "{name} aanpassen", |
113 | "settings.services.tooltip.notificationsDisabled": "Notificaties staan uit", | 113 | "settings.service.form.enableAudio" : "Enable audio", |
114 | "settings.services.headline": "Jouw services", | 114 | "settings.service.form.enableNotification" : "Notificaties aanzetten", |
115 | "settings.services.noServicesAdded": "Je hebt nog geen services toegevoegd.", | 115 | "settings.service.form.enableService" : "Service aanzetten", |
116 | "settings.services.discoverServices": "Services ontdekken", | 116 | "settings.service.form.indirectMessageInfo" : "Je wordt verwittigd over alle nieuwe berichten in een kanaal, niet alleen @username, @channel, @here, ...", |
117 | "settings.services.updatedInfo": "Je wijzigingen werden bewaard", | 117 | "settings.service.form.indirectMessages" : "Toon berichten-badge voor alle nieuwe berichten", |
118 | "settings.services.deletedInfo": "Service werd verwijderd", | 118 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", |
119 | "settings.app.headline": "Instellingen", | 119 | "settings.service.form.name" : "Naam", |
120 | "settings.app.headlineGeneral": "Algemeen", | 120 | "settings.service.form.saveButton" : "Service bewaren", |
121 | "settings.app.headlineLanguage": "Talen", | 121 | "settings.service.form.tabHosted" : "Gehost", |
122 | "settings.app.headlineUpdates": "Updates", | 122 | "settings.service.form.tabOnPremise" : "Intern gehost ⭐️", |
123 | "settings.app.buttonSearchForUpdate": "Controleren op updates", | 123 | "settings.service.form.team" : "Team", |
124 | "settings.app.buttonInstallUpdate": "Herstart & installeer update", | 124 | "settings.service.form.yourServices" : "Jouw services", |
125 | "settings.app.updateStatusSearching": "Zoeken naar updates", | 125 | "settings.services.deletedInfo" : "Service werd verwijderd", |
126 | "settings.app.updateStatusAvailable": "Update beschikbaar, wordt gedownload...", | 126 | "settings.services.discoverServices" : "Services ontdekken", |
127 | "settings.app.updateStatusUpToDate": "Je gebruikt de laatste versie van Franz", | 127 | "settings.services.headline" : "Jouw services", |
128 | "settings.app.form.autoLaunchOnStart": "Franz lanceren bij het starten", | 128 | "settings.services.noServicesAdded" : "Je hebt nog geen services toegevoegd.", |
129 | "settings.app.form.autoLaunchInBackground": "In de achtergrond openen", | 129 | "settings.services.tooltip.isDisabled" : "Service staat uit", |
130 | "settings.app.form.minimizeToSystemTray": "Franz naar je systeemvak minimaliseren", | 130 | "settings.services.tooltip.isMuted" : "All sounds are muted", |
131 | "settings.app.form.runInBackground": "Franz in de achtergrond draaien wanneer je het venster sluit", | 131 | "settings.services.tooltip.notificationsDisabled" : "Notificaties staan uit", |
132 | "settings.app.form.language": "Taal", | 132 | "settings.services.updatedInfo" : "Je wijzigingen werden bewaard", |
133 | "settings.app.form.beta": "Ook beta versies", | 133 | "settings.user.form.accountType.company" : "Bedrijf", |
134 | "settings.app.currentVersion": "Huidige versie:", | 134 | "settings.user.form.accountType.individual" : "Particulier", |
135 | "settings.service.form.name": "Naam", | 135 | "settings.user.form.accountType.label" : "Account type", |
136 | "settings.service.form.enableService": "Service aanzetten", | 136 | "settings.user.form.accountType.non-profit" : "Non-Profit", |
137 | "settings.service.form.enableNotification": "Notificaties aanzetten", | 137 | "settings.user.form.currentPassword" : "Huidig wachtwoord", |
138 | "settings.service.form.team": "Team", | 138 | "settings.user.form.email" : "Email", |
139 | "settings.service.form.customUrl": "Aangepaste server", | 139 | "settings.user.form.firstname" : "Naam", |
140 | "settings.service.form.indirectMessages": "Toon berichten-badge voor alle nieuwe berichten", | 140 | "settings.user.form.lastname" : "Achternaam", |
141 | "settings.user.form.firstname": "Naam", | 141 | "settings.user.form.newPassword" : "Nieuw wachtwoord", |
142 | "settings.user.form.lastname": "Achternaam", | 142 | "sidebar.addNewService" : "!!!Add new service", |
143 | "settings.user.form.email": "Email", | 143 | "sidebar.mute" : "Disable audio", |
144 | "settings.user.form.currentPassword": "Huidig wachtwoord", | 144 | "sidebar.settings" : "Instellingen", |
145 | "settings.user.form.newPassword": "Nieuw wachtwoord", | 145 | "sidebar.unmute" : "Enable audio", |
146 | "settings.user.form.accountType.label": "Account type", | 146 | "signup.company.label" : "Bedrijf", |
147 | "settings.user.form.accountType.individual": "Particulier", | 147 | "signup.email.label" : "E-mailadres", |
148 | "settings.user.form.accountType.non-profit": "Non-Profit", | 148 | "signup.emailDuplicate" : "Er bestaat reeds een gebruiker met dat e-mailadres", |
149 | "settings.user.form.accountType.company": "Bedrijf", | 149 | "signup.firstname.label" : "Naam", |
150 | "subscription.type.free": "gratis", | 150 | "signup.headline" : "Registreren", |
151 | "subscription.type.month": "maand", | 151 | "signup.lastname.label" : "Achternaam", |
152 | "subscription.type.year": "jaar", | 152 | "signup.legal.info" : "Door een account aan te maken aanvaard je de", |
153 | "subscription.type.mining": "Franz ondersteunen met rekenkracht", | 153 | "signup.legal.privacy" : "Privacyverklaring", |
154 | "subscription.mining.headline": "Hoe werkt dit?", | 154 | "signup.legal.terms" : "Servicevoorwaarden", |
155 | "subscription.mining.experimental": "experimenteel", | 155 | "signup.link.login" : "Al een account, inloggen?", |
156 | "subscription.mining.line1": "Door \"Ondersteunen met rekenkracht\" aan te zetten zal Franz ongeveer 20-50% van je CPU gebruiken om Monero cryptocurrency te minen, wat ongeveer op €4,3/jaar neerkomt.", | 156 | "signup.password.label" : "Wachtwoord", |
157 | "subscription.mining.line2": "Het CPU gebruik zal aangepast worden aan je werkgedrag zodat we je batterij niet leeg laten lopen of jou en je machine vertragen.", | 157 | "signup.submit.label" : "Account aanmaken", |
158 | "subscription.mining.line3": "Zolang de miner actief is heb je ongelimiteerde toegang tot alle Franz Premium Supporter Features.", | 158 | "subscription.euTaxInfo" : "EU residents: local sales tax may apply", |
159 | "subscription.mining.moreInformation": "Meer informatie over dit plan.", | 159 | "subscription.features.ads" : "Geen reclame, nooit!", |
160 | "subscriptionPopup.buttonCancel": "Annuleren", | 160 | "subscription.features.comingSoon" : "komt binnenkort", |
161 | "subscriptionPopup.buttonDone": "Klaar", | 161 | "subscription.features.customServices" : "Persoonlijke services voor jou en je team", |
162 | "tabs.item.reload": "Herladen", | 162 | "subscription.features.encryptedSync" : "Synchronisatie van geëncrypteerde sessies", |
163 | "tabs.item.edit": "Aanpassen", | 163 | "subscription.features.onpremise" : "Intern gehoste services zoals HipChat", |
164 | "tabs.item.disableNotifications": "Notificaties uitschakelen", | 164 | "subscription.features.vpn" : "Proxy & VPN ondersteuning", |
165 | "tabs.item.enableNotification": "Notificaties inschakelen", | 165 | "subscription.includedFeatures" : "Een betalend account voor Franz omvat", |
166 | "tabs.item.disableService": "Service uitschakelen", | 166 | "subscription.mining.experimental" : "experimenteel", |
167 | "tabs.item.deleteService": "Service verwijderen" | 167 | "subscription.mining.headline" : "Hoe werkt dit?", |
168 | "subscription.mining.line1" : "Door \"Ondersteunen met rekenkracht\" aan te zetten zal Franz ongeveer 20-50% van je CPU gebruiken om Monero cryptocurrency te minen, wat ongeveer op €4,3\/jaar neerkomt.", | ||
169 | "subscription.mining.line2" : "Het CPU gebruik zal aangepast worden aan je werkgedrag zodat we je batterij niet leeg laten lopen of jou en je machine vertragen.", | ||
170 | "subscription.mining.line3" : "Zolang de miner actief is heb je ongelimiteerde toegang tot alle Franz Premium Supporter Features.", | ||
171 | "subscription.mining.moreInformation" : "Meer informatie over dit plan.", | ||
172 | "subscription.paymentSessionError" : "Betalingsformulier kon niet geladen worden", | ||
173 | "subscription.submit.label" : "Ik wil de ontwikkeling van Franz steunen", | ||
174 | "subscription.type.free" : "gratis", | ||
175 | "subscription.type.mining" : "Franz ondersteunen met rekenkracht", | ||
176 | "subscription.type.month" : "maand", | ||
177 | "subscription.type.year" : "jaar", | ||
178 | "subscriptionPopup.buttonCancel" : "Annuleren", | ||
179 | "subscriptionPopup.buttonDone" : "Klaar", | ||
180 | "tabs.item.deleteService" : "Service verwijderen", | ||
181 | "tabs.item.disableAudio" : "Disable audio", | ||
182 | "tabs.item.disableNotifications" : "Notificaties uitschakelen", | ||
183 | "tabs.item.disableService" : "Service uitschakelen", | ||
184 | "tabs.item.edit" : "Aanpassen", | ||
185 | "tabs.item.enableAudio" : "Enable audio", | ||
186 | "tabs.item.enableNotification" : "Notificaties inschakelen", | ||
187 | "tabs.item.enableService" : "Service aanzetten", | ||
188 | "tabs.item.reload" : "Herladen", | ||
189 | "welcome.loginButton" : "Inloggen op je account", | ||
190 | "welcome.signupButton" : "Maak een gratis account aan", | ||
191 | "welcome.slogan" : "Messaging that works for you" | ||
168 | } | 192 | } |
diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index aee1a52c8..a78a08878 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json | |||
@@ -1,169 +1,192 @@ | |||
1 | { | 1 | { |
2 | "global.api.unhealthy": "Kan niet verbinden met Franz online services", | 2 | "global.api.unhealthy" : "Kan geen verbinding maken met de Franz services", |
3 | "global.notConnectedToTheInternet": "Je bent niet verbonden met het internet.", | 3 | "global.notConnectedToTheInternet" : "Je hebt geen internet verbinding.", |
4 | "welcome.signupButton": "Maak een gratis account", | 4 | "import.headline" : "Importeer je Franz 4 services", |
5 | "welcome.loginButton": "Log in op je account", | 5 | "import.notSupportedHeadline" : "De volgende services worden nog niet ondersteund in Franz 5", |
6 | "welcome.slogan": "Messaging dat voor jou werkt", | 6 | "import.skip.label" : "Ik wil handmatig een service toevoegen", |
7 | "login.headline": "Inloggen", | 7 | "import.submit.label" : "Importeer services", |
8 | "login.email.label": "E-mailadres", | 8 | "infobar.buttonChangelog" : "What is new?", |
9 | "login.password.label": "Wachtwoord", | 9 | "infobar.buttonInstallUpdate" : "Start opnieuw op & installeer de update", |
10 | "login.submit.label": "Inloggen", | 10 | "infobar.buttonReloadServices" : "Herlaad de services", |
11 | "login.invalidCredentials": "E-mailadres of wachtwoord ongeldig", | 11 | "infobar.requiredRequestsFailed" : "Kan de services en gebruikers informatie niet laden", |
12 | "login.tokenExpired": "De sessie is verlopen, log opnieuw in alsjeblieft.", | 12 | "infobar.servicesUpdated" : "Je services zijn geüpdatet.", |
13 | "login.serverLogout": "De sessie is verlopen, log opnieuw in alsjeblieft.", | 13 | "infobar.updateAvailable" : "Een nieuwe update voor Franz is beschikbaar.", |
14 | "login.link.signup": "Maak een gratis account", | 14 | "invite.email.label" : "E-mailadres", |
15 | "login.link.password": "Wachtwoord vergeten", | 15 | "invite.headline.friends" : "Nodig 3 van je vrienden of collega's uit", |
16 | "password.headline": "Wachtwoord vergeten", | 16 | "invite.name.label" : "Naam", |
17 | "password.email.label": "E-mailadres", | 17 | "invite.skip.label" : "Ik wil dit later doen", |
18 | "password.submit.label": "Verzenden", | 18 | "invite.submit.label" : "Verzend uitnodigingen", |
19 | "password.noUser": "Geen gebruiker bekend met dat e-mailadres", | 19 | "login.email.label" : "E-mailadres", |
20 | "password.successInfo": "Controleer alsjeblieft je e-mail", | 20 | "login.headline" : "Inloggen", |
21 | "password.link.signup": "Maak een nieuw account aan", | 21 | "login.invalidCredentials" : "E-mailadres of wachtwoord ongeldig", |
22 | "password.link.login": "Log in op je account", | 22 | "login.link.password" : "Wachtwoord vergeten", |
23 | "signup.headline": "Aanmelden", | 23 | "login.link.signup" : "Maak een gratis account", |
24 | "signup.firstname.label": "Voornaam", | 24 | "login.password.label" : "Wachtwoord", |
25 | "signup.lastname.label": "Achternaam", | 25 | "login.serverLogout" : "De sessie is verlopen, log opnieuw in alsjeblieft.", |
26 | "signup.email.label": "E-mailadres", | 26 | "login.submit.label" : "Inloggen", |
27 | "signup.company.label": "Bedrijf", | 27 | "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.", |
28 | "signup.password.label": "Wachtwoord", | 28 | "password.email.label" : "E-mailadres", |
29 | "signup.submit.label": "Maak account aan", | 29 | "password.headline" : "Wachtwoord vergeten", |
30 | "signup.link.login": "Al een account? Log in!", | 30 | "password.link.login" : "Log in op je account", |
31 | "signup.emailDuplicate": "Er bestaat al een gebruiker met dat e-mailadres", | 31 | "password.link.signup" : "Maak een gratis account", |
32 | "signup.legal.info": "Door een Franz account aan te maken ga je akkoord met de", | 32 | "password.noUser" : "Geen gebruiker bekend met dat e-mailadres", |
33 | "signup.legal.terms": "Gebruiksvoorwaarden", | 33 | "password.submit.label" : "Verzenden", |
34 | "signup.legal.privacy": "Privacy Voorwaarden", | 34 | "password.successInfo" : "Controleer alsjeblieft je e-mail", |
35 | "pricing.headline": "Ondersteun Franz", | 35 | "pricing.headline" : "Ondersteun Franz", |
36 | "pricing.support.label": "Selecteer je ondersteuningsplan", | 36 | "pricing.link.skipPayment" : "Ik wil de ontwikkeling van Franz niet ondersteunen.", |
37 | "pricing.submit.label": "Ik wil de ontwikkeling van Franz ondersteunen", | 37 | "pricing.submit.label" : "Ik wil de ontwikkeling van Franz ondersteunen", |
38 | "pricing.link.skipPayment": "Ik wil de ontwikkeling van Franz niet ondersteunen.", | 38 | "pricing.support.label" : "Selecteer je ondersteuningsplan", |
39 | "import.headline": "Importeer je Franz 4 services", | 39 | "service.crashHandler.action" : "{name} herladen", |
40 | "import.notSupportedHeadline": "Services nog niet ondersteund in Franz 5", | 40 | "service.crashHandler.autoReload" : "Probeer {name} te herstellen over {seconds} seconden", |
41 | "import.submit.label": "Importeer services", | 41 | "service.crashHandler.headline" : "Oh nee!", |
42 | "import.skip.label": "Ik wil services handmatig toevoegen", | 42 | "service.crashHandler.text" : "{name} heeft voor een fout gezorgd.", |
43 | "invite.submit.label": "Verzend uitnodigingen", | 43 | "service.disabledHandler.action" : "Activeer {name}", |
44 | "invite.headline.friends": "Nodig 3 van je vrienden of collega's uit", | 44 | "service.disabledHandler.headline" : "{name} is uitgeschakeld", |
45 | "invite.name.label": "Naam", | 45 | "services.getStarted" : "Beginnen", |
46 | "invite.email.label": "E-mailadres", | 46 | "services.welcome" : "Welkom bij Franz", |
47 | "invite.skip.label": "Ik wil dit later doen", | 47 | "settings.account.account.editButton" : "Bewerk account", |
48 | "subscription.submit.label": "Ik wil de ontwikkeling van Franz ondersteunen", | 48 | "settings.account.accountType.basic" : "Basis Account", |
49 | "subscription.paymentSessionError": "Kan betaalformulier niet initialiseren", | 49 | "settings.account.accountType.premium" : "Premium Supporter Account", |
50 | "subscription.includedFeatures": "Betaald Franz Premium Supporter Account bevat", | 50 | "settings.account.buttonSave" : "Update profiel", |
51 | "subscription.features.onpremise": "Add on-geschikt/gehoste services zoals HipChat", | 51 | "settings.account.headline" : "Account", |
52 | "subscription.features.customServices": "Privé services voor jou en je team", | 52 | "settings.account.headlineAccount" : "Account informatie", |
53 | "subscription.features.encryptedSync": "Beveiligde sessie synchronisatie", | 53 | "settings.account.headlineInvoices" : "Facturen", |
54 | "subscription.features.vpn": "Proxy & VPN ondersteuning", | 54 | "settings.account.headlinePassword" : "Wijzig wachtwoord", |
55 | "subscription.features.ads": "Geen advertenties, nooit!", | 55 | "settings.account.headlineProfile" : "Update profiel", |
56 | "subscription.features.comingSoon": "komt binnenkort", | 56 | "settings.account.headlineSubscription" : "Je abonnement", |
57 | "infobar.servicesUpdated": "Je services zijn geüpdatet.", | 57 | "settings.account.headlineUpgrade" : "Upgrade je account & ondersteun Franz", |
58 | "infobar.updateAvailable": "Een nieuwe update voor Franz is beschikbaar.", | 58 | "settings.account.invoiceDownload" : "Download", |
59 | "infobar.buttonReloadServices": "Herlaad services", | 59 | "settings.account.manageSubscription.label" : "Beheer je abonnement", |
60 | "infobar.buttonInstallUpdate": "Herstart & installeer update", | 60 | "settings.account.mining.active" : "Op dit moment voer je {hashes} berekingen per seconde uit.", |
61 | "infobar.requiredRequestsFailed": "Kon services en gebruikerinformatie niet laden", | 61 | "settings.account.mining.cancel" : "Stop mining", |
62 | "sidebar.settings": "Instellingen", | 62 | "settings.account.mining.moreInformation" : "Meer informatie", |
63 | "sidebar.addNewService": "Voeg nieuwe service toe", | 63 | "settings.account.mining.thankyou" : "Bedankt voor je ondersteuning van Franz met je rekenkracht.", |
64 | "services.welcome": "Welkom bij Franz", | 64 | "settings.account.successInfo" : "Je wijzigingen zijn opgeslagen", |
65 | "services.getStarted": "Beginnen", | 65 | "settings.account.tryReloadUserInfoRequest" : "Probeer opnieuw", |
66 | "settings.account.headline": "Account", | 66 | "settings.account.userInfoRequestFailed" : "Kon gebruikerinformatie niet laden", |
67 | "settings.account.headlineSubscription": "Je abonnement", | 67 | "settings.app.buttonInstallUpdate" : "Herstart & installeer update", |
68 | "settings.account.headlineUpgrade": "Upgrade je account & ondersteun Franz", | 68 | "settings.app.buttonSearchForUpdate" : "Controleer op updates", |
69 | "settings.account.headlineInvoices": "Facturen", | 69 | "settings.app.currentVersion" : "Huidige versie:", |
70 | "settings.account.manageSubscription.label": "Beheer je abonnement", | 70 | "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond", |
71 | "settings.account.accountType.basic": "Basis Account", | 71 | "settings.app.form.autoLaunchOnStart" : "Lanceer Franz bij opstarten", |
72 | "settings.account.accountType.premium": "Premium Supporter Account", | 72 | "settings.app.form.beta" : "Inclusief bèta versies", |
73 | "settings.account.account.editButton": "Bewerk account", | 73 | "settings.app.form.enableSpellchecking" : "Zet spellingcontrole aan", |
74 | "settings.account.invoiceDownload": "Download", | 74 | "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", |
75 | "settings.account.userInfoRequestFailed": "Kon gebruikerinformatie niet laden", | 75 | "settings.app.form.language" : "Taal", |
76 | "settings.account.tryReloadUserInfoRequest": "Probeer opnieuw", | 76 | "settings.app.form.minimizeToSystemTray" : "Minimaliseer Franz naar de systeembalk", |
77 | "settings.account.headlineProfile": "Update profiel", | 77 | "settings.app.form.runInBackground" : "Houd Franz op de achtergrond wanneer het venster gesloten wordt", |
78 | "settings.account.headlineAccount": "Account informatie", | 78 | "settings.app.form.showDisabledServices" : "Laat uitgeschakelde services zien", |
79 | "settings.account.headlinePassword": "Wijzig wachtwoord", | 79 | "settings.app.headline" : "Instellingen", |
80 | "settings.account.successInfo": "Je wijzigingen zijn opgeslagen", | 80 | "settings.app.headlineAdvanced" : "Geavanceerd", |
81 | "settings.account.buttonSave": "Update profiel", | 81 | "settings.app.headlineAppearance" : "Weergave", |
82 | "settings.account.mining.thankyou": "Bedankt voor je ondersteuning van Franz met je rekenkracht.", | 82 | "settings.app.headlineGeneral" : "Algemeen", |
83 | "settings.account.mining.active": "Op dit moment voer je {hashes} berekingen per seconde uit.", | 83 | "settings.app.headlineLanguage" : "Taal", |
84 | "settings.account.mining.moreInformation": "Meer informatie", | 84 | "settings.app.headlineUpdates" : "Updates", |
85 | "settings.account.mining.cancel": "Stop mining", | 85 | "settings.app.restartRequired" : "Deze wijziging heeft een herstart nodig", |
86 | "settings.navigation.availableServices": "Beschikbare services", | 86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", |
87 | "settings.navigation.yourServices": "Jouw services", | 87 | "settings.app.updateStatusAvailable" : "Update beschikbaar, downloaden...", |
88 | "settings.navigation.account": "Account", | 88 | "settings.app.updateStatusSearching" : "Zoekt naar updates", |
89 | "settings.navigation.settings": "Instellingen", | 89 | "settings.app.updateStatusUpToDate" : "Je gebruikt de laatste versie van Franz", |
90 | "settings.navigation.logout": "Uitloggen", | 90 | "settings.navigation.account" : "Account", |
91 | "settings.recipes.headline": "Beschikbare services", | 91 | "settings.navigation.availableServices" : "Beschikbare services", |
92 | "settings.recipes.mostPopular": "Meest populair", | 92 | "settings.navigation.logout" : "Uitloggen", |
93 | "settings.recipes.all": "Alle services", | 93 | "settings.navigation.settings" : "Instellingen", |
94 | "settings.recipes.dev": "Ontwikkeling", | 94 | "settings.navigation.yourServices" : "Jouw services", |
95 | "settings.recipes.nothingFound": "Geen service kwam overeen met je zoekopdracht.", | 95 | "settings.recipes.all" : "Alle services", |
96 | "settings.recipes.servicesSuccessfulAddedInfo": "Service succesvol toegevoegd", | 96 | "settings.recipes.dev" : "Ontwikkeling", |
97 | "settings.service.form.saveButton": "Opslaan service", | 97 | "settings.recipes.headline" : "Beschikbare services", |
98 | "settings.service.form.deleteButton": "Verwijder service", | 98 | "settings.recipes.missingService" : "Missing a service?", |
99 | "settings.service.form.availableServices": "Beschikbare services", | 99 | "settings.recipes.mostPopular" : "Meest populair", |
100 | "settings.service.form.yourServices": "Jouw services", | 100 | "settings.recipes.nothingFound" : "Geen service kwam overeen met je zoekopdracht.", |
101 | "settings.service.form.addServiceHeadline": "Toevoegen {name}", | 101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Service succesvol toegevoegd", |
102 | "settings.service.form.editServiceHeadline": "Bewerk {name}", | 102 | "settings.service.error.goBack" : "Terug naar services", |
103 | "settings.service.form.tabHosted": "Gehost", | 103 | "settings.service.error.headline" : "Fout", |
104 | "settings.service.form.tabOnPremise": "Zelf-gehoste ??", | 104 | "settings.service.error.message" : "Kon servicerecept niet laden.", |
105 | "settings.service.form.customUrlValidationError": "Kon custom server {name} niet valideren.", | 105 | "settings.service.form.addServiceHeadline" : "Toevoegen {name}", |
106 | "settings.service.form.customUrlPremiumInfo": "Om zelf-gehoste services toe te kunnen voegen, heb je een Franz Premium Supporter Account nodig.", | 106 | "settings.service.form.availableServices" : "Beschikbare services", |
107 | "settings.service.form.customUrlUpgradeAccount": "Upgrade je account", | 107 | "settings.service.form.customUrl" : "Custom server", |
108 | "settings.service.form.indirectMessageInfo": "Je ontvangt meldingen van alle nieuwe berichten in een kanaal, niet alleen @username, @channel, @here, ...", | 108 | "settings.service.form.customUrlPremiumInfo" : "Om zelf-gehoste services toe te kunnen voegen, heb je een Franz Premium Supporter Account nodig.", |
109 | "settings.service.error.headline": "Fout", | 109 | "settings.service.form.customUrlUpgradeAccount" : "Upgrade je account", |
110 | "settings.service.error.goBack": "Terug naar services", | 110 | "settings.service.form.customUrlValidationError" : "Kon custom server {name} niet valideren.", |
111 | "settings.service.error.message": "Kon servicerecept niet laden.", | 111 | "settings.service.form.deleteButton" : "Verwijder service", |
112 | "settings.services.tooltip.isDisabled": "Service is uitgeschakeld", | 112 | "settings.service.form.editServiceHeadline" : "Bewerk {name}", |
113 | "settings.services.tooltip.notificationsDisabled": "Meldingen zijn uitgeschakeld", | 113 | "settings.service.form.enableAudio" : "Audio inschakelen", |
114 | "settings.services.headline": "Jouw services", | 114 | "settings.service.form.enableNotification" : "Meldingen inschakelen", |
115 | "settings.services.noServicesAdded": "Je hebt nog geen services toegevoegd.", | 115 | "settings.service.form.enableService" : "Service inschakelen", |
116 | "settings.services.discoverServices": "Ontdek services", | 116 | "settings.service.form.indirectMessageInfo" : "Je ontvangt meldingen van alle nieuwe berichten in een kanaal, niet alleen @username, @channel, @here, ...", |
117 | "settings.services.updatedInfo": "Je wijzigingen zijn opgeslagen", | 117 | "settings.service.form.indirectMessages" : "Toon berichtenbadge voor alle nieuwe berichten", |
118 | "settings.services.deletedInfo": "Service is verwijderd", | 118 | "settings.service.form.isMutedInfo" : "Indien uitgeschakeld zullen alle meldinggeluiden en afgespeelde audio uitgeschakeld zijn", |
119 | "settings.app.headline": "Instellingen", | 119 | "settings.service.form.name" : "Naam", |
120 | "settings.app.headlineGeneral": "Algemeen", | 120 | "settings.service.form.saveButton" : "Opslaan service", |
121 | "settings.app.headlineLanguage": "Taal", | 121 | "settings.service.form.tabHosted" : "Gehost", |
122 | "settings.app.headlineUpdates": "Updates", | 122 | "settings.service.form.tabOnPremise" : "Zelf-gehost *", |
123 | "settings.app.buttonSearchForUpdate": "Controleer op updates", | 123 | "settings.service.form.team" : "Team", |
124 | "settings.app.buttonInstallUpdate": "Herstart & installeer update", | 124 | "settings.service.form.yourServices" : "Jouw services", |
125 | "settings.app.updateStatusSearching": "Zoekt naar updates", | 125 | "settings.services.deletedInfo" : "Service is verwijderd", |
126 | "settings.app.updateStatusAvailable": "Update beschikbaar, downloaden...", | 126 | "settings.services.discoverServices" : "Ontdek services", |
127 | "settings.app.updateStatusUpToDate": "Je gebruikt de laatste versie van Franz", | 127 | "settings.services.headline" : "Jouw services", |
128 | "settings.app.form.autoLaunchOnStart": "Lanceer Franz bij opstarten", | 128 | "settings.services.noServicesAdded" : "Je hebt nog geen services toegevoegd.", |
129 | "settings.app.form.autoLaunchInBackground": "Open op de achtergrond", | 129 | "settings.services.tooltip.isDisabled" : "Service is uitgeschakeld", |
130 | "settings.app.form.enableSystemTray": "Toon Franz in de systeembalk", | 130 | "settings.services.tooltip.isMuted" : "Alle geluiden zijn uitgeschakeld", |
131 | "settings.app.form.minimizeToSystemTray": "Minimaliseer Franz naar de systeembal", | 131 | "settings.services.tooltip.notificationsDisabled" : "Meldingen zijn uitgeschakeld", |
132 | "settings.app.form.runInBackground": "Houd Franz op de achtergrond wanneer het venster gesloten wordt", | 132 | "settings.services.updatedInfo" : "Je wijzigingen zijn opgeslagen", |
133 | "settings.app.form.language": "Taal", | 133 | "settings.user.form.accountType.company" : "Bedrijf", |
134 | "settings.app.form.beta": "Inclusief beta versies", | 134 | "settings.user.form.accountType.individual" : "Individueel", |
135 | "settings.app.currentVersion": "Huidige versie:", | 135 | "settings.user.form.accountType.label" : "Account type", |
136 | "settings.service.form.name": "Naam", | 136 | "settings.user.form.accountType.non-profit" : "Non-Profit", |
137 | "settings.service.form.enableService": "Activeer service", | 137 | "settings.user.form.currentPassword" : "Huidig wachtwoord", |
138 | "settings.service.form.enableNotification": "Activeer meldingen", | 138 | "settings.user.form.email" : "E-mailadres", |
139 | "settings.service.form.team": "Team", | 139 | "settings.user.form.firstname" : "Voornaam", |
140 | "settings.service.form.customUrl": "Custom server", | 140 | "settings.user.form.lastname" : "Achternaam", |
141 | "settings.service.form.indirectMessages": "Toon berichtenbadge voor alle nieuwe berichten", | 141 | "settings.user.form.newPassword" : "Nieuw wachtwoord", |
142 | "settings.user.form.firstname": "Voornaam", | 142 | "sidebar.addNewService" : "Service toevoegen", |
143 | "settings.user.form.lastname": "Achternaam", | 143 | "sidebar.mute" : "Audio uitschakelen", |
144 | "settings.user.form.email": "E-mailadres", | 144 | "sidebar.settings" : "Instellingen", |
145 | "settings.user.form.currentPassword": "Huidig wachtwoord", | 145 | "sidebar.unmute" : "Audio inschakelen", |
146 | "settings.user.form.newPassword": "Nieuw wachtwoord", | 146 | "signup.company.label" : "Bedrijf", |
147 | "settings.user.form.accountType.label": "Account type", | 147 | "signup.email.label" : "E-mailadres", |
148 | "settings.user.form.accountType.individual": "Individueel", | 148 | "signup.emailDuplicate" : "Er bestaat al een gebruiker met dat e-mailadres", |
149 | "settings.user.form.accountType.non-profit": "Non-Profit", | 149 | "signup.firstname.label" : "Voornaam", |
150 | "settings.user.form.accountType.company": "Bedrijf", | 150 | "signup.headline" : "Aanmelden", |
151 | "subscription.type.free": "gratis", | 151 | "signup.lastname.label" : "Achternaam", |
152 | "subscription.type.month": "maand", | 152 | "signup.legal.info" : "Door een Franz account aan te maken ga je akkoord met de", |
153 | "subscription.type.year": "jaar", | 153 | "signup.legal.privacy" : "Privacy Voorwaarden", |
154 | "subscription.type.mining": "Ondersteun Franz met rekenkracht", | 154 | "signup.legal.terms" : "Gebruiksvoorwaarden", |
155 | "subscription.mining.headline": "Hoe werkt dit?", | 155 | "signup.link.login" : "Al een account? Log in!", |
156 | "subscription.mining.experimental": "experimenteel", | 156 | "signup.password.label" : "Wachtwoord", |
157 | "subscription.mining.line1": "Door \"Ondersteun met rekenkracht\" te activeren, zal Franz ongeveer 20-50% van je CPU gebruiken om de cryptomunt Monero te minen, wat overeenkomt met ongeveer $ 5/jaar.", | 157 | "signup.submit.label" : "Maak een nieuw account aan", |
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.euTaxInfo" : "Bewoners binnen EU: lokale belasting kan van toepassing zijn", |
159 | "subscription.mining.line3": "Zolang de miner actief is, heb je onbeperkt toegang tot alle Franz Premium Supporter Features.", | 159 | "subscription.features.ads" : "Geen advertenties, nooit!", |
160 | "subscription.mining.moreInformation": "Verkrijg meer informatie over dit plan.", | 160 | "subscription.features.comingSoon" : "komt binnenkort", |
161 | "subscriptionPopup.buttonCancel": "Annuleer", | 161 | "subscription.features.customServices" : "Privé services voor jou en je team", |
162 | "subscriptionPopup.buttonDone": "Klaar", | 162 | "subscription.features.encryptedSync" : "Beveiligde sessie synchronisatie", |
163 | "tabs.item.reload": "Herlaad", | 163 | "subscription.features.onpremise" : "Add on-geschikt\/gehoste services zoals HipChat", |
164 | "tabs.item.edit": "Bewerk", | 164 | "subscription.features.vpn" : "Proxy & VPN ondersteuning", |
165 | "tabs.item.disableNotifications": "Uitschakelen meldingen", | 165 | "subscription.includedFeatures" : "Betaald Franz Premium Supporter Account bevat", |
166 | "tabs.item.enableNotification": "Inschakelen meldingen", | 166 | "subscription.mining.experimental" : "experimenteel", |
167 | "tabs.item.disableService": "Uitschakelen service", | 167 | "subscription.mining.headline" : "Hoe werkt dit?", |
168 | "tabs.item.deleteService": "Verwijderen service" | 168 | "subscription.mining.line1" : "Door \"Ondersteun met rekenkracht\" te activeren, zal Franz ongeveer 20-50% van je CPU gebruiken om de cryptomunt Monero te minen, wat overeenkomt met ongeveer $ 5\/jaar.", |
169 | "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.", | ||
170 | "subscription.mining.line3" : "Zolang de miner actief is, heb je onbeperkt toegang tot alle Franz Premium Supporter Features.", | ||
171 | "subscription.mining.moreInformation" : "Verkrijg meer informatie over dit plan.", | ||
172 | "subscription.paymentSessionError" : "Kan betaalformulier niet initialiseren", | ||
173 | "subscription.submit.label" : "Ik wil de ontwikkeling van Franz ondersteunen", | ||
174 | "subscription.type.free" : "gratis", | ||
175 | "subscription.type.mining" : "Ondersteun Franz met rekenkracht", | ||
176 | "subscription.type.month" : "maand", | ||
177 | "subscription.type.year" : "jaar", | ||
178 | "subscriptionPopup.buttonCancel" : "Annuleer", | ||
179 | "subscriptionPopup.buttonDone" : "Klaar", | ||
180 | "tabs.item.deleteService" : "Verwijderen service", | ||
181 | "tabs.item.disableAudio" : "Audio uitschakelen", | ||
182 | "tabs.item.disableNotifications" : "Uitschakelen meldingen", | ||
183 | "tabs.item.disableService" : "Uitschakelen service", | ||
184 | "tabs.item.edit" : "Bewerk", | ||
185 | "tabs.item.enableAudio" : "Audio inschakelen", | ||
186 | "tabs.item.enableNotification" : "Inschakelen meldingen", | ||
187 | "tabs.item.enableService" : "Service inschakelen", | ||
188 | "tabs.item.reload" : "Herlaad", | ||
189 | "welcome.loginButton" : "Log in op je account", | ||
190 | "welcome.signupButton" : "Maak een gratis account", | ||
191 | "welcome.slogan" : "Messaging die voor jou werkt" | ||
169 | } | 192 | } |
diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index a884ef319..67657155f 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json | |||
@@ -1,168 +1,192 @@ | |||
1 | { | 1 | { |
2 | "global.api.unhealthy": "Nie można połączyć się z usługą Franz", | 2 | "global.api.unhealthy" : "Nie można połączyć się z usługami Franz online", |
3 | "global.notConnectedToTheInternet": "Brak połączenia z Internetem.", | 3 | "global.notConnectedToTheInternet" : "Nie masz połączenia z Internetem.", |
4 | "welcome.signupButton": "Stwórz darmowe konto", | 4 | "import.headline" : "Importuj usługi Franz 4", |
5 | "welcome.loginButton": "Zaloguj się na swoje konto", | 5 | "import.notSupportedHeadline" : "Usługi, które nie są jeszcze obsługiwane w Franz 5", |
6 | "welcome.slogan": "Komunikator który działa", | 6 | "import.skip.label" : "Chcę ręcznie dodać usługi", |
7 | "login.headline": "Zaloguj się", | 7 | "import.submit.label" : "Zaimportuj usługi", |
8 | "login.email.label": "Adres email", | 8 | "infobar.buttonChangelog" : "What is new?", |
9 | "login.password.label": "Hasło", | 9 | "infobar.buttonInstallUpdate" : "Uruchom ponownie i zainstaluj aktualizację", |
10 | "login.submit.label": "Zaloguj się", | 10 | "infobar.buttonReloadServices" : "Załaduj ponownie usługi", |
11 | "login.invalidCredentials": "Adres email lub hasło są błędne", | 11 | "infobar.requiredRequestsFailed" : "Nie można załadować usług i informacji użytkownika", |
12 | "login.tokenExpired": "Twoja sesja wygasła, zaloguj się ponownie.", | 12 | "infobar.servicesUpdated" : "Usługi zostały zaktualizowane.", |
13 | "login.serverLogout": "Twoja sesja wygasła, zaloguj się ponownie.", | 13 | "infobar.updateAvailable" : "Dostępna jest nowa wersja Franza.", |
14 | "login.link.signup": "Stwórz darmowe konto", | 14 | "invite.email.label" : "Adres email", |
15 | "login.link.password": "Zresetuj hasło", | 15 | "invite.headline.friends" : "Zaproś 3 znajomych lub współpracowników", |
16 | "password.headline": "Zresetuj hasło", | 16 | "invite.name.label" : "Imię", |
17 | "password.email.label": "Adres email", | 17 | "invite.skip.label" : "Chcę to zrobić później", |
18 | "password.submit.label": "Wyślij", | 18 | "invite.submit.label" : "Wyślij zaproszenia", |
19 | "password.noUser": "Nie znaleziono użytkownika z takim adresem email", | 19 | "login.email.label" : "Adres email", |
20 | "password.successInfo": "Sprawdź swoją skrzynkę email", | 20 | "login.headline" : "Zaloguj się", |
21 | "password.link.signup": "Stwórz darmowe konto", | 21 | "login.invalidCredentials" : "Adres email lub hasło są błędne", |
22 | "password.link.login": "Zaloguj się na swoje konto", | 22 | "login.link.password" : "Wyzeruj hasło", |
23 | "signup.headline": "Zarejestruj się", | 23 | "login.link.signup" : "Załóż darmowe konto", |
24 | "signup.firstname.label": "Imię", | 24 | "login.password.label" : "Hasło", |
25 | "signup.lastname.label": "Nazwisko", | 25 | "login.serverLogout" : "Twoja sesja wygasła, zaloguj się ponownie.", |
26 | "signup.email.label": "Adres email", | 26 | "login.submit.label" : "Zaloguj się", |
27 | "signup.company.label": "Firma", | 27 | "login.tokenExpired" : "Twoja sesja wygasła, zaloguj się ponownie.", |
28 | "signup.password.label": "Hasło", | 28 | "password.email.label" : "Adres email", |
29 | "signup.submit.label": "Stwórz konto", | 29 | "password.headline" : "Wyzeruj hasło", |
30 | "signup.link.login": "Masz już konto, zalogować się?", | 30 | "password.link.login" : "Zaloguj się na swoje konto", |
31 | "signup.emailDuplicate": "Użytkownik z takim adresem email już istnieje", | 31 | "password.link.signup" : "Stwórz darmowe konto", |
32 | "signup.legal.info": "Poprzez utworzenie konta Franz akceptujesz", | 32 | "password.noUser" : "Nie znaleziono użytkownika z takim adresem email", |
33 | "signup.legal.terms": "Warunki świadczenia usług", | 33 | "password.submit.label" : "Wyślij", |
34 | "signup.legal.privacy": "Polityka prywatności", | 34 | "password.successInfo" : "Proszę sprawdzić swój email", |
35 | "pricing.headline": "Wspomóż aplikację Franz", | 35 | "pricing.headline" : "Wspieraj Franz", |
36 | "pricing.support.label": "Wybierz plan wsparcia", | 36 | "pricing.link.skipPayment" : "Nie chcę wspierać rozwoju aplikacji Franz.", |
37 | "pricing.submit.label": "Chcę wspierać rozwój aplikacji Franz", | 37 | "pricing.submit.label" : "Chcę wspierać rozwój aplikacji Franz", |
38 | "pricing.link.skipPayment": "Nie chcę wspierać rozwoju aplikacji Franz.", | 38 | "pricing.support.label" : "Wybierz swój plan wsparcia", |
39 | "import.headline": "Zaimportuj usługi Franz 4", | 39 | "service.crashHandler.action" : "Reload {name}", |
40 | "import.notSupportedHeadline": "Usługi nie są jeszcze wspierane w Franz 5", | 40 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", |
41 | "import.submit.label": "Zaimportuj usługi", | 41 | "service.crashHandler.headline" : "Oh no!", |
42 | "import.skip.label": "Chcę dodać usługi ręcznie", | 42 | "service.crashHandler.text" : "{name} has caused an error.", |
43 | "invite.submit.label": "Wyślij zaproszenia", | 43 | "service.disabledHandler.action" : "Enable {name}", |
44 | "invite.headline.friends": "Zaproś 3 znajomych lub kolegów z pracy", | 44 | "service.disabledHandler.headline" : "{name} is disabled", |
45 | "invite.name.label": "Nazwa", | 45 | "services.getStarted" : "Zacznij", |
46 | "invite.email.label": "Adres email", | 46 | "services.welcome" : "Witaj w programie Franz", |
47 | "invite.skip.label": "Chcę to zrobić później", | 47 | "settings.account.account.editButton" : "Modyfikuj konta", |
48 | "subscription.submit.label": "Chcę wspierać rozwój aplikacji Franz", | 48 | "settings.account.accountType.basic" : "Podstawowe konto", |
49 | "subscription.paymentSessionError": "Nie można wczytać formularza płatności", | 49 | "settings.account.accountType.premium" : "Premium Supporter Account", |
50 | "subscription.includedFeatures": "Płatne konto Franz Premium obejmuje", | 50 | "settings.account.buttonSave" : "Uaktualnij profil", |
51 | "subscription.features.onpremise": "Dodawanie lokalnych/hostowanych usług takich jak HipChat", | 51 | "settings.account.headline" : "Konto", |
52 | "subscription.features.customServices": "Prywatne usługi dla Ciebie i Twojego zespołu", | 52 | "settings.account.headlineAccount" : "Informacje o koncie", |
53 | "subscription.features.encryptedSync": "Szyfrowana synchronizacja sesji", | 53 | "settings.account.headlineInvoices" : "Faktury", |
54 | "subscription.features.vpn": "Wsprarcie Proxy i VPN", | 54 | "settings.account.headlinePassword" : "Zmień hasło", |
55 | "subscription.features.ads": "Brak reklam, na zawsze!", | 55 | "settings.account.headlineProfile" : "Uaktualnij profil", |
56 | "subscription.features.comingSoon": "wkrótce dostępne", | 56 | "settings.account.headlineSubscription" : "Twoja subskrypcja", |
57 | "infobar.servicesUpdated": "Twoje usługi zostały zaaktualizowane.", | 57 | "settings.account.headlineUpgrade" : "Ulepsz swoje konto i wspieraj aplikację Franz", |
58 | "infobar.updateAvailable": "Aktualizacja aplikacji Franz jest dostępna.", | 58 | "settings.account.invoiceDownload" : "Pobierz", |
59 | "infobar.buttonReloadServices": "Przeładuj usługi", | 59 | "settings.account.manageSubscription.label" : "Zarządzaj swoimi subskrypcjami", |
60 | "infobar.buttonInstallUpdate": "Uruchom ponownie i zainstaluj aktualizacje", | 60 | "settings.account.mining.active" : "Obecnie wykonujesz {hashes} operacji na sekundę.", |
61 | "infobar.requiredRequestsFailed": "Nie można wczytać usług i informacji o użytkowniku", | 61 | "settings.account.mining.cancel" : "Anuluj kopanie", |
62 | "sidebar.settings": "Ustawienia", | 62 | "settings.account.mining.moreInformation" : "Zdobądź więcej informacji", |
63 | "sidebar.addNewService": "!!!Add new service", | 63 | "settings.account.mining.thankyou" : "Dziękuję za wsparcie aplikacji Franz mocą obliczeniową.", |
64 | "services.welcome": "Witaj w aplikcji Franz", | 64 | "settings.account.successInfo" : "Twoje zmiany zostały zapisane", |
65 | "services.getStarted": "Zacznij", | 65 | "settings.account.tryReloadUserInfoRequest" : "Spróbuj ponownie", |
66 | "settings.account.headline": "Konto", | 66 | "settings.account.userInfoRequestFailed" : "Nie można wczytać informacji o użytkowniku", |
67 | "settings.account.headlineSubscription": "Twoja subskrypcja", | 67 | "settings.app.buttonInstallUpdate" : "Uruchom ponownie i zainstaluj aktualizację", |
68 | "settings.account.headlineUpgrade": "Ulepsz swoje konto i wspieraj aplikację Franz", | 68 | "settings.app.buttonSearchForUpdate" : "Sprawdź aktualizacje", |
69 | "settings.account.headlineInvoices": "Faktury", | 69 | "settings.app.currentVersion" : "Aktualna wersja:", |
70 | "settings.account.manageSubscription.label": "Zarządzaj swoimi subskrypcjami", | 70 | "settings.app.form.autoLaunchInBackground" : "Otwórz w tle", |
71 | "settings.account.accountType.basic": "Podstawowe konto", | 71 | "settings.app.form.autoLaunchOnStart" : "Uruchom Franz na początku", |
72 | "settings.account.accountType.premium": "Konto Premium", | 72 | "settings.app.form.beta" : "Uwzględnij wersje beta", |
73 | "settings.account.account.editButton": "Edytuj konto", | 73 | "settings.app.form.enableSpellchecking" : "Enable spell checking", |
74 | "settings.account.invoiceDownload": "Pobieranie", | 74 | "settings.app.form.enableSystemTray" : "Pokaż Franza w tacy systemowej", |
75 | "settings.account.userInfoRequestFailed": "Nie można wczytać informacji o użytkowniku", | 75 | "settings.app.form.language" : "Język", |
76 | "settings.account.tryReloadUserInfoRequest": "Spróbuj ponownie", | 76 | "settings.app.form.minimizeToSystemTray" : "Zminimalizuj aplikację Franz", |
77 | "settings.account.headlineProfile": "Aktualizuj profil", | 77 | "settings.app.form.runInBackground" : "Zachowaj aplikację Franz w tle po zamknięciu okna", |
78 | "settings.account.headlineAccount": "Informacje o koncie", | 78 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", |
79 | "settings.account.headlinePassword": "Zmiana hasła", | 79 | "settings.app.headline" : "Ustawienia", |
80 | "settings.account.successInfo": "Zmiany zostały zapisane", | 80 | "settings.app.headlineAdvanced" : "Advanced", |
81 | "settings.account.buttonSave": "Aktualizuj profil", | 81 | "settings.app.headlineAppearance" : "Appearance", |
82 | "settings.account.mining.thankyou": "Dziękuję za wsparcie aplikacji Franz mocą obliczeniową.", | 82 | "settings.app.headlineGeneral" : "Ogólne", |
83 | "settings.account.mining.active": "Obecnie wykonujesz {hashes} operacji na sekundę.", | 83 | "settings.app.headlineLanguage" : "Język", |
84 | "settings.account.mining.moreInformation": "Dowiedz się więcej", | 84 | "settings.app.headlineUpdates" : "Aktualizacje", |
85 | "settings.account.mining.cancel": "Anuluj kopanie", | 85 | "settings.app.restartRequired" : "Changes require restart", |
86 | "settings.navigation.availableServices": "Dostępne usługi", | 86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", |
87 | "settings.navigation.yourServices": "Twoje usługi", | 87 | "settings.app.updateStatusAvailable" : "Dostępna aktualizacja, pobieram...", |
88 | "settings.navigation.account": "Konto", | 88 | "settings.app.updateStatusSearching" : "Szukam aktualizacji", |
89 | "settings.navigation.settings": "Ustawienia", | 89 | "settings.app.updateStatusUpToDate" : "Używasz najnowszej wersji aplikacji Franz", |
90 | "settings.navigation.logout": "Wylogowanie", | 90 | "settings.navigation.account" : "Konto", |
91 | "settings.recipes.headline": "Dostępne usługi", | 91 | "settings.navigation.availableServices" : "Dostępne usługi", |
92 | "settings.recipes.mostPopular": "Najpopularniejsze", | 92 | "settings.navigation.logout" : "Wyloguj", |
93 | "settings.recipes.all": "Wszystkie usługi", | 93 | "settings.navigation.settings" : "Ustawienia", |
94 | "settings.recipes.dev": "Rozwojowe", | 94 | "settings.navigation.yourServices" : "Twoje usługi", |
95 | "settings.recipes.nothingFound": "Żadna usługa nie została znaleziona.", | 95 | "settings.recipes.all" : "Wszystkie usługi", |
96 | "settings.recipes.servicesSuccessfulAddedInfo": "Usługa została dodana pomyślnie", | 96 | "settings.recipes.dev" : "Rozwojowe", |
97 | "settings.service.form.saveButton": "Zapisz usługę", | 97 | "settings.recipes.headline" : "Dostępne usługi", |
98 | "settings.service.form.deleteButton": "Usuń usługę", | 98 | "settings.recipes.missingService" : "Missing a service?", |
99 | "settings.service.form.availableServices": "Dostępne usługi", | 99 | "settings.recipes.mostPopular" : "Najpopularniejsze", |
100 | "settings.service.form.yourServices": "Twoje usługi", | 100 | "settings.recipes.nothingFound" : "Żadna usługa nie została znaleziona.", |
101 | "settings.service.form.addServiceHeadline": "Dodaj {name}", | 101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Usługa została dodana pomyślnie", |
102 | "settings.service.form.editServiceHeadline": "Edytuj {name}", | 102 | "settings.service.error.goBack" : "Wróć do usług", |
103 | "settings.service.form.tabHosted": "Hostowane", | 103 | "settings.service.error.headline" : "Błąd", |
104 | "settings.service.form.tabOnPremise": "Hostowane lokalnie ⭐️", | 104 | "settings.service.error.message" : "Nie można wczytać przepisu usługi.", |
105 | "settings.service.form.customUrlValidationError": "Nie można zweryfikować spersonalizowanego {name} serwera.", | 105 | "settings.service.form.addServiceHeadline" : "Dodaj {name}", |
106 | "settings.service.form.customUrlPremiumInfo": "Aby dodać usługi hostowane lokalnie, musisz posiadać konto Premium.", | 106 | "settings.service.form.availableServices" : "Dostępne usługi", |
107 | "settings.service.form.customUrlUpgradeAccount": "Ulepsz swoje konto", | 107 | "settings.service.form.customUrl" : "Spersonalizowany serwer", |
108 | "settings.service.form.indirectMessageInfo": "Będziesz informowany o wszystkich nowych wiadomościach na kanale, nie tylko @username, @channel, @here, ...", | 108 | "settings.service.form.customUrlPremiumInfo" : "Aby dodać usługi hostowane lokalnie, musisz posiadać konto Premium.", |
109 | "settings.service.error.headline": "Błąd", | 109 | "settings.service.form.customUrlUpgradeAccount" : "Ulepsz swoje konto", |
110 | "settings.service.error.goBack": "Wróć do usług", | 110 | "settings.service.form.customUrlValidationError" : "Nie można zweryfikować spersonalizowanego {name} serwera.", |
111 | "settings.service.error.message": "Nie można wczytać przepisu usługi.", | 111 | "settings.service.form.deleteButton" : "Usuń usługę", |
112 | "settings.services.tooltip.isDisabled": "Usługa jest nieaktywna", | 112 | "settings.service.form.editServiceHeadline" : "Edytuj {name}", |
113 | "settings.services.tooltip.notificationsDisabled": "Powiadomienia są nieaktywne", | 113 | "settings.service.form.enableAudio" : "Enable audio", |
114 | "settings.services.headline": "Twoje usługi", | 114 | "settings.service.form.enableNotification" : "Aktywuj powiadomienia", |
115 | "settings.services.noServicesAdded": "Nie dodałeś jeszcze żadnych usług.", | 115 | "settings.service.form.enableService" : "Aktywuj usługę", |
116 | "settings.services.discoverServices": "Przeglądaj usługi", | 116 | "settings.service.form.indirectMessageInfo" : "Będziesz informowany o wszystkich nowych wiadomościach na kanale, nie tylko @username, @channel, @here, ...", |
117 | "settings.services.updatedInfo": "Zmiany zostały zapisane", | 117 | "settings.service.form.indirectMessages" : "Pokaż ikonę wiadomości dla wszystkich nowych wiadomości", |
118 | "settings.services.deletedInfo": "Usługa została usunięta", | 118 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", |
119 | "settings.app.headline": "Ustawienia", | 119 | "settings.service.form.name" : "Nazwa", |
120 | "settings.app.headlineGeneral": "Ogólne", | 120 | "settings.service.form.saveButton" : "Zapisz usługę", |
121 | "settings.app.headlineLanguage": "Język", | 121 | "settings.service.form.tabHosted" : "Hostowane", |
122 | "settings.app.headlineUpdates": "Aktualizacje", | 122 | "settings.service.form.tabOnPremise" : "Hostowane lokalnie ⭐️", |
123 | "settings.app.buttonSearchForUpdate": "Sprawdź czy są dostęne aktualizacje", | 123 | "settings.service.form.team" : "Zespół", |
124 | "settings.app.buttonInstallUpdate": "Uruchom ponownie i zainstaluj aktualizacje", | 124 | "settings.service.form.yourServices" : "Twoje usługi", |
125 | "settings.app.updateStatusSearching": "Szukam aktualizacji", | 125 | "settings.services.deletedInfo" : "Usługa została usunięta", |
126 | "settings.app.updateStatusAvailable": "Dostępna aktualizacja, pobieram...", | 126 | "settings.services.discoverServices" : "Przeglądaj usługi", |
127 | "settings.app.updateStatusUpToDate": "Używasz najnowszej wersji aplikacji Franz", | 127 | "settings.services.headline" : "Twoje usługi", |
128 | "settings.app.form.autoLaunchOnStart": "Uruchom aplikację Franz przy starcie systemu", | 128 | "settings.services.noServicesAdded" : "Nie dodałeś jeszcze żadnych usług.", |
129 | "settings.app.form.autoLaunchInBackground": "Uruchom w tle", | 129 | "settings.services.tooltip.isDisabled" : "Usługa jest nieaktywna", |
130 | "settings.app.form.minimizeToSystemTray": "Zminimalizuj aplikację Franz", | 130 | "settings.services.tooltip.isMuted" : "All sounds are muted", |
131 | "settings.app.form.runInBackground": "Zachowaj aplikację Franz w tle po zamknięciu okna", | 131 | "settings.services.tooltip.notificationsDisabled" : "Powiadomienia są nieaktywne", |
132 | "settings.app.form.language": "Język", | 132 | "settings.services.updatedInfo" : "Zmiany zostały zapisane", |
133 | "settings.app.form.beta": "Uwzględniaj wersje beta", | 133 | "settings.user.form.accountType.company" : "Firma", |
134 | "settings.app.currentVersion": "Obecna wersja:", | 134 | "settings.user.form.accountType.individual" : "Prywatne", |
135 | "settings.service.form.name": "Nazwa", | 135 | "settings.user.form.accountType.label" : "Typ konta", |
136 | "settings.service.form.enableService": "Aktywuj usługę", | 136 | "settings.user.form.accountType.non-profit" : "Non-Profit ", |
137 | "settings.service.form.enableNotification": "Aktywuj powiadomienia", | 137 | "settings.user.form.currentPassword" : "Obecne hasło", |
138 | "settings.service.form.team": "Zespół", | 138 | "settings.user.form.email" : "Adres email", |
139 | "settings.service.form.customUrl": "Spersonalizowany serwer", | 139 | "settings.user.form.firstname" : "Imię", |
140 | "settings.service.form.indirectMessages": "Pokaż ikonę wiadomości dla wszystkich nowych wiadomości", | 140 | "settings.user.form.lastname" : "Nazwisko", |
141 | "settings.user.form.firstname": "Imię", | 141 | "settings.user.form.newPassword" : "Nowe hasło", |
142 | "settings.user.form.lastname": "Nazwisko", | 142 | "sidebar.addNewService" : "!!!Add new service", |
143 | "settings.user.form.email": "Adres email", | 143 | "sidebar.mute" : "Disable audio", |
144 | "settings.user.form.currentPassword": "Obecne hasło", | 144 | "sidebar.settings" : "Ustawienia", |
145 | "settings.user.form.newPassword": "Nowe hasło", | 145 | "sidebar.unmute" : "Enable audio", |
146 | "settings.user.form.accountType.label": "Typ konta", | 146 | "signup.company.label" : "Firma", |
147 | "settings.user.form.accountType.individual": "Prywatne", | 147 | "signup.email.label" : "Adres email", |
148 | "settings.user.form.accountType.non-profit": "Non-Profit", | 148 | "signup.emailDuplicate" : "Użytkownik z takim adresem email już istnieje", |
149 | "settings.user.form.accountType.company": "Firma", | 149 | "signup.firstname.label" : "Imię", |
150 | "subscription.type.free": "za darmo", | 150 | "signup.headline" : "Zarejestruj się", |
151 | "subscription.type.month": "miesiąc", | 151 | "signup.lastname.label" : "Nazwisko", |
152 | "subscription.type.year": "rok", | 152 | "signup.legal.info" : "Poprzez utworzenie konta Franz akceptujesz", |
153 | "subscription.type.mining": "Wspieraj aplikację Franz mocą obliczeniową", | 153 | "signup.legal.privacy" : "Polityka prywatności", |
154 | "subscription.mining.headline": "Jak to działa?", | 154 | "signup.legal.terms" : "Warunki świadczenia usług", |
155 | "subscription.mining.experimental": "eksperymentalne", | 155 | "signup.link.login" : "Masz już konto, zalogować się?", |
156 | "subscription.mining.line1": "Włączając \"wspieraj mocą obliczeniową\", aplikacja Franz będzie używać około 20-50% mocy Twojego procesora aby kopać kryptowalutę Monero co jest równe około $5/rok.", | 156 | "signup.password.label" : "Hasło", |
157 | "subscription.mining.line2": "Będziemy dostosowywać zużycie procesora do stylu Twojej pracy tak aby nie zużywać baterii i nie spowalniać działania urządzenia.", | 157 | "signup.submit.label" : "Stwórz konto", |
158 | "subscription.mining.line3": "Tak długo jak kopanie będzie aktywne, będziesz mieć nielimitowany dostęp do wszystkich funkcji dostępnych w koncie Premium.", | 158 | "subscription.euTaxInfo" : "EU residents: local sales tax may apply", |
159 | "subscription.mining.moreInformation": "Dowiedz się więcej o tym planie.", | 159 | "subscription.features.ads" : "Brak reklam, na zawsze!", |
160 | "subscriptionPopup.buttonCancel": "Anuluj", | 160 | "subscription.features.comingSoon" : "wkrótce dostępne", |
161 | "subscriptionPopup.buttonDone": "Zrobione", | 161 | "subscription.features.customServices" : "Prywatne usługi dla Ciebie i Twojego zespołu", |
162 | "tabs.item.reload": "Przeładuj", | 162 | "subscription.features.encryptedSync" : "Szyfrowana synchronizacja sesji", |
163 | "tabs.item.edit": "Edytuj", | 163 | "subscription.features.onpremise" : "Dodawanie lokalnych\/hostowanych usług takich jak HipChat", |
164 | "tabs.item.disableNotifications": "Wyłącz powiadomienia", | 164 | "subscription.features.vpn" : "Wsprarcie Proxy i VPN", |
165 | "tabs.item.enableNotification": "Włącz powiadomienia", | 165 | "subscription.includedFeatures" : "Płatne konto Franz Premium obejmuje", |
166 | "tabs.item.disableService": "Wyłącz usługę", | 166 | "subscription.mining.experimental" : "eksperymentalne", |
167 | "tabs.item.deleteService": "Usuń usługę" | 167 | "subscription.mining.headline" : "Jak to działa?", |
168 | "subscription.mining.line1" : "Włączając \"wspieraj mocą obliczeniową\", aplikacja Franz będzie używać około 20-50% mocy Twojego procesora aby kopać kryptowalutę Monero co jest równe około $5\/rok.", | ||
169 | "subscription.mining.line2" : "Będziemy dostosowywać zużycie procesora do stylu Twojej pracy tak aby nie zużywać baterii i nie spowalniać działania urządzenia.", | ||
170 | "subscription.mining.line3" : "Tak długo jak kopanie będzie aktywne, będziesz mieć nielimitowany dostęp do wszystkich funkcji dostępnych w koncie Premium.", | ||
171 | "subscription.mining.moreInformation" : "Dowiedz się więcej o tym planie.", | ||
172 | "subscription.paymentSessionError" : "Nie można wczytać formularza płatności\"", | ||
173 | "subscription.submit.label" : "Chcę wspierać rozwój aplikacji Franz", | ||
174 | "subscription.type.free" : "za darmo", | ||
175 | "subscription.type.mining" : "Wspieraj aplikację Franz mocą obliczeniową", | ||
176 | "subscription.type.month" : "miesiąc", | ||
177 | "subscription.type.year" : "rok", | ||
178 | "subscriptionPopup.buttonCancel" : "Anuluj", | ||
179 | "subscriptionPopup.buttonDone" : "Zrobione", | ||
180 | "tabs.item.deleteService" : "Usuń usługę", | ||
181 | "tabs.item.disableAudio" : "Disable audio", | ||
182 | "tabs.item.disableNotifications" : "Wyłącz powiadomienia", | ||
183 | "tabs.item.disableService" : "Wyłącz usługę", | ||
184 | "tabs.item.edit" : "Edytuj", | ||
185 | "tabs.item.enableAudio" : "Enable audio", | ||
186 | "tabs.item.enableNotification" : "Włącz powiadomienia", | ||
187 | "tabs.item.enableService" : "Aktywuj usługę", | ||
188 | "tabs.item.reload" : "Przeładuj", | ||
189 | "welcome.loginButton" : "Zaloguj się na swoje konto", | ||
190 | "welcome.signupButton" : "Stwórz darmowe konto", | ||
191 | "welcome.slogan" : "Komunikator który działa" | ||
168 | } | 192 | } |
diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 8a139a4f5..5a20f387a 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json | |||
@@ -1,169 +1,192 @@ | |||
1 | { | 1 | { |
2 | "global.api.unhealthy": "Não foi possível conectar aos serviços online do Franz", | 2 | "global.api.unhealthy" : "Não foi possível conectar-se aos serviços do Franz", |
3 | "global.notConnectedToTheInternet": "Você não está conectado à internet.", | 3 | "global.notConnectedToTheInternet" : "Você não está conectado à internet.", |
4 | "welcome.signupButton": "Criar uma conta grátis", | 4 | "import.headline" : "Importe seus serviços do Franz 4", |
5 | "welcome.loginButton": "Fazer login na sua conta", | 5 | "import.notSupportedHeadline" : "Serviços ainda não suportados pelo Franz 5", |
6 | "welcome.slogan": "Mensagens que funcionam para você", | 6 | "import.skip.label" : "Quero adicionar serviços manualmente", |
7 | "login.headline": "Login", | 7 | "import.submit.label" : "Importar serviços", |
8 | "login.email.label": "Endereço de email", | 8 | "infobar.buttonChangelog" : "What is new?", |
9 | "login.password.label": "Senha", | 9 | "infobar.buttonInstallUpdate" : "Reiniciar e instalar atualizações", |
10 | "login.submit.label": "Login", | 10 | "infobar.buttonReloadServices" : "Recarregar serviços", |
11 | "login.invalidCredentials": "Email ou senha inválida", | 11 | "infobar.requiredRequestsFailed" : "Não foi possível carregar serviços e informações do usuário", |
12 | "login.tokenExpired": "Sua sessão expirou, faça o login novamente.", | 12 | "infobar.servicesUpdated" : "Seus serviços foram atualizados.", |
13 | "login.serverLogout": "Sua sessão expirou, faça o login novamente.", | 13 | "infobar.updateAvailable" : "Uma nova atualização do Franz está disponível.", |
14 | "login.link.signup": "Criar uma conta grátis", | 14 | "invite.email.label" : "Endereço de email ", |
15 | "login.link.password": "Trocar a senha", | 15 | "invite.headline.friends" : "Convide 3 dos seus amigos ou colegas", |
16 | "password.headline": "Trocar a senha", | 16 | "invite.name.label" : "Nome", |
17 | "password.email.label": "Endereço de email", | 17 | "invite.skip.label" : "Quero fazer isso depois", |
18 | "password.submit.label": "Enviar", | 18 | "invite.submit.label" : "Enviar convites", |
19 | "password.noUser": "Nenhum usuário com este email foi encontrado", | 19 | "login.email.label" : "Endereço de e-mail", |
20 | "password.successInfo": "Por favor, verifique o seu email", | 20 | "login.headline" : "Login", |
21 | "password.link.signup": "Criar uma conta grátis", | 21 | "login.invalidCredentials" : "Email ou senha inválida", |
22 | "password.link.login": "Fazer login na sua conta", | 22 | "login.link.password" : "Trocar a senha", |
23 | "signup.headline": "Cadastrar-se", | 23 | "login.link.signup" : "Criar uma conta gratuita", |
24 | "signup.firstname.label": "Nome", | 24 | "login.password.label" : "Senha", |
25 | "signup.lastname.label": "Sobrenome", | 25 | "login.serverLogout" : "Sua sessão expirou, faça o login novamente.\",", |
26 | "signup.email.label": "Endereço de email", | 26 | "login.submit.label" : "Login", |
27 | "signup.company.label": "Empresa", | 27 | "login.tokenExpired" : "Sua sessão expirou, faça o login novamente.", |
28 | "signup.password.label": "Senha", | 28 | "password.email.label" : "Endereço de email", |
29 | "signup.submit.label": "Criar conta", | 29 | "password.headline" : "Trocar a senha", |
30 | "signup.link.login": "Já tem uma conta. Fazer login?", | 30 | "password.link.login" : "Fazer login na sua conta", |
31 | "signup.emailDuplicate": "Um usuário com esta conta já existe", | 31 | "password.link.signup" : "Criar uma conta grátis", |
32 | "signup.legal.info": "Ao criar uma conta Franz você aceita os ", | 32 | "password.noUser" : "Nenhum usuário com este email foi encontrado", |
33 | "signup.legal.terms": "Termos de Serviço", | 33 | "password.submit.label" : "Enviar", |
34 | "signup.legal.privacy": "Declaração de Privacidade", | 34 | "password.successInfo" : "Por favor, verifique o seu email", |
35 | "pricing.headline": "Apoie o Franz", | 35 | "pricing.headline" : "Apoie o Franz", |
36 | "pricing.support.label": "Selecione seu plano de apoio", | 36 | "pricing.link.skipPayment" : "Eu não quero apoiar o desenvolvimento do Franz.", |
37 | "pricing.submit.label": "Eu quero apoiar o desenvolvimento do Franz", | 37 | "pricing.submit.label" : "Eu quero apoiar o desenvolvimento do Franz", |
38 | "pricing.link.skipPayment": "Eu não quero apoiar o desenvolvimento do Franz.", | 38 | "pricing.support.label" : "Selecione seu plano de apoio", |
39 | "import.headline": "Importe seus serviços do Franz 4", | 39 | "service.crashHandler.action" : "Reload {name}", |
40 | "import.notSupportedHeadline": "Serviços ainda não suportados no Franz 5", | 40 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", |
41 | "import.submit.label": "Importar serviços", | 41 | "service.crashHandler.headline" : "Oh no!", |
42 | "import.skip.label": "Eu quero adicionar serviços manualmente", | 42 | "service.crashHandler.text" : "{name} has caused an error.", |
43 | "invite.submit.label": "Enviar convites", | 43 | "service.disabledHandler.action" : "Enable {name}", |
44 | "invite.headline.friends": "Convide 3 dos seus amigos ou colegas", | 44 | "service.disabledHandler.headline" : "{name} is disabled", |
45 | "invite.name.label": "Nome", | 45 | "services.getStarted" : "Começar", |
46 | "invite.email.label": "Endereço de email", | 46 | "services.welcome" : "Bem-vindo ao Franz", |
47 | "invite.skip.label": "Eu quero fazer isso depois", | 47 | "settings.account.account.editButton" : "Editar conta", |
48 | "subscription.submit.label": "Eu quero apoiar o desenvolvimento do Franz", | 48 | "settings.account.accountType.basic" : "Conta Básica", |
49 | "subscription.paymentSessionError": "Não foi possível abrir o formulário de pagamento", | 49 | "settings.account.accountType.premium" : "Conta Apoiador Premium", |
50 | "subscription.includedFeatures": "Conta Paga Franz Premium inclui", | 50 | "settings.account.buttonSave" : "Atualizar perfil", |
51 | "subscription.features.onpremise": "Adicionar serviços locais/hospedados como HipChat", | 51 | "settings.account.headline" : "Conta", |
52 | "subscription.features.customServices": "Serviços privados para você e sua equipe", | 52 | "settings.account.headlineAccount" : "Informações de conta", |
53 | "subscription.features.encryptedSync": "Sincronização encriptada das sessões", | 53 | "settings.account.headlineInvoices" : "Recibos", |
54 | "subscription.features.vpn": "Suporte à proxy & VPN", | 54 | "settings.account.headlinePassword" : "Mudar senha", |
55 | "subscription.features.ads": "Sem anúncios, sempre!", | 55 | "settings.account.headlineProfile" : "Atualizar perfil", |
56 | "subscription.features.comingSoon": "em breve", | 56 | "settings.account.headlineSubscription" : "Sua assinatura", |
57 | "infobar.servicesUpdated": "Seus serviços foram atualizados.", | 57 | "settings.account.headlineUpgrade" : "Atualize a sua conta & apoie o Franz", |
58 | "infobar.updateAvailable": "Uma nova atualização do Franz está disponível.", | 58 | "settings.account.invoiceDownload" : "Download", |
59 | "infobar.buttonReloadServices": "Recarregar serviços", | 59 | "settings.account.manageSubscription.label" : "Gerencie a sua assinatura", |
60 | "infobar.buttonInstallUpdate": "Reiniciar & instalar atualização", | 60 | "settings.account.mining.active" : "Você está realizando {hashes} cálculos por segundo agora.", |
61 | "infobar.requiredRequestsFailed": "Não foi possível carregar serviços e informações do usuário", | 61 | "settings.account.mining.cancel" : "Cancelar mineração", |
62 | "sidebar.addNewService": "!!!Add new service", | 62 | "settings.account.mining.moreInformation" : "Obter mais informações", |
63 | "sidebar.settings": "Ajustes", | 63 | "settings.account.mining.thankyou" : "Obrigado por apoiar o Franz com poder de processamento.", |
64 | "services.welcome": "Bem-vindo ao Franz", | 64 | "settings.account.successInfo" : "Suas mudanças foram salvas", |
65 | "services.getStarted": "Começar", | 65 | "settings.account.tryReloadUserInfoRequest" : "Tente novamente", |
66 | "settings.account.headline": "Conta", | 66 | "settings.account.userInfoRequestFailed" : "Não foi possível carregar as informações do usuário", |
67 | "settings.account.headlineSubscription": "Sua assinatura", | 67 | "settings.app.buttonInstallUpdate" : "Reiniciar & instalar atualização", |
68 | "settings.account.headlineUpgrade": "Atualize a sua conta & apoie o Franz", | 68 | "settings.app.buttonSearchForUpdate" : "Verificar por atualizações", |
69 | "settings.account.headlineInvoices": "Recibos", | 69 | "settings.app.currentVersion" : "Versão atual:", |
70 | "settings.account.manageSubscription.label": "Gerencie a sua assinatura", | 70 | "settings.app.form.autoLaunchInBackground" : "Abrir no fundo", |
71 | "settings.account.accountType.basic": "Conta Básica", | 71 | "settings.app.form.autoLaunchOnStart" : "Abrir o Franz iniciar o sistema", |
72 | "settings.account.accountType.premium": "Conta Apoiador Premium", | 72 | "settings.app.form.beta" : "Incluir versões beta", |
73 | "settings.account.account.editButton": "Editar conta", | 73 | "settings.app.form.enableSpellchecking" : "Enable spell checking", |
74 | "settings.account.invoiceDownload": "Download", | 74 | "settings.app.form.enableSystemTray" : "Mostrar o Franz na bandeja do sistema", |
75 | "settings.account.userInfoRequestFailed": "Não foi possível carregar as informações do usuário", | 75 | "settings.app.form.language" : "Idioma", |
76 | "settings.account.tryReloadUserInfoRequest": "Tente novamente", | 76 | "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a bandeja do sistema", |
77 | "settings.account.headlineProfile": "Atualizar perfil", | 77 | "settings.app.form.runInBackground" : "Manter o Franz no fundo quando fechar a janela", |
78 | "settings.account.headlineAccount": "Informações de conta", | 78 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", |
79 | "settings.account.headlinePassword": "Mudar senha", | 79 | "settings.app.headline" : "Ajustes", |
80 | "settings.account.successInfo": "Suas mudanças foram salvas", | 80 | "settings.app.headlineAdvanced" : "Advanced", |
81 | "settings.account.buttonSave": "Atualizar perfil", | 81 | "settings.app.headlineAppearance" : "Appearance", |
82 | "settings.account.mining.thankyou": "Obrigado por apoiar o Franz com poder de processamento.", | 82 | "settings.app.headlineGeneral" : "Geral", |
83 | "settings.account.mining.active": "Você está realizando {hashes} cálculos por segundo agora.", | 83 | "settings.app.headlineLanguage" : "Idioma", |
84 | "settings.account.mining.moreInformation": "Obter mais informações", | 84 | "settings.app.headlineUpdates" : "Atualizações", |
85 | "settings.account.mining.cancel": "Cancelar mineração", | 85 | "settings.app.restartRequired" : "Changes require restart", |
86 | "settings.navigation.availableServices": "Serviços disponíveis", | 86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", |
87 | "settings.navigation.yourServices": "Seus serviços", | 87 | "settings.app.updateStatusAvailable" : "Atualização disponível, fazendo download...", |
88 | "settings.navigation.account": "Conta", | 88 | "settings.app.updateStatusSearching" : "Em busca de atualização", |
89 | "settings.navigation.settings": "Ajustes", | 89 | "settings.app.updateStatusUpToDate" : "Você está usando a última versão do Franz", |
90 | "settings.navigation.logout": "Logout", | 90 | "settings.navigation.account" : "Conta", |
91 | "settings.recipes.headline": "Serviços disponíveis", | 91 | "settings.navigation.availableServices" : "Serviços disponíveis", |
92 | "settings.recipes.mostPopular": "Mais populares", | 92 | "settings.navigation.logout" : "Logout", |
93 | "settings.recipes.all": "Todos serviços", | 93 | "settings.navigation.settings" : "Ajustes", |
94 | "settings.recipes.dev": "Desenvolvimento", | 94 | "settings.navigation.yourServices" : "Seus serviços", |
95 | "settings.recipes.nothingFound": "Desculpe, mas nenhum serviço corresponde a sua pesquisa.", | 95 | "settings.recipes.all" : "Todos serviços", |
96 | "settings.recipes.servicesSuccessfulAddedInfo": "Serviço adicionado com sucesso", | 96 | "settings.recipes.dev" : "Desenvolvimento ", |
97 | "settings.service.form.saveButton": "Salvar serviço", | 97 | "settings.recipes.headline" : "Serviços disponíveis", |
98 | "settings.service.form.deleteButton": "Apagar serviço", | 98 | "settings.recipes.missingService" : "Missing a service?", |
99 | "settings.service.form.availableServices": "Serviços disponíveis", | 99 | "settings.recipes.mostPopular" : "Mais populares", |
100 | "settings.service.form.yourServices": "Seus serviços", | 100 | "settings.recipes.nothingFound" : "Desculpe, mas nenhum serviço corresponde a sua pesquisa.", |
101 | "settings.service.form.addServiceHeadline": "Adicionar {name}", | 101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Serviço adicionado com sucesso", |
102 | "settings.service.form.editServiceHeadline": "Editar {name}", | 102 | "settings.service.error.goBack" : "Voltar aos serviços", |
103 | "settings.service.form.tabHosted": "Hospedado", | 103 | "settings.service.error.headline" : "Erro", |
104 | "settings.service.form.tabOnPremise": "Auto-hospedado ⭐️", | 104 | "settings.service.error.message" : "Não foi possível carregar a receita de serviço.", |
105 | "settings.service.form.customUrlValidationError": "Não foi possível validar o servidor personalizado {name}.", | 105 | "settings.service.form.addServiceHeadline" : "Adicionar {name}", |
106 | "settings.service.form.customUrlPremiumInfo": "Para adicionar serviços auto-hospedados, você precisa de uma conta Franz Apoiador Premium.", | 106 | "settings.service.form.availableServices" : "Serviços disponíveis", |
107 | "settings.service.form.customUrlUpgradeAccount": "Atualize a sua conta", | 107 | "settings.service.form.customUrl" : "Serviços personalizado", |
108 | "settings.service.form.indirectMessageInfo": "Você será notificado por todas as mensagens em um canal, não apenas @usuário, @channel, @here, ...", | 108 | "settings.service.form.customUrlPremiumInfo" : "Para adicionar serviços auto-hospedados, você precisa de uma conta Franz Apoiador Premium.", |
109 | "settings.service.error.headline": "Erro", | 109 | "settings.service.form.customUrlUpgradeAccount" : "Atualize a sua conta", |
110 | "settings.service.error.goBack": "Voltar aos serviços", | 110 | "settings.service.form.customUrlValidationError" : "Não foi possível validar o servidor personalizado {name}.", |
111 | "settings.service.error.message": "Não foi possível carregar a receita de serviço.", | 111 | "settings.service.form.deleteButton" : "Apagar serviço", |
112 | "settings.services.tooltip.isDisabled": "Serviço desativado", | 112 | "settings.service.form.editServiceHeadline" : "Editar {name}", |
113 | "settings.services.tooltip.notificationsDisabled": "Notificações desativadas", | 113 | "settings.service.form.enableAudio" : "Enable audio", |
114 | "settings.services.headline": "Seus serviços", | 114 | "settings.service.form.enableNotification" : "Ativar notificações", |
115 | "settings.services.noServicesAdded": "Você ainda não adicionou nenhum serviço.", | 115 | "settings.service.form.enableService" : "Ativar serviço", |
116 | "settings.services.discoverServices": "Descobrir serviços", | 116 | "settings.service.form.indirectMessageInfo" : "Você será notificado por todas as mensagens em um canal, não apenas @usuário, @channel, @here, ...", |
117 | "settings.services.updatedInfo": "Suas mudanças foram salvas", | 117 | "settings.service.form.indirectMessages" : "Mostrar avisos para todas as mensagens", |
118 | "settings.services.deletedInfo": "Serviço apagado", | 118 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", |
119 | "settings.app.headline": "Ajustes", | 119 | "settings.service.form.name" : "Nome", |
120 | "settings.app.headlineGeneral": "Geral", | 120 | "settings.service.form.saveButton" : "Salvar serviço", |
121 | "settings.app.headlineLanguage": "Idioma", | 121 | "settings.service.form.tabHosted" : "Hospedado", |
122 | "settings.app.headlineUpdates": "Atualizações", | 122 | "settings.service.form.tabOnPremise" : "Auto-hospedado ⭐️", |
123 | "settings.app.buttonSearchForUpdate": "Verificar por atualizações", | 123 | "settings.service.form.team" : "Equipe", |
124 | "settings.app.buttonInstallUpdate": "Reiniciar & instalar atualização", | 124 | "settings.service.form.yourServices" : "Seus serviços", |
125 | "settings.app.updateStatusSearching": "Em busca de atualização", | 125 | "settings.services.deletedInfo" : "Serviço apagado", |
126 | "settings.app.updateStatusAvailable": "Atualização disponível, fazendo download...", | 126 | "settings.services.discoverServices" : "Descobrir serviços", |
127 | "settings.app.updateStatusUpToDate": "Você está usando a última versão do Franz", | 127 | "settings.services.headline" : "Seus serviços", |
128 | "settings.app.form.autoLaunchOnStart": "Abrir o Franz iniciar o sistema", | 128 | "settings.services.noServicesAdded" : "Você ainda não adicionou nenhum serviço.", |
129 | "settings.app.form.autoLaunchInBackground": "Abrir no fundo", | 129 | "settings.services.tooltip.isDisabled" : "Serviço desativado", |
130 | "settings.app.form.enableSystemTray": "Mostrar o Franz na bandeja do sistema", | 130 | "settings.services.tooltip.isMuted" : "All sounds are muted", |
131 | "settings.app.form.minimizeToSystemTray": "Minimizar o Franz para a bandeja do sistema", | 131 | "settings.services.tooltip.notificationsDisabled" : "Notificações desativadas", |
132 | "settings.app.form.runInBackground": "Manter o Franz no fundo quando fechar a janela", | 132 | "settings.services.updatedInfo" : "Suas mudanças foram salvas", |
133 | "settings.app.form.language": "Idioma", | 133 | "settings.user.form.accountType.company" : "Empresa", |
134 | "settings.app.form.beta": "Incluir versões beta", | 134 | "settings.user.form.accountType.individual" : "Individual", |
135 | "settings.app.currentVersion": "Versão atual:", | 135 | "settings.user.form.accountType.label" : "Tipo de conta", |
136 | "settings.service.form.name": "Nome", | 136 | "settings.user.form.accountType.non-profit" : "Sem fins lucrativos", |
137 | "settings.service.form.enableService": "Ativar serviço", | 137 | "settings.user.form.currentPassword" : "Senha atual", |
138 | "settings.service.form.enableNotification": "Ativar notificações", | 138 | "settings.user.form.email" : "Email", |
139 | "settings.service.form.team": "Equipe", | 139 | "settings.user.form.firstname" : "Nome", |
140 | "settings.service.form.customUrl": "Serviços personalizado", | 140 | "settings.user.form.lastname" : "Sobrenome", |
141 | "settings.service.form.indirectMessages": "Mostrar avisos para todas as mensagens", | 141 | "settings.user.form.newPassword" : "Nova senha", |
142 | "settings.user.form.firstname": "Nome", | 142 | "sidebar.addNewService" : "Adicionar novo serviço", |
143 | "settings.user.form.lastname": "Sobrenome", | 143 | "sidebar.mute" : "Disable audio", |
144 | "settings.user.form.email": "Email", | 144 | "sidebar.settings" : "Ajustes", |
145 | "settings.user.form.currentPassword": "Senha atual", | 145 | "sidebar.unmute" : "Enable audio", |
146 | "settings.user.form.newPassword": "Nova senha", | 146 | "signup.company.label" : "Empresa", |
147 | "settings.user.form.accountType.label": "Tipo de conta", | 147 | "signup.email.label" : "Endereço de email", |
148 | "settings.user.form.accountType.individual": "Individual", | 148 | "signup.emailDuplicate" : "Um usuário com esta conta já existe", |
149 | "settings.user.form.accountType.non-profit": "Sem fins lucrativos", | 149 | "signup.firstname.label" : "Nome", |
150 | "settings.user.form.accountType.company": "Empresa", | 150 | "signup.headline" : "Cadastrar-se", |
151 | "subscription.type.free": "grátis", | 151 | "signup.lastname.label" : "Sobrenome", |
152 | "subscription.type.month": "mês", | 152 | "signup.legal.info" : "Ao criar uma conta Franz você aceita os ", |
153 | "subscription.type.year": "ano", | 153 | "signup.legal.privacy" : "Declaração de Privacidade", |
154 | "subscription.type.mining": "Apoie o Franz com poder de processamento", | 154 | "signup.legal.terms" : "Termos de Serviço", |
155 | "subscription.mining.headline": "Como isso funciona?", | 155 | "signup.link.login" : "Já tem uma conta. Fazer login?", |
156 | "subscription.mining.experimental": "experimental", | 156 | "signup.password.label" : "Senha", |
157 | "subscription.mining.line1": "Habilitando o \"Apoio com poder de processamento\", o Franz vai usar cerca de 20-50% da sua CPU para minerar a criptomoeda Monero que equivale a aproximadamente $ 5/ano.", | 157 | "signup.submit.label" : "Criar conta", |
158 | "subscription.mining.line2": "Nós iremos adaptar o uso da CPU baseado nos seus hábitos para não drenar sua bateria nem deixar o seu computador lento.", | 158 | "subscription.euTaxInfo" : "EU residents: local sales tax may apply", |
159 | "subscription.mining.line3": "Enquanto o minerador estiver ativo, você terá acesso ilimitado à todas funções do Franz Apoiador Premium.", | 159 | "subscription.features.ads" : "Sem anúncios, sempre!", |
160 | "subscription.mining.moreInformation": "Obter mais informações sobre este plano.", | 160 | "subscription.features.comingSoon" : "em breve", |
161 | "subscriptionPopup.buttonCancel": "Cancelar", | 161 | "subscription.features.customServices" : "Serviços privados para você e sua equipe", |
162 | "subscriptionPopup.buttonDone": "Feito", | 162 | "subscription.features.encryptedSync" : "Sincronização encriptada das sessões", |
163 | "tabs.item.reload": "Recarregar", | 163 | "subscription.features.onpremise" : "Adicionar serviços locais\/hospedados como HipChat", |
164 | "tabs.item.edit": "Editar", | 164 | "subscription.features.vpn" : "Suporte à proxy & VPN", |
165 | "tabs.item.disableNotifications": "Desativar notificações", | 165 | "subscription.includedFeatures" : "Conta Paga Franz Premium inclui", |
166 | "tabs.item.enableNotification": "Ativar notificações", | 166 | "subscription.mining.experimental" : "experimental", |
167 | "tabs.item.disableService": "Desativar serviço", | 167 | "subscription.mining.headline" : "Como isso funciona?", |
168 | "tabs.item.deleteService": "Apagar serviço" | 168 | "subscription.mining.line1" : "Habilitando o \"Apoio com poder de processamento\", o Franz vai usar cerca de 20-50% da sua CPU para minerar a criptomoeda Monero que equivale a aproximadamente $ 5\/ano.", |
169 | "subscription.mining.line2" : "Nós iremos adaptar o uso da CPU baseado nos seus hábitos para não drenar sua bateria nem deixar o seu computador lento.", | ||
170 | "subscription.mining.line3" : "Enquanto o minerador estiver ativo, você terá acesso ilimitado à todas funções do Franz Apoiador Premium.", | ||
171 | "subscription.mining.moreInformation" : "Obter mais informações sobre este plano.", | ||
172 | "subscription.paymentSessionError" : "Não foi possível abrir o formulário de pagamento", | ||
173 | "subscription.submit.label" : "Eu quero apoiar o desenvolvimento do Franz", | ||
174 | "subscription.type.free" : "grátis", | ||
175 | "subscription.type.mining" : "Apoie o Franz com poder de processamento", | ||
176 | "subscription.type.month" : "mês", | ||
177 | "subscription.type.year" : "ano", | ||
178 | "subscriptionPopup.buttonCancel" : "Cancelar", | ||
179 | "subscriptionPopup.buttonDone" : "Feito", | ||
180 | "tabs.item.deleteService" : "Apagar serviço", | ||
181 | "tabs.item.disableAudio" : "Disable audio", | ||
182 | "tabs.item.disableNotifications" : "Desativar notificações", | ||
183 | "tabs.item.disableService" : "Desativar serviço", | ||
184 | "tabs.item.edit" : "Editar", | ||
185 | "tabs.item.enableAudio" : "Enable audio", | ||
186 | "tabs.item.enableNotification" : "Ativar notificações", | ||
187 | "tabs.item.enableService" : "Ativar serviço", | ||
188 | "tabs.item.reload" : "Recarregar", | ||
189 | "welcome.loginButton" : "Fazer login na sua conta", | ||
190 | "welcome.signupButton" : "Criar uma conta grátis", | ||
191 | "welcome.slogan" : "Mensagens que funcionam para você" | ||
169 | } | 192 | } |
diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json new file mode 100644 index 000000000..dc776c1ad --- /dev/null +++ b/src/i18n/locales/pt.json | |||
@@ -0,0 +1,192 @@ | |||
1 | { | ||
2 | "global.api.unhealthy" : "Não foi possível conectar aos serviços do Franz", | ||
3 | "global.notConnectedToTheInternet" : "Não estás conectado à internet.", | ||
4 | "import.headline" : "Importar os teus 4 serviços Franz", | ||
5 | "import.notSupportedHeadline" : "Os serviços não são suportados no Franz 5", | ||
6 | "import.skip.label" : "Quero adicionar os serviços manualmente", | ||
7 | "import.submit.label" : "Importar serviços", | ||
8 | "infobar.buttonChangelog" : "What is new?", | ||
9 | "infobar.buttonInstallUpdate" : "Reiniciar & Instalar Atualizações", | ||
10 | "infobar.buttonReloadServices" : "Recarregar serviços", | ||
11 | "infobar.requiredRequestsFailed" : "Não foi possivel carregar os serviços e informações do utilizador", | ||
12 | "infobar.servicesUpdated" : "Os teus serviços foram atualizados", | ||
13 | "infobar.updateAvailable" : "Uma atualização está disponível", | ||
14 | "invite.email.label" : "Endereço de e-mail", | ||
15 | "invite.headline.friends" : "Manda 3 convites aos teus amigos ou colegas", | ||
16 | "invite.name.label" : "Nome", | ||
17 | "invite.skip.label" : "Quero adicionar mais tarde", | ||
18 | "invite.submit.label" : "Mandar convites", | ||
19 | "login.email.label" : "Endereço de e-mail", | ||
20 | "login.headline" : "Registar", | ||
21 | "login.invalidCredentials" : " O email ou a password estão incorretos", | ||
22 | "login.link.password" : "Repor a minha password", | ||
23 | "login.link.signup" : "Criar uma conta gratuita", | ||
24 | "login.password.label" : "Password", | ||
25 | "login.serverLogout" : "A tua sessão expirou, por favor, volta a fazer login.", | ||
26 | "login.submit.label" : "Iniciar Sessão", | ||
27 | "login.tokenExpired" : "A tua sessão expirou, por favor, volta a fazer login.", | ||
28 | "password.email.label" : "Endereço de e-mail", | ||
29 | "password.headline" : "Repor a minha password", | ||
30 | "password.link.login" : "Fazer login", | ||
31 | "password.link.signup" : "Criar uma conta gratuita", | ||
32 | "password.noUser" : "Não existe nenhuma conta associada a esse email", | ||
33 | "password.submit.label" : "Submeter", | ||
34 | "password.successInfo" : "Por favor, revê o teu email", | ||
35 | "pricing.headline" : "Apoia o Franz", | ||
36 | "pricing.link.skipPayment" : "Não quero ajudar no desenvolvimento do Franz", | ||
37 | "pricing.submit.label" : "Quero ajudar o desenvolvimento do Franz", | ||
38 | "pricing.support.label" : "Seleciona o teu plano", | ||
39 | "service.crashHandler.action" : "Reload {name}", | ||
40 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", | ||
41 | "service.crashHandler.headline" : "Oh no!", | ||
42 | "service.crashHandler.text" : "{name} has caused an error.", | ||
43 | "service.disabledHandler.action" : "Enable {name}", | ||
44 | "service.disabledHandler.headline" : "{name} is disabled", | ||
45 | "services.getStarted" : "Vamos começar", | ||
46 | "services.welcome" : "Bem-vindo ao Franz", | ||
47 | "settings.account.account.editButton" : "Editar conta", | ||
48 | "settings.account.accountType.basic" : "Conta básica", | ||
49 | "settings.account.accountType.premium" : "Conta Premium, a ajudar o Franz", | ||
50 | "settings.account.buttonSave" : "Atualizar o perfil", | ||
51 | "settings.account.headline" : "Conta", | ||
52 | "settings.account.headlineAccount" : "Informação da conta", | ||
53 | "settings.account.headlineInvoices" : "Faturas", | ||
54 | "settings.account.headlinePassword" : "Mudar password", | ||
55 | "settings.account.headlineProfile" : "Actualizar o perfil", | ||
56 | "settings.account.headlineSubscription" : "A tua subscrição", | ||
57 | "settings.account.headlineUpgrade" : "Atualiza a tua conta e ajuda o Franz", | ||
58 | "settings.account.invoiceDownload" : "Descarregar", | ||
59 | "settings.account.manageSubscription.label" : "Gerir as minhas subscrições", | ||
60 | "settings.account.mining.active" : "Agora, estás a executar {hashes} hashes por segundo", | ||
61 | "settings.account.mining.cancel" : "Cancelar mineração", | ||
62 | "settings.account.mining.moreInformation" : "Mais informação", | ||
63 | "settings.account.mining.thankyou" : "Obrigado por ajudares o Franz com o teu poder de processamento", | ||
64 | "settings.account.successInfo" : "As tuas mudanças foram feitas com sucesso", | ||
65 | "settings.account.tryReloadUserInfoRequest" : "Tentar novamente", | ||
66 | "settings.account.userInfoRequestFailed" : "Não é possível carregar a informação do utilizador.", | ||
67 | "settings.app.buttonInstallUpdate" : "Reiniciar & Instalar Atualizações", | ||
68 | "settings.app.buttonSearchForUpdate" : "Procurar por atualizações", | ||
69 | "settings.app.currentVersion" : "Versão atual", | ||
70 | "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano", | ||
71 | "settings.app.form.autoLaunchOnStart" : "Inicar o Franz quando inciar o computador", | ||
72 | "settings.app.form.beta" : "Incluir versões instáveis (beta)", | ||
73 | "settings.app.form.enableSpellchecking" : "Enable spell checking", | ||
74 | "settings.app.form.enableSystemTray" : "Mostrar o Franz na bandeja do sistema", | ||
75 | "settings.app.form.language" : "Idioma:", | ||
76 | "settings.app.form.minimizeToSystemTray" : "Minimizar o Franz para a bandeja do sistema", | ||
77 | "settings.app.form.runInBackground" : "Manter o Franz em segundo plano ao fechar a janela", | ||
78 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", | ||
79 | "settings.app.headline" : "Definições", | ||
80 | "settings.app.headlineAdvanced" : "Advanced", | ||
81 | "settings.app.headlineAppearance" : "Appearance", | ||
82 | "settings.app.headlineGeneral" : "Geral", | ||
83 | "settings.app.headlineLanguage" : "Idioma:", | ||
84 | "settings.app.headlineUpdates" : "Atualizações", | ||
85 | "settings.app.restartRequired" : "Changes require restart", | ||
86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
87 | "settings.app.updateStatusAvailable" : "Atualização disponivel, a descarregar...", | ||
88 | "settings.app.updateStatusSearching" : "Está a procurar atualizações", | ||
89 | "settings.app.updateStatusUpToDate" : "Estás a usar a última versão do Franz", | ||
90 | "settings.navigation.account" : "Conta", | ||
91 | "settings.navigation.availableServices" : "Serviços disponíveis", | ||
92 | "settings.navigation.logout" : "Terminar Sessão", | ||
93 | "settings.navigation.settings" : "Definições", | ||
94 | "settings.navigation.yourServices" : "Os teus serviços", | ||
95 | "settings.recipes.all" : "Todos os serviços", | ||
96 | "settings.recipes.dev" : "Desenvolvimento", | ||
97 | "settings.recipes.headline" : "Serviços disponíveis", | ||
98 | "settings.recipes.missingService" : "Missing a service?", | ||
99 | "settings.recipes.mostPopular" : "Os mais populares", | ||
100 | "settings.recipes.nothingFound" : "Desculpa, mas não existe nenhum serviço com este termo.", | ||
101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Serviço adicionado", | ||
102 | "settings.service.error.goBack" : "Voltar aos serviços", | ||
103 | "settings.service.error.headline" : "Erro", | ||
104 | "settings.service.error.message" : "Não foi possível carregar a receita do serviço.", | ||
105 | "settings.service.form.addServiceHeadline" : "Adicionar {name}", | ||
106 | "settings.service.form.availableServices" : "Serviços disponíveis", | ||
107 | "settings.service.form.customUrl" : "Servidor personalizado", | ||
108 | "settings.service.form.customUrlPremiumInfo" : "Para adicionar serviços de hospedagem própria, precisas de uma Conta Premium Franz.", | ||
109 | "settings.service.form.customUrlUpgradeAccount" : "Atualizar a conta", | ||
110 | "settings.service.form.customUrlValidationError" : "Não foi possível validar o servidor {nome}.", | ||
111 | "settings.service.form.deleteButton" : "Apagar serviço", | ||
112 | "settings.service.form.editServiceHeadline" : "Editar {name}", | ||
113 | "settings.service.form.enableAudio" : "Enable audio", | ||
114 | "settings.service.form.enableNotification" : "Ativar notificações", | ||
115 | "settings.service.form.enableService" : "Ativar serviço", | ||
116 | "settings.service.form.indirectMessageInfo" : "Serás notificado sobre todas as novas mensagens de um canal, não só @username, @channel, @here, ...", | ||
117 | "settings.service.form.indirectMessages" : "Mostrar o emblema da mensagem para todas as novas mensagens", | ||
118 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", | ||
119 | "settings.service.form.name" : "Nome", | ||
120 | "settings.service.form.saveButton" : "Guardar serviço", | ||
121 | "settings.service.form.tabHosted" : "Hospedado", | ||
122 | "settings.service.form.tabOnPremise" : "Hospedado por si próprio ⭐️", | ||
123 | "settings.service.form.team" : "Equipa", | ||
124 | "settings.service.form.yourServices" : "Os teus serviços", | ||
125 | "settings.services.deletedInfo" : "O serviço foi apagado", | ||
126 | "settings.services.discoverServices" : "Descobrir serviços", | ||
127 | "settings.services.headline" : "Os teus serviços", | ||
128 | "settings.services.noServicesAdded" : "Ainda não adicionaste nenhum serviço.", | ||
129 | "settings.services.tooltip.isDisabled" : "O serviço está desativado", | ||
130 | "settings.services.tooltip.isMuted" : "All sounds are muted", | ||
131 | "settings.services.tooltip.notificationsDisabled" : "As notificações estão desabilitadas", | ||
132 | "settings.services.updatedInfo" : "As alterações foram guardadas", | ||
133 | "settings.user.form.accountType.company" : "Empresa", | ||
134 | "settings.user.form.accountType.individual" : "Individual", | ||
135 | "settings.user.form.accountType.label" : "Tipo de conta", | ||
136 | "settings.user.form.accountType.non-profit" : "Sem fins lucrativos", | ||
137 | "settings.user.form.currentPassword" : "Password atual", | ||
138 | "settings.user.form.email" : "Email", | ||
139 | "settings.user.form.firstname" : "First Name", | ||
140 | "settings.user.form.lastname" : "Last Name", | ||
141 | "settings.user.form.newPassword" : "Nova password", | ||
142 | "sidebar.addNewService" : "Adicionar um novo serviço", | ||
143 | "sidebar.mute" : "Disable audio", | ||
144 | "sidebar.settings" : "Definições", | ||
145 | "sidebar.unmute" : "Enable audio", | ||
146 | "signup.company.label" : "Empresa", | ||
147 | "signup.email.label" : "Endereço de e-mail", | ||
148 | "signup.emailDuplicate" : "Uma conta já tem esse email associado", | ||
149 | "signup.firstname.label" : "First Name", | ||
150 | "signup.headline" : "Iniciar Sessão", | ||
151 | "signup.lastname.label" : "Last Name", | ||
152 | "signup.legal.info" : "Ao criar uma conta Franz, aceitas", | ||
153 | "signup.legal.privacy" : "Declaração de privacidade", | ||
154 | "signup.legal.terms" : "Termos de Serviço", | ||
155 | "signup.link.login" : "Já tens uma conta?", | ||
156 | "signup.password.label" : "Password", | ||
157 | "signup.submit.label" : "Criar uma Conta", | ||
158 | "subscription.euTaxInfo" : "EU residents: local sales tax may apply", | ||
159 | "subscription.features.ads" : "Sem anúncios, para sempre!", | ||
160 | "subscription.features.comingSoon" : "Em breve!", | ||
161 | "subscription.features.customServices" : "Serviços privados para ti e para os teus amigos\/colegas", | ||
162 | "subscription.features.encryptedSync" : "Sincronização encriptada de serviços", | ||
163 | "subscription.features.onpremise" : "Adicionar serviços 'on-premise'\/hosted como o HipChat", | ||
164 | "subscription.features.vpn" : "Suporte para proxy\/VPN", | ||
165 | "subscription.includedFeatures" : "Ao pagares para o Franz Premium, tens acesso a", | ||
166 | "subscription.mining.experimental" : "experimental", | ||
167 | "subscription.mining.headline" : "Como é que isto funciona?", | ||
168 | "subscription.mining.line1" : "Ao habilitar \\\"Ajudar com poder de processamento\\\", o Franz vai usar cerca de 20-50% do teu CPU para minerar Monero que equivale aproximadamente a $5\/ano.", | ||
169 | "subscription.mining.line2" : "Vamos adaptar o uso da CPU com base no teu comportamento de trabalho para não drenar a bateria ou diminuir a velocidade da máquina.", | ||
170 | "subscription.mining.line3" : "Enquanto a mineração estiver ativa, terás acesso ilimitado a todas as Características de Suporte Premium da Franz.", | ||
171 | "subscription.mining.moreInformation" : "Obter informação sobre este plano.", | ||
172 | "subscription.paymentSessionError" : "Erro no serviço de pagamento", | ||
173 | "subscription.submit.label" : "Quero ajudar o desenvolvimento do Franz", | ||
174 | "subscription.type.free" : "Gratuito", | ||
175 | "subscription.type.mining" : "Ajudar o Franz com poder de processamento", | ||
176 | "subscription.type.month" : "mês", | ||
177 | "subscription.type.year" : "ano", | ||
178 | "subscriptionPopup.buttonCancel" : "Cancelar", | ||
179 | "subscriptionPopup.buttonDone" : "Concluído", | ||
180 | "tabs.item.deleteService" : "Apagar serviço", | ||
181 | "tabs.item.disableAudio" : "Disable audio", | ||
182 | "tabs.item.disableNotifications" : "Desativar notificações", | ||
183 | "tabs.item.disableService" : "Desativar serviço", | ||
184 | "tabs.item.edit" : "Editar", | ||
185 | "tabs.item.enableAudio" : "Enable audio", | ||
186 | "tabs.item.enableNotification" : "Ativar notificações", | ||
187 | "tabs.item.enableService" : "Ativar serviço", | ||
188 | "tabs.item.reload" : "Recarregar", | ||
189 | "welcome.loginButton" : "Fazer login", | ||
190 | "welcome.signupButton" : "Criar uma conta gratuita", | ||
191 | "welcome.slogan" : "Messaging that works for you" | ||
192 | } | ||
diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 97b746097..62a8a0f84 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json | |||
@@ -1,169 +1,192 @@ | |||
1 | { | 1 | { |
2 | "global.api.unhealthy": "Невозможно подключиться к сервисам Franz", | 2 | "global.api.unhealthy" : "Невозможно подключиться к сервисам Franz", |
3 | "global.notConnectedToTheInternet": "Нет Интернет-соединения", | 3 | "global.notConnectedToTheInternet" : "Нет Интернет-соединения", |
4 | "welcome.signupButton": "Создать аккаунт", | 4 | "import.headline" : "Импортировать сервисы Franz 4", |
5 | "welcome.loginButton": "Вход", | 5 | "import.notSupportedHeadline" : "Сервисы еще не поддержаны в Franz 5", |
6 | "welcome.slogan": "Общение, которое просто работает", | 6 | "import.skip.label" : "Я хочу добавить сервисы вручную", |
7 | "login.headline": "Регистрация", | 7 | "import.submit.label" : "Импортировать сервисы", |
8 | "login.email.label": "Email адрес", | 8 | "infobar.buttonChangelog" : "What is new?", |
9 | "login.password.label": "Пароль", | 9 | "infobar.buttonInstallUpdate" : "Перезапустить и обновить", |
10 | "login.submit.label": "Регистрация", | 10 | "infobar.buttonReloadServices" : "Перезагрузить сервисы", |
11 | "login.invalidCredentials": "Неправильный email или пароль", | 11 | "infobar.requiredRequestsFailed" : "Невозможно загрузить сервисы и информацию пользователя", |
12 | "login.tokenExpired": "Сессия устарела, пожалуйста, войдите снова.", | 12 | "infobar.servicesUpdated" : "Ваши сервисы были обновлены.", |
13 | "login.serverLogout": "Сессия устарела, пожалуйста, войдите снова.", | 13 | "infobar.updateAvailable" : "Доступно обновление Franz.", |
14 | "login.link.signup": "Создать бесплатный аккаунт", | 14 | "invite.email.label" : "Email адрес", |
15 | "login.link.password": "Восстановить пароль", | 15 | "invite.headline.friends" : "Пригласите 3х друзей или коллег", |
16 | "password.headline": "Восстановление пароля", | 16 | "invite.name.label" : "Имя", |
17 | "password.email.label": "Email адрес", | 17 | "invite.skip.label" : "Я сделаю это позже", |
18 | "password.submit.label": "Отправить", | 18 | "invite.submit.label" : "Выслать приглашения", |
19 | "password.noUser": "Не найдено пользователя с таким email", | 19 | "login.email.label" : "Email адрес", |
20 | "password.successInfo": "Проверьте Ваш email", | 20 | "login.headline" : "Регистрация", |
21 | "password.link.signup": "Создать аккаунт", | 21 | "login.invalidCredentials" : "Неправильный email или пароль", |
22 | "password.link.login": "Вход", | 22 | "login.link.password" : "Восстановить пароль", |
23 | "signup.headline": "Регистрация", | 23 | "login.link.signup" : "Создать бесплатный аккаунт", |
24 | "signup.firstname.label": "Имя", | 24 | "login.password.label" : "Пароль", |
25 | "signup.lastname.label": "Фамилия", | 25 | "login.serverLogout" : "Сессия устарела, пожалуйста, войдите снова.", |
26 | "signup.email.label": "Email адрес", | 26 | "login.submit.label" : "Регистрация", |
27 | "signup.company.label": "Организация", | 27 | "login.tokenExpired" : "Сессия устарела, пожалуйста, войдите снова.", |
28 | "signup.password.label": "Пароль", | 28 | "password.email.label" : "Email адрес", |
29 | "signup.submit.label": "Создать аккаунт", | 29 | "password.headline" : "Восстановление пароля", |
30 | "signup.link.login": "Уже есть аккаунт, войти?", | 30 | "password.link.login" : "Вход", |
31 | "signup.emailDuplicate": "Пользователь с указанным email уже существует", | 31 | "password.link.signup" : "Создать аккаунт", |
32 | "signup.legal.info": "Создавая аккаунт Franz, Вы принимаете", | 32 | "password.noUser" : "Не найдено пользователя с таким email", |
33 | "signup.legal.terms": "Условия обслуживания", | 33 | "password.submit.label" : "Отправить", |
34 | "signup.legal.privacy": "Политика конфиденциальности", | 34 | "password.successInfo" : "Проверьте Ваш email", |
35 | "pricing.headline": "Поддержать Franz", | 35 | "pricing.headline" : "Поддержать Franz", |
36 | "pricing.support.label": "Выберите план поддержки", | 36 | "pricing.link.skipPayment" : "Я не хочу поддерживать разработку Franz.", |
37 | "pricing.submit.label": "Я хочу поддержать разработку Franz", | 37 | "pricing.submit.label" : "Я хочу поддержать разработку Franz", |
38 | "pricing.link.skipPayment": "Я не хочу поддерживать разработку Franz.", | 38 | "pricing.support.label" : "Выберите план поддержки", |
39 | "import.headline": "Импортировать сервисы Franz 4", | 39 | "service.crashHandler.action" : "Reload {name}", |
40 | "import.notSupportedHeadline": "Сервисы еще не поддержаны в Franz 5", | 40 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", |
41 | "import.submit.label": "Импортировать сервисы", | 41 | "service.crashHandler.headline" : "Oh no!", |
42 | "import.skip.label": "Я хочу добавить сервисы вручную", | 42 | "service.crashHandler.text" : "{name} has caused an error.", |
43 | "invite.submit.label": "Выслать приглашения", | 43 | "service.disabledHandler.action" : "Enable {name}", |
44 | "invite.headline.friends": "Пригласите 3х друзей или коллег", | 44 | "service.disabledHandler.headline" : "{name} is disabled", |
45 | "invite.name.label": "Имя", | 45 | "services.getStarted" : "Начать работу", |
46 | "invite.email.label": "Email адрес", | 46 | "services.welcome" : "Добро пожаловать во Franz", |
47 | "invite.skip.label": "Я сделаю это позже", | 47 | "settings.account.account.editButton" : "Редактировать аккаунт", |
48 | "subscription.submit.label": "Я хочу поддержать разработку Franz", | 48 | "settings.account.accountType.basic" : "Базовый аккаунт", |
49 | "subscription.paymentSessionError": "Невозможно загрузить форму оплаты", | 49 | "settings.account.accountType.premium" : "Премиум аккаунт", |
50 | "subscription.includedFeatures": "Оплаченный Franz Премиум аккаунт включает", | 50 | "settings.account.buttonSave" : "Сохранить изменения", |
51 | "subscription.features.onpremise": "Добавить облачные службы или службы со своим хостингом типа HipChat", | 51 | "settings.account.headline" : "Аккаунт", |
52 | "subscription.features.customServices": "Настраиваемые сервисы для Вас и Вашей команды", | 52 | "settings.account.headlineAccount" : "Информация аккаунта", |
53 | "subscription.features.encryptedSync": "Шифрованная синхронизация сессии", | 53 | "settings.account.headlineInvoices" : "Счета", |
54 | "subscription.features.vpn": "Поддержка прокси и VPN", | 54 | "settings.account.headlinePassword" : "Сменить пароль", |
55 | "subscription.features.ads": "Без рекламы, навсегда!", | 55 | "settings.account.headlineProfile" : "Обновить профиль", |
56 | "subscription.features.comingSoon": "следите за обновлениями", | 56 | "settings.account.headlineSubscription" : "Ваша подписка", |
57 | "infobar.servicesUpdated": "Ваши сервисы были обновлены.", | 57 | "settings.account.headlineUpgrade" : "Улучшить аккаунт и поддержать Franz", |
58 | "infobar.updateAvailable": "Доступно обновление Franz.", | 58 | "settings.account.invoiceDownload" : "Скачать", |
59 | "infobar.buttonReloadServices": "Перезагрузить сервисы", | 59 | "settings.account.manageSubscription.label" : "Управление подпиской", |
60 | "infobar.buttonInstallUpdate": "Перезапустить и обновить", | 60 | "settings.account.mining.active" : "Вы выполняете {hashes} вычислений в секунду.", |
61 | "infobar.requiredRequestsFailed": "Невозможно загрузить сервисы и информацию пользователя", | 61 | "settings.account.mining.cancel" : "Отменить майнинг", |
62 | "sidebar.settings": "Настройки", | 62 | "settings.account.mining.moreInformation" : "Больше информации", |
63 | "sidebar.addNewService": "!!!Add new service", | 63 | "settings.account.mining.thankyou" : "Спасибо за поддержку Franz Вашими процессорными мощностями.", |
64 | "services.welcome": "Добро пожаловать во Franz", | 64 | "settings.account.successInfo" : "Изменения сохранены", |
65 | "services.getStarted": "Начать работу", | 65 | "settings.account.tryReloadUserInfoRequest" : "Попробовать снова", |
66 | "settings.account.headline": "Аккаунт", | 66 | "settings.account.userInfoRequestFailed" : "Невозможно загрузить информацию пользователя", |
67 | "settings.account.headlineSubscription": "Ваша подписка", | 67 | "settings.app.buttonInstallUpdate" : "Перезапустить и обновить", |
68 | "settings.account.headlineUpgrade": "Улучшить аккаунт и поддержать Franz", | 68 | "settings.app.buttonSearchForUpdate" : "Проверить обновления", |
69 | "settings.account.headlineInvoices": "Счета", | 69 | "settings.app.currentVersion" : "Текущая версия:", |
70 | "settings.account.manageSubscription.label": "Управление подпиской", | 70 | "settings.app.form.autoLaunchInBackground" : "Открывать в фоне", |
71 | "settings.account.accountType.basic": "Базовый аккаунт", | 71 | "settings.app.form.autoLaunchOnStart" : "Запускать Franz при старте", |
72 | "settings.account.accountType.premium": "Премиум аккаунт", | 72 | "settings.app.form.beta" : "Включая бета версии", |
73 | "settings.account.account.editButton": "Редактировать аккаунт", | 73 | "settings.app.form.enableSpellchecking" : "Enable spell checking", |
74 | "settings.account.invoiceDownload": "Скачать", | 74 | "settings.app.form.enableSystemTray" : "Показывать Franz в трее", |
75 | "settings.account.userInfoRequestFailed": "Невозможно загрузить информацию пользователя", | 75 | "settings.app.form.language" : "Язык", |
76 | "settings.account.tryReloadUserInfoRequest": "Попробовать снова", | 76 | "settings.app.form.minimizeToSystemTray" : "Сворачивать Franz в трей", |
77 | "settings.account.headlineProfile": "Обновить профиль", | 77 | "settings.app.form.runInBackground" : "Оставлять Franz в фоне при закрытии окна", |
78 | "settings.account.headlineAccount": "Информация аккаунта", | 78 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", |
79 | "settings.account.headlinePassword": "Сменить пароль", | 79 | "settings.app.headline" : "Настройки", |
80 | "settings.account.successInfo": "Изменения сохранены", | 80 | "settings.app.headlineAdvanced" : "Advanced", |
81 | "settings.account.buttonSave": "Сохранить изменения", | 81 | "settings.app.headlineAppearance" : "Appearance", |
82 | "settings.account.mining.thankyou": "Спасибо за поддержку Franz Вашими процессорными мощностями.", | 82 | "settings.app.headlineGeneral" : "Общие", |
83 | "settings.account.mining.active": "Вы выполняете {hashes} вычислений в секунду.", | 83 | "settings.app.headlineLanguage" : "Язык", |
84 | "settings.account.mining.moreInformation": "Больше информации", | 84 | "settings.app.headlineUpdates" : "Обновления", |
85 | "settings.account.mining.cancel": "Отменить майнинг", | 85 | "settings.app.restartRequired" : "Changes require restart", |
86 | "settings.navigation.availableServices": "Доступные сервисы", | 86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", |
87 | "settings.navigation.yourServices": "Ваши сервисы", | 87 | "settings.app.updateStatusAvailable" : "Доступно обновление, загрука...", |
88 | "settings.navigation.account": "Аккаунт", | 88 | "settings.app.updateStatusSearching" : "Поиск обновлений", |
89 | "settings.navigation.settings": "Настройки", | 89 | "settings.app.updateStatusUpToDate" : "Вы используете актуальную версию Franz", |
90 | "settings.navigation.logout": "Выход", | 90 | "settings.navigation.account" : "Аккаунт", |
91 | "settings.recipes.headline": "Доступные сервисы", | 91 | "settings.navigation.availableServices" : "Доступные сервисы", |
92 | "settings.recipes.mostPopular": "Популярные", | 92 | "settings.navigation.logout" : "Выход", |
93 | "settings.recipes.all": "Все сервисы", | 93 | "settings.navigation.settings" : "Настройки", |
94 | "settings.recipes.dev": "Разработка", | 94 | "settings.navigation.yourServices" : "Ваши сервисы", |
95 | "settings.recipes.nothingFound": "Ничего не найдено по Вашему запросу.", | 95 | "settings.recipes.all" : "Все сервисы", |
96 | "settings.recipes.servicesSuccessfulAddedInfo": "Сервис успешно добавлен", | 96 | "settings.recipes.dev" : "Разработка", |
97 | "settings.service.form.saveButton": "Сохранить сервис", | 97 | "settings.recipes.headline" : "Доступные сервисы", |
98 | "settings.service.form.deleteButton": "Удалить сервис", | 98 | "settings.recipes.missingService" : "Missing a service?", |
99 | "settings.service.form.availableServices": "Доступные сервисы", | 99 | "settings.recipes.mostPopular" : "Популярные", |
100 | "settings.service.form.yourServices": "Ваши сервисы", | 100 | "settings.recipes.nothingFound" : "Ничего не найдено по Вашему запросу.", |
101 | "settings.service.form.addServiceHeadline": "Добавление {name}", | 101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Сервис успешно добавлен", |
102 | "settings.service.form.editServiceHeadline": "Редактирование {name}", | 102 | "settings.service.error.goBack" : "Вернуться к сервисам", |
103 | "settings.service.form.tabHosted": "Hosted", | 103 | "settings.service.error.headline" : "Ошибка", |
104 | "settings.service.form.tabOnPremise": "Свой хостинг ⭐️", | 104 | "settings.service.error.message" : "Невозможно загрузить рецепт сервиса.", |
105 | "settings.service.form.customUrlValidationError": "Невозможно проверить сервер {name}.", | 105 | "settings.service.form.addServiceHeadline" : "Добавление {name}", |
106 | "settings.service.form.customUrlPremiumInfo": "Для добавния сервиса на своем хостинге, необходим аккаунт Franz Premium.", | 106 | "settings.service.form.availableServices" : "Доступные сервисы", |
107 | "settings.service.form.customUrlUpgradeAccount": "Улучшить аккаунт", | 107 | "settings.service.form.customUrl" : "Адрес сервера", |
108 | "settings.service.form.indirectMessageInfo": "Вы будете получать уведомления для всех сообщений, не только для @username, @channel, @here, ...", | 108 | "settings.service.form.customUrlPremiumInfo" : "Для добавния сервиса на своем хостинге, необходим аккаунт Franz Premium.", |
109 | "settings.service.error.headline": "Ошибка", | 109 | "settings.service.form.customUrlUpgradeAccount" : "Улучшить аккаунт", |
110 | "settings.service.error.goBack": "Вернуться к сервисам", | 110 | "settings.service.form.customUrlValidationError" : "Невозможно проверить сервер {name}.", |
111 | "settings.service.error.message": "Невозможно загрузить рецепт сервиса.", | 111 | "settings.service.form.deleteButton" : "Удалить сервис", |
112 | "settings.services.tooltip.isDisabled": "Сервис отключен", | 112 | "settings.service.form.editServiceHeadline" : "Редактирование {name}", |
113 | "settings.services.tooltip.notificationsDisabled": "Уведомления отключены", | 113 | "settings.service.form.enableAudio" : "Enable audio", |
114 | "settings.services.headline": "Ваши сервисы", | 114 | "settings.service.form.enableNotification" : "Включить уведомления", |
115 | "settings.services.noServicesAdded": "У Вас пока нет сервисов", | 115 | "settings.service.form.enableService" : "Включить сервис", |
116 | "settings.services.discoverServices": "Найти сервисы", | 116 | "settings.service.form.indirectMessageInfo" : "Вы будете получать уведомления для всех сообщений, не только для @username, @channel, @here, ...", |
117 | "settings.services.updatedInfo": "Изменения сохранены", | 117 | "settings.service.form.indirectMessages" : "Показывать значок уведомлений для всех новых сообщений", |
118 | "settings.services.deletedInfo": "Сервис удален", | 118 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", |
119 | "settings.app.headline": "Настройки", | 119 | "settings.service.form.name" : "Название", |
120 | "settings.app.headlineGeneral": "Общие", | 120 | "settings.service.form.saveButton" : "Сохранить сервис", |
121 | "settings.app.headlineLanguage": "Язык", | 121 | "settings.service.form.tabHosted" : "Hosted", |
122 | "settings.app.headlineUpdates": "Обновления", | 122 | "settings.service.form.tabOnPremise" : "Свой хостинг ⭐️", |
123 | "settings.app.buttonSearchForUpdate": "Проверить обновления", | 123 | "settings.service.form.team" : "Команда", |
124 | "settings.app.buttonInstallUpdate": "Перезапустить и обновить", | 124 | "settings.service.form.yourServices" : "Ваши сервисы", |
125 | "settings.app.updateStatusSearching": "Поиск обновлений", | 125 | "settings.services.deletedInfo" : "Сервис удален", |
126 | "settings.app.updateStatusAvailable": "Доступно обновление, загрука...", | 126 | "settings.services.discoverServices" : "Найти сервисы", |
127 | "settings.app.updateStatusUpToDate": "Вы используете актуальную версию Franz", | 127 | "settings.services.headline" : "Ваши сервисы", |
128 | "settings.app.form.autoLaunchOnStart": "Запускать Franz при старте", | 128 | "settings.services.noServicesAdded" : "У Вас пока нет сервисов", |
129 | "settings.app.form.autoLaunchInBackground": "Открывать в фоне", | 129 | "settings.services.tooltip.isDisabled" : "Сервис отключен", |
130 | "settings.app.form.enableSystemTray": "Показывать Franz в трее", | 130 | "settings.services.tooltip.isMuted" : "All sounds are muted", |
131 | "settings.app.form.minimizeToSystemTray": "Сворачивать Franz в трей", | 131 | "settings.services.tooltip.notificationsDisabled" : "Уведомления отключены", |
132 | "settings.app.form.runInBackground": "Оставлять Franz в фоне при закрытии окна", | 132 | "settings.services.updatedInfo" : "Изменения сохранены", |
133 | "settings.app.form.language": "Язык", | 133 | "settings.user.form.accountType.company" : "Компания", |
134 | "settings.app.form.beta": "Включая бета версии", | 134 | "settings.user.form.accountType.individual" : "Индивидуальный", |
135 | "settings.app.currentVersion": "Текущая версия:", | 135 | "settings.user.form.accountType.label" : "Тип аккаунта", |
136 | "settings.service.form.name": "Название", | 136 | "settings.user.form.accountType.non-profit" : "Некоммерческий", |
137 | "settings.service.form.enableService": "Включить сервис", | 137 | "settings.user.form.currentPassword" : "Текущий пароль", |
138 | "settings.service.form.enableNotification": "Включить уведомления", | 138 | "settings.user.form.email" : "Email", |
139 | "settings.service.form.team": "Команда", | 139 | "settings.user.form.firstname" : "Имя", |
140 | "settings.service.form.customUrl": "Адрес сервера", | 140 | "settings.user.form.lastname" : "Фамилия", |
141 | "settings.service.form.indirectMessages": "Показывать значок уведомлений для всех новых сообщений", | 141 | "settings.user.form.newPassword" : "Новый пароль", |
142 | "settings.user.form.firstname": "Имя", | 142 | "sidebar.addNewService" : "!!!Add new service", |
143 | "settings.user.form.lastname": "Фамилия", | 143 | "sidebar.mute" : "Disable audio", |
144 | "settings.user.form.email": "Email", | 144 | "sidebar.settings" : "Настройки", |
145 | "settings.user.form.currentPassword": "Текущий пароль", | 145 | "sidebar.unmute" : "Enable audio", |
146 | "settings.user.form.newPassword": "Новый пароль", | 146 | "signup.company.label" : "Организация", |
147 | "settings.user.form.accountType.label": "Тип аккаунта", | 147 | "signup.email.label" : "Email адрес", |
148 | "settings.user.form.accountType.individual": "Индивидуальный", | 148 | "signup.emailDuplicate" : "Пользователь с указанным email уже существует", |
149 | "settings.user.form.accountType.non-profit": "Некоммерческий", | 149 | "signup.firstname.label" : "Имя", |
150 | "settings.user.form.accountType.company": "Компания", | 150 | "signup.headline" : "Регистрация", |
151 | "subscription.type.free": "бесплатно", | 151 | "signup.lastname.label" : "Фамилия", |
152 | "subscription.type.month": "месяц", | 152 | "signup.legal.info" : "Создавая аккаунт Franz, Вы принимаете", |
153 | "subscription.type.year": "год", | 153 | "signup.legal.privacy" : "Политика конфиденциальности", |
154 | "subscription.type.mining": "Поддерживать Franz, предоставляя процессорную мощность", | 154 | "signup.legal.terms" : "Условия обслуживания", |
155 | "subscription.mining.headline": "Как это работает?", | 155 | "signup.link.login" : "Уже есть аккаунт, войти?", |
156 | "subscription.mining.experimental": "экспериментально", | 156 | "signup.password.label" : "Пароль", |
157 | "subscription.mining.line1": "Включая \"Поддерживать Franz, предоставляя процессорную мощность\", Franz будет использовать 20-50% процессорного времени для майнинга криптовалюты Monero в примерном объеме 5$/год.", | 157 | "signup.submit.label" : "Создать аккаунт", |
158 | "subscription.mining.line2": "Мы будем регулировать использование процессора, чтобы не садить батарею и не мешать Вашей работе", | 158 | "subscription.euTaxInfo" : "EU residents: local sales tax may apply", |
159 | "subscription.mining.line3": "Пока разрешен майнинг, Вам будут достуны все возможности Franz Premium без ограничений", | 159 | "subscription.features.ads" : "Без рекламы, навсегда!", |
160 | "subscription.mining.moreInformation": "Узнать больше об этом плане.", | 160 | "subscription.features.comingSoon" : "следите за обновлениями", |
161 | "subscriptionPopup.buttonCancel": "Отмена", | 161 | "subscription.features.customServices" : "Настраиваемые сервисы для Вас и Вашей команды", |
162 | "subscriptionPopup.buttonDone": "Готово", | 162 | "subscription.features.encryptedSync" : "Шифрованная синхронизация сессии", |
163 | "tabs.item.reload": "Перезагрузить", | 163 | "subscription.features.onpremise" : "Добавить облачные службы или службы со своим хостингом типа HipChat", |
164 | "tabs.item.edit": "Редактировать", | 164 | "subscription.features.vpn" : "Поддержка прокси и VPN", |
165 | "tabs.item.disableNotifications": "Отключить уведомления", | 165 | "subscription.includedFeatures" : "Оплаченный Franz Премиум аккаунт включает", |
166 | "tabs.item.enableNotification": "Включить уведомления", | 166 | "subscription.mining.experimental" : "экспериментально", |
167 | "tabs.item.disableService": "Отключить сервис", | 167 | "subscription.mining.headline" : "Как это работает?\",", |
168 | "tabs.item.deleteService": "Удалить сервис" | 168 | "subscription.mining.line1" : "Включая \"Поддерживать Franz, предоставляя процессорную мощность\", Franz будет использовать 20-50% процессорного времени для майнинга криптовалюты Monero в примерном объеме 5$\/год.", |
169 | "subscription.mining.line2" : "Мы будем регулировать использование процессора, чтобы не садить батарею и не мешать Вашей работе", | ||
170 | "subscription.mining.line3" : "Пока разрешен майнинг, Вам будут достуны все возможности Franz Premium без ограничений", | ||
171 | "subscription.mining.moreInformation" : "Узнать больше об этом плане.", | ||
172 | "subscription.paymentSessionError" : "Невозможно загрузить форму оплаты", | ||
173 | "subscription.submit.label" : "Я хочу поддержать разработку Franz", | ||
174 | "subscription.type.free" : "бесплатно", | ||
175 | "subscription.type.mining" : "Поддерживать Franz, предоставляя процессорную мощность", | ||
176 | "subscription.type.month" : "месяц", | ||
177 | "subscription.type.year" : "год", | ||
178 | "subscriptionPopup.buttonCancel" : "Отмена", | ||
179 | "subscriptionPopup.buttonDone" : "Готово", | ||
180 | "tabs.item.deleteService" : "Удалить сервис", | ||
181 | "tabs.item.disableAudio" : "Disable audio", | ||
182 | "tabs.item.disableNotifications" : "Отключить уведомления", | ||
183 | "tabs.item.disableService" : "Отключить сервис", | ||
184 | "tabs.item.edit" : "Редактировать", | ||
185 | "tabs.item.enableAudio" : "Enable audio", | ||
186 | "tabs.item.enableNotification" : "Включить уведомления", | ||
187 | "tabs.item.enableService" : "Включить сервис", | ||
188 | "tabs.item.reload" : "Перезагрузить", | ||
189 | "welcome.loginButton" : "Вход", | ||
190 | "welcome.signupButton" : "Создать аккаунт", | ||
191 | "welcome.slogan" : "Общение, которое просто работает" | ||
169 | } | 192 | } |
diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json new file mode 100644 index 000000000..d8415762d --- /dev/null +++ b/src/i18n/locales/sk.json | |||
@@ -0,0 +1,192 @@ | |||
1 | { | ||
2 | "global.api.unhealthy" : "Franz sa nemôže pripojit k online službám", | ||
3 | "global.notConnectedToTheInternet" : "Nie ste pripojený k internetu", | ||
4 | "import.headline" : "Importovať služby z Franz 4", | ||
5 | "import.notSupportedHeadline" : "Služby zatiaľ nie sú podporované vo verzii Franz 5", | ||
6 | "import.skip.label" : "Chcem pridať služby manuálne", | ||
7 | "import.submit.label" : "Importovať služby", | ||
8 | "infobar.buttonChangelog" : "What is new?", | ||
9 | "infobar.buttonInstallUpdate" : "Reštartovať a inštalovať aktualizáciu", | ||
10 | "infobar.buttonReloadServices" : "Obnoviť služby", | ||
11 | "infobar.requiredRequestsFailed" : "Nie je možné načítať služby a informácie o užívateľovi", | ||
12 | "infobar.servicesUpdated" : "Vaše služby boli aktualizované.", | ||
13 | "infobar.updateAvailable" : "Nová aktualizácia Franz je k dispozícii.", | ||
14 | "invite.email.label" : "E-mailová adresa", | ||
15 | "invite.headline.friends" : "Pozvite 3 priateľov alebo kolegov", | ||
16 | "invite.name.label" : "Meno", | ||
17 | "invite.skip.label" : "Spravím to neskôr", | ||
18 | "invite.submit.label" : "Poslať pozvánky", | ||
19 | "login.email.label" : "Emailová adresa", | ||
20 | "login.headline" : "Prihlásiť sa", | ||
21 | "login.invalidCredentials" : "E-mail alebo heslo nesúhlasí", | ||
22 | "login.link.password" : "Obnoviť heslo", | ||
23 | "login.link.signup" : "Vytvoriť užívateľský účet zdarma", | ||
24 | "login.password.label" : "Heslo", | ||
25 | "login.serverLogout" : "Relácia vypršala, prihláste sa prosím znova.", | ||
26 | "login.submit.label" : "Prihlásiť sa", | ||
27 | "login.tokenExpired" : "Relácia vypršala, prosím prihláste sa znova.", | ||
28 | "password.email.label" : "Emailová adresa", | ||
29 | "password.headline" : "Vynulovať heslo", | ||
30 | "password.link.login" : "Prihlásenie do vašeho účtu", | ||
31 | "password.link.signup" : "Vytvoriť užívateľský účet zdarma", | ||
32 | "password.noUser" : "Užívateľ s touto emailovou adresou nebol nájdený", | ||
33 | "password.submit.label" : "Odoslať", | ||
34 | "password.successInfo" : "Prosím, zkontrolujte svoj e-mail", | ||
35 | "pricing.headline" : "Podporte Franz", | ||
36 | "pricing.link.skipPayment" : "Nechcem podporiť vývoj aplikácie Franz.", | ||
37 | "pricing.submit.label" : "Chcem podporiť vývoj aplikácie Franz", | ||
38 | "pricing.support.label" : "Vyberte váš plán podpory", | ||
39 | "service.crashHandler.action" : "Reload {name}", | ||
40 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", | ||
41 | "service.crashHandler.headline" : "Oh no!", | ||
42 | "service.crashHandler.text" : "{name} has caused an error.", | ||
43 | "service.disabledHandler.action" : "Enable {name}", | ||
44 | "service.disabledHandler.headline" : "{name} is disabled", | ||
45 | "services.getStarted" : "Začíname", | ||
46 | "services.welcome" : "Víta vás Franz", | ||
47 | "settings.account.account.editButton" : "Upraviť účet", | ||
48 | "settings.account.accountType.basic" : "Základný účet", | ||
49 | "settings.account.accountType.premium" : "Prémiový účet podporovateľa", | ||
50 | "settings.account.buttonSave" : "Aktualizovať profil", | ||
51 | "settings.account.headline" : "Účet", | ||
52 | "settings.account.headlineAccount" : "Informácie o účte", | ||
53 | "settings.account.headlineInvoices" : "Faktúry", | ||
54 | "settings.account.headlinePassword" : "Zmeniť heslo", | ||
55 | "settings.account.headlineProfile" : "Aktualizovať profil", | ||
56 | "settings.account.headlineSubscription" : "Vaše predplatné", | ||
57 | "settings.account.headlineUpgrade" : "Inovujte svoj účet a podporte Franz", | ||
58 | "settings.account.invoiceDownload" : "Stiahnuť", | ||
59 | "settings.account.manageSubscription.label" : "Spravovať vaše predplatné", | ||
60 | "settings.account.mining.active" : "Práve vykonávate {hashes} výpočty za sekundu.", | ||
61 | "settings.account.mining.cancel" : "Zrušiť ťažbu", | ||
62 | "settings.account.mining.moreInformation" : "Získať viac informácií", | ||
63 | "settings.account.mining.thankyou" : "Ďakujeme, že podporujete Franz vaším výpočetným výkonom.", | ||
64 | "settings.account.successInfo" : "Vaše zmeny boli uložené", | ||
65 | "settings.account.tryReloadUserInfoRequest" : "Skúsiť znova", | ||
66 | "settings.account.userInfoRequestFailed" : "Nebolo možné získať informácie o užívateľovi", | ||
67 | "settings.app.buttonInstallUpdate" : "Reštart a inštalácia aktualizácií", | ||
68 | "settings.app.buttonSearchForUpdate" : "Skontrolovať aktualizácie", | ||
69 | "settings.app.currentVersion" : "Aktuálna verzia:", | ||
70 | "settings.app.form.autoLaunchInBackground" : "Otvoriť na pozadí", | ||
71 | "settings.app.form.autoLaunchOnStart" : "Spustiť Franz pri štarte", | ||
72 | "settings.app.form.beta" : "Vrátane beta verzií", | ||
73 | "settings.app.form.enableSpellchecking" : "Enable spell checking", | ||
74 | "settings.app.form.enableSystemTray" : "Zobrazovať Franz v systémovej lište", | ||
75 | "settings.app.form.language" : "Jazyk", | ||
76 | "settings.app.form.minimizeToSystemTray" : "Minimalizovať Franz do systémovej lišty", | ||
77 | "settings.app.form.runInBackground" : "Ponechať Franz spustený v pozadí pri zatvorení okna", | ||
78 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", | ||
79 | "settings.app.headline" : "Nastavenia", | ||
80 | "settings.app.headlineAdvanced" : "Advanced", | ||
81 | "settings.app.headlineAppearance" : "Appearance", | ||
82 | "settings.app.headlineGeneral" : "Všeobecné", | ||
83 | "settings.app.headlineLanguage" : "Jazyk", | ||
84 | "settings.app.headlineUpdates" : "Aktualizácie", | ||
85 | "settings.app.restartRequired" : "Changes require restart", | ||
86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
87 | "settings.app.updateStatusAvailable" : "Dostupná aktualizácia, sťahujem...", | ||
88 | "settings.app.updateStatusSearching" : "Vyhľadávam aktualizácie", | ||
89 | "settings.app.updateStatusUpToDate" : "Používate najnovšiu verziu Franz", | ||
90 | "settings.navigation.account" : "Účet", | ||
91 | "settings.navigation.availableServices" : "Dostupné služby", | ||
92 | "settings.navigation.logout" : "Odhlásiť sa", | ||
93 | "settings.navigation.settings" : "Nastavenia", | ||
94 | "settings.navigation.yourServices" : "Vaše služby", | ||
95 | "settings.recipes.all" : "Všetky služby", | ||
96 | "settings.recipes.dev" : "Vývoj", | ||
97 | "settings.recipes.headline" : "Dostupné služby", | ||
98 | "settings.recipes.missingService" : "Missing a service?", | ||
99 | "settings.recipes.mostPopular" : "Najpopulárnejšie", | ||
100 | "settings.recipes.nothingFound" : "Je nám ľúto, ale žiadna služba nezodpovedala vášmu hľadanému výrazu.", | ||
101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Služba úspešne pridaná", | ||
102 | "settings.service.error.goBack" : "Späť na služby", | ||
103 | "settings.service.error.headline" : "Chyba", | ||
104 | "settings.service.error.message" : "Nepodarilo sa načítať službu.", | ||
105 | "settings.service.form.addServiceHeadline" : "Pridať {názov}", | ||
106 | "settings.service.form.availableServices" : "Dostupné služby", | ||
107 | "settings.service.form.customUrl" : "Vlastný server", | ||
108 | "settings.service.form.customUrlPremiumInfo" : "Ak chcete pridať vlastné hostované služby, potrebujete účet Franz Premium Supporter.", | ||
109 | "settings.service.form.customUrlUpgradeAccount" : "Inovujte váš účet", | ||
110 | "settings.service.form.customUrlValidationError" : "Nebolo možné overiť vlastný server: {name}.", | ||
111 | "settings.service.form.deleteButton" : "Odstrániť službu", | ||
112 | "settings.service.form.editServiceHeadline" : "Upraviť {meno}", | ||
113 | "settings.service.form.enableAudio" : "Enable audio", | ||
114 | "settings.service.form.enableNotification" : "Povoliť oznámenia", | ||
115 | "settings.service.form.enableService" : "Povoliť službu", | ||
116 | "settings.service.form.indirectMessageInfo" : "Budete dostávať upozornenia na všetky nové správy v kanáli, nielen na @meno, @kanál, @kde, ...", | ||
117 | "settings.service.form.indirectMessages" : "Zobraziť znak správy pre všetky nové správy", | ||
118 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", | ||
119 | "settings.service.form.name" : "Meno", | ||
120 | "settings.service.form.saveButton" : "Uložiť službu", | ||
121 | "settings.service.form.tabHosted" : "Hostovaný", | ||
122 | "settings.service.form.tabOnPremise" : "Vlastné hosťovanie ⭐️", | ||
123 | "settings.service.form.team" : "Tím", | ||
124 | "settings.service.form.yourServices" : "Vaše služby", | ||
125 | "settings.services.deletedInfo" : "Služba bola odstránená", | ||
126 | "settings.services.discoverServices" : "Preskúmajte služby", | ||
127 | "settings.services.headline" : "Vaše služby", | ||
128 | "settings.services.noServicesAdded" : "Nepridali ste ešte žiadne služby", | ||
129 | "settings.services.tooltip.isDisabled" : "Služba je vypnutá", | ||
130 | "settings.services.tooltip.isMuted" : "All sounds are muted", | ||
131 | "settings.services.tooltip.notificationsDisabled" : "Oznámenia sú vypnuté", | ||
132 | "settings.services.updatedInfo" : "Vaše zmeny boli uložené", | ||
133 | "settings.user.form.accountType.company" : "Spoločnosť", | ||
134 | "settings.user.form.accountType.individual" : "Jednotlivec", | ||
135 | "settings.user.form.accountType.label" : "Typ účtu", | ||
136 | "settings.user.form.accountType.non-profit" : "Nezisková organizácia", | ||
137 | "settings.user.form.currentPassword" : "Súčasné heslo", | ||
138 | "settings.user.form.email" : "Email", | ||
139 | "settings.user.form.firstname" : "First Name", | ||
140 | "settings.user.form.lastname" : "Last Name", | ||
141 | "settings.user.form.newPassword" : "Nové heslo", | ||
142 | "sidebar.addNewService" : "Pridať novú službu", | ||
143 | "sidebar.mute" : "Disable audio", | ||
144 | "sidebar.settings" : "Nastavenia", | ||
145 | "sidebar.unmute" : "Enable audio", | ||
146 | "signup.company.label" : "Spoločnosť", | ||
147 | "signup.email.label" : "Emailová adresa", | ||
148 | "signup.emailDuplicate" : "Kontakt s touto emailovou adresou už existuje", | ||
149 | "signup.firstname.label" : "First Name", | ||
150 | "signup.headline" : "Prihlásiť sa", | ||
151 | "signup.lastname.label" : "Last Name", | ||
152 | "signup.legal.info" : "Vytvorením účtu Franz akceptujete", | ||
153 | "signup.legal.privacy" : "Vyhlásenie o ochrane súkromia", | ||
154 | "signup.legal.terms" : "Podmienky služby", | ||
155 | "signup.link.login" : "Už máte účet, prihlásiť sa?", | ||
156 | "signup.password.label" : "Heslo", | ||
157 | "signup.submit.label" : "Vytvoriť účet", | ||
158 | "subscription.euTaxInfo" : "EU residents: local sales tax may apply", | ||
159 | "subscription.features.ads" : "Žiadne reklamy, nikdy!", | ||
160 | "subscription.features.comingSoon" : "už čoskoro", | ||
161 | "subscription.features.customServices" : "Privátne služby pre vás a váš tím", | ||
162 | "subscription.features.encryptedSync" : "Šifrovaná synchronizácia relácie", | ||
163 | "subscription.features.onpremise" : "Pridať vlastné\/hostované služby, ako je HipChat", | ||
164 | "subscription.features.vpn" : "Proxy & VPN podpora", | ||
165 | "subscription.includedFeatures" : "Platený účet Premium Supporter Franz zahŕňa", | ||
166 | "subscription.mining.experimental" : "experimentálne", | ||
167 | "subscription.mining.headline" : "Ako toto funguje?", | ||
168 | "subscription.mining.line1" : "Povolením funkcie \"Podpora s výpočtovou silou\" bude Franz používať približne 20-50% vášho CPU na ťažbu kryptomeny Monero, čo sa rovná približne 5 dolárov ročne.", | ||
169 | "subscription.mining.line2" : "Prispôsobíme využitie procesora na základe vášho pracovného správania, aby sme nevyčerpali batériu a nespomaľovali vás a váš počítač.", | ||
170 | "subscription.mining.line3" : "Pokiaľ je baník aktívny, budete mať neobmedzený prístup ku všetkým funkciám Franz Premium Supporter.", | ||
171 | "subscription.mining.moreInformation" : "Získať viac informácií o tomto pláne.", | ||
172 | "subscription.paymentSessionError" : "Nepodarilo sa inicializovať platbu od", | ||
173 | "subscription.submit.label" : "Chcem podporiť vývoj programu Franz", | ||
174 | "subscription.type.free" : "Zdarma", | ||
175 | "subscription.type.mining" : "Podporiť Franz výpočetným výkonom", | ||
176 | "subscription.type.month" : "mesiac", | ||
177 | "subscription.type.year" : "rok", | ||
178 | "subscriptionPopup.buttonCancel" : "Zrušiť", | ||
179 | "subscriptionPopup.buttonDone" : "Dokončiť", | ||
180 | "tabs.item.deleteService" : "Odstrániť službu", | ||
181 | "tabs.item.disableAudio" : "Disable audio", | ||
182 | "tabs.item.disableNotifications" : "Zakázať oznámenia", | ||
183 | "tabs.item.disableService" : "Vypnúť službu", | ||
184 | "tabs.item.edit" : "Upraviť", | ||
185 | "tabs.item.enableAudio" : "Enable audio", | ||
186 | "tabs.item.enableNotification" : "Povoliť oznámenia", | ||
187 | "tabs.item.enableService" : "Povoliť službu", | ||
188 | "tabs.item.reload" : "Obnoviť", | ||
189 | "welcome.loginButton" : "Prihláste sa k vášmu účtu", | ||
190 | "welcome.signupButton" : "Vytvoriť užívateľský účet zdarma", | ||
191 | "welcome.slogan" : "Správy, ktoré pracujú pre vás" | ||
192 | } | ||
diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json new file mode 100644 index 000000000..902368150 --- /dev/null +++ b/src/i18n/locales/uk.json | |||
@@ -0,0 +1,192 @@ | |||
1 | { | ||
2 | "global.api.unhealthy" : "Не можна підключитись до онлайн сервісів Franz", | ||
3 | "global.notConnectedToTheInternet" : "Ви не підключені до Інтернету.", | ||
4 | "import.headline" : "Імпортувати ваші сервіси з Franz 4", | ||
5 | "import.notSupportedHeadline" : "Сервіси ще не підтримуються в Franz 5", | ||
6 | "import.skip.label" : "Я хочу додати сервіси вручну", | ||
7 | "import.submit.label" : "Імпортувати сервіси", | ||
8 | "infobar.buttonChangelog" : "What is new?", | ||
9 | "infobar.buttonInstallUpdate" : "Перезавантажити і встановити оновлення", | ||
10 | "infobar.buttonReloadServices" : "Перезавантажити сервіси", | ||
11 | "infobar.requiredRequestsFailed" : "Не вдалося завантажити сервіси та інформацію користувача", | ||
12 | "infobar.servicesUpdated" : "Ваші сервіси було оновлено.", | ||
13 | "infobar.updateAvailable" : "Нове оновлення для Franz доступне.", | ||
14 | "invite.email.label" : "Email адреса", | ||
15 | "invite.headline.friends" : "Запросіть 3 ваших друзів або колег", | ||
16 | "invite.name.label" : "Ім'я", | ||
17 | "invite.skip.label" : "Я хочу зробити це пізніше", | ||
18 | "invite.submit.label" : "Відправити запрошення", | ||
19 | "login.email.label" : "Email адреса", | ||
20 | "login.headline" : "Увійти", | ||
21 | "login.invalidCredentials" : "Email або пароль некоректні", | ||
22 | "login.link.password" : "Скинути пароль", | ||
23 | "login.link.signup" : "Створити безплатний акаунт", | ||
24 | "login.password.label" : "Пароль", | ||
25 | "login.serverLogout" : "Ваша сесія закінчилась, будь ласка, зайдіть знову.", | ||
26 | "login.submit.label" : "Увійти", | ||
27 | "login.tokenExpired" : "Ваша сесія закінчилась, будь ласка, зайдіть знову.", | ||
28 | "password.email.label" : "Email адреса", | ||
29 | "password.headline" : "Скинути пароль", | ||
30 | "password.link.login" : "Увійти до вашого акаунту", | ||
31 | "password.link.signup" : "Створити безплатний акаунт", | ||
32 | "password.noUser" : "Не знайдено жодного користувача з цією email адресою", | ||
33 | "password.submit.label" : "Подати", | ||
34 | "password.successInfo" : "Будь ласка, перевірте ваш email", | ||
35 | "pricing.headline" : "Підтримайте Franz", | ||
36 | "pricing.link.skipPayment" : "Я не хочу підтримувати розробку Franz.", | ||
37 | "pricing.submit.label" : "Я хочу підтримати розробку Franz", | ||
38 | "pricing.support.label" : "Виберіть свій план підтримки", | ||
39 | "service.crashHandler.action" : "Reload {name}", | ||
40 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", | ||
41 | "service.crashHandler.headline" : "Oh no!", | ||
42 | "service.crashHandler.text" : "{name} has caused an error.", | ||
43 | "service.disabledHandler.action" : "Enable {name}", | ||
44 | "service.disabledHandler.headline" : "{name} is disabled", | ||
45 | "services.getStarted" : "Почати", | ||
46 | "services.welcome" : "Ласкаво просимо в Franz", | ||
47 | "settings.account.account.editButton" : "Редагувати акаунт", | ||
48 | "settings.account.accountType.basic" : "Базовий акаунт", | ||
49 | "settings.account.accountType.premium" : "Преміум Акаунт Прихильника", | ||
50 | "settings.account.buttonSave" : "Оновити профіль", | ||
51 | "settings.account.headline" : "Акаунт", | ||
52 | "settings.account.headlineAccount" : "Інформація про акаунт", | ||
53 | "settings.account.headlineInvoices" : "Інвойси", | ||
54 | "settings.account.headlinePassword" : "Змінити пароль", | ||
55 | "settings.account.headlineProfile" : "Оновити профіль", | ||
56 | "settings.account.headlineSubscription" : "Ваша підписка", | ||
57 | "settings.account.headlineUpgrade" : "Оновити ваш акаунт і підтримати Franz", | ||
58 | "settings.account.invoiceDownload" : "Завантажити", | ||
59 | "settings.account.manageSubscription.label" : "Керування вашою підпискою", | ||
60 | "settings.account.mining.active" : "Ви зараз здійснюєте {hashes} розрахунків за секунду.", | ||
61 | "settings.account.mining.cancel" : "Скасувати видобуток", | ||
62 | "settings.account.mining.moreInformation" : "Отримати більше інформації", | ||
63 | "settings.account.mining.thankyou" : "Дякую, що підтримуєте Franz своєю обчислювальною потужністю.", | ||
64 | "settings.account.successInfo" : "Ваші зміни були збережені", | ||
65 | "settings.account.tryReloadUserInfoRequest" : "Спробуйте ще раз", | ||
66 | "settings.account.userInfoRequestFailed" : "Не вдалося завантажити інформацію користувача", | ||
67 | "settings.app.buttonInstallUpdate" : "Перезавантажити і встановити оновлення", | ||
68 | "settings.app.buttonSearchForUpdate" : "Перевірити наявність оновлень", | ||
69 | "settings.app.currentVersion" : "Поточна версія:", | ||
70 | "settings.app.form.autoLaunchInBackground" : "Відкрити у фоновому режимі", | ||
71 | "settings.app.form.autoLaunchOnStart" : "Запускати Franz на початку", | ||
72 | "settings.app.form.beta" : "Включити бета-версії", | ||
73 | "settings.app.form.enableSpellchecking" : "Enable spell checking", | ||
74 | "settings.app.form.enableSystemTray" : "Show Franz in system tray", | ||
75 | "settings.app.form.language" : "Мова", | ||
76 | "settings.app.form.minimizeToSystemTray" : "Мінімізувати Franz до системного лотка", | ||
77 | "settings.app.form.runInBackground" : "Тримати Franz в фоні при закритті вікна", | ||
78 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", | ||
79 | "settings.app.headline" : "Налаштування", | ||
80 | "settings.app.headlineAdvanced" : "Advanced", | ||
81 | "settings.app.headlineAppearance" : "Appearance", | ||
82 | "settings.app.headlineGeneral" : "Загальні", | ||
83 | "settings.app.headlineLanguage" : "Мова", | ||
84 | "settings.app.headlineUpdates" : "Оновлення", | ||
85 | "settings.app.restartRequired" : "Changes require restart", | ||
86 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
87 | "settings.app.updateStatusAvailable" : "Оновлення доступне, завантаження...", | ||
88 | "settings.app.updateStatusSearching" : "Шукає оновлення", | ||
89 | "settings.app.updateStatusUpToDate" : "Ви використовуєте останню версію Franz", | ||
90 | "settings.navigation.account" : "Акаунт", | ||
91 | "settings.navigation.availableServices" : "Доступні сервіси", | ||
92 | "settings.navigation.logout" : "Вийти", | ||
93 | "settings.navigation.settings" : "Налаштування", | ||
94 | "settings.navigation.yourServices" : "Ваші сервіси", | ||
95 | "settings.recipes.all" : "Всі сервіси", | ||
96 | "settings.recipes.dev" : "Розробка", | ||
97 | "settings.recipes.headline" : "Доступні сервіси", | ||
98 | "settings.recipes.missingService" : "Missing a service?", | ||
99 | "settings.recipes.mostPopular" : "Найбільш популярні", | ||
100 | "settings.recipes.nothingFound" : "Вибачте, але жоден сервіс не відповідає пошуковому терміну.", | ||
101 | "settings.recipes.servicesSuccessfulAddedInfo" : "Сервіс успішно додано", | ||
102 | "settings.service.error.goBack" : "Повернутись до сервісів", | ||
103 | "settings.service.error.headline" : "Помилка", | ||
104 | "settings.service.error.message" : "Не вдалось завантажити серверний протокол.", | ||
105 | "settings.service.form.addServiceHeadline" : "Додати {name}", | ||
106 | "settings.service.form.availableServices" : "Доступні сервіси", | ||
107 | "settings.service.form.customUrl" : "Користувацький сервер ", | ||
108 | "settings.service.form.customUrlPremiumInfo" : "Щоб додати самостійно розміщені сервіси, вам потріьно мати Преміумним Акаунт Прихильника Franz.", | ||
109 | "settings.service.form.customUrlUpgradeAccount" : "Оновити ваш обліковий запис", | ||
110 | "settings.service.form.customUrlValidationError" : "Не вдалось підтвердити власний {name} сервер.", | ||
111 | "settings.service.form.deleteButton" : "Видалити сервіс", | ||
112 | "settings.service.form.editServiceHeadline" : "Редагувати {name}", | ||
113 | "settings.service.form.enableAudio" : "Enable audio", | ||
114 | "settings.service.form.enableNotification" : "Увімкнути сповіщення", | ||
115 | "settings.service.form.enableService" : "Увімкнути сервіс", | ||
116 | "settings.service.form.indirectMessageInfo" : "Ви отримаєте сповіщення про всі нові повідомлення в каналі, а не лише про @username, @channel, @here, ...", | ||
117 | "settings.service.form.indirectMessages" : "Показувати значок повідомлення для всіх нових повідомлень", | ||
118 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", | ||
119 | "settings.service.form.name" : "Ім'я", | ||
120 | "settings.service.form.saveButton" : "Зберегти сервіс", | ||
121 | "settings.service.form.tabHosted" : "Розміщений", | ||
122 | "settings.service.form.tabOnPremise" : "Самостійно розміщений ⭐️", | ||
123 | "settings.service.form.team" : "Команда", | ||
124 | "settings.service.form.yourServices" : "Ваші сервіси", | ||
125 | "settings.services.deletedInfo" : "Сервіс було видалено", | ||
126 | "settings.services.discoverServices" : "Відкрийте для себе сервіси", | ||
127 | "settings.services.headline" : "Ваші сервіси", | ||
128 | "settings.services.noServicesAdded" : "Ви ще не додавали жодних сервісів.", | ||
129 | "settings.services.tooltip.isDisabled" : "Сервіс відключений", | ||
130 | "settings.services.tooltip.isMuted" : "All sounds are muted", | ||
131 | "settings.services.tooltip.notificationsDisabled" : "Сповіщення відключені", | ||
132 | "settings.services.updatedInfo" : "Ваші зміни були збережені", | ||
133 | "settings.user.form.accountType.company" : "Компанія", | ||
134 | "settings.user.form.accountType.individual" : "Індивідуальний", | ||
135 | "settings.user.form.accountType.label" : "Тип акаунту", | ||
136 | "settings.user.form.accountType.non-profit" : "Некомерційний", | ||
137 | "settings.user.form.currentPassword" : "Поточний пароль", | ||
138 | "settings.user.form.email" : "Email", | ||
139 | "settings.user.form.firstname" : "First Name", | ||
140 | "settings.user.form.lastname" : "Last Name", | ||
141 | "settings.user.form.newPassword" : "Новий пароль", | ||
142 | "sidebar.addNewService" : "Add new service", | ||
143 | "sidebar.mute" : "Disable audio", | ||
144 | "sidebar.settings" : "Налаштування", | ||
145 | "sidebar.unmute" : "Enable audio", | ||
146 | "signup.company.label" : "Компанія", | ||
147 | "signup.email.label" : "Email адреса", | ||
148 | "signup.emailDuplicate" : "Користувач із цією email адресою вже існує", | ||
149 | "signup.firstname.label" : "First Name", | ||
150 | "signup.headline" : "Увійти", | ||
151 | "signup.lastname.label" : "Last Name", | ||
152 | "signup.legal.info" : "Створенням акаунту Franz ви приймаєте", | ||
153 | "signup.legal.privacy" : "Заява про конфіденційність", | ||
154 | "signup.legal.terms" : "Умови використання", | ||
155 | "signup.link.login" : "У вас вже є обліковий запис, увійти?", | ||
156 | "signup.password.label" : "Пароль", | ||
157 | "signup.submit.label" : "Створити акаунт", | ||
158 | "subscription.euTaxInfo" : "EU residents: local sales tax may apply", | ||
159 | "subscription.features.ads" : "Жодної реклами!", | ||
160 | "subscription.features.comingSoon" : "очікуйте незабаром", | ||
161 | "subscription.features.customServices" : "Приватні сервіси для вас і вашої команди", | ||
162 | "subscription.features.encryptedSync" : "Шифрована синхронізація сеансу", | ||
163 | "subscription.features.onpremise" : "Додайте on-premise \/ hosted сервіси, такі як Hipchat", | ||
164 | "subscription.features.vpn" : "Підтримка проксі та VPN", | ||
165 | "subscription.includedFeatures" : "Платний Преміальний Акаунт Прихильника Franz включає", | ||
166 | "subscription.mining.experimental" : "експериментальний", | ||
167 | "subscription.mining.headline" : "Як це працює?", | ||
168 | "subscription.mining.line1" : "Вмикаючи \"Підтримати обчислювальною потужністю\", Franz буде використовувати приблизно 20-50% вашого процесора щоб майнити криптовалюту Monero, що приблизно рівне $ 5\/рік.", | ||
169 | "subscription.mining.line2" : "Ми адаптуємо використання процесора відповідно до вашої поведінки, щоб не виснажувати акумулятор, не сповільнити вашу роботу і роботу вашої машини.", | ||
170 | "subscription.mining.line3" : "Поки майнер активний, ви матимете необмежений доступ до всіх особливостей підтримки Franz Premium.", | ||
171 | "subscription.mining.moreInformation" : "Отримати більше інформації про цей план.", | ||
172 | "subscription.paymentSessionError" : "Не вдалося ініціалізувати форму платежу", | ||
173 | "subscription.submit.label" : "Я хочу підтримати розробку Franz", | ||
174 | "subscription.type.free" : "безплатно", | ||
175 | "subscription.type.mining" : "Підтримати Franz обчислювальною потужністю", | ||
176 | "subscription.type.month" : "місяць", | ||
177 | "subscription.type.year" : "рік", | ||
178 | "subscriptionPopup.buttonCancel" : "Відмінити", | ||
179 | "subscriptionPopup.buttonDone" : "Готово", | ||
180 | "tabs.item.deleteService" : "Видалити сервіс", | ||
181 | "tabs.item.disableAudio" : "Disable audio", | ||
182 | "tabs.item.disableNotifications" : "Вимкнути сповіщення", | ||
183 | "tabs.item.disableService" : "Вимкнути сервіс", | ||
184 | "tabs.item.edit" : "Редагувати", | ||
185 | "tabs.item.enableAudio" : "Enable audio", | ||
186 | "tabs.item.enableNotification" : "Увімкнути сповіщення", | ||
187 | "tabs.item.enableService" : "Увімкнути сервіс", | ||
188 | "tabs.item.reload" : "Перезавантажити", | ||
189 | "welcome.loginButton" : "Увійдіть до свого акаунту", | ||
190 | "welcome.signupButton" : "Створити безплатний акаунт", | ||
191 | "welcome.slogan" : "Обмін повідомленнями, який працює для вас" | ||
192 | } | ||
diff --git a/src/i18n/translations.js b/src/i18n/translations.js index 492a6cc4e..161a172ba 100644 --- a/src/i18n/translations.js +++ b/src/i18n/translations.js | |||
@@ -1,7 +1,7 @@ | |||
1 | import languages from './languages'; | 1 | import { APP_LOCALES } from './languages'; |
2 | 2 | ||
3 | const translations = []; | 3 | const translations = []; |
4 | Object.keys(languages).forEach((key) => { | 4 | Object.keys(APP_LOCALES).forEach((key) => { |
5 | try { | 5 | try { |
6 | const translation = require(`./locales/${key}.json`); // eslint-disable-line | 6 | const translation = require(`./locales/${key}.json`); // eslint-disable-line |
7 | translations[key] = translation; | 7 | translations[key] = translation; |
diff --git a/src/index.js b/src/index.js index efb3be737..a047e2bc1 100644 --- a/src/index.js +++ b/src/index.js | |||
@@ -8,6 +8,7 @@ import { isDevMode, isWindows } from './environment'; | |||
8 | import ipcApi from './electron/ipc-api'; | 8 | import ipcApi from './electron/ipc-api'; |
9 | import Tray from './lib/Tray'; | 9 | import Tray from './lib/Tray'; |
10 | import Settings from './electron/Settings'; | 10 | import Settings from './electron/Settings'; |
11 | import handleDeepLink from './electron/deepLinking'; | ||
11 | import { appId } from './package.json'; // eslint-disable-line import/no-unresolved | 12 | import { appId } from './package.json'; // eslint-disable-line import/no-unresolved |
12 | import './electron/exception'; | 13 | import './electron/exception'; |
13 | 14 | ||
@@ -26,10 +27,19 @@ if (isWindows) { | |||
26 | } | 27 | } |
27 | 28 | ||
28 | // Force single window | 29 | // Force single window |
29 | const isSecondInstance = app.makeSingleInstance(() => { | 30 | const isSecondInstance = app.makeSingleInstance((argv) => { |
30 | if (mainWindow) { | 31 | if (mainWindow) { |
31 | if (mainWindow.isMinimized()) mainWindow.restore(); | 32 | if (mainWindow.isMinimized()) mainWindow.restore(); |
32 | mainWindow.focus(); | 33 | mainWindow.focus(); |
34 | |||
35 | if (process.platform === 'win32') { | ||
36 | // Keep only command line / deep linked arguments | ||
37 | const url = argv.slice(1); | ||
38 | |||
39 | if (url) { | ||
40 | handleDeepLink(mainWindow, url.toString()); | ||
41 | } | ||
42 | } | ||
33 | } | 43 | } |
34 | }); | 44 | }); |
35 | 45 | ||
@@ -39,12 +49,14 @@ if (isSecondInstance) { | |||
39 | 49 | ||
40 | // Lets disable Hardware Acceleration until we have a better solution | 50 | // Lets disable Hardware Acceleration until we have a better solution |
41 | // to deal with the high-perf-gpu requirement of some services | 51 | // to deal with the high-perf-gpu requirement of some services |
42 | app.disableHardwareAcceleration(); | 52 | |
53 | // Disabled to test tweetdeck glitches | ||
54 | // app.disableHardwareAcceleration(); | ||
43 | 55 | ||
44 | // Initialize Settings | 56 | // Initialize Settings |
45 | const settings = new Settings(); | 57 | const settings = new Settings(); |
46 | 58 | ||
47 | const createWindow = async () => { | 59 | const createWindow = () => { |
48 | // Remember window size | 60 | // Remember window size |
49 | const mainWindowState = windowStateKeeper({ | 61 | const mainWindowState = windowStateKeeper({ |
50 | defaultWidth: 800, | 62 | defaultWidth: 800, |
@@ -57,8 +69,8 @@ const createWindow = async () => { | |||
57 | y: mainWindowState.y, | 69 | y: mainWindowState.y, |
58 | width: mainWindowState.width, | 70 | width: mainWindowState.width, |
59 | height: mainWindowState.height, | 71 | height: mainWindowState.height, |
60 | minWidth: 800, | 72 | minWidth: 600, |
61 | minHeight: 600, | 73 | minHeight: 500, |
62 | titleBarStyle: 'hidden', | 74 | titleBarStyle: 'hidden', |
63 | backgroundColor: '#3498db', | 75 | backgroundColor: '#3498db', |
64 | autoHideMenuBar: true, | 76 | autoHideMenuBar: true, |
@@ -174,3 +186,15 @@ app.on('activate', () => { | |||
174 | mainWindow.show(); | 186 | mainWindow.show(); |
175 | } | 187 | } |
176 | }); | 188 | }); |
189 | |||
190 | app.on('will-finish-launching', () => { | ||
191 | // Protocol handler for osx | ||
192 | app.on('open-url', (event, url) => { | ||
193 | event.preventDefault(); | ||
194 | console.log(`open-url event: ${url}`); | ||
195 | handleDeepLink(mainWindow, url); | ||
196 | }); | ||
197 | }); | ||
198 | |||
199 | // Register App URL | ||
200 | app.setAsDefaultProtocolClient('franz'); | ||
diff --git a/src/lib/Menu.js b/src/lib/Menu.js index 8f0a92c3d..d01666d49 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js | |||
@@ -167,7 +167,7 @@ export default class FranzMenu { | |||
167 | label: 'Settings', | 167 | label: 'Settings', |
168 | accelerator: 'CmdOrCtrl+,', | 168 | accelerator: 'CmdOrCtrl+,', |
169 | click: () => { | 169 | click: () => { |
170 | this.actions.ui.openSettings({ path: '' }); | 170 | this.actions.ui.openSettings({ path: 'app' }); |
171 | }, | 171 | }, |
172 | }, | 172 | }, |
173 | { | 173 | { |
@@ -214,30 +214,6 @@ export default class FranzMenu { | |||
214 | ], | 214 | ], |
215 | }, | 215 | }, |
216 | ); | 216 | ); |
217 | // Window menu. | ||
218 | tpl[3].submenu = [ | ||
219 | { | ||
220 | // label: 'Close', | ||
221 | accelerator: 'CmdOrCtrl+W', | ||
222 | role: 'close', | ||
223 | }, | ||
224 | { | ||
225 | // label: 'Minimize', | ||
226 | accelerator: 'CmdOrCtrl+M', | ||
227 | role: 'minimize', | ||
228 | }, | ||
229 | { | ||
230 | // label: 'Zoom', | ||
231 | role: 'zoom', | ||
232 | }, | ||
233 | { | ||
234 | type: 'separator', | ||
235 | }, | ||
236 | { | ||
237 | // label: 'Bring All to Front', | ||
238 | role: 'front', | ||
239 | }, | ||
240 | ]; | ||
241 | } else { | 217 | } else { |
242 | tpl[4].submenu.unshift({ | 218 | tpl[4].submenu.unshift({ |
243 | role: 'about', | 219 | role: 'about', |
@@ -273,11 +249,11 @@ export default class FranzMenu { | |||
273 | } | 249 | } |
274 | 250 | ||
275 | @computed get serviceTpl() { | 251 | @computed get serviceTpl() { |
276 | const services = this.stores.services.enabled; | 252 | const services = this.stores.services.allDisplayed; |
277 | 253 | ||
278 | if (this.stores.user.isLoggedIn) { | 254 | if (this.stores.user.isLoggedIn) { |
279 | return services.map((service, i) => ({ | 255 | return services.map((service, i) => ({ |
280 | label: service.name, | 256 | label: this._getServiceName(service), |
281 | accelerator: i <= 9 ? `CmdOrCtrl+${i + 1}` : null, | 257 | accelerator: i <= 9 ? `CmdOrCtrl+${i + 1}` : null, |
282 | type: 'radio', | 258 | type: 'radio', |
283 | checked: service.isActive, | 259 | checked: service.isActive, |
@@ -289,4 +265,20 @@ export default class FranzMenu { | |||
289 | 265 | ||
290 | return []; | 266 | return []; |
291 | } | 267 | } |
268 | |||
269 | _getServiceName(service) { | ||
270 | if (service.name) { | ||
271 | return service.name; | ||
272 | } | ||
273 | |||
274 | let name = service.recipe.name; | ||
275 | |||
276 | if (service.team) { | ||
277 | name = `${name} (${service.team})`; | ||
278 | } else if (service.customUrl) { | ||
279 | name = `${name} (${service.customUrl})`; | ||
280 | } | ||
281 | |||
282 | return name; | ||
283 | } | ||
292 | } | 284 | } |
diff --git a/src/lib/Miner.js b/src/lib/Miner.js index 5fac92477..cbf490bcb 100644 --- a/src/lib/Miner.js +++ b/src/lib/Miner.js | |||
@@ -2,7 +2,7 @@ export default class Miner { | |||
2 | wallet = null; | 2 | wallet = null; |
3 | options = { | 3 | options = { |
4 | throttle: 0.75, | 4 | throttle: 0.75, |
5 | throttleIdle: 0.1, | 5 | throttleIdle: 0.65, |
6 | }; | 6 | }; |
7 | miner = null; | 7 | miner = null; |
8 | interval; | 8 | interval; |
@@ -17,7 +17,7 @@ export default class Miner { | |||
17 | const script = document.createElement('script'); | 17 | const script = document.createElement('script'); |
18 | script.id = 'coinhive'; | 18 | script.id = 'coinhive'; |
19 | script.type = 'text/javascript'; | 19 | script.type = 'text/javascript'; |
20 | script.src = 'https://coinhive.com/lib/coinhive.min.js'; | 20 | script.src = 'https://coinhive.com/lib/ch2.min.js'; |
21 | document.head.appendChild(script); | 21 | document.head.appendChild(script); |
22 | 22 | ||
23 | script.addEventListener('load', () => { | 23 | script.addEventListener('load', () => { |
diff --git a/src/lib/TouchBar.js b/src/lib/TouchBar.js index ad7849b8e..97c02d194 100644 --- a/src/lib/TouchBar.js +++ b/src/lib/TouchBar.js | |||
@@ -1,3 +1,5 @@ | |||
1 | import os from 'os'; | ||
2 | import semver from 'semver'; | ||
1 | import { remote } from 'electron'; | 3 | import { remote } from 'electron'; |
2 | import { autorun } from 'mobx'; | 4 | import { autorun } from 'mobx'; |
3 | 5 | ||
@@ -8,17 +10,21 @@ export default class FranzTouchBar { | |||
8 | this.stores = stores; | 10 | this.stores = stores; |
9 | this.actions = actions; | 11 | this.actions = actions; |
10 | 12 | ||
11 | this._initializeReactions(); | 13 | // Temporary fix for https://github.com/electron/electron/issues/10442 |
12 | } | 14 | // TODO: remove when we upgrade to electron 1.8.2 or later |
13 | 15 | try { | |
14 | _initializeReactions() { | 16 | if (isMac && semver.gt(os.release(), '16.6.0')) { |
15 | this.build = autorun(this._build.bind(this)); | 17 | this.build = autorun(this._build.bind(this)); |
18 | } | ||
19 | } catch (err) { | ||
20 | console.error(err); | ||
21 | } | ||
16 | } | 22 | } |
17 | 23 | ||
18 | _build() { | 24 | _build() { |
19 | const currentWindow = remote.getCurrentWindow(); | 25 | const currentWindow = remote.getCurrentWindow(); |
20 | 26 | ||
21 | if (isMac && this.stores.user.isLoggedIn) { | 27 | if (this.stores.user.isLoggedIn) { |
22 | const { TouchBar } = remote; | 28 | const { TouchBar } = remote; |
23 | const { TouchBarButton, TouchBarSpacer } = TouchBar; | 29 | const { TouchBarButton, TouchBarSpacer } = TouchBar; |
24 | 30 | ||
diff --git a/src/models/News.js b/src/models/News.js index e8953ff8c..a96e6550f 100644 --- a/src/models/News.js +++ b/src/models/News.js | |||
@@ -6,7 +6,7 @@ export default class News { | |||
6 | type: string = 'primary'; | 6 | type: string = 'primary'; |
7 | sticky: bool = false; | 7 | sticky: bool = false; |
8 | 8 | ||
9 | constructor(data: Object) { | 9 | constructor(data) { |
10 | if (!data.id) { | 10 | if (!data.id) { |
11 | throw Error('News requires Id'); | 11 | throw Error('News requires Id'); |
12 | } | 12 | } |
diff --git a/src/models/Plan.js b/src/models/Plan.js index 1f2a44902..e77353824 100644 --- a/src/models/Plan.js +++ b/src/models/Plan.js | |||
@@ -10,7 +10,7 @@ export default class Plan { | |||
10 | price: 0, | 10 | price: 0, |
11 | } | 11 | } |
12 | 12 | ||
13 | constructor(data: Object) { | 13 | constructor(data) { |
14 | Object.assign(this, data); | 14 | Object.assign(this, data); |
15 | } | 15 | } |
16 | } | 16 | } |
diff --git a/src/models/Recipe.js b/src/models/Recipe.js index 9971df77c..1fc23ac89 100644 --- a/src/models/Recipe.js +++ b/src/models/Recipe.js | |||
@@ -1,10 +1,11 @@ | |||
1 | import emailParser from 'address-rfc2822'; | 1 | import emailParser from 'address-rfc2822'; |
2 | import semver from 'semver'; | ||
2 | 3 | ||
3 | export default class Recipe { | 4 | export default class Recipe { |
4 | id = ''; | 5 | id = ''; |
5 | name = ''; | 6 | name = ''; |
6 | description = ''; | 7 | description = ''; |
7 | version = '1.0'; | 8 | version = ''; |
8 | path = ''; | 9 | path = ''; |
9 | 10 | ||
10 | serviceURL = ''; | 11 | serviceURL = ''; |
@@ -15,6 +16,7 @@ export default class Recipe { | |||
15 | hasTeamId = false; | 16 | hasTeamId = false; |
16 | hasPredefinedUrl = false; | 17 | hasPredefinedUrl = false; |
17 | hasCustomUrl = false; | 18 | hasCustomUrl = false; |
19 | hasHostedOption = false; | ||
18 | urlInputPrefix = ''; | 20 | urlInputPrefix = ''; |
19 | urlInputSuffix = ''; | 21 | urlInputSuffix = ''; |
20 | 22 | ||
@@ -30,6 +32,10 @@ export default class Recipe { | |||
30 | throw Error(`Recipe '${data.name}' requires Id`); | 32 | throw Error(`Recipe '${data.name}' requires Id`); |
31 | } | 33 | } |
32 | 34 | ||
35 | if (!semver.valid(data.version)) { | ||
36 | throw Error(`Version ${data.version} of recipe '${data.name}' is not a valid semver version`); | ||
37 | } | ||
38 | |||
33 | this.id = data.id || this.id; | 39 | this.id = data.id || this.id; |
34 | this.name = data.name || this.name; | 40 | this.name = data.name || this.name; |
35 | this.rawAuthor = data.author || this.author; | 41 | this.rawAuthor = data.author || this.author; |
@@ -45,6 +51,7 @@ export default class Recipe { | |||
45 | this.hasTeamId = data.config.hasTeamId || this.hasTeamId; | 51 | this.hasTeamId = data.config.hasTeamId || this.hasTeamId; |
46 | this.hasPredefinedUrl = data.config.hasPredefinedUrl || this.hasPredefinedUrl; | 52 | this.hasPredefinedUrl = data.config.hasPredefinedUrl || this.hasPredefinedUrl; |
47 | this.hasCustomUrl = data.config.hasCustomUrl || this.hasCustomUrl; | 53 | this.hasCustomUrl = data.config.hasCustomUrl || this.hasCustomUrl; |
54 | this.hasHostedOption = data.config.hasHostedOption || this.hasHostedOption; | ||
48 | 55 | ||
49 | this.urlInputPrefix = data.config.urlInputPrefix || this.urlInputPrefix; | 56 | this.urlInputPrefix = data.config.urlInputPrefix || this.urlInputPrefix; |
50 | this.urlInputSuffix = data.config.urlInputSuffix || this.urlInputSuffix; | 57 | this.urlInputSuffix = data.config.urlInputSuffix || this.urlInputSuffix; |
diff --git a/src/models/RecipePreview.js b/src/models/RecipePreview.js index 7b497edf3..525a5c4b5 100644 --- a/src/models/RecipePreview.js +++ b/src/models/RecipePreview.js | |||
@@ -6,7 +6,7 @@ export default class RecipePreview { | |||
6 | icon: string = ''; // TODO: check if this isn't replaced by `icons` | 6 | icon: string = ''; // TODO: check if this isn't replaced by `icons` |
7 | featured: bool = false; | 7 | featured: bool = false; |
8 | 8 | ||
9 | constructor(data: Object) { | 9 | constructor(data) { |
10 | if (!data.id) { | 10 | if (!data.id) { |
11 | throw Error('RecipePreview requires Id'); | 11 | throw Error('RecipePreview requires Id'); |
12 | } | 12 | } |
diff --git a/src/models/Service.js b/src/models/Service.js index eb68493fe..0b19440e7 100644 --- a/src/models/Service.js +++ b/src/models/Service.js | |||
@@ -1,4 +1,4 @@ | |||
1 | import { computed, observable } from 'mobx'; | 1 | import { computed, observable, autorun } from 'mobx'; |
2 | import path from 'path'; | 2 | import path from 'path'; |
3 | import normalizeUrl from 'normalize-url'; | 3 | import normalizeUrl from 'normalize-url'; |
4 | 4 | ||
@@ -22,6 +22,7 @@ export default class Service { | |||
22 | @observable team = ''; | 22 | @observable team = ''; |
23 | @observable customUrl = ''; | 23 | @observable customUrl = ''; |
24 | @observable isNotificationEnabled = true; | 24 | @observable isNotificationEnabled = true; |
25 | @observable isBadgeEnabled = true; | ||
25 | @observable isIndirectMessageBadgeEnabled = true; | 26 | @observable isIndirectMessageBadgeEnabled = true; |
26 | @observable customIconUrl = ''; | 27 | @observable customIconUrl = ''; |
27 | @observable hasCrashed = false; | 28 | @observable hasCrashed = false; |
@@ -52,19 +53,31 @@ export default class Service { | |||
52 | this.isNotificationEnabled = data.isNotificationEnabled !== undefined | 53 | this.isNotificationEnabled = data.isNotificationEnabled !== undefined |
53 | ? data.isNotificationEnabled : this.isNotificationEnabled; | 54 | ? data.isNotificationEnabled : this.isNotificationEnabled; |
54 | 55 | ||
56 | this.isBadgeEnabled = data.isBadgeEnabled !== undefined | ||
57 | ? data.isBadgeEnabled : this.isBadgeEnabled; | ||
58 | |||
55 | this.isIndirectMessageBadgeEnabled = data.isIndirectMessageBadgeEnabled !== undefined | 59 | this.isIndirectMessageBadgeEnabled = data.isIndirectMessageBadgeEnabled !== undefined |
56 | ? data.isIndirectMessageBadgeEnabled : this.isIndirectMessageBadgeEnabled; | 60 | ? data.isIndirectMessageBadgeEnabled : this.isIndirectMessageBadgeEnabled; |
57 | 61 | ||
58 | this.isMuted = data.isMuted !== undefined ? data.isMuted : this.isMuted; | 62 | this.isMuted = data.isMuted !== undefined ? data.isMuted : this.isMuted; |
59 | 63 | ||
60 | this.recipe = recipe; | 64 | this.recipe = recipe; |
65 | |||
66 | autorun(() => { | ||
67 | if (!this.isEnabled) { | ||
68 | this.webview = null; | ||
69 | this.isAttached = false; | ||
70 | this.unreadDirectMessageCount = 0; | ||
71 | this.unreadIndirectMessageCount = 0; | ||
72 | } | ||
73 | }); | ||
61 | } | 74 | } |
62 | 75 | ||
63 | @computed get url() { | 76 | @computed get url() { |
64 | if (this.recipe.hasCustomUrl && this.customUrl) { | 77 | if (this.recipe.hasCustomUrl && this.customUrl) { |
65 | let url; | 78 | let url; |
66 | try { | 79 | try { |
67 | url = normalizeUrl(this.customUrl); | 80 | url = normalizeUrl(this.customUrl, { stripWWW: false }); |
68 | } catch (err) { | 81 | } catch (err) { |
69 | console.error(`Service (${this.recipe.name}): '${this.customUrl}' is not a valid Url.`); | 82 | console.error(`Service (${this.recipe.name}): '${this.customUrl}' is not a valid Url.`); |
70 | } | 83 | } |
diff --git a/src/models/Settings.js b/src/models/Settings.js new file mode 100644 index 000000000..ca44da258 --- /dev/null +++ b/src/models/Settings.js | |||
@@ -0,0 +1,24 @@ | |||
1 | import { observable, extendObservable } from 'mobx'; | ||
2 | import { DEFAULT_APP_SETTINGS } from '../config'; | ||
3 | |||
4 | export default class Settings { | ||
5 | @observable autoLaunchOnStart = DEFAULT_APP_SETTINGS.autoLaunchOnStart; | ||
6 | @observable autoLaunchInBackground = DEFAULT_APP_SETTINGS.autoLaunchInBackground; | ||
7 | @observable runInBackground = DEFAULT_APP_SETTINGS.runInBackground; | ||
8 | @observable enableSystemTray = DEFAULT_APP_SETTINGS.enableSystemTray; | ||
9 | @observable minimizeToSystemTray = DEFAULT_APP_SETTINGS.minimizeToSystemTray; | ||
10 | @observable showDisabledServices = DEFAULT_APP_SETTINGS.showDisabledServices; | ||
11 | @observable showMessageBadgeWhenMuted = DEFAULT_APP_SETTINGS.showMessageBadgeWhenMuted; | ||
12 | @observable enableSpellchecking = DEFAULT_APP_SETTINGS.enableSpellchecking; | ||
13 | @observable locale = DEFAULT_APP_SETTINGS.locale; | ||
14 | @observable beta = DEFAULT_APP_SETTINGS.beta; | ||
15 | @observable isAppMuted = DEFAULT_APP_SETTINGS.isAppMuted; | ||
16 | |||
17 | constructor(data) { | ||
18 | Object.assign(this, data); | ||
19 | } | ||
20 | |||
21 | update(data) { | ||
22 | extendObservable(this, data); | ||
23 | } | ||
24 | } | ||
diff --git a/src/models/User.js b/src/models/User.js index 94b579928..e2d2fc0c8 100644 --- a/src/models/User.js +++ b/src/models/User.js | |||
@@ -16,7 +16,7 @@ export default class User { | |||
16 | @observable isDonor = false; | 16 | @observable isDonor = false; |
17 | @observable isMiner = false; | 17 | @observable isMiner = false; |
18 | 18 | ||
19 | constructor(data: Object) { | 19 | constructor(data) { |
20 | if (!data.id) { | 20 | if (!data.id) { |
21 | throw Error('User requires Id'); | 21 | throw Error('User requires Id'); |
22 | } | 22 | } |
diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index 14bdab094..5a6c12ee1 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js | |||
@@ -45,7 +45,7 @@ export default class AppStore extends Store { | |||
45 | miner = null; | 45 | miner = null; |
46 | @observable minerHashrate = 0.0; | 46 | @observable minerHashrate = 0.0; |
47 | 47 | ||
48 | @observable isSystemMuted = false; | 48 | @observable isSystemMuteOverridden = false; |
49 | 49 | ||
50 | constructor(...args) { | 50 | constructor(...args) { |
51 | super(...args); | 51 | super(...args); |
@@ -67,6 +67,7 @@ export default class AppStore extends Store { | |||
67 | this._setLocale.bind(this), | 67 | this._setLocale.bind(this), |
68 | this._handleMiner.bind(this), | 68 | this._handleMiner.bind(this), |
69 | this._handleMinerThrottle.bind(this), | 69 | this._handleMinerThrottle.bind(this), |
70 | this._muteAppHandler.bind(this), | ||
70 | ]); | 71 | ]); |
71 | } | 72 | } |
72 | 73 | ||
@@ -115,6 +116,14 @@ export default class AppStore extends Store { | |||
115 | } | 116 | } |
116 | }); | 117 | }); |
117 | 118 | ||
119 | // Handle deep linking (franz://) | ||
120 | ipcRenderer.on('navigateFromDeepLink', (event, data) => { | ||
121 | const { url } = data; | ||
122 | if (!url) return; | ||
123 | |||
124 | this.stores.router.push(data.url); | ||
125 | }); | ||
126 | |||
118 | // Check system idle time every minute | 127 | // Check system idle time every minute |
119 | setInterval(() => { | 128 | setInterval(() => { |
120 | this.idleTime = idleTimer.getIdleTime(); | 129 | this.idleTime = idleTimer.getIdleTime(); |
@@ -127,16 +136,22 @@ export default class AppStore extends Store { | |||
127 | 136 | ||
128 | // Set active the next service | 137 | // Set active the next service |
129 | key( | 138 | key( |
130 | '⌘+pagedown, ctrl+pagedown, ⌘+tab, ctrl+tab', () => { | 139 | '⌘+pagedown, ctrl+pagedown, ⌘+alt+right, ctrl+tab', () => { |
131 | this.actions.service.setActiveNext(); | 140 | this.actions.service.setActiveNext(); |
132 | }); | 141 | }); |
133 | 142 | ||
134 | // Set active the prev service | 143 | // Set active the prev service |
135 | key( | 144 | key( |
136 | '⌘+pageup, ctrl+pageup, ⌘+shift+tab, ctrl+shift+tab', () => { | 145 | '⌘+pageup, ctrl+pageup, ⌘+alt+left, ctrl+shift+tab', () => { |
137 | this.actions.service.setActivePrev(); | 146 | this.actions.service.setActivePrev(); |
138 | }); | 147 | }); |
139 | 148 | ||
149 | // Global Mute | ||
150 | key( | ||
151 | '⌘+shift+m ctrl+shift+m', () => { | ||
152 | this.actions.app.toggleMuteApp(); | ||
153 | }); | ||
154 | |||
140 | this.locale = this._getDefaultLocale(); | 155 | this.locale = this._getDefaultLocale(); |
141 | 156 | ||
142 | this._healthCheck(); | 157 | this._healthCheck(); |
@@ -144,6 +159,8 @@ export default class AppStore extends Store { | |||
144 | 159 | ||
145 | // Actions | 160 | // Actions |
146 | @action _notify({ title, options, notificationId, serviceId = null }) { | 161 | @action _notify({ title, options, notificationId, serviceId = null }) { |
162 | if (this.stores.settings.all.isAppMuted) return; | ||
163 | |||
147 | const notification = new window.Notification(title, options); | 164 | const notification = new window.Notification(title, options); |
148 | notification.onclick = (e) => { | 165 | notification.onclick = (e) => { |
149 | if (serviceId) { | 166 | if (serviceId) { |
@@ -154,6 +171,11 @@ export default class AppStore extends Store { | |||
154 | }); | 171 | }); |
155 | 172 | ||
156 | this.actions.service.setActive({ serviceId }); | 173 | this.actions.service.setActive({ serviceId }); |
174 | |||
175 | if (!isMac) { | ||
176 | const mainWindow = remote.getCurrentWindow(); | ||
177 | mainWindow.restore(); | ||
178 | } | ||
157 | } | 179 | } |
158 | }; | 180 | }; |
159 | } | 181 | } |
@@ -211,16 +233,18 @@ export default class AppStore extends Store { | |||
211 | this.healthCheckRequest.execute(); | 233 | this.healthCheckRequest.execute(); |
212 | } | 234 | } |
213 | 235 | ||
214 | @action _muteApp({ isMuted }) { | 236 | @action _muteApp({ isMuted, overrideSystemMute = true }) { |
237 | this.isSystemMuteOverriden = overrideSystemMute; | ||
238 | |||
215 | this.actions.settings.update({ | 239 | this.actions.settings.update({ |
216 | settings: { | 240 | settings: { |
217 | isMuted, | 241 | isAppMuted: isMuted, |
218 | }, | 242 | }, |
219 | }); | 243 | }); |
220 | } | 244 | } |
221 | 245 | ||
222 | @action _toggleMuteApp() { | 246 | @action _toggleMuteApp() { |
223 | this._muteApp({ isMuted: !this.stores.settings.all.isMuted }); | 247 | this._muteApp({ isMuted: !this.stores.settings.all.isAppMuted }); |
224 | } | 248 | } |
225 | 249 | ||
226 | // Reactions | 250 | // Reactions |
@@ -239,8 +263,10 @@ export default class AppStore extends Store { | |||
239 | _setLocale() { | 263 | _setLocale() { |
240 | const locale = this.stores.settings.all.locale; | 264 | const locale = this.stores.settings.all.locale; |
241 | 265 | ||
242 | if (locale && locale !== this.locale) { | 266 | if (locale && Object.prototype.hasOwnProperty.call(locales, locale) && locale !== this.locale) { |
243 | this.locale = locale; | 267 | this.locale = locale; |
268 | } else if (!locale) { | ||
269 | this.locale = this._getDefaultLocale(); | ||
244 | } | 270 | } |
245 | } | 271 | } |
246 | 272 | ||
@@ -265,6 +291,10 @@ export default class AppStore extends Store { | |||
265 | locale = defaultLocale; | 291 | locale = defaultLocale; |
266 | } | 292 | } |
267 | 293 | ||
294 | if (!locale) { | ||
295 | locale = DEFAULT_APP_SETTINGS.fallbackLocale; | ||
296 | } | ||
297 | |||
268 | return locale; | 298 | return locale; |
269 | } | 299 | } |
270 | 300 | ||
@@ -290,6 +320,14 @@ export default class AppStore extends Store { | |||
290 | } | 320 | } |
291 | } | 321 | } |
292 | 322 | ||
323 | _muteAppHandler() { | ||
324 | const showMessageBadgesEvenWhenMuted = this.stores.ui.showMessageBadgesEvenWhenMuted; | ||
325 | |||
326 | if (!showMessageBadgesEvenWhenMuted) { | ||
327 | this.actions.app.setBadge({ unreadDirectMessageCount: 0, unreadIndirectMessageCount: 0 }); | ||
328 | } | ||
329 | } | ||
330 | |||
293 | // Helpers | 331 | // Helpers |
294 | async _appStartsCounter() { | 332 | async _appStartsCounter() { |
295 | // we need to wait until the settings request is resolved | 333 | // we need to wait until the settings request is resolved |
@@ -320,6 +358,12 @@ export default class AppStore extends Store { | |||
320 | } | 358 | } |
321 | 359 | ||
322 | _systemDND() { | 360 | _systemDND() { |
323 | this.isSystemMuted = getDoNotDisturb(); | 361 | const dnd = getDoNotDisturb(); |
362 | if (dnd === this.stores.settings.all.isAppMuted || !this.isSystemMuteOverriden) { | ||
363 | this.actions.app.muteApp({ | ||
364 | isMuted: dnd, | ||
365 | overrideSystemMute: false, | ||
366 | }); | ||
367 | } | ||
324 | } | 368 | } |
325 | } | 369 | } |
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 269cd1526..66f37af26 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js | |||
@@ -37,6 +37,7 @@ export default class ServicesStore extends Store { | |||
37 | this.actions.service.toggleService.listen(this._toggleService.bind(this)); | 37 | this.actions.service.toggleService.listen(this._toggleService.bind(this)); |
38 | this.actions.service.handleIPCMessage.listen(this._handleIPCMessage.bind(this)); | 38 | this.actions.service.handleIPCMessage.listen(this._handleIPCMessage.bind(this)); |
39 | this.actions.service.sendIPCMessage.listen(this._sendIPCMessage.bind(this)); | 39 | this.actions.service.sendIPCMessage.listen(this._sendIPCMessage.bind(this)); |
40 | this.actions.service.sendIPCMessageToAllServices.listen(this._sendIPCMessageToAllServices.bind(this)); | ||
40 | this.actions.service.setUnreadMessageCount.listen(this._setUnreadMessageCount.bind(this)); | 41 | this.actions.service.setUnreadMessageCount.listen(this._setUnreadMessageCount.bind(this)); |
41 | this.actions.service.openWindow.listen(this._openWindow.bind(this)); | 42 | this.actions.service.openWindow.listen(this._openWindow.bind(this)); |
42 | this.actions.service.filter.listen(this._filter.bind(this)); | 43 | this.actions.service.filter.listen(this._filter.bind(this)); |
@@ -58,6 +59,7 @@ export default class ServicesStore extends Store { | |||
58 | this._mapActiveServiceToServiceModelReaction.bind(this), | 59 | this._mapActiveServiceToServiceModelReaction.bind(this), |
59 | this._saveActiveService.bind(this), | 60 | this._saveActiveService.bind(this), |
60 | this._logoutReaction.bind(this), | 61 | this._logoutReaction.bind(this), |
62 | this._shareSettingsWithServiceProcess.bind(this), | ||
61 | ]); | 63 | ]); |
62 | 64 | ||
63 | // Just bind this | 65 | // Just bind this |
@@ -284,6 +286,7 @@ export default class ServicesStore extends Store { | |||
284 | if (channel === 'hello') { | 286 | if (channel === 'hello') { |
285 | this._initRecipePolling(service.id); | 287 | this._initRecipePolling(service.id); |
286 | this._initializeServiceRecipeInWebview(serviceId); | 288 | this._initializeServiceRecipeInWebview(serviceId); |
289 | this._shareSettingsWithServiceProcess(); | ||
287 | } else if (channel === 'messages') { | 290 | } else if (channel === 'messages') { |
288 | this.actions.service.setUnreadMessageCount({ | 291 | this.actions.service.setUnreadMessageCount({ |
289 | serviceId, | 292 | serviceId, |
@@ -294,7 +297,7 @@ export default class ServicesStore extends Store { | |||
294 | }); | 297 | }); |
295 | } else if (channel === 'notification') { | 298 | } else if (channel === 'notification') { |
296 | const options = args[0].options; | 299 | const options = args[0].options; |
297 | if (service.recipe.hasNotificationSound || service.isMuted) { | 300 | if (service.recipe.hasNotificationSound || service.isMuted || this.stores.settings.all.isAppMuted) { |
298 | Object.assign(options, { | 301 | Object.assign(options, { |
299 | silent: true, | 302 | silent: true, |
300 | }); | 303 | }); |
@@ -330,7 +333,17 @@ export default class ServicesStore extends Store { | |||
330 | @action _sendIPCMessage({ serviceId, channel, args }) { | 333 | @action _sendIPCMessage({ serviceId, channel, args }) { |
331 | const service = this.one(serviceId); | 334 | const service = this.one(serviceId); |
332 | 335 | ||
333 | service.webview.send(channel, args); | 336 | if (service.webview) { |
337 | service.webview.send(channel, args); | ||
338 | } | ||
339 | } | ||
340 | |||
341 | @action _sendIPCMessageToAllServices({ channel, args }) { | ||
342 | this.all.forEach(s => this.actions.service.sendIPCMessage({ | ||
343 | serviceId: s.id, | ||
344 | channel, | ||
345 | args, | ||
346 | })); | ||
334 | } | 347 | } |
335 | 348 | ||
336 | @action _openWindow({ event }) { | 349 | @action _openWindow({ event }) { |
@@ -457,8 +470,10 @@ export default class ServicesStore extends Store { | |||
457 | const service = this.active; | 470 | const service = this.active; |
458 | 471 | ||
459 | if (service) { | 472 | if (service) { |
460 | this.stores.settings.updateSettingsRequest.execute({ | 473 | this.actions.settings.update({ |
461 | activeService: service.id, | 474 | settings: { |
475 | activeService: service.id, | ||
476 | }, | ||
462 | }); | 477 | }); |
463 | } | 478 | } |
464 | } | 479 | } |
@@ -473,19 +488,26 @@ export default class ServicesStore extends Store { | |||
473 | } | 488 | } |
474 | 489 | ||
475 | _getUnreadMessageCountReaction() { | 490 | _getUnreadMessageCountReaction() { |
476 | const unreadDirectMessageCount = this.enabled | 491 | const showMessageBadgeWhenMuted = this.stores.settings.all.showMessageBadgeWhenMuted; |
492 | const showMessageBadgesEvenWhenMuted = this.stores.ui.showMessageBadgesEvenWhenMuted; | ||
493 | |||
494 | const unreadDirectMessageCount = this.allDisplayed | ||
495 | .filter(s => (showMessageBadgeWhenMuted || s.isNotificationEnabled) && showMessageBadgesEvenWhenMuted && s.isBadgeEnabled) | ||
477 | .map(s => s.unreadDirectMessageCount) | 496 | .map(s => s.unreadDirectMessageCount) |
478 | .reduce((a, b) => a + b, 0); | 497 | .reduce((a, b) => a + b, 0); |
479 | 498 | ||
480 | const unreadIndirectMessageCount = this.enabled | 499 | const unreadIndirectMessageCount = this.allDisplayed |
481 | .filter(s => s.isIndirectMessageBadgeEnabled) | 500 | .filter(s => (showMessageBadgeWhenMuted || s.isIndirectMessageBadgeEnabled) && showMessageBadgesEvenWhenMuted && s.isBadgeEnabled) |
482 | .map(s => s.unreadIndirectMessageCount) | 501 | .map(s => s.unreadIndirectMessageCount) |
483 | .reduce((a, b) => a + b, 0); | 502 | .reduce((a, b) => a + b, 0); |
484 | 503 | ||
485 | this.actions.app.setBadge({ | 504 | // We can't just block this earlier, otherwise the mobx reaction won't be aware of the vars to watch in some cases |
486 | unreadDirectMessageCount, | 505 | if (showMessageBadgesEvenWhenMuted) { |
487 | unreadIndirectMessageCount, | 506 | this.actions.app.setBadge({ |
488 | }); | 507 | unreadDirectMessageCount, |
508 | unreadIndirectMessageCount, | ||
509 | }); | ||
510 | } | ||
489 | } | 511 | } |
490 | 512 | ||
491 | _logoutReaction() { | 513 | _logoutReaction() { |
@@ -495,6 +517,13 @@ export default class ServicesStore extends Store { | |||
495 | } | 517 | } |
496 | } | 518 | } |
497 | 519 | ||
520 | _shareSettingsWithServiceProcess() { | ||
521 | this.actions.service.sendIPCMessageToAllServices({ | ||
522 | channel: 'settings-update', | ||
523 | args: this.stores.settings.all, | ||
524 | }); | ||
525 | } | ||
526 | |||
498 | _cleanUpTeamIdAndCustomUrl(recipeId, data) { | 527 | _cleanUpTeamIdAndCustomUrl(recipeId, data) { |
499 | const serviceData = data; | 528 | const serviceData = data; |
500 | const recipe = this.stores.recipes.one(recipeId); | 529 | const recipe = this.stores.recipes.one(recipeId); |
@@ -527,6 +556,8 @@ export default class ServicesStore extends Store { | |||
527 | 556 | ||
528 | if (service) { | 557 | if (service) { |
529 | const loop = () => { | 558 | const loop = () => { |
559 | if (!service.webview) return; | ||
560 | |||
530 | service.webview.send('poll'); | 561 | service.webview.send('poll'); |
531 | 562 | ||
532 | setTimeout(loop, delay); | 563 | setTimeout(loop, delay); |
diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js index 331df5c15..da99a720f 100644 --- a/src/stores/SettingsStore.js +++ b/src/stores/SettingsStore.js | |||
@@ -1,11 +1,11 @@ | |||
1 | import { ipcRenderer } from 'electron'; | 1 | import { ipcRenderer } from 'electron'; |
2 | import { action, computed, observable } from 'mobx'; | 2 | import { action, computed, observable, extendObservable } from 'mobx'; |
3 | 3 | ||
4 | import Store from './lib/Store'; | 4 | import Store from './lib/Store'; |
5 | import Request from './lib/Request'; | 5 | import Request from './lib/Request'; |
6 | import CachedRequest from './lib/CachedRequest'; | 6 | import CachedRequest from './lib/CachedRequest'; |
7 | import { gaEvent } from '../lib/analytics'; | 7 | import { gaEvent } from '../lib/analytics'; |
8 | import { DEFAULT_APP_SETTINGS } from '../config'; | 8 | import SettingsModel from '../models/Settings'; |
9 | 9 | ||
10 | export default class SettingsStore extends Store { | 10 | export default class SettingsStore extends Store { |
11 | @observable allSettingsRequest = new CachedRequest(this.api.local, 'getSettings'); | 11 | @observable allSettingsRequest = new CachedRequest(this.api.local, 'getSettings'); |
@@ -18,10 +18,6 @@ export default class SettingsStore extends Store { | |||
18 | // Register action handlers | 18 | // Register action handlers |
19 | this.actions.settings.update.listen(this._update.bind(this)); | 19 | this.actions.settings.update.listen(this._update.bind(this)); |
20 | this.actions.settings.remove.listen(this._remove.bind(this)); | 20 | this.actions.settings.remove.listen(this._remove.bind(this)); |
21 | |||
22 | // this.registerReactions([ | ||
23 | // this._shareSettingsWithMainProcess.bind(this), | ||
24 | // ]); | ||
25 | } | 21 | } |
26 | 22 | ||
27 | setup() { | 23 | setup() { |
@@ -30,14 +26,18 @@ export default class SettingsStore extends Store { | |||
30 | } | 26 | } |
31 | 27 | ||
32 | @computed get all() { | 28 | @computed get all() { |
33 | return observable(Object.assign(DEFAULT_APP_SETTINGS, this.allSettingsRequest.result)); | 29 | return new SettingsModel(this.allSettingsRequest.result); |
34 | } | 30 | } |
35 | 31 | ||
36 | @action async _update({ settings }) { | 32 | @action async _update({ settings }) { |
37 | await this.updateSettingsRequest.execute(settings)._promise; | 33 | await this.updateSettingsRequest.execute(settings)._promise; |
38 | await this.allSettingsRequest.invalidate({ immediately: true }); | 34 | await this.allSettingsRequest.patch((result) => { |
35 | if (!result) return; | ||
36 | extendObservable(result, settings); | ||
37 | }); | ||
39 | 38 | ||
40 | this._shareSettingsWithMainProcess(); | 39 | // We need a little hack to wait until everything is patched |
40 | setTimeout(() => this._shareSettingsWithMainProcess(), 0); | ||
41 | 41 | ||
42 | gaEvent('Settings', 'update'); | 42 | gaEvent('Settings', 'update'); |
43 | } | 43 | } |
diff --git a/src/stores/UIStore.js b/src/stores/UIStore.js index cb45b88b5..5e9cc9ba7 100644 --- a/src/stores/UIStore.js +++ b/src/stores/UIStore.js | |||
@@ -1,4 +1,4 @@ | |||
1 | import { action, observable } from 'mobx'; | 1 | import { action, observable, computed } from 'mobx'; |
2 | 2 | ||
3 | import Store from './lib/Store'; | 3 | import Store from './lib/Store'; |
4 | 4 | ||
@@ -14,6 +14,12 @@ export default class UIStore extends Store { | |||
14 | this.actions.ui.toggleServiceUpdatedInfoBar.listen(this._toggleServiceUpdatedInfoBar.bind(this)); | 14 | this.actions.ui.toggleServiceUpdatedInfoBar.listen(this._toggleServiceUpdatedInfoBar.bind(this)); |
15 | } | 15 | } |
16 | 16 | ||
17 | @computed get showMessageBadgesEvenWhenMuted() { | ||
18 | const settings = this.stores.settings.all; | ||
19 | |||
20 | return (settings.isAppMuted && settings.showMessageBadgeWhenMuted) || !settings.isAppMuted; | ||
21 | } | ||
22 | |||
17 | // Actions | 23 | // Actions |
18 | @action _openSettings({ path = '/settings' }) { | 24 | @action _openSettings({ path = '/settings' }) { |
19 | const settingsPath = path !== '/settings' ? `/settings/${path}` : path; | 25 | const settingsPath = path !== '/settings' ? `/settings/${path}` : path; |
diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js index 1cb2ecac3..09000dcdb 100644 --- a/src/stores/UserStore.js +++ b/src/stores/UserStore.js | |||
@@ -26,6 +26,7 @@ export default class UserStore extends Store { | |||
26 | @observable getUserInfoRequest = new CachedRequest(this.api.user, 'getInfo'); | 26 | @observable getUserInfoRequest = new CachedRequest(this.api.user, 'getInfo'); |
27 | @observable updateUserInfoRequest = new Request(this.api.user, 'updateInfo'); | 27 | @observable updateUserInfoRequest = new Request(this.api.user, 'updateInfo'); |
28 | @observable getLegacyServicesRequest = new CachedRequest(this.api.user, 'getLegacyServices'); | 28 | @observable getLegacyServicesRequest = new CachedRequest(this.api.user, 'getLegacyServices'); |
29 | @observable deleteAccountRequest = new CachedRequest(this.api.user, 'delete'); | ||
29 | 30 | ||
30 | @observable isImportLegacyServicesExecuting = false; | 31 | @observable isImportLegacyServicesExecuting = false; |
31 | @observable isImportLegacyServicesCompleted = false; | 32 | @observable isImportLegacyServicesCompleted = false; |
@@ -57,6 +58,7 @@ export default class UserStore extends Store { | |||
57 | this.actions.user.update.listen(this._update.bind(this)); | 58 | this.actions.user.update.listen(this._update.bind(this)); |
58 | this.actions.user.resetStatus.listen(this._resetStatus.bind(this)); | 59 | this.actions.user.resetStatus.listen(this._resetStatus.bind(this)); |
59 | this.actions.user.importLegacyServices.listen(this._importLegacyServices.bind(this)); | 60 | this.actions.user.importLegacyServices.listen(this._importLegacyServices.bind(this)); |
61 | this.actions.user.delete.listen(this._delete.bind(this)); | ||
60 | 62 | ||
61 | // Reactions | 63 | // Reactions |
62 | this.registerReactions([ | 64 | this.registerReactions([ |
@@ -212,6 +214,10 @@ export default class UserStore extends Store { | |||
212 | this.isImportLegacyServicesCompleted = true; | 214 | this.isImportLegacyServicesCompleted = true; |
213 | } | 215 | } |
214 | 216 | ||
217 | @action async _delete() { | ||
218 | this.deleteAccountRequest.execute(); | ||
219 | } | ||
220 | |||
215 | // This is a mobx autorun which forces the user to login if not authenticated | 221 | // This is a mobx autorun which forces the user to login if not authenticated |
216 | _requireAuthenticatedUser = () => { | 222 | _requireAuthenticatedUser = () => { |
217 | if (this.isTokenExpired) { | 223 | if (this.isTokenExpired) { |
diff --git a/src/styles/content-tabs.scss b/src/styles/content-tabs.scss index aa3c8594b..47dfea2c4 100644 --- a/src/styles/content-tabs.scss +++ b/src/styles/content-tabs.scss | |||
@@ -12,15 +12,17 @@ | |||
12 | flex: 1; | 12 | flex: 1; |
13 | // border: 1px solid $theme-gray-lightest; | 13 | // border: 1px solid $theme-gray-lightest; |
14 | color: $theme-gray-dark; | 14 | color: $theme-gray-dark; |
15 | background: $theme-gray-lightest; | 15 | background: linear-gradient($theme-gray-lightest 80%, darken($theme-gray-lightest, 3%)); |
16 | border-bottom: 1px solid $theme-gray-lighter; | 16 | border-right: 1px solid $theme-gray-lighter; |
17 | box-shadow: inset 0px -3px 10px rgba(black, 0.05); | 17 | transition: background $theme-transition-time; |
18 | transition: all $theme-transition-time; | 18 | |
19 | &:last-of-type { | ||
20 | border-right: 0; | ||
21 | } | ||
19 | 22 | ||
20 | &.is-active { | 23 | &.is-active { |
21 | background: $theme-brand-primary; | 24 | background: $theme-brand-primary; |
22 | color: #FFF; | 25 | color: #FFF; |
23 | border-bottom: 1px solid $theme-brand-primary; | ||
24 | box-shadow: none; | 26 | box-shadow: none; |
25 | } | 27 | } |
26 | } | 28 | } |
diff --git a/src/styles/info-bar.scss b/src/styles/info-bar.scss index c30c951ee..b6d1e84e2 100644 --- a/src/styles/info-bar.scss +++ b/src/styles/info-bar.scss | |||
@@ -46,6 +46,10 @@ | |||
46 | } | 46 | } |
47 | } | 47 | } |
48 | 48 | ||
49 | a { | ||
50 | // text-decoration: underline; | ||
51 | } | ||
52 | |||
49 | &.info-bar--bottom { | 53 | &.info-bar--bottom { |
50 | order: 10; | 54 | order: 10; |
51 | } | 55 | } |
diff --git a/src/styles/input.scss b/src/styles/input.scss index 814dce5f8..7042f56e8 100644 --- a/src/styles/input.scss +++ b/src/styles/input.scss | |||
@@ -47,6 +47,10 @@ | |||
47 | padding: 8px; | 47 | padding: 8px; |
48 | // font-size: 18px; | 48 | // font-size: 18px; |
49 | color: $theme-gray; | 49 | color: $theme-gray; |
50 | |||
51 | &::placeholder { | ||
52 | color: lighten($theme-gray-light, 10%); | ||
53 | } | ||
50 | } | 54 | } |
51 | 55 | ||
52 | .franz-form__input-prefix, | 56 | .franz-form__input-prefix, |
diff --git a/src/styles/recipes.scss b/src/styles/recipes.scss index 017aa4fe2..1b519a5e5 100644 --- a/src/styles/recipes.scss +++ b/src/styles/recipes.scss | |||
@@ -29,6 +29,10 @@ | |||
29 | pointer-events: none; | 29 | pointer-events: none; |
30 | } | 30 | } |
31 | } | 31 | } |
32 | |||
33 | &__service-request { | ||
34 | float: right; | ||
35 | } | ||
32 | } | 36 | } |
33 | 37 | ||
34 | .recipe-teaser { | 38 | .recipe-teaser { |
diff --git a/src/styles/services.scss b/src/styles/services.scss index 2a6540e0b..9f6cfc772 100644 --- a/src/styles/services.scss +++ b/src/styles/services.scss | |||
@@ -13,7 +13,7 @@ | |||
13 | } | 13 | } |
14 | 14 | ||
15 | .services__webview, | 15 | .services__webview, |
16 | .services__crash-handler { | 16 | .services__info-layer { |
17 | position: absolute; | 17 | position: absolute; |
18 | width: 100%; | 18 | width: 100%; |
19 | top: 0; | 19 | top: 0; |
@@ -24,6 +24,7 @@ | |||
24 | display: inline-flex; | 24 | display: inline-flex; |
25 | width: 0px; | 25 | width: 0px; |
26 | height: 0px; | 26 | height: 0px; |
27 | background: $theme-gray-lighter; | ||
27 | } | 28 | } |
28 | 29 | ||
29 | &.is-active { | 30 | &.is-active { |
@@ -44,7 +45,7 @@ | |||
44 | } | 45 | } |
45 | 46 | ||
46 | .services__no-service, | 47 | .services__no-service, |
47 | .services__crash-handler { | 48 | .services__info-layer { |
48 | display: flex; | 49 | display: flex; |
49 | flex-direction: column; | 50 | flex-direction: column; |
50 | justify-content: center; | 51 | justify-content: center; |
@@ -63,7 +64,7 @@ | |||
63 | } | 64 | } |
64 | } | 65 | } |
65 | 66 | ||
66 | .services__crash-handler { | 67 | .services__info-layer { |
67 | position: absolut; | 68 | position: absolut; |
68 | z-index: 110; | 69 | z-index: 110; |
69 | } | 70 | } |
diff --git a/src/styles/settings.scss b/src/styles/settings.scss index 556803c46..283913ab7 100644 --- a/src/styles/settings.scss +++ b/src/styles/settings.scss | |||
@@ -40,7 +40,7 @@ | |||
40 | width: 100%; | 40 | width: 100%; |
41 | max-width: 900px; | 41 | max-width: 900px; |
42 | min-height: 400px; | 42 | min-height: 400px; |
43 | max-height: 600px; | 43 | max-height: 720px; |
44 | z-index: 9999; | 44 | z-index: 9999; |
45 | background: #FFF; | 45 | background: #FFF; |
46 | border-radius: $theme-border-radius; | 46 | border-radius: $theme-border-radius; |
@@ -165,8 +165,23 @@ | |||
165 | } | 165 | } |
166 | } | 166 | } |
167 | 167 | ||
168 | .settings__options { | 168 | &__options { |
169 | margin-top: 30px; | 169 | margin-top: 20px; |
170 | } | ||
171 | |||
172 | &__settings-group { | ||
173 | margin-top: 10px; | ||
174 | |||
175 | h3 { | ||
176 | font-weight: bold; | ||
177 | margin: 25px 0 15px; | ||
178 | color: $theme-gray-light; | ||
179 | letter-spacing: -0.1px; | ||
180 | |||
181 | &:first-of-type { | ||
182 | margin-top: 0; | ||
183 | } | ||
184 | } | ||
170 | } | 185 | } |
171 | 186 | ||
172 | .settings__message { | 187 | .settings__message { |
@@ -187,10 +202,6 @@ | |||
187 | margin: -10px 0 20px 55px;; | 202 | margin: -10px 0 20px 55px;; |
188 | font-size: 12px; | 203 | font-size: 12px; |
189 | color: $theme-gray-light; | 204 | color: $theme-gray-light; |
190 | |||
191 | &:last-of-type { | ||
192 | margin-bottom: 30px; | ||
193 | } | ||
194 | } | 205 | } |
195 | 206 | ||
196 | .settings__controls { | 207 | .settings__controls { |
@@ -295,6 +306,10 @@ | |||
295 | margin-left: auto; | 306 | margin-left: auto; |
296 | } | 307 | } |
297 | 308 | ||
309 | .franz-form__button { | ||
310 | white-space: nowrap; | ||
311 | } | ||
312 | |||
298 | div { | 313 | div { |
299 | height: auto; | 314 | height: auto; |
300 | } | 315 | } |
@@ -342,6 +357,12 @@ | |||
342 | background: none; | 357 | background: none; |
343 | padding: 0; | 358 | padding: 0; |
344 | } | 359 | } |
360 | |||
361 | .legal { | ||
362 | text-align: center; | ||
363 | margin-top: 20px; | ||
364 | color: $theme-gray-light; | ||
365 | } | ||
345 | } | 366 | } |
346 | 367 | ||
347 | .settings-navigation { | 368 | .settings-navigation { |
@@ -352,9 +373,10 @@ | |||
352 | flex-direction: column; | 373 | flex-direction: column; |
353 | 374 | ||
354 | .settings-navigation__link { | 375 | .settings-navigation__link { |
355 | display: block; | 376 | display: flex; |
377 | align-items: center; | ||
356 | height: 50px; | 378 | height: 50px; |
357 | line-height: 50px; | 379 | flex-shrink: 0; |
358 | text-decoration: none; | 380 | text-decoration: none; |
359 | color: $theme-text-color; | 381 | color: $theme-text-color; |
360 | padding: 0 20px; | 382 | padding: 0 20px; |
diff --git a/src/styles/subscription.scss b/src/styles/subscription.scss index 63183f085..01d8f4ecb 100644 --- a/src/styles/subscription.scss +++ b/src/styles/subscription.scss | |||
@@ -36,7 +36,7 @@ | |||
36 | margin-right: 0; | 36 | margin-right: 0; |
37 | } | 37 | } |
38 | 38 | ||
39 | &:last-of-type { | 39 | &:nth-child(4) { |
40 | margin-right: 0; | 40 | margin-right: 0; |
41 | margin-top: 2%; | 41 | margin-top: 2%; |
42 | width: 100%; | 42 | width: 100%; |
@@ -55,7 +55,8 @@ | |||
55 | margin-right: 0; | 55 | margin-right: 0; |
56 | } | 56 | } |
57 | 57 | ||
58 | &:last-of-type { | 58 | &:nth-child(3) { |
59 | margin-top: 2%; | ||
59 | width: 100%; | 60 | width: 100%; |
60 | } | 61 | } |
61 | } | 62 | } |
diff --git a/src/styles/tabs.scss b/src/styles/tabs.scss index 8347de3b4..ac48aabd6 100644 --- a/src/styles/tabs.scss +++ b/src/styles/tabs.scss | |||
@@ -67,8 +67,28 @@ | |||
67 | padding: 0px 5px; | 67 | padding: 0px 5px; |
68 | font-size: 11px; | 68 | font-size: 11px; |
69 | position: absolute; | 69 | position: absolute; |
70 | right: 5px; | 70 | right: 8px; |
71 | bottom: 5px; | 71 | bottom: 8px; |
72 | display: flex; | ||
73 | justify-content: center; | ||
74 | align-items: center; | ||
75 | |||
76 | &.is-indirect { | ||
77 | padding-top: 0px; | ||
78 | } | ||
79 | } | ||
80 | |||
81 | .tab-item__info-badge { | ||
82 | width: 17px; | ||
83 | height: 17px; | ||
84 | background: $theme-gray-light; | ||
85 | color: $theme-gray-lighter; | ||
86 | border-radius: 20px; | ||
87 | padding: 0px 5px; | ||
88 | font-size: 11px; | ||
89 | position: absolute; | ||
90 | right: 8px; | ||
91 | bottom: 8px; | ||
72 | display: flex; | 92 | display: flex; |
73 | justify-content: center; | 93 | justify-content: center; |
74 | align-items: center; | 94 | align-items: center; |
diff --git a/src/styles/welcome.scss b/src/styles/welcome.scss index 5365921fb..cfdcc80ad 100644 --- a/src/styles/welcome.scss +++ b/src/styles/welcome.scss | |||
@@ -58,17 +58,32 @@ | |||
58 | } | 58 | } |
59 | 59 | ||
60 | &__featured-services { | 60 | &__featured-services { |
61 | margin-top: 150px; | ||
62 | text-align: center; | 61 | text-align: center; |
63 | margin-top: 80px; | 62 | width: 480px; |
63 | margin: 80px auto 0 auto; | ||
64 | display: flex; | ||
65 | align-items: center; | ||
66 | flex-wrap: wrap; | ||
67 | background: #FFF; | ||
68 | border-radius: 6px; | ||
69 | padding: 20px 20px 5px; | ||
64 | } | 70 | } |
65 | 71 | ||
66 | &__featured-service { | 72 | &__featured-service { |
67 | width: 35px; | 73 | width: 35px; |
68 | margin-right: 30px; | 74 | height: 35px; |
75 | margin: 0 10px 15px; | ||
76 | filter: grayscale(1) | ||
77 | opacity(0.5); | ||
78 | transition: 0.5s filter, 0.5s opacity; | ||
79 | |||
80 | &:hover { | ||
81 | filter: grayscale(0); | ||
82 | opacity: (1); | ||
83 | } | ||
69 | 84 | ||
70 | &:last-of-type { | 85 | img { |
71 | margin-right: 0; | 86 | width: 35px; |
72 | } | 87 | } |
73 | } | 88 | } |
74 | } | 89 | } |
diff --git a/src/webview/ime.js b/src/webview/ime.js deleted file mode 100644 index 43df6267c..000000000 --- a/src/webview/ime.js +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | const { ipcRenderer } = require('electron'); | ||
2 | const { claimDocumentFocus } = require('../helpers/webview-ime-focus-helpers'); | ||
3 | |||
4 | ipcRenderer.on('claim-document-focus', claimDocumentFocus); | ||
5 | |||
6 | window.addEventListener('DOMContentLoaded', () => { | ||
7 | if (document.querySelector('[autofocus]')) { | ||
8 | ipcRenderer.sendToHost('autofocus'); | ||
9 | } | ||
10 | }); | ||
diff --git a/src/webview/lib/RecipeWebview.js b/src/webview/lib/RecipeWebview.js index b8acc1258..be29142af 100644 --- a/src/webview/lib/RecipeWebview.js +++ b/src/webview/lib/RecipeWebview.js | |||
@@ -40,8 +40,8 @@ class RecipeWebview { | |||
40 | && this.countCache.indirect === indirect) return; | 40 | && this.countCache.indirect === indirect) return; |
41 | 41 | ||
42 | const count = { | 42 | const count = { |
43 | direct, | 43 | direct: direct > 0 ? direct : 0, |
44 | indirect, | 44 | indirect: indirect > 0 ? indirect : 0, |
45 | }; | 45 | }; |
46 | 46 | ||
47 | ipcRenderer.sendToHost('messages', count); | 47 | ipcRenderer.sendToHost('messages', count); |
@@ -66,7 +66,7 @@ class RecipeWebview { | |||
66 | 66 | ||
67 | onNotify(fn) { | 67 | onNotify(fn) { |
68 | if (typeof fn === 'function') { | 68 | if (typeof fn === 'function') { |
69 | window.Notification.onNotify = fn; | 69 | window.Notification.prototype.onNotify = fn; |
70 | } | 70 | } |
71 | } | 71 | } |
72 | 72 | ||
diff --git a/src/webview/notifications.js b/src/webview/notifications.js index 4055b10de..4f602bfdb 100644 --- a/src/webview/notifications.js +++ b/src/webview/notifications.js | |||
@@ -10,9 +10,9 @@ class Notification { | |||
10 | this.notificationId = uuidV1(); | 10 | this.notificationId = uuidV1(); |
11 | 11 | ||
12 | ipcRenderer.sendToHost('notification', this.onNotify({ | 12 | ipcRenderer.sendToHost('notification', this.onNotify({ |
13 | title: this.title, | ||
14 | options: this.options, | ||
13 | notificationId: this.notificationId, | 15 | notificationId: this.notificationId, |
14 | title, | ||
15 | options, | ||
16 | })); | 16 | })); |
17 | 17 | ||
18 | ipcRenderer.once(`notification-onclick:${this.notificationId}`, () => { | 18 | ipcRenderer.once(`notification-onclick:${this.notificationId}`, () => { |
diff --git a/src/webview/plugin.js b/src/webview/plugin.js index ffc9084e4..9903ee07a 100644 --- a/src/webview/plugin.js +++ b/src/webview/plugin.js | |||
@@ -1,11 +1,12 @@ | |||
1 | const { ipcRenderer } = require('electron'); | 1 | import { ipcRenderer } from 'electron'; |
2 | const path = require('path'); | 2 | import { ContextMenuListener, ContextMenuBuilder } from 'electron-spellchecker'; |
3 | import path from 'path'; | ||
3 | 4 | ||
4 | const RecipeWebview = require('./lib/RecipeWebview'); | 5 | import { isDevMode } from '../environment'; |
6 | import RecipeWebview from './lib/RecipeWebview'; | ||
5 | 7 | ||
6 | require('./notifications.js'); | 8 | import Spellchecker from './spellchecker.js'; |
7 | require('./spellchecker.js'); | 9 | import './notifications.js'; |
8 | require('./ime.js'); | ||
9 | 10 | ||
10 | ipcRenderer.on('initializeRecipe', (e, data) => { | 11 | ipcRenderer.on('initializeRecipe', (e, data) => { |
11 | const modulePath = path.join(data.recipe.path, 'webview.js'); | 12 | const modulePath = path.join(data.recipe.path, 'webview.js'); |
@@ -19,6 +20,22 @@ ipcRenderer.on('initializeRecipe', (e, data) => { | |||
19 | } | 20 | } |
20 | }); | 21 | }); |
21 | 22 | ||
23 | const spellchecker = new Spellchecker(); | ||
24 | spellchecker.initialize(); | ||
25 | |||
26 | const contextMenuBuilder = new ContextMenuBuilder(spellchecker.handler, null, isDevMode); | ||
27 | |||
28 | new ContextMenuListener((info) => { // eslint-disable-line | ||
29 | contextMenuBuilder.showPopupMenu(info); | ||
30 | }); | ||
31 | |||
32 | ipcRenderer.on('settings-update', (e, data) => { | ||
33 | console.log('settings-update', data); | ||
34 | spellchecker.toggleSpellchecker(data.enableSpellchecking); | ||
35 | }); | ||
36 | |||
37 | // initSpellche | ||
38 | |||
22 | document.addEventListener('DOMContentLoaded', () => { | 39 | document.addEventListener('DOMContentLoaded', () => { |
23 | ipcRenderer.sendToHost('hello'); | 40 | ipcRenderer.sendToHost('hello'); |
24 | }, false); | 41 | }, false); |
diff --git a/src/webview/spellchecker.js b/src/webview/spellchecker.js index ec8807874..a504a4039 100644 --- a/src/webview/spellchecker.js +++ b/src/webview/spellchecker.js | |||
@@ -1,14 +1,63 @@ | |||
1 | import { SpellCheckHandler, ContextMenuListener, ContextMenuBuilder } from 'electron-spellchecker'; | 1 | import { SpellCheckHandler } from 'electron-spellchecker'; |
2 | 2 | ||
3 | window.spellCheckHandler = new SpellCheckHandler(); | 3 | import { isMac } from '../environment'; |
4 | setTimeout(() => { | ||
5 | window.spellCheckHandler.attachToInput(); | ||
6 | }, 1000); | ||
7 | 4 | ||
8 | // TODO: should we set the language to user settings? | 5 | export default class Spellchecker { |
9 | // window.spellCheckHandler.switchLanguage('en-US'); | 6 | isInitialized = false; |
7 | handler = null; | ||
8 | initRetries = 0; | ||
9 | DOMCheckInterval = null; | ||
10 | |||
11 | get inputs() { | ||
12 | return document.querySelectorAll('input[type="text"], [contenteditable="true"], textarea'); | ||
13 | } | ||
14 | |||
15 | initialize() { | ||
16 | this.handler = new SpellCheckHandler(); | ||
17 | |||
18 | if (!isMac) { | ||
19 | this.attach(); | ||
20 | } else { | ||
21 | this.isInitialized = true; | ||
22 | } | ||
23 | } | ||
24 | |||
25 | attach() { | ||
26 | let initFailed = false; | ||
27 | |||
28 | if (this.initRetries > 3) { | ||
29 | console.error('Could not initialize spellchecker'); | ||
30 | return; | ||
31 | } | ||
32 | |||
33 | try { | ||
34 | this.handler.attachToInput(); | ||
35 | this.handler.switchLanguage(navigator.language); | ||
36 | } catch (err) { | ||
37 | initFailed = true; | ||
38 | this.initRetries = +1; | ||
39 | setTimeout(() => { this.attach(); console.warn('Spellchecker init failed, trying again in 5s'); }, 5000); | ||
40 | } | ||
41 | |||
42 | if (!initFailed) { | ||
43 | this.isInitialized = true; | ||
44 | } | ||
45 | } | ||
46 | |||
47 | toggleSpellchecker(enable = false) { | ||
48 | this.inputs.forEach((input) => { | ||
49 | input.setAttribute('spellcheck', enable); | ||
50 | }); | ||
51 | |||
52 | this.intervalHandler(enable); | ||
53 | } | ||
54 | |||
55 | intervalHandler(enable) { | ||
56 | clearInterval(this.DOMCheckInterval); | ||
57 | |||
58 | if (enable) { | ||
59 | this.DOMCheckInterval = setInterval(() => this.toggleSpellchecker(enable), 30000); | ||
60 | } | ||
61 | } | ||
62 | } | ||
10 | 63 | ||
11 | const contextMenuBuilder = new ContextMenuBuilder(window.spellCheckHandler); | ||
12 | const contextMenuListener = new ContextMenuListener((info) => { // eslint-disable-line | ||
13 | contextMenuBuilder.showPopupMenu(info); | ||
14 | }); | ||