mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-22 00:06:12 -05:00
* include processing algorithm descriptions from yaml (with yaml fixes) * create ui instead of cpp where possible and use -no-ui-lines to avoid artificial ever changing line numbers in ts files * drop old used scripts: create_new_ts.sh, create_new_ts.sh and integrate_function_help.pl, update_ts_files.sh
86 lines
2.4 KiB
Perl
86 lines
2.4 KiB
Perl
#!/usr/bin/env perl
|
|
###########################################################################
|
|
# qgm2cpp.pl
|
|
# ---------------------
|
|
# begin : December 2009
|
|
# copyright : (C) 2009 by Juergen E. Fischer
|
|
# email : jef at norbit dot de
|
|
###########################################################################
|
|
# #
|
|
# This program is free software; you can redistribute it and/or modify #
|
|
# it under the terms of the GNU General Public License as published by #
|
|
# the Free Software Foundation; either version 2 of the License, or #
|
|
# (at your option) any later version. #
|
|
# #
|
|
###########################################################################
|
|
|
|
use XML::Simple;
|
|
use Data::Dumper;
|
|
|
|
sub xmlescape {
|
|
my $data = shift;
|
|
$data =~ s/&/&/sg;
|
|
$data =~ s/</</sg;
|
|
$data =~ s/>/>/sg;
|
|
$data =~ s/"/"/sg;
|
|
return $data;
|
|
}
|
|
|
|
my %labels;
|
|
my $file;
|
|
|
|
sub parse {
|
|
foreach my $a (@_) {
|
|
if( ref($a) eq "ARRAY" ) {
|
|
foreach my $b ( @$a ) {
|
|
parse($b);
|
|
}
|
|
} elsif( ref($a) eq "HASH" ) {
|
|
foreach my $b ( keys %$a ) {
|
|
if( $b eq "label" ) {
|
|
my $label = $a->{$b};
|
|
die "expected string" unless ref($label) eq "";
|
|
print STDERR "warning[$file]: '$label' should start with a uppercase character or digit and not start or end with whitespaces"
|
|
if $label =~ /^\s+/ || $label =~ /\s+$/ || $label !~ /^[A-Z0-9(]/;
|
|
$label =~ s/^\s+//;
|
|
$label =~ s/\s+$//;
|
|
$label = ucfirst $label;
|
|
$labels{$label} = 1;
|
|
} else {
|
|
parse($a->{$b});
|
|
}
|
|
}
|
|
# } elsif(ref($a) eq "") {
|
|
# warn "found: " . $a;
|
|
# } else {
|
|
# warn "found: " . ref($a) . " " . Dumper($a);
|
|
}
|
|
}
|
|
}
|
|
|
|
open I, "find src/plugins/grass -name '*.qgm' -o -name '*.qgc'|";
|
|
while($file = <I>) {
|
|
#print STDERR "$file\n";
|
|
chop $file;
|
|
parse XMLin($file, ForceArray=>1);
|
|
#print STDERR "$file DONE\n";
|
|
}
|
|
close I;
|
|
|
|
print <<EOF;
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
This is NOT a proper UI code. This file is only designed to be caught
|
|
by qmake and included in lupdate. It contains all translateable strings collected
|
|
by scripts/qgm2ui.pl.
|
|
-->
|
|
<ui version="4.0">
|
|
<class>grasslabels</class>;
|
|
EOF
|
|
|
|
foreach (sort keys %labels) {
|
|
print " <property><string>" . xmlescape($_) . "</string></property>\n";
|
|
}
|
|
|
|
print "</ui>\n";
|