From 1d4ad9b3b41085129d0779a1c7de7f5c36699c85 Mon Sep 17 00:00:00 2001 From: Alberto Iannaccone Date: Mon, 4 Apr 2022 17:48:43 +0200 Subject: [PATCH 1/4] install language packs --- electron/build/template-package.json | 8 +++++++- package.json | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/electron/build/template-package.json b/electron/build/template-package.json index 9b5af5cde..dd895118b 100644 --- a/electron/build/template-package.json +++ b/electron/build/template-package.json @@ -148,6 +148,12 @@ "vscode-arduino-tools": "https://downloads.arduino.cc/vscode-arduino-tools/vscode-arduino-tools-0.0.2-beta.2.vsix", "vscode-builtin-json": "https://open-vsx.org/api/vscode/json/1.46.1/file/vscode.json-1.46.1.vsix", "vscode-builtin-json-language-features": "https://open-vsx.org/api/vscode/json-language-features/1.46.1/file/vscode.json-language-features-1.46.1.vsix", - "cortex-debug": "https://open-vsx.org/api/marus25/cortex-debug/0.3.10/file/marus25.cortex-debug-0.3.10.vsix" + "cortex-debug": "https://open-vsx.org/api/marus25/cortex-debug/0.3.10/file/marus25.cortex-debug-0.3.10.vsix", + "vscode-language-pack-nl": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-nl/1.48.3/file/MS-CEINTL.vscode-language-pack-nl-1.48.3.vsix", + "vscode-language-pack-fr": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-fr/1.66.1/file/MS-CEINTL.vscode-language-pack-fr-1.66.1.vsix", + "vscode-language-pack-zh-hant": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-zh-hant/1.66.1/file/MS-CEINTL.vscode-language-pack-zh-hant-1.66.1.vsix", + "vscode-language-pack-de": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-de/1.66.1/file/MS-CEINTL.vscode-language-pack-de-1.66.1.vsix", + "vscode-language-pack-ja":"https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-ja/1.66.1/file/MS-CEINTL.vscode-language-pack-ja-1.66.1.vsix", + "vscode-language-pack-tr": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-tr/1.66.1/file/MS-CEINTL.vscode-language-pack-tr-1.66.1.vsix" } } \ No newline at end of file diff --git a/package.json b/package.json index 5e9e4fadb..33da05b56 100644 --- a/package.json +++ b/package.json @@ -74,6 +74,12 @@ "vscode-arduino-tools": "https://downloads.arduino.cc/vscode-arduino-tools/vscode-arduino-tools-0.0.2-beta.2.vsix", "vscode-builtin-json": "https://open-vsx.org/api/vscode/json/1.46.1/file/vscode.json-1.46.1.vsix", "vscode-builtin-json-language-features": "https://open-vsx.org/api/vscode/json-language-features/1.46.1/file/vscode.json-language-features-1.46.1.vsix", - "cortex-debug": "https://open-vsx.org/api/marus25/cortex-debug/0.3.10/file/marus25.cortex-debug-0.3.10.vsix" + "cortex-debug": "https://open-vsx.org/api/marus25/cortex-debug/0.3.10/file/marus25.cortex-debug-0.3.10.vsix", + "vscode-language-pack-nl": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-nl/1.48.3/file/MS-CEINTL.vscode-language-pack-nl-1.48.3.vsix", + "vscode-language-pack-fr": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-fr/1.66.1/file/MS-CEINTL.vscode-language-pack-fr-1.66.1.vsix", + "vscode-language-pack-zh-hant": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-zh-hant/1.66.1/file/MS-CEINTL.vscode-language-pack-zh-hant-1.66.1.vsix", + "vscode-language-pack-de": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-de/1.66.1/file/MS-CEINTL.vscode-language-pack-de-1.66.1.vsix", + "vscode-language-pack-ja":"https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-ja/1.66.1/file/MS-CEINTL.vscode-language-pack-ja-1.66.1.vsix", + "vscode-language-pack-tr": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-tr/1.66.1/file/MS-CEINTL.vscode-language-pack-tr-1.66.1.vsix" } } \ No newline at end of file From fc4bba29e61a6165208b4c38fcc3d2a77ab6ce59 Mon Sep 17 00:00:00 2001 From: Alberto Iannaccone Date: Wed, 6 Apr 2022 10:21:25 +0200 Subject: [PATCH 2/4] register localization contribution to backend module --- .../browser/contributions/add-zip-library.ts | 4 - .../src/node/arduino-ide-backend-module.ts | 4 + .../node/arduino-localization-contribution.ts | 152 ++++++++++++++++++ electron/build/template-package.json | 10 +- package.json | 10 +- 5 files changed, 166 insertions(+), 14 deletions(-) create mode 100644 arduino-ide-extension/src/node/arduino-localization-contribution.ts diff --git a/arduino-ide-extension/src/browser/contributions/add-zip-library.ts b/arduino-ide-extension/src/browser/contributions/add-zip-library.ts index a03d056f2..9ae4c1a5e 100644 --- a/arduino-ide-extension/src/browser/contributions/add-zip-library.ts +++ b/arduino-ide-extension/src/browser/contributions/add-zip-library.ts @@ -39,10 +39,6 @@ export class AddZipLibrary extends SketchContribution { ...ArduinoMenus.SKETCH__UTILS_GROUP, '0_include', ]; - // TODO: do we need it? calling `registerSubmenu` multiple times is noop, so it does not hurt. - registry.registerSubmenu(includeLibMenuPath, 'Include Library', { - order: '1', - }); registry.registerMenuAction([...includeLibMenuPath, '1_install'], { commandId: AddZipLibrary.Commands.ADD_ZIP_LIBRARY.id, label: nls.localize('arduino/library/addZip', 'Add .ZIP Library...'), diff --git a/arduino-ide-extension/src/node/arduino-ide-backend-module.ts b/arduino-ide-extension/src/node/arduino-ide-backend-module.ts index 5fcfd01ed..223b52b8b 100644 --- a/arduino-ide-extension/src/node/arduino-ide-backend-module.ts +++ b/arduino-ide-extension/src/node/arduino-ide-backend-module.ts @@ -92,6 +92,8 @@ import { ArduinoFirmwareUploaderImpl } from './arduino-firmware-uploader-impl'; import { PlotterBackendContribution } from './plotter/plotter-backend-contribution'; import WebSocketServiceImpl from './web-socket/web-socket-service-impl'; import { WebSocketService } from './web-socket/web-socket-service'; +import { ArduinoLocalizationContribution } from './arduino-localization-contribution'; +import { LocalizationContribution } from '@theia/core/lib/node/i18n/localization-contribution'; export default new ContainerModule((bind, unbind, isBound, rebind) => { bind(BackendApplication).toSelf().inSingletonScope(); @@ -340,4 +342,6 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => { bind(PlotterBackendContribution).toSelf().inSingletonScope(); bind(BackendApplicationContribution).toService(PlotterBackendContribution); + bind(ArduinoLocalizationContribution).toSelf().inSingletonScope(); + bind(LocalizationContribution).toService(ArduinoLocalizationContribution); }); diff --git a/arduino-ide-extension/src/node/arduino-localization-contribution.ts b/arduino-ide-extension/src/node/arduino-localization-contribution.ts new file mode 100644 index 000000000..de225f5cf --- /dev/null +++ b/arduino-ide-extension/src/node/arduino-localization-contribution.ts @@ -0,0 +1,152 @@ +import { + LocalizationContribution, + LocalizationRegistry, +} from '@theia/core/lib/node/i18n/localization-contribution'; +import { injectable } from 'inversify'; + +@injectable() +export class ArduinoLocalizationContribution + implements LocalizationContribution +{ + async registerLocalizations(registry: LocalizationRegistry): Promise { + registry.registerLocalizationFromRequire( + 'af', + require('../../../i18n/af.json') + ); + + registry.registerLocalizationFromRequire( + 'en', + require('../../../i18n/en.json') + ); + + registry.registerLocalizationFromRequire( + 'fr', + require('../../../i18n/fr.json') + ); + + registry.registerLocalizationFromRequire( + 'ko', + require('../../../i18n/ko.json') + ); + + registry.registerLocalizationFromRequire( + 'pt', + require('../../../i18n/pt.json') + ); + + registry.registerLocalizationFromRequire( + 'uk_UA', + require('../../../i18n/uk_UA.json') + ); + + registry.registerLocalizationFromRequire( + 'ar', + require('../../../i18n/ar.json') + ); + + registry.registerLocalizationFromRequire( + 'es', + require('../../../i18n/es.json') + ); + + registry.registerLocalizationFromRequire( + 'he', + require('../../../i18n/he.json') + ); + + registry.registerLocalizationFromRequire( + 'my_MM', + require('../../../i18n/my_MM.json') + ); + + registry.registerLocalizationFromRequire( + 'ro', + require('../../../i18n/ro.json') + ); + + registry.registerLocalizationFromRequire( + 'zh', + require('../../../i18n/zh.json') + ); + + registry.registerLocalizationFromRequire( + 'bg', + require('../../../i18n/bg.json') + ); + + registry.registerLocalizationFromRequire( + 'eu', + require('../../../i18n/eu.json') + ); + + registry.registerLocalizationFromRequire( + 'hu', + require('../../../i18n/hu.json') + ); + + registry.registerLocalizationFromRequire( + 'ne', + require('../../../i18n/ne.json') + ); + + registry.registerLocalizationFromRequire( + 'ru', + require('../../../i18n/ru.json') + ); + + registry.registerLocalizationFromRequire( + 'zh_TW', + require('../../../i18n/zh_TW.json') + ); + + registry.registerLocalizationFromRequire( + 'de', + require('../../../i18n/de.json') + ); + + registry.registerLocalizationFromRequire( + 'fa', + require('../../../i18n/fa.json') + ); + + registry.registerLocalizationFromRequire( + 'it', + require('../../../i18n/it.json') + ); + + registry.registerLocalizationFromRequire( + 'nl', + require('../../../i18n/nl.json') + ); + + registry.registerLocalizationFromRequire( + 'sv_SE', + require('../../../i18n/sv_SE.json') + ); + + registry.registerLocalizationFromRequire( + 'el', + require('../../../i18n/el.json') + ); + + registry.registerLocalizationFromRequire( + 'fil', + require('../../../i18n/fil.json') + ); + + registry.registerLocalizationFromRequire( + 'ja', + require('../../../i18n/ja.json') + ); + + registry.registerLocalizationFromRequire( + 'pl', + require('../../../i18n/pl.json') + ); + + registry.registerLocalizationFromRequire( + 'tr', + require('../../../i18n/tr.json') + ); + } +} diff --git a/electron/build/template-package.json b/electron/build/template-package.json index dd895118b..7b8bc4eaa 100644 --- a/electron/build/template-package.json +++ b/electron/build/template-package.json @@ -150,10 +150,10 @@ "vscode-builtin-json-language-features": "https://open-vsx.org/api/vscode/json-language-features/1.46.1/file/vscode.json-language-features-1.46.1.vsix", "cortex-debug": "https://open-vsx.org/api/marus25/cortex-debug/0.3.10/file/marus25.cortex-debug-0.3.10.vsix", "vscode-language-pack-nl": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-nl/1.48.3/file/MS-CEINTL.vscode-language-pack-nl-1.48.3.vsix", - "vscode-language-pack-fr": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-fr/1.66.1/file/MS-CEINTL.vscode-language-pack-fr-1.66.1.vsix", - "vscode-language-pack-zh-hant": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-zh-hant/1.66.1/file/MS-CEINTL.vscode-language-pack-zh-hant-1.66.1.vsix", - "vscode-language-pack-de": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-de/1.66.1/file/MS-CEINTL.vscode-language-pack-de-1.66.1.vsix", - "vscode-language-pack-ja":"https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-ja/1.66.1/file/MS-CEINTL.vscode-language-pack-ja-1.66.1.vsix", - "vscode-language-pack-tr": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-tr/1.66.1/file/MS-CEINTL.vscode-language-pack-tr-1.66.1.vsix" + "vscode-language-pack-fr": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-fr/1.53.2/file/MS-CEINTL.vscode-language-pack-fr-1.53.2.vsix", + "vscode-language-pack-zh-hans": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-zh-hans/1.53.2/file/MS-CEINTL.vscode-language-pack-zh-hans-1.53.2.vsix", + "vscode-language-pack-de": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-de/1.53.2/file/MS-CEINTL.vscode-language-pack-de-1.53.2.vsix", + "vscode-language-pack-ja":"https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-ja/1.53.2/file/MS-CEINTL.vscode-language-pack-ja-1.53.2.vsix", + "vscode-language-pack-tr": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-tr/1.53.2/file/MS-CEINTL.vscode-language-pack-tr-1.53.2.vsix" } } \ No newline at end of file diff --git a/package.json b/package.json index 33da05b56..3d98cd7db 100644 --- a/package.json +++ b/package.json @@ -76,10 +76,10 @@ "vscode-builtin-json-language-features": "https://open-vsx.org/api/vscode/json-language-features/1.46.1/file/vscode.json-language-features-1.46.1.vsix", "cortex-debug": "https://open-vsx.org/api/marus25/cortex-debug/0.3.10/file/marus25.cortex-debug-0.3.10.vsix", "vscode-language-pack-nl": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-nl/1.48.3/file/MS-CEINTL.vscode-language-pack-nl-1.48.3.vsix", - "vscode-language-pack-fr": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-fr/1.66.1/file/MS-CEINTL.vscode-language-pack-fr-1.66.1.vsix", - "vscode-language-pack-zh-hant": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-zh-hant/1.66.1/file/MS-CEINTL.vscode-language-pack-zh-hant-1.66.1.vsix", - "vscode-language-pack-de": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-de/1.66.1/file/MS-CEINTL.vscode-language-pack-de-1.66.1.vsix", - "vscode-language-pack-ja":"https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-ja/1.66.1/file/MS-CEINTL.vscode-language-pack-ja-1.66.1.vsix", - "vscode-language-pack-tr": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-tr/1.66.1/file/MS-CEINTL.vscode-language-pack-tr-1.66.1.vsix" + "vscode-language-pack-fr": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-fr/1.53.2/file/MS-CEINTL.vscode-language-pack-fr-1.53.2.vsix", + "vscode-language-pack-zh-hans": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-zh-hans/1.53.2/file/MS-CEINTL.vscode-language-pack-zh-hans-1.53.2.vsix", + "vscode-language-pack-de": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-de/1.53.2/file/MS-CEINTL.vscode-language-pack-de-1.53.2.vsix", + "vscode-language-pack-ja":"https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-ja/1.53.2/file/MS-CEINTL.vscode-language-pack-ja-1.53.2.vsix", + "vscode-language-pack-tr": "https://open-vsx.org/api/MS-CEINTL/vscode-language-pack-tr/1.53.2/file/MS-CEINTL.vscode-language-pack-tr-1.53.2.vsix" } } \ No newline at end of file From 5a48dc5bb470e90c4d7d85565167989f184533ff Mon Sep 17 00:00:00 2001 From: Alberto Iannaccone Date: Thu, 7 Apr 2022 12:03:10 +0200 Subject: [PATCH 3/4] copy i18n folder to build --- arduino-ide-extension/package.json | 3 +- .../node/arduino-localization-contribution.ts | 56 +++++++++---------- electron/packager/index.js | 1 + 3 files changed, 31 insertions(+), 29 deletions(-) diff --git a/arduino-ide-extension/package.json b/arduino-ide-extension/package.json index d03c48f35..1d71a2eef 100644 --- a/arduino-ide-extension/package.json +++ b/arduino-ide-extension/package.json @@ -4,12 +4,13 @@ "description": "An extension for Theia building the Arduino IDE", "license": "AGPL-3.0-or-later", "scripts": { - "prepare": "yarn download-cli && yarn download-fwuploader && yarn download-ls && yarn copy-serial-plotter && yarn clean && yarn download-examples && yarn build && yarn test", + "prepare": "yarn download-cli && yarn download-fwuploader && yarn download-ls && yarn copy-serial-plotter && yarn copy-i18n && yarn clean && yarn download-examples && yarn build && yarn test", "clean": "rimraf lib", "compose-changelog": "node ./scripts/compose-changelog.js", "download-cli": "node ./scripts/download-cli.js", "download-fwuploader": "node ./scripts/download-fwuploader.js", "copy-serial-plotter": "npx ncp ../node_modules/arduino-serial-plotter-webapp ./build/arduino-serial-plotter-webapp", + "copy-i18n": "npx ncp ../i18n ./build/i18n", "download-ls": "node ./scripts/download-ls.js", "download-examples": "node ./scripts/download-examples.js", "generate-protocol": "node ./scripts/generate-protocol.js", diff --git a/arduino-ide-extension/src/node/arduino-localization-contribution.ts b/arduino-ide-extension/src/node/arduino-localization-contribution.ts index de225f5cf..1f464701e 100644 --- a/arduino-ide-extension/src/node/arduino-localization-contribution.ts +++ b/arduino-ide-extension/src/node/arduino-localization-contribution.ts @@ -11,142 +11,142 @@ export class ArduinoLocalizationContribution async registerLocalizations(registry: LocalizationRegistry): Promise { registry.registerLocalizationFromRequire( 'af', - require('../../../i18n/af.json') + require('../../build/i18n/af.json') ); registry.registerLocalizationFromRequire( 'en', - require('../../../i18n/en.json') + require('../../build/i18n/en.json') ); registry.registerLocalizationFromRequire( 'fr', - require('../../../i18n/fr.json') + require('../../build/i18n/fr.json') ); registry.registerLocalizationFromRequire( 'ko', - require('../../../i18n/ko.json') + require('../../build/i18n/ko.json') ); registry.registerLocalizationFromRequire( 'pt', - require('../../../i18n/pt.json') + require('../../build/i18n/pt.json') ); registry.registerLocalizationFromRequire( 'uk_UA', - require('../../../i18n/uk_UA.json') + require('../../build/i18n/uk_UA.json') ); registry.registerLocalizationFromRequire( 'ar', - require('../../../i18n/ar.json') + require('../../build/i18n/ar.json') ); registry.registerLocalizationFromRequire( 'es', - require('../../../i18n/es.json') + require('../../build/i18n/es.json') ); registry.registerLocalizationFromRequire( 'he', - require('../../../i18n/he.json') + require('../../build/i18n/he.json') ); registry.registerLocalizationFromRequire( 'my_MM', - require('../../../i18n/my_MM.json') + require('../../build/i18n/my_MM.json') ); registry.registerLocalizationFromRequire( 'ro', - require('../../../i18n/ro.json') + require('../../build/i18n/ro.json') ); registry.registerLocalizationFromRequire( 'zh', - require('../../../i18n/zh.json') + require('../../build/i18n/zh.json') ); registry.registerLocalizationFromRequire( 'bg', - require('../../../i18n/bg.json') + require('../../build/i18n/bg.json') ); registry.registerLocalizationFromRequire( 'eu', - require('../../../i18n/eu.json') + require('../../build/i18n/eu.json') ); registry.registerLocalizationFromRequire( 'hu', - require('../../../i18n/hu.json') + require('../../build/i18n/hu.json') ); registry.registerLocalizationFromRequire( 'ne', - require('../../../i18n/ne.json') + require('../../build/i18n/ne.json') ); registry.registerLocalizationFromRequire( 'ru', - require('../../../i18n/ru.json') + require('../../build/i18n/ru.json') ); registry.registerLocalizationFromRequire( 'zh_TW', - require('../../../i18n/zh_TW.json') + require('../../build/i18n/zh_TW.json') ); registry.registerLocalizationFromRequire( 'de', - require('../../../i18n/de.json') + require('../../build/i18n/de.json') ); registry.registerLocalizationFromRequire( 'fa', - require('../../../i18n/fa.json') + require('../../build/i18n/fa.json') ); registry.registerLocalizationFromRequire( 'it', - require('../../../i18n/it.json') + require('../../build/i18n/it.json') ); registry.registerLocalizationFromRequire( 'nl', - require('../../../i18n/nl.json') + require('../../build/i18n/nl.json') ); registry.registerLocalizationFromRequire( 'sv_SE', - require('../../../i18n/sv_SE.json') + require('../../build/i18n/sv_SE.json') ); registry.registerLocalizationFromRequire( 'el', - require('../../../i18n/el.json') + require('../../build/i18n/el.json') ); registry.registerLocalizationFromRequire( 'fil', - require('../../../i18n/fil.json') + require('../../build/i18n/fil.json') ); registry.registerLocalizationFromRequire( 'ja', - require('../../../i18n/ja.json') + require('../../build/i18n/ja.json') ); registry.registerLocalizationFromRequire( 'pl', - require('../../../i18n/pl.json') + require('../../build/i18n/pl.json') ); registry.registerLocalizationFromRequire( 'tr', - require('../../../i18n/tr.json') + require('../../build/i18n/tr.json') ); } } diff --git a/electron/packager/index.js b/electron/packager/index.js index bda003da7..2f216f45c 100644 --- a/electron/packager/index.js +++ b/electron/packager/index.js @@ -74,6 +74,7 @@ 'yarn.lock', 'package.json', 'lerna.json', + 'i18n' ]) { cp('-rf', path(rootPath, name), path('..', workingCopy)); } From 905aa04143c4beea48bc468f037e958f05715af9 Mon Sep 17 00:00:00 2001 From: Alberto Iannaccone Date: Thu, 7 Apr 2022 18:08:31 +0200 Subject: [PATCH 4/4] fix chinese language iid --- .../src/node/arduino-localization-contribution.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arduino-ide-extension/src/node/arduino-localization-contribution.ts b/arduino-ide-extension/src/node/arduino-localization-contribution.ts index 1f464701e..6e607bb49 100644 --- a/arduino-ide-extension/src/node/arduino-localization-contribution.ts +++ b/arduino-ide-extension/src/node/arduino-localization-contribution.ts @@ -65,7 +65,7 @@ export class ArduinoLocalizationContribution ); registry.registerLocalizationFromRequire( - 'zh', + 'zh-cn', require('../../build/i18n/zh.json') );