Skip to main content

Automatically manage metadata in ARB (Application Resource Bundle) localization files for Flutter, Angular, Chrome extensions, and more

Project description

ARB Metadata Tools

PyPI version PyPI downloads Python versions GitHub stars License

A collection of Python scripts to automatically manage metadata in ARB (Application Resource Bundle) localization files.

Works with: Flutter, Angular, Chrome Extensions, and any application using ARB format for internationalization (i18n/l10n).

Problem

When using ARB files for localization, the Google ARB VS Code extension shows warnings for keys without metadata. Manually adding metadata to hundreds of keys is tedious and time-consuming.

This affects developers using:

  • Flutter apps
  • Angular applications
  • Chrome extensions
  • Any project using ARB format for i18n/l10n

Solution

These tools automatically add and manage metadata for your ARB files:

  1. add_arb_metadata.py - Adds empty metadata blocks to all keys
  2. add_descriptions_intelligently.py - Intelligently generates contextual descriptions based on key names and values

Features

  • ✅ Automatically adds metadata to all ARB keys
  • ✅ Intelligently generates contextual descriptions
  • ✅ Preserves existing metadata with placeholders
  • ✅ Supports multiple ARB files
  • ✅ Pattern-based description generation
  • ✅ Handles bilingual keys (e.g., *Bn for Bengali)

Installation

Option 1: Install from PyPI (Recommended)

pip install arb-metadata-tools

Option 2: Install from Source

# Clone the repository
git clone https://github.com/JehadurRE/arb-metadata-tools.git
cd arb-metadata-tools

# Install in development mode
pip install -e .

# Or install directly
pip install .

Requirements: Python 3.6+ (no external dependencies)

Usage

After installation, you can use the command-line tools:

Basic Metadata Addition

# Process default files (lib/l10n/app_en.arb, lib/l10n/app_bn.arb)
arb-metadata

# Process specific files
arb-metadata path/to/file1.arb path/to/file2.arb

# Show help
arb-metadata --help

# Show version
arb-metadata --version

This adds empty metadata blocks to all keys without metadata.

Intelligent Description Generation

# Process default files
arb-descriptions

# Process specific files
arb-descriptions path/to/file1.arb path/to/file2.arb

# Show each description being added (verbose mode)
arb-descriptions --verbose path/to/file.arb

# Show help
arb-descriptions --help

# Show version
arb-descriptions --version

This generates contextual descriptions based on:

  • Key naming patterns (Label, Hint, Desc, etc.)
  • Action verbs (send, create, confirm, etc.)
  • Content analysis (questions, exclamations, labels)
  • Context clues (Dashboard, Management, History, etc.)

Examples

Before

{
  "loginButton": "Login",
  "enterPassword": "Enter your password"
}

After

{
  "loginButton": "Login",
  "@loginButton": {
    "description": "Button text to login to the application"
  },
  "enterPassword": "Enter your password",
  "@enterPassword": {
    "description": "Placeholder text to enter password field"
  }
}

Configuration

For Command-Line Usage

The tools look for ARB files in the standard Flutter location: lib/l10n/

For Custom Paths

Edit the file paths in the scripts to match your project structure:

arb_files = [
    'lib/l10n/app_en.arb',
    'lib/l10n/app_bn.arb',
    # Add more ARB files as needed
]

Pattern Recognition

The intelligent description generator recognizes:

  • Labels: *Label → "Label for {field} input field"
  • Hints: *Hint → "Placeholder or hint text for {field}"
  • Actions: send*, create*, confirm* → Action descriptions
  • Validation: please*, *Must* → Validation messages
  • Status: *Successful, *Failed → Status messages
  • Screens: *Dashboard, *Management → Screen titles

Requirements

  • Python 3.6+
  • No external dependencies

📋 Changelog

See CHANGELOG.md for a complete list of changes and release notes for each version.

Latest Release (v1.1.0):

  • Added proper --help and --version command-line arguments
  • Enhanced CLI with argparse for better user experience
  • Added --verbose flag for detailed output
  • Improved error messages and documentation

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see LICENSE file for details

👨‍💻 Author

Md. Jehadur Rahman Emran

Software Engineer • Researcher • Full-Stack Developer

GitHub LinkedIn Twitter Portfolio Email

Acknowledgments

Created to solve ARB metadata management for Flutter localization projects.

Support

If you find this tool helpful, please ⭐ star the repository!

Related

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arb_metadata_tools-1.1.0.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arb_metadata_tools-1.1.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file arb_metadata_tools-1.1.0.tar.gz.

File metadata

  • Download URL: arb_metadata_tools-1.1.0.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for arb_metadata_tools-1.1.0.tar.gz
Algorithm Hash digest
SHA256 3d8c6282c03dacfffd958557029464ca4dcf91395c9641bda67cfc1a7844795a
MD5 ddafbc079f602dbaf4eb87fbab7134d5
BLAKE2b-256 520527c550390aa7ff96991690775271d38ee9790dd69412913c5a830b1639c5

See more details on using hashes here.

File details

Details for the file arb_metadata_tools-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for arb_metadata_tools-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7688dabd7ae501614030ee3724bea36cac93114036bb6df92d61d84eca755326
MD5 a606031e51bf222152324ee931f80d9a
BLAKE2b-256 957508e6c0f3a3e1a4384bbd16642b80ac0775837e02d1a900612a3910a0884c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page