Add navajo

This commit is contained in:
Daniel Løvbrøtte Olsen
2019-03-15 01:16:51 +01:00
parent 75d4d41744
commit 81a205f781
3 changed files with 297 additions and 1 deletions

273
x2i/dictionaries/nav.ts Normal file
View File

@@ -0,0 +1,273 @@
export function convert(input: string)
{
var c=" ";
var rom=input+" ";
var flag=0;
while(rom.length > 1) {
if(rom[1]=='^') {
if(rom.length>=2 && rom[2]=='@') {
if(rom[0]=='a') {
c=c+'ą́';
flag=1;
}
else if(rom[0]=='A') {
c=c+'Ą́';
flag=1;
}
else if(rom[0]=='e') {
c=c+'ę́';
flag=1;
}
else if(rom[0]=='E') {
c=c+'Ę́';
flag=1;
}
else if(rom[0]=='i') {
c=c+'į́'
flag=1
}
else if(rom[0]=='I') {
c=c+'Į́'
flag=1
}
else if(rom[0]=='o') {
c=c+'ǫ́'
flag=1
}
else if(rom[0]=='O') {
c=c+'Ǫ́'
flag=1
}
else if(rom[0]=='u') {
c=c+'ų́'
flag=1
}
else if(rom[0]=='U') {
c=c+'Ų́'
flag=1
}
if(flag) {
rom=rom.slice(3)
flag=0
continue
}
}
else {
if(rom[0]=='a') {
c=c+'á'
flag=1
}
else if(rom[0]=='A') {
c=c+'Á'
flag=1
}
else if(rom[0]=='e') {
c=c+'é'
flag=1
}
else if(rom[0]=='E') {
c=c+'É'
flag=1
}
else if(rom[0]=='i') {
c=c+'í'
flag=1
}
else if(rom[0]=='I') {
c=c+'Í'
flag=1
}
else if(rom[0]=='o') {
c=c+'ó'
flag=1
}
else if(rom[0]=='O') {
c=c+'Ó'
flag=1
}
else if(rom[0]=='u') {
c=c+'ú'
flag=1
}
else if(rom[0]=='U') {
c=c+'Ú'
flag=1
}
if(flag) {
rom=rom.slice(2)
flag=0
continue
}
}
}
if(rom[1]=='@') {
if(rom.length>=2 && rom[2]=='^') {
if(rom[0]=='a') {
c=c+'ą́'
flag=1
}
else if(rom[0]=='A') {
c=c+'Ą́'
flag=1
}
else if(rom[0]=='e') {
c=c+'ę́'
flag=1
}
else if(rom[0]=='E') {
c=c+'Ę́'
flag=1
}
else if(rom[0]=='i') {
c=c+'į́'
flag=1
}
else if(rom[0]=='I') {
c=c+'Į́'
flag=1
}
else if(rom[0]=='o') {
c=c+'ǫ́'
flag=1
}
else if(rom[0]=='O') {
c=c+'Ǫ́'
flag=1
}
else if(rom[0]=='u') {
c=c+'ų́'
flag=1
}
else if(rom[0]=='U') {
c=c+'Ų́'
flag=1
}
if(flag) {
rom=rom.slice(3)
flag=0
continue
}
}
else {
if(rom[0]=='a') {
c=c+'ą'
flag=1
}
else if(rom[0]=='A') {
c=c+'Ą'
flag=1
}
else if(rom[0]=='e') {
c=c+'ę'
flag=1
}
else if(rom[0]=='E') {
c=c+'Ę'
flag=1
}
else if(rom[0]=='i') {
c=c+'į'
flag=1
}
else if(rom[0]=='I') {
c=c+'Į'
flag=1
}
else if(rom[0]=='o') {
c=c+'ǫ'
flag=1
}
else if(rom[0]=='O') {
c=c+'Ǫ'
flag=1
}
else if(rom[0]=='u') {
c=c+'ų'
flag=1
}
else if(rom[0]=='U') {
c=c+'Ų'
flag=1
}
if(flag) {
rom=rom.slice(2)
flag=0
continue
}
}
}
if(rom[1]=='%') {
if(rom[0]=='a') {
c=c+'ą́'
flag=1
}
else if(rom[0]=='A') {
c=c+'Ą́'
flag=1
}
else if(rom[0]=='e') {
c=c+'ę́'
flag=1
}
else if(rom[0]=='E') {
c=c+'Ę́'
flag=1
}
else if(rom[0]=='i') {
c=c+'į́'
flag=1
}
else if(rom[0]=='I') {
c=c+'Į́'
flag=1
}
else if(rom[0]=='o') {
c=c+'ǫ́'
flag=1
}
else if(rom[0]=='O') {
c=c+'Ǫ́'
flag=1
}
else if(rom[0]=='u') {
c=c+'ų́'
flag=1
}
else if(rom[0]=='U') {
c=c+'Ų́'
flag=1
}
else if(rom[0]=='l') {
c=c+'ł'
flag=1
}
else if(rom[0]=='L') {
c=c+'Ł'
flag=1
}
if(flag) {
rom=rom.slice(2)
flag=0
continue
}
}
if(rom[0]=="'") {
if(rom[1]!='^') {
c=c+''
rom=rom.slice(1)
continue
}
if(rom[1]=='^') {
c=c+'\''
rom=rom.slice(2)
continue
}
}
if(rom[0]=='#') {
break
}
c=c+rom[0]
rom=rom.slice(1)
}
return c;
}

View File

@@ -39,12 +39,17 @@ const defaultMatchAction = (left: string, match: string, right: string) => left
const defaultMatchFunction = (match: string, keys: ([RegExp, string | ((m: {[key: string]: string;}) => string), string][])) => OuterXRegExp.replaceEach(match, keys as (RegExp | string)[][])
import * as chr from "./dictionaries/chr";
import * as nav from "./dictionaries/nav";
const matchType: { [key: string]: IMatchInstructions } = {
chr: {
join: (_, match) => `- ${match}`,
matchFunction: chr.convert,
},
nav: {
join: (_, match) => `- ${match}`,
matchFunction: nav.convert,
},
ik: {
join: (_, match) => `- ${match}`,
keys: readKeys("./x2i/dictionaries/ik-keys.yaml"),