Bug 17975 - Tajik Keyboard Layout (Tajik xkb - tj)
Summary: Tajik Keyboard Layout (Tajik xkb - tj)
Status: RESOLVED FIXED
Alias: None
Product: xkeyboard-config
Classification: Unclassified
Component: General (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: xkb
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-10-08 07:23 UTC by Victor Ibragimov
Modified: 2008-10-13 14:28 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Small beautification of the new layout (10.22 KB, text/plain)
2008-10-08 08:55 UTC, Simos Xenitellis
Details
Patch to base.xml.in (895 bytes, patch)
2008-10-09 04:20 UTC, Simos Xenitellis
Details | Splinter Review
Updated symbols/tj (8.96 KB, patch)
2008-10-12 07:35 UTC, Victor Ibragimov
Details | Splinter Review

Description Victor Ibragimov 2008-10-08 07:23:53 UTC
Peter and Sergey, the bug report is filed. Please, see details below or at:
https://bugzilla.redhat.com/show_bug.cgi?id=455796

Comment #1 From  Peter Hutterer (peter.hutterer@redhat.com)  2008-10-08 00:43:30 EDT   (-) [reply] -------

Victor, please file this bug upstream under the following URL:
https://bugs.freedesktop.org/enter_bug.cgi?product=xkeyboard-config

Sergey (the upstream maintainer) has a better overview on how to integrate new
keyboard layouts.

Once you have filed the bug, please add a reference to the bug in this
bugreport so we can track it and integrate it into Fedora when it is merged.

--------------

Description of problem:

There is an official Tajik Standard Keyboard Layout required by the
TojikStandard Organization to be used in software development. The official
keyboard layout, due to the added 6 special characters, does not support 4 important keys on the keyboard such as _-+= as they are replaced by special characters “ғ” and “ӯ” on Tajik keyboard.
The official Tajik Standard Keyboard Layout already exist in Windows Vista (under wrongly spelled “ta” locale)

For the translators in Linux (in Mandriva distribution) a Tajik keyboard was developed to match the Russian layout and have all the Tajik 6 special keys also available on the keyboard. This unofficial Tajik keyboard layout use more than one buttons to get a letter with a special sign for Tajik language and require two key strokes. The existing Tajik xkb in Fedora is based on unofficial layout.

To meet the requirements and translators needs for both official and unofficial layouts, the following
layout has been created to resolve the existing.

Tajik users/typers would like to have an option in Fedora to use/have both kayboard layouts:

1) Standard Tojiki Keyboard Layout, Official Standard, Required
2)  Tojiki Rusi Keyboard Layout, Unofficial, But most usable

Both methods provided below:

