Skip to content
New issue

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

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

Already on GitHub? # to your account

Rework of UK and RU standard layout plus added extended layout (similar to PC keyboard) as optional #1215

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

Quantom2
Copy link

@Quantom2 Quantom2 commented Nov 17, 2024

As a native UK and RU speaker and newcomer from other keyboard apps, I found RU and, mostly, UK layouts so much uncomfortable, in comparing to others, so I come and make rework of exiting layouts

I maked this changes:

  1. Fill language locale_key_texts for both RU and UK, where alternate letter exists
  2. Reworked baze layout, adding more useful popups and variants
  3. Make both RU and UK layouts fully capable to multilanuage typing by 1) and 2), its now possible to fully type UK sentense on RU layout and vice versa.
  4. Added extended layouts to more customizable expirience (they similar to some other layouts). Reused extended layout class from Hungarian. No impact on performance

More detail explanation of all changes are in this commit, or in diff compare below.

The changes are final an fully tested by me localy. Keyboard works properly.

All changes are in way described in this guidelines

Why this changes should be in baze Heliboard

Ukrainan:
As a native speaker, usage of 'ї' when it attached as popup to 'і' are not comfortable, because 'ї' it is not just vatiant of 'і', this is separate letter, with separate sound, and it used quite often. For exmple, our analog to english 'she's' or 'belongs to she' is literaly written as 'її'. Not only one, but two of this letter! And, we use he/she much more common in speaking, than in english, so this are much more suitable and overall just less time consuming when you have separate 'ї' letter, instead of 'hold on 'і', choose 'ї', repeat it again to type 'її'. ' Additionaly, keyboard have space for this – third row are anyway densier that 1 even with additional 'ї' key. And lastly, all other keyboards on market added 'ї' as separate letter long time ago with no problem and this make life only easier to native ukrainian speakers.
Additionaly, I had provided old popup with 'ї' to'і', for making change less problematic, but it have problems described there

Ukrainian and Russian both:
The additional locale_key_texts for both languages just overall make typing more flexible and allow proper usage of multilanguage typing now. There no harm in this, only benefits.

Additional hints to layouts provided are added to be consistent with other keyboards on market, that have same options in popups and many people find it wery comfortable to use.

Additional Extended layouts added for more flexibility in overall usage. Since it re-uses already exiting class and code, all work fine with no problems at all, and just add more options, for example ' or ъ as separate keys (refering to nowdays GBoard layout and Samsung Keyboard, with are popular)

Test release provided in my fork, you can download it and see al changes at one. Illustrations to changes awill be provided in below comment within few minutes.

…ar to PC keyboard) as optional;

Rework standard UK and RU keyboards:
UA)
- Added 'ї' as separate letter (it used much more often, just to be optional key in popups)
- Added [ { } } popups to fill empty hint space (similar to PC layout)
- Added ' (apostrofee) suggestion onto 'є' key (similar to oter keyboards and to PC layout)
RU)
Added siggestion to 'ъ' on 'х' key (similar to other keyboards, anyway there was no popups at all)
- Added [ { } } popups to fill empty hint space (similar to PC layout)
- Added 'э́' suggestion similar to other keyboards
Both)
- Improvements to multilanguage typing (now this is possible to sue UK-RU or RU-UK pair, I added letters from other language as popups)
Added)
- UK Extended with separate ' key (used less often than 'ї', but still used pretty often)
- RU Extended, with separate 'ъ' key (similar to full desk PC layout)

(Maybe i forgot something)
@Quantom2
Copy link
Author

Old baze layouts for comparing:
Ukrainian:
зображення_2024-11-17_131228064
Russian:
зображення_2024-11-17_131256324

New baze layouts with new hints, popups and locale_key_texts variants
Ukrainian:
зображення_2024-11-17_131344857
Russian:
зображення_2024-11-17_131405055

New extended layouts:
Ukrainan:
зображення_2024-11-17_131435765
Russian:
зображення_2024-11-17_131454326

Changes in language and layout selector:
зображення_2024-11-17_131526223
Changes in Ukrainian layouts selection:
зображення_2024-11-17_131553379
Changes in Russian layouts selection:
зображення_2024-11-17_131608982

P.S. Sorry for mine custom theme, but all of that work axact the same in baze themes

@Helium314
Copy link
Owner

Thank you very much for providing a detailed explanation and reasoning of your PR!
I am typically rather opposed to making changes to existing (default) layouts, but adding the ї to the Ukrainian keyboard seems to make sense. Though when users are complaining about the extra key (as it makes other keys smaller), then I might revert this addition later.

The additional locale_key_texts for both languages just overall make typing more flexible and allow proper usage of multilanguage typing now. There no harm in this, only benefits.

Here I'm not convinced. Enabling multilingual typing already combines locale_key_texts from all enabled languages, so there is no need for forcing letters of another language to appear when not using multilingual typing. I've had multiple complaints by users who only want to have letters of their chosen language, and I don't want to knowingly create more reasons for complaining.
My idea would be to make use of the more_popups_*.txt files instead. They were designed only for latin alphabet, but there is no technical reason to not use them for cyrillic.

