sibirix / sibirix-translator
关于此包最新版本(0.2.3)的许可信息不可用。
Sibirix.Translator 是 Bitrix 的 composer 包
0.2.3
2019-06-07 05:03 UTC
Requires
- php: ^7.0
README
这是一个用于1C-Bitrix的包,用于简单实现信息块元素/区域的文本多语言。方便创建对称的语言版本 - 在一个信息块元素中可以同时为所有语言版本设置文本。
在编辑元素/区域时,为系统中的每种语言添加一个标签页,并将必要的(您如何配置)文本字段复制到其中。所有语言的输入行都将在一个源字段中以特殊格式{{ru:俄语文本}}{{en:英文文本}}保存。
因此,有一个限制 - 禁止在文本中使用双大括号,并限制文本的最大总长度。但不需要对数据库进行任何更改。
由于对文本最大长度的限制,不推荐在拥有超过3种语言的网站上使用此模块。
功能
仅支持翻译文本字段
- 信息块元素的标准字段 NAME、PREVIEW_TEXT、DETAIL_TEXT
- 信息块元素的额外属性类型为字符串和 HTML/文本
- 信息块区域的标准字段 NAME、DESCRIPTION
- 信息块区域的额外属性类型为字符串
安装
安装模块
如果您项目中已使用 composer
composer require sibirix/sibirix-translator
如果您想在没有 composer 的项目中使用此翻译模块
- 在 /local/ 目录下执行
composer require sibirix/sibirix-translator - 连接 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']);
在管理后台配置表单编辑
- 打开信息块元素/区域的编辑页面
- 打开表单编辑设置
- 点击列表旁边的“添加”按钮,输入标签页名称“{{}}”(不带引号,2个开大括号和2个闭大括号)
- 在列表中选择新标签页,并将需要翻译的字段添加到其中
- 保存表单设置
在表单中会出现名为“翻译: ...”的标签页,翻译语言列表来自系统中创建的网站使用的语言(设置 - 产品设置 - 网站 - 网站列表。打开网站的属性编辑,块“区域设置”,字段“语言”)。
在模板中输出数据
<?= \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])