【问题标题】:laravel 5.2 setting default locale in app.php does not worklaravel 5.2 在 app.php 中设置默认语言环境不起作用
【发布时间】:2016-09-09 03:07:31
【问题描述】:

我想将默认语言环境从 en 设置为 zh-tw,我在 \config\app.php 中将 locale='en' 更改为 locale='zh-tw',

'locale' => 'zh-tw',

但视图继续使用'resources\lang\en',

我也试过了,但都没有用:
已添加APP_LOCALE in .env=zh-tw
运行php artisan cache:clear

为什么在 laravel 中 \config\app.php 的 locale 设置没有效果,没有意义?

除了在每个控制器中运行 setlocale('zh-tw') 或创建中间件来设置语言之外,还有其他最简单的方法可以在几秒钟内更改默认语言环境吗?

【问题讨论】:

  • 希望你已经创建了'resources\lang\zh-tw'
  • oyu 是否需要清除缓存 "php artisan clear:cache" 或 "cache:clear" 我不记得了

标签: php laravel laravel-5.2


【解决方案1】:
  1. 在你的 laravel 项目根目录下运行 php artisan config:cache 命令
  2. 检查是否正常
  3. 去/bootstrap/cache地址找到config.php如果存在则删除

【讨论】:

    【解决方案2】:

    要解决此问题,您需要按照以下说明进行操作:

    1. 首先在 \resources\lang\LOCALE_NAME 中创建您的语言环境文件夹。

    2. 然后你必须添加具有以下结构的文件:

      <?php return [    
       'reset' => 'Your password has been reset!',
       'sent' => 'We have emailed your password reset link!',
       'throttled' => 'Please wait before retrying.',
       'token' => 'This password reset token is invalid.',
       'user' => "We can't find a user with that email address.",];
      
    3. 然后您必须转到 \config\app.php 并将语言环境设置为您的 LOCALE_FOLDER_NAME。

      'locale' => 'LOCALE_NAME',

    4. 在此之后,您必须清除配置缓存。转到您的终端并粘贴此代码以清除它。

      php 工匠配置:缓存

    *注意: 有时您可能会收到如下错误:

    Illuminate\Contracts\Container\BindingResolutionException 
    
      Target class [view.engine.resolver] does not exist.
    

    只需在系统终端的应用程序根目录中运行以下代码即可。

    composer dump-autoload
    

    【讨论】:

      【解决方案3】:

      只需转到config/app.php 并查找locale 密钥并根据需要进行更改

      【讨论】:

        【解决方案4】:

        修改config/laravellocalization.php文件中的hideDefaultLocaleInURL参数。

        发件人:

        'hideDefaultLocaleInURL' => 假

        收件人:

        'hideDefaultLocaleInURL' => 真

        【讨论】:

          【解决方案5】:

          要设置语言环境并使其正常工作,您需要进行以下配置:

          1) 首先在\resources\lang\YOUR_LOCALE_NAME 中创建您的语言环境文件夹。

          2) 然后添加文件messages.php 或根据您的需要。结构如下:

          <?php
          
          return array(
              'welcome' => 'Welcome to our application'
          );
          

          3) 然后转到\config\app.php 并将语言环境设置为您的LOCALE_FOLDER_NAME。

          4) 请记住在app.php 中设置fallback_locale,以防找不到YOUR_LOCALE_NAME。

          【讨论】:

          • 在问之前已经完成了,这对我来说不起作用很奇怪。我已经完全删除了 en 文件夹,它向我回显 'vendor/profile.my_profile',查看代码是 {{ Lang::get("vendor/profile.my_profile") }}
          • 我使用 dd(App::getLocale());在 route.php 中,它显示 'en'
          • 我发现 \bootstrap\cache\config.php 正在缓存配置,有什么想法刷新这个文件吗?
          • php artisan clear-compiled 然后php artisan composer dump-autoload。
          • @ali 你的意思是composer dump-autoload 不是php artisan ..
          猜你喜欢
          • 1970-01-01
          • 2016-09-07
          • 1970-01-01
          • 2020-04-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-02
          • 2015-06-13
          相关资源
          最近更新 更多