error handling for verbs erroring on render
This commit is contained in:
parent
b2f3dfe93c
commit
62fcbbe4ce
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "pashto-inflector",
|
"name": "pashto-inflector",
|
||||||
"version": "7.3.2",
|
"version": "7.3.3",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "pashto-inflector",
|
"name": "pashto-inflector",
|
||||||
"version": "7.3.2",
|
"version": "7.3.3",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "pashto-inflector",
|
"name": "pashto-inflector",
|
||||||
"version": "7.3.2",
|
"version": "7.3.3",
|
||||||
"author": "lingdocs.com",
|
"author": "lingdocs.com",
|
||||||
"description": "A Pashto inflection and verb conjugation engine, inculding React components for displaying Pashto text, inflections, and conjugations",
|
"description": "A Pashto inflection and verb conjugation engine, inculding React components for displaying Pashto text, inflections, and conjugations",
|
||||||
"homepage": "https://verbs.lingdocs.com",
|
"homepage": "https://verbs.lingdocs.com",
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "@lingdocs/ps-react",
|
"name": "@lingdocs/ps-react",
|
||||||
"version": "7.3.2",
|
"version": "7.3.3",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@lingdocs/ps-react",
|
"name": "@lingdocs/ps-react",
|
||||||
"version": "7.3.2",
|
"version": "7.3.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@formkit/auto-animate": "^1.0.0-beta.3",
|
"@formkit/auto-animate": "^1.0.0-beta.3",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@lingdocs/ps-react",
|
"name": "@lingdocs/ps-react",
|
||||||
"version": "7.3.2",
|
"version": "7.3.3",
|
||||||
"description": "Pashto inflector library module with React components",
|
"description": "Pashto inflector library module with React components",
|
||||||
"main": "dist/components/library.js",
|
"main": "dist/components/library.js",
|
||||||
"module": "dist/components/library.js",
|
"module": "dist/components/library.js",
|
||||||
|
|
|
@ -24,27 +24,32 @@ function ChartDisplay({
|
||||||
transitivity: T.Transitivity;
|
transitivity: T.Transitivity;
|
||||||
objectNP: T.NPSelection | undefined;
|
objectNP: T.NPSelection | undefined;
|
||||||
}) {
|
}) {
|
||||||
const verbChart = buildVerbChart({
|
try {
|
||||||
verb,
|
const verbChart = buildVerbChart({
|
||||||
tense,
|
verb,
|
||||||
voice,
|
tense,
|
||||||
negative,
|
voice,
|
||||||
transitivity,
|
negative,
|
||||||
imperative,
|
transitivity,
|
||||||
objectNP,
|
imperative,
|
||||||
});
|
objectNP,
|
||||||
return (
|
});
|
||||||
<div className="mb-4">
|
return (
|
||||||
<NewVerbFormDisplay
|
<div className="mb-4">
|
||||||
imperative={imperative}
|
<NewVerbFormDisplay
|
||||||
negative={negative}
|
imperative={imperative}
|
||||||
chart={verbChart}
|
negative={negative}
|
||||||
opts={opts}
|
chart={verbChart}
|
||||||
transitivity={transitivity}
|
opts={opts}
|
||||||
past={isPastTense(tense)}
|
transitivity={transitivity}
|
||||||
/>
|
past={isPastTense(tense)}
|
||||||
</div>
|
/>
|
||||||
);
|
</div>
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
return <h4>Error conjugating verb!</h4>;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default ChartDisplay;
|
export default ChartDisplay;
|
||||||
|
|
|
@ -1,72 +1,138 @@
|
||||||
import { compileVP } from "../../../lib/src/phrase-building/compile";
|
import { compileVP } from "../../../lib/src/phrase-building/compile";
|
||||||
import * as T from "../../../types";
|
import * as T from "../../../types";
|
||||||
import AbbreviationFormSelector from "./AbbreviationFormSelector";
|
import AbbreviationFormSelector from "./AbbreviationFormSelector";
|
||||||
import { getObjectSelection, getSubjectSelection } from "../../../lib/src/phrase-building/blocks-utils";
|
import {
|
||||||
|
getObjectSelection,
|
||||||
|
getSubjectSelection,
|
||||||
|
} from "../../../lib/src/phrase-building/blocks-utils";
|
||||||
import { completeVPSelection } from "../../../lib/src/phrase-building/vp-tools";
|
import { completeVPSelection } from "../../../lib/src/phrase-building/vp-tools";
|
||||||
import { renderVP } from "../../../lib/src/phrase-building/render-vp";
|
import { renderVP } from "../../../lib/src/phrase-building/render-vp";
|
||||||
import ModeSelect, { LengthSelect, Mode, ScriptSelect } from "../DisplayModeSelect";
|
import ModeSelect, {
|
||||||
|
LengthSelect,
|
||||||
|
Mode,
|
||||||
|
ScriptSelect,
|
||||||
|
} from "../DisplayModeSelect";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import CompiledPTextDisplay from "../CompiledPTextDisplay";
|
import CompiledPTextDisplay from "../CompiledPTextDisplay";
|
||||||
import RenderedBlocksDisplay from "../RenderedBlocksDisplay";
|
import RenderedBlocksDisplay from "../RenderedBlocksDisplay";
|
||||||
import useStickyState from "../useStickyState";
|
import useStickyState from "../useStickyState";
|
||||||
|
|
||||||
function VPDisplay({ VPS, opts, setForm, justify, onlyOne, length, mode: preferredMode, script: preferredScript, onLengthChange, inlineFormChoice }: {
|
function VPDisplay({
|
||||||
VPS: T.VPSelectionState,
|
VPS,
|
||||||
opts: T.TextOptions,
|
opts,
|
||||||
setForm: "disable" | ((form: T.FormVersion) => void),
|
setForm,
|
||||||
justify?: "left" | "right" | "center",
|
justify,
|
||||||
onlyOne?: boolean | "concat",
|
onlyOne,
|
||||||
length?: "long" | "short",
|
length,
|
||||||
mode?: Mode,
|
mode: preferredMode,
|
||||||
script?: "p" | "f",
|
script: preferredScript,
|
||||||
onLengthChange?: (length: "long" | "short") => void,
|
onLengthChange,
|
||||||
inlineFormChoice?: boolean,
|
inlineFormChoice,
|
||||||
|
}: {
|
||||||
|
VPS: T.VPSelectionState;
|
||||||
|
opts: T.TextOptions;
|
||||||
|
setForm: "disable" | ((form: T.FormVersion) => void);
|
||||||
|
justify?: "left" | "right" | "center";
|
||||||
|
onlyOne?: boolean | "concat";
|
||||||
|
length?: "long" | "short";
|
||||||
|
mode?: Mode;
|
||||||
|
script?: "p" | "f";
|
||||||
|
onLengthChange?: (length: "long" | "short") => void;
|
||||||
|
inlineFormChoice?: boolean;
|
||||||
}) {
|
}) {
|
||||||
const [mode, setMode] = useState<Mode>(preferredMode || "text");
|
const [mode, setMode] = useState<Mode>(preferredMode || "text");
|
||||||
const [script, setScript] = useStickyState<"p" | "f">(preferredScript || "f", "blockScriptChoice");
|
const [script, setScript] = useStickyState<"p" | "f">(
|
||||||
const VP = completeVPSelection(VPS);
|
preferredScript || "f",
|
||||||
if (!VP) {
|
"blockScriptChoice"
|
||||||
return <div className="lead text-muted text-center mt-4">
|
);
|
||||||
{(() => {
|
const VP = completeVPSelection(VPS);
|
||||||
const subject = getSubjectSelection(VPS.blocks).selection;
|
if (!VP) {
|
||||||
const object = getObjectSelection(VPS.blocks).selection;
|
return (
|
||||||
if (subject === undefined || object === undefined) {
|
<div className="lead text-muted text-center mt-4">
|
||||||
return `Choose NP${((subject === undefined) && (object === undefined)) ? "s " : ""} to make a phrase`;
|
{(() => {
|
||||||
}
|
const subject = getSubjectSelection(VPS.blocks).selection;
|
||||||
return `Choose/remove AP to complete the phrase`;
|
const object = getObjectSelection(VPS.blocks).selection;
|
||||||
})()}
|
if (subject === undefined || object === undefined) {
|
||||||
</div>;
|
return `Choose NP${
|
||||||
}
|
subject === undefined && object === undefined ? "s " : ""
|
||||||
|
} to make a phrase`;
|
||||||
|
}
|
||||||
|
return `Choose/remove AP to complete the phrase`;
|
||||||
|
})()}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
try {
|
||||||
const rendered = renderVP(VP);
|
const rendered = renderVP(VP);
|
||||||
const result = compileVP(rendered, rendered.form, true);
|
const result = compileVP(rendered, rendered.form, true);
|
||||||
return <div className={`text-${justify ? justify : "center"} mt-1`}>
|
return (
|
||||||
{typeof setForm === "function" && !inlineFormChoice && <AbbreviationFormSelector
|
<div className={`text-${justify ? justify : "center"} mt-1`}>
|
||||||
|
{typeof setForm === "function" && !inlineFormChoice && (
|
||||||
|
<AbbreviationFormSelector
|
||||||
adjustable={rendered.whatsAdjustable}
|
adjustable={rendered.whatsAdjustable}
|
||||||
form={rendered.form}
|
form={rendered.form}
|
||||||
onChange={setForm}
|
onChange={setForm}
|
||||||
/>}
|
/>
|
||||||
|
)}
|
||||||
<div className="d-flex flex-row mb-2">
|
<div className="d-flex flex-row mb-2">
|
||||||
<ModeSelect value={mode} onChange={setMode} />
|
<ModeSelect value={mode} onChange={setMode} />
|
||||||
{mode === "blocks" && <ScriptSelect value={script} onChange={setScript} />}
|
{mode === "blocks" && (
|
||||||
{mode === "text" && length && "long" in result.ps && onLengthChange && <LengthSelect value={length} onChange={onLengthChange} />}
|
<ScriptSelect value={script} onChange={setScript} />
|
||||||
{typeof setForm === "function" && inlineFormChoice && <AbbreviationFormSelector
|
)}
|
||||||
adjustable={rendered.whatsAdjustable}
|
{mode === "text" &&
|
||||||
form={rendered.form}
|
length &&
|
||||||
onChange={setForm}
|
"long" in result.ps &&
|
||||||
inline
|
onLengthChange && (
|
||||||
/>}
|
<LengthSelect value={length} onChange={onLengthChange} />
|
||||||
|
)}
|
||||||
|
{typeof setForm === "function" && inlineFormChoice && (
|
||||||
|
<AbbreviationFormSelector
|
||||||
|
adjustable={rendered.whatsAdjustable}
|
||||||
|
form={rendered.form}
|
||||||
|
onChange={setForm}
|
||||||
|
inline
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
{mode === "text"
|
{mode === "text" ? (
|
||||||
? <CompiledPTextDisplay opts={opts} compiled={result} justify={justify} onlyOne={!!onlyOne} length={length} />
|
<CompiledPTextDisplay
|
||||||
: <RenderedBlocksDisplay opts={opts} rendered={rendered} justify={justify} script={script} />}
|
opts={opts}
|
||||||
{result.e && <div className={`text-muted mt-2 text-${justify === "left" ? "left" : justify === "right" ? "right" : "center"}`}>
|
compiled={result}
|
||||||
|
justify={justify}
|
||||||
|
onlyOne={!!onlyOne}
|
||||||
|
length={length}
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<RenderedBlocksDisplay
|
||||||
|
opts={opts}
|
||||||
|
rendered={rendered}
|
||||||
|
justify={justify}
|
||||||
|
script={script}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
{result.e && (
|
||||||
|
<div
|
||||||
|
className={`text-muted mt-2 text-${
|
||||||
|
justify === "left"
|
||||||
|
? "left"
|
||||||
|
: justify === "right"
|
||||||
|
? "right"
|
||||||
|
: "center"
|
||||||
|
}`}
|
||||||
|
>
|
||||||
{onlyOne === "concat"
|
{onlyOne === "concat"
|
||||||
? result.e.join(" • ")
|
? result.e.join(" • ")
|
||||||
: onlyOne
|
: onlyOne
|
||||||
? [result.e[0]]
|
? [result.e[0]]
|
||||||
: result.e.map((e, i) => <div key={i}>{e}</div>)}
|
: result.e.map((e, i) => <div key={i}>{e}</div>)}
|
||||||
</div>}
|
</div>
|
||||||
</div>
|
)}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
return <h4>Error conjugating verb!</h4>;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default VPDisplay;
|
export default VPDisplay;
|
|
@ -144,186 +144,196 @@ function VPExplorerQuiz(props: {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const rendered = renderVP(quizState.vps);
|
try {
|
||||||
const subject: T.Rendered<T.NPSelection> = getSubjectSelectionFromBlocks(
|
const rendered = renderVP(quizState.vps);
|
||||||
rendered.blocks
|
const subject: T.Rendered<T.NPSelection> = getSubjectSelectionFromBlocks(
|
||||||
).selection;
|
rendered.blocks
|
||||||
const object = getObjectSelectionFromBlocks(rendered.blocks).selection;
|
).selection;
|
||||||
const { e } = compileVP(rendered, {
|
const object = getObjectSelectionFromBlocks(rendered.blocks).selection;
|
||||||
removeKing: false,
|
const { e } = compileVP(rendered, {
|
||||||
shrinkServant: false,
|
removeKing: false,
|
||||||
});
|
shrinkServant: false,
|
||||||
return (
|
});
|
||||||
<div className="mt-4">
|
return (
|
||||||
<ProgressBar quizState={quizState} />
|
<div className="mt-4">
|
||||||
<div className="d-flex flex-row justify-content-around flex-wrap">
|
<ProgressBar quizState={quizState} />
|
||||||
<div className="my-2">
|
<div className="d-flex flex-row justify-content-around flex-wrap">
|
||||||
<div className="h5 text-center">Subject</div>
|
|
||||||
<QuizNPDisplay opts={props.opts} stage={quizState.stage}>
|
|
||||||
{subject}
|
|
||||||
</QuizNPDisplay>
|
|
||||||
</div>
|
|
||||||
{object !== "none" && (
|
|
||||||
<div className="my-2">
|
<div className="my-2">
|
||||||
<div className="h5 text-center">Object</div>
|
<div className="h5 text-center">Subject</div>
|
||||||
<QuizNPDisplay opts={props.opts} stage={quizState.stage}>
|
<QuizNPDisplay opts={props.opts} stage={quizState.stage}>
|
||||||
{object}
|
{subject}
|
||||||
</QuizNPDisplay>
|
</QuizNPDisplay>
|
||||||
</div>
|
</div>
|
||||||
)}
|
{object !== "none" && (
|
||||||
<div className="my-2">
|
<div className="my-2">
|
||||||
<TensePicker
|
<div className="h5 text-center">Object</div>
|
||||||
vpsComplete={quizState.vps}
|
<QuizNPDisplay opts={props.opts} stage={quizState.stage}>
|
||||||
onChange={() => null}
|
{object}
|
||||||
mode={"quiz"}
|
</QuizNPDisplay>
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{e && (
|
|
||||||
<div className="text-center text-muted">
|
|
||||||
{e.map((eLine) => (
|
|
||||||
<div key={eLine}>{eLine}</div>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
<div className="text-center">
|
|
||||||
<div
|
|
||||||
style={
|
|
||||||
showCheck
|
|
||||||
? answerFeedback
|
|
||||||
: ({ ...answerFeedback, opacity: 0 } as any)
|
|
||||||
}
|
|
||||||
>
|
|
||||||
{currentCorrectEmoji}
|
|
||||||
</div>
|
|
||||||
{quizState.qNumber === stageLength ? (
|
|
||||||
<div className="mt-4" style={{ animation: "fade-in 0.5s" }}>
|
|
||||||
<h4>👏 Congratulations</h4>
|
|
||||||
<p className="lead">You finished the first two levels!</p>
|
|
||||||
<p>There may be other levels in the future...</p>
|
|
||||||
<button
|
|
||||||
type="button"
|
|
||||||
className="btn btn-primary"
|
|
||||||
onClick={handleRestart}
|
|
||||||
>
|
|
||||||
Restart
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
) : quizState.result === "waiting" ? (
|
|
||||||
quizState.stage === "multiple choice" ? (
|
|
||||||
<>
|
|
||||||
<div className="text-muted my-3">Choose a correct answer:</div>
|
|
||||||
{quizState.options.map((o) => (
|
|
||||||
<div
|
|
||||||
className="pb-3"
|
|
||||||
key={o.f}
|
|
||||||
style={{ animation: "fade-in 0.5s" }}
|
|
||||||
>
|
|
||||||
<button
|
|
||||||
className="btn btn-answer btn-outline-secondary"
|
|
||||||
onClick={() => checkAnswer(o)}
|
|
||||||
>
|
|
||||||
<InlinePs opts={props.opts}>{o}</InlinePs>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
))}
|
|
||||||
</>
|
|
||||||
) : (
|
|
||||||
<div>
|
|
||||||
<div className="text-muted my-3">
|
|
||||||
Type the <strong>verb in Pashto script</strong> to finish the
|
|
||||||
phrase:
|
|
||||||
</div>
|
|
||||||
<form
|
|
||||||
onSubmit={(e) => {
|
|
||||||
if (!answerBlank) {
|
|
||||||
alert("Enter the verb in Pashto script");
|
|
||||||
}
|
|
||||||
e.preventDefault();
|
|
||||||
checkAnswer({ text: answerBlank, withBa });
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="mb-3"
|
|
||||||
style={{ maxWidth: "250px", margin: "0 auto" }}
|
|
||||||
>
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
dir="auto"
|
|
||||||
className="form-control"
|
|
||||||
placeholder="type verb here"
|
|
||||||
value={answerBlank}
|
|
||||||
onChange={(e) => setAnswerBlank(e.target.value)}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="form-check mb-4" style={{ fontSize: "large" }}>
|
|
||||||
<input
|
|
||||||
className="form-check-input"
|
|
||||||
type="checkbox"
|
|
||||||
checked={withBa}
|
|
||||||
onChange={(e) => setWithBa(e.target.checked)}
|
|
||||||
id="addBa"
|
|
||||||
/>
|
|
||||||
<label
|
|
||||||
className="form-check-label text-muted"
|
|
||||||
htmlFor="addBa"
|
|
||||||
>
|
|
||||||
add <InlinePs opts={props.opts}>{baParticle}</InlinePs> in
|
|
||||||
kids' section
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<button type="submit" className="btn btn-primary">
|
|
||||||
Check
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
</div>
|
||||||
)
|
)}
|
||||||
) : (
|
<div className="my-2">
|
||||||
<div style={{ animation: "fade-in 0.5s" }}>
|
<TensePicker
|
||||||
<div className="h4 mt-4">❌ Wrong 😭</div>
|
vpsComplete={quizState.vps}
|
||||||
{quizState.stage === "multiple choice" ? (
|
onChange={() => null}
|
||||||
<div>
|
mode={"quiz"}
|
||||||
<div className="my-4 lead">The correct answer was:</div>
|
/>
|
||||||
<InlinePs opts={props.opts}>
|
</div>
|
||||||
{
|
</div>
|
||||||
quizState.options.find((x) =>
|
{e && (
|
||||||
isInAnswer(x, quizState.answer)
|
<div className="text-center text-muted">
|
||||||
) as T.PsString
|
{e.map((eLine) => (
|
||||||
}
|
<div key={eLine}>{eLine}</div>
|
||||||
</InlinePs>
|
))}
|
||||||
</div>
|
</div>
|
||||||
) : (
|
)}
|
||||||
<div>
|
<div className="text-center">
|
||||||
<div className="my-4 lead">Possible correct answers were:</div>
|
<div
|
||||||
{quizState.answer.ps.map((p, i) => (
|
style={
|
||||||
<div key={i}>
|
showCheck
|
||||||
<InlinePs opts={props.opts}>{p}</InlinePs>
|
? answerFeedback
|
||||||
|
: ({ ...answerFeedback, opacity: 0 } as any)
|
||||||
|
}
|
||||||
|
>
|
||||||
|
{currentCorrectEmoji}
|
||||||
|
</div>
|
||||||
|
{quizState.qNumber === stageLength ? (
|
||||||
|
<div className="mt-4" style={{ animation: "fade-in 0.5s" }}>
|
||||||
|
<h4>👏 Congratulations</h4>
|
||||||
|
<p className="lead">You finished the first two levels!</p>
|
||||||
|
<p>There may be other levels in the future...</p>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
className="btn btn-primary"
|
||||||
|
onClick={handleRestart}
|
||||||
|
>
|
||||||
|
Restart
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
) : quizState.result === "waiting" ? (
|
||||||
|
quizState.stage === "multiple choice" ? (
|
||||||
|
<>
|
||||||
|
<div className="text-muted my-3">Choose a correct answer:</div>
|
||||||
|
{quizState.options.map((o) => (
|
||||||
|
<div
|
||||||
|
className="pb-3"
|
||||||
|
key={o.f}
|
||||||
|
style={{ animation: "fade-in 0.5s" }}
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
className="btn btn-answer btn-outline-secondary"
|
||||||
|
onClick={() => checkAnswer(o)}
|
||||||
|
>
|
||||||
|
<InlinePs opts={props.opts}>{o}</InlinePs>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
<div className="mt-2">
|
</>
|
||||||
<strong>
|
) : (
|
||||||
{"withBa" in quizState.answer && quizState.answer.withBa
|
<div>
|
||||||
? "With"
|
<div className="text-muted my-3">
|
||||||
: "without"}
|
Type the <strong>verb in Pashto script</strong> to finish the
|
||||||
</strong>
|
phrase:
|
||||||
{` `}a <InlinePs opts={props.opts}>{baParticle}</InlinePs> in
|
|
||||||
the phrase
|
|
||||||
</div>
|
</div>
|
||||||
|
<form
|
||||||
|
onSubmit={(e) => {
|
||||||
|
if (!answerBlank) {
|
||||||
|
alert("Enter the verb in Pashto script");
|
||||||
|
}
|
||||||
|
e.preventDefault();
|
||||||
|
checkAnswer({ text: answerBlank, withBa });
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="mb-3"
|
||||||
|
style={{ maxWidth: "250px", margin: "0 auto" }}
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
dir="auto"
|
||||||
|
className="form-control"
|
||||||
|
placeholder="type verb here"
|
||||||
|
value={answerBlank}
|
||||||
|
onChange={(e) => setAnswerBlank(e.target.value)}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="form-check mb-4"
|
||||||
|
style={{ fontSize: "large" }}
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
className="form-check-input"
|
||||||
|
type="checkbox"
|
||||||
|
checked={withBa}
|
||||||
|
onChange={(e) => setWithBa(e.target.checked)}
|
||||||
|
id="addBa"
|
||||||
|
/>
|
||||||
|
<label
|
||||||
|
className="form-check-label text-muted"
|
||||||
|
htmlFor="addBa"
|
||||||
|
>
|
||||||
|
add <InlinePs opts={props.opts}>{baParticle}</InlinePs> in
|
||||||
|
kids' section
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<button type="submit" className="btn btn-primary">
|
||||||
|
Check
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)
|
||||||
<button
|
) : (
|
||||||
type="button"
|
<div style={{ animation: "fade-in 0.5s" }}>
|
||||||
className="btn btn-primary mt-4"
|
<div className="h4 mt-4">❌ Wrong 😭</div>
|
||||||
onClick={handleRestart}
|
{quizState.stage === "multiple choice" ? (
|
||||||
>
|
<div>
|
||||||
Try Again
|
<div className="my-4 lead">The correct answer was:</div>
|
||||||
</button>
|
<InlinePs opts={props.opts}>
|
||||||
</div>
|
{
|
||||||
)}
|
quizState.options.find((x) =>
|
||||||
<Keyframes name="fade-in" from={{ opacity: 0 }} to={{ opacity: 1 }} />
|
isInAnswer(x, quizState.answer)
|
||||||
|
) as T.PsString
|
||||||
|
}
|
||||||
|
</InlinePs>
|
||||||
|
</div>
|
||||||
|
) : (
|
||||||
|
<div>
|
||||||
|
<div className="my-4 lead">
|
||||||
|
Possible correct answers were:
|
||||||
|
</div>
|
||||||
|
{quizState.answer.ps.map((p, i) => (
|
||||||
|
<div key={i}>
|
||||||
|
<InlinePs opts={props.opts}>{p}</InlinePs>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
<div className="mt-2">
|
||||||
|
<strong>
|
||||||
|
{"withBa" in quizState.answer && quizState.answer.withBa
|
||||||
|
? "With"
|
||||||
|
: "without"}
|
||||||
|
</strong>
|
||||||
|
{` `}a <InlinePs opts={props.opts}>{baParticle}</InlinePs>{" "}
|
||||||
|
in the phrase
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
className="btn btn-primary mt-4"
|
||||||
|
onClick={handleRestart}
|
||||||
|
>
|
||||||
|
Try Again
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
<Keyframes name="fade-in" from={{ opacity: 0 }} to={{ opacity: 1 }} />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
);
|
||||||
);
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
return <h4>Error conjugating verb!</h4>;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function blanksAnswerCorrect(
|
function blanksAnswerCorrect(
|
||||||
|
|
|
@ -72,7 +72,16 @@ function VPPicker({
|
||||||
const subject = getSubjectSelection(vps.blocks).selection;
|
const subject = getSubjectSelection(vps.blocks).selection;
|
||||||
const VPS = completeVPSelection(vps);
|
const VPS = completeVPSelection(vps);
|
||||||
const phraseIsComplete = !!VPS;
|
const phraseIsComplete = !!VPS;
|
||||||
const rendered = VPS ? renderVP(VPS) : undefined;
|
const rendered = VPS
|
||||||
|
? (() => {
|
||||||
|
try {
|
||||||
|
return renderVP(VPS);
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
})()
|
||||||
|
: undefined;
|
||||||
const servantIsShrunk = includesShrunkenServant(rendered?.kids);
|
const servantIsShrunk = includesShrunkenServant(rendered?.kids);
|
||||||
const isPast = isPastTense(
|
const isPast = isPastTense(
|
||||||
vps.verb.tenseCategory === "perfect"
|
vps.verb.tenseCategory === "perfect"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@lingdocs/inflect",
|
"name": "@lingdocs/inflect",
|
||||||
"version": "7.3.2",
|
"version": "7.3.3",
|
||||||
"description": "Pashto inflector library",
|
"description": "Pashto inflector library",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"types": "dist/lib/library.d.ts",
|
"types": "dist/lib/library.d.ts",
|
||||||
|
|
|
@ -1,103 +1,115 @@
|
||||||
module.exports = [
|
module.exports = [
|
||||||
{ ts: 1527812828, e: "house" }, // kor
|
{ ts: 1527812828, e: "house" }, // kor
|
||||||
{ ts: 1527812432, e: `sky, heaven` }, // آسمان - aasmaan
|
{ ts: 1527812432, e: `sky, heaven` }, // آسمان - aasmaan
|
||||||
{ ts: 1527812431, e: `mango` }, // آم - aam
|
{ ts: 1527812431, e: `mango` }, // آم - aam
|
||||||
{ ts: 1527812434, e: `sound, voice` }, // آواز - aawaaz
|
{ ts: 1527812434, e: `sound, voice` }, // آواز - aawaaz
|
||||||
{ ts: 1527816724, e: `room, chamber` }, // اتاق - Utaaq
|
{ ts: 1527816724, e: `room, chamber` }, // اتاق - Utaaq
|
||||||
{ ts: 1527811859, e: `union, alliance` }, // اتحاد - itihaad
|
{ ts: 1527811859, e: `union, alliance` }, // اتحاد - itihaad
|
||||||
{ ts: 1527822033, e: `joining, connection, contiguity, junction` }, // اتصال - ittisáal
|
{ ts: 1527822033, e: `joining, connection, contiguity, junction` }, // اتصال - ittisáal
|
||||||
{ ts: 1527811858, e: `unity, alliance, agreement, understanding, consent; coincidence` }, // اتفاق - itifaaq
|
{
|
||||||
{ ts: 1527813560, e: `accusation, charge, indictment` }, // اتهام - itihaam
|
ts: 1527811858,
|
||||||
{ ts: 1527812105, e: `respect, honor, esteem, deference` }, // احترام - ihtiraam
|
e: `unity, alliance, agreement, understanding, consent; coincidence`,
|
||||||
{ ts: 1527819653, e: `possibility, probability, likelihood` }, // احتمال - ihtimaal
|
}, // اتفاق - itifaaq
|
||||||
{ ts: 1527812689, e: `need, requirement` }, // احتیاج - ihtiyaaj
|
{ ts: 1527813560, e: `accusation, charge, indictment` }, // اتهام - itihaam
|
||||||
{ ts: 1527812690, e: `caution` }, // احتیاط - ihtiyaat
|
{ ts: 1527812105, e: `respect, honor, esteem, deference` }, // احترام - ihtiraam
|
||||||
{ ts: 1527813782, e: `feeling, sensation, emotion` }, // احساس - ahsaas
|
{ ts: 1527819653, e: `possibility, probability, likelihood` }, // احتمال - ihtimaal
|
||||||
{ ts: 1527817303, e: `objection, protest` }, // اعتراض - itiraaz
|
{ ts: 1527812689, e: `need, requirement` }, // احتیاج - ihtiyaaj
|
||||||
{ ts: 1527813418, e: `influence, effect, affect, action` }, // اغېز - aghez
|
{ ts: 1527812690, e: `caution` }, // احتیاط - ihtiyaat
|
||||||
{ ts: 1527816625, e: `disaster` }, // افت - afat
|
{ ts: 1527813782, e: `feeling, sensation, emotion` }, // احساس - ahsaas
|
||||||
{ ts: 1527813558, e: `accusation, charge, blame` }, // الزام - ilzaam
|
{ ts: 1527817303, e: `objection, protest` }, // اعتراض - itiraaz
|
||||||
{ ts: 1527815388, e: `hope, expectation` }, // امید - Umeed
|
{ ts: 1527813418, e: `influence, effect, affect, action` }, // اغېز - aghez
|
||||||
{ ts: 1527812453, e: `picture, painting, image` }, // انځور - andzoor
|
{ ts: 1527816625, e: `disaster` }, // افت - afat
|
||||||
{ ts: 1527813827, e: `fire, flame` }, // اور - or
|
{ ts: 1527813558, e: `accusation, charge, blame` }, // الزام - ilzaam
|
||||||
{ ts: 1527814787, e: `rain` }, // باران - baaraan
|
{ ts: 1527815388, e: `hope, expectation` }, // امید - Umeed
|
||||||
{ ts: 1527817293, e: `roof` }, // بام - baam
|
{ ts: 1527812453, e: `picture, painting, image` }, // انځور - andzoor
|
||||||
{ ts: 1527814849, e: `eggplant` }, // بانجن - baanjan
|
{ ts: 1527813827, e: `fire, flame` }, // اور - or
|
||||||
{ ts: 1527814106, e: `crisis` }, // بحران - bUhraan
|
{ ts: 1527814787, e: `rain` }, // باران - baaraan
|
||||||
{ ts: 1527814885, e: `fortune, luck, fate` }, // بخت - bakht
|
{ ts: 1527817293, e: `roof` }, // بام - baam
|
||||||
{ ts: 1527811281, e: `garden` }, // بڼ - baN
|
{ ts: 1527814849, e: `eggplant` }, // بانجن - baanjan
|
||||||
{ ts: 1624039195280, e: `scholarship` }, // بورس - boors
|
{ ts: 1527814106, e: `crisis` }, // بحران - bUhraan
|
||||||
{ ts: 1527816877, e: `flag` }, // بیرغ - beyragh
|
{ ts: 1527814885, e: `fortune, luck, fate` }, // بخت - bakht
|
||||||
{ ts: 1527820423, e: `passport` }, // پاسپورټ - paasporT
|
{ ts: 1527811281, e: `garden` }, // بڼ - baN
|
||||||
{ ts: 1527813224, e: `bridge` }, // پل - pUl
|
{ ts: 1624039195280, e: `scholarship` }, // بورس - boors
|
||||||
{ ts: 1527813480, e: `plan` }, // پلان - plaan
|
{ ts: 1527816877, e: `flag` }, // بیرغ - beyragh
|
||||||
{ ts: 1527815199, e: `central-asian/middle-eastern rice dish, pilaf` }, // پلاو - pulaaw
|
{ ts: 1527820423, e: `passport` }, // پاسپورټ - paasporT
|
||||||
{ ts: 1527815185, e: `loan, debt` }, // پور - por
|
{ ts: 1527813224, e: `bridge` }, // پل - pUl
|
||||||
{ ts: 1527815176, e: `onion` }, // پیاز - piyaaz
|
{ ts: 1527813480, e: `plan` }, // پلان - plaan
|
||||||
{ ts: 1527815171, e: `start` }, // پیل - peyl
|
{ ts: 1527815199, e: `central-asian/middle-eastern rice dish, pilaf` }, // پلاو - pulaaw
|
||||||
{ ts: 1527816610, e: `crown, crest` }, // تاج - taaj
|
{ ts: 1527815185, e: `loan, debt` }, // پور - por
|
||||||
{ ts: 1527822373, e: `vine; mouthful` }, // تاک - taak
|
{ ts: 1527815176, e: `onion` }, // پیاز - piyaaz
|
||||||
{ ts: 1527815326, e: `confirmation` }, // تایید - taayeed
|
{ ts: 1527815171, e: `start` }, // پیل - peyl
|
||||||
{ ts: 1527815357, e: `seed` }, // تخم - tUkhum
|
{ ts: 1527816610, e: `crown, crest` }, // تاج - taaj
|
||||||
{ ts: 1527821586, e: `pity, sympathy` }, // ترحم - tarahhÚm
|
{ ts: 1527822373, e: `vine; mouthful` }, // تاک - taak
|
||||||
{ ts: 1527811389, e: `picture` }, // تصویر - tasweer
|
{ ts: 1527815326, e: `confirmation` }, // تایید - taayeed
|
||||||
{ ts: 1527814679, e: `guarantee, insurance, security` }, // تضمین - tazmeen
|
{ ts: 1527815357, e: `seed` }, // تخم - tUkhum
|
||||||
{ ts: 1527814258, e: `speech, lecture` }, // تقریر - taqreer
|
{ ts: 1527821586, e: `pity, sympathy` }, // ترحم - tarahhÚm
|
||||||
{ ts: 1527821670, e: `cheating, deception, fraud, forgery` }, // تقلب - taqalÚb
|
{ ts: 1527811389, e: `picture` }, // تصویر - tasweer
|
||||||
{ ts: 1527811602, e: `attempt, aspiration, intention, effort` }, // تکل - takál
|
{ ts: 1527814679, e: `guarantee, insurance, security` }, // تضمین - tazmeen
|
||||||
{ ts: 1527813398, e: `movement, motion, going` }, // تګ - tug, tag
|
{ ts: 1702629785933, e: `speech, lecture` }, // تقریر - taqreer
|
||||||
{ ts: 1527822126, e: `anniversary` }, // تلین - tleen
|
{ ts: 1527821670, e: `cheating, deception, fraud, forgery` }, // تقلب - taqalÚb
|
||||||
{ ts: 1527811308, e: `contact, touch` }, // تماس - tamaas
|
{ ts: 1527811602, e: `attempt, aspiration, intention, effort` }, // تکل - takál
|
||||||
{ ts: 1527817900, e: `body, flesh` }, // تن - tan
|
{ ts: 1527813398, e: `movement, motion, going` }, // تګ - tug, tag
|
||||||
{ ts: 1527821061, e: `contrast, opposition, contradiction` }, // تناقض - tanaaqÚz
|
{ ts: 1527822126, e: `anniversary` }, // تلین - tleen
|
||||||
{ ts: 1527822387, e: `rope, cord; a measurement of ground or distances` }, // تناو - tanáaw
|
{ ts: 1527811308, e: `contact, touch` }, // تماس - tamaas
|
||||||
{ ts: 1527818995, e: `lightning` }, // تندر - tandúr
|
{ ts: 1527817900, e: `body, flesh` }, // تن - tan
|
||||||
{ ts: 1527815362, e: `ball; (cannon) ball` }, // توپ - top
|
{ ts: 1527821061, e: `contrast, opposition, contradiction` }, // تناقض - tanaaqÚz
|
||||||
{ ts: 1527816820, e: `spit` }, // توک - took
|
{ ts: 1527822387, e: `rope, cord; a measurement of ground or distances` }, // تناو - tanáaw
|
||||||
{ ts: 1527816520, e: `family, clan, tribe, people` }, // ټبر - Tabar
|
{ ts: 1527818995, e: `lightning` }, // تندر - tandúr
|
||||||
{ ts: 1527811348, e: `wound` }, // ټپ - Tap
|
{ ts: 1527815362, e: `ball; (cannon) ball` }, // توپ - top
|
||||||
{ ts: 1527819566, e: `piece, part; cloth, fabric` }, // ټکر - TUkúr
|
{ ts: 1527816820, e: `spit` }, // توک - took
|
||||||
{ ts: 1527812213, e: `mosque` }, // جمات - jUmaat
|
{ ts: 1527816520, e: `family, clan, tribe, people` }, // ټبر - Tabar
|
||||||
{ ts: 1527811705, e: `structure` }, // جوړښت - joRuxt
|
{ ts: 1527811348, e: `wound` }, // ټپ - Tap
|
||||||
{ ts: 1527814058, e: `answer, reply` }, // ځواب - dzawaab
|
{ ts: 1527819566, e: `piece, part; cloth, fabric` }, // ټکر - TUkúr
|
||||||
{ ts: 1527816887, e: `life, existence, energy, force` }, // ځواک - dzwaak
|
{ ts: 1527812213, e: `mosque` }, // جمات - jUmaat
|
||||||
{ ts: 1527814649, e: `market square, crossroads, paved area in front of entrance` }, // چوک - chok
|
{ ts: 1527811705, e: `structure` }, // جوړښت - joRuxt
|
||||||
{ ts: 1527815065, e: `hammer` }, // څټک - tsaTak, tsTuk
|
{ ts: 1527814058, e: `answer, reply` }, // ځواب - dzawaab
|
||||||
{ ts: 1527814589, e: `side` }, // څنګ - tsang
|
{ ts: 1527816887, e: `life, existence, energy, force` }, // ځواک - dzwaak
|
||||||
{ ts: 1527816228, e: `boundary, limit, extent` }, // حد - had
|
{
|
||||||
{ ts: 1527813749, e: `government, reign, rule` }, // حکومت - hUkoomat
|
ts: 1527814649,
|
||||||
{ ts: 1527814125, e: `solution` }, // حل - hal
|
e: `market square, crossroads, paved area in front of entrance`,
|
||||||
{ ts: 1527818703, e: `shirt` }, // خت - khut
|
}, // چوک - chok
|
||||||
{ ts: 1527813804, e: `sleep, dream` }, // خوب - khob
|
{ ts: 1527815065, e: `hammer` }, // څټک - tsaTak, tsTuk
|
||||||
{ ts: 1527812815, e: `safety, security` }, // خوندیتوب - khwundeetob
|
{ ts: 1527814589, e: `side` }, // څنګ - tsang
|
||||||
{ ts: 1527813763, e: `religion, faith` }, // دین - deen
|
{ ts: 1527816228, e: `boundary, limit, extent` }, // حد - had
|
||||||
{ ts: 1527811517, e: `journey, travel` }, // سفر - safar
|
{ ts: 1527813749, e: `government, reign, rule` }, // حکومت - hUkoomat
|
||||||
{ ts: 1527815389, e: `age, life` }, // عمر - Úmur
|
{ ts: 1527814125, e: `solution` }, // حل - hal
|
||||||
{ ts: 1527816746, e: `tooth` }, // غاښ - ghaax
|
{ ts: 1527818703, e: `shirt` }, // خت - khut
|
||||||
{ ts: 1527812631, e: `ear` }, // غوږ - ghwuG, ghwaG
|
{ ts: 1527813804, e: `sleep, dream` }, // خوب - khob
|
||||||
{ ts: 1527812265, e: `decree, order` }, // فرمان - farmaan
|
{ ts: 1527812815, e: `safety, security` }, // خوندیتوب - khwundeetob
|
||||||
{ ts: 1527817205, e: `film, movie` }, // فلم - film
|
{ ts: 1527813763, e: `religion, faith` }, // دین - deen
|
||||||
{ ts: 1527812727, e: `year` }, // کال - kaal
|
{ ts: 1527811517, e: `journey, travel` }, // سفر - safar
|
||||||
{ ts: 1527812817, e: `book` }, // کتاب - kitaab
|
{ ts: 1527815389, e: `age, life` }, // عمر - Úmur
|
||||||
{ ts: 1527812611, e: `step, move` }, // ګام - gaam
|
{ ts: 1527816746, e: `tooth` }, // غاښ - ghaax
|
||||||
{ ts: 1527812641, e: `rose, flower` }, // ګل - gUl
|
{ ts: 1527812631, e: `ear` }, // غوږ - ghwuG, ghwaG
|
||||||
{ ts: 1527812650, e: `threat, danger, challeng` }, // ګواښ - gwaax
|
{ ts: 1527812265, e: `decree, order` }, // فرمان - farmaan
|
||||||
{ ts: 1527813521, e: `mourning, grief, grieving, deep sorrow` }, // ماتم - maatam
|
{ ts: 1527817205, e: `film, movie` }, // فلم - film
|
||||||
{ ts: 1527812176, e: `evening` }, // ماښام - maaxaam
|
{ ts: 1527812727, e: `year` }, // کال - kaal
|
||||||
{ ts: 1527813601, e: `death` }, // مرګ - marg
|
{ ts: 1527812817, e: `book` }, // کتاب - kitaab
|
||||||
{ ts: 1527817691, e: `future` }, // مستقبل - mUstaqbil
|
{ ts: 1527812611, e: `step, move` }, // ګام - gaam
|
||||||
{ ts: 1527811866, e: `damage, defect, loss` }, // نقصان - nUqsaan
|
{ ts: 1527812641, e: `rose, flower` }, // ګل - gUl
|
||||||
{ ts: 1527815122, e: `name` }, // نوم - noom
|
{ ts: 1527812650, e: `threat, danger, challeng` }, // ګواښ - gwaax
|
||||||
{ ts: 1527812661, e: `boy, young lad` }, // هلک - halík, halúk
|
{ ts: 1527813521, e: `mourning, grief, grieving, deep sorrow` }, // ماتم - maatam
|
||||||
{ ts: 1566476070874, e: `street, road` }, // واټ - waaT
|
{ ts: 1527812176, e: `evening` }, // ماښام - maaxaam
|
||||||
{ ts: 1527816036, e: `authority, power` }, // واک - waak
|
{ ts: 1527813601, e: `death` }, // مرګ - marg
|
||||||
{ ts: 1527815400, e: `time` }, // وخت - wakht
|
{ ts: 1527817691, e: `future` }, // مستقبل - mUstaqbil
|
||||||
{ ts: 1527818582, e: `building, prosperity, habitable state` }, // ودانښت - wadaanuxt
|
{ ts: 1527811866, e: `damage, defect, loss` }, // نقصان - nUqsaan
|
||||||
{ ts: 1527811441, e: `door, gate, entrance` }, // ور - war
|
{ ts: 1527815122, e: `name` }, // نوم - noom
|
||||||
{ ts: 1527815406, e: `homeland, home country` }, // وطن - watán
|
{ ts: 1527812661, e: `boy, young lad` }, // هلک - halík, halúk
|
||||||
{ ts: 1573149648251, e: `fellow country-man` }, // وطن وال - watanwaal
|
{ ts: 1566476070874, e: `street, road` }, // واټ - waaT
|
||||||
{ ts: 1586428847646, e: `national (person), a citizen or person of that land` }, // وطنوال - watanwáal
|
{ ts: 1527816036, e: `authority, power` }, // واک - waak
|
||||||
{ ts: 1527822208, e: `bat, coward, pipsqueak, hesitant person` }, // وطواط - watwáat
|
{ ts: 1527815400, e: `time` }, // وخت - wakht
|
||||||
{ ts: 1527819571, e: `apprehension, anxiety, suspicion; imagination, whims, some problem made up in someone’s head` }, // وهم - wáhum, wahm
|
{ ts: 1527818582, e: `building, prosperity, habitable state` }, // ودانښت - wadaanuxt
|
||||||
{ ts: 1527816332, e: `pride, glory` }, // ویاړ - wyaaR
|
{ ts: 1527811441, e: `door, gate, entrance` }, // ور - war
|
||||||
|
{ ts: 1527815406, e: `homeland, home country` }, // وطن - watán
|
||||||
|
{ ts: 1573149648251, e: `fellow country-man` }, // وطن وال - watanwaal
|
||||||
|
{
|
||||||
|
ts: 1586428847646,
|
||||||
|
e: `national (person), a citizen or person of that land`,
|
||||||
|
}, // وطنوال - watanwáal
|
||||||
|
{ ts: 1527822208, e: `bat, coward, pipsqueak, hesitant person` }, // وطواط - watwáat
|
||||||
|
{
|
||||||
|
ts: 1527819571,
|
||||||
|
e: `apprehension, anxiety, suspicion; imagination, whims, some problem made up in someone’s head`,
|
||||||
|
}, // وهم - wáhum, wahm
|
||||||
|
{ ts: 1527816332, e: `pride, glory` }, // ویاړ - wyaaR
|
||||||
];
|
];
|
|
@ -7,134 +7,134 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
module.exports = [
|
module.exports = [
|
||||||
1658537932357, // لېونی کېدل
|
1658537932357, // لېونی کېدل
|
||||||
1588760879818, // احساسېدل - to feel, be sensed
|
1588760879818, // احساسېدل - to feel, be sensed
|
||||||
1577223176187, // ادا کېدل - to be set forth, given, rendered (service), performed, fulfilled, expressed, said, done
|
1577223176187, // ادا کېدل - to be set forth, given, rendered (service), performed, fulfilled, expressed, said, done
|
||||||
1527814793, // اړېدل - to need, to be forced, to have to, to experience a need
|
1527814793, // اړېدل - to need, to be forced, to have to, to experience a need
|
||||||
1527820761, // استعمالېدل - to be used, utilized, applied
|
1527820761, // استعمالېدل - to be used, utilized, applied
|
||||||
1527818887, // اموخته کېدل - to get used to, to get accustomed to, adjusted to, to become tame
|
1527818887, // اموخته کېدل - to get used to, to get accustomed to, adjusted to, to become tame
|
||||||
1527821797, // انتقال کېدل - to be transfered, to move; to die, to pass away
|
1527821797, // انتقال کېدل - to be transfered, to move; to die, to pass away
|
||||||
1527822931, // اوده کېدل - to sleep, to be asleep
|
1527822931, // اوده کېدل - to sleep, to be asleep
|
||||||
1588853804403, // اوږدېدل - to get long, to drag out, to get longer
|
1588853804403, // اوږدېدل - to get long, to drag out, to get longer
|
||||||
1527813033, // ایسارېدل - to wait, wait (for), to be delayed, detained, stopped
|
1527813033, // ایسارېدل - to wait, wait (for), to be delayed, detained, stopped
|
||||||
1527812404, // بچ کېدل - to be saved, spared; run off, escape, nip off
|
1527812404, // بچ کېدل - to be saved, spared; run off, escape, nip off
|
||||||
1527814231, // بدلېدل - to be changed, replaced, exchanged, to undergo a change
|
1527814231, // بدلېدل - to be changed, replaced, exchanged, to undergo a change
|
||||||
1527815729, // بلدېدل - to become familiar, acquainted, used to
|
1527815729, // بلدېدل - to become familiar, acquainted, used to
|
||||||
1527813842, // بلېدل - to burn, catch fire
|
1527813842, // بلېدل - to burn, catch fire
|
||||||
1527815032, // بندي کېدل - to become a prisoner, to get imprisoned
|
1527815032, // بندي کېدل - to become a prisoner, to get imprisoned
|
||||||
1588781671306, // بندېدل - to be closed, blocked, stopped
|
1588781671306, // بندېدل - to be closed, blocked, stopped
|
||||||
1527817582, // بېزارېدل - to be fed up with, tired of, repulsed by, dissatisfied with, done with, disgusted by
|
1527817582, // بېزارېدل - to be fed up with, tired of, repulsed by, dissatisfied with, done with, disgusted by
|
||||||
1527815844, // بېلېدل - to be separated
|
1527815844, // بېلېدل - to be separated
|
||||||
1588073731662, // پاکېدل - to be cleaned, become clean, to be cleansed, purified
|
1588073731662, // پاکېدل - to be cleaned, become clean, to be cleansed, purified
|
||||||
1527813895, // پټېدل - to hide, to be hidden
|
1715816590539, // پټېدل - to hide, to be hidden
|
||||||
1527812011, // پخلا کېدل - to be reconciled, brought to an agreement
|
1527812011, // پخلا کېدل - to be reconciled, brought to an agreement
|
||||||
1581906176268, // پخېدل - to be cooked, prepared, ripened, matured
|
1581906176268, // پخېدل - to be cooked, prepared, ripened, matured
|
||||||
1584689265872, // پستېدل - to become soft, tender, gentle, loosened
|
1584689265872, // پستېدل - to become soft, tender, gentle, loosened
|
||||||
1583269419054, // پورته کېدل - to be raised up, lifted up, brought up
|
1583269419054, // پورته کېدل - to be raised up, lifted up, brought up
|
||||||
1527814169, // پورې کېدل - to cross, traverse, go to the other side
|
1527814169, // پورې کېدل - to cross, traverse, go to the other side
|
||||||
1577394057681, // پوهېدل - to understand (to come to a state of understanding)
|
1577394057681, // پوهېدل - to understand (to come to a state of understanding)
|
||||||
1527815170, // پیدا کېدل - to be found, born
|
1527815170, // پیدا کېدل - to be found, born
|
||||||
1581189978440, // پېش کېدل - to be brought forward, presented, delivered
|
1581189978440, // پېش کېدل - to be brought forward, presented, delivered
|
||||||
1527815167, // پېښېدل - to happen, occur, come up
|
1527815167, // پېښېدل - to happen, occur, come up
|
||||||
1591872442272, // پیلېدل - to be started, begin
|
1591872442272, // پیلېدل - to be started, begin
|
||||||
1527815324, // تاوېدل - to turn, rotate (passive), to be wrapped, twisted
|
1527815324, // تاوېدل - to turn, rotate (passive), to be wrapped, twisted
|
||||||
1577398809240, // تباه کېدل - to be destroyed, ruined
|
1577398809240, // تباه کېدل - to be destroyed, ruined
|
||||||
1582391432928, // تبدیلېدل - to change, to undergo change, to be transformed
|
1582391432928, // تبدیلېدل - to change, to undergo change, to be transformed
|
||||||
1580755448566, // ترکېدل - to be abondoned, left, refused
|
1580755448566, // ترکېدل - to be abondoned, left, refused
|
||||||
1527821367, // تسلیمېدل - to surrender, capitulate; to be handed over, delivered, passed on
|
1527821367, // تسلیمېدل - to surrender, capitulate; to be handed over, delivered, passed on
|
||||||
1527814905, // تشېدل - to be emptied
|
1527814905, // تشېدل - to be emptied
|
||||||
1527821358, // تصدیق کېدل - to be confirmed, affirmed, attested
|
1527821358, // تصدیق کېدل - to be confirmed, affirmed, attested
|
||||||
1527823430, // تقسیمېدل - to be divided, partitioned, distributed
|
1527823430, // تقسیمېدل - to be divided, partitioned, distributed
|
||||||
1577501138221, // تکرار کېدل - to be repeated
|
1577501138221, // تکرار کېدل - to be repeated
|
||||||
1527814919, // تولیدېدل - to be produced, manufactured; to spring up, to be created, birthed
|
1527814919, // تولیدېدل - to be produced, manufactured; to spring up, to be created, birthed
|
||||||
1579644515886, // تویېدل - to be poured, shed, spilled, scattered, knocked down (fruit)
|
1579644515886, // تویېدل - to be poured, shed, spilled, scattered, knocked down (fruit)
|
||||||
1577571228633, // تیارېدل - to become ready, to become prepared, to get ready
|
1577571228633, // تیارېدل - to become ready, to become prepared, to get ready
|
||||||
1577571096956, // ټولېدل - to be gathered, collected
|
1577571096956, // ټولېدل - to be gathered, collected
|
||||||
1577571391494, // ټیټېدل - to bow, stoop, go down
|
1577571391494, // ټیټېدل - to bow, stoop, go down
|
||||||
1589019870271, // ټیک کېدل - to be corrected, made right
|
1589019870271, // ټیک کېدل - to be corrected, made right
|
||||||
1585310006948, // ثابتېدل - to be proven, established, made firm
|
1585310006948, // ثابتېدل - to be proven, established, made firm
|
||||||
1527816202, // ثبتېدل - to be entered, saved, recorded, registered
|
1527816202, // ثبتېدل - to be entered, saved, recorded, registered
|
||||||
1527821166, // جارېدل - to be sacrificed, to be offered/at someone’s service
|
1527821166, // جارېدل - to be sacrificed, to be offered/at someone’s service
|
||||||
1527816943, // جوتېدل - to become evident, clear, apparent, explained, established
|
1527816943, // جوتېدل - to become evident, clear, apparent, explained, established
|
||||||
1527812713, // جوړېدل - to be made, formed, build, mended, become
|
1527812713, // جوړېدل - to be made, formed, build, mended, become
|
||||||
1577905544406, // ځایېدل - to fit, to fit into a space, to be accomodated
|
1577905544406, // ځایېدل - to fit, to fit into a space, to be accomodated
|
||||||
1527812522, // چاپ کېدل - to be published, printed
|
1527812522, // چاپ کېدل - to be published, printed
|
||||||
1527811694, // چاغېدل - to put on weight, to get fat
|
1527811694, // چاغېدل - to put on weight, to get fat
|
||||||
1588783381414, // حاضرېدل - to show up, be present, appear; to be prepared, to get ready
|
1588783381414, // حاضرېدل - to show up, be present, appear; to be prepared, to get ready
|
||||||
1527814126, // حلېدل - to be solved, resolved
|
1527814126, // حلېدل - to be solved, resolved
|
||||||
1588426001132, // حیرانېدل - to be amazed, astonished, shocked, surprized
|
1588426001132, // حیرانېدل - to be amazed, astonished, shocked, surprized
|
||||||
1527819313, // خارجېدل - to be exiled, dismissed, fired, extracted, processed
|
1527819313, // خارجېدل - to be exiled, dismissed, fired, extracted, processed
|
||||||
1527816079, // خبرېدل - to be informed, to come to know
|
1527816079, // خبرېدل - to be informed, to come to know
|
||||||
1527811394, // خپرېدل - to be spread, dispersed, opened, unfolded, publicized, distributed
|
1527811394, // خپرېدل - to be spread, dispersed, opened, unfolded, publicized, distributed
|
||||||
1577900112011, // ختمېدل - to be finished, completed, ended, used up, killed, destroyed
|
1577900112011, // ختمېدل - to be finished, completed, ended, used up, killed, destroyed
|
||||||
1527814184, // خرڅېدل - to be sold, to be spent
|
1527814184, // خرڅېدل - to be sold, to be spent
|
||||||
1577898920635, // خفه کېدل - to be sad, grieved, annoyed, upset; to be choked, to suffocate
|
1577898920635, // خفه کېدل - to be sad, grieved, annoyed, upset; to be choked, to suffocate
|
||||||
1527818360, // خلاصېدل - to be freed, saved, rescued, opened
|
1527818360, // خلاصېدل - to be freed, saved, rescued, opened
|
||||||
1527814173, // خوږېدل - to hurt, to have pain
|
1527814173, // خوږېدل - to hurt, to have pain
|
||||||
1527817114, // خوشتېدل - to become damp, wet, moist
|
1527817114, // خوشتېدل - to become damp, wet, moist
|
||||||
1527812812, // خوښېدل - to be pleasing, happy, to be liked; to be chosen, selected
|
1527812812, // خوښېدل - to be pleasing, happy, to be liked; to be chosen, selected
|
||||||
1527816735, // داخلېدل - to enter, go in; to be included; to be enrolled
|
1527816735, // داخلېدل - to enter, go in; to be included; to be enrolled
|
||||||
1527815784, // درنېدل - to become heavier; to become more serious, respectable, reliable
|
1527815784, // درنېدل - to become heavier; to become more serious, respectable, reliable
|
||||||
1577059043220, // دفن کېدل - to be buried
|
1577059043220, // دفن کېدل - to be buried
|
||||||
1527817671, // ډکېدل - to fill up
|
1527817671, // ډکېدل - to fill up
|
||||||
1527817257, // ډوبېدل - to drown, sink, dissapear, be submerged
|
1527817257, // ډوبېدل - to drown, sink, dissapear, be submerged
|
||||||
1527816895, // ډېرېدل - to increase, to become more, to be increased, to rise
|
1527816895, // ډېرېدل - to increase, to become more, to be increased, to rise
|
||||||
1527818346, // راپورته کېدل - to be raised up, to rise
|
1527818346, // راپورته کېدل - to be raised up, to rise
|
||||||
1527815734, // راټولېدل - to be brought together, gathered, collected, assembled
|
1527815734, // راټولېدل - to be brought together, gathered, collected, assembled
|
||||||
1585474304911, // رغېدل - to become healthy, to heal, to get better, to recover, to be cured; to be built up; to be sewn, mended, repaired
|
1585474304911, // رغېدل - to become healthy, to heal, to get better, to recover, to be cured; to be built up; to be sewn, mended, repaired
|
||||||
1527823278, // رنګېدل - to be painted, colored
|
1527823278, // رنګېدل - to be painted, colored
|
||||||
1527812410, // روانېدل - to get under way, to get going, to depart
|
1527812410, // روانېدل - to get under way, to get going, to depart
|
||||||
1527815236, // ړنګېدل - to be demolished, ruined, dissolved, disbanded
|
1527815236, // ړنګېدل - to be demolished, ruined, dissolved, disbanded
|
||||||
1527817576, // زرغونېدل - to germinate, grow, flourish, develop
|
1527817576, // زرغونېدل - to germinate, grow, flourish, develop
|
||||||
1566120362058, // زړېدل - to get old, to age, to get worn out
|
1566120362058, // زړېدل - to get old, to age, to get worn out
|
||||||
1527817668, // زیاتېدل - to become more, to grow in number
|
1527817668, // زیاتېدل - to become more, to grow in number
|
||||||
1591033069786, // ستړی کېدل - to get tired, fatigued
|
1591033069786, // ستړی کېدل - to get tired, fatigued
|
||||||
1527816404, // ستنېدل - to return go back; to be delayed, to linger
|
1527816404, // ستنېدل - to return go back; to be delayed, to linger
|
||||||
1591782112190, // سمېدل - to become right, correct, get repaired, be fixed, be straightened out
|
1591782112190, // سمېدل - to become right, correct, get repaired, be fixed, be straightened out
|
||||||
1527811948, // شریکېدل - to be shared, held in common; to participate in something, share in something, be involved
|
1527811948, // شریکېدل - to be shared, held in common; to participate in something, share in something, be involved
|
||||||
1589883893191, // شړمېدل - to ba attached loosely, to become loose, lazy, flabby
|
1589883893191, // شړمېدل - to ba attached loosely, to become loose, lazy, flabby
|
||||||
1527820128, // ښخېدل - to be buried, entombed; to be pierced, plunged, thrust into
|
1527820128, // ښخېدل - to be buried, entombed; to be pierced, plunged, thrust into
|
||||||
1527814077, // ښکارېدل - to become clear, evident, obvious; to appear, to seem
|
1527814077, // ښکارېدل - to become clear, evident, obvious; to appear, to seem
|
||||||
1577057620783, // عادت کېدل - to get used to, to get accustomed to; to get addicted to
|
1577057620783, // عادت کېدل - to get used to, to get accustomed to; to get addicted to
|
||||||
1585475932743, // عذابېدل - to be tortured, tormented, punished, bothered, pained
|
1585475932743, // عذابېدل - to be tortured, tormented, punished, bothered, pained
|
||||||
1527814972, // غرقېدل - to be sunk, immersed, plunged, lost
|
1527814972, // غرقېدل - to be sunk, immersed, plunged, lost
|
||||||
1527821483, // غصه کېدل - to be angry, upset, distressed
|
1527821483, // غصه کېدل - to be angry, upset, distressed
|
||||||
1578607410634, // غلطېدل - to make a mistake, to err, to be decieved, to stray from, to miscalculate
|
1578607410634, // غلطېدل - to make a mistake, to err, to be decieved, to stray from, to miscalculate
|
||||||
1578683722262, // فارغېدل - to graduate; to become free from, finished from something, liberated
|
1578683722262, // فارغېدل - to graduate; to become free from, finished from something, liberated
|
||||||
1527823367, // قبلېدل - to be accepted, to be approved
|
1527823367, // قبلېدل - to be accepted, to be approved
|
||||||
1578705585960, // قربانېدل - to be sacrificed
|
1578705585960, // قربانېدل - to be sacrificed
|
||||||
1588074081731, // قرنطینېدل - to be quarentined
|
1588074081731, // قرنطینېدل - to be quarentined
|
||||||
1527811848, // کامیابېدل - to succed, to achieve success
|
1527811848, // کامیابېدل - to succed, to achieve success
|
||||||
1578769047886, // کلکېدل - to become firm, solid, to be hardened, to solidify; to became staunch, secured
|
1578769047886, // کلکېدل - to become firm, solid, to be hardened, to solidify; to became staunch, secured
|
||||||
1578769553469, // کمېدل - to decrease, become small, become less
|
1578769553469, // کمېدل - to decrease, become small, become less
|
||||||
1527811975, // کڼېدل - to become deaf
|
1527811975, // کڼېدل - to become deaf
|
||||||
1573149364576, // ګډېدل - to be mixed, combined, blended, to meet, rejoin
|
1573149364576, // ګډېدل - to be mixed, combined, blended, to meet, rejoin
|
||||||
1527814821, // ګرمېدل - to become warm, to warm up, heat up
|
1527814821, // ګرمېدل - to become warm, to warm up, heat up
|
||||||
1527819155, // ګمراه کېدل - to stray (from the path, the faith), to err
|
1527819155, // ګمراه کېدل - to stray (from the path, the faith), to err
|
||||||
1579034600343, // ګیرېدل - to be seized, caught, trapped, confined, imprisoned, beseiged, stuck
|
1579034600343, // ګیرېدل - to be seized, caught, trapped, confined, imprisoned, beseiged, stuck
|
||||||
1588152260378, // لرې کېدل - to be removed, put far away
|
1588152260378, // لرې کېدل - to be removed, put far away
|
||||||
1527817122, // لندېدل - to dampen, moisten, soak, get wet
|
1527817122, // لندېدل - to dampen, moisten, soak, get wet
|
||||||
1527817119, // لنډېدل - to be shortened, made short
|
1527817119, // لنډېدل - to be shortened, made short
|
||||||
1527813947, // لویېدل - to grow up, to be raised up, to get big
|
1527813947, // لویېدل - to grow up, to be raised up, to get big
|
||||||
1527811901, // ماتېدل - to be broken, break, hurt badle, crumble
|
1527811901, // ماتېدل - to be broken, break, hurt badle, crumble
|
||||||
1527814560, // مجبورېدل - to be compelled, forced, obligated
|
1527814560, // مجبورېدل - to be compelled, forced, obligated
|
||||||
1527820885, // مړېدل - to become full, to have one’s fill; (fig.) to grow cold towards, lose interest in
|
1527820885, // مړېدل - to become full, to have one’s fill; (fig.) to grow cold towards, lose interest in
|
||||||
1579295191646, // مقررېدل - to be appointed, assigned, delegated
|
1579295191646, // مقررېدل - to be appointed, assigned, delegated
|
||||||
1579295944312, // ملامتېدل - to be condemned, blamed, guilty
|
1579295944312, // ملامتېدل - to be condemned, blamed, guilty
|
||||||
1527812920, // ملاوېدل - to meet, to be met, to be found, to be available
|
1527812920, // ملاوېدل - to meet, to be met, to be found, to be available
|
||||||
1579387693725, // مینېدل - to fall in love
|
1579387693725, // مینېدل - to fall in love
|
||||||
1527815573, // نازلېدل - to befall, to come down, to be revealed, to be sent down
|
1527815573, // نازلېدل - to befall, to come down, to be revealed, to be sent down
|
||||||
1527811761, // ناکامېدل - to fail, to not succeed
|
1527811761, // ناکامېدل - to fail, to not succeed
|
||||||
1527820482, // نسکورېدل - to be toppled over, brought down, ruined, shot down (ie. a plane), stoop down
|
1527820482, // نسکورېدل - to be toppled over, brought down, ruined, shot down (ie. a plane), stoop down
|
||||||
1527817763, // هېرېدل - to be forgotten (ستا نوم ما نه هېر شو – I forgot your name – lit, Your name was forgotten from me)
|
1527817763, // هېرېدل - to be forgotten (ستا نوم ما نه هېر شو – I forgot your name – lit, Your name was forgotten from me)
|
||||||
1579721195157, // واردېدل - to be imported
|
1579721195157, // واردېدل - to be imported
|
||||||
1527817238, // وچېدل - to become dry
|
1527817238, // وچېدل - to become dry
|
||||||
1589640142987, // ورکېدل - to get lost, dissapear
|
1589640142987, // ورکېدل - to get lost, dissapear
|
||||||
1588153594269, // وړېدل - to become smaller, shrink
|
1588153594269, // وړېدل - to become smaller, shrink
|
||||||
1527812005, // وقفېدل - to be devoted, dedicated, given, donated, bequeathed
|
1527812005, // وقفېدل - to be devoted, dedicated, given, donated, bequeathed
|
||||||
1576947352743, // ویدېدل - to sleep
|
1576947352743, // ویدېدل - to sleep
|
||||||
1527819292, // ویښېدل - to awaken, become alert, wake up
|
1527819292, // ویښېدل - to awaken, become alert, wake up
|
||||||
1527812941, // یادېدل - to be remembered, to be missed
|
1527812941, // یادېدل - to be remembered, to be missed
|
||||||
1527814768, // یخېدل - to chill, cool down, freeze
|
1527814768, // یخېدل - to chill, cool down, freeze
|
||||||
1579824223049, // یو ځای کېدل - to be gathered, brought together, come together
|
1579824223049, // یو ځای کېدل - to be gathered, brought together, come together
|
||||||
]
|
];
|
||||||
|
|
|
@ -43,8 +43,8 @@ module.exports = [
|
||||||
1527816945, // جوتول - to make clear, evident, apparent, explained, established
|
1527816945, // جوتول - to make clear, evident, apparent, explained, established
|
||||||
1527816947, // جوتول - to harness, hitch up
|
1527816947, // جوتول - to harness, hitch up
|
||||||
1527812712, // جوړول - to make, form, build, mend, fix
|
1527812712, // جوړول - to make, form, build, mend, fix
|
||||||
1527817455, // ځایول - to place, put, accommodate, make room for, to make fit
|
1718311465186, // ځایول - to place, put, accommodate, make room for, to make fit
|
||||||
1527815074, // چاپول - to print, publish
|
1718377727926, // چاپول - to print, publish
|
||||||
1527811693, // چاغول - to fatten up, to fatten, to make stout, plump
|
1527811693, // چاغول - to fatten up, to fatten, to make stout, plump
|
||||||
1527816239, // خبرول - to inform, communicate, make known, notify
|
1527816239, // خبرول - to inform, communicate, make known, notify
|
||||||
1527811395, // خپرول - to spread, disperse, open, unfold, publicize, distribute
|
1527811395, // خپرول - to spread, disperse, open, unfold, publicize, distribute
|
||||||
|
|
Loading…
Reference in New Issue