Awesome
ManuelTranslationBundle
Bundle que permite la creación y edición de etiquetas de traducción desde la Base de datos Puedes Crear y Modificar traducciones de etiquetas de manera simple y sin tocar archivos xml, yml, php... Y además crear facilmente desde el Profiler las etiquetas sin traducir aun.
Instalación
Ejecutar
composer require optimeconsulting/manuel-translation-bundle @dev
Luego de ello, registrar los bundles en el config/bundles.php:
return [
...
ManuelAguirre\Bundle\TranslationBundle\ManuelTranslationBundle::class => ['all' => true],
...
];
Configurando el bundle ManuelTranslationBundle:
Este bundle nos permite editar y manejar traducciones desde la base de datos, pudiendo editarlas desde la página web, además nos permite sincronizar las traducciones entre el servidor y local del proyecto.
Para agregar su configuración se debe crear un archivo llamado config/packages/manuel_translation.yaml.
manuel_translation:
locales: [en, es] # Se deben definir los locales que el translator usará.
security_role: ROLE_SUPER_ADMIN # Valor por defecto si no se define la opción.
En el config/routes.yaml agregar:
manuel_translation:
resource: "@ManuelTranslationBundle/src/Controller/"
type: annotation
prefix: /{_locale}/admin/trans
# requirements:
# _locale: "%locales_pattern%"
En el config/packages/security.yaml ajustar el access_control para el admin de traducciones:
access_control:
- ...
- { path: "^/[a-z]{2,4}/admin/trans", allow_if: 'is_granted("manage_translations")' }
- ...
El is_granted("manage_translations")
permite entrar en el administrador de traducciones cuando
se tiene el rol configurado en el manuel_translation.security_role
o si se está ejecutando
el proyecto en un servidor local, en dado caso se puede acceder al admin de traducciones sin
necesidad de estar autenticado.
Por último se debe crear la base de datos (si no se ha hecho aun) y agregar a la bd las tablas competentes al bundle, por lo que se deben ejecutar los siguientes comandos de consola:
php app/console doctrine:database:create
php app/console doctrine:schema:update --force
Además ejecutar el comando:
php app/console assets:install
Con esto ya se ha instalado correctamente el bundle.