Compare commits
4 Commits
ef120b13aa
...
c9f369de09
Author | SHA1 | Date |
---|---|---|
adueck | c9f369de09 | |
adueck | 99438d26dd | |
adueck | 5190cf2adb | |
adueck | 17fd8a4d05 |
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "pashto-inflector",
|
"name": "pashto-inflector",
|
||||||
"version": "6.0.12",
|
"version": "7.0.3",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "pashto-inflector",
|
"name": "pashto-inflector",
|
||||||
"version": "6.0.12",
|
"version": "7.0.3",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "pashto-inflector",
|
"name": "pashto-inflector",
|
||||||
"version": "6.0.12",
|
"version": "7.0.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": "6.0.12",
|
"version": "7.0.3",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@lingdocs/ps-react",
|
"name": "@lingdocs/ps-react",
|
||||||
"version": "6.0.12",
|
"version": "7.0.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": "6.0.12",
|
"version": "7.0.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",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@lingdocs/inflect",
|
"name": "@lingdocs/inflect",
|
||||||
"version": "6.0.12",
|
"version": "7.0.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,12 +1,23 @@
|
||||||
// eslint-disable-next-line
|
// eslint-disable-next-line
|
||||||
'use strict'; // code generated by pbf v3.2.1
|
"use strict"; // code generated by pbf v3.2.1
|
||||||
|
|
||||||
// DictionaryInfo ========================================
|
// DictionaryInfo ========================================
|
||||||
|
|
||||||
var DictionaryInfo = exports.DictionaryInfo = {};
|
var DictionaryInfo = (exports.DictionaryInfo = {});
|
||||||
|
|
||||||
DictionaryInfo.read = function (pbf, end) {
|
DictionaryInfo.read = function (pbf, end) {
|
||||||
return pbf.readFields(DictionaryInfo._readField, {title: "", license: "", release: 0, numberOfEntries: 0, url: "", infoUrl: ""}, end);
|
return pbf.readFields(
|
||||||
|
DictionaryInfo._readField,
|
||||||
|
{
|
||||||
|
title: "",
|
||||||
|
license: "",
|
||||||
|
release: 0,
|
||||||
|
numberOfEntries: 0,
|
||||||
|
url: "",
|
||||||
|
infoUrl: "",
|
||||||
|
},
|
||||||
|
end
|
||||||
|
);
|
||||||
};
|
};
|
||||||
DictionaryInfo._readField = function (tag, obj, pbf) {
|
DictionaryInfo._readField = function (tag, obj, pbf) {
|
||||||
if (tag === 1) obj.title = pbf.readString();
|
if (tag === 1) obj.title = pbf.readString();
|
||||||
|
@ -27,10 +38,14 @@ DictionaryInfo.write = function (obj, pbf) {
|
||||||
|
|
||||||
// Entry ========================================
|
// Entry ========================================
|
||||||
|
|
||||||
var Entry = exports.Entry = {};
|
var Entry = (exports.Entry = {});
|
||||||
|
|
||||||
Entry.read = function (pbf, end) {
|
Entry.read = function (pbf, end) {
|
||||||
return pbf.readFields(Entry._readField, {ts: 0, i: 0, p: "", f: "", g: "", e: ""}, end);
|
return pbf.readFields(
|
||||||
|
Entry._readField,
|
||||||
|
{ ts: 0, i: 0, p: "", f: "", g: "", e: "" },
|
||||||
|
end
|
||||||
|
);
|
||||||
};
|
};
|
||||||
Entry._readField = function (tag, obj, pbf) {
|
Entry._readField = function (tag, obj, pbf) {
|
||||||
if (tag === 1) obj.ts = pbf.readVarint(true);
|
if (tag === 1) obj.ts = pbf.readVarint(true);
|
||||||
|
@ -69,6 +84,7 @@ Entry._readField = function (tag, obj, pbf) {
|
||||||
else if (tag === 34) obj.diacExcept = pbf.readBoolean();
|
else if (tag === 34) obj.diacExcept = pbf.readBoolean();
|
||||||
else if (tag === 35) obj.ec = pbf.readString();
|
else if (tag === 35) obj.ec = pbf.readString();
|
||||||
else if (tag === 36) obj.ep = pbf.readString();
|
else if (tag === 36) obj.ep = pbf.readString();
|
||||||
|
else if (tag === 37) obj.a = pbf.readVarint();
|
||||||
};
|
};
|
||||||
Entry.write = function (obj, pbf) {
|
Entry.write = function (obj, pbf) {
|
||||||
if (obj.ts) pbf.writeVarintField(1, obj.ts);
|
if (obj.ts) pbf.writeVarintField(1, obj.ts);
|
||||||
|
@ -107,20 +123,29 @@ Entry.write = function (obj, pbf) {
|
||||||
if (obj.diacExcept) pbf.writeBooleanField(34, obj.diacExcept);
|
if (obj.diacExcept) pbf.writeBooleanField(34, obj.diacExcept);
|
||||||
if (obj.ec) pbf.writeStringField(35, obj.ec);
|
if (obj.ec) pbf.writeStringField(35, obj.ec);
|
||||||
if (obj.ep) pbf.writeStringField(36, obj.ep);
|
if (obj.ep) pbf.writeStringField(36, obj.ep);
|
||||||
|
if (obj.a) pbf.writeVarintField(37, obj.a);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Dictionary ========================================
|
// Dictionary ========================================
|
||||||
|
|
||||||
var Dictionary = exports.Dictionary = {};
|
var Dictionary = (exports.Dictionary = {});
|
||||||
|
|
||||||
Dictionary.read = function (pbf, end) {
|
Dictionary.read = function (pbf, end) {
|
||||||
return pbf.readFields(Dictionary._readField, {info: null, entries: []}, end);
|
return pbf.readFields(
|
||||||
|
Dictionary._readField,
|
||||||
|
{ info: null, entries: [] },
|
||||||
|
end
|
||||||
|
);
|
||||||
};
|
};
|
||||||
Dictionary._readField = function (tag, obj, pbf) {
|
Dictionary._readField = function (tag, obj, pbf) {
|
||||||
if (tag === 1) obj.info = DictionaryInfo.read(pbf, pbf.readVarint() + pbf.pos);
|
if (tag === 1)
|
||||||
else if (tag === 2) obj.entries.push(Entry.read(pbf, pbf.readVarint() + pbf.pos));
|
obj.info = DictionaryInfo.read(pbf, pbf.readVarint() + pbf.pos);
|
||||||
|
else if (tag === 2)
|
||||||
|
obj.entries.push(Entry.read(pbf, pbf.readVarint() + pbf.pos));
|
||||||
};
|
};
|
||||||
Dictionary.write = function (obj, pbf) {
|
Dictionary.write = function (obj, pbf) {
|
||||||
if (obj.info) pbf.writeMessage(1, DictionaryInfo.write, obj.info);
|
if (obj.info) pbf.writeMessage(1, DictionaryInfo.write, obj.info);
|
||||||
if (obj.entries) for (var i = 0; i < obj.entries.length; i++) pbf.writeMessage(2, Entry.write, obj.entries[i]);
|
if (obj.entries)
|
||||||
|
for (var i = 0; i < obj.entries.length; i++)
|
||||||
|
pbf.writeMessage(2, Entry.write, obj.entries[i]);
|
||||||
};
|
};
|
||||||
|
|
|
@ -46,6 +46,7 @@ message Entry {
|
||||||
bool diacExcept = 34;
|
bool diacExcept = 34;
|
||||||
string ec = 35;
|
string ec = 35;
|
||||||
string ep = 36;
|
string ep = 36;
|
||||||
|
int32 a = 37;
|
||||||
}
|
}
|
||||||
|
|
||||||
message Dictionary {
|
message Dictionary {
|
||||||
|
|
|
@ -14,7 +14,7 @@ export const kedulStat = {
|
||||||
ts: 1581086654898,
|
ts: 1581086654898,
|
||||||
i: 11100,
|
i: 11100,
|
||||||
p: "کېدل",
|
p: "کېدل",
|
||||||
f: "kedul",
|
f: "kedúl",
|
||||||
g: "kedul",
|
g: "kedul",
|
||||||
e: "to become _____",
|
e: "to become _____",
|
||||||
r: 2,
|
r: 2,
|
||||||
|
@ -34,7 +34,7 @@ export const kedulDyn = {
|
||||||
ts: 1527812754,
|
ts: 1527812754,
|
||||||
i: 11101,
|
i: 11101,
|
||||||
p: "کېدل",
|
p: "کېدل",
|
||||||
f: "kedul",
|
f: "kedúl",
|
||||||
g: "kedul",
|
g: "kedul",
|
||||||
e: "to happen, occur",
|
e: "to happen, occur",
|
||||||
r: 2,
|
r: 2,
|
||||||
|
@ -57,7 +57,7 @@ export const kawulStat = {
|
||||||
ts: 1579015359582,
|
ts: 1579015359582,
|
||||||
i: 11112,
|
i: 11112,
|
||||||
p: "کول",
|
p: "کول",
|
||||||
f: "kawul",
|
f: "kawúl",
|
||||||
g: "kawul",
|
g: "kawul",
|
||||||
e: 'to make ____ ____ (as in "He\'s making me angry.")',
|
e: 'to make ____ ____ (as in "He\'s making me angry.")',
|
||||||
r: 4,
|
r: 4,
|
||||||
|
@ -78,7 +78,7 @@ export const kawulDyn = {
|
||||||
ts: 1527812752,
|
ts: 1527812752,
|
||||||
i: 11113,
|
i: 11113,
|
||||||
p: "کول",
|
p: "کول",
|
||||||
f: "kawul",
|
f: "kawúl",
|
||||||
g: "kawul",
|
g: "kawul",
|
||||||
e: "to do (an action or activity)",
|
e: "to do (an action or activity)",
|
||||||
r: 4,
|
r: 4,
|
||||||
|
|
|
@ -117,7 +117,9 @@ export function isCompleteResult<C extends object>(
|
||||||
|
|
||||||
export function removeKeys(a: any): any {
|
export function removeKeys(a: any): any {
|
||||||
return JSON.parse(
|
return JSON.parse(
|
||||||
JSON.stringify(a, (k, v) => (k === "i" || k === "key" ? undefined : v))
|
JSON.stringify(a, (k, v) =>
|
||||||
|
k === "i" || k === "a" || k === "key" ? undefined : v
|
||||||
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,11 +18,25 @@ const sampleDictionaryInfo: T.DictionaryInfo = {
|
||||||
const sampleDictionary: T.Dictionary = {
|
const sampleDictionary: T.Dictionary = {
|
||||||
info: sampleDictionaryInfo,
|
info: sampleDictionaryInfo,
|
||||||
entries: [
|
entries: [
|
||||||
{"i":616,"ts":1527813108,"p":"اظهار","f":"izháar","g":"izhaar","e":"expression, statement, declaration","c":"n. m.","ec":"cool"},
|
{
|
||||||
|
i: 616,
|
||||||
|
ts: 1527813108,
|
||||||
|
p: "اظهار",
|
||||||
|
f: "izháar",
|
||||||
|
g: "izhaar",
|
||||||
|
e: "expression, statement, declaration",
|
||||||
|
c: "n. m.",
|
||||||
|
ec: "cool",
|
||||||
|
a: 1,
|
||||||
|
},
|
||||||
],
|
],
|
||||||
}
|
};
|
||||||
|
|
||||||
test("should encode and decode", () => {
|
test("should encode and decode", () => {
|
||||||
expect(readDictionaryInfo(writeDictionaryInfo(sampleDictionaryInfo) as Uint8Array)).toEqual(sampleDictionaryInfo);
|
expect(
|
||||||
expect(readDictionary(writeDictionary(sampleDictionary) as Uint8Array)).toEqual(sampleDictionary);
|
readDictionaryInfo(writeDictionaryInfo(sampleDictionaryInfo) as Uint8Array)
|
||||||
|
).toEqual(sampleDictionaryInfo);
|
||||||
|
expect(
|
||||||
|
readDictionary(writeDictionary(sampleDictionary) as Uint8Array)
|
||||||
|
).toEqual(sampleDictionary);
|
||||||
});
|
});
|
|
@ -5,6 +5,7 @@ import Pbf from "pbf";
|
||||||
|
|
||||||
export function writeDictionary(dictionary: T.Dictionary): ArrayBuffer {
|
export function writeDictionary(dictionary: T.Dictionary): ArrayBuffer {
|
||||||
const pbfDict = new Pbf();
|
const pbfDict = new Pbf();
|
||||||
|
// @ts-ignore
|
||||||
Dictionary.write(dictionary, pbfDict);
|
Dictionary.write(dictionary, pbfDict);
|
||||||
const buffer = pbfDict.finish();
|
const buffer = pbfDict.finish();
|
||||||
return buffer;
|
return buffer;
|
||||||
|
@ -12,12 +13,14 @@ export function writeDictionary(dictionary: T.Dictionary): ArrayBuffer {
|
||||||
|
|
||||||
export function readDictionary(buffer: Uint8Array): T.Dictionary {
|
export function readDictionary(buffer: Uint8Array): T.Dictionary {
|
||||||
const pbf = new Pbf(buffer);
|
const pbf = new Pbf(buffer);
|
||||||
|
// @ts-ignore
|
||||||
const dictionary = Dictionary.read(pbf) as T.Dictionary;
|
const dictionary = Dictionary.read(pbf) as T.Dictionary;
|
||||||
return dictionary;
|
return dictionary;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function writeDictionaryInfo(dictionary: T.DictionaryInfo): ArrayBuffer {
|
export function writeDictionaryInfo(dictionary: T.DictionaryInfo): ArrayBuffer {
|
||||||
const pbfDict = new Pbf();
|
const pbfDict = new Pbf();
|
||||||
|
// @ts-ignore
|
||||||
DictionaryInfo.write(dictionary, pbfDict);
|
DictionaryInfo.write(dictionary, pbfDict);
|
||||||
const buffer = pbfDict.finish();
|
const buffer = pbfDict.finish();
|
||||||
return buffer;
|
return buffer;
|
||||||
|
@ -25,6 +28,7 @@ export function writeDictionaryInfo(dictionary: T.DictionaryInfo): ArrayBuffer {
|
||||||
|
|
||||||
export function readDictionaryInfo(buffer: Uint8Array): T.DictionaryInfo {
|
export function readDictionaryInfo(buffer: Uint8Array): T.DictionaryInfo {
|
||||||
const pbf = new Pbf(buffer);
|
const pbf = new Pbf(buffer);
|
||||||
|
// @ts-ignore
|
||||||
const dictionaryInfo = DictionaryInfo.read(pbf) as T.DictionaryInfo;
|
const dictionaryInfo = DictionaryInfo.read(pbf) as T.DictionaryInfo;
|
||||||
return dictionaryInfo;
|
return dictionaryInfo;
|
||||||
}
|
}
|
|
@ -149,6 +149,9 @@ export type DictionaryEntry = {
|
||||||
ec?: string;
|
ec?: string;
|
||||||
/** the English partical of a English phrasal verb - or the english irregular plural of a noun */
|
/** the English partical of a English phrasal verb - or the english irregular plural of a noun */
|
||||||
ep?: string;
|
ep?: string;
|
||||||
|
|
||||||
|
/** If there is a recording [TS NUMBER].mp3 available for this entry, marked true with a 1 */
|
||||||
|
a?: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type DictionaryEntryNoFVars = DictionaryEntry & {
|
export type DictionaryEntryNoFVars = DictionaryEntry & {
|
||||||
|
@ -212,6 +215,7 @@ export const dictionaryEntryNumberFields = [
|
||||||
"l",
|
"l",
|
||||||
"separationAtP",
|
"separationAtP",
|
||||||
"separationAtF",
|
"separationAtF",
|
||||||
|
"a",
|
||||||
] as const;
|
] as const;
|
||||||
export type DictionaryEntryBooleanField =
|
export type DictionaryEntryBooleanField =
|
||||||
(typeof dictionaryEntryBooleanFields)[number];
|
(typeof dictionaryEntryBooleanFields)[number];
|
||||||
|
|
|
@ -13,7 +13,7 @@ module.exports = [
|
||||||
{ ts: 1527821744, e: "cook, chef" }, // آشپز - aashpáz
|
{ ts: 1527821744, e: "cook, chef" }, // آشپز - aashpáz
|
||||||
{ ts: 1527812461, e: "hero, brave" }, // اتل - atul
|
{ ts: 1527812461, e: "hero, brave" }, // اتل - atul
|
||||||
{ ts: 1527821649, e: "impressive, effective, influencing" }, // اثرناک - asarnáak
|
{ ts: 1527821649, e: "impressive, effective, influencing" }, // اثرناک - asarnáak
|
||||||
{ ts: 1527818704, e: "wide, spacious, extensive" }, // ارت - arát
|
{ ts: 1573663943732, e: "wide, spacious, extensive" }, // ارت - arát
|
||||||
{ ts: 1578340121962, e: "free, independant" }, // ازاد - azáad
|
{ ts: 1578340121962, e: "free, independant" }, // ازاد - azáad
|
||||||
{ ts: 1527819418, e: "independant, autonomous" }, // خپلواک - khpulwaak
|
{ ts: 1527819418, e: "independant, autonomous" }, // خپلواک - khpulwaak
|
||||||
{ ts: 1527817146, e: "resident; settled" }, // استوګن - astogan
|
{ ts: 1527817146, e: "resident; settled" }, // استوګن - astogan
|
||||||
|
|
|
@ -3,11 +3,17 @@ module.exports = [
|
||||||
{ ts: 1527816411, e: `father, grandfather (vocative or in child's speech)` }, // بابا - baabaa
|
{ ts: 1527816411, e: `father, grandfather (vocative or in child's speech)` }, // بابا - baabaa
|
||||||
{ ts: 1527819439, e: `king, ruler, president, padishah` }, // باچا - baacháa
|
{ ts: 1527819439, e: `king, ruler, president, padishah` }, // باچا - baacháa
|
||||||
{ ts: 1527823298, e: `sparrow-hawk, eagle` }, // باښه - baaxá
|
{ ts: 1527823298, e: `sparrow-hawk, eagle` }, // باښه - baaxá
|
||||||
{ ts: 1527817718, e: `slave, servant, a human, person (as in a slave of God)` }, // بنده - bandá
|
{
|
||||||
|
ts: 1527817718,
|
||||||
|
e: `slave, servant, a human, person (as in a slave of God)`,
|
||||||
|
}, // بنده - bandá
|
||||||
{ ts: 1527815031, e: `prisoner, captive` }, // بندي - bandee
|
{ ts: 1527815031, e: `prisoner, captive` }, // بندي - bandee
|
||||||
{ ts: 1527815142, e: `king` }, // پاچا - paachaa
|
{ ts: 1527815142, e: `king` }, // پاچا - paachaa
|
||||||
{ ts: 1527817280, e: `leper` }, // جذامي - jUzaamee
|
{ ts: 1527817280, e: `leper` }, // جذامي - jUzaamee
|
||||||
{ ts: 1527814236, e: `pot smoker, pothead, someone addicted to marijuana, pot, hash` }, // چرسي - charsee
|
{
|
||||||
|
ts: 1527814236,
|
||||||
|
e: `pot smoker, pothead, someone addicted to marijuana, pot, hash`,
|
||||||
|
}, // چرسي - charsee
|
||||||
{ ts: 1578618561154, e: `Haji, someone who has gone on the Hajj` }, // حاجي - haajee
|
{ ts: 1578618561154, e: `Haji, someone who has gone on the Hajj` }, // حاجي - haajee
|
||||||
{ ts: 1527821193, e: `supporter, protector, defender, patron, saviour` }, // حامي - haamee
|
{ ts: 1527821193, e: `supporter, protector, defender, patron, saviour` }, // حامي - haamee
|
||||||
{ ts: 1591711877815, e: `washerman, someone who does the laundry` }, // دوبي - dobée
|
{ ts: 1591711877815, e: `washerman, someone who does the laundry` }, // دوبي - dobée
|
||||||
|
@ -24,12 +30,14 @@ module.exports = [
|
||||||
{ ts: 1527818500, e: `contractor, supplier` }, // قراردادي - qaraardaadee
|
{ ts: 1527818500, e: `contractor, supplier` }, // قراردادي - qaraardaadee
|
||||||
{ ts: 1527816446, e: `paternal uncle, term of address for elderly man` }, // کاکا - kaakaa
|
{ ts: 1527816446, e: `paternal uncle, term of address for elderly man` }, // کاکا - kaakaa
|
||||||
{ ts: 1595232159907, e: `begger, panhandler` }, // ګدا - gadáa
|
{ ts: 1595232159907, e: `begger, panhandler` }, // ګدا - gadáa
|
||||||
{ ts: 1527816512, e: `elder brother, general form of familiar and respectful address` }, // لالا - laalaa
|
{
|
||||||
|
ts: 1527816512,
|
||||||
|
e: `elder brother, general form of familiar and respectful address`,
|
||||||
|
}, // لالا - laalaa
|
||||||
{ ts: 1527812878, e: `uncle (maternal), respectful form of address` }, // ماما - maamaa
|
{ ts: 1527812878, e: `uncle (maternal), respectful form of address` }, // ماما - maamaa
|
||||||
{ ts: 1610556640847, e: `census` }, // مردمشماري - mărdamshUmaaree
|
{ ts: 1610556640847, e: `census` }, // مردمشماري - mărdamshUmaaree
|
||||||
{ ts: 1527815484, e: `mullah, priest` }, // ملا - mUllaa
|
{ ts: 1527815484, e: `mullah, priest` }, // ملا - mUllaa
|
||||||
{ ts: 1527821714, e: `parallel, matching, appropriate, identical` }, // موازي - mUwaazée
|
{ ts: 1527821714, e: `parallel, matching, appropriate, identical` }, // موازي - mUwaazée
|
||||||
{ ts: 1527816514, e: `shoemaker, shoe repairman, cobbler` }, // موچي - mochee
|
|
||||||
{ ts: 1527823093, e: `prophet` }, // نبي - nabee
|
{ ts: 1527823093, e: `prophet` }, // نبي - nabee
|
||||||
{ ts: 1579041957559, e: `call, appeal, shout, summoning` }, // ندا - nadáa
|
{ ts: 1579041957559, e: `call, appeal, shout, summoning` }, // ندا - nadáa
|
||||||
{ ts: 1527816253, e: `grandson` }, // نواسه - nawaasa
|
{ ts: 1527816253, e: `grandson` }, // نواسه - nawaasa
|
||||||
|
|
Loading…
Reference in New Issue