Major site redesign.

This commit is contained in:
doncr 2020-08-07 02:05:59 +01:00
parent 8ed82506a1
commit fcf60e22e9
4 changed files with 942 additions and 712 deletions

View File

@ -59,9 +59,15 @@ body, input {
/* Responsive text size */ /* Responsive text size */
@media (max-width: 575px) {
.navbar-brand {
font-size: 1.15rem;
}
}
/* Small devices (landscape phones, 576px and up) */ /* Small devices (landscape phones, 576px and up) */
@media (min-width: 576px) { @media (min-width: 576px) {
#question { #question {
font-size: 32px; font-size: 32px;
} }
@ -78,6 +84,7 @@ body, input {
/* Medium devices (tablets, 768px and up) */ /* Medium devices (tablets, 768px and up) */
@media (min-width: 768px) { @media (min-width: 768px) {
#question { #question {
font-size: 40px; font-size: 40px;
} }
@ -94,6 +101,7 @@ body, input {
/* Large devices (desktops, 992px and up) */ /* Large devices (desktops, 992px and up) */
@media (min-width: 992px) { @media (min-width: 992px) {
#question { #question {
font-size: 40px; font-size: 40px;
} }
@ -110,6 +118,7 @@ body, input {
/* Extra large devices (large desktops, 1200px and up) */ /* Extra large devices (large desktops, 1200px and up) */
@media (min-width: 1200px) { @media (min-width: 1200px) {
#question { #question {
font-size: 40px; font-size: 40px;
} }
@ -255,6 +264,7 @@ table.chart span.change,
table.word span.change { table.word span.change {
color: #f06060; color: #f06060;
} }
*/
.answer-correct { .answer-correct {
color: red; color: red;
@ -264,6 +274,7 @@ table.word span.change {
color: blue; color: blue;
} }
/*
div#history table { div#history table {
border-collapse: collapse; border-collapse: collapse;
} }
@ -508,8 +519,8 @@ h2, h4 {
font-weight: bold; font-weight: bold;
} }
.options h4 { /* .options h4 {
} } */
/* /*
.explain-answer-as-list li { .explain-answer-as-list li {
list-style-type: none; list-style-type: none;
@ -546,7 +557,24 @@ h2, h4 {
100% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); }
} }
.shakeIt { .shake {
animation: shake 0.75s; animation: shake 0.75s;
animation-iteration-count: 1; animation-iteration-count: 1;
} }
dl.questionOptions {
display: table;
}
dl.questionOptions > div {
display: table-row;
}
dl.questionOptions dt {
font-weight: 400;
display: table-cell;
}
dl.questionOptions dd {
display: table-cell;
}

View File

@ -15,14 +15,9 @@
<body> <body>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <!-- <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="/conjugation/drill.html"> <a class="navbar-brand" href="/conjugation/drill.html">
<span class="d-none d-sm-block">
Don's Japanese Conjugation Drill Don's Japanese Conjugation Drill
</span>
<span class="d-block d-sm-none">
Don's Japanese<br>Conjugation Drill
</span>
</a> </a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span> <span class="navbar-toggler-icon"></span>
@ -58,7 +53,7 @@
Tests Tests
</a> </a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown"> <div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="#">Godan stem drill</a> <a class="dropdown-item" href="#">Godan verb te/ta form</a>
<a class="dropdown-item" href="#">来る drill</a> <a class="dropdown-item" href="#">来る drill</a>
</div> </div>
</li> </li>
@ -75,24 +70,28 @@
</li> </li>
</ul> </ul>
</div> </div>
</nav> </nav> -->
<div id="splash" class="container mt-4"> <div id="splash" class="container mt-4">
<!-- <h2 class="text-center d-none d-sm-block">Don's Japanese Conjugation Drill</h2>--> <h2 class="text-center mb-md-4">Don's Japanese Conjugation Drill</h2>
<h2 class="text-center">Don's Japanese Conjugation Drill</h2>
<div class="form-group row"> <div class="row">
<label for="numQuestions" class="col-6 col-form-label">Number of Questions</label> <dl class="questionOptions mx-auto mb-0">
<div class="col-6"> <div class="form-group">
<input class="mb-2 mr-sm-2 form-control" type="number" placeholder="Questions" aria-label="Number of Questions" aria-describedby="basic-addon2" id="numQuestions" value="10"> <dt>
<label for="numQuestions" class="col-form-label">Number of Questions</label>
</dt>
<dd>
<input class="mb-2 ml-2 form-control" style="width: 100%" type="number" placeholder="Questions" aria-label="Number of Questions" aria-describedby="basic-addon2" id="numQuestions" value="2">
</dd>
</div> </div>
</div> <div class="form-group">
<dt>
<div class="form-group row"> <label for="questionFocus" class="col-form-label">Question Focus</label>
<label for="questionFocus" class="col-6 col-form-label">Question Focus</label> </dt>
<div class="col-6"> <dd>
<select id="questionFocus" class="form-control mb-2 mr-sm-2"> <select id="questionFocus" class="form-control ml-2">
<option value="none">None</option> <option value="none">None</option>
<option value="politeness">Politeness</option> <option value="politeness">Politeness</option>
<option value="negative">Negative</option> <option value="negative">Negative</option>
@ -105,8 +104,11 @@
<option value="imperative">Imperative</option> <option value="imperative">Imperative</option>
<option value="passive">Passive</option> <option value="passive">Passive</option>
<option value="causative">Causative</option> <option value="causative">Causative</option>
<option value="tetakei">Godan て / た form</option>
</select> </select>
</dd>
</div> </div>
</dl>
</div> </div>
<div class="row"> <div class="row">
@ -147,8 +149,8 @@
<div class="form-group"> <div class="form-group">
<div style="display: inline-block"> <div style="display: inline-block">
<h4 class="text-left mt-2 mb-4">Verbs</h4> <h4 class="text-left mt-2 mb-4">Verbs</h4>
<div class="text-left ml-1 form-check"><input class="form-check-input" type="checkbox" id="godan" checked><label for="godan" class="form-check-label">Group 1 verbs</label></div> <div class="text-left ml-1 form-check"><input class="form-check-input" type="checkbox" id="godan" checked><label for="godan" class="form-check-label">Godan verbs</label></div>
<div class="text-left ml-1 form-check"><input class="form-check-input" type="checkbox" id="ichidan" checked><label for="ichidan" class="form-check-label">Group 2 verbs</label></div> <div class="text-left ml-1 form-check"><input class="form-check-input" type="checkbox" id="ichidan" checked><label for="ichidan" class="form-check-label">Ichidan verbs</label></div>
<div class="text-left ml-1 specials">Special cases</div> <div class="text-left ml-1 specials">Special cases</div>
<div class="text-left ml-1 form-check"><input class="form-check-input" type="checkbox" id="iku" checked><label for="iku" class="form-check-label">行く verb</label></div> <div class="text-left ml-1 form-check"><input class="form-check-input" type="checkbox" id="iku" checked><label for="iku" class="form-check-label">行く verb</label></div>
<div class="text-left ml-1 form-check"><input class="form-check-input" type="checkbox" id="kuru" checked><label for="kuru" class="form-check-label">来る verb</label></div> <div class="text-left ml-1 form-check"><input class="form-check-input" type="checkbox" id="kuru" checked><label for="kuru" class="form-check-label">来る verb</label></div>
@ -185,14 +187,36 @@
</div> </div>
<div id="scoreSection" class="mt-4"> <div id="scoreSection" class="mt-4 ml-4 mr-4">
<div id="scoreSectionTitle"></div> <div class="row">
<div class="col-12">
<div id="history"> <div id="scoreSectionTitle" class="text-center"></div>
</div>
</div> </div>
<button class="btn btn-primary mb-2 mr-sm-2" id="backToStart">Back to Start</button> <div class="row">
<div class="col-12">
<div class="d-md-none">
<div id="history"></div>
</div>
<div class="d-none d-md-block">
<div id="history"></div>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="text-center">
<button class="btn btn-primary mb-2" id="backToStart">Back to Start</button>
</div>
</div>
</div>
<div class="row col-12 mt-4 mx-auto">
</div>
</div> </div>
@ -218,12 +242,14 @@
<button id="responseButton" onclick="javascript:proceed()"> <button id="responseButton" onclick="javascript:proceed()">
</button> </button>
<div class="ml-4 mr-4" id="message"> <div class="ml-4 mr-4 text-center" id="message">
</div> </div>
</div> </div>
<div style="display: none" id="explanation" class="mt-4 ml-4 mr-4"> <div class="row ml-4 mr-4">
<div style="display: none" id="explanation" class="mt-4 col mx-auto">
<h3>1. Recognise the given form</h3> <h3>1. Recognise the given form</h3>
@ -254,10 +280,15 @@
<ul class="explain-answer-as-list"></ul> <ul class="explain-answer-as-list"></ul>
</div> </div>
<button id="explain-proceed-button" class="centre btn btn-primary mb-2 mr-sm-2" onclick="javascript:proceed()">OK, next question</button> <div class="row col-12 mt-4">
<button id="explain-proceed-button" class="centre btn btn-primary mb-2 mx-auto" onclick="javascript:proceed()">OK, next question</button>
</div> </div>
</div> </div>
</div>
</div>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>

View File

@ -104,9 +104,9 @@ function getVerbForms(entry) {
}; };
Object.keys(words[entry].conjugations).forEach(function (key) { Object.keys(words[entry].conjugations).forEach(function (key) {
result["kanji"][key] = kanjiForm(words[entry].conjugations[key]); result["kanji"][key] = kanjiForm(words[entry].conjugations[key].forms);
result["hiragana"][key] = kanaForm(words[entry].conjugations[key]); result["hiragana"][key] = kanaForm(words[entry].conjugations[key].forms);
result["furigana"][key] = words[entry].conjugations[key]; result["furigana"][key] = words[entry].conjugations[key].forms;
}); });
return result; return result;
@ -250,10 +250,19 @@ function validQuestion(entry, forms, transformation, options) {
if (!forms["furigana"][transformation.to]) if (!forms["furigana"][transformation.to])
valid = false; valid = false;
if (valid) {
if (options.questionFocus != "none") { if (options.questionFocus != "none") {
if (transformation.type != options.questionFocus) {
if (options.questionFocus == 'tetakei') {
// console.log("tetakei", words[entry].conjugations[transformation.from].tetakei, words[entry].conjugations[transformation.to].tetakei)
if (words[entry].conjugations[transformation.from].tetakei == words[entry].conjugations[transformation.to].tetakei) {
valid = false; valid = false;
} }
} else if (transformation.type != options.questionFocus) {
valid = false;
}
}
} }
return valid; return valid;
@ -261,6 +270,31 @@ function validQuestion(entry, forms, transformation, options) {
function generateQuestion() { function generateQuestion() {
var questionText = {
"affirmative": "What is the affirmative form of",
"negative": "What is the negative form of",
"present": "What is the present form of",
"past": "What is the past form of",
"plain": "What is the plain form of",
"polite": "What is the polite form of",
"て": "What is the て form of",
"non-て": "What is the non-て form of",
"potential": "What is the potential form of",
"non-potential": "What is the non-potential form of",
"imperative": "What is the imperative form of",
"non-imperative": "What is the non-imperative form of",
"causative": "What is the causative form of",
"non-causative": "What is the non-causative form of",
"passive": "What is the passive form of",
"active": "What is the active form of",
"progressive": "What is the progressive form of",
"non-progressive": "What is the non-progressive form of",
"&apos;desire&apos;": "What is the &apos;desire&apos; form of",
"&apos;non-desire&apos;": "What is the &apos;non-desire&apos; form of",
"volitional": "What is the volitional form of",
"non-volitional": "What is the non-volitional form of"
};
var entry; var entry;
var to_form; var to_form;
var from_form; var from_form;
@ -315,7 +349,7 @@ function generateQuestion() {
givenWord = wordWithFurigana(furiganaForms[from_form]).randomElement(); givenWord = wordWithFurigana(furiganaForms[from_form]).randomElement();
} }
var questionFirstHalf = "What is the " + transformation.phrase + " version of"; var questionFirstHalf = questionText[transformation.phrase];
var questionSecondHalf = givenWord + "?"; var questionSecondHalf = givenWord + "?";
var question = questionFirstHalf + questionSecondHalf; var question = questionFirstHalf + questionSecondHalf;
@ -357,7 +391,7 @@ function generateQuestion() {
"na-adjective" : "な adjective", "na-adjective" : "な adjective",
}; };
var dictionary = words[data.entry].conjugations["dictionary"] var dictionary = words[data.entry].conjugations["dictionary"].forms;
if (words[data.entry].group == "na-adjective") { if (words[data.entry].group == "na-adjective") {
dictionary = dictionary.replace(/だ$/, '') dictionary = dictionary.replace(/だ$/, '')
@ -423,15 +457,15 @@ function processAnswer() {
var questionData = window.questionData; var questionData = window.questionData;
var response = $('#answer').val().trim(); var response = $('#answer').val().trim();
var shakeIt = false; var shake = false;
if (response == "") if (response == "")
shakeIt = true; shake = true;
if (!response.match(japaneseTextPattern)) if (!response.match(japaneseTextPattern))
shakeIt = true; shake = true;
if (shakeIt) { if (shake) {
shakeInputArea(); shakeInputArea();
return; return;
} }
@ -470,7 +504,7 @@ function processAnswer() {
function shakeInputArea() { function shakeInputArea() {
var inputArea = $('#inputArea'); var inputArea = $('#inputArea');
var shakeClass = "shakeIt"; var shakeClass = "shake";
inputArea.addClass(shakeClass); inputArea.addClass(shakeClass);

View File

@ -74,7 +74,9 @@ var rules = {
"godan": { "godan": {
"negative" : [ "negative": {
forms: [
{ "before": "る", "after": "らない" }, { "before": "る", "after": "らない" },
{ "before": "つ", "after": "たない" }, { "before": "つ", "after": "たない" },
{ "before": "う", "after": "わない" }, { "before": "う", "after": "わない" },
@ -85,8 +87,11 @@ var rules = {
{ "before": "ぶ", "after": "ばない" }, { "before": "ぶ", "after": "ばない" },
{ "before": "む", "after": "まない" }, { "before": "む", "after": "まない" },
], ],
},
"polite" : [ "polite": {
forms: [
{ "before": "る", "after": "ります" }, { "before": "る", "after": "ります" },
{ "before": "つ", "after": "ちます" }, { "before": "つ", "after": "ちます" },
{ "before": "う", "after": "います" }, { "before": "う", "after": "います" },
@ -97,8 +102,11 @@ var rules = {
{ "before": "ぶ", "after": "びます" }, { "before": "ぶ", "after": "びます" },
{ "before": "む", "after": "みます" }, { "before": "む", "after": "みます" },
], ],
},
"polite negative" : [ "polite negative": {
forms: [
{ "before": "る", "after": "りません" }, { "before": "る", "after": "りません" },
{ "before": "つ", "after": "ちません" }, { "before": "つ", "after": "ちません" },
{ "before": "う", "after": "いません" }, { "before": "う", "after": "いません" },
@ -109,8 +117,11 @@ var rules = {
{ "before": "ぶ", "after": "びません" }, { "before": "ぶ", "after": "びません" },
{ "before": "む", "after": "みません" }, { "before": "む", "after": "みません" },
], ],
},
"past" : [ "past": {
forms: [
{ "before": "る", "after": "った" }, { "before": "る", "after": "った" },
{ "before": "つ", "after": "った" }, { "before": "つ", "after": "った" },
{ "before": "う", "after": "った" }, { "before": "う", "after": "った" },
@ -122,7 +133,12 @@ var rules = {
{ "before": "む", "after": "んだ" }, { "before": "む", "after": "んだ" },
], ],
"past negative" : [ tetakei: true,
},
"past negative": {
forms: [
{ "before": "る", "after": "らなかった" }, { "before": "る", "after": "らなかった" },
{ "before": "つ", "after": "たなかった" }, { "before": "つ", "after": "たなかった" },
{ "before": "う", "after": "わなかった" }, { "before": "う", "after": "わなかった" },
@ -133,8 +149,11 @@ var rules = {
{ "before": "ぶ", "after": "ばなかった" }, { "before": "ぶ", "after": "ばなかった" },
{ "before": "む", "after": "まなかった" }, { "before": "む", "after": "まなかった" },
], ],
},
"polite past" : [ "polite past": {
forms: [
{ "before": "る", "after": "りました" }, { "before": "る", "after": "りました" },
{ "before": "つ", "after": "ちました" }, { "before": "つ", "after": "ちました" },
{ "before": "う", "after": "いました" }, { "before": "う", "after": "いました" },
@ -145,8 +164,11 @@ var rules = {
{ "before": "ぶ", "after": "びました" }, { "before": "ぶ", "after": "びました" },
{ "before": "む", "after": "みました" }, { "before": "む", "after": "みました" },
], ],
},
"polite past negative" : [ "polite past negative": {
forms: [
{ "before": "る", "after": "りませんでした" }, { "before": "る", "after": "りませんでした" },
{ "before": "つ", "after": "ちませんでした" }, { "before": "つ", "after": "ちませんでした" },
{ "before": "う", "after": "いませんでした" }, { "before": "う", "after": "いませんでした" },
@ -157,8 +179,11 @@ var rules = {
{ "before": "ぶ", "after": "びませんでした" }, { "before": "ぶ", "after": "びませんでした" },
{ "before": "む", "after": "みませんでした" }, { "before": "む", "after": "みませんでした" },
], ],
},
"te-form" : [ "te-form": {
forms: [
{ "before": "る", "after": "って" }, { "before": "る", "after": "って" },
{ "before": "つ", "after": "って" }, { "before": "つ", "after": "って" },
{ "before": "う", "after": "って" }, { "before": "う", "after": "って" },
@ -170,7 +195,12 @@ var rules = {
{ "before": "む", "after": "んで" }, { "before": "む", "after": "んで" },
], ],
"te-form negative" : [ tetakei: true,
},
"te-form negative": {
forms: [
{ "before": "る", "after": "らなくて"}, { "before": "る", "after": "らないで"}, { "before": "る", "after": "らなくて"}, { "before": "る", "after": "らないで"},
{ "before": "つ", "after": "たなくて"}, { "before": "つ", "after": "たないで"}, { "before": "つ", "after": "たなくて"}, { "before": "つ", "after": "たないで"},
{ "before": "う", "after": "わなくて"}, { "before": "う", "after": "わないで"}, { "before": "う", "after": "わなくて"}, { "before": "う", "after": "わないで"},
@ -181,8 +211,11 @@ var rules = {
{ "before": "ぶ", "after": "ばなくて"}, { "before": "ぶ", "after": "ばないで"}, { "before": "ぶ", "after": "ばなくて"}, { "before": "ぶ", "after": "ばないで"},
{ "before": "む", "after": "まなくて"}, { "before": "む", "after": "まないで"}, { "before": "む", "after": "まなくて"}, { "before": "む", "after": "まないで"},
], ],
},
"potential" : [ "potential": {
forms: [
{ "before": "る", "after": "れる" }, { "before": "る", "after": "れる" },
{ "before": "つ", "after": "てる" }, { "before": "つ", "after": "てる" },
{ "before": "う", "after": "える" }, { "before": "う", "after": "える" },
@ -193,8 +226,11 @@ var rules = {
{ "before": "ぶ", "after": "べる" }, { "before": "ぶ", "after": "べる" },
{ "before": "む", "after": "める" }, { "before": "む", "after": "める" },
], ],
},
"potential negative" : [ "potential negative": {
forms: [
{ "before": "る", "after": "れない" }, { "before": "る", "after": "れない" },
{ "before": "つ", "after": "てない" }, { "before": "つ", "after": "てない" },
{ "before": "う", "after": "えない" }, { "before": "う", "after": "えない" },
@ -205,8 +241,11 @@ var rules = {
{ "before": "ぶ", "after": "べない" }, { "before": "ぶ", "after": "べない" },
{ "before": "む", "after": "めない" }, { "before": "む", "after": "めない" },
], ],
},
"polite potential" : [ "polite potential": {
forms: [
{ "before": "る", "after": "れます" }, { "before": "る", "after": "れます" },
{ "before": "つ", "after": "てます" }, { "before": "つ", "after": "てます" },
{ "before": "う", "after": "えます" }, { "before": "う", "after": "えます" },
@ -217,8 +256,11 @@ var rules = {
{ "before": "ぶ", "after": "べます" }, { "before": "ぶ", "after": "べます" },
{ "before": "む", "after": "めます" }, { "before": "む", "after": "めます" },
], ],
},
"polite potential negative" : [ "polite potential negative": {
forms: [
{ "before": "る", "after": "れません" }, { "before": "る", "after": "れません" },
{ "before": "つ", "after": "てません" }, { "before": "つ", "after": "てません" },
{ "before": "う", "after": "えません" }, { "before": "う", "after": "えません" },
@ -229,8 +271,11 @@ var rules = {
{ "before": "ぶ", "after": "べません" }, { "before": "ぶ", "after": "べません" },
{ "before": "む", "after": "めません" }, { "before": "む", "after": "めません" },
], ],
},
"passive" : [ "passive": {
forms: [
{ "before": "る", "after": "られる" }, { "before": "る", "after": "られる" },
{ "before": "つ", "after": "たれる" }, { "before": "つ", "after": "たれる" },
{ "before": "う", "after": "われる" }, { "before": "う", "after": "われる" },
@ -241,8 +286,11 @@ var rules = {
{ "before": "ぶ", "after": "ばれる" }, { "before": "ぶ", "after": "ばれる" },
{ "before": "む", "after": "まれる" }, { "before": "む", "after": "まれる" },
], ],
},
"passive negative" : [ "passive negative": {
forms: [
{ "before": "る", "after": "られない" }, { "before": "る", "after": "られない" },
{ "before": "つ", "after": "たれない" }, { "before": "つ", "after": "たれない" },
{ "before": "う", "after": "われない" }, { "before": "う", "after": "われない" },
@ -253,8 +301,11 @@ var rules = {
{ "before": "ぶ", "after": "ばれない" }, { "before": "ぶ", "after": "ばれない" },
{ "before": "む", "after": "まれない" }, { "before": "む", "after": "まれない" },
], ],
},
"polite passive" : [ "polite passive": {
forms: [
{ "before": "る", "after": "られます" }, { "before": "る", "after": "られます" },
{ "before": "つ", "after": "たれます" }, { "before": "つ", "after": "たれます" },
{ "before": "う", "after": "われます" }, { "before": "う", "after": "われます" },
@ -265,8 +316,11 @@ var rules = {
{ "before": "ぶ", "after": "ばれます" }, { "before": "ぶ", "after": "ばれます" },
{ "before": "む", "after": "まれます" }, { "before": "む", "after": "まれます" },
], ],
},
"polite passive negative" : [ "polite passive negative": {
forms: [
{ "before": "る", "after": "られません" }, { "before": "る", "after": "られません" },
{ "before": "つ", "after": "たれません" }, { "before": "つ", "after": "たれません" },
{ "before": "う", "after": "われません" }, { "before": "う", "after": "われません" },
@ -277,8 +331,11 @@ var rules = {
{ "before": "ぶ", "after": "ばれません" }, { "before": "ぶ", "after": "ばれません" },
{ "before": "む", "after": "まれません" }, { "before": "む", "after": "まれません" },
], ],
},
"causative" : [ "causative": {
forms: [
{ "before": "る", "after": "らせる" }, { "before": "る", "after": "らせる" },
{ "before": "つ", "after": "たせる" }, { "before": "つ", "after": "たせる" },
{ "before": "う", "after": "わせる" }, { "before": "う", "after": "わせる" },
@ -289,8 +346,11 @@ var rules = {
{ "before": "ぶ", "after": "ばせる" }, { "before": "ぶ", "after": "ばせる" },
{ "before": "む", "after": "ませる" }, { "before": "む", "after": "ませる" },
], ],
},
"causative negative" : [ "causative negative": {
forms: [
{ "before": "る", "after": "らせない" }, { "before": "る", "after": "らせない" },
{ "before": "つ", "after": "たせない" }, { "before": "つ", "after": "たせない" },
{ "before": "う", "after": "わせない" }, { "before": "う", "after": "わせない" },
@ -301,8 +361,11 @@ var rules = {
{ "before": "ぶ", "after": "ばせない" }, { "before": "ぶ", "after": "ばせない" },
{ "before": "む", "after": "ませない" }, { "before": "む", "after": "ませない" },
], ],
},
"causative passive" : [ "causative passive": {
forms: [
{ "before": "る", "after": "らせられる" }, { "before": "る", "after": "らせられる" },
{ "before": "つ", "after": "たせられる" }, { "before": "つ", "after": "たせられる" },
{ "before": "う", "after": "わせられる" }, { "before": "う", "after": "わせられる" },
@ -313,8 +376,11 @@ var rules = {
{ "before": "ぶ", "after": "ばせられる" }, { "before": "ぶ", "after": "ばせられる" },
{ "before": "む", "after": "ませられる" }, { "before": "む", "after": "ませられる" },
], ],
},
"causative passive negative" : [ "causative passive negative": {
forms: [
{ "before": "る", "after": "らせられない" }, { "before": "る", "after": "らせられない" },
{ "before": "つ", "after": "たせられない" }, { "before": "つ", "after": "たせられない" },
{ "before": "う", "after": "わせられない" }, { "before": "う", "after": "わせられない" },
@ -325,8 +391,11 @@ var rules = {
{ "before": "ぶ", "after": "ばせられない" }, { "before": "ぶ", "after": "ばせられない" },
{ "before": "む", "after": "ませられない" }, { "before": "む", "after": "ませられない" },
], ],
},
"imperative" : [ "imperative": {
forms: [
{ "before": "る", "after": "れ" }, { "before": "る", "after": "れ" },
{ "before": "つ", "after": "て" }, { "before": "つ", "after": "て" },
{ "before": "う", "after": "え" }, { "before": "う", "after": "え" },
@ -337,8 +406,11 @@ var rules = {
{ "before": "ぶ", "after": "べ" }, { "before": "ぶ", "after": "べ" },
{ "before": "む", "after": "め" }, { "before": "む", "after": "め" },
], ],
},
"imperative negative" : [ "imperative negative": {
forms: [
{ "before": "る", "after": "るな" }, { "before": "る", "after": "るな" },
{ "before": "つ", "after": "つな" }, { "before": "つ", "after": "つな" },
{ "before": "う", "after": "うな" }, { "before": "う", "after": "うな" },
@ -349,8 +421,11 @@ var rules = {
{ "before": "ぶ", "after": "ぶな" }, { "before": "ぶ", "after": "ぶな" },
{ "before": "む", "after": "むな" }, { "before": "む", "after": "むな" },
], ],
},
"progressive" : [ "progressive": {
forms: [
{ "before": "る", "after": "っている" }, { "before": "る", "after": "っている" },
{ "before": "つ", "after": "っている" }, { "before": "つ", "after": "っている" },
{ "before": "う", "after": "っている" }, { "before": "う", "after": "っている" },
@ -362,7 +437,12 @@ var rules = {
{ "before": "む", "after": "んでいる" }, { "before": "む", "after": "んでいる" },
], ],
"progressive negative" : [ tetakei: true,
},
"progressive negative": {
forms: [
{ "before": "る", "after": "っていない" }, { "before": "る", "after": "っていない" },
{ "before": "つ", "after": "っていない" }, { "before": "つ", "after": "っていない" },
{ "before": "う", "after": "っていない" }, { "before": "う", "after": "っていない" },
@ -374,7 +454,12 @@ var rules = {
{ "before": "む", "after": "んでいない" }, { "before": "む", "after": "んでいない" },
], ],
"polite progressive" : [ tetakei: true,
},
"polite progressive": {
forms: [
{ "before": "る", "after": "っています" }, { "before": "る", "after": "っています" },
{ "before": "つ", "after": "っています" }, { "before": "つ", "after": "っています" },
{ "before": "う", "after": "っています" }, { "before": "う", "after": "っています" },
@ -386,7 +471,12 @@ var rules = {
{ "before": "む", "after": "んでいます" }, { "before": "む", "after": "んでいます" },
], ],
"polite progressive negative" : [ tetakei: true,
},
"polite progressive negative": {
forms: [
{ "before": "る", "after": "っていません" }, { "before": "る", "after": "っていません" },
{ "before": "つ", "after": "っていません" }, { "before": "つ", "after": "っていません" },
{ "before": "う", "after": "っていません" }, { "before": "う", "after": "っていません" },
@ -398,7 +488,12 @@ var rules = {
{ "before": "む", "after": "んでいません" }, { "before": "む", "after": "んでいません" },
], ],
"progressive past" : [ tetakei: true,
},
"progressive past": {
forms: [
{ "before": "る", "after": "っていた" }, { "before": "る", "after": "っていた" },
{ "before": "つ", "after": "っていた" }, { "before": "つ", "after": "っていた" },
{ "before": "う", "after": "っていた" }, { "before": "う", "after": "っていた" },
@ -410,7 +505,12 @@ var rules = {
{ "before": "む", "after": "んでいた" }, { "before": "む", "after": "んでいた" },
], ],
"progressive past negative" : [ tetakei: true,
},
"progressive past negative": {
forms: [
{ "before": "る", "after": "っていなかった" }, { "before": "る", "after": "っていなかった" },
{ "before": "つ", "after": "っていなかった" }, { "before": "つ", "after": "っていなかった" },
{ "before": "う", "after": "っていなかった" }, { "before": "う", "after": "っていなかった" },
@ -422,7 +522,12 @@ var rules = {
{ "before": "む", "after": "んでいなかった" }, { "before": "む", "after": "んでいなかった" },
], ],
"polite progressive past" : [ tetakei: true,
},
"polite progressive past": {
forms: [
{ "before": "る", "after": "っていました" }, { "before": "る", "after": "っていました" },
{ "before": "つ", "after": "っていました" }, { "before": "つ", "after": "っていました" },
{ "before": "う", "after": "っていました" }, { "before": "う", "after": "っていました" },
@ -434,7 +539,12 @@ var rules = {
{ "before": "む", "after": "んでいました" }, { "before": "む", "after": "んでいました" },
], ],
"polite progressive past negative" : [ tetakei: true,
},
"polite progressive past negative": {
forms: [
{ "before": "る", "after": "っていませんでした" }, { "before": "る", "after": "っていませんでした" },
{ "before": "つ", "after": "っていませんでした" }, { "before": "つ", "after": "っていませんでした" },
{ "before": "う", "after": "っていませんでした" }, { "before": "う", "after": "っていませんでした" },
@ -446,7 +556,12 @@ var rules = {
{ "before": "む", "after": "んでいませんでした" }, { "before": "む", "after": "んでいませんでした" },
], ],
"desire" : [ tetakei: true,
},
"desire": {
forms: [
{ "before": "る", "after": "りたい" }, { "before": "る", "after": "りたい" },
{ "before": "つ", "after": "ちたい" }, { "before": "つ", "after": "ちたい" },
{ "before": "う", "after": "いたい" }, { "before": "う", "after": "いたい" },
@ -457,8 +572,11 @@ var rules = {
{ "before": "ぶ", "after": "びたい" }, { "before": "ぶ", "after": "びたい" },
{ "before": "む", "after": "みたい" }, { "before": "む", "after": "みたい" },
], ],
},
"desire negative" : [ "desire negative": {
forms: [
{ "before": "る", "after": "りたくない" }, { "before": "る", "after": "りたくない" },
{ "before": "つ", "after": "ちたくない" }, { "before": "つ", "after": "ちたくない" },
{ "before": "う", "after": "いたくない" }, { "before": "う", "after": "いたくない" },
@ -469,8 +587,11 @@ var rules = {
{ "before": "ぶ", "after": "びたくない" }, { "before": "ぶ", "after": "びたくない" },
{ "before": "む", "after": "みたくない" }, { "before": "む", "after": "みたくない" },
], ],
},
"desire polite" : [ "desire polite": {
forms: [
{ "before": "る", "after": "りたいです" }, { "before": "る", "after": "りたいです" },
{ "before": "つ", "after": "ちたいです" }, { "before": "つ", "after": "ちたいです" },
{ "before": "う", "after": "いたいです" }, { "before": "う", "after": "いたいです" },
@ -481,8 +602,11 @@ var rules = {
{ "before": "ぶ", "after": "びたいです" }, { "before": "ぶ", "after": "びたいです" },
{ "before": "む", "after": "みたいです" }, { "before": "む", "after": "みたいです" },
], ],
},
"desire polite negative" : [ "desire polite negative": {
forms: [
{ "before": "る", "after": "りたくないです" }, { "before": "る", "after": "りたくないです" },
{ "before": "つ", "after": "ちたくないです" }, { "before": "つ", "after": "ちたくないです" },
{ "before": "う", "after": "いたくないです" }, { "before": "う", "after": "いたくないです" },
@ -493,8 +617,11 @@ var rules = {
{ "before": "ぶ", "after": "びたくないです" }, { "before": "ぶ", "after": "びたくないです" },
{ "before": "む", "after": "みたくないです" }, { "before": "む", "after": "みたくないです" },
], ],
},
"volitional" : [ "volitional": {
forms: [
{ "before": "る", "after": "ろう" }, { "before": "る", "after": "ろう" },
{ "before": "つ", "after": "とう" }, { "before": "つ", "after": "とう" },
{ "before": "う", "after": "おう" }, { "before": "う", "after": "おう" },
@ -505,8 +632,11 @@ var rules = {
{ "before": "ぶ", "after": "ぼう" }, { "before": "ぶ", "after": "ぼう" },
{ "before": "む", "after": "もう" }, { "before": "む", "after": "もう" },
], ],
},
"polite volitional" : [ "polite volitional": {
forms: [
{ "before": "る", "after": "りましょう" }, { "before": "る", "after": "りましょう" },
{ "before": "つ", "after": "ちましょう" }, { "before": "つ", "after": "ちましょう" },
{ "before": "う", "after": "いましょう" }, { "before": "う", "after": "いましょう" },
@ -518,187 +648,188 @@ var rules = {
{ "before": "む", "after": "みましょう" }, { "before": "む", "after": "みましょう" },
], ],
}, },
},
"ichidan": { "ichidan": {
"negative" : [ { "before": "る", "after": "ない" }, ], "negative": { forms: [ { "before": "る", "after": "ない" }, ], },
"polite" : [ { "before": "る", "after": "ます" }, ], "polite": { forms: [ { "before": "る", "after": "ます" }, ], },
"polite negative" : [ { "before": "る", "after": "ません" }, ], "polite negative": { forms: [ { "before": "る", "after": "ません" }, ], },
"past" : [ { "before": "る", "after": "た" }, ], "past": { forms: [ { "before": "る", "after": "た" }, ], },
"past negative" : [ { "before": "る", "after": "なかった" }, ], "past negative": { forms: [ { "before": "る", "after": "なかった" }, ], },
"polite past" : [ { "before": "る", "after": "ました" }, ], "polite past": { forms: [ { "before": "る", "after": "ました" }, ], },
"polite past negative" : [ { "before": "る", "after": "ませんでした" }, ], "polite past negative": { forms: [ { "before": "る", "after": "ませんでした" }, ], },
"te-form" : [ { "before": "る", "after": "て" }, ], "te-form": { forms: [ { "before": "る", "after": "て" }, ], },
"te-form negative" : [ { "before": "る", "after": "なくて" }, { "before": "る", "after": "ないで" } ], "te-form negative": { forms: [ { "before": "る", "after": "なくて" }, { "before": "る", "after": "ないで" } ], },
"potential" : [ { "before": "る", "after": "られる" } ], "potential": { forms: [ { "before": "る", "after": "られる" } ], },
"potential negative": [ { "before": "る", "after": "られない" } ], "potential negative": { forms: [ { "before": "る", "after": "られない" } ], },
"polite potential" : [ { "before": "る", "after": "られます" } ], "polite potential": { forms: [ { "before": "る", "after": "られます" } ], },
"polite potential negative": [ { "before": "る", "after": "られません" } ], "polite potential negative": { forms: [ { "before": "る", "after": "られません" } ], },
"imperative": [ { "before": "る", "after": "ろ" } ], "imperative": { forms: [ { "before": "る", "after": "ろ" } ], },
"imperative negative": [ { "before": "る", "after": "るな" } ], "imperative negative": { forms: [ { "before": "る", "after": "るな" } ], },
"passive": [ { "before": "る", "after": "られる" } ], "passive": { forms: [ { "before": "る", "after": "られる" } ], },
"passive negative": [ { "before": "る", "after": "られない" } ], "passive negative": { forms: [ { "before": "る", "after": "られない" } ], },
"polite passive": [ { "before": "る", "after": "られます" } ], "polite passive": { forms: [ { "before": "る", "after": "られます" } ], },
"polite passive negative": [ { "before": "る", "after": "られません" } ], "polite passive negative": { forms: [ { "before": "る", "after": "られません" } ], },
"causative": [ { "before": "る", "after": "させる" } ], "causative": { forms: [ { "before": "る", "after": "させる" } ], },
"causative negative": [ { "before": "る", "after": "させない" } ], "causative negative": { forms: [ { "before": "る", "after": "させない" } ], },
"causative passive": [ { "before": "る", "after": "させられる" } ], "causative passive": { forms: [ { "before": "る", "after": "させられる" } ], },
"causative passive negative": [ { "before": "る", "after": "させられない" } ], "causative passive negative": { forms: [ { "before": "る", "after": "させられない" } ], },
"progressive": [ { "before": "る", "after": "ている" } ], "progressive": { forms: [ { "before": "る", "after": "ている" } ], },
"progressive negative": [ { "before": "る", "after": "ていない" } ], "progressive negative": { forms: [ { "before": "る", "after": "ていない" } ], },
"polite progressive": [ { "before": "る", "after": "ています" } ], "polite progressive": { forms: [ { "before": "る", "after": "ています" } ], },
"polite progressive negative": [ { "before": "る", "after": "ていません" } ], "polite progressive negative": { forms: [ { "before": "る", "after": "ていません" } ], },
"progressive past": [ { "before": "る", "after": "ていた" } ], "progressive past": { forms: [ { "before": "る", "after": "ていた" } ], },
"progressive past negative": [ { "before": "る", "after": "ていなかった" } ], "progressive past negative": { forms: [ { "before": "る", "after": "ていなかった" } ], },
"polite progressive past": [ { "before": "る", "after": "ていました" } ], "polite progressive past": { forms: [ { "before": "る", "after": "ていました" } ], },
"polite progressive past negative": [ { "before": "る", "after": "ていませんでした" } ], "polite progressive past negative": { forms: [ { "before": "る", "after": "ていませんでした" } ], },
"desire" : [ { "before": "る", "after": "たい" }, ], "desire": { forms: [ { "before": "る", "after": "たい" }, ], },
"desire negative" : [ { "before": "る", "after": "たくない" }, ], "desire negative": { forms: [ { "before": "る", "after": "たくない" }, ], },
"desire polite" : [ { "before": "る", "after": "たいです" }, ], "desire polite": { forms: [ { "before": "る", "after": "たいです" }, ], },
"desire polite negative" : [ { "before": "る", "after": "たくないです" }, ], "desire polite negative": { forms: [ { "before": "る", "after": "たくないです" }, ], },
"volitional" : [ { "before": "る", "after": "よう" }, ], "volitional": { forms: [ { "before": "る", "after": "よう" }, ], },
"polite volitional" : [ { "before": "る", "after": "ましょう" }, ], "polite volitional": { forms: [ { "before": "る", "after": "ましょう" }, ], },
}, },
"iku": { "iku": {
"negative" : [ { "result": "行[い]かない" }, ], "negative": { forms: [ { "result": "行[い]かない" }, ], },
"polite" : [ { "result": "行[い]きます" }, ], "polite": { forms: [ { "result": "行[い]きます" }, ], },
"polite negative" : [ { "result": "行[い]きません" }, ], "polite negative": { forms: [ { "result": "行[い]きません" }, ], },
"past" : [ { "result": "行[い]った" }, ], "past": { forms: [ { "result": "行[い]った" }, ], },
"past negative" : [ { "result": "行[い]かなかった" }, ], "past negative": { forms: [ { "result": "行[い]かなかった" }, ], },
"polite past" : [ { "result": "行[い]きました" }, ], "polite past": { forms: [ { "result": "行[い]きました" }, ], },
"polite past negative" : [ { "result": "行[い]きませんでした" }, ], "polite past negative": { forms: [ { "result": "行[い]きませんでした" }, ], },
"te-form" : [ { "result": "行[い]って" }, ], "te-form": { forms: [ { "result": "行[い]って" }, ], },
"te-form negative": [ { "result": "行[い]かなくて" }, { "result": "行[い]かないで" } ], "te-form negative": { forms: [ { "result": "行[い]かなくて" }, { "result": "行[い]かないで" } ], },
"potential": [ { "result": "行[い]ける" } ], "potential": { forms: [ { "result": "行[い]ける" } ], },
"potential negative": [ { "result": "行[い]けない" } ], "potential negative": { forms: [ { "result": "行[い]けない" } ], },
"polite potential": [ { "result": "行[い]けます" } ], "polite potential": { forms: [ { "result": "行[い]けます" } ], },
"polite potential negative": [ { "result": "行[い]けません" } ], "polite potential negative": { forms: [ { "result": "行[い]けません" } ], },
"imperative": [ { "result": "行[い]け" } ], "imperative": { forms: [ { "result": "行[い]け" } ], },
"imperative negative": [ { "result": "行[い]くな" } ], "imperative negative": { forms: [ { "result": "行[い]くな" } ], },
"passive": [ { "result": "行[い]かれる" } ], "passive": { forms: [ { "result": "行[い]かれる" } ], },
"passive negative": [ { "result": "行[い]かれない" } ], "passive negative": { forms: [ { "result": "行[い]かれない" } ], },
"polite passive": [ { "result": "行[い]かれます" } ], "polite passive": { forms: [ { "result": "行[い]かれます" } ], },
"polite passive negative": [ { "result": "行[い]かれません" } ], "polite passive negative": { forms: [ { "result": "行[い]かれません" } ], },
"causative": [ { "result": "行[い]かせる" } ], "causative": { forms: [ { "result": "行[い]かせる" } ], },
"causative negative": [ { "result": "行[い]かせない" } ], "causative negative": { forms: [ { "result": "行[い]かせない" } ], },
"causative passive": [ { "result": "行[い]かせられる" } ], "causative passive": { forms: [ { "result": "行[い]かせられる" } ], },
"causative passive negative": [ { "result": "行[い]かせられない" } ], "causative passive negative": { forms: [ { "result": "行[い]かせられない" } ], },
"progressive": [ { "result": "行[い]っている" } ], "progressive": { forms: [ { "result": "行[い]っている" } ], },
"progressive negative": [ { "result": "行[い]っていない" } ], "progressive negative": { forms: [ { "result": "行[い]っていない" } ], },
"polite progressive": [ { "result": "行[い]っています" } ], "polite progressive": { forms: [ { "result": "行[い]っています" } ], },
"polite progressive negative": [ { "result": "行[い]っていません" } ], "polite progressive negative": { forms: [ { "result": "行[い]っていません" } ], },
"progressive past": [ { "result": "行[い]っていた" } ], "progressive past": { forms: [ { "result": "行[い]っていた" } ], },
"progressive past negative": [ { "result": "行[い]っていなかった" } ], "progressive past negative": { forms: [ { "result": "行[い]っていなかった" } ], },
"polite progressive past": [ { "result": "行[い]っていました" } ], "polite progressive past": { forms: [ { "result": "行[い]っていました" } ], },
"polite progressive past negative": [ { "result": "行[い]っていませんでした" } ], "polite progressive past negative": { forms: [ { "result": "行[い]っていませんでした" } ], },
"desire" : [ { "result": "行[い]きたい" }, ], "desire": { forms: [ { "result": "行[い]きたい" }, ], },
"desire negative" : [ { "result": "行[い]きたくない" }, ], "desire negative": { forms: [ { "result": "行[い]きたくない" }, ], },
"desire polite" : [ { "result": "行[い]きたいです" }, ], "desire polite": { forms: [ { "result": "行[い]きたいです" }, ], },
"desire polite negative" : [ { "result": "行[い]きたくないです" }, ], "desire polite negative": { forms: [ { "result": "行[い]きたくないです" }, ], },
"volitional" : [ { "result": "行[い]こう" }, ], "volitional": { forms: [ { "result": "行[い]こう" }, ], },
"polite volitional" : [ { "result": "行[い]きましょう" }, ], "polite volitional": { forms: [ { "result": "行[い]きましょう" }, ], },
}, },
"kuru": { "kuru": {
"negative" : [ { "result": "来[こ]ない" } ], "negative": { forms: [ { "result": "来[こ]ない" } ], },
"polite" : [ { "result": "来[き]ます" } ], "polite": { forms: [ { "result": "来[き]ます" } ], },
"polite negative" : [ { "result": "来[き]ません" } ], "polite negative": { forms: [ { "result": "来[き]ません" } ], },
"past" : [ { "result": "来[き]た" } ], "past": { forms: [ { "result": "来[き]た" } ], },
"past negative" : [ { "result": "来[こ]なかった" } ], "past negative": { forms: [ { "result": "来[こ]なかった" } ], },
"polite past" : [ { "result": "来[き]ました" } ], "polite past": { forms: [ { "result": "来[き]ました" } ], },
"polite past negative" : [ { "result": "来[き]ませんでした" } ], "polite past negative": { forms: [ { "result": "来[き]ませんでした" } ], },
"te-form" : [ { "result": "来[き]て" } ], "te-form": { forms: [ { "result": "来[き]て" } ], },
"te-form negative": [ { "result": "来[こ]なくて" }, { "result": "来[こ]ないで" } ], "te-form negative": { forms: [ { "result": "来[こ]なくて" }, { "result": "来[こ]ないで" } ], },
"potential": [ { "result": "来[こ]られる" } ], "potential": { forms: [ { "result": "来[こ]られる" } ], },
"potential negative": [ { "result": "来[こ]られない" } ], "potential negative": { forms: [ { "result": "来[こ]られない" } ], },
"polite potential": [ { "result": "来[こ]られます" } ], "polite potential": { forms: [ { "result": "来[こ]られます" } ], },
"polite potential negative": [ { "result": "来[こ]られません" } ], "polite potential negative": { forms: [ { "result": "来[こ]られません" } ], },
"imperative": [ { "result": "来[こ]い" } ], "imperative": { forms: [ { "result": "来[こ]い" } ], },
"imperative negative": [ { "result": "来[く]るな" } ], "imperative negative": { forms: [ { "result": "来[く]るな" } ], },
"passive": [ { "result": "来[こ]られる" } ], "passive": { forms: [ { "result": "来[こ]られる" } ], },
"passive negative": [ { "result": "来[こ]られない" } ], "passive negative": { forms: [ { "result": "来[こ]られない" } ], },
"causative": [ { "result": "来[こ]させる" } ], "causative": { forms: [ { "result": "来[こ]させる" } ], },
"causative negative": [ { "result": "来[こ]させない" } ], "causative negative": { forms: [ { "result": "来[こ]させない" } ], },
"causative passive": [ { "result": "来[こ]させられる" } ], "causative passive": { forms: [ { "result": "来[こ]させられる" } ], },
"causative passive negative": [ { "result": "来[こ]させられない" } ], "causative passive negative": { forms: [ { "result": "来[こ]させられない" } ], },
"progressive": [ { "result": "来[き]ている" } ], "progressive": { forms: [ { "result": "来[き]ている" } ], },
"progressive negative": [ { "result": "来[き]ていない" } ], "progressive negative": { forms: [ { "result": "来[き]ていない" } ], },
"polite progressive": [ { "result": "来[き]ています" } ], "polite progressive": { forms: [ { "result": "来[き]ています" } ], },
"polite progressive negative": [ { "result": "来[き]ていません" } ], "polite progressive negative": { forms: [ { "result": "来[き]ていません" } ], },
"progressive past": [ { "result": "来[き]ていた" } ], "progressive past": { forms: [ { "result": "来[き]ていた" } ], },
"progressive past negative": [ { "result": "来[き]ていなかった" } ], "progressive past negative": { forms: [ { "result": "来[き]ていなかった" } ], },
"polite progressive past": [ { "result": "来[き]ていました" } ], "polite progressive past": { forms: [ { "result": "来[き]ていました" } ], },
"polite progressive past negative": [ { "result": "来[き]ていませんでした" } ], "polite progressive past negative": { forms: [ { "result": "来[き]ていませんでした" } ], },
"desire" : [ { "result": "来[き]たい" }, ], "desire": { forms: [ { "result": "来[き]たい" }, ], },
"desire negative" : [ { "result": "来[き]たくない" }, ], "desire negative": { forms: [ { "result": "来[き]たくない" }, ], },
"desire polite" : [ { "result": "来[き]たいです" }, ], "desire polite": { forms: [ { "result": "来[き]たいです" }, ], },
"desire polite negative" : [ { "result": "来[き]たくないです" }, ], "desire polite negative": { forms: [ { "result": "来[き]たくないです" }, ], },
"volitional" : [ { "result": "来[こ]よう" }, ], "volitional": { forms: [ { "result": "来[こ]よう" }, ], },
"polite volitional" : [ { "result": "来[き]ましょう" }, ], "polite volitional": { forms: [ { "result": "来[き]ましょう" }, ], },
}, },
"suru": { "suru": {
"negative" : [ { "before": "する", "after": "しない" }, ], "negative": { forms: [ { "before": "する", "after": "しない" }, ], },
"polite" : [ { "before": "する", "after": "します" }, ], "polite": { forms: [ { "before": "する", "after": "します" }, ], },
"polite negative" : [ { "before": "する", "after": "しません" }, ], "polite negative": { forms: [ { "before": "する", "after": "しません" }, ], },
"past" : [ { "before": "する", "after": "した" }, ], "past": { forms: [ { "before": "する", "after": "した" }, ], },
"past negative" : [ { "before": "する", "after": "しなかった" }, ], "past negative": { forms: [ { "before": "する", "after": "しなかった" }, ], },
"polite past" : [ { "before": "する", "after": "しました" }, ], "polite past": { forms: [ { "before": "する", "after": "しました" }, ], },
"polite past negative" : [ { "before": "する", "after": "しませんでした" }, ], "polite past negative": { forms: [ { "before": "する", "after": "しませんでした" }, ], },
"te-form" : [ { "before": "する", "after": "して" }, ], "te-form": { forms: [ { "before": "する", "after": "して" }, ], },
"te-form negative": [ { "before": "する", "after": "しなくて" }, { "before": "する", "after": "しないで" } ], "te-form negative": { forms: [ { "before": "する", "after": "しなくて" }, { "before": "する", "after": "しないで" } ], },
"potential": [ { "before": "する", "after": "できる" } ], "potential": { forms: [ { "before": "する", "after": "できる" } ], },
"potential negative": [ { "before": "する", "after": "できない" } ], "potential negative": { forms: [ { "before": "する", "after": "できない" } ], },
"polite potential": [ { "before": "する", "after": "できます" } ], "polite potential": { forms: [ { "before": "する", "after": "できます" } ], },
"polite potential negative": [ { "before": "する", "after": "できません" } ], "polite potential negative": { forms: [ { "before": "する", "after": "できません" } ], },
"imperative": [ { "before": "する", "after": "しろ" } ], "imperative": { forms: [ { "before": "する", "after": "しろ" } ], },
"imperative negative": [ { "before": "する", "after": "するな" } ], "imperative negative": { forms: [ { "before": "する", "after": "するな" } ], },
"progressive": [ { "before": "する", "after": "している" } ], "progressive": { forms: [ { "before": "する", "after": "している" } ], },
"progressive negative": [ { "before": "する", "after": "していない" } ], "progressive negative": { forms: [ { "before": "する", "after": "していない" } ], },
"polite progressive": [ { "before": "する", "after": "しています" } ], "polite progressive": { forms: [ { "before": "する", "after": "しています" } ], },
"polite progressive negative": [ { "before": "する", "after": "していません" } ], "polite progressive negative": { forms: [ { "before": "する", "after": "していません" } ], },
"progressive past": [ { "before": "する", "after": "していた" } ], "progressive past": { forms: [ { "before": "する", "after": "していた" } ], },
"progressive past negative": [ { "before": "する", "after": "していなかった" } ], "progressive past negative": { forms: [ { "before": "する", "after": "していなかった" } ], },
"polite progressive past": [ { "before": "する", "after": "していました" } ], "polite progressive past": { forms: [ { "before": "する", "after": "していました" } ], },
"polite progressive past negative": [ { "before": "する", "after": "していませんでした" } ], "polite progressive past negative": { forms: [ { "before": "する", "after": "していませんでした" } ], },
"desire" : [ { "before": "する", "after": "したい" }, ], "desire": { forms: [ { "before": "する", "after": "したい" }, ], },
"desire negative" : [ { "before": "する", "after": "したくない" }, ], "desire negative": { forms: [ { "before": "する", "after": "したくない" }, ], },
"desire polite" : [ { "before": "する", "after": "したいです" }, ], "desire polite": { forms: [ { "before": "する", "after": "したいです" }, ], },
"desire polite negative" : [ { "before": "する", "after": "したくないです" }, ], "desire polite negative": { forms: [ { "before": "する", "after": "したくないです" }, ], },
"volitional" : [ { "before": "する", "after": "しよう" }, ], "volitional": { forms: [ { "before": "する", "after": "しよう" }, ], },
"polite volitional" : [ { "before": "する", "after": "しましょう" }, ], "polite volitional": { forms: [ { "before": "する", "after": "しましょう" }, ], },
}, },
"i-adjective": { "i-adjective": {
"negative": [ { "before": "い", "after": "くない" } ], "negative": { forms: [ { "before": "い", "after": "くない" } ], },
"polite": [ { "before": "い", "after": "いです" } ], "polite": { forms: [ { "before": "い", "after": "いです" } ], },
"polite negative": [ { "before": "い", "after": "くないです" }, { "before": "い", "after": "くありません" } ], "polite negative": { forms: [ { "before": "い", "after": "くないです" }, { "before": "い", "after": "くありません" } ], },
"past": [ { "before": "い", "after": "かった" } ], "past": { forms: [ { "before": "い", "after": "かった" } ], },
"past negative": [ { "before": "い", "after": "くなかった" } ], "past negative": { forms: [ { "before": "い", "after": "くなかった" } ], },
"polite past": [ { "before": "い", "after": "かったです" } ], "polite past": { forms: [ { "before": "い", "after": "かったです" } ], },
"polite past negative": [ { "before": "い", "after": "くなかったです" }, { "before": "い", "after": "くありませんでした" } ], "polite past negative": { forms: [ { "before": "い", "after": "くなかったです" }, { "before": "い", "after": "くありませんでした" } ], },
}, },
"ii": { "ii": {
"negative": [ { "result": "良[よ]くない" } ], "negative": { forms: [ { "result": "良[よ]くない" } ], },
"polite": [ { "result": "いいです" } ], "polite": { forms: [ { "result": "いいです" } ], },
"polite negative": [ { "result": "良[よ]くないです" }, { "result": "良[よ]くありません" } ], "polite negative": { forms: [ { "result": "良[よ]くないです" }, { "result": "良[よ]くありません" } ], },
"past": [ { "result": "良[よ]かった" } ], "past": { forms: [ { "result": "良[よ]かった" } ], },
"past negative": [ { "result": "良[よ]くなかった" } ], "past negative": { forms: [ { "result": "良[よ]くなかった" } ], },
"polite past": [ { "result": "良[よ]かったです" } ], "polite past": { forms: [ { "result": "良[よ]かったです" } ], },
"polite past negative": [ { "result": "良[よ]くなかったです" }, { "result": "良[よ]くありませんでした" } ], "polite past negative": { forms: [ { "result": "良[よ]くなかったです" }, { "result": "良[よ]くありませんでした" } ], },
}, },
"na-adjective": { "na-adjective": {
"negative": [ { "before": "だ", "after": "ではない" }, { "before": "だ", "after": "じゃない" } ], "negative": { forms: [ { "before": "だ", "after": "ではない" }, { "before": "だ", "after": "じゃない" } ], },
"polite": [ { "before": "だ", "after": "です" } ], "polite": { forms: [ { "before": "だ", "after": "です" } ], },
"polite negative": [ { "before": "だ", "after": "ではないです" }, { "before": "だ", "after": "じゃないです" }, { "before": "だ", "after": "ではありません" }, { "before": "だ", "after": "じゃありません" } ], "polite negative": { forms: [ { "before": "だ", "after": "ではないです" }, { "before": "だ", "after": "じゃないです" }, { "before": "だ", "after": "ではありません" }, { "before": "だ", "after": "じゃありません" } ], },
"past": [ { "before": "だ", "after": "だった" } ], "past": { forms: [ { "before": "だ", "after": "だった" } ], },
"past negative": [ { "before": "だ", "after": "ではなかった" }, { "before": "だ", "after": "じゃなかった" } ], "past negative": { forms: [ { "before": "だ", "after": "ではなかった" }, { "before": "だ", "after": "じゃなかった" } ], },
"polite past": [ { "before": "だ", "after": "でした" } ], "polite past": { forms: [ { "before": "だ", "after": "でした" } ], },
"polite past negative": [ { "before": "だ", "after": "ではなかったです" }, { "before": "だ", "after": "じゃなかったです" }, { "before": "だ", "after": "ではありませんでした" }, { "before": "だ", "after": "じゃありませんでした" } ], "polite past negative": { forms: [ { "before": "だ", "after": "ではなかったです" }, { "before": "だ", "after": "じゃなかったです" }, { "before": "だ", "after": "ではありませんでした" }, { "before": "だ", "after": "じゃありませんでした" } ], },
}, },
}; };
@ -719,20 +850,26 @@ function calculateConjugations(word, conjugation) {
if (rules[group][conjugation] == undefined) if (rules[group][conjugation] == undefined)
return undefined; return undefined;
var conjugations = rules[group][conjugation]; var conjugations = rules[group][conjugation].forms;
var result = []; var result = {
forms: []
};
if (rules[group][conjugation].tetakei) {
result.tetakei = true;
}
conjugations.forEach(function (rule) { conjugations.forEach(function (rule) {
if (rule.before && rule.after) { if (rule.before && rule.after) {
if (dictionary.endsWith(rule.before)) { if (dictionary.endsWith(rule.before)) {
result.push(dictionary.substring(0, dictionary.length - rule.before.length) + rule.after); result.forms.push(dictionary.substring(0, dictionary.length - rule.before.length) + rule.after);
} }
} }
if (rule.result) { if (rule.result) {
result.push(rule.result); result.forms.push(rule.result);
} }
}); });
@ -743,7 +880,7 @@ function calculateAllConjugations() {
Object.keys(words).forEach(function (word) { Object.keys(words).forEach(function (word) {
words[word].conjugations = { "dictionary" : words[word].dictionary }; words[word].conjugations = { "dictionary": { forms: [words[word].dictionary] } };
var group = words[word].group; var group = words[word].group;