source: osm/applications/editors/josm/i18n/convmaps.pl@ 31167

Last change on this file since 31167 was 31111, checked in by stoecker, 10 years ago

major speedup of i18n process, add some new features, split core translations into two parts

File size: 1.3 KB
Line 
1#! /usr/bin/perl -w
2
3# Written by Dirk Stöcker <openstreetmap@dstoecker.de>
4# Public domain, no rights reserved.
5
6use strict;
7use LWP::Simple;
8use open qw/:std :encoding(utf8)/;
9
10my $item;
11my $comment = 0;
12
13# This is a simple conversion and in no way a complete XML parser
14# but it works with a default Perl installation
15
16# Print a header to write valid Java code. No line break,
17# so that the input and output line numbers will match.
18print "class trans_maps { void tr(String s){} void f() {";
19
20my @lines;
21if($ARGV[0] && $ARGV[0] =~ /^http:\/\//)
22{
23 my $content = get($ARGV[0]);
24 die "Couldn't get $ARGV[0]" unless defined $content;
25 @lines = split("\r?\n", $content);
26}
27else
28{
29 @lines = <>;
30}
31
32for my $line (@lines)
33{
34 $line =~ s/\r//g;
35 chomp($line);
36 print "tr(\"\"); ";
37 if($line =~ /<name(?: +lang=['"]en['"])?>(.*)<\/name>/)
38 {
39 my $val = $1;
40 $val =~ s/&amp;/&/g;
41 print "tr(\"$val\"); /* $line */\n";
42 }
43 if($line =~ /<description +lang=['"]en['"]>(.*)<\/description>/)
44 {
45 my $val = $1;
46 $val =~ s/&amp;/&/g;
47 print "tr(\"$val\"); /* $line */\n";
48 }
49 elsif($line =~ /^[ \t]*$/)
50 {
51 print "\n";
52 }
53 elsif($line =~ /<entry>/) # required or the gettext info texts get too large
54 {
55 print "public newEntry() {};\n";
56 }
57 else
58 {
59 print "/* $line */\n";
60 }
61}
62
63print "}}\n";
Note: See TracBrowser for help on using the repository browser.