// 17/07/2008
// -------------------------------------------------------------
// Standard Tojiki Keyboard Layout, Official Standard
// -------------------------------------------------------------
// Created by Victor Ibragimov <victor.ibragimov@gmail.com>
// Tajik Fedora & Software Localization Team
// -------------------------------------------------------------
//                        DUAL INPUT METHOD
// --------------------------------------------------------------------
// -------------- Tojiki Official Keyboard Layout----------------------
// --------------------------------------------------------------------
//
partial default alphanumeric_keys
xkb_symbols "official" {
    name[Group1]= "Tojikiston - official";
    key	<AE01> {	[	     1,	      exclam, 0x10000a7 	]	};
    key	<AE02> {	[	     2,     quotedbl, 0x10000ab, 0x10000bb	]	};
    key <AE03> {        [               3,      numerosign      ]       };
    key <AE04> {        [               4,       semicolon      ]       };
    key <AE05> {        [               5,         percent      ]       };
    key <AE06> {        [             6,       colon, 0x1002013	]       };
    key <AE07> {        [             7,    question, ampersand	]       };
    key <AE08> {        [               8,        asterisk      ]       };
    key	<AE09> {	[		9,	 parenleft	]	};
    key	<AE10> {	[		0,	parenright, 0x10000b0	]	};
    key	<AE11> {	[    0x1000493,    0x1000492, minus,   underscore	]	};
    key	<AE12> {	[    0x10004ef,    0x10004ee, equal,     plus		]	};
    key <AB10> {        [          period,           comma      ]       };
    key <BKSL> {        [       backslash,           slash      ]       };
    key <LSGT> {        [           slash,             bar      ]       };
    key	<TLDE> {	[     Cyrillic_io,     Cyrillic_IO	]	};
    key	<AD01> {	[ Cyrillic_shorti, Cyrillic_SHORTI	]	};
    key	<AD02> {	[    0x100049b,    0x100049a	]	};
    key	<AD03> {	[      Cyrillic_u,	Cyrillic_U	]	};
    key	<AD04> {	[     Cyrillic_ka,     Cyrillic_KA	]	};
    key	<AD05> {	[     Cyrillic_ie,     Cyrillic_IE	]	};
    key	<AD06> {	[     Cyrillic_en,     Cyrillic_EN	]	};
    key	<AD07> {	[    Cyrillic_ghe,    Cyrillic_GHE	]	};
    key	<AD08> {	[    Cyrillic_sha,    Cyrillic_SHA	]	};
    key	<AD09> {	[    0x10004b3,    0x10004b2	]	};
    key	<AD10> {	[     Cyrillic_ze,     Cyrillic_ZE	]	};
    key	<AD11> {	[     Cyrillic_ha,     Cyrillic_HA	]	};
    key	<AD12> {	[Cyrillic_hardsign,Cyrillic_HARDSIGN	]	};
    key	<AC01> {	[     Cyrillic_ef,     Cyrillic_EF	]	};
    key	<AC02> {	[    0x10004b7,    0x10004b6	]	};
    key	<AC03> {	[     Cyrillic_ve,     Cyrillic_VE	]	};
    key	<AC04> {	[      Cyrillic_a,	Cyrillic_A	]	};
    key	<AC05> {	[     Cyrillic_pe,     Cyrillic_PE	]	};
    key	<AC06> {	[     Cyrillic_er,     Cyrillic_ER	]	};
    key	<AC07> {	[      Cyrillic_o,	Cyrillic_O	]	};
    key	<AC08> {	[     Cyrillic_el,     Cyrillic_EL	]	};
    key	<AC09> {	[     Cyrillic_de,     Cyrillic_DE	]	};
    key	<AC10> {	[    Cyrillic_zhe,    Cyrillic_ZHE	]	};
    key	<AC11> {	[      Cyrillic_e,	Cyrillic_E	]	};
    key	<AB01> {	[     Cyrillic_ya,     Cyrillic_YA	]	};
    key	<AB02> {	[    Cyrillic_che,    Cyrillic_CHE	]	};
    key	<AB03> {	[     Cyrillic_es,     Cyrillic_ES	]	};
    key	<AB04> {	[     Cyrillic_em,     Cyrillic_EM	]	};
    key	<AB05> {	[      Cyrillic_i,	Cyrillic_I	]	};
    key	<AB06> {	[     Cyrillic_te,     Cyrillic_TE	]	};
    key	<AB07> {	[    0x10004e3,    0x10004e2	]	};
    key	<AB08> {	[     Cyrillic_be,     Cyrillic_BE	]	};
    key	<AB09> {	[     Cyrillic_yu,     Cyrillic_YU	]	};
 
    include "keypad(comma)"
    include "level3(ralt_switch)"

 };



************



// --------------------------------------------------------------------
// -------------- Tojiki Rusi Keyboard Layout--------------------------
// --------------------------------------------------------------------
// AEN <aen@logic.ru>
// 2001/12/23 by Leon Kanter <leon@blackcatlinux.com>
// 2005/12/09 Valery Inozemtsev <shrek@altlinux.ru>
// Pablo Saratxaga <pablo@mandrakesoft> (for the dead keys changes)
// --------------------------------------------------------------------

