Deal with values which are arrays, before and after:
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Sat, 26 Sep 2009 20:03:52 +0000 (20:03 +0000)
committerÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Sat, 26 Sep 2009 20:03:52 +0000 (20:03 +0000)
    avar@aoeu:~/src/osm/sites/rails_port/config/locales$ perl ../../script/locale/diff --dump-flat de.yml|egrep "Nähe|Uni"
    message.inbox.people_mapping_nearby: Mappern in deiner Nähe
    message.outbox.people_mapping_nearby: Mappern in deiner Nähe
      - "Universit\xC3\xA4t"
    user.friend_map.nearby mapper: "Mapper in der Nähe: [[nearby_user]]"
    user.view.nearby users: "Benutzer in der Nähe:"
    user.view.no nearby users: Es gibt bisher keine Benutzer, die einen Standort in deiner Nähe angegeben haben.
    avar@aoeu:~/src/osm/sites/rails_port/config/locales$ perl ../../script/locale/diff --dump-flat de.yml|egrep "Nähe|Uni"
    message.inbox.people_mapping_nearby: Mappern in deiner Nähe
    message.outbox.people_mapping_nearby: Mappern in deiner Nähe
      - Universität
    user.friend_map.nearby mapper: "Mapper in der Nähe: [[nearby_user]]"
    user.view.nearby users: "Benutzer in der Nähe:"
    user.view.no nearby users: Es gibt bisher keine Benutzer, die einen Standort in deiner Nähe angegeben haben.

script/locale/diff

index e45b8e3..aa44ea5 100755 (executable)
@@ -111,7 +111,7 @@ my $from_parsed = { iterate($from_data->{fileparse($from, qr/\.[^.]*/)}) };
 if ($dump_flat)
 {
     # Mark as UTF-8
-    map { utf8::decode($_) } values %$from_parsed;
+    map { if (ref $_ eq 'ARRAY') { map { utf8::decode($_) } @$_ } else {  utf8::decode($_) } } values %$from_parsed;
 
     print Dump $from_parsed;