peertube-plugin-livechat/client/utils/help.ts
2024-05-23 11:42:14 +02:00

42 lines
1.3 KiB
TypeScript

// SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
//
// SPDX-License-Identifier: AGPL-3.0-only
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
}