partial alphanumeric_keys 
xkb_symbols "tojikirusi" {
    name[Group1]= "Tojikiston - TojikiRusi";
    key <AE01> {        [            1,       exclam, 0x10000a7         ]       };
    key <AE02> {        [            2,     quotedbl, 0x10000ab, 0x10000bb     
]       };
    key <AE03> {        [               3,      numerosign      ]       };
    key <AE04> {        [               4,       semicolon      ]       };
    key <AE05> {        [               5,         percent      ]       };
    key <AE06> {        [             6,       colon, 0x1002013 ]       };
    key <AE07> {        [             7,    question, ampersand ]       };
    key <AE08> {        [               8,        asterisk      ]       };
    key	<AE09> {	[		9,	 parenleft	]	};
    key	<AE10> {	[		0,	parenright	]	};
    key	<AE11> {	[	    minus,	underscore	]	};
    key	<AE12> {	[	    equal,	      plus	]	};
    key <BKSL> {        [       backslash,           slash      ]       };
    key <AB10> {        [          period,           comma      ]       };
    key <LSGT> {        [           slash,             bar      ]       };
    key	<TLDE> {	[     Cyrillic_io,     Cyrillic_IO	]	};
    key	<AD01> {	[ Cyrillic_shorti, Cyrillic_SHORTI	]	};
    key	<AD02> {	[    Cyrillic_tse,    Cyrillic_TSE	]	};
    key <AD03> {        [      Cyrillic_u,      Cyrillic_U,     0x10004ef,     
0x10004ee     ]        };
    key <AD04> {        [     Cyrillic_ka,     Cyrillic_KA,     0x100049b,     
0x100049a     ]        };
    key	<AD05> {	[     Cyrillic_ie,     Cyrillic_IE	]	};
    key	<AD06> {	[     Cyrillic_en,     Cyrillic_EN	]	};
    key <AD07> {        [    Cyrillic_ghe,    Cyrillic_GHE,     0x1000493,     
0x1000492     ]        };
    key	<AD08> {	[    Cyrillic_sha,    Cyrillic_SHA	]	};
    key	<AD09> {	[  Cyrillic_shcha,  Cyrillic_SHCHA	]	};
    key	<AD10> {	[     Cyrillic_ze,     Cyrillic_ZE	]	};
    key <AD11> {        [     Cyrillic_ha,     Cyrillic_HA,     0x10004b3,     
0x10004b2     ]        };
    key	<AD12> {	[Cyrillic_hardsign,Cyrillic_HARDSIGN	]	};
    key	<AC01> {	[     Cyrillic_ef,     Cyrillic_EF	]	};
    key	<AC02> {	[   Cyrillic_yeru,   Cyrillic_YERU	]	};
    key	<AC03> {	[     Cyrillic_ve,     Cyrillic_VE	]	};
    key	<AC04> {	[      Cyrillic_a,	Cyrillic_A	]	};
    key	<AC05> {	[     Cyrillic_pe,     Cyrillic_PE	]	};
    key	<AC06> {	[     Cyrillic_er,     Cyrillic_ER	]	};
    key	<AC07> {	[      Cyrillic_o,	Cyrillic_O	]	};
    key	<AC08> {	[     Cyrillic_el,     Cyrillic_EL	]	};
    key	<AC09> {	[     Cyrillic_de,     Cyrillic_DE	]	};
    key	<AC10> {	[    Cyrillic_zhe,    Cyrillic_ZHE	]	};
    key	<AC11> {	[      Cyrillic_e,	Cyrillic_E	]	};
    key	<AB01> {	[     Cyrillic_ya,     Cyrillic_YA	]	};
    key <AB02> {        [    Cyrillic_che,    Cyrillic_CHE,     0x10004b7,     
0x10004b6     ]        };
    key	<AB03> {	[     Cyrillic_es,     Cyrillic_ES	]	};
    key	<AB04> {	[     Cyrillic_em,     Cyrillic_EM	]	};
    key <AB05> {        [      Cyrillic_i,      Cyrillic_I,     0x10004e3,     
0x10004e2     ]        };
    key	<AB06> {	[     Cyrillic_te,     Cyrillic_TE	]	};
    key	<AB07> {	[Cyrillic_softsign,Cyrillic_SOFTSIGN	]	};
    key	<AB08> {	[     Cyrillic_be,     Cyrillic_BE	]	};
    key	<AB09> {	[     Cyrillic_yu,     Cyrillic_YU	]	};

    include "keypad(comma)"

    include "level3(ralt_switch)"

};
Comment 1 Simos Xenitellis 2008-10-08 08:55:25 UTC
Created attachment 19499 [details]
Small beautification of the new layout

