概要: 在本主题中,您将了解到如何将Plesk界面翻译为您的语言。

概要

Plesk is available in over 30 languages. In this topic, you will see examples showing how to translate Plesk into Esperanto, but you can use the same steps to translate Plesk into any language.

该过程包括以下步骤:

  • 导出英语(en-US)本地化文件并准备将其进行语言翻译。
  • 将UI消息翻译为目标语言。
  • 将生成的本地化文件导入到Plesk中,并在Plesk中注册新的本地化内容。

准备要翻译的本地化文件

在您可以开始翻译之前,您需要导出并准备好这些本地化文件。

准备本地化文件

  1. 通过 SSH 或 RDP 登录服务器。

  2. 将下列目录(包括子目录)的内容复制到一个单独的位置:

    • Plesk for Linux
      • /usr/local/psa/admin/application/admin/resources/languages/en-US/
      • /usr/local/psa/admin/application/default/resources/languages/en-US/
      • /usr/local/psa/admin/plib/locales/en-US/
      • /usr/local/psa/admin/application/smb/resources/languages/en-US/
    • Plesk for Windows
      • %plesk_dir%admin\application\admin\resources\languages\en-US
      • %plesk_dir%admin\application\default\resources\languages\en-US
      • %plesk_dir%admin\plib\locales\en-US\
      • %plesk_dir%admin\application\smb\resources\languages\en-US

    这些目录中的文件包含了所有的Plesk用户界面文本。

    注解: 文件``common_cli_messages_en-US.php``只包含Plesk命令行实用程序使用的文本。除非您有翻译此文本的特定原因,否则该文件的内容可能会保持不翻译。

  3. 重命名目录和文件以匹配目标语言。这些英语本地化文件和目录的名称包括 en-US。如下:

    • en部分是必需部分。这是代表语言(英文)的两字ISO 639-1 代码
    • US 部分是可选部分。这是代表使用特定方言的国家的两字ISO 3166-1 代码。这用来区分同一语言的不同方言的本地化环境,例如,葡萄牙语(葡萄牙)和葡萄牙语(巴西)。

    在我们的示例中,世界语的代码是“eo”,该语言没有特定国家的方言。因此,我们将目录和文件名中的每个``en-US``实例替换为``eo``,如下所示:

    /usr/local/psa/admin/plib/locales/en-US/messages_en-US.php

    变成

    /usr/local/psa/admin/plib/locales/eo/messages_eo.php

    等等。在本主题中,进一步地,我们将称之为“目标语言代码”。

  4. 编辑下面的文件:

    • (Plesk for Linux) /usr/local/psa/admin/plib/locales/<target language code>/messages_<target language code>.php
    • (Plesk for Windows) %plesk_dir%admin\plib\locales\<target language code>\messages_<target language code>.php

    用目标语言代码替换``en-US``的所有条目。因此,在我们的示例中,我们编辑了该行

    include(__DIR__ . '/common_messages_en-US.php');

    因而看起来如下:

    include(__DIR__ . '/common_messages_eo.php');

    等等。

  5. 编辑下面的文件:

    • (Plesk for Linux) /usr/local/psa/admin/plib/locales/<target language code>/meta.xml
    • (Plesk for Windows) %plesk_dir%admin\plib\locales\<target language code>\meta.xml

    您可以在此处声明将在Plesk界面中显示的本地化的属性:

    • <language>英文</language> 您需要在此处指定将会在Plesk中显示的目标语言的名称。
    • (可选)``<country>美国</country>`` 您可以在此处指定将在Plesk中显示的使用目标语言的国家。如果不需要,则可以忽略此参数。
    • (可选)``<rtl>正确</rtl>`` 如果目标语言使用从右到左的脚本,请指定此参数。否则忽略。

    世界语没有特定国家的方言,也不使用从右到左的文字。因此,在我们的示例中,文件内容将如此:

    <?xml version="1.0" encoding="utf-8"?>
    <!-- Copyright 1999-2022. Plesk International GmbH. All rights reserved. -->
    <locale>
      <language>Esperanto</language>
    </locale>
    

本地化文件现在已经可以进行翻译了。

翻译本地化文件

现在本地化文件已经导出并准备好,您可以开始进行翻译了。

注解: 由Plesk提供的本地化文件使用UTF-8编码。不要更改编码,否则,翻译后的消息可能无法在Plesk界面中正确显示。

Plesk 本地化文件是包含与人类可读的信息进行配对的本地化密钥标识符的PHP文件,如下所示:

'admin-alias.passwordConfirmation' => 'Confirm password',

