From 66357162f8e1227495f09bd4f68446aad7071c6d Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 12 Aug 2020 10:40:04 +0200 Subject: Migrate to $localize * Remove i18n polyfill to translate things in components * Reduce bundle sizes * Improve runtime perf * Reduce a lot the time to make a full client build * Reduce client build complexity * We don't need a service to translate things anymore (so we will be able to translate title pages etc) Unfortunately we may loose some translations in the migration process. I'll put a message on weblate to notify translators --- .../plugin-list-installed.component.ts | 16 +++++++--------- .../plugins/plugin-search/plugin-search.component.ts | 13 +++++-------- .../plugin-show-installed.component.ts | 4 +--- .../src/app/+admin/plugins/shared/plugin-api.service.ts | 10 ++++------ 4 files changed, 17 insertions(+), 26 deletions(-) (limited to 'client/src/app/+admin/plugins') diff --git a/client/src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts b/client/src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts index af31f1144..1ffd001c6 100644 --- a/client/src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts +++ b/client/src/app/+admin/plugins/plugin-list-installed/plugin-list-installed.component.ts @@ -4,7 +4,6 @@ import { ActivatedRoute, Router } from '@angular/router' import { PluginApiService } from '@app/+admin/plugins/shared/plugin-api.service' import { ComponentPagination, ConfirmService, hasMoreItems, Notifier } from '@app/core' import { PluginService } from '@app/core/plugins/plugin.service' -import { I18n } from '@ngx-translate/i18n-polyfill' import { compareSemVer } from '@shared/core-utils/miscs/miscs' import { PeerTubePlugin } from '@shared/models/plugins/peertube-plugin.model' import { PluginType } from '@shared/models/plugins/plugin.type' @@ -37,7 +36,6 @@ export class PluginListInstalledComponent implements OnInit { onDataSubject = new Subject() constructor ( - private i18n: I18n, private pluginService: PluginService, private pluginApiService: PluginApiService, private notifier: Notifier, @@ -88,10 +86,10 @@ export class PluginListInstalledComponent implements OnInit { getNoResultMessage () { if (this.pluginType === PluginType.PLUGIN) { - return this.i18n("You don't have plugins installed yet.") + return $localize`You don't have plugins installed yet.` } - return this.i18n("You don't have themes installed yet.") + return $localize`You don't have themes installed yet.` } isUpdateAvailable (plugin: PeerTubePlugin) { @@ -99,7 +97,7 @@ export class PluginListInstalledComponent implements OnInit { } getUpdateLabel (plugin: PeerTubePlugin) { - return this.i18n('Update to {{version}}', { version: plugin.latestVersion }) + return $localize`Update to ${plugin.latestVersion}` } isUpdating (plugin: PeerTubePlugin) { @@ -108,15 +106,15 @@ export class PluginListInstalledComponent implements OnInit { async uninstall (plugin: PeerTubePlugin) { const res = await this.confirmService.confirm( - this.i18n('Do you really want to uninstall {{pluginName}}?', { pluginName: plugin.name }), - this.i18n('Uninstall') + $localize`Do you really want to uninstall ${plugin.name}?`, + $localize`Uninstall` ) if (res === false) return this.pluginApiService.uninstall(plugin.name, plugin.type) .subscribe( () => { - this.notifier.success(this.i18n('{{pluginName}} uninstalled.', { pluginName: plugin.name })) + this.notifier.success($localize`${plugin.name} uninstalled.`) this.plugins = this.plugins.filter(p => p.name !== plugin.name) this.pagination.totalItems-- @@ -138,7 +136,7 @@ export class PluginListInstalledComponent implements OnInit { res => { this.updating[updatingKey] = false - this.notifier.success(this.i18n('{{pluginName}} updated.', { pluginName: plugin.name })) + this.notifier.success($localize`${plugin.name} updated.`) Object.assign(plugin, res) }, diff --git a/client/src/app/+admin/plugins/plugin-search/plugin-search.component.ts b/client/src/app/+admin/plugins/plugin-search/plugin-search.component.ts index ccf9f1ed5..1a6b4eba3 100644 --- a/client/src/app/+admin/plugins/plugin-search/plugin-search.component.ts +++ b/client/src/app/+admin/plugins/plugin-search/plugin-search.component.ts @@ -3,8 +3,7 @@ import { debounceTime, distinctUntilChanged } from 'rxjs/operators' import { Component, OnInit } from '@angular/core' import { ActivatedRoute, Router } from '@angular/router' import { PluginApiService } from '@app/+admin/plugins/shared/plugin-api.service' -import { ComponentPagination, ConfirmService, hasMoreItems, Notifier, ServerService } from '@app/core' -import { I18n } from '@ngx-translate/i18n-polyfill' +import { ComponentPagination, ConfirmService, hasMoreItems, Notifier } from '@app/core' import { PeerTubePluginIndex } from '@shared/models/plugins/peertube-plugin-index.model' import { PluginType } from '@shared/models/plugins/plugin.type' @@ -40,8 +39,6 @@ export class PluginSearchComponent implements OnInit { private searchSubject = new Subject() constructor ( - private server: ServerService, - private i18n: I18n, private pluginService: PluginApiService, private notifier: Notifier, private confirmService: ConfirmService, @@ -100,7 +97,7 @@ export class PluginSearchComponent implements OnInit { err => { console.error(err) - const message = this.i18n('The plugin index is not available. Please retry later.') + const message = $localize`The plugin index is not available. Please retry later.` this.notifier.error(message) } ) @@ -122,8 +119,8 @@ export class PluginSearchComponent implements OnInit { if (this.installing[plugin.npmName]) return const res = await this.confirmService.confirm( - this.i18n('Please only install plugins or themes you trust, since they can execute any code on your instance.'), - this.i18n('Install {{pluginName}}?', { pluginName: plugin.name }) + $localize`Please only install plugins or themes you trust, since they can execute any code on your instance.`, + $localize`Install ${plugin.name}?` ) if (res === false) return @@ -135,7 +132,7 @@ export class PluginSearchComponent implements OnInit { this.installing[plugin.npmName] = false this.pluginInstalled = true - this.notifier.success(this.i18n('{{pluginName}} installed.', { pluginName: plugin.name })) + this.notifier.success($localize`${plugin.name} installed.`) plugin.installed = true }, diff --git a/client/src/app/+admin/plugins/plugin-show-installed/plugin-show-installed.component.ts b/client/src/app/+admin/plugins/plugin-show-installed/plugin-show-installed.component.ts index dde03f1da..a33f01691 100644 --- a/client/src/app/+admin/plugins/plugin-show-installed/plugin-show-installed.component.ts +++ b/client/src/app/+admin/plugins/plugin-show-installed/plugin-show-installed.component.ts @@ -4,7 +4,6 @@ import { Component, OnDestroy, OnInit } from '@angular/core' import { ActivatedRoute } from '@angular/router' import { Notifier } from '@app/core' import { BuildFormArgument, FormReactive, FormValidatorService } from '@app/shared/shared-forms' -import { I18n } from '@ngx-translate/i18n-polyfill' import { PeerTubePlugin, RegisterServerSettingOptions } from '@shared/models' import { PluginApiService } from '../shared/plugin-api.service' @@ -22,7 +21,6 @@ export class PluginShowInstalledComponent extends FormReactive implements OnInit constructor ( protected formValidatorService: FormValidatorService, - private i18n: I18n, private pluginService: PluginApiService, private notifier: Notifier, private route: ActivatedRoute @@ -50,7 +48,7 @@ export class PluginShowInstalledComponent extends FormReactive implements OnInit this.pluginService.updatePluginSettings(this.plugin.name, this.plugin.type, settings) .subscribe( () => { - this.notifier.success(this.i18n('Settings updated.')) + this.notifier.success($localize`Settings updated.`) }, err => this.notifier.error(err.message) diff --git a/client/src/app/+admin/plugins/shared/plugin-api.service.ts b/client/src/app/+admin/plugins/shared/plugin-api.service.ts index 1fb827832..b28d46df4 100644 --- a/client/src/app/+admin/plugins/shared/plugin-api.service.ts +++ b/client/src/app/+admin/plugins/shared/plugin-api.service.ts @@ -4,7 +4,6 @@ import { HttpClient, HttpParams } from '@angular/common/http' import { Injectable } from '@angular/core' import { ComponentPagination, RestExtractor, RestService } from '@app/core' import { PluginService } from '@app/core/plugins/plugin.service' -import { I18n } from '@ngx-translate/i18n-polyfill' import { peertubeTranslate } from '@shared/core-utils/i18n' import { InstallOrUpdatePlugin, @@ -25,18 +24,17 @@ export class PluginApiService { private authHttp: HttpClient, private restExtractor: RestExtractor, private restService: RestService, - private i18n: I18n, private pluginService: PluginService ) { } getPluginTypeOptions () { return [ { - label: this.i18n('Plugins'), + label: $localize`Plugins`, value: PluginType.PLUGIN }, { - label: this.i18n('Themes'), + label: $localize`Themes`, value: PluginType.THEME } ] @@ -44,10 +42,10 @@ export class PluginApiService { getPluginTypeLabel (type: PluginType) { if (type === PluginType.PLUGIN) { - return this.i18n('plugin') + return $localize`plugin` } - return this.i18n('theme') + return $localize`theme` } getPlugins ( -- cgit v1.2.3