From b66da2388781690357579cd384d5c8d9f6106c45 Mon Sep 17 00:00:00 2001 From: marco Date: Wed, 18 Dec 2024 19:41:00 +0100 Subject: [PATCH] depending on the path a different language is pre-selected --- lib/main.dart | 8 +++++++- lib/providers/locale_provider.dart | 2 ++ lib/services/tools.dart | 11 +++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/main.dart b/lib/main.dart index 7204f0c..a18d3c5 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -5,13 +5,19 @@ import 'package:resume/pages/landing_page.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:resume/providers/locale_provider.dart'; import 'package:resume/providers/content_provider.dart'; +import './services/tools.dart'; import 'theme.dart' show darkTheme; void main() { + final String initialPath = Uri.base.path; + final String defaultLocale = Tools.getLocaleFromPath(initialPath); runApp( MultiProvider( providers: [ - ChangeNotifierProvider(create: (context) => LocaleProvider()), + ChangeNotifierProvider( + create: (context) => + LocaleProvider(defaultLocale: Locale(defaultLocale)), + ), ChangeNotifierProvider(create: (context) => ContentProvider()), ], child: const Resume(), diff --git a/lib/providers/locale_provider.dart b/lib/providers/locale_provider.dart index b2ddfde..a545895 100644 --- a/lib/providers/locale_provider.dart +++ b/lib/providers/locale_provider.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; class LocaleProvider extends ChangeNotifier { + LocaleProvider({Locale? defaultLocale}) + : _locale = defaultLocale ?? const Locale('de'); Locale _locale = const Locale('de'); Locale get locale => _locale; diff --git a/lib/services/tools.dart b/lib/services/tools.dart index 9177c52..1141c76 100644 --- a/lib/services/tools.dart +++ b/lib/services/tools.dart @@ -2,6 +2,8 @@ import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; class Tools { + Tools._(); + /// Builds a formatted time string from two date strings in the format 'YYYY-MM'. /// /// Returns a string in the format 'Month Year - Month Year' using localized month names. @@ -94,4 +96,13 @@ class Tools { throw ArgumentError('Month number must be between 1 and 12'); } } + + static String getLocaleFromPath(String path) { + if (path.startsWith('/de')) { + return 'de'; + } else if (path.startsWith('/en')) { + return 'en'; + } + return 'de'; // Default fallback + } }