Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

International alphabet support / disable Romanization #455

Closed
Liggliluff opened this issue Oct 17, 2018 · 31 comments
Closed

International alphabet support / disable Romanization #455

Liggliluff opened this issue Oct 17, 2018 · 31 comments
Labels
low priority Unlikely to be implemented in the near future

Comments

@Liggliluff
Copy link

Currently the alphabet is set to the ISO / English order A to Z with alternative letters like Á Ä Å sorting under their counterpart ("A" in this case). Any unexpected letter will be added after Z such as Æ, Ø.

However, different languages have different alphabets. An example is Swedish where Å, Ä, Ö are unique letters that appears after Z, and Spanish where Ñ is a different letter from N and comes after N and not mixed together with it. But the alphabet is incorrectly displayed in Niagara. Other apps like Google Now launcher, and Google Contacts does use the correct alphabet of the locale.

This is of course nothing you should manually implement yourself. Unicode has the CLDR covering international systems in different locales. The CLDR of Alphabetic Information covers the alphabets of most languages. The section Others: index covers the alphabet of each locale. More information about collation ordering is available at Unicode's Collation Guidelines.

@8bitPit
Copy link
Owner

8bitPit commented Oct 19, 2018

I implemented that behaviour deliberately, so you have less char sections. Commonly, you don't have many apps that start with an Umlaut (Ä/Ö/Ü) for example, so having a whole section dedicated to (most of the time) one app would be overkill.

Diacritics are not counting as unique letters I believe, at least not in German.

@Liggliluff
Copy link
Author

It's true that German does not separate their letters, although I never mentioned German. On the CLDR page, the German index is the same as the English.
[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]

But other languages does separate their own letters.
Take a look at the index table and you can see that several languages does separate their letters. (Letters written inside {like this} counts as single letters).

It's fine to have an alternate feature that does combine these letters, but I still want my own alphabet. If a letter isn't use, say Å, then it doesn't show up in the alphabet anyway.

@8bitPit
Copy link
Owner

8bitPit commented Oct 19, 2018

@Liggliluff there is no real standart though, e.g. according to the index table Austrian German (de_AT) includes the Umlauts whereas default German doesn't even though there should be no difference between the two alphabets.
As you proposed, I also believe a toggle could be an option to enable an "advanced" mode.

@8bitPit 8bitPit added low priority Unlikely to be implemented in the near future options labels Oct 19, 2018
@Liggliluff
Copy link
Author

Even so, Unicode is what most software use for locale support. If Unicode has defined that de_AT sorts those letters separately, then that is what the users of de_AT will expect to happen.

@mkmark
Copy link

mkmark commented Nov 4, 2018

Pls consider support for Chinese!
Currently the list will sort each different Chinese characters after 'Z', which is insane because Chinese has thousands of common characters. Consequently Chinese users will have an extreme long and sparse app list.
Different from alphabetic languages which requires additional alphabets, Chinese can be transformed into PinYin style so one can sort them with standard alphabetic order of 26, which is how Chinese sort their contacts and almost everything. There're developed libraries for this such as GitHub - zhujun24/chinese-to-pinyin. (Sorry I'm rookie on developing and do not know which programming language you use)
I don't know if its appropriate to post my request here cause Chinese is not an alphabet. Still, it's an issue regarding Internationalization and languages, and hopefully easier to solve than other languages.

@Liggliluff
Copy link
Author

This would go well with my idea of allowing the user to use the national "alphabetical" sort provided by Unicode, or using the ISO Latin alphabet

For the national order; Chinese will be sorted by stroke order. For the ISO Latin order, the Chinese-to-Pinyin could work.

@mkmark
Copy link

mkmark commented Nov 4, 2018

For the national order; Chinese will be sorted by stroke order. For the ISO Latin order, the Chinese-to-Pinyin could work.

Yeah thx, that's great!
Pls also keep in mind that stroke order is never used by Chinese in daily life, and the Chinese-to-Pinyin sorting method do not requires an option - that's the only reasonable way to sort Chinese, and should be active all the time, i.e. regardless of system language.

@8bitPit
Copy link
Owner

8bitPit commented Nov 4, 2018

@Make-Mark, yeah Pinyin will definitely be supported, see: #234. Also, thanks for your advice.

@Liggliluff
Copy link
Author

@Make-Mark I've looked more into Unicode's sort order for Chinese.

By default; Unicode uses Pinyin sort order. You are right about that. By simply supporting Unicode's national sort order, you will get Pinyin sort order.

But Traditional Chinese in Unicode is sorted by stroke number. That's where I got confused.

@mkmark
Copy link

mkmark commented Nov 4, 2018

@Liggliluff I've done some research. For Republic of China where people use Traditional Chinese, "ZhuYin" sorting method is mostly often used. It transforms Chinese into 40 ancient symbols for pronunciation.
Stroke number doesn't really help since you'll get hundreds of characters with the same number of strokes.

