mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2026-04-21 00:48:19 +01:00
- [x] Removed ‘Restart Signal’ global menu item
- [x] Change _Click to create contact…_ to _Start conversation…_
- [x] Move global menu (top-left kebab) into OS menu bar,
i.e. **Settings** > **Preferences…**
- [x] Add tests for OS menu bar templates
- [x] Fix bug with **Window** menu on macOS when showing setup options
- [x] Use _Title Case_ for all OS menu bar menu items for consistency
commit dedf7c9af0
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 16:53:42 2018 -0500
Use ‘Title Case’ to be consistent with OS menus
References:
- Apple:
- https://developer.apple.com/macos/human-interface-guidelines/menus/menu-anatomy/#menu-and-menu-item-titles
- https://developer.apple.com/library/content/documentation/FinalCutProX/Conceptual/FxPlugHIG/TextStyleGuidelines/TextStyleGuidelines.html#//apple_ref/doc/uid/TP40013782-CH6-SW1
- https://titlecaseconverter.com/
commit 3286da29b3
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 16:36:50 2018 -0500
Fix bug for macOS ‘Window’ menu with setup options
commit 236a23d1ea
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 16:27:46 2018 -0500
Test menus with included setup options
commit c5d5f5abb8
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 16:10:27 2018 -0500
Move settings (‘Preferences’) into OS-level menu
This reduces our reliance on custom UI until we have more design resources.
commit 027803f8f4
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 16:02:56 2018 -0500
Prepare tests for menu with/without included setup
commit 9e2f006924
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 15:55:46 2018 -0500
Destructure `includeSetup`
commit 6b2a1eccdf
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 15:55:14 2018 -0500
🔤 `createTemplate` `options`
commit c2fecba34b
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 12:49:55 2018 -0500
Test menu for Windows and Linux
commit 60281b1af9
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 12:40:39 2018 -0500
Add `yarn run test-app` command
commit 1a0489919c
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 12:40:29 2018 -0500
Add test for `SignalMenu.createTemplate` on macOS
commit 9638b86c0f
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 12:34:46 2018 -0500
Make `createTemplate` pure
Extracting `options.platform` makes it easier to test without having to
stub `process.platform`.
commit 9c26404892
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 11:47:39 2018 -0500
Extract `locale.load` `appLocale` & `logger` for testability
This allows us to run this code in a non-Electron environment, e.g. Node.js
Mocha test suite.
commit 710b22438d
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 11:46:13 2018 -0500
🔤 npm scripts
commit 9ae22937fb
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 11:45:30 2018 -0500
Use 2-space indendation for `app` module tests
commit 22c26baf61
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 11:22:55 2018 -0500
Prefer named exports
commit 9c95261952
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 11:22:46 2018 -0500
🔤 Organize `require`s
commit 2f144d24d9
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Tue Feb 27 11:13:50 2018 -0500
Remove existing global hamburger menu
This will be replaced by a OS-level ‘Preferences’ menu.
commit f5adb374cb
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Mon Feb 26 18:40:54 2018 -0500
Remove ‘Restart Signal’ menu from settings
Apparently, this is a remnant from the Chrome web application.
commit d7a206bc8e
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Mon Feb 26 17:16:49 2018 -0500
Clarify label for starting a new conversation
When user a enters a number that is not a contact, we prompt them to start a new
conversation.
commit 715a406436
Author: Daniel Gasienica <daniel@gasienica.ch>
Date: Mon Feb 26 16:46:26 2018 -0500
Use ‘Enter name or number’ as prompt’
This follows implementation of Android and recommendation from Alissa.
69 lines
1.4 KiB
JavaScript
69 lines
1.4 KiB
JavaScript
const path = require('path');
|
|
const fs = require('fs');
|
|
const _ = require('lodash');
|
|
|
|
|
|
function normalizeLocaleName(locale) {
|
|
if (/^en-/.test(locale)) {
|
|
return 'en';
|
|
}
|
|
|
|
return locale;
|
|
}
|
|
|
|
function getLocaleMessages(locale) {
|
|
const onDiskLocale = locale.replace('-', '_');
|
|
|
|
const targetFile = path.join(
|
|
__dirname,
|
|
'..',
|
|
'_locales',
|
|
onDiskLocale,
|
|
'messages.json'
|
|
);
|
|
|
|
return JSON.parse(fs.readFileSync(targetFile, 'utf-8'));
|
|
}
|
|
|
|
function load({ appLocale, logger } = {}) {
|
|
if (!appLocale) {
|
|
throw new TypeError('`appLocale` is required');
|
|
}
|
|
|
|
if (!logger || !logger.error) {
|
|
throw new TypeError('`logger.error` is required');
|
|
}
|
|
|
|
const english = getLocaleMessages('en');
|
|
|
|
// Load locale - if we can't load messages for the current locale, we
|
|
// default to 'en'
|
|
//
|
|
// possible locales:
|
|
// https://github.com/electron/electron/blob/master/docs/api/locales.md
|
|
let localeName = normalizeLocaleName(appLocale);
|
|
let messages;
|
|
|
|
try {
|
|
messages = getLocaleMessages(localeName);
|
|
|
|
// We start with english, then overwrite that with anything present in locale
|
|
messages = _.merge(english, messages);
|
|
} catch (e) {
|
|
logger.error(`Problem loading messages for locale ${localeName} ${e.stack}`);
|
|
logger.error('Falling back to en locale');
|
|
|
|
localeName = 'en';
|
|
messages = english;
|
|
}
|
|
|
|
return {
|
|
name: localeName,
|
|
messages,
|
|
};
|
|
}
|
|
|
|
module.exports = {
|
|
load,
|
|
};
|