Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CLDR-12026 kbd: add proper azerty-optimisé #3220

Merged

Conversation

srl295
Copy link
Member

@srl295 srl295 commented Aug 24, 2023

  • rename the existing fr-t-k0-azerty to fr-t-k0-test because it's really a test keyboard.

  • fr-t-k0-test.xml is used in unit tests, which update

  • add a proper optimisé keyboard (see ticket)

CLDR-12026

  • This PR completes the ticket.

ALLOW_MANY_COMMITS=true

@srl295 srl295 self-assigned this Aug 24, 2023
@srl295
Copy link
Member Author

srl295 commented Aug 24, 2023

Chart so far: (updated)

image

@srl295
Copy link
Member Author

srl295 commented Aug 24, 2023

@azmeuk any comments on this? The draft spec for this is https://cldr-smoke.unicode.org/spec/main/ldml/tr35-keyboards.html

you can see the generated chart above - \m{caret} and \m{umlaut} are markers that will combine to form ^ and ¨ modifiers.

@jira-pull-request-webhook
Copy link

Notice: the branch changed across the force-push!

  • keyboards/3.0/fr-t-k0-test.xml is different
  • keyboards/test/fr-t-k0-optimise-test.xml is different

View Diff Across Force-Push

~ Your Friendly Jira-GitHub PR Checker Bot

@srl295 srl295 force-pushed the cldr-12026/kbd/azerty-optimise branch from 9874bd2 to 3a20c4f Compare August 25, 2023 16:02
@jira-pull-request-webhook
Copy link

Notice: the branch changed across the force-push!

  • tools/cldr-code/src/main/java/org/unicode/cldr/util/ElementAttributeInfo.java is different

View Diff Across Force-Push

~ Your Friendly Jira-GitHub PR Checker Bot

@srl295 srl295 force-pushed the cldr-12026/kbd/azerty-optimise branch from 3a20c4f to 1f42ec7 Compare August 25, 2023 16:46
@jira-pull-request-webhook
Copy link

Notice: the branch changed across the force-push!

  • tools/cldr-code/src/main/java/org/unicode/cldr/util/ElementAttributeInfo.java is different

View Diff Across Force-Push

~ Your Friendly Jira-GitHub PR Checker Bot

@srl295
Copy link
Member Author

srl295 commented Aug 26, 2023

I'll update the chart

Chart above has been updated

@srl295
Copy link
Member Author

srl295 commented Aug 28, 2023

@azmeuk I think all of the base characters are in now. (just needs transform rule)

@srl295 srl295 requested a review from a team August 28, 2023 16:15
@azmeuk
Copy link

azmeuk commented Aug 28, 2023

@azmeuk I think all of the base characters are in now. (just needs transform rule)

Thank you. I will try to find some time this week or the next to review this.

@srl295 srl295 force-pushed the cldr-12026/kbd/azerty-optimise branch from dadb65c to 46f03f8 Compare September 20, 2023 18:03
@jira-pull-request-webhook

This comment was marked as outdated.

@srl295
Copy link
Member Author

srl295 commented Sep 20, 2023

rebased due to #3274

@srl295
Copy link
Member Author

srl295 commented Oct 11, 2023

out of date, I think this is probably going to go to v45

@srl295 srl295 force-pushed the cldr-12026/kbd/azerty-optimise branch from 46f03f8 to 6dddc5b Compare October 27, 2023 19:27
@jira-pull-request-webhook

This comment was marked as outdated.

@srl295 srl295 changed the base branch from main to maint/maint-44 October 27, 2023 19:32
@azmeuk
Copy link

azmeuk commented Jan 4, 2024

As I finally could not find time to dedicate on this since last summer, I called people behind https://norme-azerty.fr/en/ for help.

@srl295 srl295 force-pushed the cldr-12026/kbd/azerty-optimise branch from 6dddc5b to e839d5c Compare February 8, 2024 00:49
@jira-pull-request-webhook

This comment was marked as outdated.

srl295 added 2 commits March 20, 2024 19:43
- rename the existing fr-t-k0-azerty to fr-t-k0-test  because it's really a test keyboard
- beginning of a proper optimisé keyboard.
@srl295 srl295 force-pushed the cldr-12026/kbd/azerty-optimise branch from e839d5c to 11b208e Compare March 21, 2024 00:48
@jira-pull-request-webhook

This comment was marked as outdated.

