PHPackages                             concretecms/community\_translation - 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. concretecms/community\_translation

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

concretecms/community\_translation
==================================

Concrete CMS translation package

1.8.1(10mo ago)132306[3 issues](https://github.com/concretecms/addon_community_translation/issues)[5 PRs](https://github.com/concretecms/addon_community_translation/pulls)MITPHPPHP ^8.1CI failing

Since Mar 10Pushed 10mo ago8 watchersCompare

[ Source](https://github.com/concretecms/addon_community_translation)[ Packagist](https://packagist.org/packages/concretecms/community_translation)[ Docs](https://github.com/concretecms/addon_community_translation)[ RSS](/packages/concretecms-community-translation/feed)WikiDiscussions main Synced 4w ago

READMEChangelogDependencies (1)Versions (108)Used By (0)

Community Translation addon for Concrete CMS
--------------------------------------------

[](#community-translation-addon-for-concrete-cms)

This package is the current engine of [translate.concretecms.org](https://translate.concretecms.org).

Even if it requires Concrete to be executed, it was designed to be used by any other project that needs a collaborative, feature-rich and user-friendly translation system.

### Scheduled Jobs

[](#scheduled-jobs)

In order to fetch remote data, as well as to send notifications, you should schedule some CLI commands provided by this package.

The easiest way is to use cron, with a configuration like this:

```
# People may apply to become members of translation teams
# These requests should be accepted/denied by team coordinators
# BTW team coordinators may be unresponsive, so appliers don't have any feedback
# The following command accepts automatically the requests if they aren't answered
# for 15 days (the "15" argument)
0 0 * * * ./concrete/bin/concrete ct:accept-requests 15 -vvv --no-interaction

# CommunityTranslation can automatically parse git repositories to:
# - update strings of "development" versions
# - find new version-like git tags, thus creating new versions of the translatable strings
# The following command does that
0 0 * * * ./concrete/bin/concrete ct:git-repository -vvv --no-interaction

# CommunityTranslation can send email notifications to users.
# Those notifications aren't sent immediately.
# Why?
# Because we may have temporary delivery (SMTP) issues.
# Furthermore, for example translators may add many comments to translations, and we don't
# want that the other translators receive tons of emails.
# So, many notifications can be "merged" together:
# For example, instead of sending 10 emails if a translator adds 10 comments,
# we send just 1 email with "user X posted 10 comments" messages.
# He have different kinds of notifications, each with different "priorities".
# So, we send hi-priority notifications more often:
* * * * * ./concrete/bin/concrete ct:send-notifications -vvv --no-interaction --priority=10
# Next we send lower-priority notification less often:
15 * * * * ./concrete/bin/concrete ct:send-notifications -vvv --no-interaction --priority=5
# Finally, we send every other notification even less often:
45 */6 * * * ./concrete/bin/concrete ct:send-notifications -vvv --no-interaction

# CommunityTranslation can limit the rates of the requests per IP address.
# To do that, we need to log the IP addresses used for requests.
# After some time, we don't need the older IP addresses, so we may safely remove them.
# This is done with the following command ("2" means "delete the IPs that are older than 2 days)
0 0 * * * ./concrete/bin/concrete ct:remove-logged-ips 2 -vvv --no-interaction

# CommunityTranslation can fetch translations from remote "packages"
# (for example, packages submitted to the Concrete marketplace).
# An external system (for example, the Concrete PRB) should tell CommunityTranslation when a new package
# (or a new package version) is available.
# When those packages are submitted to the remote system, they are not immediately available: for example
# they may need maintainer approval.
# With the following command, CommunityTranslation fetches the approved packages (or package versions)
# and extract the translatable strings.
35 * * * * ./concrete/bin/concrete ct:remote-packages -vvv --no-interaction
# It may happens that the external system tell CommunityTranslation about packages,
# but it may not tell CommunityTranslation about package approvals (for any reason).
# So, we also try to process the unapproved packages
5 12 * * * ./concrete/bin/concrete ct:remote-packages --try-unapproved=90 -vvv --no-interaction

# Translators may tell CommunityTranslation they want to be notified when
# the specific packages are updated (new translatable strings, new versions, ...)
# The following command generates those notifications.
55 */12 * * * ./concrete/bin/concrete ct:notify-packages -vvv --no-interaction
```

###  Health Score

49

—

FairBetter than 94% of packages

Maintenance53

Moderate activity, may be stable

Popularity21

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity88

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 93.6% 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 ~30 days

Recently: every ~57 days

Total

101

Last Release

309d ago

Major Versions

0.6.14 → 2021.x-dev2021-06-17

PHP version history (2 changes)1.0.0PHP ^7.4 || ^8

1.6.7PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/842d2fe13512e82f0f9b6f0d79dba8eba1595a3cefd31dd51723960436133307?d=identicon)[KorvinSzanto](/maintainers/KorvinSzanto)

![](https://www.gravatar.com/avatar/d8d8902700dc0979d0cb96ff69a17808f74823c0c2b4ef75d91aba2f66d6f5fb?d=identicon)[aembler](/maintainers/aembler)

---

Top Contributors

[![mlocati](https://avatars.githubusercontent.com/u/928116?v=4)](https://github.com/mlocati "mlocati (450 commits)")[![KorvinSzanto](https://avatars.githubusercontent.com/u/1007419?v=4)](https://github.com/KorvinSzanto "KorvinSzanto (13 commits)")[![aembler](https://avatars.githubusercontent.com/u/527809?v=4)](https://github.com/aembler "aembler (11 commits)")[![bitterdev](https://avatars.githubusercontent.com/u/15018219?v=4)](https://github.com/bitterdev "bitterdev (4 commits)")[![Remo](https://avatars.githubusercontent.com/u/129864?v=4)](https://github.com/Remo "Remo (2 commits)")[![a3020](https://avatars.githubusercontent.com/u/1431100?v=4)](https://github.com/a3020 "a3020 (1 commits)")

---

Tags

collaborativegettexti18nl10nlocalizationonlinetranslatetranslation

### Embed Badge

![Health badge](/badges/concretecms-community-translation/health.svg)

```
[![Health](https://phpackages.com/badges/concretecms-community-translation/health.svg)](https://phpackages.com/packages/concretecms-community-translation)
```

###  Alternatives

[symfony/translation

Provides tools to internationalize your application

6.6k836.5M2.0k](/packages/symfony-translation)[nesbot/carbon

An API extension for DateTime that supports 281 different languages.

169661.4M4.8k](/packages/nesbot-carbon)[joedixon/laravel-translation

A tool for managing all of your Laravel translations

717911.4k11](/packages/joedixon-laravel-translation)[illuminate/translation

The Illuminate Translation package.

6936.4M491](/packages/illuminate-translation)[lajax/yii2-translate-manager

Translation management extension for Yii 2

227578.8k13](/packages/lajax-yii2-translate-manager)[larswiegers/laravel-translations-checker

Make sure your laravel translations are checked and are included in all languages.

256423.2k2](/packages/larswiegers-laravel-translations-checker)

PHPackages © 2026

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