public static string ResolveA(TxtWord root, string formation, bool rootWord, string formationToCheck) { if (root.IsAbbreviation()) { return(formation + 'e'); } if (Word.LastVowel(formationToCheck) >= '0' && Word.LastVowel(formationToCheck) <= '9') { switch (Word.LastVowel(formationToCheck)) { case '6': case '9': //6'ya, 9'a return(formation + 'a'); case '0': if (root.GetName().EndsWith("10") || root.GetName().EndsWith("30") || root.GetName().EndsWith("40") || root.GetName().EndsWith("60") || root.GetName().EndsWith("90")) { //10'a, 30'a, 40'a, 60'a, 90'a return(formation + 'a'); } else { //20'ye, 50'ye, 80'e, 70'e return(formation + 'e'); } default: //3'e, 8'e, 4'e, 2'ye return(formation + 'e'); } } if (TurkishLanguage.IsBackVowel(Word.LastVowel(formationToCheck))) { if (root.NotObeysVowelHarmonyDuringAgglutination() && rootWord) { //alkole, anormale, ampule, tümamirali, spirali, sosyali return(formation + 'e'); } //sakala, kabala, eve, kediye return(formation + 'a'); } if (TurkishLanguage.IsFrontVowel(Word.LastVowel(formationToCheck))) { if (root.NotObeysVowelHarmonyDuringAgglutination() && rootWord) { //sakala, kabala, eve, kediye return(formation + 'a'); } //alkole, anormale, ampule, tümamirali, spirali, sosyali return(formation + 'e'); } if (root.IsNumeral() || root.IsFraction() || root.IsReal()) { if (root.GetName().EndsWith("6") || root.GetName().EndsWith("9") || root.GetName().EndsWith("10") || root.GetName().EndsWith("30") || root.GetName().EndsWith("40") || root.GetName().EndsWith("60") || root.GetName().EndsWith("90")) { return(formation + 'a'); } return(formation + 'e'); } return(formation); }
public static string ResolveH(TxtWord root, string formation, bool beginningOfSuffix, bool specialCaseTenseSuffix, bool rootWord, string formationToCheck) { if (root.IsAbbreviation()) { return(formation + 'i'); } if (beginningOfSuffix && TurkishLanguage.IsVowel(Word.LastPhoneme(formationToCheck)) && !specialCaseTenseSuffix) { return(formation); } if (specialCaseTenseSuffix) { //eğer ek Hyor eki ise, if (rootWord) { if (root.VowelAChangesToIDuringYSuffixation()) { if (TurkishLanguage.IsFrontRoundedVowel(Word.BeforeLastVowel(formationToCheck))) { //büyülüyor, bölümlüyor, çözümlüyor, döşüyor return(formation.Substring(0, formation.Length - 1) + 'ü'); } if (TurkishLanguage.IsFrontUnroundedVowel(Word.BeforeLastVowel(formationToCheck))) { //adresliyor, alevliyor, ateşliyor, bekliyor return(formation.Substring(0, formation.Length - 1) + 'i'); } if (TurkishLanguage.IsBackRoundedVowel(Word.BeforeLastVowel(formationToCheck))) { //buğuluyor, bulguluyor, çamurluyor, aforozluyor return(formation.Substring(0, formation.Length - 1) + 'u'); } if (TurkishLanguage.IsBackUnroundedVowel(Word.BeforeLastVowel(formationToCheck))) { //açıklıyor, çalkalıyor, gazlıyor, gıcırdıyor return(formation.Substring(0, formation.Length - 1) + 'ı'); } } } if (TurkishLanguage.IsVowel(Word.LastPhoneme(formationToCheck))) { if (TurkishLanguage.IsFrontRoundedVowel(Word.BeforeLastVowel(formationToCheck))) { return(formation.Substring(0, formation.Length - 1) + 'ü'); } if (TurkishLanguage.IsFrontUnroundedVowel(Word.BeforeLastVowel(formationToCheck))) { return(formation.Substring(0, formation.Length - 1) + 'i'); } if (TurkishLanguage.IsBackRoundedVowel(Word.BeforeLastVowel(formationToCheck))) { return(formation.Substring(0, formation.Length - 1) + 'u'); } if (TurkishLanguage.IsBackUnroundedVowel(Word.BeforeLastVowel(formationToCheck))) { return(formation.Substring(0, formation.Length - 1) + 'ı'); } } } if (TurkishLanguage.IsFrontRoundedVowel(Word.LastVowel(formationToCheck)) || (TurkishLanguage.IsBackRoundedVowel(Word.LastVowel(formationToCheck)) && root.NotObeysVowelHarmonyDuringAgglutination())) { return(formation + 'ü'); } if (TurkishLanguage.IsFrontUnroundedVowel(Word.LastVowel(formationToCheck)) || (Word.LastVowel(formationToCheck) == 'a' && root.NotObeysVowelHarmonyDuringAgglutination())) { return(formation + 'i'); } if (TurkishLanguage.IsBackRoundedVowel(Word.LastVowel(formationToCheck))) { return(formation + 'u'); } if (TurkishLanguage.IsBackUnroundedVowel(Word.LastVowel(formationToCheck))) { return(formation + 'ı'); } if (root.IsNumeral() || root.IsFraction() || root.IsReal()) { if (root.GetName().EndsWith("6") || root.GetName().EndsWith("40") || root.GetName().EndsWith("60") || root.GetName().EndsWith("90")) { //6'yı, 40'ı, 60'ı return(formation + 'ı'); } if (root.GetName().EndsWith("3") || root.GetName().EndsWith("4") || root.GetName().EndsWith("00")) { //3'ü, 4'ü, 100'ü return(formation + 'ü'); } if (root.GetName().EndsWith("9") || root.GetName().EndsWith("10") || root.GetName().EndsWith("30")) { //9'u, 10'u, 30'u return(formation + 'u'); } //2'yi, 5'i, 8'i return(formation + 'i'); } return(formation); }