2024-05-23 09:42:14 +00:00
|
|
|
// SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
|
|
|
|
//
|
|
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
|
2023-09-06 15:58:54 +00:00
|
|
|
import type { RegisterClientOptions } from '@peertube/peertube-types/client'
|
|
|
|
import { helpUrl } from 'shared/lib/help'
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the current language code.
|
|
|
|
* This is the code that correspond to the path for localized documentation
|
|
|
|
* (in other words: 'fr', not 'fr-FR')
|
|
|
|
* @param clientOptions client options
|
|
|
|
* @returns language code
|
|
|
|
*/
|
|
|
|
async function getLangCode ({ peertubeHelpers }: RegisterClientOptions): Promise<string> {
|
|
|
|
// See the build-languages.js script for more information about this trick.
|
|
|
|
const s = await peertubeHelpers.translate('_language')
|
|
|
|
if (s === '_language') {
|
|
|
|
return 'en'
|
|
|
|
}
|
|
|
|
return s
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the url of the documentation, in the current user language.
|
|
|
|
* @param clientOptions client options
|
|
|
|
*/
|
|
|
|
async function localizedHelpUrl (
|
|
|
|
clientOptions: RegisterClientOptions,
|
|
|
|
helpUrlOptions: Parameters<typeof helpUrl>[0]
|
|
|
|
): Promise<string> {
|
|
|
|
const lang = (await getLangCode(clientOptions)).toLowerCase() // lowercase is needed for zh-hans for example
|
|
|
|
if (lang === 'en') {
|
|
|
|
return helpUrl(helpUrlOptions)
|
|
|
|
}
|
|
|
|
return helpUrl(Object.assign({}, helpUrlOptions, { lang }))
|
|
|
|
}
|
|
|
|
|
|
|
|
export {
|
|
|
|
localizedHelpUrl
|
|
|
|
}
|