【问题标题】:Append translated HTML with Javascript in Blade Laravel 8在 Blade Laravel 8 中使用 Javascript 附加翻译后的 HTML
【发布时间】:2021-11-13 00:41:21
【问题描述】:

我想用 javascript 或 jquery 添加文本并自动翻译。

我试过例如:

let x = 'Cats';
$('#divToAppend').text(`{{ __('${x}') }}`)

当我这样做时,文本会在没有翻译的情况下附加。


当我直接写
{{ __('Cats') }}

在刀片文件中,翻译工作。

有人可以帮助我吗?我试过 {!! __('${x}') !!},只尝试了 javascript 而没有 jQUery,但没有任何变化......

谢谢!

【问题讨论】:

  • 很可能不行,Laravel/Blade 在服务器上运行
  • 啊,好的,谢谢...有什么建议可以继续吗?
  • 你的例子有点琐碎。我只是建议做$('#divToAppend').text('{{ __('Cats') }}'),但我想这对你没有帮助。实际答案实际上取决于您的实际用例。
  • 要么将翻译存储在 JS 中,要么向服务器发送带有要翻译的单词/句子的 AJAX 请求,取回翻译后的单词/句子并替换您需要的任何内容。

标签: javascript jquery laravel laravel-blade


【解决方案1】:

Blade 是一个模板引擎,{{ ... }} 语句是模板。加载站点时,这些模板将在服务器端进行评估以生成纯 HTML,然后将其发送到客户端。当您尝试在客户端使用 JavaScript 添加模板时,它将无法正常工作,因为服务器无法评估它们。

如果您想在 JavaScript 中添加翻译后的字符串,您必须将所有翻译存储在 JavaScript 本身中并选择所需的翻译,或者向服务器发送请求,让服务器返回翻译后的字符串。

你可以阅读更多关于什么是模板here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-02
    • 2022-07-07
    • 2021-06-09
    • 1970-01-01
    • 2019-07-16
    • 2020-02-17
    • 2014-07-23
    • 2021-09-17
    相关资源
    最近更新 更多