set i18n_euro2u { A`' \u0104 a`' \u0105 A'` \u0102 a'` \u0103 A`` \uc5 A` \uc0 A'' \uc4 A' \uc1 {A[\^]} \uc2 A~ \uc3 a`` \ue5 a` \ue0 a'' \ue4 a' \ue1 {a[\^]} \ue2 a~ \ue3 A&E \uc6 a&e \ue6 C` \uc7 c` \ue7 C' \u0106 c' \u0107 {C[\^]} \u010c {c[\^]} \u010d D`` \u0110 d`` \u0111 D` \ud0 d` \uf0 E`' \u011a e`' \u011b E~ \u0118 e~ \u0119 E`` \u20ac E` \uc8 E'' \ucb E' \uc9 {E[\^]} \uca e` \ue8 e'' \ueb e' \ue9 {e[\^]} \uea {G[\^]} \u011e {g[\^]} \u011f I`` \u0130 I` \ucc I'' \ucf I' \ucd {I[\^]} \uce i`` \u0131 i` \uec i'' \uef i' \ued {i[\^]} \uee L`` \u20a4 L` \u0141 l` \u0142 N~ \ud1 n~ \uf1 N' \u0143 n' \u0144 {N[\^]} \u0147 {n[\^]} \u0148 O'' \ud6 O~ \ud5 O`` \u0150 O` \ud2 O' \ud3 {O[\^]} \ud4 o`` \u0151 o` \uf2 o'' \uf6 o' \uf3 {o[\^]} \uf4 o~ \uf5 O/ \ud8 o/ \uf8 O&E \u0152 \o&e \u0153 {R[\^]} \u0158 {r[\^]} \u0159 S' \u015a s' \u015b s&s \udf {S[\^]} \u0160 {s[\^]} \u0161 S` \u015e s` \u015f T~ \ude t~ \ufe T` \u0162 t` \u0163 U`' \u016e u`' \u016f U` \ud9 U'' \udc U' \uda {U[\^]} \udb u` \uf9 u'' \ufc u' \ufa {u[\^]} \ufb y'' \uff y' \ufd Y' \udd Z' \u0179 z' \u017a Z` \u017b z` \u017c {Z[\^]} \u017d {z[\^]} \u017e <&< \uab >&> \ubb _a \uaa _o \uba !~ \ua1 {[?]~} \ubf } proc eurolish args { if {$args==""} { set args "!~Hola! Un co&eur franc`ais, e^tre A``lborgga&ede" } foreach {from to} $::i18n_euro2u { regsub -all $from $args $to args } set args }
DKF: Extended to support a few other languages as well (most notably German.) In fact, it should be possible to support most western european languages (and icelandic?) with the same translation mechanism...RS: That's why it's moved now from the original name Franlish to Eurolish ;-) Moved the table out of the proc, so you can display it for reference (use subst -nocommands $::i18n_euro2u). - Just added the Euro currency sign (E``), which a Eurolish must include, and the sterling sign (L``) for the others .., and, serious again, Czech and Polish.
See also An anomaly in case conversion for Turkish.