- $_ = $this->{-path} . '_' . $_ unless /_/;
- #todo: shouldn't occur - find out where this is done, then fix and remove this check
- # defined $_ or return '';
- $_ = $this->loc($this->{$_}) if exists $this->{$_};
- #todo: else remove path
- # adaptive string (code)
- $_ = $_->(@_) if ref $_ eq "CODE";
+ $_ = $this->{-path} . $this->{-seperator} . $_
+ if defined $this->{-seperator} and not /\Q$this->{-seperator}/;
+ # get localized string by identifier
+ if (exists $this->{$_}) {
+ $_ = $this->loc($this->{$_});
+ # adaptive string (code)
+ $_ = $_->(@_) if ref $_ eq "CODE";
+ } else {
+ #todo: else remove path
+ s/.*\Q$this->{-seperator}//s if defined $this->{-seperator};
+ }