peertube-plugin-livechat/conversejs/custom/shared/lib/help.js

49 lines
1.4 KiB
JavaScript

// SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
//
// SPDX-License-Identifier: AGPL-3.0-only
import { __ } from 'i18n'
/**
* Returns the current language code.
* This is the code that correspond to the path for localized documentation
* (in other words: 'fr', not 'fr-FR').
* This is the 'ConverseJS version' of the same function in `client/utils/help`.
* @returns language code
*/
function getLangCode () {
// See the build-languages.js script for more information about this trick.
const s = __('_livechat_language')
if (s === '_livechat_language') {
return 'en'
}
return s
}
function helpUrl (options) {
let url = 'https://livingston.frama.io/peertube-plugin-livechat/'
if (options.lang && /^[a-zA-Z_-]+$/.test(options.lang)) {
url = url + options.lang + '/'
}
if (options.page && /^[\w/-]+$/.test(options.page)) {
url = url + options.page + '/'
}
return url
}
/**
* Returns the url of the documentation, in the current user language.
* This is the 'ConverseJS version' of the same function in `client/utils/help`.
*/
function converseLocalizedHelpUrl (helpUrlOptions) {
const lang = getLangCode().toLowerCase() // lowercase is needed for zh-hans for example
if (lang === 'en') {
return helpUrl(helpUrlOptions)
}
return helpUrl(Object.assign({}, helpUrlOptions, { lang }))
}
export {
converseLocalizedHelpUrl
}