@srl295 srl295 changed the base branch from maint/maint-44 to main March 21, 2024 00:48
<row
keys="mark-breve section mark-acute mark-grave amp open-square close-square mark-macron underscore open-double close-double degree mark-caron" />
<row
keys="ae pound euro registered open-curly close-curly u-grave mark-dotabove oe percent minus-sign dagger" />
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The dot above dead key has a special case that I don't think is captured here – it should produce a dotless i (U+0131) when followed with a lowercase i.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO but that is easy to do in this format

@srl295
Copy link
Member Author

srl295 commented Mar 26, 2024

@dan-jac thank you for the feedback!

@dan-jac
Copy link

dan-jac commented Mar 26, 2024

@dan-jac thank you for the feedback!

No worries. Happy to help. I implemented the Windows driver based on the standard document, so I'm quite familiar with it at this point.

I must admit, I haven't yet familiarized myself with this new version of the LDML format, so my feedback is based on what I think it's saying.

For accent dead keys, is each mapping supposed to be explicitly listed? (In which case, this file is obviously not yet finished. Which is fine. 🙂) Or are they implicit (like with X11 keyboard maps), in which case special cases need special attention?

@srl295 srl295 changed the base branch from main to maint/maint-45 April 4, 2024 21:31
@srl295
Copy link
Member Author

srl295 commented Apr 10, 2024

For accent dead keys, is each mapping supposed to be explicitly listed? (In which case, this file is obviously not yet finished. Which is fine. 🙂) Or are they implicit (like with X11 keyboard maps), in which case special cases need special attention?

I'm using combining accents where I can.

so

			<transform from="\m{umlaut}($[vowel])" to="$1\u{0308}" />

.. just puts a U+0308 after the vowel.

@srl295
Copy link
Member Author

srl295 commented Apr 10, 2024

@dan-jac updated the XML, take a look

srl295 added 2 commits April 10, 2024 18:34
- hit all cases, simplified some
- renamed to just fr.xml
@srl295 srl295 requested a review from dan-jac April 11, 2024 22:13
@srl295 srl295 marked this pull request as ready for review April 11, 2024 22:13
@srl295 srl295 requested review from mcdurdin, xadxura, miloush, a team and dan-jac and removed request for dan-jac April 11, 2024 22:14
@dan-jac
Copy link

dan-jac commented Apr 16, 2024

For accent dead keys, is each mapping supposed to be explicitly listed? (In which case, this file is obviously not yet finished. Which is fine. 🙂) Or are they implicit (like with X11 keyboard maps), in which case special cases need special attention?

I'm using combining accents where I can.

so

			<transform from="\m{umlaut}($[vowel])" to="$1\u{0308}" />

.. just puts a U+0308 after the vowel.

The standard requires the use of pre-composed accented characters. It also requires the use of a 'dead key' ( « touche morte » ) as the means of entry, as defined in ISO/IEC 9995-11 paragraph 5.1.

Annex E of the standard (which is normative) lists all of the required Unicode code points of the pre-composed accented characters that must be made available.

E.g.

  • A with grave accent is U+00C0.
  • A with aigu is U+00C1.
  • A with circumflex is U+00C2.
  • etc.

Copy link

@dan-jac dan-jac left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of the changes introduced in this PR are good and get this closer to compliance with the standard. So in that sense, I approve! :)

As I've noted in a comment though, this doesn't mean it's actually compliant yet. (E.g. To be truly compliant, it would need to provide access to all the precomposed accented characters, not just the combining characters.)

@miloush
Copy link
Contributor

miloush commented Apr 16, 2024

@dan-jac the spec mandates everything will become precomposed during processing unless the layout opts out.

The marker is used as a dead key (key will insert marker which user cannot see and then the next output will transform it).

@srl295
Copy link
Member Author

srl295 commented Apr 16, 2024

As @miloush noted this standard usually works in NFD. Each char in the "composable" set can be preceded by a marker to produce char + combining char for all base keys.

@srl295
Copy link
Member Author

srl295 commented Apr 16, 2024

@miloush can I get your stamp on this also so we can merge now that @dan-jac has approved?

@srl295
Copy link
Member Author

srl295 commented Apr 16, 2024

@dan-jac I don't have a copy of the standard so can't check actual compliance yet. I'd like to port some of the compliance tests I see floating around and test them here.

@srl295 srl295 merged commit 2907ef5 into unicode-org:maint/maint-45 Apr 16, 2024
11 checks passed
@srl295 srl295 deleted the cldr-12026/kbd/azerty-optimise branch April 16, 2024 12:59
pedberg-icu pushed a commit to pedberg-icu/cldr that referenced this pull request Apr 22, 2024
pedberg-icu pushed a commit that referenced this pull request Apr 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants