diff options
author | Stefan Malzner <stefan@adlk.io> | 2018-04-04 21:23:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-04 21:23:38 +0200 |
commit | 1790b795238c2abe832285197cb88c0833bd98ca (patch) | |
tree | 89d4bc3632efc05822c0bec53a883b2d092bfd69 | |
parent | Fix typo [ci skip] (diff) | |
parent | Merge branch 'master' into release/5.0.0-beta.18 (diff) | |
download | ferdium-app-1790b795238c2abe832285197cb88c0833bd98ca.tar.gz ferdium-app-1790b795238c2abe832285197cb88c0833bd98ca.tar.zst ferdium-app-1790b795238c2abe832285197cb88c0833bd98ca.zip |
5.0.0 beta.18v5.0.0-beta.18
50 files changed, 862 insertions, 641 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index c5159fd09..cdc89b325 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md | |||
@@ -1,3 +1,19 @@ | |||
1 | <a name="5.0.0-beta.18"></a> | ||
2 | # [5.0.0-beta.18](https://github.com/meetfranz/franz/compare/v5.0.0-beta.16...v5.0.0-beta.18) (2018-04-03) | ||
3 | |||
4 | ### General | ||
5 | * **Translations:** Improved translations. **[A million thanks to the amazing community. 🎉](http://i18n.meetfranz.com/)** | ||
6 | |||
7 | ### Features | ||
8 | |||
9 | * **App:** Add option to enable/disable hardware acceleration ([f720d30](https://github.com/meetfranz/franz/commit/f720d30)) | ||
10 | |||
11 | ### Bug Fixes | ||
12 | |||
13 | * **Windows:** Fix shortcuts for closing, minimizing, quitting and toggling fullscreen ([f720d30](https://github.com/meetfranz/franz/commit/f720d30)) | ||
14 | * **Windows:** Hide title bar when in fullscreen ([655a6ed](https://github.com/meetfranz/franz/commit/655a6ed)) | ||
15 | |||
16 | |||
1 | <a name="5.0.0-beta.17"></a> | 17 | <a name="5.0.0-beta.17"></a> |
2 | # [5.0.0-beta.17](https://github.com/meetfranz/franz/compare/v5.0.0-beta.16...v5.0.0-beta.17) (2018-03-20) | 18 | # [5.0.0-beta.17](https://github.com/meetfranz/franz/compare/v5.0.0-beta.16...v5.0.0-beta.17) (2018-03-20) |
3 | 19 | ||
diff --git a/appveyor.yml b/appveyor.yml index d9296b1f6..8c83a5644 100644 --- a/appveyor.yml +++ b/appveyor.yml | |||
@@ -20,7 +20,7 @@ before_build: | |||
20 | - yarn lint | 20 | - yarn lint |
21 | 21 | ||
22 | build_script: | 22 | build_script: |
23 | - yarn build --x64 --ia32 | 23 | - yarn build |
24 | 24 | ||
25 | notifications: | 25 | notifications: |
26 | - provider: Slack | 26 | - provider: Slack |
diff --git a/electron-builder.yml b/electron-builder.yml index 96bd63cc2..3e72da4ce 100644 --- a/electron-builder.yml +++ b/electron-builder.yml | |||
@@ -18,7 +18,11 @@ dmg: | |||
18 | 18 | ||
19 | win: | 19 | win: |
20 | icon: ./build-helpers/images/icon.ico | 20 | icon: ./build-helpers/images/icon.ico |
21 | target: nsis | 21 | target: |
22 | target: nsis | ||
23 | arch: | ||
24 | - x64 | ||
25 | - ia32 | ||
22 | 26 | ||
23 | linux: | 27 | linux: |
24 | icon: ./build-helpers/images/icons | 28 | icon: ./build-helpers/images/icons |
diff --git a/package.json b/package.json index 1d7ab2852..3647e963b 100644 --- a/package.json +++ b/package.json | |||
@@ -2,7 +2,7 @@ | |||
2 | "name": "franz", | 2 | "name": "franz", |
3 | "productName": "Franz", | 3 | "productName": "Franz", |
4 | "appId": "com.meetfranz.franz", | 4 | "appId": "com.meetfranz.franz", |
5 | "version": "5.0.0-beta.17", | 5 | "version": "5.0.0-beta.18", |
6 | "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.", | 6 | "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.", |
7 | "copyright": "adlk x franz - Stefan Malzner", | 7 | "copyright": "adlk x franz - Stefan Malzner", |
8 | "main": "index.js", | 8 | "main": "index.js", |
diff --git a/src/actions/settings.js b/src/actions/settings.js index 3d53cd674..fd29b798b 100644 --- a/src/actions/settings.js +++ b/src/actions/settings.js | |||
@@ -2,9 +2,11 @@ import PropTypes from 'prop-types'; | |||
2 | 2 | ||
3 | export default { | 3 | export default { |
4 | update: { | 4 | update: { |
5 | settings: PropTypes.object.isRequired, | 5 | type: PropTypes.string.isRequired, |
6 | data: PropTypes.object.isRequired, | ||
6 | }, | 7 | }, |
7 | remove: { | 8 | remove: { |
9 | type: PropTypes.string.isRequired, | ||
8 | key: PropTypes.string.isRequired, | 10 | key: PropTypes.string.isRequired, |
9 | }, | 11 | }, |
10 | }; | 12 | }; |
diff --git a/src/api/LocalApi.js b/src/api/LocalApi.js index 59d7d8fa2..741917104 100644 --- a/src/api/LocalApi.js +++ b/src/api/LocalApi.js | |||
@@ -4,6 +4,14 @@ export default class LocalApi { | |||
4 | this.local = local; | 4 | this.local = local; |
5 | } | 5 | } |
6 | 6 | ||
7 | getAppSettings() { | ||
8 | return this.local.getAppSettings(); | ||
9 | } | ||
10 | |||
11 | updateAppSettings(data) { | ||
12 | return this.local.updateAppSettings(data); | ||
13 | } | ||
14 | |||
7 | getAppCacheSize() { | 15 | getAppCacheSize() { |
8 | return this.local.getAppCacheSize(); | 16 | return this.local.getAppCacheSize(); |
9 | } | 17 | } |
diff --git a/src/api/server/LocalApi.js b/src/api/server/LocalApi.js index 4d2497c61..78deb7aa5 100644 --- a/src/api/server/LocalApi.js +++ b/src/api/server/LocalApi.js | |||
@@ -1,4 +1,4 @@ | |||
1 | import { remote } from 'electron'; | 1 | import { ipcRenderer, remote } from 'electron'; |
2 | import du from 'du'; | 2 | import du from 'du'; |
3 | 3 | ||
4 | import { getServicePartitionsDirectory } from '../../helpers/service-helpers.js'; | 4 | import { getServicePartitionsDirectory } from '../../helpers/service-helpers.js'; |
@@ -8,6 +8,23 @@ const debug = require('debug')('LocalApi'); | |||
8 | const { session } = remote; | 8 | const { session } = remote; |
9 | 9 | ||
10 | export default class LocalApi { | 10 | export default class LocalApi { |
11 | // Settings | ||
12 | getAppSettings() { | ||
13 | return new Promise((resolve) => { | ||
14 | ipcRenderer.once('appSettings', (event, data) => { | ||
15 | debug('LocalApi::getAppSettings resolves', data); | ||
16 | resolve(data); | ||
17 | }); | ||
18 | |||
19 | ipcRenderer.send('getAppSettings'); | ||
20 | }); | ||
21 | } | ||
22 | |||
23 | async updateAppSettings(data) { | ||
24 | debug('LocalApi::updateAppSettings resolves', data); | ||
25 | ipcRenderer.send('updateAppSettings', data); | ||
26 | } | ||
27 | |||
11 | // Services | 28 | // Services |
12 | async getAppCacheSize() { | 29 | async getAppCacheSize() { |
13 | const partitionsDir = getServicePartitionsDirectory(); | 30 | const partitionsDir = getServicePartitionsDirectory(); |
diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js index 66aef1730..746775a7f 100644 --- a/src/components/layout/AppLayout.js +++ b/src/components/layout/AppLayout.js | |||
@@ -43,6 +43,7 @@ const messages = defineMessages({ | |||
43 | @observer | 43 | @observer |
44 | export default class AppLayout extends Component { | 44 | export default class AppLayout extends Component { |
45 | static propTypes = { | 45 | static propTypes = { |
46 | isFullScreen: PropTypes.bool.isRequired, | ||
46 | sidebar: PropTypes.element.isRequired, | 47 | sidebar: PropTypes.element.isRequired, |
47 | services: PropTypes.element.isRequired, | 48 | services: PropTypes.element.isRequired, |
48 | children: PropTypes.element, | 49 | children: PropTypes.element, |
@@ -69,6 +70,7 @@ export default class AppLayout extends Component { | |||
69 | 70 | ||
70 | render() { | 71 | render() { |
71 | const { | 72 | const { |
73 | isFullScreen, | ||
72 | sidebar, | 74 | sidebar, |
73 | services, | 75 | services, |
74 | children, | 76 | children, |
@@ -90,7 +92,7 @@ export default class AppLayout extends Component { | |||
90 | return ( | 92 | return ( |
91 | <div> | 93 | <div> |
92 | <div className="app"> | 94 | <div className="app"> |
93 | {isWindows && <TitleBar menu={window.franz.menu.template} icon={'assets/images/logo.svg'} />} | 95 | {isWindows && !isFullScreen && <TitleBar menu={window.franz.menu.template} icon={'assets/images/logo.svg'} />} |
94 | <div className="app__content"> | 96 | <div className="app__content"> |
95 | {sidebar} | 97 | {sidebar} |
96 | <div className="app__service"> | 98 | <div className="app__service"> |
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index 72aa5a8af..97f535594 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js | |||
@@ -76,6 +76,10 @@ const messages = defineMessages({ | |||
76 | id: 'settings.app.currentVersion', | 76 | id: 'settings.app.currentVersion', |
77 | defaultMessage: '!!!Current version:', | 77 | defaultMessage: '!!!Current version:', |
78 | }, | 78 | }, |
79 | enableGPUAccelerationInfo: { | ||
80 | id: 'settings.app.restartRequired', | ||
81 | defaultMessage: '!!!Changes require restart', | ||
82 | }, | ||
79 | }); | 83 | }); |
80 | 84 | ||
81 | @observer | 85 | @observer |
@@ -172,6 +176,8 @@ export default class EditSettingsForm extends Component { | |||
172 | {/* Advanced */} | 176 | {/* Advanced */} |
173 | <h2 id="advanced">{intl.formatMessage(messages.headlineAdvanced)}</h2> | 177 | <h2 id="advanced">{intl.formatMessage(messages.headlineAdvanced)}</h2> |
174 | <Toggle field={form.$('enableSpellchecking')} /> | 178 | <Toggle field={form.$('enableSpellchecking')} /> |
179 | <Toggle field={form.$('enableGPUAcceleration')} /> | ||
180 | <p className="settings__help">{intl.formatMessage(messages.enableGPUAccelerationInfo)}</p> | ||
175 | {/* <Select field={form.$('spellcheckingLanguage')} /> */} | 181 | {/* <Select field={form.$('spellcheckingLanguage')} /> */} |
176 | <div className="settings__settings-group"> | 182 | <div className="settings__settings-group"> |
177 | <h3> | 183 | <h3> |
diff --git a/src/config.js b/src/config.js index e66594c59..77fa92eca 100644 --- a/src/config.js +++ b/src/config.js | |||
@@ -1,3 +1,8 @@ | |||
1 | import electron from 'electron'; | ||
2 | import path from 'path'; | ||
3 | |||
4 | const app = process.type === 'renderer' ? electron.remote.app : electron.app; | ||
5 | |||
1 | export const CHECK_INTERVAL = 1000 * 3600; // How often should we perform checks | 6 | export const CHECK_INTERVAL = 1000 * 3600; // How often should we perform checks |
2 | export const LOCAL_API = 'http://localhost:3000'; | 7 | export const LOCAL_API = 'http://localhost:3000'; |
3 | export const DEV_API = 'https://dev.franzinfra.com'; | 8 | export const DEV_API = 'https://dev.franzinfra.com'; |
@@ -5,7 +10,6 @@ export const LIVE_API = 'https://api.franzinfra.com'; | |||
5 | export const GA_ID = 'UA-74126766-6'; | 10 | export const GA_ID = 'UA-74126766-6'; |
6 | 11 | ||
7 | export const DEFAULT_APP_SETTINGS = { | 12 | export const DEFAULT_APP_SETTINGS = { |
8 | autoLaunchOnStart: true, | ||
9 | autoLaunchInBackground: false, | 13 | autoLaunchInBackground: false, |
10 | runInBackground: true, | 14 | runInBackground: true, |
11 | enableSystemTray: true, | 15 | enableSystemTray: true, |
@@ -13,12 +17,14 @@ export const DEFAULT_APP_SETTINGS = { | |||
13 | showDisabledServices: true, | 17 | showDisabledServices: true, |
14 | showMessageBadgeWhenMuted: true, | 18 | showMessageBadgeWhenMuted: true, |
15 | enableSpellchecking: true, | 19 | enableSpellchecking: true, |
16 | // spellcheckingLanguage: 'auto', | ||
17 | locale: '', | 20 | locale: '', |
18 | fallbackLocale: 'en-US', | 21 | fallbackLocale: 'en-US', |
19 | beta: false, | 22 | beta: false, |
20 | isAppMuted: false, | 23 | isAppMuted: false, |
24 | enableGPUAcceleration: true, | ||
21 | }; | 25 | }; |
22 | 26 | ||
23 | export const FRANZ_SERVICE_REQUEST = 'http://bit.ly/franz-service-request'; | 27 | export const FRANZ_SERVICE_REQUEST = 'http://bit.ly/franz-service-request'; |
24 | export const FRANZ_TRANSLATION = 'http://bit.ly/franz-translate'; | 28 | export const FRANZ_TRANSLATION = 'http://bit.ly/franz-translate'; |
29 | |||
30 | export const SETTINGS_PATH = path.join(app.getPath('userData'), 'config', 'settings.json'); | ||
diff --git a/src/containers/layout/AppLayoutContainer.js b/src/containers/layout/AppLayoutContainer.js index 075bd5e34..9212f809f 100644 --- a/src/containers/layout/AppLayoutContainer.js +++ b/src/containers/layout/AppLayoutContainer.js | |||
@@ -77,7 +77,7 @@ export default class AppLayoutContainer extends Component { | |||
77 | <Sidebar | 77 | <Sidebar |
78 | services={services.allDisplayed} | 78 | services={services.allDisplayed} |
79 | setActive={setActive} | 79 | setActive={setActive} |
80 | isAppMuted={settings.all.isAppMuted} | 80 | isAppMuted={settings.all.app.isAppMuted} |
81 | openSettings={openSettings} | 81 | openSettings={openSettings} |
82 | closeSettings={closeSettings} | 82 | closeSettings={closeSettings} |
83 | reorder={reorder} | 83 | reorder={reorder} |
@@ -87,7 +87,7 @@ export default class AppLayoutContainer extends Component { | |||
87 | deleteService={deleteService} | 87 | deleteService={deleteService} |
88 | updateService={updateService} | 88 | updateService={updateService} |
89 | toggleMuteApp={toggleMuteApp} | 89 | toggleMuteApp={toggleMuteApp} |
90 | showMessageBadgeWhenMutedSetting={settings.all.showMessageBadgeWhenMuted} | 90 | showMessageBadgeWhenMutedSetting={settings.all.app.showMessageBadgeWhenMuted} |
91 | showMessageBadgesEvenWhenMuted={ui.showMessageBadgesEvenWhenMuted} | 91 | showMessageBadgesEvenWhenMuted={ui.showMessageBadgesEvenWhenMuted} |
92 | /> | 92 | /> |
93 | ); | 93 | ); |
@@ -99,13 +99,14 @@ export default class AppLayoutContainer extends Component { | |||
99 | setWebviewReference={setWebviewReference} | 99 | setWebviewReference={setWebviewReference} |
100 | openWindow={openWindow} | 100 | openWindow={openWindow} |
101 | reload={reload} | 101 | reload={reload} |
102 | isAppMuted={settings.all.isAppMuted} | 102 | isAppMuted={settings.all.app.isAppMuted} |
103 | update={updateService} | 103 | update={updateService} |
104 | /> | 104 | /> |
105 | ); | 105 | ); |
106 | 106 | ||
107 | return ( | 107 | return ( |
108 | <AppLayout | 108 | <AppLayout |
109 | isFullScreen={app.isFullScreen} | ||
109 | isOnline={app.isOnline} | 110 | isOnline={app.isOnline} |
110 | showServicesUpdatedInfoBar={ui.showServicesUpdatedInfoBar} | 111 | showServicesUpdatedInfoBar={ui.showServicesUpdatedInfoBar} |
111 | appUpdateIsDownloaded={app.updateStatus === app.updateStatusTypes.DOWNLOADED} | 112 | appUpdateIsDownloaded={app.updateStatus === app.updateStatusTypes.DOWNLOADED} |
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index 1fa7ce8bc..018ce663f 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js | |||
@@ -51,14 +51,14 @@ const messages = defineMessages({ | |||
51 | id: 'settings.app.form.enableSpellchecking', | 51 | id: 'settings.app.form.enableSpellchecking', |
52 | defaultMessage: '!!!Enable spell checking', | 52 | defaultMessage: '!!!Enable spell checking', |
53 | }, | 53 | }, |
54 | enableGPUAcceleration: { | ||
55 | id: 'settings.app.form.enableGPUAcceleration', | ||
56 | defaultMessage: '!!!Enable GPU Acceleration', | ||
57 | }, | ||
54 | spellcheckingLanguage: { | 58 | spellcheckingLanguage: { |
55 | id: 'settings.app.form.spellcheckingLanguage', | 59 | id: 'settings.app.form.spellcheckingLanguage', |
56 | defaultMessage: '!!!Language for spell checking', | 60 | defaultMessage: '!!!Language for spell checking', |
57 | }, | 61 | }, |
58 | // spellcheckingAutomaticDetection: { | ||
59 | // id: 'settings.app.form.spellcheckingAutomaticDetection', | ||
60 | // defaultMessage: '!!!Detect language automatically', | ||
61 | // }, | ||
62 | beta: { | 62 | beta: { |
63 | id: 'settings.app.form.beta', | 63 | id: 'settings.app.form.beta', |
64 | defaultMessage: '!!!Include beta versions', | 64 | defaultMessage: '!!!Include beta versions', |
@@ -84,22 +84,24 @@ export default class EditSettingsScreen extends Component { | |||
84 | }); | 84 | }); |
85 | 85 | ||
86 | settings.update({ | 86 | settings.update({ |
87 | settings: { | 87 | type: 'app', |
88 | data: { | ||
88 | runInBackground: settingsData.runInBackground, | 89 | runInBackground: settingsData.runInBackground, |
89 | enableSystemTray: settingsData.enableSystemTray, | 90 | enableSystemTray: settingsData.enableSystemTray, |
90 | minimizeToSystemTray: settingsData.minimizeToSystemTray, | 91 | minimizeToSystemTray: settingsData.minimizeToSystemTray, |
92 | enableGPUAcceleration: settingsData.enableGPUAcceleration, | ||
91 | showDisabledServices: settingsData.showDisabledServices, | 93 | showDisabledServices: settingsData.showDisabledServices, |
92 | showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted, | 94 | showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted, |
93 | enableSpellchecking: settingsData.enableSpellchecking, | 95 | enableSpellchecking: settingsData.enableSpellchecking, |
94 | // spellcheckingLanguage: settingsData.spellcheckingLanguage, | 96 | beta: settingsData.beta, // we need this info in the main process as well |
95 | locale: settingsData.locale, | 97 | locale: settingsData.locale, // we need this info in the main process as well |
96 | beta: settingsData.beta, | ||
97 | }, | 98 | }, |
98 | }); | 99 | }); |
99 | 100 | ||
100 | user.update({ | 101 | user.update({ |
101 | userData: { | 102 | userData: { |
102 | beta: settingsData.beta, | 103 | beta: settingsData.beta, |
104 | locale: settingsData.locale, | ||
103 | }, | 105 | }, |
104 | }); | 106 | }); |
105 | } | 107 | } |
@@ -116,17 +118,6 @@ export default class EditSettingsScreen extends Component { | |||
116 | }); | 118 | }); |
117 | }); | 119 | }); |
118 | 120 | ||
119 | // const spellcheckerLocales = [{ | ||
120 | // value: 'auto', | ||
121 | // label: intl.formatMessage(messages.spellcheckingAutomaticDetection), | ||
122 | // }]; | ||
123 | // Object.keys(SPELLCHECKER_LOCALES).forEach((key) => { | ||
124 | // spellcheckerLocales.push({ | ||
125 | // value: key, | ||
126 | // label: SPELLCHECKER_LOCALES[key], | ||
127 | // }); | ||
128 | // }); | ||
129 | |||
130 | const config = { | 121 | const config = { |
131 | fields: { | 122 | fields: { |
132 | autoLaunchOnStart: { | 123 | autoLaunchOnStart: { |
@@ -141,40 +132,39 @@ export default class EditSettingsScreen extends Component { | |||
141 | }, | 132 | }, |
142 | runInBackground: { | 133 | runInBackground: { |
143 | label: intl.formatMessage(messages.runInBackground), | 134 | label: intl.formatMessage(messages.runInBackground), |
144 | value: settings.all.runInBackground, | 135 | value: settings.all.app.runInBackground, |
145 | default: DEFAULT_APP_SETTINGS.runInBackground, | 136 | default: DEFAULT_APP_SETTINGS.runInBackground, |
146 | }, | 137 | }, |
147 | enableSystemTray: { | 138 | enableSystemTray: { |
148 | label: intl.formatMessage(messages.enableSystemTray), | 139 | label: intl.formatMessage(messages.enableSystemTray), |
149 | value: settings.all.enableSystemTray, | 140 | value: settings.all.app.enableSystemTray, |
150 | default: DEFAULT_APP_SETTINGS.enableSystemTray, | 141 | default: DEFAULT_APP_SETTINGS.enableSystemTray, |
151 | }, | 142 | }, |
152 | minimizeToSystemTray: { | 143 | minimizeToSystemTray: { |
153 | label: intl.formatMessage(messages.minimizeToSystemTray), | 144 | label: intl.formatMessage(messages.minimizeToSystemTray), |
154 | value: settings.all.minimizeToSystemTray, | 145 | value: settings.all.app.minimizeToSystemTray, |
155 | default: DEFAULT_APP_SETTINGS.minimizeToSystemTray, | 146 | default: DEFAULT_APP_SETTINGS.minimizeToSystemTray, |
156 | }, | 147 | }, |
157 | showDisabledServices: { | 148 | showDisabledServices: { |
158 | label: intl.formatMessage(messages.showDisabledServices), | 149 | label: intl.formatMessage(messages.showDisabledServices), |
159 | value: settings.all.showDisabledServices, | 150 | value: settings.all.app.showDisabledServices, |
160 | default: DEFAULT_APP_SETTINGS.showDisabledServices, | 151 | default: DEFAULT_APP_SETTINGS.showDisabledServices, |
161 | }, | 152 | }, |
162 | showMessageBadgeWhenMuted: { | 153 | showMessageBadgeWhenMuted: { |
163 | label: intl.formatMessage(messages.showMessageBadgeWhenMuted), | 154 | label: intl.formatMessage(messages.showMessageBadgeWhenMuted), |
164 | value: settings.all.showMessageBadgeWhenMuted, | 155 | value: settings.all.app.showMessageBadgeWhenMuted, |
165 | default: DEFAULT_APP_SETTINGS.showMessageBadgeWhenMuted, | 156 | default: DEFAULT_APP_SETTINGS.showMessageBadgeWhenMuted, |
166 | }, | 157 | }, |
167 | enableSpellchecking: { | 158 | enableSpellchecking: { |
168 | label: intl.formatMessage(messages.enableSpellchecking), | 159 | label: intl.formatMessage(messages.enableSpellchecking), |
169 | value: settings.all.enableSpellchecking, | 160 | value: settings.all.app.enableSpellchecking, |
170 | default: DEFAULT_APP_SETTINGS.enableSpellchecking, | 161 | default: DEFAULT_APP_SETTINGS.enableSpellchecking, |
171 | }, | 162 | }, |
172 | // spellcheckingLanguage: { | 163 | enableGPUAcceleration: { |
173 | // label: intl.formatMessage(messages.spellcheckingLanguage), | 164 | label: intl.formatMessage(messages.enableGPUAcceleration), |
174 | // value: settings.all.spellcheckingLanguage, | 165 | value: settings.all.app.enableGPUAcceleration, |
175 | // options: spellcheckerLocales, | 166 | default: DEFAULT_APP_SETTINGS.enableGPUAcceleration, |
176 | // default: DEFAULT_APP_SETTINGS.spellcheckingLanguage, | 167 | }, |
177 | // }, | ||
178 | locale: { | 168 | locale: { |
179 | label: intl.formatMessage(messages.language), | 169 | label: intl.formatMessage(messages.language), |
180 | value: app.locale, | 170 | value: app.locale, |
diff --git a/src/electron/Settings.js b/src/electron/Settings.js index 824b4c20c..b3138e948 100644 --- a/src/electron/Settings.js +++ b/src/electron/Settings.js | |||
@@ -1,27 +1,42 @@ | |||
1 | import { observable } from 'mobx'; | 1 | import { observable, toJS } from 'mobx'; |
2 | import { pathExistsSync, outputJsonSync, readJsonSync } from 'fs-extra'; | ||
2 | 3 | ||
3 | import { DEFAULT_APP_SETTINGS } from '../config'; | 4 | import { SETTINGS_PATH, DEFAULT_APP_SETTINGS } from '../config'; |
5 | |||
6 | const debug = require('debug')('Settings'); | ||
4 | 7 | ||
5 | export default class Settings { | 8 | export default class Settings { |
6 | @observable store = { | 9 | @observable store = DEFAULT_APP_SETTINGS; |
7 | autoLaunchOnStart: DEFAULT_APP_SETTINGS.autoLaunchOnStart, | 10 | |
8 | autoLaunchInBackground: DEFAULT_APP_SETTINGS.autoLaunchInBackground, | 11 | constructor() { |
9 | runInBackground: DEFAULT_APP_SETTINGS.runInBackground, | 12 | if (!pathExistsSync(SETTINGS_PATH)) { |
10 | enableSystemTray: DEFAULT_APP_SETTINGS.enableSystemTray, | 13 | this._writeFile(); |
11 | minimizeToSystemTray: DEFAULT_APP_SETTINGS.minimizeToSystemTray, | 14 | } else { |
12 | locale: DEFAULT_APP_SETTINGS.locale, | 15 | this._hydrate(); |
13 | beta: DEFAULT_APP_SETTINGS.beta, | 16 | } |
14 | }; | 17 | } |
15 | 18 | ||
16 | set(settings) { | 19 | set(settings) { |
17 | this.store = Object.assign(this.store, settings); | 20 | this.store = Object.assign(this.store, settings); |
21 | |||
22 | this._writeFile(); | ||
18 | } | 23 | } |
19 | 24 | ||
20 | all() { | 25 | get all() { |
21 | return this.store; | 26 | return this.store; |
22 | } | 27 | } |
23 | 28 | ||
24 | get(key) { | 29 | get(key) { |
25 | return this.store[key]; | 30 | return this.store[key]; |
26 | } | 31 | } |
32 | |||
33 | _hydrate() { | ||
34 | this.store = readJsonSync(SETTINGS_PATH); | ||
35 | debug('Hydrate store', toJS(this.store)); | ||
36 | } | ||
37 | |||
38 | _writeFile() { | ||
39 | outputJsonSync(SETTINGS_PATH, this.store); | ||
40 | debug('Write settings file', toJS(this.store)); | ||
41 | } | ||
27 | } | 42 | } |
diff --git a/src/electron/ipc-api/settings.js b/src/electron/ipc-api/settings.js index 995b28fbd..3eab68a91 100644 --- a/src/electron/ipc-api/settings.js +++ b/src/electron/ipc-api/settings.js | |||
@@ -1,7 +1,11 @@ | |||
1 | import { ipcMain } from 'electron'; | 1 | import { ipcMain } from 'electron'; |
2 | 2 | ||
3 | export default (params) => { | 3 | export default (params) => { |
4 | ipcMain.on('settings', (event, args) => { | 4 | ipcMain.on('getAppSettings', () => { |
5 | params.mainWindow.webContents.send('appSettings', params.settings.all); | ||
6 | }); | ||
7 | |||
8 | ipcMain.on('updateAppSettings', (event, args) => { | ||
5 | params.settings.set(args); | 9 | params.settings.set(args); |
6 | }); | 10 | }); |
7 | }; | 11 | }; |
diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index be9059727..4ea3eb1a7 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json | |||
@@ -26,49 +26,49 @@ | |||
26 | "login.serverLogout" : "La teva sessió ha caducat, torna a iniciar la sessió.", | 26 | "login.serverLogout" : "La teva sessió ha caducat, torna a iniciar la sessió.", |
27 | "login.submit.label" : "Accedir", | 27 | "login.submit.label" : "Accedir", |
28 | "login.tokenExpired" : "La teva sessió ha caducat, torna a iniciar la sessió.", | 28 | "login.tokenExpired" : "La teva sessió ha caducat, torna a iniciar la sessió.", |
29 | "menu.app.about" : "About Franz", | 29 | "menu.app.about" : "Sobre Franz", |
30 | "menu.app.hide" : "Hide", | 30 | "menu.app.hide" : "Amaga", |
31 | "menu.app.hideOthers" : "Hide Others", | 31 | "menu.app.hideOthers" : "Amaga altres", |
32 | "menu.app.quit" : "Quit", | 32 | "menu.app.quit" : "Surt", |
33 | "menu.app.settings" : "Configuració", | 33 | "menu.app.settings" : "Configuració", |
34 | "menu.app.unhide" : "Unhide", | 34 | "menu.app.unhide" : "Mostra", |
35 | "menu.edit" : "Edita", | 35 | "menu.edit" : "Edita", |
36 | "menu.edit.copy" : "Copy", | 36 | "menu.edit.copy" : "Copia", |
37 | "menu.edit.cut" : "Cut", | 37 | "menu.edit.cut" : "Retalla", |
38 | "menu.edit.delete" : "Suprimeix", | 38 | "menu.edit.delete" : "Suprimeix", |
39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | 39 | "menu.edit.emojiSymbols" : "Emoji i SÃmbols", |
40 | "menu.edit.paste" : "Paste", | 40 | "menu.edit.paste" : "Enganxa", |
41 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | 41 | "menu.edit.pasteAndMatchStyle" : "Enganxa amb els estils", |
42 | "menu.edit.redo" : "Redo", | 42 | "menu.edit.redo" : "Refés", |
43 | "menu.edit.selectAll" : "Select All", | 43 | "menu.edit.selectAll" : "Selecciona-ho tot", |
44 | "menu.edit.speech" : "Speech", | 44 | "menu.edit.speech" : "Pronuncia", |
45 | "menu.edit.startDictation" : "Start Dictation", | 45 | "menu.edit.startDictation" : "Inicia el dictat", |
46 | "menu.edit.startSpeaking" : "Start Speaking", | 46 | "menu.edit.startSpeaking" : "Inicia la parla", |
47 | "menu.edit.stopSpeaking" : "Stop Speaking", | 47 | "menu.edit.stopSpeaking" : "Atura la parla", |
48 | "menu.edit.undo" : "Undo", | 48 | "menu.edit.undo" : "Desfés", |
49 | "menu.file" : "File", | 49 | "menu.file" : "Fitxer", |
50 | "menu.help" : "Help", | 50 | "menu.help" : "Ajuda", |
51 | "menu.help.changelog" : "Changelog", | 51 | "menu.help.changelog" : "Registre de canvis", |
52 | "menu.help.learnMore" : "Learn More", | 52 | "menu.help.learnMore" : "Conegueu-ne més detalls", |
53 | "menu.help.privacy" : "Declaració de privacitat", | 53 | "menu.help.privacy" : "Declaració de privacitat", |
54 | "menu.help.support" : "Support", | 54 | "menu.help.support" : "Suport", |
55 | "menu.help.tos" : "Terms of Service", | 55 | "menu.help.tos" : "Condicions del Servei", |
56 | "menu.services" : "Services", | 56 | "menu.services" : "Serveis", |
57 | "menu.services.addNewService" : "Add New Service...", | 57 | "menu.services.addNewService" : "Afegeix un servei...", |
58 | "menu.view" : "View", | 58 | "menu.view" : "Visualitza", |
59 | "menu.view.enterFullScreen" : "Enter Full Screen", | 59 | "menu.view.enterFullScreen" : "Inicia la pantalla completa", |
60 | "menu.view.exitFullScreen" : "Exit Full Screen", | 60 | "menu.view.exitFullScreen" : "Surt de pantalla completa", |
61 | "menu.view.reloadFranz" : "Reload Franz", | 61 | "menu.view.reloadFranz" : "Torna a carregar Franz", |
62 | "menu.view.reloadService" : "Reload Service", | 62 | "menu.view.reloadService" : "Torna a carregar el servei", |
63 | "menu.view.resetZoom" : "Actual Size", | 63 | "menu.view.resetZoom" : "Mida real", |
64 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | 64 | "menu.view.toggleDevTools" : "Activa serveis per a desenvolupadors", |
65 | "menu.view.toggleFullScreen" : "Toggle Full Screen", | 65 | "menu.view.toggleFullScreen" : "Activa la pantalla completa", |
66 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", | 66 | "menu.view.toggleServiceDevTools" : "Habilita les eines de desenvolupador de serveis", |
67 | "menu.view.zoomIn" : "Zoom In", | 67 | "menu.view.zoomIn" : "Amplia", |
68 | "menu.view.zoomOut" : "Zoom Out", | 68 | "menu.view.zoomOut" : "Redueix", |
69 | "menu.window" : "Window", | 69 | "menu.window" : "Finestra", |
70 | "menu.window.close" : "Close", | 70 | "menu.window.close" : "Tanca", |
71 | "menu.window.minimize" : "Minimize", | 71 | "menu.window.minimize" : "Minimitza", |
72 | "password.email.label" : "Correu electrònic", | 72 | "password.email.label" : "Correu electrònic", |
73 | "password.headline" : "Restablir contrasenya", | 73 | "password.headline" : "Restablir contrasenya", |
74 | "password.link.login" : "Inicia la sessió al teu compte", | 74 | "password.link.login" : "Inicia la sessió al teu compte", |
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Obrir en segon plà ", | 116 | "settings.app.form.autoLaunchInBackground" : "Obrir en segon plà ", |
117 | "settings.app.form.autoLaunchOnStart" : "Iniciar Franz a l'inici", | 117 | "settings.app.form.autoLaunchOnStart" : "Iniciar Franz a l'inici", |
118 | "settings.app.form.beta" : "Inclou versions beta", | 118 | "settings.app.form.beta" : "Inclou versions beta", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Mostra Franz a la barra de menú", | 120 | "settings.app.form.enableMenuBar" : "Mostra Franz a la barra de menú", |
120 | "settings.app.form.enableSpellchecking" : "Habilita la comprobació ortogrà fica", | 121 | "settings.app.form.enableSpellchecking" : "Habilita la comprobació ortogrà fica", |
121 | "settings.app.form.enableSystemTray" : "Mostra Franz a la safata del sistema", | 122 | "settings.app.form.enableSystemTray" : "Mostra Franz a la safata del sistema", |
@@ -240,10 +241,10 @@ | |||
240 | "tabs.item.enableNotification" : "Activa les notificacions", | 241 | "tabs.item.enableNotification" : "Activa les notificacions", |
241 | "tabs.item.enableService" : "Activa el servei", | 242 | "tabs.item.enableService" : "Activa el servei", |
242 | "tabs.item.reload" : "Recarrega", | 243 | "tabs.item.reload" : "Recarrega", |
243 | "validation.email" : "{field} is not valid", | 244 | "validation.email" : "{field} no es và lid", |
244 | "validation.minLength" : "{field} should be at least {length} characters long", | 245 | "validation.minLength" : "{field} ha de ser al menys {length} carà cters de llargada", |
245 | "validation.required" : "{field} is required", | 246 | "validation.required" : "{field} es requerit", |
246 | "validation.url" : "{field} is not a valid URL", | 247 | "validation.url" : "{field} es una URL no và lida", |
247 | "welcome.loginButton" : "Inicia sessió al teu compte", | 248 | "welcome.loginButton" : "Inicia sessió al teu compte", |
248 | "welcome.signupButton" : "Crea un compte gratuït", | 249 | "welcome.signupButton" : "Crea un compte gratuït", |
249 | "welcome.slogan" : "Crea un compte gratuït" | 250 | "welcome.slogan" : "Crea un compte gratuït" |
diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index b4142b928..ed4c7a468 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json | |||
@@ -26,49 +26,49 @@ | |||
26 | "login.serverLogout" : "Sezenà vypršelo, je třeba se znovu přihlásit.", | 26 | "login.serverLogout" : "Sezenà vypršelo, je třeba se znovu přihlásit.", |
27 | "login.submit.label" : "Přihlásit se", | 27 | "login.submit.label" : "Přihlásit se", |
28 | "login.tokenExpired" : "Sezenà vyprÅ¡elo, prosÃm pÅ™ihlaste se znovu", | 28 | "login.tokenExpired" : "Sezenà vyprÅ¡elo, prosÃm pÅ™ihlaste se znovu", |
29 | "menu.app.about" : "About Franz", | 29 | "menu.app.about" : "O aplikaci", |
30 | "menu.app.hide" : "Hide", | 30 | "menu.app.hide" : "Skrýt", |
31 | "menu.app.hideOthers" : "Hide Others", | 31 | "menu.app.hideOthers" : "Skryt ostatnÃ", |
32 | "menu.app.quit" : "Quit", | 32 | "menu.app.quit" : "UkonÄit", |
33 | "menu.app.settings" : "NastavenÃ", | 33 | "menu.app.settings" : "NastavenÃ", |
34 | "menu.app.unhide" : "Unhide", | 34 | "menu.app.unhide" : "Odkrýt", |
35 | "menu.edit" : "Upravit", | 35 | "menu.edit" : "Upravit", |
36 | "menu.edit.copy" : "Copy", | 36 | "menu.edit.copy" : "KopÃrovat", |
37 | "menu.edit.cut" : "Cut", | 37 | "menu.edit.cut" : "Vyjmout", |
38 | "menu.edit.delete" : "Smazat", | 38 | "menu.edit.delete" : "Smazat", |
39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | 39 | "menu.edit.emojiSymbols" : "Emoji a znaky", |
40 | "menu.edit.paste" : "Paste", | 40 | "menu.edit.paste" : "Vložit", |
41 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | 41 | "menu.edit.pasteAndMatchStyle" : "Vložit vÄetnÄ› formátovánÃ", |
42 | "menu.edit.redo" : "Redo", | 42 | "menu.edit.redo" : "Vpřed", |
43 | "menu.edit.selectAll" : "Select All", | 43 | "menu.edit.selectAll" : "Vybrat vše", |
44 | "menu.edit.speech" : "Speech", | 44 | "menu.edit.speech" : "Mluvené slovo", |
45 | "menu.edit.startDictation" : "Start Dictation", | 45 | "menu.edit.startDictation" : "ZaÄÃt diktovat", |
46 | "menu.edit.startSpeaking" : "Start Speaking", | 46 | "menu.edit.startSpeaking" : "ZaÄÃt mluvit", |
47 | "menu.edit.stopSpeaking" : "Stop Speaking", | 47 | "menu.edit.stopSpeaking" : "Přestat mluvit", |
48 | "menu.edit.undo" : "Undo", | 48 | "menu.edit.undo" : "Vrátit zpět", |
49 | "menu.file" : "File", | 49 | "menu.file" : "Soubor", |
50 | "menu.help" : "Help", | 50 | "menu.help" : "Nápověda", |
51 | "menu.help.changelog" : "Changelog", | 51 | "menu.help.changelog" : "Seznam změn", |
52 | "menu.help.learnMore" : "Learn More", | 52 | "menu.help.learnMore" : "DozvÄ›dÄ›t se vÃce", |
53 | "menu.help.privacy" : "Prohlášenà o ochranÄ› soukromÃ", | 53 | "menu.help.privacy" : "Prohlášenà o ochranÄ› soukromÃ", |
54 | "menu.help.support" : "Support", | 54 | "menu.help.support" : "Podpora", |
55 | "menu.help.tos" : "Terms of Service", | 55 | "menu.help.tos" : "PodmÃnky použitÃ", |
56 | "menu.services" : "Services", | 56 | "menu.services" : "Služby", |
57 | "menu.services.addNewService" : "Add New Service...", | 57 | "menu.services.addNewService" : "Přidat novou službu...", |
58 | "menu.view" : "View", | 58 | "menu.view" : "ZobrazenÃ", |
59 | "menu.view.enterFullScreen" : "Enter Full Screen", | 59 | "menu.view.enterFullScreen" : "Spustit režim celé obrazovky", |
60 | "menu.view.exitFullScreen" : "Exit Full Screen", | 60 | "menu.view.exitFullScreen" : "UkonÄit celoobrazovkový režim", |
61 | "menu.view.reloadFranz" : "Reload Franz", | 61 | "menu.view.reloadFranz" : "Obnovit Franze", |
62 | "menu.view.reloadService" : "Reload Service", | 62 | "menu.view.reloadService" : "Obnovit službu", |
63 | "menu.view.resetZoom" : "Actual Size", | 63 | "menu.view.resetZoom" : "SkuteÄná velikost", |
64 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | 64 | "menu.view.toggleDevTools" : "Zobrazit Vývojářské nástroje", |
65 | "menu.view.toggleFullScreen" : "Toggle Full Screen", | 65 | "menu.view.toggleFullScreen" : "Přepnout na celou obrazovku", |
66 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", | 66 | "menu.view.toggleServiceDevTools" : "Zobrazit Vývojářské nástroje pro službu", |
67 | "menu.view.zoomIn" : "Zoom In", | 67 | "menu.view.zoomIn" : "PřiblÞit", |
68 | "menu.view.zoomOut" : "Zoom Out", | 68 | "menu.view.zoomOut" : "Oddálit", |
69 | "menu.window" : "Window", | 69 | "menu.window" : "Okno", |
70 | "menu.window.close" : "Close", | 70 | "menu.window.close" : "ZavÅ™Ãt", |
71 | "menu.window.minimize" : "Minimize", | 71 | "menu.window.minimize" : "Minimalizovat", |
72 | "password.email.label" : "E-mailová adresa", | 72 | "password.email.label" : "E-mailová adresa", |
73 | "password.headline" : "Obnovit heslo", | 73 | "password.headline" : "Obnovit heslo", |
74 | "password.link.login" : "PÅ™ihlásit se k úÄtu", | 74 | "password.link.login" : "PÅ™ihlásit se k úÄtu", |
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Spustit na pozadÃ", | 116 | "settings.app.form.autoLaunchInBackground" : "Spustit na pozadÃ", |
117 | "settings.app.form.autoLaunchOnStart" : "Spustit Franz při startu", | 117 | "settings.app.form.autoLaunchOnStart" : "Spustit Franz při startu", |
118 | "settings.app.form.beta" : "Zahrnout beta verze", | 118 | "settings.app.form.beta" : "Zahrnout beta verze", |
119 | "settings.app.form.enableGPUAcceleration" : "Aktivovat GPU zrychlenÃ", | ||
119 | "settings.app.form.enableMenuBar" : "Zobraz Franz v Menu nabÃdce", | 120 | "settings.app.form.enableMenuBar" : "Zobraz Franz v Menu nabÃdce", |
120 | "settings.app.form.enableSpellchecking" : "Zapnout kontrolu pravopisu", | 121 | "settings.app.form.enableSpellchecking" : "Zapnout kontrolu pravopisu", |
121 | "settings.app.form.enableSystemTray" : "Zobrazit Franz v systémové liště", | 122 | "settings.app.form.enableSystemTray" : "Zobrazit Franz v systémové liště", |
@@ -240,10 +241,10 @@ | |||
240 | "tabs.item.enableNotification" : "Povolit oznamovánÃ", | 241 | "tabs.item.enableNotification" : "Povolit oznamovánÃ", |
241 | "tabs.item.enableService" : "Zapnout službu", | 242 | "tabs.item.enableService" : "Zapnout službu", |
242 | "tabs.item.reload" : "Obnovit", | 243 | "tabs.item.reload" : "Obnovit", |
243 | "validation.email" : "{field} is not valid", | 244 | "validation.email" : "{field} nenà validnÃ", |
244 | "validation.minLength" : "{field} should be at least {length} characters long", | 245 | "validation.minLength" : "{field} musà být alespoň {length} znaků dlouhé", |
245 | "validation.required" : "{field} is required", | 246 | "validation.required" : "{field} je povinné", |
246 | "validation.url" : "{field} is not a valid URL", | 247 | "validation.url" : "{field} nenà validnà URL", |
247 | "welcome.loginButton" : "PÅ™ihlášenà do vaÅ¡eho úÄtu", | 248 | "welcome.loginButton" : "PÅ™ihlášenà do vaÅ¡eho úÄtu", |
248 | "welcome.signupButton" : "VytvoÅ™it úÄet zdarma", | 249 | "welcome.signupButton" : "VytvoÅ™it úÄet zdarma", |
249 | "welcome.slogan" : "Zprávy, které pracujà pro vás" | 250 | "welcome.slogan" : "Zprávy, které pracujà pro vás" |
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 9aaef0465..fa61d26d4 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json | |||
@@ -6,7 +6,7 @@ | |||
6 | "import.skip.label" : "Ich möchte Dienste selbst hinzufügen", | 6 | "import.skip.label" : "Ich möchte Dienste selbst hinzufügen", |
7 | "import.submit.label" : "Dienste importieren", | 7 | "import.submit.label" : "Dienste importieren", |
8 | "infobar.buttonChangelog" : "Was gibt es neues?", | 8 | "infobar.buttonChangelog" : "Was gibt es neues?", |
9 | "infobar.buttonInstallUpdate" : "Neustarten & Update installieren", | 9 | "infobar.buttonInstallUpdate" : "Neu starten & Update installieren", |
10 | "infobar.buttonReloadServices" : "Dienste neuladen", | 10 | "infobar.buttonReloadServices" : "Dienste neuladen", |
11 | "infobar.requiredRequestsFailed" : "Dienste und Benutzerinformationen konnten nicht geladen werden", | 11 | "infobar.requiredRequestsFailed" : "Dienste und Benutzerinformationen konnten nicht geladen werden", |
12 | "infobar.servicesUpdated" : "Deine Dienste wurden aktualisiert.", | 12 | "infobar.servicesUpdated" : "Deine Dienste wurden aktualisiert.", |
@@ -109,13 +109,14 @@ | |||
109 | "settings.account.tryReloadUserInfoRequest" : "Erneut versuchen", | 109 | "settings.account.tryReloadUserInfoRequest" : "Erneut versuchen", |
110 | "settings.account.userInfoRequestFailed" : "Benutzerinformationen konnten nicht geladen werden", | 110 | "settings.account.userInfoRequestFailed" : "Benutzerinformationen konnten nicht geladen werden", |
111 | "settings.app.buttonClearAllCache" : "Cache leeren", | 111 | "settings.app.buttonClearAllCache" : "Cache leeren", |
112 | "settings.app.buttonInstallUpdate" : "Neustarten & Update installieren", | 112 | "settings.app.buttonInstallUpdate" : "Neu starten & Update installieren", |
113 | "settings.app.buttonSearchForUpdate" : "Nach Updates suchen", | 113 | "settings.app.buttonSearchForUpdate" : "Nach Updates suchen", |
114 | "settings.app.cacheInfo" : "Der Franz Cache belegt derzeit {size}.", | 114 | "settings.app.cacheInfo" : "Der Franz Cache belegt derzeit {size}.", |
115 | "settings.app.currentVersion" : "Aktuelle Version:", | 115 | "settings.app.currentVersion" : "Aktuelle Version:", |
116 | "settings.app.form.autoLaunchInBackground" : "Im Hintergrund öffnen", | 116 | "settings.app.form.autoLaunchInBackground" : "Im Hintergrund öffnen", |
117 | "settings.app.form.autoLaunchOnStart" : "Franz beim Systemstart ausführen", | 117 | "settings.app.form.autoLaunchOnStart" : "Franz beim Systemstart ausführen", |
118 | "settings.app.form.beta" : "Beta-Versionen einbeziehen", | 118 | "settings.app.form.beta" : "Beta-Versionen einbeziehen", |
119 | "settings.app.form.enableGPUAcceleration" : "Hardwarebeschleunigung aktivieren", | ||
119 | "settings.app.form.enableMenuBar" : "Franz in Menüleiste anzeigen", | 120 | "settings.app.form.enableMenuBar" : "Franz in Menüleiste anzeigen", |
120 | "settings.app.form.enableSpellchecking" : "Rechtschreibprüfung aktivieren", | 121 | "settings.app.form.enableSpellchecking" : "Rechtschreibprüfung aktivieren", |
121 | "settings.app.form.enableSystemTray" : "Franz in der Systemleiste anzeigen", | 122 | "settings.app.form.enableSystemTray" : "Franz in der Systemleiste anzeigen", |
diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json index ae37d1f5e..7361d29b7 100644 --- a/src/i18n/locales/el.json +++ b/src/i18n/locales/el.json | |||
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Άνοιγμα στο παÏασκήνιο", | 116 | "settings.app.form.autoLaunchInBackground" : "Άνοιγμα στο παÏασκήνιο", |
117 | "settings.app.form.autoLaunchOnStart" : "Εκκίνηση του Franz κατά την εκκίνηση του συστήματος", | 117 | "settings.app.form.autoLaunchOnStart" : "Εκκίνηση του Franz κατά την εκκίνηση του συστήματος", |
118 | "settings.app.form.beta" : "ΣυμπεÏιλάβετε εκδόσεις beta", | 118 | "settings.app.form.beta" : "ΣυμπεÏιλάβετε εκδόσεις beta", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", | 120 | "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", |
120 | "settings.app.form.enableSpellchecking" : "ΕνεÏγοποίηση οÏθογÏÎ±Ï†Î¹ÎºÎ¿Ï ÎµÎ»Îγχου", | 121 | "settings.app.form.enableSpellchecking" : "ΕνεÏγοποίηση οÏθογÏÎ±Ï†Î¹ÎºÎ¿Ï ÎµÎ»Îγχου", |
121 | "settings.app.form.enableSystemTray" : "Εμφάνιση του Franz στη γÏαμμή ειδοποιήσεων", | 122 | "settings.app.form.enableSystemTray" : "Εμφάνιση του Franz στη γÏαμμή ειδοποιήσεων", |
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 400a9a5d8..0c62da44a 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json | |||
@@ -164,6 +164,7 @@ | |||
164 | "settings.app.form.runInBackground": "Keep Franz in background when closing the window", | 164 | "settings.app.form.runInBackground": "Keep Franz in background when closing the window", |
165 | "settings.app.form.language": "Language", | 165 | "settings.app.form.language": "Language", |
166 | "settings.app.form.enableSpellchecking": "Enable spell checking", | 166 | "settings.app.form.enableSpellchecking": "Enable spell checking", |
167 | "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", | ||
167 | "settings.app.form.showDisabledServices": "Display disabled services tabs", | 168 | "settings.app.form.showDisabledServices": "Display disabled services tabs", |
168 | "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", | 169 | "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", |
169 | "settings.app.form.beta": "Include beta versions", | 170 | "settings.app.form.beta": "Include beta versions", |
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 640f87c20..75047a613 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json | |||
@@ -1,6 +1,6 @@ | |||
1 | { | 1 | { |
2 | "global.api.unhealthy" : "No se puede conectar a los servicios en lÃnea de Franz.", | 2 | "global.api.unhealthy" : "No se puede conectar a los servicios en lÃnea de Franz", |
3 | "global.notConnectedToTheInternet" : "No está conectado a Internet", | 3 | "global.notConnectedToTheInternet" : "No está conectado a Internet.", |
4 | "import.headline" : "Importa tus servicios de Franz 4", | 4 | "import.headline" : "Importa tus servicios de Franz 4", |
5 | "import.notSupportedHeadline" : "Servicios no soportados aún en Franz 5", | 5 | "import.notSupportedHeadline" : "Servicios no soportados aún en Franz 5", |
6 | "import.skip.label" : "Quiero agregar servicios manualmente", | 6 | "import.skip.label" : "Quiero agregar servicios manualmente", |
@@ -12,11 +12,11 @@ | |||
12 | "infobar.servicesUpdated" : "Tus servicios han sido actualizados.", | 12 | "infobar.servicesUpdated" : "Tus servicios han sido actualizados.", |
13 | "infobar.updateAvailable" : "Una nueva actualización de Franz está disponible", | 13 | "infobar.updateAvailable" : "Una nueva actualización de Franz está disponible", |
14 | "invite.email.label" : "Dirección de correo electrónico", | 14 | "invite.email.label" : "Dirección de correo electrónico", |
15 | "invite.headline.friends" : "Invita a 3 de tus amigos o colegas", | 15 | "invite.headline.friends" : "Invita a 3 de tus amigos o compañeros", |
16 | "invite.name.label" : "Nombre", | 16 | "invite.name.label" : "Nombre", |
17 | "invite.skip.label" : "Quiero hacer esto después", | 17 | "invite.skip.label" : "Quiero hacer esto después", |
18 | "invite.submit.label" : "Enviar invitaciones", | 18 | "invite.submit.label" : "Enviar invitaciones", |
19 | "invite.successInfo" : "Invitaciones enviadas", | 19 | "invite.successInfo" : "Invitaciones enviadas correctamente", |
20 | "login.email.label" : "Dirección de correo electrónico", | 20 | "login.email.label" : "Dirección de correo electrónico", |
21 | "login.headline" : "Iniciar sesión", | 21 | "login.headline" : "Iniciar sesión", |
22 | "login.invalidCredentials" : "Correo electrónico o contraseña no válidos ", | 22 | "login.invalidCredentials" : "Correo electrónico o contraseña no válidos ", |
@@ -25,50 +25,50 @@ | |||
25 | "login.password.label" : "Contraseña", | 25 | "login.password.label" : "Contraseña", |
26 | "login.serverLogout" : "Tu sesión ha expirado, por favor inicia la sesión de nuevo.", | 26 | "login.serverLogout" : "Tu sesión ha expirado, por favor inicia la sesión de nuevo.", |
27 | "login.submit.label" : "Iniciar sesión", | 27 | "login.submit.label" : "Iniciar sesión", |
28 | "login.tokenExpired" : "Tu sesión expiró, por favor la inicia sesión nuevamente.", | 28 | "login.tokenExpired" : "Tu sesión expiró, por favor inicia sesión otra vez.", |
29 | "menu.app.about" : "About Franz", | 29 | "menu.app.about" : "Sobre Franz", |
30 | "menu.app.hide" : "Hide", | 30 | "menu.app.hide" : "Ocultar", |
31 | "menu.app.hideOthers" : "Hide Others", | 31 | "menu.app.hideOthers" : "Ocultar otros", |
32 | "menu.app.quit" : "Quit", | 32 | "menu.app.quit" : "Salir", |
33 | "menu.app.settings" : "Configuración", | 33 | "menu.app.settings" : "Configuración", |
34 | "menu.app.unhide" : "Unhide", | 34 | "menu.app.unhide" : "Mostrar", |
35 | "menu.edit" : "Editar", | 35 | "menu.edit" : "Editar", |
36 | "menu.edit.copy" : "Copy", | 36 | "menu.edit.copy" : "Copiar", |
37 | "menu.edit.cut" : "Cut", | 37 | "menu.edit.cut" : "Cortar", |
38 | "menu.edit.delete" : "Borrar", | 38 | "menu.edit.delete" : "Borrar", |
39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | 39 | "menu.edit.emojiSymbols" : "Emoji y SÃmbolos", |
40 | "menu.edit.paste" : "Paste", | 40 | "menu.edit.paste" : "Pegar", |
41 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | 41 | "menu.edit.pasteAndMatchStyle" : "Pegar con el mismo estilo", |
42 | "menu.edit.redo" : "Redo", | 42 | "menu.edit.redo" : "Rehacer", |
43 | "menu.edit.selectAll" : "Select All", | 43 | "menu.edit.selectAll" : "Seleccionar todo", |
44 | "menu.edit.speech" : "Speech", | 44 | "menu.edit.speech" : "Leer", |
45 | "menu.edit.startDictation" : "Start Dictation", | 45 | "menu.edit.startDictation" : "Empezar dictado", |
46 | "menu.edit.startSpeaking" : "Start Speaking", | 46 | "menu.edit.startSpeaking" : "Empezar lectura", |
47 | "menu.edit.stopSpeaking" : "Stop Speaking", | 47 | "menu.edit.stopSpeaking" : "Detener lectura", |
48 | "menu.edit.undo" : "Undo", | 48 | "menu.edit.undo" : "Deshacer", |
49 | "menu.file" : "File", | 49 | "menu.file" : "Archivo", |
50 | "menu.help" : "Help", | 50 | "menu.help" : "Ayuda", |
51 | "menu.help.changelog" : "Changelog", | 51 | "menu.help.changelog" : "Registro de cambios", |
52 | "menu.help.learnMore" : "Learn More", | 52 | "menu.help.learnMore" : "Conocer más", |
53 | "menu.help.privacy" : "Declaración de privacidad", | 53 | "menu.help.privacy" : "Declaración de privacidad", |
54 | "menu.help.support" : "Support", | 54 | "menu.help.support" : "Soporte", |
55 | "menu.help.tos" : "Terms of Service", | 55 | "menu.help.tos" : "Términos del Servicio", |
56 | "menu.services" : "Services", | 56 | "menu.services" : "Servicios", |
57 | "menu.services.addNewService" : "Add New Service...", | 57 | "menu.services.addNewService" : "Añadir Nuevo Servicio...", |
58 | "menu.view" : "View", | 58 | "menu.view" : "Mostrar", |
59 | "menu.view.enterFullScreen" : "Enter Full Screen", | 59 | "menu.view.enterFullScreen" : "Entrar a Pantalla Completa", |
60 | "menu.view.exitFullScreen" : "Exit Full Screen", | 60 | "menu.view.exitFullScreen" : "Salir de Pantalla Completa", |
61 | "menu.view.reloadFranz" : "Reload Franz", | 61 | "menu.view.reloadFranz" : "Recargar Franz", |
62 | "menu.view.reloadService" : "Reload Service", | 62 | "menu.view.reloadService" : "Recargar Servicio", |
63 | "menu.view.resetZoom" : "Actual Size", | 63 | "menu.view.resetZoom" : "Tamaño Actual", |
64 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | 64 | "menu.view.toggleDevTools" : "Activar las Herramientas para Desarrolladores", |
65 | "menu.view.toggleFullScreen" : "Toggle Full Screen", | 65 | "menu.view.toggleFullScreen" : "Cambiar a Pantalla Completa", |
66 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", | 66 | "menu.view.toggleServiceDevTools" : "Mostrar Herramientas de Servicios para Desarrolladores", |
67 | "menu.view.zoomIn" : "Zoom In", | 67 | "menu.view.zoomIn" : "Ampliar", |
68 | "menu.view.zoomOut" : "Zoom Out", | 68 | "menu.view.zoomOut" : "Reducir", |
69 | "menu.window" : "Window", | 69 | "menu.window" : "Ventana", |
70 | "menu.window.close" : "Close", | 70 | "menu.window.close" : "Cerrar", |
71 | "menu.window.minimize" : "Minimize", | 71 | "menu.window.minimize" : "Minimizar", |
72 | "password.email.label" : "Dirección de correo electrónico", | 72 | "password.email.label" : "Dirección de correo electrónico", |
73 | "password.headline" : "Restablecer contraseña", | 73 | "password.headline" : "Restablecer contraseña", |
74 | "password.link.login" : "Iniciar sesión en tu cuenta", | 74 | "password.link.login" : "Iniciar sesión en tu cuenta", |
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Abrir en segundo plano", | 116 | "settings.app.form.autoLaunchInBackground" : "Abrir en segundo plano", |
117 | "settings.app.form.autoLaunchOnStart" : "Iniciar Franz al iniciar", | 117 | "settings.app.form.autoLaunchOnStart" : "Iniciar Franz al iniciar", |
118 | "settings.app.form.beta" : "Incluir versiones beta", | 118 | "settings.app.form.beta" : "Incluir versiones beta", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "mostrar a franz en La barra de menús", | 120 | "settings.app.form.enableMenuBar" : "mostrar a franz en La barra de menús", |
120 | "settings.app.form.enableSpellchecking" : "Activar corrección ortográfica", | 121 | "settings.app.form.enableSpellchecking" : "Activar corrección ortográfica", |
121 | "settings.app.form.enableSystemTray" : "Mostrar Franz en la bandeja del sistema", | 122 | "settings.app.form.enableSystemTray" : "Mostrar Franz en la bandeja del sistema", |
@@ -240,10 +241,10 @@ | |||
240 | "tabs.item.enableNotification" : "Activar notificaciones", | 241 | "tabs.item.enableNotification" : "Activar notificaciones", |
241 | "tabs.item.enableService" : "Activar servicio", | 242 | "tabs.item.enableService" : "Activar servicio", |
242 | "tabs.item.reload" : "Recargar", | 243 | "tabs.item.reload" : "Recargar", |
243 | "validation.email" : "{field} is not valid", | 244 | "validation.email" : "{field} no es válido", |
244 | "validation.minLength" : "{field} should be at least {length} characters long", | 245 | "validation.minLength" : "{field} deberÃa tener al menos {length} caracteres", |
245 | "validation.required" : "{field} is required", | 246 | "validation.required" : "{field} es obligatorio", |
246 | "validation.url" : "{field} is not a valid URL", | 247 | "validation.url" : "{field} no es una URL válida", |
247 | "welcome.loginButton" : "Accede a tu cuenta", | 248 | "welcome.loginButton" : "Accede a tu cuenta", |
248 | "welcome.signupButton" : "Crear una cuenta gratuita", | 249 | "welcome.signupButton" : "Crear una cuenta gratuita", |
249 | "welcome.slogan" : "MensajerÃa que funciona para ti" | 250 | "welcome.slogan" : "MensajerÃa que funciona para ti" |
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index a40a60833..e00a5671b 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json | |||
@@ -26,49 +26,49 @@ | |||
26 | "login.serverLogout" : "Votre session a expiré. Reconnectez-vous s'il vous plaît.", | 26 | "login.serverLogout" : "Votre session a expiré. Reconnectez-vous s'il vous plaît.", |
27 | "login.submit.label" : "Connexion", | 27 | "login.submit.label" : "Connexion", |
28 | "login.tokenExpired" : "Votre session a expiré, veuillez vous reconnecter.", | 28 | "login.tokenExpired" : "Votre session a expiré, veuillez vous reconnecter.", |
29 | "menu.app.about" : "About Franz", | 29 | "menu.app.about" : "À propos de Franz", |
30 | "menu.app.hide" : "Hide", | 30 | "menu.app.hide" : "Masquer", |
31 | "menu.app.hideOthers" : "Hide Others", | 31 | "menu.app.hideOthers" : "Masquer les autres", |
32 | "menu.app.quit" : "Quit", | 32 | "menu.app.quit" : "Quitter", |
33 | "menu.app.settings" : "Paramètres", | 33 | "menu.app.settings" : "Paramètres", |
34 | "menu.app.unhide" : "Unhide", | 34 | "menu.app.unhide" : "Afficher", |
35 | "menu.edit" : "Éditer", | 35 | "menu.edit" : "Éditer", |
36 | "menu.edit.copy" : "Copy", | 36 | "menu.edit.copy" : "Copier", |
37 | "menu.edit.cut" : "Cut", | 37 | "menu.edit.cut" : "Couper", |
38 | "menu.edit.delete" : "Supprimer", | 38 | "menu.edit.delete" : "Supprimer", |
39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | 39 | "menu.edit.emojiSymbols" : "Emoji & Symboles", |
40 | "menu.edit.paste" : "Paste", | 40 | "menu.edit.paste" : "Coller", |
41 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | 41 | "menu.edit.pasteAndMatchStyle" : "Coller et fusionner le style", |
42 | "menu.edit.redo" : "Redo", | 42 | "menu.edit.redo" : "Rétablir", |
43 | "menu.edit.selectAll" : "Select All", | 43 | "menu.edit.selectAll" : "Tout sélectionner", |
44 | "menu.edit.speech" : "Speech", | 44 | "menu.edit.speech" : "Synthèse vocale", |
45 | "menu.edit.startDictation" : "Start Dictation", | 45 | "menu.edit.startDictation" : "Démarrer la synthèse vocale", |
46 | "menu.edit.startSpeaking" : "Start Speaking", | 46 | "menu.edit.startSpeaking" : "Démarrer la lecture", |
47 | "menu.edit.stopSpeaking" : "Stop Speaking", | 47 | "menu.edit.stopSpeaking" : "Arrêter la synthèse vocale", |
48 | "menu.edit.undo" : "Undo", | 48 | "menu.edit.undo" : "Annuler", |
49 | "menu.file" : "File", | 49 | "menu.file" : "Fichier", |
50 | "menu.help" : "Help", | 50 | "menu.help" : "Aide", |
51 | "menu.help.changelog" : "Changelog", | 51 | "menu.help.changelog" : "Liste des modifications", |
52 | "menu.help.learnMore" : "Learn More", | 52 | "menu.help.learnMore" : "En savoir plus", |
53 | "menu.help.privacy" : "Déclaration de confidentialité", | 53 | "menu.help.privacy" : "Déclaration de confidentialité", |
54 | "menu.help.support" : "Support", | 54 | "menu.help.support" : "Support", |
55 | "menu.help.tos" : "Terms of Service", | 55 | "menu.help.tos" : "Conditions d'utilisation", |
56 | "menu.services" : "Services", | 56 | "menu.services" : "Services", |
57 | "menu.services.addNewService" : "Add New Service...", | 57 | "menu.services.addNewService" : "Ajouter un nouveau service...", |
58 | "menu.view" : "View", | 58 | "menu.view" : "Affichage", |
59 | "menu.view.enterFullScreen" : "Enter Full Screen", | 59 | "menu.view.enterFullScreen" : "Entrer en mode plein écran", |
60 | "menu.view.exitFullScreen" : "Exit Full Screen", | 60 | "menu.view.exitFullScreen" : "Sortir du mode plein écran", |
61 | "menu.view.reloadFranz" : "Reload Franz", | 61 | "menu.view.reloadFranz" : "Actualiser Franz", |
62 | "menu.view.reloadService" : "Reload Service", | 62 | "menu.view.reloadService" : "Redémarrer le service", |
63 | "menu.view.resetZoom" : "Actual Size", | 63 | "menu.view.resetZoom" : "Taille réelle", |
64 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | 64 | "menu.view.toggleDevTools" : "Activer les outils développeur", |
65 | "menu.view.toggleFullScreen" : "Toggle Full Screen", | 65 | "menu.view.toggleFullScreen" : "Activer \/ désactiver le mode plein écran", |
66 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", | 66 | "menu.view.toggleServiceDevTools" : "Activer les outils de développement WebKit", |
67 | "menu.view.zoomIn" : "Zoom In", | 67 | "menu.view.zoomIn" : "Zoom Avant", |
68 | "menu.view.zoomOut" : "Zoom Out", | 68 | "menu.view.zoomOut" : "Zoom Arrière", |
69 | "menu.window" : "Window", | 69 | "menu.window" : "Fenêtre", |
70 | "menu.window.close" : "Close", | 70 | "menu.window.close" : "Fermer", |
71 | "menu.window.minimize" : "Minimize", | 71 | "menu.window.minimize" : "Réduire", |
72 | "password.email.label" : "Adresse e-mail", | 72 | "password.email.label" : "Adresse e-mail", |
73 | "password.headline" : "Réinitialiser le mot de passe", | 73 | "password.headline" : "Réinitialiser le mot de passe", |
74 | "password.link.login" : "Connectez-vous à votre compte", | 74 | "password.link.login" : "Connectez-vous à votre compte", |
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Ouvrir en arrière-plan", | 116 | "settings.app.form.autoLaunchInBackground" : "Ouvrir en arrière-plan", |
117 | "settings.app.form.autoLaunchOnStart" : "Lancer Franz au démarrage", | 117 | "settings.app.form.autoLaunchOnStart" : "Lancer Franz au démarrage", |
118 | "settings.app.form.beta" : "Accepter les versions bêta", | 118 | "settings.app.form.beta" : "Accepter les versions bêta", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Afficher Franz dans la barre des menus", | 120 | "settings.app.form.enableMenuBar" : "Afficher Franz dans la barre des menus", |
120 | "settings.app.form.enableSpellchecking" : "Activer la vérification orthographique", | 121 | "settings.app.form.enableSpellchecking" : "Activer la vérification orthographique", |
121 | "settings.app.form.enableSystemTray" : "Afficher Franz dans la barre d'état système", | 122 | "settings.app.form.enableSystemTray" : "Afficher Franz dans la barre d'état système", |
@@ -240,10 +241,10 @@ | |||
240 | "tabs.item.enableNotification" : "Activer les notifications", | 241 | "tabs.item.enableNotification" : "Activer les notifications", |
241 | "tabs.item.enableService" : "Activer le service", | 242 | "tabs.item.enableService" : "Activer le service", |
242 | "tabs.item.reload" : "Recharger", | 243 | "tabs.item.reload" : "Recharger", |
243 | "validation.email" : "{field} is not valid", | 244 | "validation.email" : "{field}Â n'est pas valide", |
244 | "validation.minLength" : "{field} should be at least {length} characters long", | 245 | "validation.minLength" : "{field} doit contenir au moins {length} caractère(s)", |
245 | "validation.required" : "{field} is required", | 246 | "validation.required" : "{field} est requis", |
246 | "validation.url" : "{field} is not a valid URL", | 247 | "validation.url" : "{field} n'est pas une URL valide", |
247 | "welcome.loginButton" : "Se connecter sur son compte", | 248 | "welcome.loginButton" : "Se connecter sur son compte", |
248 | "welcome.signupButton" : "Créer un compte gratuit", | 249 | "welcome.signupButton" : "Créer un compte gratuit", |
249 | "welcome.slogan" : "Une messagerie qui fonctionne pour vous" | 250 | "welcome.slogan" : "Une messagerie qui fonctionne pour vous" |
diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json index 80aeb0a1b..1c0b537b2 100644 --- a/src/i18n/locales/ga.json +++ b/src/i18n/locales/ga.json | |||
@@ -26,49 +26,49 @@ | |||
26 | "login.serverLogout" : "D'éag do sheisiún, logáil isteach arÃs le do thoil.", | 26 | "login.serverLogout" : "D'éag do sheisiún, logáil isteach arÃs le do thoil.", |
27 | "login.submit.label" : "Logáil isteach", | 27 | "login.submit.label" : "Logáil isteach", |
28 | "login.tokenExpired" : "D'éag do sheisiún, logáil isteach arÃs le do thoil.", | 28 | "login.tokenExpired" : "D'éag do sheisiún, logáil isteach arÃs le do thoil.", |
29 | "menu.app.about" : "About Franz", | 29 | "menu.app.about" : "Faoi Franz", |
30 | "menu.app.hide" : "Hide", | 30 | "menu.app.hide" : "Cuir Franz i bhfolach", |
31 | "menu.app.hideOthers" : "Hide Others", | 31 | "menu.app.hideOthers" : "Folaigh feidhmchláir eile", |
32 | "menu.app.quit" : "Quit", | 32 | "menu.app.quit" : "Scoir", |
33 | "menu.app.settings" : "Socruithe", | 33 | "menu.app.settings" : "Socruithe", |
34 | "menu.app.unhide" : "Unhide", | 34 | "menu.app.unhide" : "Taispeáin", |
35 | "menu.edit" : "Cuir in eagar", | 35 | "menu.edit" : "Cuir in eagar", |
36 | "menu.edit.copy" : "Copy", | 36 | "menu.edit.copy" : "Cóipeáil", |
37 | "menu.edit.cut" : "Cut", | 37 | "menu.edit.cut" : "Gearr", |
38 | "menu.edit.delete" : "Scrios", | 38 | "menu.edit.delete" : "Scrios", |
39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | 39 | "menu.edit.emojiSymbols" : "Straoiseoga ⊠siombailÃ", |
40 | "menu.edit.paste" : "Paste", | 40 | "menu.edit.paste" : "Greamaigh", |
41 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | 41 | "menu.edit.pasteAndMatchStyle" : "Greamaigh agus cuir stÃl in oiriúint", |
42 | "menu.edit.redo" : "Redo", | 42 | "menu.edit.redo" : "Athdhéan", |
43 | "menu.edit.selectAll" : "Select All", | 43 | "menu.edit.selectAll" : "Roghnaigh gach rud", |
44 | "menu.edit.speech" : "Speech", | 44 | "menu.edit.speech" : "Caint", |
45 | "menu.edit.startDictation" : "Start Dictation", | 45 | "menu.edit.startDictation" : "Tosaigh deachtú", |
46 | "menu.edit.startSpeaking" : "Start Speaking", | 46 | "menu.edit.startSpeaking" : "Tosaigh ag caint", |
47 | "menu.edit.stopSpeaking" : "Stop Speaking", | 47 | "menu.edit.stopSpeaking" : "Stad ag caint", |
48 | "menu.edit.undo" : "Undo", | 48 | "menu.edit.undo" : "Cealaigh", |
49 | "menu.file" : "File", | 49 | "menu.file" : "Comhad", |
50 | "menu.help" : "Help", | 50 | "menu.help" : "Cabhair", |
51 | "menu.help.changelog" : "Changelog", | 51 | "menu.help.changelog" : "Athruithe", |
52 | "menu.help.learnMore" : "Learn More", | 52 | "menu.help.learnMore" : "Tuilleadh eolais", |
53 | "menu.help.privacy" : "Ráiteas phrÃobháideachais", | 53 | "menu.help.privacy" : "Ráiteas phrÃobháideachais", |
54 | "menu.help.support" : "Support", | 54 | "menu.help.support" : "TacaÃocht", |
55 | "menu.help.tos" : "Terms of Service", | 55 | "menu.help.tos" : "Téarmaà tagartha", |
56 | "menu.services" : "Services", | 56 | "menu.services" : "SeirbhÃsÃ", |
57 | "menu.services.addNewService" : "Add New Service...", | 57 | "menu.services.addNewService" : "Cuir seirbhÃs nua leis", |
58 | "menu.view" : "View", | 58 | "menu.view" : "Amharc", |
59 | "menu.view.enterFullScreen" : "Enter Full Screen", | 59 | "menu.view.enterFullScreen" : "Cuir isteach mód lánscáileáin", |
60 | "menu.view.exitFullScreen" : "Exit Full Screen", | 60 | "menu.view.exitFullScreen" : "Scoir mód lánscáileáin", |
61 | "menu.view.reloadFranz" : "Reload Franz", | 61 | "menu.view.reloadFranz" : "Athlódáil Franz", |
62 | "menu.view.reloadService" : "Reload Service", | 62 | "menu.view.reloadService" : "Athlódáil seirbhÃs", |
63 | "menu.view.resetZoom" : "Actual Size", | 63 | "menu.view.resetZoom" : "FÃormhéid", |
64 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | 64 | "menu.view.toggleDevTools" : "Scoránaigh uirlis forbróra", |
65 | "menu.view.toggleFullScreen" : "Toggle Full Screen", | 65 | "menu.view.toggleFullScreen" : "Scoránaigh mód lánscáileáin", |
66 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", | 66 | "menu.view.toggleServiceDevTools" : "Scoránaigh uirlis forbróra seirbhÃse", |
67 | "menu.view.zoomIn" : "Zoom In", | 67 | "menu.view.zoomIn" : "Zúmáil isteach", |
68 | "menu.view.zoomOut" : "Zoom Out", | 68 | "menu.view.zoomOut" : "Zúmáil amach", |
69 | "menu.window" : "Window", | 69 | "menu.window" : "Fuinneog", |
70 | "menu.window.close" : "Close", | 70 | "menu.window.close" : "Dún", |
71 | "menu.window.minimize" : "Minimize", | 71 | "menu.window.minimize" : "Ãoslaghdaigh", |
72 | "password.email.label" : "Seoladh rÃomhphoist", | 72 | "password.email.label" : "Seoladh rÃomhphoist", |
73 | "password.headline" : "Athshocraigh pasfhocal", | 73 | "password.headline" : "Athshocraigh pasfhocal", |
74 | "password.link.login" : "Logáil isteach i do chuntas", | 74 | "password.link.login" : "Logáil isteach i do chuntas", |
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Oscail sa chúlra", | 116 | "settings.app.form.autoLaunchInBackground" : "Oscail sa chúlra", |
117 | "settings.app.form.autoLaunchOnStart" : "Láinseáil Franz ón tús", | 117 | "settings.app.form.autoLaunchOnStart" : "Láinseáil Franz ón tús", |
118 | "settings.app.form.beta" : "Cuir leagain béite san áireamh", | 118 | "settings.app.form.beta" : "Cuir leagain béite san áireamh", |
119 | "settings.app.form.enableGPUAcceleration" : "Cumasaigh luasghéarú APG", | ||
119 | "settings.app.form.enableMenuBar" : "Taispeáin Franz sa bharra roghchláir", | 120 | "settings.app.form.enableMenuBar" : "Taispeáin Franz sa bharra roghchláir", |
120 | "settings.app.form.enableSpellchecking" : "Cumasaigh seiceáil litrithe", | 121 | "settings.app.form.enableSpellchecking" : "Cumasaigh seiceáil litrithe", |
121 | "settings.app.form.enableSystemTray" : "Taispeáin Franz i dtráidire an chórais", | 122 | "settings.app.form.enableSystemTray" : "Taispeáin Franz i dtráidire an chórais", |
@@ -211,7 +212,7 @@ | |||
211 | "signup.headline" : "Cláraigh", | 212 | "signup.headline" : "Cláraigh", |
212 | "signup.lastname.label" : "Sloinne", | 213 | "signup.lastname.label" : "Sloinne", |
213 | "signup.legal.info" : "Agus tú ag cruthú cuntas Franz glacann tú le", | 214 | "signup.legal.info" : "Agus tú ag cruthú cuntas Franz glacann tú le", |
214 | "signup.legal.privacy" : "Ráiteas phrÃobháideachais", | 215 | "signup.legal.privacy" : "Polasaà prÃobháideachais", |
215 | "signup.legal.terms" : "Tearmaà seirbhÃse", | 216 | "signup.legal.terms" : "Tearmaà seirbhÃse", |
216 | "signup.link.login" : "Cuntas agat cheana féin, logáil isteach?", | 217 | "signup.link.login" : "Cuntas agat cheana féin, logáil isteach?", |
217 | "signup.password.label" : "Pasfhocal", | 218 | "signup.password.label" : "Pasfhocal", |
@@ -240,10 +241,10 @@ | |||
240 | "tabs.item.enableNotification" : "Cumasaigh fógraÃ", | 241 | "tabs.item.enableNotification" : "Cumasaigh fógraÃ", |
241 | "tabs.item.enableService" : "Cumasaigh seirbhÃs", | 242 | "tabs.item.enableService" : "Cumasaigh seirbhÃs", |
242 | "tabs.item.reload" : "Athlódáil", | 243 | "tabs.item.reload" : "Athlódáil", |
243 | "validation.email" : "{field} is not valid", | 244 | "validation.email" : "NÃl {field} neamhbhailÃ", |
244 | "validation.minLength" : "{field} should be at least {length} characters long", | 245 | "validation.minLength" : "Ba cheart go mbeadh {field} ar a laghad {length} charactar fada", |
245 | "validation.required" : "{field} is required", | 246 | "validation.required" : "Tá {field} de dhÃth", |
246 | "validation.url" : "{field} is not a valid URL", | 247 | "validation.url" : "Nà AAA bhailà é {field}", |
247 | "welcome.loginButton" : "Logáil isteach i do chuntas", | 248 | "welcome.loginButton" : "Logáil isteach i do chuntas", |
248 | "welcome.signupButton" : "Cruthaigh cuntas nua", | 249 | "welcome.signupButton" : "Cruthaigh cuntas nua", |
249 | "welcome.slogan" : "Teachtaireachtaà a oibrÃonn duitse" | 250 | "welcome.slogan" : "Teachtaireachtaà a oibrÃonn duitse" |
diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index 72930f686..e227c4537 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json | |||
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini", | 116 | "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini", |
117 | "settings.app.form.autoLaunchOnStart" : "Pokreni Franz sa sistemom", | 117 | "settings.app.form.autoLaunchOnStart" : "Pokreni Franz sa sistemom", |
118 | "settings.app.form.beta" : "Obuhvati i beta verzije", | 118 | "settings.app.form.beta" : "Obuhvati i beta verzije", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Prikaži Franz u traci izbornika", | 120 | "settings.app.form.enableMenuBar" : "Prikaži Franz u traci izbornika", |
120 | "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa", | 121 | "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa", |
121 | "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci", | 122 | "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci", |
diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json index 308559f3b..3571ad453 100644 --- a/src/i18n/locales/hu.json +++ b/src/i18n/locales/hu.json | |||
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Megnyitás háttérben", | 116 | "settings.app.form.autoLaunchInBackground" : "Megnyitás háttérben", |
117 | "settings.app.form.autoLaunchOnStart" : "Franz betöltése indÃtáskor", | 117 | "settings.app.form.autoLaunchOnStart" : "Franz betöltése indÃtáskor", |
118 | "settings.app.form.beta" : "Béta verziók keresése", | 118 | "settings.app.form.beta" : "Béta verziók keresése", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", | 120 | "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", |
120 | "settings.app.form.enableSpellchecking" : "HelyesÃrás-ellenÅ‘rzés engedélyezése", | 121 | "settings.app.form.enableSpellchecking" : "HelyesÃrás-ellenÅ‘rzés engedélyezése", |
121 | "settings.app.form.enableSystemTray" : "Franz mutatása a tálcán", | 122 | "settings.app.form.enableSystemTray" : "Franz mutatása a tálcán", |
diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json index 51820150f..e6d671c1b 100644 --- a/src/i18n/locales/id.json +++ b/src/i18n/locales/id.json | |||
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Buka di latar belakang", | 116 | "settings.app.form.autoLaunchInBackground" : "Buka di latar belakang", |
117 | "settings.app.form.autoLaunchOnStart" : "Jalankan Franz saat komputer dimulai", | 117 | "settings.app.form.autoLaunchOnStart" : "Jalankan Franz saat komputer dimulai", |
118 | "settings.app.form.beta" : "Sertakan versi beta", | 118 | "settings.app.form.beta" : "Sertakan versi beta", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Tampilkan Franz di Bilah Menu", | 120 | "settings.app.form.enableMenuBar" : "Tampilkan Franz di Bilah Menu", |
120 | "settings.app.form.enableSpellchecking" : "Aktifkan pemeriksaan ejaan", | 121 | "settings.app.form.enableSpellchecking" : "Aktifkan pemeriksaan ejaan", |
121 | "settings.app.form.enableSystemTray" : "Tampilkan Franz di baki sistem", | 122 | "settings.app.form.enableSystemTray" : "Tampilkan Franz di baki sistem", |
diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index c45587c87..9d23a309b 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json | |||
@@ -6,7 +6,7 @@ | |||
6 | "import.skip.label" : "Voglio aggiungere servizi manualmente", | 6 | "import.skip.label" : "Voglio aggiungere servizi manualmente", |
7 | "import.submit.label" : "Importa servizi", | 7 | "import.submit.label" : "Importa servizi", |
8 | "infobar.buttonChangelog" : "Cosa c'è di nuovo?", | 8 | "infobar.buttonChangelog" : "Cosa c'è di nuovo?", |
9 | "infobar.buttonInstallUpdate" : "Riavvia e installa gli aggiornamenti", | 9 | "infobar.buttonInstallUpdate" : "Riavvia e installa aggiornamento", |
10 | "infobar.buttonReloadServices" : "Ricarica servizi", | 10 | "infobar.buttonReloadServices" : "Ricarica servizi", |
11 | "infobar.requiredRequestsFailed" : "Impossibile caricare servizi e info utente", | 11 | "infobar.requiredRequestsFailed" : "Impossibile caricare servizi e info utente", |
12 | "infobar.servicesUpdated" : "I tuoi servizi sono stati aggiornati.", | 12 | "infobar.servicesUpdated" : "I tuoi servizi sono stati aggiornati.", |
@@ -26,49 +26,49 @@ | |||
26 | "login.serverLogout" : "La tua sessione è scaduta, accedi nuovamente.", | 26 | "login.serverLogout" : "La tua sessione è scaduta, accedi nuovamente.", |
27 | "login.submit.label" : "Accedi", | 27 | "login.submit.label" : "Accedi", |
28 | "login.tokenExpired" : "La tua sessione è scaduta, accedi nuovamente.", | 28 | "login.tokenExpired" : "La tua sessione è scaduta, accedi nuovamente.", |
29 | "menu.app.about" : "About Franz", | 29 | "menu.app.about" : "Info su Franz", |
30 | "menu.app.hide" : "Hide", | 30 | "menu.app.hide" : "Nascondi", |
31 | "menu.app.hideOthers" : "Hide Others", | 31 | "menu.app.hideOthers" : "Nascondi Altri", |
32 | "menu.app.quit" : "Quit", | 32 | "menu.app.quit" : "Esci", |
33 | "menu.app.settings" : "Impostazioni", | 33 | "menu.app.settings" : "Impostazioni", |
34 | "menu.app.unhide" : "Unhide", | 34 | "menu.app.unhide" : "Mostra", |
35 | "menu.edit" : "Modifica", | 35 | "menu.edit" : "Modifica", |
36 | "menu.edit.copy" : "Copy", | 36 | "menu.edit.copy" : "Copia", |
37 | "menu.edit.cut" : "Cut", | 37 | "menu.edit.cut" : "Taglia", |
38 | "menu.edit.delete" : "Elimina", | 38 | "menu.edit.delete" : "Elimina", |
39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | 39 | "menu.edit.emojiSymbols" : "Emoji e Simboli", |
40 | "menu.edit.paste" : "Paste", | 40 | "menu.edit.paste" : "Incolla", |
41 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | 41 | "menu.edit.pasteAndMatchStyle" : "Incolla e Mantieni Stile", |
42 | "menu.edit.redo" : "Redo", | 42 | "menu.edit.redo" : "Ripeti", |
43 | "menu.edit.selectAll" : "Select All", | 43 | "menu.edit.selectAll" : "Seleziona Tutto", |
44 | "menu.edit.speech" : "Speech", | 44 | "menu.edit.speech" : "Sintesi Vocale", |
45 | "menu.edit.startDictation" : "Start Dictation", | 45 | "menu.edit.startDictation" : "Avvia Dettatura", |
46 | "menu.edit.startSpeaking" : "Start Speaking", | 46 | "menu.edit.startSpeaking" : "Avvia Pronuncia", |
47 | "menu.edit.stopSpeaking" : "Stop Speaking", | 47 | "menu.edit.stopSpeaking" : "Interrompi Pronuncia", |
48 | "menu.edit.undo" : "Undo", | 48 | "menu.edit.undo" : "Annulla", |
49 | "menu.file" : "File", | 49 | "menu.file" : "File", |
50 | "menu.help" : "Help", | 50 | "menu.help" : "Aiuto", |
51 | "menu.help.changelog" : "Changelog", | 51 | "menu.help.changelog" : "Changelog", |
52 | "menu.help.learnMore" : "Learn More", | 52 | "menu.help.learnMore" : "Maggiori Informazioni", |
53 | "menu.help.privacy" : "Informativa sulla Privacy", | 53 | "menu.help.privacy" : "Informativa sulla Privacy", |
54 | "menu.help.support" : "Support", | 54 | "menu.help.support" : "Supporto", |
55 | "menu.help.tos" : "Terms of Service", | 55 | "menu.help.tos" : "Termini di Servizio", |
56 | "menu.services" : "Services", | 56 | "menu.services" : "Servizi", |
57 | "menu.services.addNewService" : "Add New Service...", | 57 | "menu.services.addNewService" : "Aggiungi Nuovo Servizio...", |
58 | "menu.view" : "View", | 58 | "menu.view" : "Visualizza", |
59 | "menu.view.enterFullScreen" : "Enter Full Screen", | 59 | "menu.view.enterFullScreen" : "Visualizza a Tutto Schermo", |
60 | "menu.view.exitFullScreen" : "Exit Full Screen", | 60 | "menu.view.exitFullScreen" : "Modalità Finestra", |
61 | "menu.view.reloadFranz" : "Reload Franz", | 61 | "menu.view.reloadFranz" : "Ricarica Franz", |
62 | "menu.view.reloadService" : "Reload Service", | 62 | "menu.view.reloadService" : "Ricarica Servizio", |
63 | "menu.view.resetZoom" : "Actual Size", | 63 | "menu.view.resetZoom" : "Dimensione Attuale", |
64 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | 64 | "menu.view.toggleDevTools" : "Attiva Strumenti Sviluppo", |
65 | "menu.view.toggleFullScreen" : "Toggle Full Screen", | 65 | "menu.view.toggleFullScreen" : "Passa a Schermo Intero", |
66 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", | 66 | "menu.view.toggleServiceDevTools" : "Attiva Strumenti per Sviluppatori di Servizi", |
67 | "menu.view.zoomIn" : "Zoom In", | 67 | "menu.view.zoomIn" : "Aumenta Zoom", |
68 | "menu.view.zoomOut" : "Zoom Out", | 68 | "menu.view.zoomOut" : "Diminuisci Zoom", |
69 | "menu.window" : "Window", | 69 | "menu.window" : "Finestra", |
70 | "menu.window.close" : "Close", | 70 | "menu.window.close" : "Chiudi", |
71 | "menu.window.minimize" : "Minimize", | 71 | "menu.window.minimize" : "Minimizza", |
72 | "password.email.label" : "Indirizzo email", | 72 | "password.email.label" : "Indirizzo email", |
73 | "password.headline" : "Reimposta password", | 73 | "password.headline" : "Reimposta password", |
74 | "password.link.login" : "Accedi al tuo account", | 74 | "password.link.login" : "Accedi al tuo account", |
@@ -88,7 +88,7 @@ | |||
88 | "service.disabledHandler.headline" : "{name} è disattivato", | 88 | "service.disabledHandler.headline" : "{name} è disattivato", |
89 | "services.getStarted" : "Iniziamo", | 89 | "services.getStarted" : "Iniziamo", |
90 | "services.welcome" : "Welcome to Franz", | 90 | "services.welcome" : "Welcome to Franz", |
91 | "settings.account.account.editButton" : "Edit account", | 91 | "settings.account.account.editButton" : "Modifica account", |
92 | "settings.account.accountType.basic" : "Account Basic", | 92 | "settings.account.accountType.basic" : "Account Basic", |
93 | "settings.account.accountType.premium" : "Premium Supporter Account", | 93 | "settings.account.accountType.premium" : "Premium Supporter Account", |
94 | "settings.account.buttonSave" : "Aggiorna profilo", | 94 | "settings.account.buttonSave" : "Aggiorna profilo", |
@@ -110,12 +110,13 @@ | |||
110 | "settings.account.userInfoRequestFailed" : "Impossibile caricare informazioni utente.", | 110 | "settings.account.userInfoRequestFailed" : "Impossibile caricare informazioni utente.", |
111 | "settings.app.buttonClearAllCache" : "Svuota la cache", | 111 | "settings.app.buttonClearAllCache" : "Svuota la cache", |
112 | "settings.app.buttonInstallUpdate" : "Riavvia e installa l'aggiornamento", | 112 | "settings.app.buttonInstallUpdate" : "Riavvia e installa l'aggiornamento", |
113 | "settings.app.buttonSearchForUpdate" : "Controlla gli aggiornamenti", | 113 | "settings.app.buttonSearchForUpdate" : "Controlla aggiornamenti", |
114 | "settings.app.cacheInfo" : "Franz sta utilizzando {size} di spazio su disco.", | 114 | "settings.app.cacheInfo" : "Franz sta utilizzando {size} di spazio su disco.", |
115 | "settings.app.currentVersion" : "Versione attuale:", | 115 | "settings.app.currentVersion" : "Versione attuale:", |
116 | "settings.app.form.autoLaunchInBackground" : "Apri in background", | 116 | "settings.app.form.autoLaunchInBackground" : "Apri in background", |
117 | "settings.app.form.autoLaunchOnStart" : "Esegui Franz all'avvio", | 117 | "settings.app.form.autoLaunchOnStart" : "Esegui Franz all'avvio", |
118 | "settings.app.form.beta" : "Includi versioni beta", | 118 | "settings.app.form.beta" : "Includi versioni beta", |
119 | "settings.app.form.enableGPUAcceleration" : "Attiva Accelerazione GPU", | ||
119 | "settings.app.form.enableMenuBar" : "Mostra Franz nella Barra del Menu", | 120 | "settings.app.form.enableMenuBar" : "Mostra Franz nella Barra del Menu", |
120 | "settings.app.form.enableSpellchecking" : "Attiva controllo ortografico", | 121 | "settings.app.form.enableSpellchecking" : "Attiva controllo ortografico", |
121 | "settings.app.form.enableSystemTray" : "Mostra Franz nell'area di notifica", | 122 | "settings.app.form.enableSystemTray" : "Mostra Franz nell'area di notifica", |
@@ -201,9 +202,9 @@ | |||
201 | "settings.user.form.lastname" : "Cognome", | 202 | "settings.user.form.lastname" : "Cognome", |
202 | "settings.user.form.newPassword" : "Nuova password", | 203 | "settings.user.form.newPassword" : "Nuova password", |
203 | "sidebar.addNewService" : "Aggiungi un nuovo servizio", | 204 | "sidebar.addNewService" : "Aggiungi un nuovo servizio", |
204 | "sidebar.muteApp" : "Disattiva notifiche & audio", | 205 | "sidebar.muteApp" : "Disattiva notifiche e audio", |
205 | "sidebar.settings" : "Impostazioni", | 206 | "sidebar.settings" : "Impostazioni", |
206 | "sidebar.unmuteApp" : "Attiva notifiche & audio", | 207 | "sidebar.unmuteApp" : "Attiva notifiche e audio", |
207 | "signup.company.label" : "Società ", | 208 | "signup.company.label" : "Società ", |
208 | "signup.email.label" : "Indirizzo email", | 209 | "signup.email.label" : "Indirizzo email", |
209 | "signup.emailDuplicate" : "Esiste già un utente con lo stesso indirizzo email", | 210 | "signup.emailDuplicate" : "Esiste già un utente con lo stesso indirizzo email", |
@@ -240,10 +241,10 @@ | |||
240 | "tabs.item.enableNotification" : "Attiva notifiche", | 241 | "tabs.item.enableNotification" : "Attiva notifiche", |
241 | "tabs.item.enableService" : "Attiva servizio", | 242 | "tabs.item.enableService" : "Attiva servizio", |
242 | "tabs.item.reload" : "Aggiorna", | 243 | "tabs.item.reload" : "Aggiorna", |
243 | "validation.email" : "{field} is not valid", | 244 | "validation.email" : "{field} non valido", |
244 | "validation.minLength" : "{field} should be at least {length} characters long", | 245 | "validation.minLength" : "{field} dovrebbe contenere almeno {length} caratteri", |
245 | "validation.required" : "{field} is required", | 246 | "validation.required" : "{field} è necessario", |
246 | "validation.url" : "{field} is not a valid URL", | 247 | "validation.url" : "{field} non è un URL valido", |
247 | "welcome.loginButton" : "Accedi al tuo account", | 248 | "welcome.loginButton" : "Accedi al tuo account", |
248 | "welcome.signupButton" : "Crea un account gratuito", | 249 | "welcome.signupButton" : "Crea un account gratuito", |
249 | "welcome.slogan" : "Un sistema di messaggistica che funziona" | 250 | "welcome.slogan" : "Un sistema di messaggistica che funziona" |
diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 0634a8fc8..a7af10aba 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json | |||
@@ -26,49 +26,49 @@ | |||
26 | "login.serverLogout" : "セッションã®æœŸé™ãŒåˆ‡ã‚Œã¾ã—ãŸã€‚ãƒã‚°ã‚¤ãƒ³ã—ç›´ã—ã¦ä¸‹ã•ã„。", | 26 | "login.serverLogout" : "セッションã®æœŸé™ãŒåˆ‡ã‚Œã¾ã—ãŸã€‚ãƒã‚°ã‚¤ãƒ³ã—ç›´ã—ã¦ä¸‹ã•ã„。", |
27 | "login.submit.label" : "サインイン", | 27 | "login.submit.label" : "サインイン", |
28 | "login.tokenExpired" : "セッションã®æœŸé™ãŒåˆ‡ã‚Œã¾ã—ãŸã€‚ãƒã‚°ã‚¤ãƒ³ã—ç›´ã—ã¦ä¸‹ã•ã„。", | 28 | "login.tokenExpired" : "セッションã®æœŸé™ãŒåˆ‡ã‚Œã¾ã—ãŸã€‚ãƒã‚°ã‚¤ãƒ³ã—ç›´ã—ã¦ä¸‹ã•ã„。", |
29 | "menu.app.about" : "About Franz", | 29 | "menu.app.about" : "Franzã«ã¤ã„ã¦", |
30 | "menu.app.hide" : "Hide", | 30 | "menu.app.hide" : "éš ã™", |
31 | "menu.app.hideOthers" : "Hide Others", | 31 | "menu.app.hideOthers" : "ä»–ã‚’éš ã™", |
32 | "menu.app.quit" : "Quit", | 32 | "menu.app.quit" : "終了", |
33 | "menu.app.settings" : "è¨å®š", | 33 | "menu.app.settings" : "è¨å®š", |
34 | "menu.app.unhide" : "Unhide", | 34 | "menu.app.unhide" : "表示ã™ã‚‹", |
35 | "menu.edit" : "編集", | 35 | "menu.edit" : "編集", |
36 | "menu.edit.copy" : "Copy", | 36 | "menu.edit.copy" : "コピー", |
37 | "menu.edit.cut" : "Cut", | 37 | "menu.edit.cut" : "切りå–ã‚Š", |
38 | "menu.edit.delete" : "削除", | 38 | "menu.edit.delete" : "削除", |
39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | 39 | "menu.edit.emojiSymbols" : "絵文å—ã¨ã‚·ãƒ³ãƒœãƒ«", |
40 | "menu.edit.paste" : "Paste", | 40 | "menu.edit.paste" : "貼り付ã‘", |
41 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | 41 | "menu.edit.pasteAndMatchStyle" : "書å¼ã‚’統一ã—ã¦è²¼ã‚Šä»˜ã‘", |
42 | "menu.edit.redo" : "Redo", | 42 | "menu.edit.redo" : "ã‚„ã‚Šç›´ã—", |
43 | "menu.edit.selectAll" : "Select All", | 43 | "menu.edit.selectAll" : "å…¨ã¦é¸æŠž", |
44 | "menu.edit.speech" : "Speech", | 44 | "menu.edit.speech" : "èªã¿ä¸Šã’", |
45 | "menu.edit.startDictation" : "Start Dictation", | 45 | "menu.edit.startDictation" : "音声入力を開始", |
46 | "menu.edit.startSpeaking" : "Start Speaking", | 46 | "menu.edit.startSpeaking" : "èªã¿ä¸Šã’を開始", |
47 | "menu.edit.stopSpeaking" : "Stop Speaking", | 47 | "menu.edit.stopSpeaking" : "èªã¿ä¸Šã’ã‚’åœæ¢", |
48 | "menu.edit.undo" : "Undo", | 48 | "menu.edit.undo" : "å…ƒã«æˆ»ã™", |
49 | "menu.file" : "File", | 49 | "menu.file" : "ファイル", |
50 | "menu.help" : "Help", | 50 | "menu.help" : "ヘルプ", |
51 | "menu.help.changelog" : "Changelog", | 51 | "menu.help.changelog" : "æ›´æ–°å±¥æ´", |
52 | "menu.help.learnMore" : "Learn More", | 52 | "menu.help.learnMore" : "詳細ã«ã¤ã„ã¦", |
53 | "menu.help.privacy" : "プライãƒã‚·ãƒ¼ã«ã¤ã„ã¦", | 53 | "menu.help.privacy" : "プライãƒã‚·ãƒ¼ã«ã¤ã„ã¦", |
54 | "menu.help.support" : "Support", | 54 | "menu.help.support" : "サãƒãƒ¼ãƒˆ", |
55 | "menu.help.tos" : "Terms of Service", | 55 | "menu.help.tos" : "サービス利用è¦ç´„", |
56 | "menu.services" : "Services", | 56 | "menu.services" : "サービス", |
57 | "menu.services.addNewService" : "Add New Service...", | 57 | "menu.services.addNewService" : "ã‚µãƒ¼ãƒ“ã‚¹ã‚’è¿½åŠ ", |
58 | "menu.view" : "View", | 58 | "menu.view" : "表示", |
59 | "menu.view.enterFullScreen" : "Enter Full Screen", | 59 | "menu.view.enterFullScreen" : "全画é¢è¡¨ç¤º", |
60 | "menu.view.exitFullScreen" : "Exit Full Screen", | 60 | "menu.view.exitFullScreen" : "全画é¢è¡¨ç¤ºã‚’終了ã™ã‚‹", |
61 | "menu.view.reloadFranz" : "Reload Franz", | 61 | "menu.view.reloadFranz" : "å†èµ·å‹•", |
62 | "menu.view.reloadService" : "Reload Service", | 62 | "menu.view.reloadService" : "サービスをリãƒãƒ¼ãƒ‰ã™ã‚‹", |
63 | "menu.view.resetZoom" : "Actual Size", | 63 | "menu.view.resetZoom" : "å…ƒã®ã‚µã‚¤ã‚º", |
64 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | 64 | "menu.view.toggleDevTools" : "開発者ツールを切り替ãˆ", |
65 | "menu.view.toggleFullScreen" : "Toggle Full Screen", | 65 | "menu.view.toggleFullScreen" : "全画é¢è¡¨ç¤ºã®åˆ‡ã‚Šæ›¿ãˆ", |
66 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", | 66 | "menu.view.toggleServiceDevTools" : "サービス開発者ツールを切り替ãˆ", |
67 | "menu.view.zoomIn" : "Zoom In", | 67 | "menu.view.zoomIn" : "表示を拡大ã™ã‚‹", |
68 | "menu.view.zoomOut" : "Zoom Out", | 68 | "menu.view.zoomOut" : "表示を縮å°ã™ã‚‹", |
69 | "menu.window" : "Window", | 69 | "menu.window" : "ウィンドウ", |
70 | "menu.window.close" : "Close", | 70 | "menu.window.close" : "é–‰ã˜ã‚‹", |
71 | "menu.window.minimize" : "Minimize", | 71 | "menu.window.minimize" : "最å°åŒ–", |
72 | "password.email.label" : "メールアドレス", | 72 | "password.email.label" : "メールアドレス", |
73 | "password.headline" : "パスワードã®ãƒªã‚»ãƒƒãƒˆ", | 73 | "password.headline" : "パスワードã®ãƒªã‚»ãƒƒãƒˆ", |
74 | "password.link.login" : "サインイン", | 74 | "password.link.login" : "サインイン", |
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§é–‹ã", | 116 | "settings.app.form.autoLaunchInBackground" : "ãƒãƒƒã‚¯ã‚°ãƒ©ã‚¦ãƒ³ãƒ‰ã§é–‹ã", |
117 | "settings.app.form.autoLaunchOnStart" : "システム起動時ã«Franzã‚’é–‹ã", | 117 | "settings.app.form.autoLaunchOnStart" : "システム起動時ã«Franzã‚’é–‹ã", |
118 | "settings.app.form.beta" : "Betaãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’å«ã‚ã‚‹", | 118 | "settings.app.form.beta" : "Betaãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’å«ã‚ã‚‹", |
119 | "settings.app.form.enableGPUAcceleration" : "GPUアクセラレーションを有効ã«ã™ã‚‹", | ||
119 | "settings.app.form.enableMenuBar" : "メニューãƒãƒ¼ã«Franzを表示ã™ã‚‹", | 120 | "settings.app.form.enableMenuBar" : "メニューãƒãƒ¼ã«Franzを表示ã™ã‚‹", |
120 | "settings.app.form.enableSpellchecking" : "スペルãƒã‚§ãƒƒã‚¯ã‚’有効ã«ã™ã‚‹", | 121 | "settings.app.form.enableSpellchecking" : "スペルãƒã‚§ãƒƒã‚¯ã‚’有効ã«ã™ã‚‹", |
121 | "settings.app.form.enableSystemTray" : "Franzをシステムトレイã«è¡¨ç¤ºã™ã‚‹", | 122 | "settings.app.form.enableSystemTray" : "Franzをシステムトレイã«è¡¨ç¤ºã™ã‚‹", |
@@ -240,10 +241,10 @@ | |||
240 | "tabs.item.enableNotification" : "通知を有効ã«ã™ã‚‹", | 241 | "tabs.item.enableNotification" : "通知を有効ã«ã™ã‚‹", |
241 | "tabs.item.enableService" : "サービスを有効ã«ã™ã‚‹", | 242 | "tabs.item.enableService" : "サービスを有効ã«ã™ã‚‹", |
242 | "tabs.item.reload" : "å†èªã¿è¾¼ã¿", | 243 | "tabs.item.reload" : "å†èªã¿è¾¼ã¿", |
243 | "validation.email" : "{field} is not valid", | 244 | "validation.email" : "{field}ã¯æ£ã—ãã‚ã‚Šã¾ã›ã‚“", |
244 | "validation.minLength" : "{field} should be at least {length} characters long", | 245 | "validation.minLength" : "{field}ã¯å°‘ãªãã¨ã‚‚{length}æ–‡å—以上ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“", |
245 | "validation.required" : "{field} is required", | 246 | "validation.required" : "{field}ã¯å¿…é ˆã§ã™", |
246 | "validation.url" : "{field} is not a valid URL", | 247 | "validation.url" : "{field}ã¯æ£ã—ã„URLã§ã¯ã‚ã‚Šã¾ã›ã‚“", |
247 | "welcome.loginButton" : "アカウントã«ãƒã‚°ã‚¤ãƒ³", | 248 | "welcome.loginButton" : "アカウントã«ãƒã‚°ã‚¤ãƒ³", |
248 | "welcome.signupButton" : "無料アカウントを作æˆ", | 249 | "welcome.signupButton" : "無料アカウントを作æˆ", |
249 | "welcome.slogan" : "Messaging that works for you" | 250 | "welcome.slogan" : "Messaging that works for you" |
diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json index 8eb0fff56..7679bc6fc 100644 --- a/src/i18n/locales/ka.json +++ b/src/i18n/locales/ka.json | |||
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "გáƒáƒ®áƒ¡áƒ”ნით ფáƒáƒœáƒ–ე", | 116 | "settings.app.form.autoLaunchInBackground" : "გáƒáƒ®áƒ¡áƒ”ნით ფáƒáƒœáƒ–ე", |
117 | "settings.app.form.autoLaunchOnStart" : "გáƒáƒ”შვáƒáƒ¡ Franz სისტემის ჩáƒáƒ¢áƒ•áƒ˜áƒ თვისáƒáƒ¡", | 117 | "settings.app.form.autoLaunchOnStart" : "გáƒáƒ”შვáƒáƒ¡ Franz სისტემის ჩáƒáƒ¢áƒ•áƒ˜áƒ თვისáƒáƒ¡", |
118 | "settings.app.form.beta" : "ჩáƒáƒ თეთ ბეტრვერსიები", | 118 | "settings.app.form.beta" : "ჩáƒáƒ თეთ ბეტრვერსიები", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", | 120 | "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", |
120 | "settings.app.form.enableSpellchecking" : "Enable spell checking", | 121 | "settings.app.form.enableSpellchecking" : "Enable spell checking", |
121 | "settings.app.form.enableSystemTray" : "áƒáƒ©áƒ•áƒ”ნეთ Franz სისტემის უჯრáƒáƒ¨áƒ˜", | 122 | "settings.app.form.enableSystemTray" : "áƒáƒ©áƒ•áƒ”ნეთ Franz სისტემის უჯრáƒáƒ¨áƒ˜", |
diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json index fe0135a14..13dc7548e 100644 --- a/src/i18n/locales/nl-BE.json +++ b/src/i18n/locales/nl-BE.json | |||
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond", | 116 | "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond", |
117 | "settings.app.form.autoLaunchOnStart" : "Lanceer Franz bij opstarten", | 117 | "settings.app.form.autoLaunchOnStart" : "Lanceer Franz bij opstarten", |
118 | "settings.app.form.beta" : "Inclusief bèta versies", | 118 | "settings.app.form.beta" : "Inclusief bèta versies", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", | 120 | "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", |
120 | "settings.app.form.enableSpellchecking" : "Enable spell checking", | 121 | "settings.app.form.enableSpellchecking" : "Enable spell checking", |
121 | "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", | 122 | "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", |
diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index ac436fc54..4ff3cdd80 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json | |||
@@ -7,7 +7,7 @@ | |||
7 | "import.submit.label" : "Importeer services", | 7 | "import.submit.label" : "Importeer services", |
8 | "infobar.buttonChangelog" : "Wat is er nieuw?", | 8 | "infobar.buttonChangelog" : "Wat is er nieuw?", |
9 | "infobar.buttonInstallUpdate" : "Opnieuw opstarten & update installeren", | 9 | "infobar.buttonInstallUpdate" : "Opnieuw opstarten & update installeren", |
10 | "infobar.buttonReloadServices" : "Laad services opnieuw", | 10 | "infobar.buttonReloadServices" : "Services opnieuw laden", |
11 | "infobar.requiredRequestsFailed" : "Kan de services en gebruikersinformatie niet laden", | 11 | "infobar.requiredRequestsFailed" : "Kan de services en gebruikersinformatie niet laden", |
12 | "infobar.servicesUpdated" : "Je services zijn bijgewerkt.", | 12 | "infobar.servicesUpdated" : "Je services zijn bijgewerkt.", |
13 | "infobar.updateAvailable" : "Er is een nieuwe update voor Franz beschikbaar.", | 13 | "infobar.updateAvailable" : "Er is een nieuwe update voor Franz beschikbaar.", |
@@ -26,39 +26,39 @@ | |||
26 | "login.serverLogout" : "De sessie is verlopen, log alsjeblieft opnieuw in.", | 26 | "login.serverLogout" : "De sessie is verlopen, log alsjeblieft opnieuw in.", |
27 | "login.submit.label" : "Inloggen", | 27 | "login.submit.label" : "Inloggen", |
28 | "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.", | 28 | "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.", |
29 | "menu.app.about" : "About Franz", | 29 | "menu.app.about" : "Over Franz", |
30 | "menu.app.hide" : "Hide", | 30 | "menu.app.hide" : "Verbergen", |
31 | "menu.app.hideOthers" : "Hide Others", | 31 | "menu.app.hideOthers" : "Andere verbergen", |
32 | "menu.app.quit" : "Quit", | 32 | "menu.app.quit" : "Afsluiten", |
33 | "menu.app.settings" : "Instellingen", | 33 | "menu.app.settings" : "Instellingen", |
34 | "menu.app.unhide" : "Unhide", | 34 | "menu.app.unhide" : "Tonen", |
35 | "menu.edit" : "Bewerk", | 35 | "menu.edit" : "Bewerk", |
36 | "menu.edit.copy" : "Copy", | 36 | "menu.edit.copy" : "Kopiëren", |
37 | "menu.edit.cut" : "Cut", | 37 | "menu.edit.cut" : "Knippen", |
38 | "menu.edit.delete" : "Verwijderen", | 38 | "menu.edit.delete" : "Verwijderen", |
39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | 39 | "menu.edit.emojiSymbols" : "Emoji's en symbolen", |
40 | "menu.edit.paste" : "Paste", | 40 | "menu.edit.paste" : "Plakken", |
41 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | 41 | "menu.edit.pasteAndMatchStyle" : "Plakken en stijl overeen laten komen", |
42 | "menu.edit.redo" : "Redo", | 42 | "menu.edit.redo" : "Opnieuw doen", |
43 | "menu.edit.selectAll" : "Select All", | 43 | "menu.edit.selectAll" : "Selecteer alles", |
44 | "menu.edit.speech" : "Speech", | 44 | "menu.edit.speech" : "Spraak", |
45 | "menu.edit.startDictation" : "Start Dictation", | 45 | "menu.edit.startDictation" : "Beginnen met dicteren", |
46 | "menu.edit.startSpeaking" : "Start Speaking", | 46 | "menu.edit.startSpeaking" : "Beginnen met praten", |
47 | "menu.edit.stopSpeaking" : "Stop Speaking", | 47 | "menu.edit.stopSpeaking" : "Stoppen met spreken", |
48 | "menu.edit.undo" : "Undo", | 48 | "menu.edit.undo" : "Ongedaan maken", |
49 | "menu.file" : "File", | 49 | "menu.file" : "Bestand", |
50 | "menu.help" : "Help", | 50 | "menu.help" : "Hulp", |
51 | "menu.help.changelog" : "Changelog", | 51 | "menu.help.changelog" : "Wijzigingenlogboek", |
52 | "menu.help.learnMore" : "Learn More", | 52 | "menu.help.learnMore" : "Meer informatie", |
53 | "menu.help.privacy" : "Privacy Voorwaarden", | 53 | "menu.help.privacy" : "Privacy Voorwaarden", |
54 | "menu.help.support" : "Support", | 54 | "menu.help.support" : "Ondersteuning", |
55 | "menu.help.tos" : "Terms of Service", | 55 | "menu.help.tos" : "Servicevoorwaarden", |
56 | "menu.services" : "Services", | 56 | "menu.services" : "Diensten", |
57 | "menu.services.addNewService" : "Add New Service...", | 57 | "menu.services.addNewService" : "Nieuwe dienst toevoegen", |
58 | "menu.view" : "View", | 58 | "menu.view" : "Weergave", |
59 | "menu.view.enterFullScreen" : "Enter Full Screen", | 59 | "menu.view.enterFullScreen" : "Gebruik volledig scherm", |
60 | "menu.view.exitFullScreen" : "Exit Full Screen", | 60 | "menu.view.exitFullScreen" : "Volledig scherm verlaten", |
61 | "menu.view.reloadFranz" : "Reload Franz", | 61 | "menu.view.reloadFranz" : "Herlaad Franz", |
62 | "menu.view.reloadService" : "Reload Service", | 62 | "menu.view.reloadService" : "Reload Service", |
63 | "menu.view.resetZoom" : "Actual Size", | 63 | "menu.view.resetZoom" : "Actual Size", |
64 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | 64 | "menu.view.toggleDevTools" : "Toggle Developer Tools", |
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond", | 116 | "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond", |
117 | "settings.app.form.autoLaunchOnStart" : "Open Franz bij opstarten", | 117 | "settings.app.form.autoLaunchOnStart" : "Open Franz bij opstarten", |
118 | "settings.app.form.beta" : "Inclusief bètaversies", | 118 | "settings.app.form.beta" : "Inclusief bètaversies", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Toon Franz in menubalk", | 120 | "settings.app.form.enableMenuBar" : "Toon Franz in menubalk", |
120 | "settings.app.form.enableSpellchecking" : "Zet spellingcontrole aan", | 121 | "settings.app.form.enableSpellchecking" : "Zet spellingcontrole aan", |
121 | "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", | 122 | "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", |
diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 74ffbe231..9fb72b9c9 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json | |||
@@ -26,49 +26,49 @@ | |||
26 | "login.serverLogout" : "Twoja sesja wygasła, zaloguj się ponownie.", | 26 | "login.serverLogout" : "Twoja sesja wygasła, zaloguj się ponownie.", |
27 | "login.submit.label" : "Zaloguj siÄ™", | 27 | "login.submit.label" : "Zaloguj siÄ™", |
28 | "login.tokenExpired" : "Twoja sesja wygasła, zaloguj się ponownie.", | 28 | "login.tokenExpired" : "Twoja sesja wygasła, zaloguj się ponownie.", |
29 | "menu.app.about" : "About Franz", | 29 | "menu.app.about" : "O Franz", |
30 | "menu.app.hide" : "Hide", | 30 | "menu.app.hide" : "Ukryj", |
31 | "menu.app.hideOthers" : "Hide Others", | 31 | "menu.app.hideOthers" : "Hide Others", |
32 | "menu.app.quit" : "Quit", | 32 | "menu.app.quit" : "Quit", |
33 | "menu.app.settings" : "Ustawienia", | 33 | "menu.app.settings" : "Ustawienia", |
34 | "menu.app.unhide" : "Unhide", | 34 | "menu.app.unhide" : "Pokaż", |
35 | "menu.edit" : "Edytuj", | 35 | "menu.edit" : "Edytuj", |
36 | "menu.edit.copy" : "Copy", | 36 | "menu.edit.copy" : "Skopiuj", |
37 | "menu.edit.cut" : "Cut", | 37 | "menu.edit.cut" : "Wytnij", |
38 | "menu.edit.delete" : "Usuń", | 38 | "menu.edit.delete" : "Usuń", |
39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | 39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", |
40 | "menu.edit.paste" : "Paste", | 40 | "menu.edit.paste" : "Wklej", |
41 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | 41 | "menu.edit.pasteAndMatchStyle" : "Wklej i dopasuj styl", |
42 | "menu.edit.redo" : "Redo", | 42 | "menu.edit.redo" : "Ponów", |
43 | "menu.edit.selectAll" : "Select All", | 43 | "menu.edit.selectAll" : "Zaznacz wszystko", |
44 | "menu.edit.speech" : "Speech", | 44 | "menu.edit.speech" : "Speech", |
45 | "menu.edit.startDictation" : "Start Dictation", | 45 | "menu.edit.startDictation" : "Zacznij dyktować", |
46 | "menu.edit.startSpeaking" : "Start Speaking", | 46 | "menu.edit.startSpeaking" : "Zacznij mówić", |
47 | "menu.edit.stopSpeaking" : "Stop Speaking", | 47 | "menu.edit.stopSpeaking" : "Przestań mówić", |
48 | "menu.edit.undo" : "Undo", | 48 | "menu.edit.undo" : "Cofnij", |
49 | "menu.file" : "File", | 49 | "menu.file" : "Plik", |
50 | "menu.help" : "Help", | 50 | "menu.help" : "Pomoc", |
51 | "menu.help.changelog" : "Changelog", | 51 | "menu.help.changelog" : "Lista zmian", |
52 | "menu.help.learnMore" : "Learn More", | 52 | "menu.help.learnMore" : "Dowiedz się więcej", |
53 | "menu.help.privacy" : "Polityka prywatności", | 53 | "menu.help.privacy" : "Polityka prywatności", |
54 | "menu.help.support" : "Support", | 54 | "menu.help.support" : "Wsparcie", |
55 | "menu.help.tos" : "Terms of Service", | 55 | "menu.help.tos" : "Terms of Service", |
56 | "menu.services" : "Services", | 56 | "menu.services" : "Usługi", |
57 | "menu.services.addNewService" : "Add New Service...", | 57 | "menu.services.addNewService" : "Dodaj nową usługę...", |
58 | "menu.view" : "View", | 58 | "menu.view" : "Widok", |
59 | "menu.view.enterFullScreen" : "Enter Full Screen", | 59 | "menu.view.enterFullScreen" : "Włącz tryb pełnoekranowy", |
60 | "menu.view.exitFullScreen" : "Exit Full Screen", | 60 | "menu.view.exitFullScreen" : "Zakończ tryb pełnoekranowy", |
61 | "menu.view.reloadFranz" : "Reload Franz", | 61 | "menu.view.reloadFranz" : "Przeładuj Franz", |
62 | "menu.view.reloadService" : "Reload Service", | 62 | "menu.view.reloadService" : "Przeładuj usługę", |
63 | "menu.view.resetZoom" : "Actual Size", | 63 | "menu.view.resetZoom" : "Domyślny rozmiar", |
64 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | 64 | "menu.view.toggleDevTools" : "Toggle Developer Tools", |
65 | "menu.view.toggleFullScreen" : "Toggle Full Screen", | 65 | "menu.view.toggleFullScreen" : "Przełącz tryb pełnoekranowy", |
66 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", | 66 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", |
67 | "menu.view.zoomIn" : "Zoom In", | 67 | "menu.view.zoomIn" : "Powiększ", |
68 | "menu.view.zoomOut" : "Zoom Out", | 68 | "menu.view.zoomOut" : "Pomniejsz", |
69 | "menu.window" : "Window", | 69 | "menu.window" : "Okno", |
70 | "menu.window.close" : "Close", | 70 | "menu.window.close" : "Zamknij", |
71 | "menu.window.minimize" : "Minimize", | 71 | "menu.window.minimize" : "Zminimalizuj", |
72 | "password.email.label" : "Adres email", | 72 | "password.email.label" : "Adres email", |
73 | "password.headline" : "Wyzeruj hasło", | 73 | "password.headline" : "Wyzeruj hasło", |
74 | "password.link.login" : "Zaloguj siÄ™ na swoje konto", | 74 | "password.link.login" : "Zaloguj siÄ™ na swoje konto", |
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Otwórz w tle", | 116 | "settings.app.form.autoLaunchInBackground" : "Otwórz w tle", |
117 | "settings.app.form.autoLaunchOnStart" : "Uruchom Franz na poczÄ…tku", | 117 | "settings.app.form.autoLaunchOnStart" : "Uruchom Franz na poczÄ…tku", |
118 | "settings.app.form.beta" : "Uwzględnij wersje beta", | 118 | "settings.app.form.beta" : "Uwzględnij wersje beta", |
119 | "settings.app.form.enableGPUAcceleration" : "WÅ‚Ä…cz akceleracjÄ™ GPU", | ||
119 | "settings.app.form.enableMenuBar" : "Pokaż Franz na pasku menu", | 120 | "settings.app.form.enableMenuBar" : "Pokaż Franz na pasku menu", |
120 | "settings.app.form.enableSpellchecking" : "WÅ‚Ä…cz sprawdzanie pisowni", | 121 | "settings.app.form.enableSpellchecking" : "WÅ‚Ä…cz sprawdzanie pisowni", |
121 | "settings.app.form.enableSystemTray" : "Pokaż Franza w tacy systemowej", | 122 | "settings.app.form.enableSystemTray" : "Pokaż Franza w tacy systemowej", |
diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 6ba448999..ceb35ce30 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json | |||
@@ -26,49 +26,49 @@ | |||
26 | "login.serverLogout" : "Sua sessão expirou, faça o login novamente.", | 26 | "login.serverLogout" : "Sua sessão expirou, faça o login novamente.", |
27 | "login.submit.label" : "Entrar", | 27 | "login.submit.label" : "Entrar", |
28 | "login.tokenExpired" : "Sua sessão expirou, faça o login novamente.", | 28 | "login.tokenExpired" : "Sua sessão expirou, faça o login novamente.", |
29 | "menu.app.about" : "About Franz", | 29 | "menu.app.about" : "Sobre Franz", |
30 | "menu.app.hide" : "Hide", | 30 | "menu.app.hide" : "Ocultar", |
31 | "menu.app.hideOthers" : "Hide Others", | 31 | "menu.app.hideOthers" : "Ocultar os demais", |
32 | "menu.app.quit" : "Quit", | 32 | "menu.app.quit" : "Sair", |
33 | "menu.app.settings" : "Ajustes", | 33 | "menu.app.settings" : "Ajustes", |
34 | "menu.app.unhide" : "Unhide", | 34 | "menu.app.unhide" : "Exibir", |
35 | "menu.edit" : "Editar", | 35 | "menu.edit" : "Editar", |
36 | "menu.edit.copy" : "Copy", | 36 | "menu.edit.copy" : "Copiar", |
37 | "menu.edit.cut" : "Cut", | 37 | "menu.edit.cut" : "Cortar", |
38 | "menu.edit.delete" : "Excluir", | 38 | "menu.edit.delete" : "Excluir", |
39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | 39 | "menu.edit.emojiSymbols" : "Emoji & SÃmbolos ", |
40 | "menu.edit.paste" : "Paste", | 40 | "menu.edit.paste" : "Colar", |
41 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | 41 | "menu.edit.pasteAndMatchStyle" : "Colar e corresponder ao estilo", |
42 | "menu.edit.redo" : "Redo", | 42 | "menu.edit.redo" : "Refazer", |
43 | "menu.edit.selectAll" : "Select All", | 43 | "menu.edit.selectAll" : "Selecionar tudo", |
44 | "menu.edit.speech" : "Speech", | 44 | "menu.edit.speech" : "Discurso", |
45 | "menu.edit.startDictation" : "Start Dictation", | 45 | "menu.edit.startDictation" : "iniciar digitação por voz", |
46 | "menu.edit.startSpeaking" : "Start Speaking", | 46 | "menu.edit.startSpeaking" : "começar a falar", |
47 | "menu.edit.stopSpeaking" : "Stop Speaking", | 47 | "menu.edit.stopSpeaking" : "Parar de falar", |
48 | "menu.edit.undo" : "Undo", | 48 | "menu.edit.undo" : "Desfazer", |
49 | "menu.file" : "File", | 49 | "menu.file" : "Arquivo", |
50 | "menu.help" : "Help", | 50 | "menu.help" : "Ajuda", |
51 | "menu.help.changelog" : "Changelog", | 51 | "menu.help.changelog" : "Registro de alterações", |
52 | "menu.help.learnMore" : "Learn More", | 52 | "menu.help.learnMore" : "Saiba Mais", |
53 | "menu.help.privacy" : "Declaração de privacidade", | 53 | "menu.help.privacy" : "Declaração de privacidade", |
54 | "menu.help.support" : "Support", | 54 | "menu.help.support" : "Suporte", |
55 | "menu.help.tos" : "Terms of Service", | 55 | "menu.help.tos" : "Termos de Serviço", |
56 | "menu.services" : "Services", | 56 | "menu.services" : "Serviços", |
57 | "menu.services.addNewService" : "Add New Service...", | 57 | "menu.services.addNewService" : "Adicionar Novo Serviço", |
58 | "menu.view" : "View", | 58 | "menu.view" : "Visualizar", |
59 | "menu.view.enterFullScreen" : "Enter Full Screen", | 59 | "menu.view.enterFullScreen" : "Entrar na tela cheia", |
60 | "menu.view.exitFullScreen" : "Exit Full Screen", | 60 | "menu.view.exitFullScreen" : "Sair da tela cheia", |
61 | "menu.view.reloadFranz" : "Reload Franz", | 61 | "menu.view.reloadFranz" : "Recarregar Franz", |
62 | "menu.view.reloadService" : "Reload Service", | 62 | "menu.view.reloadService" : "Reiniciar o serviço", |
63 | "menu.view.resetZoom" : "Actual Size", | 63 | "menu.view.resetZoom" : "Tamanho real", |
64 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | 64 | "menu.view.toggleDevTools" : "alternar ferramentas de desenvolvedor", |
65 | "menu.view.toggleFullScreen" : "Toggle Full Screen", | 65 | "menu.view.toggleFullScreen" : "tela cheia", |
66 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", | 66 | "menu.view.toggleServiceDevTools" : "habilitar ferramentas de serviços de desenvolvedor", |
67 | "menu.view.zoomIn" : "Zoom In", | 67 | "menu.view.zoomIn" : "Ampliar", |
68 | "menu.view.zoomOut" : "Zoom Out", | 68 | "menu.view.zoomOut" : "reduzir", |
69 | "menu.window" : "Window", | 69 | "menu.window" : "Janela", |
70 | "menu.window.close" : "Close", | 70 | "menu.window.close" : "Fechar", |
71 | "menu.window.minimize" : "Minimize", | 71 | "menu.window.minimize" : "Minimizar", |
72 | "password.email.label" : "Endereço de e-mail", | 72 | "password.email.label" : "Endereço de e-mail", |
73 | "password.headline" : "Trocar a senha", | 73 | "password.headline" : "Trocar a senha", |
74 | "password.link.login" : "Fazer login na sua conta", | 74 | "password.link.login" : "Fazer login na sua conta", |
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano", | 116 | "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano", |
117 | "settings.app.form.autoLaunchOnStart" : "Abrir o Franz ao iniciar o sistema", | 117 | "settings.app.form.autoLaunchOnStart" : "Abrir o Franz ao iniciar o sistema", |
118 | "settings.app.form.beta" : "Incluir versões beta", | 118 | "settings.app.form.beta" : "Incluir versões beta", |
119 | "settings.app.form.enableGPUAcceleration" : "Ativar Aceleração de GPU (Unidade de Processamento Gráfico)", | ||
119 | "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu", | 120 | "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu", |
120 | "settings.app.form.enableSpellchecking" : "Ativar correção ortográfica", | 121 | "settings.app.form.enableSpellchecking" : "Ativar correção ortográfica", |
121 | "settings.app.form.enableSystemTray" : "Exibir o Franz na área de notificações", | 122 | "settings.app.form.enableSystemTray" : "Exibir o Franz na área de notificações", |
@@ -125,7 +126,7 @@ | |||
125 | "settings.app.form.runInBackground" : "Manter o Franz no fundo quando fechar a janela", | 126 | "settings.app.form.runInBackground" : "Manter o Franz no fundo quando fechar a janela", |
126 | "settings.app.form.showDisabledServices" : "Mostrar abas de serviços desativados", | 127 | "settings.app.form.showDisabledServices" : "Mostrar abas de serviços desativados", |
127 | "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar Ãcone de mensagem não lida quando as notificações estiverem desativadas", | 128 | "settings.app.form.showMessagesBadgesWhenMuted" : "Mostrar Ãcone de mensagem não lida quando as notificações estiverem desativadas", |
128 | "settings.app.headline" : "Ajustes", | 129 | "settings.app.headline" : "Configurações", |
129 | "settings.app.headlineAdvanced" : "Avançado", | 130 | "settings.app.headlineAdvanced" : "Avançado", |
130 | "settings.app.headlineAppearance" : "Aparência", | 131 | "settings.app.headlineAppearance" : "Aparência", |
131 | "settings.app.headlineGeneral" : "Geral", | 132 | "settings.app.headlineGeneral" : "Geral", |
@@ -240,10 +241,10 @@ | |||
240 | "tabs.item.enableNotification" : "Ativar notificações", | 241 | "tabs.item.enableNotification" : "Ativar notificações", |
241 | "tabs.item.enableService" : "Ativar serviço", | 242 | "tabs.item.enableService" : "Ativar serviço", |
242 | "tabs.item.reload" : "Recarregar", | 243 | "tabs.item.reload" : "Recarregar", |
243 | "validation.email" : "{field} is not valid", | 244 | "validation.email" : "inválido", |
244 | "validation.minLength" : "{field} should be at least {length} characters long", | 245 | "validation.minLength" : "{campo} deve ser pelo menos {comprimento} mais caracteres ", |
245 | "validation.required" : "{field} is required", | 246 | "validation.required" : "{campo} obrigatório", |
246 | "validation.url" : "{field} is not a valid URL", | 247 | "validation.url" : "{campo} essa URL não é válida", |
247 | "welcome.loginButton" : "Entrar na sua conta", | 248 | "welcome.loginButton" : "Entrar na sua conta", |
248 | "welcome.signupButton" : "Criar uma conta grátis", | 249 | "welcome.signupButton" : "Criar uma conta grátis", |
249 | "welcome.slogan" : "Mensagens que funcionam para você" | 250 | "welcome.slogan" : "Mensagens que funcionam para você" |
diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index 9e6d6ac94..44048e505 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json | |||
@@ -26,15 +26,15 @@ | |||
26 | "login.serverLogout" : "A sua sessão expirou, inicie sessão novamente.", | 26 | "login.serverLogout" : "A sua sessão expirou, inicie sessão novamente.", |
27 | "login.submit.label" : "Iniciar sessão", | 27 | "login.submit.label" : "Iniciar sessão", |
28 | "login.tokenExpired" : "A sua sessão expirou, inicie sessão novamente.", | 28 | "login.tokenExpired" : "A sua sessão expirou, inicie sessão novamente.", |
29 | "menu.app.about" : "About Franz", | 29 | "menu.app.about" : "Sobre Franz", |
30 | "menu.app.hide" : "Hide", | 30 | "menu.app.hide" : "Ocultar", |
31 | "menu.app.hideOthers" : "Hide Others", | 31 | "menu.app.hideOthers" : "Ocultar Outros", |
32 | "menu.app.quit" : "Quit", | 32 | "menu.app.quit" : "Sair", |
33 | "menu.app.settings" : "Definições", | 33 | "menu.app.settings" : "Definições", |
34 | "menu.app.unhide" : "Unhide", | 34 | "menu.app.unhide" : "Mostrar", |
35 | "menu.edit" : "Editar", | 35 | "menu.edit" : "Editar", |
36 | "menu.edit.copy" : "Copy", | 36 | "menu.edit.copy" : "Copiar", |
37 | "menu.edit.cut" : "Cut", | 37 | "menu.edit.cut" : "Cortar", |
38 | "menu.edit.delete" : "Apagar", | 38 | "menu.edit.delete" : "Apagar", |
39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | 39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", |
40 | "menu.edit.paste" : "Paste", | 40 | "menu.edit.paste" : "Paste", |
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano", | 116 | "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano", |
117 | "settings.app.form.autoLaunchOnStart" : "Iniciar o Franz com o inÃcio de sessão", | 117 | "settings.app.form.autoLaunchOnStart" : "Iniciar o Franz com o inÃcio de sessão", |
118 | "settings.app.form.beta" : "Incluir versões instáveis (beta)", | 118 | "settings.app.form.beta" : "Incluir versões instáveis (beta)", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu", | 120 | "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu", |
120 | "settings.app.form.enableSpellchecking" : "Ativar verificação ortográfica", | 121 | "settings.app.form.enableSpellchecking" : "Ativar verificação ortográfica", |
121 | "settings.app.form.enableSystemTray" : "Mostrar o Franz na barra do sistema", | 122 | "settings.app.form.enableSystemTray" : "Mostrar o Franz na barra do sistema", |
diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 4d9f7f274..ecebc46ee 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json | |||
@@ -26,49 +26,49 @@ | |||
26 | "login.serverLogout" : "СеÑÑÐ¸Ñ ÑƒÑтарела, пожалуйÑта, войдите Ñнова.", | 26 | "login.serverLogout" : "СеÑÑÐ¸Ñ ÑƒÑтарела, пожалуйÑта, войдите Ñнова.", |
27 | "login.submit.label" : "Вход", | 27 | "login.submit.label" : "Вход", |
28 | "login.tokenExpired" : "СеÑÑÐ¸Ñ ÑƒÑтарела, пожалуйÑта, войдите Ñнова.", | 28 | "login.tokenExpired" : "СеÑÑÐ¸Ñ ÑƒÑтарела, пожалуйÑта, войдите Ñнова.", |
29 | "menu.app.about" : "About Franz", | 29 | "menu.app.about" : "О Franz", |
30 | "menu.app.hide" : "Hide", | 30 | "menu.app.hide" : "Скрыть", |
31 | "menu.app.hideOthers" : "Hide Others", | 31 | "menu.app.hideOthers" : "Скрыть оÑтальные", |
32 | "menu.app.quit" : "Quit", | 32 | "menu.app.quit" : "Выйти", |
33 | "menu.app.settings" : "ÐаÑтройки", | 33 | "menu.app.settings" : "ÐаÑтройки", |
34 | "menu.app.unhide" : "Unhide", | 34 | "menu.app.unhide" : "Показать", |
35 | "menu.edit" : "Редактировать", | 35 | "menu.edit" : "Редактировать", |
36 | "menu.edit.copy" : "Copy", | 36 | "menu.edit.copy" : "Копировать", |
37 | "menu.edit.cut" : "Cut", | 37 | "menu.edit.cut" : "Вырезать", |
38 | "menu.edit.delete" : "Удалить", | 38 | "menu.edit.delete" : "Удалить", |
39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | 39 | "menu.edit.emojiSymbols" : "Ðмодзи и Ñимволы", |
40 | "menu.edit.paste" : "Paste", | 40 | "menu.edit.paste" : "Ð’Ñтавить", |
41 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | 41 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", |
42 | "menu.edit.redo" : "Redo", | 42 | "menu.edit.redo" : "Вернуть", |
43 | "menu.edit.selectAll" : "Select All", | 43 | "menu.edit.selectAll" : "Выделить вÑÑ‘", |
44 | "menu.edit.speech" : "Speech", | 44 | "menu.edit.speech" : "Speech", |
45 | "menu.edit.startDictation" : "Start Dictation", | 45 | "menu.edit.startDictation" : "Start Dictation", |
46 | "menu.edit.startSpeaking" : "Start Speaking", | 46 | "menu.edit.startSpeaking" : "Start Speaking", |
47 | "menu.edit.stopSpeaking" : "Stop Speaking", | 47 | "menu.edit.stopSpeaking" : "Stop Speaking", |
48 | "menu.edit.undo" : "Undo", | 48 | "menu.edit.undo" : "Отменить", |
49 | "menu.file" : "File", | 49 | "menu.file" : "Файл", |
50 | "menu.help" : "Help", | 50 | "menu.help" : "Справка", |
51 | "menu.help.changelog" : "Changelog", | 51 | "menu.help.changelog" : "Журнал изменений", |
52 | "menu.help.learnMore" : "Learn More", | 52 | "menu.help.learnMore" : "Подробнее", |
53 | "menu.help.privacy" : "Политика конфиденциальноÑти", | 53 | "menu.help.privacy" : "Политика конфиденциальноÑти", |
54 | "menu.help.support" : "Support", | 54 | "menu.help.support" : "Поддержка", |
55 | "menu.help.tos" : "Terms of Service", | 55 | "menu.help.tos" : "УÑÐ»Ð¾Ð²Ð¸Ñ Ð¸ÑпользованиÑ", |
56 | "menu.services" : "Services", | 56 | "menu.services" : "Services", |
57 | "menu.services.addNewService" : "Add New Service...", | 57 | "menu.services.addNewService" : "Добавить ÑервиÑ...", |
58 | "menu.view" : "View", | 58 | "menu.view" : "Вид", |
59 | "menu.view.enterFullScreen" : "Enter Full Screen", | 59 | "menu.view.enterFullScreen" : "Ðа веÑÑŒ Ñкран", |
60 | "menu.view.exitFullScreen" : "Exit Full Screen", | 60 | "menu.view.exitFullScreen" : "В окне", |
61 | "menu.view.reloadFranz" : "Reload Franz", | 61 | "menu.view.reloadFranz" : "Перезагрузить Franz", |
62 | "menu.view.reloadService" : "Reload Service", | 62 | "menu.view.reloadService" : "ПерезапуÑтить ÑервиÑ", |
63 | "menu.view.resetZoom" : "Actual Size", | 63 | "menu.view.resetZoom" : "ФактичеÑкий размер", |
64 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | 64 | "menu.view.toggleDevTools" : "Toggle Developer Tools", |
65 | "menu.view.toggleFullScreen" : "Toggle Full Screen", | 65 | "menu.view.toggleFullScreen" : "Toggle Full Screen", |
66 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", | 66 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", |
67 | "menu.view.zoomIn" : "Zoom In", | 67 | "menu.view.zoomIn" : "Увеличить маÑштаб", |
68 | "menu.view.zoomOut" : "Zoom Out", | 68 | "menu.view.zoomOut" : "Уменьшить маÑштаб", |
69 | "menu.window" : "Window", | 69 | "menu.window" : "Окно", |
70 | "menu.window.close" : "Close", | 70 | "menu.window.close" : "Закрыть", |
71 | "menu.window.minimize" : "Minimize", | 71 | "menu.window.minimize" : "Свернуть", |
72 | "password.email.label" : "Email адреÑ", | 72 | "password.email.label" : "Email адреÑ", |
73 | "password.headline" : "СброÑить пароль", | 73 | "password.headline" : "СброÑить пароль", |
74 | "password.link.login" : "Вход", | 74 | "password.link.login" : "Вход", |
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Открывать в фоне", | 116 | "settings.app.form.autoLaunchInBackground" : "Открывать в фоне", |
117 | "settings.app.form.autoLaunchOnStart" : "ЗапуÑкать Franz при Ñтарте", | 117 | "settings.app.form.autoLaunchOnStart" : "ЗапуÑкать Franz при Ñтарте", |
118 | "settings.app.form.beta" : "Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð±ÐµÑ‚Ð° верÑии", | 118 | "settings.app.form.beta" : "Ð’ÐºÐ»ÑŽÑ‡Ð°Ñ Ð±ÐµÑ‚Ð° верÑии", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", | 120 | "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", |
120 | "settings.app.form.enableSpellchecking" : "Включить проверку правопиÑаниÑ", | 121 | "settings.app.form.enableSpellchecking" : "Включить проверку правопиÑаниÑ", |
121 | "settings.app.form.enableSystemTray" : "Показывать Franz в ÑиÑтемном трее", | 122 | "settings.app.form.enableSystemTray" : "Показывать Franz в ÑиÑтемном трее", |
@@ -170,9 +171,9 @@ | |||
170 | "settings.service.form.headlineBadges" : "Значки непрочитанных Ñообщений", | 171 | "settings.service.form.headlineBadges" : "Значки непрочитанных Ñообщений", |
171 | "settings.service.form.headlineGeneral" : "Общие", | 172 | "settings.service.form.headlineGeneral" : "Общие", |
172 | "settings.service.form.headlineNotifications" : "УведомлениÑ", | 173 | "settings.service.form.headlineNotifications" : "УведомлениÑ", |
173 | "settings.service.form.icon" : "Значок пользователÑ", | 174 | "settings.service.form.icon" : "ÐеÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ Ð¸ÐºÐ¾Ð½ÐºÐ°", |
174 | "settings.service.form.iconDelete" : "Удалить", | 175 | "settings.service.form.iconDelete" : "Удалить", |
175 | "settings.service.form.iconUpload" : "Перетащите картинку или нажмите Ñюда", | 176 | "settings.service.form.iconUpload" : "Перетащите картинку или кликните здеÑÑŒ", |
176 | "settings.service.form.indirectMessageInfo" : "Ð’Ñ‹ будете получать ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð²Ñех Ñообщений, не только Ð´Ð»Ñ @username, @channel, @here, ...", | 177 | "settings.service.form.indirectMessageInfo" : "Ð’Ñ‹ будете получать ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð²Ñех Ñообщений, не только Ð´Ð»Ñ @username, @channel, @here, ...", |
177 | "settings.service.form.indirectMessages" : "Показывать значок уведомлений Ð´Ð»Ñ Ð²Ñех новых Ñообщений", | 178 | "settings.service.form.indirectMessages" : "Показывать значок уведомлений Ð´Ð»Ñ Ð²Ñех новых Ñообщений", |
178 | "settings.service.form.isMutedInfo" : "Когда выключено, вÑе звуковые ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ отключены", | 179 | "settings.service.form.isMutedInfo" : "Когда выключено, вÑе звуковые ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð±ÑƒÐ´ÑƒÑ‚ отключены", |
@@ -235,7 +236,7 @@ | |||
235 | "tabs.item.disableAudio" : "Отключить звук", | 236 | "tabs.item.disableAudio" : "Отключить звук", |
236 | "tabs.item.disableNotifications" : "Отключить уведомлениÑ", | 237 | "tabs.item.disableNotifications" : "Отключить уведомлениÑ", |
237 | "tabs.item.disableService" : "Отключить ÑервиÑ", | 238 | "tabs.item.disableService" : "Отключить ÑервиÑ", |
238 | "tabs.item.edit" : "Редактировать", | 239 | "tabs.item.edit" : "Правка", |
239 | "tabs.item.enableAudio" : "Включить аудио", | 240 | "tabs.item.enableAudio" : "Включить аудио", |
240 | "tabs.item.enableNotification" : "Включить уведомлениÑ", | 241 | "tabs.item.enableNotification" : "Включить уведомлениÑ", |
241 | "tabs.item.enableService" : "Включить Ñлужбу", | 242 | "tabs.item.enableService" : "Включить Ñлужбу", |
diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json index 87c1acebc..c43e998a4 100644 --- a/src/i18n/locales/sk.json +++ b/src/i18n/locales/sk.json | |||
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "OtvoriÅ¥ na pozadÃ", | 116 | "settings.app.form.autoLaunchInBackground" : "OtvoriÅ¥ na pozadÃ", |
117 | "settings.app.form.autoLaunchOnStart" : "Spustiť Franz pri štarte", | 117 | "settings.app.form.autoLaunchOnStart" : "Spustiť Franz pri štarte", |
118 | "settings.app.form.beta" : "Vrátane beta verziÃ", | 118 | "settings.app.form.beta" : "Vrátane beta verziÃ", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Zobraz Franz v Menu bare", | 120 | "settings.app.form.enableMenuBar" : "Zobraz Franz v Menu bare", |
120 | "settings.app.form.enableSpellchecking" : "Povoliť zvýraznenie preklepov", | 121 | "settings.app.form.enableSpellchecking" : "Povoliť zvýraznenie preklepov", |
121 | "settings.app.form.enableSystemTray" : "Zobrazovať Franz v systémovej lište", | 122 | "settings.app.form.enableSystemTray" : "Zobrazovať Franz v systémovej lište", |
diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index d93712d88..1f31bc834 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json | |||
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini", | 116 | "settings.app.form.autoLaunchInBackground" : "Otvori u pozadini", |
117 | "settings.app.form.autoLaunchOnStart" : "Pokreni Franz sa sistemom", | 117 | "settings.app.form.autoLaunchOnStart" : "Pokreni Franz sa sistemom", |
118 | "settings.app.form.beta" : "Obuhvati i beta verzije", | 118 | "settings.app.form.beta" : "Obuhvati i beta verzije", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", | 120 | "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", |
120 | "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa", | 121 | "settings.app.form.enableSpellchecking" : "Omogući provjeru pravopisa", |
121 | "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci", | 122 | "settings.app.form.enableSystemTray" : "Prikaži aplikaciju u sustavskoj traci", |
diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 96738d462..d03077d8d 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json | |||
@@ -26,49 +26,49 @@ | |||
26 | "login.serverLogout" : "Oturum süreniz dolmuş, lütfen tekrar giriş yapın.", | 26 | "login.serverLogout" : "Oturum süreniz dolmuş, lütfen tekrar giriş yapın.", |
27 | "login.submit.label" : "Oturum Aç", | 27 | "login.submit.label" : "Oturum Aç", |
28 | "login.tokenExpired" : "Oturum zaman aşımına uğradı, lütfen tekrar giriş yapın.", | 28 | "login.tokenExpired" : "Oturum zaman aşımına uğradı, lütfen tekrar giriş yapın.", |
29 | "menu.app.about" : "About Franz", | 29 | "menu.app.about" : "Franz Hakkında", |
30 | "menu.app.hide" : "Hide", | 30 | "menu.app.hide" : "Gizle", |
31 | "menu.app.hideOthers" : "Hide Others", | 31 | "menu.app.hideOthers" : "DiÄŸerlerini Gizle", |
32 | "menu.app.quit" : "Quit", | 32 | "menu.app.quit" : "Çıkış", |
33 | "menu.app.settings" : "Ayarlar", | 33 | "menu.app.settings" : "Ayarlar", |
34 | "menu.app.unhide" : "Unhide", | 34 | "menu.app.unhide" : "Göster", |
35 | "menu.edit" : "Düzenle", | 35 | "menu.edit" : "Düzenle", |
36 | "menu.edit.copy" : "Copy", | 36 | "menu.edit.copy" : "Kopyala", |
37 | "menu.edit.cut" : "Cut", | 37 | "menu.edit.cut" : "Kes", |
38 | "menu.edit.delete" : "Sil", | 38 | "menu.edit.delete" : "Sil", |
39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | 39 | "menu.edit.emojiSymbols" : "Emoji & Semboller", |
40 | "menu.edit.paste" : "Paste", | 40 | "menu.edit.paste" : "Yapıştır", |
41 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | 41 | "menu.edit.pasteAndMatchStyle" : "Yapıştır ve Stili Eşleştir", |
42 | "menu.edit.redo" : "Redo", | 42 | "menu.edit.redo" : "Yeniden Yap", |
43 | "menu.edit.selectAll" : "Select All", | 43 | "menu.edit.selectAll" : "Hepsini Seç", |
44 | "menu.edit.speech" : "Speech", | 44 | "menu.edit.speech" : "KonuÅŸma", |
45 | "menu.edit.startDictation" : "Start Dictation", | 45 | "menu.edit.startDictation" : "Ä°mlaya BaÅŸla", |
46 | "menu.edit.startSpeaking" : "Start Speaking", | 46 | "menu.edit.startSpeaking" : "KonuÅŸmaya BaÅŸla", |
47 | "menu.edit.stopSpeaking" : "Stop Speaking", | 47 | "menu.edit.stopSpeaking" : "Konuşmayı Bırak\/Durdur", |
48 | "menu.edit.undo" : "Undo", | 48 | "menu.edit.undo" : "Geri al", |
49 | "menu.file" : "File", | 49 | "menu.file" : "Dosya", |
50 | "menu.help" : "Help", | 50 | "menu.help" : "Yardım", |
51 | "menu.help.changelog" : "Changelog", | 51 | "menu.help.changelog" : "Değişim Günlüğü", |
52 | "menu.help.learnMore" : "Learn More", | 52 | "menu.help.learnMore" : "Daha Fazlasını Öğrenin", |
53 | "menu.help.privacy" : "Gizlilik Sözleşmesi", | 53 | "menu.help.privacy" : "Gizlilik Sözleşmesi", |
54 | "menu.help.support" : "Support", | 54 | "menu.help.support" : "Destek", |
55 | "menu.help.tos" : "Terms of Service", | 55 | "menu.help.tos" : "Kullanım Şartları", |
56 | "menu.services" : "Services", | 56 | "menu.services" : "Hizmetler", |
57 | "menu.services.addNewService" : "Add New Service...", | 57 | "menu.services.addNewService" : "Yeni Servis Ekle", |
58 | "menu.view" : "View", | 58 | "menu.view" : "Görünüm", |
59 | "menu.view.enterFullScreen" : "Enter Full Screen", | 59 | "menu.view.enterFullScreen" : "Tam Ekrana Geç", |
60 | "menu.view.exitFullScreen" : "Exit Full Screen", | 60 | "menu.view.exitFullScreen" : "Tam Ekrandan Çık", |
61 | "menu.view.reloadFranz" : "Reload Franz", | 61 | "menu.view.reloadFranz" : "Franz'ı Yeniden Yükle", |
62 | "menu.view.reloadService" : "Reload Service", | 62 | "menu.view.reloadService" : "Servisi Tekrar Yükle", |
63 | "menu.view.resetZoom" : "Actual Size", | 63 | "menu.view.resetZoom" : "Orijinal Boyut", |
64 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | 64 | "menu.view.toggleDevTools" : "Geliştirici Araçlarına Geç", |
65 | "menu.view.toggleFullScreen" : "Toggle Full Screen", | 65 | "menu.view.toggleFullScreen" : "Tam Ekrana Geç", |
66 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", | 66 | "menu.view.toggleServiceDevTools" : "Hizmet Geliştirici Araçlarını Değiştir", |
67 | "menu.view.zoomIn" : "Zoom In", | 67 | "menu.view.zoomIn" : "Yakınlaştır", |
68 | "menu.view.zoomOut" : "Zoom Out", | 68 | "menu.view.zoomOut" : "Uzaklaştır", |
69 | "menu.window" : "Window", | 69 | "menu.window" : "Pencere", |
70 | "menu.window.close" : "Close", | 70 | "menu.window.close" : "Kapat", |
71 | "menu.window.minimize" : "Minimize", | 71 | "menu.window.minimize" : "Simge Durumuna Küçült", |
72 | "password.email.label" : "E-posta adresi", | 72 | "password.email.label" : "E-posta adresi", |
73 | "password.headline" : "Parola sıfırla", | 73 | "password.headline" : "Parola sıfırla", |
74 | "password.link.login" : "Hesabına giriş yap", | 74 | "password.link.login" : "Hesabına giriş yap", |
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Arka planda aç", | 116 | "settings.app.form.autoLaunchInBackground" : "Arka planda aç", |
117 | "settings.app.form.autoLaunchOnStart" : "Franz'ı başlangıçta aç", | 117 | "settings.app.form.autoLaunchOnStart" : "Franz'ı başlangıçta aç", |
118 | "settings.app.form.beta" : "Beta versiyonları dahil et", | 118 | "settings.app.form.beta" : "Beta versiyonları dahil et", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Menü çubuğunda Franz'ı göster", | 120 | "settings.app.form.enableMenuBar" : "Menü çubuğunda Franz'ı göster", |
120 | "settings.app.form.enableSpellchecking" : "Yazım denetimini etkinleştir", | 121 | "settings.app.form.enableSpellchecking" : "Yazım denetimini etkinleştir", |
121 | "settings.app.form.enableSystemTray" : "Franz'ı sistem tepsisinde göster", | 122 | "settings.app.form.enableSystemTray" : "Franz'ı sistem tepsisinde göster", |
@@ -240,10 +241,10 @@ | |||
240 | "tabs.item.enableNotification" : "Bildirimleri etkinleÅŸtir", | 241 | "tabs.item.enableNotification" : "Bildirimleri etkinleÅŸtir", |
241 | "tabs.item.enableService" : "Servisi etkinleÅŸtir", | 242 | "tabs.item.enableService" : "Servisi etkinleÅŸtir", |
242 | "tabs.item.reload" : "Yeniden Yükle", | 243 | "tabs.item.reload" : "Yeniden Yükle", |
243 | "validation.email" : "{field} is not valid", | 244 | "validation.email" : "{alan} geçerli değil", |
244 | "validation.minLength" : "{field} should be at least {length} characters long", | 245 | "validation.minLength" : "{field} en az {length} karakter uzunluğunda olmalı", |
245 | "validation.required" : "{field} is required", | 246 | "validation.required" : "{field} gereklidir", |
246 | "validation.url" : "{field} is not a valid URL", | 247 | "validation.url" : "{field} geçerli bir URL değil", |
247 | "welcome.loginButton" : "Hesabına giriş yap", | 248 | "welcome.loginButton" : "Hesabına giriş yap", |
248 | "welcome.signupButton" : "Ãœcretsiz hesap oluÅŸtur", | 249 | "welcome.signupButton" : "Ãœcretsiz hesap oluÅŸtur", |
249 | "welcome.slogan" : "Sizin için çalışan mesajlaşma" | 250 | "welcome.slogan" : "Sizin için çalışan mesajlaşma" |
diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json index f7c946436..3f732b896 100644 --- a/src/i18n/locales/uk.json +++ b/src/i18n/locales/uk.json | |||
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "Відкрити у фоновому режимі", | 116 | "settings.app.form.autoLaunchInBackground" : "Відкрити у фоновому режимі", |
117 | "settings.app.form.autoLaunchOnStart" : "ЗапуÑкати Franz на початку", | 117 | "settings.app.form.autoLaunchOnStart" : "ЗапуÑкати Franz на початку", |
118 | "settings.app.form.beta" : "Включити бета-верÑÑ–Ñ—", | 118 | "settings.app.form.beta" : "Включити бета-верÑÑ–Ñ—", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Відображати Franz в панелі головного меню", | 120 | "settings.app.form.enableMenuBar" : "Відображати Franz в панелі головного меню", |
120 | "settings.app.form.enableSpellchecking" : "Увімкнути перевірку орфографії", | 121 | "settings.app.form.enableSpellchecking" : "Увімкнути перевірку орфографії", |
121 | "settings.app.form.enableSystemTray" : "Показувати Franz у ÑиÑтемному лотку", | 122 | "settings.app.form.enableSystemTray" : "Показувати Franz у ÑиÑтемному лотку", |
diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index 71e6d65bc..3bbcc8288 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json | |||
@@ -16,7 +16,7 @@ | |||
16 | "invite.name.label" : "å稱", | 16 | "invite.name.label" : "å稱", |
17 | "invite.skip.label" : "我想ç¨å¾Œå†åš", | 17 | "invite.skip.label" : "我想ç¨å¾Œå†åš", |
18 | "invite.submit.label" : "é€å‡ºé‚€è«‹", | 18 | "invite.submit.label" : "é€å‡ºé‚€è«‹", |
19 | "invite.successInfo" : "Invitations sent successfully", | 19 | "invite.successInfo" : "註冊請求已é€å‡º", |
20 | "login.email.label" : "é›»å郵件地å€", | 20 | "login.email.label" : "é›»å郵件地å€", |
21 | "login.headline" : "登入", | 21 | "login.headline" : "登入", |
22 | "login.invalidCredentials" : "é›»å郵件或密碼有誤", | 22 | "login.invalidCredentials" : "é›»å郵件或密碼有誤", |
@@ -26,23 +26,23 @@ | |||
26 | "login.serverLogout" : "您的登入期間已éŽæœŸï¼Œè«‹é‡æ–°ç™»éŒ„", | 26 | "login.serverLogout" : "您的登入期間已éŽæœŸï¼Œè«‹é‡æ–°ç™»éŒ„", |
27 | "login.submit.label" : "登入", | 27 | "login.submit.label" : "登入", |
28 | "login.tokenExpired" : "您的登入已éŽæœŸï¼Œè«‹é‡æ–°ç™»å…¥ã€‚", | 28 | "login.tokenExpired" : "您的登入已éŽæœŸï¼Œè«‹é‡æ–°ç™»å…¥ã€‚", |
29 | "menu.app.about" : "About Franz", | 29 | "menu.app.about" : "關於Franz", |
30 | "menu.app.hide" : "Hide", | 30 | "menu.app.hide" : "éš±è—", |
31 | "menu.app.hideOthers" : "Hide Others", | 31 | "menu.app.hideOthers" : "éš±è—其他", |
32 | "menu.app.quit" : "Quit", | 32 | "menu.app.quit" : "çµæŸ", |
33 | "menu.app.settings" : "è¨å®š", | 33 | "menu.app.settings" : "è¨å®š", |
34 | "menu.app.unhide" : "Unhide", | 34 | "menu.app.unhide" : "顯示", |
35 | "menu.edit" : "編輯", | 35 | "menu.edit" : "編輯", |
36 | "menu.edit.copy" : "Copy", | 36 | "menu.edit.copy" : "æ‹·è²", |
37 | "menu.edit.cut" : "Cut", | 37 | "menu.edit.cut" : "剪下", |
38 | "menu.edit.delete" : "Delete", | 38 | "menu.edit.delete" : "刪除", |
39 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | 39 | "menu.edit.emojiSymbols" : "貼紙和表情包", |
40 | "menu.edit.paste" : "Paste", | 40 | "menu.edit.paste" : "貼上", |
41 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | 41 | "menu.edit.pasteAndMatchStyle" : "貼上并匹é…樣å¼", |
42 | "menu.edit.redo" : "Redo", | 42 | "menu.edit.redo" : "é‡ä¾†", |
43 | "menu.edit.selectAll" : "Select All", | 43 | "menu.edit.selectAll" : "é¸æ“‡æ‰€æœ‰", |
44 | "menu.edit.speech" : "Speech", | 44 | "menu.edit.speech" : "朗讀", |
45 | "menu.edit.startDictation" : "Start Dictation", | 45 | "menu.edit.startDictation" : "開始è½å¯«", |
46 | "menu.edit.startSpeaking" : "Start Speaking", | 46 | "menu.edit.startSpeaking" : "Start Speaking", |
47 | "menu.edit.stopSpeaking" : "Stop Speaking", | 47 | "menu.edit.stopSpeaking" : "Stop Speaking", |
48 | "menu.edit.undo" : "Undo", | 48 | "menu.edit.undo" : "Undo", |
@@ -116,6 +116,7 @@ | |||
116 | "settings.app.form.autoLaunchInBackground" : "在背景開啟", | 116 | "settings.app.form.autoLaunchInBackground" : "在背景開啟", |
117 | "settings.app.form.autoLaunchOnStart" : "開機時啟動Franz", | 117 | "settings.app.form.autoLaunchOnStart" : "開機時啟動Franz", |
118 | "settings.app.form.beta" : "包å«æ¸¬è©¦ç‰ˆ", | 118 | "settings.app.form.beta" : "包å«æ¸¬è©¦ç‰ˆ", |
119 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
119 | "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", | 120 | "settings.app.form.enableMenuBar" : "Show Franz in Menu Bar", |
120 | "settings.app.form.enableSpellchecking" : "啟用拼å—檢查", | 121 | "settings.app.form.enableSpellchecking" : "啟用拼å—檢查", |
121 | "settings.app.form.enableSystemTray" : "顯示Franz在系統列", | 122 | "settings.app.form.enableSystemTray" : "顯示Franz在系統列", |
@@ -171,7 +172,7 @@ | |||
171 | "settings.service.form.headlineGeneral" : "一般", | 172 | "settings.service.form.headlineGeneral" : "一般", |
172 | "settings.service.form.headlineNotifications" : "Notifications", | 173 | "settings.service.form.headlineNotifications" : "Notifications", |
173 | "settings.service.form.icon" : "Custom icon", | 174 | "settings.service.form.icon" : "Custom icon", |
174 | "settings.service.form.iconDelete" : "Delete", | 175 | "settings.service.form.iconDelete" : "刪除", |
175 | "settings.service.form.iconUpload" : "Drop your image, or click here", | 176 | "settings.service.form.iconUpload" : "Drop your image, or click here", |
176 | "settings.service.form.indirectMessageInfo" : "æ‚¨å°‡æ”¶åˆ°æœ‰é—œé »é“ä¸æ‰€æœ‰æ–°æ¶ˆæ¯çš„通知,而ä¸åƒ…僅是@username,@channel,@here,...", | 177 | "settings.service.form.indirectMessageInfo" : "æ‚¨å°‡æ”¶åˆ°æœ‰é—œé »é“ä¸æ‰€æœ‰æ–°æ¶ˆæ¯çš„通知,而ä¸åƒ…僅是@username,@channel,@here,...", |
177 | "settings.service.form.indirectMessages" : "顯示所有新消æ¯çš„消æ¯æ¨™èªŒ", | 178 | "settings.service.form.indirectMessages" : "顯示所有新消æ¯çš„消æ¯æ¨™èªŒ", |
diff --git a/src/index.js b/src/index.js index 897943a85..5ba901b89 100644 --- a/src/index.js +++ b/src/index.js | |||
@@ -12,6 +12,8 @@ import handleDeepLink from './electron/deepLinking'; | |||
12 | import { appId } from './package.json'; // eslint-disable-line import/no-unresolved | 12 | import { appId } from './package.json'; // eslint-disable-line import/no-unresolved |
13 | import './electron/exception'; | 13 | import './electron/exception'; |
14 | 14 | ||
15 | const debug = require('debug')('App'); | ||
16 | |||
15 | // Keep a global reference of the window object, if you don't, the window will | 17 | // Keep a global reference of the window object, if you don't, the window will |
16 | // be closed automatically when the JavaScript object is garbage collected. | 18 | // be closed automatically when the JavaScript object is garbage collected. |
17 | let mainWindow; | 19 | let mainWindow; |
@@ -57,6 +59,12 @@ if (isLinux && ['Pantheon', 'Unity:Unity7'].indexOf(process.env.XDG_CURRENT_DESK | |||
57 | // Initialize Settings | 59 | // Initialize Settings |
58 | const settings = new Settings(); | 60 | const settings = new Settings(); |
59 | 61 | ||
62 | // Disable GPU acceleration | ||
63 | if (!settings.get('enableGPUAcceleration')) { | ||
64 | debug('Disable GPU Acceleration'); | ||
65 | app.disableHardwareAcceleration(); | ||
66 | } | ||
67 | |||
60 | const createWindow = () => { | 68 | const createWindow = () => { |
61 | // Remember window size | 69 | // Remember window size |
62 | const mainWindowState = windowStateKeeper({ | 70 | const mainWindowState = windowStateKeeper({ |
diff --git a/src/lib/Menu.js b/src/lib/Menu.js index 5a05e47b3..19b8d5b15 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js | |||
@@ -415,7 +415,7 @@ const _titleBarTemplateFactory = intl => [ | |||
415 | label: app.mainWindow.isFullScreen() // label doesn't work, gets overridden by Electron | 415 | label: app.mainWindow.isFullScreen() // label doesn't work, gets overridden by Electron |
416 | ? intl.formatMessage(menuItems.exitFullScreen) | 416 | ? intl.formatMessage(menuItems.exitFullScreen) |
417 | : intl.formatMessage(menuItems.enterFullScreen), | 417 | : intl.formatMessage(menuItems.enterFullScreen), |
418 | accelerator: `${ctrlKey}+F`, | 418 | accelerator: 'F11', |
419 | click(menuItem, browserWindow) { | 419 | click(menuItem, browserWindow) { |
420 | browserWindow.setFullScreen(!browserWindow.isFullScreen()); | 420 | browserWindow.setFullScreen(!browserWindow.isFullScreen()); |
421 | }, | 421 | }, |
@@ -431,14 +431,14 @@ const _titleBarTemplateFactory = intl => [ | |||
431 | submenu: [ | 431 | submenu: [ |
432 | { | 432 | { |
433 | label: intl.formatMessage(menuItems.minimize), | 433 | label: intl.formatMessage(menuItems.minimize), |
434 | accelerator: 'Alt+M', | 434 | accelerator: 'Ctrl+M', |
435 | click(menuItem, browserWindow) { | 435 | click(menuItem, browserWindow) { |
436 | browserWindow.minimize(); | 436 | browserWindow.minimize(); |
437 | }, | 437 | }, |
438 | }, | 438 | }, |
439 | { | 439 | { |
440 | label: intl.formatMessage(menuItems.close), | 440 | label: intl.formatMessage(menuItems.close), |
441 | accelerator: 'Alt+W', | 441 | accelerator: 'Ctrl+W', |
442 | click(menuItem, browserWindow) { | 442 | click(menuItem, browserWindow) { |
443 | browserWindow.close(); | 443 | browserWindow.close(); |
444 | }, | 444 | }, |
@@ -450,7 +450,7 @@ const _titleBarTemplateFactory = intl => [ | |||
450 | submenu: [ | 450 | submenu: [ |
451 | { | 451 | { |
452 | label: intl.formatMessage(menuItems.learnMore), | 452 | label: intl.formatMessage(menuItems.learnMore), |
453 | click() { shell.openExternal('http://meetfranz.com'); }, | 453 | click() { shell.openExternal('https://meetfranz.com'); }, |
454 | }, | 454 | }, |
455 | { | 455 | { |
456 | label: intl.formatMessage(menuItems.changelog), | 456 | label: intl.formatMessage(menuItems.changelog), |
@@ -461,7 +461,7 @@ const _titleBarTemplateFactory = intl => [ | |||
461 | }, | 461 | }, |
462 | { | 462 | { |
463 | label: intl.formatMessage(menuItems.support), | 463 | label: intl.formatMessage(menuItems.support), |
464 | click() { shell.openExternal('http://meetfranz.com/support'); }, | 464 | click() { shell.openExternal('https://meetfranz.com/support'); }, |
465 | }, | 465 | }, |
466 | { | 466 | { |
467 | type: 'separator', | 467 | type: 'separator', |
@@ -643,10 +643,7 @@ export default class FranzMenu { | |||
643 | }, | 643 | }, |
644 | { | 644 | { |
645 | label: intl.formatMessage(menuItems.quit), | 645 | label: intl.formatMessage(menuItems.quit), |
646 | accelerator: 'Alt+F4', | 646 | role: 'quit', |
647 | click: () => { | ||
648 | app.quit(); | ||
649 | }, | ||
650 | }, | 647 | }, |
651 | ]; | 648 | ]; |
652 | 649 | ||
diff --git a/src/models/Settings.js b/src/models/Settings.js index e39b63087..0e4c59057 100644 --- a/src/models/Settings.js +++ b/src/models/Settings.js | |||
@@ -2,19 +2,29 @@ import { observable, extendObservable } from 'mobx'; | |||
2 | import { DEFAULT_APP_SETTINGS } from '../config'; | 2 | import { DEFAULT_APP_SETTINGS } from '../config'; |
3 | 3 | ||
4 | export default class Settings { | 4 | export default class Settings { |
5 | @observable autoLaunchInBackground = DEFAULT_APP_SETTINGS.autoLaunchInBackground; | 5 | @observable app = DEFAULT_APP_SETTINGS |
6 | @observable runInBackground = DEFAULT_APP_SETTINGS.runInBackground; | ||
7 | @observable enableSystemTray = DEFAULT_APP_SETTINGS.enableSystemTray; | ||
8 | @observable minimizeToSystemTray = DEFAULT_APP_SETTINGS.minimizeToSystemTray; | ||
9 | @observable showDisabledServices = DEFAULT_APP_SETTINGS.showDisabledServices; | ||
10 | @observable showMessageBadgeWhenMuted = DEFAULT_APP_SETTINGS.showMessageBadgeWhenMuted; | ||
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 | 6 | ||
16 | constructor(data) { | 7 | @observable service = { |
17 | Object.assign(this, data); | 8 | activeService: '', |
9 | } | ||
10 | |||
11 | @observable group = { | ||
12 | collapsed: [], | ||
13 | disabled: [], | ||
14 | } | ||
15 | |||
16 | @observable stats = { | ||
17 | appStarts: 0, | ||
18 | } | ||
19 | |||
20 | @observable migration = {} | ||
21 | |||
22 | constructor({ app, service, group, stats, migration }) { | ||
23 | Object.assign(this.app, app); | ||
24 | Object.assign(this.service, service); | ||
25 | Object.assign(this.group, group); | ||
26 | Object.assign(this.stats, stats); | ||
27 | Object.assign(this.migration, migration); | ||
18 | } | 28 | } |
19 | 29 | ||
20 | update(data) { | 30 | update(data) { |
diff --git a/src/models/User.js b/src/models/User.js index 2e5df4795..3e4aa187d 100644 --- a/src/models/User.js +++ b/src/models/User.js | |||
@@ -15,6 +15,7 @@ export default class User { | |||
15 | @observable donor = {}; | 15 | @observable donor = {}; |
16 | @observable isDonor = false; | 16 | @observable isDonor = false; |
17 | @observable isMiner = false; | 17 | @observable isMiner = false; |
18 | @observable locale = false; | ||
18 | 19 | ||
19 | constructor(data) { | 20 | constructor(data) { |
20 | if (!data.id) { | 21 | if (!data.id) { |
@@ -33,5 +34,6 @@ export default class User { | |||
33 | this.isDonor = data.isDonor || this.isDonor; | 34 | this.isDonor = data.isDonor || this.isDonor; |
34 | this.isSubscriptionOwner = data.isSubscriptionOwner || this.isSubscriptionOwner; | 35 | this.isSubscriptionOwner = data.isSubscriptionOwner || this.isSubscriptionOwner; |
35 | this.isMiner = data.isMiner || this.isMiner; | 36 | this.isMiner = data.isMiner || this.isMiner; |
37 | this.locale = data.locale || this.locale; | ||
36 | } | 38 | } |
37 | } | 39 | } |
diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index 4ac8325d4..38edff1b4 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js | |||
@@ -15,8 +15,12 @@ import { gaEvent } from '../lib/analytics'; | |||
15 | 15 | ||
16 | import { getServiceIdsFromPartitions, removeServicePartitionDirectory } from '../helpers/service-helpers.js'; | 16 | import { getServiceIdsFromPartitions, removeServicePartitionDirectory } from '../helpers/service-helpers.js'; |
17 | 17 | ||
18 | const debug = require('debug')('AppStore'); | ||
19 | |||
18 | const { app } = remote; | 20 | const { app } = remote; |
19 | 21 | ||
22 | const mainWindow = remote.getCurrentWindow(); | ||
23 | |||
20 | const defaultLocale = DEFAULT_APP_SETTINGS.locale; | 24 | const defaultLocale = DEFAULT_APP_SETTINGS.locale; |
21 | const autoLauncher = new AutoLaunch({ | 25 | const autoLauncher = new AutoLaunch({ |
22 | name: 'Franz', | 26 | name: 'Franz', |
@@ -48,6 +52,8 @@ export default class AppStore extends Store { | |||
48 | 52 | ||
49 | @observable isClearingAllCache = false; | 53 | @observable isClearingAllCache = false; |
50 | 54 | ||
55 | @observable isFullScreen = mainWindow.isFullScreen(); | ||
56 | |||
51 | constructor(...args) { | 57 | constructor(...args) { |
52 | super(...args); | 58 | super(...args); |
53 | 59 | ||
@@ -80,6 +86,10 @@ export default class AppStore extends Store { | |||
80 | window.addEventListener('online', () => { this.isOnline = true; }); | 86 | window.addEventListener('online', () => { this.isOnline = true; }); |
81 | window.addEventListener('offline', () => { this.isOnline = false; }); | 87 | window.addEventListener('offline', () => { this.isOnline = false; }); |
82 | 88 | ||
89 | mainWindow.on('enter-full-screen', () => { this.isFullScreen = true; }); | ||
90 | mainWindow.on('leave-full-screen', () => { this.isFullScreen = false; }); | ||
91 | |||
92 | |||
83 | this.isOnline = navigator.onLine; | 93 | this.isOnline = navigator.onLine; |
84 | 94 | ||
85 | // Check if Franz should launch on start | 95 | // Check if Franz should launch on start |
@@ -157,7 +167,7 @@ export default class AppStore extends Store { | |||
157 | 167 | ||
158 | // Actions | 168 | // Actions |
159 | @action _notify({ title, options, notificationId, serviceId = null }) { | 169 | @action _notify({ title, options, notificationId, serviceId = null }) { |
160 | if (this.stores.settings.all.isAppMuted) return; | 170 | if (this.stores.settings.all.app.isAppMuted) return; |
161 | 171 | ||
162 | const notification = new window.Notification(title, options); | 172 | const notification = new window.Notification(title, options); |
163 | notification.onclick = (e) => { | 173 | notification.onclick = (e) => { |
@@ -170,8 +180,6 @@ export default class AppStore extends Store { | |||
170 | 180 | ||
171 | this.actions.service.setActive({ serviceId }); | 181 | this.actions.service.setActive({ serviceId }); |
172 | 182 | ||
173 | const mainWindow = remote.getCurrentWindow(); | ||
174 | |||
175 | if (isWindows) { | 183 | if (isWindows) { |
176 | mainWindow.restore(); | 184 | mainWindow.restore(); |
177 | } else if (isLinux) { | 185 | } else if (isLinux) { |
@@ -238,14 +246,15 @@ export default class AppStore extends Store { | |||
238 | this.isSystemMuteOverridden = overrideSystemMute; | 246 | this.isSystemMuteOverridden = overrideSystemMute; |
239 | 247 | ||
240 | this.actions.settings.update({ | 248 | this.actions.settings.update({ |
241 | settings: { | 249 | type: 'app', |
250 | data: { | ||
242 | isAppMuted: isMuted, | 251 | isAppMuted: isMuted, |
243 | }, | 252 | }, |
244 | }); | 253 | }); |
245 | } | 254 | } |
246 | 255 | ||
247 | @action _toggleMuteApp() { | 256 | @action _toggleMuteApp() { |
248 | this._muteApp({ isMuted: !this.stores.settings.all.isAppMuted }); | 257 | this._muteApp({ isMuted: !this.stores.settings.all.app.isAppMuted }); |
249 | } | 258 | } |
250 | 259 | ||
251 | @action async _clearAllCache() { | 260 | @action async _clearAllCache() { |
@@ -279,13 +288,19 @@ export default class AppStore extends Store { | |||
279 | } | 288 | } |
280 | 289 | ||
281 | _setLocale() { | 290 | _setLocale() { |
282 | const locale = this.stores.settings.all.locale; | 291 | let locale; |
292 | if (this.stores.user.isLoggedIn) { | ||
293 | locale = this.stores.user.data.locale; | ||
294 | } | ||
295 | |||
283 | 296 | ||
284 | if (locale && Object.prototype.hasOwnProperty.call(locales, locale) && locale !== this.locale) { | 297 | if (locale && Object.prototype.hasOwnProperty.call(locales, locale) && locale !== this.locale) { |
285 | this.locale = locale; | 298 | this.locale = locale; |
286 | } else if (!locale) { | 299 | } else if (!locale) { |
287 | this.locale = this._getDefaultLocale(); | 300 | this.locale = this._getDefaultLocale(); |
288 | } | 301 | } |
302 | |||
303 | debug(`Set locale to "${this.locale}"`); | ||
289 | } | 304 | } |
290 | 305 | ||
291 | _getDefaultLocale() { | 306 | _getDefaultLocale() { |
@@ -327,8 +342,9 @@ export default class AppStore extends Store { | |||
327 | // Helpers | 342 | // Helpers |
328 | _appStartsCounter() { | 343 | _appStartsCounter() { |
329 | this.actions.settings.update({ | 344 | this.actions.settings.update({ |
330 | settings: { | 345 | type: 'stats', |
331 | appStarts: (this.stores.settings.all.appStarts || 0) + 1, | 346 | data: { |
347 | appStarts: (this.stores.settings.all.stats.appStarts || 0) + 1, | ||
332 | }, | 348 | }, |
333 | }); | 349 | }); |
334 | } | 350 | } |
@@ -336,7 +352,8 @@ export default class AppStore extends Store { | |||
336 | async _autoStart() { | 352 | async _autoStart() { |
337 | this.autoLaunchOnStart = await this._checkAutoStart(); | 353 | this.autoLaunchOnStart = await this._checkAutoStart(); |
338 | 354 | ||
339 | if (this.stores.settings.all.appStarts === 1) { | 355 | if (this.stores.settings.all.stats.appStarts === 1) { |
356 | debug('Set app to launch on start'); | ||
340 | this.actions.app.launchOnStartup({ | 357 | this.actions.app.launchOnStartup({ |
341 | enable: true, | 358 | enable: true, |
342 | }); | 359 | }); |
@@ -349,7 +366,7 @@ export default class AppStore extends Store { | |||
349 | 366 | ||
350 | _systemDND() { | 367 | _systemDND() { |
351 | const dnd = getDoNotDisturb(); | 368 | const dnd = getDoNotDisturb(); |
352 | if (dnd !== this.stores.settings.all.isAppMuted && !this.isSystemMuteOverridden) { | 369 | if (dnd !== this.stores.settings.all.app.isAppMuted && !this.isSystemMuteOverridden) { |
353 | this.actions.app.muteApp({ | 370 | this.actions.app.muteApp({ |
354 | isMuted: dnd, | 371 | isMuted: dnd, |
355 | overrideSystemMute: false, | 372 | overrideSystemMute: false, |
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index f7d92b1ff..ccb85421a 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js | |||
@@ -1,8 +1,5 @@ | |||
1 | // import { remote } from 'electron'; | 1 | import { action, reaction, computed, observable } from 'mobx'; |
2 | import { action, computed, observable } from 'mobx'; | ||
3 | import { debounce, remove } from 'lodash'; | 2 | import { debounce, remove } from 'lodash'; |
4 | // import path from 'path'; | ||
5 | // import fs from 'fs-extra'; | ||
6 | 3 | ||
7 | import Store from './lib/Store'; | 4 | import Store from './lib/Store'; |
8 | import Request from './lib/Request'; | 5 | import Request from './lib/Request'; |
@@ -63,13 +60,20 @@ export default class ServicesStore extends Store { | |||
63 | this._mapActiveServiceToServiceModelReaction.bind(this), | 60 | this._mapActiveServiceToServiceModelReaction.bind(this), |
64 | this._saveActiveService.bind(this), | 61 | this._saveActiveService.bind(this), |
65 | this._logoutReaction.bind(this), | 62 | this._logoutReaction.bind(this), |
66 | this._shareSettingsWithServiceProcess.bind(this), | ||
67 | ]); | 63 | ]); |
68 | 64 | ||
69 | // Just bind this | 65 | // Just bind this |
70 | this._initializeServiceRecipeInWebview.bind(this); | 66 | this._initializeServiceRecipeInWebview.bind(this); |
71 | } | 67 | } |
72 | 68 | ||
69 | setup() { | ||
70 | // Single key reactions | ||
71 | reaction( | ||
72 | () => this.stores.settings.all.app.enableSpellchecking, | ||
73 | () => this._shareSettingsWithServiceProcess(), | ||
74 | ); | ||
75 | } | ||
76 | |||
73 | @computed get all() { | 77 | @computed get all() { |
74 | if (this.stores.user.isLoggedIn) { | 78 | if (this.stores.user.isLoggedIn) { |
75 | const services = this.allServicesRequest.execute().result; | 79 | const services = this.allServicesRequest.execute().result; |
@@ -86,13 +90,13 @@ export default class ServicesStore extends Store { | |||
86 | } | 90 | } |
87 | 91 | ||
88 | @computed get allDisplayed() { | 92 | @computed get allDisplayed() { |
89 | return this.stores.settings.all.showDisabledServices ? this.all : this.enabled; | 93 | return this.stores.settings.all.app.showDisabledServices ? this.all : this.enabled; |
90 | } | 94 | } |
91 | 95 | ||
92 | // This is just used to avoid unnecessary rerendering of resource-heavy webviews | 96 | // This is just used to avoid unnecessary rerendering of resource-heavy webviews |
93 | @computed get allDisplayedUnordered() { | 97 | @computed get allDisplayedUnordered() { |
94 | const services = this.allServicesRequest.execute().result || []; | 98 | const services = this.allServicesRequest.execute().result || []; |
95 | return this.stores.settings.all.showDisabledServices ? services : services.filter(service => service.isEnabled); | 99 | return this.stores.settings.all.app.showDisabledServices ? services : services.filter(service => service.isEnabled); |
96 | } | 100 | } |
97 | 101 | ||
98 | @computed get filtered() { | 102 | @computed get filtered() { |
@@ -334,7 +338,7 @@ export default class ServicesStore extends Store { | |||
334 | }); | 338 | }); |
335 | } else if (channel === 'notification') { | 339 | } else if (channel === 'notification') { |
336 | const options = args[0].options; | 340 | const options = args[0].options; |
337 | if (service.recipe.hasNotificationSound || service.isMuted || this.stores.settings.all.isAppMuted) { | 341 | if (service.recipe.hasNotificationSound || service.isMuted || this.stores.settings.all.app.isAppMuted) { |
338 | Object.assign(options, { | 342 | Object.assign(options, { |
339 | silent: true, | 343 | silent: true, |
340 | }); | 344 | }); |
@@ -434,7 +438,7 @@ export default class ServicesStore extends Store { | |||
434 | } | 438 | } |
435 | 439 | ||
436 | @action _reorder({ oldIndex, newIndex }) { | 440 | @action _reorder({ oldIndex, newIndex }) { |
437 | const showDisabledServices = this.stores.settings.all.showDisabledServices; | 441 | const showDisabledServices = this.stores.settings.all.app.showDisabledServices; |
438 | const oldEnabledSortIndex = showDisabledServices ? oldIndex : this.all.indexOf(this.enabled[oldIndex]); | 442 | const oldEnabledSortIndex = showDisabledServices ? oldIndex : this.all.indexOf(this.enabled[oldIndex]); |
439 | const newEnabledSortIndex = showDisabledServices ? newIndex : this.all.indexOf(this.enabled[newIndex]); | 443 | const newEnabledSortIndex = showDisabledServices ? newIndex : this.all.indexOf(this.enabled[newIndex]); |
440 | 444 | ||
@@ -512,7 +516,8 @@ export default class ServicesStore extends Store { | |||
512 | 516 | ||
513 | if (service) { | 517 | if (service) { |
514 | this.actions.settings.update({ | 518 | this.actions.settings.update({ |
515 | settings: { | 519 | type: 'service', |
520 | data: { | ||
516 | activeService: service.id, | 521 | activeService: service.id, |
517 | }, | 522 | }, |
518 | }); | 523 | }); |
@@ -520,7 +525,7 @@ export default class ServicesStore extends Store { | |||
520 | } | 525 | } |
521 | 526 | ||
522 | _mapActiveServiceToServiceModelReaction() { | 527 | _mapActiveServiceToServiceModelReaction() { |
523 | const { activeService } = this.stores.settings.all; | 528 | const { activeService } = this.stores.settings.all.service; |
524 | if (this.allDisplayed.length) { | 529 | if (this.allDisplayed.length) { |
525 | this.allDisplayed.map(service => Object.assign(service, { | 530 | this.allDisplayed.map(service => Object.assign(service, { |
526 | isActive: activeService ? activeService === service.id : this.allDisplayed[0].id === service.id, | 531 | isActive: activeService ? activeService === service.id : this.allDisplayed[0].id === service.id, |
@@ -529,7 +534,7 @@ export default class ServicesStore extends Store { | |||
529 | } | 534 | } |
530 | 535 | ||
531 | _getUnreadMessageCountReaction() { | 536 | _getUnreadMessageCountReaction() { |
532 | const showMessageBadgeWhenMuted = this.stores.settings.all.showMessageBadgeWhenMuted; | 537 | const showMessageBadgeWhenMuted = this.stores.settings.all.app.showMessageBadgeWhenMuted; |
533 | const showMessageBadgesEvenWhenMuted = this.stores.ui.showMessageBadgesEvenWhenMuted; | 538 | const showMessageBadgesEvenWhenMuted = this.stores.ui.showMessageBadgesEvenWhenMuted; |
534 | 539 | ||
535 | const unreadDirectMessageCount = this.allDisplayed | 540 | const unreadDirectMessageCount = this.allDisplayed |
@@ -553,7 +558,10 @@ export default class ServicesStore extends Store { | |||
553 | 558 | ||
554 | _logoutReaction() { | 559 | _logoutReaction() { |
555 | if (!this.stores.user.isLoggedIn) { | 560 | if (!this.stores.user.isLoggedIn) { |
556 | this.actions.settings.remove({ key: 'activeService' }); | 561 | this.actions.settings.remove({ |
562 | type: 'service', | ||
563 | key: 'activeService', | ||
564 | }); | ||
557 | this.allServicesRequest.invalidate().reset(); | 565 | this.allServicesRequest.invalidate().reset(); |
558 | } | 566 | } |
559 | } | 567 | } |
@@ -561,7 +569,7 @@ export default class ServicesStore extends Store { | |||
561 | _shareSettingsWithServiceProcess() { | 569 | _shareSettingsWithServiceProcess() { |
562 | this.actions.service.sendIPCMessageToAllServices({ | 570 | this.actions.service.sendIPCMessageToAllServices({ |
563 | channel: 'settings-update', | 571 | channel: 'settings-update', |
564 | args: this.stores.settings.all, | 572 | args: this.stores.settings.all.app, |
565 | }); | 573 | }); |
566 | } | 574 | } |
567 | 575 | ||
diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js index b7d803398..d8519c609 100644 --- a/src/stores/SettingsStore.js +++ b/src/stores/SettingsStore.js | |||
@@ -1,12 +1,17 @@ | |||
1 | import { ipcRenderer } from 'electron'; | 1 | import { action, computed, observable } from 'mobx'; |
2 | import { action, computed } from 'mobx'; | ||
3 | import localStorage from 'mobx-localstorage'; | 2 | import localStorage from 'mobx-localstorage'; |
4 | 3 | ||
5 | import Store from './lib/Store'; | 4 | import Store from './lib/Store'; |
6 | import { gaEvent } from '../lib/analytics'; | ||
7 | import SettingsModel from '../models/Settings'; | 5 | import SettingsModel from '../models/Settings'; |
6 | import Request from './lib/Request'; | ||
7 | import CachedRequest from './lib/CachedRequest'; | ||
8 | |||
9 | const debug = require('debug')('SettingsStore'); | ||
8 | 10 | ||
9 | export default class SettingsStore extends Store { | 11 | export default class SettingsStore extends Store { |
12 | @observable appSettingsRequest = new CachedRequest(this.api.local, 'getAppSettings'); | ||
13 | @observable updateAppSettingsRequest = new Request(this.api.local, 'updateAppSettings'); | ||
14 | |||
10 | constructor(...args) { | 15 | constructor(...args) { |
11 | super(...args); | 16 | super(...args); |
12 | 17 | ||
@@ -15,36 +20,89 @@ export default class SettingsStore extends Store { | |||
15 | this.actions.settings.remove.listen(this._remove.bind(this)); | 20 | this.actions.settings.remove.listen(this._remove.bind(this)); |
16 | } | 21 | } |
17 | 22 | ||
18 | setup() { | 23 | async setup() { |
19 | this._shareSettingsWithMainProcess(); | 24 | // We need to wait until `appSettingsRequest` has been executed once, otherwise we can't patch the result. If we don't wait we'd run into an issue with mobx not reacting to changes of previously not existing keys |
25 | await this.appSettingsRequest._promise; | ||
26 | this._migrate(); | ||
20 | } | 27 | } |
21 | 28 | ||
22 | @computed get all() { | 29 | @computed get all() { |
23 | return new SettingsModel(localStorage.getItem('app') || {}); | 30 | return new SettingsModel({ |
31 | app: this.appSettingsRequest.execute().result || {}, | ||
32 | service: localStorage.getItem('service') || {}, | ||
33 | group: localStorage.getItem('group') || {}, | ||
34 | stats: localStorage.getItem('stats') || {}, | ||
35 | migration: localStorage.getItem('migration') || {}, | ||
36 | }); | ||
24 | } | 37 | } |
25 | 38 | ||
26 | @action async _update({ settings }) { | 39 | @action async _update({ type, data }) { |
27 | const appSettings = this.all; | 40 | const appSettings = this.all; |
28 | localStorage.setItem('app', Object.assign(appSettings, settings)); | 41 | if (type !== 'app') { |
42 | debug('Update settings', type, data, this.all); | ||
43 | localStorage.setItem(type, Object.assign(appSettings[type], data)); | ||
44 | } else { | ||
45 | debug('Update settings on file system', type, data); | ||
46 | this.updateAppSettingsRequest.execute(data); | ||
29 | 47 | ||
30 | // We need a little hack to wait until everything is patched | 48 | this.appSettingsRequest.patch((result) => { |
31 | setTimeout(() => this._shareSettingsWithMainProcess(), 0); | 49 | if (!result) return; |
32 | 50 | Object.assign(result, data); | |
33 | gaEvent('Settings', 'update'); | 51 | }); |
52 | } | ||
34 | } | 53 | } |
35 | 54 | ||
36 | @action async _remove({ key }) { | 55 | @action async _remove({ type, key }) { |
37 | const appSettings = this.all; | 56 | if (type === 'app') return; // app keys can't be deleted |
57 | |||
58 | const appSettings = this.all[type]; | ||
38 | if (Object.hasOwnProperty.call(appSettings, key)) { | 59 | if (Object.hasOwnProperty.call(appSettings, key)) { |
39 | delete appSettings[key]; | 60 | delete appSettings[key]; |
40 | localStorage.setItem('app', appSettings); | ||
41 | } | ||
42 | 61 | ||
43 | this._shareSettingsWithMainProcess(); | 62 | this.actions.settings.update({ |
63 | type, | ||
64 | data: appSettings, | ||
65 | }); | ||
66 | } | ||
44 | } | 67 | } |
45 | 68 | ||
46 | // Reactions | 69 | // Helper |
47 | _shareSettingsWithMainProcess() { | 70 | _migrate() { |
48 | ipcRenderer.send('settings', this.all); | 71 | const legacySettings = localStorage.getItem('app'); |
72 | |||
73 | if (!this.all.migration['5.0.0-beta.17-settings']) { | ||
74 | this.actions.settings.update({ | ||
75 | type: 'app', | ||
76 | data: { | ||
77 | autoLaunchInBackground: legacySettings.autoLaunchInBackground, | ||
78 | runInBackground: legacySettings.runInBackground, | ||
79 | enableSystemTray: legacySettings.enableSystemTray, | ||
80 | minimizeToSystemTray: legacySettings.minimizeToSystemTray, | ||
81 | isAppMuted: legacySettings.isAppMuted, | ||
82 | enableGPUAcceleration: legacySettings.enableGPUAcceleration, | ||
83 | showMessageBadgeWhenMuted: legacySettings.showMessageBadgeWhenMuted, | ||
84 | showDisabledServices: legacySettings.showDisabledServices, | ||
85 | enableSpellchecking: legacySettings.enableSpellchecking, | ||
86 | }, | ||
87 | }); | ||
88 | |||
89 | this.actions.settings.update({ | ||
90 | type: 'service', | ||
91 | data: { | ||
92 | activeService: legacySettings.activeService, | ||
93 | }, | ||
94 | }); | ||
95 | |||
96 | this.actions.settings.update({ | ||
97 | type: 'migration', | ||
98 | data: { | ||
99 | '5.0.0-beta.17-settings': true, | ||
100 | }, | ||
101 | }); | ||
102 | |||
103 | localStorage.removeItem('app'); | ||
104 | |||
105 | debug('Migrated settings to split stores'); | ||
106 | } | ||
49 | } | 107 | } |
50 | } | 108 | } |
diff --git a/src/stores/UIStore.js b/src/stores/UIStore.js index 5e9cc9ba7..b391bdcae 100644 --- a/src/stores/UIStore.js +++ b/src/stores/UIStore.js | |||
@@ -17,7 +17,7 @@ export default class UIStore extends Store { | |||
17 | @computed get showMessageBadgesEvenWhenMuted() { | 17 | @computed get showMessageBadgesEvenWhenMuted() { |
18 | const settings = this.stores.settings.all; | 18 | const settings = this.stores.settings.all; |
19 | 19 | ||
20 | return (settings.isAppMuted && settings.showMessageBadgeWhenMuted) || !settings.isAppMuted; | 20 | return (settings.app.isAppMuted && settings.app.showMessageBadgeWhenMuted) || !settings.isAppMuted; |
21 | } | 21 | } |
22 | 22 | ||
23 | // Actions | 23 | // Actions |
diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js index 7dbbd955b..574616925 100644 --- a/src/stores/UserStore.js +++ b/src/stores/UserStore.js | |||
@@ -9,6 +9,8 @@ import Request from './lib/Request'; | |||
9 | import CachedRequest from './lib/CachedRequest'; | 9 | import CachedRequest from './lib/CachedRequest'; |
10 | import { gaEvent } from '../lib/analytics'; | 10 | import { gaEvent } from '../lib/analytics'; |
11 | 11 | ||
12 | const debug = require('debug')('UserStore'); | ||
13 | |||
12 | // TODO: split stores into UserStore and AuthStore | 14 | // TODO: split stores into UserStore and AuthStore |
13 | export default class UserStore extends Store { | 15 | export default class UserStore extends Store { |
14 | BASE_ROUTE = '/auth'; | 16 | BASE_ROUTE = '/auth'; |
@@ -69,6 +71,11 @@ export default class UserStore extends Store { | |||
69 | ]); | 71 | ]); |
70 | } | 72 | } |
71 | 73 | ||
74 | setup() { | ||
75 | // Data migration | ||
76 | this._migrateUserLocale(); | ||
77 | } | ||
78 | |||
72 | // Routes | 79 | // Routes |
73 | get loginRoute() { | 80 | get loginRoute() { |
74 | return this.LOGIN_ROUTE; | 81 | return this.LOGIN_ROUTE; |
@@ -256,8 +263,10 @@ export default class UserStore extends Store { | |||
256 | 263 | ||
257 | // We need to set the beta flag for the SettingsStore | 264 | // We need to set the beta flag for the SettingsStore |
258 | this.actions.settings.update({ | 265 | this.actions.settings.update({ |
259 | settings: { | 266 | type: 'app', |
267 | data: { | ||
260 | beta: data.beta, | 268 | beta: data.beta, |
269 | locale: data.locale, | ||
261 | }, | 270 | }, |
262 | }); | 271 | }); |
263 | } | 272 | } |
@@ -292,4 +301,17 @@ export default class UserStore extends Store { | |||
292 | this.id = null; | 301 | this.id = null; |
293 | } | 302 | } |
294 | } | 303 | } |
304 | |||
305 | async _migrateUserLocale() { | ||
306 | await this.getUserInfoRequest._promise; | ||
307 | |||
308 | if (!this.data.locale) { | ||
309 | debug('Migrate "locale" to user data'); | ||
310 | this.actions.user.update({ | ||
311 | userData: { | ||
312 | locale: this.stores.app.locale, | ||
313 | }, | ||
314 | }); | ||
315 | } | ||
316 | } | ||
295 | } | 317 | } |
diff --git a/src/styles/title-bar.scss b/src/styles/title-bar.scss index 492245e2f..5316f35b3 100644 --- a/src/styles/title-bar.scss +++ b/src/styles/title-bar.scss | |||
@@ -32,8 +32,7 @@ | |||
32 | margin: 4px; | 32 | margin: 4px; |
33 | border-radius: $theme-border-radius-small; | 33 | border-radius: $theme-border-radius-small; |
34 | } | 34 | } |
35 | &.selected { | 35 | &.selected, &.selected:focus { |
36 | // background: $theme-brand-primary; | ||
37 | background: none; | 36 | background: none; |
38 | 37 | ||
39 | .menu-item { | 38 | .menu-item { |
diff --git a/src/webview/plugin.js b/src/webview/plugin.js index 52b19b3fd..c6530fef6 100644 --- a/src/webview/plugin.js +++ b/src/webview/plugin.js | |||
@@ -8,6 +8,8 @@ import RecipeWebview from './lib/RecipeWebview'; | |||
8 | import Spellchecker from './spellchecker'; | 8 | import Spellchecker from './spellchecker'; |
9 | import './notifications'; | 9 | import './notifications'; |
10 | 10 | ||
11 | const debug = require('debug')('Plugin'); | ||
12 | |||
11 | ipcRenderer.on('initializeRecipe', (e, data) => { | 13 | ipcRenderer.on('initializeRecipe', (e, data) => { |
12 | const modulePath = path.join(data.recipe.path, 'webview.js'); | 14 | const modulePath = path.join(data.recipe.path, 'webview.js'); |
13 | // Delete module from cache | 15 | // Delete module from cache |
@@ -15,8 +17,9 @@ ipcRenderer.on('initializeRecipe', (e, data) => { | |||
15 | try { | 17 | try { |
16 | // eslint-disable-next-line | 18 | // eslint-disable-next-line |
17 | require(modulePath)(new RecipeWebview(), data); | 19 | require(modulePath)(new RecipeWebview(), data); |
20 | debug('Initialize Recipe'); | ||
18 | } catch (err) { | 21 | } catch (err) { |
19 | console.error(err); | 22 | debug('Recipe initialization failed', err); |
20 | } | 23 | } |
21 | }); | 24 | }); |
22 | 25 | ||
@@ -31,6 +34,7 @@ new ContextMenuListener((info) => { // eslint-disable-line | |||
31 | 34 | ||
32 | ipcRenderer.on('settings-update', (e, data) => { | 35 | ipcRenderer.on('settings-update', (e, data) => { |
33 | spellchecker.toggleSpellchecker(data.enableSpellchecking); | 36 | spellchecker.toggleSpellchecker(data.enableSpellchecking); |
37 | debug('Settings update received', data); | ||
34 | }); | 38 | }); |
35 | 39 | ||
36 | // initSpellche | 40 | // initSpellche |