Logomotion: suites des slides Symfony3
This commit is contained in:
parent
cdc80c6a5f
commit
63cb07d03e
@ -1188,6 +1188,238 @@ server {
|
||||
```
|
||||
---
|
||||
|
||||
## Sujets spécifiques
|
||||
|
||||
### Gestion des traductions
|
||||
### Utilisation du micro-kernel
|
||||
### Les tests
|
||||
### Gestion des assets avec Webpack
|
||||
### Formulaires et gestion des thèmes
|
||||
|
||||
---
|
||||
|
||||
## Gestion des traductions
|
||||
|
||||
### Installation du composant
|
||||
### Le service `translator`
|
||||
### Gestion des traductions
|
||||
|
||||
---
|
||||
|
||||
## Installation du composant
|
||||
|
||||
```bash
|
||||
composer require symfony/translation
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Le service `translator`
|
||||
|
||||
### Gestion de la `locale`
|
||||
### Utilisation du service `translator`
|
||||
### Utilisation dans un template Twig
|
||||
### Pluralisation
|
||||
### Organisation par domaine
|
||||
|
||||
---
|
||||
|
||||
## Gestion de la `locale` (1)
|
||||
|
||||
### Récupérer la locale dans un controleur
|
||||
|
||||
```php
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
public function indexAction(Request $request)
|
||||
{
|
||||
$locale = $request->getLocale();
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Gestion de la `locale` (2)
|
||||
|
||||
### Modifier la `locale` via un listener sur l'évènement `kernel.request`
|
||||
|
||||
```php
|
||||
public function onKernelRequest(GetResponseEvent $event)
|
||||
{
|
||||
$request = $event->getRequest();
|
||||
$request->setLocale($locale);
|
||||
}
|
||||
```
|
||||
|
||||
> **Attention** La modification de la `locale` dans un contrôleur sera ignorée par les services dans la majoritée des cas.
|
||||
|
||||
---
|
||||
|
||||
## Gestion de la `locale` (3)
|
||||
|
||||
### Définir la `locale` via les paramètres de l'action
|
||||
|
||||
```php
|
||||
class LocalizedController extends Controller
|
||||
{
|
||||
/**
|
||||
* @Route(
|
||||
* "/{_locale}/my-page",
|
||||
* requirements = { "_locale"="fr|en" }
|
||||
* )
|
||||
*/
|
||||
public function localizedAction()
|
||||
{
|
||||
// ...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Gestion de la `locale` (4)
|
||||
|
||||
### Définir la `locale` par défaut
|
||||
|
||||
```php
|
||||
# app/config/config.yml
|
||||
framework:
|
||||
# ...
|
||||
translator: { fallbacks: ['%locale%'] }
|
||||
|
||||
# app/config/parameters.yml
|
||||
parameters:
|
||||
# ...
|
||||
locale: en
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Utilisation du service `translator`
|
||||
|
||||
```php
|
||||
|
||||
use Symfony\Component\Translation\TranslatorInterface;
|
||||
|
||||
//...
|
||||
|
||||
public function localizedAction(TranslatorInterface $translator)
|
||||
{
|
||||
$translated = $translator->trans(
|
||||
'my.translation.key', // Clé de la chaine à traduire
|
||||
['key' => $val ], // Variables à injecter, optionnel
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Utilisation dans un template Twig
|
||||
|
||||
|
||||
|
||||
```twig
|
||||
|
||||
<!-- La variable %name% est directement injectée depuis le contexte Twig --!>
|
||||
|
||||
{% trans %}Hello %name%{% endtrans %}
|
||||
|
||||
<!-- Via la notation "filtre" -->
|
||||
|
||||
{{ 'my.translation.key' | trans() }}
|
||||
|
||||
<!-- Avec des paramètres supplémentaires -->
|
||||
|
||||
{% trans with { '%foo%': 'bar' } %}Hello %foo%{% endtrans %}
|
||||
|
||||
{{ 'my.translation.key' | trans({ '%foo%': 'bar' }) }}
|
||||
|
||||
```
|
||||
---
|
||||
|
||||
## Pluralisation (1)
|
||||
|
||||
### Simple
|
||||
```
|
||||
Il y a une pomme|Il y a %count% pommes
|
||||
```
|
||||
|
||||
### Intervalles et valeurs spécifiques
|
||||
```
|
||||
{0} Il n'y a aucune pomme. |
|
||||
[1,20[ Il y %count% pommes. |
|
||||
[20,Inf[ Il y a beaucoup de pommes.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Pluralisation (2)
|
||||
|
||||
### Utilisation
|
||||
|
||||
```php
|
||||
$translator->transchoice(
|
||||
'my.translation.key', // Clé de la chaine à traduire
|
||||
$count, // Nombre d'occurences pour la pluralisation
|
||||
[ 'key' => $val ], // Variables à injecter
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Organisation par domaine
|
||||
|
||||
---
|
||||
|
||||
## Gestion des traductions
|
||||
|
||||
### Générer/mettre à jour les fichiers XLIFF
|
||||
### Manipuler les fichiers XLIFF
|
||||
### Ajout de ressources supplémentaires
|
||||
|
||||
---
|
||||
|
||||
## Générer/mettre à jour les fichiers XLIFF
|
||||
|
||||
```bash
|
||||
bin/console translation:update <language> --output-format=xlf --force
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Manipuler les fichiers XLIFF
|
||||
|
||||
> Démo de [Virtaal](http://virtaal.translatehouse.org/)
|
||||
|
||||
---
|
||||
|
||||
## Utilisation du micro-kernel
|
||||
|
||||
---
|
||||
|
||||
## Ajout de ressources supplémentaires
|
||||
|
||||
```yaml
|
||||
# app/config/config.yml
|
||||
framework:
|
||||
translator:
|
||||
paths:
|
||||
- '%kernel.project_dir%/translations'
|
||||
```
|
||||
---
|
||||
|
||||
## Les tests
|
||||
|
||||
---
|
||||
|
||||
## Gestion des assets avec Webpack
|
||||
|
||||
---
|
||||
|
||||
## Formulaires et gestion des thèmes
|
||||
|
||||
---
|
||||
|
||||
# Licence
|
||||
|
||||
## CC BY-NC-SA 3.0 FR
|
||||
|
Loading…
Reference in New Issue
Block a user