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"]
}