diff options
author | Joas Schilling <213943+nickvergessen@users.noreply.github.com> | 2020-04-08 20:10:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-08 20:10:05 +0200 |
commit | bbba7bc45acdbfb7d69edf7998db2cd8871682bd (patch) | |
tree | 34d99f3de17f0ace227ec0e85efab7d3b34cace3 /build | |
parent | 328fbddc197d7e51a466467c6ba788c5b972811d (diff) | |
parent | 283b8a5e74b7aa536480c39d22176acd1ad0efba (diff) | |
download | nextcloud-server-bbba7bc45acdbfb7d69edf7998db2cd8871682bd.tar.gz nextcloud-server-bbba7bc45acdbfb7d69edf7998db2cd8871682bd.zip |
Merge pull request #20321 from nextcloud/enh/noid/check-translation-for-triple-dot
Check for triple dots in translations in CI
Diffstat (limited to 'build')
-rw-r--r-- | build/triple-dot-checker.php | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/build/triple-dot-checker.php b/build/triple-dot-checker.php new file mode 100644 index 00000000000..fa5edfcd5ee --- /dev/null +++ b/build/triple-dot-checker.php @@ -0,0 +1,63 @@ +<?php +/** + * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> + * @copyright Copyright (c) 2020 Gary Kim <gary@garykim.dev> + * + * @author Gary Kim <gary@garykim.dev> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +$directories = [ + __DIR__ . '/../apps', + __DIR__ . '/../core' +]; + +$errors = []; +foreach ($directories as $dir) { + $it = new \RecursiveDirectoryIterator($dir); + + foreach (new RecursiveIteratorIterator($it) as $file) { + if ($file->getExtension() === 'map') { + continue; + } + $content = file_get_contents($file->getPathname()); + $matches = preg_grep('/[^A-Za-z][tn]\([\'"][^\'"]*?[\'"],( ?)[\'"][^\'"]*?(\.\.\.)[^\'"]*?[\'"]/sU', explode(PHP_EOL, $content)); + + foreach ($matches as $ln => $match) { + if (file_exists($file->getPathname() . '.map')) { + $errors[] = sprintf('At line %d in file %s (file may be transpiled)', $ln, $file); + } else { + $errors[] = sprintf('At line %d in file %s', $ln, $file); + } + } + } +} + +echo PHP_EOL . PHP_EOL; +if (count($errors) > 0) { + if (count($errors) > 1) { + echo sprintf('ERROR: There are %d uses of triple dot instead of ellipsis:', count($errors)) . PHP_EOL; + } else { + echo 'ERROR: There is 1 use of triple dot instead of ellipsis:' . PHP_EOL; + } + echo implode(PHP_EOL, $errors) . PHP_EOL; + exit(1); +} + +echo 'OK: all good! No use of triple dot instead of ellipsis found.' . PHP_EOL; +exit(0); |