如何在Bitrix CMS中添加多语言功能?

时间:2019-05-30 14:26:24

标签: php multilingual bitrix

我已经准备好使用Bitrix CMS构建的网站。现在,我想向网站添加其他几种语言。在哪里可以设置网站的多语言属性?

1 个答案:

答案 0 :(得分:0)

有可能。如果一切都为您定制,那么您需要通过更改站点的程序代码来实现。我将在同一部分的同一服务器上的另一种语言的网站版本(<主要语言的域>,<主要语言的域> / <另一种语言的代码> /-版本)中描述该选项。使用其他语言的网站)。

您需要在管理面板中添加设置:

例如,第二种语言将在当前站点的部分中显示为/ es/。

有必要更改站点代码:

  • 组件模板中的所有文本(如果自定义)都应放在/lang/es/template.php或/lang/zh-cn/template.php部分中(每个组件都有这样的文件夹,或者创建它们)或/lang/ru/template.php(取决于在管理面板中创建了多少个站点),在这些文件中的单词设置如下:

    $MESS['TITLE'] = '...'; 
    

    ,并且在模板中您可以这样输出

    <?=GetMessage("TITLE")?>;
    
  • 您需要在/ es /部分中创建站点的第二个版本,只需在其中指定/ es / index即可简单地创建相同的部分和index.php文件。 php文件

    <? require ($_SERVER["DOCUMENT_ROOT"]."/index.php"); 
    

    也就是说,该网站所有版本中的页面都是相同的(将启动相同的组件)。

语言更改取决于从哪个部分打开哪个站点,如果我们在/ es /中,bitrix设置全局变量LANGUAGE_ID,其中将包含当前站点的语言代码(在管理面板中指定)。部分,然后在LANGUAGE_ID中将显示“ es”(如果我们在/ ru /部分中,则LANGUAGE_ID将为“ ru”)。因此,您可以在代码中检查当前语言。

如果在管理面板的信息栏中,设置了显示在网站上或从网站收集的数据,那么您需要为该网站的另一个版本创建相同的数据(只是在选中标记信息块的设置)。或者,要提出自己的想法,可以在_es类型的信息块的代码下标一个下标,然后在代码中检查LANGUAGE_ID以搜索必要的信息块。

可以在https://github.com/ssv32/site-asisg.ru-web中找到有关如何在代码中实现它的示例,这不是理想的实现,但是您可以遵循思路。 (在这种情况下,信息块是相同的,但是元素具有列表类型属性,该属性确定数据所用的语言,并且此属性过滤代码)