Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). Varbase Media Header 9.2.1 Minor update available for module varbase_media_header (9.2.1). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

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

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:

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.

Activity

Total releases
10
First release
Jan 2025
Latest release
5 months ago
Releases (12 mo)
4 ▼ from 6
Maintenance
Active

Release Timeline

Releases

Version Type Release date
1.0.14 Stable Jan 22, 2026
1.0.13 Stable Dec 2, 2025
1.0.12 Stable Dec 1, 2025
1.0.11 Stable Sep 22, 2025
1.0.10 Stable Jul 7, 2025
1.0.9 Stable Jun 13, 2025
1.0.8 Stable Jun 10, 2025
1.0.7 Stable Jan 22, 2025
1.0.6 Stable Jan 21, 2025
1.0.5 Stable Jan 21, 2025