kamazoun

#22 in README-fr.md

Showing 1 changed file with 107 additions and 108 deletions
@@ -32,9 +32,9 @@ @@ -32,9 +32,9 @@
32 - [Traductions](#traductions) 32 - [Traductions](#traductions)
33 - [Utiliser les traductions](#utiliser-les-traductions) 33 - [Utiliser les traductions](#utiliser-les-traductions)
34 - [Locales](#locales) 34 - [Locales](#locales)
35 - - [Change locale](#change-locale)  
36 - - [System locale](#system-locale)  
37 - - [Change Theme](#change-theme) 35 + - [Changer la locale](#changer-la-locale)
  36 + - [Locale du Système](#locale-du-systeme)
  37 + - [Changer le Thème](#changer-le-theme)
38 - [GetConnect](#getconnect) 38 - [GetConnect](#getconnect)
39 - [Default configuration](#default-configuration) 39 - [Default configuration](#default-configuration)
40 - [Custom configuration](#custom-configuration) 40 - [Custom configuration](#custom-configuration)
@@ -391,7 +391,7 @@ var locale = Locale('en', 'US'); @@ -391,7 +391,7 @@ var locale = Locale('en', 'US');
391 Get.updateLocale(locale); 391 Get.updateLocale(locale);
392 ``` 392 ```
393 393
394 -#### Locale du système 394 +#### Locale du systeme
395 395
396 Pour lire les paramètres régionaux ('locales') du système, vous pouvez utiliser `Get.deviceLocale`. 396 Pour lire les paramètres régionaux ('locales') du système, vous pouvez utiliser `Get.deviceLocale`.
397 397
@@ -420,15 +420,15 @@ Si vous voulez créer quelque chose comme un bouton qui change le thème dans `o @@ -420,15 +420,15 @@ Si vous voulez créer quelque chose comme un bouton qui change le thème dans `o
420 Get.changeTheme(Get.isDarkMode? ThemeData.light(): ThemeData.dark()); 420 Get.changeTheme(Get.isDarkMode? ThemeData.light(): ThemeData.dark());
421 ``` 421 ```
422 422
423 -Lorsque `.darkmode` est activé, il passera au _thème clair_, et lorsque le _thème clair_ deviendra actif, il passera au _thème sombre_. 423 +Lorsque 'onPressed' est appelé, si `.darkmode` est activé, il passera au _thème clair_, et lorsque le _thème clair_ est actif, il passera au _thème sombre_.
424 424
425 ## GetConnect 425 ## GetConnect
426 426
427 -GetConnect is an easy way to communicate from your back to your front with http or websockets 427 +GetConnect est un moyen facile de communiquer de votre backend à votre frontend avec http ou websockets.
428 428
429 -### Default configuration 429 +### Configuration par defaut
430 430
431 -You can simply extend GetConnect and use the GET/POST/PUT/DELETE/SOCKET methods to communicate with your Rest API or websockets. 431 +Vous pouvez simplement 'extends' GetConnect et utiliser les méthodes GET / POST / PUT / DELETE / SOCKET pour communiquer avec votre API Rest ou vos websockets.
432 432
433 ```dart 433 ```dart
434 class UserProvider extends GetConnect { 434 class UserProvider extends GetConnect {
@@ -451,64 +451,64 @@ class UserProvider extends GetConnect { @@ -451,64 +451,64 @@ class UserProvider extends GetConnect {
451 } 451 }
452 ``` 452 ```
453 453
454 -### Custom configuration 454 +### Configuration personnalisee
455 455
456 -GetConnect is highly customizable You can define base Url, as answer modifiers, as Requests modifiers, define an authenticator, and even the number of attempts in which it will try to authenticate itself, in addition to giving the possibility to define a standard decoder that will transform all your requests into your Models without any additional configuration. 456 +
  457 +GetConnect est hautement personnalisable. Vous pouvez définir l'URL de base, comme modificateurs de réponse, comme modificateurs de requêtes, définir un authentificateur, et même le nombre de tentatives oú il tentera de s'authentifier, en plus de donner la possibilité de définir un décodeur standard qui transformera toutes vos Requêtes dans vos Modèles sans aucune configuration supplémentaire.
457 458
458 ```dart 459 ```dart
459 class HomeProvider extends GetConnect { 460 class HomeProvider extends GetConnect {
460 @override 461 @override
461 void onInit() { 462 void onInit() {
462 - // All request will pass to jsonEncode so CasesModel.fromJson() 463 + // Toute 'Request' passera à jsonEncode donc CasesModel.fromJson()
463 httpClient.defaultDecoder = CasesModel.fromJson; 464 httpClient.defaultDecoder = CasesModel.fromJson;
464 httpClient.baseUrl = 'https://api.covid19api.com'; 465 httpClient.baseUrl = 'https://api.covid19api.com';
465 - // baseUrl = 'https://api.covid19api.com'; // It define baseUrl to  
466 - // Http and websockets if used with no [httpClient] instance 466 + // baseUrl = 'https://api.covid19api.com';
  467 + // Il définit baseUrl pour Http et websockets si utilisé sans instance [httpClient]
467 468
468 - // It's will attach 'apikey' property on header from all requests 469 + // Cela attachera la propriété 'apikey' sur l'en-tête ('header') de toutes les 'request's
469 httpClient.addRequestModifier((request) { 470 httpClient.addRequestModifier((request) {
470 request.headers['apikey'] = '12345678'; 471 request.headers['apikey'] = '12345678';
471 return request; 472 return request;
472 }); 473 });
473 474
474 - // Even if the server sends data from the country "Brazil",  
475 - // it will never be displayed to users, because you remove  
476 - // that data from the response, even before the response is delivered 475 + // Même si le serveur envoie des données avec le pays "Brésil",
  476 + // cela ne sera jamais affiché aux utilisateurs, car vous supprimez
  477 + // ces données de la réponse, même avant que la réponse ne soit délivrée
477 httpClient.addResponseModifier<CasesModel>((request, response) { 478 httpClient.addResponseModifier<CasesModel>((request, response) {
478 CasesModel model = response.body; 479 CasesModel model = response.body;
479 if (model.countries.contains('Brazil')) { 480 if (model.countries.contains('Brazil')) {
480 - model.countries.remove('Brazilll'); 481 + model.countries.remove('Brazil');
481 } 482 }
482 }); 483 });
483 484
484 httpClient.addAuthenticator((request) async { 485 httpClient.addAuthenticator((request) async {
485 final response = await get("http://yourapi/token"); 486 final response = await get("http://yourapi/token");
486 final token = response.body['token']; 487 final token = response.body['token'];
487 - // Set the header 488 + // Définit l'en-tête
488 request.headers['Authorization'] = "$token"; 489 request.headers['Authorization'] = "$token";
489 return request; 490 return request;
490 }); 491 });
491 492
492 - //Autenticator will be called 3 times if HttpStatus is  
493 - //HttpStatus.unauthorized 493 + // L'Autenticator sera appelé 3 fois si HttpStatus est HttpStatus.unauthorized
494 httpClient.maxAuthRetries = 3; 494 httpClient.maxAuthRetries = 3;
495 } 495 }
496 - } 496 +
497 497
498 @override 498 @override
499 Future<Response<CasesModel>> getCases(String path) => get(path); 499 Future<Response<CasesModel>> getCases(String path) => get(path);
500 } 500 }
501 ``` 501 ```
502 502
503 -## GetPage Middleware 503 +## Middleware GetPage
504 504
505 -The GetPage has now new property that takes a list of GetMiddleWare and run them in the specific order. 505 +GetPage a maintenant une nouvelle propriété qui prend une liste de GetMiddleWare et les exécute dans l'ordre spécifique.
506 506
507 -**Note**: When GetPage has a Middlewares, all the children of this page will have the same middlewares automatically. 507 +**Note**: Lorsque GetPage a un Middleware, tous les enfants de cette page auront automatiquement les mêmes middlewares.
508 508
509 ### Priority 509 ### Priority
510 510
511 -The Order of the Middlewares to run can pe set by the priority in the GetMiddleware. 511 +L'ordre des middlewares à exécuter peut être défini par la priorité dans GetMiddleware.
512 512
513 ```dart 513 ```dart
514 final middlewares = [ 514 final middlewares = [
@@ -519,23 +519,23 @@ final middlewares = [ @@ -519,23 +519,23 @@ final middlewares = [
519 ]; 519 ];
520 ``` 520 ```
521 521
522 -those middlewares will be run in this order **-8 => 2 => 4 => 5** 522 +ces middlewares seront exécutés dans cet ordre **-8 => 2 => 4 => 5**
523 523
524 ### Redirect 524 ### Redirect
525 -  
526 -This function will be called when the page of the called route is being searched for. It takes RouteSettings as a result to redirect to. Or give it null and there will be no redirecting. 525 +
  526 + Cette fonction sera appelée lors de la recherche de la page de l'itinéraire appelé. Elle reçoit RouteSettings comme résultat vers oú rediriger. Sinon donnez-lui la valeur null et il n'y aura pas de redirection.
527 527
528 ```dart 528 ```dart
529 GetPage redirect( ) { 529 GetPage redirect( ) {
530 final authService = Get.find<AuthService>(); 530 final authService = Get.find<AuthService>();
531 - return authService.authed.value ? null : RouteSettings(name: '/login') 531 + return authService.authed.value ? null : RouteSettings(name: '/login');
532 } 532 }
533 ``` 533 ```
534 534
535 ### onPageCalled 535 ### onPageCalled
536 536
537 -This function will be called when this Page is called before anything created  
538 -you can use it to change something about the page or give it new page 537 +Cette fonction sera appelée lorsque cette page sera appelée.
  538 +Vous pouvez l'utiliser pour changer quelque chose sur la page ou lui donner une nouvelle page.
539 539
540 ```dart 540 ```dart
541 GetPage onPageCalled(GetPage page) { 541 GetPage onPageCalled(GetPage page) {
@@ -546,8 +546,8 @@ GetPage onPageCalled(GetPage page) { @@ -546,8 +546,8 @@ GetPage onPageCalled(GetPage page) {
546 546
547 ### OnBindingsStart 547 ### OnBindingsStart
548 548
549 -This function will be called right before the Bindings are initialize.  
550 -Here you can change Bindings for this page. 549 +Cette fonction sera appelée juste avant l'initialisation des liaisons ('bidings').
  550 +Ici, vous pouvez modifier les liaisons de cette page.
551 551
552 ```dart 552 ```dart
553 List<Bindings> onBindingsStart(List<Bindings> bindings) { 553 List<Bindings> onBindingsStart(List<Bindings> bindings) {
@@ -561,61 +561,60 @@ List<Bindings> onBindingsStart(List<Bindings> bindings) { @@ -561,61 +561,60 @@ List<Bindings> onBindingsStart(List<Bindings> bindings) {
561 561
562 ### OnPageBuildStart 562 ### OnPageBuildStart
563 563
564 -This function will be called right after the Bindings are initialize.  
565 -Here you can do something after that you created the bindings and before creating the page widget. 564 +Cette fonction sera appelée juste après l'initialisation des liaisons ('bidings').
  565 +Ici, vous pouvez faire quelque chose après avoir créé les liaisons et avant de créer le widget de page.
566 566
567 ```dart 567 ```dart
568 GetPageBuilder onPageBuildStart(GetPageBuilder page) { 568 GetPageBuilder onPageBuildStart(GetPageBuilder page) {
569 - print('bindings are ready'); 569 + print('les liaisons sont prêtes');
570 return page; 570 return page;
571 } 571 }
572 ``` 572 ```
573 573
574 ### OnPageBuilt 574 ### OnPageBuilt
575 -  
576 -This function will be called right after the GetPage.page function is called and will give you the result of the function. and take the widget that will be showed. 575 +Cette fonction sera appelée juste après l'appel de la fonction GetPage.page et vous donnera le résultat de la fonction et prendra le widget qui sera affiché.
577 576
578 ### OnPageDispose 577 ### OnPageDispose
579 578
580 -This function will be called right after disposing all the related objects (Controllers, views, ...) of the page. 579 +Cette fonction sera appelée juste après avoir disposé tous les objets associés (contrôleurs, vues, ...) à la page.
581 580
582 ## Other Advanced APIs 581 ## Other Advanced APIs
583 582
584 ```dart 583 ```dart
585 -// give the current args from currentScreen 584 +// donne les arguments actuels de currentScreen
586 Get.arguments 585 Get.arguments
587 586
588 -// give name of previous route 587 +// donne le nom de l'itinéraire précédent
589 Get.previousRoute 588 Get.previousRoute
590 589
591 -// give the raw route to access for example, rawRoute.isFirst() 590 +// donne la route brute d'accès par exemple, rawRoute.isFirst()
592 Get.rawRoute 591 Get.rawRoute
593 592
594 -// give access to Routing API from GetObserver 593 +// donne accès à l'API de routing de GetObserver
595 Get.routing 594 Get.routing
596 595
597 -// check if snackbar is open 596 +// vérifier si le snackbar est ouvert
598 Get.isSnackbarOpen 597 Get.isSnackbarOpen
599 598
600 -// check if dialog is open 599 +// vérifier si la boîte de dialogue est ouverte
601 Get.isDialogOpen 600 Get.isDialogOpen
602 601
603 -// check if bottomsheet is open 602 +// vérifie si la bottomSheet est ouverte
604 Get.isBottomSheetOpen 603 Get.isBottomSheetOpen
605 604
606 -// remove one route. 605 +// supprime une route.
607 Get.removeRoute() 606 Get.removeRoute()
608 607
609 -// back repeatedly until the predicate returns true. 608 +// retourne à plusieurs reprises jusqu'à ce que le prédicat retourne 'true'.
610 Get.until() 609 Get.until()
611 610
612 -// go to next route and remove all the previous routes until the predicate returns true. 611 +// passe à la route suivante et supprime toutes les routes précédentes jusqu'à ce que le prédicat retourne 'true'.
613 Get.offUntil() 612 Get.offUntil()
614 613
615 -// go to next named route and remove all the previous routes until the predicate returns true. 614 +// passe à la route nommée suivante et supprime toutes les routes précédentes jusqu'à ce que le prédicat retourne 'true'.
616 Get.offNamedUntil() 615 Get.offNamedUntil()
617 616
618 -//Check in what platform the app is running 617 +// Vérifie sur quelle plate-forme l'application s'exécute
619 GetPlatform.isAndroid 618 GetPlatform.isAndroid
620 GetPlatform.isIOS 619 GetPlatform.isIOS
621 GetPlatform.isMacOS 620 GetPlatform.isMacOS
@@ -623,97 +622,97 @@ GetPlatform.isWindows @@ -623,97 +622,97 @@ GetPlatform.isWindows
623 GetPlatform.isLinux 622 GetPlatform.isLinux
624 GetPlatform.isFuchsia 623 GetPlatform.isFuchsia
625 624
626 -//Check the device type 625 +// Vérifie le type d'appareil
627 GetPlatform.isMobile 626 GetPlatform.isMobile
628 GetPlatform.isDesktop 627 GetPlatform.isDesktop
629 -//All platforms are supported independently in web!  
630 -//You can tell if you are running inside a browser  
631 -//on Windows, iOS, OSX, Android, etc. 628 +// Toutes les plates-formes sont prises en charge indépendamment, dans le Web!
  629 +// Vous pouvez dire si vous utilisez un navigateur
  630 +// sur Windows, iOS, OSX, Android, etc.
632 GetPlatform.isWeb 631 GetPlatform.isWeb
633 632
634 633
635 -// Equivalent to : MediaQuery.of(context).size.height,  
636 -// but immutable. 634 +// Équivaut à: MediaQuery.of(context).size.height,
  635 +// mais immuable.
637 Get.height 636 Get.height
638 Get.width 637 Get.width
639 638
640 -// Gives the current context of the Navigator. 639 +// Donne le 'context' actuel de 'Navigator'.
641 Get.context 640 Get.context
642 641
643 -// Gives the context of the snackbar/dialog/bottomsheet in the foreground, anywhere in your code. 642 +// Donne le contexte du snackbar / dialogue / bottomsheet au premier plan, n'importe où dans votre code.
644 Get.contextOverlay 643 Get.contextOverlay
645 644
646 -// Note: the following methods are extensions on context. Since you  
647 -// have access to context in any place of your UI, you can use it anywhere in the UI code 645 +// Remarque: les méthodes suivantes sont des extensions sur le 'context'. Puisque vous
  646 +// avez accès au contexte à n'importe quel endroit de votre interface utilisateur, vous pouvez l'utiliser n'importe où dans le code de l'interface utilisateur
648 647
649 -// If you need a changeable height/width (like Desktop or browser windows that can be scaled) you will need to use context. 648 +// Si vous avez besoin d'une hauteur / largeur variable (comme les fenêtres de bureau ou de navigateur qui peuvent être mises à l'échelle), vous devrez utiliser le contexte.
650 context.width 649 context.width
651 context.height 650 context.height
652 651
653 -// Gives you the power to define half the screen, a third of it and so on.  
654 -// Useful for responsive applications.  
655 -// param dividedBy (double) optional - default: 1  
656 -// param reducedBy (double) optional - default: 0  
657 -context.heightTransformer()  
658 -context.widthTransformer() 652 +// Vous donne le pouvoir de définir la moitié de l'écran, un tiers de celui-ci et ainsi de suite.
  653 +// Utile pour les applications responsives.
  654 +// paramètre dividedBy (double) optionnel - par défaut: 1
  655 +// paramètre reducedBy (double) facultatif - par défaut: 0
  656 +context.heightTransformer ()
  657 +context.widthTransformer ()
659 658
660 -/// Similar to MediaQuery.of(context).size 659 +/// Similaire à MediaQuery.of(context).size
661 context.mediaQuerySize() 660 context.mediaQuerySize()
662 661
663 -/// Similar to MediaQuery.of(context).padding 662 +/// Similaire à MediaQuery.of(context).padding
664 context.mediaQueryPadding() 663 context.mediaQueryPadding()
665 664
666 -/// Similar to MediaQuery.of(context).viewPadding 665 +/// Similaire à MediaQuery.of(context).viewPadding
667 context.mediaQueryViewPadding() 666 context.mediaQueryViewPadding()
668 667
669 -/// Similar to MediaQuery.of(context).viewInsets; 668 +/// Similaire à MediaQuery.of(context).viewInsets;
670 context.mediaQueryViewInsets() 669 context.mediaQueryViewInsets()
671 670
672 -/// Similar to MediaQuery.of(context).orientation; 671 +/// Similaire à MediaQuery.of(context).orientation;
673 context.orientation() 672 context.orientation()
674 673
675 -/// Check if device is on landscape mode 674 +/// Vérifie si l'appareil est en mode paysage
676 context.isLandscape() 675 context.isLandscape()
677 676
678 -/// Check if device is on portrait mode 677 +/// Vérifie si l'appareil est en mode portrait
679 context.isPortrait() 678 context.isPortrait()
680 679
681 -/// Similar to MediaQuery.of(context).devicePixelRatio; 680 +/// Similaire à MediaQuery.of(context).devicePixelRatio;
682 context.devicePixelRatio() 681 context.devicePixelRatio()
683 682
684 -/// Similar to MediaQuery.of(context).textScaleFactor; 683 +/// Similaire à MediaQuery.of(context).textScaleFactor;
685 context.textScaleFactor() 684 context.textScaleFactor()
686 685
687 -/// Get the shortestSide from screen 686 +/// Obtenir le côté le plus court de l'écran
688 context.mediaQueryShortestSide() 687 context.mediaQueryShortestSide()
689 688
690 -/// True if width be larger than 800 689 +/// Vrai si la largeur est supérieure à 800p
691 context.showNavbar() 690 context.showNavbar()
692 691
693 -/// True if the shortestSide is smaller than 600p 692 +/// Vrai si le côté le plus court est inférieur à 600p
694 context.isPhone() 693 context.isPhone()
695 694
696 -/// True if the shortestSide is largest than 600p 695 +/// Vrai si le côté le plus court est plus grand que 600p
697 context.isSmallTablet() 696 context.isSmallTablet()
698 697
699 -/// True if the shortestSide is largest than 720p 698 +/// Vrai si le côté le plus court est plus grand que 720p
700 context.isLargeTablet() 699 context.isLargeTablet()
701 700
702 -/// True if the current device is Tablet 701 +/// Vrai si l'appareil actuel est une tablette
703 context.isTablet() 702 context.isTablet()
704 703
705 -/// Returns a value<T> according to the screen size  
706 -/// can give value for:  
707 -/// watch: if the shortestSide is smaller than 300  
708 -/// mobile: if the shortestSide is smaller than 600  
709 -/// tablet: if the shortestSide is smaller than 1200  
710 -/// desktop: if width is largest than 1200 704 +/// Renvoie une valeur <T> en fonction de la taille de l'écran
  705 +/// peut donner une valeur pour:
  706 +/// watch: si le côté le plus court est inférieur à 300
  707 +/// mobile: si le côté le plus court est inférieur à 600
  708 +/// tablette: si le côté le plus court est inférieur à 1200
  709 +/// bureautique: si la largeur est supérieure à 1200
711 context.responsiveValue<T>() 710 context.responsiveValue<T>()
712 ``` 711 ```
713 712
714 -### Optional Global Settings and Manual configurations 713 +### Parametres globaux et configurations manuelles facultatifs
715 714
716 -GetMaterialApp configures everything for you, but if you want to configure Get manually. 715 +GetMaterialApp configure tout pour vous, mais si vous souhaitez configurer Get manuellement:
717 716
718 ```dart 717 ```dart
719 MaterialApp( 718 MaterialApp(
@@ -722,19 +721,19 @@ MaterialApp( @@ -722,19 +721,19 @@ MaterialApp(
722 ); 721 );
723 ``` 722 ```
724 723
725 -You will also be able to use your own Middleware within `GetObserver`, this will not influence anything. 724 +Vous pourrez également utiliser votre propre middleware dans `GetObserver`, cela n'influencera rien.
726 725
727 ```dart 726 ```dart
728 MaterialApp( 727 MaterialApp(
729 navigatorKey: Get.key, 728 navigatorKey: Get.key,
730 navigatorObservers: [ 729 navigatorObservers: [
731 - GetObserver(MiddleWare.observer) // Here 730 + GetObserver(MiddleWare.observer) // Ici
732 ], 731 ],
733 ); 732 );
734 ``` 733 ```
735 734
736 -You can create _Global Settings_ for `Get`. Just add `Get.config` to your code before pushing any route.  
737 -Or do it directly in your `GetMaterialApp` 735 +Vous pouvez créer _Global Settings_ pour `Get`. Ajoutez simplement `Get.config` à votre code avant de changer de route.
  736 +Ou faites-le directement dans votre `GetMaterialApp`
738 737
739 ```dart 738 ```dart
740 GetMaterialApp( 739 GetMaterialApp(
@@ -753,9 +752,9 @@ Get.config( @@ -753,9 +752,9 @@ Get.config(
753 ) 752 )
754 ``` 753 ```
755 754
756 -You can optionally redirect all the logging messages from `Get`.  
757 -If you want to use your own, favourite logging package,  
758 -and want to capture the logs there: 755 +Vous pouvez éventuellement rediriger tous les messages de journalisation (logging) de `Get`.
  756 +Si vous souhaitez utiliser votre propre package de journalisation préféré,
  757 +et souhaitez capturer les logs là-bas:
759 758
760 ```dart 759 ```dart
761 GetMaterialApp( 760 GetMaterialApp(
@@ -764,20 +763,20 @@ GetMaterialApp( @@ -764,20 +763,20 @@ GetMaterialApp(
764 ); 763 );
765 764
766 void localLogWriter(String text, {bool isError = false}) { 765 void localLogWriter(String text, {bool isError = false}) {
767 - // pass the message to your favourite logging package here  
768 - // please note that even if enableLog: false log messages will be pushed in this callback  
769 - // you get check the flag if you want through GetConfig.isLogEnable 766 + // transmettez le message à votre package de journalisation préféré ici
  767 + // veuillez noter que même si enableLog: false, les messages du journal seront poussés dans ce 'callback'
  768 + // vérifiez le 'flag' si vous le souhaitez via GetConfig.isLogEnable
770 } 769 }
771 770
772 ``` 771 ```
773 772
774 -### Local State Widgets 773 +### State Widgets Locaux
775 774
776 -These Widgets allows you to manage a single value, and keep the state ephemeral and locally.  
777 -We have flavours for Reactive and Simple.  
778 -For instance, you might use them to toggle obscureText in a `TextField`, maybe create a custom  
779 -Expandable Panel, or maybe modify the current index in `BottomNavigationBar` while changing the content  
780 -of the body in a `Scaffold`. 775 +Ces Widgets vous permettent de gérer une valeur unique, et de garder l'état éphémère et localement.
  776 +Nous avons des saveurs pour réactif et simple.
  777 +Par exemple, vous pouvez les utiliser pour basculer obscureText dans un `TextField`, peut-être créer un
  778 +Panneau extensible, ou peut-être modifier l'index actuel dans `BottomNavigationBar` tout en modifiant le contenu
  779 +de 'body' dans un «Scaffold».
781 780
782 #### ValueBuilder 781 #### ValueBuilder
783 782