mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-06-11 14:46:35 +00:00
wait for language packs to be deployed (#1261)
This commit is contained in:
parent
19c0334a91
commit
124738d810
@ -82,7 +82,7 @@ import {
|
|||||||
} from '../common/protocol/authentication-service';
|
} from '../common/protocol/authentication-service';
|
||||||
import { ArduinoFirmwareUploaderImpl } from './arduino-firmware-uploader-impl';
|
import { ArduinoFirmwareUploaderImpl } from './arduino-firmware-uploader-impl';
|
||||||
import { PlotterBackendContribution } from './plotter/plotter-backend-contribution';
|
import { PlotterBackendContribution } from './plotter/plotter-backend-contribution';
|
||||||
import { ArduinoLocalizationContribution } from './arduino-localization-contribution';
|
import { ArduinoLocalizationContribution } from './i18n/arduino-localization-contribution';
|
||||||
import { LocalizationContribution } from '@theia/core/lib/node/i18n/localization-contribution';
|
import { LocalizationContribution } from '@theia/core/lib/node/i18n/localization-contribution';
|
||||||
import { MonitorManagerProxyImpl } from './monitor-manager-proxy-impl';
|
import { MonitorManagerProxyImpl } from './monitor-manager-proxy-impl';
|
||||||
import { MonitorManager, MonitorManagerName } from './monitor-manager';
|
import { MonitorManager, MonitorManagerName } from './monitor-manager';
|
||||||
@ -102,6 +102,8 @@ import WebSocketProviderImpl from './web-socket/web-socket-provider-impl';
|
|||||||
import { WebSocketProvider } from './web-socket/web-socket-provider';
|
import { WebSocketProvider } from './web-socket/web-socket-provider';
|
||||||
import { ClangFormatter } from './clang-formatter';
|
import { ClangFormatter } from './clang-formatter';
|
||||||
import { FormatterPath } from '../common/protocol/formatter';
|
import { FormatterPath } from '../common/protocol/formatter';
|
||||||
|
import { LocalizationBackendContribution } from './i18n/localization-backend-contribution';
|
||||||
|
import { LocalizationBackendContribution as TheiaLocalizationBackendContribution } from '@theia/core/lib/node/i18n/localization-backend-contribution';
|
||||||
|
|
||||||
export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
||||||
bind(BackendApplication).toSelf().inSingletonScope();
|
bind(BackendApplication).toSelf().inSingletonScope();
|
||||||
@ -395,4 +397,8 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|||||||
bind(BackendApplicationContribution).toService(PlotterBackendContribution);
|
bind(BackendApplicationContribution).toService(PlotterBackendContribution);
|
||||||
bind(ArduinoLocalizationContribution).toSelf().inSingletonScope();
|
bind(ArduinoLocalizationContribution).toSelf().inSingletonScope();
|
||||||
bind(LocalizationContribution).toService(ArduinoLocalizationContribution);
|
bind(LocalizationContribution).toService(ArduinoLocalizationContribution);
|
||||||
|
bind(LocalizationBackendContribution).toSelf().inSingletonScope();
|
||||||
|
rebind(TheiaLocalizationBackendContribution).toService(
|
||||||
|
LocalizationBackendContribution
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
@ -11,142 +11,142 @@ export class ArduinoLocalizationContribution
|
|||||||
async registerLocalizations(registry: LocalizationRegistry): Promise<void> {
|
async registerLocalizations(registry: LocalizationRegistry): Promise<void> {
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'af',
|
'af',
|
||||||
require('../../build/i18n/af.json')
|
require('../../../build/i18n/af.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'en',
|
'en',
|
||||||
require('../../build/i18n/en.json')
|
require('../../../build/i18n/en.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'fr',
|
'fr',
|
||||||
require('../../build/i18n/fr.json')
|
require('../../../build/i18n/fr.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'ko',
|
'ko',
|
||||||
require('../../build/i18n/ko.json')
|
require('../../../build/i18n/ko.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'pt-br',
|
'pt-br',
|
||||||
require('../../build/i18n/pt.json')
|
require('../../../build/i18n/pt.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'uk_UA',
|
'uk_UA',
|
||||||
require('../../build/i18n/uk_UA.json')
|
require('../../../build/i18n/uk_UA.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'ar',
|
'ar',
|
||||||
require('../../build/i18n/ar.json')
|
require('../../../build/i18n/ar.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'es',
|
'es',
|
||||||
require('../../build/i18n/es.json')
|
require('../../../build/i18n/es.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'he',
|
'he',
|
||||||
require('../../build/i18n/he.json')
|
require('../../../build/i18n/he.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'my_MM',
|
'my_MM',
|
||||||
require('../../build/i18n/my_MM.json')
|
require('../../../build/i18n/my_MM.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'ro',
|
'ro',
|
||||||
require('../../build/i18n/ro.json')
|
require('../../../build/i18n/ro.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'zh-cn',
|
'zh-cn',
|
||||||
require('../../build/i18n/zh.json')
|
require('../../../build/i18n/zh.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'bg',
|
'bg',
|
||||||
require('../../build/i18n/bg.json')
|
require('../../../build/i18n/bg.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'eu',
|
'eu',
|
||||||
require('../../build/i18n/eu.json')
|
require('../../../build/i18n/eu.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'hu',
|
'hu',
|
||||||
require('../../build/i18n/hu.json')
|
require('../../../build/i18n/hu.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'ne',
|
'ne',
|
||||||
require('../../build/i18n/ne.json')
|
require('../../../build/i18n/ne.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'ru',
|
'ru',
|
||||||
require('../../build/i18n/ru.json')
|
require('../../../build/i18n/ru.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'zh_TW',
|
'zh_TW',
|
||||||
require('../../build/i18n/zh_TW.json')
|
require('../../../build/i18n/zh_TW.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'de',
|
'de',
|
||||||
require('../../build/i18n/de.json')
|
require('../../../build/i18n/de.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'fa',
|
'fa',
|
||||||
require('../../build/i18n/fa.json')
|
require('../../../build/i18n/fa.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'it',
|
'it',
|
||||||
require('../../build/i18n/it.json')
|
require('../../../build/i18n/it.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'nl',
|
'nl',
|
||||||
require('../../build/i18n/nl.json')
|
require('../../../build/i18n/nl.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'sv_SE',
|
'sv_SE',
|
||||||
require('../../build/i18n/sv_SE.json')
|
require('../../../build/i18n/sv_SE.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'el',
|
'el',
|
||||||
require('../../build/i18n/el.json')
|
require('../../../build/i18n/el.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'fil',
|
'fil',
|
||||||
require('../../build/i18n/fil.json')
|
require('../../../build/i18n/fil.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'ja',
|
'ja',
|
||||||
require('../../build/i18n/ja.json')
|
require('../../../build/i18n/ja.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'pl',
|
'pl',
|
||||||
require('../../build/i18n/pl.json')
|
require('../../../build/i18n/pl.json')
|
||||||
);
|
);
|
||||||
|
|
||||||
registry.registerLocalizationFromRequire(
|
registry.registerLocalizationFromRequire(
|
||||||
'tr',
|
'tr',
|
||||||
require('../../build/i18n/tr.json')
|
require('../../../build/i18n/tr.json')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
import * as express from 'express';
|
||||||
|
import { inject, injectable } from '@theia/core/shared/inversify';
|
||||||
|
import { LocalizationBackendContribution as TheiaLocalizationBackendContribution } from '@theia/core/lib/node/i18n/localization-backend-contribution';
|
||||||
|
import { PluginDeployer } from '@theia/plugin-ext/lib/common/plugin-protocol';
|
||||||
|
import { PluginDeployerImpl } from '@theia/plugin-ext/lib/main/node/plugin-deployer-impl';
|
||||||
|
import { Deferred } from '@theia/core/lib/common/promise-util';
|
||||||
|
|
||||||
|
@injectable()
|
||||||
|
export class LocalizationBackendContribution extends TheiaLocalizationBackendContribution {
|
||||||
|
@inject(PluginDeployer)
|
||||||
|
private readonly pluginDeployer: PluginDeployerImpl;
|
||||||
|
|
||||||
|
private readonly initialized = new Deferred<void>();
|
||||||
|
|
||||||
|
override async initialize(): Promise<void> {
|
||||||
|
this.pluginDeployer.onDidDeploy(() => {
|
||||||
|
this.initialized.resolve();
|
||||||
|
});
|
||||||
|
return super.initialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
override configure(app: express.Application): void {
|
||||||
|
app.get('/i18n/:locale', async (req, res) => {
|
||||||
|
let locale = req.params.locale;
|
||||||
|
/*
|
||||||
|
Waiting for the deploy of the language plugins is neecessary to avoid checking the available
|
||||||
|
languages before they're finished to be loaded: https://github.com/eclipse-theia/theia/issues/11471
|
||||||
|
*/
|
||||||
|
const start = performance.now();
|
||||||
|
await this.initialized.promise;
|
||||||
|
console.info(
|
||||||
|
'Waiting for the deploy of the language plugins took: ' +
|
||||||
|
(performance.now() - start) +
|
||||||
|
' ms.'
|
||||||
|
);
|
||||||
|
locale = this.localizationProvider
|
||||||
|
.getAvailableLanguages()
|
||||||
|
.some((e) => e.languageId === locale)
|
||||||
|
? locale
|
||||||
|
: 'en';
|
||||||
|
this.localizationProvider.setCurrentLanguage(locale);
|
||||||
|
res.send(this.localizationProvider.loadLocalization(locale));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user