Now formating apply only for russian language

This commit is contained in:
Himickoff 2024-07-14 00:58:59 +07:00
parent c0d05040e6
commit 9cdf2216a2
1 changed files with 38 additions and 24 deletions

View File

@ -77,12 +77,15 @@ router.post('/google', jsonParser, async (request, response) => {
console.log('Input text:', text); console.log('Input text:', text);
console.log('----------'); console.log('----------');
// Заменяем кавычки и звездочки на специальные маркеры перед переводом с пробелами let originalText = text;
// Применяем форматирование только если язык перевода - русский
if (lang === 'ru') {
// Заменяем кавычки и звездочки на специальные маркеры перед переводом
const openQuote = '__OPEN_QUOTE__ '; const openQuote = '__OPEN_QUOTE__ ';
const closeQuote = ' __CLOSE_QUOTE__'; const closeQuote = ' __CLOSE_QUOTE__';
const openStar = '__OPEN_STAR__ '; const openStar = '__OPEN_STAR__ ';
const closeStar = ' __CLOSE_STAR__'; const closeStar = ' __CLOSE_STAR__';
// Очень редкий случай, вызванный правилами русской граматики // Очень редкий случай, вызванный правилами русской граматики
const very_rare_execption = '__OPEN_STAR__, '; const very_rare_execption = '__OPEN_STAR__, ';
@ -95,6 +98,7 @@ router.post('/google', jsonParser, async (request, response) => {
console.log('Pre-Input text:', text); console.log('Pre-Input text:', text);
console.log('----------'); console.log('----------');
}
const url = generateRequestUrl(text, { to: lang }); const url = generateRequestUrl(text, { to: lang });
@ -107,20 +111,30 @@ router.post('/google', jsonParser, async (request, response) => {
resp.on('end', () => { resp.on('end', () => {
try { try {
// Декодируем весь ответ после получения всех частей let result;
if (lang === 'ru') {
// Декодирование и нормализация только для русского языка
const decodedData = iconv.decode(Buffer.concat(data), 'utf-8'); const decodedData = iconv.decode(Buffer.concat(data), 'utf-8');
const result = normaliseResponse(JSON.parse(decodedData)); result = normaliseResponse(JSON.parse(decodedData));
} else {
// Для других языков используем данные как есть
result = JSON.parse(Buffer.concat(data).toString());
}
console.log('Pre-Translated text:', result.text); console.log('Pre-Translated text:', result.text);
console.log('----------'); console.log('----------');
// Восстанавливаем кавычки и звездочки после перевода
let fixedText = result.text
.replace(new RegExp(openQuote, 'g'), '"')
.replace(new RegExp(closeQuote, 'g'), '"')
.replace(new RegExp(openStar, 'g'), '*')
.replace(new RegExp(closeStar, 'g'), '*')
.replace(new RegExp(very_rare_execption, 'g'), '*');
let fixedText = result.text;
// Восстанавливаем форматирование только если язык перевода - русский
if (lang === 'ru') {
fixedText = result.text
.replace(new RegExp('__OPEN_QUOTE__ ', 'g'), '"')
.replace(new RegExp(' __CLOSE_QUOTE__', 'g'), '"')
.replace(new RegExp('__OPEN_STAR__ ', 'g'), '*')
.replace(new RegExp(' __CLOSE_STAR__', 'g'), '*')
.replace(new RegExp('__OPEN_STAR__, ', 'g'), '*');
}
console.log('Translated text:', fixedText); console.log('Translated text:', fixedText);