trinityrank / multilanguage
为同一页面但在其他语言的页面添加替代多语言标签
v1.0.0
2022-11-22 16:37 UTC
Requires
- php: ^7.4|^8.0
README
为同一页面但在其他语言的页面添加替代多语言标签。
安装
步骤 1:安装包
要开始使用 Laravel 多语言,使用 Composer 命令将包添加到您的 composer.json 项目的依赖中
前端和后端
composer require trinityrank/multilanguage
仅对于后端,我们也需要这个包
composer require epartment/nova-dependency-container
Laravel Nova 管理员 - 后端部分
步骤 2:数据库
- 您需要从包中发布迁移
php artisan vendor:publish --provider="Trinityrank\Multilanguage\MultilanguageServiceProvider" --tag="multilanguage-migration"
- 然后您需要为所有租户运行迁移
php artisan tenant:artisan "migrate"
- 或仅为一个特定的租户
php artisan tenant:artisan "migrate" --tenant=[--TENANT-ID--]
步骤 3:更新数据库默认语言
- 将数据库字段 "multilang_language" 更新为您的网站默认语言
UPDATE `articles` SET `multilang_language`='us' WHERE 1; UPDATE `pages` SET `multilang_language`='us' WHERE 1; UPDATE `categories` SET `multilang_language`='us' WHERE 1; UPDATE `static_pages` SET `multilang_language`='us' WHERE 1;
步骤 4:添加字段
- 将字段添加到您的(操作员)资源的 "fields" 方法中
use Trinityrank\Multilanguage\MultilanguagePanel; ... MultilanguagePanel::make()
- 或如果您使用条件字段,只需将其添加到 "fields" 方法中
// use "$this" or "self::", depends of resource structure $this->getMultilanguagePanel('Multilanguage', 'multilanguage')
- 取决于语言选择的字段
// use "$this" or "self::", depends of resource structure // $this->getMultilanguageCategory("Language", [Resource::class, Model::class, ['rules']]), // example: $this->getMultilanguageCategory("Language", [ReviewPageCategory::class, TypesReviewPageCategory::class, ['required']]),
步骤 5:如果您正在使用条件字段
在租户默认配置中添加此内容
'conditional_fields' => [ ... '{{your_page_type_name}}' => [ 'categories' => [ 'visible' => true, 'rules' => ['required', 'min:1', 'max:1', ... ] ], ] ... ]
在租户-{{tenant name}} 配置中添加此内容
'conditional_fields' => [ ... '{{your_page_type_name}}' => [ 'language' => [ 'visible' => true ], 'categories' => [ 'visible' => true, 'visibility' => ['onlyOnIndex'], 'rules' => ['required', 'min:1', 'max:1'] ], ] ... ]
步骤 6:添加语言
在您的 "config\app.php" 中添加多语言区域(使用 ISO 语言代码)。例如
'locales' => [ "us" => "USA", "uk" => "Great Britain", "ca" => "Canada", "au" => "Australia", "de" => "German", "at" => "Austria", ],
前端部分
步骤 7:前端部分
将辅助函数添加到 "composer.json" 文件中
"autoload": { "files": [ "vendor/trinityrank/multilanguage/src/Frontend/helpers.php" ], ... }
然后运行
composer dump-autoload
并将默认的 "route()" 方法更改为 "multilang_route()"
步骤 8:添加语言
在您的 "config\app.php" 中添加多语言区域(使用 ISO 语言代码)。例如
'locales' => ['us', 'uk', 'ca', 'au', 'de', 'at'],
步骤 9:添加 hreflang 元标签
- 为 hreflang 元标签,将以下内容添加到您的
master.blade
文件中的 head 标签中
<!-- Multilanguage alternate link tags --> {!! Trinityrank\Multilanguage\Frontend\HreflangDisplay::meta_tags($item) !!}
- 在
app.php
文件的底部添加此部分代码,并根据网站设置更改值
// Url structure scheme (same as multicore tenant config file) 'services' => [ 'deals' => false, 'MoneyPage' => [ 'include_category_in_url' => false, 'slug' => 'best', ], 'News' => [ 'include_category_in_url' => false, 'slug' => 'news', ], 'Blog' => [ 'include_category_in_url' => false, 'slug' => false, ], 'ReviewPage' => [ 'include_category_in_url' => false, 'slug' => 'reviews', ] ],