PHPackages                             roborourke/wp-l10n-gen - 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. [Localization &amp; i18n](/categories/localization)
4. /
5. roborourke/wp-l10n-gen

ActiveWp-cli-package[Localization &amp; i18n](/categories/localization)

roborourke/wp-l10n-gen
======================

Modern translation file generation and conversion for WordPress, no more makepot.php!

75853[2 issues](https://github.com/roborourke/wp-l10n-gen/issues)[2 PRs](https://github.com/roborourke/wp-l10n-gen/pulls)PHP

Since May 21Pushed 6y ago1 watchersCompare

[ Source](https://github.com/roborourke/wp-l10n-gen)[ Packagist](https://packagist.org/packages/roborourke/wp-l10n-gen)[ RSS](/packages/roborourke-wp-l10n-gen/feed)WikiDiscussions master Synced 2w ago

READMEChangelogDependenciesVersions (2)Used By (0)

Modern Translation File Generator for WordPress
===============================================

[](#modern-translation-file-generator-for-wordpress)

Previously WordPress developers needed to use `makepot.php` to generate the .po files necessary for translation.

This WP CLI command allows you to generate different types of translation file from WP code and also convert between types easily.

Supported translation file types are:

- CSV
- CSV Dictionary (no plural support)
- JSON
- JSON Dictionary (no plural support)
- mo
- PHP Array
- po
- jed
- xliff
- YAML
- YAML Dictionary (no plural support)

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

[](#installation)

You can install the command as WP CLI package (Recommended):

```
wp package install roborourke/wp-l10n-gen
```

Using composer:

```
composer require roborourke/wp-l10n-gen
```

As a plugin:

```
git clone git@github.com:roborourke/wp-l10n-gen.git
cd wp-l10-gen
composer install
wp plugin activate wp-l10n-gen # (or activate via wp-admin)
```

Usage
-----

[](#usage)

More docs to come soon, to see options for now run:

```
wp l10n generate --help
wp l10n convert --help
wp l10n po2mo --help
```

Roadmap
-------

[](#roadmap)

- Improve generated headers
- Documentation for use with JS based projects?

About
-----

[](#about)

Being frustrated with the existing tools for generating translation files I wondered if there was a better way that more closely tied in with the modern ways we interact with WP via the command line now.

Looking to other PHP Projects and how they manage translations was a useful exercise although WP's translation function don't follow the usual standards. A bit of hacking later and I was able to get Oscar Otero's excellent [Gettext](https://github.com/oscarotero/Gettext) library working with WordPress code.

Contributing
------------

[](#contributing)

It's very early days yet but if anyone finds this useful and wants to contribute please go ahead. You'll find my outline for a roadmap above and plenty of `TODO` comments in the code.

### License

[](#license)

GPLv3+

###  Health Score

24

—

LowBetter than 31% of packages

Maintenance14

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity43

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/77dbeefb7745010589603f2ffc6ff310d8f700b58e08d52af190744c43342526?d=identicon)[roborourke](/maintainers/roborourke)

---

Top Contributors

[![roborourke](https://avatars.githubusercontent.com/u/23417?v=4)](https://github.com/roborourke "roborourke (13 commits)")

---

Tags

l10ntranslationwordpresswp-cliwp-cli-package

### Embed Badge

![Health badge](/badges/roborourke-wp-l10n-gen/health.svg)

```
[![Health](https://phpackages.com/badges/roborourke-wp-l10n-gen/health.svg)](https://phpackages.com/packages/roborourke-wp-l10n-gen)
```

###  Alternatives

[php-translation/translator

Translator services

25224.8k5](/packages/php-translation-translator)[smmoosavi/php-gettext

Wrapper for php-gettext by danilo segan. This library provides PHP functions to read MO files even when gettext is not compiled in or when appropriate locale is not present on the system.

1926.6k1](/packages/smmoosavi-php-gettext)[laradevs/spanish

labels translated to spanish

166.7k](/packages/laradevs-spanish)

PHPackages © 2026

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