Обеспечить локализацию из пользовательских пакетов Laravel

Я борюсь за то, как правильно использовать локализации с пользовательскими пакетами для laravel?
$this->loadTranslationsFrom(__DIR__ . '/../../resources/lang', 'package_lang'); не предоставляет мне доступ к моим вложенным файлам перевода в моих представлениях (Шаблон Blade).

Моя папка-структура

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.phpconfig, в котором я также установил правильную локаль (Debug-Bar доказывает это). Пытался 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');
}
}

Есть идеи как это решить?

РЕДАКТИРОВАТЬ:

У меня есть несколько пакетов, следующих этой структуре папок.

-2

Решение

Ладно, неважно, в Посте упущен один важный момент.
Вовлечено несколько пользовательских пакетов, которые используют одно и то же пространство имен package_lang, что вызывает проблему.

По какой-то причине второй параметр пространства имен $this->loadTranslationsFrom(__DIR__ . '/../../resources/lang', 'package_lang'); должен быть однозначно определен!
Изменение этого решает проблему.

Просто примечание:
Приведенное выше правило, однако, не распространяется на $this->loadViewsFrom(__DIR__.'/../../resources/views', 'package_views'); где несколько пакетов могут иметь одно и то же пространство имен.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]