উইকিঅভিধান
bnwiktionary
https://bn.wiktionary.org/wiki/%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A6%A7%E0%A6%BE%E0%A6%A8_%E0%A6%AA%E0%A6%BE%E0%A6%A4%E0%A6%BE
MediaWiki 1.46.0-wmf.24
case-sensitive
মিডিয়া
বিশেষ
আলাপ
ব্যবহারকারী
ব্যবহারকারী আলাপ
উইকিঅভিধান
উইকিঅভিধান আলোচনা
চিত্র
চিত্র আলোচনা
মিডিয়াউইকি
মিডিয়াউইকি আলোচনা
টেমপ্লেট
টেমপ্লেট আলোচনা
সাহায্য
সাহায্য আলোচনা
বিষয়শ্রেণী
বিষয়শ্রেণী আলোচনা
পরিশিষ্ট
পরিশিষ্ট আলোচনা
ছন্দ
ছন্দ আলোচনা
থিসরাস
থিসরাস আলোচনা
উদ্ধৃতি
উদ্ধৃতি আলোচনা
TimedText
TimedText talk
মডিউল
মডিউল আলাপ
Event
Event talk
father
0
3206
508164
332840
2026-04-24T09:23:39Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L3624-এর সাথে সংযোগ তৈরি করছি
508164
wikitext
text/x-wiki
{{লে|L3624}}
2oa5tao5zghofpqg4ea2a1koc1kfbny
508165
508164
2026-04-24T09:23:50Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L33074-এর সাথে সংযোগ তৈরি করছি
508165
wikitext
text/x-wiki
{{লে|L3624}}
{{লে|L33074|না}}
9fraiwe5x6zbwcphcd5jad3491jyimk
অনল
0
7149
508160
311189
2026-04-24T04:36:26Z
Md. T Mahtab
11050
/* বাংলা */
508160
wikitext
text/x-wiki
== {{ভাষা|bn}} ==
{{উইকিপিডিয়া|lang=bn}}
===ব্যুৎপত্তি===
* [[সংস্কৃত]] জাত
* [ √অন্ + অল ]
===উচ্চারণ===
* ''অ-নোল্''
=== বিশেষ্য ===
* [[আগুন]]
* [[শিখা]]
==== সমার্থক শব্দ ====
#হুতাশন
#বহ্নি
==== তথ্যসূত্র ====
* {{বই উদ্ধৃতি|editor=মুহম্মদ এনামুল হক |title=বাংলা একাডেমী ব্যবহারিক বাংলা অভিধান |url= |chapter= |publisher=[[বাংলা একাডেমী]] |date=2011-06 |location=[[ঢাকা]], [[বাংলাদেশ]] |isbn=984-07-4939-0 |page= |quote=}}
lswkzcb6k7287dw0ilsg3zm5nwsfhdq
great
0
25904
508163
72278
2026-04-24T09:22:48Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L321434-এর সাথে সংযোগ তৈরি করছি
508163
wikitext
text/x-wiki
{{আরও দেখুন|gréât|great-}}
== {{langname|en}} ==
=== উচ্চারণ ===
* {{enPR|grāt}}, {{আধ্বব|en|/ɡɹeɪt/}}
* {{অডিও|en|en-us-great.ogg|অডিও (যুক্তরাষ্ট্র)}}
* {{অন্ত্যমিল|en|eɪt}}
* {{সমোচ্চারিত|en|grate}}
=== বিশেষণ ===
{{en-বিশেষণ|er}}
# [[মহান]], [[বড়]], [[বিশিষ্ট]], [[বিশাল]], [[মহৎ]], [[বৃহৎ]], [[অত্যন্ত]], [[গুরুত্বপূর্ণ]], [[মস্ত]], [[গুরুতর]], [[পরম]], [[অত্যধিক]], [[প্রচুরপরিমাণ]], [[স্ফীত]], [[বিলক্ষণ]], [[গুরু]], [[পৃথু]], [[অত্যুচ্চ]], [[প্রতিভাসম্পন্ন]], বড় হাতের
{{লে|L321434}}
cnntadhm2a0itgsg18w2zqm4tm9no95
মডিউল:আভিধানিক উপাত্ত
828
50158
508151
508096
2026-04-23T13:26:32Z
Redmin
6857
+ Z30837
508151
Scribunto
text/plain
local p = {}
local i18n = require('মডিউল:আভিধানিক উপাত্ত/i18n')
local references = require('মডিউল:উইকিউপাত্ত তথ্যসূত্র বিন্যাসকরণ').format
local getArgs = require('Module:Arguments').getArgs
local formatter_urls = require('মডিউল:আভিধানিক উপাত্ত/urls').formatter_urls
local wb = mw.wikibase
local ustring = mw.ustring
local html = mw.html
local mw_lang = mw.language
local entity_cache = {}
local reference_cache = {}
local forms
local lang_code
local function countWords(string)
local count = 0
for word in ustring.gmatch(string, "%S+") do
count = count + 1
end
return count
end
local function normalizeLemmas(text)
text = mw.ustring.gsub(text, "ٰ", "")
text = mw.ustring.gsub(text, "ِ", "")
text = mw.ustring.gsub(text, "[ً-ٟ]", "")
text = mw.ustring.gsub(text, "أ", "ا")
--text = mw.ustring.gsub(text, "إ", "ا")
text = mw.ustring.gsub(text, "آ", "ا")
return text
end
local function serializeTable(val, name, skipnewlines, depth) -- https://stackoverflow.com/a/6081639
skipnewlines = skipnewlines or false
depth = depth or 0
local tmp = string.rep(" ", depth)
if name then tmp = tmp .. name .. " = " end
if type(val) == "table" then
tmp = tmp .. "{" .. (not skipnewlines and "\n" or "")
for k, v in pairs(val) do
tmp = tmp .. serializeTable(v, k, skipnewlines, depth + 1) .. "," .. (not skipnewlines and "\n" or "")
end
tmp = tmp .. string.rep(" ", depth) .. "}"
elseif type(val) == "number" then
tmp = tmp .. tostring(val)
elseif type(val) == "string" then
tmp = tmp .. string.format("%q", val)
elseif type(val) == "boolean" then
tmp = tmp .. (val and "true" or "false")
else
tmp = tmp .. "\"[inserializeable datatype:" .. type(val) .. "]\""
end
return tmp
end
-- Use this to safely expand templates when you are not sure that they exist.
local function safeExpand(frame, title, args)
local success, result = pcall(function()
return frame:expandTemplate{ title = title, args = args }
end)
if result:find('does not exist') then -- expandTemplate{} doesn't seem to throw any error that can be handled with pcall() so string search is the only viable option.
return nil
end
return result
end
local function getReference( id, reference )
local out_id = nil
local url_value
if reference_cache[id] == nil then
local ref_text = references(reference, wb, mw_lang, i18n['content_lang_code'], i18n['wikipedia'])
if reference.snaks ~= nil then
if reference.snaks['P248'] ~= nil then
for _, snak in pairs(reference.snaks['P248']) do
if snak.datavalue and snak.datavalue.value.id == 'Q428' then -- কুরআন
ref_text = ustring.gsub(ref_text, 'নামক অনুচ্ছেদ', 'নং আয়াত')
break
end
end
end
if reference.snaks['P854'] ~= nil then
local snak = reference.snaks['P854'][1]
if snak.datavalue then
url_value = snak.datavalue.value
end
end
end
if url_value ~= nil then
ref_text = ref_text .. ', [' .. url_value .. ' সংযোগ]'
end
reference_cache[id] = ref_text
else
out_id = id
end
return {out_id, reference_cache[id]}
end
local function getEntity( id )
if entity_cache[id] == nil then
entity_cache[id] = wb.getEntity(id)
end
return entity_cache[id] ~= false and entity_cache[id] or nil
end
local function getLexemeLanguageCode(current_lexeme)
local lang_item_id = current_lexeme:getLanguage()
if lang_item_id == nil then
return nil
end
local lang_entity = getEntity(lang_item_id)
if lang_entity == nil then
return nil
end
for i, statement_property in ipairs({'P305','P424', 'P220'}) do -- আইইটিএফ ভাষা ট্যাগ, উইকিমিডিয়া ভাষা কোড, আইএসও ৬৩৯-৩
local statements = lang_entity:getBestStatements(statement_property)
if statements[1] ~= nil then
return statements[1].mainsnak.datavalue.value
end
end
return nil
end
-- Return the first form of the lexeme which has exactly the given grammatical feature.
local function formWithSingleGrammaticalFeature( item_id )
for i = 1, #forms do
local grammaticalFeatures = forms[i]:getGrammaticalFeatures()
if #grammaticalFeatures == 1 and grammaticalFeatures[1] == item_id then
return forms[i]
end
end
return nil
end
local function getArticleLinkTemplate(frame, stmt_value)
local template = ''
local sitelink = getEntity(stmt_value):getSitelink(i18n['wikipedia'])
if sitelink ~= nil then
template = frame:expandTemplate{
title=i18n['template_wikipedia'],
args={sitelink}
}
end
return template
end
local function getArticleLinks (frame, sense )
local article_links = ''
for i, stmt in pairs(sense:getAllStatements('P5137')) do -- এই অর্থের জন্য আইটেম
article_links = article_links .. getArticleLinkTemplate(frame, stmt.mainsnak.datavalue.value.id)
end
for i, stmt in pairs(sense:getAllStatements('P9970')) do -- এই অর্থের জন্য বিধেয়
article_links = article_links .. getArticleLinkTemplate(frame, stmt.mainsnak.datavalue.value.id)
end
return article_links
end
-- @TODO: Generalise
local function expandTemplateForProperty(frame, object, property, template)
local lemmas = {}
local n = 0
for _, stmt in pairs(object:getAllStatements(property)) do
local lex = wb.lexeme.splitLexemeId(stmt.mainsnak.datavalue.value.id)
lex = getEntity(lex)
n = n + 1
lemmas[n] = lex:getLemma(lang_code)
end
if not lang_code or n == 0 then
return ''
end
-- Build args: first lang_code, then lemmas
local args = {lang_code}
for i = 1, n do
args[#args + 1] = lemmas[i]
end
return frame:expandTemplate{
title = template,
args = args
}
end
local function getExternalLinks( entity ) -- T418639
local external_links = {}
if entity.claims == nil then return external_links end
for property_id, statements in pairs(entity.claims) do
local formatter_url = formatter_urls[property_id]
if formatter_url ~= nil then
local property_source = wb.getBestStatements(property_id, 'P9073')
local source_name
if next(property_source) ~= nil then
source_name = wb.getLabel(property_source[1].mainsnak.datavalue.value.id)
or property_source[1].mainsnak.datavalue.value.id
else
source_name = wb.getLabel(property_id) or property_id
end
for i = 1, #statements do
local stmt = statements[i]
if stmt.mainsnak.datavalue then
local formatted_link = ustring.gsub(
ustring.gsub(formatter_url, '$1', stmt.mainsnak.datavalue.value),
' ', '+'
)
table.insert(external_links,
'[' .. formatted_link .. ' ' .. source_name .. ']')
end
end
end
end
return external_links
end
p.getExternalLinks = getExternalLinks -- রেখে দিন যাতে ডিবাগিং সম্ভব হয়
local function termSpan( term )
local text = term[1]
local lang = term[2]
local dir = mw_lang.new( lang ):getDir()
local span = html.create( 'span' )
span:attr( 'lang', lang )
:attr( 'dir', dir )
:wikitext( text )
return tostring( span )
end
local function termLink( term, lang_qid )
local text = term[1]
local lang = term[2]
local dir = mw_lang.new( lang ):getDir()
local span = html.create( 'span' )
span:attr( 'lang', lang )
:attr( 'dir', dir )
:wikitext( '[[' .. text .. '#' .. wb.getLabel(lang_qid) .. '|' .. text .. ']]' )
return tostring( span )
end
local function getLemmata( current_lexeme )
local lemma_string = ''
for i, rep in pairs(current_lexeme:getLemmas()) do
if lemma_string == '' then
lemma_string = termSpan(rep)
else
lemma_string = lemma_string .. '/' .. termSpan(rep)
end
end
return lemma_string
end
local function getLinkedLemmata( current_lexeme )
local lemma_string = ''
for i, rep in pairs(current_lexeme:getLemmas()) do
if lemma_string == '' then
lemma_string = termLink(rep, current_lexeme:getLanguage())
else
lemma_string = lemma_string .. '/' .. termLink(rep, current_lexeme:getLanguage())
end
end
return lemma_string
end
local function getExamples( current_lexeme, sense_id, references_seen )
local examples = html.create('dl')
for i, stmt in pairs(current_lexeme:getAllStatements('P5831')) do -- ব্যবহারের উদাহরণ
if stmt.qualifiers ~= nil and stmt.qualifiers['P6072'] ~= nil and stmt.qualifiers['P6072'][1].datavalue.value.id == sense_id then -- বিষয়ে লেক্সিমের অর্থ
example_text = ustring.gsub(stmt.mainsnak.datavalue.value.text, ' / ','<br/>')
example_lang = stmt.mainsnak.datavalue.value.language
local example_form_strs = {}
if stmt.qualifiers['P1810'] ~= nil then
table.insert(example_form_strs, stmt.qualifiers['P1810'][1].datavalue.value)
elseif stmt.qualifiers['P5830'] ~= nil then
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
for i, rep in pairs(example_form:getRepresentations()) do
table.insert(example_form_strs, rep[1])
end
end
example_str = nil
for i, example_form_str in pairs(example_form_strs) do
new_example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
if new_example_text ~= example_text then
example_str = termSpan({new_example_text, example_lang})
break
end
new_example_text = example_text
end
if example_str == nil then
example_str = termSpan({example_text, example_lang})
end
local reference_text = ''
if stmt.references ~= nil then
for j, reference in pairs(stmt.references) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. got_reference[2]
end
end
if example_str ~= nil then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
end
for i, stmt in pairs(wb.getAllStatements(sense_id, 'P5831')) do -- ব্যবহারের উদাহরণ
example_text = ustring.gsub(stmt.mainsnak.datavalue.value.text, ' / ','<br/>')
example_lang = stmt.mainsnak.datavalue.value.language
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
local example_form_str = nil
if stmt.qualifiers['P1810'] ~= nil then
example_form_str = stmt.qualifiers['P1810'][1].datavalue.value
end
if example_form_str == nil then
example_form_str = example_form:getRepresentation(i18n['content_lang_code'])
end
if example_form_str == nil then
example_form_str = example_form:getRepresentations()[1][1]
end
example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
example_str = termSpan({example_text, example_lang})
local reference_text = ''
if stmt.references ~= nil then
for j, reference in pairs(stmt.references) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. got_reference[2]
end
end
if example_str ~= nil then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
return { tostring(examples) , references_seen }
end
-- This calls frame:preprocess() instead of :callParserFunction() because the latter does not work for Wikifunctions function calls yet (see https://www.wikifunctions.org/wiki/Wikifunctions:Embedded_function_calls).
local function callWikifunctionsFunction(args, frame)
return frame:preprocess('{{#function:' .. args .. '}}')
end
local function checkTitleCodePointInRange(title, start_point, end_point)
return ustring.find( title, '[' ..ustring.char(start_point) .. '-' .. ustring.char(end_point) .. ']' )
end
local function getLanguageForCategories( lang_id, current_page_title )
-- বিশেষ ভাষার জন্য
if lang_id == 'Q11051' then -- হিন্দি/উর্দু
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- উর্দু
lang_id = 'Q11051ur'
elseif checkTitleCodePointInRange(current_page_title, 0x0900, 0x097f) ~= nil then -- হিন্দি
lang_id = 'Q11051hi'
end
elseif lang_id == 'Q58635' then -- পাঞ্জাবি
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- শাহমুখী
lang_id = 'Q58635pnb'
elseif checkTitleCodePointInRange(current_page_title, 0x0a00, 0x0a7f) ~= nil then -- গুরুমুখী
lang_id = 'Q58635pa'
end
elseif lang_id == 'Q56356571' then -- নয়া ফার্সি ভাষা
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- ফার্সি (ইরান/আফগানিস্তান)
lang_id = 'Q56356571fa'
elseif checkTitleCodePointInRange(current_page_title, 0x0400, 0x04ff) ~= nil then -- তাজিক
lang_id = 'Q56356571tg'
end
end
return lang_id
end
local function getOneStringForProperty(object, property)
local val
local stmts = object:getAllStatements(property)
if #stmts ~= 0 then
val = stmts[1].mainsnak.datavalue.value
end
return val
end
local function getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved
if #senses == 0 then
return nil
end
local all_translations = {}
for _, sense in pairs(senses) do
local translation_set = {}
local gloss = sense:getGloss('bn')
for _, stmt in pairs(sense:getAllStatements('P5972')) do
local translation = stmt.mainsnak.datavalue.value.id
local lexeme_id = wb.lexeme.splitLexemeId(translation)
local language = wb.getLabel(getEntity(lexeme_id):getLanguage())
table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>')
end
if #translation_set > 0 then
local block = frame:expandTemplate{ title = i18n['template_trans-top'], args = { gloss } }
block = block .. table.concat(translation_set, '\n') .. frame:expandTemplate{ title = i18n['template_trans-bottom'] }
table.insert(all_translations, block)
end
end
if #all_translations == 0 then
return nil
end
return '====' .. i18n['heading_translation'] .. '==== \n' .. table.concat(all_translations, '\n')
end
local createicon = function(langcode, entityID, propertyID)
langcode = langcode or ""
propertyID = propertyID or ""
local icon = " <span class='penicon autoconfirmed-show'>[["
-- " <span data-bridge-edit-flow='overwrite' class='penicon'>[[" -> enable Wikidata Bridge
.. "File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt="
.. i18n['edit_wikidata']
.. "|link=https://www.wikidata.org/entity/" .. entityID
if langcode ~= "" then icon = icon .. "?uselang=" .. langcode end
if propertyID ~= "" then icon = icon .. "#" .. propertyID end
icon = icon .. "|" .. i18n['edit_wikidata'] .. "]]</span>"
return icon
end
local function getMeanings( frame, args, current_lexeme, senses, references_seen, language_name)
if #senses == 0 then
return {createicon(i18n['content_lang_code'], current_lexeme:getId()) .. "''" .. i18n['text_category_rfdef'] .. "''" .. i18n.tocatlink(i18n['category_rfdef']), references_seen}
end
local meanings = html.create( 'ol' )
for i, sense in pairs(senses) do
local gloss_text_parts = {}
local main_gloss_text = frame:expandTemplate{
title=i18n['template_anchor'],
args={sense:getId()}
}
local specifiers = {}
for k, property_id in ipairs({'P6084', 'P6191', 'P9488'}) do -- অবস্থান যেখানে শব্দার্থ ব্যবহৃত, যে রীতিতে শব্দার্থ ব্যবহৃত হয়, যে ক্ষেত্রে ব্যবহৃত
for i, stmt in pairs(sense:getAllStatements(property_id)) do
local stmt_value = stmt.mainsnak.datavalue.value.id
local reference_text = ''
local refs = stmt.references
if refs ~= nil then
for j, reference in pairs(refs) do
table.insert(references_seen, reference.hash)
got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. frame:extensionTag('ref', got_reference[2])
end
table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code']) .. reference_text)
end
end
end
if #specifiers > 0 then
main_gloss_text = main_gloss_text .. "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
local gloss = sense:getGloss( i18n['content_lang_code'] )
if gloss ~= nil then
if countWords(gloss) == 1 then
main_gloss_text = main_gloss_text .. "[[" .. gloss .. "#" .. i18n['content_lang_name'] .. "|" .. gloss .. "]]"
else
main_gloss_text = main_gloss_text .. gloss
end
if gloss:match('^প্রদত্ত%s*(%S-)%s*নাম$') then -- given names
main_gloss_text = main_gloss_text .. i18n.tocatlink(language_name .. ' ' .. i18n['category_given_names'])
end
else
local other_gloss_text = nil
local other_gloss_lang = nil
local item_label_gloss_parts = {}
for k, stmt in pairs(sense:getAllStatements('P5137')) do -- যদি 'এই অর্থের জন্য আইটেম' মানের বাংলা লেবেল থাকে
local stmt_value = stmt.mainsnak.datavalue.value.id
local stmt_label = wb.getLabel(stmt_value)
if stmt_label ~= nil then
table.insert(item_label_gloss_parts, '[[:d:' .. stmt_value .. '|' .. stmt_label .. ']]')
end
end
if #item_label_gloss_parts > 0 then
other_gloss_text = table.concat(item_label_gloss_parts, '; ')
end
if other_gloss_text == nil then
for i, fallback_lang in ipairs(mw_lang.getFallbacksFor( i18n['content_lang_code'] )) do
if sense:getGloss( fallback_lang ) ~= nil then
other_gloss_text, other_gloss_lang = sense:getGloss( fallback_lang )
end
end
if other_gloss_lang == nil then
local glosses = sense:getGlosses()
for j, gloss in pairs(glosses) do
other_gloss_text = gloss[1]
other_gloss_lang = gloss[2]
break
end
end
main_gloss_text = main_gloss_text .. other_gloss_text .. "<sup><em>" .. mw_lang.fetchLanguageName(other_gloss_lang, i18n['content_lang_code']) .. "</em></sup>"
else
main_gloss_text = main_gloss_text .. "''" .. other_gloss_text .. "''"
end
main_gloss_text = main_gloss_text .. i18n.tocatlink(i18n['category_rfdef_equivalent'])
end
local synonym = expandTemplateForProperty(frame, sense, 'P5973', i18n['template_synonym'])
if synonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. synonym
end
local antonym = expandTemplateForProperty(frame, sense, 'P5974', i18n['template_antonym'])
if antonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. antonym
end
local hypernym = expandTemplateForProperty(frame, sense, 'P6593', i18n['template_hypernym'])
if hypernym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. hypernym
end
if lex_cat == 'Q1084' or lex_cat == 'Q147276' then -- noun or proper noun
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-noun'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
elseif lex_cat == 'Q34698' then
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-adj'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
end
table.insert(gloss_text_parts, main_gloss_text .. createicon(i18n['content_lang_code'], sense:getId()))
for i, stmt in pairs(sense:getAllStatements('P8394')) do -- টিপ্পনীর উদ্ধৃতি
gloss_quote = termSpan({stmt.mainsnak.datavalue.value.text, stmt.mainsnak.datavalue.value.language})
if stmt.references[1] ~= nil then
local got_reference = getReference ( stmt.references[1].hash, stmt.references[1] )
gloss_quote = '"' .. gloss_quote .. '" ' .. got_reference[2]
end
table.insert(references_seen, stmt.references[1].hash)
table.insert(gloss_text_parts, frame:extensionTag('ref', gloss_quote))
end
for i, stmt in pairs(sense:getAllStatements('P1343')) do -- বর্ণিত উৎস
-- TODO: do away with making fake reference objects
local fake_reference = { ['snaks'] = {} }
fake_reference.snaks['P248'] = { [1] = stmt.mainsnak }
qualifiers_order = stmt['qualifiers-order']
if qualifiers_order ~= nil then
for i, k in ipairs(qualifiers_order) do fake_reference.snaks[k] = stmt.qualifiers[k] end
end
fake_reference.hash = mw.hash.hashValue('sha3-512', serializeTable(fake_reference))
table.insert(references_seen, fake_reference.hash)
local got_reference = getReference(fake_reference.hash, fake_reference)
if got_reference[1] == nil then
table.insert(gloss_text_parts, frame:extensionTag('ref', got_reference[2], {name = fake_reference.hash}))
else
table.insert(gloss_text_parts, frame:extensionTag{name = 'ref', content='', args = {name = got_reference[1]}})
end
end
local first_sense_image = ''
local sense_images = sense:getAllStatements('P18')
if next(sense_images) ~= nil then
first_sense_image = sense_images[1].mainsnak.datavalue.value
end
if first_sense_image ~= '' then
table.insert(gloss_text_parts, '[[চিত্র:' .. first_sense_image .. "|thumb|'''" .. getLemmata(current_lexeme) .. "'''—" .. main_gloss_text .. ']]')
end
local idlinks = getExternalLinks(sense)
if #idlinks > 0 then
local idlinktext = '<small>('
for _, idlink in pairs(idlinks) do
idlinktext = idlinktext .. idlink .. '\n'
end
idlinktext = idlinktext .. ')</small>'
table.insert(gloss_text_parts, idlinktext)
end
local externallinks = getArticleLinks(frame, sense)
if externallinks ~= '' then
table.insert(gloss_text_parts, externallinks)
end
local new_notes = {}
local sense_keys = { sense:getId(), string.sub(sense:getId(), string.find(sense:getId(), '-')+1) }
for _, v in ipairs(sense_keys) do
if args[v] ~= nil then
table.insert(new_notes, args[v])
end
end
if #new_notes > 0 then
for _, v in ipairs(new_notes) do
if i == 1 then
table.insert(gloss_text_parts, '<br/>' .. v)
else
table.insert(gloss_text_parts, v)
end
end
end
local examples, references_seen = unpack(getExamples( current_lexeme, sense:getId(), references_seen ))
local gloss_text = table.concat(gloss_text_parts, '\n')
meanings:tag('li'):wikitext(gloss_text):wikitext(examples)
end
return {meanings, references_seen}
end
local function getPronunciationBaseForm( lang_name, lex_cat)
local base_form = nil
-- (!) অন্য ভাষার শব্দের যদি অন্য রকম মূল ফর্ম থাকে সেগুলো এখানে নতুন if বিবৃতি দিয়ে যোগ করা যায়।
if lang_name == 'বাংলা' then
if lex_cat == 'Q1084' then -- বিশেষ্য
base_form = formWithSingleGrammaticalFeature( 'Q131105' ) -- কর্তৃকারক
elseif lex_cat == 'Q24905' then -- ক্রিয়া
base_form = formWithSingleGrammaticalFeature( 'Q1350145' ) -- ক্রিয়া বিশেষ্য
end
end
if base_form == nil then
for i, form in pairs(forms) do
base_form = form
break
end
end
return base_form
end
local function getCombines( current_lexeme )
local combines = ''
local index_mappings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P5238')) do
if stmt.qualifiers ~= nil and stmt.qualifiers['P1545'] ~= nil then -- ক্রম
local current_index = tonumber(stmt.qualifiers['P1545'][1].datavalue.value)
index_mappings[current_index] = stmt
end
end
if #index_mappings ~= 0 then
for i, stmt in ipairs(index_mappings) do
local part_lexeme_id = stmt.mainsnak.datavalue.value.id
local part_lexeme = getEntity(part_lexeme_id)
local current_substring = getLinkedLemmata(part_lexeme)
local part_etymology = getEtymology(part_lexeme)
if part_etymology ~= '' and part_etymology ~= nil then
current_substring = current_substring .. ' (← ' .. part_etymology .. ')'
end
if combines == '' then
combines = current_substring
else -- @TODO: This shoukd use the 'affix' template instead.
combines = combines .. ' + ' .. current_substring
end
end
end
return combines
end
function getRoots ( current_lexeme )
local stmts = current_lexeme:getAllStatements('P5920')
if #stmts == 0 then return '' end
local root_lexeme = getEntity(stmts[1].mainsnak.datavalue.value.id)
return '√' .. getLinkedLemmata(root_lexeme)
end
function getEtymology ( current_lexeme )
-- TODO: see if any etymology chains are not possible to render
local etymology = ''
local current_combines = getCombines(current_lexeme)
local current_roots = getRoots(current_lexeme)
local stmts = current_lexeme:getAllStatements('P5191')
if #stmts == 0 then
if current_roots ~= '' and current_combines ~= '' then
return current_roots .. '<br/>(' .. current_combines .. ')'
elseif current_roots ~= '' then
return current_roots
else
return current_combines
end
end
for i, stmt in pairs(stmts) do
local origin_lexeme_dv = stmt.mainsnak.datavalue -- If this is nil, the origin lexeme is not known.
if origin_lexeme_dv ~= nil then
local origin_lexeme = getEntity(origin_lexeme_dv.value.id)
local origin_lexeme_lang = origin_lexeme:getLanguage()
local origin_lexeme_string = getLinkedLemmata(origin_lexeme) .. ' (' .. wb.getLabel(origin_lexeme_lang) .. ')'
if stmt.qualifiers ~= nil and stmt.qualifiers['P5886'] ~= nil then
local mode_of_derivation = stmt.qualifiers['P5886'][1].datavalue.value.id
if mode_of_derivation == 'Q1345001' then
origin_lexeme_string = ustring.gsub(i18n['etymology_borrowing'], '$1', origin_lexeme_string)
elseif mode_of_derivation == 'Q845079' then
origin_lexeme_string = ustring.gsub(i18n['etymology_learned_borrowing'], '$1', origin_lexeme_string)
elseif mode_of_derivation == 'Q56611986' then
origin_lexeme_string = ustring.gsub(i18n['etymology_inheritance'], '$1', origin_lexeme_string)
end
end
local origin_origin = getEtymology(origin_lexeme)
local new_etymology_string = ''
if origin_origin ~= '' and origin_origin ~= nil then
new_etymology_string = origin_lexeme_string .. ' ← ' .. origin_origin
else
new_etymology_string = origin_lexeme_string
end
end
if etymology == '' then
etymology = new_etymology_string
elseif origin_lexeme_string ~= nil then
etymology = etymology .. ' ' .. origin_lexeme_string
end
end
if current_roots ~= '' then
etymology = etymology .. ' ' .. current_roots
end
if current_combines ~= '' and etymology ~= nil then
etymology = etymology .. '<br/>(' .. current_combines .. ')'
end
return etymology
end
local function getPronunciation( frame, current_lexeme, lang_name, lex_cat )
local pronunciations = {}
local base_form = getPronunciationBaseForm(lang_name, lex_cat )
if base_form ~= nil then
for i, stmt in pairs(base_form:getAllStatements('P443')) do -- উচ্চারণের অডিও
local pronunciation_file = stmt.mainsnak.datavalue.value
local specifier_text = ''
local specifiers = {}
if stmt.qualifiers ~= nil then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in pairs(stmt.qualifiers[property_id]) do
local stmt_value = qual.datavalue.value.id
table.insert(specifiers, wb.getLabel(stmt_value))
end
end
end
if #specifiers > 0 then
specifier_text = table.concat(specifiers, "'', ''")
end
local audio_text
if specifier_text ~= '' then
audio_text = i18n['text_audio'] .. ' (' .. specifier_text .. ')'
else
audio_text = i18n['text_audio']
end
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title= i18n['template_audio'],
args = {lang_name, pronunciation_file, audio_text}
})
end
local ipa_transcription = base_form:getAllStatements('P898') -- - আধ্বব প্রতিলিপিকরণ
local iso15919_transcription = getOneStringForProperty(base_form, 'P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ
local itrans = getOneStringForProperty(base_form, 'P8881') -- ITRANS
local iast = getOneStringForProperty(base_form, 'P7581') -- আইএএসটি প্রতিলিপিকরণ
local xsampa = getOneStringForProperty(base_form, 'P2859')
-- @TODO: অডিও ও প্রতিলিপিকরণ দুটোই থাকলে সেই ক্ষেত্রে একটার ঠিক পরেই আরেকটা দেখানো উচিত
if #ipa_transcription ~= 0 then
for i, stmt in pairs(ipa_transcription) do
local ipa_text = stmt.mainsnak.datavalue.value
local specifier_text = ''
local specifiers = {}
if stmt.qualifiers ~= nil then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in ipairs(stmt.qualifiers[property_id]) do
table.insert(specifiers, wb.getLabel( qual.datavalue.value.id ))
end
end
end
if #specifiers > 0 then
specifier_text = "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
table.insert(pronunciations, '* ' .. specifier_text .. frame:expandTemplate{
title= i18n['template_ipa'],
args = {lang_name, ipa_text} .. '\n' .. callWikifunctionsFunction('Z30837|' .. ipa_text, frame)
})
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
elseif lang_name == 'বাংলা' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='bn-IPA',
})
elseif lang_name == 'আরবি' then
local lemma = current_lexeme:getLemma('ar')
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='ar-IPA',
args={lemma}
})
elseif lang_name == 'ফালা' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fax-pron',
})
elseif lang_name == 'ফিনীয়' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fi-IPA',
})
end
if iso15919_transcription ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_iso15919'] .. iso15919_transcription)
end
if itrans ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_itrans'] .. itrans)
end
if iast ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_iast'] .. iast)
end
if xsampa ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_xsampa'] .. xsampa)
end
end -- {{আধ্বব|en|/ˈɪntəvjuː/}}
return table.concat(pronunciations, '\n')
end
function getAlternativeSpellings( current_lexeme )
local alt_spellings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P11577')) do -- বিকল্প বানান
if stmt.mainsnak.datavalue ~= nil then
table.insert(alt_spellings, '* ' .. getLinkedLemmata(getEntity(stmt.mainsnak.datavalue.value.id)))
end
end
return table.concat(alt_spellings, '\n')
end
local function heading_level(text, level)
local heading_delimiter = string.rep('=', level)
return heading_delimiter .. ' ' .. text .. ' ' .. heading_delimiter
end
function get_any_notes(sections, args, keys)
local notes = {}
for i, v in ipairs(keys) do
if args[v] ~= nil then
table.insert(notes, args[v])
end
end
return notes
end
function add_specific_notes(sections, notes)
for i, v in ipairs(notes) do
table.insert(sections, v)
end
end
local function add_any_notes(sections, args, keys)
for i, v in ipairs(keys) do
if args[v] ~= nil then
table.insert(sections, args[v])
end
end
end
local function getMatchingLemmaForPageTitle(lexeme, title)
local lemmas = lexeme:getLemmas()
local matched_lemma
for _, lemma_entry in ipairs(lemmas) do
local lemma = lemma_entry[1]
local clean_lemma = normalizeLemmas(lemma)
if clean_lemma == title then
matched_lemma = lemma
break
end
end
return matched_lemma
end
local function buildLanguageAgnosticInflectionTable()
local has_image = false
local form_images = {}
for i, form in ipairs(forms) do
local form_image = form:getAllStatements('P7407')
if next(form_image) ~= nil then
form_images[i] = form_image[1].mainsnak.datavalue.value
has_image = true
end
end
local table_class = "wikitable mw-collapsible sortable"
if not has_image then
table_class = table_class .. " mw-collapsed"
end
local text = "{| class='" .. table_class .. "' style='border:solid 1px rgb(80%,80%,100%); text-align:center;'\n"
text = text .. "|+ " .. i18n['heading_inflection_table'] .. "\n"
text = text .. "|- \n"
text = text .. "! " .. i18n['heading_form'] .. " !! " .. i18n['heading_grammatical_features']
if has_image then
text = text .. " !! " .. (i18n['heading_image'])
end
text = text .. " \n"
for i, form in ipairs(forms) do
local rep = form:getRepresentations()
local feat = form:getGrammaticalFeatures()
local rep_text = ""
for j, r in pairs(rep) do
if rep_text == "" then
rep_text = r[1]
else
rep_text = rep_text .. " / " .. r[1]
end
end
local feat_text = ""
if feat ~= nil then
for j, f in ipairs(feat) do
local label = wb.getLabel(f)
if feat_text == "" then
feat_text = label
else
feat_text = feat_text .. ", " .. label
end
end
end
text = text .. "|-\n"
text = text .. "| " .. (rep_text ~= "" and rep_text or "—")
text = text .. " || " .. (feat_text ~= "" and feat_text or "—")
if has_image then
local image_cell = "—"
if form_images[i] ~= nil then
image_cell = "[[চিত্র:" .. form_images[i] .. "|50px]]"
end
text = text .. " || " .. image_cell
end
text = text .. "\n"
end
text = text .. "|}"
return text
end
function p.all( frame )
local args = getArgs(frame)
local lexeme_id = args[1]
local current_lexeme = getEntity(lexeme_id)
local current_language = current_lexeme:getLanguage()
local senses = current_lexeme:getSenses()
local add_heading = true
forms = current_lexeme:getForms()
if args[2] ~= nil then
local val = mw.text.trim(tostring(args[2]))
if val == "false" or val == "0" or val == "না" then
add_heading = false
end
end
local references_seen = {}
local sections = {}
local lang_name = wb.getLabel(current_language)
if add_heading == true then
local lang_heading = "== " .. lang_name .. " =="
table.insert(sections, lang_heading)
end
local lex_cat = current_lexeme:getLexicalCategory()
lang_code = getLexemeLanguageCode(current_lexeme)
local title = mw.title.getCurrentTitle().text
local lang_category = getLanguageForCategories(current_language, title)
local cat = i18n.lang_category(wb.getLabel(lex_cat), wb.getLabel(lang_category))
local lex_cat_template
if cat ~= nil then
table.insert(sections, '===' .. wb.getLabel(lex_cat) .. cat .. frame:expandTemplate{
title = i18n['template_anchor'],
args = { lexeme_id }
} .. '===')
table.insert(sections, frame:expandTemplate{
title= i18n['template_lexeme'],
args = {lexeme_id}
})
add_any_notes(sections, args, i18n['manual_category'])
local etymology = getEtymology( current_lexeme )
if etymology ~= '' and etymology ~= nil then
table.insert(sections, heading_level(i18n['heading_etymology'], 4))
table.insert(sections, tostring(etymology))
end
add_any_notes(sections, args, i18n['manual_etymology'])
local pronunciation = getPronunciation( frame, current_lexeme, lang_name, lex_cat )
if pronunciation ~= '' then
table.insert(sections, heading_level(i18n['heading_pronunciation'], 4))
table.insert(sections, tostring(pronunciation))
end
add_any_notes(sections, args, i18n['manual_pronunciation'])
local alternative_spellings = getAlternativeSpellings( current_lexeme )
if alternative_spellings ~= '' then
table.insert(sections, heading_level(i18n['heading_alternative_spellings'], 4))
table.insert(sections, alternative_spellings)
end
if lang_code ~= nil and lang_code ~= 'ksy' and lang_code ~= 'rkt' then -- Skip for Kharia Thar, Rangpuri
if lex_cat == 'Q34698' then -- বিশেষণ
lex_cat_template = safeExpand(frame, lang_code .. '-adj')
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষণ')
end
elseif lex_cat == 'Q1084' then -- @TODO: Also check for plural forms
local gender
local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ
if #stmts ~= 0 then
if #stmts == 1 then
local gender_qid = stmts[1].mainsnak.datavalue.value.id
if gender_qid == 'Q499327' then
gender = 'm'
elseif gender_qid == 'Q1775415' then
gender = 'f'
elseif gender_qid == 'Q1775461' then
gender = 'n'
elseif gender_qid == 'Q1305037' then
gender = 'c'
end
end
else
for i, stmt in pairs(stmts) do
local qid = stmts[i].mainsnak.datavalue.value.id
if qid == 'Q499327' then
gender = gender .. 'm'
elseif qid == 'Q1775415' then
gender = gender .. 'f'
end
end
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
if current_language == 'Q13955' then
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
lex_cat_template = frame:expandTemplate{title='ar-noun', args={matched_lemma,gender}}
else
lex_cat_template = frame:expandTemplate{title='ar-noun', args={nil,gender}}
end
elseif current_language == 'Q29919' then
lex_cat_template = frame:expandTemplate{title='arz-noun', args={g=gender}}
elseif current_language == 'Q397' then
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
lex_cat_template = frame:expandTemplate{title='la-noun', args={matched_lemma,g=gender}}
end
elseif current_language == 'Q11059' then
lex_cat_template = frame:expandTemplate{title='sa-noun', args={g=gender}}
elseif current_language ~= 'Q1860' then -- These templates require the gender to be passed as the 1st argument.
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix'], {gender})
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix_fallback'], {gender})
end
end
end
end
-- elseif lex_cat == 'Q147276' then
-- lex_cat_template = safeExpand(frame, lang_code .. '-proper noun', {gender})
-- if not lex_cat_template then
-- lex_cat_template = safeExpand(frame, lang_code .. '-নামবাচক বিশেষ্য', {gender})
-- end
end
if lex_cat_template ~= nil then
table.insert(sections, lex_cat_template)
else
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
table.insert(sections, heading_level(matched_lemma, 4))
else
table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]')
end
end
local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name))
table.insert(sections, tostring(meanings))
add_any_notes(sections, args, i18n['manual_meaning'])
local instance_of = current_lexeme:getBestStatements('P31') -- সত্ত্বার ধরন
if #instance_of ~= 0 then
local instance_of_entity = instance_of[1].mainsnak.datavalue.value.id
if instance_of_entity == 'Q40437546' or instance_of_entity == 'Q120831827' or instance_of_entity == 'Q120717979' or instance_of_entity == 'Q124476844' then -- @TODO: generalise this so all types of roots are shown
table.insert(sections, i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity))
elseif instance_of_entity == 'Q376431' then -- বর্ণের নাম
table.insert(sections, i18n.tocatlink(lang_code .. ':রং'))
end
end
local translations = getTranslations(frame, senses)
if translations ~= nil then
table.insert(sections, translations)
end
-- (!) বিশেষ ভাষার বিভক্তির সারণি যদি থাকে সেগুলো এখানে নতুন if বিবৃতি যোগ করা যায়।
if next(forms) ~= nil then
if current_language == 'Q9610' then -- বাংলা
local conjTable = require('মডিউল:আভিধানিক উপাত্ত/Q9610').getInflectionTable(frame, current_lexeme)
table.insert(sections, conjTable) -- Bengali adjectives do not need any table thanks to the bn-adj template.
--elseif current_language == 'Q13955' then -- আরবি
-- if lex_cat == 'Q1084' then
-- table.insert(sections, frame:expandTemplate{title='ar-decl-noun', args={lemma}})
-- end
elseif current_language == 'Q188' then -- জার্মান
if lex_cat == 'Q1084' then
table.insert(sections, callWikifunctionsFunction('Z28602|' .. lexeme_id .. '|', frame))
end
else
if current_language ~= 'Q1860' then -- ইংরেজি
table.insert(sections, buildLanguageAgnosticInflectionTable())
end
end
end
local reference_notes = get_any_notes(sections, args, i18n['manual_reference'])
if #references_seen > 0 or #reference_notes > 0 then
table.insert(sections, heading_level(i18n['heading_references'], 4))
table.insert(sections, frame:extensionTag('references'))
add_specific_notes(sections, reference_notes)
end
local external_link_table = getExternalLinks ( current_lexeme )
if #external_link_table > 0 then
local external_links = '* ' .. table.concat(external_link_table, '\n* ')
table.insert(sections, heading_level(i18n['heading_external_links'], 4))
table.insert(sections, external_links)
end
add_any_notes(sections, args, i18n['manual_external_link'])
if #references_seen == 0 and #reference_notes == 0 and #external_link_table == 0 and #get_any_notes(sections, args, i18n['manual_external_link']) == 0 then
if i18n['category_rfref'][lang_category] ~= nil then
table.insert(sections, i18n.tocatlink(i18n['category_rfref'][lang_category]))
else
table.insert(sections, i18n.tocatlink(i18n['category_rfref']['_']))
end
end
return table.concat(sections,"\n\n")
end
return p
czb4pd3wkswaeogq6krs0iej5lhv4nf
508152
508151
2026-04-23T13:27:59Z
Redmin
6857
508152
Scribunto
text/plain
local p = {}
local i18n = require('মডিউল:আভিধানিক উপাত্ত/i18n')
local references = require('মডিউল:উইকিউপাত্ত তথ্যসূত্র বিন্যাসকরণ').format
local getArgs = require('Module:Arguments').getArgs
local formatter_urls = require('মডিউল:আভিধানিক উপাত্ত/urls').formatter_urls
local wb = mw.wikibase
local ustring = mw.ustring
local html = mw.html
local mw_lang = mw.language
local entity_cache = {}
local reference_cache = {}
local forms
local lang_code
local function countWords(string)
local count = 0
for word in ustring.gmatch(string, "%S+") do
count = count + 1
end
return count
end
local function normalizeLemmas(text)
text = mw.ustring.gsub(text, "ٰ", "")
text = mw.ustring.gsub(text, "ِ", "")
text = mw.ustring.gsub(text, "[ً-ٟ]", "")
text = mw.ustring.gsub(text, "أ", "ا")
--text = mw.ustring.gsub(text, "إ", "ا")
text = mw.ustring.gsub(text, "آ", "ا")
return text
end
local function serializeTable(val, name, skipnewlines, depth) -- https://stackoverflow.com/a/6081639
skipnewlines = skipnewlines or false
depth = depth or 0
local tmp = string.rep(" ", depth)
if name then tmp = tmp .. name .. " = " end
if type(val) == "table" then
tmp = tmp .. "{" .. (not skipnewlines and "\n" or "")
for k, v in pairs(val) do
tmp = tmp .. serializeTable(v, k, skipnewlines, depth + 1) .. "," .. (not skipnewlines and "\n" or "")
end
tmp = tmp .. string.rep(" ", depth) .. "}"
elseif type(val) == "number" then
tmp = tmp .. tostring(val)
elseif type(val) == "string" then
tmp = tmp .. string.format("%q", val)
elseif type(val) == "boolean" then
tmp = tmp .. (val and "true" or "false")
else
tmp = tmp .. "\"[inserializeable datatype:" .. type(val) .. "]\""
end
return tmp
end
-- Use this to safely expand templates when you are not sure that they exist.
local function safeExpand(frame, title, args)
local success, result = pcall(function()
return frame:expandTemplate{ title = title, args = args }
end)
if result:find('does not exist') then -- expandTemplate{} doesn't seem to throw any error that can be handled with pcall() so string search is the only viable option.
return nil
end
return result
end
local function getReference( id, reference )
local out_id = nil
local url_value
if reference_cache[id] == nil then
local ref_text = references(reference, wb, mw_lang, i18n['content_lang_code'], i18n['wikipedia'])
if reference.snaks ~= nil then
if reference.snaks['P248'] ~= nil then
for _, snak in pairs(reference.snaks['P248']) do
if snak.datavalue and snak.datavalue.value.id == 'Q428' then -- কুরআন
ref_text = ustring.gsub(ref_text, 'নামক অনুচ্ছেদ', 'নং আয়াত')
break
end
end
end
if reference.snaks['P854'] ~= nil then
local snak = reference.snaks['P854'][1]
if snak.datavalue then
url_value = snak.datavalue.value
end
end
end
if url_value ~= nil then
ref_text = ref_text .. ', [' .. url_value .. ' সংযোগ]'
end
reference_cache[id] = ref_text
else
out_id = id
end
return {out_id, reference_cache[id]}
end
local function getEntity( id )
if entity_cache[id] == nil then
entity_cache[id] = wb.getEntity(id)
end
return entity_cache[id] ~= false and entity_cache[id] or nil
end
local function getLexemeLanguageCode(current_lexeme)
local lang_item_id = current_lexeme:getLanguage()
if lang_item_id == nil then
return nil
end
local lang_entity = getEntity(lang_item_id)
if lang_entity == nil then
return nil
end
for i, statement_property in ipairs({'P305','P424', 'P220'}) do -- আইইটিএফ ভাষা ট্যাগ, উইকিমিডিয়া ভাষা কোড, আইএসও ৬৩৯-৩
local statements = lang_entity:getBestStatements(statement_property)
if statements[1] ~= nil then
return statements[1].mainsnak.datavalue.value
end
end
return nil
end
-- Return the first form of the lexeme which has exactly the given grammatical feature.
local function formWithSingleGrammaticalFeature( item_id )
for i = 1, #forms do
local grammaticalFeatures = forms[i]:getGrammaticalFeatures()
if #grammaticalFeatures == 1 and grammaticalFeatures[1] == item_id then
return forms[i]
end
end
return nil
end
local function getArticleLinkTemplate(frame, stmt_value)
local template = ''
local sitelink = getEntity(stmt_value):getSitelink(i18n['wikipedia'])
if sitelink ~= nil then
template = frame:expandTemplate{
title=i18n['template_wikipedia'],
args={sitelink}
}
end
return template
end
local function getArticleLinks (frame, sense )
local article_links = ''
for i, stmt in pairs(sense:getAllStatements('P5137')) do -- এই অর্থের জন্য আইটেম
article_links = article_links .. getArticleLinkTemplate(frame, stmt.mainsnak.datavalue.value.id)
end
for i, stmt in pairs(sense:getAllStatements('P9970')) do -- এই অর্থের জন্য বিধেয়
article_links = article_links .. getArticleLinkTemplate(frame, stmt.mainsnak.datavalue.value.id)
end
return article_links
end
-- @TODO: Generalise
local function expandTemplateForProperty(frame, object, property, template)
local lemmas = {}
local n = 0
for _, stmt in pairs(object:getAllStatements(property)) do
local lex = wb.lexeme.splitLexemeId(stmt.mainsnak.datavalue.value.id)
lex = getEntity(lex)
n = n + 1
lemmas[n] = lex:getLemma(lang_code)
end
if not lang_code or n == 0 then
return ''
end
-- Build args: first lang_code, then lemmas
local args = {lang_code}
for i = 1, n do
args[#args + 1] = lemmas[i]
end
return frame:expandTemplate{
title = template,
args = args
}
end
local function getExternalLinks( entity ) -- T418639
local external_links = {}
if entity.claims == nil then return external_links end
for property_id, statements in pairs(entity.claims) do
local formatter_url = formatter_urls[property_id]
if formatter_url ~= nil then
local property_source = wb.getBestStatements(property_id, 'P9073')
local source_name
if next(property_source) ~= nil then
source_name = wb.getLabel(property_source[1].mainsnak.datavalue.value.id)
or property_source[1].mainsnak.datavalue.value.id
else
source_name = wb.getLabel(property_id) or property_id
end
for i = 1, #statements do
local stmt = statements[i]
if stmt.mainsnak.datavalue then
local formatted_link = ustring.gsub(
ustring.gsub(formatter_url, '$1', stmt.mainsnak.datavalue.value),
' ', '+'
)
table.insert(external_links,
'[' .. formatted_link .. ' ' .. source_name .. ']')
end
end
end
end
return external_links
end
p.getExternalLinks = getExternalLinks -- রেখে দিন যাতে ডিবাগিং সম্ভব হয়
local function termSpan( term )
local text = term[1]
local lang = term[2]
local dir = mw_lang.new( lang ):getDir()
local span = html.create( 'span' )
span:attr( 'lang', lang )
:attr( 'dir', dir )
:wikitext( text )
return tostring( span )
end
local function termLink( term, lang_qid )
local text = term[1]
local lang = term[2]
local dir = mw_lang.new( lang ):getDir()
local span = html.create( 'span' )
span:attr( 'lang', lang )
:attr( 'dir', dir )
:wikitext( '[[' .. text .. '#' .. wb.getLabel(lang_qid) .. '|' .. text .. ']]' )
return tostring( span )
end
local function getLemmata( current_lexeme )
local lemma_string = ''
for i, rep in pairs(current_lexeme:getLemmas()) do
if lemma_string == '' then
lemma_string = termSpan(rep)
else
lemma_string = lemma_string .. '/' .. termSpan(rep)
end
end
return lemma_string
end
local function getLinkedLemmata( current_lexeme )
local lemma_string = ''
for i, rep in pairs(current_lexeme:getLemmas()) do
if lemma_string == '' then
lemma_string = termLink(rep, current_lexeme:getLanguage())
else
lemma_string = lemma_string .. '/' .. termLink(rep, current_lexeme:getLanguage())
end
end
return lemma_string
end
local function getExamples( current_lexeme, sense_id, references_seen )
local examples = html.create('dl')
for i, stmt in pairs(current_lexeme:getAllStatements('P5831')) do -- ব্যবহারের উদাহরণ
if stmt.qualifiers ~= nil and stmt.qualifiers['P6072'] ~= nil and stmt.qualifiers['P6072'][1].datavalue.value.id == sense_id then -- বিষয়ে লেক্সিমের অর্থ
example_text = ustring.gsub(stmt.mainsnak.datavalue.value.text, ' / ','<br/>')
example_lang = stmt.mainsnak.datavalue.value.language
local example_form_strs = {}
if stmt.qualifiers['P1810'] ~= nil then
table.insert(example_form_strs, stmt.qualifiers['P1810'][1].datavalue.value)
elseif stmt.qualifiers['P5830'] ~= nil then
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
for i, rep in pairs(example_form:getRepresentations()) do
table.insert(example_form_strs, rep[1])
end
end
example_str = nil
for i, example_form_str in pairs(example_form_strs) do
new_example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
if new_example_text ~= example_text then
example_str = termSpan({new_example_text, example_lang})
break
end
new_example_text = example_text
end
if example_str == nil then
example_str = termSpan({example_text, example_lang})
end
local reference_text = ''
if stmt.references ~= nil then
for j, reference in pairs(stmt.references) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. got_reference[2]
end
end
if example_str ~= nil then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
end
for i, stmt in pairs(wb.getAllStatements(sense_id, 'P5831')) do -- ব্যবহারের উদাহরণ
example_text = ustring.gsub(stmt.mainsnak.datavalue.value.text, ' / ','<br/>')
example_lang = stmt.mainsnak.datavalue.value.language
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
local example_form_str = nil
if stmt.qualifiers['P1810'] ~= nil then
example_form_str = stmt.qualifiers['P1810'][1].datavalue.value
end
if example_form_str == nil then
example_form_str = example_form:getRepresentation(i18n['content_lang_code'])
end
if example_form_str == nil then
example_form_str = example_form:getRepresentations()[1][1]
end
example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
example_str = termSpan({example_text, example_lang})
local reference_text = ''
if stmt.references ~= nil then
for j, reference in pairs(stmt.references) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. got_reference[2]
end
end
if example_str ~= nil then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
return { tostring(examples) , references_seen }
end
-- This calls frame:preprocess() instead of :callParserFunction() because the latter does not work for Wikifunctions function calls yet (see https://www.wikifunctions.org/wiki/Wikifunctions:Embedded_function_calls).
local function callWikifunctionsFunction(args, frame)
return frame:preprocess('{{#function:' .. args .. '}}')
end
local function checkTitleCodePointInRange(title, start_point, end_point)
return ustring.find( title, '[' ..ustring.char(start_point) .. '-' .. ustring.char(end_point) .. ']' )
end
local function getLanguageForCategories( lang_id, current_page_title )
-- বিশেষ ভাষার জন্য
if lang_id == 'Q11051' then -- হিন্দি/উর্দু
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- উর্দু
lang_id = 'Q11051ur'
elseif checkTitleCodePointInRange(current_page_title, 0x0900, 0x097f) ~= nil then -- হিন্দি
lang_id = 'Q11051hi'
end
elseif lang_id == 'Q58635' then -- পাঞ্জাবি
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- শাহমুখী
lang_id = 'Q58635pnb'
elseif checkTitleCodePointInRange(current_page_title, 0x0a00, 0x0a7f) ~= nil then -- গুরুমুখী
lang_id = 'Q58635pa'
end
elseif lang_id == 'Q56356571' then -- নয়া ফার্সি ভাষা
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- ফার্সি (ইরান/আফগানিস্তান)
lang_id = 'Q56356571fa'
elseif checkTitleCodePointInRange(current_page_title, 0x0400, 0x04ff) ~= nil then -- তাজিক
lang_id = 'Q56356571tg'
end
end
return lang_id
end
local function getOneStringForProperty(object, property)
local val
local stmts = object:getAllStatements(property)
if #stmts ~= 0 then
val = stmts[1].mainsnak.datavalue.value
end
return val
end
local function getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved
if #senses == 0 then
return nil
end
local all_translations = {}
for _, sense in pairs(senses) do
local translation_set = {}
local gloss = sense:getGloss('bn')
for _, stmt in pairs(sense:getAllStatements('P5972')) do
local translation = stmt.mainsnak.datavalue.value.id
local lexeme_id = wb.lexeme.splitLexemeId(translation)
local language = wb.getLabel(getEntity(lexeme_id):getLanguage())
table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>')
end
if #translation_set > 0 then
local block = frame:expandTemplate{ title = i18n['template_trans-top'], args = { gloss } }
block = block .. table.concat(translation_set, '\n') .. frame:expandTemplate{ title = i18n['template_trans-bottom'] }
table.insert(all_translations, block)
end
end
if #all_translations == 0 then
return nil
end
return '====' .. i18n['heading_translation'] .. '==== \n' .. table.concat(all_translations, '\n')
end
local createicon = function(langcode, entityID, propertyID)
langcode = langcode or ""
propertyID = propertyID or ""
local icon = " <span class='penicon autoconfirmed-show'>[["
-- " <span data-bridge-edit-flow='overwrite' class='penicon'>[[" -> enable Wikidata Bridge
.. "File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt="
.. i18n['edit_wikidata']
.. "|link=https://www.wikidata.org/entity/" .. entityID
if langcode ~= "" then icon = icon .. "?uselang=" .. langcode end
if propertyID ~= "" then icon = icon .. "#" .. propertyID end
icon = icon .. "|" .. i18n['edit_wikidata'] .. "]]</span>"
return icon
end
local function getMeanings( frame, args, current_lexeme, senses, references_seen, language_name)
if #senses == 0 then
return {createicon(i18n['content_lang_code'], current_lexeme:getId()) .. "''" .. i18n['text_category_rfdef'] .. "''" .. i18n.tocatlink(i18n['category_rfdef']), references_seen}
end
local meanings = html.create( 'ol' )
for i, sense in pairs(senses) do
local gloss_text_parts = {}
local main_gloss_text = frame:expandTemplate{
title=i18n['template_anchor'],
args={sense:getId()}
}
local specifiers = {}
for k, property_id in ipairs({'P6084', 'P6191', 'P9488'}) do -- অবস্থান যেখানে শব্দার্থ ব্যবহৃত, যে রীতিতে শব্দার্থ ব্যবহৃত হয়, যে ক্ষেত্রে ব্যবহৃত
for i, stmt in pairs(sense:getAllStatements(property_id)) do
local stmt_value = stmt.mainsnak.datavalue.value.id
local reference_text = ''
local refs = stmt.references
if refs ~= nil then
for j, reference in pairs(refs) do
table.insert(references_seen, reference.hash)
got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. frame:extensionTag('ref', got_reference[2])
end
table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code']) .. reference_text)
end
end
end
if #specifiers > 0 then
main_gloss_text = main_gloss_text .. "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
local gloss = sense:getGloss( i18n['content_lang_code'] )
if gloss ~= nil then
if countWords(gloss) == 1 then
main_gloss_text = main_gloss_text .. "[[" .. gloss .. "#" .. i18n['content_lang_name'] .. "|" .. gloss .. "]]"
else
main_gloss_text = main_gloss_text .. gloss
end
if gloss:match('^প্রদত্ত%s*(%S-)%s*নাম$') then -- given names
main_gloss_text = main_gloss_text .. i18n.tocatlink(language_name .. ' ' .. i18n['category_given_names'])
end
else
local other_gloss_text = nil
local other_gloss_lang = nil
local item_label_gloss_parts = {}
for k, stmt in pairs(sense:getAllStatements('P5137')) do -- যদি 'এই অর্থের জন্য আইটেম' মানের বাংলা লেবেল থাকে
local stmt_value = stmt.mainsnak.datavalue.value.id
local stmt_label = wb.getLabel(stmt_value)
if stmt_label ~= nil then
table.insert(item_label_gloss_parts, '[[:d:' .. stmt_value .. '|' .. stmt_label .. ']]')
end
end
if #item_label_gloss_parts > 0 then
other_gloss_text = table.concat(item_label_gloss_parts, '; ')
end
if other_gloss_text == nil then
for i, fallback_lang in ipairs(mw_lang.getFallbacksFor( i18n['content_lang_code'] )) do
if sense:getGloss( fallback_lang ) ~= nil then
other_gloss_text, other_gloss_lang = sense:getGloss( fallback_lang )
end
end
if other_gloss_lang == nil then
local glosses = sense:getGlosses()
for j, gloss in pairs(glosses) do
other_gloss_text = gloss[1]
other_gloss_lang = gloss[2]
break
end
end
main_gloss_text = main_gloss_text .. other_gloss_text .. "<sup><em>" .. mw_lang.fetchLanguageName(other_gloss_lang, i18n['content_lang_code']) .. "</em></sup>"
else
main_gloss_text = main_gloss_text .. "''" .. other_gloss_text .. "''"
end
main_gloss_text = main_gloss_text .. i18n.tocatlink(i18n['category_rfdef_equivalent'])
end
local synonym = expandTemplateForProperty(frame, sense, 'P5973', i18n['template_synonym'])
if synonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. synonym
end
local antonym = expandTemplateForProperty(frame, sense, 'P5974', i18n['template_antonym'])
if antonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. antonym
end
local hypernym = expandTemplateForProperty(frame, sense, 'P6593', i18n['template_hypernym'])
if hypernym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. hypernym
end
if lex_cat == 'Q1084' or lex_cat == 'Q147276' then -- noun or proper noun
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-noun'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
elseif lex_cat == 'Q34698' then
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-adj'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
end
table.insert(gloss_text_parts, main_gloss_text .. createicon(i18n['content_lang_code'], sense:getId()))
for i, stmt in pairs(sense:getAllStatements('P8394')) do -- টিপ্পনীর উদ্ধৃতি
gloss_quote = termSpan({stmt.mainsnak.datavalue.value.text, stmt.mainsnak.datavalue.value.language})
if stmt.references[1] ~= nil then
local got_reference = getReference ( stmt.references[1].hash, stmt.references[1] )
gloss_quote = '"' .. gloss_quote .. '" ' .. got_reference[2]
end
table.insert(references_seen, stmt.references[1].hash)
table.insert(gloss_text_parts, frame:extensionTag('ref', gloss_quote))
end
for i, stmt in pairs(sense:getAllStatements('P1343')) do -- বর্ণিত উৎস
-- TODO: do away with making fake reference objects
local fake_reference = { ['snaks'] = {} }
fake_reference.snaks['P248'] = { [1] = stmt.mainsnak }
qualifiers_order = stmt['qualifiers-order']
if qualifiers_order ~= nil then
for i, k in ipairs(qualifiers_order) do fake_reference.snaks[k] = stmt.qualifiers[k] end
end
fake_reference.hash = mw.hash.hashValue('sha3-512', serializeTable(fake_reference))
table.insert(references_seen, fake_reference.hash)
local got_reference = getReference(fake_reference.hash, fake_reference)
if got_reference[1] == nil then
table.insert(gloss_text_parts, frame:extensionTag('ref', got_reference[2], {name = fake_reference.hash}))
else
table.insert(gloss_text_parts, frame:extensionTag{name = 'ref', content='', args = {name = got_reference[1]}})
end
end
local first_sense_image = ''
local sense_images = sense:getAllStatements('P18')
if next(sense_images) ~= nil then
first_sense_image = sense_images[1].mainsnak.datavalue.value
end
if first_sense_image ~= '' then
table.insert(gloss_text_parts, '[[চিত্র:' .. first_sense_image .. "|thumb|'''" .. getLemmata(current_lexeme) .. "'''—" .. main_gloss_text .. ']]')
end
local idlinks = getExternalLinks(sense)
if #idlinks > 0 then
local idlinktext = '<small>('
for _, idlink in pairs(idlinks) do
idlinktext = idlinktext .. idlink .. '\n'
end
idlinktext = idlinktext .. ')</small>'
table.insert(gloss_text_parts, idlinktext)
end
local externallinks = getArticleLinks(frame, sense)
if externallinks ~= '' then
table.insert(gloss_text_parts, externallinks)
end
local new_notes = {}
local sense_keys = { sense:getId(), string.sub(sense:getId(), string.find(sense:getId(), '-')+1) }
for _, v in ipairs(sense_keys) do
if args[v] ~= nil then
table.insert(new_notes, args[v])
end
end
if #new_notes > 0 then
for _, v in ipairs(new_notes) do
if i == 1 then
table.insert(gloss_text_parts, '<br/>' .. v)
else
table.insert(gloss_text_parts, v)
end
end
end
local examples, references_seen = unpack(getExamples( current_lexeme, sense:getId(), references_seen ))
local gloss_text = table.concat(gloss_text_parts, '\n')
meanings:tag('li'):wikitext(gloss_text):wikitext(examples)
end
return {meanings, references_seen}
end
local function getPronunciationBaseForm( lang_name, lex_cat)
local base_form = nil
-- (!) অন্য ভাষার শব্দের যদি অন্য রকম মূল ফর্ম থাকে সেগুলো এখানে নতুন if বিবৃতি দিয়ে যোগ করা যায়।
if lang_name == 'বাংলা' then
if lex_cat == 'Q1084' then -- বিশেষ্য
base_form = formWithSingleGrammaticalFeature( 'Q131105' ) -- কর্তৃকারক
elseif lex_cat == 'Q24905' then -- ক্রিয়া
base_form = formWithSingleGrammaticalFeature( 'Q1350145' ) -- ক্রিয়া বিশেষ্য
end
end
if base_form == nil then
for i, form in pairs(forms) do
base_form = form
break
end
end
return base_form
end
local function getCombines( current_lexeme )
local combines = ''
local index_mappings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P5238')) do
if stmt.qualifiers ~= nil and stmt.qualifiers['P1545'] ~= nil then -- ক্রম
local current_index = tonumber(stmt.qualifiers['P1545'][1].datavalue.value)
index_mappings[current_index] = stmt
end
end
if #index_mappings ~= 0 then
for i, stmt in ipairs(index_mappings) do
local part_lexeme_id = stmt.mainsnak.datavalue.value.id
local part_lexeme = getEntity(part_lexeme_id)
local current_substring = getLinkedLemmata(part_lexeme)
local part_etymology = getEtymology(part_lexeme)
if part_etymology ~= '' and part_etymology ~= nil then
current_substring = current_substring .. ' (← ' .. part_etymology .. ')'
end
if combines == '' then
combines = current_substring
else -- @TODO: This shoukd use the 'affix' template instead.
combines = combines .. ' + ' .. current_substring
end
end
end
return combines
end
function getRoots ( current_lexeme )
local stmts = current_lexeme:getAllStatements('P5920')
if #stmts == 0 then return '' end
local root_lexeme = getEntity(stmts[1].mainsnak.datavalue.value.id)
return '√' .. getLinkedLemmata(root_lexeme)
end
function getEtymology ( current_lexeme )
-- TODO: see if any etymology chains are not possible to render
local etymology = ''
local current_combines = getCombines(current_lexeme)
local current_roots = getRoots(current_lexeme)
local stmts = current_lexeme:getAllStatements('P5191')
if #stmts == 0 then
if current_roots ~= '' and current_combines ~= '' then
return current_roots .. '<br/>(' .. current_combines .. ')'
elseif current_roots ~= '' then
return current_roots
else
return current_combines
end
end
for i, stmt in pairs(stmts) do
local origin_lexeme_dv = stmt.mainsnak.datavalue -- If this is nil, the origin lexeme is not known.
if origin_lexeme_dv ~= nil then
local origin_lexeme = getEntity(origin_lexeme_dv.value.id)
local origin_lexeme_lang = origin_lexeme:getLanguage()
local origin_lexeme_string = getLinkedLemmata(origin_lexeme) .. ' (' .. wb.getLabel(origin_lexeme_lang) .. ')'
if stmt.qualifiers ~= nil and stmt.qualifiers['P5886'] ~= nil then
local mode_of_derivation = stmt.qualifiers['P5886'][1].datavalue.value.id
if mode_of_derivation == 'Q1345001' then
origin_lexeme_string = ustring.gsub(i18n['etymology_borrowing'], '$1', origin_lexeme_string)
elseif mode_of_derivation == 'Q845079' then
origin_lexeme_string = ustring.gsub(i18n['etymology_learned_borrowing'], '$1', origin_lexeme_string)
elseif mode_of_derivation == 'Q56611986' then
origin_lexeme_string = ustring.gsub(i18n['etymology_inheritance'], '$1', origin_lexeme_string)
end
end
local origin_origin = getEtymology(origin_lexeme)
local new_etymology_string = ''
if origin_origin ~= '' and origin_origin ~= nil then
new_etymology_string = origin_lexeme_string .. ' ← ' .. origin_origin
else
new_etymology_string = origin_lexeme_string
end
end
if etymology == '' then
etymology = new_etymology_string
elseif origin_lexeme_string ~= nil then
etymology = etymology .. ' ' .. origin_lexeme_string
end
end
if current_roots ~= '' then
etymology = etymology .. ' ' .. current_roots
end
if current_combines ~= '' and etymology ~= nil then
etymology = etymology .. '<br/>(' .. current_combines .. ')'
end
return etymology
end
local function getPronunciation( frame, current_lexeme, lang_name, lex_cat )
local pronunciations = {}
local base_form = getPronunciationBaseForm(lang_name, lex_cat )
if base_form ~= nil then
for i, stmt in pairs(base_form:getAllStatements('P443')) do -- উচ্চারণের অডিও
local pronunciation_file = stmt.mainsnak.datavalue.value
local specifier_text = ''
local specifiers = {}
if stmt.qualifiers ~= nil then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in pairs(stmt.qualifiers[property_id]) do
local stmt_value = qual.datavalue.value.id
table.insert(specifiers, wb.getLabel(stmt_value))
end
end
end
if #specifiers > 0 then
specifier_text = table.concat(specifiers, "'', ''")
end
local audio_text
if specifier_text ~= '' then
audio_text = i18n['text_audio'] .. ' (' .. specifier_text .. ')'
else
audio_text = i18n['text_audio']
end
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title= i18n['template_audio'],
args = {lang_name, pronunciation_file, audio_text}
})
end
local ipa_transcription = base_form:getAllStatements('P898') -- - আধ্বব প্রতিলিপিকরণ
local iso15919_transcription = getOneStringForProperty(base_form, 'P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ
local itrans = getOneStringForProperty(base_form, 'P8881') -- ITRANS
local iast = getOneStringForProperty(base_form, 'P7581') -- আইএএসটি প্রতিলিপিকরণ
local xsampa = getOneStringForProperty(base_form, 'P2859')
-- @TODO: অডিও ও প্রতিলিপিকরণ দুটোই থাকলে সেই ক্ষেত্রে একটার ঠিক পরেই আরেকটা দেখানো উচিত
if #ipa_transcription ~= 0 then
for i, stmt in pairs(ipa_transcription) do
local ipa_text = stmt.mainsnak.datavalue.value
local specifier_text = ''
local specifiers = {}
if stmt.qualifiers ~= nil then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in ipairs(stmt.qualifiers[property_id]) do
table.insert(specifiers, wb.getLabel( qual.datavalue.value.id ))
end
end
end
if #specifiers > 0 then
specifier_text = "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
table.insert(pronunciations, '* ' .. specifier_text .. frame:expandTemplate{
title= i18n['template_ipa'],
args = {lang_name, ipa_text}
} .. '\n' .. callWikifunctionsFunction('Z30837|' .. ipa_text, frame))
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
elseif lang_name == 'বাংলা' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='bn-IPA',
})
elseif lang_name == 'আরবি' then
local lemma = current_lexeme:getLemma('ar')
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='ar-IPA',
args={lemma}
})
elseif lang_name == 'ফালা' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fax-pron',
})
elseif lang_name == 'ফিনীয়' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fi-IPA',
})
end
if iso15919_transcription ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_iso15919'] .. iso15919_transcription)
end
if itrans ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_itrans'] .. itrans)
end
if iast ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_iast'] .. iast)
end
if xsampa ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_xsampa'] .. xsampa)
end
end -- {{আধ্বব|en|/ˈɪntəvjuː/}}
return table.concat(pronunciations, '\n')
end
function getAlternativeSpellings( current_lexeme )
local alt_spellings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P11577')) do -- বিকল্প বানান
if stmt.mainsnak.datavalue ~= nil then
table.insert(alt_spellings, '* ' .. getLinkedLemmata(getEntity(stmt.mainsnak.datavalue.value.id)))
end
end
return table.concat(alt_spellings, '\n')
end
local function heading_level(text, level)
local heading_delimiter = string.rep('=', level)
return heading_delimiter .. ' ' .. text .. ' ' .. heading_delimiter
end
function get_any_notes(sections, args, keys)
local notes = {}
for i, v in ipairs(keys) do
if args[v] ~= nil then
table.insert(notes, args[v])
end
end
return notes
end
function add_specific_notes(sections, notes)
for i, v in ipairs(notes) do
table.insert(sections, v)
end
end
local function add_any_notes(sections, args, keys)
for i, v in ipairs(keys) do
if args[v] ~= nil then
table.insert(sections, args[v])
end
end
end
local function getMatchingLemmaForPageTitle(lexeme, title)
local lemmas = lexeme:getLemmas()
local matched_lemma
for _, lemma_entry in ipairs(lemmas) do
local lemma = lemma_entry[1]
local clean_lemma = normalizeLemmas(lemma)
if clean_lemma == title then
matched_lemma = lemma
break
end
end
return matched_lemma
end
local function buildLanguageAgnosticInflectionTable()
local has_image = false
local form_images = {}
for i, form in ipairs(forms) do
local form_image = form:getAllStatements('P7407')
if next(form_image) ~= nil then
form_images[i] = form_image[1].mainsnak.datavalue.value
has_image = true
end
end
local table_class = "wikitable mw-collapsible sortable"
if not has_image then
table_class = table_class .. " mw-collapsed"
end
local text = "{| class='" .. table_class .. "' style='border:solid 1px rgb(80%,80%,100%); text-align:center;'\n"
text = text .. "|+ " .. i18n['heading_inflection_table'] .. "\n"
text = text .. "|- \n"
text = text .. "! " .. i18n['heading_form'] .. " !! " .. i18n['heading_grammatical_features']
if has_image then
text = text .. " !! " .. (i18n['heading_image'])
end
text = text .. " \n"
for i, form in ipairs(forms) do
local rep = form:getRepresentations()
local feat = form:getGrammaticalFeatures()
local rep_text = ""
for j, r in pairs(rep) do
if rep_text == "" then
rep_text = r[1]
else
rep_text = rep_text .. " / " .. r[1]
end
end
local feat_text = ""
if feat ~= nil then
for j, f in ipairs(feat) do
local label = wb.getLabel(f)
if feat_text == "" then
feat_text = label
else
feat_text = feat_text .. ", " .. label
end
end
end
text = text .. "|-\n"
text = text .. "| " .. (rep_text ~= "" and rep_text or "—")
text = text .. " || " .. (feat_text ~= "" and feat_text or "—")
if has_image then
local image_cell = "—"
if form_images[i] ~= nil then
image_cell = "[[চিত্র:" .. form_images[i] .. "|50px]]"
end
text = text .. " || " .. image_cell
end
text = text .. "\n"
end
text = text .. "|}"
return text
end
function p.all( frame )
local args = getArgs(frame)
local lexeme_id = args[1]
local current_lexeme = getEntity(lexeme_id)
local current_language = current_lexeme:getLanguage()
local senses = current_lexeme:getSenses()
local add_heading = true
forms = current_lexeme:getForms()
if args[2] ~= nil then
local val = mw.text.trim(tostring(args[2]))
if val == "false" or val == "0" or val == "না" then
add_heading = false
end
end
local references_seen = {}
local sections = {}
local lang_name = wb.getLabel(current_language)
if add_heading == true then
local lang_heading = "== " .. lang_name .. " =="
table.insert(sections, lang_heading)
end
local lex_cat = current_lexeme:getLexicalCategory()
lang_code = getLexemeLanguageCode(current_lexeme)
local title = mw.title.getCurrentTitle().text
local lang_category = getLanguageForCategories(current_language, title)
local cat = i18n.lang_category(wb.getLabel(lex_cat), wb.getLabel(lang_category))
local lex_cat_template
if cat ~= nil then
table.insert(sections, '===' .. wb.getLabel(lex_cat) .. cat .. frame:expandTemplate{
title = i18n['template_anchor'],
args = { lexeme_id }
} .. '===')
table.insert(sections, frame:expandTemplate{
title= i18n['template_lexeme'],
args = {lexeme_id}
})
add_any_notes(sections, args, i18n['manual_category'])
local etymology = getEtymology( current_lexeme )
if etymology ~= '' and etymology ~= nil then
table.insert(sections, heading_level(i18n['heading_etymology'], 4))
table.insert(sections, tostring(etymology))
end
add_any_notes(sections, args, i18n['manual_etymology'])
local pronunciation = getPronunciation( frame, current_lexeme, lang_name, lex_cat )
if pronunciation ~= '' then
table.insert(sections, heading_level(i18n['heading_pronunciation'], 4))
table.insert(sections, tostring(pronunciation))
end
add_any_notes(sections, args, i18n['manual_pronunciation'])
local alternative_spellings = getAlternativeSpellings( current_lexeme )
if alternative_spellings ~= '' then
table.insert(sections, heading_level(i18n['heading_alternative_spellings'], 4))
table.insert(sections, alternative_spellings)
end
if lang_code ~= nil and lang_code ~= 'ksy' and lang_code ~= 'rkt' then -- Skip for Kharia Thar, Rangpuri
if lex_cat == 'Q34698' then -- বিশেষণ
lex_cat_template = safeExpand(frame, lang_code .. '-adj')
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষণ')
end
elseif lex_cat == 'Q1084' then -- @TODO: Also check for plural forms
local gender
local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ
if #stmts ~= 0 then
if #stmts == 1 then
local gender_qid = stmts[1].mainsnak.datavalue.value.id
if gender_qid == 'Q499327' then
gender = 'm'
elseif gender_qid == 'Q1775415' then
gender = 'f'
elseif gender_qid == 'Q1775461' then
gender = 'n'
elseif gender_qid == 'Q1305037' then
gender = 'c'
end
end
else
for i, stmt in pairs(stmts) do
local qid = stmts[i].mainsnak.datavalue.value.id
if qid == 'Q499327' then
gender = gender .. 'm'
elseif qid == 'Q1775415' then
gender = gender .. 'f'
end
end
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
if current_language == 'Q13955' then
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
lex_cat_template = frame:expandTemplate{title='ar-noun', args={matched_lemma,gender}}
else
lex_cat_template = frame:expandTemplate{title='ar-noun', args={nil,gender}}
end
elseif current_language == 'Q29919' then
lex_cat_template = frame:expandTemplate{title='arz-noun', args={g=gender}}
elseif current_language == 'Q397' then
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
lex_cat_template = frame:expandTemplate{title='la-noun', args={matched_lemma,g=gender}}
end
elseif current_language == 'Q11059' then
lex_cat_template = frame:expandTemplate{title='sa-noun', args={g=gender}}
elseif current_language ~= 'Q1860' then -- These templates require the gender to be passed as the 1st argument.
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix'], {gender})
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix_fallback'], {gender})
end
end
end
end
-- elseif lex_cat == 'Q147276' then
-- lex_cat_template = safeExpand(frame, lang_code .. '-proper noun', {gender})
-- if not lex_cat_template then
-- lex_cat_template = safeExpand(frame, lang_code .. '-নামবাচক বিশেষ্য', {gender})
-- end
end
if lex_cat_template ~= nil then
table.insert(sections, lex_cat_template)
else
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
table.insert(sections, heading_level(matched_lemma, 4))
else
table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]')
end
end
local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name))
table.insert(sections, tostring(meanings))
add_any_notes(sections, args, i18n['manual_meaning'])
local instance_of = current_lexeme:getBestStatements('P31') -- সত্ত্বার ধরন
if #instance_of ~= 0 then
local instance_of_entity = instance_of[1].mainsnak.datavalue.value.id
if instance_of_entity == 'Q40437546' or instance_of_entity == 'Q120831827' or instance_of_entity == 'Q120717979' or instance_of_entity == 'Q124476844' then -- @TODO: generalise this so all types of roots are shown
table.insert(sections, i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity))
elseif instance_of_entity == 'Q376431' then -- বর্ণের নাম
table.insert(sections, i18n.tocatlink(lang_code .. ':রং'))
end
end
local translations = getTranslations(frame, senses)
if translations ~= nil then
table.insert(sections, translations)
end
-- (!) বিশেষ ভাষার বিভক্তির সারণি যদি থাকে সেগুলো এখানে নতুন if বিবৃতি যোগ করা যায়।
if next(forms) ~= nil then
if current_language == 'Q9610' then -- বাংলা
local conjTable = require('মডিউল:আভিধানিক উপাত্ত/Q9610').getInflectionTable(frame, current_lexeme)
table.insert(sections, conjTable) -- Bengali adjectives do not need any table thanks to the bn-adj template.
--elseif current_language == 'Q13955' then -- আরবি
-- if lex_cat == 'Q1084' then
-- table.insert(sections, frame:expandTemplate{title='ar-decl-noun', args={lemma}})
-- end
elseif current_language == 'Q188' then -- জার্মান
if lex_cat == 'Q1084' then
table.insert(sections, callWikifunctionsFunction('Z28602|' .. lexeme_id .. '|', frame))
end
else
if current_language ~= 'Q1860' then -- ইংরেজি
table.insert(sections, buildLanguageAgnosticInflectionTable())
end
end
end
local reference_notes = get_any_notes(sections, args, i18n['manual_reference'])
if #references_seen > 0 or #reference_notes > 0 then
table.insert(sections, heading_level(i18n['heading_references'], 4))
table.insert(sections, frame:extensionTag('references'))
add_specific_notes(sections, reference_notes)
end
local external_link_table = getExternalLinks ( current_lexeme )
if #external_link_table > 0 then
local external_links = '* ' .. table.concat(external_link_table, '\n* ')
table.insert(sections, heading_level(i18n['heading_external_links'], 4))
table.insert(sections, external_links)
end
add_any_notes(sections, args, i18n['manual_external_link'])
if #references_seen == 0 and #reference_notes == 0 and #external_link_table == 0 and #get_any_notes(sections, args, i18n['manual_external_link']) == 0 then
if i18n['category_rfref'][lang_category] ~= nil then
table.insert(sections, i18n.tocatlink(i18n['category_rfref'][lang_category]))
else
table.insert(sections, i18n.tocatlink(i18n['category_rfref']['_']))
end
end
return table.concat(sections,"\n\n")
end
return p
ggn9m8lxy4eo2oeuxgc0x20n0pgjtkw
508153
508152
2026-04-23T13:30:07Z
Redmin
6857
508153
Scribunto
text/plain
local p = {}
local i18n = require('মডিউল:আভিধানিক উপাত্ত/i18n')
local references = require('মডিউল:উইকিউপাত্ত তথ্যসূত্র বিন্যাসকরণ').format
local getArgs = require('Module:Arguments').getArgs
local formatter_urls = require('মডিউল:আভিধানিক উপাত্ত/urls').formatter_urls
local wb = mw.wikibase
local ustring = mw.ustring
local html = mw.html
local mw_lang = mw.language
local entity_cache = {}
local reference_cache = {}
local forms
local lang_code
local function countWords(string)
local count = 0
for word in ustring.gmatch(string, "%S+") do
count = count + 1
end
return count
end
local function normalizeLemmas(text)
text = mw.ustring.gsub(text, "ٰ", "")
text = mw.ustring.gsub(text, "ِ", "")
text = mw.ustring.gsub(text, "[ً-ٟ]", "")
text = mw.ustring.gsub(text, "أ", "ا")
--text = mw.ustring.gsub(text, "إ", "ا")
text = mw.ustring.gsub(text, "آ", "ا")
return text
end
local function serializeTable(val, name, skipnewlines, depth) -- https://stackoverflow.com/a/6081639
skipnewlines = skipnewlines or false
depth = depth or 0
local tmp = string.rep(" ", depth)
if name then tmp = tmp .. name .. " = " end
if type(val) == "table" then
tmp = tmp .. "{" .. (not skipnewlines and "\n" or "")
for k, v in pairs(val) do
tmp = tmp .. serializeTable(v, k, skipnewlines, depth + 1) .. "," .. (not skipnewlines and "\n" or "")
end
tmp = tmp .. string.rep(" ", depth) .. "}"
elseif type(val) == "number" then
tmp = tmp .. tostring(val)
elseif type(val) == "string" then
tmp = tmp .. string.format("%q", val)
elseif type(val) == "boolean" then
tmp = tmp .. (val and "true" or "false")
else
tmp = tmp .. "\"[inserializeable datatype:" .. type(val) .. "]\""
end
return tmp
end
-- Use this to safely expand templates when you are not sure that they exist.
local function safeExpand(frame, title, args)
local success, result = pcall(function()
return frame:expandTemplate{ title = title, args = args }
end)
if result:find('does not exist') then -- expandTemplate{} doesn't seem to throw any error that can be handled with pcall() so string search is the only viable option.
return nil
end
return result
end
local function getReference( id, reference )
local out_id = nil
local url_value
if reference_cache[id] == nil then
local ref_text = references(reference, wb, mw_lang, i18n['content_lang_code'], i18n['wikipedia'])
if reference.snaks ~= nil then
if reference.snaks['P248'] ~= nil then
for _, snak in pairs(reference.snaks['P248']) do
if snak.datavalue and snak.datavalue.value.id == 'Q428' then -- কুরআন
ref_text = ustring.gsub(ref_text, 'নামক অনুচ্ছেদ', 'নং আয়াত')
break
end
end
end
if reference.snaks['P854'] ~= nil then
local snak = reference.snaks['P854'][1]
if snak.datavalue then
url_value = snak.datavalue.value
end
end
end
if url_value ~= nil then
ref_text = ref_text .. ', [' .. url_value .. ' সংযোগ]'
end
reference_cache[id] = ref_text
else
out_id = id
end
return {out_id, reference_cache[id]}
end
local function getEntity( id )
if entity_cache[id] == nil then
entity_cache[id] = wb.getEntity(id)
end
return entity_cache[id] ~= false and entity_cache[id] or nil
end
local function getLexemeLanguageCode(current_lexeme)
local lang_item_id = current_lexeme:getLanguage()
if lang_item_id == nil then
return nil
end
local lang_entity = getEntity(lang_item_id)
if lang_entity == nil then
return nil
end
for i, statement_property in ipairs({'P305','P424', 'P220'}) do -- আইইটিএফ ভাষা ট্যাগ, উইকিমিডিয়া ভাষা কোড, আইএসও ৬৩৯-৩
local statements = lang_entity:getBestStatements(statement_property)
if statements[1] ~= nil then
return statements[1].mainsnak.datavalue.value
end
end
return nil
end
-- Return the first form of the lexeme which has exactly the given grammatical feature.
local function formWithSingleGrammaticalFeature( item_id )
for i = 1, #forms do
local grammaticalFeatures = forms[i]:getGrammaticalFeatures()
if #grammaticalFeatures == 1 and grammaticalFeatures[1] == item_id then
return forms[i]
end
end
return nil
end
local function getArticleLinkTemplate(frame, stmt_value)
local template = ''
local sitelink = getEntity(stmt_value):getSitelink(i18n['wikipedia'])
if sitelink ~= nil then
template = frame:expandTemplate{
title=i18n['template_wikipedia'],
args={sitelink}
}
end
return template
end
local function getArticleLinks (frame, sense )
local article_links = ''
for i, stmt in pairs(sense:getAllStatements('P5137')) do -- এই অর্থের জন্য আইটেম
article_links = article_links .. getArticleLinkTemplate(frame, stmt.mainsnak.datavalue.value.id)
end
for i, stmt in pairs(sense:getAllStatements('P9970')) do -- এই অর্থের জন্য বিধেয়
article_links = article_links .. getArticleLinkTemplate(frame, stmt.mainsnak.datavalue.value.id)
end
return article_links
end
-- @TODO: Generalise
local function expandTemplateForProperty(frame, object, property, template)
local lemmas = {}
local n = 0
for _, stmt in pairs(object:getAllStatements(property)) do
local lex = wb.lexeme.splitLexemeId(stmt.mainsnak.datavalue.value.id)
lex = getEntity(lex)
n = n + 1
lemmas[n] = lex:getLemma(lang_code)
end
if not lang_code or n == 0 then
return ''
end
-- Build args: first lang_code, then lemmas
local args = {lang_code}
for i = 1, n do
args[#args + 1] = lemmas[i]
end
return frame:expandTemplate{
title = template,
args = args
}
end
local function getExternalLinks( entity ) -- T418639
local external_links = {}
if entity.claims == nil then return external_links end
for property_id, statements in pairs(entity.claims) do
local formatter_url = formatter_urls[property_id]
if formatter_url ~= nil then
local property_source = wb.getBestStatements(property_id, 'P9073')
local source_name
if next(property_source) ~= nil then
source_name = wb.getLabel(property_source[1].mainsnak.datavalue.value.id)
or property_source[1].mainsnak.datavalue.value.id
else
source_name = wb.getLabel(property_id) or property_id
end
for i = 1, #statements do
local stmt = statements[i]
if stmt.mainsnak.datavalue then
local formatted_link = ustring.gsub(
ustring.gsub(formatter_url, '$1', stmt.mainsnak.datavalue.value),
' ', '+'
)
table.insert(external_links,
'[' .. formatted_link .. ' ' .. source_name .. ']')
end
end
end
end
return external_links
end
p.getExternalLinks = getExternalLinks -- রেখে দিন যাতে ডিবাগিং সম্ভব হয়
local function termSpan( term )
local text = term[1]
local lang = term[2]
local dir = mw_lang.new( lang ):getDir()
local span = html.create( 'span' )
span:attr( 'lang', lang )
:attr( 'dir', dir )
:wikitext( text )
return tostring( span )
end
local function termLink( term, lang_qid )
local text = term[1]
local lang = term[2]
local dir = mw_lang.new( lang ):getDir()
local span = html.create( 'span' )
span:attr( 'lang', lang )
:attr( 'dir', dir )
:wikitext( '[[' .. text .. '#' .. wb.getLabel(lang_qid) .. '|' .. text .. ']]' )
return tostring( span )
end
local function getLemmata( current_lexeme )
local lemma_string = ''
for i, rep in pairs(current_lexeme:getLemmas()) do
if lemma_string == '' then
lemma_string = termSpan(rep)
else
lemma_string = lemma_string .. '/' .. termSpan(rep)
end
end
return lemma_string
end
local function getLinkedLemmata( current_lexeme )
local lemma_string = ''
for i, rep in pairs(current_lexeme:getLemmas()) do
if lemma_string == '' then
lemma_string = termLink(rep, current_lexeme:getLanguage())
else
lemma_string = lemma_string .. '/' .. termLink(rep, current_lexeme:getLanguage())
end
end
return lemma_string
end
local function getExamples( current_lexeme, sense_id, references_seen )
local examples = html.create('dl')
for i, stmt in pairs(current_lexeme:getAllStatements('P5831')) do -- ব্যবহারের উদাহরণ
if stmt.qualifiers ~= nil and stmt.qualifiers['P6072'] ~= nil and stmt.qualifiers['P6072'][1].datavalue.value.id == sense_id then -- বিষয়ে লেক্সিমের অর্থ
example_text = ustring.gsub(stmt.mainsnak.datavalue.value.text, ' / ','<br/>')
example_lang = stmt.mainsnak.datavalue.value.language
local example_form_strs = {}
if stmt.qualifiers['P1810'] ~= nil then
table.insert(example_form_strs, stmt.qualifiers['P1810'][1].datavalue.value)
elseif stmt.qualifiers['P5830'] ~= nil then
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
for i, rep in pairs(example_form:getRepresentations()) do
table.insert(example_form_strs, rep[1])
end
end
example_str = nil
for i, example_form_str in pairs(example_form_strs) do
new_example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
if new_example_text ~= example_text then
example_str = termSpan({new_example_text, example_lang})
break
end
new_example_text = example_text
end
if example_str == nil then
example_str = termSpan({example_text, example_lang})
end
local reference_text = ''
if stmt.references ~= nil then
for j, reference in pairs(stmt.references) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. got_reference[2]
end
end
if example_str ~= nil then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
end
for i, stmt in pairs(wb.getAllStatements(sense_id, 'P5831')) do -- ব্যবহারের উদাহরণ
example_text = ustring.gsub(stmt.mainsnak.datavalue.value.text, ' / ','<br/>')
example_lang = stmt.mainsnak.datavalue.value.language
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
local example_form_str = nil
if stmt.qualifiers['P1810'] ~= nil then
example_form_str = stmt.qualifiers['P1810'][1].datavalue.value
end
if example_form_str == nil then
example_form_str = example_form:getRepresentation(i18n['content_lang_code'])
end
if example_form_str == nil then
example_form_str = example_form:getRepresentations()[1][1]
end
example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
example_str = termSpan({example_text, example_lang})
local reference_text = ''
if stmt.references ~= nil then
for j, reference in pairs(stmt.references) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. got_reference[2]
end
end
if example_str ~= nil then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
return { tostring(examples) , references_seen }
end
-- This calls frame:preprocess() instead of :callParserFunction() because the latter does not work for Wikifunctions function calls yet (see https://www.wikifunctions.org/wiki/Wikifunctions:Embedded_function_calls).
local function callWikifunctionsFunction(args, frame)
return frame:preprocess('{{#function:' .. args .. '}}')
end
local function checkTitleCodePointInRange(title, start_point, end_point)
return ustring.find( title, '[' ..ustring.char(start_point) .. '-' .. ustring.char(end_point) .. ']' )
end
local function getLanguageForCategories( lang_id, current_page_title )
-- বিশেষ ভাষার জন্য
if lang_id == 'Q11051' then -- হিন্দি/উর্দু
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- উর্দু
lang_id = 'Q11051ur'
elseif checkTitleCodePointInRange(current_page_title, 0x0900, 0x097f) ~= nil then -- হিন্দি
lang_id = 'Q11051hi'
end
elseif lang_id == 'Q58635' then -- পাঞ্জাবি
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- শাহমুখী
lang_id = 'Q58635pnb'
elseif checkTitleCodePointInRange(current_page_title, 0x0a00, 0x0a7f) ~= nil then -- গুরুমুখী
lang_id = 'Q58635pa'
end
elseif lang_id == 'Q56356571' then -- নয়া ফার্সি ভাষা
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- ফার্সি (ইরান/আফগানিস্তান)
lang_id = 'Q56356571fa'
elseif checkTitleCodePointInRange(current_page_title, 0x0400, 0x04ff) ~= nil then -- তাজিক
lang_id = 'Q56356571tg'
end
end
return lang_id
end
local function getOneStringForProperty(object, property)
local val
local stmts = object:getAllStatements(property)
if #stmts ~= 0 then
val = stmts[1].mainsnak.datavalue.value
end
return val
end
local function getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved
if #senses == 0 then
return nil
end
local all_translations = {}
for _, sense in pairs(senses) do
local translation_set = {}
local gloss = sense:getGloss('bn')
for _, stmt in pairs(sense:getAllStatements('P5972')) do
local translation = stmt.mainsnak.datavalue.value.id
local lexeme_id = wb.lexeme.splitLexemeId(translation)
local language = wb.getLabel(getEntity(lexeme_id):getLanguage())
table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>')
end
if #translation_set > 0 then
local block = frame:expandTemplate{ title = i18n['template_trans-top'], args = { gloss } }
block = block .. table.concat(translation_set, '\n') .. frame:expandTemplate{ title = i18n['template_trans-bottom'] }
table.insert(all_translations, block)
end
end
if #all_translations == 0 then
return nil
end
return '====' .. i18n['heading_translation'] .. '==== \n' .. table.concat(all_translations, '\n')
end
local createicon = function(langcode, entityID, propertyID)
langcode = langcode or ""
propertyID = propertyID or ""
local icon = " <span class='penicon autoconfirmed-show'>[["
-- " <span data-bridge-edit-flow='overwrite' class='penicon'>[[" -> enable Wikidata Bridge
.. "File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt="
.. i18n['edit_wikidata']
.. "|link=https://www.wikidata.org/entity/" .. entityID
if langcode ~= "" then icon = icon .. "?uselang=" .. langcode end
if propertyID ~= "" then icon = icon .. "#" .. propertyID end
icon = icon .. "|" .. i18n['edit_wikidata'] .. "]]</span>"
return icon
end
local function getMeanings( frame, args, current_lexeme, senses, references_seen, language_name)
if #senses == 0 then
return {createicon(i18n['content_lang_code'], current_lexeme:getId()) .. "''" .. i18n['text_category_rfdef'] .. "''" .. i18n.tocatlink(i18n['category_rfdef']), references_seen}
end
local meanings = html.create( 'ol' )
for i, sense in pairs(senses) do
local gloss_text_parts = {}
local main_gloss_text = frame:expandTemplate{
title=i18n['template_anchor'],
args={sense:getId()}
}
local specifiers = {}
for k, property_id in ipairs({'P6084', 'P6191', 'P9488'}) do -- অবস্থান যেখানে শব্দার্থ ব্যবহৃত, যে রীতিতে শব্দার্থ ব্যবহৃত হয়, যে ক্ষেত্রে ব্যবহৃত
for i, stmt in pairs(sense:getAllStatements(property_id)) do
local stmt_value = stmt.mainsnak.datavalue.value.id
local reference_text = ''
local refs = stmt.references
if refs ~= nil then
for j, reference in pairs(refs) do
table.insert(references_seen, reference.hash)
got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. frame:extensionTag('ref', got_reference[2])
end
table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code']) .. reference_text)
end
end
end
if #specifiers > 0 then
main_gloss_text = main_gloss_text .. "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
local gloss = sense:getGloss( i18n['content_lang_code'] )
if gloss ~= nil then
if countWords(gloss) == 1 then
main_gloss_text = main_gloss_text .. "[[" .. gloss .. "#" .. i18n['content_lang_name'] .. "|" .. gloss .. "]]"
else
main_gloss_text = main_gloss_text .. gloss
end
if gloss:match('^প্রদত্ত%s*(%S-)%s*নাম$') then -- given names
main_gloss_text = main_gloss_text .. i18n.tocatlink(language_name .. ' ' .. i18n['category_given_names'])
end
else
local other_gloss_text = nil
local other_gloss_lang = nil
local item_label_gloss_parts = {}
for k, stmt in pairs(sense:getAllStatements('P5137')) do -- যদি 'এই অর্থের জন্য আইটেম' মানের বাংলা লেবেল থাকে
local stmt_value = stmt.mainsnak.datavalue.value.id
local stmt_label = wb.getLabel(stmt_value)
if stmt_label ~= nil then
table.insert(item_label_gloss_parts, '[[:d:' .. stmt_value .. '|' .. stmt_label .. ']]')
end
end
if #item_label_gloss_parts > 0 then
other_gloss_text = table.concat(item_label_gloss_parts, '; ')
end
if other_gloss_text == nil then
for i, fallback_lang in ipairs(mw_lang.getFallbacksFor( i18n['content_lang_code'] )) do
if sense:getGloss( fallback_lang ) ~= nil then
other_gloss_text, other_gloss_lang = sense:getGloss( fallback_lang )
end
end
if other_gloss_lang == nil then
local glosses = sense:getGlosses()
for j, gloss in pairs(glosses) do
other_gloss_text = gloss[1]
other_gloss_lang = gloss[2]
break
end
end
main_gloss_text = main_gloss_text .. other_gloss_text .. "<sup><em>" .. mw_lang.fetchLanguageName(other_gloss_lang, i18n['content_lang_code']) .. "</em></sup>"
else
main_gloss_text = main_gloss_text .. "''" .. other_gloss_text .. "''"
end
main_gloss_text = main_gloss_text .. i18n.tocatlink(i18n['category_rfdef_equivalent'])
end
local synonym = expandTemplateForProperty(frame, sense, 'P5973', i18n['template_synonym'])
if synonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. synonym
end
local antonym = expandTemplateForProperty(frame, sense, 'P5974', i18n['template_antonym'])
if antonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. antonym
end
local hypernym = expandTemplateForProperty(frame, sense, 'P6593', i18n['template_hypernym'])
if hypernym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. hypernym
end
if lex_cat == 'Q1084' or lex_cat == 'Q147276' then -- noun or proper noun
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-noun'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
elseif lex_cat == 'Q34698' then
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-adj'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
end
table.insert(gloss_text_parts, main_gloss_text .. createicon(i18n['content_lang_code'], sense:getId()))
for i, stmt in pairs(sense:getAllStatements('P8394')) do -- টিপ্পনীর উদ্ধৃতি
gloss_quote = termSpan({stmt.mainsnak.datavalue.value.text, stmt.mainsnak.datavalue.value.language})
if stmt.references[1] ~= nil then
local got_reference = getReference ( stmt.references[1].hash, stmt.references[1] )
gloss_quote = '"' .. gloss_quote .. '" ' .. got_reference[2]
end
table.insert(references_seen, stmt.references[1].hash)
table.insert(gloss_text_parts, frame:extensionTag('ref', gloss_quote))
end
for i, stmt in pairs(sense:getAllStatements('P1343')) do -- বর্ণিত উৎস
-- TODO: do away with making fake reference objects
local fake_reference = { ['snaks'] = {} }
fake_reference.snaks['P248'] = { [1] = stmt.mainsnak }
qualifiers_order = stmt['qualifiers-order']
if qualifiers_order ~= nil then
for i, k in ipairs(qualifiers_order) do fake_reference.snaks[k] = stmt.qualifiers[k] end
end
fake_reference.hash = mw.hash.hashValue('sha3-512', serializeTable(fake_reference))
table.insert(references_seen, fake_reference.hash)
local got_reference = getReference(fake_reference.hash, fake_reference)
if got_reference[1] == nil then
table.insert(gloss_text_parts, frame:extensionTag('ref', got_reference[2], {name = fake_reference.hash}))
else
table.insert(gloss_text_parts, frame:extensionTag{name = 'ref', content='', args = {name = got_reference[1]}})
end
end
local first_sense_image = ''
local sense_images = sense:getAllStatements('P18')
if next(sense_images) ~= nil then
first_sense_image = sense_images[1].mainsnak.datavalue.value
end
if first_sense_image ~= '' then
table.insert(gloss_text_parts, '[[চিত্র:' .. first_sense_image .. "|thumb|'''" .. getLemmata(current_lexeme) .. "'''—" .. main_gloss_text .. ']]')
end
local idlinks = getExternalLinks(sense)
if #idlinks > 0 then
local idlinktext = '<small>('
for _, idlink in pairs(idlinks) do
idlinktext = idlinktext .. idlink .. '\n'
end
idlinktext = idlinktext .. ')</small>'
table.insert(gloss_text_parts, idlinktext)
end
local externallinks = getArticleLinks(frame, sense)
if externallinks ~= '' then
table.insert(gloss_text_parts, externallinks)
end
local new_notes = {}
local sense_keys = { sense:getId(), string.sub(sense:getId(), string.find(sense:getId(), '-')+1) }
for _, v in ipairs(sense_keys) do
if args[v] ~= nil then
table.insert(new_notes, args[v])
end
end
if #new_notes > 0 then
for _, v in ipairs(new_notes) do
if i == 1 then
table.insert(gloss_text_parts, '<br/>' .. v)
else
table.insert(gloss_text_parts, v)
end
end
end
local examples, references_seen = unpack(getExamples( current_lexeme, sense:getId(), references_seen ))
local gloss_text = table.concat(gloss_text_parts, '\n')
meanings:tag('li'):wikitext(gloss_text):wikitext(examples)
end
return {meanings, references_seen}
end
local function getPronunciationBaseForm( lang_name, lex_cat)
local base_form = nil
-- (!) অন্য ভাষার শব্দের যদি অন্য রকম মূল ফর্ম থাকে সেগুলো এখানে নতুন if বিবৃতি দিয়ে যোগ করা যায়।
if lang_name == 'বাংলা' then
if lex_cat == 'Q1084' then -- বিশেষ্য
base_form = formWithSingleGrammaticalFeature( 'Q131105' ) -- কর্তৃকারক
elseif lex_cat == 'Q24905' then -- ক্রিয়া
base_form = formWithSingleGrammaticalFeature( 'Q1350145' ) -- ক্রিয়া বিশেষ্য
end
end
if base_form == nil then
for i, form in pairs(forms) do
base_form = form
break
end
end
return base_form
end
local function getCombines( current_lexeme )
local combines = ''
local index_mappings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P5238')) do
if stmt.qualifiers ~= nil and stmt.qualifiers['P1545'] ~= nil then -- ক্রম
local current_index = tonumber(stmt.qualifiers['P1545'][1].datavalue.value)
index_mappings[current_index] = stmt
end
end
if #index_mappings ~= 0 then
for i, stmt in ipairs(index_mappings) do
local part_lexeme_id = stmt.mainsnak.datavalue.value.id
local part_lexeme = getEntity(part_lexeme_id)
local current_substring = getLinkedLemmata(part_lexeme)
local part_etymology = getEtymology(part_lexeme)
if part_etymology ~= '' and part_etymology ~= nil then
current_substring = current_substring .. ' (← ' .. part_etymology .. ')'
end
if combines == '' then
combines = current_substring
else -- @TODO: This shoukd use the 'affix' template instead.
combines = combines .. ' + ' .. current_substring
end
end
end
return combines
end
function getRoots ( current_lexeme )
local stmts = current_lexeme:getAllStatements('P5920')
if #stmts == 0 then return '' end
local root_lexeme = getEntity(stmts[1].mainsnak.datavalue.value.id)
return '√' .. getLinkedLemmata(root_lexeme)
end
function getEtymology ( current_lexeme )
-- TODO: see if any etymology chains are not possible to render
local etymology = ''
local current_combines = getCombines(current_lexeme)
local current_roots = getRoots(current_lexeme)
local stmts = current_lexeme:getAllStatements('P5191')
if #stmts == 0 then
if current_roots ~= '' and current_combines ~= '' then
return current_roots .. '<br/>(' .. current_combines .. ')'
elseif current_roots ~= '' then
return current_roots
else
return current_combines
end
end
for i, stmt in pairs(stmts) do
local origin_lexeme_dv = stmt.mainsnak.datavalue -- If this is nil, the origin lexeme is not known.
if origin_lexeme_dv ~= nil then
local origin_lexeme = getEntity(origin_lexeme_dv.value.id)
local origin_lexeme_lang = origin_lexeme:getLanguage()
local origin_lexeme_string = getLinkedLemmata(origin_lexeme) .. ' (' .. wb.getLabel(origin_lexeme_lang) .. ')'
if stmt.qualifiers ~= nil and stmt.qualifiers['P5886'] ~= nil then
local mode_of_derivation = stmt.qualifiers['P5886'][1].datavalue.value.id
if mode_of_derivation == 'Q1345001' then
origin_lexeme_string = ustring.gsub(i18n['etymology_borrowing'], '$1', origin_lexeme_string)
elseif mode_of_derivation == 'Q845079' then
origin_lexeme_string = ustring.gsub(i18n['etymology_learned_borrowing'], '$1', origin_lexeme_string)
elseif mode_of_derivation == 'Q56611986' then
origin_lexeme_string = ustring.gsub(i18n['etymology_inheritance'], '$1', origin_lexeme_string)
end
end
local origin_origin = getEtymology(origin_lexeme)
local new_etymology_string = ''
if origin_origin ~= '' and origin_origin ~= nil then
new_etymology_string = origin_lexeme_string .. ' ← ' .. origin_origin
else
new_etymology_string = origin_lexeme_string
end
end
if etymology == '' then
etymology = new_etymology_string
elseif origin_lexeme_string ~= nil then
etymology = etymology .. ' ' .. origin_lexeme_string
end
end
if current_roots ~= '' then
etymology = etymology .. ' ' .. current_roots
end
if current_combines ~= '' and etymology ~= nil then
etymology = etymology .. '<br/>(' .. current_combines .. ')'
end
return etymology
end
local function getPronunciation( frame, current_lexeme, lang_name, lex_cat )
local pronunciations = {}
local base_form = getPronunciationBaseForm(lang_name, lex_cat )
if base_form ~= nil then
for i, stmt in pairs(base_form:getAllStatements('P443')) do -- উচ্চারণের অডিও
local pronunciation_file = stmt.mainsnak.datavalue.value
local specifier_text = ''
local specifiers = {}
if stmt.qualifiers ~= nil then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in pairs(stmt.qualifiers[property_id]) do
local stmt_value = qual.datavalue.value.id
table.insert(specifiers, wb.getLabel(stmt_value))
end
end
end
if #specifiers > 0 then
specifier_text = table.concat(specifiers, "'', ''")
end
local audio_text
if specifier_text ~= '' then
audio_text = i18n['text_audio'] .. ' (' .. specifier_text .. ')'
else
audio_text = i18n['text_audio']
end
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title= i18n['template_audio'],
args = {lang_name, pronunciation_file, audio_text}
})
end
local ipa_transcription = base_form:getAllStatements('P898') -- - আধ্বব প্রতিলিপিকরণ
local iso15919_transcription = getOneStringForProperty(base_form, 'P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ
local itrans = getOneStringForProperty(base_form, 'P8881') -- ITRANS
local iast = getOneStringForProperty(base_form, 'P7581') -- আইএএসটি প্রতিলিপিকরণ
local xsampa = getOneStringForProperty(base_form, 'P2859')
-- @TODO: অডিও ও প্রতিলিপিকরণ দুটোই থাকলে সেই ক্ষেত্রে একটার ঠিক পরেই আরেকটা দেখানো উচিত
if #ipa_transcription ~= 0 then
for i, stmt in pairs(ipa_transcription) do
local ipa_text = stmt.mainsnak.datavalue.value
local specifier_text = ''
local specifiers = {}
if stmt.qualifiers ~= nil then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in ipairs(stmt.qualifiers[property_id]) do
table.insert(specifiers, wb.getLabel( qual.datavalue.value.id ))
end
end
end
if #specifiers > 0 then
specifier_text = "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
table.insert(pronunciations, '* ' .. specifier_text .. frame:expandTemplate{
title= i18n['template_ipa'],
args = {lang_name, ipa_text}
} .. '\n' .. i18n['text_syllable_count'] .. callWikifunctionsFunction('Z30837|' .. ipa_text, frame))
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
elseif lang_name == 'বাংলা' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='bn-IPA',
})
elseif lang_name == 'আরবি' then
local lemma = current_lexeme:getLemma('ar')
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='ar-IPA',
args={lemma}
})
elseif lang_name == 'ফালা' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fax-pron',
})
elseif lang_name == 'ফিনীয়' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fi-IPA',
})
end
if iso15919_transcription ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_iso15919'] .. iso15919_transcription)
end
if itrans ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_itrans'] .. itrans)
end
if iast ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_iast'] .. iast)
end
if xsampa ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_xsampa'] .. xsampa)
end
end -- {{আধ্বব|en|/ˈɪntəvjuː/}}
return table.concat(pronunciations, '\n')
end
function getAlternativeSpellings( current_lexeme )
local alt_spellings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P11577')) do -- বিকল্প বানান
if stmt.mainsnak.datavalue ~= nil then
table.insert(alt_spellings, '* ' .. getLinkedLemmata(getEntity(stmt.mainsnak.datavalue.value.id)))
end
end
return table.concat(alt_spellings, '\n')
end
local function heading_level(text, level)
local heading_delimiter = string.rep('=', level)
return heading_delimiter .. ' ' .. text .. ' ' .. heading_delimiter
end
function get_any_notes(sections, args, keys)
local notes = {}
for i, v in ipairs(keys) do
if args[v] ~= nil then
table.insert(notes, args[v])
end
end
return notes
end
function add_specific_notes(sections, notes)
for i, v in ipairs(notes) do
table.insert(sections, v)
end
end
local function add_any_notes(sections, args, keys)
for i, v in ipairs(keys) do
if args[v] ~= nil then
table.insert(sections, args[v])
end
end
end
local function getMatchingLemmaForPageTitle(lexeme, title)
local lemmas = lexeme:getLemmas()
local matched_lemma
for _, lemma_entry in ipairs(lemmas) do
local lemma = lemma_entry[1]
local clean_lemma = normalizeLemmas(lemma)
if clean_lemma == title then
matched_lemma = lemma
break
end
end
return matched_lemma
end
local function buildLanguageAgnosticInflectionTable()
local has_image = false
local form_images = {}
for i, form in ipairs(forms) do
local form_image = form:getAllStatements('P7407')
if next(form_image) ~= nil then
form_images[i] = form_image[1].mainsnak.datavalue.value
has_image = true
end
end
local table_class = "wikitable mw-collapsible sortable"
if not has_image then
table_class = table_class .. " mw-collapsed"
end
local text = "{| class='" .. table_class .. "' style='border:solid 1px rgb(80%,80%,100%); text-align:center;'\n"
text = text .. "|+ " .. i18n['heading_inflection_table'] .. "\n"
text = text .. "|- \n"
text = text .. "! " .. i18n['heading_form'] .. " !! " .. i18n['heading_grammatical_features']
if has_image then
text = text .. " !! " .. (i18n['heading_image'])
end
text = text .. " \n"
for i, form in ipairs(forms) do
local rep = form:getRepresentations()
local feat = form:getGrammaticalFeatures()
local rep_text = ""
for j, r in pairs(rep) do
if rep_text == "" then
rep_text = r[1]
else
rep_text = rep_text .. " / " .. r[1]
end
end
local feat_text = ""
if feat ~= nil then
for j, f in ipairs(feat) do
local label = wb.getLabel(f)
if feat_text == "" then
feat_text = label
else
feat_text = feat_text .. ", " .. label
end
end
end
text = text .. "|-\n"
text = text .. "| " .. (rep_text ~= "" and rep_text or "—")
text = text .. " || " .. (feat_text ~= "" and feat_text or "—")
if has_image then
local image_cell = "—"
if form_images[i] ~= nil then
image_cell = "[[চিত্র:" .. form_images[i] .. "|50px]]"
end
text = text .. " || " .. image_cell
end
text = text .. "\n"
end
text = text .. "|}"
return text
end
function p.all( frame )
local args = getArgs(frame)
local lexeme_id = args[1]
local current_lexeme = getEntity(lexeme_id)
local current_language = current_lexeme:getLanguage()
local senses = current_lexeme:getSenses()
local add_heading = true
forms = current_lexeme:getForms()
if args[2] ~= nil then
local val = mw.text.trim(tostring(args[2]))
if val == "false" or val == "0" or val == "না" then
add_heading = false
end
end
local references_seen = {}
local sections = {}
local lang_name = wb.getLabel(current_language)
if add_heading == true then
local lang_heading = "== " .. lang_name .. " =="
table.insert(sections, lang_heading)
end
local lex_cat = current_lexeme:getLexicalCategory()
lang_code = getLexemeLanguageCode(current_lexeme)
local title = mw.title.getCurrentTitle().text
local lang_category = getLanguageForCategories(current_language, title)
local cat = i18n.lang_category(wb.getLabel(lex_cat), wb.getLabel(lang_category))
local lex_cat_template
if cat ~= nil then
table.insert(sections, '===' .. wb.getLabel(lex_cat) .. cat .. frame:expandTemplate{
title = i18n['template_anchor'],
args = { lexeme_id }
} .. '===')
table.insert(sections, frame:expandTemplate{
title= i18n['template_lexeme'],
args = {lexeme_id}
})
add_any_notes(sections, args, i18n['manual_category'])
local etymology = getEtymology( current_lexeme )
if etymology ~= '' and etymology ~= nil then
table.insert(sections, heading_level(i18n['heading_etymology'], 4))
table.insert(sections, tostring(etymology))
end
add_any_notes(sections, args, i18n['manual_etymology'])
local pronunciation = getPronunciation( frame, current_lexeme, lang_name, lex_cat )
if pronunciation ~= '' then
table.insert(sections, heading_level(i18n['heading_pronunciation'], 4))
table.insert(sections, tostring(pronunciation))
end
add_any_notes(sections, args, i18n['manual_pronunciation'])
local alternative_spellings = getAlternativeSpellings( current_lexeme )
if alternative_spellings ~= '' then
table.insert(sections, heading_level(i18n['heading_alternative_spellings'], 4))
table.insert(sections, alternative_spellings)
end
if lang_code ~= nil and lang_code ~= 'ksy' and lang_code ~= 'rkt' then -- Skip for Kharia Thar, Rangpuri
if lex_cat == 'Q34698' then -- বিশেষণ
lex_cat_template = safeExpand(frame, lang_code .. '-adj')
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষণ')
end
elseif lex_cat == 'Q1084' then -- @TODO: Also check for plural forms
local gender
local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ
if #stmts ~= 0 then
if #stmts == 1 then
local gender_qid = stmts[1].mainsnak.datavalue.value.id
if gender_qid == 'Q499327' then
gender = 'm'
elseif gender_qid == 'Q1775415' then
gender = 'f'
elseif gender_qid == 'Q1775461' then
gender = 'n'
elseif gender_qid == 'Q1305037' then
gender = 'c'
end
end
else
for i, stmt in pairs(stmts) do
local qid = stmts[i].mainsnak.datavalue.value.id
if qid == 'Q499327' then
gender = gender .. 'm'
elseif qid == 'Q1775415' then
gender = gender .. 'f'
end
end
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
if current_language == 'Q13955' then
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
lex_cat_template = frame:expandTemplate{title='ar-noun', args={matched_lemma,gender}}
else
lex_cat_template = frame:expandTemplate{title='ar-noun', args={nil,gender}}
end
elseif current_language == 'Q29919' then
lex_cat_template = frame:expandTemplate{title='arz-noun', args={g=gender}}
elseif current_language == 'Q397' then
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
lex_cat_template = frame:expandTemplate{title='la-noun', args={matched_lemma,g=gender}}
end
elseif current_language == 'Q11059' then
lex_cat_template = frame:expandTemplate{title='sa-noun', args={g=gender}}
elseif current_language ~= 'Q1860' then -- These templates require the gender to be passed as the 1st argument.
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix'], {gender})
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix_fallback'], {gender})
end
end
end
end
-- elseif lex_cat == 'Q147276' then
-- lex_cat_template = safeExpand(frame, lang_code .. '-proper noun', {gender})
-- if not lex_cat_template then
-- lex_cat_template = safeExpand(frame, lang_code .. '-নামবাচক বিশেষ্য', {gender})
-- end
end
if lex_cat_template ~= nil then
table.insert(sections, lex_cat_template)
else
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
table.insert(sections, heading_level(matched_lemma, 4))
else
table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]')
end
end
local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name))
table.insert(sections, tostring(meanings))
add_any_notes(sections, args, i18n['manual_meaning'])
local instance_of = current_lexeme:getBestStatements('P31') -- সত্ত্বার ধরন
if #instance_of ~= 0 then
local instance_of_entity = instance_of[1].mainsnak.datavalue.value.id
if instance_of_entity == 'Q40437546' or instance_of_entity == 'Q120831827' or instance_of_entity == 'Q120717979' or instance_of_entity == 'Q124476844' then -- @TODO: generalise this so all types of roots are shown
table.insert(sections, i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity))
elseif instance_of_entity == 'Q376431' then -- বর্ণের নাম
table.insert(sections, i18n.tocatlink(lang_code .. ':রং'))
end
end
local translations = getTranslations(frame, senses)
if translations ~= nil then
table.insert(sections, translations)
end
-- (!) বিশেষ ভাষার বিভক্তির সারণি যদি থাকে সেগুলো এখানে নতুন if বিবৃতি যোগ করা যায়।
if next(forms) ~= nil then
if current_language == 'Q9610' then -- বাংলা
local conjTable = require('মডিউল:আভিধানিক উপাত্ত/Q9610').getInflectionTable(frame, current_lexeme)
table.insert(sections, conjTable) -- Bengali adjectives do not need any table thanks to the bn-adj template.
--elseif current_language == 'Q13955' then -- আরবি
-- if lex_cat == 'Q1084' then
-- table.insert(sections, frame:expandTemplate{title='ar-decl-noun', args={lemma}})
-- end
elseif current_language == 'Q188' then -- জার্মান
if lex_cat == 'Q1084' then
table.insert(sections, callWikifunctionsFunction('Z28602|' .. lexeme_id .. '|', frame))
end
else
if current_language ~= 'Q1860' then -- ইংরেজি
table.insert(sections, buildLanguageAgnosticInflectionTable())
end
end
end
local reference_notes = get_any_notes(sections, args, i18n['manual_reference'])
if #references_seen > 0 or #reference_notes > 0 then
table.insert(sections, heading_level(i18n['heading_references'], 4))
table.insert(sections, frame:extensionTag('references'))
add_specific_notes(sections, reference_notes)
end
local external_link_table = getExternalLinks ( current_lexeme )
if #external_link_table > 0 then
local external_links = '* ' .. table.concat(external_link_table, '\n* ')
table.insert(sections, heading_level(i18n['heading_external_links'], 4))
table.insert(sections, external_links)
end
add_any_notes(sections, args, i18n['manual_external_link'])
if #references_seen == 0 and #reference_notes == 0 and #external_link_table == 0 and #get_any_notes(sections, args, i18n['manual_external_link']) == 0 then
if i18n['category_rfref'][lang_category] ~= nil then
table.insert(sections, i18n.tocatlink(i18n['category_rfref'][lang_category]))
else
table.insert(sections, i18n.tocatlink(i18n['category_rfref']['_']))
end
end
return table.concat(sections,"\n\n")
end
return p
r5fme9nu8z5r3nknp58gqklz1qow0bw
508154
508153
2026-04-23T13:34:05Z
Redmin
6857
508154
Scribunto
text/plain
local p = {}
local i18n = require('মডিউল:আভিধানিক উপাত্ত/i18n')
local references = require('মডিউল:উইকিউপাত্ত তথ্যসূত্র বিন্যাসকরণ').format
local getArgs = require('Module:Arguments').getArgs
local formatter_urls = require('মডিউল:আভিধানিক উপাত্ত/urls').formatter_urls
local wb = mw.wikibase
local ustring = mw.ustring
local html = mw.html
local mw_lang = mw.language
local entity_cache = {}
local reference_cache = {}
local forms
local lang_code
local function countWords(string)
local count = 0
for word in ustring.gmatch(string, "%S+") do
count = count + 1
end
return count
end
local function normalizeLemmas(text)
text = mw.ustring.gsub(text, "ٰ", "")
text = mw.ustring.gsub(text, "ِ", "")
text = mw.ustring.gsub(text, "[ً-ٟ]", "")
text = mw.ustring.gsub(text, "أ", "ا")
--text = mw.ustring.gsub(text, "إ", "ا")
text = mw.ustring.gsub(text, "آ", "ا")
return text
end
local function serializeTable(val, name, skipnewlines, depth) -- https://stackoverflow.com/a/6081639
skipnewlines = skipnewlines or false
depth = depth or 0
local tmp = string.rep(" ", depth)
if name then tmp = tmp .. name .. " = " end
if type(val) == "table" then
tmp = tmp .. "{" .. (not skipnewlines and "\n" or "")
for k, v in pairs(val) do
tmp = tmp .. serializeTable(v, k, skipnewlines, depth + 1) .. "," .. (not skipnewlines and "\n" or "")
end
tmp = tmp .. string.rep(" ", depth) .. "}"
elseif type(val) == "number" then
tmp = tmp .. tostring(val)
elseif type(val) == "string" then
tmp = tmp .. string.format("%q", val)
elseif type(val) == "boolean" then
tmp = tmp .. (val and "true" or "false")
else
tmp = tmp .. "\"[inserializeable datatype:" .. type(val) .. "]\""
end
return tmp
end
-- Use this to safely expand templates when you are not sure that they exist.
local function safeExpand(frame, title, args)
local success, result = pcall(function()
return frame:expandTemplate{ title = title, args = args }
end)
if result:find('does not exist') then -- expandTemplate{} doesn't seem to throw any error that can be handled with pcall() so string search is the only viable option.
return nil
end
return result
end
local function getReference( id, reference )
local out_id = nil
local url_value
if reference_cache[id] == nil then
local ref_text = references(reference, wb, mw_lang, i18n['content_lang_code'], i18n['wikipedia'])
if reference.snaks ~= nil then
if reference.snaks['P248'] ~= nil then
for _, snak in pairs(reference.snaks['P248']) do
if snak.datavalue and snak.datavalue.value.id == 'Q428' then -- কুরআন
ref_text = ustring.gsub(ref_text, 'নামক অনুচ্ছেদ', 'নং আয়াত')
break
end
end
end
if reference.snaks['P854'] ~= nil then
local snak = reference.snaks['P854'][1]
if snak.datavalue then
url_value = snak.datavalue.value
end
end
end
if url_value ~= nil then
ref_text = ref_text .. ', [' .. url_value .. ' সংযোগ]'
end
reference_cache[id] = ref_text
else
out_id = id
end
return {out_id, reference_cache[id]}
end
local function getEntity( id )
if entity_cache[id] == nil then
entity_cache[id] = wb.getEntity(id)
end
return entity_cache[id] ~= false and entity_cache[id] or nil
end
local function getLexemeLanguageCode(current_lexeme)
local lang_item_id = current_lexeme:getLanguage()
if lang_item_id == nil then
return nil
end
local lang_entity = getEntity(lang_item_id)
if lang_entity == nil then
return nil
end
for i, statement_property in ipairs({'P305','P424', 'P220'}) do -- আইইটিএফ ভাষা ট্যাগ, উইকিমিডিয়া ভাষা কোড, আইএসও ৬৩৯-৩
local statements = lang_entity:getBestStatements(statement_property)
if statements[1] ~= nil then
return statements[1].mainsnak.datavalue.value
end
end
return nil
end
-- Return the first form of the lexeme which has exactly the given grammatical feature.
local function formWithSingleGrammaticalFeature( item_id )
for i = 1, #forms do
local grammaticalFeatures = forms[i]:getGrammaticalFeatures()
if #grammaticalFeatures == 1 and grammaticalFeatures[1] == item_id then
return forms[i]
end
end
return nil
end
local function getArticleLinkTemplate(frame, stmt_value)
local template = ''
local sitelink = getEntity(stmt_value):getSitelink(i18n['wikipedia'])
if sitelink ~= nil then
template = frame:expandTemplate{
title=i18n['template_wikipedia'],
args={sitelink}
}
end
return template
end
local function getArticleLinks (frame, sense )
local article_links = ''
for i, stmt in pairs(sense:getAllStatements('P5137')) do -- এই অর্থের জন্য আইটেম
article_links = article_links .. getArticleLinkTemplate(frame, stmt.mainsnak.datavalue.value.id)
end
for i, stmt in pairs(sense:getAllStatements('P9970')) do -- এই অর্থের জন্য বিধেয়
article_links = article_links .. getArticleLinkTemplate(frame, stmt.mainsnak.datavalue.value.id)
end
return article_links
end
-- @TODO: Generalise
local function expandTemplateForProperty(frame, object, property, template)
local lemmas = {}
local n = 0
for _, stmt in pairs(object:getAllStatements(property)) do
local lex = wb.lexeme.splitLexemeId(stmt.mainsnak.datavalue.value.id)
lex = getEntity(lex)
n = n + 1
lemmas[n] = lex:getLemma(lang_code)
end
if not lang_code or n == 0 then
return ''
end
-- Build args: first lang_code, then lemmas
local args = {lang_code}
for i = 1, n do
args[#args + 1] = lemmas[i]
end
return frame:expandTemplate{
title = template,
args = args
}
end
local function getExternalLinks( entity ) -- T418639
local external_links = {}
if entity.claims == nil then return external_links end
for property_id, statements in pairs(entity.claims) do
local formatter_url = formatter_urls[property_id]
if formatter_url ~= nil then
local property_source = wb.getBestStatements(property_id, 'P9073')
local source_name
if next(property_source) ~= nil then
source_name = wb.getLabel(property_source[1].mainsnak.datavalue.value.id)
or property_source[1].mainsnak.datavalue.value.id
else
source_name = wb.getLabel(property_id) or property_id
end
for i = 1, #statements do
local stmt = statements[i]
if stmt.mainsnak.datavalue then
local formatted_link = ustring.gsub(
ustring.gsub(formatter_url, '$1', stmt.mainsnak.datavalue.value),
' ', '+'
)
table.insert(external_links,
'[' .. formatted_link .. ' ' .. source_name .. ']')
end
end
end
end
return external_links
end
p.getExternalLinks = getExternalLinks -- রেখে দিন যাতে ডিবাগিং সম্ভব হয়
local function termSpan( term )
local text = term[1]
local lang = term[2]
local dir = mw_lang.new( lang ):getDir()
local span = html.create( 'span' )
span:attr( 'lang', lang )
:attr( 'dir', dir )
:wikitext( text )
return tostring( span )
end
local function termLink( term, lang_qid )
local text = term[1]
local lang = term[2]
local dir = mw_lang.new( lang ):getDir()
local span = html.create( 'span' )
span:attr( 'lang', lang )
:attr( 'dir', dir )
:wikitext( '[[' .. text .. '#' .. wb.getLabel(lang_qid) .. '|' .. text .. ']]' )
return tostring( span )
end
local function getLemmata( current_lexeme )
local lemma_string = ''
for i, rep in pairs(current_lexeme:getLemmas()) do
if lemma_string == '' then
lemma_string = termSpan(rep)
else
lemma_string = lemma_string .. '/' .. termSpan(rep)
end
end
return lemma_string
end
local function getLinkedLemmata( current_lexeme )
local lemma_string = ''
for i, rep in pairs(current_lexeme:getLemmas()) do
if lemma_string == '' then
lemma_string = termLink(rep, current_lexeme:getLanguage())
else
lemma_string = lemma_string .. '/' .. termLink(rep, current_lexeme:getLanguage())
end
end
return lemma_string
end
local function getExamples( current_lexeme, sense_id, references_seen )
local examples = html.create('dl')
for i, stmt in pairs(current_lexeme:getAllStatements('P5831')) do -- ব্যবহারের উদাহরণ
if stmt.qualifiers ~= nil and stmt.qualifiers['P6072'] ~= nil and stmt.qualifiers['P6072'][1].datavalue.value.id == sense_id then -- বিষয়ে লেক্সিমের অর্থ
example_text = ustring.gsub(stmt.mainsnak.datavalue.value.text, ' / ','<br/>')
example_lang = stmt.mainsnak.datavalue.value.language
local example_form_strs = {}
if stmt.qualifiers['P1810'] ~= nil then
table.insert(example_form_strs, stmt.qualifiers['P1810'][1].datavalue.value)
elseif stmt.qualifiers['P5830'] ~= nil then
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
for i, rep in pairs(example_form:getRepresentations()) do
table.insert(example_form_strs, rep[1])
end
end
example_str = nil
for i, example_form_str in pairs(example_form_strs) do
new_example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
if new_example_text ~= example_text then
example_str = termSpan({new_example_text, example_lang})
break
end
new_example_text = example_text
end
if example_str == nil then
example_str = termSpan({example_text, example_lang})
end
local reference_text = ''
if stmt.references ~= nil then
for j, reference in pairs(stmt.references) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. got_reference[2]
end
end
if example_str ~= nil then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
end
for i, stmt in pairs(wb.getAllStatements(sense_id, 'P5831')) do -- ব্যবহারের উদাহরণ
example_text = ustring.gsub(stmt.mainsnak.datavalue.value.text, ' / ','<br/>')
example_lang = stmt.mainsnak.datavalue.value.language
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
local example_form_str = nil
if stmt.qualifiers['P1810'] ~= nil then
example_form_str = stmt.qualifiers['P1810'][1].datavalue.value
end
if example_form_str == nil then
example_form_str = example_form:getRepresentation(i18n['content_lang_code'])
end
if example_form_str == nil then
example_form_str = example_form:getRepresentations()[1][1]
end
example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
example_str = termSpan({example_text, example_lang})
local reference_text = ''
if stmt.references ~= nil then
for j, reference in pairs(stmt.references) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. got_reference[2]
end
end
if example_str ~= nil then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
return { tostring(examples) , references_seen }
end
-- This calls frame:preprocess() instead of :callParserFunction() because the latter does not work for Wikifunctions function calls yet (see https://www.wikifunctions.org/wiki/Wikifunctions:Embedded_function_calls).
local function callWikifunctionsFunction(args, frame)
return frame:preprocess('{{#function:' .. args .. '}}')
end
local function checkTitleCodePointInRange(title, start_point, end_point)
return ustring.find( title, '[' ..ustring.char(start_point) .. '-' .. ustring.char(end_point) .. ']' )
end
local function getLanguageForCategories( lang_id, current_page_title )
-- বিশেষ ভাষার জন্য
if lang_id == 'Q11051' then -- হিন্দি/উর্দু
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- উর্দু
lang_id = 'Q11051ur'
elseif checkTitleCodePointInRange(current_page_title, 0x0900, 0x097f) ~= nil then -- হিন্দি
lang_id = 'Q11051hi'
end
elseif lang_id == 'Q58635' then -- পাঞ্জাবি
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- শাহমুখী
lang_id = 'Q58635pnb'
elseif checkTitleCodePointInRange(current_page_title, 0x0a00, 0x0a7f) ~= nil then -- গুরুমুখী
lang_id = 'Q58635pa'
end
elseif lang_id == 'Q56356571' then -- নয়া ফার্সি ভাষা
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- ফার্সি (ইরান/আফগানিস্তান)
lang_id = 'Q56356571fa'
elseif checkTitleCodePointInRange(current_page_title, 0x0400, 0x04ff) ~= nil then -- তাজিক
lang_id = 'Q56356571tg'
end
end
return lang_id
end
local function getOneStringForProperty(object, property)
local val
local stmts = object:getAllStatements(property)
if #stmts ~= 0 then
val = stmts[1].mainsnak.datavalue.value
end
return val
end
local function getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved
if #senses == 0 then
return nil
end
local all_translations = {}
for _, sense in pairs(senses) do
local translation_set = {}
local gloss = sense:getGloss('bn')
for _, stmt in pairs(sense:getAllStatements('P5972')) do
local translation = stmt.mainsnak.datavalue.value.id
local lexeme_id = wb.lexeme.splitLexemeId(translation)
local language = wb.getLabel(getEntity(lexeme_id):getLanguage())
table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>')
end
if #translation_set > 0 then
local block = frame:expandTemplate{ title = i18n['template_trans-top'], args = { gloss } }
block = block .. table.concat(translation_set, '\n') .. frame:expandTemplate{ title = i18n['template_trans-bottom'] }
table.insert(all_translations, block)
end
end
if #all_translations == 0 then
return nil
end
return '====' .. i18n['heading_translation'] .. '==== \n' .. table.concat(all_translations, '\n')
end
local createicon = function(langcode, entityID, propertyID)
langcode = langcode or ""
propertyID = propertyID or ""
local icon = " <span class='penicon autoconfirmed-show'>[["
-- " <span data-bridge-edit-flow='overwrite' class='penicon'>[[" -> enable Wikidata Bridge
.. "File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt="
.. i18n['edit_wikidata']
.. "|link=https://www.wikidata.org/entity/" .. entityID
if langcode ~= "" then icon = icon .. "?uselang=" .. langcode end
if propertyID ~= "" then icon = icon .. "#" .. propertyID end
icon = icon .. "|" .. i18n['edit_wikidata'] .. "]]</span>"
return icon
end
local function getMeanings( frame, args, current_lexeme, senses, references_seen, language_name)
if #senses == 0 then
return {createicon(i18n['content_lang_code'], current_lexeme:getId()) .. "''" .. i18n['text_category_rfdef'] .. "''" .. i18n.tocatlink(i18n['category_rfdef']), references_seen}
end
local meanings = html.create( 'ol' )
for i, sense in pairs(senses) do
local gloss_text_parts = {}
local main_gloss_text = frame:expandTemplate{
title=i18n['template_anchor'],
args={sense:getId()}
}
local specifiers = {}
for k, property_id in ipairs({'P6084', 'P6191', 'P9488'}) do -- অবস্থান যেখানে শব্দার্থ ব্যবহৃত, যে রীতিতে শব্দার্থ ব্যবহৃত হয়, যে ক্ষেত্রে ব্যবহৃত
for i, stmt in pairs(sense:getAllStatements(property_id)) do
local stmt_value = stmt.mainsnak.datavalue.value.id
local reference_text = ''
local refs = stmt.references
if refs ~= nil then
for j, reference in pairs(refs) do
table.insert(references_seen, reference.hash)
got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. frame:extensionTag('ref', got_reference[2])
end
table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code']) .. reference_text)
end
end
end
if #specifiers > 0 then
main_gloss_text = main_gloss_text .. "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
local gloss = sense:getGloss( i18n['content_lang_code'] )
if gloss ~= nil then
if countWords(gloss) == 1 then
main_gloss_text = main_gloss_text .. "[[" .. gloss .. "#" .. i18n['content_lang_name'] .. "|" .. gloss .. "]]"
else
main_gloss_text = main_gloss_text .. gloss
end
if gloss:match('^প্রদত্ত%s*(%S-)%s*নাম$') then -- given names
main_gloss_text = main_gloss_text .. i18n.tocatlink(language_name .. ' ' .. i18n['category_given_names'])
end
else
local other_gloss_text = nil
local other_gloss_lang = nil
local item_label_gloss_parts = {}
for k, stmt in pairs(sense:getAllStatements('P5137')) do -- যদি 'এই অর্থের জন্য আইটেম' মানের বাংলা লেবেল থাকে
local stmt_value = stmt.mainsnak.datavalue.value.id
local stmt_label = wb.getLabel(stmt_value)
if stmt_label ~= nil then
table.insert(item_label_gloss_parts, '[[:d:' .. stmt_value .. '|' .. stmt_label .. ']]')
end
end
if #item_label_gloss_parts > 0 then
other_gloss_text = table.concat(item_label_gloss_parts, '; ')
end
if other_gloss_text == nil then
for i, fallback_lang in ipairs(mw_lang.getFallbacksFor( i18n['content_lang_code'] )) do
if sense:getGloss( fallback_lang ) ~= nil then
other_gloss_text, other_gloss_lang = sense:getGloss( fallback_lang )
end
end
if other_gloss_lang == nil then
local glosses = sense:getGlosses()
for j, gloss in pairs(glosses) do
other_gloss_text = gloss[1]
other_gloss_lang = gloss[2]
break
end
end
main_gloss_text = main_gloss_text .. other_gloss_text .. "<sup><em>" .. mw_lang.fetchLanguageName(other_gloss_lang, i18n['content_lang_code']) .. "</em></sup>"
else
main_gloss_text = main_gloss_text .. "''" .. other_gloss_text .. "''"
end
main_gloss_text = main_gloss_text .. i18n.tocatlink(i18n['category_rfdef_equivalent'])
end
local synonym = expandTemplateForProperty(frame, sense, 'P5973', i18n['template_synonym'])
if synonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. synonym
end
local antonym = expandTemplateForProperty(frame, sense, 'P5974', i18n['template_antonym'])
if antonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. antonym
end
local hypernym = expandTemplateForProperty(frame, sense, 'P6593', i18n['template_hypernym'])
if hypernym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. hypernym
end
if lex_cat == 'Q1084' or lex_cat == 'Q147276' then -- noun or proper noun
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-noun'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
elseif lex_cat == 'Q34698' then
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-adj'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
end
table.insert(gloss_text_parts, main_gloss_text .. createicon(i18n['content_lang_code'], sense:getId()))
for i, stmt in pairs(sense:getAllStatements('P8394')) do -- টিপ্পনীর উদ্ধৃতি
gloss_quote = termSpan({stmt.mainsnak.datavalue.value.text, stmt.mainsnak.datavalue.value.language})
if stmt.references[1] ~= nil then
local got_reference = getReference ( stmt.references[1].hash, stmt.references[1] )
gloss_quote = '"' .. gloss_quote .. '" ' .. got_reference[2]
end
table.insert(references_seen, stmt.references[1].hash)
table.insert(gloss_text_parts, frame:extensionTag('ref', gloss_quote))
end
for i, stmt in pairs(sense:getAllStatements('P1343')) do -- বর্ণিত উৎস
-- TODO: do away with making fake reference objects
local fake_reference = { ['snaks'] = {} }
fake_reference.snaks['P248'] = { [1] = stmt.mainsnak }
qualifiers_order = stmt['qualifiers-order']
if qualifiers_order ~= nil then
for i, k in ipairs(qualifiers_order) do fake_reference.snaks[k] = stmt.qualifiers[k] end
end
fake_reference.hash = mw.hash.hashValue('sha3-512', serializeTable(fake_reference))
table.insert(references_seen, fake_reference.hash)
local got_reference = getReference(fake_reference.hash, fake_reference)
if got_reference[1] == nil then
table.insert(gloss_text_parts, frame:extensionTag('ref', got_reference[2], {name = fake_reference.hash}))
else
table.insert(gloss_text_parts, frame:extensionTag{name = 'ref', content='', args = {name = got_reference[1]}})
end
end
local first_sense_image = ''
local sense_images = sense:getAllStatements('P18')
if next(sense_images) ~= nil then
first_sense_image = sense_images[1].mainsnak.datavalue.value
end
if first_sense_image ~= '' then
table.insert(gloss_text_parts, '[[চিত্র:' .. first_sense_image .. "|thumb|'''" .. getLemmata(current_lexeme) .. "'''—" .. main_gloss_text .. ']]')
end
local idlinks = getExternalLinks(sense)
if #idlinks > 0 then
local idlinktext = '<small>('
for _, idlink in pairs(idlinks) do
idlinktext = idlinktext .. idlink .. '\n'
end
idlinktext = idlinktext .. ')</small>'
table.insert(gloss_text_parts, idlinktext)
end
local externallinks = getArticleLinks(frame, sense)
if externallinks ~= '' then
table.insert(gloss_text_parts, externallinks)
end
local new_notes = {}
local sense_keys = { sense:getId(), string.sub(sense:getId(), string.find(sense:getId(), '-')+1) }
for _, v in ipairs(sense_keys) do
if args[v] ~= nil then
table.insert(new_notes, args[v])
end
end
if #new_notes > 0 then
for _, v in ipairs(new_notes) do
if i == 1 then
table.insert(gloss_text_parts, '<br/>' .. v)
else
table.insert(gloss_text_parts, v)
end
end
end
local examples, references_seen = unpack(getExamples( current_lexeme, sense:getId(), references_seen ))
local gloss_text = table.concat(gloss_text_parts, '\n')
meanings:tag('li'):wikitext(gloss_text):wikitext(examples)
end
return {meanings, references_seen}
end
local function getPronunciationBaseForm( lang_name, lex_cat)
local base_form = nil
-- (!) অন্য ভাষার শব্দের যদি অন্য রকম মূল ফর্ম থাকে সেগুলো এখানে নতুন if বিবৃতি দিয়ে যোগ করা যায়।
if lang_name == 'বাংলা' then
if lex_cat == 'Q1084' then -- বিশেষ্য
base_form = formWithSingleGrammaticalFeature( 'Q131105' ) -- কর্তৃকারক
elseif lex_cat == 'Q24905' then -- ক্রিয়া
base_form = formWithSingleGrammaticalFeature( 'Q1350145' ) -- ক্রিয়া বিশেষ্য
end
end
if base_form == nil then
for i, form in pairs(forms) do
base_form = form
break
end
end
return base_form
end
local function getCombines( current_lexeme )
local combines = ''
local index_mappings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P5238')) do
if stmt.qualifiers ~= nil and stmt.qualifiers['P1545'] ~= nil then -- ক্রম
local current_index = tonumber(stmt.qualifiers['P1545'][1].datavalue.value)
index_mappings[current_index] = stmt
end
end
if #index_mappings ~= 0 then
for i, stmt in ipairs(index_mappings) do
local part_lexeme_id = stmt.mainsnak.datavalue.value.id
local part_lexeme = getEntity(part_lexeme_id)
local current_substring = getLinkedLemmata(part_lexeme)
local part_etymology = getEtymology(part_lexeme)
if part_etymology ~= '' and part_etymology ~= nil then
current_substring = current_substring .. ' (← ' .. part_etymology .. ')'
end
if combines == '' then
combines = current_substring
else -- @TODO: This shoukd use the 'affix' template instead.
combines = combines .. ' + ' .. current_substring
end
end
end
return combines
end
function getRoots ( current_lexeme )
local stmts = current_lexeme:getAllStatements('P5920')
if #stmts == 0 then return '' end
local root_lexeme = getEntity(stmts[1].mainsnak.datavalue.value.id)
return '√' .. getLinkedLemmata(root_lexeme)
end
function getEtymology ( current_lexeme )
-- TODO: see if any etymology chains are not possible to render
local etymology = ''
local current_combines = getCombines(current_lexeme)
local current_roots = getRoots(current_lexeme)
local stmts = current_lexeme:getAllStatements('P5191')
if #stmts == 0 then
if current_roots ~= '' and current_combines ~= '' then
return current_roots .. '<br/>(' .. current_combines .. ')'
elseif current_roots ~= '' then
return current_roots
else
return current_combines
end
end
for i, stmt in pairs(stmts) do
local origin_lexeme_dv = stmt.mainsnak.datavalue -- If this is nil, the origin lexeme is not known.
if origin_lexeme_dv ~= nil then
local origin_lexeme = getEntity(origin_lexeme_dv.value.id)
local origin_lexeme_lang = origin_lexeme:getLanguage()
local origin_lexeme_string = getLinkedLemmata(origin_lexeme) .. ' (' .. wb.getLabel(origin_lexeme_lang) .. ')'
if stmt.qualifiers ~= nil and stmt.qualifiers['P5886'] ~= nil then
local mode_of_derivation = stmt.qualifiers['P5886'][1].datavalue.value.id
if mode_of_derivation == 'Q1345001' then
origin_lexeme_string = ustring.gsub(i18n['etymology_borrowing'], '$1', origin_lexeme_string)
elseif mode_of_derivation == 'Q845079' then
origin_lexeme_string = ustring.gsub(i18n['etymology_learned_borrowing'], '$1', origin_lexeme_string)
elseif mode_of_derivation == 'Q56611986' then
origin_lexeme_string = ustring.gsub(i18n['etymology_inheritance'], '$1', origin_lexeme_string)
end
end
local origin_origin = getEtymology(origin_lexeme)
local new_etymology_string = ''
if origin_origin ~= '' and origin_origin ~= nil then
new_etymology_string = origin_lexeme_string .. ' ← ' .. origin_origin
else
new_etymology_string = origin_lexeme_string
end
end
if etymology == '' then
etymology = new_etymology_string
elseif origin_lexeme_string ~= nil then
etymology = etymology .. ' ' .. origin_lexeme_string
end
end
if current_roots ~= '' then
etymology = etymology .. ' ' .. current_roots
end
if current_combines ~= '' and etymology ~= nil then
etymology = etymology .. '<br/>(' .. current_combines .. ')'
end
return etymology
end
local function getPronunciation( frame, current_lexeme, lang_name, lex_cat )
local pronunciations = {}
local base_form = getPronunciationBaseForm(lang_name, lex_cat )
if base_form ~= nil then
for i, stmt in pairs(base_form:getAllStatements('P443')) do -- উচ্চারণের অডিও
local pronunciation_file = stmt.mainsnak.datavalue.value
local specifier_text = ''
local specifiers = {}
if stmt.qualifiers ~= nil then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in pairs(stmt.qualifiers[property_id]) do
local stmt_value = qual.datavalue.value.id
table.insert(specifiers, wb.getLabel(stmt_value))
end
end
end
if #specifiers > 0 then
specifier_text = table.concat(specifiers, "'', ''")
end
local audio_text
if specifier_text ~= '' then
audio_text = i18n['text_audio'] .. ' (' .. specifier_text .. ')'
else
audio_text = i18n['text_audio']
end
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title= i18n['template_audio'],
args = {lang_name, pronunciation_file, audio_text}
})
end
local ipa_transcription = base_form:getAllStatements('P898') -- - আধ্বব প্রতিলিপিকরণ
local iso15919_transcription = getOneStringForProperty(base_form, 'P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ
local itrans = getOneStringForProperty(base_form, 'P8881') -- ITRANS
local iast = getOneStringForProperty(base_form, 'P7581') -- আইএএসটি প্রতিলিপিকরণ
local xsampa = getOneStringForProperty(base_form, 'P2859')
-- @TODO: অডিও ও প্রতিলিপিকরণ দুটোই থাকলে সেই ক্ষেত্রে একটার ঠিক পরেই আরেকটা দেখানো উচিত
if #ipa_transcription ~= 0 then
for i, stmt in pairs(ipa_transcription) do
local ipa_text = stmt.mainsnak.datavalue.value
local specifier_text = ''
local specifiers = {}
if stmt.qualifiers ~= nil then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in ipairs(stmt.qualifiers[property_id]) do
table.insert(specifiers, wb.getLabel( qual.datavalue.value.id ))
end
end
end
if #specifiers > 0 then
specifier_text = "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
table.insert(pronunciations, '* ' .. specifier_text .. frame:expandTemplate{
title= i18n['template_ipa'],
args = {lang_name, ipa_text}
} .. '\n * ' .. i18n['text_syllable_count'] .. callWikifunctionsFunction('Z30837|' .. ipa_text, frame))
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
elseif lang_name == 'বাংলা' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='bn-IPA',
})
elseif lang_name == 'আরবি' then
local lemma = current_lexeme:getLemma('ar')
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='ar-IPA',
args={lemma}
})
elseif lang_name == 'ফালা' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fax-pron',
})
elseif lang_name == 'ফিনীয়' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fi-IPA',
})
end
if iso15919_transcription ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_iso15919'] .. iso15919_transcription)
end
if itrans ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_itrans'] .. itrans)
end
if iast ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_iast'] .. iast)
end
if xsampa ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_xsampa'] .. xsampa)
end
end -- {{আধ্বব|en|/ˈɪntəvjuː/}}
return table.concat(pronunciations, '\n')
end
function getAlternativeSpellings( current_lexeme )
local alt_spellings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P11577')) do -- বিকল্প বানান
if stmt.mainsnak.datavalue ~= nil then
table.insert(alt_spellings, '* ' .. getLinkedLemmata(getEntity(stmt.mainsnak.datavalue.value.id)))
end
end
return table.concat(alt_spellings, '\n')
end
local function heading_level(text, level)
local heading_delimiter = string.rep('=', level)
return heading_delimiter .. ' ' .. text .. ' ' .. heading_delimiter
end
function get_any_notes(sections, args, keys)
local notes = {}
for i, v in ipairs(keys) do
if args[v] ~= nil then
table.insert(notes, args[v])
end
end
return notes
end
function add_specific_notes(sections, notes)
for i, v in ipairs(notes) do
table.insert(sections, v)
end
end
local function add_any_notes(sections, args, keys)
for i, v in ipairs(keys) do
if args[v] ~= nil then
table.insert(sections, args[v])
end
end
end
local function getMatchingLemmaForPageTitle(lexeme, title)
local lemmas = lexeme:getLemmas()
local matched_lemma
for _, lemma_entry in ipairs(lemmas) do
local lemma = lemma_entry[1]
local clean_lemma = normalizeLemmas(lemma)
if clean_lemma == title then
matched_lemma = lemma
break
end
end
return matched_lemma
end
local function buildLanguageAgnosticInflectionTable()
local has_image = false
local form_images = {}
for i, form in ipairs(forms) do
local form_image = form:getAllStatements('P7407')
if next(form_image) ~= nil then
form_images[i] = form_image[1].mainsnak.datavalue.value
has_image = true
end
end
local table_class = "wikitable mw-collapsible sortable"
if not has_image then
table_class = table_class .. " mw-collapsed"
end
local text = "{| class='" .. table_class .. "' style='border:solid 1px rgb(80%,80%,100%); text-align:center;'\n"
text = text .. "|+ " .. i18n['heading_inflection_table'] .. "\n"
text = text .. "|- \n"
text = text .. "! " .. i18n['heading_form'] .. " !! " .. i18n['heading_grammatical_features']
if has_image then
text = text .. " !! " .. (i18n['heading_image'])
end
text = text .. " \n"
for i, form in ipairs(forms) do
local rep = form:getRepresentations()
local feat = form:getGrammaticalFeatures()
local rep_text = ""
for j, r in pairs(rep) do
if rep_text == "" then
rep_text = r[1]
else
rep_text = rep_text .. " / " .. r[1]
end
end
local feat_text = ""
if feat ~= nil then
for j, f in ipairs(feat) do
local label = wb.getLabel(f)
if feat_text == "" then
feat_text = label
else
feat_text = feat_text .. ", " .. label
end
end
end
text = text .. "|-\n"
text = text .. "| " .. (rep_text ~= "" and rep_text or "—")
text = text .. " || " .. (feat_text ~= "" and feat_text or "—")
if has_image then
local image_cell = "—"
if form_images[i] ~= nil then
image_cell = "[[চিত্র:" .. form_images[i] .. "|50px]]"
end
text = text .. " || " .. image_cell
end
text = text .. "\n"
end
text = text .. "|}"
return text
end
function p.all( frame )
local args = getArgs(frame)
local lexeme_id = args[1]
local current_lexeme = getEntity(lexeme_id)
local current_language = current_lexeme:getLanguage()
local senses = current_lexeme:getSenses()
local add_heading = true
forms = current_lexeme:getForms()
if args[2] ~= nil then
local val = mw.text.trim(tostring(args[2]))
if val == "false" or val == "0" or val == "না" then
add_heading = false
end
end
local references_seen = {}
local sections = {}
local lang_name = wb.getLabel(current_language)
if add_heading == true then
local lang_heading = "== " .. lang_name .. " =="
table.insert(sections, lang_heading)
end
local lex_cat = current_lexeme:getLexicalCategory()
lang_code = getLexemeLanguageCode(current_lexeme)
local title = mw.title.getCurrentTitle().text
local lang_category = getLanguageForCategories(current_language, title)
local cat = i18n.lang_category(wb.getLabel(lex_cat), wb.getLabel(lang_category))
local lex_cat_template
if cat ~= nil then
table.insert(sections, '===' .. wb.getLabel(lex_cat) .. cat .. frame:expandTemplate{
title = i18n['template_anchor'],
args = { lexeme_id }
} .. '===')
table.insert(sections, frame:expandTemplate{
title= i18n['template_lexeme'],
args = {lexeme_id}
})
add_any_notes(sections, args, i18n['manual_category'])
local etymology = getEtymology( current_lexeme )
if etymology ~= '' and etymology ~= nil then
table.insert(sections, heading_level(i18n['heading_etymology'], 4))
table.insert(sections, tostring(etymology))
end
add_any_notes(sections, args, i18n['manual_etymology'])
local pronunciation = getPronunciation( frame, current_lexeme, lang_name, lex_cat )
if pronunciation ~= '' then
table.insert(sections, heading_level(i18n['heading_pronunciation'], 4))
table.insert(sections, tostring(pronunciation))
end
add_any_notes(sections, args, i18n['manual_pronunciation'])
local alternative_spellings = getAlternativeSpellings( current_lexeme )
if alternative_spellings ~= '' then
table.insert(sections, heading_level(i18n['heading_alternative_spellings'], 4))
table.insert(sections, alternative_spellings)
end
if lang_code ~= nil and lang_code ~= 'ksy' and lang_code ~= 'rkt' then -- Skip for Kharia Thar, Rangpuri
if lex_cat == 'Q34698' then -- বিশেষণ
lex_cat_template = safeExpand(frame, lang_code .. '-adj')
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষণ')
end
elseif lex_cat == 'Q1084' then -- @TODO: Also check for plural forms
local gender
local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ
if #stmts ~= 0 then
if #stmts == 1 then
local gender_qid = stmts[1].mainsnak.datavalue.value.id
if gender_qid == 'Q499327' then
gender = 'm'
elseif gender_qid == 'Q1775415' then
gender = 'f'
elseif gender_qid == 'Q1775461' then
gender = 'n'
elseif gender_qid == 'Q1305037' then
gender = 'c'
end
end
else
for i, stmt in pairs(stmts) do
local qid = stmts[i].mainsnak.datavalue.value.id
if qid == 'Q499327' then
gender = gender .. 'm'
elseif qid == 'Q1775415' then
gender = gender .. 'f'
end
end
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
if current_language == 'Q13955' then
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
lex_cat_template = frame:expandTemplate{title='ar-noun', args={matched_lemma,gender}}
else
lex_cat_template = frame:expandTemplate{title='ar-noun', args={nil,gender}}
end
elseif current_language == 'Q29919' then
lex_cat_template = frame:expandTemplate{title='arz-noun', args={g=gender}}
elseif current_language == 'Q397' then
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
lex_cat_template = frame:expandTemplate{title='la-noun', args={matched_lemma,g=gender}}
end
elseif current_language == 'Q11059' then
lex_cat_template = frame:expandTemplate{title='sa-noun', args={g=gender}}
elseif current_language ~= 'Q1860' then -- These templates require the gender to be passed as the 1st argument.
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix'], {gender})
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix_fallback'], {gender})
end
end
end
end
-- elseif lex_cat == 'Q147276' then
-- lex_cat_template = safeExpand(frame, lang_code .. '-proper noun', {gender})
-- if not lex_cat_template then
-- lex_cat_template = safeExpand(frame, lang_code .. '-নামবাচক বিশেষ্য', {gender})
-- end
end
if lex_cat_template ~= nil then
table.insert(sections, lex_cat_template)
else
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
table.insert(sections, heading_level(matched_lemma, 4))
else
table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]')
end
end
local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name))
table.insert(sections, tostring(meanings))
add_any_notes(sections, args, i18n['manual_meaning'])
local instance_of = current_lexeme:getBestStatements('P31') -- সত্ত্বার ধরন
if #instance_of ~= 0 then
local instance_of_entity = instance_of[1].mainsnak.datavalue.value.id
if instance_of_entity == 'Q40437546' or instance_of_entity == 'Q120831827' or instance_of_entity == 'Q120717979' or instance_of_entity == 'Q124476844' then -- @TODO: generalise this so all types of roots are shown
table.insert(sections, i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity))
elseif instance_of_entity == 'Q376431' then -- বর্ণের নাম
table.insert(sections, i18n.tocatlink(lang_code .. ':রং'))
end
end
local translations = getTranslations(frame, senses)
if translations ~= nil then
table.insert(sections, translations)
end
-- (!) বিশেষ ভাষার বিভক্তির সারণি যদি থাকে সেগুলো এখানে নতুন if বিবৃতি যোগ করা যায়।
if next(forms) ~= nil then
if current_language == 'Q9610' then -- বাংলা
local conjTable = require('মডিউল:আভিধানিক উপাত্ত/Q9610').getInflectionTable(frame, current_lexeme)
table.insert(sections, conjTable) -- Bengali adjectives do not need any table thanks to the bn-adj template.
--elseif current_language == 'Q13955' then -- আরবি
-- if lex_cat == 'Q1084' then
-- table.insert(sections, frame:expandTemplate{title='ar-decl-noun', args={lemma}})
-- end
elseif current_language == 'Q188' then -- জার্মান
if lex_cat == 'Q1084' then
table.insert(sections, callWikifunctionsFunction('Z28602|' .. lexeme_id .. '|', frame))
end
else
if current_language ~= 'Q1860' then -- ইংরেজি
table.insert(sections, buildLanguageAgnosticInflectionTable())
end
end
end
local reference_notes = get_any_notes(sections, args, i18n['manual_reference'])
if #references_seen > 0 or #reference_notes > 0 then
table.insert(sections, heading_level(i18n['heading_references'], 4))
table.insert(sections, frame:extensionTag('references'))
add_specific_notes(sections, reference_notes)
end
local external_link_table = getExternalLinks ( current_lexeme )
if #external_link_table > 0 then
local external_links = '* ' .. table.concat(external_link_table, '\n* ')
table.insert(sections, heading_level(i18n['heading_external_links'], 4))
table.insert(sections, external_links)
end
add_any_notes(sections, args, i18n['manual_external_link'])
if #references_seen == 0 and #reference_notes == 0 and #external_link_table == 0 and #get_any_notes(sections, args, i18n['manual_external_link']) == 0 then
if i18n['category_rfref'][lang_category] ~= nil then
table.insert(sections, i18n.tocatlink(i18n['category_rfref'][lang_category]))
else
table.insert(sections, i18n.tocatlink(i18n['category_rfref']['_']))
end
end
return table.concat(sections,"\n\n")
end
return p
6qz8lcqsdm28vle4vt9t0bwm5s1l4uc
508167
508154
2026-04-24T09:54:15Z
Redmin
6857
508167
Scribunto
text/plain
local p = {}
local i18n = require('মডিউল:আভিধানিক উপাত্ত/i18n')
local references = require('মডিউল:উইকিউপাত্ত তথ্যসূত্র বিন্যাসকরণ').format
local getArgs = require('Module:Arguments').getArgs
local formatter_urls = require('মডিউল:আভিধানিক উপাত্ত/urls').formatter_urls
local wb = mw.wikibase
local ustring = mw.ustring
local html = mw.html
local mw_lang = mw.language
local entity_cache = {}
local reference_cache = {}
local forms
local lang_code
local function countWords(string)
local count = 0
for word in ustring.gmatch(string, "%S+") do
count = count + 1
end
return count
end
local function normalizeLemmas(text)
text = mw.ustring.gsub(text, "ٰ", "")
text = mw.ustring.gsub(text, "ِ", "")
text = mw.ustring.gsub(text, "[ً-ٟ]", "")
text = mw.ustring.gsub(text, "أ", "ا")
--text = mw.ustring.gsub(text, "إ", "ا")
text = mw.ustring.gsub(text, "آ", "ا")
return text
end
local function serializeTable(val, name, skipnewlines, depth) -- https://stackoverflow.com/a/6081639
skipnewlines = skipnewlines or false
depth = depth or 0
local tmp = string.rep(" ", depth)
if name then tmp = tmp .. name .. " = " end
if type(val) == "table" then
tmp = tmp .. "{" .. (not skipnewlines and "\n" or "")
for k, v in pairs(val) do
tmp = tmp .. serializeTable(v, k, skipnewlines, depth + 1) .. "," .. (not skipnewlines and "\n" or "")
end
tmp = tmp .. string.rep(" ", depth) .. "}"
elseif type(val) == "number" then
tmp = tmp .. tostring(val)
elseif type(val) == "string" then
tmp = tmp .. string.format("%q", val)
elseif type(val) == "boolean" then
tmp = tmp .. (val and "true" or "false")
else
tmp = tmp .. "\"[inserializeable datatype:" .. type(val) .. "]\""
end
return tmp
end
-- Use this to safely expand templates when you are not sure that they exist.
local function safeExpand(frame, title, args)
local success, result = pcall(function()
return frame:expandTemplate{ title = title, args = args }
end)
if result:find('does not exist') then -- expandTemplate{} doesn't seem to throw any error that can be handled with pcall() so string search is the only viable option.
return nil
end
return result
end
local function getReference( id, reference )
local out_id = nil
local url_value
if reference_cache[id] == nil then
local ref_text = references(reference, wb, mw_lang, i18n['content_lang_code'], i18n['wikipedia'])
if reference.snaks ~= nil then
if reference.snaks['P248'] ~= nil then
for _, snak in pairs(reference.snaks['P248']) do
if snak.datavalue and snak.datavalue.value.id == 'Q428' then -- কুরআন
ref_text = ustring.gsub(ref_text, 'নামক অনুচ্ছেদ', 'নং আয়াত')
break
end
end
end
if reference.snaks['P854'] ~= nil then
local snak = reference.snaks['P854'][1]
if snak.datavalue then
url_value = snak.datavalue.value
end
end
end
if url_value ~= nil then
ref_text = ref_text .. ', [' .. url_value .. ' সংযোগ]'
end
reference_cache[id] = ref_text
else
out_id = id
end
return {out_id, reference_cache[id]}
end
local function getEntity( id )
if entity_cache[id] == nil then
entity_cache[id] = wb.getEntity(id)
end
return entity_cache[id] ~= false and entity_cache[id] or nil
end
local function getLexemeLanguageCode(current_lexeme)
local lang_item_id = current_lexeme:getLanguage()
if lang_item_id == nil then
return nil
end
local lang_entity = getEntity(lang_item_id)
if lang_entity == nil then
return nil
end
for i, statement_property in ipairs({'P305','P424', 'P220'}) do -- আইইটিএফ ভাষা ট্যাগ, উইকিমিডিয়া ভাষা কোড, আইএসও ৬৩৯-৩
local statements = lang_entity:getBestStatements(statement_property)
if statements[1] ~= nil then
return statements[1].mainsnak.datavalue.value
end
end
return nil
end
-- Return the first form of the lexeme which has exactly the given grammatical feature.
local function formWithSingleGrammaticalFeature( item_id )
for i = 1, #forms do
local grammaticalFeatures = forms[i]:getGrammaticalFeatures()
if #grammaticalFeatures == 1 and grammaticalFeatures[1] == item_id then
return forms[i]
end
end
return nil
end
local function getArticleLinkTemplate(frame, stmt_value)
local template = ''
local sitelink = getEntity(stmt_value):getSitelink(i18n['wikipedia'])
if sitelink ~= nil then
template = frame:expandTemplate{
title=i18n['template_wikipedia'],
args={sitelink}
}
end
return template
end
local function getArticleLinks (frame, sense )
local article_links = ''
for i, stmt in pairs(sense:getAllStatements('P5137')) do -- এই অর্থের জন্য আইটেম
article_links = article_links .. getArticleLinkTemplate(frame, stmt.mainsnak.datavalue.value.id)
end
for i, stmt in pairs(sense:getAllStatements('P9970')) do -- এই অর্থের জন্য বিধেয়
article_links = article_links .. getArticleLinkTemplate(frame, stmt.mainsnak.datavalue.value.id)
end
return article_links
end
-- @TODO: Generalise
local function expandTemplateForProperty(frame, object, property, template)
local lemmas = {}
local n = 0
for _, stmt in pairs(object:getAllStatements(property)) do
local lex = wb.lexeme.splitLexemeId(stmt.mainsnak.datavalue.value.id)
lex = getEntity(lex)
n = n + 1
lemmas[n] = lex:getLemma(lang_code)
end
if not lang_code or n == 0 then
return ''
end
-- Build args: first lang_code, then lemmas
local args = {lang_code}
for i = 1, n do
args[#args + 1] = lemmas[i]
end
return frame:expandTemplate{
title = template,
args = args
}
end
local function getExternalLinks( entity ) -- T418639
local external_links = {}
if entity.claims == nil then return external_links end
for property_id, statements in pairs(entity.claims) do
local formatter_url = formatter_urls[property_id]
if formatter_url ~= nil then
local property_source = wb.getBestStatements(property_id, 'P9073')
local source_name
if next(property_source) ~= nil then
source_name = wb.getLabel(property_source[1].mainsnak.datavalue.value.id)
or property_source[1].mainsnak.datavalue.value.id
else
source_name = wb.getLabel(property_id) or property_id
end
for i = 1, #statements do
local stmt = statements[i]
if stmt.mainsnak.datavalue then
local formatted_link = ustring.gsub(
ustring.gsub(formatter_url, '$1', stmt.mainsnak.datavalue.value),
' ', '+'
)
table.insert(external_links,
'[' .. formatted_link .. ' ' .. source_name .. ']')
end
end
end
end
return external_links
end
p.getExternalLinks = getExternalLinks -- রেখে দিন যাতে ডিবাগিং সম্ভব হয়
local function termSpan( term )
local text = term[1]
local lang = term[2]
local dir = mw_lang.new( lang ):getDir()
local span = html.create( 'span' )
span:attr( 'lang', lang )
:attr( 'dir', dir )
:wikitext( text )
return tostring( span )
end
local function termLink( term, lang_qid )
local text = term[1]
local lang = term[2]
local dir = mw_lang.new( lang ):getDir()
local span = html.create( 'span' )
span:attr( 'lang', lang )
:attr( 'dir', dir )
:wikitext( '[[' .. text .. '#' .. wb.getLabel(lang_qid) .. '|' .. text .. ']]' )
return tostring( span )
end
local function getLemmata( current_lexeme )
local lemma_string = ''
for i, rep in pairs(current_lexeme:getLemmas()) do
if lemma_string == '' then
lemma_string = termSpan(rep)
else
lemma_string = lemma_string .. '/' .. termSpan(rep)
end
end
return lemma_string
end
local function getLinkedLemmata( current_lexeme )
local lemma_string = ''
for i, rep in pairs(current_lexeme:getLemmas()) do
if lemma_string == '' then
lemma_string = termLink(rep, current_lexeme:getLanguage())
else
lemma_string = lemma_string .. '/' .. termLink(rep, current_lexeme:getLanguage())
end
end
return lemma_string
end
local function getExamples( current_lexeme, sense_id, references_seen )
local examples = html.create('dl')
for i, stmt in pairs(current_lexeme:getAllStatements('P5831')) do -- ব্যবহারের উদাহরণ
if stmt.qualifiers ~= nil and stmt.qualifiers['P6072'] ~= nil and stmt.qualifiers['P6072'][1].datavalue.value.id == sense_id then -- বিষয়ে লেক্সিমের অর্থ
example_text = ustring.gsub(stmt.mainsnak.datavalue.value.text, ' / ','<br/>')
example_lang = stmt.mainsnak.datavalue.value.language
local example_form_strs = {}
if stmt.qualifiers['P1810'] ~= nil then
table.insert(example_form_strs, stmt.qualifiers['P1810'][1].datavalue.value)
elseif stmt.qualifiers['P5830'] ~= nil then
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
for i, rep in pairs(example_form:getRepresentations()) do
table.insert(example_form_strs, rep[1])
end
end
example_str = nil
for i, example_form_str in pairs(example_form_strs) do
new_example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
if new_example_text ~= example_text then
example_str = termSpan({new_example_text, example_lang})
break
end
new_example_text = example_text
end
if example_str == nil then
example_str = termSpan({example_text, example_lang})
end
local reference_text = ''
if stmt.references ~= nil then
for j, reference in pairs(stmt.references) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. got_reference[2]
end
end
if example_str ~= nil then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
end
for i, stmt in pairs(wb.getAllStatements(sense_id, 'P5831')) do -- ব্যবহারের উদাহরণ
example_text = ustring.gsub(stmt.mainsnak.datavalue.value.text, ' / ','<br/>')
example_lang = stmt.mainsnak.datavalue.value.language
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
local example_form_str = nil
if stmt.qualifiers['P1810'] ~= nil then
example_form_str = stmt.qualifiers['P1810'][1].datavalue.value
end
if example_form_str == nil then
example_form_str = example_form:getRepresentation(i18n['content_lang_code'])
end
if example_form_str == nil then
example_form_str = example_form:getRepresentations()[1][1]
end
example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
example_str = termSpan({example_text, example_lang})
local reference_text = ''
if stmt.references ~= nil then
for j, reference in pairs(stmt.references) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. got_reference[2]
end
end
if example_str ~= nil then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
return { tostring(examples) , references_seen }
end
-- This calls frame:preprocess() instead of :callParserFunction() because the latter does not work for Wikifunctions function calls yet (see https://www.wikifunctions.org/wiki/Wikifunctions:Embedded_function_calls).
local function callWikifunctionsFunction(args, frame)
return frame:preprocess('{{#function:' .. args .. '}}')
end
local function checkTitleCodePointInRange(title, start_point, end_point)
return ustring.find( title, '[' ..ustring.char(start_point) .. '-' .. ustring.char(end_point) .. ']' )
end
local function getLanguageForCategories( lang_id, current_page_title )
-- বিশেষ ভাষার জন্য
if lang_id == 'Q11051' then -- হিন্দি/উর্দু
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- উর্দু
lang_id = 'Q11051ur'
elseif checkTitleCodePointInRange(current_page_title, 0x0900, 0x097f) ~= nil then -- হিন্দি
lang_id = 'Q11051hi'
end
elseif lang_id == 'Q58635' then -- পাঞ্জাবি
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- শাহমুখী
lang_id = 'Q58635pnb'
elseif checkTitleCodePointInRange(current_page_title, 0x0a00, 0x0a7f) ~= nil then -- গুরুমুখী
lang_id = 'Q58635pa'
end
elseif lang_id == 'Q56356571' then -- নয়া ফার্সি ভাষা
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- ফার্সি (ইরান/আফগানিস্তান)
lang_id = 'Q56356571fa'
elseif checkTitleCodePointInRange(current_page_title, 0x0400, 0x04ff) ~= nil then -- তাজিক
lang_id = 'Q56356571tg'
end
end
return lang_id
end
local function getOneStringForProperty(object, property)
local val
local stmts = object:getAllStatements(property)
if #stmts ~= 0 then
val = stmts[1].mainsnak.datavalue.value
end
return val
end
local function getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved
if #senses == 0 then
return nil
end
local all_translations = {}
for _, sense in pairs(senses) do
local translation_set = {}
local gloss = sense:getGloss('bn')
for _, stmt in pairs(sense:getAllStatements('P5972')) do
local translation = stmt.mainsnak.datavalue.value.id
local lexeme_id = wb.lexeme.splitLexemeId(translation)
local language = wb.getLabel(getEntity(lexeme_id):getLanguage())
table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>')
end
if #translation_set > 0 then
local block = frame:expandTemplate{ title = i18n['template_trans-top'], args = { gloss } }
block = block .. table.concat(translation_set, '\n') .. frame:expandTemplate{ title = i18n['template_trans-bottom'] }
table.insert(all_translations, block)
end
end
if #all_translations == 0 then
return nil
end
return '====' .. i18n['heading_translation'] .. '==== \n' .. table.concat(all_translations, '\n')
end
local createicon = function(langcode, entityID, propertyID)
langcode = langcode or ""
propertyID = propertyID or ""
local icon = " <span class='penicon autoconfirmed-show'>[["
-- " <span data-bridge-edit-flow='overwrite' class='penicon'>[[" -> enable Wikidata Bridge
.. "File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt="
.. i18n['edit_wikidata']
.. "|link=https://www.wikidata.org/entity/" .. entityID
if langcode ~= "" then icon = icon .. "?uselang=" .. langcode end
if propertyID ~= "" then icon = icon .. "#" .. propertyID end
icon = icon .. "|" .. i18n['edit_wikidata'] .. "]]</span>"
return icon
end
local function getMeanings( frame, args, current_lexeme, senses, references_seen, language_name)
if #senses == 0 then
return {createicon(i18n['content_lang_code'], current_lexeme:getId()) .. "''" .. i18n['text_category_rfdef'] .. "''" .. i18n.tocatlink(i18n['category_rfdef']), references_seen}
end
local meanings = html.create( 'ol' )
for i, sense in pairs(senses) do
local gloss_text_parts = {}
local main_gloss_text = frame:expandTemplate{
title=i18n['template_anchor'],
args={sense:getId()}
}
local specifiers = {}
for k, property_id in ipairs({'P6084', 'P6191', 'P9488'}) do -- অবস্থান যেখানে শব্দার্থ ব্যবহৃত, যে রীতিতে শব্দার্থ ব্যবহৃত হয়, যে ক্ষেত্রে ব্যবহৃত
for i, stmt in pairs(sense:getAllStatements(property_id)) do
local stmt_value = stmt.mainsnak.datavalue.value.id
local reference_text = ''
local refs = stmt.references
if refs ~= nil then
for j, reference in pairs(refs) do
table.insert(references_seen, reference.hash)
got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. frame:extensionTag('ref', got_reference[2])
end
table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code']) .. reference_text)
end
end
end
if #specifiers > 0 then
main_gloss_text = main_gloss_text .. "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
local gloss = sense:getGloss( i18n['content_lang_code'] )
if gloss ~= nil then
if countWords(gloss) == 1 then
main_gloss_text = main_gloss_text .. "[[" .. gloss .. "#" .. i18n['content_lang_name'] .. "|" .. gloss .. "]]"
else
main_gloss_text = main_gloss_text .. gloss
end
if gloss:match('^প্রদত্ত%s*(%S-)%s*নাম$') then -- given names
main_gloss_text = main_gloss_text .. i18n.tocatlink(language_name .. ' ' .. i18n['category_given_names'])
end
else
local other_gloss_text = nil
local other_gloss_lang = nil
local item_label_gloss_parts = {}
for k, stmt in pairs(sense:getAllStatements('P5137')) do -- যদি 'এই অর্থের জন্য আইটেম' মানের বাংলা লেবেল থাকে
local stmt_value = stmt.mainsnak.datavalue.value.id
local stmt_label = wb.getLabel(stmt_value)
if stmt_label ~= nil then
table.insert(item_label_gloss_parts, '[[:d:' .. stmt_value .. '|' .. stmt_label .. ']]')
end
end
if #item_label_gloss_parts > 0 then
other_gloss_text = table.concat(item_label_gloss_parts, '; ')
end
if other_gloss_text == nil then
for i, fallback_lang in ipairs(mw_lang.getFallbacksFor( i18n['content_lang_code'] )) do
if sense:getGloss( fallback_lang ) ~= nil then
other_gloss_text, other_gloss_lang = sense:getGloss( fallback_lang )
end
end
if other_gloss_lang == nil then
local glosses = sense:getGlosses()
for j, gloss in pairs(glosses) do
other_gloss_text = gloss[1]
other_gloss_lang = gloss[2]
break
end
end
main_gloss_text = main_gloss_text .. other_gloss_text .. "<sup><em>" .. mw_lang.fetchLanguageName(other_gloss_lang, i18n['content_lang_code']) .. "</em></sup>"
else
main_gloss_text = main_gloss_text .. "''" .. other_gloss_text .. "''"
end
main_gloss_text = main_gloss_text .. i18n.tocatlink(i18n['category_rfdef_equivalent'])
end
local synonym = expandTemplateForProperty(frame, sense, 'P5973', i18n['template_synonym'])
if synonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. synonym
end
local antonym = expandTemplateForProperty(frame, sense, 'P5974', i18n['template_antonym'])
if antonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. antonym
end
local hypernym = expandTemplateForProperty(frame, sense, 'P6593', i18n['template_hypernym'])
if hypernym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. hypernym
end
if lex_cat == 'Q1084' or lex_cat == 'Q147276' then -- noun or proper noun
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-noun'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
elseif lex_cat == 'Q34698' then
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-adj'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
end
table.insert(gloss_text_parts, main_gloss_text .. createicon(i18n['content_lang_code'], sense:getId()))
for i, stmt in pairs(sense:getAllStatements('P8394')) do -- টিপ্পনীর উদ্ধৃতি
gloss_quote = termSpan({stmt.mainsnak.datavalue.value.text, stmt.mainsnak.datavalue.value.language})
if stmt.references[1] ~= nil then
local got_reference = getReference ( stmt.references[1].hash, stmt.references[1] )
gloss_quote = '"' .. gloss_quote .. '" ' .. got_reference[2]
end
table.insert(references_seen, stmt.references[1].hash)
table.insert(gloss_text_parts, frame:extensionTag('ref', gloss_quote))
end
for i, stmt in pairs(sense:getAllStatements('P1343')) do -- বর্ণিত উৎস
-- TODO: do away with making fake reference objects
local fake_reference = { ['snaks'] = {} }
fake_reference.snaks['P248'] = { [1] = stmt.mainsnak }
qualifiers_order = stmt['qualifiers-order']
if qualifiers_order ~= nil then
for i, k in ipairs(qualifiers_order) do fake_reference.snaks[k] = stmt.qualifiers[k] end
end
fake_reference.hash = mw.hash.hashValue('sha3-512', serializeTable(fake_reference))
table.insert(references_seen, fake_reference.hash)
local got_reference = getReference(fake_reference.hash, fake_reference)
if got_reference[1] == nil then
table.insert(gloss_text_parts, frame:extensionTag('ref', got_reference[2], {name = fake_reference.hash}))
else
table.insert(gloss_text_parts, frame:extensionTag{name = 'ref', content='', args = {name = got_reference[1]}})
end
end
local first_sense_image = ''
local sense_images = sense:getAllStatements('P18')
if next(sense_images) ~= nil then
first_sense_image = sense_images[1].mainsnak.datavalue.value
end
if first_sense_image ~= '' then
table.insert(gloss_text_parts, '[[চিত্র:' .. first_sense_image .. "|thumb|'''" .. getLemmata(current_lexeme) .. "'''—" .. main_gloss_text .. ']]')
end
local idlinks = getExternalLinks(sense)
if #idlinks > 0 then
local idlinktext = '<small>('
for _, idlink in pairs(idlinks) do
idlinktext = idlinktext .. idlink .. '\n'
end
idlinktext = idlinktext .. ')</small>'
table.insert(gloss_text_parts, idlinktext)
end
local externallinks = getArticleLinks(frame, sense)
if externallinks ~= '' then
table.insert(gloss_text_parts, externallinks)
end
local new_notes = {}
local sense_keys = { sense:getId(), string.sub(sense:getId(), string.find(sense:getId(), '-')+1) }
for _, v in ipairs(sense_keys) do
if args[v] ~= nil then
table.insert(new_notes, args[v])
end
end
if #new_notes > 0 then
for _, v in ipairs(new_notes) do
if i == 1 then
table.insert(gloss_text_parts, '<br/>' .. v)
else
table.insert(gloss_text_parts, v)
end
end
end
local examples, references_seen = unpack(getExamples( current_lexeme, sense:getId(), references_seen ))
local gloss_text = table.concat(gloss_text_parts, '\n')
meanings:tag('li'):wikitext(gloss_text):wikitext(examples)
end
return {meanings, references_seen}
end
local function getPronunciationBaseForm( lang_name, lex_cat)
local base_form = nil
-- (!) অন্য ভাষার শব্দের যদি অন্য রকম মূল ফর্ম থাকে সেগুলো এখানে নতুন if বিবৃতি দিয়ে যোগ করা যায়।
if lang_name == 'বাংলা' then
if lex_cat == 'Q1084' then -- বিশেষ্য
base_form = formWithSingleGrammaticalFeature( 'Q131105' ) -- কর্তৃকারক
elseif lex_cat == 'Q24905' then -- ক্রিয়া
base_form = formWithSingleGrammaticalFeature( 'Q1350145' ) -- ক্রিয়া বিশেষ্য
end
end
if base_form == nil then
for i, form in pairs(forms) do
base_form = form
break
end
end
return base_form
end
local function getCombines( current_lexeme )
local combines = ''
local index_mappings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P5238')) do
if stmt.qualifiers ~= nil and stmt.qualifiers['P1545'] ~= nil then -- ক্রম
local current_index = tonumber(stmt.qualifiers['P1545'][1].datavalue.value)
index_mappings[current_index] = stmt
end
end
if #index_mappings ~= 0 then
for i, stmt in ipairs(index_mappings) do
local part_lexeme_id = stmt.mainsnak.datavalue.value.id
local part_lexeme = getEntity(part_lexeme_id)
local current_substring = getLinkedLemmata(part_lexeme)
local part_etymology = getEtymology(part_lexeme)
if part_etymology ~= '' and part_etymology ~= nil then
current_substring = current_substring .. ' (← ' .. part_etymology .. ')'
end
if combines == '' then
combines = current_substring
else -- @TODO: This shoukd use the 'affix' template instead.
combines = combines .. ' + ' .. current_substring
end
end
end
return combines
end
function getRoots ( current_lexeme )
local stmts = current_lexeme:getAllStatements('P5920')
if #stmts == 0 then return '' end
local root_lexeme = getEntity(stmts[1].mainsnak.datavalue.value.id)
return '√' .. getLinkedLemmata(root_lexeme)
end
function getEtymology ( current_lexeme )
-- TODO: see if any etymology chains are not possible to render
local etymology = ''
local current_combines = getCombines(current_lexeme)
local current_roots = getRoots(current_lexeme)
local stmts = current_lexeme:getAllStatements('P5191')
if #stmts == 0 then
if current_roots ~= '' and current_combines ~= '' then
return current_roots .. '<br/>(' .. current_combines .. ')'
elseif current_roots ~= '' then
return current_roots
else
return current_combines
end
end
for i, stmt in pairs(stmts) do
local origin_lexeme_dv = stmt.mainsnak.datavalue -- If this is nil, the origin lexeme is not known.
if origin_lexeme_dv ~= nil then
local origin_lexeme = getEntity(origin_lexeme_dv.value.id)
local origin_lexeme_lang = origin_lexeme:getLanguage()
local origin_lexeme_string = getLinkedLemmata(origin_lexeme) .. ' (' .. wb.getLabel(origin_lexeme_lang) .. ')'
if stmt.qualifiers ~= nil and stmt.qualifiers['P5886'] ~= nil then
local mode_of_derivation = stmt.qualifiers['P5886'][1].datavalue.value.id
if mode_of_derivation == 'Q1345001' then
origin_lexeme_string = ustring.gsub(i18n['etymology_borrowing'], '$1', origin_lexeme_string)
elseif mode_of_derivation == 'Q845079' then
origin_lexeme_string = ustring.gsub(i18n['etymology_learned_borrowing'], '$1', origin_lexeme_string)
elseif mode_of_derivation == 'Q56611986' then
origin_lexeme_string = ustring.gsub(i18n['etymology_inheritance'], '$1', origin_lexeme_string)
end
end
local origin_origin = getEtymology(origin_lexeme)
local new_etymology_string = ''
if origin_origin ~= '' and origin_origin ~= nil then
new_etymology_string = origin_lexeme_string .. ' ← ' .. origin_origin
else
new_etymology_string = origin_lexeme_string
end
end
if etymology == '' then
etymology = new_etymology_string
elseif origin_lexeme_string ~= nil then
etymology = etymology .. ' ' .. origin_lexeme_string
end
end
if current_roots ~= '' then
etymology = etymology .. ' ' .. current_roots
end
if current_combines ~= '' and etymology ~= nil then
etymology = etymology .. '<br/>(' .. current_combines .. ')'
end
return etymology
end
local function getPronunciation( frame, current_lexeme, lang_name, lex_cat )
local pronunciations = {}
local base_form = getPronunciationBaseForm(lang_name, lex_cat )
if base_form ~= nil then
for i, stmt in pairs(base_form:getAllStatements('P443')) do -- উচ্চারণের অডিও
local pronunciation_file = stmt.mainsnak.datavalue.value
local specifier_text = ''
local specifiers = {}
if stmt.qualifiers ~= nil then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in pairs(stmt.qualifiers[property_id]) do
local stmt_value = qual.datavalue.value.id
table.insert(specifiers, wb.getLabel(stmt_value))
end
end
end
if #specifiers > 0 then
specifier_text = table.concat(specifiers, "'', ''")
end
local audio_text
if specifier_text ~= '' then
audio_text = i18n['text_audio'] .. ' (' .. specifier_text .. ')'
else
audio_text = i18n['text_audio']
end
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title= i18n['template_audio'],
args = {lang_name, pronunciation_file, audio_text}
})
end
local ipa_transcription = base_form:getAllStatements('P898') -- - আধ্বব প্রতিলিপিকরণ
local iso15919_transcription = getOneStringForProperty(base_form, 'P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ
local itrans = getOneStringForProperty(base_form, 'P8881') -- ITRANS
local iast = getOneStringForProperty(base_form, 'P7581') -- আইএএসটি প্রতিলিপিকরণ
local xsampa = getOneStringForProperty(base_form, 'P2859')
-- @TODO: অডিও ও প্রতিলিপিকরণ দুটোই থাকলে সেই ক্ষেত্রে একটার ঠিক পরেই আরেকটা দেখানো উচিত
if #ipa_transcription ~= 0 then
for i, stmt in pairs(ipa_transcription) do
local ipa_text = stmt.mainsnak.datavalue.value
local specifier_text = ''
local specifiers = {}
if stmt.qualifiers ~= nil then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in ipairs(stmt.qualifiers[property_id]) do
table.insert(specifiers, wb.getLabel( qual.datavalue.value.id ))
end
end
end
if #specifiers > 0 then
specifier_text = "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
table.insert(pronunciations, '* ' .. specifier_text .. frame:expandTemplate{
title= i18n['template_ipa'],
args = {lang_name, ipa_text}
} .. '\n* ' .. i18n['text_syllable_count'] .. callWikifunctionsFunction('Z30837|' .. ipa_text, frame))
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
elseif lang_name == 'বাংলা' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='bn-IPA',
})
elseif lang_name == 'আরবি' then
local lemma = current_lexeme:getLemma('ar')
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='ar-IPA',
args={lemma}
})
elseif lang_name == 'ফালা' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fax-pron',
})
elseif lang_name == 'ফিনীয়' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fi-IPA',
})
end
if iso15919_transcription ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_iso15919'] .. iso15919_transcription)
end
if itrans ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_itrans'] .. itrans)
end
if iast ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_iast'] .. iast)
end
if xsampa ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_xsampa'] .. xsampa)
end
end -- {{আধ্বব|en|/ˈɪntəvjuː/}}
return table.concat(pronunciations, '\n')
end
function getAlternativeSpellings( current_lexeme )
local alt_spellings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P11577')) do -- বিকল্প বানান
if stmt.mainsnak.datavalue ~= nil then
table.insert(alt_spellings, '* ' .. getLinkedLemmata(getEntity(stmt.mainsnak.datavalue.value.id)))
end
end
return table.concat(alt_spellings, '\n')
end
local function heading_level(text, level)
local heading_delimiter = string.rep('=', level)
return heading_delimiter .. ' ' .. text .. ' ' .. heading_delimiter
end
function get_any_notes(sections, args, keys)
local notes = {}
for i, v in ipairs(keys) do
if args[v] ~= nil then
table.insert(notes, args[v])
end
end
return notes
end
function add_specific_notes(sections, notes)
for i, v in ipairs(notes) do
table.insert(sections, v)
end
end
local function add_any_notes(sections, args, keys)
for i, v in ipairs(keys) do
if args[v] ~= nil then
table.insert(sections, args[v])
end
end
end
local function getMatchingLemmaForPageTitle(lexeme, title)
local lemmas = lexeme:getLemmas()
local matched_lemma
for _, lemma_entry in ipairs(lemmas) do
local lemma = lemma_entry[1]
local clean_lemma = normalizeLemmas(lemma)
if clean_lemma == title then
matched_lemma = lemma
break
end
end
return matched_lemma
end
local function buildLanguageAgnosticInflectionTable()
local has_image = false
local form_images = {}
for i, form in ipairs(forms) do
local form_image = form:getAllStatements('P7407')
if next(form_image) ~= nil then
form_images[i] = form_image[1].mainsnak.datavalue.value
has_image = true
end
end
local table_class = "wikitable mw-collapsible sortable"
if not has_image then
table_class = table_class .. " mw-collapsed"
end
local text = "{| class='" .. table_class .. "' style='border:solid 1px rgb(80%,80%,100%); text-align:center;'\n"
text = text .. "|+ " .. i18n['heading_inflection_table'] .. "\n"
text = text .. "|- \n"
text = text .. "! " .. i18n['heading_form'] .. " !! " .. i18n['heading_grammatical_features']
if has_image then
text = text .. " !! " .. (i18n['heading_image'])
end
text = text .. " \n"
for i, form in ipairs(forms) do
local rep = form:getRepresentations()
local feat = form:getGrammaticalFeatures()
local rep_text = ""
for j, r in pairs(rep) do
if rep_text == "" then
rep_text = r[1]
else
rep_text = rep_text .. " / " .. r[1]
end
end
local feat_text = ""
if feat ~= nil then
for j, f in ipairs(feat) do
local label = wb.getLabel(f)
if feat_text == "" then
feat_text = label
else
feat_text = feat_text .. ", " .. label
end
end
end
text = text .. "|-\n"
text = text .. "| " .. (rep_text ~= "" and rep_text or "—")
text = text .. " || " .. (feat_text ~= "" and feat_text or "—")
if has_image then
local image_cell = "—"
if form_images[i] ~= nil then
image_cell = "[[চিত্র:" .. form_images[i] .. "|50px]]"
end
text = text .. " || " .. image_cell
end
text = text .. "\n"
end
text = text .. "|}"
return text
end
function p.all( frame )
local args = getArgs(frame)
local lexeme_id = args[1]
local current_lexeme = getEntity(lexeme_id)
local current_language = current_lexeme:getLanguage()
local senses = current_lexeme:getSenses()
local add_heading = true
forms = current_lexeme:getForms()
if args[2] ~= nil then
local val = mw.text.trim(tostring(args[2]))
if val == "false" or val == "0" or val == "না" then
add_heading = false
end
end
local references_seen = {}
local sections = {}
local lang_name = wb.getLabel(current_language)
if add_heading == true then
local lang_heading = "== " .. lang_name .. " =="
table.insert(sections, lang_heading)
end
local lex_cat = current_lexeme:getLexicalCategory()
lang_code = getLexemeLanguageCode(current_lexeme)
local title = mw.title.getCurrentTitle().text
local lang_category = getLanguageForCategories(current_language, title)
local cat = i18n.lang_category(wb.getLabel(lex_cat), wb.getLabel(lang_category))
local lex_cat_template
if cat ~= nil then
table.insert(sections, '===' .. wb.getLabel(lex_cat) .. cat .. frame:expandTemplate{
title = i18n['template_anchor'],
args = { lexeme_id }
} .. '===')
table.insert(sections, frame:expandTemplate{
title= i18n['template_lexeme'],
args = {lexeme_id}
})
add_any_notes(sections, args, i18n['manual_category'])
local etymology = getEtymology( current_lexeme )
if etymology ~= '' and etymology ~= nil then
table.insert(sections, heading_level(i18n['heading_etymology'], 4))
table.insert(sections, tostring(etymology))
end
add_any_notes(sections, args, i18n['manual_etymology'])
local pronunciation = getPronunciation( frame, current_lexeme, lang_name, lex_cat )
if pronunciation ~= '' then
table.insert(sections, heading_level(i18n['heading_pronunciation'], 4))
table.insert(sections, tostring(pronunciation))
end
add_any_notes(sections, args, i18n['manual_pronunciation'])
local alternative_spellings = getAlternativeSpellings( current_lexeme )
if alternative_spellings ~= '' then
table.insert(sections, heading_level(i18n['heading_alternative_spellings'], 4))
table.insert(sections, alternative_spellings)
end
if lang_code ~= nil and lang_code ~= 'ksy' and lang_code ~= 'rkt' then -- Skip for Kharia Thar, Rangpuri
if lex_cat == 'Q34698' then -- বিশেষণ
lex_cat_template = safeExpand(frame, lang_code .. '-adj')
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষণ')
end
elseif lex_cat == 'Q1084' then -- @TODO: Also check for plural forms
local gender
local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ
if #stmts ~= 0 then
if #stmts == 1 then
local gender_qid = stmts[1].mainsnak.datavalue.value.id
if gender_qid == 'Q499327' then
gender = 'm'
elseif gender_qid == 'Q1775415' then
gender = 'f'
elseif gender_qid == 'Q1775461' then
gender = 'n'
elseif gender_qid == 'Q1305037' then
gender = 'c'
end
end
else
for i, stmt in pairs(stmts) do
local qid = stmts[i].mainsnak.datavalue.value.id
if qid == 'Q499327' then
gender = gender .. 'm'
elseif qid == 'Q1775415' then
gender = gender .. 'f'
end
end
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
if current_language == 'Q13955' then
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
lex_cat_template = frame:expandTemplate{title='ar-noun', args={matched_lemma,gender}}
else
lex_cat_template = frame:expandTemplate{title='ar-noun', args={nil,gender}}
end
elseif current_language == 'Q29919' then
lex_cat_template = frame:expandTemplate{title='arz-noun', args={g=gender}}
elseif current_language == 'Q397' then
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
lex_cat_template = frame:expandTemplate{title='la-noun', args={matched_lemma,g=gender}}
end
elseif current_language == 'Q11059' then
lex_cat_template = frame:expandTemplate{title='sa-noun', args={g=gender}}
elseif current_language ~= 'Q1860' then -- These templates require the gender to be passed as the 1st argument.
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix'], {gender})
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix_fallback'], {gender})
end
end
end
end
-- elseif lex_cat == 'Q147276' then
-- lex_cat_template = safeExpand(frame, lang_code .. '-proper noun', {gender})
-- if not lex_cat_template then
-- lex_cat_template = safeExpand(frame, lang_code .. '-নামবাচক বিশেষ্য', {gender})
-- end
end
if lex_cat_template ~= nil then
table.insert(sections, lex_cat_template)
else
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
table.insert(sections, heading_level(matched_lemma, 4))
else
table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]')
end
end
local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name))
table.insert(sections, tostring(meanings))
add_any_notes(sections, args, i18n['manual_meaning'])
local instance_of = current_lexeme:getBestStatements('P31') -- সত্ত্বার ধরন
if #instance_of ~= 0 then
local instance_of_entity = instance_of[1].mainsnak.datavalue.value.id
if instance_of_entity == 'Q40437546' or instance_of_entity == 'Q120831827' or instance_of_entity == 'Q120717979' or instance_of_entity == 'Q124476844' then -- @TODO: generalise this so all types of roots are shown
table.insert(sections, i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity))
elseif instance_of_entity == 'Q376431' then -- বর্ণের নাম
table.insert(sections, i18n.tocatlink(lang_code .. ':রং'))
end
end
local translations = getTranslations(frame, senses)
if translations ~= nil then
table.insert(sections, translations)
end
-- (!) বিশেষ ভাষার বিভক্তির সারণি যদি থাকে সেগুলো এখানে নতুন if বিবৃতি যোগ করা যায়।
if next(forms) ~= nil then
if current_language == 'Q9610' then -- বাংলা
local conjTable = require('মডিউল:আভিধানিক উপাত্ত/Q9610').getInflectionTable(frame, current_lexeme)
table.insert(sections, conjTable) -- Bengali adjectives do not need any table thanks to the bn-adj template.
--elseif current_language == 'Q13955' then -- আরবি
-- if lex_cat == 'Q1084' then
-- table.insert(sections, frame:expandTemplate{title='ar-decl-noun', args={lemma}})
-- end
elseif current_language == 'Q188' then -- জার্মান
if lex_cat == 'Q1084' then
table.insert(sections, callWikifunctionsFunction('Z28602|' .. lexeme_id .. '|', frame))
end
else
if current_language ~= 'Q1860' then -- ইংরেজি
table.insert(sections, buildLanguageAgnosticInflectionTable())
end
end
end
local reference_notes = get_any_notes(sections, args, i18n['manual_reference'])
if #references_seen > 0 or #reference_notes > 0 then
table.insert(sections, heading_level(i18n['heading_references'], 4))
table.insert(sections, frame:extensionTag('references'))
add_specific_notes(sections, reference_notes)
end
local external_link_table = getExternalLinks ( current_lexeme )
if #external_link_table > 0 then
local external_links = '* ' .. table.concat(external_link_table, '\n* ')
table.insert(sections, heading_level(i18n['heading_external_links'], 4))
table.insert(sections, external_links)
end
add_any_notes(sections, args, i18n['manual_external_link'])
if #references_seen == 0 and #reference_notes == 0 and #external_link_table == 0 and #get_any_notes(sections, args, i18n['manual_external_link']) == 0 then
if i18n['category_rfref'][lang_category] ~= nil then
table.insert(sections, i18n.tocatlink(i18n['category_rfref'][lang_category]))
else
table.insert(sections, i18n.tocatlink(i18n['category_rfref']['_']))
end
end
return table.concat(sections,"\n\n")
end
return p
6dipznq81766pc3dztlcba41ybh9cdg
508173
508167
2026-04-24T10:21:38Z
Redmin
6857
+Z33244
508173
Scribunto
text/plain
local p = {}
local i18n = require('মডিউল:আভিধানিক উপাত্ত/i18n')
local references = require('মডিউল:উইকিউপাত্ত তথ্যসূত্র বিন্যাসকরণ').format
local getArgs = require('Module:Arguments').getArgs
local formatter_urls = require('মডিউল:আভিধানিক উপাত্ত/urls').formatter_urls
local wb = mw.wikibase
local ustring = mw.ustring
local html = mw.html
local mw_lang = mw.language
local entity_cache = {}
local reference_cache = {}
local forms
local lang_code
local function countWords(string)
local count = 0
for word in ustring.gmatch(string, "%S+") do
count = count + 1
end
return count
end
local function normalizeLemmas(text)
text = mw.ustring.gsub(text, "ٰ", "")
text = mw.ustring.gsub(text, "ِ", "")
text = mw.ustring.gsub(text, "[ً-ٟ]", "")
text = mw.ustring.gsub(text, "أ", "ا")
--text = mw.ustring.gsub(text, "إ", "ا")
text = mw.ustring.gsub(text, "آ", "ا")
return text
end
local function serializeTable(val, name, skipnewlines, depth) -- https://stackoverflow.com/a/6081639
skipnewlines = skipnewlines or false
depth = depth or 0
local tmp = string.rep(" ", depth)
if name then tmp = tmp .. name .. " = " end
if type(val) == "table" then
tmp = tmp .. "{" .. (not skipnewlines and "\n" or "")
for k, v in pairs(val) do
tmp = tmp .. serializeTable(v, k, skipnewlines, depth + 1) .. "," .. (not skipnewlines and "\n" or "")
end
tmp = tmp .. string.rep(" ", depth) .. "}"
elseif type(val) == "number" then
tmp = tmp .. tostring(val)
elseif type(val) == "string" then
tmp = tmp .. string.format("%q", val)
elseif type(val) == "boolean" then
tmp = tmp .. (val and "true" or "false")
else
tmp = tmp .. "\"[inserializeable datatype:" .. type(val) .. "]\""
end
return tmp
end
-- Use this to safely expand templates when you are not sure that they exist.
local function safeExpand(frame, title, args)
local success, result = pcall(function()
return frame:expandTemplate{ title = title, args = args }
end)
if result:find('does not exist') then -- expandTemplate{} doesn't seem to throw any error that can be handled with pcall() so string search is the only viable option.
return nil
end
return result
end
local function getReference( id, reference )
local out_id = nil
local url_value
if reference_cache[id] == nil then
local ref_text = references(reference, wb, mw_lang, i18n['content_lang_code'], i18n['wikipedia'])
if reference.snaks ~= nil then
if reference.snaks['P248'] ~= nil then
for _, snak in pairs(reference.snaks['P248']) do
if snak.datavalue and snak.datavalue.value.id == 'Q428' then -- কুরআন
ref_text = ustring.gsub(ref_text, 'নামক অনুচ্ছেদ', 'নং আয়াত')
break
end
end
end
if reference.snaks['P854'] ~= nil then
local snak = reference.snaks['P854'][1]
if snak.datavalue then
url_value = snak.datavalue.value
end
end
end
if url_value ~= nil then
ref_text = ref_text .. ', [' .. url_value .. ' সংযোগ]'
end
reference_cache[id] = ref_text
else
out_id = id
end
return {out_id, reference_cache[id]}
end
local function getEntity( id )
if entity_cache[id] == nil then
entity_cache[id] = wb.getEntity(id)
end
return entity_cache[id] ~= false and entity_cache[id] or nil
end
local function getLexemeLanguageCode(current_lexeme)
local lang_item_id = current_lexeme:getLanguage()
if lang_item_id == nil then
return nil
end
local lang_entity = getEntity(lang_item_id)
if lang_entity == nil then
return nil
end
for i, statement_property in ipairs({'P305','P424', 'P220'}) do -- আইইটিএফ ভাষা ট্যাগ, উইকিমিডিয়া ভাষা কোড, আইএসও ৬৩৯-৩
local statements = lang_entity:getBestStatements(statement_property)
if statements[1] ~= nil then
return statements[1].mainsnak.datavalue.value
end
end
return nil
end
-- Return the first form of the lexeme which has exactly the given grammatical feature.
local function formWithSingleGrammaticalFeature( item_id )
for i = 1, #forms do
local grammaticalFeatures = forms[i]:getGrammaticalFeatures()
if #grammaticalFeatures == 1 and grammaticalFeatures[1] == item_id then
return forms[i]
end
end
return nil
end
local function getArticleLinkTemplate(frame, stmt_value)
local template = ''
local sitelink = getEntity(stmt_value):getSitelink(i18n['wikipedia'])
if sitelink ~= nil then
template = frame:expandTemplate{
title=i18n['template_wikipedia'],
args={sitelink}
}
end
return template
end
local function getArticleLinks (frame, sense )
local article_links = ''
for i, stmt in pairs(sense:getAllStatements('P5137')) do -- এই অর্থের জন্য আইটেম
article_links = article_links .. getArticleLinkTemplate(frame, stmt.mainsnak.datavalue.value.id)
end
for i, stmt in pairs(sense:getAllStatements('P9970')) do -- এই অর্থের জন্য বিধেয়
article_links = article_links .. getArticleLinkTemplate(frame, stmt.mainsnak.datavalue.value.id)
end
return article_links
end
-- @TODO: Generalise
local function expandTemplateForProperty(frame, object, property, template)
local lemmas = {}
local n = 0
for _, stmt in pairs(object:getAllStatements(property)) do
local lex = wb.lexeme.splitLexemeId(stmt.mainsnak.datavalue.value.id)
lex = getEntity(lex)
n = n + 1
lemmas[n] = lex:getLemma(lang_code)
end
if not lang_code or n == 0 then
return ''
end
-- Build args: first lang_code, then lemmas
local args = {lang_code}
for i = 1, n do
args[#args + 1] = lemmas[i]
end
return frame:expandTemplate{
title = template,
args = args
}
end
local function getExternalLinks( entity ) -- T418639
local external_links = {}
if entity.claims == nil then return external_links end
for property_id, statements in pairs(entity.claims) do
local formatter_url = formatter_urls[property_id]
if formatter_url ~= nil then
local property_source = wb.getBestStatements(property_id, 'P9073')
local source_name
if next(property_source) ~= nil then
source_name = wb.getLabel(property_source[1].mainsnak.datavalue.value.id)
or property_source[1].mainsnak.datavalue.value.id
else
source_name = wb.getLabel(property_id) or property_id
end
for i = 1, #statements do
local stmt = statements[i]
if stmt.mainsnak.datavalue then
local formatted_link = ustring.gsub(
ustring.gsub(formatter_url, '$1', stmt.mainsnak.datavalue.value),
' ', '+'
)
table.insert(external_links,
'[' .. formatted_link .. ' ' .. source_name .. ']')
end
end
end
end
return external_links
end
p.getExternalLinks = getExternalLinks -- রেখে দিন যাতে ডিবাগিং সম্ভব হয়
local function termSpan( term )
local text = term[1]
local lang = term[2]
local dir = mw_lang.new( lang ):getDir()
local span = html.create( 'span' )
span:attr( 'lang', lang )
:attr( 'dir', dir )
:wikitext( text )
return tostring( span )
end
local function termLink( term, lang_qid )
local text = term[1]
local lang = term[2]
local dir = mw_lang.new( lang ):getDir()
local span = html.create( 'span' )
span:attr( 'lang', lang )
:attr( 'dir', dir )
:wikitext( '[[' .. text .. '#' .. wb.getLabel(lang_qid) .. '|' .. text .. ']]' )
return tostring( span )
end
local function getLemmata( current_lexeme )
local lemma_string = ''
for i, rep in pairs(current_lexeme:getLemmas()) do
if lemma_string == '' then
lemma_string = termSpan(rep)
else
lemma_string = lemma_string .. '/' .. termSpan(rep)
end
end
return lemma_string
end
local function getLinkedLemmata( current_lexeme )
local lemma_string = ''
for i, rep in pairs(current_lexeme:getLemmas()) do
if lemma_string == '' then
lemma_string = termLink(rep, current_lexeme:getLanguage())
else
lemma_string = lemma_string .. '/' .. termLink(rep, current_lexeme:getLanguage())
end
end
return lemma_string
end
local function getExamples( current_lexeme, sense_id, references_seen )
local examples = html.create('dl')
for i, stmt in pairs(current_lexeme:getAllStatements('P5831')) do -- ব্যবহারের উদাহরণ
if stmt.qualifiers ~= nil and stmt.qualifiers['P6072'] ~= nil and stmt.qualifiers['P6072'][1].datavalue.value.id == sense_id then -- বিষয়ে লেক্সিমের অর্থ
example_text = ustring.gsub(stmt.mainsnak.datavalue.value.text, ' / ','<br/>')
example_lang = stmt.mainsnak.datavalue.value.language
local example_form_strs = {}
if stmt.qualifiers['P1810'] ~= nil then
table.insert(example_form_strs, stmt.qualifiers['P1810'][1].datavalue.value)
elseif stmt.qualifiers['P5830'] ~= nil then
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
for i, rep in pairs(example_form:getRepresentations()) do
table.insert(example_form_strs, rep[1])
end
end
example_str = nil
for i, example_form_str in pairs(example_form_strs) do
new_example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
if new_example_text ~= example_text then
example_str = termSpan({new_example_text, example_lang})
break
end
new_example_text = example_text
end
if example_str == nil then
example_str = termSpan({example_text, example_lang})
end
local reference_text = ''
if stmt.references ~= nil then
for j, reference in pairs(stmt.references) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. got_reference[2]
end
end
if example_str ~= nil then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
end
for i, stmt in pairs(wb.getAllStatements(sense_id, 'P5831')) do -- ব্যবহারের উদাহরণ
example_text = ustring.gsub(stmt.mainsnak.datavalue.value.text, ' / ','<br/>')
example_lang = stmt.mainsnak.datavalue.value.language
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
local example_form_str = nil
if stmt.qualifiers['P1810'] ~= nil then
example_form_str = stmt.qualifiers['P1810'][1].datavalue.value
end
if example_form_str == nil then
example_form_str = example_form:getRepresentation(i18n['content_lang_code'])
end
if example_form_str == nil then
example_form_str = example_form:getRepresentations()[1][1]
end
example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
example_str = termSpan({example_text, example_lang})
local reference_text = ''
if stmt.references ~= nil then
for j, reference in pairs(stmt.references) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. got_reference[2]
end
end
if example_str ~= nil then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
return { tostring(examples) , references_seen }
end
-- This calls frame:preprocess() instead of :callParserFunction() because the latter does not work for Wikifunctions function calls yet (see https://www.wikifunctions.org/wiki/Wikifunctions:Embedded_function_calls).
local function callWikifunctionsFunction(args, frame)
return frame:preprocess('{{#function:' .. args .. '}}')
end
local function checkTitleCodePointInRange(title, start_point, end_point)
return ustring.find( title, '[' ..ustring.char(start_point) .. '-' .. ustring.char(end_point) .. ']' )
end
local function getLanguageForCategories( lang_id, current_page_title )
-- বিশেষ ভাষার জন্য
if lang_id == 'Q11051' then -- হিন্দি/উর্দু
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- উর্দু
lang_id = 'Q11051ur'
elseif checkTitleCodePointInRange(current_page_title, 0x0900, 0x097f) ~= nil then -- হিন্দি
lang_id = 'Q11051hi'
end
elseif lang_id == 'Q58635' then -- পাঞ্জাবি
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- শাহমুখী
lang_id = 'Q58635pnb'
elseif checkTitleCodePointInRange(current_page_title, 0x0a00, 0x0a7f) ~= nil then -- গুরুমুখী
lang_id = 'Q58635pa'
end
elseif lang_id == 'Q56356571' then -- নয়া ফার্সি ভাষা
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- ফার্সি (ইরান/আফগানিস্তান)
lang_id = 'Q56356571fa'
elseif checkTitleCodePointInRange(current_page_title, 0x0400, 0x04ff) ~= nil then -- তাজিক
lang_id = 'Q56356571tg'
end
end
return lang_id
end
local function getOneStringForProperty(object, property)
local val
local stmts = object:getAllStatements(property)
if #stmts ~= 0 then
val = stmts[1].mainsnak.datavalue.value
end
return val
end
local function getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved
if #senses == 0 then
return nil
end
local all_translations = {}
for _, sense in pairs(senses) do
local translation_set = {}
local gloss = sense:getGloss('bn')
for _, stmt in pairs(sense:getAllStatements('P5972')) do
local translation = stmt.mainsnak.datavalue.value.id
local lexeme_id = wb.lexeme.splitLexemeId(translation)
local language = wb.getLabel(getEntity(lexeme_id):getLanguage())
table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>')
end
if #translation_set > 0 then
local block = frame:expandTemplate{ title = i18n['template_trans-top'], args = { gloss } }
block = block .. table.concat(translation_set, '\n') .. frame:expandTemplate{ title = i18n['template_trans-bottom'] }
table.insert(all_translations, block)
end
end
if #all_translations == 0 then
return nil
end
return '====' .. i18n['heading_translation'] .. '==== \n' .. table.concat(all_translations, '\n')
end
local createicon = function(langcode, entityID, propertyID)
langcode = langcode or ""
propertyID = propertyID or ""
local icon = " <span class='penicon autoconfirmed-show'>[["
-- " <span data-bridge-edit-flow='overwrite' class='penicon'>[[" -> enable Wikidata Bridge
.. "File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt="
.. i18n['edit_wikidata']
.. "|link=https://www.wikidata.org/entity/" .. entityID
if langcode ~= "" then icon = icon .. "?uselang=" .. langcode end
if propertyID ~= "" then icon = icon .. "#" .. propertyID end
icon = icon .. "|" .. i18n['edit_wikidata'] .. "]]</span>"
return icon
end
local function getMeanings( frame, args, current_lexeme, senses, references_seen, language_name)
if #senses == 0 then
return {createicon(i18n['content_lang_code'], current_lexeme:getId()) .. "''" .. i18n['text_category_rfdef'] .. "''" .. i18n.tocatlink(i18n['category_rfdef']), references_seen}
end
local meanings = html.create( 'ol' )
for i, sense in pairs(senses) do
local gloss_text_parts = {}
local main_gloss_text = frame:expandTemplate{
title=i18n['template_anchor'],
args={sense:getId()}
}
local specifiers = {}
for k, property_id in ipairs({'P6084', 'P6191', 'P9488'}) do -- অবস্থান যেখানে শব্দার্থ ব্যবহৃত, যে রীতিতে শব্দার্থ ব্যবহৃত হয়, যে ক্ষেত্রে ব্যবহৃত
for i, stmt in pairs(sense:getAllStatements(property_id)) do
local stmt_value = stmt.mainsnak.datavalue.value.id
local reference_text = ''
local refs = stmt.references
if refs ~= nil then
for j, reference in pairs(refs) do
table.insert(references_seen, reference.hash)
got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. frame:extensionTag('ref', got_reference[2])
end
table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code']) .. reference_text)
end
end
end
if #specifiers > 0 then
main_gloss_text = main_gloss_text .. "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
local gloss = sense:getGloss( i18n['content_lang_code'] )
if gloss ~= nil then
if countWords(gloss) == 1 then
main_gloss_text = main_gloss_text .. "[[" .. gloss .. "#" .. i18n['content_lang_name'] .. "|" .. gloss .. "]]"
else
main_gloss_text = main_gloss_text .. gloss
end
if gloss:match('^প্রদত্ত%s*(%S-)%s*নাম$') then -- given names
main_gloss_text = main_gloss_text .. i18n.tocatlink(language_name .. ' ' .. i18n['category_given_names'])
end
else
local other_gloss_text = nil
local other_gloss_lang = nil
local item_label_gloss_parts = {}
for k, stmt in pairs(sense:getAllStatements('P5137')) do -- যদি 'এই অর্থের জন্য আইটেম' মানের বাংলা লেবেল থাকে
local stmt_value = stmt.mainsnak.datavalue.value.id
local stmt_label = wb.getLabel(stmt_value)
if stmt_label ~= nil then
table.insert(item_label_gloss_parts, '[[:d:' .. stmt_value .. '|' .. stmt_label .. ']]')
end
end
if #item_label_gloss_parts > 0 then
other_gloss_text = table.concat(item_label_gloss_parts, '; ')
end
if other_gloss_text == nil then
for i, fallback_lang in ipairs(mw_lang.getFallbacksFor( i18n['content_lang_code'] )) do
if sense:getGloss( fallback_lang ) ~= nil then
other_gloss_text, other_gloss_lang = sense:getGloss( fallback_lang )
end
end
if other_gloss_lang == nil then
local glosses = sense:getGlosses()
for j, gloss in pairs(glosses) do
other_gloss_text = gloss[1]
other_gloss_lang = gloss[2]
break
end
end
main_gloss_text = main_gloss_text .. other_gloss_text .. "<sup><em>" .. mw_lang.fetchLanguageName(other_gloss_lang, i18n['content_lang_code']) .. "</em></sup>"
else
main_gloss_text = main_gloss_text .. "''" .. other_gloss_text .. "''"
end
main_gloss_text = main_gloss_text .. i18n.tocatlink(i18n['category_rfdef_equivalent'])
end
local synonym = expandTemplateForProperty(frame, sense, 'P5973', i18n['template_synonym'])
if synonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. synonym
end
local antonym = expandTemplateForProperty(frame, sense, 'P5974', i18n['template_antonym'])
if antonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. antonym
end
local hypernym = expandTemplateForProperty(frame, sense, 'P6593', i18n['template_hypernym'])
if hypernym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. hypernym
end
if lex_cat == 'Q1084' or lex_cat == 'Q147276' then -- noun or proper noun
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-noun'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
elseif lex_cat == 'Q34698' then
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-adj'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
end
table.insert(gloss_text_parts, main_gloss_text .. createicon(i18n['content_lang_code'], sense:getId()))
for i, stmt in pairs(sense:getAllStatements('P8394')) do -- টিপ্পনীর উদ্ধৃতি
gloss_quote = termSpan({stmt.mainsnak.datavalue.value.text, stmt.mainsnak.datavalue.value.language})
if stmt.references[1] ~= nil then
local got_reference = getReference ( stmt.references[1].hash, stmt.references[1] )
gloss_quote = '"' .. gloss_quote .. '" ' .. got_reference[2]
end
table.insert(references_seen, stmt.references[1].hash)
table.insert(gloss_text_parts, frame:extensionTag('ref', gloss_quote))
end
for i, stmt in pairs(sense:getAllStatements('P1343')) do -- বর্ণিত উৎস
-- TODO: do away with making fake reference objects
local fake_reference = { ['snaks'] = {} }
fake_reference.snaks['P248'] = { [1] = stmt.mainsnak }
qualifiers_order = stmt['qualifiers-order']
if qualifiers_order ~= nil then
for i, k in ipairs(qualifiers_order) do fake_reference.snaks[k] = stmt.qualifiers[k] end
end
fake_reference.hash = mw.hash.hashValue('sha3-512', serializeTable(fake_reference))
table.insert(references_seen, fake_reference.hash)
local got_reference = getReference(fake_reference.hash, fake_reference)
if got_reference[1] == nil then
table.insert(gloss_text_parts, frame:extensionTag('ref', got_reference[2], {name = fake_reference.hash}))
else
table.insert(gloss_text_parts, frame:extensionTag{name = 'ref', content='', args = {name = got_reference[1]}})
end
end
local first_sense_image = ''
local sense_images = sense:getAllStatements('P18')
if next(sense_images) ~= nil then
first_sense_image = sense_images[1].mainsnak.datavalue.value
end
if first_sense_image ~= '' then
table.insert(gloss_text_parts, '[[চিত্র:' .. first_sense_image .. "|thumb|'''" .. getLemmata(current_lexeme) .. "'''—" .. main_gloss_text .. ']]')
end
local idlinks = getExternalLinks(sense)
if #idlinks > 0 then
local idlinktext = '<small>('
for _, idlink in pairs(idlinks) do
idlinktext = idlinktext .. idlink .. '\n'
end
idlinktext = idlinktext .. ')</small>'
table.insert(gloss_text_parts, idlinktext)
end
local externallinks = getArticleLinks(frame, sense)
if externallinks ~= '' then
table.insert(gloss_text_parts, externallinks)
end
local new_notes = {}
local sense_keys = { sense:getId(), string.sub(sense:getId(), string.find(sense:getId(), '-')+1) }
for _, v in ipairs(sense_keys) do
if args[v] ~= nil then
table.insert(new_notes, args[v])
end
end
if #new_notes > 0 then
for _, v in ipairs(new_notes) do
if i == 1 then
table.insert(gloss_text_parts, '<br/>' .. v)
else
table.insert(gloss_text_parts, v)
end
end
end
local examples, references_seen = unpack(getExamples( current_lexeme, sense:getId(), references_seen ))
local gloss_text = table.concat(gloss_text_parts, '\n')
meanings:tag('li'):wikitext(gloss_text):wikitext(examples)
end
return {meanings, references_seen}
end
local function getPronunciationBaseForm( lang_name, lex_cat)
local base_form = nil
-- (!) অন্য ভাষার শব্দের যদি অন্য রকম মূল ফর্ম থাকে সেগুলো এখানে নতুন if বিবৃতি দিয়ে যোগ করা যায়।
if lang_name == 'বাংলা' then
if lex_cat == 'Q1084' then -- বিশেষ্য
base_form = formWithSingleGrammaticalFeature( 'Q131105' ) -- কর্তৃকারক
elseif lex_cat == 'Q24905' then -- ক্রিয়া
base_form = formWithSingleGrammaticalFeature( 'Q1350145' ) -- ক্রিয়া বিশেষ্য
end
end
if base_form == nil then
for i, form in pairs(forms) do
base_form = form
break
end
end
return base_form
end
local function getCombines( current_lexeme )
local combines = ''
local index_mappings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P5238')) do
if stmt.qualifiers ~= nil and stmt.qualifiers['P1545'] ~= nil then -- ক্রম
local current_index = tonumber(stmt.qualifiers['P1545'][1].datavalue.value)
index_mappings[current_index] = stmt
end
end
if #index_mappings ~= 0 then
for i, stmt in ipairs(index_mappings) do
local part_lexeme_id = stmt.mainsnak.datavalue.value.id
local part_lexeme = getEntity(part_lexeme_id)
local current_substring = getLinkedLemmata(part_lexeme)
local part_etymology = getEtymology(part_lexeme)
if part_etymology ~= '' and part_etymology ~= nil then
current_substring = current_substring .. ' (← ' .. part_etymology .. ')'
end
if combines == '' then
combines = current_substring
else -- @TODO: This shoukd use the 'affix' template instead.
combines = combines .. ' + ' .. current_substring
end
end
end
return combines
end
function getRoots ( current_lexeme )
local stmts = current_lexeme:getAllStatements('P5920')
if #stmts == 0 then return '' end
local root_lexeme = getEntity(stmts[1].mainsnak.datavalue.value.id)
return '√' .. getLinkedLemmata(root_lexeme)
end
function getEtymology ( current_lexeme )
-- TODO: see if any etymology chains are not possible to render
local etymology = ''
local current_combines = getCombines(current_lexeme)
local current_roots = getRoots(current_lexeme)
local stmts = current_lexeme:getAllStatements('P5191')
if #stmts == 0 then
if current_roots ~= '' and current_combines ~= '' then
return current_roots .. '<br/>(' .. current_combines .. ')'
elseif current_roots ~= '' then
return current_roots
else
return current_combines
end
end
for i, stmt in pairs(stmts) do
local origin_lexeme_dv = stmt.mainsnak.datavalue -- If this is nil, the origin lexeme is not known.
if origin_lexeme_dv ~= nil then
local origin_lexeme = getEntity(origin_lexeme_dv.value.id)
local origin_lexeme_lang = origin_lexeme:getLanguage()
local origin_lexeme_string = getLinkedLemmata(origin_lexeme) .. ' (' .. wb.getLabel(origin_lexeme_lang) .. ')'
if stmt.qualifiers ~= nil and stmt.qualifiers['P5886'] ~= nil then
local mode_of_derivation = stmt.qualifiers['P5886'][1].datavalue.value.id
if mode_of_derivation == 'Q1345001' then
origin_lexeme_string = ustring.gsub(i18n['etymology_borrowing'], '$1', origin_lexeme_string)
elseif mode_of_derivation == 'Q845079' then
origin_lexeme_string = ustring.gsub(i18n['etymology_learned_borrowing'], '$1', origin_lexeme_string)
elseif mode_of_derivation == 'Q56611986' then
origin_lexeme_string = ustring.gsub(i18n['etymology_inheritance'], '$1', origin_lexeme_string)
end
end
local origin_origin = getEtymology(origin_lexeme)
local new_etymology_string = ''
if origin_origin ~= '' and origin_origin ~= nil then
new_etymology_string = origin_lexeme_string .. ' ← ' .. origin_origin
else
new_etymology_string = origin_lexeme_string
end
end
if etymology == '' then
etymology = new_etymology_string
elseif origin_lexeme_string ~= nil then
etymology = etymology .. ' ' .. origin_lexeme_string
end
end
if current_roots ~= '' then
etymology = etymology .. ' ' .. current_roots
end
if current_combines ~= '' and etymology ~= nil then
etymology = etymology .. '<br/>(' .. current_combines .. ')'
end
return etymology
end
local function getPronunciation( frame, current_lexeme, lang_name, lex_cat )
local pronunciations = {}
local base_form = getPronunciationBaseForm(lang_name, lex_cat )
if base_form ~= nil then
for i, stmt in pairs(base_form:getAllStatements('P443')) do -- উচ্চারণের অডিও
local pronunciation_file = stmt.mainsnak.datavalue.value
local specifier_text = ''
local specifiers = {}
if stmt.qualifiers ~= nil then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in pairs(stmt.qualifiers[property_id]) do
local stmt_value = qual.datavalue.value.id
table.insert(specifiers, wb.getLabel(stmt_value))
end
end
end
if #specifiers > 0 then
specifier_text = table.concat(specifiers, "'', ''")
end
local audio_text
if specifier_text ~= '' then
audio_text = i18n['text_audio'] .. ' (' .. specifier_text .. ')'
else
audio_text = i18n['text_audio']
end
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title= i18n['template_audio'],
args = {lang_name, pronunciation_file, audio_text}
})
end
local ipa_transcription = base_form:getAllStatements('P898') -- - আধ্বব প্রতিলিপিকরণ
local iso15919_transcription = getOneStringForProperty(base_form, 'P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ
local itrans = getOneStringForProperty(base_form, 'P8881') -- ITRANS
local iast = getOneStringForProperty(base_form, 'P7581') -- আইএএসটি প্রতিলিপিকরণ
local xsampa = getOneStringForProperty(base_form, 'P2859')
-- @TODO: অডিও ও প্রতিলিপিকরণ দুটোই থাকলে সেই ক্ষেত্রে একটার ঠিক পরেই আরেকটা দেখানো উচিত
if #ipa_transcription ~= 0 then
for i, stmt in pairs(ipa_transcription) do
local ipa_text = stmt.mainsnak.datavalue.value
local specifier_text = ''
local specifiers = {}
if stmt.qualifiers ~= nil then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in ipairs(stmt.qualifiers[property_id]) do
table.insert(specifiers, wb.getLabel( qual.datavalue.value.id ))
end
end
end
if #specifiers > 0 then
specifier_text = "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
table.insert(pronunciations, '* ' .. specifier_text .. frame:expandTemplate{
title= i18n['template_ipa'],
args = {lang_name, ipa_text}
} .. '\n* ' .. i18n['text_syllable_count'] .. callWikifunctionsFunction('Z30837|' .. ipa_text, frame))
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
elseif lang_name == 'বাংলা' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='bn-IPA',
})
elseif lang_name == 'আরবি' then
local lemma = current_lexeme:getLemma('ar')
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='ar-IPA',
args={lemma}
})
elseif lang_name == 'ফালা' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fax-pron',
})
elseif lang_name == 'ফিনীয়' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fi-IPA',
})
end
if iso15919_transcription ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_iso15919'] .. iso15919_transcription)
end
if itrans ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_itrans'] .. itrans)
end
if iast ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_iast'] .. iast)
end
if xsampa ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_xsampa'] .. xsampa)
end
end -- {{আধ্বব|en|/ˈɪntəvjuː/}}
return table.concat(pronunciations, '\n')
end
function getAlternativeSpellings( current_lexeme )
local alt_spellings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P11577')) do -- বিকল্প বানান
if stmt.mainsnak.datavalue ~= nil then
table.insert(alt_spellings, '* ' .. getLinkedLemmata(getEntity(stmt.mainsnak.datavalue.value.id)))
end
end
return table.concat(alt_spellings, '\n')
end
local function heading_level(text, level)
local heading_delimiter = string.rep('=', level)
return heading_delimiter .. ' ' .. text .. ' ' .. heading_delimiter
end
function get_any_notes(sections, args, keys)
local notes = {}
for i, v in ipairs(keys) do
if args[v] ~= nil then
table.insert(notes, args[v])
end
end
return notes
end
function add_specific_notes(sections, notes)
for i, v in ipairs(notes) do
table.insert(sections, v)
end
end
local function add_any_notes(sections, args, keys)
for i, v in ipairs(keys) do
if args[v] ~= nil then
table.insert(sections, args[v])
end
end
end
local function getMatchingLemmaForPageTitle(lexeme, title)
local lemmas = lexeme:getLemmas()
local matched_lemma
for _, lemma_entry in ipairs(lemmas) do
local lemma = lemma_entry[1]
local clean_lemma = normalizeLemmas(lemma)
if clean_lemma == title then
matched_lemma = lemma
break
end
end
return matched_lemma
end
local function buildLanguageAgnosticInflectionTable()
local has_image = false
local form_images = {}
for i, form in ipairs(forms) do
local form_image = form:getAllStatements('P7407')
if next(form_image) ~= nil then
form_images[i] = form_image[1].mainsnak.datavalue.value
has_image = true
end
end
local table_class = "wikitable mw-collapsible sortable"
if not has_image then
table_class = table_class .. " mw-collapsed"
end
local text = "{| class='" .. table_class .. "' style='border:solid 1px rgb(80%,80%,100%); text-align:center;'\n"
text = text .. "|+ " .. i18n['heading_inflection_table'] .. "\n"
text = text .. "|- \n"
text = text .. "! " .. i18n['heading_form'] .. " !! " .. i18n['heading_grammatical_features']
if has_image then
text = text .. " !! " .. (i18n['heading_image'])
end
text = text .. " \n"
for i, form in ipairs(forms) do
local rep = form:getRepresentations()
local feat = form:getGrammaticalFeatures()
local rep_text = ""
for j, r in pairs(rep) do
if rep_text == "" then
rep_text = r[1]
else
rep_text = rep_text .. " / " .. r[1]
end
end
local feat_text = ""
if feat ~= nil then
for j, f in ipairs(feat) do
local label = wb.getLabel(f)
if feat_text == "" then
feat_text = label
else
feat_text = feat_text .. ", " .. label
end
end
end
text = text .. "|-\n"
text = text .. "| " .. (rep_text ~= "" and rep_text or "—")
text = text .. " || " .. (feat_text ~= "" and feat_text or "—")
if has_image then
local image_cell = "—"
if form_images[i] ~= nil then
image_cell = "[[চিত্র:" .. form_images[i] .. "|50px]]"
end
text = text .. " || " .. image_cell
end
text = text .. "\n"
end
text = text .. "|}"
return text
end
function p.all( frame )
local args = getArgs(frame)
local lexeme_id = args[1]
local current_lexeme = getEntity(lexeme_id)
local current_language = current_lexeme:getLanguage()
local senses = current_lexeme:getSenses()
local add_heading = true
forms = current_lexeme:getForms()
if args[2] ~= nil then
local val = mw.text.trim(tostring(args[2]))
if val == "false" or val == "0" or val == "না" then
add_heading = false
end
end
local references_seen = {}
local sections = {}
local lang_name = wb.getLabel(current_language)
if add_heading == true then
local lang_heading = "== " .. lang_name .. " =="
table.insert(sections, lang_heading)
end
local lex_cat = current_lexeme:getLexicalCategory()
lang_code = getLexemeLanguageCode(current_lexeme)
local title = mw.title.getCurrentTitle().text
local lang_category = getLanguageForCategories(current_language, title)
local cat = i18n.lang_category(wb.getLabel(lex_cat), wb.getLabel(lang_category))
local lex_cat_template
if cat ~= nil then
table.insert(sections, '===' .. wb.getLabel(lex_cat) .. cat .. frame:expandTemplate{
title = i18n['template_anchor'],
args = { lexeme_id }
} .. '===')
table.insert(sections, frame:expandTemplate{
title= i18n['template_lexeme'],
args = {lexeme_id}
})
add_any_notes(sections, args, i18n['manual_category'])
local etymology = getEtymology( current_lexeme )
if etymology ~= '' and etymology ~= nil then
table.insert(sections, heading_level(i18n['heading_etymology'], 4))
table.insert(sections, tostring(etymology))
end
add_any_notes(sections, args, i18n['manual_etymology'])
local pronunciation = getPronunciation( frame, current_lexeme, lang_name, lex_cat )
if pronunciation ~= '' then
table.insert(sections, heading_level(i18n['heading_pronunciation'], 4))
table.insert(sections, tostring(pronunciation))
end
add_any_notes(sections, args, i18n['manual_pronunciation'])
local alternative_spellings = getAlternativeSpellings( current_lexeme )
if alternative_spellings ~= '' then
table.insert(sections, heading_level(i18n['heading_alternative_spellings'], 4))
table.insert(sections, alternative_spellings)
end
if lang_code ~= nil and lang_code ~= 'ksy' and lang_code ~= 'rkt' then -- Skip for Kharia Thar, Rangpuri
if lex_cat == 'Q34698' then -- বিশেষণ
lex_cat_template = safeExpand(frame, lang_code .. '-adj')
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষণ')
end
elseif lex_cat == 'Q1084' then -- @TODO: Also check for plural forms
local gender
local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ
if #stmts ~= 0 then
if #stmts == 1 then
local gender_qid = stmts[1].mainsnak.datavalue.value.id
if gender_qid == 'Q499327' then
gender = 'm'
elseif gender_qid == 'Q1775415' then
gender = 'f'
elseif gender_qid == 'Q1775461' then
gender = 'n'
elseif gender_qid == 'Q1305037' then
gender = 'c'
end
end
else
for i, stmt in pairs(stmts) do
local qid = stmts[i].mainsnak.datavalue.value.id
if qid == 'Q499327' then
gender = gender .. 'm'
elseif qid == 'Q1775415' then
gender = gender .. 'f'
end
end
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
if current_language == 'Q13955' then
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
lex_cat_template = frame:expandTemplate{title='ar-noun', args={matched_lemma,gender}}
else
lex_cat_template = frame:expandTemplate{title='ar-noun', args={nil,gender}}
end
elseif current_language == 'Q29919' then
lex_cat_template = frame:expandTemplate{title='arz-noun', args={g=gender}}
elseif current_language == 'Q397' then
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
lex_cat_template = frame:expandTemplate{title='la-noun', args={matched_lemma,g=gender}}
end
elseif current_language == 'Q11059' then
lex_cat_template = frame:expandTemplate{title='sa-noun', args={g=gender}}
elseif current_language ~= 'Q1860' then -- These templates require the gender to be passed as the 1st argument.
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix'], {gender})
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix_fallback'], {gender})
end
end
end
end
-- elseif lex_cat == 'Q147276' then
-- lex_cat_template = safeExpand(frame, lang_code .. '-proper noun', {gender})
-- if not lex_cat_template then
-- lex_cat_template = safeExpand(frame, lang_code .. '-নামবাচক বিশেষ্য', {gender})
-- end
end
if lex_cat_template ~= nil then
table.insert(sections, lex_cat_template)
else
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
table.insert(sections, heading_level(matched_lemma, 4))
else
table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]')
end
end
local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name))
table.insert(sections, tostring(meanings))
add_any_notes(sections, args, i18n['manual_meaning'])
local instance_of = current_lexeme:getBestStatements('P31') -- সত্ত্বার ধরন
if #instance_of ~= 0 then
local instance_of_entity = instance_of[1].mainsnak.datavalue.value.id
if instance_of_entity == 'Q40437546' or instance_of_entity == 'Q120831827' or instance_of_entity == 'Q120717979' or instance_of_entity == 'Q124476844' then -- @TODO: generalise this so all types of roots are shown
table.insert(sections, i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity))
elseif instance_of_entity == 'Q376431' then -- বর্ণের নাম
table.insert(sections, i18n.tocatlink(lang_code .. ':রং'))
end
end
local translations = getTranslations(frame, senses)
if translations ~= nil then
table.insert(sections, translations)
end
-- (!) বিশেষ ভাষার বিভক্তির সারণি যদি থাকে সেগুলো এখানে নতুন if বিবৃতি যোগ করা যায়।
if next(forms) ~= nil then
if current_language == 'Q9610' then -- বাংলা
if lex_cat == 'Q24905' then
local conjTable = require('মডিউল:আভিধানিক উপাত্ত/Q9610').getInflectionTable(frame, current_lexeme)
table.insert(sections, conjTable)
elseif lex_cat == 'Q1084' then
table.insert(sections, callWikifunctionsFunction('Z33244|' .. lexeme_id .. '|', frame))
end
--elseif current_language == 'Q13955' then -- আরবি
-- if lex_cat == 'Q1084' then
-- table.insert(sections, frame:expandTemplate{title='ar-decl-noun', args={lemma}})
-- end
elseif current_language == 'Q188' then -- জার্মান
if lex_cat == 'Q1084' then
table.insert(sections, callWikifunctionsFunction('Z28602|' .. lexeme_id .. '|', frame))
end
else
if current_language ~= 'Q1860' then -- ইংরেজি
table.insert(sections, buildLanguageAgnosticInflectionTable())
end
end
end
local reference_notes = get_any_notes(sections, args, i18n['manual_reference'])
if #references_seen > 0 or #reference_notes > 0 then
table.insert(sections, heading_level(i18n['heading_references'], 4))
table.insert(sections, frame:extensionTag('references'))
add_specific_notes(sections, reference_notes)
end
local external_link_table = getExternalLinks ( current_lexeme )
if #external_link_table > 0 then
local external_links = '* ' .. table.concat(external_link_table, '\n* ')
table.insert(sections, heading_level(i18n['heading_external_links'], 4))
table.insert(sections, external_links)
end
add_any_notes(sections, args, i18n['manual_external_link'])
if #references_seen == 0 and #reference_notes == 0 and #external_link_table == 0 and #get_any_notes(sections, args, i18n['manual_external_link']) == 0 then
if i18n['category_rfref'][lang_category] ~= nil then
table.insert(sections, i18n.tocatlink(i18n['category_rfref'][lang_category]))
else
table.insert(sections, i18n.tocatlink(i18n['category_rfref']['_']))
end
end
return table.concat(sections,"\n\n")
end
return p
5ux2q419ugp05qngbgw0a97ecvumm6n
508176
508173
2026-04-24T11:54:15Z
Redmin
6857
508176
Scribunto
text/plain
local p = {}
local i18n = require('মডিউল:আভিধানিক উপাত্ত/i18n')
local references = require('মডিউল:উইকিউপাত্ত তথ্যসূত্র বিন্যাসকরণ').format
local getArgs = require('Module:Arguments').getArgs
local formatter_urls = require('মডিউল:আভিধানিক উপাত্ত/urls').formatter_urls
local wb = mw.wikibase
local ustring = mw.ustring
local html = mw.html
local mw_lang = mw.language
local entity_cache = {}
local reference_cache = {}
local forms
local lang_code
local function countWords(string)
local count = 0
for word in ustring.gmatch(string, "%S+") do
count = count + 1
end
return count
end
local function normalizeLemmas(text)
text = mw.ustring.gsub(text, "ٰ", "")
text = mw.ustring.gsub(text, "ِ", "")
text = mw.ustring.gsub(text, "[ً-ٟ]", "")
text = mw.ustring.gsub(text, "أ", "ا")
--text = mw.ustring.gsub(text, "إ", "ا")
text = mw.ustring.gsub(text, "آ", "ا")
return text
end
local function serializeTable(val, name, skipnewlines, depth) -- https://stackoverflow.com/a/6081639
skipnewlines = skipnewlines or false
depth = depth or 0
local tmp = string.rep(" ", depth)
if name then tmp = tmp .. name .. " = " end
if type(val) == "table" then
tmp = tmp .. "{" .. (not skipnewlines and "\n" or "")
for k, v in pairs(val) do
tmp = tmp .. serializeTable(v, k, skipnewlines, depth + 1) .. "," .. (not skipnewlines and "\n" or "")
end
tmp = tmp .. string.rep(" ", depth) .. "}"
elseif type(val) == "number" then
tmp = tmp .. tostring(val)
elseif type(val) == "string" then
tmp = tmp .. string.format("%q", val)
elseif type(val) == "boolean" then
tmp = tmp .. (val and "true" or "false")
else
tmp = tmp .. "\"[inserializeable datatype:" .. type(val) .. "]\""
end
return tmp
end
-- Use this to safely expand templates when you are not sure that they exist.
local function safeExpand(frame, title, args)
local success, result = pcall(function()
return frame:expandTemplate{ title = title, args = args }
end)
if result:find('does not exist') then -- expandTemplate{} doesn't seem to throw any error that can be handled with pcall() so string search is the only viable option.
return nil
end
return result
end
local function getReference( id, reference )
local out_id = nil
local url_value
if reference_cache[id] == nil then
local ref_text = references(reference, wb, mw_lang, i18n['content_lang_code'], i18n['wikipedia'])
if reference.snaks ~= nil then
if reference.snaks['P248'] ~= nil then
for _, snak in pairs(reference.snaks['P248']) do
if snak.datavalue and snak.datavalue.value.id == 'Q428' then -- কুরআন
ref_text = ustring.gsub(ref_text, 'নামক অনুচ্ছেদ', 'নং আয়াত')
break
end
end
end
if reference.snaks['P854'] ~= nil then
local snak = reference.snaks['P854'][1]
if snak.datavalue then
url_value = snak.datavalue.value
end
end
end
if url_value ~= nil then
ref_text = ref_text .. ', [' .. url_value .. ' সংযোগ]'
end
reference_cache[id] = ref_text
else
out_id = id
end
return {out_id, reference_cache[id]}
end
local function getEntity( id )
if entity_cache[id] == nil then
entity_cache[id] = wb.getEntity(id)
end
return entity_cache[id] ~= false and entity_cache[id] or nil
end
local function getLexemeLanguageCode(current_lexeme)
local lang_item_id = current_lexeme:getLanguage()
if lang_item_id == nil then
return nil
end
local lang_entity = getEntity(lang_item_id)
if lang_entity == nil then
return nil
end
for i, statement_property in ipairs({'P305','P424', 'P220'}) do -- আইইটিএফ ভাষা ট্যাগ, উইকিমিডিয়া ভাষা কোড, আইএসও ৬৩৯-৩
local statements = lang_entity:getBestStatements(statement_property)
if statements[1] ~= nil then
return statements[1].mainsnak.datavalue.value
end
end
return nil
end
-- Return the first form of the lexeme which has exactly the given grammatical feature.
local function formWithSingleGrammaticalFeature( item_id )
for i = 1, #forms do
local grammaticalFeatures = forms[i]:getGrammaticalFeatures()
if #grammaticalFeatures == 1 and grammaticalFeatures[1] == item_id then
return forms[i]
end
end
return nil
end
local function getArticleLinkTemplate(frame, stmt_value)
local template = ''
local sitelink = getEntity(stmt_value):getSitelink(i18n['wikipedia'])
if sitelink ~= nil then
template = frame:expandTemplate{
title=i18n['template_wikipedia'],
args={sitelink}
}
end
return template
end
local function getArticleLinks (frame, sense )
local article_links = ''
for i, stmt in pairs(sense:getAllStatements('P5137')) do -- এই অর্থের জন্য আইটেম
article_links = article_links .. getArticleLinkTemplate(frame, stmt.mainsnak.datavalue.value.id)
end
for i, stmt in pairs(sense:getAllStatements('P9970')) do -- এই অর্থের জন্য বিধেয়
article_links = article_links .. getArticleLinkTemplate(frame, stmt.mainsnak.datavalue.value.id)
end
return article_links
end
-- @TODO: Generalise
local function expandTemplateForProperty(frame, object, property, template)
local lemmas = {}
local n = 0
for _, stmt in pairs(object:getAllStatements(property)) do
local lex = wb.lexeme.splitLexemeId(stmt.mainsnak.datavalue.value.id)
lex = getEntity(lex)
n = n + 1
lemmas[n] = lex:getLemma(lang_code)
end
if not lang_code or n == 0 then
return ''
end
-- Build args: first lang_code, then lemmas
local args = {lang_code}
for i = 1, n do
args[#args + 1] = lemmas[i]
end
return frame:expandTemplate{
title = template,
args = args
}
end
local function getExternalLinks( entity ) -- T418639
local external_links = {}
if entity.claims == nil then return external_links end
for property_id, statements in pairs(entity.claims) do
local formatter_url = formatter_urls[property_id]
if formatter_url ~= nil then
local property_source = wb.getBestStatements(property_id, 'P9073')
local source_name
if next(property_source) ~= nil then
source_name = wb.getLabel(property_source[1].mainsnak.datavalue.value.id)
or property_source[1].mainsnak.datavalue.value.id
else
source_name = wb.getLabel(property_id) or property_id
end
for i = 1, #statements do
local stmt = statements[i]
if stmt.mainsnak.datavalue then
local formatted_link = ustring.gsub(
ustring.gsub(formatter_url, '$1', stmt.mainsnak.datavalue.value),
' ', '+'
)
table.insert(external_links,
'[' .. formatted_link .. ' ' .. source_name .. ']')
end
end
end
end
return external_links
end
p.getExternalLinks = getExternalLinks -- রেখে দিন যাতে ডিবাগিং সম্ভব হয়
local function termSpan( term )
local text = term[1]
local lang = term[2]
local dir = mw_lang.new( lang ):getDir()
local span = html.create( 'span' )
span:attr( 'lang', lang )
:attr( 'dir', dir )
:wikitext( text )
return tostring( span )
end
local function termLink( term, lang_qid )
local text = term[1]
local lang = term[2]
local dir = mw_lang.new( lang ):getDir()
local span = html.create( 'span' )
span:attr( 'lang', lang )
:attr( 'dir', dir )
:wikitext( '[[' .. text .. '#' .. wb.getLabel(lang_qid) .. '|' .. text .. ']]' )
return tostring( span )
end
local function getLemmata( current_lexeme )
local lemma_string = ''
for i, rep in pairs(current_lexeme:getLemmas()) do
if lemma_string == '' then
lemma_string = termSpan(rep)
else
lemma_string = lemma_string .. '/' .. termSpan(rep)
end
end
return lemma_string
end
local function getLinkedLemmata( current_lexeme )
local lemma_string = ''
for i, rep in pairs(current_lexeme:getLemmas()) do
if lemma_string == '' then
lemma_string = termLink(rep, current_lexeme:getLanguage())
else
lemma_string = lemma_string .. '/' .. termLink(rep, current_lexeme:getLanguage())
end
end
return lemma_string
end
local function getExamples( current_lexeme, sense_id, references_seen )
local examples = html.create('dl')
for i, stmt in pairs(current_lexeme:getAllStatements('P5831')) do -- ব্যবহারের উদাহরণ
if stmt.qualifiers ~= nil and stmt.qualifiers['P6072'] ~= nil and stmt.qualifiers['P6072'][1].datavalue.value.id == sense_id then -- বিষয়ে লেক্সিমের অর্থ
example_text = ustring.gsub(stmt.mainsnak.datavalue.value.text, ' / ','<br/>')
example_lang = stmt.mainsnak.datavalue.value.language
local example_form_strs = {}
if stmt.qualifiers['P1810'] ~= nil then
table.insert(example_form_strs, stmt.qualifiers['P1810'][1].datavalue.value)
elseif stmt.qualifiers['P5830'] ~= nil then
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
for i, rep in pairs(example_form:getRepresentations()) do
table.insert(example_form_strs, rep[1])
end
end
example_str = nil
for i, example_form_str in pairs(example_form_strs) do
new_example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
if new_example_text ~= example_text then
example_str = termSpan({new_example_text, example_lang})
break
end
new_example_text = example_text
end
if example_str == nil then
example_str = termSpan({example_text, example_lang})
end
local reference_text = ''
if stmt.references ~= nil then
for j, reference in pairs(stmt.references) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. got_reference[2]
end
end
if example_str ~= nil then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
end
for i, stmt in pairs(wb.getAllStatements(sense_id, 'P5831')) do -- ব্যবহারের উদাহরণ
example_text = ustring.gsub(stmt.mainsnak.datavalue.value.text, ' / ','<br/>')
example_lang = stmt.mainsnak.datavalue.value.language
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
local example_form_str = nil
if stmt.qualifiers['P1810'] ~= nil then
example_form_str = stmt.qualifiers['P1810'][1].datavalue.value
end
if example_form_str == nil then
example_form_str = example_form:getRepresentation(i18n['content_lang_code'])
end
if example_form_str == nil then
example_form_str = example_form:getRepresentations()[1][1]
end
example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
example_str = termSpan({example_text, example_lang})
local reference_text = ''
if stmt.references ~= nil then
for j, reference in pairs(stmt.references) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. got_reference[2]
end
end
if example_str ~= nil then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
return { tostring(examples) , references_seen }
end
-- This calls frame:preprocess() instead of :callParserFunction() because the latter does not work for Wikifunctions function calls yet (see https://www.wikifunctions.org/wiki/Wikifunctions:Embedded_function_calls).
local function callWikifunctionsFunction(args, frame)
return frame:preprocess('{{#function:' .. args .. '}}')
end
local function checkTitleCodePointInRange(title, start_point, end_point)
return ustring.find( title, '[' ..ustring.char(start_point) .. '-' .. ustring.char(end_point) .. ']' )
end
local function getLanguageForCategories( lang_id, current_page_title )
-- বিশেষ ভাষার জন্য
if lang_id == 'Q11051' then -- হিন্দি/উর্দু
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- উর্দু
lang_id = 'Q11051ur'
elseif checkTitleCodePointInRange(current_page_title, 0x0900, 0x097f) ~= nil then -- হিন্দি
lang_id = 'Q11051hi'
end
elseif lang_id == 'Q58635' then -- পাঞ্জাবি
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- শাহমুখী
lang_id = 'Q58635pnb'
elseif checkTitleCodePointInRange(current_page_title, 0x0a00, 0x0a7f) ~= nil then -- গুরুমুখী
lang_id = 'Q58635pa'
end
elseif lang_id == 'Q56356571' then -- নয়া ফার্সি ভাষা
if checkTitleCodePointInRange(current_page_title, 0x0600, 0x06ff) ~= nil then -- ফার্সি (ইরান/আফগানিস্তান)
lang_id = 'Q56356571fa'
elseif checkTitleCodePointInRange(current_page_title, 0x0400, 0x04ff) ~= nil then -- তাজিক
lang_id = 'Q56356571tg'
end
end
return lang_id
end
local function getOneStringForProperty(object, property)
local val
local stmts = object:getAllStatements(property)
if #stmts ~= 0 then
val = stmts[1].mainsnak.datavalue.value
end
return val
end
local function getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved
if #senses == 0 then
return nil
end
local all_translations = {}
for _, sense in pairs(senses) do
local translation_set = {}
local gloss = sense:getGloss('bn')
for _, stmt in pairs(sense:getAllStatements('P5972')) do
local translation = stmt.mainsnak.datavalue.value.id
local lexeme_id = wb.lexeme.splitLexemeId(translation)
local language = wb.getLabel(getEntity(lexeme_id):getLanguage())
table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>')
end
if #translation_set > 0 then
local block = frame:expandTemplate{ title = i18n['template_trans-top'], args = { gloss } }
block = block .. table.concat(translation_set, '\n') .. frame:expandTemplate{ title = i18n['template_trans-bottom'] }
table.insert(all_translations, block)
end
end
if #all_translations == 0 then
return nil
end
return '====' .. i18n['heading_translation'] .. '==== \n' .. table.concat(all_translations, '\n')
end
local createicon = function(langcode, entityID, propertyID)
langcode = langcode or ""
propertyID = propertyID or ""
local icon = " <span class='penicon autoconfirmed-show'>[["
-- " <span data-bridge-edit-flow='overwrite' class='penicon'>[[" -> enable Wikidata Bridge
.. "File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt="
.. i18n['edit_wikidata']
.. "|link=https://www.wikidata.org/entity/" .. entityID
if langcode ~= "" then icon = icon .. "?uselang=" .. langcode end
if propertyID ~= "" then icon = icon .. "#" .. propertyID end
icon = icon .. "|" .. i18n['edit_wikidata'] .. "]]</span>"
return icon
end
local function getMeanings( frame, args, current_lexeme, senses, references_seen, language_name)
if #senses == 0 then
return {createicon(i18n['content_lang_code'], current_lexeme:getId()) .. "''" .. i18n['text_category_rfdef'] .. "''" .. i18n.tocatlink(i18n['category_rfdef']), references_seen}
end
local meanings = html.create( 'ol' )
for i, sense in pairs(senses) do
local gloss_text_parts = {}
local main_gloss_text = frame:expandTemplate{
title=i18n['template_anchor'],
args={sense:getId()}
}
local specifiers = {}
for k, property_id in ipairs({'P6084', 'P6191', 'P9488'}) do -- অবস্থান যেখানে শব্দার্থ ব্যবহৃত, যে রীতিতে শব্দার্থ ব্যবহৃত হয়, যে ক্ষেত্রে ব্যবহৃত
for i, stmt in pairs(sense:getAllStatements(property_id)) do
local stmt_value = stmt.mainsnak.datavalue.value.id
local reference_text = ''
local refs = stmt.references
if refs ~= nil then
for j, reference in pairs(refs) do
table.insert(references_seen, reference.hash)
got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. frame:extensionTag('ref', got_reference[2])
end
table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code']) .. reference_text)
end
end
end
if #specifiers > 0 then
main_gloss_text = main_gloss_text .. "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
local gloss = sense:getGloss( i18n['content_lang_code'] )
if gloss ~= nil then
if countWords(gloss) == 1 then
main_gloss_text = main_gloss_text .. "[[" .. gloss .. "#" .. i18n['content_lang_name'] .. "|" .. gloss .. "]]"
else
main_gloss_text = main_gloss_text .. gloss
end
if gloss:match('^প্রদত্ত%s*(%S-)%s*নাম$') then -- given names
main_gloss_text = main_gloss_text .. i18n.tocatlink(language_name .. ' ' .. i18n['category_given_names'])
end
else
local other_gloss_text = nil
local other_gloss_lang = nil
local item_label_gloss_parts = {}
for k, stmt in pairs(sense:getAllStatements('P5137')) do -- যদি 'এই অর্থের জন্য আইটেম' মানের বাংলা লেবেল থাকে
local stmt_value = stmt.mainsnak.datavalue.value.id
local stmt_label = wb.getLabel(stmt_value)
if stmt_label ~= nil then
table.insert(item_label_gloss_parts, '[[:d:' .. stmt_value .. '|' .. stmt_label .. ']]')
end
end
if #item_label_gloss_parts > 0 then
other_gloss_text = table.concat(item_label_gloss_parts, '; ')
end
if other_gloss_text == nil then
for i, fallback_lang in ipairs(mw_lang.getFallbacksFor( i18n['content_lang_code'] )) do
if sense:getGloss( fallback_lang ) ~= nil then
other_gloss_text, other_gloss_lang = sense:getGloss( fallback_lang )
end
end
if other_gloss_lang == nil then
local glosses = sense:getGlosses()
for j, gloss in pairs(glosses) do
other_gloss_text = gloss[1]
other_gloss_lang = gloss[2]
break
end
end
main_gloss_text = main_gloss_text .. other_gloss_text .. "<sup><em>" .. mw_lang.fetchLanguageName(other_gloss_lang, i18n['content_lang_code']) .. "</em></sup>"
else
main_gloss_text = main_gloss_text .. "''" .. other_gloss_text .. "''"
end
main_gloss_text = main_gloss_text .. i18n.tocatlink(i18n['category_rfdef_equivalent'])
end
local synonym = expandTemplateForProperty(frame, sense, 'P5973', i18n['template_synonym'])
if synonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. synonym
end
local antonym = expandTemplateForProperty(frame, sense, 'P5974', i18n['template_antonym'])
if antonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. antonym
end
local hypernym = expandTemplateForProperty(frame, sense, 'P6593', i18n['template_hypernym'])
if hypernym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. hypernym
end
if lex_cat == 'Q1084' or lex_cat == 'Q147276' then -- noun or proper noun
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-noun'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
elseif lex_cat == 'Q34698' then
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-adj'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
end
table.insert(gloss_text_parts, main_gloss_text .. createicon(i18n['content_lang_code'], sense:getId()))
for i, stmt in pairs(sense:getAllStatements('P8394')) do -- টিপ্পনীর উদ্ধৃতি
gloss_quote = termSpan({stmt.mainsnak.datavalue.value.text, stmt.mainsnak.datavalue.value.language})
if stmt.references[1] ~= nil then
local got_reference = getReference ( stmt.references[1].hash, stmt.references[1] )
gloss_quote = '"' .. gloss_quote .. '" ' .. got_reference[2]
end
table.insert(references_seen, stmt.references[1].hash)
table.insert(gloss_text_parts, frame:extensionTag('ref', gloss_quote))
end
for i, stmt in pairs(sense:getAllStatements('P1343')) do -- বর্ণিত উৎস
-- TODO: do away with making fake reference objects
local fake_reference = { ['snaks'] = {} }
fake_reference.snaks['P248'] = { [1] = stmt.mainsnak }
qualifiers_order = stmt['qualifiers-order']
if qualifiers_order ~= nil then
for i, k in ipairs(qualifiers_order) do fake_reference.snaks[k] = stmt.qualifiers[k] end
end
fake_reference.hash = mw.hash.hashValue('sha3-512', serializeTable(fake_reference))
table.insert(references_seen, fake_reference.hash)
local got_reference = getReference(fake_reference.hash, fake_reference)
if got_reference[1] == nil then
table.insert(gloss_text_parts, frame:extensionTag('ref', got_reference[2], {name = fake_reference.hash}))
else
table.insert(gloss_text_parts, frame:extensionTag{name = 'ref', content='', args = {name = got_reference[1]}})
end
end
local first_sense_image = ''
local sense_images = sense:getAllStatements('P18')
if next(sense_images) ~= nil then
first_sense_image = sense_images[1].mainsnak.datavalue.value
end
if first_sense_image ~= '' then
table.insert(gloss_text_parts, '[[চিত্র:' .. first_sense_image .. "|thumb|'''" .. getLemmata(current_lexeme) .. "'''—" .. main_gloss_text .. ']]')
end
local idlinks = getExternalLinks(sense)
if #idlinks > 0 then
local idlinktext = '<small>('
for _, idlink in pairs(idlinks) do
idlinktext = idlinktext .. idlink .. '\n'
end
idlinktext = idlinktext .. ')</small>'
table.insert(gloss_text_parts, idlinktext)
end
local externallinks = getArticleLinks(frame, sense)
if externallinks ~= '' then
table.insert(gloss_text_parts, externallinks)
end
local new_notes = {}
local sense_keys = { sense:getId(), string.sub(sense:getId(), string.find(sense:getId(), '-')+1) }
for _, v in ipairs(sense_keys) do
if args[v] ~= nil then
table.insert(new_notes, args[v])
end
end
if #new_notes > 0 then
for _, v in ipairs(new_notes) do
if i == 1 then
table.insert(gloss_text_parts, '<br/>' .. v)
else
table.insert(gloss_text_parts, v)
end
end
end
local examples, references_seen = unpack(getExamples( current_lexeme, sense:getId(), references_seen ))
local gloss_text = table.concat(gloss_text_parts, '\n')
meanings:tag('li'):wikitext(gloss_text):wikitext(examples)
end
return {meanings, references_seen}
end
local function getPronunciationBaseForm( lang_name, lex_cat)
local base_form = nil
-- (!) অন্য ভাষার শব্দের যদি অন্য রকম মূল ফর্ম থাকে সেগুলো এখানে নতুন if বিবৃতি দিয়ে যোগ করা যায়।
if lang_name == 'বাংলা' then
if lex_cat == 'Q1084' then -- বিশেষ্য
base_form = formWithSingleGrammaticalFeature( 'Q131105' ) -- কর্তৃকারক
elseif lex_cat == 'Q24905' then -- ক্রিয়া
base_form = formWithSingleGrammaticalFeature( 'Q1350145' ) -- ক্রিয়া বিশেষ্য
end
end
if base_form == nil then
for i, form in pairs(forms) do
base_form = form
break
end
end
return base_form
end
local function getCombines( current_lexeme )
local combines = ''
local index_mappings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P5238')) do
if stmt.qualifiers ~= nil and stmt.qualifiers['P1545'] ~= nil then -- ক্রম
local current_index = tonumber(stmt.qualifiers['P1545'][1].datavalue.value)
index_mappings[current_index] = stmt
end
end
if #index_mappings ~= 0 then
for i, stmt in ipairs(index_mappings) do
local part_lexeme_id = stmt.mainsnak.datavalue.value.id
local part_lexeme = getEntity(part_lexeme_id)
local current_substring = getLinkedLemmata(part_lexeme)
local part_etymology = getEtymology(part_lexeme)
if part_etymology ~= '' and part_etymology ~= nil then
current_substring = current_substring .. ' (← ' .. part_etymology .. ')'
end
if combines == '' then
combines = current_substring
else -- @TODO: This shoukd use the 'affix' template instead.
combines = combines .. ' + ' .. current_substring
end
end
end
return combines
end
function getRoots ( current_lexeme )
local stmts = current_lexeme:getAllStatements('P5920')
if #stmts == 0 then return '' end
local root_lexeme = getEntity(stmts[1].mainsnak.datavalue.value.id)
return '√' .. getLinkedLemmata(root_lexeme)
end
function getEtymology ( current_lexeme )
-- TODO: see if any etymology chains are not possible to render
local etymology = ''
local current_combines = getCombines(current_lexeme)
local current_roots = getRoots(current_lexeme)
local stmts = current_lexeme:getAllStatements('P5191')
if #stmts == 0 then
if current_roots ~= '' and current_combines ~= '' then
return current_roots .. '<br/>(' .. current_combines .. ')'
elseif current_roots ~= '' then
return current_roots
else
return current_combines
end
end
for i, stmt in pairs(stmts) do
local origin_lexeme_dv = stmt.mainsnak.datavalue -- If this is nil, the origin lexeme is not known.
if origin_lexeme_dv ~= nil then
local origin_lexeme = getEntity(origin_lexeme_dv.value.id)
local origin_lexeme_lang = origin_lexeme:getLanguage()
local origin_lexeme_string = getLinkedLemmata(origin_lexeme) .. ' (' .. wb.getLabel(origin_lexeme_lang) .. ')'
if stmt.qualifiers ~= nil and stmt.qualifiers['P5886'] ~= nil then
local mode_of_derivation = stmt.qualifiers['P5886'][1].datavalue.value.id
if mode_of_derivation == 'Q1345001' then
origin_lexeme_string = ustring.gsub(i18n['etymology_borrowing'], '$1', origin_lexeme_string)
elseif mode_of_derivation == 'Q845079' then
origin_lexeme_string = ustring.gsub(i18n['etymology_learned_borrowing'], '$1', origin_lexeme_string)
elseif mode_of_derivation == 'Q56611986' then
origin_lexeme_string = ustring.gsub(i18n['etymology_inheritance'], '$1', origin_lexeme_string)
end
end
local origin_origin = getEtymology(origin_lexeme)
local new_etymology_string = ''
if origin_origin ~= '' and origin_origin ~= nil then
new_etymology_string = origin_lexeme_string .. ' ← ' .. origin_origin
else
new_etymology_string = origin_lexeme_string
end
end
if etymology == '' then
etymology = new_etymology_string
elseif origin_lexeme_string ~= nil then
etymology = etymology .. ' ' .. origin_lexeme_string
end
end
if current_roots ~= '' then
etymology = etymology .. ' ' .. current_roots
end
if current_combines ~= '' and etymology ~= nil then
etymology = etymology .. '<br/>(' .. current_combines .. ')'
end
return etymology
end
local function getPronunciation( frame, current_lexeme, lang_name, lex_cat )
local pronunciations = {}
local base_form = getPronunciationBaseForm(lang_name, lex_cat )
if base_form ~= nil then
for i, stmt in pairs(base_form:getAllStatements('P443')) do -- উচ্চারণের অডিও
local pronunciation_file = stmt.mainsnak.datavalue.value
local specifier_text = ''
local specifiers = {}
if stmt.qualifiers ~= nil then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in pairs(stmt.qualifiers[property_id]) do
local stmt_value = qual.datavalue.value.id
table.insert(specifiers, wb.getLabel(stmt_value))
end
end
end
if #specifiers > 0 then
specifier_text = table.concat(specifiers, "'', ''")
end
local audio_text
if specifier_text ~= '' then
audio_text = i18n['text_audio'] .. ' (' .. specifier_text .. ')'
else
audio_text = i18n['text_audio']
end
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title= i18n['template_audio'],
args = {lang_name, pronunciation_file, audio_text}
})
end
local ipa_transcription = base_form:getAllStatements('P898') -- - আধ্বব প্রতিলিপিকরণ
local iso15919_transcription = getOneStringForProperty(base_form, 'P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ
local itrans = getOneStringForProperty(base_form, 'P8881') -- ITRANS
local iast = getOneStringForProperty(base_form, 'P7581') -- আইএএসটি প্রতিলিপিকরণ
local xsampa = getOneStringForProperty(base_form, 'P2859')
-- @TODO: অডিও ও প্রতিলিপিকরণ দুটোই থাকলে সেই ক্ষেত্রে একটার ঠিক পরেই আরেকটা দেখানো উচিত
if #ipa_transcription ~= 0 then
for i, stmt in pairs(ipa_transcription) do
local ipa_text = stmt.mainsnak.datavalue.value
local specifier_text = ''
local specifiers = {}
if stmt.qualifiers ~= nil then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in ipairs(stmt.qualifiers[property_id]) do
table.insert(specifiers, wb.getLabel( qual.datavalue.value.id ))
end
end
end
if #specifiers > 0 then
specifier_text = "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
table.insert(pronunciations, '* ' .. specifier_text .. frame:expandTemplate{
title= i18n['template_ipa'],
args = {lang_name, ipa_text}
} .. '\n* ' .. i18n['text_syllable_count'] .. callWikifunctionsFunction('Z30837|' .. ipa_text, frame))
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
elseif lang_name == 'বাংলা' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='bn-IPA',
})
elseif lang_name == 'আরবি' then
local lemma = current_lexeme:getLemma('ar')
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='ar-IPA',
args={lemma}
})
elseif lang_name == 'ফালা' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fax-pron',
})
elseif lang_name == 'ফিনীয়' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fi-IPA',
})
end
if iso15919_transcription ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_iso15919'] .. iso15919_transcription)
end
if itrans ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_itrans'] .. itrans)
end
if iast ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_iast'] .. iast)
end
if xsampa ~= nil then
table.insert(pronunciations, '* ' .. i18n['text_xsampa'] .. xsampa)
end
end -- {{আধ্বব|en|/ˈɪntəvjuː/}}
return table.concat(pronunciations, '\n')
end
function getAlternativeSpellings( current_lexeme )
local alt_spellings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P11577')) do -- বিকল্প বানান
if stmt.mainsnak.datavalue ~= nil then
table.insert(alt_spellings, '* ' .. getLinkedLemmata(getEntity(stmt.mainsnak.datavalue.value.id)))
end
end
return table.concat(alt_spellings, '\n')
end
local function heading_level(text, level)
local heading_delimiter = string.rep('=', level)
return heading_delimiter .. ' ' .. text .. ' ' .. heading_delimiter
end
function get_any_notes(sections, args, keys)
local notes = {}
for i, v in ipairs(keys) do
if args[v] ~= nil then
table.insert(notes, args[v])
end
end
return notes
end
function add_specific_notes(sections, notes)
for i, v in ipairs(notes) do
table.insert(sections, v)
end
end
local function add_any_notes(sections, args, keys)
for i, v in ipairs(keys) do
if args[v] ~= nil then
table.insert(sections, args[v])
end
end
end
local function getMatchingLemmaForPageTitle(lexeme, title)
local lemmas = lexeme:getLemmas()
local matched_lemma
for _, lemma_entry in ipairs(lemmas) do
local lemma = lemma_entry[1]
local clean_lemma = normalizeLemmas(lemma)
if clean_lemma == title then
matched_lemma = lemma
break
end
end
return matched_lemma
end
local function buildLanguageAgnosticInflectionTable()
local has_image = false
local form_images = {}
for i, form in ipairs(forms) do
local form_image = form:getAllStatements('P7407')
if next(form_image) ~= nil then
form_images[i] = form_image[1].mainsnak.datavalue.value
has_image = true
end
end
local table_class = "wikitable mw-collapsible sortable"
if not has_image then
table_class = table_class .. " mw-collapsed"
end
local text = "{| class='" .. table_class .. "' style='border:solid 1px rgb(80%,80%,100%); text-align:center;'\n"
text = text .. "|+ " .. i18n['heading_inflection_table'] .. "\n"
text = text .. "|- \n"
text = text .. "! " .. i18n['heading_form'] .. " !! " .. i18n['heading_grammatical_features']
if has_image then
text = text .. " !! " .. (i18n['heading_image'])
end
text = text .. " \n"
for i, form in ipairs(forms) do
local rep = form:getRepresentations()
local feat = form:getGrammaticalFeatures()
local rep_text = ""
for j, r in pairs(rep) do
if rep_text == "" then
rep_text = r[1]
else
rep_text = rep_text .. " / " .. r[1]
end
end
local feat_text = ""
if feat ~= nil then
for j, f in ipairs(feat) do
local label = wb.getLabel(f)
if feat_text == "" then
feat_text = label
else
feat_text = feat_text .. ", " .. label
end
end
end
text = text .. "|-\n"
text = text .. "| " .. (rep_text ~= "" and rep_text or "—")
text = text .. " || " .. (feat_text ~= "" and feat_text or "—")
if has_image then
local image_cell = "—"
if form_images[i] ~= nil then
image_cell = "[[চিত্র:" .. form_images[i] .. "|50px]]"
end
text = text .. " || " .. image_cell
end
text = text .. "\n"
end
text = text .. "|}"
return text
end
function p.all( frame )
local args = getArgs(frame)
local lexeme_id = args[1]
local current_lexeme = getEntity(lexeme_id)
local current_language = current_lexeme:getLanguage()
local senses = current_lexeme:getSenses()
local add_heading = true
forms = current_lexeme:getForms()
if args[2] ~= nil then
local val = mw.text.trim(tostring(args[2]))
if val == "false" or val == "0" or val == "না" then
add_heading = false
end
end
local references_seen = {}
local sections = {}
local lang_name = wb.getLabel(current_language)
if add_heading == true then
local lang_heading = "== " .. lang_name .. " =="
table.insert(sections, lang_heading)
end
local lex_cat = current_lexeme:getLexicalCategory()
lang_code = getLexemeLanguageCode(current_lexeme)
local title = mw.title.getCurrentTitle().text
local lang_category = getLanguageForCategories(current_language, title)
local cat = i18n.lang_category(wb.getLabel(lex_cat), wb.getLabel(lang_category))
local lex_cat_template
if cat ~= nil then
table.insert(sections, '===' .. wb.getLabel(lex_cat) .. cat .. frame:expandTemplate{
title = i18n['template_anchor'],
args = { lexeme_id }
} .. '===')
table.insert(sections, frame:expandTemplate{
title= i18n['template_lexeme'],
args = {lexeme_id}
})
add_any_notes(sections, args, i18n['manual_category'])
local etymology = getEtymology( current_lexeme )
if etymology ~= '' and etymology ~= nil then
table.insert(sections, heading_level(i18n['heading_etymology'], 4))
table.insert(sections, tostring(etymology))
end
add_any_notes(sections, args, i18n['manual_etymology'])
local pronunciation = getPronunciation( frame, current_lexeme, lang_name, lex_cat )
if pronunciation ~= '' then
table.insert(sections, heading_level(i18n['heading_pronunciation'], 4))
table.insert(sections, tostring(pronunciation))
end
add_any_notes(sections, args, i18n['manual_pronunciation'])
local alternative_spellings = getAlternativeSpellings( current_lexeme )
if alternative_spellings ~= '' then
table.insert(sections, heading_level(i18n['heading_alternative_spellings'], 4))
table.insert(sections, alternative_spellings)
end
if lang_code ~= nil and lang_code ~= 'ksy' and lang_code ~= 'rkt' then -- Skip for Kharia Thar, Rangpuri
if lex_cat == 'Q34698' then -- বিশেষণ
lex_cat_template = safeExpand(frame, lang_code .. '-adj')
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষণ')
end
elseif lex_cat == 'Q1084' then -- @TODO: Also check for plural forms
local gender
local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ
if #stmts ~= 0 then
if #stmts == 1 then
local gender_qid = stmts[1].mainsnak.datavalue.value.id
if gender_qid == 'Q499327' then
gender = 'm'
elseif gender_qid == 'Q1775415' then
gender = 'f'
elseif gender_qid == 'Q1775461' then
gender = 'n'
elseif gender_qid == 'Q1305037' then
gender = 'c'
end
end
else
for i, stmt in pairs(stmts) do
local qid = stmts[i].mainsnak.datavalue.value.id
if qid == 'Q499327' then
gender = gender .. 'm'
elseif qid == 'Q1775415' then
gender = gender .. 'f'
end
end
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
if current_language == 'Q13955' then
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
lex_cat_template = frame:expandTemplate{title='ar-noun', args={matched_lemma,gender}}
else
lex_cat_template = frame:expandTemplate{title='ar-noun', args={nil,gender}}
end
elseif current_language == 'Q29919' then
lex_cat_template = frame:expandTemplate{title='arz-noun', args={g=gender}}
elseif current_language == 'Q397' then
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
lex_cat_template = frame:expandTemplate{title='la-noun', args={matched_lemma,g=gender}}
end
elseif current_language == 'Q11059' then
lex_cat_template = frame:expandTemplate{title='sa-noun', args={g=gender}}
elseif current_language ~= 'Q1860' then -- These templates require the gender to be passed as the 1st argument.
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix'], {gender})
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix_fallback'], {gender})
end
end
end
end
-- elseif lex_cat == 'Q147276' then
-- lex_cat_template = safeExpand(frame, lang_code .. '-proper noun', {gender})
-- if not lex_cat_template then
-- lex_cat_template = safeExpand(frame, lang_code .. '-নামবাচক বিশেষ্য', {gender})
-- end
end
if lex_cat_template ~= nil then
table.insert(sections, lex_cat_template)
else
local matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
if matched_lemma ~= nil then
table.insert(sections, heading_level(matched_lemma, 4))
else
table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]')
end
end
local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name))
table.insert(sections, tostring(meanings))
add_any_notes(sections, args, i18n['manual_meaning'])
local instance_of = current_lexeme:getBestStatements('P31') -- সত্ত্বার ধরন
if #instance_of ~= 0 then
local instance_of_entity = instance_of[1].mainsnak.datavalue.value.id
if instance_of_entity == 'Q40437546' or instance_of_entity == 'Q120831827' or instance_of_entity == 'Q120717979' or instance_of_entity == 'Q124476844' then -- @TODO: generalise this so all types of roots are shown
table.insert(sections, i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity))
elseif instance_of_entity == 'Q376431' then -- বর্ণের নাম
table.insert(sections, i18n.tocatlink(lang_code .. ':রং'))
end
end
local translations = getTranslations(frame, senses)
if translations ~= nil then
table.insert(sections, translations)
end
-- (!) বিশেষ ভাষার বিভক্তির সারণি যদি থাকে সেগুলো এখানে নতুন if বিবৃতি যোগ করা যায়।
if next(forms) ~= nil then
if current_language == 'Q9610' then -- বাংলা
if lex_cat == 'Q24905' then
local conjTable = require('মডিউল:আভিধানিক উপাত্ত/Q9610').getConjTable(frame, forms)
table.insert(sections, conjTable)
elseif lex_cat == 'Q1084' then
table.insert(sections, callWikifunctionsFunction('Z33244|' .. lexeme_id .. '|', frame))
end
--elseif current_language == 'Q13955' then -- আরবি
-- if lex_cat == 'Q1084' then
-- table.insert(sections, frame:expandTemplate{title='ar-decl-noun', args={lemma}})
-- end
elseif current_language == 'Q188' then -- জার্মান
if lex_cat == 'Q1084' then
table.insert(sections, callWikifunctionsFunction('Z28602|' .. lexeme_id .. '|', frame))
end
else
if current_language ~= 'Q1860' then -- ইংরেজি
table.insert(sections, buildLanguageAgnosticInflectionTable())
end
end
end
local reference_notes = get_any_notes(sections, args, i18n['manual_reference'])
if #references_seen > 0 or #reference_notes > 0 then
table.insert(sections, heading_level(i18n['heading_references'], 4))
table.insert(sections, frame:extensionTag('references'))
add_specific_notes(sections, reference_notes)
end
local external_link_table = getExternalLinks ( current_lexeme )
if #external_link_table > 0 then
local external_links = '* ' .. table.concat(external_link_table, '\n* ')
table.insert(sections, heading_level(i18n['heading_external_links'], 4))
table.insert(sections, external_links)
end
add_any_notes(sections, args, i18n['manual_external_link'])
if #references_seen == 0 and #reference_notes == 0 and #external_link_table == 0 and #get_any_notes(sections, args, i18n['manual_external_link']) == 0 then
if i18n['category_rfref'][lang_category] ~= nil then
table.insert(sections, i18n.tocatlink(i18n['category_rfref'][lang_category]))
else
table.insert(sections, i18n.tocatlink(i18n['category_rfref']['_']))
end
end
return table.concat(sections,"\n\n")
end
return p
17m942yz471c9zwikc9ge4zkbyjerq9
বন্ধ
0
61648
508159
341190
2026-04-24T00:24:03Z
~2026-25039-91
14632
508159
wikitext
text/x-wiki
==অসমীয়া==
===উচ্চারণ===
* {{as-IPA|বন্ধ|বন}}
* {{sense|before a vowel}} {{as-IPA|বন্ধ্}}
===বিশেষণ===
{{as-adj}}
# [[closed]], [[shut]]
#: {{ant|as|খোলা}}
# [[stopped]]
# [[banned]]
====উদ্ভূত শব্দ====
{{der2|as|বন্ধ কৰ}}
----
=={{ভাষা|bn}}==
===উচ্চারণ===
* {{অডিও|bn|LL-Q9610 (ben)-Titodutta-বন্ধ.wav|অডিও}}
===বিশেষণ===
{{bn-বিশেষণ}}
# [[closed]], [[shut]]
# [[stopped]]
====উদ্ভূত শব্দ====
* {{l|bn|বন্ধ করা}}
dez23yfzg4hn8yqkz6t38m2l4gr07di
ব্যবহারকারী:Redmin/খেলাঘর
2
66884
508155
508041
2026-04-23T13:34:37Z
Redmin
6857
508155
wikitext
text/x-wiki
[[:বিষয়শ্রেণী:IPA pronunciations with invalid IPA characters]]
[[চলা]] P9295, P5186, P5187, P11053, P11054, P9488, P5972, P9971, P6072 with P5831, P9970, P2288, P8881, P1552, P5975 (needs T185313), P8471, P5976, P10822, P282, P5978, P6719, P7219, P7220, P7221, P10339, P10927, P12027, P12028, P12410, P13045, P7481, P13504, P5548, P5401, P5426, P2440, P9021 <br />
Z29940, Z17866, Z32787, Z32793, Z10029, Z11795, Z31772, Z33644, Z33814, Combine Z22853 and Z23489 to make a translation table function
[[d:Lexeme:L3441]], [[throw]], [[গোলাকার]], [[:বিষয়শ্রেণী:উইকিউপাত্ত আভিধানিক উপাত্ত থেকে আমদানিকৃত]]
Pronunciation of forms
[[Category:<lang> terms spelled with <letter>]]
[[d:User:Rua/Wikidata for Wiktionarians]]
[[f:Wikifunctions:Embedded function calls/Wiktionary tables demonstration]]
Caveats: [[f:Wikifunctions:Embedded function calls]]
[[-গুলি]]
=p.all(
mw.getCurrentFrame():newChild{
title="Module: আভিধানিক উপাত্ত",
args={"L143"}
}
)
{{#invoke:আভিধানিক উপাত্ত/sandbox|all|L34813}}
{{#function:Z28602|L300026|}}
{{#function:Z27861|<div style="text-align: center;">Test</div>}}
{{#function:Z28602|L1425972|Z1011}}
{{#function:Z28602|L14259|Z1011}}
6pf802eyqrbaohcdrxul9hl6g91hmac
508156
508155
2026-04-23T13:52:55Z
Redmin
6857
508156
wikitext
text/x-wiki
[[:বিষয়শ্রেণী:IPA pronunciations with invalid IPA characters]]
[[চলা]] P9295, P5186, P5187, P11053, P11054, P9488, P5972, P9971, P6072 with P5831, P9970, P2288, P8881, P1552, P5975 (needs T185313), P8471, P5976, P10822, P282, P5978, P6719, P7219, P7220, P7221, P10339, P10927, P12027, P12028, P12410, P13045, P7481, P13504, P5548, P5401, P5426, P2440, P9021 <br />
Z29940, Z17866, Z32787, Z32793, Z10029, Z11795, Z31772, Z33644, Z33814, Combine Z22853 and Z23489 to make a translation table function
[[d:Lexeme:L3441]], [[throw]], [[গোলাকার]], [[:বিষয়শ্রেণী:উইকিউপাত্ত আভিধানিক উপাত্ত থেকে আমদানিকৃত]]
Pronunciation of forms
[[Category:<lang> terms spelled with <letter>]]
[[d:User:Rua/Wikidata for Wiktionarians]]
[[f:Wikifunctions:Embedded function calls/Wiktionary tables demonstration]]
Caveats: [[f:Wikifunctions:Embedded function calls]]
[[-গুলি]]
=p.all(
mw.getCurrentFrame():newChild{
title="Module: আভিধানিক উপাত্ত",
args={"L143"}
}
)
{{#invoke:আভিধানিক উপাত্ত/sandbox|all|L34813}}
{{#function:Z28602|L300026|}}
{{#function:Z27861|<div style="text-align: center;">Test</div>}}
{{#function:Z28602|L1425972|Z1011}}
{{#function:Z28602|L14259|Z1011}}
{{#function:Z28602|L14259|Z1011}}
9vbpix7exlxci12ncz1sbjdgfg6szuf
508157
508156
2026-04-23T13:53:09Z
Redmin
6857
508157
wikitext
text/x-wiki
[[:বিষয়শ্রেণী:IPA pronunciations with invalid IPA characters]]
[[চলা]] P9295, P5186, P5187, P11053, P11054, P9488, P5972, P9971, P6072 with P5831, P9970, P2288, P8881, P1552, P5975 (needs T185313), P8471, P5976, P10822, P282, P5978, P6719, P7219, P7220, P7221, P10339, P10927, P12027, P12028, P12410, P13045, P7481, P13504, P5548, P5401, P5426, P2440, P9021 <br />
Z29940, Z17866, Z32787, Z32793, Z10029, Z11795, Z31772, Z33644, Z33814, Combine Z22853 and Z23489 to make a translation table function
[[d:Lexeme:L3441]], [[throw]], [[গোলাকার]], [[:বিষয়শ্রেণী:উইকিউপাত্ত আভিধানিক উপাত্ত থেকে আমদানিকৃত]]
Pronunciation of forms
[[Category:<lang> terms spelled with <letter>]]
[[d:User:Rua/Wikidata for Wiktionarians]]
[[f:Wikifunctions:Embedded function calls/Wiktionary tables demonstration]]
Caveats: [[f:Wikifunctions:Embedded function calls]]
[[-গুলি]]
=p.all(
mw.getCurrentFrame():newChild{
title="Module: আভিধানিক উপাত্ত",
args={"L143"}
}
)
{{#invoke:আভিধানিক উপাত্ত/sandbox|all|L34813}}
{{#function:Z28602|L300026|}}
{{#function:Z27861|<div style="text-align: center;">Test</div>}}
{{#function:Z28602|L1425972|Z1011}}
{{#function:Z28602|L14259|Z1011}}
{{#function:Z28602|L1425|Z1011}}
ge78twi9jpdh2x3yl6dhwi049itz0p4
508158
508157
2026-04-23T13:55:14Z
Redmin
6857
508158
wikitext
text/x-wiki
[[:বিষয়শ্রেণী:IPA pronunciations with invalid IPA characters]]
[[চলা]] P9295, P5186, P5187, P11053, P11054, P9488, P5972, P9971, P6072 with P5831, P9970, P2288, P8881, P1552, P5975 (needs T185313), P8471, P5976, P10822, P282, P5978, P6719, P7219, P7220, P7221, P10339, P10927, P12027, P12028, P12410, P13045, P7481, P13504, P5548, P5401, P5426, P2440, P9021 <br />
Z29940, Z17866, Z32787, Z32793, Z10029, Z11795, Z31772, Z33644, Z30837 (templates), Z33814, Combine Z22853 and Z23489 to make a translation table function
[[d:Lexeme:L3441]], [[throw]], [[গোলাকার]], [[:বিষয়শ্রেণী:উইকিউপাত্ত আভিধানিক উপাত্ত থেকে আমদানিকৃত]]
Pronunciation of forms
[[Category:<lang> terms spelled with <letter>]]
[[d:User:Rua/Wikidata for Wiktionarians]]
[[f:Wikifunctions:Embedded function calls/Wiktionary tables demonstration]]
Caveats: [[f:Wikifunctions:Embedded function calls]]
[[-গুলি]]
=p.all(
mw.getCurrentFrame():newChild{
title="Module: আভিধানিক উপাত্ত",
args={"L143"}
}
)
{{#invoke:আভিধানিক উপাত্ত/sandbox|all|L34813}}
{{#function:Z28602|L300026|}}
{{#function:Z27861|<div style="text-align: center;">Test</div>}}
{{#function:Z28602|L1425972|Z1011}}
{{#function:Z28602|L14259|Z1011}}
{{#function:Z30837|/ɡolakaɾ/}}
6xmzgh0fhlm8eggpdtk9lbba8mpmd3z
ব্যবহারকারী:Sabah Azman Nahean
2
147266
508168
508149
2026-04-24T09:58:47Z
Sabah Azman Nahean
12022
508168
wikitext
text/x-wiki
<span align="centre"><big>'''আজ [[{{CURRENTDAYNAME}}]], {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} [[সাধারণ অব্দ]] ({{BENGALIDATE}}; {{#time:xmj xmF xmY}} [[হিজরি]])'''</big></span>
{| class="wikitable"
! colspan="2" |<big>'''সাবাহ আজমান নাহিয়ান'''</big>
|-
| colspan="2" |— Wikipedian ♂ —
|-
!Name
|<big>'''Sabah Azman Nahian'''</big>
|-
!জন্ম
|[[জুন]] ০৬, ২০০৫
[[ঢাকা]], [[বাংলাদেশ]]
|-
![[লিঙ্গ]]
|[[পুরুষ]]
|-
![[জাতীয়তা]]
|[[বাংলাদেশী]]
|-
![[দেশ]]
|[[বাংলাদেশ]]
|-
![[ভাষা]]
|
* L1: [[বাংলা]]
* L2: [[ইংরেজি]]
|-
![[জাতি]]
|[[বাঙালি]]
|-
![[নৃগোষ্ঠী]]
|[[বাঙালি]]
|-
!Height
|5'5"
|-
!হাত
|[[ডানহাতি]]
|-
!রক্ত গ্রুপ
|A<sup>+ve</sup>
|-
! [[যৌন]] [[অভিমুখিতা]]
|[[নিষ্কামী]]
|-
![[ব্যক্তিত্ব]] [[ধরন]]
|[[অন্তর্মুখী]]
|-
! colspan="2" |[[পরিবার]]
|-
![[বৈবাহিক]] [[অবস্থা]]
|[[অবিবাহিত]]
|-
! colspan="2" |[[শিক্ষা]] ও [[চাকরি]]
|-
!পেশা
|ছাত্র
|-
!বিশ্ববিদ্যালয়
|নর্থ সাউথ বিশ্ববিদ্যালয়
|-
! colspan="2" |Hobbies, interests, and beliefs
|-
!শখ
|বই পড়া, খবর পড়া
|-
!ধর্ম
|[[ইসলাম]]
|-
!মাযহাব
|[[অসাম্প্রদায়িক মুসলিম]]
|-
!আকিদা
|[[মাতুরিদি]]-[[আশআরী]] (মিশ্র)
|-
!রাজনীতি
|'''মতবাদ:'''
বাংলাদেশী জাতীয়তাবাদ
বাঙালি জাতীয়তাবাদ
ডানপন্থী জনতুষ্টিবাদ
'''অবস্থান:'''
কেন্দ্র-ডান থেকে ডান
|-
! colspan="2" |Interests
|-
| colspan="2" |Political spectrums, geopolitics, Cold War history, history of the Soviet Union, Eastern bloc, Indus Valley Civilization, Vedic India, Bangladeshi history, early Islamic history, comparative religions, Indian religions, history of religion, linguistics, orthography, phonetics and International Phonetic Alphabet
|-
! colspan="2" |Contact info
|-
!Email
|nsabahazman@yahoo.com
|-
!Twitter
|<nowiki>https://x.com/sabah_azman?t=SrDAqQZ_8DHWxnakRISYiw&s=09</nowiki>
|}
==ভুক্তি==
#[[James]]
#[[Santiago]]
#[[Santiago de Compostela]]
#[[Alajuela]]
#[[functional psychology]]
#[[ক্রিয়ামূলক মনোবিজ্ঞান]]
#[[செயல் சார் உளவியல்]]
#[[நடவடிக்கை]]
#[[פעולה]]
#[[קטלה]]
#[[Kugelman]]
#[[censer]]
#[[incense burner]]
#[[താള്]]
#[[താൾ]]
#[[Colocasia esculenta]]
#[[Araceae]]
#[[new cocoyam]]
#[[macabo]]
#[[malanga]]
#[[otoy]]
#[[quequisque]]
#[[tania]]
#[[yautia]]
#[[taro]]
#[[pulaka]]
#[[swamp taro]]
#[[দক্ষিণ প্রশান্ত মহাসাগর]]
#[[ஜமால்]]
#[[அப்துல் நாசிர்]]
#[[আব্দুন নাসির]]
#[[ஜமாத்து]]
#[[مثل]]
#[[Abdunnasir]]
#[[সম্প্রদান কারক]]
#[[depreciation]]
#[[poisto]]
#[[折舊]]
#[[Hokkien]]
#[[國語羅馬字]]
#[[গুওয়ু লোমাজি]]
#[[Gwoyeu Romatzyh]]
#[[বোধোদিত]]
#[[Suryanarayana]]
#[[सूर्यनारायण]]
#[[সূর্যনারায়ণ]]
#[[財富]]
#[[ଶୂନ୍ୟ]]
#[[excruciating]]
#[[excruciation]]
#[[excruciate]]
#[[subjugation]]
#[[subjugate]]
#[[-yev]]
#[[adaptability]]
#[[coursework]]
#[[darvoza]]
#[[darvaza]]
#[[Garagum]]
#[[গারাগুম]]
#[[কারাকুম]]
#[[mutluluk]]
#[[झञ्झा]]
#[[abnormal psychology]]
#[[অস্বাভাবিক মনোবিজ্ঞান]]
#[[act psychology]]
#[[antipsychology]]
#[[armchair psychology]]
#[[behavioral psychology]]
#[[behaviorism]]
#[[behavioural psychology]]
#[[biological psychology]]
#[[জৈবিক মনোবিজ্ঞান]]
#[[biopsychology]]
#[[chronopsychology]]
#[[clinical psychology]]
#[[cod psychology]]
#[[cognitive psychology]]
#[[content psychology]]
#[[criminal psychology]]
#[[crowd psychology]]
#[[cyberpsychology]]
#[[depth-psychology]]
#[[depth psychology]]
#[[developmental psychology]]
#[[differential psychology]]
#[[ecopsychology]]
#[[ethnopsychology]]
#[[evolutionary psychology]]
#[[geropsychology]]
#[[gestalt psychology]]
#[[Gestalt psychology]]
#[[格里尔斯]]
#[[Grylls]]
#[[গ্রিলস]]
#[[मनोविज्ञान]]
#[[認識論]]
#[[সংজ্ঞানাত্মক মনোবিজ্ঞান]]
#[[অপরাধ মনোবিজ্ঞান]]
#[[চিকিৎসা মনোবিজ্ঞান]]
#[[পার্থক্যমূলক মনোবিজ্ঞান]]
#[[বিবর্তনমূলক মনোবিজ্ঞান]]
#[[জাতিগত মনোবিজ্ঞান]]
#[[Leverkusen]]
#[[লেভারকুজেন]]
#[[রাইনল্যান্ড]]
#[[Rhineland]]
#[[মনোরঞ্জিকা]]
#[[औषधालय]]
#[[ஆளுமைச் சிதைவு]]
#[[dispensary]]
#[[դիսպանսեր]]
#[[ஆளுமை]]
#[[சிதைவு]]
#[[personality disorder]]
#[[ভারতীয় প্রজাতন্ত্র]]
#[[ব্যক্তিত্ব ব্যাধি]]
#[[abracadabra]]
#[[Abraxas]]
#[[Abrasax]]
#[[עַבְדָא כְּדַבְרָא]]
#[[עבדא כדברא]]
#[[עברא כדברא]]
#[[মাম্বো জাম্বো]]
#[[mumbo jumbo]]
#[[mumbo jumbos]]
#[[jargon]]
#[[narcissistic personality disorder]]
#[[আত্মরতিমূলক ব্যক্তিত্ব ব্যাধি]]
#[[Rzeszutek]]
#[[الزرادشتية]]
#[[জরাথুস্ট্রবাদ]]
#[[ζωροαστρισμός]]
#[[पारसी धर्म]]
#[[زرتشتیگری]]
#[[مزدیسنا]]
#[[Mazdean]]
#[[Zoroastrian]]
#[[aphrodisiac]]
#[[licorice]]
#[[विश्व]]
#[[विश्वयुद्ध]]
#[[حرب عالمية]]
#[[world war]]
#[[World War I]]
#[[WWI]]
#[[WW1]]
#[[World War 1]]
#[[World War One]]
#[[metonym]]
#[[چغندر]]
#[[پاییز]]
#[[فرش]]
#[[فرمان]]
#[[নিঃসঙ্কোচ]]
#[[অসঙ্কুচিতমুখ]]
#[[স্বপ্রণীত]]
#[[সংকলন করা]]
#[[শব্দৈশ্বর্য্য]]
#[[अज्ञातपूर्वगृहागतव्यक्तिः]]
#[[गृहागत]]
#[[अज्ञात]]
#[[अध्यात्म]]
#[[आध्यात्मिकता]]
#[[वैकुंठ]]
#[[वैकुण्ठ]]
#[[শব্দৈশ্বর্য]]
#[[يكونوا]]
#[[كون]]
#[[بډایه]]
#[[समग्र]]
#[[holístico]]
#[[شامل]]
#[[holistic]]
#[[holism]]
#[[holísticos]]
#[[ataxia]]
#[[ataxy]]
#[[feudalism]]
#[[feudal]]
#[[porch]]
#[[pinnacle]]
#[[إقطاعي]]
#[[اعتلال]]
#[[اعتل]]
#[[psychopathy]]
#[[encephalopathy]]
#[[এনসেফালোপ্যাথি]]
#[[cardiomyopathy]]
#[[কার্ডিওমায়োপ্যাথি]]
#[[radiculopathy]]
#[[রেডিকুলোপ্যাথি]]
#[[अवधारण]]
#[[समीचीननिर्णय]]
#[[қарор]]
#[[قرار]]
#[[laýyk]]
#[[لائق]]
#[[لایق]]
#[[karar]]
#[[шешім]]
#[[penderfyniad]]
#[[تصمیم]]
#[[تصميم]]
#[[firmness]]
#[[perseverance]]
#[[resoluteness]]
#[[décision]]
#[[raisonnable]]
#[[decisión]]
#[[razonable]]
#[[decisão]]
#[[razoável]]
#[[توكل]]
#[[ثلاثون]]
#[[أوروبا]]
#[[أوربا]]
#[[أوربة]]
#[[أوروبة]]
#[[Europe]]
#[[European Union]]
#[[很好很強大]]
#[[درجة الحرارة]]
#[[درجة]]
#[[فترة]]
#[[interregnum]]
#[[الدولة الإسلامية في العراق والشام]]
#[[الشام]]
#[[بلاد الشام]]
#[[مشرق]]
#[[الشرق الأوسط]]
#[[فرنسي]]
#[[البحر الأبيض المتوسط]]
#[[Batista]]
#[[retard]]
#[[我們]]
#[[بداية]]
#[[আগর উদ্ভিদ]]
#[[আগর কাঠ]]
#[[আগর কাষ্ঠ]]
#[[অ্যালোসকাঠ]]
#[[ঈগলকাঠ]]
#[[ঘরুকাঠ]]
#[[ঈশ্বরের কাঠ]]
#[[يلنجوج]]
#[[aloeswood]]
#[[agalloch]]
#[[heartwood]]
#[[সার কাষ্ঠ]]
#[[sap wood]]
#[[يلنجج]]
#[[يلنجيج]]
#[[ألنجوج]]
#[[অসার কাঠ]]
#[[邊材]]
#[[地中海]]
#[[コルカタ]]
#[[カルカッタ]]
#[[داكا]]
#[[دكا]]
#[[ضلع تانغايل]]
#[[தங்காயில் மாவட்டம்]]
#[[ददाति]]
#[[quasar]]
#[[আপাত-নক্ষত্র]]
#[[ক্যালিফোর্নিয়া]]
#[[California]]
#[[ক্যালিফোর্নিয়াবাসী]]
#[[عشوائي]]
#[[عشوائية]]
#[[industrial-organizational psychology]]
#[[শিল্প-সাংগঠনিক মনোবিজ্ঞান]]
#[[Aristotle]]
#[[অ্যারিস্টটল]]
#[[এরিস্টটল]]
#[[Socrates]]
#[[সক্রেটিস]]
#[[Pythagoras]]
#[[পিথাগোরাস]]
#[[Plato]]
#[[প্লেটো]]
#[[Archimedes]]
#[[আর্কিমিডিস]]
#[[أرسطوطاليس]]
#[[أرسطو]]
#[[سوكراتس]]
#[[سقراط]]
#[[فيثاغورس]]
#[[أفلاطون]]
#[[أرخميدس]]
#[[أرشميدس]]
#[[Arkimedo]]
#[[निद्रा]]
#[[বাতিস্তা]]
#[[Zaldívar]]
#[[تفكر]]
#[[contemplate]]
#[[Zaldibar]]
#[[coal mine]]
#[[coalmine]]
#[[kulmine]]
#[[反対側では]]
#[[microcosm]]
#[[obscure]]
#[[manifold]]
#[[prognostication]]
#[[elucidation]]
#[[wrought]]
#[[soilleireachadh]]
#[[מוגבל]]
#[[Donald]]
#[[Donald Trumpian]]
#[[Trumpian]]
#[[Donaldism]]
#[[Trumpish]]
#[[Donald Trumpish]]
#[[Trumpesque]]
#[[Donald Trumpesque]]
#[[ট্রাম্পবাদী]]
#[[Trumper]]
#[[Trumpista]]
#[[Trumpite]]
#[[MAGAt]]
#[[MAGAT]]
#[[magat]]
#[[Reaganaut]]
#[[Reaganite]]
#[[Trumpanzee]]
#[[Trumpster]]
#[[Trumpism]]
#[[ტრამპიზმი]]
#[[トランピズム]]
#[[anti-Trumpism]]
#[[fervent]]
#[[chauvinistic]]
#[[متوجه]]
#[[Trumpster diving]]
#[[Trumpster fire]]
#[[Trumper]]
#[[Trumpet]]
#[[Trumptard]]
#[[عدوان]]
#[[क्रमात्मचरित्रोन्नयन]]
#[[ক্রমাত্মচরিত্রোন্নয়ন]]
#[[dexlansoprazole]]
#[[ডেক্সলেনসোপ্রাজোল]]
#[[go to hell]]
#[[Анголец]]
#[[Анголка]]
#[[avarice]]
#[[avaricious]]
#[[codicia]]
#[[psychophysics]]
#[[মনোসংবেদনা]]
#[[Psychophysik]]
#[[right-wing populism]]
#[[شعبوية يمينية]]
#[[ডানপন্থী জনতুষ্টিবাদ]]
#[[Rechtspopulismus]]
#[[العراق]]
#[[دولة]]
#[[دولت]]
#[[بنجلاديش]]
#[[بنغلاديش]]
#[[God-fearing]]
#[[pious]]
# [[bayram]]
# [[atheism]]
#[[but]]
#[[adverb]]
#[[Mayers]]
#[[bombardment]]
#[[bombardier]]
#[[আর্টিলারি]]
# [[aphelion]]
# [[یولجی]]
#[[याति]]
#[[আবেগসূচক পদ]]
#[[আবেগসূচক]]
#[[mathematician]]
#[[गणितज्ञ]]
#[[గణితశాస్త్రజ్ఞుడు]]
#[[கணிதயியலாளர்]]
#[[கணிதர்]]
#[[கணிஞர்]]
#[[கணியாளர்]]
#[[ഗണിതശാസ്ത്രജ്ഞൻ]]
#[[數學家]]
#[[हृदयद्वार]]
#[[गणितविद्]]
#[[गणितविद्याज्ञः]]
#[[संख्यापरिमाणविद्याज्ञः]]
#[[गणितशास्त्रज्ञः]]
#[[गणित]]
#[[क्षेत्रपरिमापकविद्यावान्]]
#[[गणितज्ञः]]
#[[रेखावीजादि-गणितविद्]]
#[[number cruncher]]
#[[গণিতবিদ]]
#[[number-cruncher]]
#[[whetstone]]
#[[honestone]]
#[[classwork]]
#[[instinct]]
#[[علم النفس الصناعي]]
#[[forfeit]]
#[[envisager]]
#[[envisage]]
#[[forfait]]
#[[fólder]]
#[[ফোল্ডার]]
#[[frequency distribution]]
#[[গণসংখ্যা নিবেশন]]
#[[chauvinism]]
#[[वातावरण]]
#[[द्विमातृपितृकुटुम्ब]]
#[[कुटुम्ब]]
#[[কুটুম্ব]]
#[[darstellen]]
#[[وضح]]
#[[valetudinis]]
#[[valētūdō]]
#[[sickle cell anemia]]
#[[difficultas]]
#[[diuturnus]]
#[[maniraptoran]]
#[[ম্যানিরাপ্টোরান]]
#[[theropod]]
#[[therapod]]
#[[থেরোপোড]]
#[[respectivo]]
#[[intricate]]
#[[law of diminishing marginal utility]]
#[[প্রান্তিক উপযোগ]]
#[[marginal utility]]
#[[marginal]]
#[[redundant]]
#[[paramount]]
#[[lord paramount]]
#[[overlord]]
#[[präferieren]]
#[[liege lord]]
#[[当]] (অসম্পূর্ণ)
#[[অনুষ্টুভ]]
#[[हृदय]]
#[[حتحور]]
#[[হাথোর]]
#[[Hathor]]
#[[ماركوس]]
#[[ပြည်ထောင်စုမြန်မာနိုင်ငံတော်]]
#[[République de l’Union du Myanmar]]
#[[Republic of the Union of Myanmar]]
#[[ပြည်ထောင်စု သမ္မတ မြန်မာနိုင်ငံတော်]]
#[[بحر إيجة]]
#[[بحر]]
#[[زاد]]
#[[ڤلاديمير]]
#[[embezzlement]]
#[[اختلاس]]
#[[formální]]
#[[Gaza Strip]]
#[[Gaza City]]
#[[Wadi Gaza]]
#[[قطاع غزة]]
#[[গাজা ভূখণ্ড]]
#[[franja de Gaza]]
#[[Gaza]]
#[[Levant]]
#[[লেভান্ত]]
#[[শাম]]
#[[এক গোয়ালের গরু]]
#[[এক গাঙের চিল]]
#[[একদল]]
#[[ذیلی ضلع]]
#[[subdistrict]]
#[[жемқорлық]]
#[[gluttony]]
#[[বহিষ্কারাদেশ]]
#[[Kasba Upazila]]
#[[قصبہ ذیلی ضلع]]
#[[রৈখিক বীজগণিত]]
#[[কুটিলতাবর্জিত]]
#[[pretentious]]
#[[ambitious]]
# [[grandiose]]
# [[pompous]]
# [[πομπή]]
# [[orotund]]
# [[brassy]]
# [[rococo]]
# [[artsy-fartsy]]
#[[претенциозный]]
#[[arty-farty]]
#[[قرديات الشكل]]
#[[simian]]
#[[apely]]
#[[apish]]
#[[monkeyish]]
#[[Simiiformes]]
#[[anthropoid]]
#[[կապկային]]
#[[বানরসদৃশ]]
#[[Homo heidelbergensis]]
#[[إنسان هايدلبيرغ]]
#[[Heidelberg man]]
#[[মধ্য প্লাইস্টোসিন]]
#[[комплект]]
#[[overgeneralization]]
#[[gravitational]]
#[[Schwarzschild]]
#[[hippocampus]]
#[[impromptu]]
#[[അലി അറ്-റിദാ]]
#[[আলী আর-রিদা]]
#[[আলীরেজা]]
#[[Ali al-Rida]]
#[[Alireza]]
#[[علي الرضا]]
#[[ফিনিক্স]]
#[[ফিনিক্স পাখি]]
#[[লিংকনশায়ার]]
#[[লিঙ্কনশায়ার]]
#[[Phoenix]]
#[[phoenix]]
#[[Lincolneschire]]
#[[Lincolnshire]]
#[[South Yorkshire]]
#[[সাউথ ইয়র্কশায়ার]]
#[[দক্ষিণ ইয়র্কশায়ার]]
#[[East Riding of Yorkshire]]
#[[ইস্ট রাইডিং অফ ইয়র্কশায়ার]]
#[[North Yorkshire]]
#[[নর্থ ইয়র্কশায়ার]]
#[[Northamptonshire]]
#[[নর্থহ্যাম্পটনশায়ার]]
#[[Cambridgeshire]]
#[[Norfolk]]
#[[নরফোক]]
#[[Nottinghamshire]]
#[[নটিংহ্যামশায়ার]]
#[[Leicestershire]]
#[[লেইসেস্টারশায়ার]]
#[[Rutland]]
#[[রাটল্যান্ড]]
#[[North Sea]]
#[[Warwickshire]]
#[[ওয়ারউইকশায়ার]]
#[[উত্তৰ সাগৰ]]
#[[উত্তর সাগর]]
#[[clout]]
#[[Északi-tenger]]
#[[तस्मा]]
#[[তস্মা]]
#[[নৃসিংহপ্রসাদ]]
#[[dative case]]
#[[तुच्छयेनातृपिहितम्]]
#[[ווריקשייר]]
#[[वरिकशायर]]
#[[ওয়ারিকশায়ার]]
#[[اسفراین]]
#[[এসফারায়েন]]
#[[কালিঘাটের মানুষ কালীদর্শন করে না]]
#[[you don’t know what you’ve got till it’s gone]]
#[[ৰাজাজ্ঞা]]
#[[অন্তর্জ্বালা]]
#[[দূরাকাঙ্ক্ষা]]
#[[প্রত্যূষ]]
#[[ব্যূহ]]
#[[এতদ্ব্যতীত]]
#[[টীকাটিপ্পনী]]
#[[নির্দ্বিধা]]
#[[एतदतिरिक्तः]]
#[[خراسان شمالی]]
#[[জায়নবাদ]]
#[[জায়ন]]
#[[জায়নবাদী]]
#[[Zionist]]
#[[Zionism]]
#[[Zion]]
#[[Sion]]
#[[trimetazidine]]
#[[dicycloverine]]
#[[dicyclomine]]
#[[metformin]]
#[[linagliptin]]
#[[Zionismus]]
#[[metformina]]
#[[antiischemic]]
#[[ischemia]]
#[[ராமச்சந்திர]]
#[[சந்திரசேகர்]]
#[[تشاندراسيخار]]
#[[Mohan]]
#[[ಮೋಹನ್]]
#[[మోహన్]]
#[[மோகன்]]
#[[മോഹൻ]]
#[[मोहन]]
#[[contradiction]]
#[[inconsistency]]
#[[oxymoron]]
#[[বিরূদ্ধযুক্তিপ্রদর্শক]]
#[[Castilla]]
#[[Yumaklı]]
#[[yumaklaşmak]]
#[[خضع]]
#[[flathead catfish]]
#[[گربهماهی سرپخ]]
#[[سمك السلور فلاتهيد]]
#[[hayvan]]
#[[hayvanat bahçesi]]
#[[hayvanat]]
#[[hayvanlar]]
#[[Flachkopfwels]]
#[[Gerardo]]
#[[Fernández]]
#[[費爾南德斯]]
#[[چوارقورنه]]
#[[Ranya District]]
#[[Chwarqurna]]
#[[قەزای ڕانیە]]
#[[Iraqification]]
#[[rana de zarzal]]
#[[rana de cristal]]
#[[সিয়োনবাদী]]
#[[glass frog]]
#[[Montevideo tree frog]]
#[[Montevideo]]
#[[মোন্তেভিদেও]]
#[[Arequipa]]
#[[Centrolenidae]]
#[[holländisch]]
#[[niederländisch]]
#[[holandés]]
#[[hollandais]]
#[[néerlandais]]
#[[holländische]]
#[[இரண்டாம் வேற்றுமை]]
#[[اتفاق]]
#[[تسوية]]
#[[مفيش]]
#[[نبق]]
#[[نبيذ]]
#[[نبغ]]
#[[خذل]]
#[[Menschenrechtsverletzung]]
#[[मानवाधिकार]]
#[[मानव अधिकार]]
#[[मानव]]
#[[absolute right]]
#[[civil right]]
#[[fundamental right]]
#[[natural right]]
#[[neuroright]]
#[[civil rights]]
#[[human right]]
#[[human rights]]
#[[natural rights]]
#[[cyberrights]]
#[[neurotechnology]]
#[[neurology]]
#[[neuroscience]]
#[[স্নায়ুতত্ত্ব]]
#[[স্নায়ুবিদ্যা]]
#[[স্নায়ুচিকিৎসাবিজ্ঞান]]
#[[স্নায়ুবিজ্ঞান]]
#[[পরিগণনামূলক স্নায়ুবিজ্ঞান]]
#[[computational neuroscience]]
#[[علوم اعصاب محاسباتی]]
#[[arvutuslik neuroteadus]]
#[[গাণিতিক স্নায়ুবিজ্ঞান]]
#[[তাত্ত্বিক স্নায়ুবিজ্ঞান]]
#[[computational neuroaesthetics]]
#[[Menschenrechte]]
#[[politisch]]
#[[Iberian Peninsula]]
#[[honor killing]]
#[[honour killing]]
#[[ദുരഭിമാനക്കൊല]]
#[[সন্মান ৰক্ষাৰ্থে হত্যা]]
#[[সম্মান রক্ষার্থে হত্যা]]
#[[women's rights]]
#[[নারী অধিকার]]
#[[Sheffield]]
#[[Phrygia]]
#[[Nieuwpoort]]
#[[উদ্যমশীলতা]]
#[[مثابرة]]
#[[persistence]]
#[[ಪೈಲ್ವಾನ್]]
#[[cephalosporin]]
#[[senselessness]]
#[[tax collector]]
#[[𒃶𒍝𒁀𒊒]]
#[[வரித் தண்டலர்]]
#[[إشفى]]
#[[Trichiurus lepturus]]
#[[largehead hairtail]]
#[[Bakh]]
#[[بخ]]
#[[বাখ]]
#[[Taft County]]
#[[شهرستان تفت]]
#[[তাফত কাউন্টি]]
#[[ইয়াজ্দ]]
#[[ইয়াযদ প্রদেশ]]
#[[ইয়াযদ]]
#[[ইয়াজদ প্রদেশ]]
#[[استان یزد]]
#[[Kisangani]]
#[[كيسانغاني]]
#[[كيسانجانى]]
#[[কিসাঙ্গানি]]
#[[عشواء]]
#[[शृङ्खल]]
#[[शृङ्खला]]
#[[Edinburgh]]
#[[أيقن]]
#[[هزأ]]
#[[unquestionably]]
#[[ألا]]
#[[ذهب]]
#[[صاعقه]]
#[[صاعقة]]
#[[برق]]
#[[بےشک]]
#[[بیشک]]
#[[रत्नोल्लसत्कुण्डला]]
#[[রত্নোল্লসৎকুণ্ডলা]]
#[[طويل]]
#[[كهف]]
#[[többes szám]]
#[[barlang]]
#[[اتمسفر]]
#[[اندروا]]
#[[skirt suit]]
#[[toplessness]]
# [[beastelich]]
# [[fondeábamos]]
# [[imperfect tense]]
# [[অপুরাঘটিত কাল]]
# [[سياسة]]
# [[নিশীথবনভ্রমণবিলাসিনী]]
# [[ধন্বন্তরিভাণ্ডনিঃসৃত]]
# [[বিষমোজ্জলাবিভাসিতলোচনপ্রান্তে]]
# [[প্রফুল্লনীলোৎপলদলতুল্য]]
# [[নীল পদ্ম]]
# [[هواسپهر]]
# [[گاز]]
# [[گاز گرفتن]]
# [[گاز گلخانهای]]
# [[گاز طبیعی]]
#[[Babylon]]
#[[বাবিল]]
#[[ব্যাবিলন]]
#[[inferiority complex]]
#[[عقدة النقص]]
#[[عقدة الدونية]]
#[[عقده حقارت]]
#[[शुतुरमुर्ग़]]
#[[उष्ट्रपक्षी]]
#[[شترمرغ]]
#[[شتر]]
#[[उष्ट्र]]
#[[पक्षी]]
#[[اشتر]]
#[[آستر]]
#[[Shahbagi]]
#[[Hindutva]]
#[[sarkari Muslim]]
#[[libbu]]
#[[librandu]]
#[[raita]]
#[[bhakt]]
#[[Jaichand]]
#[[BJP]]
#[[rashtravadi]]
#[[bhagwa]]
#[[فصاحة]]
#[[مهتر]]
#[[مساحة]]
#[[مناقشة]]
#[[مناظرة]]
#[[mesaha]]
#[[münakaşa]]
#[[munaqaşa]]
#[[münazara]]
#[[مساحه]]
#[[tartışma]]
#[[bahs]]
#[[محاكمة]]
#[[muhokama]]
#[[munozara]]
#[[مذاكرة]]
#[[muzokara]]
#[[tortishuv]]
#[[müzakirə]]
#[[مذاکره]]
#[[tortishmoq]]
#[[قومسيون]]
#[[شلتة]]
#[[باشمهندس]]
#[[أجزة]]
#[[أجزجي]]
#[[أجزاخانة]]
#[[بنش]]
#[[প্রাথমিক চিকিৎসা বাক্স]]
#[[بطاطس]]
#[[فرجية]]
#[[فراجه]]
#[[كوزينة]]
#[[فريڭو]]
#[[سبنيول]]
#[[إسباني]]
#[[إسبانية]]
#[[Hispanic]]
#[[синтезатор]]
#[[ಚಂಡಮಾರುತ]]
#[[supermassive]]
#[[புயல்]]
#[[சூறாவளி]]
#[[மாரி]]
#[[வருஷம்]]
#[[வெள்ளி]]
#[[मारि]]
#[[ಮಾರಿ]]
#[[চামুণ্ডী]]
#[[வருடம்]]
#[[Ćamunda]]
#[[Ćamundi]]
#[[चामुण्डा]]
#[[வெள்ளி]]
#[[வெள்ளிக்கிழமை]]
#[[வருத்து]]
#[[কারণসূচক ক্রিয়া]]
#[[alleluia]]
#[[hallelujah]]
#[[গীতসংহিতা]]
#[[ഊഷ്മാവ്]]
#[[ആക്രമണം]]
#[[കൊടുങ്കാറ്റ്]]
#[[typhoon]]
#[[km/s]]
#[[kph]]
#[[Kilometerstein]]
#[[kps]]
#[[covetous]]
#[[covet]]
#[[অত্যুচ্চাকাঙ্ক্ষী]]
#[[√কাঙ্ক্ষ্]]
#[[आकाङ्क्षा]]
#[[जिज्ञासा]]
#[[তাপগতিবিজ্ঞান]]
#[[বিশৃঙ্খলা-মাত্রা]]
#[[এনট্রপি]]
#[[ದಂಡುಪಾಳ್ಯ]]
#[[ಕರ್ನಾಟಕ]]
#[[ಜನತಾ]]
#[[ಪಕ್ಷ]]
#[[कर्णाटक]]
#[[כד]]
#[[נרד]]
#[[עמבה]]
#[[כרפס]]
#[[אתרוג]]
#[[הודו]]
#[[סנסקריט]]
#[[כוסברה]]
#[[הקדוש ברוך הוא]]
#[[عمبة]]
#[[dupe]]
#[[做法]]
#[[မန္တလေး]]
#[[ဧရာဝတီ]]
#[[ဒါကာမြို့]]
#[[ဒါကာ]]
#[[დაკა]]
#[[Дакка]]
#[[কর্মকারক]]
#[[করণকারক]]
#[[অপাদান কারক]]
#[[অধিকরণ কারক]]
#[[সম্বন্ধ কারক]]
#[[সম্বোধন কারক]]
#[[राष्ट्रवादी]]
#[[राष्ट्रवाद]]
#[[রক্ষণশীলতাবাদ]]
#[[গান্ধীবাদ]]
#[[কর্তৃত্ববাদ]]
#[[-তন্ত্র]]
#[[চৌর্যতন্ত্র]]
#[[yenilenme]]
#[[renovación]]
#[[পুনর্নবীকরণ]]
#[[действительно]]
#[[預期]]
#[[quantum physics]]
#[[ultracold]]
#[[ultraconservative]]
#[[ultracognitive]]
#[[ultracontractivity]]
#[[ultramodern]]
#[[ultraconservatrice]]
#[[কোয়ান্টাম পদার্থবিজ্ঞান]]
#[[কোয়ান্টাম বলবিজ্ঞান]]
#[[양자역학]]
#[[量子力学]]
#[[量子力學]]
#[[meccanica quantistica]]
#[[physique quantique]]
#[[হাঁবিয়া]]
#[[ট্যাহা]]
#[[হাছুন]]
#[[ঝাডা]]
#[[صديق]]
#[[садык]]
#[[أولياء]]
#[[ولي]]
#[[اولیا]]
#[[evliya]]
#[[әулие]]
#[[öwlüýä]]
#[[avliyo]]
#[[ಆಯುಧ]]
#[[ಕಡೆಗೆ]]
#[[आयुध]]
#[[Sébastien]]
#[[assiduity]]
#[[assiduité]]
#[[assiduitas]]
#[[ಶತಪುಷ್ಪೆ]]
#[[ಶವ]]
#[[coffin]]
#[[خندق]]
#[[مازون]]
#[[فيه-اردشير]]
#[[جیرفت]]
#[[Jiroft]]
#[[جيروفت]]
#[[Ciruft]]
#[[Ctesiphon]]
#[[تیسفون]]
#[[榜葛剌]]
#[[Mymensingh]]
#[[আগরতলা]]
#[[阿加爾塔拉]]
#[[अगरतला]]
#[[Aqartala]]
#[[Agartala]]
#[[hədis]]
#[[حديث]]
#[[वाच्]]
#[[वचस्]]
#[[उक्ति]]
#[[وتن]]
#[[वक्त्र]]
#[[उक्त]]
#[[वक्त्रभेदी]]
#[[وطن]]
#[[وزن]]
#[[mḫꜣt]]
#[[پاية]]
#[[ultrafast]]
#[[ultrafastidious]]
#[[ultrapasteurization]]
#[[ultrapasteurized]]
#[[ultrapasteurizado]]
#[[ultramontane]]
#[[ultracrepidarian]]
#[[ultraviolet]]
#[[ultramarine]]
#[[অতিরুচিবাগীশ]]
#[[ريحة]]
#[[بقرة]]
#[[ಹೋಗು]]
#[[ನಡೆ]]
#[[ಅಗ್ನಿ]]
#[[ಅಗ್ನಿಪರ್ವತ]]
#[[ಅನಾನಸ್]]
#[[ಅನ್ನೊಂಡು]]
#[[ಅನ್ನ]]
#[[అన్నము]]
#[[ಪರ್ವತ]]
#[[ಉರಿಬೆಟ್ಟ]]
#[[ಜ್ವಾಲಾಮುಖಿ]]
#[[بركان]]
#[[ಬೆಟ್ಟ]]
#[[ಗಿರಿ]]
#[[ಮಲೆ]]
#[[لغو]]
#[[prime minister]]
#[[رئيس وزراء]]
#[[身份]]
#[[الناصرة]]
#[[العاصي]]
#[[اخلاص]]
#[[الراية]]
#[[الخاصة]]
#[[berouw]]
#[[pokání]]
#[[penediment]]
#[[توبة]]
#[[repentance]]
#[[تطهير النفس]]
#[[خلاص]]
#[[صاحب]]
#[[تقبة]]
#[[تونة]]
#[[توبہ]]
#[[توبال]]
#[[Anderson-Higgs mechanism]]
#[[رقيق]]
#[[رقيقة]]
#[[Higgs mechanism]]
#[[കാലഹരണപ്പെട്ട]]
#[[أخيرا]]
#[[جوهريا]]
#[[جورجيا]]
#[[أساسيا]]
#[[أساس]]
#[[أساسيون]]
#[[أساسي]]
#[[أسابيع]]
#[[أسبوع]]
#[[أسياد]]
#[[أسانسير]]
#[[ગાંધી]]
#[[ભારતીય]]
#[[મુંબઈ]]
#[[गांधी]]
#[[भारतीय]]
#[[अभिनेता]]
#[[الواق واق]]
#[[ختو]]
#[[سنبوق]]
#[[قاقلة]]
#[[خولنجان]]
#[[سيراء]]
#[[سك]]
#[[خن]]
#[[شانغهاي]]
#[[شانقهاي]]
#[[شانگهای]]
#[[خلنجان]]
#[[سنبوسق]]
#[[سنبوسة]]
#[[سمبوسة]]
#[[سنبوسه]]
#[[خرص]]
#[[ظن]]
#[[قرط]]
#[[مؤشرات]]
#[[میوهجات]]
#[[مجوهرات]]
#[[قرطاس]]
#[[Gulf Arabic]]
#[[arabe du Golfe]]
#[[مؤشر]]
#[[தண்டம்]]
#[[தண்டனம்]]
#[[தாண்டி]]
#[[தண்டவாளம்]]
#[[தீண்டாமை]]
#[[தாண்டு]]
#[[தாண்டவம்]]
#[[enchanteur]]
#[[enchanteresse]]
#[[عشرين]]
#[[عرقل]]
#[[عرقوب]]
#[[morphosyntax]]
#[[morphosyntactic]]
#[[profess]]
#[[شاء]]
#[[segmentation fault]]
#[[نقص در قطعهبندی]]
#[[ستبرگندویسان]]
#[[مشوه]]
#[[culpa]]
#[[culpabiliser]]
#[[culpabilizar]]
#[[culpability]]
#[[أدوات]]
#[[افتاده]]
#[[استفاده]]
#[[bombardement]]
#[[mobilisation]]
#[[subordination]]
#[[Frankreich]]
#[[Bachmann]]
#[[assassinar]]
#[[assassinat]]
#[[assassin]]
#[[homicide volontaire]]
#[[homicide involontaire]]
#[[agenouiller]]
#[[Plautdietsch]]
#[[Schutzstaffel]]
#[[bajram]]
#[[বোমাবর্ষণ]]
#[[shelling]]
#[[subordinationsbrott]]
#[[قاتل]]
#[[مقاتلة]]
#[[معامله]]
#[[مقاومة]]
#[[катиљ]]
#[[जी]]
#[[William]]
#[[Williamsburg]]
#[[Williamson]]
#[[Williams]]
#[[Aurangzeb]]
#[[اورنگزیب]]
#[[شهاب]]
#[[شهابها]]
#[[شهابسنگ]]
#[[شهابسنگها]]
#[[حياء]]
#[[الرياض]]
#[[الكيان الصهيوني]]
#[[الولاء والبراء]]
#[[الصحراء الكبرى]]
#[[الصحراء الغربية]]
#[[উপনিবেশমুক্তিকরণ]]
#[[Iqbal]]
#[[إقبال]]
#[[iqbol]]
#[[pajeet]]
#[[mujeet]]
#[[點點滴滴]]
#[[點點點]]
#[[點點]]
#[[إيونية]]
#[[Ionia]]
#[[اليونان]]
#[[الإغريقيا]]
#[[Σικελία]]
#[[Σικελός]]
#[[Sicily]]
#[[صقل]]
#[[পোষণকারী]]
#[[euch]]
#[[Euch]]
#[[Vereinigtes Königreich Großbritannien und Nordirland]]
#[[Vereinigte Arabische Emirate]]
#[[Vereinigtes Königreich]]
#[[Vereinigte Staaten von Amerika]]
#[[vereinigt]]
#[[Kirk]]
#[[sub-inspector]]
#[[subinspector]]
#[[উপ-পরিদর্শক]]
#[[chief inspector]]
#[[hoofdinspecteur]]
#[[পুলিশ মহাপরিদর্শক]]
#[[মহাপরিদর্শক]]
#[[inspector general]]
#[[secularism]]
#[[வணக்கம்]]
#[[ধর্মনিরপেক্ষতাবাদ]]
#[[علمانية]]
#[[कोयता]]
#[[कोला]]
#[[बाज़ीगर]]
#[[परदेश]]
#[[कोलाहल]]
#[[बाजीगर]]
#[[कोयला]]
#[[वैष्णव]]
#[[वैष्णवत्व]]
#[[শ্রীচৈতন্য]]
#[[खांडव]]
#[[इन्द्रप्रस्थ]]
#[[खण्डन]]
#[[അദ്ധ്യാത്മ]]
#[[ഉച്ചാരണം]]
#[[ചന്ദ്രോദയം]]
#[[നിർവ്വചനം]]
#[[പേരില്ലാത്ത]]
#[[അജ്ഞാതനാമ]]
#[[അല്ല]]
#[[വേണ്ട]]
#[[खण्डयति]]
#[[Chicago]]
#[[Chicagoan]]
#[[Chicago typewriter]]
#[[Chicago-style pizza]]
#[[Chicagoland]]
#[[galaxy gas]]
#[[galaxy-brained]]
#[[galaxy-brain]]
#[[galaxy cluster]]
#[[galaxy group]]
#[[galaxy filament]]
#[[កាល]]
#[[योद्धा]]
#[[مدرسة]]
#[[madraça]]
#[[medresea]]
#[[مدرسه]]
#[[mədrəsə]]
#[[صحن مدارسی]]
#[[мәдрәсә]]
#[[quieren]]
#[[actuá]]
#[[actuábamos]]
#[[actuáremos]]
#[[actuássemos]]
#[[actuávamos]]
#[[indicative mood]]
#[[مرفوع]]
#[[直陳語氣]]
#[[模塊]]
#[[publicado]]
#[[antarktiszi]]
#[[antarktislainen]]
#[[Antarktis]]
#[[صورة]]
#[[بصورة خاصة]]
#[[بصورة عامة]]
#[[sura]]
#[[صورت]]
#[[صورتی]]
#[[صورت حال]]
#[[صورتغذا]]
#[[صورت پذیرفتن]]
#[[صورت گرفتن]]
#[[صورتن]]
#[[dope]]
#[[ice cream]]
#[[آیس کریم]]
#[[glacé]]
#[[Glacéhandschuh]]
#[[چریشلمك]]
#[[مزعجون]]
#[[مزعجة]]
#[[ذكر]]
#[[بإذن الله]]
#[[مذکر]]
#[[معكرونة]]
#[[مذكر]]
#[[مسترجع]]
#[[مستعجلة]]
#[[مترجمة]]
#[[مستعجلون]]
#[[مستقلة]]
#[[مستحيلة]]
#[[مترجمها]]
#[[مستعجل]]
#[[لاش]]
#[[লাচ]]
#[[लाश]]
#[[地下]]
#[[chastity]]
#[[modesty]]
#[[تواضع]]
#[[নম্রতা]]
#[[دیکتاتور]]
#[[tamburína]]
#[[دیكمك]]
#[[دیكیش]]
#[[دیكن]]
#[[دیکھنا]]
#[[ديكة]]
#[[ديكور]]
#[[ديك رومي]]
#[[ديك الحبش]]
#[[ديك]]
#[[गांधीलमाशी]]
#[[دلك]]
#[[دف صغير]]
#[[رق]]
#[[കാക്ക]]
#[[കക്കിരി]]
#[[കക്കിരിക്ക]]
#[[കക്കുക]]
#[[കക്കൂസ്]]
#[[കാക്കത്തിരണ്ടി]]
#[[துவாரம்]]
#[[ডোনাল্ড]]
#[[নাহিয়ান]]
#[[সুলায়মান]]
#[[জনসন]]
#[[خفاش]]
#[[وطواط]]
#[[طير الليل]]
#[[سحت الليل]]
#[[chauve-souris]]
#[[گنج]]
#[[گنجشک]]
#[[گنجور]]
#[[گنجھلدار]]
#[[گنجا]]
#[[گنجیدن]]
#[[گنجاندن]]
#[[گنجینه]]
#[[zjevně]]
#[[gribouillage]]
#[[گجیک]]
#[[پیچین]]
#[[رأفة]]
#[[رجفة]]
#[[پایاننامه]]
#[[پایان]]
#[[خسف]]
#[[قوماندان]]
#[[قومق]]
#[[شعبان]]
#[[شعبة]]
#[[شعبه]]
#[[شعب]]
#[[قوم]]
#[[believen]]
#[[شعيب]]
#[[যিথ্রো]]
#[[Jethro]]
#[[رعوئيل]]
#[[شخصية]]
#[[bersalah]]
#[[berlangsung]]
#[[permintaan]]
#[[Allah]]
#[[trait]]
#[[यजमान]]
#[[ईश्]]
#[[ईश्वर]]
#[[هداية]]
#[[Dhaka Division]]
#[[family of orientation]]
#[[संयुक्त राज्य अमरीका]]
#[[अल साल्वाडोर]]
#[[संयुक्त राष्ट्र अमरीका]]
#[[संयुक्त प्रांत]]
#[[उत्तर प्रदेश]]
#[[যুক্তপ্রদেশ]]
#[[অস্ট্রালয়েড]]
#[[অস্ট্রালো-মেলানেশীয়]]
#[[Australo-Melanesian]]
#[[Australoid]]
#[[المزرعة]]
#[[رکین]]
#[[برگزار]]
#[[سال]]
#[[Gebze]]
#[[وطنية]]
#[[ألوهية]]
#[[مبرر]]
#[[مبارك]]
#[[راهوار]]
#[[راعنا]]
#[[رعناء]]
#[[انظرن]]
#[[انظرنا]]
#[[Κιλλύριοι]]
#[[ἀνδράποδον]]
#[[δούλη]]
#[[δοῦλος]]
#[[𐀈𐀁𐀫]]
#[[slaaf]]
#[[otrokyně]]
#[[otrok]]
#[[ကျွန်မ]]
#[[ကျွန်]]
#[[노예]]
#[[غلام]]
#[[knave]]
#[[لوند]]
#[[أعرج]]
#[[σκλάβος]]
#[[لسان]]
#[[قتال]]
#[[Pacific Standard Time]]
#[[Pacific Time Zone]]
#[[Standard]]
#[[মান্য ভাষা]]
#[[প্রমিত ভাষা]]
#[[standard language]]
#[[standaardtaal]]
#[[standaard]]
#[[reduplication]]
#[[災難]]
#[[災禍]]
#[[災害]]
#[[災殃]]
#[[catastrophe]]
#[[عفريت]]
#[[مارد]]
#[[ماردين]]
#[[مار در آستین پروراندن]]
#[[ماردین]]
#[[مارده]]
#[[ماردی]]
#[[ماردا]]
#[[ماردے]]
#[[sanjak]]
#[[recalcitrant]]
#[[motspänstig]]
#[[insurrectionary]]
#[[contumacious]]
#[[البارح]]
#[[الكتاب المقدس]]
#[[ألباب]]
#[[تذكر]]
#[[من باب أولى]]
#[[भक्त]]
#[[অসাম্প্রদায়িক মুসলিম]]
#[[𑄥𑄪𑄣𑄭𑄟𑄚𑄴]]
#[[أصول المنهج]]
#[[منهج]]
#[[әдістеме]]
#[[методология]]
#[[усул]]
#[[menawarkan]]
#[[jurisconsult]]
# [[кардамоном]]
# [[кардар]]
# [[خریدار]]
# [[кардамон]]
# [[кардан]]
# [[гузоња]]
# [[гузоштан]]
# [[менам]]
# [[мекам]]
# [[менами]]
# [[меринами]]
# [[меринам]]
# [[меѓународна фонетска азбука]]
# [[Дунав]]
# [[instrumental case]]
# [[мерин]]
# [[Ἄρης]]
# [[Зевс]]
# [[қазақ]]
# [[қазақ тілі]]
# [[زيوس]]
# [[خش]]
# [[اصطناع]]
# [[اصطنع|اِصْطَنَعَ]]
# [[σύνθεση]]
# [[szintézis]]
# [[síntesi]]
# [[تركيب]]
# [[συντίθημι]]
# [[milliyetçilik]]
# [[SSD]]
# [[HDD]]
# [[HD DVD drive]]
# [[যৌগিক শব্দ]]
# [[HD DVD]]
# [[hard disk drive]]
# [[андохтан]]
# [[анбоштан]]
# [[سفارش]]
# [[سفارش دادن]]
# [[سفارتخانه]]
# [[sifariş]]
# [[vermək]]
# [[وئرمک]]
# [[hədiyyə]]
# [[hädissään]]
# [[hypocrisy]]
# [[نفاق]]
# [[نفق]]
# [[compartmentalization]]
# [[compartimentalización]]
# [[compartmentalisation]]
# [[compartimentalização]]
# [[پررونق]]
# [[compartimentalizado]]
# [[अवाङ्मनसगोचर]]
#[[Southeast Asia]]
#[[দক্ষিণ পূর্ব এশিয়া]]
#[[Southwest Asia]]
#[[South-East Asia]]
#[[South East Asia]]
#[[Southeast Asian]]
#[[Southeast Asians]]
#[[अष्टाध्यायी]] (Aṣṭādhyāyī)
#[[showman]]
#[[viihdyttäjä]]
#[[viihdyttää]]
#[[showmanship]]
#[[힘]]
#[[আধিপত্যবাদ]]
#[[আবেগাপ্লুত]]
#[[супакоіць]]
#[[təsəlli]]
#[[اطمأن]]
#[[শান্তভাবে]]
#[[মারিফত]]
#[[গৌড়ভুজঙ্গ]]
#[[الأردن]]
#[[روحانيون]]
#[[روحانية]]
#[[روح]]
#[[الروح القدس]]
#[[ثالوث]]
#[[روح القدس]]
#[[پاک روح]]
#[[Holy Spirit]]
#[[جزيرة]]
#[[باسم الآب والابن والروح القدس]]
#[[القامشلي]]
#[[Qamishli]]
#[[Democratic Autonomous Administration of North and East Syria]]
#[[ethnomethodology]]
#[[antimethodology]]
#[[methodological]]
#[[methodologically]]
#[[methodologist]]
#[[multimethodology]]
#[[scientific methodology]]
#[[intermethodological]]
#[[faydalanmak]]
#[[fayda]]
#[[faydalar]]
#[[faydalanma]]
#[[ذوق]]
#[[تجربة]]
#[[ਤਜਰਬਾ]]
#[[ডানহাতি]]
#[[sheila]]
#[[المغرب]]
#[[الخميس]]
#[[صمد]]
#[[Ἰωάννης]]
#[[Ioannes]]
#[[یوحنا اصطباغی]]
#[[Ἰωάννα]]
#[[ܚܡܫܒܫܒܐ]]
#[[أمر]]
#[[أرز]]
#[[تشرين الثاني]]
#[[عربون]]
#[[صليب]]
#[[شتلة]]
#[[سلسبيل]]
#[[أرضي شوكي]]
#[[خرشوف]]
#[[бөрікгүл]]
#[[артишок]]
#[[артишока]]
#[[알아보다]]
#[[اغراق کردن]]
#[[گزاف گفتن]]
#[[과장하다]]
#[[exaggerate]]
#[[tunnistaa]]
#[[allorecognize]]
#[[derecognize]]
#[[allorecognition]]
#[[autorecognition]]
#[[auto-]]
#[[allo-]]
#[[dingin]]
#[[durgun]]
#[[sakin]]
#[[ором]]
#[[calmo]]
#[[surto]]
#[[calmado]]
#[[دولك]]
#[[drive-in]]
#[[autocinema]]
#[[autoalarm]]
#[[ساكن]]
#[[آرام]]
#[[nkegohenʼą́ą́go]]
#[[խախանդ]]
#[[հանդարտ]]
#[[հանգիստ]]
#[[հնագիտություն]]
#[[平静]]
#[[平靜]]
#[[고요하다]]
#[[静か]]
#[[穏やか]]
#[[يساكن]]
#[[سواكن]]
#[[قديمة]]
#[[قديم|قَدِيم]]
#[[고하다]]
#[[طوبغرافيا]]
#[[информационный]]
#[[информационно-аналитический]]
#[[информационные технологии]]
#[[الخلافة الراشدة]]
#[[Alawism]]
#[[الموصل]]
#[[راش درش]]
#[[رشد]]
#[[رشاد]]
#[[راشدات]]
#[[راشدة]]
#[[أتوكل]]
#[[التولي والتبري]]
#[[Eastern Orthodox Church]]
#[[পূর্বদেশীয় সনাতনপন্থী মণ্ডলী]]
#[[東方正教会]]
#[[Greek Orthodox Church]]
#[[ഗ്രീക്ക് ഓർത്തഡോക്സ് സഭ]]
#[[গ্রিক সনাতনপন্থী মণ্ডলী]]
#[[كنيسة الروم الأرثوذكس]]
#[[正當]]
#[[正当]]
#[[الصين]]
#[[صيني]]
#[[صينية]]
#[[الصربية]]
#[[ألمانية]]
#[[ألماني]]
#[[أرمينية]]
#[[ألبانية]]
#[[آلمانیها]]
#[[صينيون]]
#[[صنية]]
#[[صيصية]]
#[[秦]]
#[[Çin]]
#[[Çinli]]
#[[चीन]]
#[[朝秦暮楚]]
#[[Чин]]
#[[ചീന]]
#[[distraer]]
#[[have fun]]
#[[have a nice day]]
#[[أسلوب تعجب]]
#[[വ്യാക്ഷേപകം]]
#[[أدان]]
#[[أمانة]]
#[[أمان]]
#[[أهان]]
#[[اوان]]
#[[أوانئذ]]
#[[أوانس]]
#[[أوانذاك]]
#[[أوان]]
#[[آفرینش]]
#[[آترینه]]
#[[أخرى]]
#[[آخری]]
#[[آفرین]]
#[[آخرون]]
#[[ذي]]
#[[ذهن]]
#[[ذقن]]
#[[ذنب]]
#[[أمنية]]
#[[ذهني]]
#[[أغنية]]
#[[أمنيوتي]]
#[[kurwaturą]]
#[[kurwach]]
#[[kurwa mać]]
#[[kurwatura]]
#[[kurwa]]
#[[烏斯懷亞]]
#{{l|ar|الْأَرْضِي شَوْكِي}}
#[[متاع]]
#[[فنزويلا]]
#{{l|ar|جُمْهُورِيَّةُ فِنْزُوِيلَّا البُولِيفَارِيَّةُ}}
#[[ভেনেজুয়েলা বলিভারীয় প্রজাতন্ত্র]]
#[[भेनेजुएला]]
#[[वेनेजुएला]]
#[[वेनेज़ुएला]]
#[[ڤينيزويلا]]
#[[វេណេហ្ស៊ុយអេឡា]]
#[[ונצואלה]]
#[[ទុន]]
#[[شلوغ]]
#[[مزدحم]]
#[[צפוף]]
#[[толған]]
#[[붐비다]]
#[[คั่ง]]
#[[แน่น]]
#[[zatłoczony]]
#[[ګڼ]]
#[[переполненный]]
#[[набитый]]
#[[людный]]
#[[многолюдный]]
#[[überfüllt]]
#[[व्यस्त]]
#[[भीड़]]
#[[overcrowded]]
#[[غينيا الاستوائية]]
#[[غينيا]]
#[[غينيا بيساو]]
#[[غیر جانبدار]]
#[[स्वर्गनरकवर्णनप्रकरण]]
#[[mezhep]]
#[[మతము]]
#[[дин]]
#[[мазҳаб]]
#[[ਧਰਮ]]
#[[religião]]
#[[religia]]
#[[Reljoon]]
#[[Gloowe]]
#[[مذهب]]
#[[دین]] (ফারসি)
#[[шашин]]
#[[മതം]]
#[[종교]]
#[[សាសនា]]
#[[मज़हब]]
#[[دين]] (আরবি)
#[[تديين]]
#[[مدين]]
#[[سلف]]
#[[قرض]]
#[[θρησκεία]]
#[[ཆོས་ལུགས]]
#[[དབྱི་སི་ལམ་ཆོས་ལུགས]]
#[[Hindustan]]
#{{l|ar|هِنْدُسْتَان}}
#[[Հինդուստան]]
#[[Индостан]]
#[[印度斯坦]]
#[[ހިންދުސްތާނު]]
#[[હિંદુસ્તાન]]
#[[印度斯坦語]]
#[[خوارزمي]]
#[[ոսկոր]]
#[[𒄩𒀀𒀸𒊭]]
#[[استخوان]]
#[[ئێسکان]]
#[[Immanuel]]
#[[अस्थि]]
#[[fərqlənmək]]
#[[fərqləndirmək]]
#[[davlat]]
#[[devlet]]
#[[dövlətlənmək]]
#[[dövlətlərarası]]
#[[dövlət başçısı]]
#[[dövlət]]
#[[dövlətçilik]]
#[[الأمر بالمعروف والنهي عن المنكر]]
#[[self-sabotage]]
#[[مكر]]
#[[مكرت]]
#[[саботажник]]
#[[саботаж]]
#[[破壞]]
#[[যুদ্ধাভিলাষী]]
#[[নাবী]]
#[[منصوب]]
#[[مجزوم]]
#[[युयुत्सु]]
#[[desiderative]]
#[[چوداں]]
#[[ਚੌਦਾਂ]]
#[[ahli madya]]
#[[ahli listrik]]
#[[Vedic]]
#[[ahli]]
#[[jampi]]
#[[jamp]]
#[[cikgu]]
#[[kalaylamak]]
#[[kalalanka]]
#[[kalaunan]]
#[[kalkulator]]
#[[kala ulang]]
#[[katakan]]
#[[մաստուրբացիա]]
#[[マスターベーション]]
#[[تيمور]]
#[[تيمور الشرقية]]
#[[تيمور لاٴوت]]
#[[timur laut]]
#[[تیمور قازوق]]
#[[تیمور شرقی]]
#[[تمور]]
#[[تأمور]]
#[[تيمار]]
#[[heavy water]]
#[[ভারী পানি]]
#[[तर्कबुद्धिवाद]]
#[[बुद्धिवाद]]
#[[तर्कवाद]]
#[[مراقبة]]
#[[یادداشت]]
#[[للغاية]]
#[[اعتقاد]]
#[[اعتقاد داشتن]]
#[[ಹುಲಿ]]
#[[ಸ್ನೇಹ]]
#[[विचित्र]]
#[[إشراق]]
#[[انشرح]]
#[[بديع]]
#[[নিষ্কামিতা]]
#[[অযৌনকামিতা]]
#[[নিষ্কামী]]
#[[inimitable]]
#[[убеждённость]]
#[[уредност]]
#[[убеденият]]
#[[убедената]]
#[[убедено]]
#[[умереност]]
#[[Mitsotakis]]
#[[mitostasis]]
#[[Kyriakos]]
#[[woo]]
#[[indoctrination]]
#[[propaganda]]
#[[propagandapuhe]]
#[[propagandasota]]
#[[propagandakirjallisuus]]
#[[gaslighting]]
#[[gas lighting]]
#[[gas-lighting]]
#[[backfilled]]
#[[back-filled]]
#[[backfill]]
#[[ইজ্জাহ]]
#[[dictator]]
#[[dictatory]]
#[[dictatorius|dictātōrius]]
#[[dictatorii]]
#[[dictatorship]]
#[[dictatorship of the bourgeoisie]]
#[[dictatorship of the proletariat]]
#[[دكتاتورية]]
#[[dictatorial]]
#[[autochthon]]
#[[autocracy]]
#[[autocrat]]
#[[autocratic]]
#[[ავტოკრატიული]]
#[[專制]]
#[[false consciousness]]
#[[deadpan]]
#[[deadlock]]
#[[uváznutí]]
#[[స్నేహము]]
#[[చెలిమి]]
#[[కూరిమి]]
#[[స్నేహితుడు]]
#[[స్నేహితురాలు]]
#[[స్నేహితుఁడు]]
#[[শনাক্তযোগ্য]]
#[[اختلاف]]
#[[الاختلاف]]
#[[اختلاف کرنے والا]]
#[[اختلاف کرنا]]
#[[اختصار]]
#[[اختار]]
#[[ethereal]]
#[[aetherius]]
#[[etherealness]]
#[[etherealisation]]
#[[ethereality]]
#[[etherealism]]
#[[etherealization]]
#[[presupposition]]
#[[presuppositionalism]]
#[[presuppositionalist]]
#[[خلر]]
#[[أوغاريت]]
#[[فوة]]
#[[نظر]]
#[[𐎜𐎂𐎗𐎚]]
#[[اوگاریت]]
#[[ὄλῡρᾰ]]
#[[Ugarit]]
#[[烏加里特]]
#[[راعى]]
#[[Zeitschrift]]
#[[Arabische Republik Ägypten]]
#[[Arabische Zee]]
#[[نظریہ]]
#[[نظري]]
#[[نەزەرىيىۋى]]
#[[نظريون]]
#[[نظرية]]
#[[نظرة]]
#[[نظر ثانی]]
#[[οὐρανός]]
#[[نظريات]]
#[[মিশর আরব প্রজাতন্ত্র]]
#[[Arab Republic of Egypt]]
#{{l|ar|جُمْهُورِيَّة مِصْر الْعَرَبِيَّة}}
#[[阿拉伯埃及共和國]]
#[[شاكوش]]
#[[مطرقة]]
#[[نبطشي]]
#[[شيش]]
#[[بوية]]
#[[أراجوز]]
#[[ياميش]]
#[[baiséadach]]
#[[baictéarafagach]]
#[[basset]]
#[[bactériophage]]
#[[阿拉伯]]
#[[阿拉伯文]]
#[[阿拉伯語]]
#[[देवयानी]]
#[[देवयानी तारामंडल]]
#[[देवयानी मंदाकिनी]]
#[[দেবযানী মন্দাকিনী ছায়াপথ]]
#[[অ্যানড্রোমিডা ছায়াপথ]]
#[[Andromeda Galaxy]]
#[[constellation]]
#[[वङ्ग]]
#[[بنگال]]
#[[approprio]]
#[[proprius]]
#[[מתאים]]
#[[Josephine]]
#[[Jozefinë]]
#[[přizpůsobit]]
#[[přizpůsobovat]]
#[[tilpasse]]
#[[aanpassen]]
#[[alkalmaz]]
#[[alkalom]]
#[[igazít]]
#[[illeszt]]
#[[приспособить]]
#[[приспособлять]]
#[[приспосабливать]]
#[[獨佔]]
#[[獨佔鰲頭]]
#[[monopolize]]
#[[𐌲𐌰𐌰𐌹𐌲𐌹𐌽𐍉𐌽]]
#[[נכס]]
#[[充当]]
#[[充當]]
#[[مناسب]]
#[[համապատասխան]]
#[[պատշաճ]]
#[[müvafiq]]
#[[uyğun]]
#[[yerli]]
#[[適當]]
#[[恰當]]
#[[satire]]
#[[sarcasm]]
#[[sarcastic]]
#[[irony]]
#[[佔]]
#[[yerlik hal]]
#[[mühafiz]]
#[[mühafizə]]
#[[列恩]]
#[[列宁]]
#[[馬列斯]]
#[[馬]]
#[[列]]
#[[斯]]
#[[戇人]]
#[[antiorganization]]
#[[организа́ция]]
#[[organizzazione]]
#[[micronational organisation]]
#[[member organisation]]
#[[intermicronational organisation]]
#[[overshadow]]
#[[überschatten]]
#[[غطى]]
#[[غطيط]]
#[[غطيتم]]
#[[黯然失色]]
#[[reorganization]]
#[[quasi-reorganization]]
#[[uudelleenjärjestely]]
#[[গর্ভসম্ভূতা]]
#[[reusability]]
#[[पुनरुपयोगिता]]
#[[অলঙ্কারদীপ্ত]]
#[[পুষ্পাভরণশোভিত]]
#[[সিদ্ধিলাভ]]
#[[reusable]]
#[[-ity]]
#[[reuse]]
#[[-ability]]
#[[recyclable]]
#[[multi-use]]
#[[multiuse]]
#[[disposable]]
#[[single-use]]
#[[recycle]]
#[[dispose]]
#[[-able]]
#[[wiederverwerten]]
#[[hergebruiken]]
#[[recyclen]]
#[[recycleren]]
#[[genanvende]]
#[[genbruge]]
#[[recyklovat]]
#[[পুনঃচক্রায়ন]]
#[[diamond problem]]
#[[method overloading]]
#[[function overloading]]
#[[polymorphism]]
#[[polymathy]]
#[[polymyalgia]]
#[[polymorph]]
#[[polymerisoitua]]
#[[polymathic]]
#[[polymorphous]]
#[[polymorphic]]
#[[polymath]]
#[[polymorphus]]
#[[πολυ-]]
#[[μορφή]]
#[[mārga]]
#[[mērga]]
#[[multilevel]]
#[[多層]]
#[[دعاية]]
#[[propagandus]]
#[[بروبقاندا]]
#[[propagandalehtinen]]
#[[بروباجاندا]]
#[[بروباغندا]]
#[[दुष्प्रचार]]
#[[अधिप्रचार]]
#[[áróður]]
#[[ការឃោសនា]]
#[[пропаганда]]
#[[үгүттөө]]
#[[ໂຄສະນາຊວນເຊື່ອ]]
#[[പ്രചാരണം]]
#[[تبليغ]]
#[[Istanbul]]
#[[استانبول]]
#[[إسطنبول]]
#[[القسطنطينية]]
#[[Qüstəntiniyyə]]
#[[العبرانية]]
#[[pseudorationalist]]
#[[القرآنية]]
#[[യുക്തിവാദി]]
#[[യുക്തി]]
#[[ultrarational]]
#[[ultranationalist]]
#[[ultra-nationalist]]
#[[ultranationalism]]
#[[Ultranationalismus]]
#[[ultranacionalismo]]
#[[ultranacionalista]]
#[[ultranationaliste]]
#[[nacionalismo]]
#[[nacionalista]]
#[[nationaliste]]
#[[ultra-]]
#[[nacionalistický]]
#[[nacionalisme]]
#[[nacionalizmus]]
#[[nacionalist]]
#[[nacionalismos]]
#[[nacionalismu]]
#[[Nationalist China]]
#[[National Socialism]]
#[[National Socialist]]
#[[Nationalsozialist]]
#[[nâtionaliste]]
#[[cosmopolitanism]]
#[[世界主義]]
#[[世界主义]]
#[[cosmopolitan]]
#[[民族主義]]
#[[Nazism]]
#[[Hitlerism]]
#[[Strasserism]]
#[[國家社會主義]]
#[[民族社會主義]]
#[[민족사회주의]]
#[[國民社會主義]]
#[[国民社会主义]]
#[[國社主義]]
#[[國社]]
#[[國民政府]]
#[[Nationalsozialistische Deutsche Arbeiterpartei]]
#[[National Socialist German Workers' Party]]
#[[hitlerismo]]
#[[strasserismo]]
#[[主義]]
#[[guóshè]]
#[[paracetamol]]
#[[claviform]]
#[[ndjek]]
#[[तक्ति]]
#[[ndjerë]]
#[[ndjeshëm]]
#[[ndjesi]]
#[[ndjesë]]
#[[Ndrekë]]
#[[ndjekur]]
#[[ဆေးကုလားမ]]
#[[ဆားကြက်ဥ]]
#[[ဆိုက်ပရပ်စ်]]
#[[ဆီးပူညောင်းကျ]]
#[[ဆေးပေါ့လိပ်]]
#[[ဆားကျင်း]]
#[[ဆေးပြင်းလိပ်]]
#[[ဆူးပုပ်]]
#[[ဆွမ်းကပ်]]
#[[ဆပ်ကပ်]]
#[[adherent]]
#[[institutionalise]]
#[[institutionalised]]
#[[tragacanth]]
#[[sherbet]]
#[[sherbets]]
#[[shërbëtor]]
#[[interconnectedness]]
#[[interconnectednesses]]
#[[interdependență]]
#[[inter-]]
#[[interdependence]]
#[[interdépendance]]
#[[interdisciplinaritate]]
#[[interdisciplinarité]]
#[[interdisciplinarity]]
#[[interdisciplinar]]
#[[-itate]]
#[[ურთიერთდაკავშირებულობა]]
#[[praiseworthiness]]
#[[பாராட்டத்தக்கது]]
#[[commendable]]
#[[خاطر]]
#[[دہائی]]
#[[दुहाई]]
#[[تسليم]]
#[[توزيع]]
#[[توصيل]]
#{{l|ar|التَّوْصِيل}}
#[[taslim]]
#[[təslim olmaq]]
#[[təslim]]
#[[سلام]]
#[[يسالم]]
#[[مسالمة]]
#[[投降]]
#[[đầu hàng]]
#[[כניעה]]
#[[נכנע|נִכְנַע]]
#[[капитуляция]]
#[[капитулация]]
#[[투항]]
#[[항복]]
#[[capitulation]]
#[[दैन्य]]
#[[ஆதாம்]]
#[[ஆதாரம்]]
#[[தாபரம்]]
#[[avril]]
#[[Avril]]
#[[Avrill]]
#[[Aprill]]
#[[Gregorian calendar]]
#[[Avrille]]
#[[avrìl]]
#[[April]]
#[[Avrîl]]
#[[Aprilis]]
#[[fluttered]]
#[[Stuttgart]]
#[[చెలిమికత్తె]]
#[[رجس]]
#[[جانباز]]
#[[جانبازان]]
#[[geambaș]]
#[[وثن]]
#[[وثني]]
#[[مستعمرة]]
#[[رجاسة]]
#[[অপবিত্রতা]]
#[[अपवित्रता]]
#[[কলুষতা]]
#[[নাপাকি]]
#[[impurity]]
#[[impuritas]]
#[[unholiness]]
#[[unholy]]
#[[profanity]]
#[[profanitas]]
#[[profanus]]
#[[profane]]
#[[profanity delay]]
#[[broadcast delay]]
#[[مكيف]]
#[[مخيف]]
# [[వృక్షరుహము]]
# [[వృక్షాసనము]]
# [[వృక్షంబు]]
# [[వక్షము]]
# [[వీక్షణము]]
# [[చూడు]]
# [[உள்ளே]]
# [[वृक्षरुह]]
# [[वृक्ष]]
# [[स्त्रीलिंग]]
# [[लता]]
# [[उपयोग]]
# [[अक्सर]]
#[[पराया]]
#[[अम्बेडकर नगर]]
#[[Ambedkar Nagar]]
#[[superclass]]
#[[subclass]]
#[[اب]]
#[[أبابة]]
#[[أباب]]
#[[أبو]]
#[[آب]]
#[[أب]]
#[[عم]]
#[[में]]
#[[परछाई]]
#[[परछाईं]]
#[[परवाना]]
#[[पराकाष्ठा]]
#[[إصبع]]
#[[افترى]]
#[[एतानि]]
#[[एतद्]]
#[[ἐμμένω]]
#[[antiprejudice]]
#[[terminate with extreme prejudice]]
#[[self-prejudice]]
#[[prejudicious]]
#[[prejudicer]]
#[[prejudiceless]]
#[[postjudice]]
#[[in prejudice of]]
#[[homoprejudice]]
#[[heteroprejudice]]
#[[extreme prejudice]]
#[[disprejudice]]
#[[counterprejudice]]
#[[biprejudice]]
#[[تحامل]]
#[[تحيز]]
#[[carboxypenicillin]]
#[[carboxymethylcellulose]]
#[[carboxypeptidase]]
#[[थापा]]
#[[थामना]]
#[[थाटमाट]]
#[[थाम]]
#[[थमाना]]
#[[थोमा]]
#[[थाहा]]
#[[थमाओगी]]
#[[थमायी]]
#[[थाना]]
#[[थमाती]]
#[[थमाते]]
#[[थमातीं]]
#[[थमाया]]
#[[थमाता]]
#[[थमना]]
#[[थमाके]]
#[[थमाकर]]
#[[خرج]]
#[[خطر]]
#[[خبر]]
#[[তৌহিদী জনতা]]
#[[একত্ববাদ]]
#[[জনসমষ্টি]]
#[[basophilic granulocyte]]
#[[lymphocyte]]
#[[lymphocytes]]
#[[eosinophil]]
#[[eosinophils]]
#[[neutrophil]]
#[[neutrophils]]
#[[basophil]]
#[[basophils]]
#[[monocyte]]
#[[agranulocyte]]
#[[leukocyte]]
#[[单核细胞]]
#[[白血球]]
#[[白細胞]]
#[[白细胞]]
#[[platelet]]
#[[platelet function test]]
#[[plateletpheresis]]
#[[antiplatelet]]
#[[platelets]]
#[[white blood cell]]
#[[WBC]]
#[[blood cell]]
#[[hemocyte]]
#[[granulocyte]]
#[[myelocyte]]
#[[erythrocyte]]
#[[thrombocyte]]
#[[interleukocyte]]
#[[intraleukocyte]]
#[[bạch huyết cầu]]
#[[leukocytapheresis]]
#[[myelocytomatosis]]
#[[myélocyte]]
#[[myelocytosis]]
#[[myelocytoarchitecture]]
#[[myélocytes]]
#[[myelocytes]]
#[[autoerythrocyte]]
#[[antierythrocyte]]
#[[রক্তকণিকা]]
#[[থ্রম্বোসাইট]]
#[[অণুচক্রিকা]]
#[[শ্বেত রক্তকণিকা]]
#[[লোহিত রক্তকণিকা]]
#[[red blood cell]]
#[[RBC]]
#[[紅細胞]]
#[[rotes Blutkörperchen]]
#[[ερυθρό αιμοσφαίριο]]
#[[नैतिकता]]
==টেমপ্লেট==
# [[টেমপ্লেট:arz-proper noun]]
# [[টেমপ্লেট:arz-proper noun/নথি]]
# [[টেমপ্লেট:ml-IPA]]
# [[টেমপ্লেট:ml-IPA/নথি]]
# [[টেমপ্লেট:R:fa:Hayyim]]
# [[টেমপ্লেট:R:tg:Vozhaju]]
# [[টেমপ্লেট:R:Mo'in]]
# [[টেমপ্লেট:reference template cat]]
# [[টেমপ্লেট:reference template cat/নথি]]
# [[টেমপ্লেট:refcat]]
# [[টেমপ্লেট:reference template cat/খেলাঘর]]
# [[টেমপ্লেট:fa-verb]]
# [[টেমপ্লেট:fa-verb/নথি]]
# [[টেমপ্লেট:fa-xlit]]
# [[টেমপ্লেট:fa-xlit/নথি]]
# [[টেমপ্লেট:ar-etym-iyya]]
# [[টেমপ্লেট:ar-etym-iyya/নথি]]
# [[টেমপ্লেট:ar-root-head]]
# [[টেমপ্লেট:ar-root-head/নথি]]
==পরিশিষ্ট==
# [[পরিশিষ্ট:Arabic nominals]]
# [[পরিশিষ্ট:আরবি roots/ء ل ه]]
==উল্লেখযোগ্য সম্পাদনা==
#[[শিক্ষা]]
#[[নিরর্থক]]
#[[تيموثاوس]]
#[[עמנואל]]
#[[homework]]
#[[cod]]
#[[মনোবিজ্ঞান]]
#[[rare]]
#[[মনোরঞ্জক]]
#[[ঔষধালয়]]
#[[ডিসপেনসারি]]
#[[ফার্মেসি]]
#[[pharmacy]]
#[[liquorice]]
#[[বিশ্ব]]
#[[বিশ্বযুদ্ধ]]
#[[world]]
#[[earth]]
#[[লক্ষণা]]
#[[قطر]]
#[[অসংকুচিত]]
#[[অলঙ্কারশাস্ত্র]]
#[[অলঙ্কার]]
#[[গৃহাগত]]
#[[অধ্যাত্ম]]
#[[ذلك]]
#[[কার্য]]
#[[appropriate]]
#[[schema]]
#[[ইউরোপীয় ইউনিয়ন]]
#[[আগ্রার মানুষ তাজমহল দেখে না]]
#[[Tangail District]]
#[[Ἀρχιμήδης]]
#[[নিদ্রা]]
#[[realm]]
#[[correspondence]]
#[[regression]]
#[[গয়রহ]]
#[[folder]]
#[[বাতাবরণ]]
#[[অনুষ্টুপ]]
#[[রা]]
#[[Ra]]
#[[شام]]
#[[ঝাঁকের কই]]
#[[জঙ্ঘা]]
#[[suit]]
#[[suite]]
#[[ইউৰোপ]]
#[[কুইৰ্মা]]
#[[তূষ্ণীম্ভাব]]
#[[পরাঙ্মুখ]]
#[[বৈদগ্ধ্য]]
#[[দুর্নিরীক্ষ্য]]
#[[ব্যবচ্ছেদ]]
#[[প্রাতর্ভ্রমণ]]
#[[প্রোজ্জ্বল]]
#[[অলঙ্ঘ্য]]
#[[এতদতিরিক্ত]]
#[[ꠁꠞꠣꠇ]]
#[[কৃতকর্ম]]
#[[Ovttastuvvan arábaemiráhtat]]
#[[opposite]]
#[[ꠟꠣꠄꠇ]]
#[[হাতির কাঁধে আসে যায়, হাম্বা রবে মুর্ছা যায়]]
#[[agricultural liens]]
#[[সঙ্গনিরোধ]]
#[[শ্লথ]]
#[[ঢলঢল]]
#[[কর্তৃকারক]]
#[[ইরাকীকরণ]]
#[[ital]]
#[[একলব্য]]
#[[অশ্বত্থামা]]
#[[অধ্যবসায়]]
#[[ঐকান্তিকতা]]
#[[persistent]]
#[[treasurer]]
#[[একঝাঁড়ের বাঁশ]]
#[[بنجلاديش]]
#[[শৃঙ্খলা]]
#[[বিজেপি]]
#[[কমিশন]]
#[[trick]]
#[[গণতন্ত্র]]
#[[স্তন]]
#[[অতিশয়ার্থবাচক]]
#[[দাইয়ুস]]
#[[জী]]
#[[চা]]
#[[লিফট]]
#[[accusative case]]
#[[বিউপনিবেশায়ন]]
#[[bit]]
#[[mirror]]
#[[frozen]]
#[[فرج]]
#[[شعیب]]
#[[believe]]
#[[যজমান]]
#[[United States of America]]
#[[টেমপ্লেট:ar-root]]
#[[মডিউল:sem-arb-utilities]]
#[[মার্কিন যুক্তরাষ্ট্র]]
#[[slave]]
#[[jack]]
#[[সারমেয়]]
#[[standard]]
#[[diminutive]]
#[[দ্বিরুক্তি]]
#[[বাত]]
#[[দক্ষিণ-পূর্ব এশিয়া]]
#[[একাধিপত্য]]
#[[إلهام]]
#[[methodology]]
#[[Ιωάννης]]
#[[يوحنا]]
#[[recognize]]
#[[হ্রস্বীকরণ]]
#[[راشد]]
#[[Venezuela]]
#[[ملك]]
#[[نادر]]
#[[assent]]
#[[conviction]]
#[[埃及]]
#[[Andromeda]]
#[[孟加拉國]]
#[[孟加拉]]
#[[অঘটনঘটনপটিয়সী]]
#[[pound]]
#[[سالم]]
#[[flutter]]
#[[ভিতর]]
===পরবর্তী দর্শন===
#[[deadfall]]
#[[deadhead]]
==অভিধান==
{| class="wikitable"
! ইংরেজি !! বাংলা !! উর্দু !! টীকাসমূহ
|-
| [[treasurer|Treasurer]] (কোষাধ্যক্ষ) || [[কোষাধ্যক্ষ]], [[খাজাঞ্চি]] || [[خزانچی]] || "খাজাঞ্চি" শব্দটি পুরনো রাজকীয় বা ঐতিহ্যবাহী প্রেক্ষাপটে ব্যবহৃত হয়। আক্কাদীয় ভাষায় [[𒃶𒍝𒁀𒊒]] (গাঞ্জাবারু)।
|-
| [[tax collector|Tax Collector]] || [[জগাতি]] || || "জগাতি" একটি দেশজ বাংলা শব্দ।
|-
| [[exciseman|Exciseman]]|| [[আবগারি শুল্ক]] ([[আবগারি কর]]) [[সংগ্রহ]]কারী || ||
|}
'''প্রতিবিম্ব ও প্রতিফলন'''
{| class="wikitable"
! colspan="undefined" |বৈশিষ্ট্য
! colspan="undefined" |প্রতিফলন (Reflection)
! colspan="undefined" |প্রতিবিম্ব (Image)
|-
| colspan="undefined" |'''সংজ্ঞা'''
| colspan="undefined" |আলোকরশ্মি কোনো তলে বাধা পেয়ে পূর্বের মাধ্যমে ফিরে আসার ঘটনা।
| colspan="undefined" |প্রতিফলিত বা প্রতিসৃত রশ্মি কোনো বিন্দুতে মিলিত হলে বা মিলিত হচ্ছে বলে মনে হলে যে আকৃতি তৈরি হয়।
|-
| colspan="undefined" |'''প্রকৃতি'''
| colspan="undefined" |এটি একটি ভৌত '''প্রক্রিয়া''' বা ঘটনা।
| colspan="undefined" |এটি আলোর প্রতিফলনের '''ফলাফল'''।
|-
| colspan="undefined" |'''দৃশ্যমানতা'''
| colspan="undefined" |প্রতিফলন নিজে দেখা যায় না, প্রতিফলিত আলো দেখা যায়।
| colspan="undefined" |প্রতিবিম্ব স্পষ্টভাবে দেখা যায় (যেমন- আয়নায় নিজের মুখ)।
|-
| colspan="undefined" |'''অবস্থান'''
| colspan="undefined" |প্রতিফলক পৃষ্ঠের (যেমন- আয়না) ওপর ঘটে।
| colspan="undefined" |আয়নার পেছনে বা সামনে গঠিত হয়।
|-
| colspan="undefined" |'''প্রকারভেদ'''
| colspan="undefined" |নিয়মিত ও ব্যাপ্ত (diffused) প্রতিফলন।
| colspan="undefined" |বাস্তব (real) ও অবাস্তব (virtual) প্রতিবিম্ব।
|}
pq6k39bvme4d4w5xgbthlgc6qzrc9cm
508172
508168
2026-04-24T10:03:55Z
Sabah Azman Nahean
12022
508172
wikitext
text/x-wiki
<span align="centre"><big>'''আজ [[{{CURRENTDAYNAME}}]], {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}} [[সাধারণ অব্দ]] ({{BENGALIDATE}}; {{#time:xmj xmF xmY}} [[হিজরি]])'''</big></span>
{| class="wikitable"
! colspan="2" |<big>'''সাবাহ আজমান নাহিয়ান'''</big>
|-
| colspan="2" |— Wikipedian ♂ —
|-
!Name
|<big>'''Sabah Azman Nahian'''</big>
|-
!জন্ম
|[[জুন]] ০৬, ২০০৫
[[ঢাকা]], [[বাংলাদেশ]]
|-
![[লিঙ্গ]]
|[[পুরুষ]]
|-
![[জাতীয়তা]]
|[[বাংলাদেশী]]
|-
![[দেশ]]
|[[বাংলাদেশ]]
|-
![[ভাষা]]
|
* L1: [[বাংলা]]
* L2: [[ইংরেজি]]
|-
![[জাতি]]
|[[বাঙালি]]
|-
![[নৃগোষ্ঠী]]
|[[বাঙালি]]
|-
!Height
|5'5"
|-
!হাত
|[[ডানহাতি]]
|-
!রক্ত গ্রুপ
|A<sup>+ve</sup>
|-
! [[যৌন]] [[অভিমুখিতা]]
|[[নিষ্কামী]]
|-
![[ব্যক্তিত্ব]] [[ধরন]]
|[[অন্তর্মুখী]]
|-
! colspan="2" |[[পরিবার]]
|-
![[বৈবাহিক]] [[অবস্থা]]
|[[অবিবাহিত]]
|-
! colspan="2" |[[শিক্ষা]] ও [[চাকরি]]
|-
!পেশা
|ছাত্র
|-
!বিশ্ববিদ্যালয়
|নর্থ সাউথ বিশ্ববিদ্যালয়
|-
! colspan="2" |Hobbies, interests, and beliefs
|-
!শখ
|বই পড়া, খবর পড়া
|-
!ধর্ম
|[[ইসলাম]]
|-
!মাযহাব
|[[অসাম্প্রদায়িক মুসলিম]]
|-
!আকিদা
|[[মাতুরিদি]]-[[আশআরী]] (মিশ্র)
|-
!রাজনীতি
|'''মতবাদ:'''
বাংলাদেশী জাতীয়তাবাদ
বাঙালি জাতীয়তাবাদ
ডানপন্থী জনতুষ্টিবাদ
'''অবস্থান:'''
কেন্দ্র-ডান থেকে ডান
|-
! colspan="2" |Interests
|-
| colspan="2" |Political spectrums, geopolitics, Cold War history, history of the Soviet Union, Eastern bloc, Indus Valley Civilization, Vedic India, Bangladeshi history, early Islamic history, comparative religions, Indian religions, history of religion, linguistics, orthography, phonetics and International Phonetic Alphabet
|-
! colspan="2" |Contact info
|-
!Email
|nsabahazman@yahoo.com
|-
!Twitter
|<nowiki>https://x.com/sabah_azman?t=SrDAqQZ_8DHWxnakRISYiw&s=09</nowiki>
|}
==ভুক্তি==
#[[James]]
#[[Santiago]]
#[[Santiago de Compostela]]
#[[Alajuela]]
#[[functional psychology]]
#[[ক্রিয়ামূলক মনোবিজ্ঞান]]
#[[செயல் சார் உளவியல்]]
#[[நடவடிக்கை]]
#[[פעולה]]
#[[קטלה]]
#[[Kugelman]]
#[[censer]]
#[[incense burner]]
#[[താള്]]
#[[താൾ]]
#[[Colocasia esculenta]]
#[[Araceae]]
#[[new cocoyam]]
#[[macabo]]
#[[malanga]]
#[[otoy]]
#[[quequisque]]
#[[tania]]
#[[yautia]]
#[[taro]]
#[[pulaka]]
#[[swamp taro]]
#[[দক্ষিণ প্রশান্ত মহাসাগর]]
#[[ஜமால்]]
#[[அப்துல் நாசிர்]]
#[[আব্দুন নাসির]]
#[[ஜமாத்து]]
#[[مثل]]
#[[Abdunnasir]]
#[[সম্প্রদান কারক]]
#[[depreciation]]
#[[poisto]]
#[[折舊]]
#[[Hokkien]]
#[[國語羅馬字]]
#[[গুওয়ু লোমাজি]]
#[[Gwoyeu Romatzyh]]
#[[বোধোদিত]]
#[[Suryanarayana]]
#[[सूर्यनारायण]]
#[[সূর্যনারায়ণ]]
#[[財富]]
#[[ଶୂନ୍ୟ]]
#[[excruciating]]
#[[excruciation]]
#[[excruciate]]
#[[subjugation]]
#[[subjugate]]
#[[-yev]]
#[[adaptability]]
#[[coursework]]
#[[darvoza]]
#[[darvaza]]
#[[Garagum]]
#[[গারাগুম]]
#[[কারাকুম]]
#[[mutluluk]]
#[[झञ्झा]]
#[[abnormal psychology]]
#[[অস্বাভাবিক মনোবিজ্ঞান]]
#[[act psychology]]
#[[antipsychology]]
#[[armchair psychology]]
#[[behavioral psychology]]
#[[behaviorism]]
#[[behavioural psychology]]
#[[biological psychology]]
#[[জৈবিক মনোবিজ্ঞান]]
#[[biopsychology]]
#[[chronopsychology]]
#[[clinical psychology]]
#[[cod psychology]]
#[[cognitive psychology]]
#[[content psychology]]
#[[criminal psychology]]
#[[crowd psychology]]
#[[cyberpsychology]]
#[[depth-psychology]]
#[[depth psychology]]
#[[developmental psychology]]
#[[differential psychology]]
#[[ecopsychology]]
#[[ethnopsychology]]
#[[evolutionary psychology]]
#[[geropsychology]]
#[[gestalt psychology]]
#[[Gestalt psychology]]
#[[格里尔斯]]
#[[Grylls]]
#[[গ্রিলস]]
#[[मनोविज्ञान]]
#[[認識論]]
#[[সংজ্ঞানাত্মক মনোবিজ্ঞান]]
#[[অপরাধ মনোবিজ্ঞান]]
#[[চিকিৎসা মনোবিজ্ঞান]]
#[[পার্থক্যমূলক মনোবিজ্ঞান]]
#[[বিবর্তনমূলক মনোবিজ্ঞান]]
#[[জাতিগত মনোবিজ্ঞান]]
#[[Leverkusen]]
#[[লেভারকুজেন]]
#[[রাইনল্যান্ড]]
#[[Rhineland]]
#[[মনোরঞ্জিকা]]
#[[औषधालय]]
#[[ஆளுமைச் சிதைவு]]
#[[dispensary]]
#[[դիսպանսեր]]
#[[ஆளுமை]]
#[[சிதைவு]]
#[[personality disorder]]
#[[ভারতীয় প্রজাতন্ত্র]]
#[[ব্যক্তিত্ব ব্যাধি]]
#[[abracadabra]]
#[[Abraxas]]
#[[Abrasax]]
#[[עַבְדָא כְּדַבְרָא]]
#[[עבדא כדברא]]
#[[עברא כדברא]]
#[[মাম্বো জাম্বো]]
#[[mumbo jumbo]]
#[[mumbo jumbos]]
#[[jargon]]
#[[narcissistic personality disorder]]
#[[আত্মরতিমূলক ব্যক্তিত্ব ব্যাধি]]
#[[Rzeszutek]]
#[[الزرادشتية]]
#[[জরাথুস্ট্রবাদ]]
#[[ζωροαστρισμός]]
#[[पारसी धर्म]]
#[[زرتشتیگری]]
#[[مزدیسنا]]
#[[Mazdean]]
#[[Zoroastrian]]
#[[aphrodisiac]]
#[[licorice]]
#[[विश्व]]
#[[विश्वयुद्ध]]
#[[حرب عالمية]]
#[[world war]]
#[[World War I]]
#[[WWI]]
#[[WW1]]
#[[World War 1]]
#[[World War One]]
#[[metonym]]
#[[چغندر]]
#[[پاییز]]
#[[فرش]]
#[[فرمان]]
#[[নিঃসঙ্কোচ]]
#[[অসঙ্কুচিতমুখ]]
#[[স্বপ্রণীত]]
#[[সংকলন করা]]
#[[শব্দৈশ্বর্য্য]]
#[[अज्ञातपूर्वगृहागतव्यक्तिः]]
#[[गृहागत]]
#[[अज्ञात]]
#[[अध्यात्म]]
#[[आध्यात्मिकता]]
#[[वैकुंठ]]
#[[वैकुण्ठ]]
#[[শব্দৈশ্বর্য]]
#[[يكونوا]]
#[[كون]]
#[[بډایه]]
#[[समग्र]]
#[[holístico]]
#[[شامل]]
#[[holistic]]
#[[holism]]
#[[holísticos]]
#[[ataxia]]
#[[ataxy]]
#[[feudalism]]
#[[feudal]]
#[[porch]]
#[[pinnacle]]
#[[إقطاعي]]
#[[اعتلال]]
#[[اعتل]]
#[[psychopathy]]
#[[encephalopathy]]
#[[এনসেফালোপ্যাথি]]
#[[cardiomyopathy]]
#[[কার্ডিওমায়োপ্যাথি]]
#[[radiculopathy]]
#[[রেডিকুলোপ্যাথি]]
#[[अवधारण]]
#[[समीचीननिर्णय]]
#[[қарор]]
#[[قرار]]
#[[laýyk]]
#[[لائق]]
#[[لایق]]
#[[karar]]
#[[шешім]]
#[[penderfyniad]]
#[[تصمیم]]
#[[تصميم]]
#[[firmness]]
#[[perseverance]]
#[[resoluteness]]
#[[décision]]
#[[raisonnable]]
#[[decisión]]
#[[razonable]]
#[[decisão]]
#[[razoável]]
#[[توكل]]
#[[ثلاثون]]
#[[أوروبا]]
#[[أوربا]]
#[[أوربة]]
#[[أوروبة]]
#[[Europe]]
#[[European Union]]
#[[很好很強大]]
#[[درجة الحرارة]]
#[[درجة]]
#[[فترة]]
#[[interregnum]]
#[[الدولة الإسلامية في العراق والشام]]
#[[الشام]]
#[[بلاد الشام]]
#[[مشرق]]
#[[الشرق الأوسط]]
#[[فرنسي]]
#[[البحر الأبيض المتوسط]]
#[[Batista]]
#[[retard]]
#[[我們]]
#[[بداية]]
#[[আগর উদ্ভিদ]]
#[[আগর কাঠ]]
#[[আগর কাষ্ঠ]]
#[[অ্যালোসকাঠ]]
#[[ঈগলকাঠ]]
#[[ঘরুকাঠ]]
#[[ঈশ্বরের কাঠ]]
#[[يلنجوج]]
#[[aloeswood]]
#[[agalloch]]
#[[heartwood]]
#[[সার কাষ্ঠ]]
#[[sap wood]]
#[[يلنجج]]
#[[يلنجيج]]
#[[ألنجوج]]
#[[অসার কাঠ]]
#[[邊材]]
#[[地中海]]
#[[コルカタ]]
#[[カルカッタ]]
#[[داكا]]
#[[دكا]]
#[[ضلع تانغايل]]
#[[தங்காயில் மாவட்டம்]]
#[[ददाति]]
#[[quasar]]
#[[আপাত-নক্ষত্র]]
#[[ক্যালিফোর্নিয়া]]
#[[California]]
#[[ক্যালিফোর্নিয়াবাসী]]
#[[عشوائي]]
#[[عشوائية]]
#[[industrial-organizational psychology]]
#[[শিল্প-সাংগঠনিক মনোবিজ্ঞান]]
#[[Aristotle]]
#[[অ্যারিস্টটল]]
#[[এরিস্টটল]]
#[[Socrates]]
#[[সক্রেটিস]]
#[[Pythagoras]]
#[[পিথাগোরাস]]
#[[Plato]]
#[[প্লেটো]]
#[[Archimedes]]
#[[আর্কিমিডিস]]
#[[أرسطوطاليس]]
#[[أرسطو]]
#[[سوكراتس]]
#[[سقراط]]
#[[فيثاغورس]]
#[[أفلاطون]]
#[[أرخميدس]]
#[[أرشميدس]]
#[[Arkimedo]]
#[[निद्रा]]
#[[বাতিস্তা]]
#[[Zaldívar]]
#[[تفكر]]
#[[contemplate]]
#[[Zaldibar]]
#[[coal mine]]
#[[coalmine]]
#[[kulmine]]
#[[反対側では]]
#[[microcosm]]
#[[obscure]]
#[[manifold]]
#[[prognostication]]
#[[elucidation]]
#[[wrought]]
#[[soilleireachadh]]
#[[מוגבל]]
#[[Donald]]
#[[Donald Trumpian]]
#[[Trumpian]]
#[[Donaldism]]
#[[Trumpish]]
#[[Donald Trumpish]]
#[[Trumpesque]]
#[[Donald Trumpesque]]
#[[ট্রাম্পবাদী]]
#[[Trumper]]
#[[Trumpista]]
#[[Trumpite]]
#[[MAGAt]]
#[[MAGAT]]
#[[magat]]
#[[Reaganaut]]
#[[Reaganite]]
#[[Trumpanzee]]
#[[Trumpster]]
#[[Trumpism]]
#[[ტრამპიზმი]]
#[[トランピズム]]
#[[anti-Trumpism]]
#[[fervent]]
#[[chauvinistic]]
#[[متوجه]]
#[[Trumpster diving]]
#[[Trumpster fire]]
#[[Trumper]]
#[[Trumpet]]
#[[Trumptard]]
#[[عدوان]]
#[[क्रमात्मचरित्रोन्नयन]]
#[[ক্রমাত্মচরিত্রোন্নয়ন]]
#[[dexlansoprazole]]
#[[ডেক্সলেনসোপ্রাজোল]]
#[[go to hell]]
#[[Анголец]]
#[[Анголка]]
#[[avarice]]
#[[avaricious]]
#[[codicia]]
#[[psychophysics]]
#[[মনোসংবেদনা]]
#[[Psychophysik]]
#[[right-wing populism]]
#[[شعبوية يمينية]]
#[[ডানপন্থী জনতুষ্টিবাদ]]
#[[Rechtspopulismus]]
#[[العراق]]
#[[دولة]]
#[[دولت]]
#[[بنجلاديش]]
#[[بنغلاديش]]
#[[God-fearing]]
#[[pious]]
# [[bayram]]
# [[atheism]]
#[[but]]
#[[adverb]]
#[[Mayers]]
#[[bombardment]]
#[[bombardier]]
#[[আর্টিলারি]]
# [[aphelion]]
# [[یولجی]]
#[[याति]]
#[[আবেগসূচক পদ]]
#[[আবেগসূচক]]
#[[mathematician]]
#[[गणितज्ञ]]
#[[గణితశాస్త్రజ్ఞుడు]]
#[[கணிதயியலாளர்]]
#[[கணிதர்]]
#[[கணிஞர்]]
#[[கணியாளர்]]
#[[ഗണിതശാസ്ത്രജ്ഞൻ]]
#[[數學家]]
#[[हृदयद्वार]]
#[[गणितविद्]]
#[[गणितविद्याज्ञः]]
#[[संख्यापरिमाणविद्याज्ञः]]
#[[गणितशास्त्रज्ञः]]
#[[गणित]]
#[[क्षेत्रपरिमापकविद्यावान्]]
#[[गणितज्ञः]]
#[[रेखावीजादि-गणितविद्]]
#[[number cruncher]]
#[[গণিতবিদ]]
#[[number-cruncher]]
#[[whetstone]]
#[[honestone]]
#[[classwork]]
#[[instinct]]
#[[علم النفس الصناعي]]
#[[forfeit]]
#[[envisager]]
#[[envisage]]
#[[forfait]]
#[[fólder]]
#[[ফোল্ডার]]
#[[frequency distribution]]
#[[গণসংখ্যা নিবেশন]]
#[[chauvinism]]
#[[वातावरण]]
#[[द्विमातृपितृकुटुम्ब]]
#[[कुटुम्ब]]
#[[কুটুম্ব]]
#[[darstellen]]
#[[وضح]]
#[[valetudinis]]
#[[valētūdō]]
#[[sickle cell anemia]]
#[[difficultas]]
#[[diuturnus]]
#[[maniraptoran]]
#[[ম্যানিরাপ্টোরান]]
#[[theropod]]
#[[therapod]]
#[[থেরোপোড]]
#[[respectivo]]
#[[intricate]]
#[[law of diminishing marginal utility]]
#[[প্রান্তিক উপযোগ]]
#[[marginal utility]]
#[[marginal]]
#[[redundant]]
#[[paramount]]
#[[lord paramount]]
#[[overlord]]
#[[präferieren]]
#[[liege lord]]
#[[当]] (অসম্পূর্ণ)
#[[অনুষ্টুভ]]
#[[हृदय]]
#[[حتحور]]
#[[হাথোর]]
#[[Hathor]]
#[[ماركوس]]
#[[ပြည်ထောင်စုမြန်မာနိုင်ငံတော်]]
#[[République de l’Union du Myanmar]]
#[[Republic of the Union of Myanmar]]
#[[ပြည်ထောင်စု သမ္မတ မြန်မာနိုင်ငံတော်]]
#[[بحر إيجة]]
#[[بحر]]
#[[زاد]]
#[[ڤلاديمير]]
#[[embezzlement]]
#[[اختلاس]]
#[[formální]]
#[[Gaza Strip]]
#[[Gaza City]]
#[[Wadi Gaza]]
#[[قطاع غزة]]
#[[গাজা ভূখণ্ড]]
#[[franja de Gaza]]
#[[Gaza]]
#[[Levant]]
#[[লেভান্ত]]
#[[শাম]]
#[[এক গোয়ালের গরু]]
#[[এক গাঙের চিল]]
#[[একদল]]
#[[ذیلی ضلع]]
#[[subdistrict]]
#[[жемқорлық]]
#[[gluttony]]
#[[বহিষ্কারাদেশ]]
#[[Kasba Upazila]]
#[[قصبہ ذیلی ضلع]]
#[[রৈখিক বীজগণিত]]
#[[কুটিলতাবর্জিত]]
#[[pretentious]]
#[[ambitious]]
# [[grandiose]]
# [[pompous]]
# [[πομπή]]
# [[orotund]]
# [[brassy]]
# [[rococo]]
# [[artsy-fartsy]]
#[[претенциозный]]
#[[arty-farty]]
#[[قرديات الشكل]]
#[[simian]]
#[[apely]]
#[[apish]]
#[[monkeyish]]
#[[Simiiformes]]
#[[anthropoid]]
#[[կապկային]]
#[[বানরসদৃশ]]
#[[Homo heidelbergensis]]
#[[إنسان هايدلبيرغ]]
#[[Heidelberg man]]
#[[মধ্য প্লাইস্টোসিন]]
#[[комплект]]
#[[overgeneralization]]
#[[gravitational]]
#[[Schwarzschild]]
#[[hippocampus]]
#[[impromptu]]
#[[അലി അറ്-റിദാ]]
#[[আলী আর-রিদা]]
#[[আলীরেজা]]
#[[Ali al-Rida]]
#[[Alireza]]
#[[علي الرضا]]
#[[ফিনিক্স]]
#[[ফিনিক্স পাখি]]
#[[লিংকনশায়ার]]
#[[লিঙ্কনশায়ার]]
#[[Phoenix]]
#[[phoenix]]
#[[Lincolneschire]]
#[[Lincolnshire]]
#[[South Yorkshire]]
#[[সাউথ ইয়র্কশায়ার]]
#[[দক্ষিণ ইয়র্কশায়ার]]
#[[East Riding of Yorkshire]]
#[[ইস্ট রাইডিং অফ ইয়র্কশায়ার]]
#[[North Yorkshire]]
#[[নর্থ ইয়র্কশায়ার]]
#[[Northamptonshire]]
#[[নর্থহ্যাম্পটনশায়ার]]
#[[Cambridgeshire]]
#[[Norfolk]]
#[[নরফোক]]
#[[Nottinghamshire]]
#[[নটিংহ্যামশায়ার]]
#[[Leicestershire]]
#[[লেইসেস্টারশায়ার]]
#[[Rutland]]
#[[রাটল্যান্ড]]
#[[North Sea]]
#[[Warwickshire]]
#[[ওয়ারউইকশায়ার]]
#[[উত্তৰ সাগৰ]]
#[[উত্তর সাগর]]
#[[clout]]
#[[Északi-tenger]]
#[[तस्मा]]
#[[তস্মা]]
#[[নৃসিংহপ্রসাদ]]
#[[dative case]]
#[[तुच्छयेनातृपिहितम्]]
#[[ווריקשייר]]
#[[वरिकशायर]]
#[[ওয়ারিকশায়ার]]
#[[اسفراین]]
#[[এসফারায়েন]]
#[[কালিঘাটের মানুষ কালীদর্শন করে না]]
#[[you don’t know what you’ve got till it’s gone]]
#[[ৰাজাজ্ঞা]]
#[[অন্তর্জ্বালা]]
#[[দূরাকাঙ্ক্ষা]]
#[[প্রত্যূষ]]
#[[ব্যূহ]]
#[[এতদ্ব্যতীত]]
#[[টীকাটিপ্পনী]]
#[[নির্দ্বিধা]]
#[[एतदतिरिक्तः]]
#[[خراسان شمالی]]
#[[জায়নবাদ]]
#[[জায়ন]]
#[[জায়নবাদী]]
#[[Zionist]]
#[[Zionism]]
#[[Zion]]
#[[Sion]]
#[[trimetazidine]]
#[[dicycloverine]]
#[[dicyclomine]]
#[[metformin]]
#[[linagliptin]]
#[[Zionismus]]
#[[metformina]]
#[[antiischemic]]
#[[ischemia]]
#[[ராமச்சந்திர]]
#[[சந்திரசேகர்]]
#[[تشاندراسيخار]]
#[[Mohan]]
#[[ಮೋಹನ್]]
#[[మోహన్]]
#[[மோகன்]]
#[[മോഹൻ]]
#[[मोहन]]
#[[contradiction]]
#[[inconsistency]]
#[[oxymoron]]
#[[বিরূদ্ধযুক্তিপ্রদর্শক]]
#[[Castilla]]
#[[Yumaklı]]
#[[yumaklaşmak]]
#[[خضع]]
#[[flathead catfish]]
#[[گربهماهی سرپخ]]
#[[سمك السلور فلاتهيد]]
#[[hayvan]]
#[[hayvanat bahçesi]]
#[[hayvanat]]
#[[hayvanlar]]
#[[Flachkopfwels]]
#[[Gerardo]]
#[[Fernández]]
#[[費爾南德斯]]
#[[چوارقورنه]]
#[[Ranya District]]
#[[Chwarqurna]]
#[[قەزای ڕانیە]]
#[[Iraqification]]
#[[rana de zarzal]]
#[[rana de cristal]]
#[[সিয়োনবাদী]]
#[[glass frog]]
#[[Montevideo tree frog]]
#[[Montevideo]]
#[[মোন্তেভিদেও]]
#[[Arequipa]]
#[[Centrolenidae]]
#[[holländisch]]
#[[niederländisch]]
#[[holandés]]
#[[hollandais]]
#[[néerlandais]]
#[[holländische]]
#[[இரண்டாம் வேற்றுமை]]
#[[اتفاق]]
#[[تسوية]]
#[[مفيش]]
#[[نبق]]
#[[نبيذ]]
#[[نبغ]]
#[[خذل]]
#[[Menschenrechtsverletzung]]
#[[मानवाधिकार]]
#[[मानव अधिकार]]
#[[मानव]]
#[[absolute right]]
#[[civil right]]
#[[fundamental right]]
#[[natural right]]
#[[neuroright]]
#[[civil rights]]
#[[human right]]
#[[human rights]]
#[[natural rights]]
#[[cyberrights]]
#[[neurotechnology]]
#[[neurology]]
#[[neuroscience]]
#[[স্নায়ুতত্ত্ব]]
#[[স্নায়ুবিদ্যা]]
#[[স্নায়ুচিকিৎসাবিজ্ঞান]]
#[[স্নায়ুবিজ্ঞান]]
#[[পরিগণনামূলক স্নায়ুবিজ্ঞান]]
#[[computational neuroscience]]
#[[علوم اعصاب محاسباتی]]
#[[arvutuslik neuroteadus]]
#[[গাণিতিক স্নায়ুবিজ্ঞান]]
#[[তাত্ত্বিক স্নায়ুবিজ্ঞান]]
#[[computational neuroaesthetics]]
#[[Menschenrechte]]
#[[politisch]]
#[[Iberian Peninsula]]
#[[honor killing]]
#[[honour killing]]
#[[ദുരഭിമാനക്കൊല]]
#[[সন্মান ৰক্ষাৰ্থে হত্যা]]
#[[সম্মান রক্ষার্থে হত্যা]]
#[[women's rights]]
#[[নারী অধিকার]]
#[[Sheffield]]
#[[Phrygia]]
#[[Nieuwpoort]]
#[[উদ্যমশীলতা]]
#[[مثابرة]]
#[[persistence]]
#[[ಪೈಲ್ವಾನ್]]
#[[cephalosporin]]
#[[senselessness]]
#[[tax collector]]
#[[𒃶𒍝𒁀𒊒]]
#[[வரித் தண்டலர்]]
#[[إشفى]]
#[[Trichiurus lepturus]]
#[[largehead hairtail]]
#[[Bakh]]
#[[بخ]]
#[[বাখ]]
#[[Taft County]]
#[[شهرستان تفت]]
#[[তাফত কাউন্টি]]
#[[ইয়াজ্দ]]
#[[ইয়াযদ প্রদেশ]]
#[[ইয়াযদ]]
#[[ইয়াজদ প্রদেশ]]
#[[استان یزد]]
#[[Kisangani]]
#[[كيسانغاني]]
#[[كيسانجانى]]
#[[কিসাঙ্গানি]]
#[[عشواء]]
#[[शृङ्खल]]
#[[शृङ्खला]]
#[[Edinburgh]]
#[[أيقن]]
#[[هزأ]]
#[[unquestionably]]
#[[ألا]]
#[[ذهب]]
#[[صاعقه]]
#[[صاعقة]]
#[[برق]]
#[[بےشک]]
#[[بیشک]]
#[[रत्नोल्लसत्कुण्डला]]
#[[রত্নোল্লসৎকুণ্ডলা]]
#[[طويل]]
#[[كهف]]
#[[többes szám]]
#[[barlang]]
#[[اتمسفر]]
#[[اندروا]]
#[[skirt suit]]
#[[toplessness]]
# [[beastelich]]
# [[fondeábamos]]
# [[imperfect tense]]
# [[অপুরাঘটিত কাল]]
# [[سياسة]]
# [[নিশীথবনভ্রমণবিলাসিনী]]
# [[ধন্বন্তরিভাণ্ডনিঃসৃত]]
# [[বিষমোজ্জলাবিভাসিতলোচনপ্রান্তে]]
# [[প্রফুল্লনীলোৎপলদলতুল্য]]
# [[নীল পদ্ম]]
# [[هواسپهر]]
# [[گاز]]
# [[گاز گرفتن]]
# [[گاز گلخانهای]]
# [[گاز طبیعی]]
#[[Babylon]]
#[[বাবিল]]
#[[ব্যাবিলন]]
#[[inferiority complex]]
#[[عقدة النقص]]
#[[عقدة الدونية]]
#[[عقده حقارت]]
#[[शुतुरमुर्ग़]]
#[[उष्ट्रपक्षी]]
#[[شترمرغ]]
#[[شتر]]
#[[उष्ट्र]]
#[[पक्षी]]
#[[اشتر]]
#[[آستر]]
#[[Shahbagi]]
#[[Hindutva]]
#[[sarkari Muslim]]
#[[libbu]]
#[[librandu]]
#[[raita]]
#[[bhakt]]
#[[Jaichand]]
#[[BJP]]
#[[rashtravadi]]
#[[bhagwa]]
#[[فصاحة]]
#[[مهتر]]
#[[مساحة]]
#[[مناقشة]]
#[[مناظرة]]
#[[mesaha]]
#[[münakaşa]]
#[[munaqaşa]]
#[[münazara]]
#[[مساحه]]
#[[tartışma]]
#[[bahs]]
#[[محاكمة]]
#[[muhokama]]
#[[munozara]]
#[[مذاكرة]]
#[[muzokara]]
#[[tortishuv]]
#[[müzakirə]]
#[[مذاکره]]
#[[tortishmoq]]
#[[قومسيون]]
#[[شلتة]]
#[[باشمهندس]]
#[[أجزة]]
#[[أجزجي]]
#[[أجزاخانة]]
#[[بنش]]
#[[প্রাথমিক চিকিৎসা বাক্স]]
#[[بطاطس]]
#[[فرجية]]
#[[فراجه]]
#[[كوزينة]]
#[[فريڭو]]
#[[سبنيول]]
#[[إسباني]]
#[[إسبانية]]
#[[Hispanic]]
#[[синтезатор]]
#[[ಚಂಡಮಾರುತ]]
#[[supermassive]]
#[[புயல்]]
#[[சூறாவளி]]
#[[மாரி]]
#[[வருஷம்]]
#[[வெள்ளி]]
#[[मारि]]
#[[ಮಾರಿ]]
#[[চামুণ্ডী]]
#[[வருடம்]]
#[[Ćamunda]]
#[[Ćamundi]]
#[[चामुण्डा]]
#[[வெள்ளி]]
#[[வெள்ளிக்கிழமை]]
#[[வருத்து]]
#[[কারণসূচক ক্রিয়া]]
#[[alleluia]]
#[[hallelujah]]
#[[গীতসংহিতা]]
#[[ഊഷ്മാവ്]]
#[[ആക്രമണം]]
#[[കൊടുങ്കാറ്റ്]]
#[[typhoon]]
#[[km/s]]
#[[kph]]
#[[Kilometerstein]]
#[[kps]]
#[[covetous]]
#[[covet]]
#[[অত্যুচ্চাকাঙ্ক্ষী]]
#[[√কাঙ্ক্ষ্]]
#[[आकाङ्क्षा]]
#[[जिज्ञासा]]
#[[তাপগতিবিজ্ঞান]]
#[[বিশৃঙ্খলা-মাত্রা]]
#[[এনট্রপি]]
#[[ದಂಡುಪಾಳ್ಯ]]
#[[ಕರ್ನಾಟಕ]]
#[[ಜನತಾ]]
#[[ಪಕ್ಷ]]
#[[कर्णाटक]]
#[[כד]]
#[[נרד]]
#[[עמבה]]
#[[כרפס]]
#[[אתרוג]]
#[[הודו]]
#[[סנסקריט]]
#[[כוסברה]]
#[[הקדוש ברוך הוא]]
#[[عمبة]]
#[[dupe]]
#[[做法]]
#[[မန္တလေး]]
#[[ဧရာဝတီ]]
#[[ဒါကာမြို့]]
#[[ဒါကာ]]
#[[დაკა]]
#[[Дакка]]
#[[কর্মকারক]]
#[[করণকারক]]
#[[অপাদান কারক]]
#[[অধিকরণ কারক]]
#[[সম্বন্ধ কারক]]
#[[সম্বোধন কারক]]
#[[राष्ट्रवादी]]
#[[राष्ट्रवाद]]
#[[রক্ষণশীলতাবাদ]]
#[[গান্ধীবাদ]]
#[[কর্তৃত্ববাদ]]
#[[-তন্ত্র]]
#[[চৌর্যতন্ত্র]]
#[[yenilenme]]
#[[renovación]]
#[[পুনর্নবীকরণ]]
#[[действительно]]
#[[預期]]
#[[quantum physics]]
#[[ultracold]]
#[[ultraconservative]]
#[[ultracognitive]]
#[[ultracontractivity]]
#[[ultramodern]]
#[[ultraconservatrice]]
#[[কোয়ান্টাম পদার্থবিজ্ঞান]]
#[[কোয়ান্টাম বলবিজ্ঞান]]
#[[양자역학]]
#[[量子力学]]
#[[量子力學]]
#[[meccanica quantistica]]
#[[physique quantique]]
#[[হাঁবিয়া]]
#[[ট্যাহা]]
#[[হাছুন]]
#[[ঝাডা]]
#[[صديق]]
#[[садык]]
#[[أولياء]]
#[[ولي]]
#[[اولیا]]
#[[evliya]]
#[[әулие]]
#[[öwlüýä]]
#[[avliyo]]
#[[ಆಯುಧ]]
#[[ಕಡೆಗೆ]]
#[[आयुध]]
#[[Sébastien]]
#[[assiduity]]
#[[assiduité]]
#[[assiduitas]]
#[[ಶತಪುಷ್ಪೆ]]
#[[ಶವ]]
#[[coffin]]
#[[خندق]]
#[[مازون]]
#[[فيه-اردشير]]
#[[جیرفت]]
#[[Jiroft]]
#[[جيروفت]]
#[[Ciruft]]
#[[Ctesiphon]]
#[[تیسفون]]
#[[榜葛剌]]
#[[Mymensingh]]
#[[আগরতলা]]
#[[阿加爾塔拉]]
#[[अगरतला]]
#[[Aqartala]]
#[[Agartala]]
#[[hədis]]
#[[حديث]]
#[[वाच्]]
#[[वचस्]]
#[[उक्ति]]
#[[وتن]]
#[[वक्त्र]]
#[[उक्त]]
#[[वक्त्रभेदी]]
#[[وطن]]
#[[وزن]]
#[[mḫꜣt]]
#[[پاية]]
#[[ultrafast]]
#[[ultrafastidious]]
#[[ultrapasteurization]]
#[[ultrapasteurized]]
#[[ultrapasteurizado]]
#[[ultramontane]]
#[[ultracrepidarian]]
#[[ultraviolet]]
#[[ultramarine]]
#[[অতিরুচিবাগীশ]]
#[[ريحة]]
#[[بقرة]]
#[[ಹೋಗು]]
#[[ನಡೆ]]
#[[ಅಗ್ನಿ]]
#[[ಅಗ್ನಿಪರ್ವತ]]
#[[ಅನಾನಸ್]]
#[[ಅನ್ನೊಂಡು]]
#[[ಅನ್ನ]]
#[[అన్నము]]
#[[ಪರ್ವತ]]
#[[ಉರಿಬೆಟ್ಟ]]
#[[ಜ್ವಾಲಾಮುಖಿ]]
#[[بركان]]
#[[ಬೆಟ್ಟ]]
#[[ಗಿರಿ]]
#[[ಮಲೆ]]
#[[لغو]]
#[[prime minister]]
#[[رئيس وزراء]]
#[[身份]]
#[[الناصرة]]
#[[العاصي]]
#[[اخلاص]]
#[[الراية]]
#[[الخاصة]]
#[[berouw]]
#[[pokání]]
#[[penediment]]
#[[توبة]]
#[[repentance]]
#[[تطهير النفس]]
#[[خلاص]]
#[[صاحب]]
#[[تقبة]]
#[[تونة]]
#[[توبہ]]
#[[توبال]]
#[[Anderson-Higgs mechanism]]
#[[رقيق]]
#[[رقيقة]]
#[[Higgs mechanism]]
#[[കാലഹരണപ്പെട്ട]]
#[[أخيرا]]
#[[جوهريا]]
#[[جورجيا]]
#[[أساسيا]]
#[[أساس]]
#[[أساسيون]]
#[[أساسي]]
#[[أسابيع]]
#[[أسبوع]]
#[[أسياد]]
#[[أسانسير]]
#[[ગાંધી]]
#[[ભારતીય]]
#[[મુંબઈ]]
#[[गांधी]]
#[[भारतीय]]
#[[अभिनेता]]
#[[الواق واق]]
#[[ختو]]
#[[سنبوق]]
#[[قاقلة]]
#[[خولنجان]]
#[[سيراء]]
#[[سك]]
#[[خن]]
#[[شانغهاي]]
#[[شانقهاي]]
#[[شانگهای]]
#[[خلنجان]]
#[[سنبوسق]]
#[[سنبوسة]]
#[[سمبوسة]]
#[[سنبوسه]]
#[[خرص]]
#[[ظن]]
#[[قرط]]
#[[مؤشرات]]
#[[میوهجات]]
#[[مجوهرات]]
#[[قرطاس]]
#[[Gulf Arabic]]
#[[arabe du Golfe]]
#[[مؤشر]]
#[[தண்டம்]]
#[[தண்டனம்]]
#[[தாண்டி]]
#[[தண்டவாளம்]]
#[[தீண்டாமை]]
#[[தாண்டு]]
#[[தாண்டவம்]]
#[[enchanteur]]
#[[enchanteresse]]
#[[عشرين]]
#[[عرقل]]
#[[عرقوب]]
#[[morphosyntax]]
#[[morphosyntactic]]
#[[profess]]
#[[شاء]]
#[[segmentation fault]]
#[[نقص در قطعهبندی]]
#[[ستبرگندویسان]]
#[[مشوه]]
#[[culpa]]
#[[culpabiliser]]
#[[culpabilizar]]
#[[culpability]]
#[[أدوات]]
#[[افتاده]]
#[[استفاده]]
#[[bombardement]]
#[[mobilisation]]
#[[subordination]]
#[[Frankreich]]
#[[Bachmann]]
#[[assassinar]]
#[[assassinat]]
#[[assassin]]
#[[homicide volontaire]]
#[[homicide involontaire]]
#[[agenouiller]]
#[[Plautdietsch]]
#[[Schutzstaffel]]
#[[bajram]]
#[[বোমাবর্ষণ]]
#[[shelling]]
#[[subordinationsbrott]]
#[[قاتل]]
#[[مقاتلة]]
#[[معامله]]
#[[مقاومة]]
#[[катиљ]]
#[[जी]]
#[[William]]
#[[Williamsburg]]
#[[Williamson]]
#[[Williams]]
#[[Aurangzeb]]
#[[اورنگزیب]]
#[[شهاب]]
#[[شهابها]]
#[[شهابسنگ]]
#[[شهابسنگها]]
#[[حياء]]
#[[الرياض]]
#[[الكيان الصهيوني]]
#[[الولاء والبراء]]
#[[الصحراء الكبرى]]
#[[الصحراء الغربية]]
#[[উপনিবেশমুক্তিকরণ]]
#[[Iqbal]]
#[[إقبال]]
#[[iqbol]]
#[[pajeet]]
#[[mujeet]]
#[[點點滴滴]]
#[[點點點]]
#[[點點]]
#[[إيونية]]
#[[Ionia]]
#[[اليونان]]
#[[الإغريقيا]]
#[[Σικελία]]
#[[Σικελός]]
#[[Sicily]]
#[[صقل]]
#[[পোষণকারী]]
#[[euch]]
#[[Euch]]
#[[Vereinigtes Königreich Großbritannien und Nordirland]]
#[[Vereinigte Arabische Emirate]]
#[[Vereinigtes Königreich]]
#[[Vereinigte Staaten von Amerika]]
#[[vereinigt]]
#[[Kirk]]
#[[sub-inspector]]
#[[subinspector]]
#[[উপ-পরিদর্শক]]
#[[chief inspector]]
#[[hoofdinspecteur]]
#[[পুলিশ মহাপরিদর্শক]]
#[[মহাপরিদর্শক]]
#[[inspector general]]
#[[secularism]]
#[[வணக்கம்]]
#[[ধর্মনিরপেক্ষতাবাদ]]
#[[علمانية]]
#[[कोयता]]
#[[कोला]]
#[[बाज़ीगर]]
#[[परदेश]]
#[[कोलाहल]]
#[[बाजीगर]]
#[[कोयला]]
#[[वैष्णव]]
#[[वैष्णवत्व]]
#[[শ্রীচৈতন্য]]
#[[खांडव]]
#[[इन्द्रप्रस्थ]]
#[[खण्डन]]
#[[അദ്ധ്യാത്മ]]
#[[ഉച്ചാരണം]]
#[[ചന്ദ്രോദയം]]
#[[നിർവ്വചനം]]
#[[പേരില്ലാത്ത]]
#[[അജ്ഞാതനാമ]]
#[[അല്ല]]
#[[വേണ്ട]]
#[[खण्डयति]]
#[[Chicago]]
#[[Chicagoan]]
#[[Chicago typewriter]]
#[[Chicago-style pizza]]
#[[Chicagoland]]
#[[galaxy gas]]
#[[galaxy-brained]]
#[[galaxy-brain]]
#[[galaxy cluster]]
#[[galaxy group]]
#[[galaxy filament]]
#[[កាល]]
#[[योद्धा]]
#[[مدرسة]]
#[[madraça]]
#[[medresea]]
#[[مدرسه]]
#[[mədrəsə]]
#[[صحن مدارسی]]
#[[мәдрәсә]]
#[[quieren]]
#[[actuá]]
#[[actuábamos]]
#[[actuáremos]]
#[[actuássemos]]
#[[actuávamos]]
#[[indicative mood]]
#[[مرفوع]]
#[[直陳語氣]]
#[[模塊]]
#[[publicado]]
#[[antarktiszi]]
#[[antarktislainen]]
#[[Antarktis]]
#[[صورة]]
#[[بصورة خاصة]]
#[[بصورة عامة]]
#[[sura]]
#[[صورت]]
#[[صورتی]]
#[[صورت حال]]
#[[صورتغذا]]
#[[صورت پذیرفتن]]
#[[صورت گرفتن]]
#[[صورتن]]
#[[dope]]
#[[ice cream]]
#[[آیس کریم]]
#[[glacé]]
#[[Glacéhandschuh]]
#[[چریشلمك]]
#[[مزعجون]]
#[[مزعجة]]
#[[ذكر]]
#[[بإذن الله]]
#[[مذکر]]
#[[معكرونة]]
#[[مذكر]]
#[[مسترجع]]
#[[مستعجلة]]
#[[مترجمة]]
#[[مستعجلون]]
#[[مستقلة]]
#[[مستحيلة]]
#[[مترجمها]]
#[[مستعجل]]
#[[لاش]]
#[[লাচ]]
#[[लाश]]
#[[地下]]
#[[chastity]]
#[[modesty]]
#[[تواضع]]
#[[নম্রতা]]
#[[دیکتاتور]]
#[[tamburína]]
#[[دیكمك]]
#[[دیكیش]]
#[[دیكن]]
#[[دیکھنا]]
#[[ديكة]]
#[[ديكور]]
#[[ديك رومي]]
#[[ديك الحبش]]
#[[ديك]]
#[[गांधीलमाशी]]
#[[دلك]]
#[[دف صغير]]
#[[رق]]
#[[കാക്ക]]
#[[കക്കിരി]]
#[[കക്കിരിക്ക]]
#[[കക്കുക]]
#[[കക്കൂസ്]]
#[[കാക്കത്തിരണ്ടി]]
#[[துவாரம்]]
#[[ডোনাল্ড]]
#[[নাহিয়ান]]
#[[সুলায়মান]]
#[[জনসন]]
#[[خفاش]]
#[[وطواط]]
#[[طير الليل]]
#[[سحت الليل]]
#[[chauve-souris]]
#[[گنج]]
#[[گنجشک]]
#[[گنجور]]
#[[گنجھلدار]]
#[[گنجا]]
#[[گنجیدن]]
#[[گنجاندن]]
#[[گنجینه]]
#[[zjevně]]
#[[gribouillage]]
#[[گجیک]]
#[[پیچین]]
#[[رأفة]]
#[[رجفة]]
#[[پایاننامه]]
#[[پایان]]
#[[خسف]]
#[[قوماندان]]
#[[قومق]]
#[[شعبان]]
#[[شعبة]]
#[[شعبه]]
#[[شعب]]
#[[قوم]]
#[[believen]]
#[[شعيب]]
#[[যিথ্রো]]
#[[Jethro]]
#[[رعوئيل]]
#[[شخصية]]
#[[bersalah]]
#[[berlangsung]]
#[[permintaan]]
#[[Allah]]
#[[trait]]
#[[यजमान]]
#[[ईश्]]
#[[ईश्वर]]
#[[هداية]]
#[[Dhaka Division]]
#[[family of orientation]]
#[[संयुक्त राज्य अमरीका]]
#[[अल साल्वाडोर]]
#[[संयुक्त राष्ट्र अमरीका]]
#[[संयुक्त प्रांत]]
#[[उत्तर प्रदेश]]
#[[যুক্তপ্রদেশ]]
#[[অস্ট্রালয়েড]]
#[[অস্ট্রালো-মেলানেশীয়]]
#[[Australo-Melanesian]]
#[[Australoid]]
#[[المزرعة]]
#[[رکین]]
#[[برگزار]]
#[[سال]]
#[[Gebze]]
#[[وطنية]]
#[[ألوهية]]
#[[مبرر]]
#[[مبارك]]
#[[راهوار]]
#[[راعنا]]
#[[رعناء]]
#[[انظرن]]
#[[انظرنا]]
#[[Κιλλύριοι]]
#[[ἀνδράποδον]]
#[[δούλη]]
#[[δοῦλος]]
#[[𐀈𐀁𐀫]]
#[[slaaf]]
#[[otrokyně]]
#[[otrok]]
#[[ကျွန်မ]]
#[[ကျွန်]]
#[[노예]]
#[[غلام]]
#[[knave]]
#[[لوند]]
#[[أعرج]]
#[[σκλάβος]]
#[[لسان]]
#[[قتال]]
#[[Pacific Standard Time]]
#[[Pacific Time Zone]]
#[[Standard]]
#[[মান্য ভাষা]]
#[[প্রমিত ভাষা]]
#[[standard language]]
#[[standaardtaal]]
#[[standaard]]
#[[reduplication]]
#[[災難]]
#[[災禍]]
#[[災害]]
#[[災殃]]
#[[catastrophe]]
#[[عفريت]]
#[[مارد]]
#[[ماردين]]
#[[مار در آستین پروراندن]]
#[[ماردین]]
#[[مارده]]
#[[ماردی]]
#[[ماردا]]
#[[ماردے]]
#[[sanjak]]
#[[recalcitrant]]
#[[motspänstig]]
#[[insurrectionary]]
#[[contumacious]]
#[[البارح]]
#[[الكتاب المقدس]]
#[[ألباب]]
#[[تذكر]]
#[[من باب أولى]]
#[[भक्त]]
#[[অসাম্প্রদায়িক মুসলিম]]
#[[𑄥𑄪𑄣𑄭𑄟𑄚𑄴]]
#[[أصول المنهج]]
#[[منهج]]
#[[әдістеме]]
#[[методология]]
#[[усул]]
#[[menawarkan]]
#[[jurisconsult]]
# [[кардамоном]]
# [[кардар]]
# [[خریدار]]
# [[кардамон]]
# [[кардан]]
# [[гузоња]]
# [[гузоштан]]
# [[менам]]
# [[мекам]]
# [[менами]]
# [[меринами]]
# [[меринам]]
# [[меѓународна фонетска азбука]]
# [[Дунав]]
# [[instrumental case]]
# [[мерин]]
# [[Ἄρης]]
# [[Зевс]]
# [[қазақ]]
# [[қазақ тілі]]
# [[زيوس]]
# [[خش]]
# [[اصطناع]]
# [[اصطنع|اِصْطَنَعَ]]
# [[σύνθεση]]
# [[szintézis]]
# [[síntesi]]
# [[تركيب]]
# [[συντίθημι]]
# [[milliyetçilik]]
# [[SSD]]
# [[HDD]]
# [[HD DVD drive]]
# [[যৌগিক শব্দ]]
# [[HD DVD]]
# [[hard disk drive]]
# [[андохтан]]
# [[анбоштан]]
# [[سفارش]]
# [[سفارش دادن]]
# [[سفارتخانه]]
# [[sifariş]]
# [[vermək]]
# [[وئرمک]]
# [[hədiyyə]]
# [[hädissään]]
# [[hypocrisy]]
# [[نفاق]]
# [[نفق]]
# [[compartmentalization]]
# [[compartimentalización]]
# [[compartmentalisation]]
# [[compartimentalização]]
# [[پررونق]]
# [[compartimentalizado]]
# [[अवाङ्मनसगोचर]]
#[[Southeast Asia]]
#[[দক্ষিণ পূর্ব এশিয়া]]
#[[Southwest Asia]]
#[[South-East Asia]]
#[[South East Asia]]
#[[Southeast Asian]]
#[[Southeast Asians]]
#[[अष्टाध्यायी]] (Aṣṭādhyāyī)
#[[showman]]
#[[viihdyttäjä]]
#[[viihdyttää]]
#[[showmanship]]
#[[힘]]
#[[আধিপত্যবাদ]]
#[[আবেগাপ্লুত]]
#[[супакоіць]]
#[[təsəlli]]
#[[اطمأن]]
#[[শান্তভাবে]]
#[[মারিফত]]
#[[গৌড়ভুজঙ্গ]]
#[[الأردن]]
#[[روحانيون]]
#[[روحانية]]
#[[روح]]
#[[الروح القدس]]
#[[ثالوث]]
#[[روح القدس]]
#[[پاک روح]]
#[[Holy Spirit]]
#[[جزيرة]]
#[[باسم الآب والابن والروح القدس]]
#[[القامشلي]]
#[[Qamishli]]
#[[Democratic Autonomous Administration of North and East Syria]]
#[[ethnomethodology]]
#[[antimethodology]]
#[[methodological]]
#[[methodologically]]
#[[methodologist]]
#[[multimethodology]]
#[[scientific methodology]]
#[[intermethodological]]
#[[faydalanmak]]
#[[fayda]]
#[[faydalar]]
#[[faydalanma]]
#[[ذوق]]
#[[تجربة]]
#[[ਤਜਰਬਾ]]
#[[ডানহাতি]]
#[[sheila]]
#[[المغرب]]
#[[الخميس]]
#[[صمد]]
#[[Ἰωάννης]]
#[[Ioannes]]
#[[یوحنا اصطباغی]]
#[[Ἰωάννα]]
#[[ܚܡܫܒܫܒܐ]]
#[[أمر]]
#[[أرز]]
#[[تشرين الثاني]]
#[[عربون]]
#[[صليب]]
#[[شتلة]]
#[[سلسبيل]]
#[[أرضي شوكي]]
#[[خرشوف]]
#[[бөрікгүл]]
#[[артишок]]
#[[артишока]]
#[[알아보다]]
#[[اغراق کردن]]
#[[گزاف گفتن]]
#[[과장하다]]
#[[exaggerate]]
#[[tunnistaa]]
#[[allorecognize]]
#[[derecognize]]
#[[allorecognition]]
#[[autorecognition]]
#[[auto-]]
#[[allo-]]
#[[dingin]]
#[[durgun]]
#[[sakin]]
#[[ором]]
#[[calmo]]
#[[surto]]
#[[calmado]]
#[[دولك]]
#[[drive-in]]
#[[autocinema]]
#[[autoalarm]]
#[[ساكن]]
#[[آرام]]
#[[nkegohenʼą́ą́go]]
#[[խախանդ]]
#[[հանդարտ]]
#[[հանգիստ]]
#[[հնագիտություն]]
#[[平静]]
#[[平靜]]
#[[고요하다]]
#[[静か]]
#[[穏やか]]
#[[يساكن]]
#[[سواكن]]
#[[قديمة]]
#[[قديم|قَدِيم]]
#[[고하다]]
#[[طوبغرافيا]]
#[[информационный]]
#[[информационно-аналитический]]
#[[информационные технологии]]
#[[الخلافة الراشدة]]
#[[Alawism]]
#[[الموصل]]
#[[راش درش]]
#[[رشد]]
#[[رشاد]]
#[[راشدات]]
#[[راشدة]]
#[[أتوكل]]
#[[التولي والتبري]]
#[[Eastern Orthodox Church]]
#[[পূর্বদেশীয় সনাতনপন্থী মণ্ডলী]]
#[[東方正教会]]
#[[Greek Orthodox Church]]
#[[ഗ്രീക്ക് ഓർത്തഡോക്സ് സഭ]]
#[[গ্রিক সনাতনপন্থী মণ্ডলী]]
#[[كنيسة الروم الأرثوذكس]]
#[[正當]]
#[[正当]]
#[[الصين]]
#[[صيني]]
#[[صينية]]
#[[الصربية]]
#[[ألمانية]]
#[[ألماني]]
#[[أرمينية]]
#[[ألبانية]]
#[[آلمانیها]]
#[[صينيون]]
#[[صنية]]
#[[صيصية]]
#[[秦]]
#[[Çin]]
#[[Çinli]]
#[[चीन]]
#[[朝秦暮楚]]
#[[Чин]]
#[[ചീന]]
#[[distraer]]
#[[have fun]]
#[[have a nice day]]
#[[أسلوب تعجب]]
#[[വ്യാക്ഷേപകം]]
#[[أدان]]
#[[أمانة]]
#[[أمان]]
#[[أهان]]
#[[اوان]]
#[[أوانئذ]]
#[[أوانس]]
#[[أوانذاك]]
#[[أوان]]
#[[آفرینش]]
#[[آترینه]]
#[[أخرى]]
#[[آخری]]
#[[آفرین]]
#[[آخرون]]
#[[ذي]]
#[[ذهن]]
#[[ذقن]]
#[[ذنب]]
#[[أمنية]]
#[[ذهني]]
#[[أغنية]]
#[[أمنيوتي]]
#[[kurwaturą]]
#[[kurwach]]
#[[kurwa mać]]
#[[kurwatura]]
#[[kurwa]]
#[[烏斯懷亞]]
#{{l|ar|الْأَرْضِي شَوْكِي}}
#[[متاع]]
#[[فنزويلا]]
#{{l|ar|جُمْهُورِيَّةُ فِنْزُوِيلَّا البُولِيفَارِيَّةُ}}
#[[ভেনেজুয়েলা বলিভারীয় প্রজাতন্ত্র]]
#[[भेनेजुएला]]
#[[वेनेजुएला]]
#[[वेनेज़ुएला]]
#[[ڤينيزويلا]]
#[[វេណេហ្ស៊ុយអេឡា]]
#[[ונצואלה]]
#[[ទុន]]
#[[شلوغ]]
#[[مزدحم]]
#[[צפוף]]
#[[толған]]
#[[붐비다]]
#[[คั่ง]]
#[[แน่น]]
#[[zatłoczony]]
#[[ګڼ]]
#[[переполненный]]
#[[набитый]]
#[[людный]]
#[[многолюдный]]
#[[überfüllt]]
#[[व्यस्त]]
#[[भीड़]]
#[[overcrowded]]
#[[غينيا الاستوائية]]
#[[غينيا]]
#[[غينيا بيساو]]
#[[غیر جانبدار]]
#[[स्वर्गनरकवर्णनप्रकरण]]
#[[mezhep]]
#[[మతము]]
#[[дин]]
#[[мазҳаб]]
#[[ਧਰਮ]]
#[[religião]]
#[[religia]]
#[[Reljoon]]
#[[Gloowe]]
#[[مذهب]]
#[[دین]] (ফারসি)
#[[шашин]]
#[[മതം]]
#[[종교]]
#[[សាសនា]]
#[[मज़हब]]
#[[دين]] (আরবি)
#[[تديين]]
#[[مدين]]
#[[سلف]]
#[[قرض]]
#[[θρησκεία]]
#[[ཆོས་ལུགས]]
#[[དབྱི་སི་ལམ་ཆོས་ལུགས]]
#[[Hindustan]]
#{{l|ar|هِنْدُسْتَان}}
#[[Հինդուստան]]
#[[Индостан]]
#[[印度斯坦]]
#[[ހިންދުސްތާނު]]
#[[હિંદુસ્તાન]]
#[[印度斯坦語]]
#[[خوارزمي]]
#[[ոսկոր]]
#[[𒄩𒀀𒀸𒊭]]
#[[استخوان]]
#[[ئێسکان]]
#[[Immanuel]]
#[[अस्थि]]
#[[fərqlənmək]]
#[[fərqləndirmək]]
#[[davlat]]
#[[devlet]]
#[[dövlətlənmək]]
#[[dövlətlərarası]]
#[[dövlət başçısı]]
#[[dövlət]]
#[[dövlətçilik]]
#[[الأمر بالمعروف والنهي عن المنكر]]
#[[self-sabotage]]
#[[مكر]]
#[[مكرت]]
#[[саботажник]]
#[[саботаж]]
#[[破壞]]
#[[যুদ্ধাভিলাষী]]
#[[নাবী]]
#[[منصوب]]
#[[مجزوم]]
#[[युयुत्सु]]
#[[desiderative]]
#[[چوداں]]
#[[ਚੌਦਾਂ]]
#[[ahli madya]]
#[[ahli listrik]]
#[[Vedic]]
#[[ahli]]
#[[jampi]]
#[[jamp]]
#[[cikgu]]
#[[kalaylamak]]
#[[kalalanka]]
#[[kalaunan]]
#[[kalkulator]]
#[[kala ulang]]
#[[katakan]]
#[[մաստուրբացիա]]
#[[マスターベーション]]
#[[تيمور]]
#[[تيمور الشرقية]]
#[[تيمور لاٴوت]]
#[[timur laut]]
#[[تیمور قازوق]]
#[[تیمور شرقی]]
#[[تمور]]
#[[تأمور]]
#[[تيمار]]
#[[heavy water]]
#[[ভারী পানি]]
#[[तर्कबुद्धिवाद]]
#[[बुद्धिवाद]]
#[[तर्कवाद]]
#[[مراقبة]]
#[[یادداشت]]
#[[للغاية]]
#[[اعتقاد]]
#[[اعتقاد داشتن]]
#[[ಹುಲಿ]]
#[[ಸ್ನೇಹ]]
#[[विचित्र]]
#[[إشراق]]
#[[انشرح]]
#[[بديع]]
#[[নিষ্কামিতা]]
#[[অযৌনকামিতা]]
#[[নিষ্কামী]]
#[[inimitable]]
#[[убеждённость]]
#[[уредност]]
#[[убеденият]]
#[[убедената]]
#[[убедено]]
#[[умереност]]
#[[Mitsotakis]]
#[[mitostasis]]
#[[Kyriakos]]
#[[woo]]
#[[indoctrination]]
#[[propaganda]]
#[[propagandapuhe]]
#[[propagandasota]]
#[[propagandakirjallisuus]]
#[[gaslighting]]
#[[gas lighting]]
#[[gas-lighting]]
#[[backfilled]]
#[[back-filled]]
#[[backfill]]
#[[ইজ্জাহ]]
#[[dictator]]
#[[dictatory]]
#[[dictatorius|dictātōrius]]
#[[dictatorii]]
#[[dictatorship]]
#[[dictatorship of the bourgeoisie]]
#[[dictatorship of the proletariat]]
#[[دكتاتورية]]
#[[dictatorial]]
#[[autochthon]]
#[[autocracy]]
#[[autocrat]]
#[[autocratic]]
#[[ავტოკრატიული]]
#[[專制]]
#[[false consciousness]]
#[[deadpan]]
#[[deadlock]]
#[[uváznutí]]
#[[స్నేహము]]
#[[చెలిమి]]
#[[కూరిమి]]
#[[స్నేహితుడు]]
#[[స్నేహితురాలు]]
#[[స్నేహితుఁడు]]
#[[শনাক্তযোগ্য]]
#[[اختلاف]]
#[[الاختلاف]]
#[[اختلاف کرنے والا]]
#[[اختلاف کرنا]]
#[[اختصار]]
#[[اختار]]
#[[ethereal]]
#[[aetherius]]
#[[etherealness]]
#[[etherealisation]]
#[[ethereality]]
#[[etherealism]]
#[[etherealization]]
#[[presupposition]]
#[[presuppositionalism]]
#[[presuppositionalist]]
#[[خلر]]
#[[أوغاريت]]
#[[فوة]]
#[[نظر]]
#[[𐎜𐎂𐎗𐎚]]
#[[اوگاریت]]
#[[ὄλῡρᾰ]]
#[[Ugarit]]
#[[烏加里特]]
#[[راعى]]
#[[Zeitschrift]]
#[[Arabische Republik Ägypten]]
#[[Arabische Zee]]
#[[نظریہ]]
#[[نظري]]
#[[نەزەرىيىۋى]]
#[[نظريون]]
#[[نظرية]]
#[[نظرة]]
#[[نظر ثانی]]
#[[οὐρανός]]
#[[نظريات]]
#[[মিশর আরব প্রজাতন্ত্র]]
#[[Arab Republic of Egypt]]
#{{l|ar|جُمْهُورِيَّة مِصْر الْعَرَبِيَّة}}
#[[阿拉伯埃及共和國]]
#[[شاكوش]]
#[[مطرقة]]
#[[نبطشي]]
#[[شيش]]
#[[بوية]]
#[[أراجوز]]
#[[ياميش]]
#[[baiséadach]]
#[[baictéarafagach]]
#[[basset]]
#[[bactériophage]]
#[[阿拉伯]]
#[[阿拉伯文]]
#[[阿拉伯語]]
#[[देवयानी]]
#[[देवयानी तारामंडल]]
#[[देवयानी मंदाकिनी]]
#[[দেবযানী মন্দাকিনী ছায়াপথ]]
#[[অ্যানড্রোমিডা ছায়াপথ]]
#[[Andromeda Galaxy]]
#[[constellation]]
#[[वङ्ग]]
#[[بنگال]]
#[[approprio]]
#[[proprius]]
#[[מתאים]]
#[[Josephine]]
#[[Jozefinë]]
#[[přizpůsobit]]
#[[přizpůsobovat]]
#[[tilpasse]]
#[[aanpassen]]
#[[alkalmaz]]
#[[alkalom]]
#[[igazít]]
#[[illeszt]]
#[[приспособить]]
#[[приспособлять]]
#[[приспосабливать]]
#[[獨佔]]
#[[獨佔鰲頭]]
#[[monopolize]]
#[[𐌲𐌰𐌰𐌹𐌲𐌹𐌽𐍉𐌽]]
#[[נכס]]
#[[充当]]
#[[充當]]
#[[مناسب]]
#[[համապատասխան]]
#[[պատշաճ]]
#[[müvafiq]]
#[[uyğun]]
#[[yerli]]
#[[適當]]
#[[恰當]]
#[[satire]]
#[[sarcasm]]
#[[sarcastic]]
#[[irony]]
#[[佔]]
#[[yerlik hal]]
#[[mühafiz]]
#[[mühafizə]]
#[[列恩]]
#[[列宁]]
#[[馬列斯]]
#[[馬]]
#[[列]]
#[[斯]]
#[[戇人]]
#[[antiorganization]]
#[[организа́ция]]
#[[organizzazione]]
#[[micronational organisation]]
#[[member organisation]]
#[[intermicronational organisation]]
#[[overshadow]]
#[[überschatten]]
#[[غطى]]
#[[غطيط]]
#[[غطيتم]]
#[[黯然失色]]
#[[reorganization]]
#[[quasi-reorganization]]
#[[uudelleenjärjestely]]
#[[গর্ভসম্ভূতা]]
#[[reusability]]
#[[पुनरुपयोगिता]]
#[[অলঙ্কারদীপ্ত]]
#[[পুষ্পাভরণশোভিত]]
#[[সিদ্ধিলাভ]]
#[[reusable]]
#[[-ity]]
#[[reuse]]
#[[-ability]]
#[[recyclable]]
#[[multi-use]]
#[[multiuse]]
#[[disposable]]
#[[single-use]]
#[[recycle]]
#[[dispose]]
#[[-able]]
#[[wiederverwerten]]
#[[hergebruiken]]
#[[recyclen]]
#[[recycleren]]
#[[genanvende]]
#[[genbruge]]
#[[recyklovat]]
#[[পুনঃচক্রায়ন]]
#[[diamond problem]]
#[[method overloading]]
#[[function overloading]]
#[[polymorphism]]
#[[polymathy]]
#[[polymyalgia]]
#[[polymorph]]
#[[polymerisoitua]]
#[[polymathic]]
#[[polymorphous]]
#[[polymorphic]]
#[[polymath]]
#[[polymorphus]]
#[[πολυ-]]
#[[μορφή]]
#[[mārga]]
#[[mērga]]
#[[multilevel]]
#[[多層]]
#[[دعاية]]
#[[propagandus]]
#[[بروبقاندا]]
#[[propagandalehtinen]]
#[[بروباجاندا]]
#[[بروباغندا]]
#[[दुष्प्रचार]]
#[[अधिप्रचार]]
#[[áróður]]
#[[ការឃោសនា]]
#[[пропаганда]]
#[[үгүттөө]]
#[[ໂຄສະນາຊວນເຊື່ອ]]
#[[പ്രചാരണം]]
#[[تبليغ]]
#[[Istanbul]]
#[[استانبول]]
#[[إسطنبول]]
#[[القسطنطينية]]
#[[Qüstəntiniyyə]]
#[[العبرانية]]
#[[pseudorationalist]]
#[[القرآنية]]
#[[യുക്തിവാദി]]
#[[യുക്തി]]
#[[ultrarational]]
#[[ultranationalist]]
#[[ultra-nationalist]]
#[[ultranationalism]]
#[[Ultranationalismus]]
#[[ultranacionalismo]]
#[[ultranacionalista]]
#[[ultranationaliste]]
#[[nacionalismo]]
#[[nacionalista]]
#[[nationaliste]]
#[[ultra-]]
#[[nacionalistický]]
#[[nacionalisme]]
#[[nacionalizmus]]
#[[nacionalist]]
#[[nacionalismos]]
#[[nacionalismu]]
#[[Nationalist China]]
#[[National Socialism]]
#[[National Socialist]]
#[[Nationalsozialist]]
#[[nâtionaliste]]
#[[cosmopolitanism]]
#[[世界主義]]
#[[世界主义]]
#[[cosmopolitan]]
#[[民族主義]]
#[[Nazism]]
#[[Hitlerism]]
#[[Strasserism]]
#[[國家社會主義]]
#[[民族社會主義]]
#[[민족사회주의]]
#[[國民社會主義]]
#[[国民社会主义]]
#[[國社主義]]
#[[國社]]
#[[國民政府]]
#[[Nationalsozialistische Deutsche Arbeiterpartei]]
#[[National Socialist German Workers' Party]]
#[[hitlerismo]]
#[[strasserismo]]
#[[主義]]
#[[guóshè]]
#[[paracetamol]]
#[[claviform]]
#[[ndjek]]
#[[तक्ति]]
#[[ndjerë]]
#[[ndjeshëm]]
#[[ndjesi]]
#[[ndjesë]]
#[[Ndrekë]]
#[[ndjekur]]
#[[ဆေးကုလားမ]]
#[[ဆားကြက်ဥ]]
#[[ဆိုက်ပရပ်စ်]]
#[[ဆီးပူညောင်းကျ]]
#[[ဆေးပေါ့လိပ်]]
#[[ဆားကျင်း]]
#[[ဆေးပြင်းလိပ်]]
#[[ဆူးပုပ်]]
#[[ဆွမ်းကပ်]]
#[[ဆပ်ကပ်]]
#[[adherent]]
#[[institutionalise]]
#[[institutionalised]]
#[[tragacanth]]
#[[sherbet]]
#[[sherbets]]
#[[shërbëtor]]
#[[interconnectedness]]
#[[interconnectednesses]]
#[[interdependență]]
#[[inter-]]
#[[interdependence]]
#[[interdépendance]]
#[[interdisciplinaritate]]
#[[interdisciplinarité]]
#[[interdisciplinarity]]
#[[interdisciplinar]]
#[[-itate]]
#[[ურთიერთდაკავშირებულობა]]
#[[praiseworthiness]]
#[[பாராட்டத்தக்கது]]
#[[commendable]]
#[[خاطر]]
#[[دہائی]]
#[[दुहाई]]
#[[تسليم]]
#[[توزيع]]
#[[توصيل]]
#{{l|ar|التَّوْصِيل}}
#[[taslim]]
#[[təslim olmaq]]
#[[təslim]]
#[[سلام]]
#[[يسالم]]
#[[مسالمة]]
#[[投降]]
#[[đầu hàng]]
#[[כניעה]]
#[[נכנע|נִכְנַע]]
#[[капитуляция]]
#[[капитулация]]
#[[투항]]
#[[항복]]
#[[capitulation]]
#[[दैन्य]]
#[[ஆதாம்]]
#[[ஆதாரம்]]
#[[தாபரம்]]
#[[avril]]
#[[Avril]]
#[[Avrill]]
#[[Aprill]]
#[[Gregorian calendar]]
#[[Avrille]]
#[[avrìl]]
#[[April]]
#[[Avrîl]]
#[[Aprilis]]
#[[fluttered]]
#[[Stuttgart]]
#[[చెలిమికత్తె]]
#[[رجس]]
#[[جانباز]]
#[[جانبازان]]
#[[geambaș]]
#[[وثن]]
#[[وثني]]
#[[مستعمرة]]
#[[رجاسة]]
#[[অপবিত্রতা]]
#[[अपवित्रता]]
#[[কলুষতা]]
#[[নাপাকি]]
#[[impurity]]
#[[impuritas]]
#[[unholiness]]
#[[unholy]]
#[[profanity]]
#[[profanitas]]
#[[profanus]]
#[[profane]]
#[[profanity delay]]
#[[broadcast delay]]
#[[مكيف]]
#[[مخيف]]
# [[వృక్షరుహము]]
# [[వృక్షాసనము]]
# [[వృక్షంబు]]
# [[వక్షము]]
# [[వీక్షణము]]
# [[చూడు]]
# [[உள்ளே]]
# [[वृक्षरुह]]
# [[वृक्ष]]
# [[स्त्रीलिंग]]
# [[लता]]
# [[उपयोग]]
# [[अक्सर]]
#[[पराया]]
#[[अम्बेडकर नगर]]
#[[Ambedkar Nagar]]
#[[superclass]]
#[[subclass]]
#[[اب]]
#[[أبابة]]
#[[أباب]]
#[[أبو]]
#[[آب]]
#[[أب]]
#[[عم]]
#[[में]]
#[[परछाई]]
#[[परछाईं]]
#[[परवाना]]
#[[पराकाष्ठा]]
#[[إصبع]]
#[[افترى]]
#[[एतानि]]
#[[एतद्]]
#[[ἐμμένω]]
#[[antiprejudice]]
#[[terminate with extreme prejudice]]
#[[self-prejudice]]
#[[prejudicious]]
#[[prejudicer]]
#[[prejudiceless]]
#[[postjudice]]
#[[in prejudice of]]
#[[homoprejudice]]
#[[heteroprejudice]]
#[[extreme prejudice]]
#[[disprejudice]]
#[[counterprejudice]]
#[[biprejudice]]
#[[تحامل]]
#[[تحيز]]
#[[carboxypenicillin]]
#[[carboxymethylcellulose]]
#[[carboxypeptidase]]
#[[थापा]]
#[[थामना]]
#[[थाटमाट]]
#[[थाम]]
#[[थमाना]]
#[[थोमा]]
#[[थाहा]]
#[[थमाओगी]]
#[[थमायी]]
#[[थाना]]
#[[थमाती]]
#[[थमाते]]
#[[थमातीं]]
#[[थमाया]]
#[[थमाता]]
#[[थमना]]
#[[थमाके]]
#[[थमाकर]]
#[[خرج]]
#[[خطر]]
#[[خبر]]
#[[তৌহিদী জনতা]]
#[[একত্ববাদ]]
#[[জনসমষ্টি]]
#[[basophilic granulocyte]]
#[[lymphocyte]]
#[[lymphocytes]]
#[[eosinophil]]
#[[eosinophils]]
#[[neutrophil]]
#[[neutrophils]]
#[[basophil]]
#[[basophils]]
#[[monocyte]]
#[[agranulocyte]]
#[[leukocyte]]
#[[单核细胞]]
#[[白血球]]
#[[白細胞]]
#[[白细胞]]
#[[platelet]]
#[[platelet function test]]
#[[plateletpheresis]]
#[[antiplatelet]]
#[[platelets]]
#[[white blood cell]]
#[[WBC]]
#[[blood cell]]
#[[hemocyte]]
#[[granulocyte]]
#[[myelocyte]]
#[[erythrocyte]]
#[[thrombocyte]]
#[[interleukocyte]]
#[[intraleukocyte]]
#[[bạch huyết cầu]]
#[[leukocytapheresis]]
#[[myelocytomatosis]]
#[[myélocyte]]
#[[myelocytosis]]
#[[myelocytoarchitecture]]
#[[myélocytes]]
#[[myelocytes]]
#[[autoerythrocyte]]
#[[antierythrocyte]]
#[[রক্তকণিকা]]
#[[থ্রম্বোসাইট]]
#[[অণুচক্রিকা]]
#[[শ্বেত রক্তকণিকা]]
#[[লোহিত রক্তকণিকা]]
#[[red blood cell]]
#[[RBC]]
#[[紅細胞]]
#[[rotes Blutkörperchen]]
#[[ερυθρό αιμοσφαίριο]]
#[[नैतिकता]]
#[[नैतिक]]
==টেমপ্লেট==
# [[টেমপ্লেট:arz-proper noun]]
# [[টেমপ্লেট:arz-proper noun/নথি]]
# [[টেমপ্লেট:ml-IPA]]
# [[টেমপ্লেট:ml-IPA/নথি]]
# [[টেমপ্লেট:R:fa:Hayyim]]
# [[টেমপ্লেট:R:tg:Vozhaju]]
# [[টেমপ্লেট:R:Mo'in]]
# [[টেমপ্লেট:reference template cat]]
# [[টেমপ্লেট:reference template cat/নথি]]
# [[টেমপ্লেট:refcat]]
# [[টেমপ্লেট:reference template cat/খেলাঘর]]
# [[টেমপ্লেট:fa-verb]]
# [[টেমপ্লেট:fa-verb/নথি]]
# [[টেমপ্লেট:fa-xlit]]
# [[টেমপ্লেট:fa-xlit/নথি]]
# [[টেমপ্লেট:ar-etym-iyya]]
# [[টেমপ্লেট:ar-etym-iyya/নথি]]
# [[টেমপ্লেট:ar-root-head]]
# [[টেমপ্লেট:ar-root-head/নথি]]
==পরিশিষ্ট==
# [[পরিশিষ্ট:Arabic nominals]]
# [[পরিশিষ্ট:আরবি roots/ء ل ه]]
==উল্লেখযোগ্য সম্পাদনা==
#[[শিক্ষা]]
#[[নিরর্থক]]
#[[تيموثاوس]]
#[[עמנואל]]
#[[homework]]
#[[cod]]
#[[মনোবিজ্ঞান]]
#[[rare]]
#[[মনোরঞ্জক]]
#[[ঔষধালয়]]
#[[ডিসপেনসারি]]
#[[ফার্মেসি]]
#[[pharmacy]]
#[[liquorice]]
#[[বিশ্ব]]
#[[বিশ্বযুদ্ধ]]
#[[world]]
#[[earth]]
#[[লক্ষণা]]
#[[قطر]]
#[[অসংকুচিত]]
#[[অলঙ্কারশাস্ত্র]]
#[[অলঙ্কার]]
#[[গৃহাগত]]
#[[অধ্যাত্ম]]
#[[ذلك]]
#[[কার্য]]
#[[appropriate]]
#[[schema]]
#[[ইউরোপীয় ইউনিয়ন]]
#[[আগ্রার মানুষ তাজমহল দেখে না]]
#[[Tangail District]]
#[[Ἀρχιμήδης]]
#[[নিদ্রা]]
#[[realm]]
#[[correspondence]]
#[[regression]]
#[[গয়রহ]]
#[[folder]]
#[[বাতাবরণ]]
#[[অনুষ্টুপ]]
#[[রা]]
#[[Ra]]
#[[شام]]
#[[ঝাঁকের কই]]
#[[জঙ্ঘা]]
#[[suit]]
#[[suite]]
#[[ইউৰোপ]]
#[[কুইৰ্মা]]
#[[তূষ্ণীম্ভাব]]
#[[পরাঙ্মুখ]]
#[[বৈদগ্ধ্য]]
#[[দুর্নিরীক্ষ্য]]
#[[ব্যবচ্ছেদ]]
#[[প্রাতর্ভ্রমণ]]
#[[প্রোজ্জ্বল]]
#[[অলঙ্ঘ্য]]
#[[এতদতিরিক্ত]]
#[[ꠁꠞꠣꠇ]]
#[[কৃতকর্ম]]
#[[Ovttastuvvan arábaemiráhtat]]
#[[opposite]]
#[[ꠟꠣꠄꠇ]]
#[[হাতির কাঁধে আসে যায়, হাম্বা রবে মুর্ছা যায়]]
#[[agricultural liens]]
#[[সঙ্গনিরোধ]]
#[[শ্লথ]]
#[[ঢলঢল]]
#[[কর্তৃকারক]]
#[[ইরাকীকরণ]]
#[[ital]]
#[[একলব্য]]
#[[অশ্বত্থামা]]
#[[অধ্যবসায়]]
#[[ঐকান্তিকতা]]
#[[persistent]]
#[[treasurer]]
#[[একঝাঁড়ের বাঁশ]]
#[[بنجلاديش]]
#[[শৃঙ্খলা]]
#[[বিজেপি]]
#[[কমিশন]]
#[[trick]]
#[[গণতন্ত্র]]
#[[স্তন]]
#[[অতিশয়ার্থবাচক]]
#[[দাইয়ুস]]
#[[জী]]
#[[চা]]
#[[লিফট]]
#[[accusative case]]
#[[বিউপনিবেশায়ন]]
#[[bit]]
#[[mirror]]
#[[frozen]]
#[[فرج]]
#[[شعیب]]
#[[believe]]
#[[যজমান]]
#[[United States of America]]
#[[টেমপ্লেট:ar-root]]
#[[মডিউল:sem-arb-utilities]]
#[[মার্কিন যুক্তরাষ্ট্র]]
#[[slave]]
#[[jack]]
#[[সারমেয়]]
#[[standard]]
#[[diminutive]]
#[[দ্বিরুক্তি]]
#[[বাত]]
#[[দক্ষিণ-পূর্ব এশিয়া]]
#[[একাধিপত্য]]
#[[إلهام]]
#[[methodology]]
#[[Ιωάννης]]
#[[يوحنا]]
#[[recognize]]
#[[হ্রস্বীকরণ]]
#[[راشد]]
#[[Venezuela]]
#[[ملك]]
#[[نادر]]
#[[assent]]
#[[conviction]]
#[[埃及]]
#[[Andromeda]]
#[[孟加拉國]]
#[[孟加拉]]
#[[অঘটনঘটনপটিয়সী]]
#[[pound]]
#[[سالم]]
#[[flutter]]
#[[ভিতর]]
===পরবর্তী দর্শন===
#[[deadfall]]
#[[deadhead]]
==অভিধান==
{| class="wikitable"
! ইংরেজি !! বাংলা !! উর্দু !! টীকাসমূহ
|-
| [[treasurer|Treasurer]] (কোষাধ্যক্ষ) || [[কোষাধ্যক্ষ]], [[খাজাঞ্চি]] || [[خزانچی]] || "খাজাঞ্চি" শব্দটি পুরনো রাজকীয় বা ঐতিহ্যবাহী প্রেক্ষাপটে ব্যবহৃত হয়। আক্কাদীয় ভাষায় [[𒃶𒍝𒁀𒊒]] (গাঞ্জাবারু)।
|-
| [[tax collector|Tax Collector]] || [[জগাতি]] || || "জগাতি" একটি দেশজ বাংলা শব্দ।
|-
| [[exciseman|Exciseman]]|| [[আবগারি শুল্ক]] ([[আবগারি কর]]) [[সংগ্রহ]]কারী || ||
|}
'''প্রতিবিম্ব ও প্রতিফলন'''
{| class="wikitable"
! colspan="undefined" |বৈশিষ্ট্য
! colspan="undefined" |প্রতিফলন (Reflection)
! colspan="undefined" |প্রতিবিম্ব (Image)
|-
| colspan="undefined" |'''সংজ্ঞা'''
| colspan="undefined" |আলোকরশ্মি কোনো তলে বাধা পেয়ে পূর্বের মাধ্যমে ফিরে আসার ঘটনা।
| colspan="undefined" |প্রতিফলিত বা প্রতিসৃত রশ্মি কোনো বিন্দুতে মিলিত হলে বা মিলিত হচ্ছে বলে মনে হলে যে আকৃতি তৈরি হয়।
|-
| colspan="undefined" |'''প্রকৃতি'''
| colspan="undefined" |এটি একটি ভৌত '''প্রক্রিয়া''' বা ঘটনা।
| colspan="undefined" |এটি আলোর প্রতিফলনের '''ফলাফল'''।
|-
| colspan="undefined" |'''দৃশ্যমানতা'''
| colspan="undefined" |প্রতিফলন নিজে দেখা যায় না, প্রতিফলিত আলো দেখা যায়।
| colspan="undefined" |প্রতিবিম্ব স্পষ্টভাবে দেখা যায় (যেমন- আয়নায় নিজের মুখ)।
|-
| colspan="undefined" |'''অবস্থান'''
| colspan="undefined" |প্রতিফলক পৃষ্ঠের (যেমন- আয়না) ওপর ঘটে।
| colspan="undefined" |আয়নার পেছনে বা সামনে গঠিত হয়।
|-
| colspan="undefined" |'''প্রকারভেদ'''
| colspan="undefined" |নিয়মিত ও ব্যাপ্ত (diffused) প্রতিফলন।
| colspan="undefined" |বাস্তব (real) ও অবাস্তব (virtual) প্রতিবিম্ব।
|}
lesg2i3021x498t0nrhocd07jmgw5a9
মডিউল:আভিধানিক উপাত্ত/i18n
828
148710
508150
507955
2026-04-23T13:17:19Z
Redmin
6857
+
508150
Scribunto
text/plain
local p = {}
p['wikipedia'] = 'bnwiki'
p['content_lang_name'] = 'বাংলা'
p['content_lang_code'] = 'bn'
p['heading_etymology'] = 'ব্যুৎপত্তি'
p['heading_pronunciation'] = 'উচ্চারণ'
p['heading_translation'] = 'অনুবাদ'
p['heading_references'] = 'তথ্যসূত্র'
p['heading_external_links'] = 'বহিঃসংযোগ'
p['heading_alternative_spellings'] = 'বিকল্প বানান'
p['heading_inflection_table'] = 'বিভক্তির সারণী'
p['heading_form'] = 'রূপ'
p['heading_grammatical_features'] = 'ব্যাকরণিক বৈশিষ্ট্য'
p['heading_image'] = 'চিত্র'
p['text_instance_of'] = 'একটি'
p['text_audio'] = 'অডিও'
p['text_iso15919'] = 'আইএসও ১৫৯১৯:'
p['text_itrans'] = 'ITRANS:'
p['text_iast'] = 'আইএএসটি:'
p['text_xsampa'] = 'এক্স-সাম্পা কোড:'
p['text_syllable_count'] = 'অক্ষর সংখ্যা:'
p['template_lexeme'] = 'উইকিউপাত্ত লেক্সিম' -- Q81739987
p['template_wikipedia'] = 'উইকিপিডিয়া' -- Q6275256
p['template_audio'] = 'অডিও ভাষার নাম' -- Q138620346
p['template_anchor'] = 'anchor' -- Q5412976
p['template_rfdef'] = 'rfdef' -- Q30733154
p['template_ipa'] = 'আধ্বব ভাষার নাম' -- Q138608718
p['template_trans-top'] = 'অনুবাদ-শীর্ষ' -- Q30528422
p['template_trans-bottom'] = 'অনুবাদ-নিচ' -- Q30528419
p['template_antonym'] = 'বিপরীতার্থক' -- Q35305357
p['template_synonym'] = 'synonyms' -- Q32751230
p['template_hypernym'] = 'hypernyms' -- Q35305454
p['template_demonym-noun'] = 'demonym-noun' -- Q130360250
p['template_demonym-adj'] = 'demonym-adj' -- Q135184225
p['template_homophones'] = 'সমোচ্চারিত' -- Q30557565
p['noun_template_suffix'] = '-noun'
p['noun_template_suffix_fallback'] = '-বিশেষ্য'
p['proper noun_template_suffix'] = '-proper noun'
p['proper noun_template_suffix_fallback'] = '-নামবাচক বিশেষ্য'
p['verb_template_suffix'] = '-verb'
p['verb_template_suffix_fallback'] = '-ক্রিয়া'
p['manual_category'] = {'বিষয়শ্রেণী', 'category'}
p['manual_etymology'] = {'ব্যুৎপত্তি', 'etymology'}
p['manual_pronunciation'] = {'উচ্চারণ', 'pronunciation'}
p['manual_meaning'] = {'অর্থ', 'meaning'}
p['manual_reference'] = {'তথ্যসূত্র', 'reference'}
p['manual_external_link'] = {'বহিঃসংযোগ', 'external_link'}
p['etymology_borrowing'] = '$1 থেকে ঋণকৃত'
p['etymology_learned_borrowing'] = '$1 থেকে শিক্ষিতভাবে ঋণকৃত'
p['etymology_inheritance'] = '$1 থেকে আগত'
p['edit_wikidata'] = 'উইকিউপাত্তে সম্পাদনা করুন'
-- বিষয়শ্রেণী যেগুলো অন্য উইকিঅভিধানে আছে
p['category_rfdef'] = 'ভাষা অনুযায়ী সংজ্ঞার জন্য অনুরোধ' -- Q33129136
p['category_rfdef_equivalent'] = 'শব্দার্থের বাংলা মানের অনুরোধ' -- [[:wikt:en:Category:Requests for English equivalent term by language]]-এর কাছাকাছি
p['category_rfref'] = {
['_'] = 'ভাষা অনুযায়ী তথ্যসূত্রের জন্য অনুরোধ', -- Q121206294
['Q9610'] = 'তথ্যসূত্রহীন বাংলা শব্দ', -- [[:wikt:en:Category:Requests for references for Bengali terms]]
['Q6400661'] = 'তথ্যসূত্রহীন খরিয়া থার শব্দ',
}
p['category_given_names'] = 'প্রদত্ত নাম' -- Q8492384
-- বিষয়শ্রেণী যেগুলো অন্য উইকিঅভিধানে নেই
p['text_category_rfdef'] = 'এই শব্দের লেক্সিমে অর্থ প্রয়োজন। দয়া করে লেক্সিম পাতায় গিয়ে একটি অর্থ যোগ করুন, যাতে অন্য পাঠকরা জানতে পারবে এটা মানে কি।'
function p.tocatlink(str)
return '[[বিষয়শ্রেণী:' .. str .. ']]'
end
function p.lang_category(lex_cat, language)
local cat_text = p.tocatlink(language .. ' লেমা')
cat_text = cat_text .. p.tocatlink(language .. ' ' .. lex_cat)
return cat_text
end
return p
5ndzr91uvdmblzsgof2j8ocfyteinmy
মডিউল:আভিধানিক উপাত্ত/Q9610
828
148717
508174
502679
2026-04-24T10:25:22Z
Redmin
6857
Z33244 ব্যবহারের ফলে এখন আর দরকার নেই এমন কোড অপসারণ করছি
508174
Scribunto
text/plain
local p = {}
local bn_verb_item_mappings = {
["Q1350145"] = "vn_nom",
["Q21714344_Q3910936"] = "pres_simp_1",
["Q3910936_Q56650487"] = "pres_simp_2s",
["Q3910936_Q56650485"] = "pres_simp_2t",
["Q3910936_Q51929074"] = "pres_simp_3",
["Q3910936_Q56650512"] = "pres_simp_hon",
["Q21714344_Q7240943_Q75242466"] = "pres_prog_1_chalit",
["Q20613396_Q21714344_Q7240943"] = "pres_prog_1_sadhu",
["Q56650487_Q7240943_Q75242466"] = "pres_prog_2s_chalit",
["Q20613396_Q56650487_Q7240943"] = "pres_prog_2s_sadhu",
["Q56650485_Q7240943_Q75242466"] = "pres_prog_2t_chalit",
["Q20613396_Q56650485_Q7240943"] = "pres_prog_2t_sadhu",
["Q51929074_Q7240943_Q75242466"] = "pres_prog_3_chalit",
["Q20613396_Q51929074_Q7240943"] = "pres_prog_3_sadhu",
["Q56650512_Q7240943_Q75242466"] = "pres_prog_hon_chalit",
["Q20613396_Q56650512_Q7240943"] = "pres_prog_hon_sadhu",
["Q1240211_Q21714344_Q75242466"] = "pres_perf_1_chalit",
["Q1240211_Q20613396_Q21714344"] = "pres_perf_1_sadhu",
["Q1240211_Q56650487_Q75242466"] = "pres_perf_2s_chalit",
["Q1240211_Q20613396_Q56650487"] = "pres_perf_2s_sadhu",
["Q1240211_Q56650485_Q75242466"] = "pres_perf_2t_chalit",
["Q1240211_Q20613396_Q56650485"] = "pres_perf_2t_sadhu",
["Q1240211_Q51929074_Q75242466"] = "pres_perf_3_chalit",
["Q1240211_Q20613396_Q51929074"] = "pres_perf_3_sadhu",
["Q1240211_Q56650512_Q75242466"] = "pres_perf_hon_chalit",
["Q1240211_Q20613396_Q56650512"] = "pres_perf_hon_sadhu",
["Q52434162_Q56650487"] = "pres_imp_2s",
["Q52434162_Q56650485"] = "pres_imp_2t",
["Q51929074_Q52434162_Q75242466"] = "pres_imp_3_chalit",
["Q20613396_Q51929074_Q52434162"] = "pres_imp_3_sadhu",
["Q52434162_Q56650512_Q75242466"] = "pres_imp_hon_chalit",
["Q20613396_Q52434162_Q56650512"] = "pres_imp_hon_sadhu",
["Q1392475_Q21714344_Q75242466"] = "past_simp_1_chalit",
["Q1392475_Q20613396_Q21714344"] = "past_simp_1_sadhu",
["Q1392475_Q56650487_Q75242466"] = "past_simp_2s_chalit",
["Q1392475_Q20613396_Q56650487"] = "past_simp_2s_sadhu",
["Q1392475_Q56650485_Q75242466"] = "past_simp_2t_chalit",
["Q1392475_Q20613396_Q56650485"] = "past_simp_2t_sadhu",
["Q1392475_Q51929074_Q75242466"] = "past_simp_3_chalit",
["Q1392475_Q20613396_Q51929074"] = "past_simp_3_sadhu",
["Q1392475_Q56650512_Q75242466"] = "past_simp_hon_chalit",
["Q1392475_Q20613396_Q56650512"] = "past_simp_hon_sadhu",
["Q21714344_Q56650537_Q75242466"] = "past_prog_1_chalit",
["Q20613396_Q21714344_Q56650537"] = "past_prog_1_sadhu",
["Q56650487_Q56650537_Q75242466"] = "past_prog_2s_chalit",
["Q20613396_Q56650487_Q56650537"] = "past_prog_2s_sadhu",
["Q56650485_Q56650537_Q75242466"] = "past_prog_2t_chalit",
["Q20613396_Q56650485_Q56650537"] = "past_prog_2t_sadhu",
["Q51929074_Q56650537_Q75242466"] = "past_prog_3_chalit",
["Q20613396_Q51929074_Q56650537"] = "past_prog_3_sadhu",
["Q56650512_Q56650537_Q75242466"] = "past_prog_hon_chalit",
["Q20613396_Q56650512_Q56650537"] = "past_prog_hon_sadhu",
["Q21714344_Q623742_Q75242466"] = "past_perf_1_chalit",
["Q20613396_Q21714344_Q623742"] = "past_perf_1_sadhu",
["Q56650487_Q623742_Q75242466"] = "past_perf_2s_chalit",
["Q20613396_Q56650487_Q623742"] = "past_perf_2s_sadhu",
["Q56650485_Q623742_Q75242466"] = "past_perf_2t_chalit",
["Q20613396_Q56650485_Q623742"] = "past_perf_2t_sadhu",
["Q51929074_Q623742_Q75242466"] = "past_perf_3_chalit",
["Q20613396_Q51929074_Q623742"] = "past_perf_3_sadhu",
["Q56650512_Q623742_Q75242466"] = "past_perf_hon_chalit",
["Q20613396_Q56650512_Q623742"] = "past_perf_hon_sadhu",
["Q21714344_Q75242466_Q75243920"] = "hab_1_chalit",
["Q20613396_Q21714344_Q75243920"] = "hab_1_sadhu",
["Q56650487_Q75242466_Q75243920"] = "hab_2s_chalit",
["Q20613396_Q56650487_Q75243920"] = "hab_2s_sadhu",
["Q56650485_Q75242466_Q75243920"] = "hab_2t_chalit",
["Q20613396_Q56650485_Q75243920"] = "hab_2t_sadhu",
["Q51929074_Q75242466_Q75243920"] = "hab_3_chalit",
["Q20613396_Q51929074_Q75243920"] = "hab_3_sadhu",
["Q56650512_Q75242466_Q75243920"] = "hab_hon_chalit",
["Q20613396_Q56650512_Q75243920"] = "hab_hon_sadhu",
["Q21714344_Q75242466_Q96323395"] = "fut_simp_1_chalit",
["Q20613396_Q21714344_Q96323395"] = "fut_simp_1_sadhu",
["Q56650487_Q75242466_Q96323395"] = "fut_simp_2s_chalit",
["Q20613396_Q56650487_Q96323395"] = "fut_simp_2s_sadhu",
["Q56650485_Q75242466_Q96323395"] = "fut_simp_2t_chalit",
["Q20613396_Q56650485_Q96323395"] = "fut_simp_2t_sadhu",
["Q51929074_Q75242466_Q96323395"] = "fut_simp_3_chalit",
["Q20613396_Q51929074_Q96323395"] = "fut_simp_3_sadhu",
["Q56650512_Q75242466_Q96323395"] = "fut_simp_hon_chalit",
["Q20613396_Q56650512_Q96323395"] = "fut_simp_hon_sadhu",
["Q56650487_Q75242466_Q75244800"] = "fut_imp_2s_chalit",
["Q20613396_Q56650487_Q75244800"] = "fut_imp_2s_sadhu",
["Q56650485_Q75242466_Q75244800"] = "fut_imp_2t_chalit",
["Q20613396_Q56650485_Q75244800"] = "fut_imp_2t_sadhu",
["Q51929074_Q75242466_Q75244800"] = "fut_imp_3_chalit",
["Q20613396_Q51929074_Q75244800"] = "fut_imp_3_sadhu",
["Q56650512_Q75242466_Q75244800"] = "fut_imp_hon_chalit",
["Q20613396_Q56650512_Q75244800"] = "fut_imp_hon_sadhu",
["Q1050494_Q1423674_Q75242466"] = "prog_chalit",
["Q1050494_Q1423674_Q20613396"] = "prog_sadhu",
["Q1050494_Q1424306_Q75242466"] = "perf_chalit",
["Q1050494_Q1424306_Q20613396"] = "perf_sadhu",
["Q1050494_Q625581_Q75242466"] = "cond_chalit",
["Q1050494_Q20613396_Q625581"] = "cond_sadhu",
["Q1350145_Q146233_Q75242466"] = "vn_gen_chalit",
["Q1350145_Q146233_Q20613396"] = "vn_gen_sadhu"
}
function conj_table_arguments ( current_lexeme )
local forms = {}
for i, form in pairs(current_lexeme:getForms()) do
local reps = form:getRepresentations()
local feats = form:getGrammaticalFeatures()
table.sort(form:getGrammaticalFeatures())
local feats_cat = table.concat(feats,'_')
local table_arg = bn_verb_item_mappings[feats_cat]
if table_arg ~= nil then
if forms[table_arg] ~= nil then
forms[table_arg] = forms[table_arg] .. '/' .. reps[1][1]
else
forms[table_arg] = reps[1][1]
end
end
end
return forms
end
function getConjTable ( frame , current_lexeme )
return frame:expandTemplate{
title= 'bn-ধাতুরূপ/ছক',
args = conj_table_arguments ( current_lexeme )
}
end
function p.getInflectionTable ( frame , current_lexeme )
local conjTable = getConjTable( frame, current_lexeme )
return conjTable
end
return p
kywlph3l2d8cnkmgdlx8kq1mx8q6zdg
508175
508174
2026-04-24T11:54:11Z
Redmin
6857
508175
Scribunto
text/plain
local p = {}
local bn_verb_item_mappings = {
["Q1350145"] = "vn_nom",
["Q21714344_Q3910936"] = "pres_simp_1",
["Q3910936_Q56650487"] = "pres_simp_2s",
["Q3910936_Q56650485"] = "pres_simp_2t",
["Q3910936_Q51929074"] = "pres_simp_3",
["Q3910936_Q56650512"] = "pres_simp_hon",
["Q21714344_Q7240943_Q75242466"] = "pres_prog_1_chalit",
["Q20613396_Q21714344_Q7240943"] = "pres_prog_1_sadhu",
["Q56650487_Q7240943_Q75242466"] = "pres_prog_2s_chalit",
["Q20613396_Q56650487_Q7240943"] = "pres_prog_2s_sadhu",
["Q56650485_Q7240943_Q75242466"] = "pres_prog_2t_chalit",
["Q20613396_Q56650485_Q7240943"] = "pres_prog_2t_sadhu",
["Q51929074_Q7240943_Q75242466"] = "pres_prog_3_chalit",
["Q20613396_Q51929074_Q7240943"] = "pres_prog_3_sadhu",
["Q56650512_Q7240943_Q75242466"] = "pres_prog_hon_chalit",
["Q20613396_Q56650512_Q7240943"] = "pres_prog_hon_sadhu",
["Q1240211_Q21714344_Q75242466"] = "pres_perf_1_chalit",
["Q1240211_Q20613396_Q21714344"] = "pres_perf_1_sadhu",
["Q1240211_Q56650487_Q75242466"] = "pres_perf_2s_chalit",
["Q1240211_Q20613396_Q56650487"] = "pres_perf_2s_sadhu",
["Q1240211_Q56650485_Q75242466"] = "pres_perf_2t_chalit",
["Q1240211_Q20613396_Q56650485"] = "pres_perf_2t_sadhu",
["Q1240211_Q51929074_Q75242466"] = "pres_perf_3_chalit",
["Q1240211_Q20613396_Q51929074"] = "pres_perf_3_sadhu",
["Q1240211_Q56650512_Q75242466"] = "pres_perf_hon_chalit",
["Q1240211_Q20613396_Q56650512"] = "pres_perf_hon_sadhu",
["Q52434162_Q56650487"] = "pres_imp_2s",
["Q52434162_Q56650485"] = "pres_imp_2t",
["Q51929074_Q52434162_Q75242466"] = "pres_imp_3_chalit",
["Q20613396_Q51929074_Q52434162"] = "pres_imp_3_sadhu",
["Q52434162_Q56650512_Q75242466"] = "pres_imp_hon_chalit",
["Q20613396_Q52434162_Q56650512"] = "pres_imp_hon_sadhu",
["Q1392475_Q21714344_Q75242466"] = "past_simp_1_chalit",
["Q1392475_Q20613396_Q21714344"] = "past_simp_1_sadhu",
["Q1392475_Q56650487_Q75242466"] = "past_simp_2s_chalit",
["Q1392475_Q20613396_Q56650487"] = "past_simp_2s_sadhu",
["Q1392475_Q56650485_Q75242466"] = "past_simp_2t_chalit",
["Q1392475_Q20613396_Q56650485"] = "past_simp_2t_sadhu",
["Q1392475_Q51929074_Q75242466"] = "past_simp_3_chalit",
["Q1392475_Q20613396_Q51929074"] = "past_simp_3_sadhu",
["Q1392475_Q56650512_Q75242466"] = "past_simp_hon_chalit",
["Q1392475_Q20613396_Q56650512"] = "past_simp_hon_sadhu",
["Q21714344_Q56650537_Q75242466"] = "past_prog_1_chalit",
["Q20613396_Q21714344_Q56650537"] = "past_prog_1_sadhu",
["Q56650487_Q56650537_Q75242466"] = "past_prog_2s_chalit",
["Q20613396_Q56650487_Q56650537"] = "past_prog_2s_sadhu",
["Q56650485_Q56650537_Q75242466"] = "past_prog_2t_chalit",
["Q20613396_Q56650485_Q56650537"] = "past_prog_2t_sadhu",
["Q51929074_Q56650537_Q75242466"] = "past_prog_3_chalit",
["Q20613396_Q51929074_Q56650537"] = "past_prog_3_sadhu",
["Q56650512_Q56650537_Q75242466"] = "past_prog_hon_chalit",
["Q20613396_Q56650512_Q56650537"] = "past_prog_hon_sadhu",
["Q21714344_Q623742_Q75242466"] = "past_perf_1_chalit",
["Q20613396_Q21714344_Q623742"] = "past_perf_1_sadhu",
["Q56650487_Q623742_Q75242466"] = "past_perf_2s_chalit",
["Q20613396_Q56650487_Q623742"] = "past_perf_2s_sadhu",
["Q56650485_Q623742_Q75242466"] = "past_perf_2t_chalit",
["Q20613396_Q56650485_Q623742"] = "past_perf_2t_sadhu",
["Q51929074_Q623742_Q75242466"] = "past_perf_3_chalit",
["Q20613396_Q51929074_Q623742"] = "past_perf_3_sadhu",
["Q56650512_Q623742_Q75242466"] = "past_perf_hon_chalit",
["Q20613396_Q56650512_Q623742"] = "past_perf_hon_sadhu",
["Q21714344_Q75242466_Q75243920"] = "hab_1_chalit",
["Q20613396_Q21714344_Q75243920"] = "hab_1_sadhu",
["Q56650487_Q75242466_Q75243920"] = "hab_2s_chalit",
["Q20613396_Q56650487_Q75243920"] = "hab_2s_sadhu",
["Q56650485_Q75242466_Q75243920"] = "hab_2t_chalit",
["Q20613396_Q56650485_Q75243920"] = "hab_2t_sadhu",
["Q51929074_Q75242466_Q75243920"] = "hab_3_chalit",
["Q20613396_Q51929074_Q75243920"] = "hab_3_sadhu",
["Q56650512_Q75242466_Q75243920"] = "hab_hon_chalit",
["Q20613396_Q56650512_Q75243920"] = "hab_hon_sadhu",
["Q21714344_Q75242466_Q96323395"] = "fut_simp_1_chalit",
["Q20613396_Q21714344_Q96323395"] = "fut_simp_1_sadhu",
["Q56650487_Q75242466_Q96323395"] = "fut_simp_2s_chalit",
["Q20613396_Q56650487_Q96323395"] = "fut_simp_2s_sadhu",
["Q56650485_Q75242466_Q96323395"] = "fut_simp_2t_chalit",
["Q20613396_Q56650485_Q96323395"] = "fut_simp_2t_sadhu",
["Q51929074_Q75242466_Q96323395"] = "fut_simp_3_chalit",
["Q20613396_Q51929074_Q96323395"] = "fut_simp_3_sadhu",
["Q56650512_Q75242466_Q96323395"] = "fut_simp_hon_chalit",
["Q20613396_Q56650512_Q96323395"] = "fut_simp_hon_sadhu",
["Q56650487_Q75242466_Q75244800"] = "fut_imp_2s_chalit",
["Q20613396_Q56650487_Q75244800"] = "fut_imp_2s_sadhu",
["Q56650485_Q75242466_Q75244800"] = "fut_imp_2t_chalit",
["Q20613396_Q56650485_Q75244800"] = "fut_imp_2t_sadhu",
["Q51929074_Q75242466_Q75244800"] = "fut_imp_3_chalit",
["Q20613396_Q51929074_Q75244800"] = "fut_imp_3_sadhu",
["Q56650512_Q75242466_Q75244800"] = "fut_imp_hon_chalit",
["Q20613396_Q56650512_Q75244800"] = "fut_imp_hon_sadhu",
["Q1050494_Q1423674_Q75242466"] = "prog_chalit",
["Q1050494_Q1423674_Q20613396"] = "prog_sadhu",
["Q1050494_Q1424306_Q75242466"] = "perf_chalit",
["Q1050494_Q1424306_Q20613396"] = "perf_sadhu",
["Q1050494_Q625581_Q75242466"] = "cond_chalit",
["Q1050494_Q20613396_Q625581"] = "cond_sadhu",
["Q1350145_Q146233_Q75242466"] = "vn_gen_chalit",
["Q1350145_Q146233_Q20613396"] = "vn_gen_sadhu"
}
function conj_table_arguments ( lex_forms )
local forms = {}
for i, form in pairs(lex_forms) do
local reps = form:getRepresentations()
local feats = form:getGrammaticalFeatures()
table.sort(form:getGrammaticalFeatures())
local feats_cat = table.concat(feats,'_')
local table_arg = bn_verb_item_mappings[feats_cat]
if table_arg ~= nil then
if forms[table_arg] ~= nil then
forms[table_arg] = forms[table_arg] .. '/' .. reps[1][1]
else
forms[table_arg] = reps[1][1]
end
end
end
return forms
end
function p.getConjTable ( frame, forms )
return frame:expandTemplate{
title= 'bn-ধাতুরূপ/ছক',
args = conj_table_arguments ( forms )
}
end
return p
qe1qpm6ig7qu3v5m4bvr0h973o7akd2
يومئذ
0
167511
508161
2026-04-24T09:21:41Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L1563631-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
508161
wikitext
text/x-wiki
{{লে|L1563631}}
60ze36oqd1vlola97egldgysluhxxkt
508162
508161
2026-04-24T09:21:57Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L1563632-এর সাথে সংযোগ তৈরি করছি
508162
wikitext
text/x-wiki
{{লে|L1563631}}
{{লে|L1563632}}
mfkvkbb31ods5fj86wq4uivqqa6a8oq
508166
508162
2026-04-24T09:30:17Z
Redmin
6857
508166
wikitext
text/x-wiki
{{লে|L1563631}}
{{লে|L1563632|0}}
02kybj22ficjtm2vpcx184jocrqut1y
नैतिकता
0
167512
508169
2026-04-24T10:00:45Z
Sabah Azman Nahean
12022
"== হিন্দি == === ব্যুৎপত্তি === [[नैतिक]] (''naitik'') + [[-ता]] (''-tā'') থেকে আগত। === উচ্চারণ === * (Standard Hindi) IPA<sup>(key)</sup>: /nɛː.t̪ɪk.t̪ɑː/, [nɛː.t̪ɪk.t̪äː] === বিশেষ্য === '''नैतिकता''' • (naitiktā) ''<abbr>f</abbr>'' # [[নৈতিকতা]] === তথ্যসূত্র === * McGregor, Ronald..." দিয়ে পাতা তৈরি
508169
wikitext
text/x-wiki
== হিন্দি ==
=== ব্যুৎপত্তি ===
[[नैतिक]] (''naitik'') + [[-ता]] (''-tā'') থেকে আগত।
=== উচ্চারণ ===
* (Standard Hindi) IPA<sup>(key)</sup>: /nɛː.t̪ɪk.t̪ɑː/, [nɛː.t̪ɪk.t̪äː]
=== বিশেষ্য ===
'''नैतिकता''' • (naitiktā) ''<abbr>f</abbr>''
# [[নৈতিকতা]]
=== তথ্যসূত্র ===
* McGregor, Ronald Stuart (1993), “नैतिकता”, in , London: Oxford University Press, page 581
* Bahri, Hardev (1989), “नैतिकता”, in [], Delhi: Rajpal & Sons, page 360.
dqf9hujthk08ul16mz9uel0gksrhwhs
नैतिक
0
167513
508170
2026-04-24T10:01:45Z
Sabah Azman Nahean
12022
"==হিন্দি== ===ব্যুৎপত্তি=== {{ety|hi|:af|नीत|-इक|tree=1}} {{sa-af|hi|नीत|-इक}}. Compare {{m|hi|नीति|t=policy, ethics}}. ===উচ্চারণ=== * {{hi-IPA}} ===বিশেষণ=== {{hi-adj|ind=1}} # [[নৈতিক]] ====আগত পদ==== {{col3|hi|अनैतिक|अनैतिकता|नैतिकता|नैतिकभावना|कूटनैतिक}}" দিয়ে পাতা তৈরি
508170
wikitext
text/x-wiki
==হিন্দি==
===ব্যুৎপত্তি===
{{ety|hi|:af|नीत|-इक|tree=1}}
{{sa-af|hi|नीत|-इक}}. Compare {{m|hi|नीति|t=policy, ethics}}.
===উচ্চারণ===
* {{hi-IPA}}
===বিশেষণ===
{{hi-adj|ind=1}}
# [[নৈতিক]]
====আগত পদ====
{{col3|hi|अनैतिक|अनैतिकता|नैतिकता|नैतिकभावना|कूटनैतिक}}
qzdwjtncyddvbwqh6qpft7l4tyxc47s
508171
508170
2026-04-24T10:03:22Z
Sabah Azman Nahean
12022
/* হিন্দি */
508171
wikitext
text/x-wiki
==হিন্দি==
===ব্যুৎপত্তি===
{{sa-af|hi|नीत|-इक}} থেকে আগত।{{m|hi|नीति|t=নীতি, নৈতিকতা}} এর সাথে তুলনা করুন।
===উচ্চারণ===
* {{hi-IPA}}
===বিশেষণ===
'''नैतिक • (নৈতিক)''' (indeclinable)
# [[নৈতিক]]
====আগত পদ====
{{col3|hi|अनैतिक|अनैतिकता|नैतिकता|नैतिकभावना|कूटनैतिक}}
d0fam6n1kwdhl7t38cywdo0o0e3sijc