kamazoun

#23 in README-fr.md

@@ -36,9 +36,9 @@ @@ -36,9 +36,9 @@
36 - [Locale du Système](#locale-du-systeme) 36 - [Locale du Système](#locale-du-systeme)
37 - [Changer le Thème](#changer-le-theme) 37 - [Changer le Thème](#changer-le-theme)
38 - [GetConnect](#getconnect) 38 - [GetConnect](#getconnect)
39 - - [Default configuration](#default-configuration)  
40 - - [Custom configuration](#custom-configuration)  
41 - - [GetPage Middleware](#getpage-middleware) 39 + - [Configuration par défaut](#configuration-par-defaut)
  40 + - [Configuration personnalisée](#configuration-personnalisee)
  41 + - [Middleware GetPage](#middleware-getpage)
42 - [Priority](#priority) 42 - [Priority](#priority)
43 - [Redirect](#redirect) 43 - [Redirect](#redirect)
44 - [onPageCalled](#onpagecalled) 44 - [onPageCalled](#onpagecalled)
@@ -46,9 +46,9 @@ @@ -46,9 +46,9 @@
46 - [OnPageBuildStart](#onpagebuildstart) 46 - [OnPageBuildStart](#onpagebuildstart)
47 - [OnPageBuilt](#onpagebuilt) 47 - [OnPageBuilt](#onpagebuilt)
48 - [OnPageDispose](#onpagedispose) 48 - [OnPageDispose](#onpagedispose)
49 - - [Other Advanced APIs](#other-advanced-apis)  
50 - - [Optional Global Settings and Manual configurations](#optional-global-settings-and-manual-configurations)  
51 - - [Local State Widgets](#local-state-widgets) 49 + - [Autres APIs](#autres-apis)
  50 + - [Paramètres globaux et configurations manuelles facultatifs](#parametres-globaux-et-configurations-manuelles-facultatifs)
  51 + - [State Widgets Locaux](#state-widgets-locaux)
52 - [ValueBuilder](#valuebuilder) 52 - [ValueBuilder](#valuebuilder)
53 - [ObxValue](#obxvalue) 53 - [ObxValue](#obxvalue)
54 - [Useful tips](#useful-tips) 54 - [Useful tips](#useful-tips)
@@ -578,7 +578,7 @@ Cette fonction sera appelée juste après l'appel de la fonction GetPage.page et @@ -578,7 +578,7 @@ Cette fonction sera appelée juste après l'appel de la fonction GetPage.page et
578 578
579 Cette fonction sera appelée juste après avoir disposé tous les objets associés (contrôleurs, vues, ...) à la page. 579 Cette fonction sera appelée juste après avoir disposé tous les objets associés (contrôleurs, vues, ...) à la page.
580 580
581 -## Other Advanced APIs 581 +## Autres APIs
582 582
583 ```dart 583 ```dart
584 // donne les arguments actuels de currentScreen 584 // donne les arguments actuels de currentScreen
@@ -776,117 +776,117 @@ Ces Widgets vous permettent de gérer une valeur unique, et de garder l'état é @@ -776,117 +776,117 @@ Ces Widgets vous permettent de gérer une valeur unique, et de garder l'état é
776 Nous avons des saveurs pour réactif et simple. 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 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 778 Panneau extensible, ou peut-être modifier l'index actuel dans `BottomNavigationBar` tout en modifiant le contenu
779 -de 'body' dans un «Scaffold». 779 +de 'body' dans un `Scaffold`.
780 780
781 #### ValueBuilder 781 #### ValueBuilder
782 782
783 -A simplification of `StatefulWidget` that works with a `.setState` callback that takes the updated value. 783 +Une simplification de `StatefulWidget` qui fonctionne avec un callback `.setState` qui prend la valeur mise à jour.
784 784
785 ```dart 785 ```dart
786 ValueBuilder<bool>( 786 ValueBuilder<bool>(
787 initialValue: false, 787 initialValue: false,
788 builder: (value, updateFn) => Switch( 788 builder: (value, updateFn) => Switch(
789 value: value, 789 value: value,
790 - onChanged: updateFn, // same signature! you could use ( newValue ) => updateFn( newValue ) 790 + onChanged: updateFn, // même signature! vous pouvez utiliser (newValue) => updateFn (newValue)
791 ), 791 ),
792 - // if you need to call something outside the builder method.  
793 - onUpdate: (value) => print("Value updated: $value"),  
794 - onDispose: () => print("Widget unmounted"), 792 + // si vous devez appeler quelque chose en dehors de la méthode du builder.
  793 + onUpdate: (value) => print("Valeur mise à jour: $value"),
  794 + onDispose: () => print("Widget détruit"),
795 ), 795 ),
796 ``` 796 ```
797 797
798 #### ObxValue 798 #### ObxValue
799 799
800 -Similar to [`ValueBuilder`](#valuebuilder), but this is the Reactive version, you pass a Rx instance (remember the magical .obs?) and  
801 -updates automatically... isn't it awesome? 800 +Similaire à [`ValueBuilder`](#valuebuilder), mais c'est la version Reactive, vous passez une instance Rx (rappelez-vous les .obs magiques?) et il
  801 + se met à jour automatiquement ... n'est-ce pas génial?
802 802
803 ```dart 803 ```dart
804 ObxValue((data) => Switch( 804 ObxValue((data) => Switch(
805 value: data.value, 805 value: data.value,
806 - onChanged: data, // Rx has a _callable_ function! You could use (flag) => data.value = flag, 806 + onChanged: data, // Rx a une fonction _callable_! Vous pouvez utiliser (flag) => data.value = flag,
807 ), 807 ),
808 false.obs, 808 false.obs,
809 ), 809 ),
810 ``` 810 ```
811 811
812 -## Useful tips 812 +## Conseils utiles
813 813
814 -`.obs`ervables (also known as _Rx_ Types) have a wide variety of internal methods and operators. 814 +`.obs`ervables (également appelés types _Rx_) ont une grande variété de méthodes et d'opérateurs internes.
815 815
816 -> Is very common to _believe_ that a property with `.obs` **IS** the actual value... but make no mistake!  
817 -> We avoid the Type declaration of the variable, because Dart's compiler is smart enough, and the code  
818 -> looks cleaner, but: 816 +> Il est très courant de croire qu'une propriété avec `.obs` ** EST ** la valeur réelle ... mais ne vous y trompez pas!
  817 +> Nous évitons la déclaration Type de la variable, car le compilateur de Dart est assez intelligent, et le code
  818 +> semble plus propre, mais:
819 819
820 ```dart 820 ```dart
821 var message = 'Hello world'.obs; 821 var message = 'Hello world'.obs;
822 -print( 'Message "$message" has Type ${message.runtimeType}'); 822 +print( 'Message "$message" est de Type ${message.runtimeType}');
823 ``` 823 ```
824 824
825 -Even if `message` _prints_ the actual String value, the Type is **RxString**! 825 +Bien que `message` _prints_ la vraie valeur du String, le Type est **RxString**!
826 826
827 -So, you can't do `message.substring( 0, 4 )`.  
828 -You have to access the real `value` inside the _observable_:  
829 -The most "used way" is `.value`, but, did you know that you can also use... 827 +Donc, vous ne pouvez pas faire `message.substring( 0, 4 )`.
  828 +Vous devez utiliser la vraie `valeur` dans _observable_:
  829 +La façon "la plus utilisée" est `.value`, mais, que vous pouviez aussi...
830 830
831 ```dart 831 ```dart
832 final name = 'GetX'.obs; 832 final name = 'GetX'.obs;
833 -// only "updates" the stream, if the value is different from the current one. 833 +// "met à jour" le flux, uniquement si la valeur est différente de la valeur actuelle.
834 name.value = 'Hey'; 834 name.value = 'Hey';
835 835
836 -// All Rx properties are "callable" and returns the new value.  
837 -// but this approach does not accepts `null`, the UI will not rebuild. 836 +// Toutes les propriétés Rx sont "appelables" et renvoie la nouvelle valeur.
  837 +// mais cette approche n'accepte pas `null`, l'interface utilisateur ne sera pas reconstruite.
838 name('Hello'); 838 name('Hello');
839 839
840 -// is like a getter, prints 'Hello'. 840 +// est comme un getter, affiche «Hello».
841 name() ; 841 name() ;
842 842
843 -/// numbers: 843 +/// nombres:
844 844
845 final count = 0.obs; 845 final count = 0.obs;
846 846
847 -// You can use all non mutable operations from num primitives! 847 +// Vous pouvez utiliser toutes les opérations non mutables à partir de num primitives!
848 count + 1; 848 count + 1;
849 849
850 -// Watch out! this is only valid if `count` is not final, but var 850 +// Fais attention! ceci n'est valable que si `count` n'est pas final, mais var
851 count += 1; 851 count += 1;
852 852
853 -// You can also compare against values: 853 +// Vous pouvez également comparer avec des valeurs:
854 count > 2; 854 count > 2;
855 855
856 /// booleans: 856 /// booleans:
857 857
858 final flag = false.obs; 858 final flag = false.obs;
859 859
860 -// switches the value between true/false 860 +// bascule la valeur entre true / false
861 flag.toggle(); 861 flag.toggle();
862 862
863 863
864 -/// all types: 864 +/// tous les types:
865 865
866 -// Sets the `value` to null. 866 +// Définit la `valeur` sur null.
867 flag.nil(); 867 flag.nil();
868 868
869 -// All toString(), toJson() operations are passed down to the `value`  
870 -print( count ); // calls `toString()` inside for RxInt 869 +// Toutes les opérations toString (), toJson () sont transmises à la `valeur`
  870 +print( count ); // appelle `toString ()` à l'intérieur de RxInt
871 871
872 final abc = [0,1,2].obs; 872 final abc = [0,1,2].obs;
873 -// Converts the value to a json Array, prints RxList  
874 -// Json is supported by all Rx types! 873 +// Convertit la valeur en un Array json, affiche RxList
  874 +// Json est pris en charge par tous les types Rx!
875 print('json: ${jsonEncode(abc)}, type: ${abc.runtimeType}'); 875 print('json: ${jsonEncode(abc)}, type: ${abc.runtimeType}');
876 876
877 -// RxMap, RxList and RxSet are special Rx types, that extends their native types.  
878 -// but you can work with a List as a regular list, although is reactive!  
879 -abc.add(12); // pushes 12 to the list, and UPDATES the stream.  
880 -abc[3]; // like Lists, reads the index 3. 877 +// RxMap, RxList et RxSet sont des types Rx spéciaux, qui étendent leurs types natifs.
  878 +// mais vous pouvez travailler avec une liste comme une liste régulière, bien qu'elle soit réactive!
  879 +abc.add(12); // pousse 12 dans la liste et MET À JOUR le flux.
  880 +abc[3]; // comme Lists, lit l'index 3.
881 881
882 882
883 -// equality works with the Rx and the value, but hashCode is always taken from the value 883 +// l'égalité fonctionne avec le Rx et la valeur, mais hashCode est toujours pris à partir de la valeur
884 final number = 12.obs; 884 final number = 12.obs;
885 -print( number == 12 ); // prints > true 885 +print( number == 12 ); // retource > true
886 886
887 -/// Custom Rx Models: 887 +/// Modèles Rx personnalisés:
888 888
889 -// toJson(), toString() are deferred to the child, so you can implement override on them, and print() the observable directly. 889 +// toJson (), toString () sont différés à l'enfant, vous pouvez donc implémenter 'override' sur eux, et print() l'observable directement.
890 890
891 class User { 891 class User {
892 String name, last; 892 String name, last;
@@ -894,20 +894,20 @@ class User { @@ -894,20 +894,20 @@ class User {
894 User({this.name, this.last, this.age}); 894 User({this.name, this.last, this.age});
895 895
896 @override 896 @override
897 - String toString() => '$name $last, $age years old'; 897 + String toString() => '$name $last, $age ans';
898 } 898 }
899 899
900 final user = User(name: 'John', last: 'Doe', age: 33).obs; 900 final user = User(name: 'John', last: 'Doe', age: 33).obs;
901 901
902 -// `user` is "reactive", but the properties inside ARE NOT!  
903 -// So, if we change some variable inside of it... 902 +// `user` est" réactif ", mais les propriétés à l'intérieur NE SONT PAS!
  903 +// Donc, si nous changeons une variable à l'intérieur ...
904 user.value.name = 'Roi'; 904 user.value.name = 'Roi';
905 -// The widget will not rebuild!,  
906 -// `Rx` don't have any clue when you change something inside user.  
907 -// So, for custom classes, we need to manually "notify" the change. 905 +// Le widget ne se reconstruira pas !,
  906 +// `Rx` n'a aucun indice lorsque vous changez quelque chose à l'intérieur de l'utilisateur.
  907 +// Donc, pour les classes personnalisées, nous devons "notifier" manuellement le changement.
908 user.refresh(); 908 user.refresh();
909 909
910 -// or we can use the `update()` method! 910 +// ou utiliser `update()`!
911 user.update((value){ 911 user.update((value){
912 value.name='Roi'; 912 value.name='Roi';
913 }); 913 });
@@ -917,22 +917,22 @@ print( user ); @@ -917,22 +917,22 @@ print( user );
917 917
918 #### GetView 918 #### GetView
919 919
920 -I love this Widget, is so simple, yet, so useful! 920 +J'adore ce widget. Si simple, mais si utile!
921 921
922 -Is a `const Stateless` Widget that has a getter `controller` for a registered `Controller`, that's all. 922 +C'est un widget `const Stateless` qui a un getter` controller` pour un `Controller` enregistré, c'est tout.
923 923
924 ```dart 924 ```dart
925 class AwesomeController extends GetxController { 925 class AwesomeController extends GetxController {
926 final String title = 'My Awesome View'; 926 final String title = 'My Awesome View';
927 } 927 }
928 928
929 - // ALWAYS remember to pass the `Type` you used to register your controller! 929 + // N'oubliez PAS de passer le `Type` que vous avez utilisé pour enregistrer votre contrôleur!
930 class AwesomeView extends GetView<AwesomeController> { 930 class AwesomeView extends GetView<AwesomeController> {
931 @override 931 @override
932 Widget build(BuildContext context) { 932 Widget build(BuildContext context) {
933 return Container( 933 return Container(
934 padding: EdgeInsets.all(20), 934 padding: EdgeInsets.all(20),
935 - child: Text(controller.title), // just call `controller.something` 935 + child: Text(controller.title), // appelez `controller.quelqueChose`
936 ); 936 );
937 } 937 }
938 } 938 }
@@ -940,11 +940,11 @@ Is a `const Stateless` Widget that has a getter `controller` for a registered `C @@ -940,11 +940,11 @@ Is a `const Stateless` Widget that has a getter `controller` for a registered `C
940 940
941 #### GetResponsiveView 941 #### GetResponsiveView
942 942
943 -Extend this widget to build responsive view.  
944 -this widget contains the `screen` property that have all  
945 -information about the screen size and type. 943 +Étendez ce widget pour créer une vue réactive.
  944 +ce widget contient la propriété `screen` qui a toutes les
  945 +informations sur la taille et le type de l'écran.
946 946
947 -##### How to use it 947 +##### Guide d utilisation
948 948
949 You have two options to build it. 949 You have two options to build it.
950 950