javascript Laravel 中的字符串本地化
javascript string localization in Laravel
我在 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 实体未解码,因此它们显示为纯文本。解决此问题的最简单解决方案是通过 text
方法将文本添加到 HTML 元素和 return 其内容,这将解码 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.
中的某些本地化字符串的编码方面遇到问题在我的西班牙语本地化文件中(还有许多其他字符串):
"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 实体未解码,因此它们显示为纯文本。解决此问题的最简单解决方案是通过 text
方法将文本添加到 HTML 元素和 return 其内容,这将解码 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>