From 692e056df9fc7fdded29cfc758dafb5bb3d9b065 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Mon, 8 May 2017 23:13:29 -0500 Subject: [PATCH] Extract app name and navigation entries for l10n Signed-off-by: Morris Jobke --- build/l10nParseAppInfo.php | 60 ++++++++++++++++++++++++++++++++++++++ l10n/l10n.pl | 3 ++ 2 files changed, 63 insertions(+) create mode 100644 build/l10nParseAppInfo.php diff --git a/build/l10nParseAppInfo.php b/build/l10nParseAppInfo.php new file mode 100644 index 0000000000..74c040b333 --- /dev/null +++ b/build/l10nParseAppInfo.php @@ -0,0 +1,60 @@ + + * + * @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 . + * + */ + +/** + * This little script parses the info.xml and extracts the app name as well + * as the navigation entry name from the XML and writes it into a file named + * specialAppInfoFakeDummyForL10nScript.php that is created and deleted during + * l10n string extraction + */ + +$fileName = getcwd() . '/appinfo/info.xml'; +$strings = []; + +if (!file_exists($fileName)) { + exit(); +} + +$xml = simplexml_load_file($fileName); + +if ($xml->name) { + $strings[] = $xml->name->__toString(); +} + +if ($xml->navigations) { + foreach ($xml->navigations as $navigation) { + $name = $navigation->navigation->name->__toString(); + if (!in_array($name, $strings)) { + $strings[] = $name; + } + } +} + +print_r($strings); + +$content = 't("' . $string . '");' . PHP_EOL; +} + +file_put_contents('specialAppInfoFakeDummyForL10nScript.php', $content); + diff --git a/l10n/l10n.pl b/l10n/l10n.pl index 3f50ec0756..c8312982fd 100644 --- a/l10n/l10n.pl +++ b/l10n/l10n.pl @@ -120,6 +120,8 @@ if( $task eq 'read' ){ my @temp = split( /\//, $dir ); my $app = pop( @temp ); chdir( $dir ); + # parses the app info and creates an dummy file specialAppInfoFakeDummyForL10nScript.php + `php $whereami/../build/l10nParseAppInfo.php`; my @totranslate = crawlFiles('.'); my %ignore = readIgnorelist(); my $output = "${whereami}/templates/$app.pot"; @@ -139,6 +141,7 @@ if( $task eq 'read' ){ print " Reading $file\n"; `xgettext --output="$output" $joinexisting $keywords --language=$language "$file" --add-comments=TRANSLATORS --from-code=UTF-8 --package-version="8.0.0" --package-name="ownCloud Core" --msgid-bugs-address="translations\@owncloud.org"`; } + rmtree( "specialAppInfoFakeDummyForL10nScript.php" ); chdir( $whereami ); } }