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}个