summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabor Kelemen <kelemen.gabor2@nisz.hu>2019-05-27 23:33:47 +0200
committerCaolán McNamara <caolanm@redhat.com>2019-05-28 10:05:34 +0200
commitbe17c39aab166532b4ba386c1e36f0404c19eb50 (patch)
tree61744612255cddfe0a326dc748567fc3a5ba356f
parentb8c0edc4dc4f976f27a25ca854a4c6d519dd31d3 (diff)
bin/ui-checkdomain.sh: Script to check translation domain in .ui files
Change-Id: Ibf6c181ecfb219ba5d142236471af03f8d3b32c6 Reviewed-on: https://gerrit.libreoffice.org/73072 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rwxr-xr-xbin/ui-checkdomain.sh52
1 files changed, 52 insertions, 0 deletions
diff --git a/bin/ui-checkdomain.sh b/bin/ui-checkdomain.sh
new file mode 100755
index 000000000000..30e0c5b0f594
--- /dev/null
+++ b/bin/ui-checkdomain.sh
@@ -0,0 +1,52 @@
+#!/bin/bash
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This script finds .ui files with incorrect translation domain set
+# and prints the domain, the file name and the expected domain
+# See also the discussion at https://gerrit.libreoffice.org/#/c/72973/
+
+declare -A modules
+
+# List of modules with .ui files and their expected translation domain
+modules+=( \
+ [basctl]=basctl \
+ [chart2]=chart \
+ [cui]=cui \
+ [dbaccess]=dba \
+ [desktop]=dkt \
+ [editeng]=editeng \
+ [extensions]=pcr \
+ [filter]=flt \
+ [formula]="for" \
+ [fpicker]=fps \
+ [framework]=fwk \
+ [reportdesign]=rpt \
+ [sc]=sc \
+ [sd]=sd \
+ [sfx2]=sfx \
+ [starmath]=sm \
+ [svtools]=svt \
+ [svx]=svx \
+ [sw]=sw \
+ [uui]=uui \
+ [vcl]=vcl \
+ [writerperfect]=wpt \
+ [xmlsecurity]=xsc \
+)
+
+# Iterate the keys, i.e. modules with a uiconfig subdir
+for key in ${!modules[@]}; do
+ # Enumerate all .ui files in each module
+ for uifile in $(git ls-files ${key}/uiconfig/*\.ui); do
+ # Check that they contain the expected domain in double quotation marks, print the line if they don't
+ grep "\<interface domain=" $uifile | grep -v "\"${modules[${key}]}\"";
+ if [ "$?" -eq 0 ] ;
+ # Report the file name and the expected domain
+ then echo "^Problematic interface domain in file: $uifile ; should be: "${modules[${key}]}"";
+ fi
+ done
+done