| 1 | # UVmessages: parses resource strings and substitutes variables |
| 2 | # Used by all components |
| 3 | |
| 4 | package UVmessage; |
| 5 | |
| 6 | use strict; |
| 7 | use vars qw(@ISA @EXPORT_OK $VERSION); |
| 8 | |
| 9 | require Exporter; |
| 10 | @ISA = qw(Exporter); |
| 11 | @EXPORT_OK = qw(get); |
| 12 | |
| 13 | # Module version |
| 14 | $VERSION = "0.1"; |
| 15 | |
| 16 | sub get { |
| 17 | my ($key, %param) = @_; |
| 18 | |
| 19 | my $string = $UVconfig::messages{$key} || return ''; |
| 20 | |
| 21 | while ($string =~ m/\$\{([A-Za-z0-9_-]+)\}/) { |
| 22 | my $skey = $1; |
| 23 | my $sval = $param{$skey}; |
| 24 | $sval = '' unless defined($sval); |
| 25 | |
| 26 | $string =~ s/\$\{$skey\}/$sval/g; |
| 27 | } |
| 28 | |
| 29 | return $string; |
| 30 | } |
| 31 | |
| 32 | 1; |