Skip to content

Fix BCP47 check for languages with underscore - #54

Open
Engerrs wants to merge 1 commit into
ckan:masterfrom
Engerrs:fix-BCP-47-languages
Open

Fix BCP47 check for languages with underscore#54
Engerrs wants to merge 1 commit into
ckan:masterfrom
Engerrs:fix-BCP-47-languages

Conversation

@Engerrs

@Engerrs Engerrs commented Jan 24, 2025

Copy link
Copy Markdown
Member

There is an issue with languages that have "" (enderscore) in the language code. There is no standard for languages with "" and we use initially use check for BCP47 standard (e.g. "-" version).
There were two options:

  1. Update the regular expression that check the language.
  2. Update each "lang" everytime with do re.match.

I choose the first option, as it more appropriate in opinion. The updated version will store the initial behavior, but additionally will check for "" in language code.
You can check this be adding for example "pt_BT" language version to your Dataset schema and while trying to save the form, it will throws an 500 error (this is another issue, but related, because Fluent doesn't find matches for languages with "
").

@wardi

wardi commented Jan 27, 2025

Copy link
Copy Markdown
Contributor

We could use a mapping from posix locale codes to their BCP-47 versions. I found some discussion but no definitive list:

A simpler option would be to use a helper with some sensible defaults and let sites do their own mappings by overriding that helper.

e.g. a site might be using en_GB and fr_FR as a locales but want to store fluent values as "en" and "fr".

I don't want to just accept posix locale modifiers in fluent like _ and @ because they do not follow BCP-47.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants