Search by

byjg / wordnumber

byjg

Convert numeric values into their word representations in multiple languages.

Package info

github.com/byjg/php-wordnumber

pkg:composer/byjg/wordnumber

Statistics

Installs: 19

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

6.0.0 2025-11-22 04:48 UTC

This package is auto-updated.

Last update: 2026-10-25 23:49:59 UTC


README

sidebar_key wordnumber
sidebar_category text-content
tags
php text-manipulation

WordNumber

Write numbers and money amounts in words, with each language's grammar: English, Portuguese and Italian.

Sponsor Build Status Opensource ByJG Install MCP Server GitHub source GitHub license GitHub release

Why

Cheques, contracts, invoices and receipts often need the amount in words. Each language has its own rules ("twenty-one", "vinte e um", "ventuno"; "mil e um", not "um mil e um"), and the currency changes between singular and plural.

(new EnglishWordNumber())->write(12.34);      // twelve dollars and thirty-four cents
(new PortugueseWordNumber())->write(12.34);   // doze reais e trinta e quatro centavos

A new language is a new class.

Features

  • Convert integers and floats to word numbers
  • Support for multiple languages:
  • Currency formatting with singular/plural forms
  • Grammar-aware output for each language (e.g. "twenty-one", "mil e um", "ventuno")
  • Extensible architecture for adding new languages

Installation

composer require byjg/wordnumber

Quick Start

English

use ByJG\WordNumber\EnglishWordNumber;

$wordNumber = new EnglishWordNumber();
echo $wordNumber->write(12.34);
// Output: twelve dollars and thirty-four cents

Portuguese

use ByJG\WordNumber\PortugueseWordNumber;

$wordNumber = new PortugueseWordNumber();
echo $wordNumber->write(12.34);
// Output: doze reais e trinta e quatro centavos

Italian

use ByJG\WordNumber\ItalianWordNumber;

$wordNumber = new ItalianWordNumber();
echo $wordNumber->write(12.34);
// Output: dodici euro e trentaquattro centesimi

Documentation

Running Tests

vendor/bin/phpunit

Open source ByJG