diff --git a/webapp/packages/product-default/src/LocaleService.ts b/webapp/packages/product-default/src/LocaleService.ts new file mode 100644 index 0000000000..e3649a06b4 --- /dev/null +++ b/webapp/packages/product-default/src/LocaleService.ts @@ -0,0 +1,35 @@ +/* + * CloudBeaver - Cloud Database Manager + * Copyright (C) 2020-2023 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0. + * you may not use this file except in compliance with the License. + */ +import { Bootstrap, injectable } from '@cloudbeaver/core-di'; +import { LocalizationService } from '@cloudbeaver/core-localization'; + +@injectable() +export class LocaleService extends Bootstrap { + constructor(private readonly localizationService: LocalizationService) { + super(); + } + + register(): void | Promise { + this.localizationService.addProvider(this.provider.bind(this)); + } + + load(): void | Promise {} + + private async provider(locale: string) { + switch (locale) { + case 'ru': + return (await import('./locales/ru')).default; + case 'it': + return (await import('./locales/it')).default; + case 'zh': + return (await import('./locales/zh')).default; + default: + return (await import('./locales/en')).default; + } + } +} diff --git a/webapp/packages/product-default/src/locales/en.ts b/webapp/packages/product-default/src/locales/en.ts new file mode 100644 index 0000000000..4e6434307f --- /dev/null +++ b/webapp/packages/product-default/src/locales/en.ts @@ -0,0 +1,4 @@ +export default [ + ['product_name', 'CE'], + ['product_full_name', 'CloudBeaver Community'], +]; diff --git a/webapp/packages/product-default/src/locales/it.ts b/webapp/packages/product-default/src/locales/it.ts new file mode 100644 index 0000000000..4e6434307f --- /dev/null +++ b/webapp/packages/product-default/src/locales/it.ts @@ -0,0 +1,4 @@ +export default [ + ['product_name', 'CE'], + ['product_full_name', 'CloudBeaver Community'], +]; diff --git a/webapp/packages/product-default/src/locales/ru.ts b/webapp/packages/product-default/src/locales/ru.ts new file mode 100644 index 0000000000..4e6434307f --- /dev/null +++ b/webapp/packages/product-default/src/locales/ru.ts @@ -0,0 +1,4 @@ +export default [ + ['product_name', 'CE'], + ['product_full_name', 'CloudBeaver Community'], +]; diff --git a/webapp/packages/product-default/src/locales/zh.ts b/webapp/packages/product-default/src/locales/zh.ts new file mode 100644 index 0000000000..4e6434307f --- /dev/null +++ b/webapp/packages/product-default/src/locales/zh.ts @@ -0,0 +1,4 @@ +export default [ + ['product_name', 'CE'], + ['product_full_name', 'CloudBeaver Community'], +]; diff --git a/webapp/packages/product-default/src/manifest.ts b/webapp/packages/product-default/src/manifest.ts index 6ad91cadbd..7663e77c49 100644 --- a/webapp/packages/product-default/src/manifest.ts +++ b/webapp/packages/product-default/src/manifest.ts @@ -7,6 +7,7 @@ */ import type { PluginManifest } from '@cloudbeaver/core-di'; +import { LocaleService } from './LocaleService'; import { ProductBootstrap } from './ProductBootstrap'; import { ProductConfigService } from './ProductConfigService'; @@ -15,5 +16,5 @@ export const defaultProductManifest: PluginManifest = { name: 'Default Product', }, - providers: [ProductBootstrap, ProductConfigService], + providers: [ProductBootstrap, ProductConfigService, LocaleService], };