Версия:

Перевод бэкенда

Сообщения в возвратах методов классов, вызываемых через внетренее api переводится уже переводится автоматически (если включена настройка).

Чтобы переводить кастомные сообщения пользователю и элементы интерфейсов формируемые на бэкенде, имеются несколько функций.

Функции для перевода

*Отличие между функциями без “P” в окончании и с ним: Функция с “P” ассинхронная и используется там, где предусмотренн вызов ассинхронных функций. Она, как и описано выше, берет из кэша или ожидает завершения перевода (ограниченное время) и только если перевод не был найден или сделан за отведенное время, вернет исходный текст. Там где нельзя вызвать ассинхронную функцию, вызывается обычная. Она возвращает перевод из кэша, а если нет, то запускает процесс перевода, но сама, тут же возвращает исходный текст. При следующем вызове того той же функции/метода, пользователь уже получит переведенное сообщение/верстку (если перевод успеет завершиться).

Примеры

Абстрактные

toLangP

/**
* Description of the "exampleAddJohn" method
* Описание метода "exampleAddJohn".
*/
@OpenApi()
async exampleAddJohn(r: IAPIRequest<{ translate: boolean }>): Promise<IAPIResponse<
	{
			name: string,
			age?: number
			greetText: string
	}>> {

	const rParams: IAPIParams = r.params // Если нужны какие-нибудь системные параметры запроса, например fromClient 
	const params: IAPIQueryParams = r.data.params
	const translate = params.translate

	const usr = r.client._session.usr

	let res: IAPIResponse // Может быть использована многократно

	res = await r.api(Crm_user, 'add', {
			firstname: 'John',
			lastname: 'Doe',
			email: 'john.d@example.com'
	})
	if (res.code) return res
	console.log('Added successfully. ID:', res.data.id)

	const txt = 'Добро пожаловать в команду'
	const greetText = translate ? await toLangP(txt) : txt

	return new UserOk('Все ок', {name: usr.userData.fio, age: usr.userData.age, greetText})

}

toLang

function getNewsTitle(): string {
    return toLang('Свежие новости')
}