Laravel中的javascript字符串本地化

javascript string localization in Laravel

本文关键字:本地化 字符串 javascript 中的 Laravel      更新时间:2023-09-26

我在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&oacute;n

我该怎么解决?还是我做错了什么?也许这不是本地化javascript消息的方法。。。

提前感谢!

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

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

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


如果你想包含一个额外的JS库,你可以使用他,这需要解码。所以它看起来像这样:

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