Php 无法重新声明Laravel';使用oscarotero/gettext翻译库时的s _;()函数

Php 无法重新声明Laravel';使用oscarotero/gettext翻译库时的s _;()函数,php,laravel,Php,Laravel,我在PHP数组中有一组翻译。使用Oscarotero的gettext库,我得到一个错误: “无法重新声明u uz()(以前在中声明 D:\LocaleTesting\vendor\laravel\framework\src\illumb\Foundation\helpers.php:907)” 当执行代码$t->register()时 $aTranslation=Translations::fromJsonFile(public_path()./locale/.$sLocale./LC_MESS

我在PHP数组中有一组翻译。使用Oscarotero的gettext库,我得到一个错误:

“无法重新声明u uz()(以前在中声明 D:\LocaleTesting\vendor\laravel\framework\src\illumb\Foundation\helpers.php:907)” 当执行代码$t->register()时

$aTranslation=Translations::fromJsonFile(public_path()./locale/.$sLocale./LC_MESSAGES/admin.json');
$oTranslator=新的转换器();
$oTranslator->loadTranslations($aTranslation);
$oTranslator->register();

此外,我发现只有当您的Laravel版本为5.4及以上时,才会出现此错误。任何帮助都可以。非常感谢。有关该库的更多信息,请访问github。

这似乎是该库的一个已知问题:

解决方法之一是在加载laravel助手之前加载转换器函数(解决上述问题):

我在
public/index.php
artisan
命令上使用require-before
vendor/autoload.php

# public/index.php
require __DIR__.'/../vendor/gettext/gettext/src/translator_functions.php';
require __DIR__.'/../vendor/autoload.php';

这对我有用。谢谢@atymic!但是,如果我创建一个接受两个参数的新函数uuuu(),比如uuuu('param1','param2'),我如何生成这个全局php函数呢?就像我在blade中调用_u()函数一样,它执行我创建的函数,而不是gettext的_o()?不过,我还是会使用oscarotero的gettext。非常感谢。
# artisan
require __DIR__.'/vendor/gettext/gettext/src/translator_functions.php';
require __DIR__.'/vendor/autoload.php';