civicrm / strings
String extractor for CiviCRM
Installs: 627
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 24
Forks: 9
Open Issues: 2
pkg:composer/civicrm/strings
Requires
- php: >=7.4.0
- nikic/php-parser: ~4.13
- symfony/console: ~5.4
Requires (Dev)
- phpunit/phpunit: 9.6.*
This package is auto-updated.
Last update: 2025-09-28 22:57:30 UTC
README
civistrings is the string extractor for CiviCRM core and CiviCRM extensions. It scans PHP, Smarty, JS, and partial HTML files for references to the ts() function -- and generates a list of strings using gettext's POT file format.
Requirements
- PHP 7.4+
- Composer (http://getcomposer.org)
Download: Single Executable (PHAR)
civistrings is distributed in PHAR format, which is a portable executable file (for PHP). It should run on most Unix-like systems where PHP 5.3+ is installed.
Simply download civistrings and put it somewhere in the PATH, eg
sudo curl -LsS https://download.civicrm.org/civistrings/civistrings.phar -o /usr/local/bin/civistrings sudo chmod +x /usr/local/bin/civistrings
To upgrade an existing installation, re-download the latest civistrings.phar.
Download: Git + Composer
To download the source tree and all dependencies, use git and composer, e.g.
git clone git://github.com/civicrm/civistrings.git
cd civistrings
composer install
The main executable is bin/civistrings. You may execute that file directly,
or add the bin/ folder to PATH, e.g.
export PATH=/home/myuser/civistrings/bin:$PATH
Usage
## Scan all recognizable files under "myfolder/" civistrings -o myfile.pot myfolder ## Scan all *.js files find -name '*.js' | civistrings - -o myfile.pot
Development and Testing
The "examples" folder includes a series of example input files and expected
output files. To see if the examples are correctly processed, simply run
phpunit.
If you need to add new examples or change the behavior of the test, update
tests/Command/ExtractCommandTest.php.
Build
To build a new copy of civistrings.phar from source, install git, composer, and
box and run:
git clone git://github.com/civicrm/civistrings.git
cd civistrings
composer install
php -dphar.readonly=0 `which box` build