sibirix/sibirix-translator

关于此包最新版本(0.2.3)的许可信息不可用。

Sibirix.Translator 是 Bitrix 的 composer 包

0.2.3 2019-06-07 05:03 UTC

This package is auto-updated.

Last update: 2024-09-07 17:55:47 UTC


README

这是一个用于1C-Bitrix的包,用于简单实现信息块元素/区域的文本多语言。方便创建对称的语言版本 - 在一个信息块元素中可以同时为所有语言版本设置文本。

在编辑元素/区域时,为系统中的每种语言添加一个标签页,并将必要的(您如何配置)文本字段复制到其中。所有语言的输入行都将在一个源字段中以特殊格式{{ru:俄语文本}}{{en:英文文本}}保存。

因此,有一个限制 - 禁止在文本中使用双大括号,并限制文本的最大总长度。但不需要对数据库进行任何更改。

由于对文本最大长度的限制,不推荐在拥有超过3种语言的网站上使用此模块。

功能

仅支持翻译文本字段

  • 信息块元素的标准字段 NAME、PREVIEW_TEXT、DETAIL_TEXT
  • 信息块元素的额外属性类型为字符串和 HTML/文本
  • 信息块区域的标准字段 NAME、DESCRIPTION
  • 信息块区域的额外属性类型为字符串

安装

安装模块

如果您项目中已使用 composer

composer require sibirix/sibirix-translator

如果您想在没有 composer 的项目中使用此翻译模块

  1. 在 /local/ 目录下执行 composer require sibirix/sibirix-translator
  2. 连接 composer 自动加载文件:在 /local/php_interface/init.php 文件中(如果不存在则创建)添加行 require_once($_SERVER["DOCUMENT_ROOT"] . '/local/vendor/autoload.php');

添加事件处理器

/local/php_interface/init.php 文件中添加模块的事件处理器

use Bitrix\Main\EventManager as BitrixEventManager;
use Sibirix\Translator\IBlockLocales;

$manager = BitrixEventManager::getInstance();
$manager->addEventHandler("main", "OnBeforeProlog", [IBlockLocales::class, 'onBeforeProlog']);
$manager->addEventHandler("main", "OnAdminTabControlBegin", [IBlockLocales::class, 'onAdminTabControlBegin']);

在管理后台配置表单编辑

  1. 打开信息块元素/区域的编辑页面
  2. 打开表单编辑设置
  3. 点击列表旁边的“添加”按钮,输入标签页名称“{{}}”(不带引号,2个开大括号和2个闭大括号)
  4. 在列表中选择新标签页,并将需要翻译的字段添加到其中
  5. 保存表单设置

在表单中会出现名为“翻译: ...”的标签页,翻译语言列表来自系统中创建的网站使用的语言(设置 - 产品设置 - 网站 - 网站列表。打开网站的属性编辑,块“区域设置”,字段“语言”)。

在模板中输出数据

<?= \Sibirix\Translator\IBlockLocales::t($item['PROPERTY_TEXT_VALUE']) ?>

$item['PROPERTY_TEXT_VALUE'] - 包在管理后台保存的格式为 {{}} 的数据字符串。

输出当前网站语言(由常量 LANGUAGE_ID 确定,[https://dev.1c-bitrix.ru/api_help/main/general/constants.php])