Page 1 of 1

UpsideDownLatinText.js?

Posted: Sun Oct 18, 2015 10:52 am
by Soso
there is no upsidedownlatintext.js for akelpad?

¿pɐdlǝʞɐ ɹoɟ sɾ˙ʇxǝʇuıʇɐluʍopǝpısdn ou sı ǝɹǝɥʇ

it's just a few extra lines of code in keyboard.js.

˙sɾ˙pɹɐoqʎǝʞ uı ǝpoɔ ɟo sǝuıl ɐɹʇxǝ ʍǝɟ ɐ ʇsnɾ s,ʇı


спасибо.

Posted: Sun Oct 18, 2015 2:16 pm
by Instructor
Soso
Can you give an example? Initial text -> Result text.

Posted: Sun Oct 18, 2015 2:49 pm
by KDJ
Instructor
In order to read it, you need to stand on your head or rotate the monitor 180 degrees. :)
http://lunicode.com/
http://text-symbols.com/upside-down/

Posted: Sun Oct 18, 2015 3:21 pm
by Soso

Code: Select all

"a":"\u0250",
"b":"q",
"c":"\u0254",
"d":"p",
"e":"\u01DD",
"f":"\u025F",
"g":"\u0183",
"h":"\u0265",
"i":"\u0131",
"j":"\u027E",
"k":"\u029E",
"m":"\u026F",
"n":"u",
"r":"\u0279",
"t":"\u0287",
"v":"\u028C",
"w":"\u028D",
"y":"\u028E",
"A":"\u2200",
"C":"\u0186",
"E":"\u018E",
"F":"\u2132",
"G":"\u05E4",
"H":"H",
"I":"I",
"J":"\u017F",
"L":"\u02E5",
"M":"W",
"N":"N",
"P":"\u0500",
"T":"\u2534",
"U":"\u2229",
"V":"\u039B",
"Y":"\u2144",
"1":"\u0196",
"2":"\u1105",
"3":"\u0190",
"4":"\u3123",
"5":"\u03DB",
"6":"9",
"7":"\u3125",
"8":"8",
"9":"6",
"0":"0",
".":"\u02D9",
",":"'",
"'":",",
'"':",,",
"`":",",
"?":"\u00BF",
"!":"\u00A1",
"[":"]",
"]":"[",
"(":")",
")":"(",
"{":"}",
"}":"{",
"<":">",
">":"<",
"&":"\u214B",
"_":"\u203E",
Text must be reversed, so

akelpad text editor

must be

ɹoʇᴉpǝ ʇxǝʇ pɐdlǝʞɐ

but not

ɐʞǝldɐp ʇǝxʇ ǝpᴉʇoɹ

------------------------

Here is some links:

https://en.wikipedia.org/wiki/Upside-do ... -down_text
http://www.upsidedowntext.com/
http://lunicode.com/


Спасибо.

Posted: Sun Oct 18, 2015 4:19 pm
by Soso
Or from Keyboard.js

Code: Select all

    else if (pDirection == "lat->updown")
    {
      // Transliteration Latin->UpDown
      var pArraySource=new Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "m", "n", "r", "t", "v", "w", "y", "A", "C", "E", "F", "G", "H", "I", "J", "L", "M", "N", "P", "T", "U", "V", "Y", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", ".", ",", "'", "?", "!", "(", ")", "&");
      var pArrayTarget=new Array("ɐ", "q", "ɔ", "p", "ǝ", "ɟ", "ƃ", "ɥ", "ᴉ", "ɾ", "ʞ", "ɯ", "u", "ɹ", "ʇ", "ʌ", "ʍ", "ʎ", "∀", "Ɔ", "Ǝ", "Ⅎ", "פ", "H", "I", "ſ", "˥", "W", "N", "Ԁ", "┴", "∩", "Λ", "⅄", "Ɩ", "ᄅ", "Ɛ", "ㄣ", "ϛ", "9", "ㄥ", "8", "6", "0", "˙", "'", ",", "¿", "¡", ")", "(", "⅋");

      pSelText=Transliterate(pSelText, pArraySource, pArrayTarget);
    }
Don't know how to make text backward (reversed).
Actually I don't know anything about any programing. :)


Спасибо.

Posted: Sun Oct 18, 2015 7:54 pm
by KDJ
Soso
Simple script:

Code: Select all

