Page 1 of 1

[0.16.39] search is case-sensitive for russian language

Posted: Thu May 03, 2018 7:49 pm
by diraria
Full version of title: "[0.16.39] search in techonologies (and other places) is (wrongly) case-sensitive for non-english languages"

Steps to reproduce:

1. Install factorio
2. Change interface language from English to Russian
3. Start new game
4. Open techonologies tree
5. Type "оптика" (it is russian word "optics", note that it starts with lowercase) in search box

Expected behaviour: optics techonology is displayed
Actual behaviour: no techonologies are displayed

Note: search is also case-sensitive in other places, like inventory.


Thanks for factorio!

Re: [0.16.39] search is case-sensitive for russian language

Posted: Mon May 07, 2018 5:56 pm
by Rseding91
Thanks for the report however we don't have any plans to fix this for the foreseeable future.

Re: [0.16.39] search is case-sensitive for russian language

Posted: Mon May 07, 2018 6:52 pm
by steinio
Rseding91 wrote:Thanks for the report however we don't have any plans to fix this for the foreseeable future.
Doesn't lowercase() work for russian?
It's state of the art to compare strings lower or uppercase if case sensitivity isn't necessary.

Re: [0.16.39] search is case-sensitive for russian language

Posted: Mon May 07, 2018 6:56 pm
by Rseding91
steinio wrote:
Rseding91 wrote:Thanks for the report however we don't have any plans to fix this for the foreseeable future.
Doesn't lowercase() work for russian?
It's state of the art to compare strings lower or uppercase if case sensitivity isn't necessary.
If it did, it would work right now :)

Re: [0.16.39] search is case-sensitive for russian language

Posted: Wed May 16, 2018 7:09 pm
by henke37
It's wrong to convert case for comparisons. Greek for example has an upper case letter that corresponds to two different lower case letters. And german has a letter that expands to two letters when it turns to upper case.

Re: [0.16.39] search is case-sensitive for russian language

Posted: Wed May 16, 2018 7:34 pm
by Bilka
henke37 wrote:And german has a letter that expands to two letters when it turns to upper case.
What? There's ẞ (uppercase ß), Ö, Ü, and Ä, so what are you talking about?

Re: [0.16.39] search is case-sensitive for russian language

Posted: Wed May 16, 2018 8:25 pm
by steinio
Bilka wrote:
henke37 wrote:And german has a letter that expands to two letters when it turns to upper case.
What? There's ẞ (uppercase ß), Ö, Ü, and Ä, so what are you talking about?
Uppercase ß is new.

Re: [0.16.39] search is case-sensitive for russian language

Posted: Thu Aug 24, 2023 9:33 pm
by Shadow_Man
5 years have passed, is there a ray of hope for a fix?

Re: [0.16.39] search is case-sensitive for russian language

Posted: Thu Aug 24, 2023 10:17 pm
by Rseding91
Shadow_Man wrote:
Thu Aug 24, 2023 9:33 pm
5 years have passed, is there a ray of hope for a fix?
Nothing has changed about the complexity of any kind of fix to my knowledge.

Re: [0.16.39] search is case-sensitive for russian language

Posted: Thu Aug 24, 2023 10:24 pm
by Shadow_Man
Rseding91 wrote:
Thu Aug 24, 2023 10:17 pm
Shadow_Man wrote:
Thu Aug 24, 2023 9:33 pm
5 years have passed, is there a ray of hope for a fix?
Nothing has changed about the complexity of any kind of fix to my knowledge.
What is the reason for this function not working?
What function is used when comparing strings? Standard or custom?
It seems that the solution is on the surface, but no one sees it.

Re: [0.16.39] search is case-sensitive for russian language

Posted: Mon Aug 28, 2023 11:43 pm
by RobotMan2412
Shadow_Man wrote:
Thu Aug 24, 2023 10:24 pm
Rseding91 wrote:
Thu Aug 24, 2023 10:17 pm
Shadow_Man wrote:
Thu Aug 24, 2023 9:33 pm
5 years have passed, is there a ray of hope for a fix?
Nothing has changed about the complexity of any kind of fix to my knowledge.
What is the reason for this function not working?
What function is used when comparing strings? Standard or custom?
It seems that the solution is on the surface, but no one sees it.
I don't work on Factorio but having dealt with unicode and their encoding shenanigans I can attest to the fact that it is not, in fact, trivial to do.
For example, some characters (like ç) can be encoded either as one code point or two.
Couple this with no lower / upper case equivalents which some languages apparently have and now you lowercase() function is not 1 line of C, but maybe 50 including looking up the lowecase characters hidden somewhere in the 16-bit space that is unicode.

Again, I do not work on Factorio, I just play it, but I often see that non-programmers underestimate the effort required for seemingly simple tasks.
Because yes, it would be nice if it were that simple, but it's not.