Set Language for String Processing?
Peter W A Wood
peterwawood at gmail.com
Tue May 6 07:26:10 EDT 2014
Thanks for the prompt reply.
On 6 May 2014, at 17:29, Fraser Gordon wrote:
> The uppercasing and lowercasing behaviour provided by the LiveCode engine is language-neutral (read: wrong for some languages). Internationalisation and localisation are areas that we are aware of but 7.0 does not include any way to change the locale for string processing operations.
Did you forget to type the "yet" at the end of the sentence ;-)
> Other oddities that people might encounter is that the toupper of "ß" (sharp-S) is itself and not the expected "SS" - some scripts became a little confused when changing the case of a string also changed its length.
After your mail I did check that 7.0 correctly handles the "banana skin" lower-to-upper codepoint - 0xFB04 - my simple test passes:
put "ba" & numToCodepoint(0xFB04) & "e" into tUnicodeString
assertEqual "BAFFLE", the Upper of tUnicodeString
So it's only Language(Locale) specific case shifting that LiveCode 7.0 can't handle at the moment.
PS I was truly impressed to find that comparing pre-composed and decomposed characters worked without the need for the strings to be normalised. For example, this test passes:
put numToCodepoint(0xE7) into tPrecomposed
put "c" & numToCodepoint(0x0327) into tDecomposed
assertEqual tPrecomposed, tDecomposed
More information about the Use-livecode