mirror of
https://github.com/ZetaKebab/japanese-conjugation-drill.git
synced 2025-01-14 22:08:44 +00:00
Added support for multiple answers and added question pool counter.
This commit is contained in:
parent
73b242377d
commit
6804d03c27
@ -21,6 +21,8 @@
|
|||||||
<button id="go">Go</button>
|
<button id="go">Go</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div>Question pool size: <span id="questionCount">Calculating...</span></div>
|
||||||
|
|
||||||
<div class="options">
|
<div class="options">
|
||||||
<div>
|
<div>
|
||||||
<h2>Conjugation types</h2>
|
<h2>Conjugation types</h2>
|
||||||
@ -62,14 +64,9 @@
|
|||||||
<label><input type="checkbox" id="trick" checked> Trick questions (answers may be the same as the given form)</label>
|
<label><input type="checkbox" id="trick" checked> Trick questions (answers may be the same as the given form)</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="te-notice"><small>
|
|
||||||
When the test refers to negative て forms, they are assumed to be ~なくて and not ~ないで .
|
|
||||||
</small></div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="scoreSection">
|
<div id="scoreSection">
|
||||||
終わり
|
|
||||||
|
|
||||||
<div id="history">
|
<div id="history">
|
||||||
</div>
|
</div>
|
||||||
|
@ -153,18 +153,51 @@ new function ($) {
|
|||||||
}
|
}
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
|
function commaList(items, conjunction) {
|
||||||
|
|
||||||
|
if (conjunction == undefined) {
|
||||||
|
conjunction = "and";
|
||||||
|
}
|
||||||
|
|
||||||
|
var result = "";
|
||||||
|
|
||||||
|
for (var i = 0; i < items.length; i++) {
|
||||||
|
result = result + items[i];
|
||||||
|
|
||||||
|
if (i < (items.length - 2)) {
|
||||||
|
result += ", ";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i == (items.length - 2)) {
|
||||||
|
result += " " + conjunction + " ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
function resetLog() {
|
function resetLog() {
|
||||||
log = { "history": [] };
|
log = { "history": [] };
|
||||||
}
|
}
|
||||||
|
|
||||||
function getVerbForms(entry) {
|
function getVerbForms(entry) {
|
||||||
|
|
||||||
function kanaForm(word) {
|
function kanaForm(words) {
|
||||||
return word.split(/.\[([^\]]*)\]/).join("");
|
|
||||||
|
if (words.constructor !== Array) {
|
||||||
|
words = [words];
|
||||||
|
}
|
||||||
|
|
||||||
|
return words.map(function (word) { return word.split(/.\[([^\]]*)\]/).join(""); } );
|
||||||
}
|
}
|
||||||
|
|
||||||
function kanjiForm(word) {
|
function kanjiForm(words) {
|
||||||
return word.split(/(.)\[[^\]]*\]/).join("");
|
|
||||||
|
if (words.constructor !== Array) {
|
||||||
|
words = [words];
|
||||||
|
}
|
||||||
|
|
||||||
|
return words.map(function (word) { return word.split(/(.)\[[^\]]*\]/).join(""); } );
|
||||||
}
|
}
|
||||||
|
|
||||||
var result = {
|
var result = {
|
||||||
@ -182,16 +215,23 @@ function getVerbForms(entry) {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
function wordWithFurigana(word) {
|
function wordWithFurigana(words) {
|
||||||
|
|
||||||
var bits = word.split(/(.)\[([^\]]*)\]/);
|
if (words.constructor !== Array) {
|
||||||
|
words = [words];
|
||||||
while (bits.length > 1) {
|
|
||||||
bits[0] = bits[0] + "<span tooltip='" + bits[2] + "'>" + bits[1] + "</span>" + bits[3];
|
|
||||||
bits.splice(1, 3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return bits[0];
|
return words.map(function (word) {
|
||||||
|
|
||||||
|
var bits = word.split(/(.)\[([^\]]*)\]/);
|
||||||
|
|
||||||
|
while (bits.length > 1) {
|
||||||
|
bits[0] = bits[0] + "<span tooltip='" + bits[2] + "'>" + bits[1] + "</span>" + bits[3];
|
||||||
|
bits.splice(1, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
return bits[0];
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function processAnswerKey() {
|
function processAnswerKey() {
|
||||||
@ -285,6 +325,29 @@ function processAnswerKey() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function validQuestion(entry, forms, transformation, options) {
|
||||||
|
|
||||||
|
var valid = true;
|
||||||
|
|
||||||
|
transformation.tags.forEach(function (type) {
|
||||||
|
if (options[type] == false) {
|
||||||
|
valid = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (options[words[entry].group] == false) {
|
||||||
|
valid = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!forms["furigana"][transformation.from])
|
||||||
|
valid = false;
|
||||||
|
|
||||||
|
if (!forms["furigana"][transformation.to])
|
||||||
|
valid = false;
|
||||||
|
|
||||||
|
return valid;
|
||||||
|
}
|
||||||
|
|
||||||
function generateQuestion() {
|
function generateQuestion() {
|
||||||
|
|
||||||
var entry;
|
var entry;
|
||||||
@ -309,42 +372,38 @@ function generateQuestion() {
|
|||||||
|
|
||||||
forms = getVerbForms(entry);
|
forms = getVerbForms(entry);
|
||||||
|
|
||||||
var valid = true;
|
var valid = validQuestion(entry, forms, transformation, getOptions());
|
||||||
|
|
||||||
transformation.tags.forEach(function (type) {
|
// Modify the chance of trick questions so that they appear on average 25%
|
||||||
if ($('#' + type).is(':checked') == false) {
|
// of the time. When trick questions are active then 50% of the
|
||||||
|
// transformation structure are trick questions and so a 33% filter here
|
||||||
|
// will achieve the 25% because this test is only performed when a trick
|
||||||
|
// question has been selected.
|
||||||
|
|
||||||
|
if (transformation.tags.indexOf('trick') != -1) {
|
||||||
|
if (Math.random() > 0.333) {
|
||||||
valid = false;
|
valid = false;
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
if ($('#' + words[entry].group).is(':checked') == false) {
|
|
||||||
valid = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!forms["furigana"][from_form])
|
|
||||||
valid = false;
|
|
||||||
|
|
||||||
if (!forms["furigana"][to_form])
|
|
||||||
valid = false;
|
|
||||||
|
|
||||||
if (valid) {
|
if (valid) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var word = forms["word"];
|
|
||||||
var kanjiForms = forms["kanji"];
|
var kanjiForms = forms["kanji"];
|
||||||
var kanaForms = forms["hiragana"];
|
var kanaForms = forms["hiragana"];
|
||||||
var furiganaForms = forms["furigana"];
|
var furiganaForms = forms["furigana"];
|
||||||
|
|
||||||
var question = "What is the " + transformation.phrase + " form of " + wordWithFurigana(furiganaForms[from_form]) + "?";
|
var question = "What is the " + transformation.phrase + " form of " +
|
||||||
|
wordWithFurigana(furiganaForms[from_form]).randomElement() + "?";
|
||||||
|
|
||||||
var answer = kanjiForms[to_form];
|
var answer = kanjiForms[to_form];
|
||||||
var answer2 = kanaForms[to_form];
|
var answer2 = kanaForms[to_form];
|
||||||
|
|
||||||
$('#question').html(question);
|
$('#question').html(question);
|
||||||
|
|
||||||
window.question = question;
|
window.question = question;
|
||||||
window.word = word;
|
|
||||||
window.answer = kanjiForms[to_form];
|
window.answer = kanjiForms[to_form];
|
||||||
window.answerWithFurigana = wordWithFurigana(furiganaForms[to_form]);
|
window.answerWithFurigana = wordWithFurigana(furiganaForms[to_form]);
|
||||||
window.answer2 = answer2;
|
window.answer2 = answer2;
|
||||||
@ -358,10 +417,6 @@ function generateQuestion() {
|
|||||||
$('#answer').focus();
|
$('#answer').focus();
|
||||||
|
|
||||||
$('#answer').on('input', processAnswerKey);
|
$('#answer').on('input', processAnswerKey);
|
||||||
|
|
||||||
if (log.start == undefined) {
|
|
||||||
log.start = Date.now();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function processAnswer() {
|
function processAnswer() {
|
||||||
@ -371,7 +426,8 @@ function processAnswer() {
|
|||||||
if (response == "")
|
if (response == "")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var correct = ((response == window.answer) || (response == window.answer2));
|
var correct = ((window.answer.indexOf(response) != -1) || (window.answer2.indexOf(response) != -1));
|
||||||
|
|
||||||
var klass = correct ? "correct" : "incorrect";
|
var klass = correct ? "correct" : "incorrect";
|
||||||
|
|
||||||
log.history.push({
|
log.history.push({
|
||||||
@ -386,20 +442,16 @@ function processAnswer() {
|
|||||||
$('#response').prop('class', klass).text(response);
|
$('#response').prop('class', klass).text(response);
|
||||||
$('#next').prop('disabled', false);
|
$('#next').prop('disabled', false);
|
||||||
|
|
||||||
if ((response == window.answer) || (response == window.answer2)) {
|
if (correct) {
|
||||||
$('#message').html("");
|
$('#message').html("");
|
||||||
} else {
|
} else {
|
||||||
$('#message').html("<div>The correct answer is " + window.answerWithFurigana + "</div>");
|
$('#message').html("<div>The correct answer was " + commaList(window.answerWithFurigana, "or") + "</div>");
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#input').hide();
|
$('#input').hide();
|
||||||
$('#proceed').show();
|
$('#proceed').show();
|
||||||
$('#proceed button').focus();
|
$('#proceed button').focus();
|
||||||
|
|
||||||
if (log.end == undefined) {
|
|
||||||
log.end = Date.now();
|
|
||||||
}
|
|
||||||
|
|
||||||
updateHistoryView(log);
|
updateHistoryView(log);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -433,7 +485,7 @@ function updateHistoryView(log) {
|
|||||||
var td3 = $('<td>');
|
var td3 = $('<td>');
|
||||||
|
|
||||||
td1.html(entry.question);
|
td1.html(entry.question);
|
||||||
td2.html(entry.answer);
|
td2.html(commaList(entry.answer, "or"));
|
||||||
td3.text(entry.response);
|
td3.text(entry.response);
|
||||||
|
|
||||||
tr.append(td1);
|
tr.append(td1);
|
||||||
@ -451,7 +503,6 @@ function updateHistoryView(log) {
|
|||||||
$('#history').empty().append(review);
|
$('#history').empty().append(review);
|
||||||
|
|
||||||
$('#history').append("<p>" + correct + " of " + total + " correct.</p>");
|
$('#history').append("<p>" + correct + " of " + total + " correct.</p>");
|
||||||
$('#history').append("<p>" + ((log.end - log.start) / 1000.0) + " seconds.</p>");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function proceed() {
|
function proceed() {
|
||||||
@ -487,14 +538,6 @@ function endQuiz() {
|
|||||||
$('#backToStart').focus();
|
$('#backToStart').focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateTeNotice() {
|
|
||||||
if ($('#te-form').is(':checked')) {
|
|
||||||
$('#te-notice').show();
|
|
||||||
} else {
|
|
||||||
$('#te-notice').hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function arrayDifference(a, b) {
|
function arrayDifference(a, b) {
|
||||||
// From http://stackoverflow.com/a/1723220
|
// From http://stackoverflow.com/a/1723220
|
||||||
return a.filter(function (x) { return b.indexOf(x) < 0 });
|
return a.filter(function (x) { return b.indexOf(x) < 0 });
|
||||||
@ -585,17 +628,49 @@ function calculateTransitions() {
|
|||||||
phrase: transformation.phrase,
|
phrase: transformation.phrase,
|
||||||
tags: transformation.tags.concat(["trick"])
|
tags: transformation.tags.concat(["trick"])
|
||||||
});
|
});
|
||||||
|
|
||||||
// Cheap trick to make trick questions appear on average 25% of the time
|
|
||||||
// instead of 50%. I'll fix this later *cough*.
|
|
||||||
|
|
||||||
trick_forms.push(transformation);
|
|
||||||
trick_forms.push(transformation);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
transformations = transformations.concat(trick_forms);
|
transformations = transformations.concat(trick_forms);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateOptionSummary() {
|
||||||
|
|
||||||
|
// Calculate how many questions will apply
|
||||||
|
|
||||||
|
var options = getOptions();
|
||||||
|
var applicable = 0;
|
||||||
|
|
||||||
|
Object.keys(words).forEach(function (word) {
|
||||||
|
|
||||||
|
var forms = getVerbForms(word);
|
||||||
|
|
||||||
|
transformations.forEach(function (transformation) {
|
||||||
|
|
||||||
|
if (validQuestion(word, forms, transformation, options)) {
|
||||||
|
applicable++;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#questionCount").text(applicable);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getOptions() {
|
||||||
|
|
||||||
|
var options = ["plain", "polite", "negative", "past", "te-form",
|
||||||
|
"progressive", "potential", "imperative", "passive", "causative",
|
||||||
|
"godan", "ichidan", "iku", "kuru", "suru", "i-adjective", "na-adjective",
|
||||||
|
"trick"];
|
||||||
|
|
||||||
|
var result = {};
|
||||||
|
|
||||||
|
options.forEach(function (option) {
|
||||||
|
result[option] = $('#' + option).is(':checked') != false;
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
$('window').ready(function () {
|
$('window').ready(function () {
|
||||||
|
|
||||||
calculateTransitions();
|
calculateTransitions();
|
||||||
@ -603,8 +678,10 @@ $('window').ready(function () {
|
|||||||
$('#go').click(startQuiz);
|
$('#go').click(startQuiz);
|
||||||
$('#backToStart').click(showSplash);
|
$('#backToStart').click(showSplash);
|
||||||
|
|
||||||
$('#te-form').click(updateTeNotice);
|
$('div.options input').click(updateOptionSummary);
|
||||||
updateTeNotice();
|
$('input#trick').click(updateOptionSummary);
|
||||||
|
|
||||||
|
updateOptionSummary();
|
||||||
|
|
||||||
showSplash();
|
showSplash();
|
||||||
});
|
});
|
||||||
|
@ -17,7 +17,7 @@ var words = {
|
|||||||
"polite past": "走[はし]りました",
|
"polite past": "走[はし]りました",
|
||||||
"polite past negative": "走[はし]りませんでした",
|
"polite past negative": "走[はし]りませんでした",
|
||||||
"te-form": "走[はし]って",
|
"te-form": "走[はし]って",
|
||||||
"te-form negative": "走[はし]らなくて",
|
"te-form negative": ["走[はし]らなくて", "走[はし]らないで"],
|
||||||
"potential": "走[はし]れる",
|
"potential": "走[はし]れる",
|
||||||
"potential negative": "走[はし]れない",
|
"potential negative": "走[はし]れない",
|
||||||
"passive": "走[はし]られる",
|
"passive": "走[はし]られる",
|
||||||
@ -54,7 +54,7 @@ var words = {
|
|||||||
"polite past": "死[し]にました",
|
"polite past": "死[し]にました",
|
||||||
"polite past negative": "死[し]にませんでした",
|
"polite past negative": "死[し]にませんでした",
|
||||||
"te-form": "死[し]んで",
|
"te-form": "死[し]んで",
|
||||||
"te-form negative": "死[し]ななくて",
|
"te-form negative": ["死[し]ななくて", "死[し]なないで"],
|
||||||
"potential": "死[し]ねる",
|
"potential": "死[し]ねる",
|
||||||
"potential negative": "死[し]ねない",
|
"potential negative": "死[し]ねない",
|
||||||
"passive": "死[し]なれる",
|
"passive": "死[し]なれる",
|
||||||
@ -91,7 +91,7 @@ var words = {
|
|||||||
"polite past": "上[あ]げました",
|
"polite past": "上[あ]げました",
|
||||||
"polite past negative": "上[あ]げませんでした",
|
"polite past negative": "上[あ]げませんでした",
|
||||||
"te-form": "上[あ]げて",
|
"te-form": "上[あ]げて",
|
||||||
"te-form negative": "上[あ]げなくて",
|
"te-form negative": ["上[あ]げなくて", "上[あ]げないで"],
|
||||||
"potential": "上[あ]げられる",
|
"potential": "上[あ]げられる",
|
||||||
"potential negative": "上[あ]げられない",
|
"potential negative": "上[あ]げられない",
|
||||||
"passive": "上[あ]げられる",
|
"passive": "上[あ]げられる",
|
||||||
@ -128,7 +128,7 @@ var words = {
|
|||||||
"polite past": "上[のぼ]りました",
|
"polite past": "上[のぼ]りました",
|
||||||
"polite past negative": "上[のぼ]りませんでした",
|
"polite past negative": "上[のぼ]りませんでした",
|
||||||
"te-form": "上[のぼ]って",
|
"te-form": "上[のぼ]って",
|
||||||
"te-form negative": "上[のぼ]らなくて",
|
"te-form negative": ["上[のぼ]らなくて", "上[のぼ]らないで"],
|
||||||
"potential": "上[のぼ]れる",
|
"potential": "上[のぼ]れる",
|
||||||
"potential negative": "上[のぼ]れない",
|
"potential negative": "上[のぼ]れない",
|
||||||
"passive": "上[のぼ]られる",
|
"passive": "上[のぼ]られる",
|
||||||
@ -165,7 +165,7 @@ var words = {
|
|||||||
"polite past": "聞[き]きました",
|
"polite past": "聞[き]きました",
|
||||||
"polite past negative": "聞[き]きませんでした",
|
"polite past negative": "聞[き]きませんでした",
|
||||||
"te-form": "聞[き]いて",
|
"te-form": "聞[き]いて",
|
||||||
"te-form negative": "聞[き]かなくて",
|
"te-form negative": ["聞[き]かなくて", "聞[き]かないで"],
|
||||||
"potential": "聞[き]ける",
|
"potential": "聞[き]ける",
|
||||||
"potential negative": "聞[き]けない",
|
"potential negative": "聞[き]けない",
|
||||||
"passive": "聞[き]かれる",
|
"passive": "聞[き]かれる",
|
||||||
@ -202,7 +202,7 @@ var words = {
|
|||||||
"polite past": "書[か]きました",
|
"polite past": "書[か]きました",
|
||||||
"polite past negative": "書[か]きませんでした",
|
"polite past negative": "書[か]きませんでした",
|
||||||
"te-form": "書[か]いて",
|
"te-form": "書[か]いて",
|
||||||
"te-form negative": "書[か]かなくて",
|
"te-form negative": ["書[か]かなくて", "書[か]かないで"],
|
||||||
"potential": "書[か]ける",
|
"potential": "書[か]ける",
|
||||||
"potential negative": "書[か]けない",
|
"potential negative": "書[か]けない",
|
||||||
"passive": "書[か]かれる",
|
"passive": "書[か]かれる",
|
||||||
@ -239,7 +239,7 @@ var words = {
|
|||||||
"polite past": "消[け]しました",
|
"polite past": "消[け]しました",
|
||||||
"polite past negative": "消[け]しませんでした",
|
"polite past negative": "消[け]しませんでした",
|
||||||
"te-form": "消[け]して",
|
"te-form": "消[け]して",
|
||||||
"te-form negative": "消[け]さなくて",
|
"te-form negative": ["消[け]さなくて", "消[け]さないで"],
|
||||||
"potential": "消[け]せる",
|
"potential": "消[け]せる",
|
||||||
"potential negative": "消[け]せない",
|
"potential negative": "消[け]せない",
|
||||||
"passive": "消[け]される",
|
"passive": "消[け]される",
|
||||||
@ -276,7 +276,7 @@ var words = {
|
|||||||
"polite past": "着[き]ました",
|
"polite past": "着[き]ました",
|
||||||
"polite past negative": "着[き]ませんでした",
|
"polite past negative": "着[き]ませんでした",
|
||||||
"te-form": "着[き]て",
|
"te-form": "着[き]て",
|
||||||
"te-form negative": "着[き]なくて",
|
"te-form negative": ["着[き]なくて", "着[き]ないで"],
|
||||||
"potential": "着[き]られる",
|
"potential": "着[き]られる",
|
||||||
"potential negative": "着[き]られない",
|
"potential negative": "着[き]られない",
|
||||||
"passive": "着[き]られる",
|
"passive": "着[き]られる",
|
||||||
@ -313,7 +313,7 @@ var words = {
|
|||||||
"polite past": "育[そだ]てました",
|
"polite past": "育[そだ]てました",
|
||||||
"polite past negative": "育[そだ]てませんでした",
|
"polite past negative": "育[そだ]てませんでした",
|
||||||
"te-form": "育[そだ]てて",
|
"te-form": "育[そだ]てて",
|
||||||
"te-form negative": "育[そだ]てなくて",
|
"te-form negative": ["育[そだ]てなくて", "育[そだ]てないで"],
|
||||||
"potential": "育[そだ]てられる",
|
"potential": "育[そだ]てられる",
|
||||||
"potential negative": "育[そだ]てられない",
|
"potential negative": "育[そだ]てられない",
|
||||||
"passive": "育[そだ]てられる",
|
"passive": "育[そだ]てられる",
|
||||||
@ -350,7 +350,7 @@ var words = {
|
|||||||
"polite past": "遊[あそ]びました",
|
"polite past": "遊[あそ]びました",
|
||||||
"polite past negative": "遊[あそ]びませんでした",
|
"polite past negative": "遊[あそ]びませんでした",
|
||||||
"te-form": "遊[あそ]んで",
|
"te-form": "遊[あそ]んで",
|
||||||
"te-form negative": "遊[あそ]ばなくて",
|
"te-form negative": ["遊[あそ]ばなくて", "遊[あそ]ばないで"],
|
||||||
"potential": "遊[あそ]べる",
|
"potential": "遊[あそ]べる",
|
||||||
"potential negative": "遊[あそ]べない",
|
"potential negative": "遊[あそ]べない",
|
||||||
"passive": "遊[あそ]ばれる",
|
"passive": "遊[あそ]ばれる",
|
||||||
@ -387,7 +387,7 @@ var words = {
|
|||||||
"polite past": "褒[ほ]めました",
|
"polite past": "褒[ほ]めました",
|
||||||
"polite past negative": "褒[ほ]めませんでした",
|
"polite past negative": "褒[ほ]めませんでした",
|
||||||
"te-form": "褒[ほ]めて",
|
"te-form": "褒[ほ]めて",
|
||||||
"te-form negative": "褒[ほ]めなくて",
|
"te-form negative": ["褒[ほ]めなくて", "褒[ほ]めないで"],
|
||||||
"potential": "褒[ほ]められる",
|
"potential": "褒[ほ]められる",
|
||||||
"potential negative": "褒[ほ]められない",
|
"potential negative": "褒[ほ]められない",
|
||||||
"passive": "褒[ほ]められる",
|
"passive": "褒[ほ]められる",
|
||||||
@ -424,7 +424,7 @@ var words = {
|
|||||||
"polite past": "学[まな]びました",
|
"polite past": "学[まな]びました",
|
||||||
"polite past negative": "学[まな]びませんでした",
|
"polite past negative": "学[まな]びませんでした",
|
||||||
"te-form": "学[まな]んで",
|
"te-form": "学[まな]んで",
|
||||||
"te-form negative": "学[まな]ばなくて",
|
"te-form negative": ["学[まな]ばなくて", "学[まな]ばないで"],
|
||||||
"potential": "学[まな]べる",
|
"potential": "学[まな]べる",
|
||||||
"potential negative": "学[まな]べない",
|
"potential negative": "学[まな]べない",
|
||||||
"passive": "学[まな]ばれる",
|
"passive": "学[まな]ばれる",
|
||||||
@ -461,7 +461,7 @@ var words = {
|
|||||||
"polite past": "喜[よころ]びました",
|
"polite past": "喜[よころ]びました",
|
||||||
"polite past negative": "喜[よころ]びませんでした",
|
"polite past negative": "喜[よころ]びませんでした",
|
||||||
"te-form": "喜[よころ]んで",
|
"te-form": "喜[よころ]んで",
|
||||||
"te-form negative": "喜[よころ]ばなくて",
|
"te-form negative": ["喜[よころ]ばなくて", "喜[よころ]ばないで"],
|
||||||
"potential": "喜[よころ]べる",
|
"potential": "喜[よころ]べる",
|
||||||
"potential negative": "喜[よころ]べない",
|
"potential negative": "喜[よころ]べない",
|
||||||
"passive": "喜[よころ]ばれる",
|
"passive": "喜[よころ]ばれる",
|
||||||
@ -498,7 +498,7 @@ var words = {
|
|||||||
"polite past": "泳[およ]ぎました",
|
"polite past": "泳[およ]ぎました",
|
||||||
"polite past negative": "泳[およ]ぎませんでした",
|
"polite past negative": "泳[およ]ぎませんでした",
|
||||||
"te-form": "泳[およ]いで",
|
"te-form": "泳[およ]いで",
|
||||||
"te-form negative": "泳[およ]がなくて",
|
"te-form negative": ["泳[およ]がなくて", "泳[およ]がないで"],
|
||||||
"potential": "泳[およ]げる",
|
"potential": "泳[およ]げる",
|
||||||
"potential negative": "泳[およ]げない",
|
"potential negative": "泳[およ]げない",
|
||||||
"passive": "泳[およ]がれる",
|
"passive": "泳[およ]がれる",
|
||||||
@ -535,7 +535,7 @@ var words = {
|
|||||||
"polite past": "注[そそ]ぎました",
|
"polite past": "注[そそ]ぎました",
|
||||||
"polite past negative": "注[そそ]ぎませんでした",
|
"polite past negative": "注[そそ]ぎませんでした",
|
||||||
"te-form": "注[そそ]いで",
|
"te-form": "注[そそ]いで",
|
||||||
"te-form negative": "注[そそ]がなくて",
|
"te-form negative": ["注[そそ]がなくて", "注[そそ]がないで"],
|
||||||
"potential": "注[そそ]げる",
|
"potential": "注[そそ]げる",
|
||||||
"potential negative": "注[そそ]げない",
|
"potential negative": "注[そそ]げない",
|
||||||
"passive": "注[そそ]がれる",
|
"passive": "注[そそ]がれる",
|
||||||
@ -572,7 +572,7 @@ var words = {
|
|||||||
"polite past": "急[いそ]ぎました",
|
"polite past": "急[いそ]ぎました",
|
||||||
"polite past negative": "急[いそ]ぎませんでした",
|
"polite past negative": "急[いそ]ぎませんでした",
|
||||||
"te-form": "急[いそ]いで",
|
"te-form": "急[いそ]いで",
|
||||||
"te-form negative": "急[いそ]がなくて",
|
"te-form negative": ["急[いそ]がなくて", "急[いそ]がないで"],
|
||||||
"potential": "急[いそ]げる",
|
"potential": "急[いそ]げる",
|
||||||
"potential negative": "急[いそ]げない",
|
"potential negative": "急[いそ]げない",
|
||||||
"passive": "急[いそ]がれる",
|
"passive": "急[いそ]がれる",
|
||||||
@ -609,7 +609,7 @@ var words = {
|
|||||||
"polite past": "立[た]ちました",
|
"polite past": "立[た]ちました",
|
||||||
"polite past negative": "立[た]ちませんでした",
|
"polite past negative": "立[た]ちませんでした",
|
||||||
"te-form": "立[た]って",
|
"te-form": "立[た]って",
|
||||||
"te-form negative": "立[た]たなくて",
|
"te-form negative": ["立[た]たなくて", "立[た]たないで"],
|
||||||
"potential": "立[た]てる",
|
"potential": "立[た]てる",
|
||||||
"potential negative": "立[た]てない",
|
"potential negative": "立[た]てない",
|
||||||
"passive": "立[た]たれる",
|
"passive": "立[た]たれる",
|
||||||
@ -646,7 +646,7 @@ var words = {
|
|||||||
"polite past": "打[う]ちました",
|
"polite past": "打[う]ちました",
|
||||||
"polite past negative": "打[う]ちませんでした",
|
"polite past negative": "打[う]ちませんでした",
|
||||||
"te-form": "打[う]って",
|
"te-form": "打[う]って",
|
||||||
"te-form negative": "打[う]たなくて",
|
"te-form negative": ["打[う]たなくて", "打[う]たないで"],
|
||||||
"potential": "打[う]てる",
|
"potential": "打[う]てる",
|
||||||
"potential negative": "打[う]てない",
|
"potential negative": "打[う]てない",
|
||||||
"passive": "打[う]たれる",
|
"passive": "打[う]たれる",
|
||||||
@ -683,7 +683,7 @@ var words = {
|
|||||||
"polite past": "待[ま]ちました",
|
"polite past": "待[ま]ちました",
|
||||||
"polite past negative": "待[ま]ちませんでした",
|
"polite past negative": "待[ま]ちませんでした",
|
||||||
"te-form": "待[ま]って",
|
"te-form": "待[ま]って",
|
||||||
"te-form negative": "待[ま]たなくて",
|
"te-form negative": ["待[ま]たなくて", "待[ま]たないで"],
|
||||||
"potential": "待[ま]てる",
|
"potential": "待[ま]てる",
|
||||||
"potential negative": "待[ま]てない",
|
"potential negative": "待[ま]てない",
|
||||||
"passive": "待[ま]たれる",
|
"passive": "待[ま]たれる",
|
||||||
@ -720,7 +720,7 @@ var words = {
|
|||||||
"polite past": "持[も]ちました",
|
"polite past": "持[も]ちました",
|
||||||
"polite past negative": "持[も]ちませんでした",
|
"polite past negative": "持[も]ちませんでした",
|
||||||
"te-form": "持[も]って",
|
"te-form": "持[も]って",
|
||||||
"te-form negative": "持[も]たなくて",
|
"te-form negative": ["持[も]たなくて", "持[も]たないで"],
|
||||||
"potential": "持[も]てる",
|
"potential": "持[も]てる",
|
||||||
"potential negative": "持[も]てない",
|
"potential negative": "持[も]てない",
|
||||||
"passive": "持[も]たれる",
|
"passive": "持[も]たれる",
|
||||||
@ -757,7 +757,7 @@ var words = {
|
|||||||
"polite past": "行[い]きました",
|
"polite past": "行[い]きました",
|
||||||
"polite past negative": "行[い]きませんでした",
|
"polite past negative": "行[い]きませんでした",
|
||||||
"te-form": "行[い]って",
|
"te-form": "行[い]って",
|
||||||
"te-form negative": "行[い]かなくて",
|
"te-form negative": ["行[い]かなくて", "行[い]かないで"],
|
||||||
"potential": "行[い]ける",
|
"potential": "行[い]ける",
|
||||||
"potential negative": "行[い]けない",
|
"potential negative": "行[い]けない",
|
||||||
"imperative": "行[い]け",
|
"imperative": "行[い]け",
|
||||||
@ -794,7 +794,7 @@ var words = {
|
|||||||
"polite past": "飲[の]みました",
|
"polite past": "飲[の]みました",
|
||||||
"polite past negative": "飲[の]みませんでした",
|
"polite past negative": "飲[の]みませんでした",
|
||||||
"te-form": "飲[の]んで",
|
"te-form": "飲[の]んで",
|
||||||
"te-form negative": "飲[の]まなくて",
|
"te-form negative": ["飲[の]まなくて", "飲[の]まないで"],
|
||||||
"potential": "飲[の]める",
|
"potential": "飲[の]める",
|
||||||
"potential negative": "飲[の]めない",
|
"potential negative": "飲[の]めない",
|
||||||
"imperative": "飲[の]め",
|
"imperative": "飲[の]め",
|
||||||
@ -831,7 +831,7 @@ var words = {
|
|||||||
"polite past": "作[つく]りました",
|
"polite past": "作[つく]りました",
|
||||||
"polite past negative": "作[つく]りませんでした",
|
"polite past negative": "作[つく]りませんでした",
|
||||||
"te-form": "作[つく]って",
|
"te-form": "作[つく]って",
|
||||||
"te-form negative": "作[つく]らなくて",
|
"te-form negative": ["作[つく]らなくて", "作[つく]らないで"],
|
||||||
"potential": "作[つく]れる",
|
"potential": "作[つく]れる",
|
||||||
"potential negative": "作[つく]れない",
|
"potential negative": "作[つく]れない",
|
||||||
"imperative": "作[つく]れ",
|
"imperative": "作[つく]れ",
|
||||||
@ -868,7 +868,7 @@ var words = {
|
|||||||
"polite past": "買[か]い戻[もど]しました",
|
"polite past": "買[か]い戻[もど]しました",
|
||||||
"polite past negative": "買[か]い戻[もど]しませんでした",
|
"polite past negative": "買[か]い戻[もど]しませんでした",
|
||||||
"te-form": "買[か]い戻[もど]して",
|
"te-form": "買[か]い戻[もど]して",
|
||||||
"te-form negative": "買[か]い戻[もど]さなくて",
|
"te-form negative": ["買[か]い戻[もど]さなくて", "買[か]い戻[もど]さないで"],
|
||||||
"potential": "買[か]い戻[もど]せる",
|
"potential": "買[か]い戻[もど]せる",
|
||||||
"potential negative": "買[か]い戻[もど]せない",
|
"potential negative": "買[か]い戻[もど]せない",
|
||||||
"imperative": "買[か]い戻[もど]せ",
|
"imperative": "買[か]い戻[もど]せ",
|
||||||
@ -905,7 +905,7 @@ var words = {
|
|||||||
"polite past": "見[み]ました",
|
"polite past": "見[み]ました",
|
||||||
"polite past negative": "見[み]ませんでした",
|
"polite past negative": "見[み]ませんでした",
|
||||||
"te-form": "見[み]て",
|
"te-form": "見[み]て",
|
||||||
"te-form negative": "見[み]なくて",
|
"te-form negative": ["見[み]なくて", "見[み]ないで"],
|
||||||
"potential": "見[み]られる",
|
"potential": "見[み]られる",
|
||||||
"potential negative": "見[み]られない",
|
"potential negative": "見[み]られない",
|
||||||
"imperative": "見[み]ろ",
|
"imperative": "見[み]ろ",
|
||||||
@ -942,7 +942,7 @@ var words = {
|
|||||||
"polite past": "食[た]べました",
|
"polite past": "食[た]べました",
|
||||||
"polite past negative": "食[た]べませんでした",
|
"polite past negative": "食[た]べませんでした",
|
||||||
"te-form": "食[た]べて",
|
"te-form": "食[た]べて",
|
||||||
"te-form negative": "食[た]べなくて",
|
"te-form negative": ["食[た]べなくて", "食[た]べないで"],
|
||||||
"potential": "食[た]べられる",
|
"potential": "食[た]べられる",
|
||||||
"potential negative": "食[た]べられない",
|
"potential negative": "食[た]べられない",
|
||||||
"imperative": "食[た]べろ",
|
"imperative": "食[た]べろ",
|
||||||
@ -979,7 +979,7 @@ var words = {
|
|||||||
"polite past": "起[お]きました",
|
"polite past": "起[お]きました",
|
||||||
"polite past negative": "起[お]きませんでした",
|
"polite past negative": "起[お]きませんでした",
|
||||||
"te-form": "起[お]きて",
|
"te-form": "起[お]きて",
|
||||||
"te-form negative": "起[お]きなくて",
|
"te-form negative": ["起[お]きなくて", "起[お]きないで"],
|
||||||
"potential": "起[お]きられる",
|
"potential": "起[お]きられる",
|
||||||
"potential negative": "起[お]きられない",
|
"potential negative": "起[お]きられない",
|
||||||
"imperative": "起[お]きろ",
|
"imperative": "起[お]きろ",
|
||||||
@ -1016,7 +1016,7 @@ var words = {
|
|||||||
"polite past": "買[か]い換[か]えました",
|
"polite past": "買[か]い換[か]えました",
|
||||||
"polite past negative": "買[か]い換[か]えませんでした",
|
"polite past negative": "買[か]い換[か]えませんでした",
|
||||||
"te-form": "買[か]い換[か]えて",
|
"te-form": "買[か]い換[か]えて",
|
||||||
"te-form negative": "買[か]い換[か]えなくて",
|
"te-form negative": ["買[か]い換[か]えなくて", "買[か]い換[か]えないで"],
|
||||||
"potential": "買[か]い換[か]えられる",
|
"potential": "買[か]い換[か]えられる",
|
||||||
"potential negative": "買[か]い換[か]えられない",
|
"potential negative": "買[か]い換[か]えられない",
|
||||||
"imperative": "買[か]い換[か]えろ",
|
"imperative": "買[か]い換[か]えろ",
|
||||||
@ -1053,7 +1053,7 @@ var words = {
|
|||||||
"polite past": "来[き]ました",
|
"polite past": "来[き]ました",
|
||||||
"polite past negative": "来[き]ませんでした",
|
"polite past negative": "来[き]ませんでした",
|
||||||
"te-form": "来[き]て",
|
"te-form": "来[き]て",
|
||||||
"te-form negative": "来[こ]なくて",
|
"te-form negative": ["来[こ]なくて", "来[こ]ないで"],
|
||||||
"potential": "来[こ]られる",
|
"potential": "来[こ]られる",
|
||||||
"potential negative": "来[こ]られない",
|
"potential negative": "来[こ]られない",
|
||||||
"imperative": "来[こ]い",
|
"imperative": "来[こ]い",
|
||||||
@ -1090,7 +1090,7 @@ var words = {
|
|||||||
"polite past": "しました",
|
"polite past": "しました",
|
||||||
"polite past negative": "しませんでした",
|
"polite past negative": "しませんでした",
|
||||||
"te-form": "して",
|
"te-form": "して",
|
||||||
"te-form negative": "しなくて",
|
"te-form negative": ["しなくて", "しないで"],
|
||||||
"imperative": "しろ",
|
"imperative": "しろ",
|
||||||
"imperative negative": "さるな",
|
"imperative negative": "さるな",
|
||||||
"progressive": "している",
|
"progressive": "している",
|
||||||
@ -1119,7 +1119,7 @@ var words = {
|
|||||||
"polite past": "勉[べん]強[きょう]しました",
|
"polite past": "勉[べん]強[きょう]しました",
|
||||||
"polite past negative": "勉[べん]強[きょう]しませんでした",
|
"polite past negative": "勉[べん]強[きょう]しませんでした",
|
||||||
"te-form": "勉[べん]強[きょう]して",
|
"te-form": "勉[べん]強[きょう]して",
|
||||||
"te-form negative": "勉[べん]強[きょう]しなくて",
|
"te-form negative": ["勉[べん]強[きょう]しなくて", "勉[べん]強[きょう]しないで"],
|
||||||
"imperative": "勉[べん]強[きょう]しろ",
|
"imperative": "勉[べん]強[きょう]しろ",
|
||||||
"imperative negative": "勉[べん]強[きょう]さるな",
|
"imperative negative": "勉[べん]強[きょう]さるな",
|
||||||
"progressive": "勉[べん]強[きょう]している",
|
"progressive": "勉[べん]強[きょう]している",
|
||||||
@ -1148,7 +1148,7 @@ var words = {
|
|||||||
"polite past": "電[でん]話[わ]しました",
|
"polite past": "電[でん]話[わ]しました",
|
||||||
"polite past negative": "電[でん]話[わ]しませんでした",
|
"polite past negative": "電[でん]話[わ]しませんでした",
|
||||||
"te-form": "電[でん]話[わ]して",
|
"te-form": "電[でん]話[わ]して",
|
||||||
"te-form negative": "電[でん]話[わ]しなくて",
|
"te-form negative": ["電[でん]話[わ]しなくて", "電[でん]話[わ]しないで"],
|
||||||
"imperative": "電[でん]話[わ]しろ",
|
"imperative": "電[でん]話[わ]しろ",
|
||||||
"imperative negative": "電[でん]話[わ]さるな",
|
"imperative negative": "電[でん]話[わ]さるな",
|
||||||
"progressive": "電[でん]話[わ]している",
|
"progressive": "電[でん]話[わ]している",
|
||||||
@ -1177,7 +1177,7 @@ var words = {
|
|||||||
"polite past": "開[かい]発[はつ]しました",
|
"polite past": "開[かい]発[はつ]しました",
|
||||||
"polite past negative": "開[かい]発[はつ]しませんでした",
|
"polite past negative": "開[かい]発[はつ]しませんでした",
|
||||||
"te-form": "開[かい]発[はつ]して",
|
"te-form": "開[かい]発[はつ]して",
|
||||||
"te-form negative": "開[かい]発[はつ]しなくて",
|
"te-form negative": ["開[かい]発[はつ]しなくて", "開[かい]発[はつ]しないで"],
|
||||||
"imperative": "開[かい]発[はつ]しろ",
|
"imperative": "開[かい]発[はつ]しろ",
|
||||||
"imperative negative": "開[かい]発[はつ]さるな",
|
"imperative negative": "開[かい]発[はつ]さるな",
|
||||||
"progressive": "開[かい]発[はつ]している",
|
"progressive": "開[かい]発[はつ]している",
|
||||||
@ -1206,7 +1206,7 @@ var words = {
|
|||||||
"polite past": "計[けい]算[さん]しました",
|
"polite past": "計[けい]算[さん]しました",
|
||||||
"polite past negative": "計[けい]算[さん]しませんでした",
|
"polite past negative": "計[けい]算[さん]しませんでした",
|
||||||
"te-form": "計[けい]算[さん]して",
|
"te-form": "計[けい]算[さん]して",
|
||||||
"te-form negative": "計[けい]算[さん]しなくて",
|
"te-form negative": ["計[けい]算[さん]しなくて", "計[けい]算[さん]しないで"],
|
||||||
"imperative": "計[けい]算[さん]しろ",
|
"imperative": "計[けい]算[さん]しろ",
|
||||||
"imperative negative": "計[けい]算[さん]さるな",
|
"imperative negative": "計[けい]算[さん]さるな",
|
||||||
"progressive": "計[けい]算[さん]している",
|
"progressive": "計[けい]算[さん]している",
|
||||||
@ -1235,7 +1235,7 @@ var words = {
|
|||||||
"polite past": "読[よ]みました",
|
"polite past": "読[よ]みました",
|
||||||
"polite past negative": "読[よ]みませんでした",
|
"polite past negative": "読[よ]みませんでした",
|
||||||
"te-form": "読[よ]んで",
|
"te-form": "読[よ]んで",
|
||||||
"te-form negative": "読[よ]まなくて",
|
"te-form negative": ["読[よ]まなくて", "読[よ]まないで"],
|
||||||
"potential": "読[よ]める",
|
"potential": "読[よ]める",
|
||||||
"potential negative": "読[よ]めない",
|
"potential negative": "読[よ]めない",
|
||||||
"imperative": "読[よ]め",
|
"imperative": "読[よ]め",
|
||||||
@ -1272,7 +1272,7 @@ var words = {
|
|||||||
"polite past": "思[おも]いました",
|
"polite past": "思[おも]いました",
|
||||||
"polite past negative": "思[おも]いませんでした",
|
"polite past negative": "思[おも]いませんでした",
|
||||||
"te-form": "思[おも]って",
|
"te-form": "思[おも]って",
|
||||||
"te-form negative": "思[おも]わなくて",
|
"te-form negative": ["思[おも]わなくて", "思[おも]わないで"],
|
||||||
"potential": "思[おも]える",
|
"potential": "思[おも]える",
|
||||||
"potential negative": "思[おも]えない",
|
"potential negative": "思[おも]えない",
|
||||||
"imperative": "思[おも]え",
|
"imperative": "思[おも]え",
|
||||||
@ -1309,7 +1309,7 @@ var words = {
|
|||||||
"polite past": "買[か]い与[あた]えました",
|
"polite past": "買[か]い与[あた]えました",
|
||||||
"polite past negative": "買[か]い与[あた]えませんでした",
|
"polite past negative": "買[か]い与[あた]えませんでした",
|
||||||
"te-form": "買[か]い与[あた]えて",
|
"te-form": "買[か]い与[あた]えて",
|
||||||
"te-form negative": "買[か]い与[あた]えなくて",
|
"te-form negative": ["買[か]い与[あた]えなくて", "買[か]い与[あた]えないで"],
|
||||||
"potential": "買[か]い与[あた]えられる",
|
"potential": "買[か]い与[あた]えられる",
|
||||||
"potential negative": "買[か]い与[あた]えられない",
|
"potential negative": "買[か]い与[あた]えられない",
|
||||||
"imperative": "買[か]い与[あた]えろ",
|
"imperative": "買[か]い与[あた]えろ",
|
||||||
@ -1346,7 +1346,7 @@ var words = {
|
|||||||
"polite past": "座[すわ]りました",
|
"polite past": "座[すわ]りました",
|
||||||
"polite past negative": "座[すわ]りませんでした",
|
"polite past negative": "座[すわ]りませんでした",
|
||||||
"te-form": "座[すわ]って",
|
"te-form": "座[すわ]って",
|
||||||
"te-form negative": "座[すわ]らなくて",
|
"te-form negative": ["座[すわ]らなくて", "座[すわ]らないで"],
|
||||||
"potential": "座[すわ]れる",
|
"potential": "座[すわ]れる",
|
||||||
"potential negative": "座[すわ]れない",
|
"potential negative": "座[すわ]れない",
|
||||||
"imperative": "座[すわ]れ",
|
"imperative": "座[すわ]れ",
|
||||||
@ -1383,7 +1383,7 @@ var words = {
|
|||||||
"polite past": "休[やす]みました",
|
"polite past": "休[やす]みました",
|
||||||
"polite past negative": "休[やす]みませんでした",
|
"polite past negative": "休[やす]みませんでした",
|
||||||
"te-form": "休[やす]んで",
|
"te-form": "休[やす]んで",
|
||||||
"te-form negative": "休[やす]まなくて",
|
"te-form negative": ["休[やす]まなくて", "休[やす]まないで"],
|
||||||
"potential": "休[やす]める",
|
"potential": "休[やす]める",
|
||||||
"potential negative": "休[やす]めない",
|
"potential negative": "休[やす]めない",
|
||||||
"imperative": "休[やす]め",
|
"imperative": "休[やす]め",
|
||||||
@ -1420,7 +1420,7 @@ var words = {
|
|||||||
"polite past": "足[た]しました",
|
"polite past": "足[た]しました",
|
||||||
"polite past negative": "足[た]しませんでした",
|
"polite past negative": "足[た]しませんでした",
|
||||||
"te-form": "足[た]して",
|
"te-form": "足[た]して",
|
||||||
"te-form negative": "足[た]さなくて",
|
"te-form negative": ["足[た]さなくて", "足[た]さないで"],
|
||||||
"potential": "足[た]せる",
|
"potential": "足[た]せる",
|
||||||
"potential negative": "足[た]せない",
|
"potential negative": "足[た]せない",
|
||||||
"imperative": "足[た]せ",
|
"imperative": "足[た]せ",
|
||||||
@ -1457,7 +1457,7 @@ var words = {
|
|||||||
"polite past": "歌[うた]いました",
|
"polite past": "歌[うた]いました",
|
||||||
"polite past negative": "歌[うた]いませんでした",
|
"polite past negative": "歌[うた]いませんでした",
|
||||||
"te-form": "歌[うた]って",
|
"te-form": "歌[うた]って",
|
||||||
"te-form negative": "歌[うた]わなくて",
|
"te-form negative": ["歌[うた]わなくて", "歌[うた]わないで"],
|
||||||
"potential": "歌[うた]える",
|
"potential": "歌[うた]える",
|
||||||
"potential negative": "歌[うた]えない",
|
"potential negative": "歌[うた]えない",
|
||||||
"imperative": "歌[うた]え",
|
"imperative": "歌[うた]え",
|
||||||
|
Loading…
Reference in New Issue
Block a user