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

问题描述:

我需要在Prestashop模板文件中添加一些自定义文本,但我的商店中有两种语言,并且我想以静态方式在不同语言中添加这些内容?我可以通过语言ID检查当前的语言吗?Prestashop如何在tpl文件中以不同语言添加静态内容

静态

{if $lang_iso == en } 

    english text 
    {else} 

    Other language 
    {/if} 

如果你在编辑区看到你将会明白怎么做。

你可以建立一个模块,然后把它钩到特定区域。

,并产生像

/* 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>'; 
    } 

文本框以这种方式将节省的语言智慧值

你有多种方式来实现这一目标取决于种类您正在编辑的.tpl文件:

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

    {LS =“我要翻译的文本”}

  • 如果它是包含在一个模块中.tpl文件,你应该做到以下几点:

    {LS = '我要翻译的文本' MOD = '模块名'}

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

  • 如果你喜欢手动处理翻译过程中,你应该做的,而不是:

    {如果$ lang_iso == '恩'} {英语其他}其他语言{/ if}个