--- loncom/localize/lonlocal.pm 2012/10/25 13:47:31 1.64 +++ loncom/localize/lonlocal.pm 2019/02/24 01:38:14 1.67 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Localization routines # -# $Id: lonlocal.pm,v 1.64 2012/10/25 13:47:31 bisitz Exp $ +# $Id: lonlocal.pm,v 1.67 2019/02/24 01:38:14 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -38,7 +38,7 @@ Apache::lonlocal - provides localization lonlocal provides localization services for LON-CAPA programmers based on Locale::Maketext. See -C +C for more information on Maketext. =head1 OVERVIEWX @@ -153,7 +153,7 @@ ignore the rest of the line. This is a relatively easy task, and any help is appreciated. Maketext can do a whole lot more, see -C +C but for most purposes, we do not have to mess with that. =cut @@ -171,7 +171,7 @@ use DateTime::Locale; require Exporter; our @ISA = qw (Exporter); -our @EXPORT = qw(mt mtn ns mt_user); +our @EXPORT = qw(mt mtn ns mt_user js_escape html_escape); my %mtcache=(); @@ -325,7 +325,7 @@ sub current_locale { sub texthash { my %hash=@_; - foreach (keys %hash) { + foreach (keys(%hash)) { $hash{$_}=&mt($hash{$_}); } return %hash; @@ -496,9 +496,11 @@ sub getdatelocale { return $locale_obj; } -=pod +=pod -=item * normalize_string +=over + +=item * normalize_string() Normalize string (reduce fragility in the lexicon files) @@ -521,7 +523,7 @@ sub normalize_string { =pod -=item * ns +=item * ns() alias for normalize_string; recommend using it only in the lexicon @@ -533,7 +535,7 @@ sub ns { =pod -=item * mtn +=item * mtn() mtn: call the mt function and the normalization function easily. Returns original non-normalized string if there was no translation @@ -562,7 +564,7 @@ sub transstatic { =pod -=item * mt_escape +=item * mt_escape() mt_escape takes a string reference and escape the [] in there so mt will leave them as is and not try to expand them @@ -575,13 +577,88 @@ sub mt_escape { $$str_ref =~s/([\[\]])/~$1/g; } +=pod + +=item * js_escape() + +js_escape takes a string, string reference or hash reference, +and escapes the values so that they can be used within a