Вопрос или проблема
Я пишу небольшое приложение для перевода японского текста на английский. Идея состоит в том, чтобы разбить текст на абзацы, машинно перевести каждый абзац, а затем позволить пользователю исправить переведенный текст. Приложение будет построено определенным образом, чтобы его было удобно использовать (если вам интересно, почему я действительно стараюсь написать это, а не пытаюсь по удаче найти существующее приложение). Теперь проблема заключается в машинном переводе с японского на английский.
Мне нужен сторонний инструмент, который я могу вызвать из своего приложения.
Сначала я думал, что просто воспользуюсь Google Переводчиком для этого, но оказывается (в отличие от веб-страницы и приложения для Android), API Google Переводчика является платной услугой, и мне не хочется ничего платить за проект, над которым я работаю в свободное время (тем более сообщать Google номер своей кредитной карты).
Я ищу альтернативу (предпочтительно оффлайн). Что-то вроде консольного приложения, которое работает под Windows.
Я поискал в глубинах интернета, но в основном ничего не нашел (в оффлайн-разделе). Я наткнулся на несколько механизмов перевода с открытым исходным кодом, но чтобы использовать их, мне сначала нужно было бы научить их немного японскому*.
Я также наткнулся на libtranslate, который, похоже, просто использует онлайн-сервисы (вероятно, ни один из них все еще доступен). Мне удалось скомпилировать это на Windows, но что бы я ни делал, я не могу заставить его загрузить список услуг.
*Если ничего не будет найдено, я попробую этим заняться. Киотская задача свободного перевода кажется, предоставляет углубленную информацию по этому поводу. Но понять все это и применить потребует много работы/времени (чего бы мне хотелось избежать, если возможно).
Translate Shell может быть именно тем, что вы ищете; это бесплатно, поддерживает японский.
Однако есть особенность… чтобы запустить это в среде Windows, вам потребуется установить Cygwin. Не уверен, станет ли это препятствием или нет.
Заметки от задающего вопрос
Запускать это с помощью Cygwin на Windows для меня немного неудобно, но после некоторых проб я смог “извлечь” необходимые файлы из Cygwin и теперь могу запускать это прямо из Windows (или из cmd
). Чтобы иметь возможность запускать Translate Shell вне Cygwin, вам нужно скопировать следующие файлы (из Cygwin, конечно):
- sh.exe
- cyggcc_s-1.dll
- cygwin1.dll
- cygintl-8.dll
- cygncursesw-10.dll
- gawk.exe
- cyggmp-10.dll
- cygmpfr-4.dll
- cygreadline7.dll
- cygiconv-2.dll
Есть еще одна вещь, которая необходима для работы этого. Вы должны добавить путь к папке, содержащей gawk.exe
, в переменную окружения PATH
. Я сохранил все скопированные файлы в одной директории и протестировал это в cmd
, поэтому запуск
SET PATH=%PATH%;.
один раз сделал возможным запуск Translate Shell.
Пример использования:
sh trans.sh "Saluton, Mundo"
При использовании Translate Shell в batch
файле может потребоваться установить кодировку на UTF-8 (если язык, с которого/на который вы переводите, использует символы UTF-8). Это можно сделать с помощью:
chcp 65001
В общем, если вы хотите сделать пакетный файл, который переводит какой-то текст и т. д., он будет выглядеть так:
chcp 65001
SET PATH=%PATH%;.
sh trans.sh "Saluton, Mondo"
Если вы хотите сохранить вывод в файл, вы можете добавить > output.txt
к последней строке.
sh trans.sh "Saluton, Mondo" > output.txt
В таких файлах есть некоторые специальные символы/последовательности [1m
и [21m
(заметьте, что эти последовательности начинаются с невидимого символа ASCII 27; я думаю, что они обозначают начало и конец некоторых строк). Я не совсем разобрался, что это, но они вероятно помогут упростить анализ вывода.
ОБНОВЛЕНИЕ
Чтобы упростить использование Translate Shell под Windows, вы можете положить этот пакет в папку, содержащую скрипт и исполняемые файлы:
@echo off >nul 2>nul
chcp 65001 >nul 2>nul
SET PATH=%PATH%;. >nul 2>nul
sh trans.sh %*
Предполагая, что ваша копия Translate Shell называется trans.sh
, а этот пакет вы назвали trans.bat
, вы можете использовать его в командной строке (и в других местах) так же, как вы использовали бы Translate Shell на Linux. Другими словами, вы можете использовать его следующим образом:
trans "Saluton, Mondo"
Ответ или решение
Командная строка для машинного перевода с японского на английский: рекомендации и инструкции
Введение
Создание приложения для перевода японского текста на английский является несомненно увлекательной задачей, особенно если вы хотите упростить и оптимизировать процесс перевода, разбивая текст на параграфы и позволяя пользователю вносить исправления. Один из основных аспектов вашего проекта — нахождение подходящего инструмента для машинного перевода, который можно вызвать из вашего приложения. В данной статье мы рассмотрим доступные альтернативы, а также предоставим подробные инструкции по использованию одной из наиболее подходящих.
Оптимальный инструмент: Translate Shell
Одним из наиболее подходящих инструментов для вашей задачи является Translate Shell, который представляет собой удобную утилиту для выполнения перевода из командной строки. Она бесплатна, поддерживает множество языков, включая японский, и вполне может быть использована в вашей разработке.
Установка Translate Shell
Поскольку Translate Shell изначально разработан для Linux, использовать его на Windows может быть немного сложно, однако есть способ обойти это ограничение:
-
Установите Cygwin: Cygwin предоставляет среду, которая позволяет запускать многие инструменты Unix в Windows. Вам нужно будет скачать и установить Cygwin с официального сайта.
-
Скопируйте необходимые файлы: Чтобы вы могли запускать Translate Shell без Cygwin, вам необходимо извлечь несколько файлов из Cygwin. Скопируйте следующие файлы из каталога установки Cygwin в отдельную папку:
sh.exe
cyggcc_s-1.dll
cygwin1.dll
cygintl-8.dll
cygncursesw-10.dll
gawk.exe
cyggmp-10.dll
cygmpfr-4.dll
cygreadline7.dll
cygiconv-2.dll
-
Настройте переменные окружения: Добавьте путь к папке, содержащей
gawk.exe
, в переменную окруженияPATH
. Для этого выполните команду в командной строке Windows:SET PATH=%PATH%;.
-
Запуск Translate Shell: Теперь вы сможете запустить Translate Shell. Пример команды выглядит следующим образом:
sh trans.sh "Ваш текст для перевода"
Применение в сценариях
Если вы планируете автоматизировать перевод с помощью пакетного файла, вам может понадобиться установить кодировку UTF-8. Это можно сделать, выполнив команду:
chcp 65001
Ваш пакетный файл может выглядеть так:
@echo off
chcp 65001
SET PATH=%PATH%;.
sh trans.sh "Ваш текст" > output.txt
Таким образом, перевод будет осуществляться, а результат сохраняется в файл output.txt
.
Работа с выводом
Учтите, что при выводе возможно наличие специальных символов, таких как [1m
и [21m
, которые могут затруднять дальнейшую обработку текста. Наши рекомендации касаются использования подходящих инструментов для идентификации и обработки таких символов, что может облегчить извлечение текста перевода.
Заключение
Использование Translate Shell в среде Windows может показаться сложным, однако представленные инструкции помогут вам без труда интегрировать его в ваше приложение. Это позволит вам осуществлять качественный и доступный перевод японского текста на английский без дополнительных расходов и сложных манипуляций. Создание собственного переводческого приложения — это значительное достижение, которое сделает процесс перевода более комфортным и эффективным, особенно если вы будете работать над его корректировками и улучшениями с участием пользователей.