Laravel 中的 javascript 字符串本地化

标签 javascript php laravel localization internationalization

我在 Laravel 中某些本地化字符串的编码时遇到问题。

在我的西类牙语本地化文件中(以及许多其他字符串):

"truck" => "camión"

在myView.blade.php中,如果我直接打印字符串:

<h2>{{trans('localizationFile.truck'}}</h2>

它工作正常并打印

camión

但是如果我尝试在 javascript 中使用相同的字符串:

<script>
$(document).ready(function()
{           
    alert("{{trans('events.camion')}}");
}
</script>

它将重音符号 o 编码,并发出警报:camión

我该如何解决这个问题? 或者我做错了什么? 也许这不是本地化 JavaScript 消息的方法...

提前致谢!

最佳答案

输出警报时,HTML 实体不会被解码,因此它们显示为纯文本。解决此问题的最简单解决方案是将文本添加到 HTML 元素并通过 text 方法返回其内容,该方法将解码 HTML 实体:

<script>
    $(document).ready(function () {
        alert($('<div>{{trans('events.camion')}}</div>').text());
    }
</script>

上面使用了 jQuery 的 html 方法,但这可以通过 vanilla JS 和 innerHtml 来实现。

<小时/>

如果你想包含额外的 JS 库,你可以使用 he ,负责解码。所以它看起来像这样:

<script>
    $(document).ready(function () {
        alert(he.decode({{trans('events.camion')}}));
    }
</script>

关于Laravel 中的 javascript 字符串本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33636263/

相关文章:

javascript - 带有反斜杠和某些字符的正则表达式

php - MySQL:基于列值自动递增?

php - 为多个表一起设计 Zend 模型?

php - 子域不适用于 CodeIgniter

laravel - Laradock - PHP Redis 扩展已安装并启用

javascript - Uncaught ReferenceError : eve is not defined

javascript - 每 60 秒调用一次函数

javascript - MouseOver 和 MouseLeave 上的随机文本显示真实文本

php - Laravel:如何用 Eloquent 方式表达 HAVING COUNT

laravel 5.1 eloquent select 带有前缀连接表