Now formating apply only for russian language
This commit is contained in:
parent
c0d05040e6
commit
9cdf2216a2
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue