communigate provisioning phase 2: Domain:Account Defaults:Settings: RulesAllowed...
[freeside.git] / FS / FS / msgcat.pm
index fa10d34..d1224f3 100644 (file)
@@ -4,7 +4,7 @@ use strict;
 use vars qw( @ISA );
 use Exporter;
 use FS::UID;
-use FS::Record qw( qsearchs );
+use FS::Record; # qw( qsearchs );
 
 @ISA = qw(FS::Record);
 
@@ -52,7 +52,8 @@ If you just want to B<use> message catalogs, see L<FS::Msgcat>.
 
 =item new HASHREF
 
-Creates a new example.  To add the example to the database, see L<"insert">.
+Creates a new message catalog entry.  To add the message catalog entry to the
+database, see L<"insert">.
 
 Note that this stores the hash reference, not a distinct copy of the hash it
 points to.  You can ask the object for a copy with the I<hash> method.
@@ -91,8 +92,8 @@ returns the error, otherwise returns false.
 
 =item check
 
-Checks all fields to make sure this is a valid example.  If there is
-an error, returns the error, otherwise returns false.  Called by the insert
+Checks all fields to make sure this is a valid message catalog entry.  If there
+is an error, returns the error, otherwise returns false.  Called by the insert
 and replace methods.
 
 =cut
@@ -113,7 +114,40 @@ sub check {
   $self->locale =~ /^([\w\@]+)$/ or return "illegal locale: ". $self->locale;
   $self->locale($1);
 
-  ''; #no error
+  $self->SUPER::check
+}
+
+
+sub _upgrade_data { #class method
+  my( $class, %opts) = @_;
+
+  eval "use FS::Setup;";
+  die $@ if $@;
+
+  #"repopulate_msgcat", false laziness w/FS::Setup::populate_msgcat
+
+  my %messages = FS::Setup::msgcat_messages();
+
+  foreach my $msgcode ( keys %messages ) {
+    foreach my $locale ( keys %{$messages{$msgcode}} ) {
+      my %msgcat = (
+        'msgcode' => $msgcode,
+        'locale'  => $locale,
+        #'msg'     => $messages{$msgcode}{$locale},
+      );
+      #my $msgcat = qsearchs('msgcat', \%msgcat);
+      my $msgcat = FS::Record::qsearchs('msgcat', \%msgcat); #wtf?
+      next if $msgcat;
+
+      $msgcat = new FS::msgcat( {
+        %msgcat,
+        'msg' => $messages{$msgcode}{$locale},
+      } );
+      my $error = $msgcat->insert;
+      die $error if $error;
+    }
+  }
+
 }
 
 =back