承接 nigo/doc-translator 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-01-19