moebiuscurve / ibus-table-others

ibus-table-others
code.google.com/p/ibus/
GNU General Public License v3.0
15 stars 8 forks source link

Old Hungarian section has non-unicode chars #29

Closed rovasiras closed 1 year ago

rovasiras commented 1 year ago

Q, W, X, Y, DZS and DZ are not a part of Unicode's Old Hungarian standard

rovasiras commented 1 year ago

See: https://unicode.org/charts/PDF/U10C80.pdf

rovasiras commented 1 year ago

Pictures of Old Hungarian layout in keyman.com project. It's 99% compatible with xkeyboard-config project's "Old Hungarian (for ligatures)" layout.

base:

LayoutU_

shifted:

LayoutU_S

ralt:

LayoutU_RA

shift+ralt:

LayoutU_SRA

JB means Jobbról-balra ->Right to Left BJ means Balról jobbra ->Left to Right Lig means the "Zero Width Joiner" key.

mike-fabian commented 1 year ago

Q, W, X, Y, DZS and DZ are not a part of Unicode's Old Hungarian standard

These are ligatures, see:

https://en.wikipedia.org/wiki/Old_Hungarian_script

Typing DZ gives you:

U+10C87 OLD HUNGARIAN CAPITAL LETTER ED U+200D ZERO WIDTH JOINER U+10CAF OLD HUNGARIAN CAPITAL LETTER EZ

Which looks like:

𐲇‍𐲯

If you have a font supporting this, you will see that as a ligature.

This font supports it:

https://oldhungarian.eu/index_en.html