var aCode = [];
aCode[0x0021] = 0x00A1;
aCode[0x0022] = 0x201E;
aCode[0x0026] = 0x214B;
aCode[0x0027] = 0x002C;
aCode[0x0028] = 0x0029;
aCode[0x0029] = 0x0028;
aCode[0x002C] = 0x0027;
aCode[0x002E] = 0x02D9;
aCode[0x0031] = 0x0196;
aCode[0x0032] = 0x1105;
aCode[0x0033] = 0x0190;
aCode[0x0034] = 0x3123;
aCode[0x0035] = 0x03DB;
aCode[0x0036] = 0x0039;
aCode[0x0037] = 0x3125;
aCode[0x0039] = 0x0036;
aCode[0x003B] = 0x061B;
aCode[0x003C] = 0x003E;
aCode[0x003E] = 0x003C;
aCode[0x003F] = 0x00BF;
aCode[0x0041] = 0x2200;
aCode[0x0043] = 0x0186;
aCode[0x0045] = 0x018E;
aCode[0x0046] = 0x2132;
aCode[0x0047] = 0x05E4;
aCode[0x004A] = 0x017F;
aCode[0x004B] = 0x22CA;
aCode[0x004C] = 0x02E5;
aCode[0x004D] = 0x0057;
aCode[0x0050] = 0x0500;
aCode[0x0054] = 0x22A5;
aCode[0x0055] = 0x2229;
aCode[0x0056] = 0x039B;
aCode[0x0057] = 0x004D;
aCode[0x0059] = 0x2144;
aCode[0x005B] = 0x005D;
aCode[0x005D] = 0x005B;
aCode[0x005F] = 0x203E;
aCode[0x0061] = 0x0250;
aCode[0x0062] = 0x0071;
aCode[0x0063] = 0x0254;
aCode[0x0064] = 0x0070;
aCode[0x0065] = 0x01DD;
aCode[0x0066] = 0x025F;
aCode[0x0067] = 0x0183;
aCode[0x0068] = 0x0265;
aCode[0x0069] = 0x0131;
aCode[0x006A] = 0x027E;
aCode[0x006B] = 0x029E;
aCode[0x006D] = 0x026F;
aCode[0x006E] = 0x0075;
aCode[0x0070] = 0x0064;
aCode[0x0071] = 0x0062;
aCode[0x0072] = 0x0279;
aCode[0x0074] = 0x0287;
aCode[0x0075] = 0x006E;
aCode[0x0076] = 0x028C;
aCode[0x0077] = 0x028D;
aCode[0x0079] = 0x028E;
aCode[0x007B] = 0x007D;
aCode[0x007D] = 0x007B;
aCode[0x00A1] = 0x0021;
aCode[0x00BF] = 0x003F;
aCode[0x0131] = 0x0069;
aCode[0x017F] = 0x004A;
aCode[0x0183] = 0x0067;
aCode[0x0186] = 0x0043;
aCode[0x018E] = 0x0045;
aCode[0x0190] = 0x0033;
aCode[0x0196] = 0x0031;
aCode[0x01DD] = 0x0065;
aCode[0x0250] = 0x0061;
aCode[0x0254] = 0x0063;
aCode[0x025F] = 0x0066;
aCode[0x0265] = 0x0068;
aCode[0x026F] = 0x006D;
aCode[0x0279] = 0x0072;
aCode[0x027E] = 0x006A;
aCode[0x0287] = 0x0074;
aCode[0x028C] = 0x0076;
aCode[0x028D] = 0x0077;
aCode[0x028E] = 0x0079;
aCode[0x029E] = 0x006B;
aCode[0x02D9] = 0x002E;
aCode[0x039B] = 0x0056;
aCode[0x03DB] = 0x0035;
aCode[0x0500] = 0x0050;
aCode[0x05E4] = 0x0047;
aCode[0x02E5] = 0x004C;
aCode[0x061B] = 0x003B;
aCode[0x1105] = 0x0032;
aCode[0x201E] = 0x0022;
aCode[0x203E] = 0x005F;
aCode[0x2144] = 0x0059;
aCode[0x214B] = 0x0026;
aCode[0x2132] = 0x0046;
aCode[0x2200] = 0x0041;
aCode[0x2229] = 0x0055;
aCode[0x22A5] = 0x0054;
aCode[0x22CA] = 0x004B;
aCode[0x3123] = 0x0034;
aCode[0x3125] = 0x0037;

var aChar = AkelPad.GetSelText().split("");
var nCode;
var i;

for (i = 0; i < aChar.length; ++i)
{
  nCode = aChar[i].charCodeAt(0);

  if (aCode[nCode])
    aChar[i] = String.fromCharCode(aCode[nCode]);
}

AkelPad.ReplaceSel(aChar.reverse().join(""), -1 /*RST_SELECT*/);


Posted: Mon Oct 19, 2015 4:21 pm
by Soso
It's working.

Dziękuję KDJ.

:)

Posted: Tue Oct 20, 2015 2:15 am
by YuS
KDJ wrote: Simple script:
Another would be to expand the opportunities for the cyrillics, ie add replacement of one symbol by two symbols or more. For example:
ы : 'lq',
ю : 'ol'