Texts: key-based strings and translations
The Texts module provides a key-based system for managing and translating strings within Drupal. It offers an improved user interface for managing translations, supports pluralization and placeholders, and includes CSV import/export functionality. It also offers optional GraphQL support for fetching translations in decoupled environments.
INTRODUCTION
Texts is a module, that allows to manage and translate strings / texts using a key-based approach.
If you work in a decoupled environment, this module allows you to manage your frontend translations within Drupal with ease.
The module offers an improved UI to manage translations in the Drupal backend.
It supports pluralization (singular / plural) and placeholders, like the normal t() function.
The module comes with optional GraphQL support to fetch the translations in a decoupled environment.
https://www.drupal.org/project/texts
Import / Export
The module has CSV import / export functionality. You can quickly export all strings and translate them in an external tool.
API
You can use the function getTexts(): (similar to t())
Example:
getTexts( 'login.button', // The translation key ['@name => 'Luke Skywalker'], // (optional) placeholders ['default_translation' => 'Login Button @name', 'context' => 'default'] // (optional) options )
This will create a translation based on the key login.button if it does not exist and return its translation.
You can use the function getTextsPlural(): (similar to formatPlural())
Example:
getTextsPlural( 1, // count 'login.button', // The translation key '1 year @name', // singular '@count years @name', // plural ['@name => 'Luke Skywalker'], // (optional) placeholders ['default_translation' => 'Login Button @name', 'context' => 'default'] // (optional) options )
This will create pluralized texts.
Twig support
You can use the following Twig filters:
|getTexts(key)|getTextsPlural(key)
REQUIREMENTS
- locale module
- content_translation module.
INSTALLATION
- Standard installation with no dependencies.
See http://drupal.org/node/70151 for further information.
RELATED MODULES
No directly comparable modules exist in Drupal 8.
- Locale module of Drupal core provides the t() function and string based translations based on an English base string.
CONFIGURATION
- You can configure the module under /admin/config/regional/texts
- It is possible to hide unwanted language in the overview.
MAINTAINERS
Current maintainers:
- ayalon - https://www.drupal.org/u/ayalon
If you want to help or be involved, please contact me.
If you find any issues please create an issue after checking that the issue
is not a duplicate of an existing issue.
Depends on
Dependencies of the latest stable release
- content_translation Drupal core
- locale Drupal core
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Release Timeline
Releases
| Version | Type | Core | Notes | Release date | |
|---|---|---|---|---|---|
| 1.0.14 | Stable | 8–11 | Fix schema diff. | Jan 22, 2026 | |
| 1.0.13 | Stable | 8–11 | Mitigate duplicate entities | Dec 2, 2025 | |
| 1.0.12 | Stable | 8–11 | Fix bug with entity creation with context via GraphQL | Dec 1, 2025 | |
| 1.0.11 | Stable | 8–11 | Sep 22, 2025 | ||
| 1.0.10 | Stable | 8–11 | Store the CSV file temporarily in the key-value store | Jul 7, 2025 | |
| 1.0.9 | Stable | 8–11 | Fix CSV export controller | Jun 13, 2025 | |
| 1.0.8 | Stable | 8–11 | CSV import / export added | Jun 10, 2025 | |
| 1.0.7 | Stable | 8–11 | Drupal 11 compatibility | Jan 22, 2025 | |
| 1.0.6 | Stable | 8–11 | Drupal 11 compatibility | Jan 21, 2025 | |
| 1.0.5 | Stable | 8–11 | Drupal 11 compatibility | Jan 21, 2025 |