@Liggliluff
Copy link
Author

@Make-Mark I don't know how the people of China sorts, so I can only go by how Unicode sorts. Unicode should support the methods that the each country and language sorts, and if a method is missing, you can report it.

Unicode offers 7 methods of sorting, named: pinyin, private-pinyin, gb2312han, stroke, zhuyin, big5han, unihan. By default, the locale zh is set to pinyin, and zh-Hant is set to stroke.

Most popular systems like Android, Windows, iOS supports Unicode and will use it's methods of sorting. Windows allows you to change the sorting method, but uses the abovementioned defaults as default.

You can find the document for Chinese here:
https://unicode.org/repos/cldr/tags/latest/common/collation/zh.xml

@mkmark
Copy link

mkmark commented Nov 4, 2018

@Liggliluff
To clarify, "zhuyin" is almost equivalent to "pinyin", the difference is just how they look like, ancient Chinese symbols or alphabets.
From what I've just learned through Google, some Traditional Chinese users sort their contacts manually... I think none would do that if having a better choice. Given the fact that most systems support only "stroke" sorting for them, it can be inferred that "stroke" order is very inconvenient even for Traditional Chinese users who grew up with operating systems working with this sorting method. I don't know if someone could get accustomed though.
To conclude, for Simplified Chinese "pinyin" will definitely do. For Traditional Chinese I'd recommend "zhuyin", but perhaps it's better to leave the users to decide which one is better.

@Liggliluff
Copy link
Author

This is why Unicode exists, so the user can pick their method provided by Unicode and it will work on all platforms supporting Unicode. Android does not allow you to change sorting method, but it would preferably be added so anyone who wants to sort by "zhuyin" should have the option.

This is why I want Niagara to support Unicode primarily; but can offer other sorting method on top of it.

@DanielMalmgren
Copy link

Just wanted to add a +1 here. From a swedish perspective it's kinda weird that "Översätt" (Swedish name for Google Translate) ends up under the letter O.

@8bitPit 8bitPit removed low priority Unlikely to be implemented in the near future problematic labels May 6, 2019
@8bitPit 8bitPit changed the title International alphabet support International alphabet support / disable Romanization May 6, 2019
@8bitPit
Copy link
Owner

8bitPit commented May 6, 2019

The easiest solution in my opinion, is to add a toggle to not group apps starting with similar letters (e.g. A
& Ä) in the alphabet.

@Liggliluff
Copy link
Author

Liggliluff commented May 9, 2019

@8bitPit The easiest solution in my optinion, is to allow the user to choose their own alphabet, as provided by Unicode, or use the ISO alphabet with translitteration (the feature you currently want everyone to use).

I'm curious of where you would put "Ä" if you were to have a feature to split Ä from A.

@DanielMalmgren
Copy link

I don't really know how these things work in Android, but isn't there way of getting the correct sorting out of the currently set locale? This normally works out of the box without me needing to fiddle with any setting...

In swedish, the alphabet simply ends with "...xyzåäö".

@Liggliluff
Copy link
Author

@DanielMalmgren You are correct. Unicode's CLDR contains both indexing and sorting algorithm. Android has this CLDR built in, and several apps are utilising it. Google apps that contains alphabetical sorting (Contacts, Files, ...) uses this information to put the letters in the correct order. It exists to help programmers offer the default alphabetical order for each locale automatically, and will update as CLDR is updated with new information and languages. – Swedish users usually expects to find Ä after X,Y,Z,Å and German users expects Ä to be sorted with A, except for Austrian users who expects Ä to be sorted separately after A, Estonian expects Ä between W and X.

It's perfectly fine for @8bitPit to offer sorting according to the ISO/English alphabet (with translitteration) as an option. But there should still be an option for users to have their local alphabet (preferably chosen by default). – The idea of offering a toggle to split accented letters from the base letters does not solve the issue. In Swedish, Ü is sorted under Y, and should neither be sorted under U or be a separate letter. In Spanish, only Ñ should be split from the alphabet, all other accented letters should still be sorted under their base letter. Hungarian users expects the letters CS, DZ, GY and more to be sorted as separate letters, which are digraphs, and not even accents.

Then you got locales that has changed the order of the base 26 letters, in addtion to extra letters. Examples are Azerbajani: .. G H X I İ J K Q L .. V Y Z W, Estonian: .. R S Š Z Ž T .. V W Õ Ä Ö Ü X Y. So even if similar letters are grouped together or not, the order will still be wrong, which might annoy users.

@8bitPit
Copy link
Owner

8bitPit commented May 13, 2019

