You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JS中使用/获取Laravel翻译内容?

在Laravel中让JS获取翻译文本的可行方法

你之前直接调用trans()返回的是Laravel的翻译器实例,里面包含大量受保护的属性,自然没法直接转成JS可用的格式。下面是几种靠谱的解决办法:

  • 直接在Blade模板中输出翻译数组
    如果你只需要general分组的翻译,直接把整个分组的翻译转成JSON注入到JS里就行:

    <script>
        const generalTrans = {!! json_encode(trans('general')) !!};
        // 使用示例:console.log(generalTrans.myIdText);
    </script>
    

    这里用{!! !!}是为了避免Laravel自动转义JSON字符,确保JS能正确解析。

  • 全局挂载翻译对象
    要是需要在多个JS文件里用这些翻译,可以把它挂载到window对象上,放在你的主布局模板里:

    <script>
        window.generalTranslations = {!! json_encode(trans('general')) !!};
    </script>
    

    之后在任意JS文件里直接用window.generalTranslations.myIdText就能访问对应翻译。

  • 通过API接口动态获取翻译
    如果需要按需加载翻译或者涉及多语言切换,可以写个简单的路由返回翻译JSON:

    1. 先在routes/web.php里添加路由:
      Route::get('/api/translations/{group}', function ($group) {
          return response()->json(trans($group));
      })->middleware('web');
      
    2. 然后在JS里用fetch请求:
      fetch('/api/translations/general')
          .then(res => res.json())
          .then(translations => {
              console.log(translations.myIdText);
              // 在这里使用翻译数据
          });
      

注意:如果修改了翻译文件后没生效,记得执行php artisan cache:clear和php artisan config:clear清理缓存。

内容的提问来源于stack exchange,提问作者yarek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 21:40:42