Localization 如何覆盖Laravel 5.1中的包语言文件

Localization 如何覆盖Laravel 5.1中的包语言文件,localization,laravel-5.1,Localization,Laravel 5.1,根据Laravel文件: 例如,如果您需要为名为skyrim/hearthfire的包覆盖messages.php中的英语语言行,您可以将语言文件放在:resources/lang/vendor/hearthfire/en/messages.php 我目前拥有包含在我的项目中的包activewebsite/enterprise entity包。它包含一个语言文件: vendor/activewebsite/enterprise entity/src/resources/lang/en/phone

根据Laravel文件:

例如,如果您需要为名为skyrim/hearthfire的包覆盖messages.php中的英语语言行,您可以将语言文件放在:resources/lang/vendor/hearthfire/en/messages.php

我目前拥有包含在我的项目中的包activewebsite/enterprise entity包。它包含一个语言文件:

vendor/activewebsite/enterprise entity/src/resources/lang/en/phone.php

此文件包含电话号码类型的翻译:

'phone_1' => 'Home',
'phone_2' => 'Work',
'phone_3' => 'Mobile',
'phone_4' => 'Office',
'phone_5' => 'Fax',
'phone_6' => 'Fax 2',
'phone_7' => 'Home 2',
'phone_8' => 'Direct',
按照上面的示例,我试图通过创建以下目录来覆盖此文件:

resources/lang/vendor/enterprise-entity/en/phone.php 
包含特定于此项目的其他电话号码:

    'phone_9' => 'Rapid Rewards Text Alert Number',
但是翻译并没有到达前端。我能够显示翻译的唯一方法是在EnterpriseEntity包中编辑语言文件

我发现了这个线索: 其他用户似乎有类似问题,但建议他们使用目录结构:

/lang/{locale}/{vendor}/{plugin}/lang.php
所以我试着

/lang/en/activewebsite/enterprise-entity/phone.php
没有运气

有人能告诉我这里可能出了什么问题吗?我尝试在每次更改后运行一个php artisan优化,看看这是否可以解决问题,但没有成功


谢谢

结果表明,文件夹结构需要使用包的名称空间camelcase,而不是遵循与包或文档中相同的命名约定/目录结构。因此,在我的示例中,用于企业实体包的名称空间是EnterpriseEntity,camelcased将是EnterpriseEntity。 正确的目录结构应为:

resources/lang/vendor/enterpriseEntity/en/phone.php

结果表明,文件夹结构需要使用包的名称空间camelcase,而不是遵循与包或文档中相同的命名约定/目录结构。因此,在我的示例中,用于企业实体包的名称空间是EnterpriseEntity,camelcased将是EnterpriseEntity。 正确的目录结构应为:

resources/lang/vendor/enterpriseEntity/en/phone.php

来自Laravel官方文件

覆盖包语言文件

有些软件包可能附带自己的语言文件。您可以将文件放在
resources/lang/vendor/{package}/{locale}
目录中,而不是更改包的核心文件来调整这些行


因此,例如,如果您需要为名为
skyrim/hearthfire
的包覆盖
messages.php
中的英语翻译字符串,则应将语言文件放置在:
resources/lang/vendor/hearthfire/en/messages.php
。在此文件中,您应该只定义要覆盖的翻译字符串。您未覆盖的任何翻译字符串仍将从程序包的原始语言文件中加载。

来自Laravel官方文档

覆盖包语言文件

有些软件包可能附带自己的语言文件。您可以将文件放在
resources/lang/vendor/{package}/{locale}
目录中,而不是更改包的核心文件来调整这些行


因此,例如,如果您需要为名为
skyrim/hearthfire
的包覆盖
messages.php
中的英语翻译字符串,则应将语言文件放置在:
resources/lang/vendor/hearthfire/en/messages.php
。在此文件中,您应该只定义要覆盖的翻译字符串。您没有覆盖的任何翻译字符串仍将从包的原始语言文件中加载。

我在任何地方都找不到您提到的包,它是虚构的包吗?我在任何地方都找不到您提到的包,它是虚构的包吗?