Skip to content

[shughni] New keyboard - #4023

Open
sharukhhhan wants to merge 4 commits into
keymanapp:masterfrom
sharukhhhan:feat/add-shughni-language
Open

[shughni] New keyboard#4023
sharukhhhan wants to merge 4 commits into
keymanapp:masterfrom
sharukhhhan:feat/add-shughni-language

Conversation

@sharukhhhan

@sharukhhhan sharukhhhan commented Jun 11, 2026

Copy link
Copy Markdown

This pull request is for adding the Shughni language (one of the Pamiri ones) to the Keyman database of languages

@keyman-server

Copy link
Copy Markdown
Collaborator

Thank you for your pull request. You'll see a "build failed" message until the Keyman team has reviewed the pull request and manually initiated the build process.

Every change committed to this branch will become part of this pull request. When you have finished submitting files and are ready for the Keyman team to review this pull request, please post a "Ready for review" comment.

@sharukhhhan

Copy link
Copy Markdown
Author

Ready for review

@LornaSIL

Copy link
Copy Markdown
Contributor

Thanks for your Pull Request. I do have some things that need fixing up before we can accept it.

  • We need a copyright holder. That needs to be added in various places, the LICENSE.md, shughni.kmn, shughni.kps are essential, but anywhere else you've included a copyright where it's empty should be deleted or add the copyright holder. If you do not wish to be the copyright holder, you may assign the copyright to SIL Global.
  • The name of the language has various spellings in your documents. It would be good to standardize on "Shughni".
  • The shughni.kvks file is empty.
    • You can go to the .kmn and select the On-Screen tab and select Auto-fill underlying layer (bottom right) and then click on Fill from Layout (top left). That way the On-Screen keyboard will function.
    • I was surprised that the desktop keyboard has no rules for all the special keys you have in the touch layout. So, it seems the desktop will not be useful to your users. You should add the rules for special characters to the desktop keyboard as well. We expect the character repertoire to match between desktop and mobile.
  • In the .kps file
    • the language tag should be sgh-Latn. sgh represents using Shughni with Cyrillic script.
    • You can remove shughni-keyman-touch-layout from the list of files in the .kps. That is the source file but we don't need it distributed through the .kps. The shughni.js file is the compiled version.
  • We really like any keyboard that is in the release folder to have graphics in the welcome.htm or else document what keystrokes to use. You can export from the On-Screen keyboard graphics. Click on Export, select Save As png, and have it put the graphic in the same folder as the welcome.htm file. Then, edit the welcome.htm file to use the graphics. (Wait to do this until you've added the rules for the special characters.
  • Any keyboard in release also needs an online help file.
    • Create a help folder within source.
    • Create a file in the help folder called shughni.php
    • Add the following text to the shughni.php file
<?php
	$pagename = 'Shughni Keyboard Help' ;
	$pagetitle = $pagename ;
	// Header we will tidy up later
	require_once( 'header.php' ) ;
?>

<p>
	This keyboard is designed for the Shughni language, using the Latin script.
</p>

<h2>Desktop Keyboard Layout</h2>
<div id='osk' data-states='default shift'>
</div>

<h2>Phone Keyboard Layout</h2>
<div id='osk-phone' data-states='default shift numeric'>
</div>

When you add the desktop rules, we may have to modify what is included here.

I know this is a lot. But, for a first time contributor I'm very please that all the files are in the right place!

@LornaSIL

LornaSIL commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

@sharukhhhan do you need help with this pull request?

@sharukhhhan

Copy link
Copy Markdown
Author

Hi @LornaSIL!
Sorry, been out of work place for some time. Now I am here and looking forward to your any further feedback!

@sharukhhhan
sharukhhhan force-pushed the feat/add-shughni-language branch from e863a1a to e77b8cd Compare July 16, 2026 15:27
@sharukhhhan
sharukhhhan marked this pull request as draft July 17, 2026 07:21
@sharukhhhan
sharukhhhan marked this pull request as ready for review July 17, 2026 07:22
@sharukhhhan

Copy link
Copy Markdown
Author

Hi all! @darcywong00 @LornaSIL
Kindly ask you to review it please!

@LornaSIL

LornaSIL commented Jul 17, 2026 via email

Copy link
Copy Markdown
Contributor

@darcywong00 darcywong00 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thank you for the keyboard submission.

I have just a few suggestions for now. Lorna may have more when she returns next week

Comment thread release/s/shughni/source/shughni.kps Outdated
Comment thread release/s/shughni/source/welcome.htm
{ "text": "ê", "id": "U_00EA" }
],
"multitap": [
{ "text": "ê", "id": "U_00EA" }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Several of the touch layout keys seem to duplicate longpress and multitap for the same output.

Since your documentation refers to longpress, I recommend removing the multitap keys (easier to maintain)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

But we wanted to keep both variants, because we found both convenient. We even organized a small focus-group of Pamiri people, and they agreed to keep both variants. Is it okay to keep both?

Comment thread release/s/shughni/source/welcome.htm Outdated
@sharukhhhan
sharukhhhan requested a review from darcywong00 July 23, 2026 10:36
@LornaSIL

Copy link
Copy Markdown
Contributor

I have a few comments which are unrelated to @darcywong00 comment about using multi-tap and longpress. I don't know if there are technical issues you will have with implementing both or not.

I do realize some of the languages in the Shughni region have mixed script orthographies (Latin/Greek/Cyrillic). Shughni seems to be a mostly Latin orthography with a few Greek and Cyrillic characters. The more you can standardize, the better. Your uppercase/lowercase will work better in applications and fonts will have the design consistent. Mixing Latin and Greek often means a slightly different style.

You are using U+03D1 (lowercase Greek theta) and U+019F (Uppercase Latin theta). Shouldn't you use the uppercase Greek theta U+0398? The problem with mixing pairs is that if someone takes your text, and converts the uppercase greek theta to lowercase they won't get the latin theta (and vice versa). So, it is certainly best if you can use the matching case pair.

Using Greek delta (δ / Δ) is a matched pair so I think that's fine.

Then, on the J key you have ʓӡ. Both of these are lowercase.
0293;LATIN SMALL LETTER EZH WITH CURL (this character does not have an uppercase pair)
04E1;CYRILLIC SMALL LETTER ABKHASIAN DZE (this is a Cyrillic character and it is a lower case character so it doesn't match 0293 in any way).

I'm not sure what the orthography is meant to be here. If you want a case pair you could use the Cyrillic character instead of 0293.
However, this Latin pair would likely work best for you, use ʒƷ:
0292;LATIN SMALL LETTER EZH
01B7;LATIN CAPITAL LETTER EZH

or if you really want Cyrillic, use ӡӠ,
04E1;CYRILLIC SMALL LETTER ABKHASIAN DZE
04E0;CYRILLIC CAPITAL LETTER ABKHASIAN DZE

But again, mixing 0293 and 04E1 seems like a mistake and your users won't be too happy.

Lastly, once you make any changes, could you reimport the On-screen keyboard? Make sure to select "Auto-fill underlying layout" first and then select "Fill from layout". That will make sure all the digits and punctuation get included in the On-Screen keyboard so people will know what to type.

@LornaSIL LornaSIL changed the title Add Shughni language [shughni] New keyboard Jul 23, 2026
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.

4 participants