2017-03-03 174 views
-3

需要在CakePHP 3.2中创建多语言网站的步骤。 网站的内容是静态如何在cakephp 3.2中创建多语言静态网站?

+1

这部分在CakePHP cookbook –

+0

很好地记录我只需要知道静态内容不是所有类型的内容,而不使用翻译器。它没有记录。 –

+0

这部分是真的你需要什么https://book.cakephp.org/3.0/en/core-libraries/internationalization-and-localization.html –

回答

1

完成使用印地文和英语的任何其它语言链路的代码

语言在网站改变也可以在应用程序控制器在以下initialize方法加入

<div class="navbar-brand pull-right" style='padding: 15px 0px;'> 
     <button class="btn btn-default dropdown-toggle pull-right" data-toggle="dropdown"> 

     </button> 
     <ul class="dropdown-menu"> 

      <li> 
       <?php 

       echo $this->Html->link("Hindi", array("controller" => "App", "action" => "changeLanguage",'hi')); 
       ?> 
      </li> 
      <li class="divider"></li> 

      <li> 
       <?php 

       echo $this->Html->link("English", array("controller" => "App", "action" => "changeLanguage",'en')); 
       ?> 
      </li> 
     </ul> 

    </div> 

码被添加

$language = $this->Cookie->read('website_language'); 
    if (isset($language)) { 
     I18n::locale($language); 
    } else { 
     I18n::locale('en_US'); 
    } 

的新方法增加了对变化

public function changeLanguage($lang) { 

    if (!empty($lang)) { 
     if ($lang == 'hi') { 
      //$this->request->session()->write('website_language', 'hi_IN'); 
      $this->Cookie->write('website_language', 'hi_IN'); 
     } else if ($lang == 'en') { 
      //$this->request->session()->write('website_language', 'en_US'); 
      $this->Cookie->write('website_language', 'en_US'); 
     } 
     //in order to redirect the user to the page from which it was called 
     $this->redirect($this->referer()); 
    } 
} 

文件夹和文件被创建

/src 
/Locale 
    /en_US 
     default.po 
    /hi_IN 
     default.po 

    default.po 

希望这会有所帮助。 如果人们不知道这个问题的答案,那么不要问这个问题atleast :)

+0

你的问题并没有被低估,因为人们不知道答案,它被低估了,因为它研究得不好,缺少任何细节,甚至没有问题描述,而且基本上要求一步一步的教程,这被认为是偏离主题的这里在StackOverflow。有关[**问好问题**](http://stackoverflow.com/help/how-to-ask)的更多信息,请参阅提问指南。非常感谢你做了一些研究并自己回答了这个问题,但它并没有让实际问题变得更好,因此你可能会收到更多的低估。 – ndm

+0

如果我必须阅读文档才能在stackoverflow上编写问题,那么我认为最好在google上搜索,而不是在这里写问题.... –

+0

那么,这取决于你自己决定。如果你只是想快速回答问题,而不想付出太多努力,那么StackOverflow可能不适合你,因为这是一个对每个人都有用的社区,而不仅仅针对特定的个人。如果你学会了如何正确地解决问题,那么你不仅会得到更好的答案,还会帮助未来的读者,随着时间的推移,你会更好地帮助自己,并且你可能成为社区的一部分可以帮助其他提问者,并有助于使StackOverflow成为每个人更好的地方。 – ndm