bhashini_sdk 1.0.0 copy "bhashini_sdk: ^1.0.0" to clipboard
bhashini_sdk: ^1.0.0 copied to clipboard

Bhashini Flutter SDK — auto-translates any Flutter app into 22 Indian languages. Zero widget changes required. Works by walking the element tree and injecting translations directly into RenderParagrap [...]

example/lib/main.dart

import 'package:bhashini_sdk/bhashini_sdk.dart';
import 'package:flutter/material.dart';
// ignore: depend_on_referenced_packages
import 'package:shared_preferences/shared_preferences.dart';

import 'test_runner.dart';
import 'screens/splash_screen.dart';
import 'screens/onboarding_screen.dart';
import 'screens/login_screen.dart';
import 'screens/home_screen.dart';
import 'screens/settings_screen.dart';
import 'screens/notifications_screen.dart';
import 'screens/search_screen.dart';

final scaffoldKey = GlobalKey<ScaffoldMessengerState>();
final navigatorKey = GlobalKey<NavigatorState>();

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  BhashiniSDK.init(
    // Android emulator: 10.0.2.2 → host machine
    // iOS simulator: use your Mac's LAN IP, e.g. http://192.168.1.x:8002
    baseUrl: 'http://10.0.2.2:8002',
    serviceId: 'ai4bharat/indictrans-v2-all-gpu--t4/btp',
    packageName: 'com.bhashini.demo',
    certificateFingerprint:
        '3D:D9:6A:C9:A2:3C:B6:C9:C4:45:49:42:BC:CC:F6:EF:64:7B:CA:8D:0A:29:05:10:38:B2:81:18:1D:64:0F:F9',
    bundleId: 'com.bhashini.demo',
    teamId: 'REPLACE_WITH_YOUR_TEAM_ID',
  );

  BhashiniSDK.instance.onStateChanged = () {
    if (BhashiniSDK.instance.status == BhashiniStatus.error) {
      scaffoldKey.currentState?.showSnackBar(
        SnackBar(
          content: Text('Translation error: ${BhashiniSDK.instance.lastError}'),
          backgroundColor: Colors.red,
        ),
      );
    }
  };

  runApp(const JanSevaApp());
}

class JanSevaApp extends StatelessWidget {
  const JanSevaApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Jan Seva Portal',
      scaffoldMessengerKey: scaffoldKey,
      navigatorKey: navigatorKey,
      navigatorObservers: [BhashiniSDK.navigatorObserver],
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(
          seedColor: const Color(0xFF003087),
          primary: const Color(0xFF003087),
          secondary: const Color(0xFF0070C0),
        ),
        useMaterial3: true,
        appBarTheme: const AppBarTheme(
          backgroundColor: Color(0xFF003087),
          foregroundColor: Colors.white,
          elevation: 2,
        ),
        elevatedButtonTheme: ElevatedButtonThemeData(
          style: ElevatedButton.styleFrom(
            backgroundColor: const Color(0xFF003087),
            foregroundColor: Colors.white,
            shape: RoundedRectangleBorder(
              borderRadius: BorderRadius.circular(8),
            ),
          ),
        ),
        cardTheme: const CardThemeData(elevation: 2),
        inputDecorationTheme: InputDecorationTheme(
          border: OutlineInputBorder(borderRadius: BorderRadius.circular(8)),
          filled: true,
          fillColor: Colors.grey.shade50,
        ),
      ),
      initialRoute: '/',
      routes: {
        '/': (_) => const SplashScreen(),
        '/onboarding': (_) => const OnboardingScreen(),
        '/login': (_) => const LoginScreen(),
        '/home': (_) => const HomeScreen(),
        '/settings': (_) => const SettingsScreen(),
        '/notifications': (_) => const NotificationsScreen(),
        '/search': (_) => const SearchScreen(),
      },
      builder: (context, child) {
        return ValueListenableBuilder<bool>(
          valueListenable: TestOverlayController.isRunning,
          builder: (_, running, __) {
            if (!running) return child!;
            return TestOverlayWidget(child: child!);
          },
        );
      },
    );
  }
}
0
likes
150
points
83
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Bhashini Flutter SDK — auto-translates any Flutter app into 22 Indian languages. Zero widget changes required. Works by walking the element tree and injecting translations directly into RenderParagraph at runtime.

Homepage
Repository (GitHub)
View/report issues

Topics

#translation #localization #indian-languages #bhashini #nlp

License

MIT (license)

Dependencies

flutter, flutter_svg, http, shared_preferences

More

Packages that depend on bhashini_sdk