diff options
Diffstat (limited to 'src')
78 files changed, 4834 insertions, 2204 deletions
diff --git a/src/actions/app.js b/src/actions/app.js index 5db4b739e..25ff9344d 100644 --- a/src/actions/app.js +++ b/src/actions/app.js | |||
@@ -20,4 +20,8 @@ export default { | |||
20 | resetUpdateStatus: {}, | 20 | resetUpdateStatus: {}, |
21 | installUpdate: {}, | 21 | installUpdate: {}, |
22 | healthCheck: {}, | 22 | healthCheck: {}, |
23 | muteApp: { | ||
24 | isMuted: PropTypes.bool.isRequired, | ||
25 | }, | ||
26 | toggleMuteApp: {}, | ||
23 | }; | 27 | }; |
diff --git a/src/actions/service.js b/src/actions/service.js index ea6ea5acc..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 | }, |
@@ -71,6 +75,9 @@ export default { | |||
71 | toggleNotifications: { | 75 | toggleNotifications: { |
72 | serviceId: PropTypes.string.isRequired, | 76 | serviceId: PropTypes.string.isRequired, |
73 | }, | 77 | }, |
78 | toggleAudio: { | ||
79 | serviceId: PropTypes.string.isRequired, | ||
80 | }, | ||
74 | openDevTools: { | 81 | openDevTools: { |
75 | serviceId: PropTypes.string.isRequired, | 82 | serviceId: PropTypes.string.isRequired, |
76 | }, | 83 | }, |
diff --git a/src/api/server/LocalApi.js b/src/api/server/LocalApi.js index 79ac6e12f..eba236f16 100644 --- a/src/api/server/LocalApi.js +++ b/src/api/server/LocalApi.js | |||
@@ -1,3 +1,5 @@ | |||
1 | import SettingsModel from '../../models/Settings'; | ||
2 | |||
1 | export default class LocalApi { | 3 | export default class LocalApi { |
2 | // App | 4 | // App |
3 | async updateAppSettings(data) { | 5 | async updateAppSettings(data) { |
@@ -13,7 +15,7 @@ export default class LocalApi { | |||
13 | async getAppSettings() { | 15 | async getAppSettings() { |
14 | const settingsString = localStorage.getItem('app'); | 16 | const settingsString = localStorage.getItem('app'); |
15 | try { | 17 | try { |
16 | const settings = JSON.parse(settingsString) || {}; | 18 | const settings = new SettingsModel(JSON.parse(settingsString) || {}); |
17 | console.debug('LocalApi::getAppSettings resolves', settings); | 19 | console.debug('LocalApi::getAppSettings resolves', settings); |
18 | 20 | ||
19 | return settings; | 21 | return settings; |
diff --git a/src/api/server/ServerApi.js b/src/api/server/ServerApi.js index 932b70cdc..f25f02eaa 100644 --- a/src/api/server/ServerApi.js +++ b/src/api/server/ServerApi.js | |||
@@ -374,7 +374,7 @@ export default class ServerApi { | |||
374 | // News | 374 | // News |
375 | async getLatestNews() { | 375 | async getLatestNews() { |
376 | // eslint-disable-next-line | 376 | // eslint-disable-next-line |
377 | const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/news?platform=${os.platform()}&arch=${os.arch()}version=${app.getVersion()}`, | 377 | const request = await window.fetch(`${SERVER_URL}/${API_VERSION}/news?platform=${os.platform()}&arch=${os.arch()}&version=${app.getVersion()}`, |
378 | this._prepareAuthRequest({ | 378 | this._prepareAuthRequest({ |
379 | method: 'GET', | 379 | method: 'GET', |
380 | })); | 380 | })); |
diff --git a/src/app.js b/src/app.js index b539ea494..a0b88611c 100644 --- a/src/app.js +++ b/src/app.js | |||
@@ -101,3 +101,7 @@ window.addEventListener('load', () => { | |||
101 | }; | 101 | }; |
102 | window.franz.render(); | 102 | window.franz.render(); |
103 | }); | 103 | }); |
104 | |||
105 | // Prevent drag and drop into window from redirecting | ||
106 | window.addEventListener('dragover', event => event.preventDefault()); | ||
107 | window.addEventListener('drop', event => event.preventDefault()); | ||
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 6a5c0f365..cb2ecc8ce 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'; |
@@ -11,16 +12,26 @@ const messages = defineMessages({ | |||
11 | id: 'sidebar.settings', | 12 | id: 'sidebar.settings', |
12 | defaultMessage: '!!!Settings', | 13 | defaultMessage: '!!!Settings', |
13 | }, | 14 | }, |
15 | addNewService: { | ||
16 | id: 'sidebar.addNewService', | ||
17 | defaultMessage: '!!!Add new service', | ||
18 | }, | ||
19 | mute: { | ||
20 | id: 'sidebar.mute', | ||
21 | defaultMessage: '!!!Disable audio', | ||
22 | }, | ||
23 | unmute: { | ||
24 | id: 'sidebar.unmute', | ||
25 | defaultMessage: '!!!Enable audio', | ||
26 | }, | ||
14 | }); | 27 | }); |
15 | 28 | ||
29 | @observer | ||
16 | export default class Sidebar extends Component { | 30 | export default class Sidebar extends Component { |
17 | static propTypes = { | 31 | static propTypes = { |
18 | openSettings: PropTypes.func.isRequired, | 32 | openSettings: PropTypes.func.isRequired, |
19 | isPremiumUser: PropTypes.bool, | 33 | toggleMuteApp: PropTypes.func.isRequired, |
20 | } | 34 | isAppMuted: PropTypes.bool.isRequired, |
21 | |||
22 | static defaultProps = { | ||
23 | isPremiumUser: false, | ||
24 | } | 35 | } |
25 | 36 | ||
26 | static contextTypes = { | 37 | static contextTypes = { |
@@ -40,8 +51,9 @@ export default class Sidebar extends Component { | |||
40 | } | 51 | } |
41 | 52 | ||
42 | render() { | 53 | render() { |
43 | const { openSettings, isPremiumUser } = this.props; | 54 | const { openSettings, toggleMuteApp, isAppMuted } = this.props; |
44 | const { intl } = this.context; | 55 | const { intl } = this.context; |
56 | |||
45 | return ( | 57 | return ( |
46 | <div className="sidebar"> | 58 | <div className="sidebar"> |
47 | <Tabbar | 59 | <Tabbar |
@@ -50,21 +62,25 @@ export default class Sidebar extends Component { | |||
50 | disableToolTip={() => this.disableToolTip()} | 62 | disableToolTip={() => this.disableToolTip()} |
51 | /> | 63 | /> |
52 | <button | 64 | <button |
53 | onClick={openSettings} | 65 | onClick={toggleMuteApp} |
54 | className="sidebar__settings-button" | 66 | className={`sidebar__button sidebar__button--audio ${isAppMuted ? 'is-muted' : ''}`} |
67 | data-tip={`${intl.formatMessage(isAppMuted ? messages.unmute : messages.mute)} (${ctrlKey}+Shift+M)`} | ||
68 | > | ||
69 | <i className={`mdi mdi-bell${isAppMuted ? '-off' : ''}`} /> | ||
70 | </button> | ||
71 | <button | ||
72 | onClick={() => openSettings({ path: 'recipes' })} | ||
73 | className="sidebar__button sidebar__button--new-service" | ||
74 | data-tip={`${intl.formatMessage(messages.addNewService)} (${ctrlKey}+N)`} | ||
75 | > | ||
76 | <i className="mdi mdi-plus-box" /> | ||
77 | </button> | ||
78 | <button | ||
79 | onClick={() => openSettings({ path: 'app' })} | ||
80 | className="sidebar__button sidebar__button--settings" | ||
55 | data-tip={`${intl.formatMessage(messages.settings)} (${ctrlKey}+,)`} | 81 | data-tip={`${intl.formatMessage(messages.settings)} (${ctrlKey}+,)`} |
56 | > | 82 | > |
57 | {isPremiumUser && ( | 83 | <i className="mdi mdi-settings" /> |
58 | <span className="emoji"> | ||
59 | <img src="./assets/images/emoji/star.png" alt="" /> | ||
60 | </span> | ||
61 | )} | ||
62 | <img | ||
63 | src="./assets/images/logo.svg" | ||
64 | className="sidebar__logo" | ||
65 | alt="" | ||
66 | /> | ||
67 | {intl.formatMessage(messages.settings)} | ||
68 | </button> | 84 | </button> |
69 | {this.state.tooltipEnabled && ( | 85 | {this.state.tooltipEnabled && ( |
70 | <ReactTooltip place="right" type="dark" effect="solid" /> | 86 | <ReactTooltip place="right" type="dark" effect="solid" /> |
diff --git a/src/components/services/content/ServiceDisabled.js b/src/components/services/content/ServiceDisabled.js new file mode 100644 index 000000000..b5af3743d --- /dev/null +++ b/src/components/services/content/ServiceDisabled.js | |||
@@ -0,0 +1,48 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import PropTypes from 'prop-types'; | ||
3 | import { observer } from 'mobx-react'; | ||
4 | import { defineMessages, intlShape } from 'react-intl'; | ||
5 | |||
6 | import Button from '../../ui/Button'; | ||
7 | |||
8 | const messages = defineMessages({ | ||
9 | headline: { | ||
10 | id: 'service.disabledHandler.headline', | ||
11 | defaultMessage: '!!!{name} is disabled', | ||
12 | }, | ||
13 | action: { | ||
14 | id: 'service.disabledHandler.action', | ||
15 | defaultMessage: '!!!Enable {name}', | ||
16 | }, | ||
17 | }); | ||
18 | |||
19 | @observer | ||
20 | export default class ServiceDisabled extends Component { | ||
21 | static propTypes = { | ||
22 | name: PropTypes.string.isRequired, | ||
23 | enable: PropTypes.func.isRequired, | ||
24 | }; | ||
25 | |||
26 | static contextTypes = { | ||
27 | intl: intlShape, | ||
28 | }; | ||
29 | |||
30 | countdownInterval = null; | ||
31 | countdownIntervalTimeout = 1000; | ||
32 | |||
33 | render() { | ||
34 | const { name, enable } = this.props; | ||
35 | const { intl } = this.context; | ||
36 | |||
37 | return ( | ||
38 | <div className="services__info-layer"> | ||
39 | <h1>{intl.formatMessage(messages.headline, { name })}</h1> | ||
40 | <Button | ||
41 | label={intl.formatMessage(messages.action, { name })} | ||
42 | buttonType="inverted" | ||
43 | onClick={() => enable()} | ||
44 | /> | ||
45 | </div> | ||
46 | ); | ||
47 | } | ||
48 | } | ||
diff --git a/src/components/services/content/ServiceWebview.js b/src/components/services/content/ServiceWebview.js index 3ee3155be..faa356d3d 100644 --- a/src/components/services/content/ServiceWebview.js +++ b/src/components/services/content/ServiceWebview.js | |||
@@ -7,12 +7,17 @@ import classnames from 'classnames'; | |||
7 | 7 | ||
8 | import ServiceModel from '../../../models/Service'; | 8 | import ServiceModel from '../../../models/Service'; |
9 | import StatusBarTargetUrl from '../../ui/StatusBarTargetUrl'; | 9 | import StatusBarTargetUrl from '../../ui/StatusBarTargetUrl'; |
10 | import WebviewCrashHandler from './WebviewCrashHandler'; | ||
11 | import ServiceDisabled from './ServiceDisabled'; | ||
10 | 12 | ||
11 | @observer | 13 | @observer |
12 | export default class ServiceWebview extends Component { | 14 | export default class ServiceWebview extends Component { |
13 | static propTypes = { | 15 | static propTypes = { |
14 | service: PropTypes.instanceOf(ServiceModel).isRequired, | 16 | service: PropTypes.instanceOf(ServiceModel).isRequired, |
15 | setWebviewReference: PropTypes.func.isRequired, | 17 | setWebviewReference: PropTypes.func.isRequired, |
18 | reload: PropTypes.func.isRequired, | ||
19 | isAppMuted: PropTypes.bool.isRequired, | ||
20 | enable: PropTypes.func.isRequired, | ||
16 | }; | 21 | }; |
17 | 22 | ||
18 | static defaultProps = { | 23 | static defaultProps = { |
@@ -53,6 +58,9 @@ export default class ServiceWebview extends Component { | |||
53 | const { | 58 | const { |
54 | service, | 59 | service, |
55 | setWebviewReference, | 60 | setWebviewReference, |
61 | reload, | ||
62 | isAppMuted, | ||
63 | enable, | ||
56 | } = this.props; | 64 | } = this.props; |
57 | 65 | ||
58 | const webviewClasses = classnames({ | 66 | const webviewClasses = classnames({ |
@@ -70,26 +78,37 @@ export default class ServiceWebview extends Component { | |||
70 | 78 | ||
71 | return ( | 79 | return ( |
72 | <div className={webviewClasses}> | 80 | <div className={webviewClasses}> |
73 | <Webview | 81 | {service.hasCrashed && ( |
74 | ref={(element) => { this.webview = element; }} | 82 | <WebviewCrashHandler |
75 | 83 | name={service.recipe.name} | |
76 | autosize | 84 | webview={service.webview} |
77 | src={service.url} | 85 | reload={reload} |
78 | preload="./webview/plugin.js" | 86 | /> |
79 | partition={`persist:service-${service.id}`} | 87 | )} |
80 | 88 | {!service.isEnabled ? ( | |
81 | onDidAttach={() => setWebviewReference({ | 89 | <ServiceDisabled |
82 | serviceId: service.id, | 90 | name={service.recipe.name} |
83 | webview: this.webview.view, | 91 | webview={service.webview} |
84 | })} | 92 | enable={enable} |
85 | 93 | /> | |
86 | onUpdateTargetUrl={this.updateTargetUrl} | 94 | ) : ( |
87 | 95 | <Webview | |
88 | useragent={service.userAgent} | 96 | ref={(element) => { this.webview = element; }} |
89 | 97 | autosize | |
90 | disablewebsecurity | 98 | src={service.url} |
91 | allowpopups | 99 | preload="./webview/plugin.js" |
92 | /> | 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 | )} | ||
93 | {statusBar} | 112 | {statusBar} |
94 | </div> | 113 | </div> |
95 | ); | 114 | ); |
diff --git a/src/components/services/content/Services.js b/src/components/services/content/Services.js index 03c68b06f..b1322afc2 100644 --- a/src/components/services/content/Services.js +++ b/src/components/services/content/Services.js | |||
@@ -25,6 +25,9 @@ export default class Services extends Component { | |||
25 | setWebviewReference: PropTypes.func.isRequired, | 25 | setWebviewReference: PropTypes.func.isRequired, |
26 | handleIPCMessage: PropTypes.func.isRequired, | 26 | handleIPCMessage: PropTypes.func.isRequired, |
27 | openWindow: PropTypes.func.isRequired, | 27 | openWindow: PropTypes.func.isRequired, |
28 | reload: PropTypes.func.isRequired, | ||
29 | isAppMuted: PropTypes.bool.isRequired, | ||
30 | update: PropTypes.func.isRequired, | ||
28 | }; | 31 | }; |
29 | 32 | ||
30 | static defaultProps = { | 33 | static defaultProps = { |
@@ -42,6 +45,9 @@ export default class Services extends Component { | |||
42 | handleIPCMessage, | 45 | handleIPCMessage, |
43 | setWebviewReference, | 46 | setWebviewReference, |
44 | openWindow, | 47 | openWindow, |
48 | reload, | ||
49 | isAppMuted, | ||
50 | update, | ||
45 | } = this.props; | 51 | } = this.props; |
46 | const { intl } = this.context; | 52 | const { intl } = this.context; |
47 | 53 | ||
@@ -73,6 +79,15 @@ export default class Services extends Component { | |||
73 | handleIPCMessage={handleIPCMessage} | 79 | handleIPCMessage={handleIPCMessage} |
74 | setWebviewReference={setWebviewReference} | 80 | setWebviewReference={setWebviewReference} |
75 | openWindow={openWindow} | 81 | openWindow={openWindow} |
82 | reload={() => reload({ serviceId: service.id })} | ||
83 | isAppMuted={isAppMuted} | ||
84 | enable={() => update({ | ||
85 | serviceId: service.id, | ||
86 | serviceData: { | ||
87 | isEnabled: true, | ||
88 | }, | ||
89 | redirect: false, | ||
90 | })} | ||
76 | /> | 91 | /> |
77 | ))} | 92 | ))} |
78 | </div> | 93 | </div> |
diff --git a/src/components/services/content/WebviewCrashHandler.js b/src/components/services/content/WebviewCrashHandler.js new file mode 100644 index 000000000..d3e6951f3 --- /dev/null +++ b/src/components/services/content/WebviewCrashHandler.js | |||
@@ -0,0 +1,81 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import PropTypes from 'prop-types'; | ||
3 | import { observer } from 'mobx-react'; | ||
4 | import { defineMessages, intlShape } from 'react-intl'; | ||
5 | |||
6 | import Button from '../../ui/Button'; | ||
7 | |||
8 | const messages = defineMessages({ | ||
9 | headline: { | ||
10 | id: 'service.crashHandler.headline', | ||
11 | defaultMessage: '!!!Oh no!', | ||
12 | }, | ||
13 | text: { | ||
14 | id: 'service.crashHandler.text', | ||
15 | defaultMessage: '!!!{name} has caused an error.', | ||
16 | }, | ||
17 | action: { | ||
18 | id: 'service.crashHandler.action', | ||
19 | defaultMessage: '!!!Reload {name}', | ||
20 | }, | ||
21 | autoReload: { | ||
22 | id: 'service.crashHandler.autoReload', | ||
23 | defaultMessage: '!!!Trying to automatically restore {name} in {seconds} seconds', | ||
24 | }, | ||
25 | }); | ||
26 | |||
27 | @observer | ||
28 | export default class WebviewCrashHandler extends Component { | ||
29 | static propTypes = { | ||
30 | name: PropTypes.string.isRequired, | ||
31 | reload: PropTypes.func.isRequired, | ||
32 | }; | ||
33 | |||
34 | static contextTypes = { | ||
35 | intl: intlShape, | ||
36 | }; | ||
37 | |||
38 | state = { | ||
39 | countdown: 10000, | ||
40 | } | ||
41 | |||
42 | componentDidMount() { | ||
43 | const { reload } = this.props; | ||
44 | |||
45 | this.countdownInterval = setInterval(() => { | ||
46 | this.setState({ | ||
47 | countdown: this.state.countdown - this.countdownIntervalTimeout, | ||
48 | }); | ||
49 | |||
50 | if (this.state.countdown <= 0) { | ||
51 | reload(); | ||
52 | clearInterval(this.countdownInterval); | ||
53 | } | ||
54 | }, this.countdownIntervalTimeout); | ||
55 | } | ||
56 | |||
57 | countdownInterval = null; | ||
58 | countdownIntervalTimeout = 1000; | ||
59 | |||
60 | render() { | ||
61 | const { name, reload } = this.props; | ||
62 | const { intl } = this.context; | ||
63 | |||
64 | return ( | ||
65 | <div className="services__info-layer"> | ||
66 | <h1>{intl.formatMessage(messages.headline)}</h1> | ||
67 | <p>{intl.formatMessage(messages.text, { name })}</p> | ||
68 | <Button | ||
69 | // label={`Reload ${name}`} | ||
70 | label={intl.formatMessage(messages.action, { name })} | ||
71 | buttonType="inverted" | ||
72 | onClick={() => reload()} | ||
73 | /> | ||
74 | <p className="footnote">{intl.formatMessage(messages.autoReload, { | ||
75 | name, | ||
76 | seconds: this.state.countdown / 1000, | ||
77 | })}</p> | ||
78 | </div> | ||
79 | ); | ||
80 | } | ||
81 | } | ||
diff --git a/src/components/services/tabs/TabBarSortableList.js b/src/components/services/tabs/TabBarSortableList.js index e5ae36419..2daf55676 100644 --- a/src/components/services/tabs/TabBarSortableList.js +++ b/src/components/services/tabs/TabBarSortableList.js | |||
@@ -2,17 +2,8 @@ import React, { Component } from 'react'; | |||
2 | import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; | 2 | import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; |
3 | import PropTypes from 'prop-types'; | 3 | import PropTypes from 'prop-types'; |
4 | import { SortableContainer } from 'react-sortable-hoc'; | 4 | import { SortableContainer } from 'react-sortable-hoc'; |
5 | import { defineMessages, intlShape } from 'react-intl'; | ||
6 | 5 | ||
7 | import TabItem from './TabItem'; | 6 | import TabItem from './TabItem'; |
8 | import { ctrlKey } from '../../../environment'; | ||
9 | |||
10 | const messages = defineMessages({ | ||
11 | addNewService: { | ||
12 | id: 'sidebar.addNewService', | ||
13 | defaultMessage: '!!!Add new service', | ||
14 | }, | ||
15 | }); | ||
16 | 7 | ||
17 | @observer | 8 | @observer |
18 | class TabBarSortableList extends Component { | 9 | class TabBarSortableList extends Component { |
@@ -22,27 +13,25 @@ class TabBarSortableList extends Component { | |||
22 | openSettings: PropTypes.func.isRequired, | 13 | openSettings: PropTypes.func.isRequired, |
23 | reload: PropTypes.func.isRequired, | 14 | reload: PropTypes.func.isRequired, |
24 | toggleNotifications: PropTypes.func.isRequired, | 15 | toggleNotifications: PropTypes.func.isRequired, |
16 | toggleAudio: PropTypes.func.isRequired, | ||
25 | deleteService: PropTypes.func.isRequired, | 17 | deleteService: PropTypes.func.isRequired, |
26 | disableService: PropTypes.func.isRequired, | 18 | disableService: PropTypes.func.isRequired, |
19 | enableService: PropTypes.func.isRequired, | ||
27 | } | 20 | } |
28 | 21 | ||
29 | static contextTypes = { | ||
30 | intl: intlShape, | ||
31 | }; | ||
32 | |||
33 | render() { | 22 | render() { |
34 | const { | 23 | const { |
35 | services, | 24 | services, |
36 | setActive, | 25 | setActive, |
37 | reload, | 26 | reload, |
38 | toggleNotifications, | 27 | toggleNotifications, |
28 | toggleAudio, | ||
39 | deleteService, | 29 | deleteService, |
40 | disableService, | 30 | disableService, |
31 | enableService, | ||
41 | openSettings, | 32 | openSettings, |
42 | } = this.props; | 33 | } = this.props; |
43 | 34 | ||
44 | const { intl } = this.context; | ||
45 | |||
46 | return ( | 35 | return ( |
47 | <ul | 36 | <ul |
48 | className="tabs" | 37 | className="tabs" |
@@ -56,12 +45,14 @@ class TabBarSortableList extends Component { | |||
56 | shortcutIndex={index + 1} | 45 | shortcutIndex={index + 1} |
57 | reload={() => reload({ serviceId: service.id })} | 46 | reload={() => reload({ serviceId: service.id })} |
58 | toggleNotifications={() => toggleNotifications({ serviceId: service.id })} | 47 | toggleNotifications={() => toggleNotifications({ serviceId: service.id })} |
48 | toggleAudio={() => toggleAudio({ serviceId: service.id })} | ||
59 | deleteService={() => deleteService({ serviceId: service.id })} | 49 | deleteService={() => deleteService({ serviceId: service.id })} |
60 | disableService={() => disableService({ serviceId: service.id })} | 50 | disableService={() => disableService({ serviceId: service.id })} |
51 | enableService={() => enableService({ serviceId: service.id })} | ||
61 | openSettings={openSettings} | 52 | openSettings={openSettings} |
62 | /> | 53 | /> |
63 | ))} | 54 | ))} |
64 | <li> | 55 | {/* <li> |
65 | <button | 56 | <button |
66 | className="sidebar__add-service" | 57 | className="sidebar__add-service" |
67 | onClick={() => openSettings({ path: 'recipes' })} | 58 | onClick={() => openSettings({ path: 'recipes' })} |
@@ -69,7 +60,7 @@ class TabBarSortableList extends Component { | |||
69 | > | 60 | > |
70 | <span className="mdi mdi-plus" /> | 61 | <span className="mdi mdi-plus" /> |
71 | </button> | 62 | </button> |
72 | </li> | 63 | </li> */} |
73 | </ul> | 64 | </ul> |
74 | ); | 65 | ); |
75 | } | 66 | } |
diff --git a/src/components/services/tabs/TabItem.js b/src/components/services/tabs/TabItem.js index 9e03d2e21..a7136c43f 100644 --- a/src/components/services/tabs/TabItem.js +++ b/src/components/services/tabs/TabItem.js | |||
@@ -28,10 +28,22 @@ const messages = defineMessages({ | |||
28 | id: 'tabs.item.enableNotification', | 28 | id: 'tabs.item.enableNotification', |
29 | defaultMessage: '!!!Enable notifications', | 29 | defaultMessage: '!!!Enable notifications', |
30 | }, | 30 | }, |
31 | disableAudio: { | ||
32 | id: 'tabs.item.disableAudio', | ||
33 | defaultMessage: '!!!Disable audio', | ||
34 | }, | ||
35 | enableAudio: { | ||
36 | id: 'tabs.item.enableAudio', | ||
37 | defaultMessage: '!!!Enable audio', | ||
38 | }, | ||
31 | disableService: { | 39 | disableService: { |
32 | id: 'tabs.item.disableService', | 40 | id: 'tabs.item.disableService', |
33 | defaultMessage: '!!!Disable Service', | 41 | defaultMessage: '!!!Disable Service', |
34 | }, | 42 | }, |
43 | enableService: { | ||
44 | id: 'tabs.item.enableService', | ||
45 | defaultMessage: '!!!Enable Service', | ||
46 | }, | ||
35 | deleteService: { | 47 | deleteService: { |
36 | id: 'tabs.item.deleteService', | 48 | id: 'tabs.item.deleteService', |
37 | defaultMessage: '!!!Delete Service', | 49 | defaultMessage: '!!!Delete Service', |
@@ -46,9 +58,11 @@ class TabItem extends Component { | |||
46 | shortcutIndex: PropTypes.number.isRequired, | 58 | shortcutIndex: PropTypes.number.isRequired, |
47 | reload: PropTypes.func.isRequired, | 59 | reload: PropTypes.func.isRequired, |
48 | toggleNotifications: PropTypes.func.isRequired, | 60 | toggleNotifications: PropTypes.func.isRequired, |
61 | toggleAudio: PropTypes.func.isRequired, | ||
49 | openSettings: PropTypes.func.isRequired, | 62 | openSettings: PropTypes.func.isRequired, |
50 | deleteService: PropTypes.func.isRequired, | 63 | deleteService: PropTypes.func.isRequired, |
51 | disableService: PropTypes.func.isRequired, | 64 | disableService: PropTypes.func.isRequired, |
65 | enableService: PropTypes.func.isRequired, | ||
52 | }; | 66 | }; |
53 | 67 | ||
54 | static contextTypes = { | 68 | static contextTypes = { |
@@ -62,8 +76,10 @@ class TabItem extends Component { | |||
62 | shortcutIndex, | 76 | shortcutIndex, |
63 | reload, | 77 | reload, |
64 | toggleNotifications, | 78 | toggleNotifications, |
79 | toggleAudio, | ||
65 | deleteService, | 80 | deleteService, |
66 | disableService, | 81 | disableService, |
82 | enableService, | ||
67 | openSettings, | 83 | openSettings, |
68 | } = this.props; | 84 | } = this.props; |
69 | const { intl } = this.context; | 85 | const { intl } = this.context; |
@@ -90,8 +106,13 @@ class TabItem extends Component { | |||
90 | : intl.formatMessage(messages.enableNotifications), | 106 | : intl.formatMessage(messages.enableNotifications), |
91 | click: () => toggleNotifications(), | 107 | click: () => toggleNotifications(), |
92 | }, { | 108 | }, { |
93 | label: intl.formatMessage(messages.disableService), | 109 | label: service.isMuted |
94 | click: () => disableService(), | 110 | ? intl.formatMessage(messages.enableAudio) |
111 | : intl.formatMessage(messages.disableAudio), | ||
112 | click: () => toggleAudio(), | ||
113 | }, { | ||
114 | label: intl.formatMessage(service.isEnabled ? messages.disableService : messages.enableService), | ||
115 | click: () => (service.isEnabled ? disableService() : enableService()), | ||
95 | }, { | 116 | }, { |
96 | type: 'separator', | 117 | type: 'separator', |
97 | }, { | 118 | }, { |
@@ -106,6 +127,7 @@ class TabItem extends Component { | |||
106 | 'tab-item': true, | 127 | 'tab-item': true, |
107 | 'is-active': service.isActive, | 128 | 'is-active': service.isActive, |
108 | 'has-custom-icon': service.hasCustomIcon, | 129 | 'has-custom-icon': service.hasCustomIcon, |
130 | 'is-disabled': !service.isEnabled, | ||
109 | })} | 131 | })} |
110 | onClick={clickHandler} | 132 | onClick={clickHandler} |
111 | onContextMenu={() => menu.popup(remote.getCurrentWindow())} | 133 | onContextMenu={() => menu.popup(remote.getCurrentWindow())} |
diff --git a/src/components/services/tabs/Tabbar.js b/src/components/services/tabs/Tabbar.js index fdb2c0a59..9da1090b7 100644 --- a/src/components/services/tabs/Tabbar.js +++ b/src/components/services/tabs/Tabbar.js | |||
@@ -15,6 +15,7 @@ export default class TabBar extends Component { | |||
15 | reorder: PropTypes.func.isRequired, | 15 | reorder: PropTypes.func.isRequired, |
16 | reload: PropTypes.func.isRequired, | 16 | reload: PropTypes.func.isRequired, |
17 | toggleNotifications: PropTypes.func.isRequired, | 17 | toggleNotifications: PropTypes.func.isRequired, |
18 | toggleAudio: PropTypes.func.isRequired, | ||
18 | deleteService: PropTypes.func.isRequired, | 19 | deleteService: PropTypes.func.isRequired, |
19 | updateService: PropTypes.func.isRequired, | 20 | updateService: PropTypes.func.isRequired, |
20 | } | 21 | } |
@@ -29,20 +30,30 @@ export default class TabBar extends Component { | |||
29 | reorder({ oldIndex, newIndex }); | 30 | reorder({ oldIndex, newIndex }); |
30 | }; | 31 | }; |
31 | 32 | ||
32 | disableService = ({ serviceId }) => { | 33 | shouldPreventSorting = event => event.target.tagName !== 'LI'; |
34 | |||
35 | toggleService = ({ serviceId, isEnabled }) => { | ||
33 | const { updateService } = this.props; | 36 | const { updateService } = this.props; |
34 | 37 | ||
35 | if (serviceId) { | 38 | if (serviceId) { |
36 | updateService({ | 39 | updateService({ |
37 | serviceId, | 40 | serviceId, |
38 | serviceData: { | 41 | serviceData: { |
39 | isEnabled: false, | 42 | isEnabled, |
40 | }, | 43 | }, |
41 | redirect: false, | 44 | redirect: false, |
42 | }); | 45 | }); |
43 | } | 46 | } |
44 | } | 47 | } |
45 | 48 | ||
49 | disableService({ serviceId }) { | ||
50 | this.toggleService({ serviceId, isEnabled: false }); | ||
51 | } | ||
52 | |||
53 | enableService({ serviceId }) { | ||
54 | this.toggleService({ serviceId, isEnabled: true }); | ||
55 | } | ||
56 | |||
46 | render() { | 57 | render() { |
47 | const { | 58 | const { |
48 | services, | 59 | services, |
@@ -51,6 +62,7 @@ export default class TabBar extends Component { | |||
51 | disableToolTip, | 62 | disableToolTip, |
52 | reload, | 63 | reload, |
53 | toggleNotifications, | 64 | toggleNotifications, |
65 | toggleAudio, | ||
54 | deleteService, | 66 | deleteService, |
55 | } = this.props; | 67 | } = this.props; |
56 | 68 | ||
@@ -61,10 +73,13 @@ export default class TabBar extends Component { | |||
61 | setActive={setActive} | 73 | setActive={setActive} |
62 | onSortEnd={this.onSortEnd} | 74 | onSortEnd={this.onSortEnd} |
63 | onSortStart={disableToolTip} | 75 | onSortStart={disableToolTip} |
76 | shouldCancelStart={this.shouldPreventSorting} | ||
64 | reload={reload} | 77 | reload={reload} |
65 | toggleNotifications={toggleNotifications} | 78 | toggleNotifications={toggleNotifications} |
79 | toggleAudio={toggleAudio} | ||
66 | deleteService={deleteService} | 80 | deleteService={deleteService} |
67 | disableService={this.disableService} | 81 | disableService={args => this.disableService(args)} |
82 | enableService={args => this.enableService(args)} | ||
68 | openSettings={openSettings} | 83 | openSettings={openSettings} |
69 | distance={20} | 84 | distance={20} |
70 | axis="y" | 85 | axis="y" |
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 9b359a78e..36cefe87c 100644 --- a/src/components/settings/services/EditServiceForm.js +++ b/src/components/settings/services/EditServiceForm.js | |||
@@ -61,7 +61,11 @@ const messages = defineMessages({ | |||
61 | }, | 61 | }, |
62 | indirectMessageInfo: { | 62 | indirectMessageInfo: { |
63 | id: 'settings.service.form.indirectMessageInfo', | 63 | id: 'settings.service.form.indirectMessageInfo', |
64 | defaultMessage: '!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...', // eslint-disable-line | 64 | defaultMessage: '!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...', |
65 | }, | ||
66 | isMutedInfo: { | ||
67 | id: 'settings.service.form.isMutedInfo', | ||
68 | defaultMessage: '!!!When disabled, all notification sounds and audio playback are muted', | ||
65 | }, | 69 | }, |
66 | }); | 70 | }); |
67 | 71 | ||
@@ -110,7 +114,7 @@ export default class EditServiceForm extends Component { | |||
110 | if (recipe.validateUrl && values.customUrl) { | 114 | if (recipe.validateUrl && values.customUrl) { |
111 | this.setState({ isValidatingCustomUrl: true }); | 115 | this.setState({ isValidatingCustomUrl: true }); |
112 | try { | 116 | try { |
113 | values.customUrl = normalizeUrl(values.customUrl); | 117 | values.customUrl = normalizeUrl(values.customUrl, { stripWWW: false }); |
114 | isValid = await recipe.validateUrl(values.customUrl); | 118 | isValid = await recipe.validateUrl(values.customUrl); |
115 | } catch (err) { | 119 | } catch (err) { |
116 | console.warn('ValidateURL', err); | 120 | console.warn('ValidateURL', err); |
@@ -231,11 +235,15 @@ export default class EditServiceForm extends Component { | |||
231 | {recipe.hasIndirectMessages && ( | 235 | {recipe.hasIndirectMessages && ( |
232 | <div> | 236 | <div> |
233 | <Toggle field={form.$('isIndirectMessageBadgeEnabled')} /> | 237 | <Toggle field={form.$('isIndirectMessageBadgeEnabled')} /> |
234 | <p className="settings__indirect-message-help"> | 238 | <p className="settings__help"> |
235 | {intl.formatMessage(messages.indirectMessageInfo)} | 239 | {intl.formatMessage(messages.indirectMessageInfo)} |
236 | </p> | 240 | </p> |
237 | </div> | 241 | </div> |
238 | )} | 242 | )} |
243 | <Toggle field={form.$('isMuted')} /> | ||
244 | <p className="settings__help"> | ||
245 | {intl.formatMessage(messages.isMutedInfo)} | ||
246 | </p> | ||
239 | <Toggle field={form.$('isEnabled')} /> | 247 | <Toggle field={form.$('isEnabled')} /> |
240 | </div> | 248 | </div> |
241 | {recipe.message && ( | 249 | {recipe.message && ( |
diff --git a/src/components/settings/services/ServiceItem.js b/src/components/settings/services/ServiceItem.js index 20d8581d0..9743315b0 100644 --- a/src/components/settings/services/ServiceItem.js +++ b/src/components/settings/services/ServiceItem.js | |||
@@ -16,6 +16,10 @@ const messages = defineMessages({ | |||
16 | id: 'settings.services.tooltip.notificationsDisabled', | 16 | id: 'settings.services.tooltip.notificationsDisabled', |
17 | defaultMessage: '!!!Notifications are disabled', | 17 | defaultMessage: '!!!Notifications are disabled', |
18 | }, | 18 | }, |
19 | tooltipIsMuted: { | ||
20 | id: 'settings.services.tooltip.isMuted', | ||
21 | defaultMessage: '!!!All sounds are muted', | ||
22 | }, | ||
19 | }); | 23 | }); |
20 | 24 | ||
21 | @observer | 25 | @observer |
@@ -66,6 +70,17 @@ export default class ServiceItem extends Component { | |||
66 | className="service-table__column-info" | 70 | className="service-table__column-info" |
67 | onClick={goToServiceForm} | 71 | onClick={goToServiceForm} |
68 | > | 72 | > |
73 | {service.isMuted && ( | ||
74 | <span | ||
75 | className="mdi mdi-bell-off" | ||
76 | data-tip={intl.formatMessage(messages.tooltipIsMuted)} | ||
77 | /> | ||
78 | )} | ||
79 | </td> | ||
80 | <td | ||
81 | className="service-table__column-info" | ||
82 | onClick={goToServiceForm} | ||
83 | > | ||
69 | {!service.isEnabled && ( | 84 | {!service.isEnabled && ( |
70 | <span | 85 | <span |
71 | className="mdi mdi-power" | 86 | className="mdi mdi-power" |
@@ -85,13 +100,6 @@ export default class ServiceItem extends Component { | |||
85 | )} | 100 | )} |
86 | <ReactTooltip place="top" type="dark" effect="solid" /> | 101 | <ReactTooltip place="top" type="dark" effect="solid" /> |
87 | </td> | 102 | </td> |
88 | {/* <td className="service-table__column-action"> | ||
89 | <input | ||
90 | type="checkbox" | ||
91 | onChange={toggleAction} | ||
92 | checked={service.isEnabled} | ||
93 | /> | ||
94 | </td> */} | ||
95 | </tr> | 103 | </tr> |
96 | ); | 104 | ); |
97 | } | 105 | } |
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index 5675fecf4..4ce9b7ab2 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', |
@@ -26,6 +28,18 @@ const messages = defineMessages({ | |||
26 | id: 'settings.app.headlineUpdates', | 28 | id: 'settings.app.headlineUpdates', |
27 | defaultMessage: '!!!Updates', | 29 | defaultMessage: '!!!Updates', |
28 | }, | 30 | }, |
31 | headlineAppearance: { | ||
32 | id: 'settings.app.headlineAppearance', | ||
33 | defaultMessage: '!!!Appearance', | ||
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 | }, | ||
29 | buttonSearchForUpdate: { | 43 | buttonSearchForUpdate: { |
30 | id: 'settings.app.buttonSearchForUpdate', | 44 | id: 'settings.app.buttonSearchForUpdate', |
31 | defaultMessage: '!!!Check for updates', | 45 | defaultMessage: '!!!Check for updates', |
@@ -50,6 +64,10 @@ const messages = defineMessages({ | |||
50 | id: 'settings.app.currentVersion', | 64 | id: 'settings.app.currentVersion', |
51 | defaultMessage: '!!!Current version:', | 65 | defaultMessage: '!!!Current version:', |
52 | }, | 66 | }, |
67 | restartRequired: { | ||
68 | id: 'settings.app.restartRequired', | ||
69 | defaultMessage: '!!!Changes require restart', | ||
70 | }, | ||
53 | }); | 71 | }); |
54 | 72 | ||
55 | @observer | 73 | @observer |
@@ -112,16 +130,38 @@ export default class EditSettingsForm extends Component { | |||
112 | onChange={e => this.submit(e)} | 130 | onChange={e => this.submit(e)} |
113 | id="form" | 131 | id="form" |
114 | > | 132 | > |
115 | <h2>{intl.formatMessage(messages.headlineGeneral)}</h2> | 133 | {/* General */} |
134 | <h2 id="general">{intl.formatMessage(messages.headlineGeneral)}</h2> | ||
116 | <Toggle field={form.$('autoLaunchOnStart')} /> | 135 | <Toggle field={form.$('autoLaunchOnStart')} /> |
117 | <Toggle field={form.$('runInBackground')} /> | 136 | <Toggle field={form.$('runInBackground')} /> |
118 | <Toggle field={form.$('enableSystemTray')} /> | 137 | <Toggle field={form.$('enableSystemTray')} /> |
119 | {process.platform === 'win32' && ( | 138 | {process.platform === 'win32' && ( |
120 | <Toggle field={form.$('minimizeToSystemTray')} /> | 139 | <Toggle field={form.$('minimizeToSystemTray')} /> |
121 | )} | 140 | )} |
122 | <h2>{intl.formatMessage(messages.headlineLanguage)}</h2> | 141 | |
142 | {/* Appearance */} | ||
143 | <h2 id="apperance">{intl.formatMessage(messages.headlineAppearance)}</h2> | ||
144 | <Toggle field={form.$('showDisabledServices')} /> | ||
145 | |||
146 | {/* Language */} | ||
147 | <h2 id="language">{intl.formatMessage(messages.headlineLanguage)}</h2> | ||
123 | <Select field={form.$('locale')} showLabel={false} /> | 148 | <Select field={form.$('locale')} showLabel={false} /> |
124 | <h2>{intl.formatMessage(messages.headlineUpdates)}</h2> | 149 | <a |
150 | href={FRANZ_TRANSLATION} | ||
151 | target="_blank" | ||
152 | className="link" | ||
153 | > | ||
154 | {intl.formatMessage(messages.translationHelp)} <i className="mdi mdi-open-in-new" /> | ||
155 | </a> | ||
156 | |||
157 | {/* Advanced */} | ||
158 | <h2 id="advanced">{intl.formatMessage(messages.headlineAdvanced)}</h2> | ||
159 | <Toggle field={form.$('enableSpellchecking')} /> | ||
160 | <p className="settings__help">{intl.formatMessage(messages.restartRequired)}</p> | ||
161 | {/* <Select field={form.$('spellcheckingLanguage')} /> */} | ||
162 | |||
163 | {/* Updates */} | ||
164 | <h2 id="updates">{intl.formatMessage(messages.headlineUpdates)}</h2> | ||
125 | {updateIsReadyToInstall ? ( | 165 | {updateIsReadyToInstall ? ( |
126 | <Button | 166 | <Button |
127 | label={intl.formatMessage(messages.buttonInstallUpdate)} | 167 | 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/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/config.js b/src/config.js index 0a4856ece..b3e00c92c 100644 --- a/src/config.js +++ b/src/config.js | |||
@@ -7,9 +7,16 @@ 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 | locale: 'en-us', // TODO: Replace with proper solution once translations are in | 13 | showDisabledServices: true, |
14 | enableSpellchecking: true, | ||
15 | // spellcheckingLanguage: 'auto', | ||
16 | locale: 'en-US', | ||
14 | beta: false, | 17 | beta: false, |
18 | isAppMuted: false, | ||
15 | }; | 19 | }; |
20 | |||
21 | export const FRANZ_SERVICE_REQUEST = 'http://bit.ly/franz-service-request'; | ||
22 | export const FRANZ_TRANSLATION = 'http://bit.ly/franz-translate'; | ||
diff --git a/src/containers/layout/AppLayoutContainer.js b/src/containers/layout/AppLayoutContainer.js index aa7f7952a..7c6ceccd6 100644 --- a/src/containers/layout/AppLayoutContainer.js +++ b/src/containers/layout/AppLayoutContainer.js | |||
@@ -7,7 +7,7 @@ import RecipesStore from '../../stores/RecipesStore'; | |||
7 | import ServicesStore from '../../stores/ServicesStore'; | 7 | import ServicesStore from '../../stores/ServicesStore'; |
8 | import UIStore from '../../stores/UIStore'; | 8 | import UIStore from '../../stores/UIStore'; |
9 | import NewsStore from '../../stores/NewsStore'; | 9 | import NewsStore from '../../stores/NewsStore'; |
10 | import UserStore from '../../stores/UserStore'; | 10 | import SettingsStore from '../../stores/SettingsStore'; |
11 | import RequestStore from '../../stores/RequestStore'; | 11 | import RequestStore from '../../stores/RequestStore'; |
12 | import GlobalErrorStore from '../../stores/GlobalErrorStore'; | 12 | import GlobalErrorStore from '../../stores/GlobalErrorStore'; |
13 | 13 | ||
@@ -29,8 +29,8 @@ export default class AppLayoutContainer extends Component { | |||
29 | services, | 29 | services, |
30 | ui, | 30 | ui, |
31 | news, | 31 | news, |
32 | settings, | ||
32 | globalError, | 33 | globalError, |
33 | user, | ||
34 | requests, | 34 | requests, |
35 | } = this.props.stores; | 35 | } = this.props.stores; |
36 | 36 | ||
@@ -43,6 +43,7 @@ export default class AppLayoutContainer extends Component { | |||
43 | reorder, | 43 | reorder, |
44 | reload, | 44 | reload, |
45 | toggleNotifications, | 45 | toggleNotifications, |
46 | toggleAudio, | ||
46 | deleteService, | 47 | deleteService, |
47 | updateService, | 48 | updateService, |
48 | } = this.props.actions.service; | 49 | } = this.props.actions.service; |
@@ -53,6 +54,7 @@ export default class AppLayoutContainer extends Component { | |||
53 | 54 | ||
54 | const { | 55 | const { |
55 | installUpdate, | 56 | installUpdate, |
57 | toggleMuteApp, | ||
56 | } = this.props.actions.app; | 58 | } = this.props.actions.app; |
57 | 59 | ||
58 | const { | 60 | const { |
@@ -61,42 +63,44 @@ export default class AppLayoutContainer extends Component { | |||
61 | } = this.props.actions.ui; | 63 | } = this.props.actions.ui; |
62 | 64 | ||
63 | const { children } = this.props; | 65 | const { children } = this.props; |
64 | const allServices = services.enabled; | ||
65 | 66 | ||
66 | const isLoadingServices = services.allServicesRequest.isExecuting | 67 | const isLoadingServices = services.allServicesRequest.isExecuting |
67 | && services.allServicesRequest.isExecutingFirstTime; | 68 | && services.allServicesRequest.isExecutingFirstTime; |
68 | 69 | ||
69 | // const isLoadingRecipes = recipes.allRecipesRequest.isExecuting | ||
70 | // && recipes.allRecipesRequest.isExecutingFirstTime; | ||
71 | |||
72 | if (isLoadingServices) { | 70 | if (isLoadingServices) { |
73 | return ( | 71 | return ( |
74 | <AppLoader /> | 72 | <AppLoader /> |
75 | ); | 73 | ); |
76 | } | 74 | } |
77 | 75 | ||
76 | const isMuted = settings.all.isAppMuted || app.isSystemMuted; | ||
77 | |||
78 | const sidebar = ( | 78 | const sidebar = ( |
79 | <Sidebar | 79 | <Sidebar |
80 | services={allServices} | 80 | services={services.allDisplayed} |
81 | setActive={setActive} | 81 | setActive={setActive} |
82 | isAppMuted={isMuted} | ||
82 | openSettings={openSettings} | 83 | openSettings={openSettings} |
83 | closeSettings={closeSettings} | 84 | closeSettings={closeSettings} |
84 | reorder={reorder} | 85 | reorder={reorder} |
85 | reload={reload} | 86 | reload={reload} |
86 | toggleNotifications={toggleNotifications} | 87 | toggleNotifications={toggleNotifications} |
88 | toggleAudio={toggleAudio} | ||
87 | deleteService={deleteService} | 89 | deleteService={deleteService} |
88 | updateService={updateService} | 90 | updateService={updateService} |
89 | isPremiumUser={user.data.isPremium} | 91 | toggleMuteApp={toggleMuteApp} |
90 | /> | 92 | /> |
91 | ); | 93 | ); |
92 | 94 | ||
93 | const servicesContainer = ( | 95 | const servicesContainer = ( |
94 | <Services | 96 | <Services |
95 | // settings={allSettings} | 97 | services={services.allDisplayed} |
96 | services={allServices} | ||
97 | handleIPCMessage={handleIPCMessage} | 98 | handleIPCMessage={handleIPCMessage} |
98 | setWebviewReference={setWebviewReference} | 99 | setWebviewReference={setWebviewReference} |
99 | openWindow={openWindow} | 100 | openWindow={openWindow} |
101 | reload={reload} | ||
102 | isAppMuted={isMuted} | ||
103 | update={updateService} | ||
100 | /> | 104 | /> |
101 | ); | 105 | ); |
102 | 106 | ||
@@ -130,7 +134,7 @@ AppLayoutContainer.wrappedComponent.propTypes = { | |||
130 | app: PropTypes.instanceOf(AppStore).isRequired, | 134 | app: PropTypes.instanceOf(AppStore).isRequired, |
131 | ui: PropTypes.instanceOf(UIStore).isRequired, | 135 | ui: PropTypes.instanceOf(UIStore).isRequired, |
132 | news: PropTypes.instanceOf(NewsStore).isRequired, | 136 | news: PropTypes.instanceOf(NewsStore).isRequired, |
133 | user: PropTypes.instanceOf(UserStore).isRequired, | 137 | settings: PropTypes.instanceOf(SettingsStore).isRequired, |
134 | requests: PropTypes.instanceOf(RequestStore).isRequired, | 138 | requests: PropTypes.instanceOf(RequestStore).isRequired, |
135 | globalError: PropTypes.instanceOf(GlobalErrorStore).isRequired, | 139 | globalError: PropTypes.instanceOf(GlobalErrorStore).isRequired, |
136 | }).isRequired, | 140 | }).isRequired, |
@@ -139,6 +143,7 @@ AppLayoutContainer.wrappedComponent.propTypes = { | |||
139 | setActive: PropTypes.func.isRequired, | 143 | setActive: PropTypes.func.isRequired, |
140 | reload: PropTypes.func.isRequired, | 144 | reload: PropTypes.func.isRequired, |
141 | toggleNotifications: PropTypes.func.isRequired, | 145 | toggleNotifications: PropTypes.func.isRequired, |
146 | toggleAudio: PropTypes.func.isRequired, | ||
142 | handleIPCMessage: PropTypes.func.isRequired, | 147 | handleIPCMessage: PropTypes.func.isRequired, |
143 | setWebviewReference: PropTypes.func.isRequired, | 148 | setWebviewReference: PropTypes.func.isRequired, |
144 | openWindow: PropTypes.func.isRequired, | 149 | openWindow: PropTypes.func.isRequired, |
@@ -156,7 +161,7 @@ AppLayoutContainer.wrappedComponent.propTypes = { | |||
156 | }).isRequired, | 161 | }).isRequired, |
157 | app: PropTypes.shape({ | 162 | app: PropTypes.shape({ |
158 | installUpdate: PropTypes.func.isRequired, | 163 | installUpdate: PropTypes.func.isRequired, |
159 | healthCheck: PropTypes.func.isRequired, | 164 | toggleMuteApp: PropTypes.func.isRequired, |
160 | }).isRequired, | 165 | }).isRequired, |
161 | requests: PropTypes.shape({ | 166 | requests: PropTypes.shape({ |
162 | retryRequiredRequests: PropTypes.func.isRequired, | 167 | retryRequiredRequests: PropTypes.func.isRequired, |
diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js index 6c614b941..191ef447b 100644 --- a/src/containers/settings/EditServiceScreen.js +++ b/src/containers/settings/EditServiceScreen.js | |||
@@ -9,7 +9,6 @@ import ServicesStore from '../../stores/ServicesStore'; | |||
9 | import Form from '../../lib/Form'; | 9 | import Form from '../../lib/Form'; |
10 | import { gaPage } from '../../lib/analytics'; | 10 | import { gaPage } from '../../lib/analytics'; |
11 | 11 | ||
12 | |||
13 | import ServiceError from '../../components/settings/services/ServiceError'; | 12 | import ServiceError from '../../components/settings/services/ServiceError'; |
14 | import EditServiceForm from '../../components/settings/services/EditServiceForm'; | 13 | import EditServiceForm from '../../components/settings/services/EditServiceForm'; |
15 | import { required, url, oneRequired } from '../../helpers/validation-helpers'; | 14 | import { required, url, oneRequired } from '../../helpers/validation-helpers'; |
@@ -27,6 +26,10 @@ const messages = defineMessages({ | |||
27 | id: 'settings.service.form.enableNotification', | 26 | id: 'settings.service.form.enableNotification', |
28 | defaultMessage: '!!!Enable Notifications', | 27 | defaultMessage: '!!!Enable Notifications', |
29 | }, | 28 | }, |
29 | enableAudio: { | ||
30 | id: 'settings.service.form.enableAudio', | ||
31 | defaultMessage: '!!!Enable audio', | ||
32 | }, | ||
30 | team: { | 33 | team: { |
31 | id: 'settings.service.form.team', | 34 | id: 'settings.service.form.team', |
32 | defaultMessage: '!!!Team', | 35 | defaultMessage: '!!!Team', |
@@ -51,11 +54,14 @@ export default class EditServiceScreen extends Component { | |||
51 | gaPage('Settings/Service/Edit'); | 54 | gaPage('Settings/Service/Edit'); |
52 | } | 55 | } |
53 | 56 | ||
54 | onSubmit(serviceData) { | 57 | onSubmit(data) { |
55 | const { action } = this.props.router.params; | 58 | const { action } = this.props.router.params; |
56 | const { recipes, services } = this.props.stores; | 59 | const { recipes, services } = this.props.stores; |
57 | const { createService, updateService } = this.props.actions.service; | 60 | const { createService, updateService } = this.props.actions.service; |
58 | 61 | ||
62 | const serviceData = data; | ||
63 | serviceData.isMuted = !serviceData.isMuted; | ||
64 | |||
59 | if (action === 'edit') { | 65 | if (action === 'edit') { |
60 | updateService({ serviceId: services.activeSettings.id, serviceData }); | 66 | updateService({ serviceId: services.activeSettings.id, serviceData }); |
61 | } else { | 67 | } else { |
@@ -82,6 +88,11 @@ export default class EditServiceScreen extends Component { | |||
82 | value: service.isNotificationEnabled, | 88 | value: service.isNotificationEnabled, |
83 | default: true, | 89 | default: true, |
84 | }, | 90 | }, |
91 | isMuted: { | ||
92 | label: intl.formatMessage(messages.enableAudio), | ||
93 | value: !service.isMuted, | ||
94 | default: true, | ||
95 | }, | ||
85 | }, | 96 | }, |
86 | }; | 97 | }; |
87 | 98 | ||
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index 6dc2175e1..62e255dab 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 | ||
@@ -39,6 +39,22 @@ const messages = defineMessages({ | |||
39 | id: 'settings.app.form.language', | 39 | id: 'settings.app.form.language', |
40 | defaultMessage: '!!!Language', | 40 | defaultMessage: '!!!Language', |
41 | }, | 41 | }, |
42 | showDisabledServices: { | ||
43 | id: 'settings.app.form.showDisabledServices', | ||
44 | defaultMessage: '!!!Display disabled services tabs', | ||
45 | }, | ||
46 | enableSpellchecking: { | ||
47 | id: 'settings.app.form.enableSpellchecking', | ||
48 | defaultMessage: '!!!Enable spell checking', | ||
49 | }, | ||
50 | spellcheckingLanguage: { | ||
51 | id: 'settings.app.form.spellcheckingLanguage', | ||
52 | defaultMessage: '!!!Language for spell checking', | ||
53 | }, | ||
54 | // spellcheckingAutomaticDetection: { | ||
55 | // id: 'settings.app.form.spellcheckingAutomaticDetection', | ||
56 | // defaultMessage: '!!!Detect language automatically', | ||
57 | // }, | ||
42 | beta: { | 58 | beta: { |
43 | id: 'settings.app.form.beta', | 59 | id: 'settings.app.form.beta', |
44 | defaultMessage: '!!!Include beta versions', | 60 | defaultMessage: '!!!Include beta versions', |
@@ -68,6 +84,9 @@ export default class EditSettingsScreen extends Component { | |||
68 | runInBackground: settingsData.runInBackground, | 84 | runInBackground: settingsData.runInBackground, |
69 | enableSystemTray: settingsData.enableSystemTray, | 85 | enableSystemTray: settingsData.enableSystemTray, |
70 | minimizeToSystemTray: settingsData.minimizeToSystemTray, | 86 | minimizeToSystemTray: settingsData.minimizeToSystemTray, |
87 | showDisabledServices: settingsData.showDisabledServices, | ||
88 | enableSpellchecking: settingsData.enableSpellchecking, | ||
89 | // spellcheckingLanguage: settingsData.spellcheckingLanguage, | ||
71 | locale: settingsData.locale, | 90 | locale: settingsData.locale, |
72 | beta: settingsData.beta, | 91 | beta: settingsData.beta, |
73 | }, | 92 | }, |
@@ -84,14 +103,25 @@ export default class EditSettingsScreen extends Component { | |||
84 | const { app, settings, user } = this.props.stores; | 103 | const { app, settings, user } = this.props.stores; |
85 | const { intl } = this.context; | 104 | const { intl } = this.context; |
86 | 105 | ||
87 | const options = []; | 106 | const locales = []; |
88 | Object.keys(languages).forEach((key) => { | 107 | Object.keys(APP_LOCALES).forEach((key) => { |
89 | options.push({ | 108 | locales.push({ |
90 | value: key, | 109 | value: key, |
91 | label: languages[key], | 110 | label: APP_LOCALES[key], |
92 | }); | 111 | }); |
93 | }); | 112 | }); |
94 | 113 | ||
114 | // const spellcheckerLocales = [{ | ||
115 | // value: 'auto', | ||
116 | // label: intl.formatMessage(messages.spellcheckingAutomaticDetection), | ||
117 | // }]; | ||
118 | // Object.keys(SPELLCHECKER_LOCALES).forEach((key) => { | ||
119 | // spellcheckerLocales.push({ | ||
120 | // value: key, | ||
121 | // label: SPELLCHECKER_LOCALES[key], | ||
122 | // }); | ||
123 | // }); | ||
124 | |||
95 | const config = { | 125 | const config = { |
96 | fields: { | 126 | fields: { |
97 | autoLaunchOnStart: { | 127 | autoLaunchOnStart: { |
@@ -119,10 +149,26 @@ export default class EditSettingsScreen extends Component { | |||
119 | value: settings.all.minimizeToSystemTray, | 149 | value: settings.all.minimizeToSystemTray, |
120 | default: DEFAULT_APP_SETTINGS.minimizeToSystemTray, | 150 | default: DEFAULT_APP_SETTINGS.minimizeToSystemTray, |
121 | }, | 151 | }, |
152 | showDisabledServices: { | ||
153 | label: intl.formatMessage(messages.showDisabledServices), | ||
154 | value: settings.all.showDisabledServices, | ||
155 | default: DEFAULT_APP_SETTINGS.showDisabledServices, | ||
156 | }, | ||
157 | enableSpellchecking: { | ||
158 | label: intl.formatMessage(messages.enableSpellchecking), | ||
159 | value: settings.all.enableSpellchecking, | ||
160 | default: DEFAULT_APP_SETTINGS.enableSpellchecking, | ||
161 | }, | ||
162 | // spellcheckingLanguage: { | ||
163 | // label: intl.formatMessage(messages.spellcheckingLanguage), | ||
164 | // value: settings.all.spellcheckingLanguage, | ||
165 | // options: spellcheckerLocales, | ||
166 | // default: DEFAULT_APP_SETTINGS.spellcheckingLanguage, | ||
167 | // }, | ||
122 | locale: { | 168 | locale: { |
123 | label: intl.formatMessage(messages.language), | 169 | label: intl.formatMessage(messages.language), |
124 | value: app.locale, | 170 | value: app.locale, |
125 | options, | 171 | options: locales, |
126 | default: DEFAULT_APP_SETTINGS.locale, | 172 | default: DEFAULT_APP_SETTINGS.locale, |
127 | }, | 173 | }, |
128 | beta: { | 174 | beta: { |
diff --git a/src/i18n/languages.js b/src/i18n/languages.js index 72d7b26c1..677b09405 100644 --- a/src/i18n/languages.js +++ b/src/i18n/languages.js | |||
@@ -1,17 +1,65 @@ | |||
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', | ||
8 | fr: 'French', | 7 | fr: 'French', |
8 | ka: 'Georgian', | ||
9 | de: 'German', | ||
10 | hu: 'Hungarian', | ||
11 | id: 'Indonesian', | ||
12 | ga: 'Irish', | ||
13 | it: 'Italian', | ||
9 | ja: 'Japanese', | 14 | ja: 'Japanese', |
10 | pl: 'Polish', | 15 | pl: 'Polish', |
11 | ru: 'Русский', | 16 | pt: 'Portuguese', |
12 | ua: 'Українська', | 17 | 'pt-BR': 'Portuguese (Brazil)', |
13 | it: 'Italian', | 18 | ru: 'Russian', |
14 | 'es-ES': 'Español - España', | 19 | sk: 'Slovak', |
15 | 'zh-Hant': 'Chinese (Traditional)', | 20 | uk: 'Ukrainian', |
16 | 'nb-NO': 'Norsk', | 21 | 'nl-BE': 'Vlaams', |
17 | }; | 22 | }; |
23 | |||
24 | export default APP_LOCALES; | ||
25 | |||
26 | // export const SPELLCHECKER_LOCALES = { | ||
27 | // af: 'Afrikaans', | ||
28 | // sq: 'Albanian', | ||
29 | // ar: 'Arabic', | ||
30 | // bg: 'Bulgarian', | ||
31 | // zh: 'Chinese', | ||
32 | // hr: 'Croatian', | ||
33 | // cs: 'Czech', | ||
34 | // da: 'Danish', | ||
35 | // nl: 'Dutch', | ||
36 | // en: 'English', | ||
37 | // 'en-AU': 'English (AU)', | ||
38 | // 'en-CA': 'English (CA)', | ||
39 | // 'en-GB': 'English (GB)', | ||
40 | // fi: 'Finnish', | ||
41 | // fr: 'French', | ||
42 | // ka: 'Georgian', | ||
43 | // de: 'German', | ||
44 | // el: 'Greek, Modern', | ||
45 | // hi: 'Hindi', | ||
46 | // hu: 'Hungarian', | ||
47 | // id: 'Indonesian', | ||
48 | // it: 'Italian', | ||
49 | // ja: 'Japanese', | ||
50 | // jv: 'Javanese', | ||
51 | // ko: 'Korean', | ||
52 | // lt: 'Lithuanian', | ||
53 | // lv: 'Latvian', | ||
54 | // ms: 'Malay', | ||
55 | // no: 'Norwegian', | ||
56 | // pl: 'Polish', | ||
57 | // pt: 'Portuguese', | ||
58 | // ro: 'Romanian, Moldavian, Moldovan', | ||
59 | // ru: 'Russian', | ||
60 | // sk: 'Slovak', | ||
61 | // es: 'Spanish', | ||
62 | // sv: 'Swedish', | ||
63 | // uk: 'Ukrainian', | ||
64 | // vi: 'Vietnamese', | ||
65 | // }; | ||
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..5717a18b1 --- /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 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 b1d260f0a..8de5e5e02 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", |
@@ -58,9 +58,12 @@ | |||
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", |
65 | "sidebar.mute": "Disable audio", | ||
66 | "sidebar.unmute": "Enable audio", | ||
64 | "services.welcome": "Welcome to Franz", | 67 | "services.welcome": "Welcome to Franz", |
65 | "services.getStarted": "Get started", | 68 | "services.getStarted": "Get started", |
66 | "settings.account.headline": "Account", | 69 | "settings.account.headline": "Account", |
@@ -94,6 +97,7 @@ | |||
94 | "settings.recipes.dev": "Development", | 97 | "settings.recipes.dev": "Development", |
95 | "settings.recipes.nothingFound": "Sorry, but no service matched your search term.", | 98 | "settings.recipes.nothingFound": "Sorry, but no service matched your search term.", |
96 | "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added", | 99 | "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added", |
100 | "settings.recipes.missingService": "Missing a service?", | ||
97 | "settings.service.form.saveButton": "Save service", | 101 | "settings.service.form.saveButton": "Save service", |
98 | "settings.service.form.deleteButton": "Delete service", | 102 | "settings.service.form.deleteButton": "Delete service", |
99 | "settings.service.form.availableServices": "Available services", | 103 | "settings.service.form.availableServices": "Available services", |
@@ -106,11 +110,20 @@ | |||
106 | "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Franz Premium Supporter Account.", | 110 | "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Franz Premium Supporter Account.", |
107 | "settings.service.form.customUrlUpgradeAccount": "Upgrade your account", | 111 | "settings.service.form.customUrlUpgradeAccount": "Upgrade your account", |
108 | "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", | 112 | "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", |
113 | "settings.service.form.name": "Name", | ||
114 | "settings.service.form.enableService": "Enable service", | ||
115 | "settings.service.form.enableNotification": "Enable notifications", | ||
116 | "settings.service.form.team": "Team", | ||
117 | "settings.service.form.customUrl": "Custom server", | ||
118 | "settings.service.form.indirectMessages": "Show message badge for all new messages", | ||
119 | "settings.service.form.enableAudio": "Enable audio", | ||
120 | "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", | ||
109 | "settings.service.error.headline": "Error", | 121 | "settings.service.error.headline": "Error", |
110 | "settings.service.error.goBack": "Back to services", | 122 | "settings.service.error.goBack": "Back to services", |
111 | "settings.service.error.message": "Could not load service recipe.", | 123 | "settings.service.error.message": "Could not load service recipe.", |
112 | "settings.services.tooltip.isDisabled": "Service is disabled", | 124 | "settings.services.tooltip.isDisabled": "Service is disabled", |
113 | "settings.services.tooltip.notificationsDisabled": "Notifications are disabled", | 125 | "settings.services.tooltip.notificationsDisabled": "Notifications are disabled", |
126 | "settings.services.tooltip.isMuted": "All sounds are muted", | ||
114 | "settings.services.headline": "Your services", | 127 | "settings.services.headline": "Your services", |
115 | "settings.services.noServicesAdded": "You haven't added any services yet.", | 128 | "settings.services.noServicesAdded": "You haven't added any services yet.", |
116 | "settings.services.discoverServices": "Discover services", | 129 | "settings.services.discoverServices": "Discover services", |
@@ -120,6 +133,8 @@ | |||
120 | "settings.app.headlineGeneral": "General", | 133 | "settings.app.headlineGeneral": "General", |
121 | "settings.app.headlineLanguage": "Language", | 134 | "settings.app.headlineLanguage": "Language", |
122 | "settings.app.headlineUpdates": "Updates", | 135 | "settings.app.headlineUpdates": "Updates", |
136 | "settings.app.headlineAppearance": "Appearance", | ||
137 | "settings.app.headlineAdvanced": "Advanced", | ||
123 | "settings.app.buttonSearchForUpdate": "Check for updates", | 138 | "settings.app.buttonSearchForUpdate": "Check for updates", |
124 | "settings.app.buttonInstallUpdate": "Restart & install update", | 139 | "settings.app.buttonInstallUpdate": "Restart & install update", |
125 | "settings.app.updateStatusSearching": "Is searching for update", | 140 | "settings.app.updateStatusSearching": "Is searching for update", |
@@ -131,16 +146,14 @@ | |||
131 | "settings.app.form.minimizeToSystemTray": "Minimize Franz to system tray", | 146 | "settings.app.form.minimizeToSystemTray": "Minimize Franz to system tray", |
132 | "settings.app.form.runInBackground": "Keep Franz in background when closing the window", | 147 | "settings.app.form.runInBackground": "Keep Franz in background when closing the window", |
133 | "settings.app.form.language": "Language", | 148 | "settings.app.form.language": "Language", |
149 | "settings.app.form.enableSpellchecking": "Enable spell checking", | ||
150 | "settings.app.form.showDisabledServices": "Display disabled services tabs", | ||
134 | "settings.app.form.beta": "Include beta versions", | 151 | "settings.app.form.beta": "Include beta versions", |
152 | "settings.app.translationHelp": "Help us to translate Franz into your language.", | ||
135 | "settings.app.currentVersion": "Current version:", | 153 | "settings.app.currentVersion": "Current version:", |
136 | "settings.service.form.name": "Name", | 154 | "settings.app.restartRequired": "Changes require restart", |
137 | "settings.service.form.enableService": "Enable service", | 155 | "settings.user.form.firstname": "First Name", |
138 | "settings.service.form.enableNotification": "Enable notifications", | 156 | "settings.user.form.lastname": "Last Name", |
139 | "settings.service.form.team": "Team", | ||
140 | "settings.service.form.customUrl": "Custom server", | ||
141 | "settings.service.form.indirectMessages": "Show message badge for all new messages", | ||
142 | "settings.user.form.firstname": "Firstname", | ||
143 | "settings.user.form.lastname": "Lastname", | ||
144 | "settings.user.form.email": "Email", | 157 | "settings.user.form.email": "Email", |
145 | "settings.user.form.currentPassword": "Current password", | 158 | "settings.user.form.currentPassword": "Current password", |
146 | "settings.user.form.newPassword": "New password", | 159 | "settings.user.form.newPassword": "New password", |
@@ -158,12 +171,22 @@ | |||
158 | "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.", | 171 | "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.", |
159 | "subscription.mining.line3": "As long as the miner is active, you will have unlimited access to all the Franz Premium Supporter Features.", | 172 | "subscription.mining.line3": "As long as the miner is active, you will have unlimited access to all the Franz Premium Supporter Features.", |
160 | "subscription.mining.moreInformation": "Get more information about this plan.", | 173 | "subscription.mining.moreInformation": "Get more information about this plan.", |
174 | "subscription.euTaxInfo": "EU residents: local sales tax may apply", | ||
161 | "subscriptionPopup.buttonCancel": "Cancel", | 175 | "subscriptionPopup.buttonCancel": "Cancel", |
162 | "subscriptionPopup.buttonDone": "Done", | 176 | "subscriptionPopup.buttonDone": "Done", |
163 | "tabs.item.reload": "Reload", | 177 | "tabs.item.reload": "Reload", |
164 | "tabs.item.edit": "Edit", | 178 | "tabs.item.edit": "Edit", |
165 | "tabs.item.disableNotifications": "Disable notifications", | 179 | "tabs.item.disableNotifications": "Disable notifications", |
166 | "tabs.item.enableNotification": "Enable notifications", | 180 | "tabs.item.enableNotification": "Enable notifications", |
181 | "tabs.item.disableAudio": "Disable audio", | ||
182 | "tabs.item.enableAudio": "Enable audio", | ||
167 | "tabs.item.disableService": "Disable service", | 183 | "tabs.item.disableService": "Disable service", |
168 | "tabs.item.deleteService": "Delete service" | 184 | "tabs.item.enableService": "Enable service", |
185 | "tabs.item.deleteService": "Delete service", | ||
186 | "service.crashHandler.headline": "Oh no!", | ||
187 | "service.crashHandler.text": "{name} has caused an error.", | ||
188 | "service.crashHandler.action": "Reload {name}", | ||
189 | "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds", | ||
190 | "service.disabledHandler.headline": "{name} is disabled", | ||
191 | "service.disabledHandler.action": "Enable {name}" | ||
169 | } | 192 | } |
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..5717a18b1 --- /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 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 f0fe56ae5..6a08e5e5a 100644 --- a/src/index.js +++ b/src/index.js | |||
@@ -11,8 +11,8 @@ import Settings from './electron/Settings'; | |||
11 | import { appId } from './package.json'; // eslint-disable-line import/no-unresolved | 11 | import { appId } from './package.json'; // eslint-disable-line import/no-unresolved |
12 | import './electron/exception'; | 12 | import './electron/exception'; |
13 | 13 | ||
14 | // Keep a global reference of the window object, if you don't, the window will | 14 | // Keep a global reference of the window object, if you don't, the window will |
15 | // be closed automatically when the JavaScript object is garbage collected. | 15 | // be closed automatically when the JavaScript object is garbage collected. |
16 | let mainWindow; | 16 | let mainWindow; |
17 | let willQuitApp = false; | 17 | let willQuitApp = false; |
18 | 18 | ||
@@ -37,25 +37,30 @@ if (isSecondInstance) { | |||
37 | app.exit(); | 37 | app.exit(); |
38 | } | 38 | } |
39 | 39 | ||
40 | // Lets disable Hardware Acceleration until we have a better solution | ||
41 | // to deal with the high-perf-gpu requirement of some services | ||
42 | |||
43 | // Disabled to test tweetdeck glitches | ||
44 | // app.disableHardwareAcceleration(); | ||
40 | 45 | ||
41 | // Initialize Settings | 46 | // Initialize Settings |
42 | const settings = new Settings(); | 47 | const settings = new Settings(); |
43 | 48 | ||
44 | const createWindow = async () => { | 49 | const createWindow = () => { |
45 | // Remember window size | 50 | // Remember window size |
46 | const mainWindowState = windowStateKeeper({ | 51 | const mainWindowState = windowStateKeeper({ |
47 | defaultWidth: 800, | 52 | defaultWidth: 800, |
48 | defaultHeight: 600, | 53 | defaultHeight: 600, |
49 | }); | 54 | }); |
50 | 55 | ||
51 | // Create the browser window. | 56 | // Create the browser window. |
52 | mainWindow = new BrowserWindow({ | 57 | mainWindow = new BrowserWindow({ |
53 | x: mainWindowState.x, | 58 | x: mainWindowState.x, |
54 | y: mainWindowState.y, | 59 | y: mainWindowState.y, |
55 | width: mainWindowState.width, | 60 | width: mainWindowState.width, |
56 | height: mainWindowState.height, | 61 | height: mainWindowState.height, |
57 | minWidth: 800, | 62 | minWidth: 600, |
58 | minHeight: 600, | 63 | minHeight: 500, |
59 | titleBarStyle: 'hidden', | 64 | titleBarStyle: 'hidden', |
60 | backgroundColor: '#3498db', | 65 | backgroundColor: '#3498db', |
61 | autoHideMenuBar: true, | 66 | autoHideMenuBar: true, |
@@ -73,16 +78,16 @@ const createWindow = async () => { | |||
73 | // and load the index.html of the app. | 78 | // and load the index.html of the app. |
74 | mainWindow.loadURL(`file://${__dirname}/index.html`); | 79 | mainWindow.loadURL(`file://${__dirname}/index.html`); |
75 | 80 | ||
76 | // Open the DevTools. | 81 | // Open the DevTools. |
77 | if (isDevMode) { | 82 | if (isDevMode) { |
78 | mainWindow.webContents.openDevTools(); | 83 | mainWindow.webContents.openDevTools(); |
79 | } | 84 | } |
80 | 85 | ||
81 | // Emitted when the window is closed. | 86 | // Emitted when the window is closed. |
82 | mainWindow.on('close', (e) => { | 87 | mainWindow.on('close', (e) => { |
83 | // Dereference the window object, usually you would store windows | 88 | // Dereference the window object, usually you would store windows |
84 | // in an array if your app supports multi windows, this is the time | 89 | // in an array if your app supports multi windows, this is the time |
85 | // when you should delete the corresponding element. | 90 | // when you should delete the corresponding element. |
86 | if (!willQuitApp && (settings.get('runInBackground') === undefined || settings.get('runInBackground'))) { | 91 | if (!willQuitApp && (settings.get('runInBackground') === undefined || settings.get('runInBackground'))) { |
87 | e.preventDefault(); | 92 | e.preventDefault(); |
88 | if (isWindows) { | 93 | if (isWindows) { |
@@ -142,20 +147,20 @@ const createWindow = async () => { | |||
142 | shell.openExternal(url); | 147 | shell.openExternal(url); |
143 | }); | 148 | }); |
144 | }; | 149 | }; |
145 | 150 | ||
146 | // This method will be called when Electron has finished | 151 | // This method will be called when Electron has finished |
147 | // initialization and is ready to create browser windows. | 152 | // initialization and is ready to create browser windows. |
148 | // Some APIs can only be used after this event occurs. | 153 | // Some APIs can only be used after this event occurs. |
149 | app.on('ready', createWindow); | 154 | app.on('ready', createWindow); |
150 | 155 | ||
151 | // Quit when all windows are closed. | 156 | // Quit when all windows are closed. |
152 | app.on('window-all-closed', () => { | 157 | app.on('window-all-closed', () => { |
153 | // On OS X it is common for applications and their menu bar | 158 | // On OS X it is common for applications and their menu bar |
154 | // to stay active until the user quits explicitly with Cmd + Q | 159 | // to stay active until the user quits explicitly with Cmd + Q |
155 | if (settings.get('runInBackground') === undefined | 160 | if (settings.get('runInBackground') === undefined |
156 | || settings.get('runInBackground')) { | 161 | || settings.get('runInBackground')) { |
157 | app.quit(); | 162 | app.quit(); |
158 | } | 163 | } |
159 | }); | 164 | }); |
160 | 165 | ||
161 | app.on('before-quit', () => { | 166 | app.on('before-quit', () => { |
diff --git a/src/lib/Menu.js b/src/lib/Menu.js index 8f0a92c3d..6624ab75e 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js | |||
@@ -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', |
@@ -277,7 +253,7 @@ export default class FranzMenu { | |||
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/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 484252e7c..958e4b11e 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 | ||
@@ -18,11 +18,13 @@ export default class Service { | |||
18 | 18 | ||
19 | @observable order = 99; | 19 | @observable order = 99; |
20 | @observable isEnabled = true; | 20 | @observable isEnabled = true; |
21 | @observable isMuted = false; | ||
21 | @observable team = ''; | 22 | @observable team = ''; |
22 | @observable customUrl = ''; | 23 | @observable customUrl = ''; |
23 | @observable isNotificationEnabled = true; | 24 | @observable isNotificationEnabled = true; |
24 | @observable isIndirectMessageBadgeEnabled = true; | 25 | @observable isIndirectMessageBadgeEnabled = true; |
25 | @observable customIconUrl = ''; | 26 | @observable customIconUrl = ''; |
27 | @observable hasCrashed = false; | ||
26 | 28 | ||
27 | constructor(data, recipe) { | 29 | constructor(data, recipe) { |
28 | if (!data) { | 30 | if (!data) { |
@@ -53,14 +55,25 @@ export default class Service { | |||
53 | this.isIndirectMessageBadgeEnabled = data.isIndirectMessageBadgeEnabled !== undefined | 55 | this.isIndirectMessageBadgeEnabled = data.isIndirectMessageBadgeEnabled !== undefined |
54 | ? data.isIndirectMessageBadgeEnabled : this.isIndirectMessageBadgeEnabled; | 56 | ? data.isIndirectMessageBadgeEnabled : this.isIndirectMessageBadgeEnabled; |
55 | 57 | ||
58 | this.isMuted = data.isMuted !== undefined ? data.isMuted : this.isMuted; | ||
59 | |||
56 | this.recipe = recipe; | 60 | this.recipe = recipe; |
61 | |||
62 | autorun(() => { | ||
63 | if (!this.isEnabled) { | ||
64 | this.webview = null; | ||
65 | this.isAttached = false; | ||
66 | this.unreadDirectMessageCount = 0; | ||
67 | this.unreadIndirectMessageCount = 0; | ||
68 | } | ||
69 | }); | ||
57 | } | 70 | } |
58 | 71 | ||
59 | @computed get url() { | 72 | @computed get url() { |
60 | if (this.recipe.hasCustomUrl && this.customUrl) { | 73 | if (this.recipe.hasCustomUrl && this.customUrl) { |
61 | let url; | 74 | let url; |
62 | try { | 75 | try { |
63 | url = normalizeUrl(this.customUrl); | 76 | url = normalizeUrl(this.customUrl, { stripWWW: false }); |
64 | } catch (err) { | 77 | } catch (err) { |
65 | console.error(`Service (${this.recipe.name}): '${this.customUrl}' is not a valid Url.`); | 78 | console.error(`Service (${this.recipe.name}): '${this.customUrl}' is not a valid Url.`); |
66 | } | 79 | } |
@@ -117,6 +130,14 @@ export default class Service { | |||
117 | frameName, | 130 | frameName, |
118 | options, | 131 | options, |
119 | })); | 132 | })); |
133 | |||
134 | this.webview.addEventListener('did-start-loading', () => { | ||
135 | this.hasCrashed = false; | ||
136 | }); | ||
137 | |||
138 | this.webview.addEventListener('crashed', () => { | ||
139 | this.hasCrashed = true; | ||
140 | }); | ||
120 | } | 141 | } |
121 | 142 | ||
122 | initializeWebViewListener() { | 143 | initializeWebViewListener() { |
diff --git a/src/models/Settings.js b/src/models/Settings.js new file mode 100644 index 000000000..3b352f9aa --- /dev/null +++ b/src/models/Settings.js | |||
@@ -0,0 +1,19 @@ | |||
1 | import { observable } 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 enableSpellchecking = DEFAULT_APP_SETTINGS.enableSpellchecking; | ||
12 | @observable locale = DEFAULT_APP_SETTINGS.locale; | ||
13 | @observable beta = DEFAULT_APP_SETTINGS.beta; | ||
14 | @observable isAppMuted = DEFAULT_APP_SETTINGS.isAppMuted; | ||
15 | |||
16 | constructor(data) { | ||
17 | Object.assign(this, data); | ||
18 | } | ||
19 | } | ||
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 ecfd621d3..0b7c60bce 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js | |||
@@ -2,20 +2,20 @@ import { remote, ipcRenderer, shell } from 'electron'; | |||
2 | import { action, observable } from 'mobx'; | 2 | import { action, observable } from 'mobx'; |
3 | import moment from 'moment'; | 3 | import moment from 'moment'; |
4 | import key from 'keymaster'; | 4 | import key from 'keymaster'; |
5 | // import path from 'path'; | 5 | import { getDoNotDisturb } from '@meetfranz/electron-notification-state'; |
6 | import idleTimer from '@paulcbetts/system-idle-time'; | 6 | import idleTimer from '@paulcbetts/system-idle-time'; |
7 | import AutoLaunch from 'auto-launch'; | 7 | import AutoLaunch from 'auto-launch'; |
8 | 8 | ||
9 | import Store from './lib/Store'; | 9 | import Store from './lib/Store'; |
10 | import Request from './lib/Request'; | 10 | import Request from './lib/Request'; |
11 | import { CHECK_INTERVAL } from '../config'; | 11 | import { CHECK_INTERVAL, DEFAULT_APP_SETTINGS } from '../config'; |
12 | import { isMac } from '../environment'; | 12 | import { isMac } from '../environment'; |
13 | import locales from '../i18n/translations'; | 13 | import locales from '../i18n/translations'; |
14 | import { gaEvent } from '../lib/analytics'; | 14 | import { gaEvent } from '../lib/analytics'; |
15 | import Miner from '../lib/Miner'; | 15 | import Miner from '../lib/Miner'; |
16 | 16 | ||
17 | const { app, powerMonitor } = remote; | 17 | const { app, powerMonitor } = remote; |
18 | const defaultLocale = 'en-US'; | 18 | const defaultLocale = DEFAULT_APP_SETTINGS.locale; |
19 | const autoLauncher = new AutoLaunch({ | 19 | const autoLauncher = new AutoLaunch({ |
20 | name: 'Franz', | 20 | name: 'Franz', |
21 | }); | 21 | }); |
@@ -45,6 +45,8 @@ 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; | ||
49 | |||
48 | constructor(...args) { | 50 | constructor(...args) { |
49 | super(...args); | 51 | super(...args); |
50 | 52 | ||
@@ -57,6 +59,8 @@ export default class AppStore extends Store { | |||
57 | this.actions.app.installUpdate.listen(this._installUpdate.bind(this)); | 59 | this.actions.app.installUpdate.listen(this._installUpdate.bind(this)); |
58 | this.actions.app.resetUpdateStatus.listen(this._resetUpdateStatus.bind(this)); | 60 | this.actions.app.resetUpdateStatus.listen(this._resetUpdateStatus.bind(this)); |
59 | this.actions.app.healthCheck.listen(this._healthCheck.bind(this)); | 61 | this.actions.app.healthCheck.listen(this._healthCheck.bind(this)); |
62 | this.actions.app.muteApp.listen(this._muteApp.bind(this)); | ||
63 | this.actions.app.toggleMuteApp.listen(this._toggleMuteApp.bind(this)); | ||
60 | 64 | ||
61 | this.registerReactions([ | 65 | this.registerReactions([ |
62 | this._offlineCheck.bind(this), | 66 | this._offlineCheck.bind(this), |
@@ -81,6 +85,11 @@ export default class AppStore extends Store { | |||
81 | // Needs to be delayed a bit | 85 | // Needs to be delayed a bit |
82 | this._autoStart(); | 86 | this._autoStart(); |
83 | 87 | ||
88 | // Check if system is muted | ||
89 | // There are no events to subscribe so we need to poll everey 5s | ||
90 | this._systemDND(); | ||
91 | setInterval(() => this._systemDND(), 5000); | ||
92 | |||
84 | // Check for updates once every 4 hours | 93 | // Check for updates once every 4 hours |
85 | setInterval(() => this._checkForUpdates(), CHECK_INTERVAL); | 94 | setInterval(() => this._checkForUpdates(), CHECK_INTERVAL); |
86 | // Check for an update in 30s (need a delay to prevent Squirrel Installer lock file issues) | 95 | // Check for an update in 30s (need a delay to prevent Squirrel Installer lock file issues) |
@@ -118,16 +127,22 @@ export default class AppStore extends Store { | |||
118 | 127 | ||
119 | // Set active the next service | 128 | // Set active the next service |
120 | key( | 129 | key( |
121 | '⌘+pagedown, ctrl+pagedown, ⌘+tab, ctrl+tab', () => { | 130 | '⌘+pagedown, ctrl+pagedown, ⌘+alt+right, ctrl+tab', () => { |
122 | this.actions.service.setActiveNext(); | 131 | this.actions.service.setActiveNext(); |
123 | }); | 132 | }); |
124 | 133 | ||
125 | // Set active the prev service | 134 | // Set active the prev service |
126 | key( | 135 | key( |
127 | '⌘+pageup, ctrl+pageup, ⌘+shift+tab, ctrl+shift+tab', () => { | 136 | '⌘+pageup, ctrl+pageup, ⌘+alt+left, ctrl+shift+tab', () => { |
128 | this.actions.service.setActivePrev(); | 137 | this.actions.service.setActivePrev(); |
129 | }); | 138 | }); |
130 | 139 | ||
140 | // Global Mute | ||
141 | key( | ||
142 | '⌘+shift+m ctrl+shift+m', () => { | ||
143 | this.actions.app.toggleMuteApp(); | ||
144 | }); | ||
145 | |||
131 | this.locale = this._getDefaultLocale(); | 146 | this.locale = this._getDefaultLocale(); |
132 | 147 | ||
133 | this._healthCheck(); | 148 | this._healthCheck(); |
@@ -202,6 +217,18 @@ export default class AppStore extends Store { | |||
202 | this.healthCheckRequest.execute(); | 217 | this.healthCheckRequest.execute(); |
203 | } | 218 | } |
204 | 219 | ||
220 | @action _muteApp({ isMuted }) { | ||
221 | this.actions.settings.update({ | ||
222 | settings: { | ||
223 | isAppMuted: isMuted, | ||
224 | }, | ||
225 | }); | ||
226 | } | ||
227 | |||
228 | @action _toggleMuteApp() { | ||
229 | this._muteApp({ isMuted: !this.stores.settings.all.isAppMuted }); | ||
230 | } | ||
231 | |||
205 | // Reactions | 232 | // Reactions |
206 | _offlineCheck() { | 233 | _offlineCheck() { |
207 | if (!this.isOnline) { | 234 | if (!this.isOnline) { |
@@ -297,4 +324,8 @@ export default class AppStore extends Store { | |||
297 | async _checkAutoStart() { | 324 | async _checkAutoStart() { |
298 | return autoLauncher.isEnabled() || false; | 325 | return autoLauncher.isEnabled() || false; |
299 | } | 326 | } |
327 | |||
328 | _systemDND() { | ||
329 | this.isSystemMuted = getDoNotDisturb(); | ||
330 | } | ||
300 | } | 331 | } |
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 1d895d532..22c376c06 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)); |
@@ -48,6 +49,7 @@ export default class ServicesStore extends Store { | |||
48 | this.actions.service.reloadUpdatedServices.listen(this._reloadUpdatedServices.bind(this)); | 49 | this.actions.service.reloadUpdatedServices.listen(this._reloadUpdatedServices.bind(this)); |
49 | this.actions.service.reorder.listen(this._reorder.bind(this)); | 50 | this.actions.service.reorder.listen(this._reorder.bind(this)); |
50 | this.actions.service.toggleNotifications.listen(this._toggleNotifications.bind(this)); | 51 | this.actions.service.toggleNotifications.listen(this._toggleNotifications.bind(this)); |
52 | this.actions.service.toggleAudio.listen(this._toggleAudio.bind(this)); | ||
51 | this.actions.service.openDevTools.listen(this._openDevTools.bind(this)); | 53 | this.actions.service.openDevTools.listen(this._openDevTools.bind(this)); |
52 | this.actions.service.openDevToolsForActiveService.listen(this._openDevToolsForActiveService.bind(this)); | 54 | this.actions.service.openDevToolsForActiveService.listen(this._openDevToolsForActiveService.bind(this)); |
53 | 55 | ||
@@ -57,6 +59,7 @@ export default class ServicesStore extends Store { | |||
57 | this._mapActiveServiceToServiceModelReaction.bind(this), | 59 | this._mapActiveServiceToServiceModelReaction.bind(this), |
58 | this._saveActiveService.bind(this), | 60 | this._saveActiveService.bind(this), |
59 | this._logoutReaction.bind(this), | 61 | this._logoutReaction.bind(this), |
62 | this._shareSettingsWithServiceProcess.bind(this), | ||
60 | ]); | 63 | ]); |
61 | 64 | ||
62 | // Just bind this | 65 | // Just bind this |
@@ -78,6 +81,10 @@ export default class ServicesStore extends Store { | |||
78 | return this.all.filter(service => service.isEnabled); | 81 | return this.all.filter(service => service.isEnabled); |
79 | } | 82 | } |
80 | 83 | ||
84 | @computed get allDisplayed() { | ||
85 | return this.stores.settings.all.showDisabledServices ? this.all : this.enabled; | ||
86 | } | ||
87 | |||
81 | @computed get filtered() { | 88 | @computed get filtered() { |
82 | return this.all.filter(service => service.name.toLowerCase().includes(this.filterNeedle.toLowerCase())); | 89 | return this.all.filter(service => service.name.toLowerCase().includes(this.filterNeedle.toLowerCase())); |
83 | } | 90 | } |
@@ -208,21 +215,23 @@ export default class ServicesStore extends Store { | |||
208 | } | 215 | } |
209 | 216 | ||
210 | @action _setActiveNext() { | 217 | @action _setActiveNext() { |
211 | const nextIndex = this._wrapIndex(this.enabled.findIndex(service => service.isActive), 1, this.enabled.length); | 218 | const nextIndex = this._wrapIndex(this.allDisplayed.findIndex(service => service.isActive), 1, this.allDisplayed.length); |
212 | 219 | ||
220 | // TODO: simplify this; | ||
213 | this.all.forEach((s, index) => { | 221 | this.all.forEach((s, index) => { |
214 | this.all[index].isActive = false; | 222 | this.all[index].isActive = false; |
215 | }); | 223 | }); |
216 | this.enabled[nextIndex].isActive = true; | 224 | this.allDisplayed[nextIndex].isActive = true; |
217 | } | 225 | } |
218 | 226 | ||
219 | @action _setActivePrev() { | 227 | @action _setActivePrev() { |
220 | const prevIndex = this._wrapIndex(this.enabled.findIndex(service => service.isActive), -1, this.enabled.length); | 228 | const prevIndex = this._wrapIndex(this.allDisplayed.findIndex(service => service.isActive), -1, this.allDisplayed.length); |
221 | 229 | ||
230 | // TODO: simplify this; | ||
222 | this.all.forEach((s, index) => { | 231 | this.all.forEach((s, index) => { |
223 | this.all[index].isActive = false; | 232 | this.all[index].isActive = false; |
224 | }); | 233 | }); |
225 | this.enabled[prevIndex].isActive = true; | 234 | this.allDisplayed[prevIndex].isActive = true; |
226 | } | 235 | } |
227 | 236 | ||
228 | @action _setUnreadMessageCount({ serviceId, count }) { | 237 | @action _setUnreadMessageCount({ serviceId, count }) { |
@@ -277,6 +286,7 @@ export default class ServicesStore extends Store { | |||
277 | if (channel === 'hello') { | 286 | if (channel === 'hello') { |
278 | this._initRecipePolling(service.id); | 287 | this._initRecipePolling(service.id); |
279 | this._initializeServiceRecipeInWebview(serviceId); | 288 | this._initializeServiceRecipeInWebview(serviceId); |
289 | this._shareSettingsWithServiceProcess(); | ||
280 | } else if (channel === 'messages') { | 290 | } else if (channel === 'messages') { |
281 | this.actions.service.setUnreadMessageCount({ | 291 | this.actions.service.setUnreadMessageCount({ |
282 | serviceId, | 292 | serviceId, |
@@ -287,7 +297,7 @@ export default class ServicesStore extends Store { | |||
287 | }); | 297 | }); |
288 | } else if (channel === 'notification') { | 298 | } else if (channel === 'notification') { |
289 | const options = args[0].options; | 299 | const options = args[0].options; |
290 | if (service.recipe.hasNotificationSound) { | 300 | if (service.recipe.hasNotificationSound || service.isMuted) { |
291 | Object.assign(options, { | 301 | Object.assign(options, { |
292 | silent: true, | 302 | silent: true, |
293 | }); | 303 | }); |
@@ -323,7 +333,17 @@ export default class ServicesStore extends Store { | |||
323 | @action _sendIPCMessage({ serviceId, channel, args }) { | 333 | @action _sendIPCMessage({ serviceId, channel, args }) { |
324 | const service = this.one(serviceId); | 334 | const service = this.one(serviceId); |
325 | 335 | ||
326 | 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 | })); | ||
327 | } | 347 | } |
328 | 348 | ||
329 | @action _openWindow({ event }) { | 349 | @action _openWindow({ event }) { |
@@ -373,9 +393,9 @@ export default class ServicesStore extends Store { | |||
373 | } | 393 | } |
374 | 394 | ||
375 | @action _reorder({ oldIndex, newIndex }) { | 395 | @action _reorder({ oldIndex, newIndex }) { |
376 | const oldEnabledSortIndex = this.all.indexOf(this.enabled[oldIndex]); | 396 | const showDisabledServices = this.stores.settings.all.showDisabledServices; |
377 | const newEnabledSortIndex = this.all.indexOf(this.enabled[newIndex]); | 397 | const oldEnabledSortIndex = showDisabledServices ? oldIndex : this.all.indexOf(this.enabled[oldIndex]); |
378 | 398 | const newEnabledSortIndex = showDisabledServices ? newIndex : this.all.indexOf(this.enabled[newIndex]); | |
379 | 399 | ||
380 | this.all.splice(newEnabledSortIndex, 0, this.all.splice(oldEnabledSortIndex, 1)[0]); | 400 | this.all.splice(newEnabledSortIndex, 0, this.all.splice(oldEnabledSortIndex, 1)[0]); |
381 | 401 | ||
@@ -399,11 +419,25 @@ export default class ServicesStore extends Store { | |||
399 | @action _toggleNotifications({ serviceId }) { | 419 | @action _toggleNotifications({ serviceId }) { |
400 | const service = this.one(serviceId); | 420 | const service = this.one(serviceId); |
401 | 421 | ||
422 | this.actions.service.updateService({ | ||
423 | serviceId, | ||
424 | serviceData: { | ||
425 | isNotificationEnabled: !service.isNotificationEnabled, | ||
426 | }, | ||
427 | redirect: false, | ||
428 | }); | ||
429 | } | ||
430 | |||
431 | @action _toggleAudio({ serviceId }) { | ||
432 | const service = this.one(serviceId); | ||
433 | |||
402 | service.isNotificationEnabled = !service.isNotificationEnabled; | 434 | service.isNotificationEnabled = !service.isNotificationEnabled; |
403 | 435 | ||
404 | this.actions.service.updateService({ | 436 | this.actions.service.updateService({ |
405 | serviceId, | 437 | serviceId, |
406 | serviceData: service, | 438 | serviceData: { |
439 | isMuted: !service.isMuted, | ||
440 | }, | ||
407 | redirect: false, | 441 | redirect: false, |
408 | }); | 442 | }); |
409 | } | 443 | } |
@@ -436,27 +470,21 @@ export default class ServicesStore extends Store { | |||
436 | const service = this.active; | 470 | const service = this.active; |
437 | 471 | ||
438 | if (service) { | 472 | if (service) { |
439 | this.stores.settings.updateSettingsRequest.execute({ | 473 | this.actions.settings.update({ |
440 | activeService: service.id, | 474 | settings: { |
475 | activeService: service.id, | ||
476 | }, | ||
441 | }); | 477 | }); |
442 | } | 478 | } |
443 | } | 479 | } |
444 | 480 | ||
445 | _mapActiveServiceToServiceModelReaction() { | 481 | _mapActiveServiceToServiceModelReaction() { |
446 | const { activeService } = this.stores.settings.all; | 482 | const { activeService } = this.stores.settings.all; |
447 | const services = this.enabled; | 483 | if (this.allDisplayed.length) { |
448 | if (services.length) { | 484 | this.allDisplayed.map(service => Object.assign(service, { |
449 | services.map(service => Object.assign(service, { | 485 | isActive: activeService ? activeService === service.id : this.allDisplayed[0].id === service.id, |
450 | isActive: activeService ? activeService === service.id : services[0].id === service.id, | ||
451 | })); | 486 | })); |
452 | |||
453 | // if (!services.active) { | ||
454 | // | ||
455 | // } | ||
456 | } | 487 | } |
457 | // else if (!activeService && services.length) { | ||
458 | // services[0].isActive = true; | ||
459 | // } | ||
460 | } | 488 | } |
461 | 489 | ||
462 | _getUnreadMessageCountReaction() { | 490 | _getUnreadMessageCountReaction() { |
@@ -482,6 +510,13 @@ export default class ServicesStore extends Store { | |||
482 | } | 510 | } |
483 | } | 511 | } |
484 | 512 | ||
513 | _shareSettingsWithServiceProcess() { | ||
514 | this.actions.service.sendIPCMessageToAllServices({ | ||
515 | channel: 'settings-update', | ||
516 | args: this.stores.settings.all, | ||
517 | }); | ||
518 | } | ||
519 | |||
485 | _cleanUpTeamIdAndCustomUrl(recipeId, data) { | 520 | _cleanUpTeamIdAndCustomUrl(recipeId, data) { |
486 | const serviceData = data; | 521 | const serviceData = data; |
487 | const recipe = this.stores.recipes.one(recipeId); | 522 | const recipe = this.stores.recipes.one(recipeId); |
@@ -514,6 +549,8 @@ export default class ServicesStore extends Store { | |||
514 | 549 | ||
515 | if (service) { | 550 | if (service) { |
516 | const loop = () => { | 551 | const loop = () => { |
552 | if (!service.webview) return; | ||
553 | |||
517 | service.webview.send('poll'); | 554 | service.webview.send('poll'); |
518 | 555 | ||
519 | setTimeout(loop, delay); | 556 | setTimeout(loop, delay); |
diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js index 816f545ee..30058f41d 100644 --- a/src/stores/SettingsStore.js +++ b/src/stores/SettingsStore.js | |||
@@ -1,5 +1,5 @@ | |||
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'; |
@@ -17,10 +17,6 @@ export default class SettingsStore extends Store { | |||
17 | // Register action handlers | 17 | // Register action handlers |
18 | this.actions.settings.update.listen(this._update.bind(this)); | 18 | this.actions.settings.update.listen(this._update.bind(this)); |
19 | this.actions.settings.remove.listen(this._remove.bind(this)); | 19 | this.actions.settings.remove.listen(this._remove.bind(this)); |
20 | |||
21 | // this.registerReactions([ | ||
22 | // this._shareSettingsWithMainProcess.bind(this), | ||
23 | // ]); | ||
24 | } | 20 | } |
25 | 21 | ||
26 | setup() { | 22 | setup() { |
@@ -34,9 +30,13 @@ export default class SettingsStore extends Store { | |||
34 | 30 | ||
35 | @action async _update({ settings }) { | 31 | @action async _update({ settings }) { |
36 | await this.updateSettingsRequest.execute(settings)._promise; | 32 | await this.updateSettingsRequest.execute(settings)._promise; |
37 | await this.allSettingsRequest.invalidate({ immediately: true }); | 33 | await this.allSettingsRequest.patch((result) => { |
34 | if (!result) return; | ||
35 | extendObservable(result, settings); | ||
36 | }); | ||
38 | 37 | ||
39 | this._shareSettingsWithMainProcess(); | 38 | // We need a little hack to wait until everything is patched |
39 | setTimeout(() => this._shareSettingsWithMainProcess(), 0); | ||
40 | 40 | ||
41 | gaEvent('Settings', 'update'); | 41 | gaEvent('Settings', 'update'); |
42 | } | 42 | } |
diff --git a/src/styles/button.scss b/src/styles/button.scss index c2dd91293..75d2cb1d4 100644 --- a/src/styles/button.scss +++ b/src/styles/button.scss | |||
@@ -1,74 +1,72 @@ | |||
1 | @import './config.scss'; | 1 | @import './config.scss'; |
2 | 2 | ||
3 | .franz-form { | 3 | .franz-form__button { |
4 | .franz-form__button { | 4 | position: relative; |
5 | position: relative; | 5 | background: $theme-brand-primary; |
6 | background: $theme-brand-primary; | 6 | display: block; |
7 | display: block; | 7 | padding: 10px 20px; |
8 | padding: 10px 20px; | 8 | color: #FFF; |
9 | color: #FFF; | 9 | border-radius: 3px; |
10 | border-radius: 3px; | 10 | transition: background 0.5s; |
11 | transition: background 0.5s; | 11 | text-align: center; |
12 | text-align: center; | ||
13 | 12 | ||
14 | &:hover { | 13 | &:hover { |
15 | background: darken($theme-brand-primary, 5%); | 14 | background: darken($theme-brand-primary, 5%); |
16 | } | 15 | } |
17 | 16 | ||
18 | &:active { | 17 | &:active { |
19 | transition: none; | 18 | transition: none; |
20 | background: lighten($theme-brand-primary, 5%); | 19 | background: lighten($theme-brand-primary, 5%); |
21 | } | 20 | } |
22 | 21 | ||
23 | &:disabled { | 22 | &:disabled { |
24 | opacity: 0.2; | 23 | opacity: 0.2; |
25 | } | 24 | } |
26 | 25 | ||
27 | &.franz-form__button--secondary { | 26 | &.franz-form__button--secondary { |
28 | background: $theme-gray-lighter; | 27 | background: $theme-gray-lighter; |
29 | color: $theme-gray; | 28 | color: $theme-gray; |
30 | 29 | ||
31 | &:hover { | 30 | &:hover { |
32 | background: darken($theme-gray-lighter, 5%); | 31 | background: darken($theme-gray-lighter, 5%); |
33 | } | 32 | } |
34 | 33 | ||
35 | &:active { | 34 | &:active { |
36 | background: lighten($theme-gray-lighter, 5%); | 35 | background: lighten($theme-gray-lighter, 5%); |
37 | } | ||
38 | } | 36 | } |
37 | } | ||
39 | 38 | ||
40 | &.franz-form__button--danger { | 39 | &.franz-form__button--danger { |
41 | background: $theme-brand-danger; | 40 | background: $theme-brand-danger; |
42 | 41 | ||
43 | &:hover { | 42 | &:hover { |
44 | background: darken($theme-brand-danger, 5%); | 43 | background: darken($theme-brand-danger, 5%); |
45 | } | 44 | } |
46 | 45 | ||
47 | &:active { | 46 | &:active { |
48 | background: lighten($theme-brand-danger, 5%); | 47 | background: lighten($theme-brand-danger, 5%); |
49 | } | ||
50 | } | 48 | } |
49 | } | ||
51 | 50 | ||
52 | &.franz-form__button--inverted { | 51 | &.franz-form__button--inverted { |
53 | background: none; | 52 | background: none; |
54 | padding: 10px 20px; | 53 | padding: 10px 20px; |
55 | border: 2px solid $theme-brand-primary; | 54 | border: 2px solid $theme-brand-primary; |
56 | color: $theme-brand-primary; | 55 | color: $theme-brand-primary; |
57 | transition: background 0.5s, color 0.5s; | 56 | transition: background 0.5s, color 0.5s; |
58 | 57 | ||
59 | &:hover { | 58 | &:hover { |
60 | background: darken($theme-brand-primary, 5%); | 59 | background: darken($theme-brand-primary, 5%); |
61 | color: #FFF; | 60 | color: #FFF; |
62 | } | ||
63 | } | 61 | } |
62 | } | ||
64 | 63 | ||
65 | .loader { | 64 | .loader { |
66 | position: relative; | 65 | position: relative; |
67 | width: 20px; | 66 | width: 20px; |
68 | height: 12px; | 67 | height: 12px; |
69 | z-index: 9999; | 68 | z-index: 9999; |
70 | display: inline-block; | 69 | display: inline-block; |
71 | margin-right: 5px; | 70 | margin-right: 5px; |
72 | } | ||
73 | } | 71 | } |
74 | } | 72 | } |
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/layout.scss b/src/styles/layout.scss index d87df2684..afdd7dec7 100644 --- a/src/styles/layout.scss +++ b/src/styles/layout.scss | |||
@@ -42,6 +42,7 @@ html { | |||
42 | z-index: 200; | 42 | z-index: 200; |
43 | text-align: center; | 43 | text-align: center; |
44 | color: $theme-text-color; | 44 | color: $theme-text-color; |
45 | padding-bottom: 10px; | ||
45 | 46 | ||
46 | .sidebar__add-service { | 47 | .sidebar__add-service { |
47 | width: 32px; | 48 | width: 32px; |
@@ -52,26 +53,28 @@ html { | |||
52 | color: $theme-gray-light; | 53 | color: $theme-gray-light; |
53 | } | 54 | } |
54 | 55 | ||
55 | .sidebar__settings-button { | 56 | .sidebar__button { |
56 | height: auto; | 57 | width: $theme-sidebar-width; |
57 | padding: 20px 0; | 58 | padding: 7px 0; |
58 | font-size: 12px; | 59 | font-size: 24px; |
59 | position: relative; | 60 | position: relative; |
61 | color: $theme-gray-light; | ||
60 | 62 | ||
61 | .emoji { | 63 | &:hover { |
62 | position: absolute; | 64 | color: darken($theme-gray-light, 10%); |
63 | top: 18px; | 65 | } |
64 | right: 12px; | ||
65 | 66 | ||
66 | img { | 67 | &:active { |
67 | width: 18px; | 68 | color: lighten($theme-gray-light, 10%); |
68 | } | ||
69 | } | 69 | } |
70 | } | ||
71 | 70 | ||
72 | .sidebar__logo { | 71 | &.is-muted { |
73 | width: 40px; | 72 | color: $theme-brand-primary; |
74 | height: auto; | 73 | } |
74 | |||
75 | &--new-service { | ||
76 | padding-bottom: 6px; | ||
77 | } | ||
75 | } | 78 | } |
76 | 79 | ||
77 | & > div { | 80 | & > div { |
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 3347ea9d7..282c15121 100644 --- a/src/styles/services.scss +++ b/src/styles/services.scss | |||
@@ -8,7 +8,12 @@ | |||
8 | background: #FFF; | 8 | background: #FFF; |
9 | order: 5; | 9 | order: 5; |
10 | 10 | ||
11 | .services__webview { | 11 | .services__webview-wrapper { |
12 | background: $theme-gray-lighter; | ||
13 | } | ||
14 | |||
15 | .services__webview, | ||
16 | .services__info-layer { | ||
12 | position: absolute; | 17 | position: absolute; |
13 | width: 100%; | 18 | width: 100%; |
14 | top: 0; | 19 | top: 0; |
@@ -38,7 +43,8 @@ | |||
38 | } | 43 | } |
39 | } | 44 | } |
40 | 45 | ||
41 | .services__no-service { | 46 | .services__no-service, |
47 | .services__info-layer { | ||
42 | display: flex; | 48 | display: flex; |
43 | flex-direction: column; | 49 | flex-direction: column; |
44 | justify-content: center; | 50 | justify-content: center; |
@@ -51,10 +57,15 @@ | |||
51 | color: $theme-gray-dark; | 57 | color: $theme-gray-dark; |
52 | } | 58 | } |
53 | 59 | ||
54 | a.button { | 60 | a.button, |
55 | margin-top: 40px; | 61 | button { |
56 | // color: #FFF; | 62 | margin: 40px 0 20px; |
57 | // border-color: #FFF; | ||
58 | } | 63 | } |
59 | } | 64 | } |
65 | |||
66 | .services__info-layer { | ||
67 | position: absolut; | ||
68 | z-index: 110; | ||
69 | } | ||
70 | |||
60 | } | 71 | } |
diff --git a/src/styles/settings.scss b/src/styles/settings.scss index 9b19deb4e..6e93094b4 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; |
@@ -169,7 +169,7 @@ | |||
169 | } | 169 | } |
170 | } | 170 | } |
171 | 171 | ||
172 | .settings__indirect-message-help { | 172 | .settings__help { |
173 | margin: -10px 0 20px 55px;; | 173 | margin: -10px 0 20px 55px;; |
174 | font-size: 12px; | 174 | font-size: 12px; |
175 | color: $theme-gray-light; | 175 | color: $theme-gray-light; |
@@ -334,6 +334,12 @@ | |||
334 | background: none; | 334 | background: none; |
335 | padding: 0; | 335 | padding: 0; |
336 | } | 336 | } |
337 | |||
338 | .legal { | ||
339 | text-align: center; | ||
340 | margin-top: 20px; | ||
341 | color: $theme-gray-light; | ||
342 | } | ||
337 | } | 343 | } |
338 | 344 | ||
339 | .settings-navigation { | 345 | .settings-navigation { |
@@ -344,9 +350,10 @@ | |||
344 | flex-direction: column; | 350 | flex-direction: column; |
345 | 351 | ||
346 | .settings-navigation__link { | 352 | .settings-navigation__link { |
347 | display: block; | 353 | display: flex; |
354 | align-items: center; | ||
348 | height: 50px; | 355 | height: 50px; |
349 | line-height: 50px; | 356 | flex-shrink: 0; |
350 | text-decoration: none; | 357 | text-decoration: none; |
351 | color: $theme-text-color; | 358 | color: $theme-text-color; |
352 | padding: 0 20px; | 359 | 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 75568898b..3ffc53558 100644 --- a/src/styles/tabs.scss +++ b/src/styles/tabs.scss | |||
@@ -20,7 +20,7 @@ | |||
20 | align-items: center; | 20 | align-items: center; |
21 | position: relative; | 21 | position: relative; |
22 | width: $theme-sidebar-width; | 22 | width: $theme-sidebar-width; |
23 | height: $theme-sidebar-width; | 23 | height: 65px; |
24 | min-height: 50px; | 24 | min-height: 50px; |
25 | transition: background $theme-transition-time; | 25 | transition: background $theme-transition-time; |
26 | 26 | ||
@@ -33,6 +33,12 @@ | |||
33 | } | 33 | } |
34 | } | 34 | } |
35 | 35 | ||
36 | &.is-disabled { | ||
37 | .tab-item__icon { | ||
38 | filter: grayscale(100%) opacity(0.2); | ||
39 | } | ||
40 | } | ||
41 | |||
36 | &.has-custom-icon { | 42 | &.has-custom-icon { |
37 | .tab-item__icon { | 43 | .tab-item__icon { |
38 | border-radius: $theme-border-radius; | 44 | border-radius: $theme-border-radius; |
@@ -41,6 +47,12 @@ | |||
41 | } | 47 | } |
42 | } | 48 | } |
43 | 49 | ||
50 | &:active { | ||
51 | .tab-item__icon { | ||
52 | opacity: 0.7; | ||
53 | } | ||
54 | } | ||
55 | |||
44 | .tab-item__icon { | 56 | .tab-item__icon { |
45 | width: 30px; | 57 | width: 30px; |
46 | height: auto; | 58 | height: auto; |
@@ -55,8 +67,8 @@ | |||
55 | padding: 0px 5px; | 67 | padding: 0px 5px; |
56 | font-size: 11px; | 68 | font-size: 11px; |
57 | position: absolute; | 69 | position: absolute; |
58 | right: 5px; | 70 | right: 8px; |
59 | bottom: 5px; | 71 | bottom: 8px; |
60 | display: flex; | 72 | display: flex; |
61 | justify-content: center; | 73 | justify-content: center; |
62 | align-items: center; | 74 | align-items: center; |
diff --git a/src/styles/type.scss b/src/styles/type.scss index 935a36f4b..cacbec482 100644 --- a/src/styles/type.scss +++ b/src/styles/type.scss | |||
@@ -71,3 +71,8 @@ a { | |||
71 | .label { | 71 | .label { |
72 | @include formLabel(); | 72 | @include formLabel(); |
73 | } | 73 | } |
74 | |||
75 | .footnote { | ||
76 | font-size: 12px; | ||
77 | color: $theme-gray-light; | ||
78 | } \ No newline at end of file | ||
diff --git a/src/webview/lib/RecipeWebview.js b/src/webview/lib/RecipeWebview.js index b8acc1258..048beea69 100644 --- a/src/webview/lib/RecipeWebview.js +++ b/src/webview/lib/RecipeWebview.js | |||
@@ -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..c877132b1 100644 --- a/src/webview/plugin.js +++ b/src/webview/plugin.js | |||
@@ -1,11 +1,13 @@ | |||
1 | const { ipcRenderer } = require('electron'); | 1 | import { ipcRenderer } from 'electron'; |
2 | const path = require('path'); | 2 | import path from 'path'; |
3 | 3 | ||
4 | const RecipeWebview = require('./lib/RecipeWebview'); | 4 | import RecipeWebview from './lib/RecipeWebview'; |
5 | 5 | ||
6 | require('./notifications.js'); | 6 | import Spellchecker from './spellchecker.js'; |
7 | require('./spellchecker.js'); | 7 | import './notifications.js'; |
8 | require('./ime.js'); | 8 | import './ime.js'; |
9 | |||
10 | const spellchecker = new Spellchecker(); | ||
9 | 11 | ||
10 | ipcRenderer.on('initializeRecipe', (e, data) => { | 12 | ipcRenderer.on('initializeRecipe', (e, data) => { |
11 | const modulePath = path.join(data.recipe.path, 'webview.js'); | 13 | const modulePath = path.join(data.recipe.path, 'webview.js'); |
@@ -19,6 +21,20 @@ ipcRenderer.on('initializeRecipe', (e, data) => { | |||
19 | } | 21 | } |
20 | }); | 22 | }); |
21 | 23 | ||
24 | ipcRenderer.on('settings-update', (e, data) => { | ||
25 | if (data.enableSpellchecking) { | ||
26 | if (!spellchecker.isEnabled) { | ||
27 | spellchecker.enable(); | ||
28 | |||
29 | // TODO: this does not work yet, needs more testing | ||
30 | // if (data.spellcheckingLanguage !== 'auto') { | ||
31 | // console.log('set spellchecking language to', data.spellcheckingLanguage); | ||
32 | // spellchecker.switchLanguage(data.spellcheckingLanguage); | ||
33 | // } | ||
34 | } | ||
35 | } | ||
36 | }); | ||
37 | |||
22 | document.addEventListener('DOMContentLoaded', () => { | 38 | document.addEventListener('DOMContentLoaded', () => { |
23 | ipcRenderer.sendToHost('hello'); | 39 | ipcRenderer.sendToHost('hello'); |
24 | }, false); | 40 | }, false); |
diff --git a/src/webview/spellchecker.js b/src/webview/spellchecker.js index ec8807874..5beb77e03 100644 --- a/src/webview/spellchecker.js +++ b/src/webview/spellchecker.js | |||
@@ -1,14 +1,30 @@ | |||
1 | import { SpellCheckHandler, ContextMenuListener, ContextMenuBuilder } from 'electron-spellchecker'; | 1 | import { SpellCheckHandler, ContextMenuListener, ContextMenuBuilder } from 'electron-spellchecker'; |
2 | 2 | ||
3 | window.spellCheckHandler = new SpellCheckHandler(); | 3 | import { isMac } from '../environment'; |
4 | setTimeout(() => { | 4 | |
5 | window.spellCheckHandler.attachToInput(); | 5 | export default class Spellchecker { |
6 | }, 1000); | 6 | isEnabled = false; |
7 | 7 | spellchecker = null; | |
8 | // TODO: should we set the language to user settings? | 8 | |
9 | // window.spellCheckHandler.switchLanguage('en-US'); | 9 | enable() { |
10 | 10 | this.spellchecker = new SpellCheckHandler(); | |
11 | const contextMenuBuilder = new ContextMenuBuilder(window.spellCheckHandler); | 11 | if (!isMac) { |
12 | const contextMenuListener = new ContextMenuListener((info) => { // eslint-disable-line | 12 | this.spellchecker.attachToInput(); |
13 | contextMenuBuilder.showPopupMenu(info); | 13 | this.spellchecker.switchLanguage(navigator.language); |
14 | }); | 14 | } |
15 | |||
16 | const contextMenuBuilder = new ContextMenuBuilder(this.spellchecker); | ||
17 | |||
18 | new ContextMenuListener((info) => { // eslint-disable-line | ||
19 | contextMenuBuilder.showPopupMenu(info); | ||
20 | }); | ||
21 | } | ||
22 | |||
23 | // TODO: this does not work yet, needs more testing | ||
24 | // switchLanguage(language) { | ||
25 | // if (language !== 'auto') { | ||
26 | // this.spellchecker.switchLanguage(language); | ||
27 | // } | ||
28 | // } | ||
29 | } | ||
30 | |||