Skip to content

Translations ​

Every user-facing string the packages emit — audit findings, the live editor warnings under the Filament fields, labels, previews, reports — is a Laravel language line. The packages follow app()->getLocale(): a panel running in Italian shows Italian, with nothing to configure.

Issue and warning codes (missing_title, title_too_long, …) never change and are never translated. Only the human sentence attached to a code is.

Shipped languages: English, Italian (earlier strings reviewed; changed strings need re-review), and first passes in German, French, Spanish, Brazilian Portuguese, Dutch, Turkish, Russian, Polish (Tier 1) and, since core 3.16 / Filament 1.10 / Pro 2.35, Japanese, Simplified Chinese (zh_CN), Traditional Chinese (zh_TW), Korean, Greek, Ukrainian and Czech (Tier 2). The exact status per locale is in TRANSLATING.md; a native review is what turns a first pass into a supported language.

Override a string ​

bash
php artisan vendor:publish --tag=seo-lang            # core (3.13+)
php artisan vendor:publish --tag=seo-filament-lang   # Filament fields (1.6+)
php artisan vendor:publish --tag=seo-pro-lang        # Pro (2.31+)

Then edit lang/vendor/seo/{locale}/seo.php (and the sibling folders for the other packages). Keys you keep are overridden; the rest fall back to the package file, then to English.

Contribute a language ​

Copy the en file to your locale, translate the values, keep every :placeholder, run the suite (a parity test fails on any missing key, orphan key, empty value or lost placeholder) and open a pull request. The full rules and the glossary are in TRANSLATING.md.

What is not translated on purpose ​

CLI presentation defaults to English. Set seo.cli_locale / SEO_CLI_LOCALE, or pass --display-locale=it, to translate supported messages and audit summaries. Pro has its own seo-pro.cli_locale setting. Display language is separate from the content locale selected by --locale.

  • Command help, maintenance diagnostics and seo:explain output remain English; PASS/WARN/FAIL labels stay stable.
  • Rendered HTML (<meta>, JSON-LD): your content's language, never the package's.
  • Issue codes and JSON keys/status codes remain stable identifiers. Human labels in --json output may translate; integrations should consume keys and codes.

The other half: your content's language ​

This page is about the language the package speaks. How it understands the language of your content — per-script title budgets, truncation, casing, hreflang policies, inLanguage, regional search engines, OG-image fonts — is Multilingual content.

rankbeam/laravel-seo is released under the MIT License.