PHPackages                             afragen/translations-updater - 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. afragen/translations-updater

ActiveLibrary[Localization &amp; i18n](/categories/localization)

afragen/translations-updater
============================

This framework provides automatic decoupled languate pack updates from a public repository for your WordPress plugin or theme.

2.1.0(5mo ago)212.5k—7.8%5MITPHPPHP &gt;=7.4

Since Nov 12Pushed 5mo ago2 watchersCompare

[ Source](https://github.com/afragen/translations-updater)[ Packagist](https://packagist.org/packages/afragen/translations-updater)[ RSS](/packages/afragen-translations-updater/feed)WikiDiscussions develop-1.x Synced 2w ago

READMEChangelogDependencies (4)Versions (13)Used By (0)

Translations Updater
====================

[](#translations-updater)

- Contributors: [Andy Fragen](https://github.com/afragen)
- Tags: plugins, themes, edd software licensing, language pack, updater
- Requires at least: 4.6
- Requires PHP: 5.4
- Donate link:
- License: MIT
- License URI:

Description
-----------

[](#description)

This framework allows for decoupled language pack updates for your WordPress plugins or themes that are hosted on public repositories in GitHub, Bitbucket, GitLab, or Gitea.

The URI should point to a repository that contains the translations files. Refer to [Git Updater Translations](https://github.com/afragen/git-updater-translations) as an example. It is created using the [Language Pack Maker](https://github.com/afragen/language-pack-maker). The repo **must** be a public repo.

Usage
-----

[](#usage)

Install via Composer: `composer require afragen/translations-updater:^1`

**Prior to release use the following command**`composer require afragen/translations-updater:dev-` currently `dev-master`

Add `require_once __DIR__ . '/vendor/autoload.php';` to the main plugin file or theme's functions.php file.

A configuration array with the following format is needed. All array elements are required.

```
add_action( 'admin_init', function() {
	$config = [
		'git'       => '(github|bitbucket|gitlab|gitea)',
		'type'      => '(plugin|theme)',
		'slug'      => 'my-repo-slug', // Should be lowercase.
		'version'   => 'my-repo-version', // Current version of plugin|theme.
		'languages' => 'https://my-path-to/language-packs',
		'branch'    => 'master', // Default (optional).
	];

	( new \Fragen\Translations_Updater\Init() )->run( $config );
} );
```

If you wish to delete the data stored in the options table associated with this framework you will need to issue the following command.

```
( new \Fragen\Translations_Updater\Init() )->delete_cached_data();
```

EDD Software Licensing Usage
----------------------------

[](#edd-software-licensing-usage)

If using this framework with EDD Software Licensing you will need to update to the latest versions of the updaters in the EDD Software Licensing sample code to ensure the appropriate action hooks are present.

You will need to add two key/value pairs to your setup array similar to the following,

```
'git'       => 'github',
'languages' => 'https://github.com//my-language-pack',
```

You will need to include the following command to your bootstrap file to activate the updater.

```
( new \Fragen\Translations_Updater\Init( __NAMESPACE__ ) )->edd_run();
```

### Plugins

[](#plugins)

You must add two additional key/value pairs to the setup array in your `EDD_SL_Plugin_Updater` setup. The array will be similar to the following from the `edd-sample-plugin.php` file.

```
	$edd_updater = new EDD_SL_Plugin_Updater( EDD_SAMPLE_STORE_URL, __FILE__, array(
			'version'   => '1.0',                // current version number
			'license'   => $license_key,         // license key (used get_option above to retrieve from DB)
			'item_name' => EDD_SAMPLE_ITEM_NAME, // name of this plugin
			'author'    => 'Pippin Williamson',  // author of this plugin
			'beta'      => false,
			'git'       => 'bitbucket',
			'languages' => 'https://bitbucket.org/afragen/test-language-pack',
		)
```

### Themes

[](#themes)

You must add two additional key/value pairs to the setup array in your `EDD_Theme_Updater_Admin` setup. The array will be similar to the following from the `edd-sample-theme/updater/theme-updater.php` file.

```
$updater = new EDD_Theme_Updater_Admin(

	// Config settings
	$config = array(
		'remote_api_url' => 'https://easydigitaldownloads.com', // Site where EDD is hosted
		'item_name'      => 'Theme Name', // Name of theme
		'theme_slug'     => 'theme-slug', // Theme slug
		'version'        => '1.0.0', // The current version of this theme
		'author'         => 'Easy Digital Downloads', // The author of this theme
		'download_id'    => '', // Optional, used for generating a license renewal link
		'renew_url'      => '', // Optional, allows for a custom license renewal link
		'beta'           => false, // Optional, set to true to opt into beta versions
		'git'            => 'github',
		'languages'      => 'https://github.com//my-language-pack',
	),
	...
```

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance73

Regular maintenance activity

Popularity31

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity47

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 ~70 days

Recently: every ~121 days

Total

8

Last Release

153d ago

Major Versions

1.2.0 → 2.0.02024-11-19

1.2.1 → 2.0.12025-04-16

PHP version history (2 changes)1.0.0PHP &gt;=5.4

2.1.0PHP &gt;=7.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/82779a185fccde41e1dd3b914bde84cd6be76c8dcb8f6b983f461c8f5687a87e?d=identicon)[afragen](/maintainers/afragen)

---

Top Contributors

[![afragen](https://avatars.githubusercontent.com/u/1296790?v=4)](https://github.com/afragen "afragen (114 commits)")

---

Tags

composerlanguage-packsupdaterwordpress-php-librarywordpresstranslationslanguage packupdater

### Embed Badge

![Health badge](/badges/afragen-translations-updater/health.svg)

```
[![Health](https://phpackages.com/badges/afragen-translations-updater/health.svg)](https://phpackages.com/packages/afragen-translations-updater)
```

###  Alternatives

[afragen/github-updater

A plugin to automatically update GitHub, Bitbucket, GitLab, or Gitea hosted plugins, themes, and language packs.

3.3k20.4k](/packages/afragen-github-updater)[afragen/git-updater

A plugin to automatically update GitHub, Bitbucket, GitLab, or Gitea hosted plugins, themes, and language packs.

3.3k1.8k](/packages/afragen-git-updater)[wearerequired/traduttore

WordPress.org-style translation API for your WordPress projects.

8011.5k](/packages/wearerequired-traduttore)[imaginaerum/magento2-language-fr-fr

Magento2 French Language Pack (fr\_FR)

41759.7k2](/packages/imaginaerum-magento2-language-fr-fr)[wearerequired/traduttore-registry

Allows loading translation files from a custom GlotPress site running Traduttore

1575.8k10](/packages/wearerequired-traduttore-registry)[wcm/wcm-lang-switch

Adds a button to the admin toolbar. This buttons allows users to seamlessly switch between available languages..

212.0k](/packages/wcm-wcm-lang-switch)

PHPackages © 2026

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