unicode-org / message-format-wg

Developing a standard for localizable message strings

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fallback resolution should check private-use and reserved annotations for a leading name-like token

gibson042 opened this issue · comments

Originally posted by @gibson042 in #539 (comment) and #529 (comment)

Suggested refactor, to be coupled with checking in Fallback Resolution for reserved-body-name such that e.g. {@reserved} and {@reserved ||} resolve to the fallback value @reserved while {@reserved||} and {@reserved\\} and {@reserved{}} (if syntactically valid) resolve to :

-reserved-body  = *( [s] 1*(reserved-char / reserved-escape / quoted))
+; reserved-body is a possibly-empty sequence of space-separated parts,
+; optionally starting with a name-like `reserved-body-name` used in fallback resolution
+reserved-body       = [(reserved-body-name / [s] reserved-body-start) *(s reserved-body-part) [s]]
+reserved-body-name  = 1*name-char
+reserved-body-start = *name-char (non-name-char / reserved-escape / quoted) [reserved-body-part]
+reserved-body-part  = 1*(reserved-char / reserved-escape / quoted)
+non-name-char       = %x21-2C        ; omit - .
+                    / %x2F           ; omit digits and :
+                    / %x3B-40        ; omit uppercase letters
+                    / %x5B           ; omit \
+                    / %x5D-5E        ; omit _
+                    / %x60           ; omit lowercase letters and { | }
+                    / %x7E-D7FF      ; omit surrogates
+                    / %xE000-10FFFF
+reserved-char       / %x00-08        ; omit HTAB and LF
+                    / %x0B-0C        ; omit CR
+                    / %x0E-19        ; omit SP
+                    / non-name-char / ALPHA / DIGIT / "-" / "." / ":" / "_"

As I recall, we ended up determining during last week's call that this level of introspection should not be done, and that only the sigil would be used in the default fallback representation.

Yes, I think this was resolved by #539.