Prestashop 如何在tpl文件中添加不同语言的静态内容

Prestashop 如何在tpl文件中添加不同语言的静态内容,prestashop,Prestashop,我需要在Prestashop模板文件中添加一些自定义文本,但我的存储中有两种语言,我想以不同的语言静态添加这些内容?我可以按语言id检查当前语言吗?如果您在编辑栏上看到,您将了解如何执行此操作 您可以构建一个模块,然后将其挂接到相应的区域 并生成文本框,如 /* Gets languages and sets which div requires translations */ $id_lang_default = (int)Configuration::get('PS_LANG

我需要在Prestashop模板文件中添加一些自定义文本,但我的存储中有两种语言,我想以不同的语言静态添加这些内容?我可以按语言id检查当前语言吗?

如果您在编辑栏上看到,您将了解如何执行此操作

您可以构建一个模块,然后将其挂接到相应的区域

并生成文本框,如

    /* Gets languages and sets which div requires translations */
    $id_lang_default = (int)Configuration::get('PS_LANG_DEFAULT');
    $languages = Language::getLanguages(false);
    $divLangName = 'image¤title¤url¤legend¤description';


foreach ($languages as $language)
    {
        $this->_html .= '<div id="image_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $id_lang_default ? 'block' : 'none').';float: left;">';
        $this->_html .= '<input type="file" name="image_'.$language['id_lang'].'" id="image_'.$language['id_lang'].'" size="30" value="'.(isset($slide->image[$language['id_lang']]) ? $slide->image[$language['id_lang']] : '').'"/>';
        /* Sets image as hidden in case it does not change */
        if ($slide && $slide->image[$language['id_lang']])
            $this->_html .= '<input type="hidden" name="image_old_'.$language['id_lang'].'" value="'.($slide->image[$language['id_lang']]).'" id="image_old_'.$language['id_lang'].'" />';
        /* Display image */
        if ($slide && $slide->image[$language['id_lang']])
            $this->_html .= '<input type="hidden" name="has_picture" value="1" /><img src="'.__PS_BASE_URI__.'modules/'.$this->name.'/images/'.$slide->image[$language['id_lang']].'" width="'.(Configuration::get('HOMESLIDER_WIDTH')/2).'" height="'.(Configuration::get('HOMESLIDER_HEIGHT')/2).'" alt=""/>';
        $this->_html .= '</div>';
    }
/*获取语言并设置哪个div需要翻译*/
$id_lang_default=(int)配置::get('PS_lang_default');
$languages=Language::getLanguages(false);
$divLangName='image・title・url・图例・description';
foreach($languages作为$language)
{
$this->_html.='';
$this->_html.='';
/*将图像设置为隐藏,以防其更改*/
如果($slide&&$slide->image[$language['id\u lang']]))
$this->_html.='';
/*显示图像*/
如果($slide&&$slide->image[$language['id\u lang']]))
$this->_html.='name./images/'.$slide->image[$language['id_lang']].“width=“”。(配置::get('HOMESLIDER_width')/2)。“height=“”。(配置::get('HOMESLIDER_height')/2)。“alt=”“/>;
$this->_html.='';
}

通过这种方式,它将保存语言方面的值

如果您在编辑块上看到,您将了解如何做到这一点

您可以构建一个模块,然后将其挂接到相应的区域

并生成文本框,如

    /* Gets languages and sets which div requires translations */
    $id_lang_default = (int)Configuration::get('PS_LANG_DEFAULT');
    $languages = Language::getLanguages(false);
    $divLangName = 'image¤title¤url¤legend¤description';


foreach ($languages as $language)
    {
        $this->_html .= '<div id="image_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $id_lang_default ? 'block' : 'none').';float: left;">';
        $this->_html .= '<input type="file" name="image_'.$language['id_lang'].'" id="image_'.$language['id_lang'].'" size="30" value="'.(isset($slide->image[$language['id_lang']]) ? $slide->image[$language['id_lang']] : '').'"/>';
        /* Sets image as hidden in case it does not change */
        if ($slide && $slide->image[$language['id_lang']])
            $this->_html .= '<input type="hidden" name="image_old_'.$language['id_lang'].'" value="'.($slide->image[$language['id_lang']]).'" id="image_old_'.$language['id_lang'].'" />';
        /* Display image */
        if ($slide && $slide->image[$language['id_lang']])
            $this->_html .= '<input type="hidden" name="has_picture" value="1" /><img src="'.__PS_BASE_URI__.'modules/'.$this->name.'/images/'.$slide->image[$language['id_lang']].'" width="'.(Configuration::get('HOMESLIDER_WIDTH')/2).'" height="'.(Configuration::get('HOMESLIDER_HEIGHT')/2).'" alt=""/>';
        $this->_html .= '</div>';
    }
/*获取语言并设置哪个div需要翻译*/
$id_lang_default=(int)配置::get('PS_lang_default');
$languages=Language::getLanguages(false);
$divLangName='image・title・url・图例・description';
foreach($languages作为$language)
{
$this->_html.='';
$this->_html.='';
/*将图像设置为隐藏,以防其更改*/
如果($slide&&$slide->image[$language['id\u lang']]))
$this->_html.='';
/*显示图像*/
如果($slide&&$slide->image[$language['id\u lang']]))
$this->_html.='name./images/'.$slide->image[$language['id_lang']].“width=“”。(配置::get('HOMESLIDER_width')/2)。“height=“”。(配置::get('HOMESLIDER_height')/2)。“alt=”“/>;
$this->_html.='';
}
这样,它将静态地保存语言方面的值

    {if $lang_iso == en } 

    english text 
    {else}

    Other language
   {/if}
静态地

    {if $lang_iso == en } 

    english text 
    {else}

    Other language
   {/if}

根据您正在编辑的.tpl文件的类型,有多种方法可以实现此目标:

  • 如果主题是.tpl,最简单的方法是:

    {l s='My text to translate'}

  • 如果模块中包含.tpl文件,则应执行以下操作:

    {l s='My text to translate'mod='modulename'}

在这两种情况下,PrestaShop将自动将这些字符串转换为最终用户当前选择的语言

  • 如果您希望手动处理翻译过程,则应执行以下操作:

    {if$lang_iso=='en'}英语{else}其他语言{/if}


根据您正在编辑的.tpl文件的类型,您有多种方法来实现此目标:

  • 如果主题是.tpl,最简单的方法是:

    {l s='My text to translate'}

  • 如果模块中包含.tpl文件,则应执行以下操作:

    {l s='My text to translate'mod='modulename'}

在这两种情况下,PrestaShop将自动将这些字符串转换为最终用户当前选择的语言

  • 如果您希望手动处理翻译过程,则应执行以下操作:

    {if$lang_iso=='en'}英语{else}其他语言{/if}