Language Pushi Push

This Contains A lot of new Functions. None of them commented.

Selected Language will be highlighted
This commit is contained in:
Ali
2024-11-24 22:13:18 +01:00
parent a9109ebf71
commit ee079e435a
4 changed files with 216 additions and 178 deletions
+47 -41
View File
@@ -5,6 +5,7 @@ import 'package:google_nav_bar/google_nav_bar.dart';
import 'package:mensaapp/providers/ambienteProvider.dart';
import 'package:mensaapp/providers/anmerkungProvider.dart';
import 'package:mensaapp/providers/essenProvider.dart';
import 'package:mensaapp/providers/languageProvider.dart';
import 'package:mensaapp/providers/pageProvider.dart';
import 'package:mensaapp/providers/serviceProvider.dart';
import 'package:mensaapp/providers/spezielleErnaehrungProvider.dart';
@@ -19,25 +20,9 @@ void main() {
class MyApp extends StatelessWidget {
const MyApp({super.key});
Future<void> loadLanguage() async
{
try
{
String language = await rootBundle.loadString("assets/language/language.json");
Map<String, dynamic> languageData = json.decode(language);
print(languageData);
}catch(e)
{
print("Hello World");
}
}
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
loadLanguage();
return MultiProvider(
providers: [
ChangeNotifierProvider(
@@ -57,6 +42,9 @@ class MyApp extends StatelessWidget {
),
ChangeNotifierProvider(
create: (context) => SpezielleErnaehrungProvider(),
),
ChangeNotifierProvider(
create: (context) => LanguageProvider(),
)
],
child: MaterialApp(
@@ -91,15 +79,15 @@ class MyHome extends StatelessWidget {
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20),
),
title: const Text("Bewertungen löschen"),
content: const Text("Möchtest du alle Eingaben entfernen?",
title: Text(Provider.of<LanguageProvider>(context, listen: false).languageData[Provider.of<LanguageProvider>(context, listen: false).language]["floating"]["delete"]["title"]),
content: Text(Provider.of<LanguageProvider>(context, listen: false).languageData[Provider.of<LanguageProvider>(context, listen: false).language]["floating"]["delete"]["info"],
style: TextStyle(fontSize: 18),),
actions: [
ElevatedButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text("Behalten"),
child: Text(Provider.of<LanguageProvider>(context, listen: false).languageData[Provider.of<LanguageProvider>(context, listen: false).language]["floating"]["delete"]["keep"]),
style: ElevatedButton.styleFrom(
backgroundColor: Theme.of(context).colorScheme.secondary
),
@@ -115,7 +103,7 @@ class MyHome extends StatelessWidget {
// Hier Aktion für Löschen ausführen
Navigator.of(context).pop(); // Dialog schließen
},
child: Text("Löschen"),
child: Text(Provider.of<LanguageProvider>(context, listen: false).languageData[Provider.of<LanguageProvider>(context, listen: false).language]["floating"]["delete"]["del"]),
)
],
);
@@ -161,36 +149,54 @@ class MyHome extends StatelessWidget {
backgroundColor: Theme.of(context).colorScheme.primary,
actions: [
IconButton(
icon: Image.asset(
'assets/flags/de.png',
width: 34,
height: 24,
fit: BoxFit.cover,
), // Erster Button rechts
icon: Opacity(
opacity: Provider.of<LanguageProvider>(context).language == "de"
? 1.0 // Voll sichtbar
: 0.4, // Halb durchsichtig
child: Image.asset(
'assets/flags/de.png',
width: 34,
height: 24,
fit: BoxFit.cover,
),
),
onPressed: () {
// Aktion für diesen Button
Provider.of<LanguageProvider>(context, listen: false)
.setLanguage("de");
},
),
IconButton(
icon: Image.asset(
'assets/flags/fr.png',
width: 34,
height: 24,
fit: BoxFit.cover,
), // Zweiter Button rechts
icon: Opacity(
opacity: Provider.of<LanguageProvider>(context).language == "en"
? 1.0 // Voll sichtbar
: 0.4, // Halb durchsichtig
child: Image.asset(
'assets/flags/en.png',
width: 34,
height: 24,
fit: BoxFit.cover,
),
),
onPressed: () {
// Aktion für diesen Button
Provider.of<LanguageProvider>(context, listen: false)
.setLanguage("en");
},
),
IconButton(
icon: Image.asset(
'assets/flags/en.png',
width: 34,
height: 24,
fit: BoxFit.cover,
), // Dritter Button rechts
icon: Opacity(
opacity: Provider.of<LanguageProvider>(context).language == "fr"
? 1.0 // Voll sichtbar
: 0.4, // Halb durchsichtig
child: Image.asset(
'assets/flags/fr.png',
width: 34,
height: 24,
fit: BoxFit.cover,
),
),
onPressed: () {
// Aktion für diesen Button
Provider.of<LanguageProvider>(context, listen: false)
.setLanguage("fr");
},
),
],