public string GetText(JapaneseScriptType scriptType = JapaneseScriptType.Kanji) { StringBuilder sb = new StringBuilder(); if (PhraseElements.Count > 0) { sb.Append(PhraseElements[0].GetText(scriptType)); } for (int i = 1; i < PhraseElements.Count; i++) { if (scriptType == JapaneseScriptType.Romaji) { sb.Append(" "); } sb.Append(PhraseElements[i].GetText(scriptType)); } return sb.ToString(); }
public string GetText(JapaneseScriptType scriptType, ContextData context) { switch (ElementType) { case PhraseSequenceElementType.Text: //Debug.Log("IS TEXT"); return Text; case PhraseSequenceElementType.FixedWord: var e = DictionaryData.Instance.GetEntryFromID(WordID); return ConjugationTool.GetForm(e, FormID, scriptType); case PhraseSequenceElementType.TaggedSlot: if (Tags.Count > 0) { var s = ""; foreach (var t in Tags) { s += "<" + t + "> "; } return s; } else { return "<>"; } case PhraseSequenceElementType.ContextSlot: //Debug.Log(Text); return context.Get(Text).Data.GetText(scriptType); case PhraseSequenceElementType.Wildcard: return "*"; } return Text; }
public string GetText(JapaneseScriptType scriptType) { switch (ElementType) { case PhraseSequenceElementType.Text: switch (scriptType) { case JapaneseScriptType.Romaji: if(RomajiText.IsEmptyOrNull()){ return KanaConverter.Instance.ConvertToRomaji(Text); }else{ return RomajiText; } default: return Text; } case PhraseSequenceElementType.FixedWord: var e = DictionaryData.Instance.GetEntryFromID(WordID); return ConjugationTool.GetForm(e, FormID, scriptType); case PhraseSequenceElementType.TaggedSlot: return "<" + Text + ">"; case PhraseSequenceElementType.ContextSlot: return "[" + Text + "]"; case PhraseSequenceElementType.Wildcard: return "*"; } return Text; }
public static string GetVerbForm(DictionaryDataEntry entry, int form, JapaneseScriptType scriptType) { if (form == Want) { var s = GetVerbForm(entry, PolitePresentIndicative, scriptType); s = s.Substring(0, s.Length - 2); return s + verbEndings[Want]; } var text = entry.Kana; switch (scriptType) { case JapaneseScriptType.Kanji: text = entry.Kanji; break; } switch (entry.GetPartOfSpeech()) { case PartOfSpeech.GodanVerb: return ConjugateGroup1Verb(text, form); case PartOfSpeech.IchidanVerb: return ConjugateGroup2Verb(text, form); case PartOfSpeech.Copula: case PartOfSpeech.SuruVerb: return ConjugateIrregularVerb(text, form); } return null; }
public static string GetForm(DictionaryDataEntry entry, int form, JapaneseScriptType scriptType = JapaneseScriptType.Kanji) { if (entry == null) { return null; } if (additionalForms.ContainsKey(entry.Kanji)) { //if (scriptType == JapaneseScriptType.Kanji) { // return entry.Kanji; //} var formString = additionalForms[entry.Kanji].GetSafely(form); if (scriptType == JapaneseScriptType.Romaji) { return KanaConverter.Instance.ConvertToRomaji(formString); } else { return formString; } } switch (entry.GetPartOfSpeech()) { case PartOfSpeech.GodanVerb: case PartOfSpeech.IchidanVerb: case PartOfSpeech.Copula: case PartOfSpeech.SuruVerb: switch (scriptType) { case JapaneseScriptType.Romaji: return KanaConverter.Instance.ConvertToRomaji(GetVerbForm(entry, form, scriptType)); default: return GetVerbForm(entry, form, scriptType); } case PartOfSpeech.Adjective: if (scriptType == JapaneseScriptType.Romaji) { return KanaConverter.Instance.ConvertToRomaji(GetAdjectiveForm(entry, form, scriptType)); } else { return GetAdjectiveForm(entry, form, scriptType); } default: switch (scriptType) { case JapaneseScriptType.Kana: return entry.Kana; case JapaneseScriptType.Romaji: return KanaConverter.Instance.ConvertToRomaji(entry.Kana); default: return entry.Kanji; } } }
public static string GetAdjectiveForm(DictionaryDataEntry entry, int form, JapaneseScriptType scriptType) { if (form == AdjectiveI) { return entry.Kana.Substring(0, entry.Kana.Length - 1) + adjectiveEndings[AdjectiveI]; } if (form == AdjectiveNa) { return entry.Kana + adjectiveEndings[AdjectiveNa]; } return entry.Kana; }