depending on the path a different language is pre-selected
This commit is contained in:
@@ -5,13 +5,19 @@ import 'package:resume/pages/landing_page.dart';
|
|||||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||||
import 'package:resume/providers/locale_provider.dart';
|
import 'package:resume/providers/locale_provider.dart';
|
||||||
import 'package:resume/providers/content_provider.dart';
|
import 'package:resume/providers/content_provider.dart';
|
||||||
|
import './services/tools.dart';
|
||||||
import 'theme.dart' show darkTheme;
|
import 'theme.dart' show darkTheme;
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
|
final String initialPath = Uri.base.path;
|
||||||
|
final String defaultLocale = Tools.getLocaleFromPath(initialPath);
|
||||||
runApp(
|
runApp(
|
||||||
MultiProvider(
|
MultiProvider(
|
||||||
providers: [
|
providers: [
|
||||||
ChangeNotifierProvider(create: (context) => LocaleProvider()),
|
ChangeNotifierProvider(
|
||||||
|
create: (context) =>
|
||||||
|
LocaleProvider(defaultLocale: Locale(defaultLocale)),
|
||||||
|
),
|
||||||
ChangeNotifierProvider(create: (context) => ContentProvider()),
|
ChangeNotifierProvider(create: (context) => ContentProvider()),
|
||||||
],
|
],
|
||||||
child: const Resume(),
|
child: const Resume(),
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class LocaleProvider extends ChangeNotifier {
|
class LocaleProvider extends ChangeNotifier {
|
||||||
|
LocaleProvider({Locale? defaultLocale})
|
||||||
|
: _locale = defaultLocale ?? const Locale('de');
|
||||||
Locale _locale = const Locale('de');
|
Locale _locale = const Locale('de');
|
||||||
|
|
||||||
Locale get locale => _locale;
|
Locale get locale => _locale;
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||||
|
|
||||||
class Tools {
|
class Tools {
|
||||||
|
Tools._();
|
||||||
|
|
||||||
/// Builds a formatted time string from two date strings in the format 'YYYY-MM'.
|
/// 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.
|
/// 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');
|
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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user