localization support

This commit is contained in:
zoe 2022-06-17 12:38:28 +02:00
parent 40d57fb245
commit bd3e05b354
11 changed files with 34 additions and 84 deletions

View file

@ -1,6 +1,5 @@
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'dart:io'; import 'dart:io';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:oauth2/oauth2.dart' as oauth2; import 'package:oauth2/oauth2.dart' as oauth2;

8
lib/i18n/en_US.json Normal file
View file

@ -0,0 +1,8 @@
{
"greeting": "Hello!",
"user-id-not-valid": "Sorry, this user id doesn't look quite right... ",
"user-id": "user id",
"user-id-example": "user@example.com",
"authorize-in-browser": "authorize in browser"
}

View file

@ -1,8 +1,15 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:localization/localization.dart';
import 'package:slothmu/partials/main_scaffold.dart'; import 'package:slothmu/partials/main_scaffold.dart';
import 'pages/login.dart'; import 'pages/login.dart';
void main() => runApp(MaterialApp( void main() => runApp(MaterialApp(
supportedLocales: const [
Locale("en", "US"),
],
localizationsDelegates: [
LocalJsonLocalization.delegate,
],
initialRoute: '/login', initialRoute: '/login',
routes: { routes: {
'/': (context) => const MainScaffold(), '/': (context) => const MainScaffold(),

View file

@ -1,5 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:slothmu/api/user.dart'; import 'package:slothmu/api/user.dart';
import 'package:localization/localization.dart';
class Login extends StatefulWidget { class Login extends StatefulWidget {
const Login({Key? key}) : super(key: key); const Login({Key? key}) : super(key: key);
@ -40,18 +41,18 @@ class _LoginFormState extends State<LoginForm> {
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround, mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [ children: [
const Text("Welcome!", style: TextStyle(fontSize: 64)), Text("greeting".i18n(), style: const TextStyle(fontSize: 64)),
TextFormField( TextFormField(
decoration: const InputDecoration( decoration: InputDecoration(
labelText: "user id", labelText: "user-id".i18n(),
hintText: "user@example.com", hintText: "user-id-example".i18n(),
icon: Icon(Icons.person), icon: const Icon(Icons.person),
prefixText: "@", prefixText: "@",
), ),
autofocus: true, autofocus: true,
validator: (value) { validator: (value) {
if (value!.isEmpty || !isValidUsername(name: value)) { if (value!.isEmpty || !isValidUsername(name: value)) {
return "Sorry, this user id doesn't look quite right..."; return "user-id-not-valid".i18n();
} else { } else {
return null; return null;
} }
@ -61,8 +62,8 @@ class _LoginFormState extends State<LoginForm> {
onPressed: () { onPressed: () {
final isValid = formKey.currentState!.validate(); final isValid = formKey.currentState!.validate();
}, },
icon: Icon(Icons.login), icon: const Icon(Icons.login),
label: Text("authorize in browser")) label: Text("authorize-in-browser".i18n()))
], ],
), ),
); );

View file

@ -6,10 +6,6 @@
#include "generated_plugin_registrant.h" #include "generated_plugin_registrant.h"
#include <flutter_secure_storage_linux/flutter_secure_storage_linux_plugin.h>
void fl_register_plugins(FlPluginRegistry* registry) { void fl_register_plugins(FlPluginRegistry* registry) {
g_autoptr(FlPluginRegistrar) flutter_secure_storage_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterSecureStorageLinuxPlugin");
flutter_secure_storage_linux_plugin_register_with_registrar(flutter_secure_storage_linux_registrar);
} }

View file

@ -3,7 +3,6 @@
# #
list(APPEND FLUTTER_PLUGIN_LIST list(APPEND FLUTTER_PLUGIN_LIST
flutter_secure_storage_linux
) )
list(APPEND FLUTTER_FFI_PLUGIN_LIST list(APPEND FLUTTER_FFI_PLUGIN_LIST

View file

@ -5,8 +5,6 @@
import FlutterMacOS import FlutterMacOS
import Foundation import Foundation
import flutter_secure_storage_macos
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
FlutterSecureStorageMacosPlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStorageMacosPlugin"))
} }

View file

@ -76,58 +76,11 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.1" version: "2.0.1"
flutter_secure_storage:
dependency: "direct main"
description:
name: flutter_secure_storage
url: "https://pub.dartlang.org"
source: hosted
version: "5.0.2"
flutter_secure_storage_linux:
dependency: transitive
description:
name: flutter_secure_storage_linux
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
flutter_secure_storage_macos:
dependency: transitive
description:
name: flutter_secure_storage_macos
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
flutter_secure_storage_platform_interface:
dependency: transitive
description:
name: flutter_secure_storage_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
flutter_secure_storage_web:
dependency: transitive
description:
name: flutter_secure_storage_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.2"
flutter_secure_storage_windows:
dependency: transitive
description:
name: flutter_secure_storage_windows
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.2"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_web_plugins:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
http: http:
dependency: "direct main" dependency: "direct main"
description: description:
@ -142,13 +95,6 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.0.1" version: "4.0.1"
js:
dependency: transitive
description:
name: js
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.4"
lints: lints:
dependency: transitive dependency: transitive
description: description:
@ -156,6 +102,13 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.0.0" version: "2.0.0"
localization:
dependency: "direct main"
description:
name: localization
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
matcher: matcher:
dependency: transitive dependency: transitive
description: description:
@ -191,13 +144,6 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.1" version: "1.8.1"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.2"
settings_ui: settings_ui:
dependency: "direct main" dependency: "direct main"
description: description:
@ -268,4 +214,3 @@ packages:
version: "2.1.2" version: "2.1.2"
sdks: sdks:
dart: ">=2.17.3 <3.0.0" dart: ">=2.17.3 <3.0.0"
flutter: ">=2.0.0"

View file

@ -37,7 +37,7 @@ dependencies:
settings_ui: ^2.0.2 settings_ui: ^2.0.2
http: ^0.13.4 http: ^0.13.4
oauth2: ^2.0.0 oauth2: ^2.0.0
flutter_secure_storage: ^5.0.2 localization: ^2.1.0
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
@ -62,7 +62,8 @@ flutter:
uses-material-design: true uses-material-design: true
# To add assets to your application, add an assets section, like this: # To add assets to your application, add an assets section, like this:
# assets: assets:
- lib/i18n/
# - images/a_dot_burr.jpeg # - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg # - images/a_dot_ham.jpeg

View file

@ -6,9 +6,6 @@
#include "generated_plugin_registrant.h" #include "generated_plugin_registrant.h"
#include <flutter_secure_storage_windows/flutter_secure_storage_windows_plugin.h>
void RegisterPlugins(flutter::PluginRegistry* registry) { void RegisterPlugins(flutter::PluginRegistry* registry) {
FlutterSecureStorageWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin"));
} }

View file

@ -3,7 +3,6 @@
# #
list(APPEND FLUTTER_PLUGIN_LIST list(APPEND FLUTTER_PLUGIN_LIST
flutter_secure_storage_windows
) )
list(APPEND FLUTTER_FFI_PLUGIN_LIST list(APPEND FLUTTER_FFI_PLUGIN_LIST