1
1
Fork 0

Remove util/extract

- Updated documentation
This commit is contained in:
Hypolite Petovan 2018-03-18 23:49:45 -04:00
parent 2226ed2949
commit 05b6cf7559
2 changed files with 2 additions and 102 deletions

View file

@ -8,7 +8,7 @@ cmdline and see if any parsing errors are reported.
Internationalisation Internationalisation
extract.php - extracts translatable strings from our project files. It php bin/console extract - extracts translatable strings from our project files. It
currently doesn't pick up strings in other libraries we might be using such as currently doesn't pick up strings in other libraries we might be using such as
the HTML parsers. the HTML parsers.
@ -61,7 +61,7 @@ e.g.
Plural Plural
The L10n::tt() function supports plural form. Script extract.php write this in The L10n::tt() function supports plural form. The extract command writes this in
strings.php as an array, one string for every plural form language supports: strings.php as an array, one string for every plural form language supports:
$a->string["%d message sent"] = Array( $a->string["%d message sent"] = Array(

View file

@ -1,100 +0,0 @@
#!/usr/bin/env php
<?php
/**
* @file util/extract.php
*
* Extracts translation strings from the Friendica project's files to be exported
* to Transifex for translation.
*
* Outputs a PHP file with language strings used by Friendica
*/
$s = '<?php' . PHP_EOL;
$s .= '
function string_plural_select($n){
return ($n != 1);
}
';
$arr = [];
$files = ['index.php', 'boot.php'];
$files = array_merge(
$files,
glob('mod/*'),
glob('include/*'),
glob('addon/*/*'),
glob_recursive('src')
);
foreach ($files as $file) {
$str = file_get_contents($file);
$pat = '|L10n::t\(([^\)]*+)[\)]|';
$patt = '|L10n::tt\(([^\)]*+)[\)]|';
preg_match_all($pat, $str, $matches);
preg_match_all($patt, $str, $matchestt);
if (count($matches) || count($matchestt)) {
$s .= '// ' . $file . PHP_EOL;
}
if (count($matches)) {
foreach ($matches[1] as $long_match) {
$match_arr = preg_split('/(?<=[\'"])\s*,/', $long_match);
$match = $match_arr[0];
if (!in_array($match, $arr)) {
if (substr($match, 0, 1) == '$') {
continue;
}
$arr[] = $match;
$s .= '$a->strings[' . $match . '] = ' . $match . ';' . "\n";
}
}
}
if (count($matchestt)) {
foreach ($matchestt[1] as $match) {
$matchtkns = preg_split("|[ \t\r\n]*,[ \t\r\n]*|", $match);
if (count($matchtkns) == 3 && !in_array($matchtkns[0], $arr)) {
if (substr($matchtkns[1], 0, 1) == '$') {
continue;
}
$arr[] = $matchtkns[0];
$s .= '$a->strings[' . $matchtkns[0] . "] = array(\n";
$s .= "\t0 => " . $matchtkns[0] . ",\n";
$s .= "\t1 => " . $matchtkns[1] . ",\n";
$s .= ");\n";
}
}
}
}
$s .= '// Timezones' . PHP_EOL;
$zones = timezone_identifiers_list();
foreach ($zones as $zone) {
$s .= '$a->strings[\'' . $zone . '\'] = \'' . $zone . '\';' . "\n";
}
echo $s;
function glob_recursive($path) {
$dir_iterator = new RecursiveDirectoryIterator($path);
$iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST);
$return = [];
foreach ($iterator as $file) {
if ($file->getBasename() != '.' && $file->getBasename() != '..') {
$return[] = $file->getPathname();
}
}
return $return;
}