Php 程序包翻译文件不工作-Laravel 5.2

Php 程序包翻译文件不工作-Laravel 5.2,php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,我试图在自定义包中使用语言文件。 我遵循了以下文档:,但它不起作用,只输出Namespace::file.key作为字符串 没有错误。我会做错什么 加载为: $this->loadTranslationsFrom(__DIR__.'/resources/lang', 'TranslatableRoute'); 用作: trans('TranslatableRoute::routes.create') 我的路径结构如下: 包 -doitonlinemedia --可翻译路线 ---src

我试图在自定义包中使用语言文件。 我遵循了以下文档:,但它不起作用,只输出Namespace::file.key作为字符串

没有错误。我会做错什么

加载为:

$this->loadTranslationsFrom(__DIR__.'/resources/lang', 'TranslatableRoute');
用作:

trans('TranslatableRoute::routes.create')
我的路径结构如下:

包
-doitonlinemedia
--可翻译路线
---src
-->translateableRoute.php
-———TranslateableRouteServiceProvider.php
-------资源
-————朗
-————————嗯
--routes.php

Routes.php包含:

return [
    'create' => 'new',
    'edit' => 'edit'
];
发现了一些奇怪的东西。当我转储
$this->app['translator']
时,它包含:

array:1 [
    "TranslatableRoute" => array:1 [
      "routes" => array:1 [
        "en" => []
      ]
    ]
  ]
但这不应该是:

array:1 [
    "TranslatableRoute" => array:1 [
      "en" => array:1 [
        "routes" => []
      ]
    ]
  ]
编辑


当我使用loadTranslationFrom添加语言文件时,它会在填充
$this->hits
之后调用vendor/laravel/Translation/FileLoader.php中的addNamespace。但只要我想调用它,同一文件中的这个函数就会被触发:
loadNamespaced()
在这个函数中
$this->hint
s再次为空。似乎有些bug。

找到了解决方案,但我认为我对这个问题使用了错误的方法,但现在它已经修复了

我正在制作一个在routes.php文件中调用的包。具有一些静态函数。这似乎是在引导包之前加载的。它已注册,但尚未启动。因此,我必须通过调用软件包代码手动添加语言文件:

\App::make('translator')->addNamespace('TranslatableRoute', __DIR__.'/resources/lang');

我想我需要加载我的包作为某种门面控制器。我不知道该怎么做。

我也有同样的问题,无法解决。我最终更改了分配给翻译的名称空间,现在它可以工作了。我不知道为什么,可能它将名称空间覆盖到了我的视图中,但使用一个唯一的名称空间,它似乎可以工作。

您的目录结构是什么?
resources/lang
目录是否与您从中加载翻译的服务提供商相关?