Replies: 4 comments 5 replies
-
(nothing actionable here, just a fun observation I wanted to share) |
Beta Was this translation helpful? Give feedback.
-
Portuguese speakers like me often run across the same issue: keys that in the US keyboard are available as a single keypress require combinations like ~+Space for a non-combining "~", or AltGr+8 for "[", Shift+7 for "/", etc. In the worst case , keys that programs use for interaction are not possible in the Portuguese layout because they expect a single keypress to produce them, and don't respond to combinations. That said, it is indeed very hard to address this problem unless we severely restrict which symbols can be used to only those available in most keyboard layouts, which is unrealistic. In fact this issue has been bothering me for a while now, so I took this discussion as a prompt to start a table summarizing this information. The spreadsheet is editable btw, so anyone can help fill it up with additional information or comments! :) </shameless plug> |
Beta Was this translation helpful? Give feedback.
-
@matklad do you mean that there is no way at all to access these chars on a Russian keyboard? I think I remember someone saying the same about the backtick. My thought on that isn’t fit for public display! 😁 On my Swedish keyboard Otherwise it is much as @waldyrious1 describes for Portuguese: I have all printable ASCII characters and an assortment of Unicode punctuation and symbol characters available somewhere though often in unintuitive places, not all of which are printed on the keys. Å Ä Ö have their own keys and ß Æ Ø Œ have sensible AltGr assignments more or less where you would expect. There are two deadkeys which between them have acute, grave, umlaut, circumflex, tilde in more or less shifted positions. Backtick is Shift+acute+Space, which is yucky when writing software documentation in Markdown, which I do more than I’d like to admit. It’s much worse on Windows though! On my phone and my tablet I use a third party keyboard with multilingual/multilayout support including custom keyboard creation. 😂 In vim I have my own hack for a pleasant keymap experience. Sometimes I rave about an LML which uses some Unicode punctuation, but if some people can’t even access all ASCII punctuation it’s definitely dead in the womb! I have my own (undocumented, unpublished) text filter, not a djot or Pandoc filter but a Perl/regex stdin → program → stdout thingy taking config from a YAML file, which replaces text in arbitrary/nested balanced delimiters, using any Unicode punctuation characters + optional djot/Pandoc-like attributes, with arbitrary text which may interpolate the content between the delimiters (recursively expanded) and/or attribute values through a small ‘template’ language.2 The ‘template’ language can also can be used to define regexes when the “automatic” simpler regexes are not enough, and then named captures from those regexes can be interpolated into the replacement text too. It’s fun and useful but no substitute for an actual LML. I usually pipe its output into pandoc, so its mostly syntactic sugar for (nested) pandoc spans and divs, letting me use silly things like
Footnotes
|
Beta Was this translation helpful? Give feedback.
-
People with non-Latin based languages generally use two keyboard layouts at
the same time, with a key combo (typically win+space) to switch between
them. One layout would be en-us QWERTY, and the other with whatever
non-Latin keys (ЙЦУКЕН for Russian). On the flip side, we don’t use AltGr
combos, as between two layouts, everything has a dedicated key somewhere)
…On Sunday, 15 January 2023, Benct Philip Jonsson ***@***.***> wrote:
@matklad <https://github.com/matklad> do you mean that there is no way at
all to access these chars on a Russian keyboard? I think I remember someone
saying the same about the backtick. My thought on that isn’t fit for public
display! 😁 On my Swedish keyboard # is AltGr+something and () [] {} are
respectively Shift/AltGr/Shift+AltGr +8/9 which is annoying enough.
Otherwise it is much as @waldyrious <https://github.com/waldyrious>1
<#m_911202567365718665_user-content-fn-1-a188400906d55d0f039d6ff735a97888>
describes for Portuguese: I have all printable ASCII characters and an
assortment of Unicode punctuation and symbol characters available
*somewhere* though often in unintuitive places, not all of which are
printed on the keys. Å Ä Ö have their own keys and ß Æ Ø Œ have sensible
AltGr assignments more or less where you would expect. There are two
deadkeys which between them have acute, grave, umlaut, circumflex, tilde in
more or less shifted positions. Backtick is Shift+acute+Space, which is
yucky when writing software documentation in Markdown, which I do more than
I’d like to admit. It’s much worse on Windows though!
On my phone and my tablet I use a third party keyboard
<https://play.google.com/store/apps/details?id=kl.ime.oh> with
multilingual/multilayout support including custom keyboard creation. 😂
In vim I have my own hack
<https://github.com/bpj/bpj-vim-keymaps/blob/master/autoload/switchkeymap.vim>
for a pleasant keymap <https://vimhelp.org/mbyte.txt.html#mbyte-keymap>
experience.
Sometimes I rave about an LML which uses some Unicode punctuation, but if
some people can’t even access all ASCII punctuation it’s definitely dead in
the womb! I have my own (undocumented, unpublished) text filter, not a djot
or Pandoc filter but a Perl/regex stdin → program → stdout thingy taking
config from a YAML file, which replaces text in arbitrary/nested balanced
delimiters, using any Unicode punctuation characters + optional
djot/Pandoc-like attributes, with arbitrary text which may interpolate the
content between the delimiters (recursively expanded) and/or attribute
values through a small ‘template’ language.2
<#m_911202567365718665_user-content-fn-2-a188400906d55d0f039d6ff735a97888>
The ‘template’ language can also can be used to define regexes when the
“automatic” simpler regexes are not enough, and then named captures from
those regexes can be interpolated into the replacement text too. It’s fun
and useful but no substitute for an actual LML. I usually pipe its output
into pandoc, so its mostly syntactic sugar for (nested) pandoc spans and
divs, letting me use silly things like
- ⌈text⌉ → [text]{.smallcaps}
- ⌊text⌋ → [text]{.underline}
- ⁅:TAG:TEXT:⁆ → [TEXT]{lang=TAG}~TAG~
- ⦑cpan:Module::Name⦒ → [Module::Name](https://
metacpan.org/pod/Module::Name)3
<#m_911202567365718665_user-content-fn-3-a188400906d55d0f039d6ff735a97888>
Footnotes
1.
Whose table I will contribute to as and when I have time 😁 ↩
<#m_911202567365718665_user-content-fnref-1-a188400906d55d0f039d6ff735a97888>
2.
String::Formatter <https://metacpan.org/pod/String::Formatter> which
itself is sprintf on steroids on even more steroids! 😁 ↩
<#m_911202567365718665_user-content-fnref-2-a188400906d55d0f039d6ff735a97888>
3.
I can make data from YAML/JSON files available to templates, so this
is generated by a template like [%{text}s](%{url|%{prefix}s}§/%{text}s)
My subclass eats the brains of String::Formatter almost completely! 😁
↩
<#m_911202567365718665_user-content-fnref-3-a188400906d55d0f039d6ff735a97888>
—
Reply to this email directly, view it on GitHub
<#190 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AANB3M2RUTVNQOOWHVHF2MTWSR52DANCNFSM6AAAAAAT3RHJLA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
One of the guidelines for djot is to aviod english keywords, and instead use punctuation for syntax. I just realized that this is not as i18n friendly as I originally thought -- punctuation also might differ between languages.
In particular, on a Russian keyboard there's no keys for
#][}{
. It's not a big deal, as users of Cyrillic layouts also use an Enghlish one and can switch between the two, but I didn't realize before that switching is necessary at all.Beta Was this translation helpful? Give feedback.
All reactions