alecscodes/inertia-i18n
最新稳定版本:v0.1.0
Composer 安装命令:
composer require alecscodes/inertia-i18n
包简介
Minimal i18n for Laravel Inertia — share PHP and JSON translations with t() and tc() on the frontend
README 文档
README
Minimal i18n bridge for Laravel + Inertia.js — share your PHP and JSON translation files with the frontend.
Requirements
- PHP
^8.2 - Laravel
^10.0 || ^11.0 || ^12.0 || ^13.0 - Inertia Laravel
^2.0 || ^3.0
Install
composer require alecscodes/inertia-i18n
Publish
php artisan vendor:publish --tag=inertia-i18n-js php artisan vendor:publish --tag=inertia-i18n-config
Configure
In config/inertia-i18n.php, set shared to only the groups used on every page (e.g. common, nav) and load everything else per-page with ->withTranslations().
'shared' => ['common', 'nav'];
You can also use ['*'] in config/inertia-i18n.php to load all translation files on every page. This is a convenient quickstart for small apps (no need to touch each controller), but it can become heavy if you have a lot of translations.
'shared' => ['*'],
Frontend
import { useTranslation } from '@/vendor/inertia-i18n/useTranslation'; const page = /* get the Inertia page object from your adapter */ const { t, tc, locale } = useTranslation(page.props); t('settings.two_factor.title') // Two-factor authentication
Backend
When using ['*'] in the config to load all translations globally, the ->withTranslations() calls are not required.
return Inertia::render('Dashboard') ->withTranslations('dashboard', 'widgets');
Localization
Translation files are loaded from:
lang/{locale}/**/*.phplang/{locale}/**/*.json
(subdirectories are supported)
Language switching can be implemented using any method you prefer (e.g., route parameters, session, cookies, etc.).
Set the locale before rendering the Inertia response:
app()->setLocale($locale);
📄 License
The MIT License (MIT). Please see LICENSE.md for more information.
Made with ♥ for the Laravel community
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 6
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-03-31