Skip to content

Commit 4ddf0a0

Browse files
author
Alberto Iannaccone
committed
get all available languages
1 parent f22be3c commit 4ddf0a0

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

Diff for: arduino-ide-extension/src/node/arduino-ide-backend-module.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ import {
8282
} from '../common/protocol/authentication-service';
8383
import { ArduinoFirmwareUploaderImpl } from './arduino-firmware-uploader-impl';
8484
import { PlotterBackendContribution } from './plotter/plotter-backend-contribution';
85-
import { ArduinoLocalizationContribution } from './arduino-localization-contribution';
85+
import { ArduinoLocalizationContribution } from './i18n/arduino-localization-contribution';
8686
import { LocalizationContribution } from '@theia/core/lib/node/i18n/localization-contribution';
8787
import { MonitorManagerProxyImpl } from './monitor-manager-proxy-impl';
8888
import { MonitorManager, MonitorManagerName } from './monitor-manager';
@@ -102,6 +102,8 @@ import WebSocketProviderImpl from './web-socket/web-socket-provider-impl';
102102
import { WebSocketProvider } from './web-socket/web-socket-provider';
103103
import { ClangFormatter } from './clang-formatter';
104104
import { FormatterPath } from '../common/protocol/formatter';
105+
import { LocalizationBackendContribution } from './i18n/localization-backend-contribution';
106+
import { LocalizationBackendContribution as TheiaLocalizationBackendContribution } from '@theia/core/lib/node/i18n/localization-backend-contribution';
105107

106108
export default new ContainerModule((bind, unbind, isBound, rebind) => {
107109
bind(BackendApplication).toSelf().inSingletonScope();
@@ -395,4 +397,8 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
395397
bind(BackendApplicationContribution).toService(PlotterBackendContribution);
396398
bind(ArduinoLocalizationContribution).toSelf().inSingletonScope();
397399
bind(LocalizationContribution).toService(ArduinoLocalizationContribution);
400+
bind(LocalizationBackendContribution).toSelf().inSingletonScope();
401+
rebind(TheiaLocalizationBackendContribution).toService(
402+
LocalizationBackendContribution
403+
);
398404
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { injectable } from '@theia/core/shared/inversify';
2+
import { LocalizationBackendContribution as TheiaLocalizationBackendContribution } from '@theia/core/lib/node/i18n/localization-backend-contribution';
3+
import * as express from 'express';
4+
5+
@injectable()
6+
export class LocalizationBackendContribution extends TheiaLocalizationBackendContribution {
7+
override configure(app: express.Application): void {
8+
app.get('/i18n/:locale', (req, res) => {
9+
let locale = req.params.locale;
10+
locale = this.localizationProvider
11+
.getAvailableLanguages(true) // passing true is necessary to retrieve all the languages: https://github.com/eclipse-theia/theia/issues/11471
12+
.some((e) => e.languageId === locale)
13+
? locale
14+
: 'en';
15+
this.localizationProvider.setCurrentLanguage(locale);
16+
res.send(this.localizationProvider.loadLocalization(locale));
17+
});
18+
}
19+
}

0 commit comments

Comments
 (0)