PHPackages                             omar-haris/arabic-name-transliterator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. omar-haris/arabic-name-transliterator

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

omar-haris/arabic-name-transliterator
=====================================

A PHP library to transliterate Arabic names to English names can handle Arabic names with diacritics and special characters.

v1.0.2(11mo ago)1303MITPHPPHP ^8.3CI passing

Since Apr 28Pushed 11mo ago1 watchersCompare

[ Source](https://github.com/omar-haris/arabic-name-transliterator)[ Packagist](https://packagist.org/packages/omar-haris/arabic-name-transliterator)[ Docs](https://github.com/omar-haris/arabic-name-transliterator)[ RSS](/packages/omar-haris-arabic-name-transliterator/feed)WikiDiscussions main Synced today

READMEChangelog (3)Dependencies (2)Versions (5)Used By (0)

Arabic Name Transliterator
==========================

[](#arabic-name-transliterator)

A powerful PHP library for transliterating Arabic names to English with high accuracy. Perfect for ID systems, passports, and any application needing reliable Arabic-to-English name conversion.

[![Latest Version on Packagist](https://camo.githubusercontent.com/a83294c1a9f72c0808ac4f9345c9a659495707b983f42d5fb998127850a60316/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6f6d61722d68617269732f6172616269632d6e616d652d7472616e736c6974657261746f722e737667)](https://packagist.org/packages/omar-haris/arabic-name-transliterator)[![Tests](https://github.com/omar-haris/arabic-name-transliterator/actions/workflows/tests.yml/badge.svg)](https://github.com/omar-haris/arabic-name-transliterator/actions/workflows/tests.yml)[![PHP Version](https://camo.githubusercontent.com/a702764f370ca06b30d552440bce2b8d9f5bac5b1ea69df49d039c4ee26b6e1a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6f6d61722d68617269732f6172616269632d6e616d652d7472616e736c6974657261746f722e737667)](https://packagist.org/packages/omar-haris/arabic-name-transliterator)[![License: MIT](https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667)](https://opensource.org/licenses/MIT)[![Total Downloads](https://camo.githubusercontent.com/897a82a788fc2fc654fa090c07c9c36fb96e118df57eb259f4f9555803cf0c64/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6f6d61722d68617269732f6172616269632d6e616d652d7472616e736c6974657261746f722e737667)](https://packagist.org/packages/omar-haris/arabic-name-transliterator)

Why This Library?
-----------------

[](#why-this-library)

Transliterating Arabic names to English is challenging due to multiple correct spellings and regional variations. This library solves that problem with:

- **Accurate transliteration** that follows standard conventions
- **Support for names with diacritics** (harakat)
- **Regional variations** (currently Iraqi mapping, with extensibility for other regions)
- **Smart word-level and character-level mapping**
- **Full customization** options to meet your specific needs

Key Features
------------

[](#key-features)

- **Dictionary-based approach** for common names and words
- **Fallback letter-by-letter mapping** for names not in the dictionary
- **Customizable regional mappings** for different Arabic dialects and standards
- **Clean handling of diacritics** (harakat) and special characters
- **Well-documented code** with comprehensive test coverage
- **Zero external dependencies** besides PHP's mbstring

Installation
------------

[](#installation)

Simply run:

```
composer require omar-haris/arabic-name-transliterator
```

Basic Usage
-----------

[](#basic-usage)

```
use ArabicNameTransliterator\Transliterator;
use ArabicNameTransliterator\Mapping\IraqMapping;

// Create a transliterator with Iraqi name mapping
$transliterator = new Transliterator(new IraqMapping());

// Transliterate names
echo $transliterator->transliterate('محمد');                // "Muhammad"
echo $transliterator->transliterate('عبد الرحمن');          // "Abd Al-Rahman"
echo $transliterator->transliterate('فاطمة الزهراء');       // "Fatimah Al-Zahraa"

// Works with diacritics
echo $transliterator->transliterate('مُحَمَّد');            // "Muhammad"

// Disable capitalization
echo $transliterator->transliterate('محمد علي', false);     // "muhammad ali"
```

Advanced Usage
--------------

[](#advanced-usage)

### Creating Custom Mappings

[](#creating-custom-mappings)

You can create your own mappings by extending `BaseMapping`:

```
use ArabicNameTransliterator\Mapping\BaseMapping;

class EgyptianMapping extends BaseMapping
{
    public function getFullWordMap(): array
    {
        return [
            'محمد' => 'Mohamed',  // Egyptian spelling (vs. Iraqi "Muhammad")
            'عبد الرحمن' => 'Abdelrahman', // Different format
            // Add more mappings...
        ];
    }

    public function getLetterMap(): array
    {
        return [
            'ج' => 'g',  // In Egyptian dialect, ج is pronounced as "g" not "j"
            // Define the rest of your letter map...
        ];
    }
}

$egyptianTransliterator = new Transliterator(new EgyptianMapping());
```

### Extending Existing Mappings

[](#extending-existing-mappings)

You can also extend an existing mapping:

```
use ArabicNameTransliterator\Mapping\IraqMapping;

class CustomIraqMapping extends IraqMapping
{
    public function getFullWordMap(): array
    {
        $originalMap = parent::getFullWordMap();

        // Add or override specific entries
        $customEntries = [
            'محمد' => 'Mohammed', // Override the default 'Muhammad'
            'عبد العزيز' => 'Abdul Aziz', // New entry
        ];

        return array_merge($originalMap, $customEntries);
    }
}
```

How It Works
------------

[](#how-it-works)

The transliteration process follows these steps:

1. The input Arabic text is split into words
2. Each word is checked against the full-word dictionary
    - If found, the predefined transliteration is used
    - If not found, the word is transliterated letter by letter
3. The transliterated words are joined with spaces
4. By default, each word is capitalized (can be disabled)

Available Mappings
------------------

[](#available-mappings)

Currently, the library includes:

- `IraqMapping`: Suitable for Iraqi Arabic names, following common standards for official documents

More regional mappings will be added in future releases. Contributions are welcome!

Requirements
------------

[](#requirements)

- PHP 8.3+
- mbstring extension

License
-------

[](#license)

MIT License. See the [LICENSE](LICENSE.md) file.

Credits
-------

[](#credits)

- [Omar Haris](https://github.com/omar-haris)

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance51

Moderate activity, may be stable

Popularity16

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~46 days

Total

3

Last Release

341d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/16119345?v=4)[Omar Haris](/maintainers/omar-haris)[@omar-haris](https://github.com/omar-haris)

---

Top Contributors

[![omar-haris](https://avatars.githubusercontent.com/u/16119345?v=4)](https://github.com/omar-haris "omar-haris (10 commits)")

---

Tags

arabicenglishtranslatortransliteratortransliteratortransliteratetransliterationarabicarabic-transliteratorarabic-name-transliteratoriraqi-transliteratoriraqi-name-transliteratorarabian-transliteratorarabian-name-transliteratorarabic-transliterateiraqi-transliteratearabian-transliterateenglish-nameenglish-namesenglish-name-transliteratorenglish-names-transliteratorarabic-to-englishiraqi-to-englisharabian-to-englishenglish-to-arabicenglish-to-iraqienglish-to-arabian

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/omar-haris-arabic-name-transliterator/health.svg)

```
[![Health](https://phpackages.com/badges/omar-haris-arabic-name-transliterator/health.svg)](https://phpackages.com/packages/omar-haris-arabic-name-transliterator)
```

###  Alternatives

[jbroadway/urlify

A fast PHP slug generator and transliteration library that converts non-ascii characters for use in URLs.

6758.1M80](/packages/jbroadway-urlify)[ausi/slug-generator

Slug Generator

8022.4M27](/packages/ausi-slug-generator)[khaled.alshamaa/ar-php

Set of functionalities enable Arabic website developers to serve professional search, present and process Arabic content in PHP

3372.8M37](/packages/khaledalshamaa-ar-php)[voku/urlify

PHP port of URLify.js from the Django project. Transliterates non-ascii characters for use in URLs.

274.2M8](/packages/voku-urlify)[fresh/transliteration

PHP library for transliteration.

55143.7k1](/packages/fresh-transliteration)[fisharebest/ext-calendar

Implementation of the Arabic (Hijri), French, Gregorian, Jewish, Julian and Persian (Jalali) calendars. Also provides a replacement for the PHP ext/calendar extension.

36513.6k11](/packages/fisharebest-ext-calendar)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
