View Single Post
Old 03-16-2025, 07:00 PM   #1237
chubacca
Junior Member
chubacca began at the beginning.
 
Posts: 4
Karma: 10
Join Date: Mar 2025
Location: Ukraine
Device: Tolino Shine 5
I made the Cyrillic keyboard patch to work for Tolino Shine 5, so it's worth trying on Clara BW too.
Thanks to grep I found the change in a special character offsets, there's no gap between key lines anymore, it's always 4 bytes:

Code:
grep -ar "ÉÀÇ"
#and in the output
߃¡¿«»¢•°ýÿšžæœþijŀàáâäãåèéêëòóôöõøìíîïùúûüñçđłăąćěęńůřşśţźż`goKeyspaceKeyÉÀÇ
Here's a Ukrainian keyboard as an example:
Spoiler:

Code:
Cyrillic Keyboard (GloHD/ClaraHD/AuraOne/H2O2):
  # Updated by Bald Eagle for 4.18.13737 (https://www.mobileread.com/forums/sh...5&postcount=84)
  - Enabled: yes
  - PatchGroup: Keyboard alternatives
  - Description: |
      Replaces keys on the Extended Latin keypad with Cyrillic alternatives.

      Note that after the device boots, the keypad might just show blank squares
      until after the first book has been opened.
      Also note that long-pressing keys on the base keypad will no longer show
      the appropriate list of Extended Latin keys.
  # Replace layout sign
  - FindBaseAddressString: "ÉÀÇ"
  - ReplaceString: {Offset: 0, Find: "ÉÀÇ", Replace: "АБВ"}
  # Change keyboard layout
  - FindBaseAddressString: "ý\0\0ÿ\0\0š\0\0ž\0\0"
  # Top row, left to right (10 keys):
  - ReplaceString: {Offset: 0x00, Find: "ý\0", Replace: "'"}
  - ReplaceString: {Offset: 0x04, Find: "ÿ\0", Replace: "є"}
  - ReplaceString: {Offset: 0x08, Find: "š\0", Replace: "ä"}
  - ReplaceString: {Offset: 0x0C, Find: "ž\0", Replace: "ö"}
  - ReplaceString: {Offset: 0x10, Find: "æ\0", Replace: "ü"}
  - ReplaceString: {Offset: 0x14, Find: "œ\0", Replace: "µ"}
  - ReplaceString: {Offset: 0x18, Find: "þ\0", Replace: "ю"}
  #- ReplaceString: {Offset: -56, Find: "ß\0", Replace: ","}
  - ReplaceString: {Offset: 0x1C, Find: "ij\0", Replace: "х"}
  - ReplaceString: {Offset: 0x20, Find: "ŀ\0", Replace: "ї"}
  # Second row, left to right (10 keys):
  - ReplaceString: {Offset: 0x24, Find: "à\0", Replace: "й"}
  - ReplaceString: {Offset: 0x28, Find: "á\0", Replace: "ц"}
  - ReplaceString: {Offset: 0x2C, Find: "â\0", Replace: "у"}
  - ReplaceString: {Offset: 0x30, Find: "ä\0", Replace: "к"}
  - ReplaceString: {Offset: 0x34, Find: "ã\0", Replace: "е"}
  - ReplaceString: {Offset: 0x38, Find: "å\0", Replace: "н"}
  - ReplaceString: {Offset: 0x3C, Find: "è\0", Replace: "г"}
  - ReplaceString: {Offset: 0x40, Find: "é\0", Replace: "ш"}
  - ReplaceString: {Offset: 0x44, Find: "ê\0", Replace: "щ"}
  - ReplaceString: {Offset: 0x48, Find: "ë\0", Replace: "з"}
  # Third row, left to right (10 keys):0x4C
  - ReplaceString: {Offset: 0x4C, Find: "ò\0", Replace: "ф"}
  - ReplaceString: {Offset: 0x50, Find: "ó\0", Replace: "і"}
  - ReplaceString: {Offset: 0x54, Find: "ô\0", Replace: "в"}
  - ReplaceString: {Offset: 0x58, Find: "ö\0", Replace: "а"}
  - ReplaceString: {Offset: 0x5C, Find: "õ\0", Replace: "п"}
  - ReplaceString: {Offset: 0x60, Find: "ø\0", Replace: "р"}
  - ReplaceString: {Offset: 0x64, Find: "ì\0", Replace: "о"}
  - ReplaceString: {Offset: 0x68, Find: "í\0", Replace: "л"}
  - ReplaceString: {Offset: 0x6C, Find: "î\0", Replace: "д"}
  - ReplaceString: {Offset: 0x70, Find: "ï\0", Replace: "ж"}
  # Fourth row, left to right (8 keys):
  - ReplaceString: {Offset: 0x74, Find: "ù\0", Replace: "я"}
  - ReplaceString: {Offset: 0x78, Find: "ú\0", Replace: "ч"}
  - ReplaceString: {Offset: 0x7C, Find: "û\0", Replace: "с"}
  - ReplaceString: {Offset: 0x80, Find: "ü\0", Replace: "м"}
  - ReplaceString: {Offset: 0x84, Find: "ñ\0", Replace: "и"}
  - ReplaceString: {Offset: 0x88, Find: "ç\0", Replace: "т"}
  - ReplaceString: {Offset: 0x8C, Find: "đ\0", Replace: "ь"}
  - ReplaceString: {Offset: 0x90, Find: "ł\0", Replace: "б"}


Sorry, a duplicate (the previous reply didn't show up immediately after posting).

Last edited by chubacca; 03-16-2025 at 07:04 PM.
chubacca is offline   Reply With Quote