hp1909

Fix some typos

@@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
37 - [Đổi Theme](#đổi-theme) 37 - [Đổi Theme](#đổi-theme)
38 - [GetConnect](#getconnect) 38 - [GetConnect](#getconnect)
39 - [Cấu hình mặc định](#cấu-hình-mặc-định) 39 - [Cấu hình mặc định](#cấu-hình-mặc-định)
40 - - [Tùy chỉnh](#tùy-chỉnh) 40 + - [Cấu hình tùy chỉnh](#cấu-hình-tùy-chỉnh)
41 - [GetPage Middleware](#getpage-middleware) 41 - [GetPage Middleware](#getpage-middleware)
42 - [Ưu tiên](#ưu-tiên) 42 - [Ưu tiên](#ưu-tiên)
43 - [Chuyển hướng](#chuyển-hướng) 43 - [Chuyển hướng](#chuyển-hướng)
@@ -507,7 +507,7 @@ class HomeProvider extends GetConnect { @@ -507,7 +507,7 @@ class HomeProvider extends GetConnect {
507 507
508 GetPage hiện có thuộc tính mới lấy danh sách GetMiddleWare và chạy chúng theo thứ tự cụ thể. 508 GetPage hiện có thuộc tính mới lấy danh sách GetMiddleWare và chạy chúng theo thứ tự cụ thể.
509 509
510 -**Chí ú**: Khi GetPage có Middleware (phần trung gian), tất cả các children của trang này sẽ tự động có cùng middlewares. 510 +**Chú ý**: Khi GetPage có Middleware (phần trung gian), tất cả các children của trang này sẽ tự động có cùng middlewares.
511 511
512 ### Ưu tiên 512 ### Ưu tiên
513 513
@@ -549,7 +549,7 @@ GetPage onPageCalled(GetPage page) { @@ -549,7 +549,7 @@ GetPage onPageCalled(GetPage page) {
549 549
550 ### OnBindingsStart 550 ### OnBindingsStart
551 551
552 -Function này sẽ khởi động trước khi Bindinds diễn ra và bạn có thể thay đổi Bindings cho trang này. 552 +Hàm này sẽ khởi động ngay trước khi Bindings diễn ra và bạn có thể thay đổi Bindings cho trang này.
553 553
554 ```dart 554 ```dart
555 List<Bindings> onBindingsStart(List<Bindings> bindings) { 555 List<Bindings> onBindingsStart(List<Bindings> bindings) {
@@ -563,7 +563,7 @@ List<Bindings> onBindingsStart(List<Bindings> bindings) { @@ -563,7 +563,7 @@ List<Bindings> onBindingsStart(List<Bindings> bindings) {
563 563
564 ### OnPageBuildStart 564 ### OnPageBuildStart
565 565
566 -Function này sẽ khởi động sau khi Bindings diễn ra. Ở đây, bạn có thể làm thứ gì đó sau khi bạn tạo Bindings và trước khi tạo trange widget. 566 +Hàm này sẽ khởi động ngay sau khi Bindings diễn ra. Ở đây, bạn có thể làm thứ gì đó sau khi bạn tạo Bindings và trước khi tạo trang widget.
567 567
568 ```dart 568 ```dart
569 GetPageBuilder onPageBuildStart(GetPageBuilder page) { 569 GetPageBuilder onPageBuildStart(GetPageBuilder page) {
@@ -574,7 +574,7 @@ GetPageBuilder onPageBuildStart(GetPageBuilder page) { @@ -574,7 +574,7 @@ GetPageBuilder onPageBuildStart(GetPageBuilder page) {
574 574
575 ### OnPageBuilt 575 ### OnPageBuilt
576 576
577 -Function này sẽ khởi động ngay sau khi GetPage.page được gọi và sẽ cho bạn kết quả của function và lấy widget được hiển thị. 577 +Hàm này sẽ khởi động ngay sau khi GetPage.page được gọi và sẽ cho bạn kết quả của hàm và lấy widget được hiển thị.
578 578
579 ### OnPageDispose 579 ### OnPageDispose
580 580
@@ -723,7 +723,7 @@ MaterialApp( @@ -723,7 +723,7 @@ MaterialApp(
723 ); 723 );
724 ``` 724 ```
725 725
726 -You will also be able to use your own Middleware within `GetObserver`, this will not influence anything. 726 +Bạn cũng sẽ có thể dùng Middleware của riêng bạn trong `GetObserver`, điều này không ảnh hưởng những thứ khác.
727 727
728 ```dart 728 ```dart
729 MaterialApp( 729 MaterialApp(
@@ -734,8 +734,8 @@ MaterialApp( @@ -734,8 +734,8 @@ MaterialApp(
734 ); 734 );
735 ``` 735 ```
736 736
737 -You can create _Global Settings_ for `Get`. Just add `Get.config` to your code before pushing any route.  
738 -Or do it directly in your `GetMaterialApp` 737 +Bạn có thể tạo _Global Settings_ cho `Get`. Chỉ cần thêm `Get.config` vào code của bạn trước khi đẩy (push) bất cứ route nào.
  738 +Hoặc làm nó trực tiếp trong `GetMaterialApp` của bạn.
739 739
740 ```dart 740 ```dart
741 GetMaterialApp( 741 GetMaterialApp(
@@ -754,9 +754,8 @@ Get.config( @@ -754,9 +754,8 @@ Get.config(
754 ) 754 )
755 ``` 755 ```
756 756
757 -You can optionally redirect all the logging messages from `Get`.  
758 -If you want to use your own, favourite logging package,  
759 -and want to capture the logs there: 757 +Bạn có thể tự chọn chuyển hướng tất cả logging messages từ `Get`.
  758 +Nếu bạn muốn sử dụng logging package ưa thích của riêng bạn, và muốn chụp lại những logs đó:
760 759
761 ```dart 760 ```dart
762 GetMaterialApp( 761 GetMaterialApp(
@@ -775,7 +774,7 @@ void localLogWriter(String text, {bool isError = false}) { @@ -775,7 +774,7 @@ void localLogWriter(String text, {bool isError = false}) {
775 ### Local State Widgets 774 ### Local State Widgets
776 775
777 Các Widget này cho phép bạn quản lý một giá trị duy nhất và giữ trạng thái tạm thời và cục bộ. 776 Các Widget này cho phép bạn quản lý một giá trị duy nhất và giữ trạng thái tạm thời và cục bộ.
778 -Chúng tôi có các hướng đi cho Reactive và Simple. 777 +Chúng ta có các hướng đi cho Reactive và Simple.
779 Ví dụ: bạn có thể sử dụng chúng để chuyển đổi văn bản tối nghĩa trong một `TextField`, có thể tạo một widget 778 Ví dụ: bạn có thể sử dụng chúng để chuyển đổi văn bản tối nghĩa trong một `TextField`, có thể tạo một widget
780 Expandable Panel tùy chỉnh hoặc có thể sửa đổi chỉ mục hiện tại trong `BottomNavigationBar` trong khi thay đổi nội dung 779 Expandable Panel tùy chỉnh hoặc có thể sửa đổi chỉ mục hiện tại trong `BottomNavigationBar` trong khi thay đổi nội dung
781 bên trong một `Scaffold`. 780 bên trong một `Scaffold`.
@@ -799,7 +798,7 @@ ValueBuilder<bool>( @@ -799,7 +798,7 @@ ValueBuilder<bool>(
799 798
800 #### ObxValue 799 #### ObxValue
801 800
802 -Tương tự như [`ValueBuilder`] (# valuebuilder), nhưng đây là phiên bản Reactive, bạn kèm một lệnh Rx (nhớ cái .obs không?) và nó cập nhật tự động ... hay chưa? 801 +Tương tự như [`ValueBuilder`](#valuebuilder), nhưng đây là phiên bản Reactive, bạn kèm một lệnh Rx (nhớ cái .obs không?) và nó cập nhật tự động ... hay chưa?
803 802
804 ```dart 803 ```dart
805 ObxValue((data) => Switch( 804 ObxValue((data) => Switch(
@@ -823,7 +822,7 @@ var message = 'Xin Chào'.obs; @@ -823,7 +822,7 @@ var message = 'Xin Chào'.obs;
823 print( 'Message "$message" has Type ${message.runtimeType}'); 822 print( 'Message "$message" has Type ${message.runtimeType}');
824 ``` 823 ```
825 824
826 -Ngay cả khi `message` _prints_ giá trị String, Loại là ** RxString **! 825 +Ngay cả khi `message` _prints_ giá trị String, thì kiểu của nó lại là ** RxString **!
827 826
828 Vì vậy, bạn không thể thực hiện `message.substring (0, 4) '. Bạn phải truy cập vào `value`thực bên trong _observable_: Cách được sử dụng nhiều nhất là`.value`, nhưng, bạn có biết rằng bạn cũng có thể sử dụng ... 827 Vì vậy, bạn không thể thực hiện `message.substring (0, 4) '. Bạn phải truy cập vào `value`thực bên trong _observable_: Cách được sử dụng nhiều nhất là`.value`, nhưng, bạn có biết rằng bạn cũng có thể sử dụng ...
829 828
@@ -917,20 +916,20 @@ print( user ); @@ -917,20 +916,20 @@ print( user );
917 ## StateMixin 916 ## StateMixin
918 917
919 Một cách khác để xử lý trạng thái `UI` của bạn là sử dụng`StateMixin <T>`. 918 Một cách khác để xử lý trạng thái `UI` của bạn là sử dụng`StateMixin <T>`.
920 -Để triển khai nó, hãy sử dụng dấu `with` để thêm`StateMixin <T>` bộ điều khiển của bạn cho phép tích hợp kèm mô hình T. 919 +Để triển khai nó, hãy sử dụng dấu `with` để thêm`StateMixin <T>` vào bộ điều khiển (controller) của bạn cho phép tích hợp kèm mô hình T.
921 920
922 ```dart 921 ```dart
923 class Controller extends GetController with StateMixin<User>{} 922 class Controller extends GetController with StateMixin<User>{}
924 ``` 923 ```
925 924
926 -Phương thức `change ()` thay đổi trạng thái bất cứ khi nào chúng ta muốn. 925 +Phương thức `change()` thay đổi trạng thái bất cứ khi nào chúng ta muốn.
927 Chỉ cần chuyển dữ liệu và trạng thái theo cách này: 926 Chỉ cần chuyển dữ liệu và trạng thái theo cách này:
928 927
929 ```dart 928 ```dart
930 change(data, status: RxStatus.success()); 929 change(data, status: RxStatus.success());
931 ``` 930 ```
932 931
933 -RxStatus allow these status: 932 +RxStatus cho phép những trang thái này:
934 933
935 ```dart 934 ```dart
936 RxStatus.loading(); 935 RxStatus.loading();
@@ -939,7 +938,7 @@ RxStatus.empty(); @@ -939,7 +938,7 @@ RxStatus.empty();
939 RxStatus.error('message'); 938 RxStatus.error('message');
940 ``` 939 ```
941 940
942 -To represent it in the UI, use: 941 +Để biểu hiện nó trên UI, sử dụng:
943 942
944 ```dart 943 ```dart
945 class OtherClass extends GetView<Controller> { 944 class OtherClass extends GetView<Controller> {
@@ -989,7 +988,7 @@ Là một Widget `const Stateless` có getter` controller` cho một `Controller @@ -989,7 +988,7 @@ Là một Widget `const Stateless` có getter` controller` cho một `Controller
989 #### GetResponsiveView 988 #### GetResponsiveView
990 989
991 Mở rộng tiện ích này để xây dựng chế độ responsive. 990 Mở rộng tiện ích này để xây dựng chế độ responsive.
992 -Ưidget này chứa thuộc tính `screen` có tất cả 991 +Widget này chứa thuộc tính `screen` có tất cả
993 thông tin về kích thước và loại màn hình. 992 thông tin về kích thước và loại màn hình.
994 993
995 ##### Hướng dẫn sử dụng trước khi dùng 994 ##### Hướng dẫn sử dụng trước khi dùng
@@ -998,9 +997,9 @@ Bạn có hai lựa chọn để xây dựng nó. @@ -998,9 +997,9 @@ Bạn có hai lựa chọn để xây dựng nó.
998 997
999 - với phương thức `builder` bạn trả về tiện ích con để xây dựng. 998 - với phương thức `builder` bạn trả về tiện ích con để xây dựng.
1000 - với các phương thức `desktop`,` tablet`, `phone`,` watch`. cụ thể, các phương thức này sẽ tạo các loại màn hình khớp với ngữ cảnh khi màn hình là [ScreenType.Tablet] thì phương thức `tablet` sẽ được tạo ra và cứ như vậy. 999 - với các phương thức `desktop`,` tablet`, `phone`,` watch`. cụ thể, các phương thức này sẽ tạo các loại màn hình khớp với ngữ cảnh khi màn hình là [ScreenType.Tablet] thì phương thức `tablet` sẽ được tạo ra và cứ như vậy.
1001 - **Chí ú:** Nếu bạn dùng cái này, nhớ đặt `alwaysUseBuilder` thành `false` 1000 + **Chú ý:** Nếu bạn dùng cái này, nhớ đặt `alwaysUseBuilder` thành `false`
1002 1001
1003 -Với `settings` property bạn có thể đặt chiều dài tối thiểu cho các loại màn hình. 1002 +Với thuộc tính `settings` bạn có thể đặt chiều dài tối thiểu cho các loại màn hình.
1004 1003
1005 ![example](https://github.com/SchabanBo/get_page_example/blob/master/docs/Example.gif?raw=true) 1004 ![example](https://github.com/SchabanBo/get_page_example/blob/master/docs/Example.gif?raw=true)
1006 Code to this screen 1005 Code to this screen
@@ -1012,13 +1011,13 @@ Hầu hết mọi người không biết gì về Widget này, hoặc hoàn toà @@ -1012,13 +1011,13 @@ Hầu hết mọi người không biết gì về Widget này, hoặc hoàn toà
1012 Trường hợp sử dụng rất hiếm, nhưng rất cụ thể: Nó `caches` một Bộ điều khiển. 1011 Trường hợp sử dụng rất hiếm, nhưng rất cụ thể: Nó `caches` một Bộ điều khiển.
1013 Bởi vì _cache_ không thể là một `const Stateless`. 1012 Bởi vì _cache_ không thể là một `const Stateless`.
1014 1013
1015 -> So, when do you need to "cache" a Controller? 1014 +> Vậy khi nào mình cần cache bộ điều khiển (controller)?
1016 1015
1017 Nếu sử dụng, bạn sẽ dùng cái này **GetX**: `Get.create()`. 1016 Nếu sử dụng, bạn sẽ dùng cái này **GetX**: `Get.create()`.
1018 1017
1019 `Get.create(()=>Controller())` sẽ tạo một `Controller` với mỗi lần gọi `Get.find<Controller>()`, 1018 `Get.create(()=>Controller())` sẽ tạo một `Controller` với mỗi lần gọi `Get.find<Controller>()`,
1020 1019
1021 -Đó là nơi mà `` GetWidget` tỏa sáng ... chẳng hạn như bạn có thể sử dụng nó, để giữ một danh sách các mục Todo. Vì vậy, nếu widget được "xây dựng lại", nó sẽ giữ nguyên phiên bản controller. 1020 +Đó là nơi mà `GetWidget` tỏa sáng ... chẳng hạn như bạn có thể sử dụng nó, để giữ một danh sách các mục Todo. Vì vậy, nếu widget được "xây dựng lại", nó sẽ giữ nguyên phiên bản controller.
1022 1021
1023 #### GetxService 1022 #### GetxService
1024 1023
@@ -1066,7 +1065,7 @@ class SettingsService extends GetxService { @@ -1066,7 +1065,7 @@ class SettingsService extends GetxService {
1066 1065
1067 ``` 1066 ```
1068 1067
1069 -Cách duy nhất để thực sự xóa một `GetxService`, là với`Get.reset ()`giống như cách thức "Khởi động nóng" ứng dụng của bạn. Vì vậy, hãy nhớ rằng, nếu bạn cần sự tồn tại tuyệt đối của một class trong vòng đời tồn tại của nó trong ứng dụng của bạn, hãy sử dụng `GetxService`. 1068 +Cách duy nhất để thực sự xóa một `GetxService`, là với `Get.reset ()` giống như cách thức "Khởi động nóng" ứng dụng của bạn. Vì vậy, hãy nhớ rằng, nếu bạn cần sự tồn tại tuyệt đối của một class trong vòng đời tồn tại của nó trong ứng dụng của bạn, hãy sử dụng `GetxService`.
1070 1069
1071 # Thay đổi đột phá 2.0 1070 # Thay đổi đột phá 2.0
1072 1071