monolith_localization_runtime 1.0.1
monolith_localization_runtime: ^1.0.1 copied to clipboard
A runtime library that supports the code generated by monolith_localization at runtime. It dynamically loads localization resources managed on a module basis in Flutter applications and provides type- [...]
A runtime library that supports code generated by monolith_localization
at runtime.
It dynamically loads localization resources managed per module in Flutter applications and provides type-safe access.
Features #
- Dynamic Locale Switching: Language change support during application runtime
- Memory Optimization: Load only necessary language resources
- Flutter Integration: Transparent integration with standard internationalization features
- Type-safe Access: Runtime type checking through generated Mixin classes
- Customizable Text Optimization: Support for project-specific text formatting processes
Getting started #
This package works in conjunction with code generated by monolith_localization
.
Usually, developers do not directly operate this package.
# pubspec.yaml
dependencies:
monolith_localization_runtime: ^1.0.0
Usage #
Integration with Generated Code Example:
// app_user_package
import 'package:path/to/gen/strings.dart';
final class _Strings with L10nStringsMixin {
// Automatic implementation by runtime
}
@internal
final strings = _Strings();
class UserValidator {
String? validateEmail(String? email) {
if (email == null || email.isEmpty) {
return strings.validation_email_required;
}
if (!_isValidEmail(email)) {
return strings.validation_email_invalid;
}
return null;
}
}
Application Integration:
// app/lib/main.dart
import 'package:flutter/material.dart';
import 'package:monolith_localization_runtime/monolith_localization_runtime.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: L10nHelper.localizationsDelegates,
supportedLocales: L10nHelper.supportedLocales,
home: HomePage(),
);
}
}
Customizing Text Formatting Process:
import 'package:monolith_localization_runtime/monolith_localization_runtime.dart';
Future<void> main() async {
// Localized text optimization settings
LocalizeStringDelegate.format = _formatStringResource;
}
/// Project-specific text formatting process
String _formatStringResource({
required String id,
required List<String> arguments,
required String originalFormattedText,
}) {
// Example of newline character conversion
return originalFormattedText.replaceAll(r'\n', '\n');
}
Additional information #
This library ensures that module-level localization code generated by monolith_localization
operates efficiently in actual Flutter applications.