PHPackages                             justso/justtexts - 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. justso/justtexts

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

justso/justtexts
================

Simple administration of multi-language (i18n) texts via Web Browser.

2.0.6(9y ago)01581MITPHPPHP &gt;=5.6.0

Since Aug 15Pushed 9y ago1 watchersCompare

[ Source](https://github.com/JustsoSoftware/JustTexts)[ Packagist](https://packagist.org/packages/justso/justtexts)[ RSS](/packages/justso-justtexts/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (6)Versions (10)Used By (1)

JustTexts
=========

[](#justtexts)

Multi language text administration tool.

The purpose of this tool is to administer text containers for multiple languages via a browser and place it in i18n compatible format in the file system to be used in all kinds of programming languages, either backend or frontend.

With JavaScript, the texts can be used via i18n.js (see:  for details).

Setup
-----

[](#setup)

This package requires JustAPI as REST API backend, so checkout JustAPI into vendor/justso/justapi. Checkout this package into vendor/justso/justtexts Add a 'language' attribute to config.json file from JustAPI containing a list of language codes you want to use and an entry in the "services" section of config.json for the JustTexts services.

Example:

```
...
"languages": ["de", "en", "fr"],
"services": {
    ...
    "justtexts/*": "file:vendor/justso/justtexts/services.json"
}
...

```

### Download required libraries

[](#download-required-libraries)

The following libraries are needed:

- Backbone.js:
- Require.js:
- text Plugin:
- i18n Plugin:
- jQuery:
- Underscrore.js
- Bootstrap

Just download them as minimized versions together with the corresponding .map files into vendor folder.

### Adapt Apache configuration

[](#adapt-apache-configuration)

Alter your Apache config file to point the '/justtexts' directory to the JavaScript part of the package and for easy access to required libraries:

```
Alias /justtexts /path/to/my/project/vendor/justso/justtexts/frontend
Alias /vendor /path/to/my/project/vendor

```

After reloading the apache configuration ("service apache2 reload") the application should be accessible via

Usage of text administration
----------------------------

[](#usage-of-text-administration)

Texts are grouped as 'pages'. So, at first, create a page in the list and give it a name. It is good practice to use the same name as the html page's name (not the title), so if your URL is , it would be easy for you to find the corresponding texts later if you name the page 'my-page'.

Creating a page is easy: just press the "Add page" button and click on the "Name" field in the empty list row. After entering a name and leaving the field (by clicking somewhere else or pressing the tab button) the page is created. Changing the name is easy as well: just click on the name and change it. Again, the change is made persisting when you leave the field. By moving the mouse over the row, a 'x' icon is displayed at the right of the row, allowing you to delete the page.

After creating a page, a second list is displayed right of the first one. There you see all texts yet defined in this page - none. With the "Add text" button you can create new text blocks for the page, each having a unique name and the text itself. The text is later accessed via its unique name. Creating, altering or deleting texts is just the same as with pages. Just WYSIWYG.

Accessing texts
---------------

[](#accessing-texts)

Texts are placed in a directory 'htdocs/nls' in JavaScript files compatible to i18n.js (see above) and can be accessed with this package, which is a require.js plugin. So, just require "i18n!my-page" in your AMD module to access texts for your page with the name 'my-page'. The names of the text containers are the names of the parameter's attributes. i18n takes care of loading the texts in the language your user prefers - if it exists. Else, it defaults to the language defined first in your config.json file.

Translation
-----------

[](#translation)

Translation means calling the administration and changing the language to the desired one. The text in the base language (this is the language defined first in your config.json file) is displayed side by side for each text container to make translation easier.

JustTexts takes care on texts changed after translations. So, if your text in the base language is changed, the texts in the container of all other languages is marked as outdated. In the administration, outdated texts are marked in red, so it is relatively easy to find such texts and re-translate them if necessary.

Support &amp; More
------------------

[](#support--more)

If you need support, please contact us:

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 98.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 ~52 days

Recently: every ~2 days

Total

9

Last Release

3508d ago

Major Versions

1.0.1 → 2.0.02016-08-06

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

2.0.1PHP &gt;=5.6.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/29e190fa4b9db5e54262059be363640915b121b168ad95dc072059498a7b8e99?d=identicon)[justso](/maintainers/justso)

---

Top Contributors

[![jschirrmacher](https://avatars.githubusercontent.com/u/2821879?v=4)](https://github.com/jschirrmacher "jschirrmacher (68 commits)")[![stefantrost](https://avatars.githubusercontent.com/u/3949446?v=4)](https://github.com/stefantrost "stefantrost (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/justso-justtexts/health.svg)

```
[![Health](https://phpackages.com/badges/justso-justtexts/health.svg)](https://phpackages.com/packages/justso-justtexts)
```

###  Alternatives

[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.4M495](/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)[inpsyde/multilingual-press

Simply THE multisite-based free open source plugin for your multilingual websites.

2414.0k1](/packages/inpsyde-multilingual-press)[statikbe/laravel-chained-translator

The Laravel Chained Translator can combine several translators that can override each others translations.

36149.4k6](/packages/statikbe-laravel-chained-translator)

PHPackages © 2026

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