joeybab3/phphtmltranslator

PHP HTML 翻译器

v1.0.2 2023-10-23 22:57 UTC

This package is auto-updated.

Last update: 2024-09-27 00:00:31 UTC


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>