From 13a80b36e39d71380323eb3193fa416be10d9b70 Mon Sep 17 00:00:00 2001 From: Vitaliy Zarubin Date: Mon, 10 Jul 2023 11:14:54 +0300 Subject: [PATCH] [packages] Add translator --- example/lib/l10n/app_en.arb | 5 +++++ example/lib/l10n/app_ru.arb | 5 +++++ example/lib/packages/translator/model.dart | 9 +++++++++ example/lib/packages/translator/page.dart | 7 +++++++ 4 files changed, 26 insertions(+) diff --git a/example/lib/l10n/app_en.arb b/example/lib/l10n/app_en.arb index 07c1fd2..a953f22 100644 --- a/example/lib/l10n/app_en.arb +++ b/example/lib/l10n/app_en.arb @@ -1,4 +1,9 @@ { + "@_TRANSLATOR": {}, + "translatorTitle": "Translate", + "translatorSubtitle": "Translate en -> ru 'Hello!'", + "translatorText": "Hello!", + "@_EQUATABLE": {}, "equatableTitleDefault": "It's default class, 46 of lines", "equatableTitleFreezed": "It's equatable class, 26 of lines", diff --git a/example/lib/l10n/app_ru.arb b/example/lib/l10n/app_ru.arb index 7c0f59a..f991c8d 100644 --- a/example/lib/l10n/app_ru.arb +++ b/example/lib/l10n/app_ru.arb @@ -1,4 +1,9 @@ { + "@_TRANSLATOR": {}, + "translatorTitle": "Переводчик", + "translatorSubtitle": "Перевод en -> ru 'Hello!'", + "translatorText": "Hello!", + "@_EQUATABLE": {}, "equatableTitleDefault": "Класс по умолчанию, 46 строки", "equatableTitleFreezed": "Класс c freezed, 26 строк", diff --git a/example/lib/packages/translator/model.dart b/example/lib/packages/translator/model.dart index f35febf..a3e2500 100644 --- a/example/lib/packages/translator/model.dart +++ b/example/lib/packages/translator/model.dart @@ -4,10 +4,19 @@ */ import 'package:flutter/widgets.dart'; import 'package:scoped_model/scoped_model.dart'; +import 'package:translator/translator.dart'; /// Model for [TranslatorPage] class TranslatorModel extends Model { /// Get [ScopedModel] static TranslatorModel of(BuildContext context) => ScopedModel.of(context); + + final translator = GoogleTranslator(); + + Future translate( + String value, + ) async { + return await translator.translate(value, from: 'en', to: 'ru'); + } } diff --git a/example/lib/packages/translator/page.dart b/example/lib/packages/translator/page.dart index 989e9d1..dee8e34 100644 --- a/example/lib/packages/translator/page.dart +++ b/example/lib/packages/translator/page.dart @@ -7,6 +7,7 @@ import 'package:flutter_example_packages/base/di/app_di.dart'; import 'package:flutter_example_packages/base/package/package.dart'; import 'package:flutter_example_packages/widgets/base/export.dart'; import 'package:flutter_example_packages/widgets/blocks/block_info_package.dart'; +import 'package:flutter_example_packages/widgets/blocks/block_item.dart'; import 'package:flutter_example_packages/widgets/layouts/block_layout.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -42,6 +43,12 @@ class _TranslatorPageState extends AppState { crossAxisAlignment: CrossAxisAlignment.start, children: [ BlockInfoPackage(widget.package), + BlockItem( + title: l10n.translatorTitle, + desc: l10n.translatorSubtitle, + future: model.translate(l10n.translatorText), + builder: (value) => value.text, + ), ], ), ),