2 questions of the top of my head 1) codetyphoon seems to be able to use the 3.1.1 along with lcl or so it seems from a quick glance aren't they willing to share they test cases and results with you or something along those lines to shorten the fpc 3.0 integration effort.
2) Are we going to see major changes in the lcl for the new unicode support? EE will the lcl support ucs16 or what ever is the default encoding for windows and utf8 for linux to minimize the translations between lcl and system encoding to minimum (I would go for 0 translation) or it will be kept as UTF8 and autotranslate to what ever the unicode windows api expects it to be?
What is the plan for supporting Right-To-Left languages?
There is no plan because none of the core developers know the issue well enough.We would need a person who understands both Right-To-Left issues and LCL well enough. In practice it must be a person who natively uses a Right-To-Left language.If such a person (maybe you) steps forward, other developers will be happy to share their knowledge about LCL.That is how open source development works.
I am willing to assist. I am more than willing actually and really very happy to contribute to this community. But not sure if my knowledge of LCL is enough to start.
Is now any string-based RTL functions (such as StrReplace(), Format(), Trim(), UpperCase(), etc..) will correctly handle characters with variable bytes length?And some functions, like Pos(), Length(), Copy() will be bytes-oriented, or character-oriented? Is lazutf8 unit not needed anymore?
I don't have answers for your questions, maybe nobody has yet....
see the mailing list thread mentioned earlier.
var SomeByte: Byte; SomeChar: Char; SomeString: String;begin SomeString:='абракадабра'; // Russian 2-byte letters in utf8 SomeChar:=SomeString; // 'б', second character SomeByte:=SomeString; // $E1, second byteend;
Using Lazarus 1.3 and FPC 3.0.1, both development versions,
should I start making tests on Unicode, UTF16 and UTF8?
Should I report problems here or on the Bug Tracker (Mantis)?
Is Mattias' wiki page about FPC Unicode ready? If so, where?
Yes, I read it. This one is same, as I want to say:http://lists.lazarus.freepascal.org/pipermail/lazarus/2014-November/089555.html
And, some my suggestions:Char is character, and String is array of characters. Long ago, characters was a bytes, so strings was a array of bytes.... and so on ...
Please let's not start discussion about differences of UTF8 and UTF16 here.
s:=Copy('южный', 2, 2);
If you are serious about it, you must study the LCL architechture and code. Wiki may have some info but diving into the code will be needed very soon.When you don't understand something although you tried, please ask questions in Lazarus mailing list. Developers follow it more than this forum. I am not an expert with LCL, better ask details from other people.One challenge with LCL is the division between LCL code itself and the widgetset binding code. I believe that much of Right-To-Left code must go to bindings because all major widgetsets support it.
Quote from: JuhaManninen on January 11, 2015, 03:12:54 pmRight-To-Left language...If such a person (maybe you) steps forward, other developers will be happy to share their knowledge about LCL.I am willing to assist.
Right-To-Left language...If such a person (maybe you) steps forward, other developers will be happy to share their knowledge about LCL.
You may look as well for posts from Avishai or just contact him. He might be still very interested in the RTL topic.
All, that I want from subject - that standard functions works as it described in help and manuals. For example:Copy() - Copy returns a string which is a copy if the Count characters in S, starting at position Index.Code: [Select]s:=Copy('южный', 2, 2);it obviously, that it take two characters, starting from second character. And if it return '躰', then that considered as a bug.