Lingo.dev + .php(Laravel)
Lingo.dev CLI 翻译基于 PHP 数组的语言文件,同时保留语法、Laravel 约定和 PHP 特定的格式。CLI 完全保留 PHP 数组语法和格式,与 Laravel 的本地化系统无缝集成,保留 :name
和 :count
变量,处理多维数组结构,并兼容任何使用数组的 PHP 框架。
快速设置
为 PHP 语言数组文件配置:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"php": {
"include": ["resources/lang/[locale]/*.php"]
}
}
}
提醒:[locale]
是一个占位符,在 CLI 运行期间会被实际的语言代码替换,因此应在配置中保持原样。
翻译 PHP 数组
npx lingo.dev@latest i18n
在翻译字符串值的同时保留 PHP 语法、数组结构和 Laravel 特定的约定。
PHP 数组结构
基本语言数组
<?php
return [
'welcome' => '欢迎使用我们的应用程序',
'dashboard' => '仪表盘',
'settings' => '设置',
'logout' => '退出登录',
];
嵌套数组支持
<?php
return [
'auth' => [
'login' => '登录',
'register' => '注册',
'forgot_password' => '忘记密码?',
'reset_password' => '重置密码',
],
'validation' => [
'required' => '此字段为必填项',
'email' => '请输入有效的电子邮件地址',
],
];
Laravel 占位符支持
<?php
return [
'welcome_user' => '欢迎回来,:name!',
'items_count' => '您的购物车中有 :count 件商品',
'validation' => [
'min' => ':attribute 至少需要 :min 个字符',
],
];
框架集成
Laravel 翻译助手
与 Laravel 的翻译函数无缝集成:
__('messages.welcome')
trans('auth.login')
@lang('validation.required')
复数化支持
<?php
return [
'items' => 'item|items',
'minutes' => '{0} no minutes|{1} one minute|[2,*] :count minutes',
];
高级配置
多语言目录
"php": {
"include": [
"resources/lang/[locale]/*.php",
"lang/[locale]/**/*.php"
]
}
锁定配置键
"php": {
"include": ["resources/lang/[locale]/*.php"],
"lockedKeys": ["app.timezone", "app.locale", "app.fallback_locale"]
}