Renat

add translation of Useful tips on README.ru.md

@@ -610,24 +610,24 @@ ObxValue((data) => Switch( @@ -610,24 +610,24 @@ ObxValue((data) => Switch(
610 ), 610 ),
611 ``` 611 ```
612 612
613 -## Useful tips 613 +## Полезные советы
614 614
615 -`.obs`ervables (also known as _Rx_ Types) have a wide variety of internal methods and operators. 615 +`.obs`ervables (наблюдатели) (также известные как Rx-типы) имеют широкий спектр внутренних методов и операторов
616 616
617 -> Is very common to _believe_ that a property with `.obs` **IS** the actual value... but make no mistake!  
618 -> We avoid the Type declaration of the variable, because Dart's compiler is smart enough, and the code  
619 -> looks cleaner, but: 617 +> Очень распространено _мнение_, что свойство с `.obs` **ЯВЛЯЕТСЯ** действительным значением... но не ошибайтесь!
  618 +> Мы избегаем объявления типа переменной, потому что компилятор Dart достаточно умен, и
  619 +> код выглядит чище, но:
620 620
621 ```dart 621 ```dart
622 var message = 'Hello world'.obs; 622 var message = 'Hello world'.obs;
623 print( 'Message "$message" has Type ${message.runtimeType}'); 623 print( 'Message "$message" has Type ${message.runtimeType}');
624 ``` 624 ```
625 625
626 -Even if `message` _prints_ the actual String value, the Type is **RxString**! 626 +Даже если `message` _выводит_ значение String, его тип - **RxString**!
627 627
628 -So, you can't do `message.substring( 0, 4 )`.  
629 -You have to access the real `value` inside the _observable_:  
630 -The most "used way" is `.value`, but, did you know that you can also use... 628 +Итак, вы не сможете сделать `message.substring( 0, 4 )`.
  629 +Вы должны получить доступ к реальному `value` внутри _observable_:
  630 +Самый "используемый способ" это `.value`, но, знаете ли вы, что вы также можете использовать ...
631 631
632 ```dart 632 ```dart
633 final name = 'GetX'.obs; 633 final name = 'GetX'.obs;
@@ -718,9 +718,9 @@ print( user ); @@ -718,9 +718,9 @@ print( user );
718 718
719 #### GetView 719 #### GetView
720 720
721 -I love this Widget, is so simple, yet, so useful! 721 +Я люблю этот виджет, он такой простой, но такой полезный!
722 722
723 -Is a `const Stateless` Widget that has a getter `controller` for a registered `Controller`, that's all. 723 +Это`const Stateless` виджет, который имеет геттер `controller` для зарегистрированного `Controller`, вот и всё.
724 724
725 ```dart 725 ```dart
726 class AwesomeController extends GetxController { 726 class AwesomeController extends GetxController {
@@ -741,27 +741,25 @@ Is a `const Stateless` Widget that has a getter `controller` for a registered `C @@ -741,27 +741,25 @@ Is a `const Stateless` Widget that has a getter `controller` for a registered `C
741 741
742 #### GetWidget 742 #### GetWidget
743 743
744 -Most people have no idea about this Widget, or totally confuse the usage of it.  
745 -The use case is very rare, but very specific: It `caches` a Controller.  
746 -Because of the _cache_, can't be a `const Stateless`. 744 +Большинство людей понятия не имеют об этом виджете или путаются при его применении.
  745 +Вариант его использования редок, но конкретен: он кеширует Controller.
  746 +Так как из-за _cache_, он не может быть `const Stateless`.
747 747
748 -> So, when do you need to "cache" a Controller? 748 +> Итак, когда вам нужно «кэшировать» контроллер?
749 749
750 -If you use, another "not so common" feature of **GetX**: `Get.create()`. 750 +В случаях использования другой "не распространённой" фичи **GetX**: `Get.create()`.
751 751
752 -`Get.create(()=>Controller())` will generate a new `Controller` each time you call 752 +`Get.create(()=>Controller())` будет создавать новый `Controller` каждый раз при вызове
753 `Get.find<Controller>()`, 753 `Get.find<Controller>()`,
754 754
755 -That's where `GetWidget` shines... as you can use it, for example,  
756 -to keep a list of Todo items. So, if the widget gets "rebuilt", it will keep the same controller instance. 755 +Это тот самый случай, когда `GetWidget` блистает... поскольку вы можете использовать его, например, для хранения списка элементов Todo. Итак, если виджет будет «перестроен», он сохранит тот же экземпляр контроллера.
757 756
758 #### GetxService 757 #### GetxService
759 758
760 -This class is like a `GetxController`, it shares the same lifecycle ( `onInit()`, `onReady()`, `onClose()`).  
761 -But has no "logic" inside of it. It just notifies **GetX** Dependency Injection system, that this subclass  
762 -**can not** be removed from memory. 759 +Этот класс похожа на `GetxController`, у него такой же жизненный цикл ( `onInit()`, `onReady()`, `onClose()`).
  760 +Но внутри нет никакой «логики». Он просто уведомляет систему **GetX** Dependency Injection о том, что этот подкласс **нельзя** удалить из памяти.
763 761
764 -So is super useful to keep your "Services" always reachable and active with `Get.find()`. Like: 762 +Так что очень полезно держать ваши «Сервисы» всегда доступными и активными с помощью `Get.find()`. Например:
765 `ApiService`, `StorageService`, `CacheService`. 763 `ApiService`, `StorageService`, `CacheService`.
766 764
767 ```dart 765 ```dart
@@ -802,9 +800,7 @@ class SettingsService extends GetxService { @@ -802,9 +800,7 @@ class SettingsService extends GetxService {
802 800
803 ``` 801 ```
804 802
805 -The only way to actually delete a `GetxService`, is with `Get.reset()` which is like a  
806 -"Hot Reboot" of your app. So remember, if you need absolute persistance of a class instance during the  
807 -lifetime of your app, use `GetxService`. 803 +Единственный способ удалить `GetxService` - использовать `Get.reset()`, который похож на «горячую перезагрузку» вашего приложения. Так что помните, если вам нужен постоянный экземпляр класса в течение всего жизненного цикла вашего приложения, используйте `GetxService`.
808 804
809 # Breaking changes from 2.0 805 # Breaking changes from 2.0
810 806