nigo / doc-translator
用于创建带翻译文档的包
0.0.3
2024-01-21 02:53 UTC
Requires
- php: >=8
- ext-curl: *
- larapack/dd: ^1.1
- nigo/fb2-book: 0.0.1
- symfony/dotenv: ^6.4
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');