在 TYPO3 CMS上安装 Linguise 自动翻译

目录

TYPO3 CMS技术要求

与 TYPO3 CMS 一起使用的神经自动翻译需要使用 PHP 脚本(可以在下面下载)。 要安装 Linguise 脚本,您需要满足以下要求:

  • 运行 PHP 7+
  • Apache、LiteSpeed、NGINX、IIS 服务器
  • 确保您的服务器上启用了 URL 重写
  • TYPO3 CMS 9 及以上版本

1. 生成API密钥

连接或注册Linguise仪表板,您需要先设置一个新域并保存其设置以获取 API 密钥。

您可以选择“其他 PHP”平台继续使用 Linguise 注册域,如本文档以及源语言和目标语言。

之后你会得到:

  • 验证您的会员资格的 API 密钥
  • 语言切换器的 Linguise 脚本的链接

 

API 密钥是在 TYPO3 CMS 网站上激活翻译所需的密钥。 基本上,API 密钥将检查您的域上激活的语言并允许自动翻译内容。

现在,您可以复制 API 密钥并将其保存在剪贴板中。

2.上传并连接 Linguise 翻译脚本

需要将 Linguise 翻译脚本上传到安装了 TYPO3 CMS 的服务器上:

脚本下载后,解压并上传至 TYPO3 CMS安装根文件夹。

  • 确保它位于您网站的根级别TYPO3 CMS 文件所在的位置)
  • 确保文件夹保留其默认名称 linguise
TYPO3-CMS 文件

需要将 Linguise API 密钥复制到您上传到服务器的 Configuration.php 文件中,编辑该文件并在简单引号之间复制您的 API 密钥,替换文本 REPLACE_BY_TOUR TOKEN Linguise

配置-php
我们确实了解 URL 配置和语言切换器的配置有点技术性; 但好消息! 我们提供免费安装

3. 设置 TYPO3 CMS URL重写

默认情况下, TYPO3 CMS 中的 URL 重写处于活动状态。 如果不是这种情况,您可以从托管提供商处激活它。

需要在 .htaccess 中配置按语言划分的 URL。 默认TYPO3 CMS 代码 RewriteEngine on

				
					# Set PHP version to 7.4 >> Please Add this code before the Rewrite rules to ensure Linguise works in PHP v7.4
AddHandler application/x-httpd-php74 .php

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteRule ^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-cn|zh-tw|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu|zz-zz)(?:$|/)(.*)$ linguise/linguise.php?linguise_language=$1&original_url=$2 [L,QSA]
</IfModule>
				
			

最后,您的 TYPO3 CMS .htaccess 文件应如下所示:

				
					# Set PHP version to 7.4
AddHandler application/x-httpd-php74 .php

<IfModule mod_rewrite.c>

	# Enable URL rewriting
	RewriteEngine On
	RewriteBase /typo10/   # Set the RewriteBase to the subfolder

    # Add a condition to check if the request starts with the subfolder
    RewriteCond %{REQUEST_URI} !^/typo10/

    # Rewrite requests that don't start with the subfolder to include it
    RewriteRule ^(.*)$ /typo10/$1 [L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

	RewriteRule ^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-cn|zh-tw|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu|zz-zz)(?:$|/)(.*)$ /typo10/linguise/linguise.php?linguise_language=$1&original_url=$2 [L,QSA]

				
			

您现在可以使用 URL 加载所有已翻译的页面,例如:www.shop.com /fr/

现在让我们加载语言切换器。

我们确实了解 URL 配置和语言切换器的配置有点技术性; 但好消息! 我们提供免费安装

4. 激活语言切换器

4.1 加载 Linguise JS 脚本

需要在所有 TYPO3 CMS 页面上加载 Linguise JS 脚本链接,以在 HTML 标头中显示带有标记和备用 URL 的语言切换器(用于 SEO 目的)。

要复制脚本链接,请从 Linguise 仪表板转到域设置并复制脚本链接。

TYPO3 中加载此代码的最简单方法是将其添加到您的网站标题中或 代码。 TYPO3 CMS带有一个特殊的环境,它必须创建一个特定的文件来将脚本添加到标题中。

