diff options
author | Morris Jobke <hey@morrisjobke.de> | 2017-05-08 23:25:20 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-08 23:25:20 -0500 |
commit | d6c25748beb45eb4fffc6ed616894e82d2abe73e (patch) | |
tree | ab71813277b2b8e322e5a3de308469572fa652fb | |
parent | f6a4028fad57ff2be8752b17c66b990e042cfdf9 (diff) | |
parent | 692e056df9fc7fdded29cfc758dafb5bb3d9b065 (diff) | |
download | nextcloud-server-d6c25748beb45eb4fffc6ed616894e82d2abe73e.tar.gz nextcloud-server-d6c25748beb45eb4fffc6ed616894e82d2abe73e.zip |
Merge pull request #4755 from nextcloud/l10n-extraction
Extract app name and navigation entries for l10n
-rw-r--r-- | build/l10nParseAppInfo.php | 60 | ||||
-rw-r--r-- | l10n/l10n.pl | 3 |
2 files changed, 63 insertions, 0 deletions
diff --git a/build/l10nParseAppInfo.php b/build/l10nParseAppInfo.php new file mode 100644 index 00000000000..74c040b333c --- /dev/null +++ b/build/l10nParseAppInfo.php @@ -0,0 +1,60 @@ +<?php +/** + * @copyright Copyright (c) 2017 Morris Jobke <hey@morrisjobke.de> + * + * @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/>. + * + */ + +/** + * 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 = '<?php' . PHP_EOL; + +foreach ($strings as $string) { + $content .= '$l->t("' . $string . '");' . PHP_EOL; +} + +file_put_contents('specialAppInfoFakeDummyForL10nScript.php', $content); + diff --git a/l10n/l10n.pl b/l10n/l10n.pl index 3f50ec0756b..c8312982fdc 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 ); } } |