Allow plugins to set short translation locale
This commit is contained in:
parent
24a792404c
commit
67baf6478a
3 changed files with 10 additions and 8 deletions
|
@ -23,6 +23,7 @@ import { PluginLibrary, RegisterServerAuthExternalOptions, RegisterServerAuthPas
|
|||
import { ClientHtml } from '../client-html'
|
||||
import { RegisterHelpers } from './register-helpers'
|
||||
import { installNpmPlugin, installNpmPluginFromDisk, removeNpmPlugin } from './yarn'
|
||||
import { getCompleteLocale } from '@shared/core-utils'
|
||||
|
||||
export interface RegisteredPlugin {
|
||||
npmName: string
|
||||
|
@ -444,10 +445,12 @@ export class PluginManager implements ServerHook {
|
|||
const path = translationPaths[locale]
|
||||
const json = await readJSON(join(this.getPluginPath(plugin.name, plugin.type), path))
|
||||
|
||||
if (!this.translations[locale]) this.translations[locale] = {}
|
||||
this.translations[locale][npmName] = json
|
||||
const completeLocale = getCompleteLocale(locale)
|
||||
|
||||
logger.info('Added locale %s of plugin %s.', locale, npmName)
|
||||
if (!this.translations[completeLocale]) this.translations[completeLocale] = {}
|
||||
this.translations[completeLocale][npmName] = json
|
||||
|
||||
logger.info('Added locale %s of plugin %s.', completeLocale, npmName)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -75,9 +75,9 @@ export function isDefaultLocale (locale: string) {
|
|||
}
|
||||
|
||||
export function peertubeTranslate (str: string, translations?: { [ id: string ]: string }) {
|
||||
// FIXME: remove disable rule when the client is upgraded to typescript 3.7
|
||||
// eslint-disable-next-line
|
||||
return translations && translations[str] ? translations[str] : str
|
||||
if (!translations || !translations[str]) return str
|
||||
|
||||
return translations[str]
|
||||
}
|
||||
|
||||
const possiblePaths = POSSIBLE_LOCALES.map(l => '/' + l)
|
||||
|
|
|
@ -744,7 +744,7 @@ If you want to translate strings of your plugin (like labels of your registered
|
|||
{
|
||||
...,
|
||||
"translations": {
|
||||
"fr-FR": "./languages/fr.json",
|
||||
"fr": "./languages/fr.json",
|
||||
"pt-BR": "./languages/pt-BR.json"
|
||||
},
|
||||
...
|
||||
|
@ -752,7 +752,6 @@ If you want to translate strings of your plugin (like labels of your registered
|
|||
```
|
||||
|
||||
The key should be one of the locales defined in [i18n.ts](https://github.com/Chocobozzz/PeerTube/blob/develop/shared/models/i18n/i18n.ts).
|
||||
You **must** use the complete locales (`fr-FR` instead of `fr`).
|
||||
|
||||
Translation files are just objects, with the english sentence as the key and the translation as the value.
|
||||
`fr.json` could contain for example:
|
||||
|
|
Loading…
Reference in a new issue