【问题标题】:How to translate strings from jquery to blade on laravel如何在 laravel 上将字符串从 jquery 翻译成刀片
【发布时间】:2020-02-06 11:58:53
【问题描述】:

我的 laravel 上有两个单独的文件,一个 index.blade.php 和一个 .js 文件。 在刀片上,我有一个字符串,如下所示:

<p id="currentMessage" class="bold-700"></p>

在我的 JS 我有:

$(document).ready(function() {
  $('#currentMessage').text("@lang('hello'));
});

似乎它不会在运行时翻译,我不能注入文本并等待它被翻译,但是有什么方法可以在发送之前在 jquery 上翻译字符串或其他什么来解决问题?

【问题讨论】:

  • 你错过了这样写你的文件名:@lang('.hello') 见this
  • @boolfalse mmm 不,这仅适用于刀片,我说的是从 JS 发送到刀片...
  • 噢,对不起.. 如果你想在 .js 中编写它,据我所知,在 .js 中没有使用它的传统方式。顺便说一下,我知道你可以配置你的 .js 文件。 htaccess 从 .js 启用 php 解释

标签: php jquery html laravel laravel-blade


【解决方案1】:

您可以通过这种方式将刀片的翻译注入到 javascript:

<script>
var translations = {
   hello: "@lang('hello')",
   goodbye: "@lang('goodbye')",
   ...
};
</script>

然后在你的js文件中,

$(document).ready(function() {
  $('#currentMessage').text(translations.hello);
});

【讨论】:

  • 它可以工作,但必须重写我所有的句子有点烦人
  • 您可以使用 slug 函数为每个句子创建 slug。然后循环它。您可以创建一个单独的“缓存”刀片文件来构建此结构以保留翻译。我猜除了这个或用 php.ini 创建一个动态 js 文件之外没有其他方法了。 &lt;script src='translations.php' type='text/javascript'&gt;&lt;/script&gt;。但是你仍然需要创建这个结构来传递给一个 JS 文件。
猜你喜欢
  • 1970-01-01
  • 2021-03-14
  • 1970-01-01
  • 1970-01-01
  • 2015-09-04
  • 2016-07-27
  • 2016-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多