stevegrunwell/lost-in-translation
Composer 安装命令:
composer require stevegrunwell/lost-in-translation
包简介
Uncover missing translations and localization strings in Laravel applications
README 文档
README
Lost in Translation is designed to help developers locate instances of localization strings within a Laravel application that haven't been provided translations.
Installation
Lost in Translation can be installed into your Laravel project via Composer:
$ composer require stevegrunwell/lost-in-translation
By default, this will replace the default TranslationServiceProvider class with a sub-class that adds additional logic when a translation isn't found. To resume default behavior (even in a production environment), see the "Configuration" section below.
Configuration
By default, Lost in Translation will catch missing translations in two ways:
- In environments where
APP_DEBUGis true, aLostInTranslation\MissingTranslationExceptionwill be found if the application attempts to load a translation that hasn't been defined. - Missing translations will be written to
storage/logs/lost-in-translation.log.
Either of these can be disabled via the package's configuration, making Lost in Translation safe to use in production. These values can be set using the following environment variables:
- TRANS_LOG_MISSING
- Determines whether or not missing translations should be logged. Default is "true".
- TRANS_ERROR_ON_MISSING
- Should
MissingTranslationExceptionexceptions be thrown when a translation is missing? Default is "false".
To override package configuration, run the following to copy the configuration to your app's config/ directory:
$ php artisan vendor:publish --provider="LostInTranslation\Providers\TranslationServiceProvider"
This will create a new file in config/lostintranslation.php, where default values for your application can be set.
Extending
When a missing translation is found, the a LostInTranslation\MissingTranslationFound event will be dispatched. This event makes it easy to do something (send an email, open a GitHub issue, etc.)when a missing translation is encountered.
First, create a new event listener in your application; in this example, we're using app/Listeners/NotifyOfMissingTranslation.php:
<?php namespace App\Listeners; use LostInTranslation\Events\MissingTranslationFound; class NotifyOfMissingTranslation { /** * Handle the event. * * @param MissingTranslationFound $event * * @return void */ public function handle(MissingTranslationFound $event) { // Do something with the event. } }
The MissingTranslationFound event has four public properties of note:
$key- The translation key that was not found.$replacements- Any replacements that were passed to the translation call.$locale- The locale that was being used.$fallback- The fallback locale, if defined.
Then, in app/Providers/EventServiceProvider.php, add the following to register NotifyOfMissingTranslation as a callback when a MissingTranslationFound event occurs:
/** * The event listener mappings for the application. * * @var array */ protected $listen = [ 'LostInTranslation\Events\MissingTranslationFound' => [ 'App\Listeners\NotifyOfMissingTranslation', ], ];
For more on event listeners, please see the Laravel Events documentation.
stevegrunwell/lost-in-translation 适用场景与选型建议
stevegrunwell/lost-in-translation 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 36.63k 次下载、GitHub Stars 达 36, 最近一次更新时间为 2017 年 10 月 17 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「translation」 「laravel」 「qa」 「laravel package」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 stevegrunwell/lost-in-translation 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 stevegrunwell/lost-in-translation 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 stevegrunwell/lost-in-translation 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A custom URL rule class for Yii 2 which allows to create translated URL rules
A Laravel Eloquent model trait for translatable resource
Bureaux A Partager Edit - Parse, validate, manipulate, and display dates in PHP w/ i18n support. Inspired by moment.js
Symfony localise.biz library
This bundle provides translations for entities in your project. It's a bundle, but can be used standalone.
统计信息
- 总下载量: 36.63k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 36
- 点击次数: 5
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-10-17