Open bfabio opened 7 months ago
I think golang.org/x/text/language
's Parse is based on Unicode Locale Data Markup Language (LDML)'s Unicode Language and Locale Identifiers which is based on BCP47 (but they are not strictly the same). E.g., Unicode Language and Locale Identifiers allow the underscore _
to be used as a separator.
sep = [-_] ;
But not BCP47:
langtag = language
["-" script]
["-" region]
*("-" variant)
*("-" extension)
["-" privateuse]
There is a section called BCP 47 Conformance which reads:
It allows certain syntax for backwards compatibility (not BCP 47-compatible):
- The "_" character for field separator characters, as well as the "-" used in
Package version eg. v9, v10:
v10
Issue, Question or Enhancement:
When using
bcp47_language_tag
for validation, some non-BCP47 tags such as "eng
" or "en_US
" are passing as valid.isBCP47LanguageTag()
usesgolang.org/x/text/language
'sParse
and its documentation says:Code sample, to showcase or reproduce:
I expect both of these to fail, but they don't: