X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FMsgcat.pm;h=ce0fa78af702e9272781fe36490312780a11c0ae;hb=568cf104bb07789ae00f39ea3524f7e1ee32e1e3;hp=e111f4e8c9b305b272694e0f2e89d9ee2117ab71;hpb=83053569b3d965924e2e1d4f5b199609ec7c29af;p=freeside.git diff --git a/FS/FS/Msgcat.pm b/FS/FS/Msgcat.pm index e111f4e8c..ce0fa78af 100644 --- a/FS/FS/Msgcat.pm +++ b/FS/FS/Msgcat.pm @@ -58,6 +58,8 @@ our %cache; sub _gettext { my $msgcode = shift; + return '' unless defined($msgcode) && length($msgcode) > 0; + my $locale = (@_ && shift) || $FS::CurrentUser::CurrentUser->option('locale') || $def_locale; @@ -74,6 +76,19 @@ sub _gettext { warn "WARNING: message for msgcode $msgcode in locale $locale not found" unless $locale eq 'en_US'; $cache{$locale}->{$msgcode} = $msgcode; + + my @translate_auto_insert = $conf->config('translate-auto-insert'); + if ( $locale ne 'en_US' && grep { $_ eq $locale } @translate_auto_insert ) { + + # :( + my $newmsgcat = new FS::Record('msgcat', { locale => $locale, + msgcode => $msgcode, + msg => $msgcode, + }); + warn "WARNING: auto-inserting message for msgcode $msgcode in locale $locale"; + $newmsgcat->insert; + } + return $msgcode; } }