From 87f54bda6e4e3ed3f6435d183633681deb7d8c06 Mon Sep 17 00:00:00 2001 From: Serge Shkurko Date: Sat, 6 Mar 2021 04:01:56 +0300 Subject: [PATCH] [explorer] append i18n --- analysis_options.yaml | 2 +- packages/explorer/CHANGELOG.md | 4 ++ .../lib/src/i18n/messages/messages_all.dart | 4 -- .../lib/src/i18n/messages/messages_en.dart | 8 +++- .../src/i18n/messages/messages_messages.dart | 33 -------------- .../lib/src/i18n/messages/messages_ru.dart | 8 +++- .../lib/src/i18n/string_resources.dart | 7 +++ .../explorer/lib/src/ui/widgets/toolbar.dart | 39 ++++++----------- packages/explorer/locales/en.yaml | 6 --- packages/explorer/locales/intl_messages.arb | 43 ------------------- .../explorer/locales/intl_messages_en.arb | 25 +++++++++++ .../explorer/locales/intl_messages_ru.arb | 24 +++++++++++ packages/explorer/locales/ru.yaml | 6 --- packages/explorer/pubspec.yaml | 10 ++--- 14 files changed, 91 insertions(+), 128 deletions(-) delete mode 100644 packages/explorer/lib/src/i18n/messages/messages_messages.dart delete mode 100644 packages/explorer/locales/en.yaml delete mode 100644 packages/explorer/locales/intl_messages.arb delete mode 100644 packages/explorer/locales/ru.yaml diff --git a/analysis_options.yaml b/analysis_options.yaml index 867ab696..2dd732e0 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -6,7 +6,7 @@ analyzer: implicit-casts: true implicit-dynamic: true errors: - always_declare_return_types: error + always_declare_return_types: warning camel_case_types: warning empty_constructor_bodies: warning annotate_overrides: warning diff --git a/packages/explorer/CHANGELOG.md b/packages/explorer/CHANGELOG.md index aa1fdbb5..4f6b4228 100644 --- a/packages/explorer/CHANGELOG.md +++ b/packages/explorer/CHANGELOG.md @@ -1,5 +1,9 @@ ## [1.1.0] +* Append i18n + +## [1.1.0] + * Added i18n ## [1.0.0] diff --git a/packages/explorer/lib/src/i18n/messages/messages_all.dart b/packages/explorer/lib/src/i18n/messages/messages_all.dart index 28b5222c..0bbc303c 100644 --- a/packages/explorer/lib/src/i18n/messages/messages_all.dart +++ b/packages/explorer/lib/src/i18n/messages/messages_all.dart @@ -15,21 +15,17 @@ import 'package:intl/intl.dart'; import 'package:intl/message_lookup_by_library.dart'; import 'package:intl/src/intl_helpers.dart'; -import 'messages_messages.dart' deferred as messages_messages; import 'messages_en.dart' deferred as messages_en; import 'messages_ru.dart' deferred as messages_ru; typedef Future LibraryLoader(); Map _deferredLibraries = { - 'messages': messages_messages.loadLibrary, 'en': messages_en.loadLibrary, 'ru': messages_ru.loadLibrary, }; MessageLookupByLibrary _findExact(String localeName) { switch (localeName) { - case 'messages': - return messages_messages.messages; case 'en': return messages_en.messages; case 'ru': diff --git a/packages/explorer/lib/src/i18n/messages/messages_en.dart b/packages/explorer/lib/src/i18n/messages/messages_en.dart index 9fdce026..604d2943 100644 --- a/packages/explorer/lib/src/i18n/messages/messages_en.dart +++ b/packages/explorer/lib/src/i18n/messages/messages_en.dart @@ -28,6 +28,12 @@ class MessageLookup extends MessageLookupByLibrary { "actionMenuOpen" : MessageLookupByLibrary.simpleMessage("Open"), "actionMoveHere" : MessageLookupByLibrary.simpleMessage("Move here"), "cancel" : MessageLookupByLibrary.simpleMessage("Cancel"), - "empty" : MessageLookupByLibrary.simpleMessage("Empty") + "create" : MessageLookupByLibrary.simpleMessage("Create"), + "empty" : MessageLookupByLibrary.simpleMessage("Empty"), + "fileName" : MessageLookupByLibrary.simpleMessage("File name"), + "folderName" : MessageLookupByLibrary.simpleMessage("Folder name"), + "newFile" : MessageLookupByLibrary.simpleMessage("New file"), + "newFolder" : MessageLookupByLibrary.simpleMessage("New folder"), + "uploadFiles" : MessageLookupByLibrary.simpleMessage("Upload files") }; } diff --git a/packages/explorer/lib/src/i18n/messages/messages_messages.dart b/packages/explorer/lib/src/i18n/messages/messages_messages.dart deleted file mode 100644 index 1d46f7de..00000000 --- a/packages/explorer/lib/src/i18n/messages/messages_messages.dart +++ /dev/null @@ -1,33 +0,0 @@ -// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart -// This is a library that provides messages for a messages locale. All the -// messages from the main program should be duplicated here with the same -// function name. - -// Ignore issues from commonly used lints in this file. -// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new -// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering -// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases -// ignore_for_file:unused_import, file_names - -import 'package:intl/intl.dart'; -import 'package:intl/message_lookup_by_library.dart'; - -final messages = new MessageLookup(); - -typedef String MessageIfAbsent(String messageStr, List args); - -class MessageLookup extends MessageLookupByLibrary { - String get localeName => 'messages'; - - final messages = _notInlinedMessages(_notInlinedMessages); - static _notInlinedMessages(_) => { - "actionCopyHere" : MessageLookupByLibrary.simpleMessage("Copy here"), - "actionMenuCopy" : MessageLookupByLibrary.simpleMessage("Copy"), - "actionMenuCut" : MessageLookupByLibrary.simpleMessage("Cut"), - "actionMenuDelete" : MessageLookupByLibrary.simpleMessage("Delete"), - "actionMenuOpen" : MessageLookupByLibrary.simpleMessage("Open"), - "actionMoveHere" : MessageLookupByLibrary.simpleMessage("Move here"), - "cancel" : MessageLookupByLibrary.simpleMessage("Cancel"), - "empty" : MessageLookupByLibrary.simpleMessage("Empty") - }; -} diff --git a/packages/explorer/lib/src/i18n/messages/messages_ru.dart b/packages/explorer/lib/src/i18n/messages/messages_ru.dart index c08ff51c..c5c5c1dd 100644 --- a/packages/explorer/lib/src/i18n/messages/messages_ru.dart +++ b/packages/explorer/lib/src/i18n/messages/messages_ru.dart @@ -28,6 +28,12 @@ class MessageLookup extends MessageLookupByLibrary { "actionMenuOpen" : MessageLookupByLibrary.simpleMessage("Открыть"), "actionMoveHere" : MessageLookupByLibrary.simpleMessage("Вставить сюда"), "cancel" : MessageLookupByLibrary.simpleMessage("Отменить"), - "empty" : MessageLookupByLibrary.simpleMessage("Пусто") + "create" : MessageLookupByLibrary.simpleMessage("Создать"), + "empty" : MessageLookupByLibrary.simpleMessage("Пусто"), + "fileName" : MessageLookupByLibrary.simpleMessage("Имя файла"), + "folderName" : MessageLookupByLibrary.simpleMessage("Имя папки"), + "newFile" : MessageLookupByLibrary.simpleMessage("Новый файл"), + "newFolder" : MessageLookupByLibrary.simpleMessage("Новая папка"), + "uploadFiles" : MessageLookupByLibrary.simpleMessage("Выгрузить файлы") }; } diff --git a/packages/explorer/lib/src/i18n/string_resources.dart b/packages/explorer/lib/src/i18n/string_resources.dart index 8cb9724b..c375ea69 100644 --- a/packages/explorer/lib/src/i18n/string_resources.dart +++ b/packages/explorer/lib/src/i18n/string_resources.dart @@ -11,6 +11,13 @@ mixin StringResources { String get actionMoveHere => Intl.message('Move here', name: 'actionMoveHere'); + String get folderName => Intl.message('Folder name', name: 'folderName'); + String get fileName => Intl.message('File name', name: 'fileName'); + String get newFolder => Intl.message('New folder', name: 'newFolder'); + String get newFile => Intl.message('New file', name: 'newFile'); + String get uploadFiles => Intl.message('Upload files', name: 'uploadFiles'); + String get empty => Intl.message('Empty', name: 'empty'); String get cancel => Intl.message('Cancel', name: 'cancel'); + String get create => Intl.message('Create', name: 'create'); } diff --git a/packages/explorer/lib/src/ui/widgets/toolbar.dart b/packages/explorer/lib/src/ui/widgets/toolbar.dart index 4dcc21a5..ed3c91b2 100644 --- a/packages/explorer/lib/src/ui/widgets/toolbar.dart +++ b/packages/explorer/lib/src/ui/widgets/toolbar.dart @@ -1,31 +1,17 @@ +import 'package:explorer/src/i18n/localization.dart'; import 'package:explorer/src/ui/provider.dart'; import 'package:explorer/src/ui/widgets/breadcrumbs.dart'; import 'package:explorer/src/ui/widgets/fixed_sliver_persistent_header_delegate.dart'; import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; -const _defaultTranslate = { - 'cancel': 'Cancel', - 'create': 'Create', - 'folder_name': 'Folder name', - 'file_name': 'File name', - 'new_folder': 'New folder', - 'new_file': 'New file', - 'upload_files': 'Upload files', -}; - class ExplorerToolbar extends StatelessWidget { - const ExplorerToolbar({ - Key key, - this.translate = _defaultTranslate, - }) : super(key: key); - - final Map translate; - Future openModal(BuildContext context, String labelText) async => showDialog( context: context, builder: (context) { + final i18n = ExplorerLocalizations.of(context); + String result; return AlertDialog( contentPadding: const EdgeInsets.all(16.0), @@ -44,13 +30,13 @@ class ExplorerToolbar extends StatelessWidget { ), actions: [ TextButton( - child: Text(translate['cancel']), + child: Text(i18n.cancel), onPressed: () { Navigator.pop(context); }, ), TextButton( - child: Text(translate['create']), + child: Text(i18n.create), onPressed: () { Navigator.of(context).pop(result); }, @@ -63,6 +49,7 @@ class ExplorerToolbar extends StatelessWidget { @override Widget build(BuildContext context) { final _controller = ControllerProvider.of(context).explorerController; + final i18n = ExplorerLocalizations.of(context); final safeTopPadding = MediaQuery.of(context).padding.top; return SliverPersistentHeader( @@ -91,12 +78,12 @@ class ExplorerToolbar extends StatelessWidget { icon: Icon(Icons.add), onSelected: (String value) async { if (value == 'directory') { - final folderName = await openModal( - context, translate['folder_name']); + final folderName = + await openModal(context, i18n.folderName); _controller.newDirectory(folderName); } else if (value == 'file') { - final fileName = await openModal( - context, translate['file_name']); + final fileName = + await openModal(context, i18n.fileName); _controller.newFile(fileName); } else if (value == 'upload') { _controller.uploadLocalFiles(); @@ -111,7 +98,7 @@ class ExplorerToolbar extends StatelessWidget { children: [ Icon(Icons.create_new_folder), SizedBox(width: 16), - Text(translate['new_folder']), + Text(i18n.newFolder), ], ), ), @@ -122,7 +109,7 @@ class ExplorerToolbar extends StatelessWidget { children: [ Icon(Icons.note_add), SizedBox(width: 16), - Text(translate['new_file']), + Text(i18n.newFile), ], ), ), @@ -133,7 +120,7 @@ class ExplorerToolbar extends StatelessWidget { children: [ Icon(Icons.upload_file), SizedBox(width: 16), - Text(translate['upload_files']), + Text(i18n.uploadFiles), ], ), enabled: _controller.uploadFiles != null, diff --git a/packages/explorer/locales/en.yaml b/packages/explorer/locales/en.yaml deleted file mode 100644 index dd37cba3..00000000 --- a/packages/explorer/locales/en.yaml +++ /dev/null @@ -1,6 +0,0 @@ -action: - open: Open - copy: Copy - cut: Cut - delete: Delete - empty: Empty diff --git a/packages/explorer/locales/intl_messages.arb b/packages/explorer/locales/intl_messages.arb deleted file mode 100644 index 6700b365..00000000 --- a/packages/explorer/locales/intl_messages.arb +++ /dev/null @@ -1,43 +0,0 @@ -{ - "@@last_modified": "2021-03-06T02:59:10.756549", - "actionMenuOpen": "Open", - "@actionMenuOpen": { - "type": "text", - "placeholders": {} - }, - "actionMenuCopy": "Copy", - "@actionMenuCopy": { - "type": "text", - "placeholders": {} - }, - "actionMenuCut": "Cut", - "@actionMenuCut": { - "type": "text", - "placeholders": {} - }, - "actionMenuDelete": "Delete", - "@actionMenuDelete": { - "type": "text", - "placeholders": {} - }, - "actionCopyHere": "Copy here", - "@actionCopyHere": { - "type": "text", - "placeholders": {} - }, - "actionMoveHere": "Move here", - "@actionMoveHere": { - "type": "text", - "placeholders": {} - }, - "empty": "Empty", - "@empty": { - "type": "text", - "placeholders": {} - }, - "cancel": "Cancel", - "@cancel": { - "type": "text", - "placeholders": {} - } -} \ No newline at end of file diff --git a/packages/explorer/locales/intl_messages_en.arb b/packages/explorer/locales/intl_messages_en.arb index cf9d5495..5c443008 100644 --- a/packages/explorer/locales/intl_messages_en.arb +++ b/packages/explorer/locales/intl_messages_en.arb @@ -1,4 +1,5 @@ { + "@@locale": "en", "actionMenuOpen": "Open", "@actionMenuOpen": { "type": "text" @@ -23,6 +24,26 @@ "@actionMoveHere": { "type": "text" }, + "folderName": "Folder name", + "@folderName": { + "type": "text" + }, + "fileName": "File name", + "@fileName": { + "type": "text" + }, + "newFolder": "New folder", + "@newFolder": { + "type": "text" + }, + "newFile": "New file", + "@newFile": { + "type": "text" + }, + "uploadFiles": "Upload files", + "@uploadFiles": { + "type": "text" + }, "empty": "Empty", "@empty": { "type": "text" @@ -30,5 +51,9 @@ "cancel": "Cancel", "@cancel": { "type": "text" + }, + "create": "Create", + "@create": { + "type": "text" } } diff --git a/packages/explorer/locales/intl_messages_ru.arb b/packages/explorer/locales/intl_messages_ru.arb index 4c602273..e9589e8f 100644 --- a/packages/explorer/locales/intl_messages_ru.arb +++ b/packages/explorer/locales/intl_messages_ru.arb @@ -24,6 +24,26 @@ "@actionMoveHere": { "type": "text" }, + "folderName": "Имя папки", + "@folderName": { + "type": "text" + }, + "fileName": "Имя файла", + "@fileName": { + "type": "text" + }, + "newFolder": "Новая папка", + "@newFolder": { + "type": "text" + }, + "newFile": "Новый файл", + "@newFile": { + "type": "text" + }, + "uploadFiles": "Выгрузить файлы", + "@uploadFiles": { + "type": "text" + }, "empty": "Пусто", "@empty": { "type": "text" @@ -31,5 +51,9 @@ "cancel": "Отменить", "@cancel": { "type": "text" + }, + "create": "Создать", + "@create": { + "type": "text" } } diff --git a/packages/explorer/locales/ru.yaml b/packages/explorer/locales/ru.yaml deleted file mode 100644 index c613aea6..00000000 --- a/packages/explorer/locales/ru.yaml +++ /dev/null @@ -1,6 +0,0 @@ -action: - open: Открыть - copy: Копировать - cut: Вырезать - delete: Удалить - empty: Пусто diff --git a/packages/explorer/pubspec.yaml b/packages/explorer/pubspec.yaml index e241e6e8..dcf3fe51 100644 --- a/packages/explorer/pubspec.yaml +++ b/packages/explorer/pubspec.yaml @@ -1,6 +1,6 @@ name: explorer description: Universal explorer UI for navigate files, ftp, etc -version: 1.1.0 +version: 1.1.1 homepage: https://github.com/rbcprolabs/packages.flutter/tree/master/packages/explorer environment: @@ -23,15 +23,11 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - build_runner: ^1.11.5 intl_translation: ^0.17.10+1 dependency_overrides: - build_runner: ^1.11.5 - analyzer: ^1.1.0 - args: ^2.0.0 intl: ^0.17.0 - io: ^1.0.0 scripts: - i18n: flutter pub run easy_localization:generate -s assets/locales -f keys -O lib/src/i18n -o locale_keys.g.dart + i18n_to_arb: flutter pub run intl_translation:extract_to_arb --output-dir=locales lib/src/i18n/string_resources.dart + i18n_from_arb: flutter pub run intl_translation:generate_from_arb lib/src/i18n/string_resources.dart locales/*.arb --output-dir=lib/src/i18n/messages