I see you have э э́ є in both Russian layouts, and є э in both Ukrainian layouts. Wouldn't this be a better fit for locale_key_texts instead of the individual layouts (including consideration of using more_popups_*.txt)?

First and maybe temporary fix for multilanguage hints for not show them if you dont use multilanguage
@Quantom2
Copy link
Author

Quantom2 commented Jan 19, 2025

Made a bunch of test builds and expiriments, and because my prewious almost written detailed message was lost, i will write all shorter, sorry.

Though when users are complaining about the extra key (as it makes other keys smaller), then I might revert this addition later.

I may suggest re-add old UK layout re-using existing class of subtype_generic_compact. that made for hindi and only used by them, the same as i re-used subtype_generic_extended class that was used only by hungarian. The only downside of it will be that there are no hints to users that there are old layout that just named compact, so i dont know how it worth, add new 'subtype_generic_old' format or etc for that, ore re-use 'subtype_generic_compact' witch be a lot easier (and have proper translation too)

Here I'm not convinced. Enabling multilingual typing already combines locale_key_texts from all enabled languages, so there is no need for forcing letters of another language to appear when not using multilingual typing. I've had multiple complaints by users who only want to have letters of their chosen language, and I don't want to knowingly create more reasons for complaining.

After i test it i had an idea, tryed, and this worked. I simply added additional keys to RU letters into UK locale texts (e.g 'ы і ї', letter 'ы' don't exist in UK, so if multitype don't enabled it doesen't show up everywhere. But when you combine them, locale texts combines and boom - RU than show you wanted 'ы і ї', witch stored in UK locale texts! So no one will be harmed - those who dont want dont see them, and those who want multilanguage will see them.

P.S. this appears to me only as a temporary solution, i can think of separate set of locale texts that will be applyed ONLY if selected multilanguage typing, something that can be called like 'ru-UK' (where all lowercase indicate that this is two LANGUAGES, when 'uk_UK' indicate (now) separate LAYOUT). What you think about this?

My idea would be to make use of the more_popups_*.txt files instead. They were designed only for latin alphabet, but there is no technical reason to not use them for cyrillic.

I don't found any documentation about more popups, and no any buttons that allow me use that. BTW that not so much problem, the proplem is that I want include special hints that use DIFERENT sounds/charctaers, not a variations, but different. For example, i wanna place ы as a hint onto і when UK-RU multilanguage typing is enabled, because there are always 'ы' in ru, so the muscule memory will force me to press there, where in UK placed 'і'. So why don't include that so muscule memory dont make me waste time (type 'і', erease it, type 'ы' from a popup on 'и'? (little explanetion. 'ы' and 'и' are different variations of one sound in RU, when 'і' and 'и' it is DIFFERENT sounds in UK. So by logic i should place it onto 'и', but that result in troubles with muscule memory described below. I didnt mean to not include 'ы' on 'и' and only 'ы' on 'і', i mean to include BOTH ways so it can be helpfull for two types of users, those who hard rely on muscle memory like me, and those who like to update it:)

Any further suggestions if welcome off course)

P.P.S. I upload updated version of my changes into my git fork, you can see how i made changes to locale texts, i added new row only for be used in multitype, e.g:
locale_texts_lang.txt

-[locale for lang]

-[locale for lang 2 multitype]

-[lable as it was]

@Helium314
Copy link
Owner

Made a bunch of test builds and expiriments, and because my prewious almost written detailed message was lost, i will write all shorter, sorry.

Sorry to hear that, such loss of written text can be very annoying. There are some browser addons against this, like https://github.com/wildskyf/TextareaCache and https://stephanmahieu.github.io/fhc-home/.

I may suggest re-add old UK layout re-using existing class of subtype_generic_compact.

That's a good point, I'll consider it in case someone doesn't like the separat ї key. How to deal with it depends on how soon / how many people want the old layout. But anyway that's not really relevant now.

I simply added additional keys to RU letters into UK locale texts (e.g 'ы і ї', letter 'ы' don't exist in UK, so if multitype don't enabled it doesen't show up everywhere

It's not a really clean solution, but very simple so I thinks it's ok. And I don't expect it to have negative side effects.

P.S. this appears to me only as a temporary solution, i can think of separate set of locale texts that will be applyed ONLY if selected multilanguage typing, something that can be called like 'ru-UK' (where all lowercase indicate that this is two LANGUAGES, when 'uk_UK' indicate (now) separate LAYOUT). What you think about this?

Hmm this doesn't really fit in my opinion, and adds more complexity for dealing with a very special case.

From what you write (specific hints in specific places, muscle memory) it seems more like you want some ru/uk layout specialized for multilingual typing? Maybe it would make more sense to add something like that?

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants