Logomotion: suites des slides Symfony3
This commit is contained in:
parent
4d1f3f73e1
commit
6fa95a6de9
|
@ -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
|
# Licence
|
||||||
|
|
||||||
## CC BY-NC-SA 3.0 FR
|
## CC BY-NC-SA 3.0 FR
|
||||||
|
|
Loading…
Reference in New Issue