Thanks for the detailed explanation @Liggliluff. Yeah, afaik, Android added a lot of classes to support localized character sorting in Android 7. I did some simple tests for transliteration at the weekend, but I get your point, it’s not the only way to improve the app list. I’ll trying my best to support transliteration for Chinese & Japanese and providing localized alphabets for several other countries. I’ll get back to you when I further developed both parts. However, that might take some time, because I’m currently working on a time-consuming feature (but I think it’s worth it 😉).

@ssssamstrup
Copy link

ssssamstrup commented Jul 19, 2019

Great explanation @Liggliluff! Felt I just got smarter by reading your explaination. I'll be looking forward to this as well as a Dane, missing my Æ, Ø, Å! 🌿

And looking forward to see what you're cooking up @8bitPit.

In relation to you comment about these characters not being used that much, at lot of people will use the launcher in our own experimental ways, since we can! I've added a category to each of my apps in front of their name, so they're sorted by that, giving me 5 apps staring with Ø (for finances = økonomi). So I'll look forward to this feature, so they'll get their own letter. ✨

@8bitPit
Copy link
Owner

8bitPit commented Nov 11, 2019

Niagara now transliterates app names written Cyrillic, Hiragana, Katakana, Hangul, and (simplified & traditional) Chinese into Ascii-Latin for determining its sort order.
Furtheremore, you can now (since v0.9.10) disable/toggle "similar letter bundling" by typing “/bundle characters” into Niagara Launchers search. @Liggliluff explained very well that this is far from ideal, but I'd say it's a step in the right direction 😉

@inbx
Copy link

inbx commented Dec 9, 2019

Furtheremore, you can now (since v0.9.10) disable/toggle "similar letter bundling" by typing “/bundle characters” into Niagara Launchers search.

This option seems to be working only one way. How can I turn off "similar letter bundling" after enabling it with “/bundle characters”?
Niagara - v0.10.3 (pro)
Android 9

@8bitPit
Copy link
Owner

8bitPit commented Dec 10, 2019

Hi @inbx, you can toggle this option on and off with the same command.

@inbx
Copy link

inbx commented Dec 10, 2019

Hi @inbx, you can toggle this option on and off with the same command.

Ok, after one more “/bundle characters” (and restarting launcher) all my apps names written Cyrillic went to '#' Group. I thought they should bundle their first characters Groups (like Афиша, Авито goes to a separate Cyrillic 'A' Group)

@ssssamstrup
Copy link

I was thinking about this again and implementing a solution to this, could also be a solution to #13: If it was possible to organise apps using an implementation like @Liggliluff and with support for emoji/special characters (✿ ☺ ☻ ☹ ☼ ☂), apps could be sorted/categorised by renaming them.

(I'm not sure if #13 is correct for the example, believe I've read another thread before with the idea of using icons (like letters currently) to sort apps, but I can't seem to find the specific one now).

@8bitPit 8bitPit added the low priority Unlikely to be implemented in the near future label Aug 27, 2020
@8bitPit
Copy link
Owner

8bitPit commented Sep 23, 2020

To better plan ahead and to give users an estimate which features will be added to Niagara, I’ve decided to close all feature requests that that are unlikely to be implemented in the next year (2020). This is one of those, unfortunately. I'm sorry. Feel free to open this ticket again in 2021 or later.

@8bitPit 8bitPit closed this as completed Sep 23, 2020
@ssssamstrup
Copy link

ssssamstrup commented Jun 3, 2023

Hi @8bitPit

I'd like for this feature to be reopened! It's now 2023 and I still miss my Æ, Ø, Å! 😄

https://www.youtube.com/watch?v=f488uJAQgmw

@8bitPit
Copy link
Owner

8bitPit commented Nov 21, 2023

Hey, @ssssamstrup, your video convinced us haha
Well, maybe it wasn't just the video, but v1.10 now has custom sections for the letters:

  • æ, ø, å for Danish and Norwegian
  • å, ä, ö for Swedish and Finnish
  • ñ for Spanish and Filipino

I'm sorry @Liggliluff that this does not strictly conform to Unicode (e.g. ü and y have separate sections in Swedish); we might improve it depending on the amount of feedback we get.

@ssssamstrup
Copy link

Thank you! Look forward to trying it.

@ssssamstrup
Copy link

ssssamstrup commented Dec 9, 2023

Hi again @8bitPit , love the update!

Could you extend it to folder names? Just created a folder with Ø and it's placed before O, rather than at the end of the alphabet/folder list as expected. Let me know if you want me to create a new issue for i, then I'll do that. 😊

@8bitPit
Copy link
Owner

8bitPit commented Jan 11, 2024

Thanks @ssssamstrup and apologies for the late response. I saw that you already opened a new issue (#2483). We're slowly processing all the new tickets and will respond once we get to yours. Oh, and Happy New Year!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
low priority Unlikely to be implemented in the near future
Projects
None yet
Development

No branches or pull requests

6 participants