Out of the box, Laravel ships with a simple-but-intuitive localization system: when you call trans('some.key')
and Laravel will automatically replace it with the value of “key” within resources/lang/{locale}/some.php
. Laravel translations also accept placeholders and can handle pluralization, making it extremely easy to build applications that are localization-ready.
Of course, building an application that’s localization-ready means the Laravel translations need to be filled out to begin with. It’s far too easy to get on a role writing several views, then miss a string or two when creating the localization files. Heck, even the comments in the Translator
class within Laravel itself doesn’t seem to think much of it:
If the line doesn’t exist, we will return back the key which was requested as that will be quick to spot in the UI if language keys are wrong or missing from the application’s language files. Otherwise we can return the line.
Unfortunately, I’ve had one too many apps go live (or in front of clients for demos) with a string or two missing a translation. Finally, I decided to do something about it.