我是Fuelphp的新手。我想创建多语言网站。我创建了一个下拉列表
<?php echo Lang::get('Select Language'); ?>
<select id="language_dropdown" name="language_dropdown">
<option value="en">English</option>
<option value="de">German</option>
<option value="fr">French</option>
</select>
jquery到cal控制器保存语言代码是: -
$(function() {
$('#language_dropdown').change(function() {
alert($(this).val());
var val = $(this).val();
$.ajax({
type: "POST",
url: "<?php echo Uri::base(false) ?>language",
data: { 'val' : val },
success: function(response){
location.reload();
},
error: function(response){
alert("There is some problem, please try again later");
}
});
});
});
控制器以保存会话值: -
public function action_index()
{
$val = $_POST['val'];
Session::set('lang', $val);
}
现在我必须在每个模板文件中设置语言并加载名为language.php的语言文件。
Config::set('language', Session::get('lang'));
Lang::load('language');
是否有任何方法可以全局设置语言和加载语言文件,因此无需在每个文件中写入两行以上。
答案 0 :(得分:2)
您可以在控制器中加载语言文件和配置设置。基本上有一个函数before(),它在调用任何其他函数之前加载。你可以在这个函数中加载它,如
public function before()
{
if(!Session::get('lang')){
Session::set('lang', 'en');
}
Config::set('language', Session::get('lang'));
Lang::load('lang');
}
因此,您将在所有模板中获得语言文件和配置设置。