我是武器新的。我想创建多语言网站。我创建了一个下拉列表

   <?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 to 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');
.

是否有任何方法可以在全球范围内设置语言和加载语言文件,以便在每个文件中都不需要在两行上方写入。

有帮助吗?

解决方案

您可以在控制器中加载语言文件和配置设置。基本上是()之前的函数在调用任何其他函数之前加载。您可以在此函数中加载它,如

 public function before()
   {
      if(!Session::get('lang')){
             Session::set('lang', 'en');
        }
              Config::set('language', Session::get('lang'));
              Lang::load('lang');
     }
.

所以您将在所有模板中获取语言文件和配置设置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top