Hi Victor,

This is an updated file for the layout. There are no changes to the keys.
What has changed is that at the end of each line you can see what character is printed, so it might help. 
Please verify that I did not make any accidental changes in the layout.

Could you please remind me of the six characters that are new to the Tajik script?
Is it these characters  ЁӮӼӋӃЙ ?

Are you still interested in using 'dead keys' for these characters?
Comment 2 Victor Ibragimov 2008-10-09 01:32:26 UTC
To Have Two Layouts Available

Hi Simos,

Thanks for the beautification of the two provided layouts. Looks like everything is correct in the attachment.
Right, the bug provide information about two different layouts, where one of the layouts is using 'dead keys' for 6 Tajik characters. 

The key of the bug is to have both (two) layouts available.
1) Tojiki Rusi Keyboard Layout, using 'dead keys' for these characters, and
2) Standard Tojiki Keyboard Layout, Official Standard, Required

These are the 6 Tajik characetrs with the issue to layout on the keyboard:
ӣ Ӣ, ҷ Ҷ, қ Қ, ҳ Ҳ,  ғ Ғ,  ӯ Ӯ
Comment 3 Simos Xenitellis 2008-10-09 04:20:46 UTC
Created attachment 19530 [details] [review]
Patch to base.xml.in

Victor, 

This is a patch that is required so that for Tajikistan, you will have the two options in the menus. The user will be able to choose which layout to have.
Comment 4 Victor Ibragimov 2008-10-09 06:41:05 UTC
Hi Simos,

That is exactly what I have suggested: to have an option for the user to choose which layout to have from the menu. Thanks for the patch.
The aim for now is to have it all get into Linux. I currently keep working on Fedora localization and the primary bug was filed at:
https://bugzilla.redhat.com/show_bug.cgi?id=455796

Would be nice to see next release of Fedora in Tajik along with the keyboard layout options.



Comment 5 Sergey V. Udaltsov 2008-10-11 09:12:28 UTC
Would you mind if I change variants names:
- "official" to "std"("Tojikiston - Standard") 
- "tojikirusi" to "rus"("Tojikiston - Russian")
That would be easier for translators.
Comment 6 Victor Ibragimov 2008-10-11 09:47:07 UTC
Sergey, thank you, at some point yes, please, change the "official" to "std"("Tojikiston - Standard"). As for "tojikirusi", I think please, change it to "advanced", it's close to what we have suggested:

- "official" to "std"("Tojikiston - Standard") 
- "tojikirusi" to "adv"("Tojikiston - Advanced")

--->
Comment 7 Sergey V. Udaltsov 2008-10-11 09:52:33 UTC
I am not sure "Advanced" gives some idea about the nature of that variant. We'll have: basic, std, ??? What about "legacy" perhaps?
Comment 8 Victor Ibragimov 2008-10-11 09:57:28 UTC
"legacy" sounds good. thnx!
Comment 9 Sergey V. Udaltsov 2008-10-11 13:14:17 UTC
Committed. Please check in git.

2Simos: the description in base.xml.in should not include the country name explicitly. Also, by default all variants belong to the same language as the layout itself, unless specified explicitly - so in current patch, there was no need to provide 2 language lists. Thanks for the help anyway:)
Comment 10 Victor Ibragimov 2008-10-12 07:35:34 UTC
Created attachment 19606 [details] [review]
Updated symbols/tj

Sergey, Thanks for the great work.

I have a little comment to make sure no conflicts or repititions exist at symbols-tj, posted in git.

Looks like (xkb_symbols "legacy") contain the same data given from (xkb_symbols "basic").

Both "basic" and "legacy" stand for the 'dead keys'... Please, use just "standard" and "legacy" for symbols/tj.

I have attached updated symbols/tj (:::updated_symbols-tj:::), that also contains some additional information for "standard" characters
and their replacements for the other keys on the keyboard.

Thanks
Comment 11 Sergey V. Udaltsov 2008-10-13 14:28:57 UTC
What I did is renamed "std" to "basic" (and it is default now). The "legacy" remains as it is. Commited. Please check from git.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.