flutter_script_renderer library

A Flutter package for automatic detection and rendering of multilingual text with script-specific styling.

The Flutter Script Renderer package provides a robust solution for displaying text containing multiple writing systems (scripts) within a single string. It automatically detects different script segments and applies appropriate styling to each, ensuring optimal typography for multilingual content.

Key Components

  • ScriptType: Enum defining supported script types (Khmer, Thai, Lao, Myanmar, Vietnamese, Latin, neutral)
  • LocalizedRichText: The primary widget for rendering multi-script text
  • FontRegistry: Central registry of font families for different scripts
  • Extension methods:
    • String.toLocalizedText(): Convert any string to a properly styled widget
    • BuildContext.localizedText(): Create theme-aware multilingual text

Features

  • Automatic script detection within text strings
  • Script-specific font and style application for Southeast Asian scripts
  • Comprehensive styling customization per script type
  • Performance optimized for mixed script rendering
  • Extension methods for simplified usage
  • Support for Khmer, Thai, Lao, Myanmar, Vietnamese, and Latin scripts

Basic Usage

LocalizedRichText(
  text: 'English text និងអក្សរខ្មែរ และภาษาไทย ສະບາຍດີ မင်္ဂလာပါ Tiếng Việt',
  fontSize: 16,
  khmerColor: Colors.red,
  thaiColor: Colors.blue,
  latinFontFamily: FontRegistry.latinPoppins,
  thaiFontFamily: FontRegistry.thaiSarabun,
)

Extension Method Usage

'English text និងអក្សរខ្មែរ และข้อความไทย'.toLocalizedText(
  fontSize: 16,
  color: Colors.blue,
  khmerFontFamily: FontRegistry.khmerBattambang,
  thaiFontFamily: FontRegistry.thaiSarabun,
)

This package is particularly valuable for applications serving multilingual communities or regions where text commonly combines different scripts, such as Cambodia, Thailand, Laos, Myanmar, Vietnam, and other Southeast Asian countries where multiple scripts may be used together.

Classes

FontRegistry
A centralized registry for font families used in multilingual text rendering.
LocalizedRichText
A highly customizable text widget that automatically detects and applies different text styles to different scripts within a single string.
LocalizedTextStyle
Utility class for generating TextStyle objects based on script type.
ScriptRegistry
Registry for script handlers that centralizes text style generation for different scripts.
ScriptStyleProperties
Script-specific text style properties that include font family information.
TextStyleProperties
A comprehensive model class that encapsulates all text styling properties supported by Flutter.

Enums

ScriptType
Enum representing different script types for text rendering and style application.

Extensions

LocalizedTextContextExtension on BuildContext
Extensions on BuildContext for theme-aware localized text.
LocalizedTextExtension on String
Extensions on String for easier use of the LocalizedRichText widget.