nigo/doc-translator
最新稳定版本:0.0.3
Composer 安装命令:
composer require nigo/doc-translator
包简介
Пакет для создания документов с переводом
README 文档
README
Содержание
Установка
composer require nigo/doc-translator
Класс SimpleDocument
$generator = new SimpleDocument('lang', 'path_to_save');
Класс Fb2ParallelDocumentGenerator принимает два параметра при создании: язык и путь к папке, куда будет сохранятся файл.
generateByFile()
Метод принимает файл, который нужно перевести, и название файла, которое будет у перевода, и возвращает false, если файл не создался, или размер файла
$generator->generateByFile('file_for_translate', 'filename');
generate()
Метод принимает текст, который нужно перевести, и название файла, которое будет у перевода, и возвращает false, если файл не создался, или размер файла
$generator->generate('text', 'filename');
ВСЕ ПРИМЕРЫ РАБОТАЮТ С КЛАССОМ LibreTranslator, КОТОРЫЙ ОСНОВАН НА API ИЗ ЭТОГО РЕПОЗИТОРИЯ.
setNewTranslator()
Класс Fb2ParallelDocumentGenerator в конструкторе создает переводчик.
$this->translator = new LibreTranslator();
Для изменения переводчика можно использовать следующий метод
public function setNewTranslator(TranslatorAbstract $translator): void { $this->translator = $translator; }
В проекте реализован класс LibreTranslator,
который работает на основе API из этого репозитория.
Чтобы создать свою реализацию переводчика, нужно создать класс, который будет занаследован от
abstract class TranslatorAbstract { }
далее нужно будет создать свою реализацию метода translate().
Иногда API может присылать не то, что мы хотим (LibreTranslator иногда не переводит имена, названия каких-либо мест и т.п. и возвращает ответ, где указывается, что язык выбран неправильно), и для более удобной отладки, ответы,
которые не имеют статус 200, могут записываться в файл ./storage/logs/day_moth_year.txt,
для этого при создании переводчика нужно передать true в параметр logState.
new LibreTranslator(true);
Изменить состояние для логов можно с помощью метода
public function setLogState(bool $state): void { $this->logState = $state; }
Или из класса Fb2ParallelDocumentGenerator
public function setLogStateForTranslator(bool $state): void { $this->translator = new LibreTranslator($state); }
Класс Fb2ParallelDocumentGenerator
Работает аналогично классу SimpleDocument, но создает документ в формате FB2 с параллельным переводом.
$generator = new Fb2ParallelDocumentGenerator('lang', 'path_to_save'); $generator->generateByFile('path_to_file', 'filename');
Перевод
Тестовые тексты для перевода берутся из ./storage/test_doc/.
One_Day-Helen_Naylor.txt - большой текст и text.txt - маленький текст.
Класс SimpleFB2
Класс создает файл FB2 формата без перевода.
$document = new SimpleFB2('path_to_save'); $document->generateByFile('path_to_file', 'filename');
统计信息
- 总下载量: 5
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-01-19
