joeybab3 / phphtmltranslator
PHP HTML 翻译器
v1.0.2
2023-10-23 22:57 UTC
Requires
README
PHP HTML 翻译器
使用 Stichoza 的 Google Translate PHP 将 HTML 翻译成目标语言: https://github.com/Stichoza/google-translate-php
它具有所有相同的限制,即由于它使用免费的 Google Translate API,您可能会遇到速率限制或临时 IP 禁止。
它使用 SQL 数据库来缓存之前翻译的标记,因此通过它重复运行 HTML(仅进行少量更改)将更快。
设置
composer require joeybab3/phphtmltranslator
安装后,在某个地方运行以下 PHP 命令
<?php require_once('vendor/autoload.php'); use Joeybab3\HTMLTranslator\HTMLTranslator as Translator; $dsn = "mysql:host=127.0.0.1;dbname=database_name;charset=$charset"; $username = ""; $password = ""; try { $db = new PDO($dsn, $username, $password); } catch (\PDOException $e) { throw new \PDOException($e->getMessage(), (int)$e->getCode()); } Translator::createTranslationCacheTable($db);
这将创建缓存表。或者,您可以自己创建表
CREATE TABLE `translations` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `text` text, `result` text, `lang` varchar(4) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
然后您可以使用它来翻译 HTML
<?php require_once('vendor/autoload.php'); use Joeybab3\HTMLTranslator\HTMLTranslator as Translator; $TR = new Translator($db, "es"); // translate to Spanish $html = "<div class='test'><span>This text is not bold but <b>this text is bold</b></span><span>This text, on the other hand, will be a separate translation entirely.</span>"; $result = $TR->tokenizedTranslate($html); // <div class='test'><span>Este texto no está en negrita pero <b>este texto está en negrita</b></span><span>Este texto, por otro lado, será una traducción completamente separada. </span>