c0884e60a8f28606807cbff82155d761c62cfe4a
Peter Palfrader Move website to wml

Peter Palfrader authored 18 years ago

1) #!/usr/bin/wml
2) 
3) <:
4) 
5) sub getMetadata($) {
6) 	my ($file) = @_;
7) 
8) 	open(F, "$file") or die ("Cannot open $file: $!\n");
9) 	my $found_metadata = 0;
10) 	while (<F>) {
11) 		chomp;
12) 		if ($_ eq '## translation metadata') {
13) 			$found_metadata = 1;
14) 			last;
15) 		};
16) 	};
17) 	die ("Did not find translation metadata in $file") unless $found_metadata;
18) 	my %data;
19) 	while (<F>) {
20) 		chomp;
21) 		if (/^#\s*(\S*):\s*(.*?)\s*$/) {
22) 			$data{$1} = $2;
23) 		} else {
24) 			last;
25) 		};
26) 	};
27) 	return %data;
28) };
29) 
Peter Palfrader Add translation-status page

Peter Palfrader authored 18 years ago

30) sub translation_get_masterrevision_file($) {
31) 	my ($page) = @_;
32) 	%master = getMetadata("en/$page");
Peter Palfrader Move website to wml

Peter Palfrader authored 18 years ago

33) 
Peter Palfrader Add translation-status page

Peter Palfrader authored 18 years ago

34) 	die ("Cannot find 'Revision' header in master's translation metadata of en/$page") unless exists $master{'Revision'};
Peter Palfrader Move website to wml

Peter Palfrader authored 18 years ago

35) 
36) 	my ($rev) = $master{'Revision'} =~ m/([0-9.]+)/;
Peter Palfrader Revert mistaken commit

Peter Palfrader authored 18 years ago

37) 	if ($rev eq '') { $rev = '(Revision not a valid number)'; };
Peter Palfrader Move website to wml

Peter Palfrader authored 18 years ago

38) 
39) 	return $rev;
40) };
Peter Palfrader Add translation-status page

Peter Palfrader authored 18 years ago

41) sub translation_get_masterrevision() {
42) 	translation_get_masterrevision_file($WML_SRC_FILENAME);
43) };
Peter Palfrader Move website to wml

Peter Palfrader authored 18 years ago

44) 
Peter Palfrader Add translation-status page

Peter Palfrader authored 18 years ago

45) sub translation_get_basedonrevision_langfile($$) {
46) 	my ($lang, $page) = @_;
47) 	%translation = getMetadata("$lang/$page");
Peter Palfrader Move website to wml

Peter Palfrader authored 18 years ago

48) 
Peter Palfrader Add translation-status page

Peter Palfrader authored 18 years ago

49) 	die ("Cannot find 'Based-On-Revision' header in translations's translation metadata of $lang/$page") unless exists $translation{'Based-On-Revision'};
Peter Palfrader Move website to wml

Peter Palfrader authored 18 years ago

50) 
51) 	my ($rev) = $translation{'Based-On-Revision'};
52) 	if ($rev eq '') { $rev = '(unknown)'; };
53) 
54) 	return $rev
55) };
Peter Palfrader Add translation-status page

Peter Palfrader authored 18 years ago

56) sub translation_get_basedonrevision() {
57) 	translation_get_basedonrevision_langfile($(LANG), $WML_SRC_FILENAME);
58) };
Peter Palfrader Move website to wml

Peter Palfrader authored 18 years ago

59) 
60) 
61) sub translation_current() {
62) 	return (translation_get_masterrevision() eq translation_get_basedonrevision());
63) };
64) 
Peter Palfrader Do not mark missing transla...

Peter Palfrader authored 18 years ago

65) sub file_is_obsolete($$) {
66) 	my ($lang, $page) = @_;
67) 	%translation = getMetadata("$lang/$page");
68) 	return (exists $translation{'Status'} && ($translation{'Status'} eq 'obsolete'))
69) };
70)