deanc / silex-web-translator
一个用于开始使用silex的样板
dev-master
2015-10-14 08:09 UTC
Requires
- php: >=5.4.0
- doctrine/dbal: ^2.5
- silex/silex: ~1.3
- symfony/config: ^2.7
- symfony/console: ^2.7
- symfony/form: ^2.7
- symfony/security: ~2.7
- symfony/translation: ^2.7
- symfony/twig-bridge: ^2.7
- symfony/validator: ^2.7
- symfony/yaml: ^2.7
This package is not auto-updated.
Last update: 2024-09-28 18:10:42 UTC
README
简介
这个Silex Provider允许您通过基于Web的界面轻松管理应用程序的翻译文件。当前功能包括:
- 仪表板,快速查看应用程序当前翻译状态,包括总翻译数、总区域和总未翻译字符串。
- 简单的翻译字符串编辑器,允许您快速查看每个区域缺少哪些翻译字符串。
要求
- PHP 5.4+
- 使用YAML文件进行翻译。它们必须格式化为
<domain>.<locale>.yml
。如果您不使用SymfonyTranslation
组件提供的域,请确保您的翻译文件命名为messages.<locale>.yml
。 - 在您的应用程序中所有区域的使用中,请使用ISO 639-1语言代码,一个下划线(_),然后是ISO 3166-1 alpha-2国家代码(例如fr_FR代表法语/法国)。
- 确保在设置
TranslationProvider
时将所有区域配置为后备。
安装
- 以类似方式配置默认的Silex TranslationServiceProvider
$app['locale'] = 'en_GB'; $app->register(new Silex\Provider\TranslationServiceProvider(), array( 'locale_fallbacks' => array('en_GB', 'fr_FR', 'fi_FI'), )); $app['translator'] = $app->share($app->extend('translator', function($translator, $app) { $translator->addLoader('yaml', new Symfony\Component\Translation\Loader\YamlFileLoader()); $translator->addResource('yaml', __DIR__.'/../translations/messages.en_GB.yml', 'en_GB'); $translator->addResource('yaml', __DIR__.'/../translations/messages.fr_FR.yml', 'fr_FR'); $translator->addResource('yaml', __DIR__.'/../translations/messages.fi_FI.yml', 'fi_FI'); $translator->addResource('yaml', __DIR__.'/../translations/rules.en_GB.yml', 'en_GB', 'rules'); return $translator; }));
- 确保您正在使用并已注册以下服务提供商
$app->register(new Silex\Provider\ServiceControllerServiceProvider()); $app->register(new Silex\Provider\UrlGeneratorServiceProvider()); $app->register(new Silex\Provider\FormServiceProvider()); $app->register(new Silex\Provider\ValidatorServiceProvider()); $app->register(new Silex\Provider\TwigServiceProvider());
- 注册服务提供商并配置选项
$app['webtranslator.options'] = array( 'translator_file_path' => __DIR__ . '/../translations/' ); $app->register(new DC\WebTranslator\Provider\WebTranslatorServiceProvider());
- 挂载控制器提供商
$app->mount('/webtranslator', new DC\WebTranslator\Controller\WebTranslatorControllerProvider());
常见问题解答
如何通过用户身份验证保护界面?
- 您可以使用Symfony安全组件,像任何其他路由一样,保护挂载控制器上的路由。
已知问题
- 如果您导入具有新行(管道)语法的嵌套YML文件,它将使用\r\n替换新行
感谢/致谢
- 特别感谢StartBootstrap为管理员提供的几个样式:https://github.com/IronSummitMedia/startbootstrap-sb-admin