Free Laravel localization tools
Small, sharp tools for everyday translation work: diff and convert lang files, test plurals, ICU messages and dates in any locale, and generate the tags and keys a multilingual app needs. No signup, nothing stored.
Which tool do I need?
Start from the problem in front of you.
- Users see keys like checkout.title on a live page Untranslated Key Detector →
- I need to find text that was never wrapped in __() Blade Hardcoded String Scanner →
- I need to know which keys a locale is missing Lang File Diff & Validator →
- I want to see which screens break with longer text Pseudo-Localization Generator →
- trans_choice() returns the wrong form trans_choice() Tester →
- I need the plural categories of a language Pluralization Tester →
- My ICU message does not render as expected ICU MessageFormat Tester →
- Dates and month names look wrong in another language Carbon Localized Date Preview →
- I am not sure which locale code or folder name to use Locale Code Lookup →
- Google shows the wrong language version of my pages Hreflang Tag Generator →
- I need a new APP_KEY for an environment Laravel APP_KEY Generator →
- I want to budget the AI translation of my app AI Translation Cost Calculator →
Find text that is not translated
Hardcoded strings in templates and keys that leak onto live pages are the two ways untranslated text reaches users.
Untranslated Key Detector
Scan any website for leaked i18n keys: dot-notation identifiers, missing-translation markers and unrendered placeholders your users can see.
Blade Hardcoded String Scanner
Paste a Blade template and find text that should be behind __() — with suggested keys and a generated lang file.
Work with lang files
Compare locales, generate test locales and move translations between formats without hand-editing arrays.
Lang File Diff & Validator
Compare two locales and find missing keys, extra keys, broken :placeholders, plural forms that do not match and strings nobody translated.
Pseudo-Localization Generator
Turn a lang file into accented, expanded pseudo-text to catch hardcoded strings and layouts that break with longer languages.
Test plurals, messages, dates and locales
Check what a locale really does with a count, an ICU message or a date before a user in that language sees it.
Pluralization Tester
Pick a language, type a number, see which CLDR plural category applies — live, via your browser's Intl.PluralRules.
trans_choice() Tester
Paste a Laravel pluralization string, pick a locale and a count, and see exactly which form Laravel returns, using Laravel itself.
ICU MessageFormat Tester
Write an ICU message with plural, select and number arguments and render it in any locale with the real ICU library.
Carbon Localized Date Preview
See how Carbon formats dates, relative times and month names in any locale before you ship them.
Locale Code Lookup
Check any BCP 47 locale code: language, region, script, text direction, plural forms and the Laravel folder name to use.
Set up and plan
Configuration and planning helpers for multilingual Laravel apps.
AI Translation Cost Calculator
Keys × languages = quota units. Estimate the initial run and the monthly churn for your project.
Laravel APP_KEY Generator
Generate a valid base64 APP_KEY for Laravel in your browser. Nothing is sent to a server.
Hreflang Tag Generator
Build hreflang link tags, HTTP headers and sitemap entries for every language version of a page, with validation.
Lang file converters
Convert between Laravel PHP arrays, JSON, YAML and CSV, with nesting, placeholders and plural pipes preserved. CSV is the format translators and spreadsheets understand; JSON is what Laravel loads for string keys.
Where each tool fits in a Laravel localization workflow
Localizing a Laravel app is the same handful of steps every time, whether it is the first language or the tenth. The tools above map onto those steps, so you can use one in isolation or run through them in order.
1. Get every string out of the code
Nothing can be translated while it is still typed into a Blade template. Paste a template into the
Blade scanner to see which headings, labels and attributes need a __() call,
with a suggested key for each. The
string extraction
glossary entry explains the approach, and
this article
shows how to do it across a whole project.
2. Keep the lang files complete
Once keys exist, the risk moves to the files: a key added to en and
forgotten in de, a placeholder renamed in one locale only, a plural
line with the wrong number of forms. The lang file diff catches all of those between two locales, and
the converters move the same content between PHP, JSON, YAML and CSV when a translator or another
system needs a different format. On a deployed site, the key detector shows the keys that already
leaked to users.
3. Test before a real translation exists
Pseudo-localization replaces your English text with accented, longer text that is still readable. Switch the app to that locale and every string that stays plain English is hardcoded, and every button that overflows will also overflow in German or Finnish. It costs nothing and finds problems before you pay for a translation.
4. Check the rules each language brings
Languages differ in more than words. Polish and Russian need more plural forms than English, Arabic
needs six, and Japanese needs one. The pluralization tester shows the CLDR categories of a language,
and the trans_choice() tester runs your actual pluralization line
through Laravel, which uses its own rules. If you write messages in ICU MessageFormat, the ICU tester
renders them with the real ICU library. Dates and relative times differ too, and the Carbon preview
shows them for any locale. The
trans_choice guide
and the
Carbon dates guide
cover both in depth, and the
per-language guides
list the rules for 30 languages.
5. Ship it so search engines understand it
A multilingual site needs locale codes used consistently in folder names, the
lang attribute and hreflang annotations. The locale lookup gives
you every form of a code at once, and the hreflang generator writes and validates the tags so Google
shows each visitor the right language. The
multilingual SEO article
explains how to wire them into Laravel routes.
6. Plan the cost of the rest
The cost calculator estimates the AI translation quota for your number of keys and languages, both for the first run and for the monthly changes after it.
Frequently asked questions
Are these tools really free?
Yes — no account, no email, no usage limits beyond basic rate limiting. They exist because they are the parts of LangSyncer that are useful on their own, and we would rather you try the detection quality before signing up for anything.
Is my code or content sent anywhere?
The pluralization tester, the locale lookup, the hreflang generator and the APP_KEY generator run entirely in your browser. The other tools send your input to the server because they run real Laravel, Carbon or ICU code on it; it is processed in memory and returned without being stored or logged.
Do I need a Laravel project to use them?
No. The Blade scanner, the trans_choice() tester, the Carbon preview and the APP_KEY generator are specific to Laravel, but the converters, the lang file diff, pseudo-localization, the ICU tester, the locale lookup, the hreflang generator and the key detector are useful in any i18n setup.
Why do some testers run on the server instead of in the browser?
Because the answer has to come from the same code your app runs. Laravel's trans_choice() uses its own plural rules rather than the browser's, Carbon has its own translations for dates, and PHP's ICU version can differ from your browser's. Running the real library shows what your server will render rather than what a browser would.
Can I link to these tools or use them in a tutorial?
Yes, please do. Every tool page has a ready-made link you can copy into a README, a wiki or a forum answer, and several tools keep their input in the page address so you can link straight to a specific result.
What do these tools have to do with LangSyncer?
Each one solves a slice of the same problem: keeping translations complete and correct without a deploy for every change. LangSyncer is the full version — import your lang files, translate what is missing with AI, review it, and publish to a global CDN in seconds.
These tools fix symptoms
LangSyncer fixes the workflow: live translations, AI in one click, a full-repo scanner and coverage tracking, so keys never leak in the first place.