localizer_ai 0.1.0 copy "localizer_ai: ^0.1.0" to clipboard
localizer_ai: ^0.1.0 copied to clipboard

A Flutter package for AI-powered localization and automatic translation.

example/main.dart

// example/main.dart
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:provider/provider.dart';
import 'package:localizer_ai/localizer_ai.dart';
import 'package:localizer_ai/src/translator_engines/openai_translator.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // Initialize the LocalizerAI singleton
  await LocalizerAI().init(
    defaultLocale: 'en',
    supportedLocales: ['en', 'ar', 'fr'],
    engine: OpenAITranslator(apiKey: 'YOUR_API_KEY'),
  );
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider<LocalizerAI>(
      create: (_) => LocalizerAI(),
      child: Consumer<LocalizerAI>(
        builder: (context, localizer, _) {
          return MaterialApp(
            locale: localizer.currentLocale,
            supportedLocales: const [
              Locale('en'),
              Locale('ar'),
              Locale('fr'),
            ],
            localizationsDelegates: const [
              GlobalMaterialLocalizations.delegate,
              GlobalCupertinoLocalizations.delegate,
              GlobalWidgetsLocalizations.delegate,
            ],
            home: const HomePage(),
          );
        },
      ),
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    final localizer = Provider.of<LocalizerAI>(context);
    return Scaffold(
      appBar: AppBar(
        title: FutureBuilder<String>(
          future: localizer.translate('Welcome to the app'),
          builder: (context, snapshot) {
            if (snapshot.connectionState == ConnectionState.waiting) {
              return const CircularProgressIndicator(color: Colors.white);
            } else if (snapshot.hasError) {
              return const Text('Error');
            }
            return Text(snapshot.data!);
          },
        ),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            FutureBuilder<String>(
              future: localizer.translate('Settings'),
              builder: (context, snapshot) {
                if (!snapshot.hasData) return const CircularProgressIndicator();
                return Text(snapshot.data!);
              },
            ),
            const SizedBox(height: 20),
            ElevatedButton(
              onPressed: () async {
                await localizer.changeLocale(
                  localizer.currentLocale.languageCode == 'en' ? 'ar' : 'en',
                );
              },
              child: const Text('Switch Language'),
            ),
          ],
        ),
      ),
    );
  }
}
0
likes
130
points
23
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter package for AI-powered localization and automatic translation.

Documentation

API reference

License

MIT (license)

Dependencies

flutter, flutter_localizations, http, provider, shared_preferences

More

Packages that depend on localizer_ai