您可以通过执行以下步骤来实现此目的:

  1. 登录Typo3管理员,
  2. 选择“页面”>“ +内容”>单击“特殊元素”选项卡>“纯 HTML”

编辑脚本文件以将脚本链接包含在 HTML 代码部分中,如下所示。

脚本输入TYPO3-cms

默认情况下,语言切换器将显示在网站右上角的浮动位置。 欢迎您按照下一章中的说明进行自定义。

TYPO3-CMS-语言切换器

SEO 重要说明:您设置的语言数量对 SEO 有很大影响。 当您设置翻译语言时,如果您有大量索引页面 (>500),搜索引擎可能会花费大量时间来处理它们。 它可能会影响您的原始语言的 SEO。 这就是为什么我们建议首先添加最多 5 种语言,然后当它被编入索引时,您可以每月批量添加 3 种语言。

在 TYPO3 CMS中设置语言切换器

可以通过 Linguise 仪表板 > 设置 > 语言标志显示来自定义语言切换器。 这里的每一个修改都会反映在网站上。

在屏幕右侧,您可以预览语言切换器。 以下是您可以设置的元素:

  • 3 种布局:并排、下拉或弹出
  • 语言切换器位置
  • 语言切换器内容
  • 英语或母语的语言名称
  • 旗帜形状和尺寸
  • 颜色和盒子阴影

在 TYPO3 CMS内容中加载语言切换器

标志位置就位

要在特定位置显示语言切换器,在TYPO3内容中,应将位置设置为“In place”。 Linguise
中设置位置后,您可以添加下面的短代码以包含它。 单击下面的代码将其放入剪贴板。

[linguise]

添加后,在前端,您将在添加代码的 HTML 区域中显示标志和语言名称。

激活本地缓存系统选项

作为一种选择,您可以激活存储 URL 及其相关多语言内容的本地缓存系统,以更快地为页面提供服务。 本地缓存将节省 Linguise 服务器和您的网站服务器之间的一些数据传输。 仅当页面已翻译且尚未更新时才使用缓存。 优先保留的缓存将是浏览次数最多的多语言页面的缓存。

为了补充这一点,您可以定义以 MB 为单位存储的缓存量。 在以下示例中,缓存已激活并且要保留的缓存量为 500 MB。

				
					    /** Basic configuration **/
    public $cache_enabled = true;
    public $cache_max_size = 500; // In megabyte
				
			

NGINX 服务器上的自动翻译

在 NGINX 服务器配置块中添加与 CMS 相对应的行。
它应该在任何其他重定向之前设置,尤其是 PHP 主文件中的重定向。
				
					rewrite ^/(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-cn|zh-tw|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu|zz-zz)(?:$|/)(.*)$ /linguise/linguise.php?linguise_language=$1&original_url=$2 last;
				
			

Windows IIS 服务器上的自动翻译​

在 Web.config 文件中添加与您的网站构建器相对应的行。
它应该在任何其他重定向之前设置,尤其是重定向到 PHP 主文件:

				
					<rule name="Linguise" stopProcessing="true">
<match url="^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-cn|zh-tw|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu|zz-zz)(?:$|/)(.*)$" ignoreCase="false" />
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
            <action type="Rewrite" url="linguise/linguise.php?linguise_language={R:1}&amp;original_url={R:2}" appendQueryString="true" />
</rule>
				
			

从 SQLite 到 MySQL

仍然在 Configuration.php 中,有一个设置强制使用 MySQL 而不是 SQLite,以防服务器上未安装 SQLite。

在这种情况下,您需要在Configuration.php 文件的这一部分中填写 MySQL 信息:

				
					    /** Advanced database configuration **/
    /*
     *  In case you don't want to use Sqlite, you can use MySQL
     *  To do so, you need to fill the following variables
     *  Linguise will create the tables for you
     */
    public static $db_host = '';
    public static $db_user = '';
    public static $db_password = '';
    public static $db_name = '';
    public static $db_prefix = '';