pvtro 0.0.2 copy "pvtro: ^0.0.2" to clipboard
pvtro: ^0.0.2 copied to clipboard

a Flutter package system that solves the complex problem of coordinating translations across multiple slang-enabled packages in a monorepo environment.

example/example.md

1. Add Dependencies #

# pubspec.yaml
dependencies:
  pvtro: ^0.0.1
  # Your existing slang packages
  user_package: ^1.0.0
  admin_package: ^1.0.0

dev_dependencies:
  pvtro_builder: ^0.0.1
  build_runner: ^2.4.7

2. Create Trigger File #

// lib/pvtro.dart - This triggers automatic code generation
library;

// pvtro will scan all packages and generate coordination code

3. Generate Coordination Code #

dart run build_runner build

4. Use in Your App #

import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:pvtro/helper.dart';

// Generated imports (no conflicts!)
import 'pvtro.unified_lang.dart';
import 'package:user_package/i18n/strings.g.dart' as user_strings;
import 'package:admin_package/i18n/strings.g.dart' as admin_strings;

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // One-line setup for all packages
    return createPvtroApp<UnifiedLanguage>(
      localeCubit: createUnifiedLocaleCubit(UnifiedLanguage.en),
      additionalProviders: [
        createSlangProvider(user_strings.TranslationProvider.new),
        createSlangProvider(admin_strings.TranslationProvider.new),
      ],
      child: BlocBuilder<LocaleCubit<UnifiedLanguage>, UnifiedLanguage>(
        builder: (context, currentLocale) {
          return MaterialApp(
            title: 'Multi-Package App',
            home: HomePage(),
          );
        },
      ),
    );
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Language: ${context.read<LocaleCubit<UnifiedLanguage>>().state.name}'),
        actions: [
          // Change language across ALL packages with one call
          IconButton(
            icon: Icon(Icons.language),
            onPressed: () {
              context.read<LocaleCubit<UnifiedLanguage>>()
                  .changeLocale(UnifiedLanguage.es); // Updates everything!
            },
          ),
        ],
      ),
      body: Column(
        children: [
          // Use translations from different packages
          Text(context.userPackage.welcome.title),     // user_package
          Text(context.adminPackage.dashboard.title),  // admin_package
        ],
      ),
    );
  }
}
0
likes
0
points
254
downloads

Publisher

verified publisherpathverse.ca

Weekly Downloads

a Flutter package system that solves the complex problem of coordinating translations across multiple slang-enabled packages in a monorepo environment.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, flutter_bloc

More

Packages that depend on pvtro