nigo/doc-translator

用于创建带翻译文档的包

0.0.3 2024-01-21 02:53 UTC

This package is auto-updated.

Last update: 2024-09-03 15:18:17 UTC


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');

所有示例均使用基于该 仓库 API 的 LibreTranslator 类。

setNewTranslator()

Fb2ParallelDocumentGenerator 在构造函数中创建翻译器。

$this->translator = new LibreTranslator();

要更改翻译器,可以使用以下方法

public function setNewTranslator(TranslatorAbstract $translator): void
{
    $this->translator = $translator;
}

项目中实现了基于该 仓库 API 的 LibreTranslator 类。

要创建自己的翻译器实现,需要创建一个继承自的类

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');