#![deny(clippy::no_effect_replace)]
#![warn(clippy::nursery, clippy::pedantic)]
#![allow(clippy::similar_names, clippy::too_many_lines, clippy::unicode_not_nfc)]
#![allow(clippy::string_lit_as_bytes)]
use std::fs::OpenOptions;
use std::io::Write;
fn spapncbeg(lowercase: &str) -> String {
let pncbeg = &lowercase.replace([';', '!', '?', '¡', '¿'], ".").replace(").", ".").replace("),", ",").replace([')', ':'], ",").replace("--", " – ").replace('(', "∣ .");
pncbeg.to_string()
}
fn spapncend(strmod: &str) -> String {
let result = &strmod.replace(',', " ∣").replace(". ", " ∥ ").replace('.', "").replace(" - ", " ∣ ").replace(" – ", " ∣ ").replace("∣ ∣", "∣").replace("∣ ∥", "∥");
result.to_string()
}
fn spapalesp(spaacc: &str) -> String {
let palesp = &spaacc.replace("mexic", "mejic").replace("méxic", "méjic").replace("ximena", "jimena").replace("ximénez", "jiménez");
palesp.to_string()
}
fn spaaccent(pncbeg: &str) -> String {
let spaacc = &pncbeg
.replace("ar ", "ár ")
.replace("ar.", "ár.")
.replace("ar,", "ár,")
.replace("arme ", "árme ")
.replace("arme.", "árme.")
.replace("arme,", "árme,")
.replace("arte ", "árte ")
.replace("arte.", "árte.")
.replace("arte,", "árte,")
.replace("arse ", "árse ")
.replace("arse.", "árse.")
.replace("arse,", "árse,")
.replace("arla", "árla")
.replace("arlo", "árlo")
.replace("arle", "árle")
.replace("iendo", "iéndo")
.replace("ando ", "ándo ")
.replace("ando.", "ándo.")
.replace("ando,", "ándo,")
.replace("aba ", "ába ")
.replace("aba.", "ába.")
.replace("aba,", "ába,")
.replace("aban ", "ában ")
.replace("aban.", "ában.")
.replace("aban,", "ában,")
.replace("abas ", "ábas ")
.replace("abas.", "ábas.")
.replace("abas,", "ábas,")
.replace("acha ", "ácha ")
.replace("acha.", "ácha.")
.replace("acha,", "ácha,")
.replace("acho", "ácho")
.replace("ada ", "áda ")
.replace("ada.", "áda.")
.replace("ada,", "áda,")
.replace("adas", "ádas")
.replace("ado ", "ádo ")
.replace("ado.", "ádo.")
.replace("ado,", "ádo,")
.replace("ados", "ádos")
.replace("ante ", "ánte ")
.replace("ante.", "ánte.")
.replace("ante,", "ánte,")
.replace("antes", "ántes")
.replace("ente ", "énte ")
.replace("ente.", "énte.")
.replace("ente,", "énte,")
.replace("entes", "éntes")
.replace("aste ", "áste ")
.replace("aste.", "áste.")
.replace("aste,", "áste,")
.replace("ad ", "ád ")
.replace("ad.", "ád.")
.replace("ad,", "ád,")
.replace("al ", "ál ")
.replace("al.", "ál.")
.replace("al,", "ál,")
.replace("ales", "áles")
.replace("ambre", "ámbre")
.replace("ano ", "áno ")
.replace("ano.", "áno.")
.replace("ano,", "áno,")
.replace("anos ", "ános ")
.replace("anos.", "ános.")
.replace("anos,", "ános,")
.replace("ano", "áno")
.replace("éáno", "éano")
.replace("átáno", "átano")
.replace("amos ", "ámos ")
.replace("amos,", "ámos,")
.replace("amos.", "ámos.")
.replace("íámos", "íamos")
.replace("ara ", "ára ")
.replace("ara.", "ára.")
.replace("ara,", "ára,")
.replace("aras ", "áras ")
.replace("aras.", "áras.")
.replace("aras,", "áras,")
.replace("aro ", "áro ")
.replace("aro.", "áro.")
.replace("aro,", "áro,")
.replace("aros ", "áros ")
.replace("aros.", "áros.")
.replace("aros,", "áros,")
.replace("arra ", "árra ")
.replace("arra.", "árra.")
.replace("arra,", "árra,")
.replace("arras ", "árras ")
.replace("arras.", "árras.")
.replace("arras,", "árras,")
.replace("arro ", "árro ")
.replace("arro.", "árro.")
.replace("arro,", "árro,")
.replace("arros ", "árros ")
.replace("arros.", "árros.")
.replace("arros,", "árros,")
.replace("ántáro", "ántaro")
.replace("aria", "ária")
.replace("ario", "ário")
.replace("aron ", "áron ")
.replace("aron.", "áron.")
.replace("aron,", "áron,")
.replace("ata ", "áta ")
.replace("ata.", "áta.")
.replace("ata,", "áta,")
.replace("atas ", "átas ")
.replace("atas.", "átas.")
.replace("atas,", "átas,")
.replace("ato ", "áto ")
.replace("ato.", "áto.")
.replace("ato,", "áto,")
.replace("atos ", "átos ")
.replace("atos.", "átos.")
.replace("atos,", "átos,")
.replace("enso ", "énso ")
.replace("enso.", "énso.")
.replace("enso,", "énso,")
.replace("ensos", "énsos")
.replace("ento ", "énto ")
.replace("ento.", "énto.")
.replace("ento,", "énto,")
.replace("entos ", "éntos ")
.replace("entos.", "éntos.")
.replace("entos,", "éntos,")
.replace("er ", "ér ")
.replace("er.", "ér.")
.replace("er,", "ér,")
.replace("étér", "éter")
.replace("erme ", "érme ")
.replace("erme.", "érme.")
.replace("erme,", "érme,")
.replace("erte ", "érte ")
.replace("erte.", "érte.")
.replace("erte,", "érte,")
.replace("erse ", "érse ")
.replace("erse.", "érse.")
.replace("erse,", "érse,")
.replace("erla", "érla")
.replace("erlo", "érlo")
.replace("erle", "érle")
.replace("ero ", "éro ")
.replace("ero.", "éro.")
.replace("ero,", "éro,")
.replace("eros ", "éros ")
.replace("eros.", "éros.")
.replace("eros,", "éros,")
.replace("eron", "éron")
.replace("esca ", "ésca ")
.replace("esca.", "ésca.")
.replace("esca,", "ésca,")
.replace("esco ", "ésco ")
.replace("esco.", "ésco.")
.replace("esco,", "ésco,")
.replace("esta ", "ésta ")
.replace("esta.", "ésta.")
.replace("esta,", "ésta,")
.replace("estas ", "éstas ")
.replace("estas.", "éstas.")
.replace("estas,", "éstas,")
.replace("esto ", "ésto ")
.replace("esto.", "ésto.")
.replace("esto,", "ésto,")
.replace("estos ", "éstos ")
.replace("estos.", "éstos.")
.replace("estos,", "éstos,")
.replace("ella", "élla")
.replace("ello", "éllo")
.replace("odo ", "ódo ")
.replace("odo.", "ódo.")
.replace("odo,", "ódo,")
.replace("odos ", "ódos ")
.replace("odos.", "ódos.")
.replace("odos,", "ódos,")
.replace("ómódo", "ómodo")
.replace("oma ", "óma ")
.replace("oma.", "óma.")
.replace("oma,", "óma,")
.replace("omas ", "ómas ")
.replace("omas.", "ómas.")
.replace("omas,", "ómas,")
.replace("omo ", "ómo ")
.replace("omo.", "ómo.")
.replace("omo,", "ómo,")
.replace("omos ", "ómos ")
.replace("omos.", "ómos.")
.replace("omos,", "ómos,")
.replace("ones ", "ónes ")
.replace("ones.", "ónes.")
.replace("ones,", "ónes,")
.replace("or ", "ór ")
.replace("or.", "ór.")
.replace("or,", "ór,")
.replace("ores ", "óres ")
.replace("ores.", "óres.")
.replace("ores,", "óres,")
.replace("orda ", "órda ")
.replace("orda.", "órda.")
.replace("orda,", "órda,")
.replace("ordas ", "órdas ")
.replace("ordas.", "órdas.")
.replace("ordas,", "órdas,")
.replace("ordo", "órdo")
.replace("oso", "óso")
.replace("osos", "ósos")
.replace("ósot", "osót")
.replace("osa ", "ósa ")
.replace("osa.", "ósa.")
.replace("osa,", "ósa,")
.replace("osas", "ósas")
.replace("otro", "ótro")
.replace("uela", "uéla")
.replace("uelo", "uélo")
.replace("eña ", "éña ")
.replace("eña.", "éña.")
.replace("eña,", "éña,")
.replace("eñas ", "éñas ")
.replace("eñas.", "éñas.")
.replace("eñas,", "éñas,")
.replace("eño ", "éño ")
.replace("eño.", "éño.")
.replace("eño,", "éño,")
.replace("eños ", "éños ")
.replace("eños.", "éños.")
.replace("eños,", "éños,")
.replace("ensa ", "énsa ")
.replace("ensa,", "énsa,")
.replace("ensa.", "énsa.")
.replace("ensas ", "énsas ")
.replace("ensas,", "énsas,")
.replace("ensas,", "énsas,")
.replace("enso ", "énso ")
.replace("enso.", "énso.")
.replace("enso,", "énso,")
.replace("ensos ", "énsos ")
.replace("ensos.", "énsos.")
.replace("ensos,", "énsos,")
.replace("eno ", "éno ")
.replace("eno.", "éno.")
.replace("eno,", "éno,")
.replace("enos ", "énos ")
.replace("enos.", "énos.")
.replace("enos,", "énos,")
.replace("ozc", "ózc")
.replace("desde ", "désde ")
.replace("iempo", "iémpo")
.replace("alma ", "álma ")
.replace("almas ", "álmas ")
.replace("anja", "ánja")
.replace("ánjar", "anjar")
.replace("ánjad", "anjad")
.replace("alda", "álda")
.replace("áldad", "aldad")
.replace("áldar", "aldar")
.replace("eces ", "éces ")
.replace("eces.", "éces.")
.replace("eces,", "éces,")
.replace("ana ", "ána ")
.replace("ana.", "ána.")
.replace("ana,", "ána,")
.replace("anas ", "ánas ")
.replace("anas.", "ánas.")
.replace("anas,", "ánas,")
.replace("ábána", "ábana")
.replace("ea ", "éa ")
.replace("ea.", "éa.")
.replace("ea,", "éa,")
.replace("eas ", "éas ")
.replace("eas.", "éas.")
.replace("eas,", "éas,")
.replace("ídéa", "ídea")
.replace("ínéa", "ínea")
.replace("eo ", "éo ")
.replace("eo.", "éo.")
.replace("eo,", "éo,")
.replace("eos ", "éos ")
.replace("eos.", "éos.")
.replace("eos,", "éos,")
.replace("ánéo", "áneo")
.replace("ópéo", "ópeo")
.replace("opa ", "ópa ")
.replace("opa.", "ópa.")
.replace("opa,", "ópa,")
.replace("eza ", "éza ")
.replace("eza.", "éza.")
.replace("eza,", "éza,")
.replace("ezas ", "ézas ")
.replace("ezas.", "ézas.")
.replace("ezas,", "ézas,")
.replace("iet", "iét")
.replace("iétád", "ietád")
.replace("ue", "ué")
.replace("úedá", "uedá")
.replace("úedó", "uedó")
.replace("porqué", "pórque")
.replace("uérí", "uerí")
.replace("elio", "élio")
.replace("solo", "sólo")
.replace("sola ", "sóla ")
.replace("sola.", "sóla.")
.replace("sola,", "sóla,")
.replace("solas", "sólas");
spaacc.to_string()
}
pub fn spacobogota(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + "."; let dotbeg = ".".to_owned() + &dotend; let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let spaacc = spaaccent(&pncbeg);
let palesp = spapalesp(&spaacc);
let strmod = &palesp
.replace("ch", "t͡ʃ")
.replace("ce", "se")
.replace("cé", "sé")
.replace("ci", "si")
.replace("cí", "sí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace("ké", "kɛ")
.replace("ke", "kɛ")
.replace("kó", "kɔ")
.replace("ko", "kɔ")
.replace('x', "ks")
.replace('h', "")
.replace('j', "h")
.replace("ge", "he")
.replace("gé", "hé")
.replace("gi", "hi")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("abɾ", "abr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace(" ɾ", " r")
.replace(".ɾ", ".r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("ór", "óɹ")
.replace("y ", "i ")
.replace("y.", "i.")
.replace("y,", "i,")
.replace('y', "ɟ͡ʝ")
.replace("ll", "ɟ͡ʝ")
.replace("lt͡ʃ", "lʲt͡ʃ")
.replace("lt", "l̪t")
.replace('b', "β")
.replace(" β", " b")
.replace(".β", ".b")
.replace("mβ", "mb")
.replace("lβ", "lb")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ")
.replace("lɣ", "lɡ")
.replace("nɣ", "nɡ")
.replace("ád ", "á ")
.replace("ád.", "á.")
.replace("ád,", "á,")
.replace("id ", "i ")
.replace("id.", "i.")
.replace("id,", "i,")
.replace('d', "ð̞")
.replace(" ð̞", " ð")
.replace(".ð̞", ".ð")
.replace("nð̞", "nð")
.replace("lð̞", "ld")
.replace("áð̞a", "áʔa")
.replace("áð̞o", "áʔo")
.replace("óð̞a", "óʔa")
.replace("óð̞o", "óʔo")
.replace('z', "s")
.replace('s', "ɬ")
.replace("ɬ ", "ɬ̬ ")
.replace("ɬ.", "ɬ̬.")
.replace("ɬ,", "ɬ̬,")
.replace("eɬ̬ ", "el͡ʒ ")
.replace("eɬ̬.", "el͡ʒ.")
.replace("eɬ̬,", "el͡ʒ,")
.replace("éɬ̬ ", "él͡ʒ ")
.replace("éɬ̬.", "él͡ʒ.")
.replace("éɬ̬,", "él͡ʒ,")
.replace("ɬɣ", "ɬ̬ɣ")
.replace("ɬk", "ɬ̬k")
.replace("ɬð̞", "ɬ̬ð̞")
.replace("ɬm", "ɬ̬m")
.replace("ɬv", "ɬ̬v")
.replace("aɬa", "aɬ̬a")
.replace("aɬo", "aɬ̬o")
.replace("aɬe", "aɬ̬e")
.replace("aɬi", "aɬ̬i")
.replace("aɬu", "aɬ̬u")
.replace("aɬá", "aɬ̬á")
.replace("aɬó", "aɬ̬ó")
.replace("aɬé", "aɬ̬é")
.replace("aɬí", "aɬ̬í")
.replace("aɬú", "aɬ̬ú")
.replace("áɬa", "áɬ̬a")
.replace("áɬo", "áɬ̬o")
.replace("áɬe", "áɬ̬e")
.replace("áɬi", "áɬ̬i")
.replace("áɬu", "áɬ̬u")
.replace("oɬa", "oɬ̬a")
.replace("oɬo", "oɬ̬o")
.replace("oɬe", "oɬ̬e")
.replace("oɬi", "oɬ̬i")
.replace("oɬu", "oɬ̬u")
.replace("oɬá", "oɬ̬á")
.replace("oɬó", "oɬ̬ó")
.replace("oɬé", "oɬ̬é")
.replace("oɬí", "oɬ̬í")
.replace("oɬú", "oɬ̬ú")
.replace("óɬa", "óɬ̬a")
.replace("óɬo", "óɬ̬o")
.replace("óɬe", "óɬ̬e")
.replace("óɬi", "óɬ̬i")
.replace("óɬu", "óɬ̬u")
.replace("eɬa", "eɬ̬a")
.replace("eɬo", "eɬ̬o")
.replace("eɬe", "eɬ̬e")
.replace("eɬi", "eɬ̬i")
.replace("eɬu", "eɬ̬u")
.replace("eɬá", "eɬ̬á")
.replace("eɬó", "eɬ̬ó")
.replace("eɬé", "eɬ̬é")
.replace("eɬí", "eɬ̬í")
.replace("eɬú", "eɬ̬ú")
.replace("éɬa", "éɬ̬a")
.replace("éɬo", "éɬ̬o")
.replace("éɬe", "éɬ̬e")
.replace("éɬi", "éɬ̬i")
.replace("éɬu", "éɬ̬u")
.replace("iɬa", "iɬ̬a")
.replace("iɬo", "iɬ̬o")
.replace("iɬe", "iɬ̬e")
.replace("iɬi", "iɬ̬i")
.replace("iɬu", "iɬ̬u")
.replace("iɬá", "iɬ̬á")
.replace("iɬó", "iɬ̬ó")
.replace("iɬé", "iɬ̬é")
.replace("iɬí", "iɬ̬í")
.replace("iɬú", "iɬ̬ú")
.replace("íɬa", "íɬ̬a")
.replace("íɬo", "íɬ̬o")
.replace("íɬe", "íɬ̬e")
.replace("íɬi", "íɬ̬i")
.replace("íɬu", "íɬ̬u")
.replace("uɬa", "uɬ̬a")
.replace("uɬo", "uɬ̬o")
.replace("uɬe", "uɬ̬e")
.replace("uɬi", "uɬ̬i")
.replace("uɬu", "uɬ̬u")
.replace("uɬá", "uɬ̬á")
.replace("uɬó", "uɬ̬ó")
.replace("uɬé", "uɬ̬é")
.replace("uɬí", "uɬ̬í")
.replace("uɬú", "uɬ̬ú")
.replace("úɬa", "úɬ̬a")
.replace("úɬo", "úɬ̬o")
.replace("úɬe", "úɬ̬e")
.replace("úɬi", "úɬ̬i")
.replace("úɬu", "úɬ̬u")
.replace("kɬɬe", "kɬe")
.replace("kɬɬi", "kɬi")
.replace('ɬ', "ɬ̻")
.replace("ɬ̻̬", "ɬ̬")
.replace("mn", "nn")
.replace("nt͡ʃ", "nʲt͡ʃ")
.replace('t', "t̪")
.replace("nt̪", "n̪t̪")
.replace("nð", "n̪ð")
.replace("nk", "ŋk")
.replace("nɡ", "ŋɡ")
.replace("nm", "m̚m")
.replace("n m", "m m")
.replace("nβ", "mβ")
.replace("n β", "m β")
.replace("n b", "m b")
.replace("np", "mp")
.replace("n p", "m p")
.replace("nf", "ɱf")
.replace("n f", "ɱ f")
.replace('ñ', "ɲ")
.replace("ia", "ja")
.replace("ie", "je")
.replace("io", "jo")
.replace("iu", "ju")
.replace("iá", "já")
.replace("ié", "jé")
.replace("ió", "jó")
.replace("iú", "jú")
.replace("ea", "ia")
.replace("eá", "iá")
.replace("ká", "kɑ")
.replace("ka", "kɑ")
.replace('á', "ɐ̞")
.replace('a', "ɐ")
.replace('ó', "ɔ̝")
.replace("o ", "ʊ ")
.replace("o.", "ʊ.")
.replace("o,", "ʊ,")
.replace("oɬ̬ ", "ʊɬ̬ ")
.replace("oɬ̬.", "ʊɬ̬.")
.replace("oɬ̬,", "ʊɬ̬,")
.replace('o', "o̞")
.replace("lʊ ", "lo̞ ")
.replace("lʊ.", "lo̞.")
.replace("lʊ,", "lo̞,")
.replace("lʊɬ̬ ", "lo̞ɬ̬ ")
.replace("lʊɬ̬.", "lo̞ɬ̬.")
.replace("lʊɬ̬,", "lo̞ɬ̬,")
.replace("ɾʊ ", "ɾo̞ ")
.replace("ɾʊ.", "ɾo̞.")
.replace("ɾʊ,", "ɾo̞,")
.replace("ɾʊɬ̬ ", "ɾo̞ɬ̬ ")
.replace("ɾʊɬ̬.", "ɾo̞ɬ̬.")
.replace("ɾʊɬ̬,", "ɾo̞ɬ̬,")
.replace("mʊ ", "mo̞ ")
.replace("mʊ.", "mo̞.")
.replace("mʊ,", "mo̞,")
.replace("mʊɬ̬ ", "mo̞ɬ̬ ")
.replace("mʊɬ̬.", "mo̞ɬ̬.")
.replace("mʊɬ̬,", "mo̞ɬ̬,")
.replace("nʊ ", "no̞ ")
.replace("nʊ.", "no̞.")
.replace("nʊ,", "no̞,")
.replace("nʊɬ̬ ", "no̞ɬ̬ ")
.replace("nʊɬ̬.", "no̞ɬ̬.")
.replace("nʊɬ̬,", "no̞ɬ̬,")
.replace("ɲʊ ", "ɲo̞ ")
.replace("ɲʊ.", "ɲo̞.")
.replace("ɲʊ,", "ɲo̞,")
.replace("ɲʊɬ̬ ", "ɲo̞ɬ̬ ")
.replace("ɲʊɬ̬.", "ɲo̞ɬ̬.")
.replace("ɲʊɬ̬,", "ɲo̞ɬ̬,")
.replace('é', "ɛ̝")
.replace('e', "e̞")
.replace('í', "i")
.replace('i', "i̞")
.replace('ú', "u")
.replace('u', "u̞")
.replace("mu̞", "mũ̞")
.replace("ɔm̚m", "ɔ̃m̚m")
.replace("e̞m̚m", "ẽ̞m̚m")
.replace("i̞m̚m", "ĩ̞m̚m")
.replace("u̞m̚m", "ũ̞m̚m")
.replace("ɐnn", "ɐ̃nn")
.replace("o̞nn", "õ̞nn")
.replace("e̞nn", "ẽ̞nn")
.replace("i̞nn", "ĩ̞nn")
.replace("u̞nn", "ũ̞nn")
.replace("ɐ̞ɱ", "ɐ̞̃ɱ")
.replace("o̞ɱ", "õ̞ɱ")
.replace("e̞ɱ", "ẽɱ")
.replace("ɐɱ", "ɐ̃ɱ")
.replace("ɑɱ", "ɑ̃ɱ")
.replace("ɔ̝ɱ", "ɔ̝̃ɱ")
.replace("ɔɱ", "ɔ̃ɱ")
.replace("ɛ̝ɱ", "ɛ̝̃ɱ")
.replace("i̞ɱ", "ĩ̞ɱ")
.replace("u̞ɱ", "ũ̞ɱ")
.replace("ɐ̞ŋ", "ɐ̞̃ŋ")
.replace("o̞ŋ", "õ̞ŋ")
.replace("e̞ŋ", "ẽ̞ŋ")
.replace("ɐŋ", "ɐ̃ŋ")
.replace("ɑŋ", "ɑ̃ŋ")
.replace("ɔ̝ŋ", "ɔ̝̃ŋ")
.replace("ɔŋ", "ɔ̃ŋ")
.replace("ɛ̝ŋ", "ɛ̝̃ŋ")
.replace("i̞ŋ", "ĩ̞ŋ")
.replace("u̞ŋ", "ũ̞ŋ")
.replace("ɐ̞n̪", "ɐ̞̃n̪")
.replace("ɑn̪", "ɑ̃n̪")
.replace("o̞n̪", "õ̞n̪")
.replace("e̞n̪", "ẽ̞n̪")
.replace("ɐn̪", "ɐ̃n̪")
.replace("ɔ̝n̪", "ɔ̝̃n̪")
.replace("ɔn̪", "ɔ̃n̪")
.replace("ɛ̝n̪", "ɛ̝̃n̪")
.replace("i̞n̪", "ĩ̞n̪")
.replace("u̞n̪", "ũ̞n̪")
.replace("ɐnʲ", "ɐ̃nʲ")
.replace("ɐ̞nʲ", "ɐ̞̃nʲ")
.replace("ɑnʲ", "ɑ̃nʲ")
.replace("o̞nʲ", "õ̞nʲ")
.replace("ɔ̝nʲ", "ɔ̝̃nʲ")
.replace("ɔnʲ", "ɔ̃nʲ")
.replace("e̞nʲ", "ẽ̞nʲ")
.replace("ɛ̝nʲ", "ɛ̝̃nʲ")
.replace("i̞nʲ", "ĩ̞nʲ")
.replace("u̞nʲ", "ũ̞nʲ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("BOGOTÁ, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("BOGOTÁ, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Bogotá" + reset + ", " + cyan + "CO" + reset + ":");
println!();
print!("{}", yellow);
println!("{}", result);
print!("{}", reset);
}
}
pub fn spacomedellin(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + "."; let dotbeg = ".".to_owned() + &dotend; let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let spaacc = spaaccent(&pncbeg);
let palesp = spapalesp(&spaacc);
let strmod = &palesp
.replace("ch", "ʈ͡ʂʲ")
.replace("ce", "se")
.replace("cé", "sé")
.replace("ci", "ʒi")
.replace("cí", "ʒí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace("ké", "kʰe̞")
.replace("ke", "kʰe̞")
.replace("kó", "kʰɔ̝")
.replace("ko", "kʰɔ̝")
.replace('x', "ks")
.replace('h', "")
.replace('j', "h")
.replace("ge", "he")
.replace("gé", "hé")
.replace("gi", "hi")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("abɾ", "abr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace(" ɾ", " r")
.replace(".ɾ", ".r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("ór", "óɹ")
.replace("y ", "i ")
.replace("y.", "i.")
.replace("y,", "i,")
.replace('y', "ɟ͡ʝ")
.replace("lle", "d͡ʑe")
.replace("ll", "ɟ͡ʝ")
.replace("lʈ͡ʂʲ", "lʲʈ͡ʂʲ")
.replace("lt", "l̪t")
.replace('b', "β")
.replace(" β", " b")
.replace(".β", ".b")
.replace("mβ", "ɱb̪")
.replace("lβ", "lb̪")
.replace("l b", "l b̪")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ")
.replace("lɣ", "lɡ")
.replace("nɣ", "nɡ")
.replace("ád ", "á ")
.replace("ád.", "á.")
.replace("ád,", "á,")
.replace("id ", "i ")
.replace("id.", "i.")
.replace("id,", "i,")
.replace('d', "ð̞")
.replace(" ð̞", " ð")
.replace(".ð̞", ".ð")
.replace("nð̞", "nð")
.replace("lð̞", "ld")
.replace("áð̞a", "áʔa")
.replace("áð̞o", "áʔo")
.replace("óð̞a", "óʔa")
.replace("óð̞o", "óʔo")
.replace('z', "s")
.replace('s', "s̺")
.replace("s̺ ", "s̬ ")
.replace("s̺.", "s̬.")
.replace("s̺,", "s̬,")
.replace("es̬ ", "ez̺ ")
.replace("es̬.", "ez̺.")
.replace("es̬,", "ez̺,")
.replace("és̬ ", "éz̺ ")
.replace("és̬.", "éz̺.")
.replace("és̬,", "éz̺,")
.replace("s̺ɣ", "s̬ɣ")
.replace("s̺k", "s̬k")
.replace("s̺ð̞", "s̬ð̞")
.replace("s̺m", "s̬m")
.replace("s̺v", "s̬v")
.replace("as̺a", "az̺a")
.replace("as̺o", "az̺o")
.replace("as̺e", "az̺e")
.replace("as̺i", "az̺i")
.replace("as̺u", "az̺u")
.replace("as̺á", "az̺á")
.replace("as̺ó", "az̺ó")
.replace("as̺é", "az̺é")
.replace("as̺í", "az̺í")
.replace("as̺ú", "az̺ú")
.replace("ás̺a", "áz̺a")
.replace("ás̺o", "áz̺o")
.replace("ás̺e", "áz̺e")
.replace("ás̺i", "áz̺i")
.replace("ás̺u", "áz̺u")
.replace("os̺a", "oz̺a")
.replace("os̺o", "oz̺o")
.replace("os̺e", "oz̺e")
.replace("os̺i", "oz̺i")
.replace("os̺u", "oz̺u")
.replace("os̺á", "oz̺á")
.replace("os̺ó", "oz̺ó")
.replace("os̺é", "oz̺é")
.replace("os̺í", "oz̺í")
.replace("os̺ú", "oz̺ú")
.replace("ós̺a", "óz̺a")
.replace("ós̺o", "óz̺o")
.replace("ós̺e", "óz̺e")
.replace("ós̺i", "óz̺i")
.replace("ós̺u", "óz̺u")
.replace("es̺a", "ez̺a")
.replace("es̺o", "ez̺o")
.replace("es̺e", "ez̺e")
.replace("es̺i", "ez̺i")
.replace("es̺u", "ez̺u")
.replace("es̺á", "ez̺á")
.replace("es̺ó", "ez̺ó")
.replace("es̺é", "ez̺é")
.replace("es̺í", "ez̺í")
.replace("es̺ú", "ez̺ú")
.replace("és̺a", "éz̺a")
.replace("és̺o", "éz̺o")
.replace("és̺e", "éz̺e")
.replace("és̺i", "éz̺i")
.replace("és̺u", "éz̺u")
.replace("is̺a", "iz̺a")
.replace("is̺o", "iz̺o")
.replace("is̺e", "iz̺e")
.replace("is̺i", "iz̺i")
.replace("is̺u", "iz̺u")
.replace("is̺á", "iz̺á")
.replace("is̺ó", "iz̺ó")
.replace("is̺é", "iz̺é")
.replace("is̺í", "iz̺í")
.replace("is̺ú", "iz̺ú")
.replace("ís̺a", "íz̺a")
.replace("ís̺o", "íz̺o")
.replace("ís̺e", "íz̺e")
.replace("ís̺i", "íz̺i")
.replace("ís̺u", "íz̺u")
.replace("us̺a", "uz̺a")
.replace("us̺o", "uz̺o")
.replace("us̺e", "uz̺e")
.replace("us̺i", "uz̺i")
.replace("us̺u", "uz̺u")
.replace("us̺á", "uz̺á")
.replace("us̺ó", "uz̺ó")
.replace("us̺é", "uz̺é")
.replace("us̺í", "uz̺í")
.replace("us̺ú", "uz̺ú")
.replace("ús̺a", "úz̺a")
.replace("ús̺o", "úz̺o")
.replace("ús̺e", "úz̺e")
.replace("ús̺i", "úz̺i")
.replace("ús̺u", "úz̺u")
.replace("ks̺s̺e", "ks̺e")
.replace("ks̺s̺i", "ks̺i")
.replace("mn", "nn")
.replace("nʈ͡ʂʲ", "nʲʈ͡ʂʲ")
.replace('t', "t̪")
.replace("nt̪", "n̪t̪")
.replace("nð", "n̪ð")
.replace("nk", "ŋk")
.replace("nɡ", "ŋɡ")
.replace("n ", "ŋ ")
.replace("n.", "ŋ.")
.replace("n,", "ŋ,")
.replace("nm", "m̚m")
.replace("n m", "m m")
.replace("nβ", "mβ")
.replace("ŋ β", "ɱ β")
.replace("ŋ b", "ɱ b")
.replace("np", "mp")
.replace("n p", "m p")
.replace("nf", "mf")
.replace("ŋ f", "ɱ f")
.replace('ñ', "ɲ")
.replace('f', "ɸ")
.replace("ia", "ja")
.replace("ie", "je")
.replace("io", "jo")
.replace("iu", "ju")
.replace("iá", "já")
.replace("ié", "jé")
.replace("ió", "jó")
.replace("iú", "jú")
.replace("ea", "ia")
.replace("eá", "iá")
.replace("ká", "kɑ")
.replace("ka", "kɑ")
.replace('á', "ɐ̞")
.replace('a', "ɐ")
.replace("ʝɐ̞", "ɟ͡ʝɐ̞")
.replace('ó', "o̞")
.replace("o ", "ʊ ")
.replace("o.", "ʊ.")
.replace("o,", "ʊ,")
.replace("os̬ ", "ʊs̬ ")
.replace("os̬.", "ʊs̬.")
.replace("os̬,", "ʊs̬,")
.replace("lʊ ", "lo ")
.replace("lʊ.", "lo.")
.replace("lʊ,", "lo,")
.replace("lʊs̬ ", "los̬ ")
.replace("lʊs̬.", "los̬.")
.replace("lʊs̬,", "los̬,")
.replace("ɾʊ ", "ɾo ")
.replace("ɾʊ.", "ɾo.")
.replace("ɾʊ,", "ɾo,")
.replace("ɾʊs̬ ", "ɾos̬ ")
.replace("ɾʊs̬.", "ɾos̬.")
.replace("ɾʊs̬,", "ɾos̬,")
.replace("ɡʊ ", "ɡə̠ ")
.replace("ɡʊ.", "ɡə̠.")
.replace("ɡʊ,", "ɡə̠,")
.replace("ɡʊs̬ ", "ɡə̠s̬ ")
.replace("ɡʊs̬.", "ɡə̠s̬.")
.replace("ɡʊs̬,", "ɡə̠s̬,")
.replace("ɣʊ ", "ɣə̠ ")
.replace("ɣʊ.", "ɣə̠.")
.replace("ɣʊ,", "ɣə̠,")
.replace("ɣʊs̬ ", "ɣə̠s̬ ")
.replace("ɣʊs̬.", "ɣə̠s̬.")
.replace("ɣʊs̬,", "ɣə̠s̬,")
.replace("mʊ ", "mo̞ ")
.replace("mʊ.", "mo̞.")
.replace("mʊ,", "mo̞,")
.replace("mʊs̬ ", "mo̞s̬ ")
.replace("mʊs̬.", "mo̞s̬.")
.replace("mʊs̬,", "mo̞s̬,")
.replace("nʊ ", "no̞ ")
.replace("nʊ.", "no̞.")
.replace("nʊ,", "no̞,")
.replace("nʊs̬ ", "no̞s̬ ")
.replace("nʊs̬.", "no̞s̬.")
.replace("nʊs̬,", "no̞s̬,")
.replace("ɲʊ ", "ɲo̞ ")
.replace("ɲʊ.", "ɲo̞.")
.replace("ɲʊ,", "ɲo̞,")
.replace("ɲʊs̬ ", "ɲo̞s̬ ")
.replace("ɲʊs̬.", "ɲo̞s̬.")
.replace("ɲʊs̬,", "ɲo̞s̬,")
.replace('é', "e̞")
.replace('í', "i")
.replace('i', "i̞")
.replace('ú', "u")
.replace('u', "u̞")
.replace("ɟ͡ʝʊ", "ɟ͡ʝö")
.replace("ɔ̝m̚m", "ɔ̝̃m̚m")
.replace("em̚m", "ẽm̚m")
.replace("i̞m̚m", "ĩ̞m̚m")
.replace("u̞m̚m", "ũ̞m̚m")
.replace("ɐnn", "ɐ̃nn")
.replace("onn", "õnn")
.replace("enn", "ẽnn")
.replace("i̞nn", "ĩ̞nn")
.replace("u̞nn", "ũ̞nn")
.replace("ɐ̞ɱ", "ɐ̞̃ɱ")
.replace("oɱ", "õɱ")
.replace("eɱ", "ẽɱ")
.replace("ɐɱ", "ɐ̃ɱ")
.replace("ɑɱ", "ɑ̃ɱ")
.replace("o̞ɱ", "õ̞ɱ")
.replace("ɔ̝ɱ", "ɔ̝̃ɱ")
.replace("e̞ɱ", "ẽ̞ɱ")
.replace("i̞ɱ", "ĩ̞ɱ")
.replace("u̞ɱ", "ũ̞ɱ")
.replace("ɐ̞ŋ", "ɐ̞̃ŋ")
.replace("oŋ", "õŋ")
.replace("eŋ", "ẽŋ")
.replace("ɐŋ", "ɐ̃ŋ")
.replace("ɑŋ", "ɑ̃ŋ")
.replace("o̞ŋ", "õ̞ŋ")
.replace("ɔ̝ŋ", "ɔ̝̃ŋ")
.replace("e̞ŋ", "ẽ̞ŋ")
.replace("i̞ŋ", "ĩ̞ŋ")
.replace("u̞ŋ", "ũ̞ŋ")
.replace("ɐ̞n̪", "ɐ̞̃n̪")
.replace("ɑn̪", "ɑ̃n̪")
.replace("on̪", "õn̪")
.replace("en̪", "ẽn̪")
.replace("ɐn̪", "ɐ̃n̪")
.replace("o̞n̪", "õ̞n̪")
.replace("ɔ̝n̪", "ɔ̝̃n̪")
.replace("e̞n̪", "ẽ̞n̪")
.replace("i̞n̪", "ĩ̞n̪")
.replace("u̞n̪", "ũ̞n̪")
.replace("ɐnʲ", "ɐ̃nʲ")
.replace("ɐ̞nʲ", "ɐ̞̃nʲ")
.replace("ɑnʲ", "ɑ̃nʲ")
.replace("onʲ", "õnʲ")
.replace("o̞nʲ", "õ̞nʲ")
.replace("ɔ̝nʲ", "ɔ̝̃nʲ")
.replace("enʲ", "ẽnʲ")
.replace("e̞nʲ", "ẽ̞nʲ")
.replace("i̞nʲ", "ĩ̞nʲ")
.replace("u̞nʲ", "ũ̞nʲ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("MEDELLÍN, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("MEDELLÍN, CO:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Medellín" + reset + ", " + cyan + "CO" + reset + ":");
println!();
print!("{}", yellow);
println!("{}", result);
print!("{}", reset);
}
}
pub fn spaescadiz(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + "."; let dotbeg = ".".to_owned() + &dotend; let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let spaacc = spaaccent(&pncbeg);
let palesp = spapalesp(&spaacc);
let strmod = &palesp
.replace("ch", "ʃʲ")
.replace("ce", "se")
.replace("cé", "sé")
.replace("ci", "si")
.replace("cí", "sí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace('x', "ks")
.replace('h', "h^")
.replace(" h^", " h̥")
.replace(".h^", ".h̥")
.replace("h^", "")
.replace('j', "x")
.replace("ge", "xe")
.replace("gé", "xé")
.replace("gi", "xi")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("abɾ", "abr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace(" ɾ", " r")
.replace(".ɾ", ".r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("ór", "óɹ")
.replace("y ", "i ")
.replace("y.", "i.")
.replace("y,", "i,")
.replace('y', "ʝ")
.replace("ll", "ʝ")
.replace("lʃʲ", "lʲʃʲ")
.replace("lt", "l̪t")
.replace('b', "β̞")
.replace(" β̞", " β")
.replace(".β̞", ".β")
.replace("mβ̞", "mβ")
.replace("lβ̞", "lβ")
.replace("l b", "l β")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ̞")
.replace("lɣ̞", "lɣ")
.replace("nɣ̞", "nɣ")
.replace("ád ", "á ")
.replace("ád.", "á.")
.replace("ád,", "á,")
.replace("id ", "i ")
.replace("id.", "i.")
.replace("id,", "i,")
.replace('d', "ð̞")
.replace(" ð̞", " ð")
.replace(".ð̞", ".ð")
.replace("nð̞", "nð")
.replace("lð̞", "lð")
.replace("áð̞o ", "að̥o ")
.replace("áð̞o.", "að̥o.")
.replace("áð̞o,", "að̥o,")
.replace("ið̞a ", "iʔa ")
.replace("ið̞a.", "iʔa.")
.replace("ið̞a,", "iʔa,")
.replace("ið̞o ", "iʔo ")
.replace("ið̞o.", "iʔo.")
.replace("ið̞o,", "iʔo,")
.replace(" iʔo ", " ið̞o ")
.replace(" iʔo,", " ið̞o,")
.replace(" iʔo.", " ið̞o.")
.replace("ð̞ita", "ʔita")
.replace("ð̞ito", "ʔito")
.replace('z', "s")
.replace('s', "s̻")
.replace(" es̻ ", " es̬ ")
.replace(" es̻.", " es̬.")
.replace(" es̻,", " es̬,")
.replace(".es̻ ", ".es̬ ")
.replace("s̻ ", " ")
.replace("s̻.", ".")
.replace("s̻,", ",")
.replace("s̻k", "s̥k")
.replace("s̻t", "s̥t")
.replace("as̻o", "as̬o")
.replace("as̻ó", "as̬ó")
.replace("ás̻o", "ás̬o")
.replace("os̻o", "os̬o")
.replace("os̻ó", "os̬ó")
.replace("ós̻o", "ós̬o")
.replace("es̻o", "es̬o")
.replace("es̻ó", "es̬ó")
.replace("és̻o", "és̬o")
.replace("is̻o", "is̬o")
.replace("is̻ó", "is̬ó")
.replace("ís̻o", "ís̬o")
.replace("us̻o", "us̬o")
.replace("us̻ó", "us̬ó")
.replace("ús̻o", "ús̬o")
.replace("ks̻s̻e", "ks̻e")
.replace("ks̻s̻i", "ks̻i")
.replace("mn", "nn")
.replace("nʈ͡ʂʲ", "nʲʈ͡ʂʲ")
.replace('t', "t̪")
.replace("nt̪", "n̪t̪")
.replace("nð", "n̪ð")
.replace("nk", "ŋk")
.replace("nɣ", "ŋɣ")
.replace("n ", "ŋ ")
.replace("n.", "ŋ.")
.replace("n,", "ŋ,")
.replace("nm", "m̚m")
.replace("n m", "m m")
.replace("nβ", "mβ")
.replace("ŋ β", "ɱ β")
.replace("np", "mp")
.replace("n p", "m p")
.replace("nf", "mf")
.replace("ŋ f", "ɱ f")
.replace('ñ', "ɲ")
.replace('f', "f̟")
.replace('k', "k̬")
.replace("ia", "ja")
.replace("ie", "je")
.replace("io", "jo")
.replace("iu", "ju")
.replace("iá", "já")
.replace("ié", "jé")
.replace("ió", "jó")
.replace("iú", "jú")
.replace('á', "ɐ")
.replace('a', "ɐ̝")
.replace('ó', "ɞ̠")
.replace('o', "ɞ")
.replace('é', "ɜ̟")
.replace('e', "ɜ")
.replace('í', "i")
.replace('i', "ɪ")
.replace('ú', "u")
.replace('u', "ʊ")
.replace("mʊ", "mʊ̃")
.replace("ɞm̚m", "ɞ̃m̚m")
.replace("ɜm̚m", "ɜ̃m̚m")
.replace("ɪm̚m", "ɪ̃m̚m")
.replace("ʊm̚m", "ʊ̃m̚m")
.replace("ɐ̝nn", "ɐ̝̃nn")
.replace("ɞnn", "ɞ̃nn")
.replace("ɜnn", "ɜ̃nn")
.replace("ɪnn", "ɪ̃nn")
.replace("ʊnn", "ʊ̃nn")
.replace("ɐɱ", "ɐ̃ɱ")
.replace("ɞɱ", "ɞ̃ɱ")
.replace("ɜɱ", "ɜ̃ɱ")
.replace("ɐ̝ɱ", "ɐ̝̃ɱ")
.replace("ɞ̠ɱ", "ɞ̠̃ɱ")
.replace("ɜ̟ɱ", "ɜ̟̃ɱ")
.replace("ɪɱ", "ɪ̃ɱ")
.replace("ʊɱ", "ʊ̃ɱ")
.replace("ɐŋ", "ɐ̃ŋ")
.replace("ɞŋ", "ɞ̃ŋ")
.replace("ɜŋ", "ɜ̃ŋ")
.replace("ɐ̝ŋ", "ɐ̝̃ŋ")
.replace("ɞ̠ŋ", "ɞ̠̃ŋ")
.replace("ɜ̟ŋ", "ɜ̟̃ŋ")
.replace("ɪŋ", "ɪ̃ŋ")
.replace("ʊŋ", "ʊ̃ŋ")
.replace("ɐn̪", "ɐ̃n̪")
.replace("ɞn̪", "ɞ̃n̪")
.replace("ɜn̪", "ɜ̃n̪")
.replace("ɐ̝n̪", "ɐ̝̃n̪")
.replace("ɞ̠n̪", "ɞ̠̃n̪")
.replace("ɜ̟n̪", "ɜ̟̃n̪")
.replace("ɪn̪", "ɪ̃n̪")
.replace("ʊn̪", "ʊ̃n̪")
.replace("ɐ̝nʲ", "ɐ̝̃nʲ")
.replace("ɐnʲ", "ɐ̃nʲ")
.replace("ɞnʲ", "ɞ̃nʲ")
.replace("ɞ̠nʲ", "ɞ̠̃nʲ")
.replace("ɜnʲ", "ɜ̃nʲ")
.replace("ɜ̟nʲ", "ɜ̟̃nʲ")
.replace("ɪnʲ", "ɪ̃nʲ")
.replace("ʊnʲ", "ʊ̃nʲ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("CÁDIZ, ES:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("CÁDIZ, ES:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Cádiz" + reset + ", " + cyan + "ES" + reset + ":");
println!();
print!("{}", yellow);
println!("{}", result);
print!("{}", reset);
}
}
pub fn spaesmadrid(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + "."; let dotbeg = ".".to_owned() + &dotend; let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let spaacc = spaaccent(&pncbeg);
let palesp = spapalesp(&spaacc);
let strmod = &palesp
.replace("ch", "t͡ʃ")
.replace("ce", "θe")
.replace("cé", "θé")
.replace("ci", "θi")
.replace("cí", "θí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace('x', "ks")
.replace('j', "x")
.replace("ge", "xe")
.replace("gé", "xé")
.replace("gi", "χi")
.replace("xi", "χi")
.replace("ix", "iχ")
.replace("xu", "χu")
.replace("ux", "uχ")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("abɾ", "abr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace(" ɾ", " r")
.replace(".ɾ", ".r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("ór", "óɹ")
.replace("y ", "i ")
.replace("y.", "i.")
.replace("y,", "i,")
.replace('y', "ʝ")
.replace("ll", "j")
.replace("ld", "l̪d")
.replace("lt͡ʃ", "lʲt͡ʃ")
.replace("lt", "l̪t")
.replace("lz", "l̟z")
.replace("lk", "ʟk")
.replace("lg", "ʟg")
.replace("lx", "ʟx")
.replace('b', "β̞")
.replace(" β̞", " β")
.replace(".β̞", ".β")
.replace("mβ̞", "mβ")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ̞")
.replace("nɣ̞", "nɣ")
.replace("ád ", "á ")
.replace("ád.", "á.")
.replace("ád,", "á,")
.replace("id ", "iθ ")
.replace("id.", "iθ.")
.replace("id,", "iθ,")
.replace('d', "ð̞")
.replace(" ð̞", " ð")
.replace(".ð̞", ".ð")
.replace("nð̞", "nð")
.replace("l̪ð̞", "l̪ð")
.replace('s', "s̺")
.replace("s̺ ", "s̬ ")
.replace("s̺.", "s̬.")
.replace("s̺,", "s̬,")
.replace("s̺ɣ̞", "s̬ɣ̞")
.replace("s̺m", "s̬m")
.replace("s̺v", "s̬v")
.replace("s̺k", "xk")
.replace("zɣ̞", "ðɣ̞")
.replace('z', "θ")
.replace("s̺θ", "s̺")
.replace("ks̺θ", "ks̺")
.replace("mn", "nn")
.replace("nt͡ʃ", "nʲt͡ʃ")
.replace('t', "t̪")
.replace("nt̪", "n̪t̪")
.replace("nð", "n̪ð")
.replace("nk", "ŋk")
.replace("nɣ", "ŋɣ")
.replace("nx", "ŋx")
.replace("nθ", "n̟θ")
.replace("nχ", "ɴχ")
.replace("nm", "m̚m")
.replace("n m", "m m")
.replace("nβ", "mβ")
.replace("n β", "m β")
.replace("np", "mp")
.replace("n p", "m p")
.replace("nf", "ɱf")
.replace("n f", "ɱ f")
.replace('ñ', "ɲ")
.replace('h', "")
.replace("ia", "ja")
.replace("ie", "je")
.replace("io", "jo")
.replace("iu", "ju")
.replace("iá", "já")
.replace("ié", "jé")
.replace("ió", "jó")
.replace("iú", "jú")
.replace('á', "ɐ̞")
.replace('a', "ɐ")
.replace("ʝɐ̞", "ɟ͡ʝɐ̞")
.replace('ó', "ɔ")
.replace('o', "ɔ̝")
.replace('é', "ɛ")
.replace('e', "ɛ̝")
.replace('í', "i")
.replace('i', "i̞")
.replace('ú', "u")
.replace('u', "u̞")
.replace("ɔn", "ɔ̃n")
.replace("ɔm ", "ɔ̃m ")
.replace("mu̞", "mũ̞")
.replace("ɔ̝m̚m", "ɔ̝̃m̚m")
.replace("ɛ̝m̚m", "ɛ̝̃m̚m")
.replace("i̞m̚m", "ĩ̞m̚m")
.replace("u̞m̚m", "ũ̞m̚m")
.replace("ɐnn", "ɐ̃nn")
.replace("ɔ̝nn", "ɔ̝̃nn")
.replace("ɛ̝nn", "ɛ̝̃nn")
.replace("i̞nn", "ĩ̞nn")
.replace("u̞nn", "ũ̞nn")
.replace("ɐ̞ɱ", "ɐ̞̃ɱ")
.replace("ɔ̝ɱ", "ɔ̝̃ɱ")
.replace("ɛ̝ɱ", "ɛ̝̃ɱ")
.replace("ɐɱ", "ɐ̃ɱ")
.replace("ɔɱ", "ɔ̃ɱ")
.replace("ɛɱ", "ɛ̃ɱ")
.replace("i̞ɱ", "ĩ̞ɱ")
.replace("u̞ɱ", "ũ̞ɱ")
.replace("ɐ̞ŋ", "ɐ̞̃ŋ")
.replace("ɔ̝ŋ", "ɔ̝̃ŋ")
.replace("ɛ̝ŋ", "ɛ̝̃ŋ")
.replace("ɐŋ", "ɐ̃ŋ")
.replace("ɔŋ", "ɔ̃ŋ")
.replace("ɛŋ", "ɛ̃ŋ")
.replace("i̞ŋ", "ĩ̞ŋ")
.replace("u̞ŋ", "ũ̞ŋ")
.replace("ɐ̞n̪", "ɐ̞̃n̪")
.replace("ɔ̝n̪", "ɔ̝̃n̪")
.replace("ɛ̝n̪", "ɛ̝̃n̪")
.replace("ɐn̪", "ɐ̃n̪")
.replace("ɔn̪", "ɔ̃n̪")
.replace("ɛn̪", "ɛ̃n̪")
.replace("i̞n̪", "ĩ̞n̪")
.replace("u̞n̪", "ũ̞n̪")
.replace("ɐ̞nʲ", "ɐ̞̃nʲ")
.replace("ɔ̝nʲ", "ɔ̝̃nʲ")
.replace("ɛ̝nʲ", "ɛ̝̃nʲ")
.replace("ɐnʲ", "ɐ̃nʲ")
.replace("ɔnʲ", "ɔ̃nʲ")
.replace("ɛnʲ", "ɛ̃nʲ")
.replace("i̞nʲ", "ĩ̞nʲ")
.replace("u̞nʲ", "ũ̞nʲ")
.replace("ɐ̞n̟", "ɐ̞̃n̟")
.replace("ɔ̝n̟", "ɔ̝̃n̟")
.replace("ɛ̝n̟", "ɛ̝̃n̟")
.replace("ɐn̟", "ɐ̃n̟")
.replace("ɔn̟", "ɔ̃n̟")
.replace("ɛn̟", "ɛ̃n̟")
.replace("i̞n̟", "ĩ̞n̟")
.replace("u̞n̟", "ũ̞n̟")
.replace("ɐ̞ɴ", "ɐ̞̃ɴ")
.replace("ɔ̝ɴ", "ɔ̝̃ɴ")
.replace("ɛ̝ɴ", "ɛ̝̃ɴ")
.replace("ɐɴ", "ɐ̃ɴ")
.replace("ɔɴ", "ɔ̃ɴ")
.replace("ɛɴ", "ɛ̃ɴ")
.replace("i̞ɴ", "ĩ̞ɴ")
.replace("u̞ɴ", "ũ̞ɴ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("MADRID, ES:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("MADRID, ES:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Madrid" + reset + ", " + cyan + "ES" + reset + ":");
println!();
print!("{}", yellow);
println!("{}", result);
print!("{}", reset);
}
}
pub fn spamxciudaddemexico(original_text: &str, usefile: &str, outputfile: &str, reset: &str, red: &str, cyan: &str, yellow: &str) {
let dotend = original_text.to_owned() + "."; let dotbeg = ".".to_owned() + &dotend; let lowercase = &dotbeg.to_lowercase();
let pncbeg = spapncbeg(lowercase);
let spaacc = spaaccent(&pncbeg);
let palesp = spapalesp(&spaacc);
let strmod = &palesp
.replace("ch", "t͡ʃ")
.replace("ce", "ɬe")
.replace("cé", "ɬé")
.replace("ci", "ɬi")
.replace("cí", "ɬí")
.replace('c', "k")
.replace("que", "ke")
.replace("qué", "ké")
.replace("qui", "ki")
.replace('q', "k")
.replace('x', "ks")
.replace('j', "x")
.replace("ge", "xe")
.replace("gé", "xé")
.replace("gi", "χi")
.replace("xi", "χi")
.replace("ix", "iχ")
.replace("xu", "χu")
.replace("ux", "uχ")
.replace('r', "ɾ")
.replace("subɾ", "subr")
.replace("abɾ", "abr")
.replace("nɾ", "nr")
.replace("lɾ", "lr")
.replace("sɾ", "sr")
.replace(" ɾ", " r")
.replace(".ɾ", ".r")
.replace("ɾɾ", "r")
.replace("oɾ", "oɹ")
.replace("ór", "óɹ")
.replace("y ", "i ")
.replace("y.", "i.")
.replace("y,", "i,")
.replace('y', "ʝ")
.replace("ll", "ʝ")
.replace("lt͡ʃ", "lʲt͡ʃ")
.replace("lk", "ʟk")
.replace("lg", "ʟg")
.replace("lx", "ʟx")
.replace('b', "β̞")
.replace(" β̞", " β")
.replace(".β̞", ".β")
.replace("mβ̞", "mβ")
.replace('v', "β̞")
.replace("fg", "vg")
.replace("fn", "vn")
.replace("gue", "ge")
.replace("gué", "gé")
.replace("gui", "gi")
.replace("guí", "gí")
.replace('ü', "u")
.replace('g', "ɣ̞")
.replace("nɣ̞", "nɣ")
.replace("ád ", "á ")
.replace("ád.", "á.")
.replace("ád,", "á,")
.replace("id ", "i ")
.replace("id.", "i.")
.replace("id,", "i,")
.replace('d', "ð̞")
.replace(" ð̞", " ð")
.replace(".ð̞", ".ð")
.replace("nð̞", "nð")
.replace("lð̞", "lð")
.replace('l', "l̠")
.replace(['z', 's'], "ɬ")
.replace("ɬ ", "ɬ̬ ")
.replace("ɬ.", "ɬ̬.")
.replace("ɬ,", "ɬ̬,")
.replace("ɬɣ̞", "ɬ̬ɣ̞")
.replace("ɬk", "ɬ̬k")
.replace("ɬð̞", "ɬ̬ð̞")
.replace("ɬm", "ɬ̬m")
.replace("ɬv", "ɬ̬v")
.replace("kɬɬe", "kɬe")
.replace("kɬɬi", "kɬi")
.replace('ɬ', "ɬ̻")
.replace("ɬ̻̬", "ɬ̬")
.replace("mn", "nn")
.replace("nt͡ʃ", "nʲt͡ʃ")
.replace("nk", "ŋk")
.replace("nɣ", "ŋɣ")
.replace("nx", "ŋx")
.replace("nχ", "ɴχ")
.replace("nm", "m̚m")
.replace("n m", "m m")
.replace("nβ", "mβ")
.replace("n β", "m β")
.replace("np", "mp")
.replace("n p", "m p")
.replace("nf", "ɱf")
.replace("n f", "ɱ f")
.replace('ñ', "ɲ")
.replace('h', "")
.replace("ia", "ʲa")
.replace("ie", "ʲe")
.replace("io", "ʲo")
.replace("iu", "ʲu")
.replace("iá", "ʲá")
.replace("ié", "ʲé")
.replace("ió", "ʲó")
.replace("iú", "ʲú")
.replace('á', "ʌ̞")
.replace('a', "ʌ")
.replace('ó', "ɔ̈")
.replace('o', "ɔ̝̈")
.replace('é', "ɛ̈")
.replace('e', "ɛ̝̈")
.replace('í', "i")
.replace('i', "ɪ")
.replace('ú', "u")
.replace('u', "ʊ")
.replace("ɔ̈n", "ɔ̃n")
.replace("ɔm ", "ɔ̃m ")
.replace("mʊ", "mʊ̃")
.replace("ɔ̝̈m̚m", "ɔ̝̃m̚m")
.replace("ɛ̝̈m̚m", "ɛ̝̃m̚m")
.replace("ɪm̚m", "ɪ̃m̚m")
.replace("ʊm̚m", "ʊ̃m̚m")
.replace("ʌnn", "ʌ̃nn")
.replace("ɔ̝̈nn", "ɔ̝̃nn")
.replace("ɛ̝̈nn", "ɛ̝̃nn")
.replace("ɪnn", "ɪ̃nn")
.replace("ʊnn", "ʊ̃nn")
.replace("ʌ̞ɱ", "ʌ̞̃ɱ")
.replace("ɔ̝̈ɱ", "ɔ̝̃ɱ")
.replace("ɛ̝̈ɱ", "ɛ̝̃ɱ")
.replace("ʌɱ", "ʌ̃ɱ")
.replace("ɔ̈ɱ", "ɔ̃ɱ")
.replace("ɛ̈ɱ", "ɛ̃ɱ")
.replace("ɪɱ", "ɪ̃ɱ")
.replace("ʊɱ", "ʊ̃ɱ")
.replace("ʌ̞ŋ", "ʌ̞̃ŋ")
.replace("ɔ̝̈ŋ", "ɔ̝̃ŋ")
.replace("ɛ̝̈ŋ", "ɛ̝̃ŋ")
.replace("ʌŋ", "ʌ̃ŋ")
.replace("ɔ̈ŋ", "ɔ̃ŋ")
.replace("ɛ̈ŋ", "ɛ̃ŋ")
.replace("ɪŋ", "ɪ̃ŋ")
.replace("ʊŋ", "ʊ̃ŋ")
.replace("ʌ̞nʲ", "ʌ̞̃nʲ")
.replace("ɔ̝̈nʲ", "ɔ̝̃nʲ")
.replace("ɛ̝̈nʲ", "ɛ̝̃nʲ")
.replace("ʌnʲ", "ʌ̃nʲ")
.replace("ɔ̈nʲ", "ɔ̃nʲ")
.replace("ɛ̈nʲ", "ɛ̃nʲ")
.replace("ɪnʲ", "ɪ̃nʲ")
.replace("ʊnʲ", "ʊ̃nʲ")
.replace("ʌ̞ɴ", "ʌ̞̃ɴ")
.replace("ɔ̝̈ɴ", "ɔ̝̃ɴ")
.replace("ɛ̝̈ɴ", "ɛ̝̃ɴ")
.replace("ʌɴ", "ʌ̃ɴ")
.replace("ɔ̈ɴ", "ɔ̃ɴ")
.replace("ɛ̈ɴ", "ɛ̃ɴ")
.replace("ɪɴ", "ɪ̃ɴ")
.replace("ʊɴ", "ʊ̃ɴ");
let result = spapncend(strmod);
if usefile == "new" {
let mut file = std::fs::File::create(outputfile).expect(&(red.to_owned() + "The output file could not be created!" + reset));
file.write_all("CIUDAD DE MÉXICO, MX:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "old" {
let mut file = OpenOptions::new().append(true).open(outputfile).expect(&(red.to_owned() + "cannot open file" + reset));
file.write_all("CIUDAD DE MÉXICO, MX:".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all(result.as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
file.write_all("\n".as_bytes()).expect(&(red.to_owned() + "write failed" + reset));
}
if usefile == "terminal" {
println!();
println!("{}", cyan.to_owned() + "Ciudad de México" + reset + ", " + cyan + "MX" + reset + ":");
println!();
print!("{}", yellow);
println!("{}", result);
print!("{}", reset);
}
}