public
Description: Git mirror of the CMS Made Simple 2.0 rewrite
Homepage: http://cmsmadesimple.org
Clone URL: git://github.com/tedkulp/cmsmadesimple-2-0.git
cmsmadesimple-2-0 / admin / lang / findmissing.pl
100755 80 lines (71 sloc) 1.469 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/usr/bin/perl
 
%original;
 
open FILE,"< en_US/admin.inc.php";
while (<FILE>)
{
  if ($_ =~ m/(.+?) = (.*)/)
  {
    $keyname = $1;
    $value = $2;
    if ($value =~ m/(.*?)\ \/\/needs translation/)
    {
      $value = $1;
    }
    $original{$keyname} = $value;
  }
}
close(FILE);
 
print "total count: " . scalar(keys %original) . "\n";
 
@langs = ();
opendir(DH, ".") or die "Couldn't open $dir for reading: $!";
while( defined ($file = readdir(DH)) )
{
  if ($file =~ /(.*?)\.nls\.php$/ && $1 ne "en_US")
  {
    push(@langs, $1);
  }
}
 
foreach $curlang(@langs)
{
  my %current;
  open FILE,"< ".$curlang."/admin.inc.php";
  while (<FILE>)
  {
    if ($_ =~ m/(.+?) = (.+)/)
    {
      $keyname = $1;
      $value = $2;
      #if ($value =~ m/(.*?)\ \/\/needs translation/)
      #{
      #  $value = $1;
      #}
      $current{$keyname} = $value;
    }
  }
  close(FILE);
 
  print "total count in ".$curlang.": " . scalar(keys %current) . "\n";
 
  my @missing;
  foreach $onekey(keys %original)
  {
    if (!(exists $current{$onekey}))
    {
      push(@missing, $onekey);
    }
  }
 
  if (scalar(@missing) > 0)
  {
    print scalar(@missing) . " keys missing in: " . $curlang . "\n";
    open FILE,"> ".$curlang."/admin.inc.php";
    print FILE "<?php\n";
    foreach $existingkey(keys %current)
    {
      print FILE $existingkey . " = " . $current{$existingkey} . "\n";
    }
    foreach $missingkey(@missing)
    {
      print FILE $missingkey . " = " . $original{$missingkey} . " //needs translation\n";
    }
    print FILE "?>\n";
    close(FILE);
  }
}