christopherpow / nesicide

Integrated Development Environment for the 8-bit Nintendo Entertainment System
316 stars 38 forks source link

Support of non-latin-1 locales #54

Closed aa-dav closed 4 years ago

aa-dav commented 4 years ago

(tested on Windows 10, last build) Editor replaces my native language symbols by '?'. It doesn't matter if you enter symbols by keyboard or load/save from/to files. It's impossible to make comments in my native language. I made some research and found that you use QsciScintilla editor component and it's documentation states: "virtual void QsciScintilla::setUtf8 ( bool cp ) Sets the current text encoding. If cp is true then UTF8 is used, otherwise Latin1 is used." And yep, Latin1 excludes my native language from support. Could you please add option in configuration dialog which sets setUtf8( true ) during m_scintilla initialization and trace code paths of load/save actions to not force text encoding to latin-1?

christopherpow commented 4 years ago

It seems it would make most sense to simply use setUtf8(true) for everything, as Latin-1 isn't as inclusive? What do you mean by "trace code paths of load/save actions"?

aa-dav commented 4 years ago

Latin-1 encoding uses byte codes above 127 to represent european 'diacritic' symbols with dots and some lines above/below latin alphabet. So, I think if some european users have comments in this encoding they will find it damaged after setUtf8( true ). I do not know for sure because it also depends on the way you save/load text from editor to files. That is that I mean by 'trace code paths of load/save"... Also, excelent job! Your project is the simpliest way to program NES I seen before. Very powerful debugger, IDE as is. Very Cool! I'am going to make tutorials about NES programming in my native (russian) language, but impossibility to make comments make it very problematic.

christopherpow commented 4 years ago

I've put it in, but am currently working through some Appveyor nonsense so a new Windows build isn't published yet. Thanks for the suggestion, but I wonder if I need to account for all of the other possible encodings!

aa-dav commented 4 years ago

I wonder if I need to account for all of the other possible encodings!

Technically, if someone used latin1 upper codes they could migrate using convert-to-utf tools, for example in notepad++. Maybe some notice would be nice. For example, if IDE loads file and sees codes >127 it will show notice about utf-8 migration once. Or, maybe, if it sees invalid utf-8 codes - they are detectable. Anyway it's up to you, thanks for future corrections, I'll monitor download site.

aa-dav commented 4 years ago

Could you please tell when we can expect a fresh updates for Windows build? I check new build every day, but they contain nesicide.exe from 1st feb yet. 'AcusAlways' also drives me crazy %) and I see that you replace it in latest commits. :)

essial commented 4 years ago

I have a windows build machine. If you need me to, I can set it up to do manual builds if need be. Just let me know.

aa-dav commented 4 years ago

I download windows distrib from https://knob.phreneticappsllc.com/nesicide/?s=download and it still doesn't contain changes made in master branch in last 5 days, including subj. They are important for me (international support in editor and very annoying autocomplete behaviour making it virtually impossible to type in correct indentifier on the first try). So if it requires to do manual build, yes, please do it. Thanks in advance.

christopherpow commented 4 years ago

I am not getting much help from JFrog folks so I've uploaded a Windows build. https://knob.phreneticappsllc.com/nesicide/media/downloads/nesicide-win-x86.tar.bz2 Let me know if it addresses your issues appropriately.

aa-dav commented 4 years ago

Yes, this issue seems to be resolved. Switching to utf-8 in settings enabled by native locale in editor and save/load are working correctly. Thanks a lot! And 'AcusNever' is such a relief! :D