sloveniangooner / locale-anywhere
Laravel Nova 工具。
该包的官方仓库似乎已消失,因此该包已被冻结。
dev-master
2019-12-16 09:30 UTC
Requires
- php: >=7.1.0
This package is auto-updated.
Last update: 2024-06-16 19:53:00 UTC
README
Laravel Nova Locale Anywhere 工具
此工具提供了一个漂亮的下拉菜单,可以快速在区域之间切换(这些区域独立于 app()->getLocale()
的值,并存储在缓存中)。
它还提供了一个 Language
字段,可以显示特定资源上翻译的状态。
安装
composer require sloveniangooner/locale-anywhere
用法
要开始使用此工具,您必须首先在 NovaServiceProvider
中的工具下注册该工具。该工具使用 Spatie 的 Laravel Translatable 包。
public function tools()
{
return [
new LocaleAnywhere([
"locales" => [
"en" => "English",
"de" => "German"
],
"useFallback" => false,
])
];
}
定义字段
然后您可以在资源中定义该字段。
use Sloveniangooner\LocaleAnywhere\Language;
Language::make("Language)
扩展特质
您还必须在模型中重写 Spatie 的 HasTranslations
特质,以便切换回退区域并应用自定义区域,而不是 app()->getLocale()
。别担心 - 该包的特质扩展了 Spatie 特质提供的所有功能。
use Sloveniangooner\LocaleAnywhere\HasTranslations;
use Illuminate\Database\Eloquent\Model;
class Content extends Model {
use HasTranslations;
public $useFallback = true; // Local setting to use the fallback locale or not
}
有关其他翻译相关选项,请参阅 Spatie 的包。(spatie/laravel-translatable)[https://github.com/spatie/laravel-translatable]
下拉菜单
该包提供了一个开关,您需要将其插入到 Nova 的布局文件中。您可以通过重写 layout.blade.php
文件并在用户下拉菜单之后插入它来完成此操作。
<dropdown class="ml-auto h-9 flex items-center dropdown-right">
@include('nova::partials.user')
</dropdown>
<locale-anywhere-dropdown class="ml-6"></locale-anywhere-dropdown>
删除翻译工具栏按钮
该包提供了一个自定义详细工具栏组件,您可以通过配置来切换。可选地,您也可以仅从包中获取 <delete-toolbar-button>
并将其粘贴到您自己的自定义详细工具栏中。
new LocaleAnywhere(
[
"locales" => [
"en" => "English",
"de" => "German"
],
"useFallback" => false,
"customDetailToolbar" => false
]
)