0

我已将我的 Laravel 8 应用程序升级到版本 9,并且根据文档:升级指南,该resources/lang目录现在位于根项目目录 ( lang) 中。

我已将该lang目录移动到我的项目的根目录,但它似乎不起作用。

// config/app.php
'locale' => 'pt-BR',

// lang/pt-BR/messages.php
return [
    'welcome' => 'Welcome to the app!',
];

控制器

return response()->json([
    'message' => Lang::get('messages.welcome') // it returns "messages.welcome"
]);

但是当我将lang目录改回时/resources/lang,它就像以前的 laravel 版本一样工作正常。所以我创建了一个新的 Laravel 9 项目,它工作正常,这让我认为需要一些额外的配置,但升级指南中没有记录。我的composer.json依赖和新的 laravel 项目完全一样。Laravel 是否需要进行任何其他配置才能识别目录?

4

2 回答 2

1

您可以使用您的useLangPath方法中的方法对您的语言路径进行硬编码。AppServiceProviderboot

# app/Providers/AppServiceProvider.php

public function boot()
{
    app()->useLangPath(base_path('lang'));

    // or app()->useLangPath(app()->basePath('lang'));
}
于 2022-02-11T19:20:00.530 回答
1

所以我找到了解决方案,“问题”是我没有删除resources/lang目录,所以 Laravel 使用的是该目录而不是lang应用程序基本路径中的目录。

删除resources/lang目录后,它按预期工作。感谢@lagbox 评论。

@IGP答案也有效。

于 2022-02-11T19:53:26.800 回答