Browse Source

[packages] Add translator

merge-requests/22/head
Vitaliy Zarubin 2 years ago
parent
commit
13a80b36e3
  1. 5
      example/lib/l10n/app_en.arb
  2. 5
      example/lib/l10n/app_ru.arb
  3. 9
      example/lib/packages/translator/model.dart
  4. 7
      example/lib/packages/translator/page.dart

5
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",

5
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 строк",

9
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<TranslatorModel>(context);
final translator = GoogleTranslator();
Future<Translation> translate(
String value,
) async {
return await translator.translate(value, from: 'en', to: 'ru');
}
}

7
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<TranslatorPage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
BlockInfoPackage(widget.package),
BlockItem(
title: l10n.translatorTitle,
desc: l10n.translatorSubtitle,
future: model.translate(l10n.translatorText),
builder: (value) => value.text,
),
],
),
),

Loading…
Cancel
Save