【问题标题】:Fetch the locale of laravel app获取 laravel 应用的语言环境
【发布时间】:2017-10-24 16:16:47
【问题描述】:

我可以像 {{ config('app.locale') }} 这样在刀片中获取语言环境应用程序,但是,我希望能够在 javascript 中获取语言环境,特别是在 Vue 中以便将其传递给 moment().locale() 我在视图上尝试了以下操作home.blade.php 没用

moment().locale( {{ config('app.locale') }}

如何在 Vue 中获取语言环境应用?

【问题讨论】:

  • 从刀片模板得到什么输出?您是否缺少语言环境周围的引号?
  • 您在那里缺少)。另外,您在哪里/如何称呼那条线?我认为应该是@{{ config('app.locale'}}
  • 使用当前代码,在刀片中它被转换为moment().locale( en )。您需要在 en 周围加上引号/双引号,因此请使用 moment().locale( "{{ config('app.locale')" }})

标签: javascript php laravel locale momentjs


【解决方案1】:

您必须在窗口上设置该值。您可以在刀片模板中创建一个脚本标签,该标签在您可以访问的窗口上创建全局变量。

您还可以在控制器函数中使用https://packagist.org/packages/laracasts/utilities 来呈现您的视图以将值传递给窗口,如下所示:

JavaScript::put(['locale' => config('app.locale')]);

然后通过window.locale在你的JS中访问它

【讨论】:

  • 很好的答案!要添加它,您可以在 zaengle.com/blog/layers-of-a-laravel-vue-application 阅读有关使用 vue 访问服务器端变量的不同方法
  • 这是一个很棒的方法。我通常会创建元标记 <meta name="locale" content="Some/Locale"> 并在需要时用 javascript 抓取它们,但这更干净!
【解决方案2】:
use Lang;

$locale = Lang::locale(); (gives you the locale detected on the frontend)
$locale = Lang::getLocale(); (gives you the locale set default in the config)

【讨论】:

  • 虽然您的代码 sn-p 可能会解决问题,但您应该描述您的代码的目的是什么(它如何解决问题)。此外,您可能需要检查stackoverflow.com/help/how-to-answer
猜你喜欢
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-10
  • 2017-05-21
  • 2017-03-02
相关资源
最近更新 更多