Skip to content

Commit

Permalink
Progress
Browse files Browse the repository at this point in the history
  • Loading branch information
pecanoro committed Dec 9, 2022
1 parent 43e6719 commit 565d81c
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 16 deletions.
57 changes: 43 additions & 14 deletions desktop/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,21 +144,21 @@ const showKeyboardShortcutsModal = (browserWindow) => {

// Defines the system-level menu item to manually apply an update
// This menu item should become visible after an update is downloaded and ready to be applied
const updateAppMenuItem = new MenuItem({
label: Localize.translateLocal('systemContextMenu.aboutExpensify'),
let updateAppMenuItem = new MenuItem({
label: Localize.translateLocal('systemContextMenu.updateExpensify'),
visible: false,
click: quitAndInstallWithUpdate,
});

// System-level menu item to manually check for App updates
const checkForUpdateMenuItem = new MenuItem({
let checkForUpdateMenuItem = new MenuItem({
label: Localize.translateLocal('systemContextMenu.checkForUpdates'),
visible: true,
click: manuallyCheckForUpdates,
});

// Defines the system-level menu item for opening keyboard shortcuts modal
const keyboardShortcutsMenu = new MenuItem({
let keyboardShortcutsMenuItem = new MenuItem({
label: Localize.translateLocal('initialSettingsPage.aboutPage.viewKeyboardShortcuts'),
accelerator: 'CmdOrCtrl+I',
});
Expand Down Expand Up @@ -257,7 +257,7 @@ const mainWindow = (() => {
browserWindow.setTitle('New Expensify');
}

keyboardShortcutsMenu.click = () => {
keyboardShortcutsMenuItem.click = () => {
showKeyboardShortcutsModal(browserWindow);
};

Expand Down Expand Up @@ -289,7 +289,7 @@ const mainWindow = (() => {
const appMenu = _.find(systemMenu.items, item => item.role === 'appmenu');
appMenu.submenu.insert(1, updateAppMenuItem);
appMenu.submenu.insert(2, checkForUpdateMenuItem);
appMenu.submenu.insert(3, keyboardShortcutsMenu);
appMenu.submenu.insert(3, keyboardShortcutsMenuItem);

// On mac, pressing cmd++ actually sends a cmd+=. cmd++ is generally the zoom in shortcut, but this is
// not properly listened for by electron. Adding in an invisible cmd+= listener fixes this.
Expand Down Expand Up @@ -376,19 +376,48 @@ const mainWindow = (() => {
}

ipcMain.on(ELECTRON_EVENTS.LOCALE_UPDATED, (event, updatedLocale) => {
// We can't dynamically change the labels of the menu, so we need to rebuild it.
let systemMenu = Menu.getApplicationMenu();
let appMenu = _.find(systemMenu.items, item => item.role === 'appmenu');
const updateAppMenuItemId = updateAppMenuItem.id;
const checkForUpdateMenuItemId = checkForUpdateMenuItem.id;
const keyboardShortcutsMenuItemId = keyboardShortcutsMenuItem.id;

// Update the labels and ids to use the translations.
updateAppMenuItem = new MenuItem({
id: `updateAppMenuItem-${updatedLocale}`,
label: Localize.translate(updatedLocale, 'systemContextMenu.updateExpensify'),
visible: updateAppMenuItem.visible,
click: quitAndInstallWithUpdate,
});
checkForUpdateMenuItem = new MenuItem({
id: `checkForUpdateMenuItem-${updatedLocale}`,
label: Localize.translate(updatedLocale, 'systemContextMenu.checkForUpdates'),
visible: checkForUpdateMenuItem.visible,
click: manuallyCheckForUpdates,
});
keyboardShortcutsMenuItem = new MenuItem({
id: `keyboardShortcutsMenu-${updatedLocale}`,
label: Localize.translate(updatedLocale, 'initialSettingsPage.aboutPage.viewKeyboardShortcuts'),
accelerator: 'CmdOrCtrl+I',
});

// Update the labels to use the new selected language.
updateAppMenuItem.label = Localize.translate(updatedLocale, 'systemContextMenu.aboutExpensify');
checkForUpdateMenuItem.label = Localize.translate(updatedLocale, 'systemContextMenu.checkForUpdates');
keyboardShortcutsMenu.label = Localize.translate(updatedLocale, 'initialSettingsPage.aboutPage.viewKeyboardShortcuts');
// If we have previously added those languages, don't add new menu items, reshow them.
if (systemMenu.getMenuItemById(`updateAppMenuItem-${updatedLocale}`)) {
systemMenu.getMenuItemById(`updateAppMenuItem-${updatedLocale}`).visible = true;
systemMenu.getMenuItemById(`checkForUpdateMenuItem-${updatedLocale}`).visible = true;
systemMenu.getMenuItemById(`keyboardShortcutsMenu-${updatedLocale}`).visible = true;
} else {
appMenu.submenu.insert(1, updateAppMenuItem);
appMenu.submenu.insert(2, checkForUpdateMenuItem);
appMenu.submenu.insert(3, keyboardShortcutsMenuItem);
}

appMenu.submenu.insert(1, updateAppMenuItem);
appMenu.submenu.insert(2, checkForUpdateMenuItem);
appMenu.submenu.insert(3, keyboardShortcutsMenu);
Menu.setApplicationMenu(systemMenu);

// Since we can remove menu items, we hide the old ones.
systemMenu.getMenuItemById(updateAppMenuItemId).visible = false;
systemMenu.getMenuItemById(checkForUpdateMenuItemId).visible = false;
systemMenu.getMenuItemById(keyboardShortcutsMenuItemId).visible = false;
});

ipcMain.on(ELECTRON_EVENTS.REQUEST_VISIBILITY, (event) => {
Expand Down
1 change: 1 addition & 0 deletions src/languages/en.js
Original file line number Diff line number Diff line change
Expand Up @@ -1073,6 +1073,7 @@ export default {
},
systemContextMenu: {
aboutExpensify: 'About New Expensify',
updateExpensify: 'Update New Expensify',
checkForUpdates: 'Check For Updates',
},
checkForUpdatesModal: {
Expand Down
5 changes: 3 additions & 2 deletions src/languages/es.js
Original file line number Diff line number Diff line change
Expand Up @@ -497,7 +497,7 @@ export default {
heroHeading: 'Dividir cuentas\ny chatear con amigos.',
heroDescription: {
phrase1: 'El dinero habla. Y ahora que el chat y los pagos están en un solo lugar, también es fácil. Sus pagos le llegan tan rápido como puede transmitir su punto.',
phrase2: 'New Expensify es de código abierto. Vista',
phrase2: 'Nuevo Expensify es de código abierto. Vista',
phrase3: 'el código',
phrase4: 'Vista',
phrase5: 'vacantes',
Expand Down Expand Up @@ -1074,7 +1074,8 @@ export default {
},
},
systemContextMenu: {
aboutExpensify: 'Sobre New Expensify',
aboutExpensify: 'Sobre Nuevo Expensify',
updateExpensify: 'Actualizar Nuevo Expensify',
checkForUpdates: 'Buscar Actualizaciones',
},
checkForUpdatesModal: {
Expand Down

0 comments on commit 565d81c

Please sign in to comment.