summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorJoas Schilling <213943+nickvergessen@users.noreply.github.com>2020-04-08 20:10:05 +0200
committerGitHub <noreply@github.com>2020-04-08 20:10:05 +0200
commitbbba7bc45acdbfb7d69edf7998db2cd8871682bd (patch)
tree34d99f3de17f0ace227ec0e85efab7d3b34cace3 /build
parent328fbddc197d7e51a466467c6ba788c5b972811d (diff)
parent283b8a5e74b7aa536480c39d22176acd1ad0efba (diff)
downloadnextcloud-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.php63
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);