我在为如何正确使用 laravel 的自定义包正确使用本地化而苦恼?
$this->loadTranslationsFrom(__DIR__ . '/../../resources/lang', 'package_lang');
不让我访问我的视图中的嵌套翻译文件(刀片模板)。
我的文件夹结构
foo-package/
├── resources/
│ ├── lang/
│ │ ├── de/
│ │ │ └── subs/
│ │ │ ├── fields.php
│ │ │ └── general.php
│ │ └── en/
│ │ └── subs/
│ │ ├── fields.php
│ │ └── general.php
│ └── views/
│ └── subs/
│ ├── create.php
│ └── edit.php
└── src/
└── Providers/
└── PackageProvider.php
在我看来,我尝试像这样访问它:
<label>{{ __('package_lang::subs/fields.name_of_subs') }}</label>
或者
<button type="submit">{{ __('package_lang::subs/fields.create_sub') }}</button>
导致返回翻译字符串键。
ServiceProvider 已加载到我的app.php
配置中,其中我也设置了正确的语言环境(调试栏证明了这一点)。试过了composer dump-autoload
,但没有成功。
如果我使用 laravel 的标准项目文件夹,我只会让它工作project/resources/lang
,这会阻止我使用我喜欢的命名空间package_lang::
并使我的包准备好进行本地化。
我的服务提供商
namespace FooPackage\Providers;
use Illuminate\Routing\Router;
use Illuminate\Support\ServiceProvider;
class PackageServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
$this->loadMigrationsFrom(__DIR__ . '/../../database/migrations');
$this->loadViewsFrom(__DIR__.'/../../resources/views', 'package_views');
$this->loadTranslationsFrom(__DIR__.'/../../resources/lang', 'package_lang');
}
}
知道如何解决吗?
编辑:
我有多个遵循此文件夹结构的包。