Showing
1 changed file
with
64 additions
and
64 deletions
| @@ -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 | 
- 
Please register or login to post a comment