Files
food-ai/client/lib/main.dart
dbastrikin 54b10d51e2 feat: Flutter client localisation (12 languages)
Add flutter_localizations + intl, 12 ARB files (en/ru/es/de/fr/it/pt/zh/ja/ko/ar/hi),
replace all hardcoded Russian UI strings with AppLocalizations, detect system locale
on first launch, localise bottom nav bar labels, document rule in CLAUDE.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 22:22:52 +02:00

43 lines
1.3 KiB
Dart

import 'dart:ui' show PlatformDispatcher;
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'app.dart';
import 'core/locale/language_provider.dart';
import 'core/storage/local_preferences.dart';
import 'core/storage/local_preferences_provider.dart';
import 'firebase_options.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
final sharedPreferences = await SharedPreferences.getInstance();
// Detect system language on first launch.
const supportedLanguageCodes = {
'en', 'ru', 'es', 'de', 'fr', 'it', 'pt', 'zh', 'ja', 'ko', 'ar', 'hi',
};
final systemLanguageCode = PlatformDispatcher.instance.locale.languageCode;
final initialLanguage = supportedLanguageCodes.contains(systemLanguageCode)
? systemLanguageCode
: 'en';
runApp(
ProviderScope(
overrides: [
localPreferencesProvider.overrideWithValue(
LocalPreferences(sharedPreferences),
),
languageProvider.overrideWith((ref) => initialLanguage),
],
child: const App(),
),
);
}