Note that the google-noto-sans-old-hungarian (https://fonts.google.com/noto/specimen/Noto+Sans+Old+Hungarian) does not seem to support these ligatures!

Typing DZS (or DZs or Dzs) will give you

U+10C87 OLD HUNGARIAN CAPITAL LETTER ED U+200D ZERO WIDTH JOINER U+10CB0 OLD HUNGARIAN CAPITAL LETTER EZS

Which looks like:'

𐲇‍𐲰

Again, with a font supporting this, you will see this as a ligature.

The Wikipedia page https://en.wikipedia.org/wiki/Old_Hungarian_script has pictures also for these ligatures, so you can see how they should look like.

mike-fabian commented 1 year ago

Pictures of Old Hungarian layout in keyman.com project. It's 99% compatible with xkeyboard-config project's "Old Hungarian (for ligatures)" layout. base:

If you want a keyboard layout which directly types Old Hungarian, you should use this xkeyboard-config project's "Old Hungarian (for ligatures)" layout.

The input methods in ibus-table and the similar input method in m17n:

https://git.savannah.nongnu.org/cgit/m17n/m17n-db.git/tree/MIM/hu-rovas-post.mim https://github.com/mike-fabian/m17n-db-rovas

are sort of “phonetic” input methods. You can use them to type Old Hungarian using a regular keyboard layout plus this input method.

I.e. you type what is in the first column of the table in the “Characters” section in

https://en.wikipedia.org/wiki/Old_Hungarian_script

and you get what is in the 5th column of that table.

I.e. you type the modern Hungarian letters (Latin script) and you get the old ones.

The ibus-table version of that input method assumes you are using a keyboard layout where you can type the accented characters like ú, ü, ű, ...

That means you will probably have to use a “normal” Hungarian keyboard layout, because only then you will have all the characters in the first column of the table in the above Wikipedia page available.

The similar m17n version of that input method

https://git.savannah.nongnu.org/cgit/m17n/m17n-db.git/tree/MIM/hu-rovas-post.mim https://github.com/mike-fabian/m17n-db-rovas

is actually a little bit different, because it assumes only that you have a keyboard which can type ASCII. For example the US English keyboard layout or any other keyboard layout whcih can be used to type ASCII.

For example, when using the m17n version of that input method one types u' to get ú, u" to get ü, u: to get ű:

Latin letter(s) | Input sequence | Old Hungarian
================================================
...
u                 u                𐳪
U                 U                𐲪
ú                 u'               𐳫
Ú                 U'               𐲫
ü                 u"               𐳬
Ü                 U"               𐲬
ű                 u:               𐳭
Ű                 U:               𐲭

For the full list, see the start of the file:

https://git.savannah.nongnu.org/cgit/m17n/m17n-db.git/tree/MIM/hu-rovas-post.mim

mike-fabian commented 1 year ago

The m17n variant of this input method (hu-rovas-post.mim) can be used both with ibus-m17n and with ibus-typing-booster.

mike-fabian commented 1 year ago

In this video, I first choose an US English keyboard layout, and then I use

With each of these 3 input methods, I type Dzs and the result is

U+10C87 OLD HUNGARIAN CAPITAL LETTER ED U+200D ZERO WIDTH JOINER U+10CB0 OLD HUNGARIAN CAPITAL LETTER EZS

in all 3 cases.

https://github.com/moebiuscurve/ibus-table-others/assets/2330175/b245f945-35a6-4b07-81dc-dd61fbe15bc4

mike-fabian commented 1 year ago

So I think this is not a bug, the ligatures are not single Unicode code points, as https://en.wikipedia.org/wiki/Old_Hungarian_script says:

The alphabet did not contain letters for the phonemes dz and dzs of modern Hungarian, since these are relatively recent developments in the language's history. Nor did it have letters corresponding to the Latin q, w, x and y. The modern revitalization movement has created symbols for these; in Unicode encoding, they are represented as ligatures.

rovasiras commented 1 year ago

1st: Who are "modern revitalization movement" exactly? I never heard before. However, I heard about dr. Gábor Hosszú, Tamás Rumi and László Sípos, who nominally accepted the standardization of Old Hungarian alphabet defined in 2008, but they did not act as agreed. (They are architects) In 2012, after the Solt city conference, they withdrew their trust. You can read about Solt city's conference at https://magyarrovas.hu/solti-dontes/ https://magyarrovas.hu/hosszu-felmentese/

They, these architects, also wanted to include "Khazar" letters in the standard. The problem with this is that the Khazarian language is extinct, it is also disputed what kind of language it was. These three architects learned their knowledge of Old Hungarian writing from what they later called amateurs. Then they (architects) crossed more historical facts.

2nd: You can read in "A magyar helyesírás szabályai, tizenkettedik kiadás, 2015" (The rules of Hungarian spelling, 12th edition in the year of 2015) ISBN 978 963 05 9631 2, (This is the work of the Hungarian Academy of Sciences - in Hungarian: "Magyar Tudományos Akadémia" short form "MTA") "The alphabet, 10. The alphabet is a set of letters and the order in which they are listed. 40 lowercase letters representing Hungarian vowels and consonants (the Hungarian alphabet): a, á, b, c, cs, d, dz, dzs, e, é, f, g, gy, h, i, í, j, k, l, ly, m, n, ny, o, o, ö, ö, p, r, s, sz, t, ty, u, ú, ü, ű, v, z, zs." "q", "x", "w" and "y" used alone are only "letters that occur frequently in writing practice" For example we also use the letter "ä" in the surname "Schäffer", it is not yet a Hungarian letter. The Hungarian Academy of Sciences tries to adhere to this principle. quantum physics -> Kvantumfizika quad -> kvad spray -> spré nylon -> nejlon The letter "W" in the noble name Wesselényi was originally written as "V" - for example, Baroness Kata Vesselényi of Hadidi. Now at this moment I can't upload Klára Friedrich's photo as proof. This noble family comes from Transylvania. They are not Romanians, but Hungarians. After the Kingdom of Hungary and Transylvania were completely absorbed by the Austrian Empire, this obvious Germanization became necessary, since the Germans take the letter "v" as an "f" sound. The Austrian people are a German-speaking people.

3rd: More nations use "dz" and "dzs" as letter SEQUENCE: German "dzs" is: "Dsch" Czech, Slovak, Sloven, Croatian: "dž" Polish: "dż" Cyril: (except Serbian and Macedonian): "дж"

4th: In different languages, the letter "Y" has different phonemes in their Latin-based scripts. For example "Jysk", in this case "y" means in Hungarian and German "ü". Traditionally, the letter "Y" should be written according to the pronunciation in the Old Hungarian script.

5th: As you know, ligatures would appear as a sign.

6th: The Old Hungarian alphabet is Hungarian alphabet. It it is not international script.

7th: The ligatures, they prefer, "Q" is really "KV" ligature or in Roman-Latin "Qu", words like "IQ" and "SQL" cannot be written with this. Their letter "Y" is formally a ligature of "IJ" or "JI", although they call it the letter "Y" for nothing. The shape of their "ligature" "w" was chosen arbitrarily. Only the Old Hungarian ligature "ksz" can be understood as the letter "x".

8th: If they modernize, why don't they use the Polish letter "Ł". It's not "L". Try the name "Łódź" with google translator to say it in Polish.

Digest this and don't come up with all kinds of wikipedia articles. Wikipedia is a free system, anyone can write anything.

rovasiras commented 1 year ago

@mike-fabian It is not a good choice, using ligatures as "modernization". Its appearance depends on the font used, whether it supports the given ligature or not.

rovasiras commented 1 year ago

So I think this is not a bug, the ligatures are not single Unicode code points, as https://en.wikipedia.org/wiki/Old_Hungarian_script says:

The alphabet did not contain letters for the phonemes dz and dzs of modern Hungarian, since these are relatively recent developments in the language's history. Nor did it have letters corresponding to the Latin q, w, x and y. The modern revitalization movement has created symbols for these; in Unicode encoding, they are represented as ligatures.

I don't think that ~10 words with "dz letter" and ~20-30 words with "dzs letter" from a vocabulary of 160,000 words mean "relative recently".

rovasiras commented 1 year ago

Q, W, X, Y, DZS and DZ are not a part of Unicode's Old Hungarian standard

These are ligatures, see:

https://en.wikipedia.org/wiki/Old_Hungarian_script

Typing DZ gives you:

U+10C87 OLD HUNGARIAN CAPITAL LETTER ED U+200D ZERO WIDTH JOINER U+10CAF OLD HUNGARIAN CAPITAL LETTER EZ

Which looks like:

𐲇‍𐲯

If you have a font supporting this, you will see that as a ligature.

This font supports it:

https://oldhungarian.eu/index_en.html

I know this font well. It has small and capital "closed e" with non standard form. This is due to the misunderstanding that the word "closed" refers to the sound form. The reality is that this letter in the sample text of the Rudimenta find "Our Father's Prayer" has some "e" in a closed FORM. Note that the google-noto-sans-old-hungarian (https://fonts.google.com/noto/specimen/Noto+Sans+Old+Hungarian) does not seem to support these ligatures!

These ligatures are included in the Noto project font in lower case. Thanks to the teasing behaviour of Tamás Rumi, the upper case ligatures were not produced. He wanted to have these symbols inserted at specific code points. He was also politicised in the Noto project coordination. This was too much for the Noto developers, they closed the Old Hungarian issue at all.

Typing DZS (or DZs or Dzs) will give you

U+10C87 OLD HUNGARIAN CAPITAL LETTER ED U+200D ZERO WIDTH JOINER U+10CB0 OLD HUNGARIAN CAPITAL LETTER EZS

Which looks like:'

𐲇‍𐲰

Again, with a font supporting this, you will see this as a ligature.

The Wikipedia page https://en.wikipedia.org/wiki/Old_Hungarian_script has pictures also for these ligatures, so you can see how they should look like.

mike-fabian commented 1 year ago

I don't think that ~10 words with "dz letter" and ~20-30 words with "dzs letter" from a vocabulary of 160,000 words mean "relative recently".

OK, so that means words with dz letter and words with dzs letter are extremely rare, right?

Still, if the existance of dz expanding to the ligature 𐳇‍𐳯 does not interfere with other things one wants to type, we could possibly leave it in for the rare cases where it might be useful.

It might interfere with normal typing though, it makes it very hard to type 𐳇𐳯 because instead of getting the seperate letters 𐳇 and 𐳯 one would get the ligature and when one wants the seperate letters instead one would need to type something like d + arrow_right + z which is crazy. So if there are any cases at all where one wants to type dz and get 𐳇𐳯, then the ligature has to be removed. If one never wants this, then leaving dz expanding to the ligature as it is would be OK because then it would never do any harm.

Another idea would be to change the input sequence for these ligatures from dz to _dz because then they would never occur in normal typing but they could still be used for the rare cases where one wants that ligature.

I have already added a standalone ZWJ because of your request (https://github.com/moebiuscurve/ibus-table-others/issues/35) using that it is of course also possible to type these ligatures if one wants to. It is OK if there is more than one way to do things.

I have a similar question about things like gy expanding to 𐳎. This is fine as long as gy should always expand to 𐳎 and one never wants anything else when typing gy. Then it won't hurt and could be convenient.

On the xkeyboard config layout, 𐳎 is typed by pressing the q key.

In the hu-old-hungarian-rovas.txt, q currently produces the ligature 𐳓‍𐳮.

That would be OK if one uses gy to get 𐳎.

Maybe I could move the ligature to _q expanding to 𐳓‍𐳮 and make just q expand to 𐳎.

At the moment I think it might be OK if all the ligatures get a _ prefix, then they are out of the way to do harm but still accessible if wanted.

Keys which then become free like q can then get the same mapping as in xkeyboard-config.

What about the sequences of more than one key which currently do not expand into a ligature like gy expanding to 𐳎? Are they useful? Do they cause any harm?

The purpose of an ibus-table input method is not really to emulate a certain keyboard layout as exactly as possible. Theoretically it is possible to to emulare the Old Hungarian layout from xkeyboard-config pretty closely (except for having to use an alternative to AltGr). But then why not use that xkeyboard-config layout instead if ibus-table behaves almost identical? Emulating a keyboard layout as exactly as possible would be useful only on systems where that keyboard layout is missing for whatever reason. But on all Linux distributions, the Old Hungarian xkeyboard-config layout exists. If that is what one wants, one can use just that.

xkeyboard-config layouts have these limitations:

ibus-table however can do that:

I think it would be best to use these advantages ibus-table has to do additional convenient things the xkeyboard-config layout cannot do.

I.e. not just try to emulate the xkeyboard-config layout as closely as possible, but add other useful stuff which is impossible with the xkeyboard-config layout.

mike-fabian commented 1 year ago

I made many changes now which I hope address all the issues you mentioned.

I have pushed these changes to the release-candidate-1.3.16 branch in my fork.

Can you please test this?:

https://github.com/mike-fabian/ibus-table-others/blob/release-candidate-1.3.16/tables/hu-old-hungarian-rovas.txt

mike-fabian commented 1 year ago

I pushed another improvement to the release-candidate-1.3.16 branch in my fork.

To make this usable on almost any keyboard layout, not only the Hungarian layout, I added Latin postfix input like this:

a   𐳀   0   ### U+10CC0 OLD HUNGARIAN SMALL LETTER A
A   𐲀   0   ### U+10C80 OLD HUNGARIAN CAPITAL LETTER A
/a  𐳃   0   ### U+10CC3 OLD HUNGARIAN SMALL LETTER AMB
/A  𐲃   0   ### U+10C83 OLD HUNGARIAN CAPITAL LETTER AMB
á   𐳁   0   ### U+10CC1 OLD HUNGARIAN SMALL LETTER AA
Á   𐲁   0   ### U+10C81 OLD HUNGARIAN CAPITAL LETTER AA
a'  𐳁   0   ### U+10CC1 OLD HUNGARIAN SMALL LETTER AA
A'  𐲁   0   ### U+10C81 OLD HUNGARIAN CAPITAL LETTER AA
a'' 𐳁'  0   ### U+10CC1 OLD HUNGARIAN SMALL LETTER AA
A'' 𐲁'  0   ### U+10C81 OLD HUNGARIAN CAPITAL LETTER AA
/á  𐳈   0   ### U+10CC8 OLD HUNGARIAN SMALL LETTER AND
/Á  𐲈   0   ### U+10C88 OLD HUNGARIAN CAPITAL LETTER AND
/a' 𐳈   0   ### U+10CC8 OLD HUNGARIAN SMALL LETTER AND
/A' 𐲈   0   ### U+10C88 OLD HUNGARIAN CAPITAL LETTER AND
/a''    𐳈'  0   ### U+10CC8 OLD HUNGARIAN SMALL LETTER AND
/A''    𐲈'  0   ### U+10C88 OLD HUNGARIAN CAPITAL LETTER AND

I.e. if one does not have á on the keyboard layout, one can type a' instead and instead of one can type /a' (The / is the replacement for AltGr because AltGr cannot work with ibus-table)

mike-fabian commented 1 year ago

To test it, you can download the file:

https://raw.githubusercontent.com/mike-fabian/ibus-table-others/release-candidate-1.3.16/tables/hu-old-hungarian-rovas.txt

then compile it, install it, and restart ibus:

ibus-table-createdb -s hu-old-hungarian-rovas.txt
sudo cp hu-old-hungarian-rovas.db  /usr/share/ibus-table/tables/hu-old-hungarian-rovas.db
ibus restart
mike-fabian commented 1 year ago

Oh, I had one extra DYNAMIC_ADJUST = TRUE in my last pushed, it should be FALSE, I pushed again to the release-candidate-1.3.16 branch with that fix.

rovasiras commented 1 year ago

I don't think that ~10 words with "dz letter" and ~20-30 words with "dzs letter" from a vocabulary of 160,000 words mean "relative recently".

OK, so that means words with dz letter and words with dzs letter are extremely rare, right?

Still, if the existance of dz expanding to the ligature 𐳇‍𐳯 does not interfere with other things one wants to type, we could possibly leave it in for the rare cases where it might be useful.

It might interfere with normal typing though, it makes it very hard to type 𐳇𐳯 because instead of getting the seperate letters 𐳇 and 𐳯 one would get the ligature and when one wants the seperate letters instead one would need to type something like d + arrow_right + z which is crazy. So if there are any cases at all where one wants to type dz and get 𐳇𐳯, then the ligature has to be removed. If one never wants this, then leaving dz expanding to the ligature as it is would be OK because then it would never do any harm.

Another idea would be to change the input sequence for these ligatures from dz to _dz because then they would never occur in normal typing but they could still be used for the rare cases where one wants that ligature.

I have already added a standalone ZWJ because of your request (#35) using that it is of course also possible to type these ligatures if one wants to. It is OK if there is more than one way to do things.

I have a similar question about things like gy expanding to 𐳎. This is fine as long as gy should always expand to 𐳎 and one never wants anything else when typing gy. Then it won't hurt and could be convenient.

On the xkeyboard config layout, 𐳎 is typed by pressing the q key.

In the hu-old-hungarian-rovas.txt, q currently produces the ligature 𐳓‍𐳮.

That would be OK if one uses gy to get 𐳎.

Maybe I could move the ligature to _q expanding to 𐳓‍𐳮 and make just q expand to 𐳎.

At the moment I think it might be OK if all the ligatures get a _ prefix, then they are out of the way to do harm but still accessible if wanted.

Keys which then become free like q can then get the same mapping as in xkeyboard-config.

What about the sequences of more than one key which currently do not expand into a ligature like gy expanding to 𐳎? Are they useful? Do they cause any harm?

This is because there are more sounds in Hungarian than there are letters in the Latin alphabet. The letter combination "gy" was defined for a single sound in the period of language renewal (18th-19th century), which is a sign (𐳎) in the Old Hungarian alphabet used mainly by Szeklers. It is not a ligature.

The purpose of an ibus-table input method is not really to emulate a certain keyboard layout as exactly as possible. Theoretically it is possible to to emulare the Old Hungarian layout from xkeyboard-config pretty closely (except for having to use an alternative to AltGr). But then why not use that xkeyboard-config layout instead if ibus-table behaves almost identical? Emulating a keyboard layout as exactly as possible would be useful only on systems where that keyboard layout is missing for whatever reason. But on all Linux distributions, the Old Hungarian xkeyboard-config layout exists. If that is what one wants, one can use just that.

xkeyboard-config layouts have these limitations:

* Pressing one key always outputs **exactly** one character, never a string of more than one character.

* It is impossible that a sequence of more than one key produces only one character.

ibus-table however can do that:

* One input character can produce an arbitray long output string

* A string of several input characters can produce a single output character

I think it would be best to use these advantages ibus-table has to do additional convenient things the xkeyboard-config layout cannot do.

I.e. not just try to emulate the xkeyboard-config layout as closely as possible, but add other useful stuff which is impossible with the xkeyboard-config layout.

mike-fabian commented 1 year ago

On the xkeyboard config layout, 𐳎 is typed by pressing the q key. In the hu-old-hungarian-rovas.txt, q currently produces the ligature 𐳓‍𐳮. That would be OK if one uses gy to get 𐳎. Maybe I could move the ligature to _q expanding to 𐳓‍𐳮 and make just q expand to 𐳎. At the moment I think it might be OK if all the ligatures get a _ prefix, then they are out of the way to do harm but still accessible if wanted. Keys which then become free like q can then get the same mapping as in xkeyboard-config. What about the sequences of more than one key which currently do not expand into a ligature like gy expanding to 𐳎? Are they useful? Do they cause any harm?

This is because there are more sounds in Hungarian than there are letters in the Latin alphabet. The letter combination "gy" was defined for a single sound in the period of language renewal (18th-19th century), which is a sign (𐳎) in the Old Hungarian alphabet used mainly by Szeklers. It is not a ligature.

So I guess it is probably OK and useful to have gy expand to 𐳎 and make q produce 𐳎 as well (like on the xkeyboard-config layout) and make _q produce the ligature 𐳓‍𐳮.

That is what the version in my current release-candidate-1.3.16 branch does.

Were you able to test it? Is it OK?

rovasiras commented 1 year ago

On the xkeyboard config layout, 𐳎 is typed by pressing the q key. In the hu-old-hungarian-rovas.txt, q currently produces the ligature 𐳓‍𐳮. That would be OK if one uses gy to get 𐳎. Maybe I could move the ligature to _q expanding to 𐳓‍𐳮 and make just q expand to 𐳎. At the moment I think it might be OK if all the ligatures get a _ prefix, then they are out of the way to do harm but still accessible if wanted. Keys which then become free like q can then get the same mapping as in xkeyboard-config. What about the sequences of more than one key which currently do not expand into a ligature like gy expanding to 𐳎? Are they useful? Do they cause any harm?

This is because there are more sounds in Hungarian than there are letters in the Latin alphabet. The letter combination "gy" was defined for a single sound in the period of language renewal (18th-19th century), which is a sign (𐳎) in the Old Hungarian alphabet used mainly by Szeklers. It is not a ligature.

So I guess it is probably OK and useful to have gy expand to 𐳎 and make q produce 𐳎 as well (like on the xkeyboard-config layout) and make _q produce the ligature 𐳓‍𐳮.

The biggest mistake is to enter the letter "q" to get the letter "gy" or "𐳎"! The reason why the letter "gy" is in place of "q" on the Old Hungarian keyboard is because it was a free space and all the keys were needed for general use. The letter combination "gy" is ONE sound in Latin-based Hungarian writing, it is not a ligature.

Ps.: I don't know, how to start the GUI of ibus.

That is what the version in my current release-candidate-1.3.16 branch does.

Were you able to test it? Is it OK?

mike-fabian commented 1 year ago

The biggest mistake is to enter the letter "q" to get the letter "gy" or "𐳎"! The reason why the letter "gy" is in place of "q" on the Old Hungarian keyboard is because it was a free space and all the keys were needed for general use. The letter combination "gy" is ONE sound in Latin-based Hungarian writing, it is not a ligature.

Yes, I also think that it is probably more natural to type gy to get 𐳎 and that it is only on q on the xkeyboard-config layout because Xorg keyboard layouts cannot do something like typing two characters gy and produce one character 𐳎 as output. So as the q key was free, it was used as a workaround. But in ibus-table we can make gy output 𐳎 which is probably nicer.

In the current release candidate, both q and gy output the same character 𐳎 .

Before my recent changes, I had the ligature 𐳓‍𐳮 on q. In the most recent version I moved that ligature to /q and made q do the same as on the xkeyboard-config layout to help users which might know the xkeyboard-config layout already.

q 𐳎 0 ### U+10CCE OLD HUNGARIAN SMALL LETTER EGY

/q 𐳓‍𐳮 0 ### Ligature U+10CD3 U+200D U+10CEE

If you think this is not needed, then I could revert that change and put the ligature back on q. Even if that ligature is very rarely used it is probably better to have it on q than make q do nothing at all. So the question is should q do the same as gy, i.e. 𐳎 or should it output the ligature 𐳓‍𐳮? Doing nothing seems a bit wasteful, we can make the q key do something useful.

Ps.: I don't know, how to start the GUI of ibus.

What distribution are you using?

Do you have the ibus and ibus-table packages already installed and only need to add it to your GUI?

On Fedora, you would install these by

sudo dnf install ibus ibus-table ibus-table-latin

ibus-table-latin because hu-old-hungarian-rovas.db is in that package on Fedora:

$ rpm -qf /usr/share/ibus-table/tables/hu-old-hungarian-rovas.db 
ibus-table-latin-1.3.15-1.fc38.noarch

On Debian or Ubuntu you would the ibus-table-old-hungarian-rovas_<version>_all.deb package.

If you have the right packages installed, you need to add the input method to your desktop.

Are you using Gnome or some other desktop?

On Gnome, you do it similar to the instructions for ibus-typing-booster here:

https://mike-fabian.github.io/ibus-typing-booster/docs/user/#1_1

Just instead of searching for booster, search for Hungarian and select Hungarian (Old Hungarian) as in this screenshot:

Screenshot

Note that in my screenshot there are two entries for Old Hungarian:

The second one is the ibus-table version which we are discussing here.

The first one is the m17n-lib version. We can improve the m17n-lib version as well when we are finished improving the ibus-table version.

If you selected the right one, clicking on the 3 vertical dots to the right of Hungarian (Old Hungarian) should open a menu which contains Preferences, clicking on that should open the ibus-table setup tool for the hu-old-hungarian-rovas table.

On other desktops than gnome you use the ibus-setup tool as described here:

https://mike-fabian.github.io/ibus-typing-booster/docs/user/#1_3

mike-fabian commented 1 year ago

Were you able to test it? Is it OK?

rovasiras commented 1 year ago

Were you able to test it? Is it OK?

Sorry , I'm busy. If I'll enough time, I'll test it. I promisse.

mike-fabian commented 1 year ago

@rovasiras Could you find time to test it?

rovasiras commented 1 year ago

@rovasiras Could you find time to test it?

I'll try today.

mike-fabian commented 1 year ago

Great!

mike-fabian commented 1 year ago

I can help if you have any problems installing it.

rovasiras commented 1 year ago

I can help if you have any problems installing it.

I use opensuse tumbleweed with GNOME.

rovasiras commented 1 year ago

@mike-fabian ibus-table-latin is missing form the repo of Opensuse Tumbleweed.

mike-fabian commented 1 year ago

@mike-fabian ibus-table-latin is missing form the repo of Opensuse Tumbleweed.

I don't know how OpenSUSE packages this. But to test my improvements, you need to install the table from source from my release candidate branch (which has the fixes) anyway.

So on OpenSUSE, just install ibus-table and then do:

Download the file:

https://raw.githubusercontent.com/mike-fabian/ibus-table-others/release-candidate-1.3.16/tables/hu-old-hungarian-rovas.txt

(In the URL I gave here you see that it is the file from the release-candidate-1.3.16 branch.

Compile it and restart ibus:

ibus-table-createdb -s hu-old-hungarian-rovas.txt
sudo cp hu-old-hungarian-rovas.db  /usr/share/ibus-table/tables/hu-old-hungarian-rovas.db
ibus restart
rovasiras commented 1 year ago

@mike-fabian The first command (ibus-table-createdb...) has fault: it does not find bz2 python package, and I can not install bz2 python package (with pip), libs of bz2 installed. (dev version, too)

mike-fabian commented 1 year ago

@mike-fabian The first command (ibus-table-createdb...) has fault: it does not find bz2 python package, and I can not install bz2 python package (with pip), libs of bz2 installed. (dev version, too)

If you try this:

$ python3
Python 3.11.3 (main, May 24 2023, 00:00:00) [GCC 13.1.1 20230511 (Red Hat 13.1.1-2)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import bz2
>>> bz2.__file__
'/usr/lib64/python3.11/bz2.py'

it already fails for you?

mike-fabian commented 1 year ago

On Fedora 38, this module is already contained in the python3-libs package:

$ rpm -qf /usr/lib64/python3.11/bz2.py
python3-libs-3.11.3-2.fc38.x86_64
mike-fabian commented 1 year ago

Maybe installing this helps?: https://software.opensuse.org/package/python-bz2file

mike-fabian commented 1 year ago

I cannot reproduce your problem with bz2 on OpenSUSE.

I have installed OpenSUSE Tumbleweed and I can import bz2 in Python without problems;

mfabian@localhost:~/ibus-table-others/tables (release-candidate-1.3.16)
$ cat /etc/os-release 
NAME="openSUSE Tumbleweed"
# VERSION="20230625"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20230625"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:tumbleweed:20230625"
BUG_REPORT_URL="https://bugzilla.opensuse.org"
SUPPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed"
LOGO="distributor-logo-Tumbleweed"
mfabian@localhost:~/ibus-table-others/tables (release-candidate-1.3.16)
$ python3
Python 3.11.3 (main, Apr 27 2023, 22:08:21) [GCC] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import bz2
>>> bz2.__file__
'/usr/lib64/python3.11/bz2.py'
>>> 
mfabian@localhost:~/ibus-table-others/tables (release-candidate-1.3.16)
$ rpm -qf /usr/lib64/python3.11/bz2.py
python311-base-3.11.3-2.3.x86_64
mfabian@localhost:~/ibus-table-others/tables (release-candidate-1.3.16)
$ 

So it is in the python311-base package.

mike-fabian commented 1 year ago

@mike-fabian ibus-table-latin is missing form the repo of Opensuse Tumbleweed.

On OpenSUSE Tumbleweed, the hu-old-hungarian-rovas table is in the package ibus-table-hu-old-hungarian-rovas-1.3.13-2.3.noarch:

mfabian@localhost:~/ibus-table-others/tables (release-candidate-1.3.16)
$ rpm -qf /usr/share/ibus-table/tables/hu-old-hungarian-rovas.db 
ibus-table-hu-old-hungarian-rovas-1.3.13-2.3.noarch
mfabian@localhost:~/ibus-table-others/tables (release-candidate-1.3.16)
$ cat /etc/os-release 
NAME="openSUSE Tumbleweed"
# VERSION="20230625"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20230625"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:tumbleweed:20230625"
BUG_REPORT_URL="https://bugzilla.opensuse.org"
SUPPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed"
LOGO="distributor-logo-Tumbleweed"
mfabian@localhost:~/ibus-table-others/tables (release-candidate-1.3.16)
$ 
mike-fabian commented 1 year ago

Installing the improved Old Hungarian table on OpenSUSE:

Confirm we are on OpenSUSE:

mfabian@localhost:~
$ cat /etc/os-release 
NAME="openSUSE Tumbleweed"
# VERSION="20230625"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20230625"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:tumbleweed:20230625"
BUG_REPORT_URL="https://bugzilla.opensuse.org"
SUPPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed"
LOGO="distributor-logo-Tumbleweed"
mfabian@localhost:~
$

OK. Now clone my git repo:

mfabian@localhost:~
$ git clone  https://github.com/mike-fabian/ibus-table-others.git
Cloning into 'ibus-table-others'...
remote: Enumerating objects: 607, done.
remote: Counting objects: 100% (167/167), done.
remote: Compressing objects: 100% (58/58), done.
remote: Total 607 (delta 110), reused 164 (delta 108), pack-reused 440
Receiving objects: 100% (607/607), 1.47 MiB | 3.77 MiB/s, done.
Resolving deltas: 100% (395/395), done.
mfabian@localhost:~
$

Enter the git repo:

mfabian@localhost:~
$ cd ibus-table-others/tables
mfabian@localhost:~/ibus-table-others/tables (main)
$

Checkout the release-candidate-1.3.16 branch:

mfabian@localhost:~/ibus-table-others/tables (main)
$ git checkout -t origin/release-candidate-1.3.16
branch 'release-candidate-1.3.16' set up to track 'origin/release-candidate-1.3.16'.
Switched to a new branch 'release-candidate-1.3.16'
mfabian@localhost:~/ibus-table-others/tables (main)
$

Look into hu-old-hungarian-rovas.txt for example with less and check that you really have the improved version, if yes you should find ### U+200D ZERO WIDTH JOINER somewhere in there, that was not in the old version.

Now compile the improved Old Hungarian table:

mfabian@localhost:~/ibus-table-others/tables (release-candidate-1.3.16)
$ ibus-table-createdb -s hu-old-hungarian-rovas.txt
mfabian@localhost:~/ibus-table-others/tables (release-candidate-1.3.16)
$ 

Works without error for me on OpenSUSE Tumbleweed.

Now install the improved, compiled table:

mfabian@localhost:~/ibus-table-others/tables (release-candidate-1.3.16)
$ sudo cp hu-old-hungarian-rovas.db  /usr/share/ibus-table/tables/hu-old-hungarian-rovas.db
mfabian@localhost:~/ibus-table-others/tables (release-candidate-1.3.16)
$ 

Restart your Gnome session and test.

rovasiras commented 1 year ago

Installing the improved Old Hungarian table on OpenSUSE:

Confirm we are on OpenSUSE:

mfabian@localhost:~
$ cat /etc/os-release 
NAME="openSUSE Tumbleweed"
# VERSION="20230625"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20230625"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:tumbleweed:20230625"
BUG_REPORT_URL="https://bugzilla.opensuse.org"
SUPPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed"
LOGO="distributor-logo-Tumbleweed"
mfabian@localhost:~
$

OK. Now clone my git repo:

mfabian@localhost:~
$ git clone  https://github.com/mike-fabian/ibus-table-others.git
Cloning into 'ibus-table-others'...
remote: Enumerating objects: 607, done.
remote: Counting objects: 100% (167/167), done.
remote: Compressing objects: 100% (58/58), done.
remote: Total 607 (delta 110), reused 164 (delta 108), pack-reused 440
Receiving objects: 100% (607/607), 1.47 MiB | 3.77 MiB/s, done.
Resolving deltas: 100% (395/395), done.
mfabian@localhost:~
$

Enter the git repo:

mfabian@localhost:~
$ cd ibus-table-others/tables
mfabian@localhost:~/ibus-table-others/tables (main)
$

Checkout the release-candidate-1.3.16 branch:

mfabian@localhost:~/ibus-table-others/tables (main)
$ git checkout -t origin/release-candidate-1.3.16
branch 'release-candidate-1.3.16' set up to track 'origin/release-candidate-1.3.16'.
Switched to a new branch 'release-candidate-1.3.16'
mfabian@localhost:~/ibus-table-others/tables (main)
$

Look into hu-old-hungarian-rovas.txt for example with less and check that you really have the improved version, if yes you should find ### U+200D ZERO WIDTH JOINER somewhere in there, that was not in the old version.

Now compile the improved Old Hungarian table:

mfabian@localhost:~/ibus-table-others/tables (release-candidate-1.3.16)
$ ibus-table-createdb -s hu-old-hungarian-rovas.txt
mfabian@localhost:~/ibus-table-others/tables (release-candidate-1.3.16)
$ 

Works without error for me on OpenSUSE Tumbleweed.

Now install the improved, compiled table:

mfabian@localhost:~/ibus-table-others/tables (release-candidate-1.3.16)
$ sudo cp hu-old-hungarian-rovas.db  /usr/share/ibus-table/tables/hu-old-hungarian-rovas.db
mfabian@localhost:~/ibus-table-others/tables (release-candidate-1.3.16)
$ 

Restart your Gnome session and test.

I see, that you use 311.3 version of python. I installed from the python official homepage 3.11.4 version. It possible, that there is an incompatibility problen. I have an another copy of opensuse on an external drive. We continue on thursday.

rovasiras commented 1 year ago

@mike-fabian The tabe installation is ok!

mike-fabian commented 1 year ago

@mike-fabian The tabe installation is ok!

Great!

rovasiras commented 1 year ago

@mike-fabian The tabe installation is ok!

Great!

@mike-fabian The typing booster's gui doesn't work on openSUSE Tumbleweed.

mike-fabian commented 1 year ago

Both ibus-typing-booster and ibus-table work for me on openSUSE Tumbleweed.

This bug here is about ibus-table though, not ibus-typing-booster.

What problems do you run into? Can you please give more details? Screenshots, videos, log files,... Anything which could help me to understand what is going wrong for you.

rovasiras commented 1 year ago

@mike-fabian There are no any icon to start it. Commands, like ibus, ibus-typing-booster etc... installed.

mike-fabian commented 1 year ago

@mike-fabian There are no any icon to start it. Commands, like ibus, ibus-typing-booster etc... installed.

You need to have ibus-table installed. ibus-typing-booster is not relevant for this bug here.

The instructions on how to add an input method are similar for ibus-table and ibus-typing-booster though.

The last part of this comment explains how to do it:

https://github.com/moebiuscurve/ibus-table-others/issues/29#issuecomment-1571580748

If you use Gnome, you use the Gnome control center (keyboard section) to add it. If you use other desktops like XFCE, you use the ibus-setup tool.

rovasiras commented 1 year ago

@mike-fabian The basic letters are OK. The basic letters are fine, although several of them are unnecessarily complicated (i'->i). Could you describe the whole generator table?

rovasiras commented 1 year ago

@mike-fabian I have some advice on a few vowels: Because of that, users of Old Hungarian letters use basically Latin based Hungarian layout, which has special Hungarian keys, can be added the following direct rules: á -> 𐳁 é -> 𐳋 í -> 𐳑 ó -> 𐳜 ö -> 𐳞 ő-> 𐳟 ú -> 𐳫 ü -> 𐳭 ű -> 𐳬

Other punctuation marks' transformations : ? -> ⸮ , -> ⹁ ; -> ⁏

rovasiras commented 1 year ago

@mike-fabian Mike, if I need to use special keyboard on my desktop, that's enough to define a text file, like hu-old-hungarian-rovas.txt , translate it and copy? It would be useful only for me.

rovasiras commented 1 year ago

@mike-fabian There is an another rule, which could be useful: ä -> 𐳉 Ä -> 𐲉 Letter ä is used in some Swabian surnames in Hungary, but not part of the Hungarian alphabet.

rovasiras commented 1 year ago

@mike-fabian I forgot the capital vowels: Á -> 𐲁 É -> 𐲋 Í -> 𐲑 Ó -> 𐲜 Ö -> 𐲞 Ő -> 𐲟 Ú -> 𐲫 Ü -> 𐲭 Ű -> 𐲬 (for paste-and-copy)

mike-fabian commented 1 year ago

@mike-fabian The basic letters are OK. The basic letters are fine, although several of them are unnecessarily complicated (i'->i). Could you describe the whole generator table?

https://github.com/mike-fabian/ibus-table-others/blob/release-candidate-1.3.16/tables/hu-old-hungarian-rovas.txt#L249

contains:

í   𐳑   0   ### U+10CD1 OLD HUNGARIAN SMALL LETTER II
Í   𐲑   0   ### U+10C91 OLD HUNGARIAN CAPITAL LETTER II
i'  𐳑   0   ### U+10CD1 OLD HUNGARIAN SMALL LETTER II
I'  𐲑   0   ### U+10C91 OLD HUNGARIAN CAPITAL LETTER II
i'' 𐳑'  0   ### U+10CD1 OLD HUNGARIAN SMALL LETTER II
I'' 𐲑'  0   ### U+10C91 OLD HUNGARIAN CAPITAL LETTER II

I.e. there is already í -> 𐳑. If you are using an Hungarian keyboard layout, you can type í to get 𐳑.

On the Hungarian keyboard layout, í is on the key between the left Shift key and the y key.

If one is using some other layout, for example an US English keyboard layout, one does not have í. And if one has only an US English hardward keyboard, setting the layout to Hungarian does not help because that key between the left Shift key and the y key does not exist. On a German keyboard layout, setting it to Hungarian would work because the German keyboard layout also has that extra key.

i' -> 𐳑 is an extra rule one can use if one is using a keyboard layout which does not have í. If you have í you can use that, if not you can use i' instead.

The rule i'' -> 𐳑' exists if one wants to type an apostrophe after 𐳑.

mike-fabian commented 1 year ago

@mike-fabian I have some advice on a few vowels: Because of that, users of Old Hungarian letters use basically Latin based Hungarian layout, which has special Hungarian keys, can be added the following direct rules:

á -> 𐳁

é -> 𐳋

í -> 𐳑

ó -> 𐳜

ö -> 𐳞

ő-> 𐳟

ú -> 𐳫

ü -> 𐳭

ű -> 𐳬

All of these exist already in my table, see:

https://github.com/mike-fabian/ibus-table-others/blob/release-candidate-1.3.16/tables/hu-old-hungarian-rovas.txt

For example line 187 has á -> 𐳁:

https://github.com/mike-fabian/ibus-table-others/blob/release-candidate-1.3.16/tables/hu-old-hungarian-rovas.txt#L187

Other punctuation marks' transformations : ? -> ⸮ , -> ⹁ ; -> ⁏

These also exist already, see https://github.com/mike-fabian/ibus-table-others/blob/release-candidate-1.3.16/tables/hu-old-hungarian-rovas.txt#L154

,   ⹁   0   ### U+2E41 REVERSED COMMA
?   ⸮   0   ### U+2E2E REVERSED QUESTION MARK
;   ⁏   0   ### U+204f REVERSED SEMICOLON