Práce na vícejazyčnosti
This commit is contained in:
parent
1b779b52af
commit
7e2d735b47
4 changed files with 426 additions and 3 deletions
107
lib/lang/lang.dart
Normal file
107
lib/lang/lang.dart
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
abstract class Languages {
|
||||||
|
static Languages? of(BuildContext context) {
|
||||||
|
return Localizations.of<Languages>(context, Languages);
|
||||||
|
}
|
||||||
|
|
||||||
|
String get appName;
|
||||||
|
|
||||||
|
// Login
|
||||||
|
|
||||||
|
String get errorContacting;
|
||||||
|
|
||||||
|
String get loggingIn;
|
||||||
|
|
||||||
|
String get logIn;
|
||||||
|
|
||||||
|
String get username;
|
||||||
|
|
||||||
|
String get password;
|
||||||
|
|
||||||
|
String get iCanteenUrl;
|
||||||
|
|
||||||
|
String get rememberMe;
|
||||||
|
|
||||||
|
String get httpLogin;
|
||||||
|
|
||||||
|
String get yes;
|
||||||
|
|
||||||
|
String get noChange;
|
||||||
|
|
||||||
|
String get notOfficial;
|
||||||
|
|
||||||
|
String get agree;
|
||||||
|
|
||||||
|
String get disagree;
|
||||||
|
|
||||||
|
String get loginFailed;
|
||||||
|
|
||||||
|
// Jídelníček
|
||||||
|
|
||||||
|
String get loading;
|
||||||
|
|
||||||
|
String get monday;
|
||||||
|
|
||||||
|
String get tuesday;
|
||||||
|
|
||||||
|
String get wednesday;
|
||||||
|
|
||||||
|
String get thursday;
|
||||||
|
|
||||||
|
String get friday;
|
||||||
|
|
||||||
|
String get saturday;
|
||||||
|
|
||||||
|
String get sunday;
|
||||||
|
|
||||||
|
String get noFood;
|
||||||
|
|
||||||
|
String get inExchange;
|
||||||
|
|
||||||
|
String get ordering;
|
||||||
|
|
||||||
|
String get errorOrdering;
|
||||||
|
|
||||||
|
String get close;
|
||||||
|
|
||||||
|
String get verifyExchange;
|
||||||
|
|
||||||
|
String get no;
|
||||||
|
|
||||||
|
String get exchangeError;
|
||||||
|
|
||||||
|
String get signOut;
|
||||||
|
|
||||||
|
String get reportBugs;
|
||||||
|
|
||||||
|
String get about;
|
||||||
|
|
||||||
|
String get menu;
|
||||||
|
|
||||||
|
String get balance;
|
||||||
|
|
||||||
|
// Burza
|
||||||
|
|
||||||
|
String get exchange;
|
||||||
|
|
||||||
|
String get noExchange;
|
||||||
|
|
||||||
|
String get pullToReload;
|
||||||
|
|
||||||
|
String get ordered;
|
||||||
|
|
||||||
|
String get orderSuccess;
|
||||||
|
|
||||||
|
String get ok;
|
||||||
|
|
||||||
|
String get cannotOrder;
|
||||||
|
|
||||||
|
String get order;
|
||||||
|
|
||||||
|
// Settings
|
||||||
|
|
||||||
|
String get settings;
|
||||||
|
|
||||||
|
String get saveOffline;
|
||||||
|
}
|
144
lib/lang/lang_cz.dart
Normal file
144
lib/lang/lang_cz.dart
Normal file
|
@ -0,0 +1,144 @@
|
||||||
|
import 'package:opencanteen/lang/lang.dart';
|
||||||
|
|
||||||
|
class LanguageCz extends Languages {
|
||||||
|
@override
|
||||||
|
String get about => "O Aplikaci";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get agree => "Souhlasím";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get appName => "OpenCanteen";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get balance => "Kredit: ";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get cannotOrder => "Nelze objednat";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get close => "Zavřít";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disagree => "Nesouhlasím";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get errorContacting =>
|
||||||
|
"Nastala chyba při kontaktování serveru, zkontrolujte připojení";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get errorOrdering => "Jídlo se nepodařilo objednat";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get exchange => "Burza";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get exchangeError => "Nepodařilo se vložit jídlo na burzu";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get friday => "Pátek";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get httpLogin =>
|
||||||
|
"Snažíte se přihlásit přes nešifrované spojení HTTP, jste si jisti, že tak chcete učinit?";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get iCanteenUrl => "iCanteen URL";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get inExchange => "V BURZE";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get loading => "Načítání...";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get logIn => "Přihlášení";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get loggingIn => "Přihlašuji vás...";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get loginFailed => "Přihlášení se nezdařilo";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get menu => "Jídelníček";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get monday => "Pondělí";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no => "Ne";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get noChange => "Ne, změnit";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get noExchange => "Žádné jídlo v burze";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get noFood => "Žádné jídlo pro tento den";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get notOfficial =>
|
||||||
|
"Toto není oficiální aplikace k ovládání iCanteen. Autor neručí za ztráty nebo nefunkčnost v souvislosti s používáním této aplikace. Tato zpráva se znovu neukáže.";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get ok => "OK";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get order => "Objednat";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get orderSuccess => "Jídlo bylo úspěšně objednáno";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get ordered => "Objednáno";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get ordering => "Objednávám...";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get password => "Heslo";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get pullToReload => "Potáhněte zvrchu pro načtení";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get rememberMe => "Zapamatovat si mě";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get reportBugs => "Nahlásit chybu";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get saturday => "Sobota";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get saveOffline => "Ukládat jídelníček na dnešní den offline";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get settings => "Nastavení";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get signOut => "Odhlásit se";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get sunday => "Neděle";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get thursday => "Čtvrtek";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tuesday => "Úterý";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get username => "Uživatelské jméno";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get verifyExchange => "Opravdu chcete vložit jídlo na burzu?";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get wednesday => "Středa";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get yes => "Ano";
|
||||||
|
}
|
144
lib/lang/lang_en.dart
Normal file
144
lib/lang/lang_en.dart
Normal file
|
@ -0,0 +1,144 @@
|
||||||
|
import 'package:opencanteen/lang/lang.dart';
|
||||||
|
|
||||||
|
class LanguageEn extends Languages {
|
||||||
|
@override
|
||||||
|
String get about => "O Aplikaci";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get agree => "Souhlasím";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get appName => "OpenCanteen";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get balance => "Kredit: ";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get cannotOrder => "Nelze objednat";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get close => "Zavřít";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get disagree => "Nesouhlasím";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get errorContacting =>
|
||||||
|
"Nastala chyba při kontaktování serveru, zkontrolujte připojení";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get errorOrdering => "Jídlo se nepodařilo objednat";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get exchange => "Burza";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get exchangeError => "Nepodařilo se vložit jídlo na burzu";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get friday => "Pátek";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get httpLogin =>
|
||||||
|
"Snažíte se přihlásit přes nešifrované spojení HTTP, jste si jisti, že tak chcete učinit?";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get iCanteenUrl => "iCanteen URL";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get inExchange => "V BURZE";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get loading => "Načítání...";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get logIn => "Přihlášení";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get loggingIn => "Přihlašuji vás...";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get loginFailed => "Přihlášení se nezdařilo";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get menu => "Jídelníček";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get monday => "Pondělí";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get no => "Ne";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get noChange => "Ne, změnit";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get noExchange => "Žádné jídlo v burze";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get noFood => "Žádné jídlo pro tento den";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get notOfficial =>
|
||||||
|
"Toto není oficiální aplikace k ovládání iCanteen. Autor neručí za ztráty nebo nefunkčnost v souvislosti s používáním této aplikace. Tato zpráva se znovu neukáže.";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get ok => "OK";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get order => "Objednat";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get orderSuccess => "Jídlo bylo úspěšně objednáno";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get ordered => "Objednáno";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get ordering => "Objednávám...";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get password => "Heslo";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get pullToReload => "Potáhněte zvrchu pro načtení";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get rememberMe => "Zapamatovat si mě";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get reportBugs => "Nahlásit chybu";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get saturday => "Sobota";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get saveOffline => "Ukládat jídelníček na dnešní den offline";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get settings => "Nastavení";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get signOut => "Odhlásit se";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get sunday => "Neděle";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get thursday => "Čtvrtek";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get tuesday => "Úterý";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get username => "Uživatelské jméno";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get verifyExchange => "Opravdu chcete vložit jídlo na burzu?";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get wednesday => "Středa";
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get yes => "Ano";
|
||||||
|
}
|
|
@ -1,10 +1,13 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||||
|
import 'package:opencanteen/lang/lang_cz.dart';
|
||||||
import 'package:opencanteen/loginmanager.dart';
|
import 'package:opencanteen/loginmanager.dart';
|
||||||
import 'package:connectivity_plus/connectivity_plus.dart';
|
import 'package:connectivity_plus/connectivity_plus.dart';
|
||||||
import 'package:canteenlib/canteenlib.dart';
|
import 'package:canteenlib/canteenlib.dart';
|
||||||
|
|
||||||
|
import 'lang/lang.dart';
|
||||||
|
import 'lang/lang_en.dart';
|
||||||
import 'okna/jidelnicek.dart';
|
import 'okna/jidelnicek.dart';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -22,7 +25,7 @@ Copyright (C) 2022 Matyáš Caras a přispěvatelé
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
runApp(const MyApp());
|
runApp(const MyApp());
|
||||||
|
@ -36,8 +39,11 @@ class MyApp extends StatelessWidget {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MaterialApp(
|
return MaterialApp(
|
||||||
debugShowCheckedModeBanner: false,
|
debugShowCheckedModeBanner: false,
|
||||||
localizationsDelegates: GlobalMaterialLocalizations.delegates,
|
localizationsDelegates: const [
|
||||||
supportedLocales: const [Locale("cs")],
|
AppLocalizationsDelegate(),
|
||||||
|
...GlobalMaterialLocalizations.delegates
|
||||||
|
],
|
||||||
|
supportedLocales: const [Locale("cs"), Locale("en")],
|
||||||
title: 'OpenCanteen',
|
title: 'OpenCanteen',
|
||||||
theme: ThemeData(
|
theme: ThemeData(
|
||||||
primarySwatch: Colors.purple,
|
primarySwatch: Colors.purple,
|
||||||
|
@ -259,3 +265,25 @@ class _LoginPageState extends State<LoginPage> {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class AppLocalizationsDelegate extends LocalizationsDelegate<Languages> {
|
||||||
|
const AppLocalizationsDelegate();
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool isSupported(Locale locale) => ['cs', 'en'].contains(locale.languageCode);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<Languages> load(Locale locale) => _load(locale);
|
||||||
|
|
||||||
|
static Future<Languages> _load(Locale locale) async {
|
||||||
|
switch (locale.languageCode) {
|
||||||
|
case 'cs':
|
||||||
|
return LanguageCz();
|
||||||
|
default:
|
||||||
|
return LanguageEn();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool shouldReload(LocalizationsDelegate<Languages> old) => false;
|
||||||
|
}
|
||||||
|
|
Reference in a new issue