要翻译Plesk,您需要将人类可读的信息翻译为目标语言。因此,在我们的示例中,翻译后的信息将如此:

'admin-alias.passwordConfirmation' => 'Konfirmu pasvorton',

注解: 不要翻译本地化键值,或以任何其他方式将其更改。否则,翻译后的消息将无法在Plesk界面中正确显示。

在翻译时,请记住以下指南,以确保生成的本地化内容可以在Plesk中导入,没有任何问题。

  • 不要删除每个字符串末尾的逗号。否则,试图在Plesk中切换到已翻译的本地化环境将导致出错。

  • 如果信息文本不包含任何引号,请使用单引号或双引号将文本括起来。

  • 如果信息文本包含一个或多个单引号或撇号,则在每个前面加上反斜杠,或用双引号将信息括起来(但不包含本地化键值),如下所示:

    'b_add_ip_for_clients' => 'Add IP address to client\'s pools.',

    或如此:

    'b_add_ip_for_clients' => "Add IP address to client's pools.",

  • 如果信息文本包含一个或多个双引号,则在每个前面加上反斜杠,或用单引号将信息括起来,如下所示:

    'backup__backup_overwrite_file_confirm_text' => '名为 \"%1\" 的备份文件已存在。您想要将其替换吗?',

    或如此:

    'backup__backup_overwrite_file_confirm_text' => '名为 "%1" 的备份文件已存在。您想要将其替换吗?',

  • 不要翻译变量,如 “%1” 或 “%%ip_address%%”。这些变量将被Plesk界面中的实际值替换。例如,此消息

    '已将IP地址%%ip_address%%分配给%%client_name%%。'

    在Plesk界面中可能是这样的:

    “IP 地址 192.168.12.34 已被分配给 John Doe。”

  • 有些变量不是用数值代替,而是用在本地化文件中找到的人类可读的消息代替。例如,此消息

    '如果您需要帮助,请参阅我们的%%link%%。'

    从这其中获取 %%link%% 值

    '网站创建教程'

    而且,它们在Plesk界面上是这样的:

    “如果您需要帮助,请阅读我们的网站创建教程。”

    第二、较短的消息会在Plesk界面中成为一个可单击的超链接,这被视为行动调用。在翻译这样的消息对时,需将这两个部分放在一起,这样一旦翻译成目标语言就不会发生冲突。

  • 不要翻译 HTML 条目,例如 &lt;&gt;。同时不要翻译 转义序列,例如 \n

将已翻译的本地化内容导入到 Plesk

在将翻译后的本地化文件导入到Plesk之前,我们强烈建议您验证其语法。您可以通过对每个翻译的本地化文件运行以下命令来实现:

  • (Plesk for Linux) /usr/local/psa/admin/bin/php -l <locale file name>.php
  • (Plesk for Windows) "%plesk_dir%admin\bin\php" -l <locale file name>.php

预期的输出结果如下所示:

未在 <locale file name>.php 中检测出语法错误

如果输出包含以 PHP Parse error (PHP解析错误) 开始的一个或多个行,则需要在将翻译的本地化文件导入到Plesk之前查找并纠正语法错误。否则,试图在Plesk中切换到翻译的本地化环境将导致出错。

将新的本地化内容导入到 Plesk

  1. 通过 SSH 或 RDP 登录服务器。

  2. 确保所有新的本地化文件都在其适当的位置:

    • Plesk for Linux
      • /usr/local/psa/admin/application/admin/resources/languages/<target language code>/
      • /usr/local/psa/admin/application/default/resources/languages/<target language code>/
      • /usr/local/psa/admin/plib/locales/<target language code>/
      • /usr/local/psa/admin/application/smb/resources/languages/<target language code>/
    • Plesk for Windows
      • %plesk_dir%admin\application\admin\resources\languages\<target language code>
      • %plesk_dir%admin\application\default\resources\languages\<target language code>
      • %plesk_dir%admin\plib\locales\<target language code>\
      • %plesk_dir%admin\application\smb\resources\languages\<target language code>
  3. 运行以下命令在Plesk中注册新的本地化内容:

    plesk db "replace into locales values ('<target language code>', 'true')"

    所以,在我们的例子中,这个命令是这样的:

    plesk db "replace into locales values ('eo', 'true')"

恭喜您!您已在Plesk中注册新的本地化内容。

  • 您可以在 工具与设置 > 语言 中找到您新的本地化内容。

    esperanto language list

  • 您可以在 个人资料与偏好 中通过从“管理员的界面语言”菜单中选定您的新本地化环境从而切换到您的新本地化环境。

    esperanto language switch