From c713017f3cd2d617da22c24c579342ec4121cfcd Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 9 Apr 2021 13:21:33 +0200 Subject: Translate plugin options --- client/src/app/core/plugins/plugin.service.ts | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'client/src/app/core') diff --git a/client/src/app/core/plugins/plugin.service.ts b/client/src/app/core/plugins/plugin.service.ts index 54dba5e17..c2dcf9fef 100644 --- a/client/src/app/core/plugins/plugin.service.ts +++ b/client/src/app/core/plugins/plugin.service.ts @@ -46,7 +46,10 @@ export class PluginService implements ClientHook { customModal: CustomModalComponent private plugins: ServerConfigPlugin[] = [] + private helpers: { [ npmName: string ]: RegisterClientHelpers } = {} + private scopes: { [ scopeName: string ]: PluginInfo[] } = {} + private loadedScripts: { [ script: string ]: boolean } = {} private loadedScopes: PluginClientScope[] = [] private loadingScopes: { [id in PluginClientScope]?: boolean } = {} @@ -197,13 +200,28 @@ export class PluginService implements ClientHook { return this.formFields.video.filter(f => f.videoFormOptions.type === type) } + translateBy (npmName: string, toTranslate: string) { + const helpers = this.helpers[npmName] + if (!helpers) { + console.error('Unknown helpers to translate %s from %s.', toTranslate, npmName) + return toTranslate + } + + return helpers.translate(toTranslate) + } + private loadPlugin (pluginInfo: PluginInfo) { return this.zone.runOutsideAngular(() => { + const npmName = this.nameToNpmName(pluginInfo.plugin.name, pluginInfo.pluginType) + + const helpers = this.buildPeerTubeHelpers(pluginInfo) + this.helpers[npmName] = helpers + return loadPlugin({ hooks: this.hooks, formFields: this.formFields, pluginInfo, - peertubeHelpersFactory: pluginInfo => this.buildPeerTubeHelpers(pluginInfo) + peertubeHelpersFactory: () => helpers }) }) } -- cgit v1.2.3