mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 11:29:46 +00:00
55 lines
1.8 KiB
TypeScript
55 lines
1.8 KiB
TypeScript
import { DittoConf } from '@ditto/conf';
|
|
import { detectLanguage } from '@ditto/lang';
|
|
import { assertEquals } from '@std/assert';
|
|
|
|
import { LibreTranslateTranslator } from './LibreTranslateTranslator.ts';
|
|
|
|
const {
|
|
libretranslateBaseUrl: baseUrl,
|
|
libretranslateApiKey: apiKey,
|
|
translationProvider,
|
|
} = new DittoConf(Deno.env);
|
|
|
|
const libretranslate = 'libretranslate';
|
|
|
|
Deno.test('LibreTranslate translation with source language omitted', {
|
|
ignore: !(translationProvider === libretranslate && apiKey),
|
|
}, async () => {
|
|
const translator = new LibreTranslateTranslator({ fetch: fetch, baseUrl, apiKey: apiKey! });
|
|
|
|
const data = await translator.translate(
|
|
[
|
|
'Bom dia amigos',
|
|
'Meu nome é Patrick, um nome belo ou feio? A questão é mais profunda do que parece.',
|
|
'A respiração é mais importante do que comer e tomar agua.',
|
|
],
|
|
undefined,
|
|
'ca',
|
|
);
|
|
|
|
assertEquals(data.source_lang, 'pt');
|
|
assertEquals(detectLanguage(data.results[0], 0), 'ca');
|
|
assertEquals(detectLanguage(data.results[1], 0), 'ca');
|
|
assertEquals(detectLanguage(data.results[2], 0), 'ca');
|
|
});
|
|
|
|
Deno.test('LibreTranslate translation with source language set', {
|
|
ignore: !(translationProvider === libretranslate && apiKey),
|
|
}, async () => {
|
|
const translator = new LibreTranslateTranslator({ fetch: fetch, baseUrl, apiKey: apiKey! });
|
|
|
|
const data = await translator.translate(
|
|
[
|
|
'Bom dia amigos',
|
|
'Meu nome é Patrick, um nome belo ou feio? A questão é mais profunda do que parece.',
|
|
'A respiração é mais importante do que comer e tomar agua.',
|
|
],
|
|
'pt',
|
|
'ca',
|
|
);
|
|
|
|
assertEquals(data.source_lang, 'pt');
|
|
assertEquals(detectLanguage(data.results[0], 0), 'ca');
|
|
assertEquals(detectLanguage(data.results[1], 0), 'ca');
|
|
assertEquals(detectLanguage(data.results[2], 0), 'ca');
|
|
});
|