Unicode-aware string encoding, conversion, and analysis for PHP with a fluent API. Features script detection, directionality analysis, character analysis, and intelligent transliteration.
Find a file
Brian Faust 05cf937c9e
first commit
Signed-off-by: Brian Faust <brian@cline.sh>
2025-12-26 16:38:11 +02:00
.github first commit 2025-12-26 16:38:11 +02:00
docker/php first commit 2025-12-26 16:38:11 +02:00
src first commit 2025-12-26 16:38:11 +02:00
tests first commit 2025-12-26 16:38:11 +02:00
.editorconfig first commit 2025-12-26 16:38:11 +02:00
.gitattributes first commit 2025-12-26 16:38:11 +02:00
.gitignore first commit 2025-12-26 16:38:11 +02:00
CHANGELOG.md first commit 2025-12-26 16:38:11 +02:00
CODE_OF_CONDUCT.md first commit 2025-12-26 16:38:11 +02:00
composer.json first commit 2025-12-26 16:38:11 +02:00
CONTRIBUTING.md first commit 2025-12-26 16:38:11 +02:00
docker-compose.yml first commit 2025-12-26 16:38:11 +02:00
ecs.php first commit 2025-12-26 16:38:11 +02:00
IDEAS.md first commit 2025-12-26 16:38:11 +02:00
LICENSE.md first commit 2025-12-26 16:38:11 +02:00
Makefile first commit 2025-12-26 16:38:11 +02:00
phpstan.neon.dist first commit 2025-12-26 16:38:11 +02:00
phpunit.xml.dist first commit 2025-12-26 16:38:11 +02:00
README.md first commit 2025-12-26 16:38:11 +02:00
rector.php first commit 2025-12-26 16:38:11 +02:00
SECURITY.md first commit 2025-12-26 16:38:11 +02:00
testbench.yaml first commit 2025-12-26 16:38:11 +02:00

GitHub Workflow Status Latest Version on Packagist Software License Total Downloads


Unicode-aware string encoding, conversion, and analysis for PHP with a fluent API. Features script detection, directionality analysis, character analysis, and intelligent transliteration.

Requirements

Requires PHP 8.2+ with ext-intl, ext-mbstring, and ext-iconv

Installation

composer require cline/babel

Documentation

Quick Examples

use Cline\Babel\Babel;

// Convert to ASCII with transliteration
Babel::from('Żółć')->toAscii();           // "Zolc"
Babel::from('北京')->toAscii();            // "bei jing"
Babel::from('Привет')->toAscii();          // "Privet"

// Detect scripts
Babel::from('Hello 世界')->containsChinese();   // true
Babel::from('Привет мир')->containsCyrillic();  // true
Babel::from('مرحبا')->isRtl();                  // true

// Clean strings
Babel::from("Hello\x00World")->removeNonPrintable()->value();  // "HelloWorld"
Babel::from('Hello 👋')->removeEmoji()->value();                // "Hello "

// Create slugs
Babel::from('Héllo Wörld!')->toSlug();  // "hello-world"

Change log

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING and CODE_OF_CONDUCT for details.

Security

If you discover any security related issues, please use the GitHub security reporting form rather than the issue queue.

Credits

License

The MIT License. Please see License File for more information.