উইকিঅভিধান 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.23 case-sensitive মিডিয়া বিশেষ আলাপ ব্যবহারকারী ব্যবহারকারী আলাপ উইকিঅভিধান উইকিঅভিধান আলোচনা চিত্র চিত্র আলোচনা মিডিয়াউইকি মিডিয়াউইকি আলোচনা টেমপ্লেট টেমপ্লেট আলোচনা সাহায্য সাহায্য আলোচনা বিষয়শ্রেণী বিষয়শ্রেণী আলোচনা পরিশিষ্ট পরিশিষ্ট আলোচনা ছন্দ ছন্দ আলোচনা থিসরাস থিসরাস আলোচনা উদ্ধৃতি উদ্ধৃতি আলোচনা TimedText TimedText talk মডিউল মডিউল আলাপ Event Event talk 0 2043 507663 302307 2026-04-10T17:25:41Z ~2026-22115-25 14597 /* ভূমিকা */শধন্ 507663 wikitext text/x-wiki {{Bengali character info}} ==ভূমিকা== বাংলা বর্ণমালার নবম ব্যঞ্জনবর্ণ। === উচ্চারণ === * {{অডিও|bn|LL-Q9610 (ben)-Titodutta-ঝ.wav|অডিও}} === বর্ণনা === চ-বর্গের চতুর্থ বর্ণ। ==== ব্যবহার ==== ====বৈশিষ্ট্য==== এটি প্রশস্ত দন্তমূলীয়; মহাপ্রাণ; ঘোষ স্পর্শধ্বনিঝফ। ===উদাহরণ=== [[ঝগড়া]], [[ঝামেলা]], [[ঝড়]], [[ঝাড়ু]], [[ঝাপটা]] [[বিষয়শ্রেণী:বাংলা ব্যঞ্জনবর্ণ]] p9ad8huxmj43p4kutaq1ffm1pwcpff6 507664 507663 2026-04-10T17:26:20Z Redmin 6857 [[Special:Contributions/~2026-22115-25|~2026-22115-25]] ([[User talk:~2026-22115-25|আলাপ]])-এর সম্পাদিত [[Special:Diff/507663|507663]] নম্বর সংশোধনটি বাতিল করা হয়েছে 507664 wikitext text/x-wiki {{Bengali character info}} ==ভূমিকা== বাংলা বর্ণমালার নবম ব্যঞ্জনবর্ণ। === উচ্চারণ === * {{অডিও|bn|LL-Q9610 (ben)-Titodutta-ঝ.wav|অডিও}} === বর্ণনা === চ-বর্গের চতুর্থ বর্ণ। ==== ব্যবহার ==== ====বৈশিষ্ট্য==== এটি প্রশস্ত দন্তমূলীয়; মহাপ্রাণ; ঘোষ স্পর্শধ্বনি। ===উদাহরণ=== [[ঝগড়া]], [[ঝামেলা]], [[ঝড়]], [[ঝাড়ু]], [[ঝাপটা]] [[বিষয়শ্রেণী:বাংলা ব্যঞ্জনবর্ণ]] 5209iq9gorsxbfgswdbfz6wealdi5gr টেমপ্লেট:documentation/core 10 2986 507710 64841 2026-04-11T05:12:51Z Redmin 6857 507710 wikitext text/x-wiki <includeonly><!-- Start of green doc box --><div id="template-documentation" class="template-documentation iezoomfix"><!-- Add the heading at the top of the doc box: -->{{#ifeq: {{{heading|¬}}} | <!--Defined but empty--> | <!--"heading=", do nothing--> | <div style="padding-bottom: 3px; border-bottom: 1px solid #aaa; margin-bottom: 1ex;">{{ #if: {{{content|}}} | | <!--Add the [edit][purge] or [create] links--> <span class="editsection plainlinks" id="doc_editlinks">{{ #if: {{{doc exist|yes}}} | [[{{fullurl:{{{docpage|{{FULLPAGENAME}}/নথি}}}|action=edit}} সম্পাদনা]] [{{purge|শোধন}}] | <!--/doc doesn't exist--> [[{{fullurl:{{{docpage|{{FULLPAGENAME}}/নথি}}}| action=edit&preload={{ #ifeq: {{SUBJECTSPACE}} | {{ns:File}} | Template:নথি/প্রাকলোড-ফাইল | Template:নথি/প্রাকলোড }} }} তৈরি করুন]] }}</span> }} <span style="{{#if: {{{heading-style|}}} | {{{heading-style|}}} | {{#ifeq: {{SUBJECTSPACE}} | {{ns:Template}} | font-weight: bold; font-size: 125% | font-size: 150% }} }}">{{#switch: {{{heading|¬}}} | ¬ = <!--"heading" not defined in this or previous level--> {{#switch: {{SUBJECTSPACE}} | {{ns:Template}} = [[Image:Template-info.svg|50px|alt=|link=]] টেমপ্লেট নথি | {{ns:File}} = সারাংশ | #default = নথি }} | #default = <!--"heading" has data or is empty but defined--> {{{heading|}}} }}</span></div> }}<!-- Load the /doc content: Note: The line breaks between this comment and the if-case and between the if-case and the following div are necessary so "=== Headings ===" at the start and end of docs are interpreted. --> {{#if: {{{content|}}} | {{{content|}}} | {{#if: {{{doc exist|yes}}} | {{ {{{docpage|{{FULLPAGENAME}}/নথি}}} }} }} }} <div style="clear: both;"></div><!--So right or left floating items don't stick out of the doc box.--> </div><!--End of green doc box--><!-- Link box below for the doc meta-data: -->{{#if: <!--Check if we should show the link box--> {{#ifeq: {{{link box|}}} | off | | {{{doc exist|yes}}}{{ #switch: {{SUBJECTSPACE}} | {{ns:User}} | {{ns:Template}} = yes }} }} | {{fmbox | id = documentation-meta-data | image = none | style = background-color: #ecfcf4; | textstyle = font-style: italic; | text = {{#if: {{{link box|}}} | {{{link box}}} <!--Use custom link box content--> | {{#if: {{{doc exist|yes}}} | <!--/doc exists, link to it--> উপরের টেমপ্লেট নথিটি {{lang||[[{{{docpage|{{FULLPAGENAME}}/নথি}}}]]}} পাতা থেকে প্রতিলিপ্ত। ([{{fullurl:{{{docpage|{{FULLPAGENAME}}/নথি}}}|action=edit}} সম্পাদনা] &#124; [{{fullurl:{{{docpage|{{FULLPAGENAME}}/নথি}}}|action=history}} ইতিহাস]) <br> }}<!-- Add links to /sandbox and /testcases when appropriate: -->{{#switch: {{SUBJECTSPACE}} | {{ns:User}} | {{ns:Template}} = ব্যবহারকারীগণ {{ #ifexist: {{{sandbox| {{FULLPAGENAME}}/sandbox }}} | [[{{{sandbox| {{FULLPAGENAME}}/sandbox }}}|খেলাঘরে]] ([{{fullurl: {{{sandbox| {{FULLPAGENAME}}/sandbox }}} | action=edit }} ''সম্পাদনা''] {{!}} [{{fullurl:Wikipedia:pagediff | withJS={{urlencode:MediaWiki:Common.js/pagediff.js}}&oldpage={{urlencode:{{{template page|{{FULLPAGENAME}}}}}}}&newpage={{urlencode:{{{sandbox|{{FULLPAGENAME}}/sandbox}}}}}}} ''পার্থক্য''] ) | খেলাঘর ([{{fullurl: {{{sandbox| {{FULLPAGENAME}}/sandbox }}} | action=edit&preload=Template:Documentation/preload-sandbox }} ''তৈরি করুন'']) }} ও {{ #ifexist: {{{testcases| {{FULLPAGENAME}}/testcases }}} | [[{{{testcases| {{FULLPAGENAME}}/testcases }}}|পরীক্ষা পাতায়]] ([{{fullurl: {{{testcases| {{FULLPAGENAME}}/testcases }}} | action=edit }} ''সম্পাদনা'']) | পরীক্ষা পাতায় ([{{fullurl: {{{testcases| {{FULLPAGENAME}}/testcases }}} | action=edit&preload=Template:Documentation/preload-testcases }} ''তৈরি করুন'']) }} এই টেমপ্লেট সংক্রান্ত পরীক্ষা-নিরীক্ষা করতে পারেন। <br> }}<!-- Show the cats and interwiki text, but not if "content" fed or "docname fed" since then it is unclear where to add the cats and interwikis. -->{{#if: {{{content|}}} {{{docname fed|}}} | | অনুগ্রহপূর্বক বিষয়শ্রেণী ও আন্তউইকি সংযোগসমূহ [[{{{docpage|{{FULLPAGENAME}}/নথি}}}|নথির]] উপপাতায় যোগ করুন। }}<!-- Show the "Subpages" link: -->{{#switch: {{SUBJECTSPACE}} | {{ns:File}} = <!--Don't show it--> | {{ns:Template}} = &#32;[[Special:PrefixIndex/{{{template page|{{FULLPAGENAME}}}}}/|এই টেমপ্লেটের উপপাতাসমূহ]]। | #default = &#32;[[Special:PrefixIndex/{{{template page|{{FULLPAGENAME}}}}}/|এই পাতার উপপাতাসমূহ]]। }} }}{{#ifexist:{{FULLPAGENAME}}/মুদ্রণ |<br />এই টেমপ্লেটের একটি [[সাহায্য:বই/অভিজ্ঞদের জন্য#বইয়ের বিন্যাসের উৎকর্ষসাধন করা|মুদ্রণ সংস্করণ]] [[/মুদ্রণ]]-এ বিদ্যমান। আপনি যদি এই টেমপ্লেটে পরিবর্তন করেন, তাহলে সেইসাথে মুদ্রণ সংস্করণ হালনাগাদ করুন করুন। [[Category:মুদ্রণ সংস্করণসহ টেমপ্লেট]] }} }} }}<!--End link box--> </includeonly><!-- Detect and report strange usage: -->{{#if: <!--Check if {{documentation}} is transcluded on a /doc or /testcases page--> {{#switch: {{SUBPAGENAME}} | doc | testcases = strange }} <!--More checks can be added here, just return anything to make the surrounding if-case trigger--> | <includeonly>[[Category:অদ্ভুত ব্যবহারের সাথে ((নথি)) উইকিঅভিধানের পাতা|{{main other|Main:}}{{FULLPAGENAME}}]]<!-- Sort on namespace --></includeonly> }}<noinclude> {{pp-template}} <!-- Add categories and interwikis to the /doc subpage, not here! --> </noinclude> 1fszpm97zfi36mkeyq3u7dlss4ndwjh অনুরোধ 0 10160 507637 265822 2026-04-10T16:56:58Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L1130702-এর সাথে সংযোগ তৈরি করছি 507637 wikitext text/x-wiki {{লে|L1130702}} dwfku2y60aact5e98bpxib2tqiqzrc8 টেমপ্লেট:trans-top 10 12116 507635 507041 2026-04-10T15:31:34Z Redmin 6857 507635 wikitext text/x-wiki {{#invoke:translations|top}}<noinclude> </table></div></div>{{documentation}}</noinclude> hp1na2dyhhbyhk1yhtdzd1hfhnnlkig day 0 14097 507628 80606 2026-04-10T14:44:41Z Redmin 6857 507628 wikitext text/x-wiki == {{ভাষা|en}} == ===বিশেষ্য=== {{en-বিশেষ্য}} # [[দিন]] # [[দিবস]] g9jqta9rmdu5hfgjhs2bm61efci4nh8 507630 507628 2026-04-10T15:00:17Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L1311-এর সাথে সংযোগ তৈরি করছি 507630 wikitext text/x-wiki {{লে|L1311}} qvsvjkr789ryfny6fhqecmoe6rdi65w মডিউল:আভিধানিক উপাত্ত 828 50158 507629 507543 2026-04-10T14:59:27Z Redmin 6857 507629 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 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, "آ", "ا") 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 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 getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved if #senses == 0 then return nil end local translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id))) end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations 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 ) 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 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 function getLinkedLemmata( current_lexeme ) local lemma_string = '' for i, rep in pairs(current_lexeme:getLemmas()) do if lemma_string == '' then lemma_string = termLink(rep) else lemma_string = lemma_string .. '/' .. termLink(rep) end end return lemma_string end 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 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 function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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 = base_form:getAllStatements('P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ -- @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} }) end --elseif #iso15919_transcription ~= 0 then -- table.insert(pronunciations, '* ') -- 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 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. cat .. frame:expandTemplate{ title=i18n['template_anchor'], args={lexeme_id} } .. '===' ) if lex_cat == 'Q34698' then -- বিশেষণ lex_cat_template = frame:expandTemplate{title=lang_code .. '-adj'} if lex_cat_template == nil then lex_cat_template = frame:expandTemplate{title=lang_code .. '-বিশেষণ'} end elseif lex_cat == 'Q1084' then lex_cat_template = frame:expandTemplate{title=lang_code .. '-noun'} if lex_cat_template == nil then lex_cat_template = frame:expandTemplate{title=lang_code .. '-বিশেষ্য'} end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end 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 local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end if lang_name == 'জার্মান' then -- @TODO: Remove this later table.insert(sections, '[[Category:যে ভুক্তিগুলোয় জার্মান শব্দের জন্য উইকিউপাত্ত লেক্সিমের তথ্য ব্যবহার করা হচ্ছে]]') end return table.concat(sections,"\n\n") end return p q18twllw6b7o1lm05pqrm22zeh3lisf 507633 507629 2026-04-10T15:25:36Z Redmin 6857 507633 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 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, "آ", "ا") 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 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved if #senses == 0 then return nil end local translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id))) end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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 = base_form:getAllStatements('P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ -- @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} }) end --elseif #iso15919_transcription ~= 0 then -- table.insert(pronunciations, '* ') -- 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 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. cat .. frame:expandTemplate{ title=i18n['template_anchor'], args={lexeme_id} } .. '===' ) if lex_cat == 'Q34698' then -- বিশেষণ lex_cat_template = frame:expandTemplate{title=lang_code .. '-adj'} if lex_cat_template == nil then lex_cat_template = frame:expandTemplate{title=lang_code .. '-বিশেষণ'} end elseif lex_cat == 'Q1084' then lex_cat_template = frame:expandTemplate{title=lang_code .. '-noun'} if lex_cat_template == nil then lex_cat_template = frame:expandTemplate{title=lang_code .. '-বিশেষ্য'} end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end 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 local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end if lang_name == 'জার্মান' then -- @TODO: Remove this later table.insert(sections, '[[Category:যে ভুক্তিগুলোয় জার্মান শব্দের জন্য উইকিউপাত্ত লেক্সিমের তথ্য ব্যবহার করা হচ্ছে]]') end return table.concat(sections,"\n\n") end return p t741s1vjpt8wbcrzf60b9fojp1a5w8t 507634 507633 2026-04-10T15:29:30Z Redmin 6857 507634 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 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, "آ", "ا") 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 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved if #senses == 0 then return nil end local translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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 = base_form:getAllStatements('P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ -- @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} }) end --elseif #iso15919_transcription ~= 0 then -- table.insert(pronunciations, '* ') -- 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 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. cat .. frame:expandTemplate{ title=i18n['template_anchor'], args={lexeme_id} } .. '===' ) if lex_cat == 'Q34698' then -- বিশেষণ lex_cat_template = frame:expandTemplate{title=lang_code .. '-adj'} if lex_cat_template == nil then lex_cat_template = frame:expandTemplate{title=lang_code .. '-বিশেষণ'} end elseif lex_cat == 'Q1084' then lex_cat_template = frame:expandTemplate{title=lang_code .. '-noun'} if lex_cat_template == nil then lex_cat_template = frame:expandTemplate{title=lang_code .. '-বিশেষ্য'} end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end 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 local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end if lang_name == 'জার্মান' then -- @TODO: Remove this later table.insert(sections, '[[Category:যে ভুক্তিগুলোয় জার্মান শব্দের জন্য উইকিউপাত্ত লেক্সিমের তথ্য ব্যবহার করা হচ্ছে]]') end return table.concat(sections,"\n\n") end return p dg3gjns8hthsez6ffmz11zylsxbhtcd 507636 507634 2026-04-10T15:49:52Z Redmin 6857 507636 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 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, "آ", "ا") 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) local success, result = pcall(function() return frame:expandTemplate{ title = title } 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved if #senses == 0 then return nil end local translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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 = base_form:getAllStatements('P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ -- @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} }) end --elseif #iso15919_transcription ~= 0 then -- table.insert(pronunciations, '* ') -- 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 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. cat .. frame:expandTemplate{ title = i18n['template_anchor'], args = { lexeme_id } } .. '===') 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 lex_cat_template = safeExpand(frame, lang_code .. '-noun') if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য') end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end 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 local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end if lang_name == 'জার্মান' then -- @TODO: Remove this later table.insert(sections, '[[Category:যে ভুক্তিগুলোয় জার্মান শব্দের জন্য উইকিউপাত্ত লেক্সিমের তথ্য ব্যবহার করা হচ্ছে]]') end return table.concat(sections,"\n\n") end return p hz7etozekajhpfnt0kzqvq0elgbgagz 507642 507636 2026-04-10T17:01:10Z Redmin 6857 507642 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 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, "آ", "ا") 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) local success, result = pcall(function() return frame:expandTemplate{ title = title } 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved if #senses == 0 then return nil end local translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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 = base_form:getAllStatements('P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ -- @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} }) end --elseif #iso15919_transcription ~= 0 then -- table.insert(pronunciations, '* ') -- 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 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. cat .. frame:expandTemplate{ title = i18n['template_anchor'], args = { lexeme_id } } .. '===') if lang_code ~= nil then 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 lex_cat_template = safeExpand(frame, lang_code .. '-noun') if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য') end end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end 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 local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end if lang_name == 'জার্মান' then -- @TODO: Remove this later table.insert(sections, '[[Category:যে ভুক্তিগুলোয় জার্মান শব্দের জন্য উইকিউপাত্ত লেক্সিমের তথ্য ব্যবহার করা হচ্ছে]]') end return table.concat(sections,"\n\n") end return p r66vohgwlsnpsqrb3lvu93msz6dcaiq 507668 507642 2026-04-10T17:28:50Z Redmin 6857 507668 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 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, "آ", "ا") 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) local success, result = pcall(function() return frame:expandTemplate{ title = title } 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved if #senses == 0 then return nil end local translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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 = base_form:getAllStatements('P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ -- @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} }) end --elseif #iso15919_transcription ~= 0 then -- table.insert(pronunciations, '* ') -- 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 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. cat .. frame:expandTemplate{ title = i18n['template_anchor'], args = { lexeme_id } } .. '===') if lang_code ~= nil then 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 lex_cat_template = safeExpand(frame, lang_code .. '-noun') if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য') end end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end 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 local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end return table.concat(sections,"\n\n") end return p ipr5dctvgw0p1boh3qdjvqo2y1zby9f 507675 507668 2026-04-11T00:21:59Z Redmin 6857 507675 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 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, "آ", "ا") 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved if #senses == 0 then return nil end local translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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 = base_form:getAllStatements('P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ -- @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} }) end --elseif #iso15919_transcription ~= 0 then -- table.insert(pronunciations, '* ') -- 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 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. cat .. frame:expandTemplate{ title = i18n['template_anchor'], args = { lexeme_id } } .. '===') if lang_code ~= nil then 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 local gender local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ if #stmts > 0 then local gender_qid = getEntity(stmts[1].mainsnak.datavalue.value.id) if gender_qid == 'Q499327' then -- @TODO: Add checks for every possible circumstance gender = 'm' elseif gender_qid == 'Q1775415' then gender = 'f' end end lex_cat_template = safeExpand(frame, lang_code .. '-noun', {gender}) if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য', {gender}) end end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end 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 local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end return table.concat(sections,"\n\n") end return p ls0cy1p3r3tio8103yiv1kgmkg9bf7d 507676 507675 2026-04-11T00:26:39Z Redmin 6857 507676 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 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, "آ", "ا") 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved if #senses == 0 then return nil end local translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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 = base_form:getAllStatements('P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ -- @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} }) end --elseif #iso15919_transcription ~= 0 then -- table.insert(pronunciations, '* ') -- 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 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. cat .. frame:expandTemplate{ title = i18n['template_anchor'], args = { lexeme_id } } .. '===') if lang_code ~= nil then 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 local gender local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ if #stmts ~= 0 then local gender_qid = getEntity(stmts[1].mainsnak.datavalue.value.id) if gender_qid == 'Q499327' then -- @TODO: Add checks for every possible circumstance gender = 'm' elseif gender_qid == 'Q1775415' then gender = 'f' end end lex_cat_template = safeExpand(frame, lang_code .. '-noun', {gender}) if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য', {gender}) end end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end 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 local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end return table.concat(sections,"\n\n") end return p 137wdj6ol2bhxlm37xtss1cxi26ijjd 507706 507676 2026-04-11T05:08:30Z Redmin 6857 +ব্যাকরণগত লিঙ্গ 507706 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 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, "آ", "ا") 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved if #senses == 0 then return nil end local translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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 = base_form:getAllStatements('P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ -- @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} }) end --elseif #iso15919_transcription ~= 0 then -- table.insert(pronunciations, '* ') -- 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 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. cat .. frame:expandTemplate{ title = i18n['template_anchor'], args = { lexeme_id } } .. '===') if lang_code ~= nil then 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 local gender local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ if #stmts ~= 0 then local gender_qid = stmts[1].mainsnak.datavalue.value.id if gender_qid == 'Q499327' then -- @TODO: Add checks for every possible circumstance gender = 'm' elseif gender_qid == 'Q1775415' then gender = 'f' end end lex_cat_template = safeExpand(frame, lang_code .. '-noun', {gender}) if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য', {gender}) end end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end 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 local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end return table.concat(sections,"\n\n") end return p r70v0l1rz8z0z2vi2xjh57j63rveqm6 507719 507706 2026-04-11T05:21:31Z Redmin 6857 507719 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 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, "آ", "ا") 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 getTranslations(frame, senses) -- TODO: woefully incomplete until T185313 and T199887 are resolved if #senses == 0 then return nil end local translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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 = base_form:getAllStatements('P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ -- P8881 (ITRANS) -- @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} }) end --elseif #iso15919_transcription ~= 0 then -- table.insert(pronunciations, '* ') -- 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 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. cat .. frame:expandTemplate{ title = i18n['template_anchor'], args = { lexeme_id } } .. '===') if lang_code ~= nil then 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 local gender local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ if #stmts ~= 0 then local gender_qid = stmts[1].mainsnak.datavalue.value.id if gender_qid == 'Q499327' then -- @TODO: Add checks for every possible circumstance gender = 'm' elseif gender_qid == 'Q1775415' then gender = 'f' end end lex_cat_template = safeExpand(frame, lang_code .. '-noun', {gender}) if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য', {gender}) end end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end 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 local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end return table.concat(sections,"\n\n") end return p ob5js1tp6zd92s7pdaw4ndqsvn7p5ok 507720 507719 2026-04-11T05:56:36Z Redmin 6857 + আইএসও ১৫৯১৯ প্রতিলিপিকরণ 507720 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 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, "آ", "ا") 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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 P8881 (ITRANS) -- @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} }) end elseif #iso15919_transcription ~= nil then table.insert(pronunciations, '* আইএসও ১৫৯১৯: ' .. iso15919_transcription) -- 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 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. cat .. frame:expandTemplate{ title = i18n['template_anchor'], args = { lexeme_id } } .. '===') if lang_code ~= nil then 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 local gender local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ if #stmts ~= 0 then local gender_qid = stmts[1].mainsnak.datavalue.value.id if gender_qid == 'Q499327' then -- @TODO: Add checks for every possible circumstance gender = 'm' elseif gender_qid == 'Q1775415' then gender = 'f' end end lex_cat_template = safeExpand(frame, lang_code .. '-noun', {gender}) if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য', {gender}) end end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end 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 local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end return table.concat(sections,"\n\n") end return p eohghsbmuyipxn2s558hjfwrfsudcjt 507721 507720 2026-04-11T06:04:14Z Redmin 6857 507721 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 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, "آ", "ا") 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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 P8881 (ITRANS) -- @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} }) end elseif #iso15919_transcription ~= nil then table.insert(pronunciations, '* আইএসও ১৫৯১৯: ' .. iso15919_transcription) -- 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 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. 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 then 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 local gender local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ if #stmts ~= 0 then local gender_qid = stmts[1].mainsnak.datavalue.value.id if gender_qid == 'Q499327' then -- @TODO: Add checks for every possible circumstance gender = 'm' elseif gender_qid == 'Q1775415' then gender = 'f' end end lex_cat_template = safeExpand(frame, lang_code .. '-noun', {gender}) if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য', {gender}) end end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end return table.concat(sections,"\n\n") end return p 8bti9ddd2b7kwniew64jrrvmjovfld7 507722 507721 2026-04-11T06:21:53Z Redmin 6857 507722 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 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, "آ", "ا") 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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 P8881 (ITRANS) -- @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} }) end elseif iso15919_transcription ~= nil then table.insert(pronunciations, '* আইএসও ১৫৯১৯: ' .. iso15919_transcription) -- 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 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. 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 then 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 local gender local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ if #stmts ~= 0 then local gender_qid = stmts[1].mainsnak.datavalue.value.id if gender_qid == 'Q499327' then -- @TODO: Add checks for every possible circumstance gender = 'm' elseif gender_qid == 'Q1775415' then gender = 'f' end end lex_cat_template = safeExpand(frame, lang_code .. '-noun', {gender}) if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য', {gender}) end end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end return table.concat(sections,"\n\n") end return p gtl7llkw7yvqbzz4hldi2y0ifopv4ze 507724 507722 2026-04-11T06:32:38Z Redmin 6857 507724 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 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, "آ", "ا") 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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 P8881 (ITRANS) -- @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} }) 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 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. 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 then 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 local gender local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ if #stmts ~= 0 then local gender_qid = stmts[1].mainsnak.datavalue.value.id if gender_qid == 'Q499327' then -- @TODO: Add checks for every possible circumstance gender = 'm' elseif gender_qid == 'Q1775415' then gender = 'f' end end lex_cat_template = safeExpand(frame, lang_code .. '-noun', {gender}) if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য', {gender}) end end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end return table.concat(sections,"\n\n") end return p ou17b58yqjegi2sgylpyi1i1vjwjal9 507729 507724 2026-04-11T06:45:51Z Redmin 6857 +ITRANS ও আইএএসটি 507729 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 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, "آ", "ا") 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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') -- আইএএসটি প্রতিলিপিকরণ -- @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} }) 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_transcription ~= nil then table.insert(pronunciations, '* ' .. i18n['text_iast'] .. ': ' .. iast_transcription) 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. 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 then 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 local gender local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ if #stmts ~= 0 then local gender_qid = stmts[1].mainsnak.datavalue.value.id if gender_qid == 'Q499327' then -- @TODO: Add checks for every possible circumstance gender = 'm' elseif gender_qid == 'Q1775415' then gender = 'f' end end lex_cat_template = safeExpand(frame, lang_code .. '-noun', {gender}) if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য', {gender}) end end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end return table.concat(sections,"\n\n") end return p fpcygjnojb87em5tijuadzmfc1mihxf 507733 507729 2026-04-11T07:09:24Z Redmin 6857 507733 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 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, "آ", "ا") 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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') -- আইএএসটি প্রতিলিপিকরণ -- @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} }) 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_transcription ~= nil then table.insert(pronunciations, '* ' .. i18n['text_iast'] .. ': ' .. iast_transcription) 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. 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 then 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 local gender local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ if #stmts ~= 0 then local gender_qid = stmts[1].mainsnak.datavalue.value.id if gender_qid == 'Q499327' then -- @TODO: Add checks for every possible circumstance gender = 'm' elseif gender_qid == 'Q1775415' then gender = 'f' end end if current_language ~= 'Q11059' then lex_cat_template = safeExpand(frame, lang_code .. '-noun', {gender}) if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য', {gender}) end else -- These templates require the gender to be passed via a (differently) named argument. lex_cat_template = frame:expandTemplate{title='sa-noun', args={g=gender}} end end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end return table.concat(sections,"\n\n") end return p 6ogbn40ueinz6cpemjjekqybljmnrc4 507737 507733 2026-04-11T07:22:28Z Redmin 6857 507737 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 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, "آ", "ا") 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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') -- আইএএসটি প্রতিলিপিকরণ -- @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} }) 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_transcription ~= nil then table.insert(pronunciations, '* ' .. i18n['text_iast'] .. ': ' .. iast_transcription) 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. 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 then 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 local gender local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ if #stmts ~= 0 then local gender_qid = stmts[1].mainsnak.datavalue.value.id if gender_qid == 'Q499327' then -- @TODO: Add checks for every possible circumstance gender = 'm' elseif gender_qid == 'Q1775415' then gender = 'f' 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 == 'Q11059' then lex_cat_template = frame:expandTemplate{title='ar-noun', args={nil,gender}} elseif current_language == 'Q13955' then lex_cat_template = frame:expandTemplate{title='sa-noun', args={g=gender}} else -- These templates require the gender to be passed as the 1st argument. lex_cat_template = safeExpand(frame, lang_code .. '-noun', {gender}) if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য', {gender}) end end end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end return table.concat(sections,"\n\n") end return p 8rmlgv41rlwqo7tr2jioskag1obwynm 507739 507737 2026-04-11T07:25:42Z Redmin 6857 507739 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 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, "آ", "ا") 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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') -- আইএএসটি প্রতিলিপিকরণ -- @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} }) 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_transcription ~= nil then table.insert(pronunciations, '* ' .. i18n['text_iast'] .. ': ' .. iast_transcription) 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. 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 then 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 local gender local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ if #stmts ~= 0 then local gender_qid = stmts[1].mainsnak.datavalue.value.id if gender_qid == 'Q499327' then -- @TODO: Add checks for every possible circumstance gender = 'm' elseif gender_qid == 'Q1775415' then gender = 'f' 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 lex_cat_template = frame:expandTemplate{title='ar-noun', args={nil,gender}} elseif current_language == 'Q11059' then lex_cat_template = frame:expandTemplate{title='sa-noun', args={g=gender}} else -- These templates require the gender to be passed as the 1st argument. lex_cat_template = safeExpand(frame, lang_code .. '-noun', {gender}) if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য', {gender}) end end end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end return table.concat(sections,"\n\n") end return p rb42a68xkxijkft5t7xrkret6vodhts 507741 507739 2026-04-11T07:31:46Z Redmin 6857 507741 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 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, "آ", "ا") 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 ) 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 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) else lemma_string = lemma_string .. '/' .. termLink(rep) 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 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 translation_set = {} for i, sense in pairs(senses) do for i, stmt in pairs(sense:getAllStatements('P5972')) do translation = stmt.mainsnak.datavalue.value.id local lexeme_id, sense_id = wb.lexeme.splitLexemeId(translation) language = wb.getLabel(getEntity(lexeme_id):getLanguage()) gloss = sense:getGloss('bn') table.insert(translation_set, language .. ': ' .. getLinkedLemmata(getEntity(lexeme_id)) .. '<br/>') end end if #translation_set == 0 then return nil end local translations = frame:expandTemplate{title = i18n['template_trans-top'], args={gloss}} translations = '====' .. i18n['heading_translation'] .. '==== \n' .. translations .. table.concat(translation_set, '\n') .. frame:expandTemplate{title = i18n['template_trans-bottom']} return translations end local function getCategory( lang_category, cat_id ) local cat_text = wb.getLabel( cat_id ) local lang_categories = i18n['lang_categories'] if lang_categories[lang_category] ~= nil then local lang_cat = lang_categories[lang_category] if lang_cat[cat_id] ~= nil then cat_text = cat_text .. '[[Category:' .. lang_cat[cat_id] .. ']]' else cat_text = cat_text .. '[[Category:' .. lang_cat['_'] .. ']]' end else cat_text = cat_text .. '[[Category:' .. i18n['maintenance_no_lang_category_found'] .. ']]' end return cat_text end local createicon = function(langcode, entityID, propertyID) langcode = langcode or "" propertyID = propertyID or "" local icon = "&nbsp;<span class='penicon autoconfirmed-show'>[[" -- "&nbsp;<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'] .. "''" .. '[[Category:' .. 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 stmt_value = stmt.mainsnak.datavalue.value.id table.insert(specifiers, wb.getLabel(stmt_value, i18n['content_lang_code'])) 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 .. '[[' .. 'Category:' .. 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 .. '[[Category:' .. 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 i, 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 i, 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 i, 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 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 ~= '' then etymology = etymology .. '<br/>(' .. current_combines .. ')' end return etymology end 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 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') -- আইএএসটি প্রতিলিপিকরণ -- @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} }) 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_transcription ~= nil then table.insert(pronunciations, '* ' .. i18n['text_iast'] .. ': ' .. iast_transcription) 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 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 -- 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 buildLanguageAgnosticInflectionTable(forms) 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) -- This should remain available to all functions. local title = mw.title.getCurrentTitle().text local lang_category = getLanguageForCategories(current_language, title) local cat = getCategory( lang_category, lex_cat ) local lex_cat_template if cat ~= nil then table.insert(sections, '===' .. 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 then 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 local gender local stmts = current_lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ if #stmts ~= 0 then local gender_qid = stmts[1].mainsnak.datavalue.value.id if gender_qid == 'Q499327' then -- @TODO: Add checks for every possible circumstance gender = 'm' elseif gender_qid == 'Q1775415' then gender = 'f' 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 lex_cat_template = frame:expandTemplate{title='ar-noun', args={nil,gender}} elseif current_language == 'Q29919' then lex_cat_template = frame:expandTemplate{title='arz-noun', args={g=gender}} elseif current_language == 'Q11059' then lex_cat_template = frame:expandTemplate{title='sa-noun', args={g=gender}} else -- These templates require the gender to be passed as the 1st argument. lex_cat_template = safeExpand(frame, lang_code .. '-noun', {gender}) if not lex_cat_template then lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষ্য', {gender}) end end end end end if lex_cat_template ~= nil then table.insert(sections, lex_cat_template) end local meanings, references_seen = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name)) if lex_cat_template == nil then local lemmas = current_lexeme:getLemmas() local matched_lemma = nil 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 if matched_lemma ~= nil then table.insert(sections, heading_level(matched_lemma, 4)) else table.insert(sections, '[[Category:যেসব ভুক্তিতে লেমার হেডিং দেখানো অসম্ভব]]') end end 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' then -- @TODO: generalise this so all types of roots are shown local instance_of_value = '#' .. i18n['text_instance_of'] .. ' ' .. wb.getLabel(instance_of_entity) table.insert(sections, instance_of_value) 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) --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)) -- German noun declension table, enable once T422299 is resolved -- end else if current_language ~= 'Q1860' then -- ইংরেজি table.insert(sections, buildLanguageAgnosticInflectionTable(forms)) 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, '[[Category:' .. i18n['category_rfref'][lang_category] .. ']]') else table.insert(sections, '[[Category:' .. i18n['category_rfref']['_'] .. ']]') end end return table.concat(sections,"\n\n") end return p eklk5d4axrnfdttijhmvhag5gp1gamc মডিউল:আভিধানিক উপাত্ত/নথি 828 50210 507744 506746 2026-04-11T09:35:34Z Redmin 6857 /* ব্যবহার */ 507744 wikitext text/x-wiki এই মডিউলটি বর্তমানে পরীক্ষামূলক পর্যায়ে রয়েছে। ==ব্যবহার== <code><nowiki>{{#invoke:আভিধানিক উপাত্ত|all| লেক্সিম নং }}</nowiki></code> উদা: <code><nowiki>{{#invoke:আভিধানিক উপাত্ত|all|L301993}}</nowiki></code> ভাষার সেকশন হেডিং বাদ দিতে চাইলে টেম্পলেটটি এভাবে ব্যবহার করবেন: <code><nowiki>{{#invoke:আভিধানিক উপাত্ত|all|L301993|না}}</nowiki></code> এই মডিউলের কিছু ব্যবহার দেখতে এই পাতাগুলো দেখুন: '''[[হৃদয়]]''', '''[[knife]]''', '''[[س ك ن]]''', '''[[double]]'''। tm2xcc8r8l9olvtl1f1qg4i5trg55b2 টেমপ্লেট:feminine plural of 10 66867 507626 278896 2026-04-10T14:43:11Z Redmin 6857 507626 wikitext text/x-wiki <includeonly>{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!-- -->{{#invoke:form of/templates|tagged_form_of_t|f|p}}<!-- -->}}</includeonly><!-- --><noinclude>{{documentation}}</noinclude> j8im1k1ksu365sk7wtww44zouva7mq0 ব্যবহারকারী:Redmin/খেলাঘর 2 66884 507715 507445 2026-04-11T05:16:48Z Redmin 6857 507715 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, Z29940, Z17866, Z30837, Z32787, Z32793, Z10029, Z11795, Z31772 [[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:আভিধানিক উপাত্ত|all|L1468442}} {{#invoke:আভিধানিক উপাত্ত/sandbox|all|L1495773}} {{#invoke:আভিধানিক উপাত্ত/sandbox|all|L1340}} {{#invoke:আভিধানিক উপাত্ত/sandbox|all|L348189|false}} {{লে|L348189}} {{#invoke:আভিধানিক উপাত্ত/sandbox|all|L34813}} {{লে|L12321}} {{লে|L5725}} {{#function:Z28602|L300026|}} {{#function:Z27861|<div style="text-align: center;">Test</div>}} {{#function:Z31729|{{#function:Z27861<div>Text</div>}}}} hxfj6phhnwxqp94s9igon0keysmi1wg 507727 507715 2026-04-11T06:39:02Z Redmin 6857 507727 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, Z30837, Z32787, Z32793, Z10029, Z11795, Z31772 [[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:আভিধানিক উপাত্ত|all|L1468442}} {{#invoke:আভিধানিক উপাত্ত/sandbox|all|L1495773}} {{#invoke:আভিধানিক উপাত্ত/sandbox|all|L1340}} {{#invoke:আভিধানিক উপাত্ত/sandbox|all|L348189|false}} {{লে|L348189}} {{#invoke:আভিধানিক উপাত্ত/sandbox|all|L34813}} {{লে|L12321}} {{লে|L5725}} {{#function:Z28602|L300026|}} {{#function:Z27861|<div style="text-align: center;">Test</div>}} {{#function:Z31729|{{#function:Z27861<div>Text</div>}}}} guiiefjydg8m1nflg5raxf3geob4zsu টেমপ্লেট:masculine plural of 10 67134 507632 184789 2026-04-10T15:07:01Z Redmin 6857 507632 wikitext text/x-wiki <includeonly>{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!-- -->{{#invoke:form of/templates|tagged_form_of_t|m|p}}<!-- -->}}</includeonly><noinclude>{{documentation}}</noinclude> qr7vubajq71ekioljo3nry936gud6d5 টেমপ্লেট:sa-noun 10 72911 507732 325698 2026-04-11T07:04:17Z Redmin 6857 507732 wikitext text/x-wiki {{#invoke:sa-headword|show|nouns}} {{#if:{{{1|}}}|{{#switch:{{{1|}}}|c={{tlb|sa|Classical}}|v={{tlb|sa|Vedic}}|n={{tlb|sa|New Sanskrit}}}}}} rernljxwkrvnjiluonrq576dvfg7tnj টেমপ্লেট:dated form of 10 123893 507711 251598 2026-04-11T05:13:38Z Redmin 6857 507711 wikitext text/x-wiki <includeonly>{{ {{#if:{{{ভাষা|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{ভাষা|}}}|<!-- -->{{#invoke:form of/templates|form_of_t|[[Appendix:Glossary#dated|dated]] form of|cat=dated forms|withcap=1|withdot=1}}<!-- -->}}</includeonly><noinclude>{{নথি}}[[Category:Form-of templates]]</noinclude> sk637j0owp4f7t1uhn737zi384k5nzw টেমপ্লেট:diminutive of 10 123897 507714 251602 2026-04-11T05:14:54Z Redmin 6857 507714 wikitext text/x-wiki <includeonly>{{ {{#if:{{{ভাষা|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{ভাষা|}}}|<!-- -->{{#invoke:form of/templates|tagged_form_of_t|dim|cat=diminutive {{{POS|বিশেষ্য}}}s|ignore=POS}}<!-- -->}}</includeonly><noinclude>{{নথি}}</noinclude> 4q1qp3pefokx4kty0o59gbr4236bxio টেমপ্লেট:ellipsis of 10 123903 507743 251608 2026-04-11T09:32:55Z Redmin 6857 507743 wikitext text/x-wiki <includeonly>{{ {{#if:{{{ভাষা|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{ভাষা|}}}|<!-- -->{{#invoke:form of/templates|form_of_t|{{glossary|ellipsis}} of|withcap=1|withdot=1|cat=ellipses}}<!-- -->}}</includeonly><noinclude>{{নথি}}</noinclude> nsgvqk55onzvlh5q4llwnso0256ymxg টেমপ্লেট:genitive of 10 123917 507627 251622 2026-04-10T14:43:41Z Redmin 6857 507627 wikitext text/x-wiki <includeonly>{{deprecated code|tooltip=[[Template:genitive of]] is deprecated. Use [[Template:infl of]].|{{#invoke:form of/templates|tagged_form_of_t|gen}}}}<!-- --></includeonly><noinclude>{{নথি}}</noinclude> kbdh3ox026k2e6xuktif5luzynn2b5c টেমপ্লেট:masculine of 10 124013 507708 325632 2026-04-11T05:10:57Z Redmin 6857 507708 wikitext text/x-wiki <includeonly>{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!-- -->{{#invoke:form of/templates|tagged_form_of_t|m}}<!-- -->}}<</includeonly>!-- --><noinclude>{{documentation}}</noinclude> m7ufzhfcl1coxayrzyb8rpp0m1gwmg2 507709 507708 2026-04-11T05:11:11Z Redmin 6857 507709 wikitext text/x-wiki <includeonly>{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!-- -->{{#invoke:form of/templates|tagged_form_of_t|m}}<!-- -->}}</includeonly><noinclude>{{documentation}}</noinclude> bfmh2g0jufc9rux7ivqldxhvn49k8ff ব্যবহারকারী:Sabah Azman Nahean 2 147266 507674 507621 2026-04-10T23:54:42Z Sabah Azman Nahean 12022 /* ভুক্তি */ 507674 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> |} ==ভুক্তি== #[[ἐμμένω]] #[[antiprejudice]] #[[terminate with extreme prejudice]] #[[self-prejudice]] #[[prejudicious]] #[[prejudicer]] #[[prejudiceless]] #[[postjudice]] #[[in prejudice of]] #[[homoprejudice]] #[[heteroprejudice]] #[[extreme prejudice]] #[[disprejudice]] #[[counterprejudice]] #[[biprejudice]] #[[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]] #[[اب]] #[[أبابة]] #[[أباب]] #[[أبو]] #[[آب]] #[[أب]] #[[عم]] #[[में]] #[[परछाई]] #[[परछाईं]] #[[परवाना]] #[[पराकाष्ठा]] #[[إصبع]] #[[افترى]] #[[एतानि]] #[[एतद्]] ==টেমপ্লেট== # [[টেমপ্লেট: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) প্রতিবিম্ব। |} iy0trrpxpjnnbkexvdpk3z8skmkdwmo 507681 507674 2026-04-11T03:34:55Z Sabah Azman Nahean 12022 507681 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> |} ==ভুক্তি== #[[ἐμμένω]] #[[antiprejudice]] #[[terminate with extreme prejudice]] #[[self-prejudice]] #[[prejudicious]] #[[prejudicer]] #[[prejudiceless]] #[[postjudice]] #[[in prejudice of]] #[[homoprejudice]] #[[heteroprejudice]] #[[extreme prejudice]] #[[disprejudice]] #[[counterprejudice]] #[[biprejudice]] #[[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]] #[[اب]] #[[أبابة]] #[[أباب]] #[[أبو]] #[[آب]] #[[أب]] #[[عم]] #[[में]] #[[परछाई]] #[[परछाईं]] #[[परवाना]] #[[पराकाष्ठा]] #[[إصبع]] #[[افترى]] #[[एतानि]] #[[एतद्]] ==টেমপ্লেট== # [[টেমপ্লেট: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) প্রতিবিম্ব। |} osvmievjovts6qpu344n7f8nfagn7qu 507697 507681 2026-04-11T04:13:26Z Sabah Azman Nahean 12022 507697 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]] ==টেমপ্লেট== # [[টেমপ্লেট: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) প্রতিবিম্ব। |} ikfp4xv6g2d6atniu6u8i14qwmdlkg1 507700 507697 2026-04-11T04:22:25Z Sabah Azman Nahean 12022 507700 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]] #[[تحامل]] #[[تحيز]] ==টেমপ্লেট== # [[টেমপ্লেট: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) প্রতিবিম্ব। |} nvi5fp91srnr9k836vxm3tcc40rrvfu মডিউল:আভিধানিক উপাত্ত/i18n 828 148710 507723 507509 2026-04-11T06:30:45Z Redmin 6857 507723 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['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['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['maintenance_no_lang_category_found'] = 'যে শব্দের ভাষা-পদ বিষয়শ্রেণী নেই' p['text_category_rfdef'] = 'এই শব্দের লেক্সিমে অর্থ প্রয়োজন। দয়া করে লেক্সিম পাতায় গিয়ে একটি অর্থ যোগ করুন, যাতে অন্য পাঠকরা জানতে পারবে এটা মানে কি।' p['lang_categories'] = { -- lexeme:getLanguage() , lexeme:getLexicalCategory() ['Q9610'] = { ['_'] = 'বাংলা লেমা', -- Q31156836 ['Q1084'] = 'বাংলা বিশেষ্য', -- Q30566205 ['Q24905'] = 'বাংলা ক্রিয়া', -- Q32858877 ['Q34698'] = 'বাংলা বিশেষণ', -- Q32019867 ['Q380057'] = 'বাংলা ক্রিয়াবিশেষণ', -- Q32773652 ['Q147276'] = 'বাংলা নামবাচক বিশেষ্য', -- Q31161898 ['Q134830'] = 'বাংলা উপসর্গ', -- Q54488622 ['Q102047'] = 'বাংলা প্রত্যয়', -- Q107174314 }, ['Q1860'] = { ['_'] = 'ইংরেজি লেমা', -- Q30524923 ['Q1084'] = 'ইংরেজি বিশেষ্য', -- Q30428207 ['Q24905'] = 'ইংরেজি ক্রিয়া', -- Q30430933 ['Q34698'] = 'ইংরেজি বিশেষণ', -- Q30430962 ['Q380057'] = 'ইংরেজি ক্রিয়াবিশেষণ', -- Q30445981 }, ['Q150'] = { ['_'] = 'ফরাসি লেমা', -- Q30524925 ['Q1084'] = 'ফরাসি বিশেষ্য', -- Q30429760 ['Q34698'] = 'ফরাসি বিশেষণ', -- Q30525026 }, ['Q9072'] = { ['_'] = 'এস্তোনীয় লেমা', -- Q31158076 ['Q1084'] = 'এস্তোনীয় বিশেষ্য', -- Q30429759 ['Q147276'] = 'এস্তোনীয় নামবাচক বিশেষ্য', -- Q31081072 }, ['Q397'] = { ['_'] = 'লাতিন লেমা', -- Q31158138 ['Q1084'] = 'লাতিন বিশেষ্য', -- Q30525219 }, ['Q652'] = { ['_'] = 'ইতালীয় লেমা', -- Q32661094 ['Q1084'] = 'ইতালীয় বিশেষ্য', -- Q30449614 ['Q34698'] = 'ইতালীয় বিশেষণ', -- Q30525206 }, ['Q11051hi'] = { -- যেহেতু হিন্দি ও উর্দু লেক্সিম 'হিন্দুস্তানি' হিসেবে যোগ করা হয়েছে ['_'] = 'হিন্দি লেমা', -- Q31165202 ['Q1084'] = 'হিন্দি বিশেষ্য', -- Q30565856 ['Q34698'] = 'হিন্দি বিশেষণ', -- Q30569864 ['Q147276'] = 'হিন্দি নামবাচক বিশেষ্য', -- Q31159486 }, ['Q11051ur'] = { -- যেহেতু হিন্দি ও উর্দু লেক্সিম 'হিন্দুস্তানি' হিসেবে যোগ করা হয়েছে ['_'] = 'উর্দু লেমা', -- Q32159501 ['Q1084'] = 'উর্দু বিশেষ্য', -- Q30566217 ['Q147276'] = 'উর্দু নামবাচক বিশেষ্য', -- Q31073525 }, ['Q29401'] = { ['_'] = 'অসমীয়া লেমা', -- Q32151243 ['Q1084'] = 'অসমীয়া বিশেষ্য', -- Q31144600 ['Q24905'] = 'অসমীয়া ক্রিয়া', -- Q109571153 ['Q34698'] = 'অসমীয়া বিশেষণ', -- Q32856444 ['Q147276'] = 'অসমীয়া নামবাচক বিশেষ্য', -- Q32139276 }, ['Q9142'] = { ['_'] = 'আইরিশ লেমা', -- Q31159081 ['Q147276'] = 'আইরিশ নামবাচক বিশেষ্য', -- Q31076254 }, ['Q13955'] = { ['_'] = 'আরবি লেমা', -- Q31158513 ['Q1084'] = 'আরবি বিশেষ্য', -- Q30449691 ['Q34698'] = 'আরবি বিশেষণ', -- Q30525210 ['Q147276'] = 'আরবি নামবাচক বিশেষ্য', -- Q30567180 }, ['Q8748'] = { ['_'] = 'আলবেনীয় লেমা', -- Q33141043 ['Q1084'] = 'আলবেনীয় বিশেষ্য', -- Q30527873 ['Q147276'] = 'আলবেনীয় নামবাচক বিশেষ্য', -- Q31048315 }, ['Q9035'] = { ['_'] = 'দিনেমার লেমা', -- Q31158058 ['Q147276'] = 'দিনেমার নামবাচক বিশেষ্য', -- Q31075760 }, ['Q9027'] = { ['_'] = 'সুইডিশ লেমা', -- Q31158250 ['Q147276'] = 'সুইডিশ নামবাচক বিশেষ্য', -- Q30567573 }, ['Q11059'] = { ['_'] = 'সংস্কৃত লেমা', ['Q1084'] = 'সংস্কৃত বিশেষ্য', -- Q30567377 ['Q34698'] = 'সংস্কৃত বিশেষণ', -- Q31095528 }, ['Q6400661'] = { ['_'] = 'খরিয়া থার লেমা', ['Q1084'] = 'খরিয়া থার বিশেষ্য' }, ['Q2044560'] = { ['_'] = 'সিলেটি লেমা', -- Q33669037 ['Q1084'] = 'সিলেটি বিশেষ্য', -- Q114733585 ['Q34698'] = 'সিলেটি বিশেষণ', -- Q114734349 ['Q24905'] = 'সিলেটি ক্রিয়া', -- Q114734310 ['Q380057'] = 'সিলেটি ক্রিয়াবিশেষণ', -- Q114733811 ['Q36224'] = 'সিলেটি সর্বনাম', -- Q114734403 ['Q147276'] = 'সিলেটি নামবাচক বিশেষ্য', -- Q115663802 }, ['Q9176'] = { ['_'] = 'কোরীয় লেমা', -- Q31159187 ['Q147276'] = 'কোরীয় নামবাচক বিশেষ্য' -- Q31101131 } } return p q8viqergtq6ev8kyd5uti3513bbc0iw 507728 507723 2026-04-11T06:43:18Z Redmin 6857 +ITRANS and আইএএসটি 507728 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['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['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['maintenance_no_lang_category_found'] = 'যে শব্দের ভাষা-পদ বিষয়শ্রেণী নেই' p['text_category_rfdef'] = 'এই শব্দের লেক্সিমে অর্থ প্রয়োজন। দয়া করে লেক্সিম পাতায় গিয়ে একটি অর্থ যোগ করুন, যাতে অন্য পাঠকরা জানতে পারবে এটা মানে কি।' p['lang_categories'] = { -- lexeme:getLanguage() , lexeme:getLexicalCategory() ['Q9610'] = { ['_'] = 'বাংলা লেমা', -- Q31156836 ['Q1084'] = 'বাংলা বিশেষ্য', -- Q30566205 ['Q24905'] = 'বাংলা ক্রিয়া', -- Q32858877 ['Q34698'] = 'বাংলা বিশেষণ', -- Q32019867 ['Q380057'] = 'বাংলা ক্রিয়াবিশেষণ', -- Q32773652 ['Q147276'] = 'বাংলা নামবাচক বিশেষ্য', -- Q31161898 ['Q134830'] = 'বাংলা উপসর্গ', -- Q54488622 ['Q102047'] = 'বাংলা প্রত্যয়', -- Q107174314 }, ['Q1860'] = { ['_'] = 'ইংরেজি লেমা', -- Q30524923 ['Q1084'] = 'ইংরেজি বিশেষ্য', -- Q30428207 ['Q24905'] = 'ইংরেজি ক্রিয়া', -- Q30430933 ['Q34698'] = 'ইংরেজি বিশেষণ', -- Q30430962 ['Q380057'] = 'ইংরেজি ক্রিয়াবিশেষণ', -- Q30445981 }, ['Q150'] = { ['_'] = 'ফরাসি লেমা', -- Q30524925 ['Q1084'] = 'ফরাসি বিশেষ্য', -- Q30429760 ['Q34698'] = 'ফরাসি বিশেষণ', -- Q30525026 }, ['Q9072'] = { ['_'] = 'এস্তোনীয় লেমা', -- Q31158076 ['Q1084'] = 'এস্তোনীয় বিশেষ্য', -- Q30429759 ['Q147276'] = 'এস্তোনীয় নামবাচক বিশেষ্য', -- Q31081072 }, ['Q397'] = { ['_'] = 'লাতিন লেমা', -- Q31158138 ['Q1084'] = 'লাতিন বিশেষ্য', -- Q30525219 }, ['Q652'] = { ['_'] = 'ইতালীয় লেমা', -- Q32661094 ['Q1084'] = 'ইতালীয় বিশেষ্য', -- Q30449614 ['Q34698'] = 'ইতালীয় বিশেষণ', -- Q30525206 }, ['Q11051hi'] = { -- যেহেতু হিন্দি ও উর্দু লেক্সিম 'হিন্দুস্তানি' হিসেবে যোগ করা হয়েছে ['_'] = 'হিন্দি লেমা', -- Q31165202 ['Q1084'] = 'হিন্দি বিশেষ্য', -- Q30565856 ['Q34698'] = 'হিন্দি বিশেষণ', -- Q30569864 ['Q147276'] = 'হিন্দি নামবাচক বিশেষ্য', -- Q31159486 }, ['Q11051ur'] = { -- যেহেতু হিন্দি ও উর্দু লেক্সিম 'হিন্দুস্তানি' হিসেবে যোগ করা হয়েছে ['_'] = 'উর্দু লেমা', -- Q32159501 ['Q1084'] = 'উর্দু বিশেষ্য', -- Q30566217 ['Q147276'] = 'উর্দু নামবাচক বিশেষ্য', -- Q31073525 }, ['Q29401'] = { ['_'] = 'অসমীয়া লেমা', -- Q32151243 ['Q1084'] = 'অসমীয়া বিশেষ্য', -- Q31144600 ['Q24905'] = 'অসমীয়া ক্রিয়া', -- Q109571153 ['Q34698'] = 'অসমীয়া বিশেষণ', -- Q32856444 ['Q147276'] = 'অসমীয়া নামবাচক বিশেষ্য', -- Q32139276 }, ['Q9142'] = { ['_'] = 'আইরিশ লেমা', -- Q31159081 ['Q147276'] = 'আইরিশ নামবাচক বিশেষ্য', -- Q31076254 }, ['Q13955'] = { ['_'] = 'আরবি লেমা', -- Q31158513 ['Q1084'] = 'আরবি বিশেষ্য', -- Q30449691 ['Q34698'] = 'আরবি বিশেষণ', -- Q30525210 ['Q147276'] = 'আরবি নামবাচক বিশেষ্য', -- Q30567180 }, ['Q8748'] = { ['_'] = 'আলবেনীয় লেমা', -- Q33141043 ['Q1084'] = 'আলবেনীয় বিশেষ্য', -- Q30527873 ['Q147276'] = 'আলবেনীয় নামবাচক বিশেষ্য', -- Q31048315 }, ['Q9035'] = { ['_'] = 'দিনেমার লেমা', -- Q31158058 ['Q147276'] = 'দিনেমার নামবাচক বিশেষ্য', -- Q31075760 }, ['Q9027'] = { ['_'] = 'সুইডিশ লেমা', -- Q31158250 ['Q147276'] = 'সুইডিশ নামবাচক বিশেষ্য', -- Q30567573 }, ['Q11059'] = { ['_'] = 'সংস্কৃত লেমা', ['Q1084'] = 'সংস্কৃত বিশেষ্য', -- Q30567377 ['Q34698'] = 'সংস্কৃত বিশেষণ', -- Q31095528 }, ['Q6400661'] = { ['_'] = 'খরিয়া থার লেমা', ['Q1084'] = 'খরিয়া থার বিশেষ্য' }, ['Q2044560'] = { ['_'] = 'সিলেটি লেমা', -- Q33669037 ['Q1084'] = 'সিলেটি বিশেষ্য', -- Q114733585 ['Q34698'] = 'সিলেটি বিশেষণ', -- Q114734349 ['Q24905'] = 'সিলেটি ক্রিয়া', -- Q114734310 ['Q380057'] = 'সিলেটি ক্রিয়াবিশেষণ', -- Q114733811 ['Q36224'] = 'সিলেটি সর্বনাম', -- Q114734403 ['Q147276'] = 'সিলেটি নামবাচক বিশেষ্য', -- Q115663802 }, ['Q9176'] = { ['_'] = 'কোরীয় লেমা', -- Q31159187 ['Q147276'] = 'কোরীয় নামবাচক বিশেষ্য' -- Q31101131 } } return p jb9amw1ffjnvzjlcgsuhbeoqqjy0ily মডিউল:উইকিউপাত্ত তথ্যসূত্র বিন্যাসকরণ 828 148712 507742 502552 2026-04-11T08:16:17Z Redmin 6857 ইংরেজি উইকিউৎসকে ফলব্যাক হিসেবে ব্যবহার করা হয় যেন 507742 Scribunto text/plain local p = {} local converter = require('মডিউল:ConvertDigit') local target_wikisource = 'bnwikisource' local fallback_wikisource = 'enwikisource' local label_of_Q31464082 = 'উৎস' local archive_dated = '$1-এর আর্কাইভ' local archive_undated = 'আর্কাইভ' local indicator_format_strings = { ['P50'] = '$1', -- লেখক ['P98'] = '$1 সম্পাদিত', ['P655'] = '$1 অনূদিত', } local specifier_format_strings = { ['P7421'] = "$1 নং পংক্তি", ['P958'] = "$1 নামক অনুচ্ছেদ", ['P792'] = "$1 নং পরিচ্ছেদ", ['P304'] = "$1 নং পাতায়", } local published_in_format_string = "$1 নামক রচনায় প্রকাশিত" function p.format ( reference, wb, mw_lang, base_lang_code_labels, base_lang_wiki ) local stated_ins = reference.snaks['P248'] -- এই উৎসে বিবৃত local urls = reference.snaks['P854'] -- তথ্যসূত্রের ইউআরএল if urls == nil then urls = reference.snaks['P4656'] -- উইকিমিডিয়া আমদানির ইউআরএল end local commons_scanned_files = reference.snaks['P996'] -- উইকিমিডিয়া কমন্সে স্ক্যানকৃত ফাইল local internet_archive_ids = reference.snaks['P724'] -- ইন্টারনেট আর্কাইভ আইডি local inside_text_parts = {} local example_from_id = nil local example_from_text = '' if stated_ins ~= nil then example_from_id = stated_ins[1].datavalue.value.id example_from_text = wb.getLabel( example_from_id ) if example_from_text == nil then for i, label in pairs(wb.getEntity(example_from_id)['labels']) do example_from_text = label['value'] break end end elseif commons_scanned_files ~= nil then table.insert(inside_text_parts, '[[:File:' .. commons_scanned_files[1].datavalue.value .. '|' .. commons_scanned_files[1].datavalue.value .. ']]') elseif urls ~= nil or internet_archive_ids ~= nil then local link_title = label_of_Q31464082 local titles = reference.snaks['P1476'] -- [পাতার] শিরোনাম if titles ~= nil then link_title = '"' .. titles[1].datavalue.value.text .. '"' end local main_url = '' if urls ~= nil then main_url = urls[1].datavalue.value else main_url = 'https://archive.org/details/' .. internet_archive_ids[1].datavalue.value end table.insert(inside_text_parts, '[' .. main_url .. ' ' .. link_title .. ']') local broader_title = '' local broader_titles = reference.snaks['P6333'] -- বৃহদতর পরিধিতে কাজের শিরোনাম if broader_titles ~= nil then broader_title = " ''" .. broader_titles[1].datavalue.value.text .. "''" table.insert(inside_text_parts, broader_title) end local archive_url = nil local archive_urls = reference.snaks['P1065'] -- আর্কাইভের ইউআরএল if archive_urls ~= nil then archive_url = archive_urls[1].datavalue.value end local publication_date = '' local publication_dates = reference.snaks['P577'] -- প্রকাশনার তারিখ if publication_dates ~= nil then publication_date = converter._main(wb.formatValue(publication_dates[1])) table.insert(inside_text_parts, publication_date) end local retrieval_date = nil local retrieval_dates = reference.snaks['P813'] -- সংগ্রহের তারিখ if retrieval_dates ~= nil then local retrieval_date = converter._main(wb.formatValue(retrieval_dates[1])) end local archival_date = nil local archival_dates = reference.snaks['P2960'] -- সংগ্রহের তারিখ if archival_dates ~= nil then archival_date = converter._main(wb.formatValue(archival_dates[1])) end local archive_url_string = '' if archive_url ~= nil then if archival_date ~= nil then archive_url_string = ' ([' .. archive_url .. ' ' .. mw.ustring.gsub(archive_dated, '$1', archival_date) .. '])' else archive_url_string = ' ([' .. archive_url .. ' ' .. archive_undated .. '])' end table.insert(inside_text_parts, archive_url_string) end end local example_from_publishedin_out = '' local example_from_link = nil if example_from_id ~= nil then for property, format_string in pairs(indicator_format_strings) do for i, statement in pairs(wb.getEntity(example_from_id):getBestStatements(property)) do local example_from_author = statement.mainsnak.datavalue if example_from_author ~= nil then example_from_author = example_from_author.value.id elseif statement.mainsnak.snaktype == 'somevalue' then example_from_author = 'Q4233718' elseif statement.mainsnak.snaktype == 'novalue' then example_from_author = 'Q4233718' -- TODO: find a useful item for 'novalue' end local example_from_author_text = wb.getLabel( example_from_author ) local wikisource_link = wb.getSitelink( example_from_author, target_wikisource ) local wikipedia_link = wb.getSitelink( example_from_author, base_lang_wiki ) local example_from_author_link = nil if wikisource_link ~= nil then example_from_author_link = ':s:' .. wikisource_link elseif wikipedia_link ~= nil then example_from_author_link = ':w:' .. wikipedia_link elseif wb.getSitelink( example_from_author, fallback_wikisource ) ~= nil then -- wikisource_link is nil example_from_author_link = ':s:en:' .. wb.getSitelink( example_from_author, fallback_wikisource ) end if example_from_author_link ~= nil then from_author_line = "—[[" .. example_from_author_link .. '|' .. example_from_author_text .. "]]" else from_author_line = "—[[:d:" .. example_from_author .. '|' .. example_from_author_text .. ']]' end from_author_line = mw.ustring.gsub(format_string, '$1', from_author_line) table.insert(inside_text_parts, from_author_line) end end example_from_link = wb.getSitelink( example_from_id, target_wikisource ) if example_from_link == nil then example_from_link = 'en:' .. wb.getSitelink( example_from_id, fallback_wikisource ) end end if example_from_link ~= nil then table.insert(inside_text_parts, '[[File:Wikisource-logo.svg|16px|link=s:]] [[:s:' .. example_from_link .. '|' .. example_from_text .. ']]') elseif example_from_text ~= '' then if example_from_id ~= nil then table.insert(inside_text_parts, '[[:d:' .. example_from_id .. '|' .. example_from_text .. ']]') else table.insert(inside_text_parts, example_from_text) end end if example_from_id ~= nil then local published_in = wb.getEntity(example_from_id):getBestStatements('P1433') if #published_in ~= 0 then -- এতে প্রকাশিত local example_from_publishedin = published_in[1].mainsnak.datavalue.value.id local example_from_publishedin_text = wb.getLabelByLang( example_from_publishedin, base_lang_code_labels ) if example_from_publishedin_text == nil then for i, fallback_lang in ipairs(mw_lang.getFallbacksFor( base_lang_code_labels )) do if wb.getLabelByLang( example_from_publishedin, fallback_lang ) ~= nil then example_from_publishedin_text = wb.getLabelByLang( example_from_publishedin, fallback_lang ) end end end if example_from_publishedin_text == nil then for i, label in pairs(wb.getEntity(example_from_publishedin)['labels']) do example_from_publishedin_text = label['value'] break end end local example_from_publishedin_link = wb.getSitelink( example_from_publishedin, target_wikisource ) if example_from_publishedin_link == nil then example_from_publishedin_link = wb.getSitelink( example_from_publishedin, fallback_wikisource ) or '' end if example_from_publishedin_link == '' then example_from_publishedin_out = " (" .. mw.ustring.gsub(published_in_format_string, "$1", "''" .. example_from_publishedin_text .. "''") .. ")" else example_from_publishedin_out = " (" .. mw.ustring.gsub(published_in_format_string, "$1", "[[:s:" .. example_from_publishedin_link .. '|' .. example_from_publishedin_text .. ']]') .. ')' end elseif reference.snaks['P1433'] ~= nil then local example_from_publishedin = reference.snaks['P1433'][1].datavalue.value.id local example_from_publishedin_text = wb.getLabelByLang( example_from_publishedin, base_lang_code_labels ) if example_from_publishedin_text == nil then for i, fallback_lang in ipairs(mw_lang.getFallbacksFor( base_lang_code_labels )) do if wb.getLabelByLang( example_from_publishedin, fallback_lang ) ~= nil then example_from_publishedin_text = wb.getLabelByLang( example_from_publishedin, fallback_lang ) end end end local example_from_publishedin_link = wb.getSitelink( example_from_publishedin, target_wikisource ) or '' if example_from_publishedin_link == '' then example_from_publishedin_out = " (" .. mw.ustring.gsub(published_in_format_string, "$1", "''" .. example_from_publishedin_text .. "''") .. ")" else example_from_publishedin_out = " (" .. mw.ustring.gsub(published_in_format_string, "$1", "[[:s:" .. example_from_publishedin_link .. '|' .. example_from_publishedin_text .. ']]') .. ')' end end end if example_from_publishedin_out ~= '' then table.insert(inside_text_parts, example_from_publishedin_out) end local example_from_lines = '' for property, format_string in pairs(specifier_format_strings) do if reference.snaks[property] ~= nil then example_from_lines = reference.snaks[property][1].datavalue.value -- পংক্তি(গুলো) example_from_lines = mw.ustring.gsub(format_string, '$1', converter._main(example_from_lines)) table.insert(inside_text_parts, example_from_lines) end end return table.concat(inside_text_parts, ', ') end return p bv0tpy0djx44yfw99qjcxmclu7z9rbl মডিউল:translations/styles.css 828 156246 507673 504489 2026-04-10T19:17:33Z Redmin 6857 507673 sanitized-css text/css .translations { width: 100%; } .translations-cell { background-color: #FFF; color: black; vertical-align: top; text-align: left; } nghto5d1ebfp8j1zagdgm28st5a5szr অশা 0 158481 507752 501795 2026-04-11T09:50:11Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719190-এর সাথে সংযোগ তৈরি করছি 507752 wikitext text/x-wiki =={{langname|bn}}== ===উচ্চারণ=== * অশা ===ব্যুৎপত্তি=== * [ < রশা = রশি, আ [[প্রত্যয়]] বৃহদার্থে ]; রাজশাহী জেলা; [[আঞ্চলিক]] ===বিশেষ্য=== {{বিশেষ্য|bn}} # কাছি, মোটা দড়ি #: শক‍্ত অশা নিয়া নাও বান‍্ধ। {{লে|L719190}} iyimbnfmkz1ip7t5qz73oy87ttu4d0u অংশভাক 0 163962 507672 465017 2026-04-10T18:53:30Z WikitanvirBot 479 বট: [[অংশভাক্]] পাতায় করা দ্বিপুনর্নির্দেশনা ঠিক করেছে 507672 wikitext text/x-wiki #পুনর্নির্দেশ [[অংশভাক্]] s07ul7qeanjc9hn96ejj5rjfn3sf78u اخ 0 164522 507740 502254 2026-04-11T07:27:54Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L1562165-এর সাথে সংযোগ তৈরি করছি 507740 wikitext text/x-wiki {{লে|L1562165}} fs8r01glsyigd8ior0is0twas5fvrds slop 0 165355 507631 504743 2026-04-10T15:02:49Z Redmin 6857 507631 wikitext text/x-wiki {{লে|L1482691}} {{লে|L18468|0}} 3zk0ocl433lenvs77t4x231amcvz3t4 كاد 0 167220 507623 2026-04-10T14:33:16Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L1480605-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507623 wikitext text/x-wiki {{লে|L1480605}} 093lohy9xeqgnywc7xi9iowz4q94xo6 erstwhile 0 167221 507624 2026-04-10T14:33:29Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L189993-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507624 wikitext text/x-wiki {{লে|L189993}} lbkhg9ujgyx4qmll5orkb4ovq7sny13 507625 507624 2026-04-10T14:33:50Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L336525-এর সাথে সংযোগ তৈরি করছি 507625 wikitext text/x-wiki {{লে|L189993}} {{লে|L336525|না}} 3czt02565iqxyan03up1ed2fvulhjvf অহোর্‌ 0 167222 507638 2026-04-10T16:58:04Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719244-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507638 wikitext text/x-wiki {{লে|L719244}} n04y5463xetukk3q4uanirhuo7xpkat অহোং 0 167223 507639 2026-04-10T16:58:11Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719243-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507639 wikitext text/x-wiki {{লে|L719243}} lwlom55pjsdk6r7cqbahc0f6w2p2fyg অহুঁকে 0 167224 507640 2026-04-10T16:59:15Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719242-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507640 wikitext text/x-wiki {{লে|L719242}} t2im9s9kqx5tzw33dyw2mqmhfmyx7br অহাস্‌স 0 167225 507641 2026-04-10T16:59:22Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719241-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507641 wikitext text/x-wiki {{লে|L719241}} g04e0742dbj2jrt7wanu3oopb6m5krs অহমানিত 0 167226 507643 2026-04-10T17:02:20Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719240-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507643 wikitext text/x-wiki {{লে|L719240}} qkf3fstdmybk5je4dwkya0m0bvnu12p অহমান্‌ 0 167227 507644 2026-04-10T17:02:29Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719239-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507644 wikitext text/x-wiki {{লে|L719239}} 5u31jdfr3bsnnl28xtlasizwt95c2z7 অহদিগে 0 167228 507645 2026-04-10T17:02:35Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719238-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507645 wikitext text/x-wiki {{লে|L719238}} e3yarveqpg8a5hx84k8xp6tzj3hx2pz অস্তোরো 0 167229 507646 2026-04-10T17:03:23Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719237-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507646 wikitext text/x-wiki {{লে|L719237}} a2wqvksd22ii87oj8rpmv54ihgox9rg অস্তান্‌ 0 167230 507647 2026-04-10T17:03:31Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719236-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507647 wikitext text/x-wiki {{লে|L719236}} ac14ydke6ychu4hpthgwj4j71qb0niu অস্তাজ্‌ 0 167231 507648 2026-04-10T17:07:52Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719235-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507648 wikitext text/x-wiki {{লে|L719235}} s7nybri0bq8nkqvbebva5s6mo5bdy1j অস্তাই 0 167232 507649 2026-04-10T17:08:05Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719234-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507649 wikitext text/x-wiki {{লে|L719234}} 1n0skns48dswlk3dxtnw0uk07fpdgnr অস্কা-খেস্কা 0 167233 507650 2026-04-10T17:09:47Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719233-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507650 wikitext text/x-wiki {{লে|L719233}} 9vbwk3fsudl1ne2iow8k3mio04rj6ww অসৌজ্‌ 0 167234 507651 2026-04-10T17:09:54Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719232-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507651 wikitext text/x-wiki {{লে|L719232}} 9uhi71xeihlb0etkgn3h76ae030i2kl অসোটা 0 167235 507652 2026-04-10T17:10:02Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719231-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507652 wikitext text/x-wiki {{লে|L719231}} g69l319bvhvlpbtqdmvb4e0t8hqm4b4 অসোইজ্‌ 0 167236 507653 2026-04-10T17:10:15Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719230-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507653 wikitext text/x-wiki {{লে|L719230}} 0illzsux5yn3sfsxsayinasaeleayzw অসুবিস্তা 0 167237 507654 2026-04-10T17:10:25Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719229-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507654 wikitext text/x-wiki {{লে|L719229}} fr9l2xo3i82b60v1oi7o2z0vzm35gbp অসুন্‌ 0 167238 507655 2026-04-10T17:16:02Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719228-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507655 wikitext text/x-wiki {{লে|L719228}} 1m2v636l3h7gftxs8zjpopacd3k0zl2 অসুদ্‌ 0 167239 507656 2026-04-10T17:20:17Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719227-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507656 wikitext text/x-wiki {{লে|L719227}} dr036qdy4x95y9hj1x2xz330swe0gkq অসুজ্‌ 0 167240 507657 2026-04-10T17:23:02Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719226-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507657 wikitext text/x-wiki {{লে|L719226}} qujahplcijeqfxc16nhp3gdckeqd976 অসাহিত্‌ 0 167241 507658 2026-04-10T17:23:13Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719225-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507658 wikitext text/x-wiki {{লে|L719225}} dtfcgnit2f16jvv6a7jcm44c7e7vetr অসামরৎ 0 167242 507659 2026-04-10T17:24:55Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719224-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507659 wikitext text/x-wiki {{লে|L719224}} 15erbedyeb7d5ebqssrx1oc447g2v7n অসান্‌ 0 167243 507660 2026-04-10T17:25:04Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719223-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507660 wikitext text/x-wiki {{লে|L719223}} qx7iatyyg2pp05mh2ktwskl8pm7e0kq অসাড়ে-পসাড়ে 0 167244 507661 2026-04-10T17:25:11Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719222-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507661 wikitext text/x-wiki {{লে|L719222}} soy9jn05p7mxwubix6d42hoexjz79ck অসাইল্যা 0 167245 507662 2026-04-10T17:25:17Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719221-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507662 wikitext text/x-wiki {{লে|L719221}} 9q0yyvpi6paimvf54m1vc4j4rwbi6ha অসা 0 167246 507665 2026-04-10T17:26:28Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719220-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507665 wikitext text/x-wiki {{লে|L719220}} nc2mjlt41aicnbxe69wbachr5krqiy8 অসহুজ্‌ 0 167247 507666 2026-04-10T17:26:33Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719219-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507666 wikitext text/x-wiki {{লে|L719219}} qyk8t4kcacxhlh2283xqltkr3k9cl9e অসম্বাল্‌ 0 167248 507667 2026-04-10T17:26:41Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719217-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507667 wikitext text/x-wiki {{লে|L719217}} oc7hc8k44vhsh1lfkkxwsylugylrbrf অসমাই 0 167249 507669 2026-04-10T17:29:04Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719216-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507669 wikitext text/x-wiki {{লে|L719216}} it7n5bp548vosntd5tldhm2sag0x3sw অসম্‌কা 0 167250 507670 2026-04-10T17:29:12Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719215-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507670 wikitext text/x-wiki {{লে|L719215}} kcz14cmvdhuugzaz478b6wb02obive9 অস্‌সার্‌ 0 167251 507671 2026-04-10T17:29:38Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719214-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507671 wikitext text/x-wiki {{লে|L719214}} hng5bnrjs7x7zdqjllfsnm8l9qa7ehq ἐμμένω 0 167252 507677 2026-04-11T03:08:26Z Sabah Azman Nahean 12022 "==প্রাচীন গ্রিক== ===বিকল্প রূপসমূহ=== * {{alter|grc|ἐμμίμνω||কাব্যিক রূপ}} ===ব্যুৎপত্তি=== {{m|grc|ἐν||মধ্যে}} + {{m|grc|μένω||থাকা বা অবস্থান করা}} এর সমন্বয়ে গঠিত। ===উচ্চারণ=== * আধ্বব: /em.mé.nɔː/ (খ্রিস্টপূর্ব..." দিয়ে পাতা তৈরি 507677 wikitext text/x-wiki ==প্রাচীন গ্রিক== ===বিকল্প রূপসমূহ=== * {{alter|grc|ἐμμίμνω||কাব্যিক রূপ}} ===ব্যুৎপত্তি=== {{m|grc|ἐν||মধ্যে}} + {{m|grc|μένω||থাকা বা অবস্থান করা}} এর সমন্বয়ে গঠিত। ===উচ্চারণ=== * আধ্বব: /em.mé.nɔː/ (খ্রিস্টপূর্ব ৫ম শতাব্দী) * আধ্বব: /em.mé.no/ (১ম শতাব্দী) ===ক্রিয়া=== {{grc-verb}} # কোনো স্থানে [[অবস্থান করা]] বা [[টিকে থাকা]]। #* {{Q|grc|Th.||2|23}} ## কোনো সিদ্ধান্তে [[অটল থাকা]], [[মেনে চলা]], বা [[বিশ্বস্ত থাকা]] (যেমন: কোনো চুক্তি বা আইন মেনে চলা)। ##* {{Q|grc|Pl.|Ap.|39|B}} ##* {{Q|grc|Hdt.||9|106}} ## {{lb|grc|বস্তুর ক্ষেত্রে}} স্থির থাকা, অটুট থাকা বা বৈধ থাকা। ##* {{Q|grc|A.|Pr.|534}} ====ক্রিয়ারূপ==== Present: '''ἐμμένω''' {| class="wikitable" ! colspan="2" |number ! colspan="3" |singular ! colspan="2" |dual ! colspan="3" |plural |- ! colspan="2" | !first !second !third !second !third !first !second !third |- ! rowspan="4" |active !indicative |'''ἐμμένω''' |ἐμμένεις |ἐμμένει |ἐμμένετον |ἐμμένετον |ἐμμένομεν |ἐμμένετε |ἐμμένουσῐ(ν) |- !subjunctive |'''ἐμμένω''' |ἐμμένῃς |ἐμμένῃ |ἐμμένητον |ἐμμένητον |ἐμμένωμεν |ἐμμένητε |ἐμμένωσῐ(ν) |- !optative |ἐμμένοιμῐ |ἐμμένοις |ἐμμένοι |ἐμμένοιτον |ἐμμενοίτην |ἐμμένοιμεν |ἐμμένοιτε |ἐμμένοιεν |- !imperative | |ἔμμενε |ἐμμενέτω |ἐμμένετον |ἐμμενέτων | |ἐμμένετε |ἐμμενόντων |- ! colspan="2" | ! colspan="4" |active ! colspan="4" | |- ! colspan="2" |infinitive | colspan="4" |ἐμμένειν | colspan="4" | |- ! rowspan="3" |participle !m | colspan="4" |ἐμμένων | colspan="4" | |- !f | colspan="4" |ἐμμένουσᾰ | colspan="4" | |- !n | colspan="4" |ἐμμένον | colspan="4" | |- !Notes: | colspan="13" |This table gives Attic inflectional endings. For conjugation in dialects other than Attic, see Appendix:Ancient Greek dialectal conjugation. |}    Imperfect: ἐνέμενον {| class="wikitable" ! colspan="2" |number ! colspan="3" |singular ! colspan="2" |dual ! colspan="3" |plural |- ! colspan="2" | !first !second !third !second !third !first !second !third |- ! rowspan="1" |active !indicative |ἐνέμενον |ἐνέμενες |ἐνέμενε(ν) |ἐνεμένετον |ἐνεμενέτην |ἐνεμένομεν |ἐνεμένετε |ἐνέμενον |- !Notes: | colspan="13" |This table gives Attic inflectional endings. For conjugation in dialects other than Attic, see Appendix:Ancient Greek dialectal conjugation. |}    Future: ἐμμενέω (Uncontracted) {| class="wikitable" ! colspan="2" |number ! colspan="3" |singular ! colspan="2" |dual ! colspan="3" |plural |- ! colspan="2" | !first !second !third !second !third !first !second !third |- ! rowspan="2" |active !indicative |ἐμμενέω |ἐμμενέεις |ἐμμενέει |ἐμμενέετον |ἐμμενέετον |ἐμμενέομεν |ἐμμενέετε |ἐμμενέουσῐ(ν) |- !optative |ἐμμενέοιμῐ |ἐμμενέοις |ἐμμενέοι |ἐμμενέοιτον |ἐμμενεοίτην |ἐμμενέοιμεν |ἐμμενέοιτε |ἐμμενέοιεν |- ! colspan="2" | ! colspan="3" |active ! colspan="2" | ! colspan="3" | |- ! colspan="2" |infinitive | colspan="3" |ἐμμενέειν | colspan="2" | | colspan="3" | |- ! rowspan="3" |participle !m | colspan="3" |ἐμμενέων | colspan="2" | | colspan="3" | |- !f | colspan="3" |ἐμμενέουσᾰ | colspan="2" | | colspan="3" | |- !n | colspan="3" |ἐμμενέον | colspan="2" | | colspan="3" | |- !Notes: | colspan="13" |This table gives Attic inflectional endings. For conjugation in dialects other than Attic, see Appendix:Ancient Greek dialectal conjugation. |}    Future: ἐμμενῶ (Contracted) {| class="wikitable" ! colspan="2" |number ! colspan="3" |singular ! colspan="2" |dual ! colspan="3" |plural |- ! colspan="2" | !first !second !third !second !third !first !second !third |- ! rowspan="2" |active !indicative |ἐμμενῶ |ἐμμενεῖς |ἐμμενεῖ |ἐμμενεῖτον |ἐμμενεῖτον |ἐμμενοῦμεν |ἐμμενεῖτε |ἐμμενοῦσῐ(ν) |- !optative |ἐμμενοίην, ἐμμενοῖμῐ |ἐμμενοίης, ἐμμενοῖς |ἐμμενοίη, ἐμμενοῖ |ἐμμενοῖτον, ἐμμενοίητον |ἐμμενοίτην, ἐμμενοιήτην |ἐμμενοῖμεν, ἐμμενοίημεν |ἐμμενοῖτε, ἐμμενοίητε |ἐμμενοῖεν, ἐμμενοίησᾰν |- ! colspan="2" | ! colspan="3" |active ! colspan="2" | ! colspan="3" | |- ! colspan="2" |infinitive | colspan="3" |ἐμμενεῖν | colspan="2" | | colspan="3" | |- ! rowspan="3" |participle !m | colspan="3" |ἐμμενῶν | colspan="2" | | colspan="3" | |- !f | colspan="3" |ἐμμενοῦσᾰ | colspan="2" | | colspan="3" | |- !n | colspan="3" |ἐμμενοῦν | colspan="2" | | colspan="3" | |- !Notes: | colspan="13" |This table gives Attic inflectional endings. For conjugation in dialects other than Attic, see Appendix:Ancient Greek dialectal conjugation. |}    Aorist: ἐνέμεινᾰ {| class="wikitable" ! colspan="2" |number ! colspan="3" |singular ! colspan="2" |dual ! colspan="3" |plural |- ! colspan="2" | !first !second !third !second !third !first !second !third |- ! rowspan="4" |active !indicative |ἐνέμεινᾰ |ἐνέμεινᾰς |ἐνέμεινε(ν) |ἐνεμείνᾰτον |ἐνεμεινᾰ́την |ἐνεμείνᾰμεν |ἐνεμείνᾰτε |ἐνέμεινᾰν |- !subjunctive |ἐμμείνω |ἐμμείνῃς |ἐμμείνῃ |ἐμμείνητον |ἐμμείνητον |ἐμμείνωμεν |ἐμμείνητε |ἐμμείνωσῐ(ν) |- !optative |ἐμμείναιμῐ |ἐμμείνειᾰς, ἐμμείναις |ἐμμείνειε(ν), ἐμμείναι |ἐμμείναιτον |ἐμμειναίτην |ἐμμείναιμεν |ἐμμείναιτε |ἐμμείνειᾰν, ἐμμείναιεν |- !imperative | |ἔμμεινον |ἐμμεινᾰ́τω |ἐμμείνᾰτον |ἐμμεινᾰ́των | |ἐμμείνᾰτε |ἐμμεινᾰ́ντων |- ! colspan="2" | ! colspan="3" |active ! colspan="2" | ! colspan="3" | |- ! colspan="2" |infinitive | colspan="3" |ἐμμεῖναι | colspan="2" | | colspan="3" | |- ! rowspan="3" |participle !m | colspan="3" |ἐμμείνᾱς | colspan="2" | | colspan="3" | |- !f | colspan="3" |ἐμμείνᾱσᾰ | colspan="2" | | colspan="3" | |- !n | colspan="3" |ἐμμεῖνᾰν | colspan="2" | | colspan="3" | |- !Notes: | colspan="13" |This table gives Attic inflectional endings. For conjugation in dialects other than Attic, see Appendix:Ancient Greek dialectal conjugation. |}    Perfect: ἐμμεμένηκᾰ {| class="wikitable" ! colspan="2" |number ! colspan="3" |singular ! colspan="2" |dual ! colspan="3" |plural |- ! colspan="2" | !first !second !third !second !third !first !second !third |- ! rowspan="4" |active !indicative |ἐμμεμένηκᾰ |ἐμμεμένηκᾰς |ἐμμεμένηκε(ν) |ἐμμεμενήκᾰτον |ἐμμεμενήκᾰτον |ἐμμεμενήκᾰμεν |ἐμμεμενήκᾰτε |ἐμμεμενήκᾱσῐ(ν) |- !subjunctive |ἐμμεμενήκω |ἐμμεμενήκῃς |ἐμμεμενήκῃ |ἐμμεμενήκητον |ἐμμεμενήκητον |ἐμμεμενήκωμεν |ἐμμεμενήκητε |ἐμμεμενήκωσῐ(ν) |- !optative |ἐμμεμενήκοιμῐ, ἐμμεμενηκοίην |ἐμμεμενήκοις, ἐμμεμενηκοίης |ἐμμεμενήκοι, ἐμμεμενηκοίη |ἐμμεμενήκοιτον |ἐμμεμενηκοίτην |ἐμμεμενήκοιμεν |ἐμμεμενήκοιτε |ἐμμεμενήκοιεν |- !imperative | |ἐμμεμένηκε |ἐμμεμενηκέτω |ἐμμεμενήκετον |ἐμμεμενηκέτων | |ἐμμεμενήκετε |ἐμμεμενηκόντων |- ! colspan="2" | ! colspan="4" |active ! colspan="4" | |- ! colspan="2" |infinitive | colspan="4" |ἐμμεμενηκέναι | colspan="4" | |- ! rowspan="3" |participle !m | colspan="4" |ἐμμεμενηκώς | colspan="4" | |- !f | colspan="4" |ἐμμεμενηκυῖᾰ | colspan="4" | |- !n | colspan="4" |ἐμμεμενηκός | colspan="4" | |- !Notes: | colspan="13" |This table gives Attic inflectional endings. For conjugation in dialects other than Attic, see Appendix:Ancient Greek dialectal conjugation. |} ====আগত পদসমূহ==== {{col2|grc |δῐεμμένω |ἐμμονή |ἔμμονος }} ===আরও পড়ুন=== * {{R:grc:LSJ}} * {{R:grc:Middle Liddell}} * {{R:Strong's}} djdaaup0k7mylszq4dm7ts9bcjdzu8i 507678 507677 2026-04-11T03:11:37Z Sabah Azman Nahean 12022 507678 wikitext text/x-wiki ==প্রাচীন গ্রিক== ===বিকল্প রূপসমূহ=== * {{alter|grc|ἐμμίμνω||কাব্যিক রূপ}} ===ব্যুৎপত্তি=== {{m|grc|ἐν||মধ্যে}} + {{m|grc|μένω||থাকা বা অবস্থান করা}} এর সমন্বয়ে গঠিত। ===উচ্চারণ=== * আধ্বব: /em.mé.nɔː/ (খ্রিস্টপূর্ব ৫ম শতাব্দী) * আধ্বব: /em.mé.no/ (১ম শতাব্দী) ===ক্রিয়া=== {{grc-verb}} # কোনো [[স্থান|স্থানে]] [[অবস্থান]] [[করা]] বা [[টিকে থাকা]]। #* {{Q|grc|Th.||2|23}} ## কোনো সিদ্ধান্তে [[অটল থাকা]], [[মান্য|মেনে]] [[চলা]], বা [[বিশ্বস্ত]] [[থাকা]] (যেমন: কোনো [[চুক্তি]] বা [[আইন]] মেনে চলা)। ##* {{Q|grc|Pl.|Ap.|39|B}} ##* {{Q|grc|Hdt.||9|106}} ## {{lb|grc|বস্তুর ক্ষেত্রে}} স্থির থাকা, অটুট থাকা বা বৈধ থাকা। ##* {{Q|grc|A.|Pr.|534}} ====ক্রিয়ারূপ==== Present: '''ἐμμένω''' {| class="wikitable" ! colspan="2" |বচন ! colspan="3" |একবচন ! colspan="2" |দ্বিবচন ! colspan="3" |বহুবচন |- ! colspan="2" | !উত্তম পুরুষ !মধ্যম পুরুষ !প্রথম পুরুষ !মধ্যম পুরুষ !প্রথম পুরুষ !উত্তম পুরুষ !মধ্যম পুরুষ !প্রথম পুরুষ |- ! rowspan="4" |কর্তৃবাচ্য !নির্দেশাত্মক |'''ἐμμένω''' |ἐμμένεις |ἐμμένει |ἐμμένετον |ἐμμένετον |ἐμμένομεν |ἐμμένετε |ἐμμένουσῐ(ν) |- !আদেশবাচক |'''ἐμμένω''' |ἐμμένῃς |ἐμμένῃ |ἐμμένητον |ἐμμένητον |ἐμμένωμεν |ἐμμένητε |ἐμμένωσῐ(ν) |- !optative |ἐμμένοιμῐ |ἐμμένοις |ἐμμένοι |ἐμμένοιτον |ἐμμενοίτην |ἐμμένοιμεν |ἐμμένοιτε |ἐμμένοιεν |- !imperative | |ἔμμενε |ἐμμενέτω |ἐμμένετον |ἐμμενέτων | |ἐμμένετε |ἐμμενόντων |- ! colspan="2" | ! colspan="4" |active ! colspan="4" | |- ! colspan="2" |infinitive | colspan="4" |ἐμμένειν | colspan="4" | |- ! rowspan="3" |participle !m | colspan="4" |ἐμμένων | colspan="4" | |- !f | colspan="4" |ἐμμένουσᾰ | colspan="4" | |- !n | colspan="4" |ἐμμένον | colspan="4" | |- !Notes: | colspan="13" |This table gives Attic inflectional endings. For conjugation in dialects other than Attic, see Appendix:Ancient Greek dialectal conjugation. |}    Imperfect: ἐνέμενον {| class="wikitable" ! colspan="2" |number ! colspan="3" |singular ! colspan="2" |dual ! colspan="3" |plural |- ! colspan="2" | !first !second !third !second !third !first !second !third |- ! rowspan="1" |active !indicative |ἐνέμενον |ἐνέμενες |ἐνέμενε(ν) |ἐνεμένετον |ἐνεμενέτην |ἐνεμένομεν |ἐνεμένετε |ἐνέμενον |- !Notes: | colspan="13" |This table gives Attic inflectional endings. For conjugation in dialects other than Attic, see Appendix:Ancient Greek dialectal conjugation. |}    Future: ἐμμενέω (Uncontracted) {| class="wikitable" ! colspan="2" |number ! colspan="3" |singular ! colspan="2" |dual ! colspan="3" |plural |- ! colspan="2" | !first !second !third !second !third !first !second !third |- ! rowspan="2" |active !indicative |ἐμμενέω |ἐμμενέεις |ἐμμενέει |ἐμμενέετον |ἐμμενέετον |ἐμμενέομεν |ἐμμενέετε |ἐμμενέουσῐ(ν) |- !optative |ἐμμενέοιμῐ |ἐμμενέοις |ἐμμενέοι |ἐμμενέοιτον |ἐμμενεοίτην |ἐμμενέοιμεν |ἐμμενέοιτε |ἐμμενέοιεν |- ! colspan="2" | ! colspan="3" |active ! colspan="2" | ! colspan="3" | |- ! colspan="2" |infinitive | colspan="3" |ἐμμενέειν | colspan="2" | | colspan="3" | |- ! rowspan="3" |participle !m | colspan="3" |ἐμμενέων | colspan="2" | | colspan="3" | |- !f | colspan="3" |ἐμμενέουσᾰ | colspan="2" | | colspan="3" | |- !n | colspan="3" |ἐμμενέον | colspan="2" | | colspan="3" | |- !Notes: | colspan="13" |This table gives Attic inflectional endings. For conjugation in dialects other than Attic, see Appendix:Ancient Greek dialectal conjugation. |}    Future: ἐμμενῶ (Contracted) {| class="wikitable" ! colspan="2" |number ! colspan="3" |singular ! colspan="2" |dual ! colspan="3" |plural |- ! colspan="2" | !first !second !third !second !third !first !second !third |- ! rowspan="2" |active !indicative |ἐμμενῶ |ἐμμενεῖς |ἐμμενεῖ |ἐμμενεῖτον |ἐμμενεῖτον |ἐμμενοῦμεν |ἐμμενεῖτε |ἐμμενοῦσῐ(ν) |- !optative |ἐμμενοίην, ἐμμενοῖμῐ |ἐμμενοίης, ἐμμενοῖς |ἐμμενοίη, ἐμμενοῖ |ἐμμενοῖτον, ἐμμενοίητον |ἐμμενοίτην, ἐμμενοιήτην |ἐμμενοῖμεν, ἐμμενοίημεν |ἐμμενοῖτε, ἐμμενοίητε |ἐμμενοῖεν, ἐμμενοίησᾰν |- ! colspan="2" | ! colspan="3" |active ! colspan="2" | ! colspan="3" | |- ! colspan="2" |infinitive | colspan="3" |ἐμμενεῖν | colspan="2" | | colspan="3" | |- ! rowspan="3" |participle !m | colspan="3" |ἐμμενῶν | colspan="2" | | colspan="3" | |- !f | colspan="3" |ἐμμενοῦσᾰ | colspan="2" | | colspan="3" | |- !n | colspan="3" |ἐμμενοῦν | colspan="2" | | colspan="3" | |- !Notes: | colspan="13" |This table gives Attic inflectional endings. For conjugation in dialects other than Attic, see Appendix:Ancient Greek dialectal conjugation. |}    Aorist: ἐνέμεινᾰ {| class="wikitable" ! colspan="2" |number ! colspan="3" |singular ! colspan="2" |dual ! colspan="3" |plural |- ! colspan="2" | !first !second !third !second !third !first !second !third |- ! rowspan="4" |active !indicative |ἐνέμεινᾰ |ἐνέμεινᾰς |ἐνέμεινε(ν) |ἐνεμείνᾰτον |ἐνεμεινᾰ́την |ἐνεμείνᾰμεν |ἐνεμείνᾰτε |ἐνέμεινᾰν |- !subjunctive |ἐμμείνω |ἐμμείνῃς |ἐμμείνῃ |ἐμμείνητον |ἐμμείνητον |ἐμμείνωμεν |ἐμμείνητε |ἐμμείνωσῐ(ν) |- !optative |ἐμμείναιμῐ |ἐμμείνειᾰς, ἐμμείναις |ἐμμείνειε(ν), ἐμμείναι |ἐμμείναιτον |ἐμμειναίτην |ἐμμείναιμεν |ἐμμείναιτε |ἐμμείνειᾰν, ἐμμείναιεν |- !imperative | |ἔμμεινον |ἐμμεινᾰ́τω |ἐμμείνᾰτον |ἐμμεινᾰ́των | |ἐμμείνᾰτε |ἐμμεινᾰ́ντων |- ! colspan="2" | ! colspan="3" |active ! colspan="2" | ! colspan="3" | |- ! colspan="2" |infinitive | colspan="3" |ἐμμεῖναι | colspan="2" | | colspan="3" | |- ! rowspan="3" |participle !m | colspan="3" |ἐμμείνᾱς | colspan="2" | | colspan="3" | |- !f | colspan="3" |ἐμμείνᾱσᾰ | colspan="2" | | colspan="3" | |- !n | colspan="3" |ἐμμεῖνᾰν | colspan="2" | | colspan="3" | |- !Notes: | colspan="13" |This table gives Attic inflectional endings. For conjugation in dialects other than Attic, see Appendix:Ancient Greek dialectal conjugation. |}    Perfect: ἐμμεμένηκᾰ {| class="wikitable" ! colspan="2" |number ! colspan="3" |singular ! colspan="2" |dual ! colspan="3" |plural |- ! colspan="2" | !first !second !third !second !third !first !second !third |- ! rowspan="4" |active !indicative |ἐμμεμένηκᾰ |ἐμμεμένηκᾰς |ἐμμεμένηκε(ν) |ἐμμεμενήκᾰτον |ἐμμεμενήκᾰτον |ἐμμεμενήκᾰμεν |ἐμμεμενήκᾰτε |ἐμμεμενήκᾱσῐ(ν) |- !subjunctive |ἐμμεμενήκω |ἐμμεμενήκῃς |ἐμμεμενήκῃ |ἐμμεμενήκητον |ἐμμεμενήκητον |ἐμμεμενήκωμεν |ἐμμεμενήκητε |ἐμμεμενήκωσῐ(ν) |- !optative |ἐμμεμενήκοιμῐ, ἐμμεμενηκοίην |ἐμμεμενήκοις, ἐμμεμενηκοίης |ἐμμεμενήκοι, ἐμμεμενηκοίη |ἐμμεμενήκοιτον |ἐμμεμενηκοίτην |ἐμμεμενήκοιμεν |ἐμμεμενήκοιτε |ἐμμεμενήκοιεν |- !imperative | |ἐμμεμένηκε |ἐμμεμενηκέτω |ἐμμεμενήκετον |ἐμμεμενηκέτων | |ἐμμεμενήκετε |ἐμμεμενηκόντων |- ! colspan="2" | ! colspan="4" |active ! colspan="4" | |- ! colspan="2" |infinitive | colspan="4" |ἐμμεμενηκέναι | colspan="4" | |- ! rowspan="3" |participle !m | colspan="4" |ἐμμεμενηκώς | colspan="4" | |- !f | colspan="4" |ἐμμεμενηκυῖᾰ | colspan="4" | |- !n | colspan="4" |ἐμμεμενηκός | colspan="4" | |- !Notes: | colspan="13" |This table gives Attic inflectional endings. For conjugation in dialects other than Attic, see Appendix:Ancient Greek dialectal conjugation. |} ====আগত পদসমূহ==== {{col2|grc |δῐεμμένω |ἐμμονή |ἔμμονος }} ===আরও পড়ুন=== * {{R:grc:LSJ}} * {{R:grc:Middle Liddell}} * {{R:Strong's}} bv6oasfr6980z6ywz73gbthspvsxmsi antiprejudice 0 167253 507679 2026-04-11T03:32:53Z Sabah Azman Nahean 12022 "==ইংরেজি== ===ব্যুৎপত্তি=== {{prefix|en|anti|prejudice}} থেকে গঠিত। ===বিশেষণ=== {{en-adj}} # [[পূর্বগ্রহ]]বিরোধী; [[কুসংস্কার]] বা [[বিদ্বেষ]]-বিরোধী, যা [[পূর্বধারণা]][[প্রসূত]] [[বৈষম্য|বৈষম্যের]] [[বিরোধিতা]] করে। #:..." দিয়ে পাতা তৈরি 507679 wikitext text/x-wiki ==ইংরেজি== ===ব্যুৎপত্তি=== {{prefix|en|anti|prejudice}} থেকে গঠিত। ===বিশেষণ=== {{en-adj}} # [[পূর্বগ্রহ]]বিরোধী; [[কুসংস্কার]] বা [[বিদ্বেষ]]-বিরোধী, যা [[পূর্বধারণা]][[প্রসূত]] [[বৈষম্য|বৈষম্যের]] [[বিরোধিতা]] করে। #: {{ux|en|I am free of all '''prejudice'''; I am anti-prejudice.|t=আমি [[সর্ব]][[প্রকার]] '''[[পূর্বগ্রহ]]'''[[বিনির্মুক্ত]]; আমি পূর্বগ্রহবিরোধী।}} ====অনুবাদ==== {{trans-top|পূর্বগ্রহবিরোধী}} * পর্তুগিজ: {{t|pt|antipreconceito}} {{trans-bottom}} 909cwul0cj319sccd9xjkv24u63pp2h terminate with extreme prejudice 0 167254 507680 2026-04-11T03:34:06Z Sabah Azman Nahean 12022 "==ইংরেজি== ===ব্যুৎপত্তি=== শব্দবন্ধটি প্রথম ১৯৬৯ সালের দিকে দেখা যায়। এটি মূলত মার্কিন সামরিক গোয়েন্দা সংস্থা এবং সিআইএ (CIA)-র গোপন নথি থেকে উদ্ভূত, যা পরবর্তীতে 'গ্রিন বেরেট..." দিয়ে পাতা তৈরি 507680 wikitext text/x-wiki ==ইংরেজি== ===ব্যুৎপত্তি=== শব্দবন্ধটি প্রথম ১৯৬৯ সালের দিকে দেখা যায়। এটি মূলত মার্কিন সামরিক গোয়েন্দা সংস্থা এবং সিআইএ (CIA)-র গোপন নথি থেকে উদ্ভূত, যা পরবর্তীতে 'গ্রিন বেরেট কেস' (Green Beret Case) সংক্রান্ত সংবাদ প্রতিবেদনে আলোচিত হয় এবং ১৯৭৯ সালের বিখ্যাত সিনেমা ''এপোক্যালিপস নাউ'' (Apocalypse Now)-এর মাধ্যমে ব্যাপকভাবে জনপ্রিয় হয়। এটি মূলত চাকরির পরিভাষা ''terminate with prejudice''-এর ওপর ভিত্তি করে তৈরি একটি শ্লেষাত্মক শব্দবন্ধ। সাধারণত চাকরিতে এর অর্থ হলো 'ভবিষ্যতে এই কর্মীকে আর নিয়োগ দেওয়া হবে না' (অর্থাৎ নিয়োগের ক্ষেত্রে তার বিরুদ্ধে একটি স্থায়ী নেতিবাচক মনোভাব বা prejudice তৈরি হওয়া)। গোয়েন্দা সংস্থাগুলো এই পরিভাষাকেই 'স্থায়ীভাবে বা চূড়ান্তভাবে বরখাস্ত করা' অর্থাৎ 'হত্যা করা' অর্থে ব্যবহার শুরু করে। ===ক্রিয়া=== {{en-verb|*}} # {{lb|en|কোমলভাষণ|যুক্তরাষ্ট্র}} [[হত্যা করা]]; [[গুপ্তহত্যা]] করা। #: {{ux|en|The government ordered the spies to be '''terminated with extreme prejudice'''.|সরকার গোয়েন্দাদের '''চূড়ান্তভাবে নির্মূল করার''' নির্দেশ দিয়েছিল; তারা চায়নি যে কোনো প্রকাশ্য বিচারে তারা নিজেদের জানা তথ্যগুলো ফাঁস করে দিক।}} #* {{quote-journal|en|author=Terence Smith|title=Details of Green Beret Case Are Reported in Saigon|journal=The New York Times|date=August 14 1969 |passage=...বললেন তাকে হয় বিচ্ছিন্ন করা হোক অথবা ‘'''টার্মিনেট উইথ এক্সট্রিম প্রেজুডিস'''’ করা হোক। এই পরিভাষাটিকে গোয়েন্দা সংস্থায় মৃত্যুদণ্ডের কোমলভাষণ (euphemism) হিসেবে বলা হয়।}} ====জাত শব্দসমূহ==== * {{l|en|tweep}} (TWEP-এর সংক্ষিপ্ত রূপ) * {{l|en|extreme prejudice}} ====সম্পর্কিত শব্দসমূহ==== * {{l|en|with prejudice}} * {{l|en|without prejudice}} ===আরও দেখুন=== * {{l|en|wet work}} (গোয়েন্দা ভাষার 'রক্তাক্ত কাজ') * {{l|en|assassination}} (গুপ্তহত্যা) ===তথ্যসূত্র=== <references/> jxk7c8gjo10d6qwmhm1jrnbcqtgszek self-prejudice 0 167255 507682 2026-04-11T03:38:50Z Sabah Azman Nahean 12022 "==ইংরেজি== ===বিশেষ্য=== {{en-noun|~}} # [[স্ব-বিদ্বেষ]] বা [[আত্ম-পক্ষপাত]]: [[নিজ|নিজের]] [[সম্পর্ক|সম্পর্কে]] [[সমাজ|সমাজের]] [[নেতিবাচক]] [[গতানুগতিক]] [[ধারণা]], [[বিশ্বাস]] বা [[কলঙ্ক|কলঙ্ককে]] গ্রহণ করা..." দিয়ে পাতা তৈরি 507682 wikitext text/x-wiki ==ইংরেজি== ===বিশেষ্য=== {{en-noun|~}} # [[স্ব-বিদ্বেষ]] বা [[আত্ম-পক্ষপাত]]: [[নিজ|নিজের]] [[সম্পর্ক|সম্পর্কে]] [[সমাজ|সমাজের]] [[নেতিবাচক]] [[গতানুগতিক]] [[ধারণা]], [[বিশ্বাস]] বা [[কলঙ্ক|কলঙ্ককে]] গ্রহণ করা। এটি তখন ঘটে যখন ব্যক্তিরা তাদের পরিচয়, মানসিক স্বাস্থ্য বা সক্ষমতা সম্পর্কিত নেতিবাচক বিচার-বিবেচনাকে নিজেদের ভেতরে প্রয়োগ করে, যা আত্মসম্মান হ্রাস এবং ক্ষতিকর আত্ম-বৈষম্যের কারণ হয়। 0w2e6f13z2w43so2ujm66gahucfayft prejudicious 0 167256 507683 2026-04-11T03:39:49Z Sabah Azman Nahean 12022 "==ইংরেজি== ===ব্যুৎপত্তি=== {{suffix|en|prejudice|ious}} থেকে গঠিত। ===বিশেষণ=== {{en-adj}} # {{lb|en|বিরল}} [[বিদ্বেষপূর্ণ]] বা [[কুসংস্কারাচ্ছন্ন]] হয়ে কাজ করা; যার মধ্যে পূর্বধারণাপ্রসূত পক্ষপাত বিদ্যমান। #* {{quot..." দিয়ে পাতা তৈরি 507683 wikitext text/x-wiki ==ইংরেজি== ===ব্যুৎপত্তি=== {{suffix|en|prejudice|ious}} থেকে গঠিত। ===বিশেষণ=== {{en-adj}} # {{lb|en|বিরল}} [[বিদ্বেষপূর্ণ]] বা [[কুসংস্কারাচ্ছন্ন]] হয়ে কাজ করা; যার মধ্যে পূর্বধারণাপ্রসূত পক্ষপাত বিদ্যমান। #* {{quote-book|en|year=2003|author=Eve Kosofsky Sedgwick; Adam Frank|title=Touching feeling: affect, pedagogy, performativity |passage=...মানুষের জীবন সম্পর্কে চিন্তা করার ক্ষেত্রে এমন চিন্তাভাবনা একটি গুরুত্বপূর্ণ সম্পদ হতে পারে, যা গতানুগতিক মনস্তত্ত্ব বা আধুনিক বিজ্ঞানের মতো '''বিদ্বেষপূর্ণ''' লিঙ্গবৈষম্যের ঊর্ধ্বে।}} azr7h5blv2zuju1zvx6q6ed4ltzzjss 507684 507683 2026-04-11T03:44:40Z Sabah Azman Nahean 12022 507684 wikitext text/x-wiki ==ইংরেজি== ===ব্যুৎপত্তি=== {{suffix|en|prejudice|ious}} থেকে গঠিত। ===বিশেষণ=== {{en-adj}} # {{lb|en|বিরল}} [[বিদ্বেষপূর্ণ]] বা [[কুসংস্কারাচ্ছন্ন]] হয়ে কাজ করা; যার মধ্যে পূর্বধারণাপ্রসূত পক্ষপাত বিদ্যমান। #* {{quote-book|en|year=2003|author=Eve Kosofsky Sedgwick; Adam Frank|title=Touching feeling: affect, pedagogy, performativity |passage=Seemingly, the reservoir of such thought and speculation could make an important resource for theorists committed to thinking about human lives otherwise than through the prejudicious gender reifications that are common in psychoanalysis as in other projects of modern philosophy and science.|আপাতদৃষ্টে, এই প্রকার চিন্তা ও মননের আধারটি সেই সকল তাত্ত্বিকদের নিমিত্ত এক অপরিহার্য উৎস হয়ে উঠতে পারে, যাঁরা মানবজীবনকে মনোসমীক্ষণ কিংবা আধুনিক দর্শন ও বিজ্ঞানের ন্যায় লিঙ্গবৈষম্য কুসংস্কারে আবদ্ধ না রেখে বরং এক ভিন্নতর দৃষ্টিভঙ্গিতে অনুধাবন করতে সচেষ্ট।”}} 11cjmx2n6msr2eo2nbq8k7djcrzmoaa 507685 507684 2026-04-11T03:45:03Z Sabah Azman Nahean 12022 /* বিশেষণ */ 507685 wikitext text/x-wiki ==ইংরেজি== ===ব্যুৎপত্তি=== {{suffix|en|prejudice|ious}} থেকে গঠিত। ===বিশেষণ=== {{en-adj}} # {{lb|en|বিরল}} [[বিদ্বেষপূর্ণ]] বা [[কুসংস্কারাচ্ছন্ন]] হয়ে কাজ করা; যার মধ্যে পূর্বধারণাপ্রসূত পক্ষপাত বিদ্যমান। #* {{quote-book|en|year=2003|author=Eve Kosofsky Sedgwick; Adam Frank|title=Touching feeling: affect, pedagogy, performativity |passage=Seemingly, the reservoir of such thought and speculation could make an important resource for theorists committed to thinking about human lives otherwise than through the prejudicious gender reifications that are common in psychoanalysis as in other projects of modern philosophy and science.|t=আপাতদৃষ্টে, এই প্রকার চিন্তা ও মননের আধারটি সেই সকল তাত্ত্বিকদের নিমিত্ত এক অপরিহার্য উৎস হয়ে উঠতে পারে, যাঁরা মানবজীবনকে মনোসমীক্ষণ কিংবা আধুনিক দর্শন ও বিজ্ঞানের ন্যায় লিঙ্গবৈষম্য কুসংস্কারে আবদ্ধ না রেখে বরং এক ভিন্নতর দৃষ্টিভঙ্গিতে অনুধাবন করতে সচেষ্ট।”}} plxmrvyg14iu6fzgesefhrjjqdhrdsd prejudicer 0 167257 507686 2026-04-11T03:48:05Z Sabah Azman Nahean 12022 "==ইংরেজি== ===ব্যুৎপত্তি=== {{suffix|en|prejudice|er}} থেকে উদ্ভূত। ===বিশেষ্য=== {{en-noun}} # যে ব্যক্তি পক্ষপাতদুষ্ট করে; পূর্বগ্রহী; অন্ধপরম্পরাবাদী।" দিয়ে পাতা তৈরি 507686 wikitext text/x-wiki ==ইংরেজি== ===ব্যুৎপত্তি=== {{suffix|en|prejudice|er}} থেকে উদ্ভূত। ===বিশেষ্য=== {{en-noun}} # যে ব্যক্তি পক্ষপাতদুষ্ট করে; পূর্বগ্রহী; অন্ধপরম্পরাবাদী। 1mdqi4q04fud8ivclshnr75b81r9bzl prejudiceless 0 167258 507687 2026-04-11T03:49:02Z Sabah Azman Nahean 12022 "==ইংরেজি== ===ব্যুৎপত্তি=== {{suffix|en|prejudice|less}} থেকে উদ্ভূত। ===বিশেষণ=== {{en-adj|-}} # পূর্বগ্রহবিনির্মুক্ত; পক্ষপাতহীন।" দিয়ে পাতা তৈরি 507687 wikitext text/x-wiki ==ইংরেজি== ===ব্যুৎপত্তি=== {{suffix|en|prejudice|less}} থেকে উদ্ভূত। ===বিশেষণ=== {{en-adj|-}} # পূর্বগ্রহবিনির্মুক্ত; পক্ষপাতহীন। 69d6hzqm591aourgrhqhkgjamvdxzs1 postjudice 0 167259 507688 2026-04-11T03:50:08Z Sabah Azman Nahean 12022 "==ইংরেজি== ===ব্যুৎপত্তি=== {{prefix|en|post|prejudice|alt2=(pre)judice}} থেকে উদ্ভূত। ===উচ্চারণ=== * {{IPA|en|/ˈpəʊstdʒʊdɪs/|a=UK}} ===বিশেষ্য=== {{en-noun}} # তথ্য বা কোনো নির্দিষ্ট ঘটনার অভিজ্ঞতার ভিত্তিতে গঠিত মতামত বা পক্ষপাত।" দিয়ে পাতা তৈরি 507688 wikitext text/x-wiki ==ইংরেজি== ===ব্যুৎপত্তি=== {{prefix|en|post|prejudice|alt2=(pre)judice}} থেকে উদ্ভূত। ===উচ্চারণ=== * {{IPA|en|/ˈpəʊstdʒʊdɪs/|a=UK}} ===বিশেষ্য=== {{en-noun}} # তথ্য বা কোনো নির্দিষ্ট ঘটনার অভিজ্ঞতার ভিত্তিতে গঠিত মতামত বা পক্ষপাত। thj67yncv4ie38swrwiw694jr3go29u in prejudice of 0 167260 507689 2026-04-11T03:51:56Z Sabah Azman Nahean 12022 "==ইংরেজি== ===পদান্বয়ী অব্যয়=== {{en-head|prep}} # {{lb|en|আইনশাস্ত্র}} কারো বা কোনো কিছুর [[অনিষ্ট]], [[ক্ষতি]] বা [[স্বার্থহানি]] ঘটিয়ে। #: {{cot|en|to the prejudice of}}" দিয়ে পাতা তৈরি 507689 wikitext text/x-wiki ==ইংরেজি== ===পদান্বয়ী অব্যয়=== {{en-head|prep}} # {{lb|en|আইনশাস্ত্র}} কারো বা কোনো কিছুর [[অনিষ্ট]], [[ক্ষতি]] বা [[স্বার্থহানি]] ঘটিয়ে। #: {{cot|en|to the prejudice of}} b4wy269ha8lndhhp8yop2o7avlj1x4n homoprejudice 0 167261 507690 2026-04-11T03:54:42Z Sabah Azman Nahean 12022 "==ইংরেজি== ===ব্যুৎপত্তি=== {{prefix|en|homo|id1=homosexual|prejudice}} থেকে উদ্ভূত। ===বিশেষ্য=== {{en-noun|-}} # সমকামী ব্যক্তিদের প্রতি বিদ্বেষ; সমকাম-পূর্বগ্রহ। ====সম্পর্কিত শব্দ==== * {{l|en|heteroprejudice}} {{C|en|LGBTQ}}" দিয়ে পাতা তৈরি 507690 wikitext text/x-wiki ==ইংরেজি== ===ব্যুৎপত্তি=== {{prefix|en|homo|id1=homosexual|prejudice}} থেকে উদ্ভূত। ===বিশেষ্য=== {{en-noun|-}} # সমকামী ব্যক্তিদের প্রতি বিদ্বেষ; সমকাম-পূর্বগ্রহ। ====সম্পর্কিত শব্দ==== * {{l|en|heteroprejudice}} {{C|en|LGBTQ}} 2szgmm9547k4oadpc9zbzzg8kc816ob heteroprejudice 0 167262 507691 2026-04-11T03:56:47Z Sabah Azman Nahean 12022 "==ইংরেজি== ===ব্যুৎপত্তি=== {{prefix|en|hetero|prejudice}} থেকে উদ্ভূত। ===বিশেষ্য=== {{en-noun|-}} # [[বিষমকামী]] [[ব্যক্তি|ব্যক্তিদের]] প্রতি [[বিদ্বেষ]] বা [[পূর্বগ্রহ]]; বিষমকাম-পূর্বগ্রহ। ====সম্পর্কিত শব্দ==== * {{l|e..." দিয়ে পাতা তৈরি 507691 wikitext text/x-wiki ==ইংরেজি== ===ব্যুৎপত্তি=== {{prefix|en|hetero|prejudice}} থেকে উদ্ভূত। ===বিশেষ্য=== {{en-noun|-}} # [[বিষমকামী]] [[ব্যক্তি|ব্যক্তিদের]] প্রতি [[বিদ্বেষ]] বা [[পূর্বগ্রহ]]; বিষমকাম-পূর্বগ্রহ। ====সম্পর্কিত শব্দ==== * {{l|en|homoprejudice}} {{C|en|LGBTQ}} 3f2k98dcl3hladat40jvkt1pzwpdzzi extreme prejudice 0 167263 507692 2026-04-11T03:57:44Z Sabah Azman Nahean 12022 "==ইংরেজি== ===ব্যুৎপত্তি=== দীর্ঘতর শব্দগুচ্ছ {{m|en|terminate with extreme prejudice}} থেকে উদ্ভূত, যা ১৯৭৯ সালের চলচ্চিত্র ‘অ্যাপোক্যালিপ্স নাও’ (Apocalypse Now)-এর মাধ্যমে জনপ্রিয়তা পায়; তবে এর আগে সিআইএ (CIA)..." দিয়ে পাতা তৈরি 507692 wikitext text/x-wiki ==ইংরেজি== ===ব্যুৎপত্তি=== দীর্ঘতর শব্দগুচ্ছ {{m|en|terminate with extreme prejudice}} থেকে উদ্ভূত, যা ১৯৭৯ সালের চলচ্চিত্র ‘অ্যাপোক্যালিপ্স নাও’ (Apocalypse Now)-এর মাধ্যমে জনপ্রিয়তা পায়; তবে এর আগে সিআইএ (CIA)-এর অপভাষা বা জargon হিসেবে কৌতুকচ্ছলে ব্যবহৃত হতো। ===বিশেষ্য=== {{en-noun|-}} # বিচারবহির্ভূতভাবে হত্যার উদ্দেশ্যে প্রয়োগকৃত প্রাণঘাতী শক্তি; চরম দণ্ড। #* {{quote-text|en|year=১৯৭১|title=American Prisoners of War in Southeast Asia|page=৫৭৫|publisher=U.S. Government Printing Office |passage=ওসবোর্ন লিকুইডেশন প্রোগ্রামের সাথে জড়িত ছিলেন এবং উচ্চতর সদর দপ্তরের নির্দেশে একজন ভিয়েতনামী এজেন্টকে '''extreme prejudice''' (চরম দণ্ড) সহ নির্মূল করার উদাহরণ দিয়েছেন।}} # অত্যন্ত কঠোর বা নির্দয় আচরণ। #* {{quote-journal|en|journal=Finance Week| page=৮১| year=২০০২| passage=মূল্য নির্ধারণের জন্য কোনো প্রকৃত বাজার না থাকায়, সম্ভাব্য বিনিয়োগকারীদের উচিত এই ধরনের প্রস্তাবিত মূল্যকে '''extreme prejudice''' (চরম কঠোরতা) সহ বিবেচনা করা বা সরাসরি প্রত্যাখ্যান করা।}} # {{&lit|en|extreme|prejudice}} (চরম কুসংস্কার বা তীব্র পক্ষপাতিত্ব)। #* {{quote-journal|en|journal=Defense Law Journal| volume=৩৮| page=৩০১| year=১৯৮৯| passage=আদালতের রায় বাতিলের মূল কারণ ছিল বিচারকের এই সিদ্ধান্ত যে, যখন ট্রায়াল জাজ আপসের শর্তাবলি প্রকাশ করেন, তখন তিনি অবশিষ্ট বিবাদীর প্রতি '''extreme prejudice''' (তীব্র পক্ষপাতদুষ্টতা)-এর এক বিশাল ঝুঁকি তৈরি করেছিলেন।}} #* {{quote-book|en|title=Understanding Race and Ethnic Relations| page=১৬| author=Vincent N. Parrillo| year=২০০২| passage=উদাহরণস্বরূপ, সংখ্যাগরিষ্ঠ গোষ্ঠীর সদস্যরা সংখ্যালঘু গোষ্ঠীগুলোকে সন্দেহের চোখে দেখতে পারে, তবে সব সংখ্যালঘু গোষ্ঠীই '''extreme prejudice''' (চরম কুসংস্কার) এবং বৈষম্যের লক্ষ্যবস্তু হয় না।}} ====সম্পর্কিত শব্দ==== * {{l|en|terminate with extreme prejudice}} – হত্যা করা বা গুপ্তহত্যা করা। 7dk6pe4xfvuyfoxnbl8c6f5zwnltyq8 507693 507692 2026-04-11T04:05:48Z Sabah Azman Nahean 12022 507693 wikitext text/x-wiki ==ইংরেজি== ===ব্যুৎপত্তি=== দীর্ঘতর শব্দগুচ্ছ {{m|en|terminate with extreme prejudice}} থেকে উদ্ভূত, যা ১৯৭৯ সালের চলচ্চিত্র ‘অ্যাপোক্যালিপ্স নাও’ (Apocalypse Now)-এর মাধ্যমে জনপ্রিয়তা পায়; তবে এর আগে সিআইএ (CIA)-এর অপভাষা বা জargon হিসেবে কৌতুকচ্ছলে ব্যবহৃত হতো। ===বিশেষ্য=== {{en-noun|-}} # বিচারবহির্ভূতভাবে হত্যার উদ্দেশ্যে প্রয়োগকৃত প্রাণঘাতী শক্তি। #* {{quote-text|en|year=১৯৭১|title=American Prisoners of War in Southeast Asia|page=৫৭৫|publisher=U.S. Government Printing Office |passage=Osborn was involved in the liquidation program and cites an example of a Vietnamese operative being liquidated with extreme prejudice on orders from higher headquarters.|t=ওসবর্ন এই নির্মূল অভিযানের সাথে যুক্ত ছিলেন এবং তিনি উচ্চতর সদর দপ্তরের নির্দেশে এক ভিয়েতনামী এজেন্টকে 'চরম বিদ্বেষের সাথে নির্মূল' বা সরাসরি হত্যা করার একটি উদাহরণ তুলে ধরেন।}} # অত্যন্ত কঠোর বা নির্দয় আচরণ। #* {{quote-journal|en|journal=Finance Week| page=৮১| year=২০০২| passage=Without a real market to determine the price such suggested prices should be discounted with extreme prejudice by any potential investors.|t=মূল্য নির্ধারণের নিমিত্ত কোনো প্রকৃত বাজার বিদ্যমান না থাকায়, সম্ভাব্য বিনিয়োগকারীদের উচিত এই প্রকার প্রস্তাবিত মূল্যকে চরম সংশয় ও কঠোরতার সাথে প্রত্যাখ্যান করা।}} # {{&lit|en|extreme|prejudice}} (চরম কুসংস্কার বা তীব্র পক্ষপাতিত্ব)। #* {{quote-journal|en|journal=Defense Law Journal| volume=৩৮| page=৩০১| year=১৯৮৯| passage=The centerpiece of the court's justification for reversing and remanding was its conclusion that when the trial judge disclosed the terms of the settlement, he created a great risk of extreme prejudice to the remaining defendant.|t=আদালতের রায় বাতিলের মূল কারণ ছিল বিচারকের এই সিদ্ধান্ত যে, যখন ট্রায়াল জাজ আপসের শর্তাবলি প্রকাশ করেন, তখন তিনি অবশিষ্ট বিবাদীর প্রতি '''তীব্র পক্ষপাতদুষ্টতা'''-র এক বিশাল ঝুঁকি তৈরি করেছিলেন।}} #* {{quote-book|en|title=Understanding Race and Ethnic Relations| page=১৬| author=Vincent N. Parrillo| year=২০০২| passage=For example, majority-group members may view minority groups with suspicion, but not all minority groups become the targets of extreme prejudice and discrimination.|t=উদাহরণস্বরূপ, সংখ্যাগরিষ্ঠ গোষ্ঠীর সদস্যরা সংখ্যালঘু গোষ্ঠীগুলোকে সন্দেহের চোখে দেখতে পারে, তবে সব সংখ্যালঘু গোষ্ঠীই '''চরম কুসংস্কার''' এবং বৈষম্যের লক্ষ্যবস্তু হয় না।}} ====সম্পর্কিত শব্দ==== * {{l|en|terminate with extreme prejudice}} – হত্যা করা বা গুপ্তহত্যা করা। 5cpan7q6ku59wxsadhx7l2olde5m4uw disprejudice 0 167264 507694 2026-04-11T04:07:45Z Sabah Azman Nahean 12022 "==ইংরেজি== ===ব্যুৎপত্তি=== {{prefix|en|dis|prejudice}} থেকে গঠিত। ===ক্রিয়া=== {{en-verb}} # {{lb|en|অপ্রচলিত|সকর্মক}} বিদ্বেষমুক্ত করা বা কুসংস্কারমুক্ত করা; কারো মন থেকে কোনো পূর্বধারণাপ্রসূত নেতিবাচক ধা..." দিয়ে পাতা তৈরি 507694 wikitext text/x-wiki ==ইংরেজি== ===ব্যুৎপত্তি=== {{prefix|en|dis|prejudice}} থেকে গঠিত। ===ক্রিয়া=== {{en-verb}} # {{lb|en|অপ্রচলিত|সকর্মক}} বিদ্বেষমুক্ত করা বা কুসংস্কারমুক্ত করা; কারো মন থেকে কোনো পূর্বধারণাপ্রসূত নেতিবাচক ধারণা দূর করা। #* {{quote-book|en|year=1654|author=Walter Montagu|title=Miscellanea Spiritualia|passage=thoſe […] will easilie be so far disprejudic'd in point of the doctrine, as to seek the acquainting their understandings with the grounds and reasons of this Religion|t=...যারা এই ধর্মের ভিত্তি এবং কারণগুলো সম্পর্কে তাদের বোধশক্তিকে পরিচিত করতে চাইবে, তারা সহজেই মতাদর্শের দিক থেকে অনেকটা বিদ্বেষমুক্ত হবে।}} ===তথ্যসূত্র=== * {{R:Webster 1913}} 4zx5fsufipcjjotn3cpn4sdqjlnek55 counterprejudice 0 167265 507695 2026-04-11T04:09:15Z Sabah Azman Nahean 12022 "==ইংরেজি== ===ব্যুৎপত্তি=== {{prefix|en|counter|prejudice}} থেকে গঠিত। ===বিশেষ্য=== {{en-noun|~}} # [[প্রতি-বিদ্বেষ]] বা [[পাল্টা-কুসংস্কার]]; কোনো একটি [[কুসংস্কার]] বা [[বিদ্বেষ|বিদ্বেষের]] [[প্রতিক্রিয়া]][[স্বরূপ]]..." দিয়ে পাতা তৈরি 507695 wikitext text/x-wiki ==ইংরেজি== ===ব্যুৎপত্তি=== {{prefix|en|counter|prejudice}} থেকে গঠিত। ===বিশেষ্য=== {{en-noun|~}} # [[প্রতি-বিদ্বেষ]] বা [[পাল্টা-কুসংস্কার]]; কোনো একটি [[কুসংস্কার]] বা [[বিদ্বেষ|বিদ্বেষের]] [[প্রতিক্রিয়া]][[স্বরূপ]] গড়ে ওঠা অন্য একটি কুসংস্কার। 2acwgp742ggvxsaacgx2vcctgy3283i biprejudice 0 167266 507696 2026-04-11T04:10:53Z Sabah Azman Nahean 12022 "==ইংরেজি== ===ব্যুৎপত্তি=== {{prefix|en|bi|prejudice}} থেকে গঠিত। ===বিশেষ্য=== {{en-noun|-}} # {{lb|en|বিরল}} [[উভকামী-বিদ্বেষ]]; এমন [[ব্যক্তি|ব্যক্তিদের]] প্রতি [[বিদ্বেষ]] বা [[কুসংস্কার]] যারা [[উভকামী]]।" দিয়ে পাতা তৈরি 507696 wikitext text/x-wiki ==ইংরেজি== ===ব্যুৎপত্তি=== {{prefix|en|bi|prejudice}} থেকে গঠিত। ===বিশেষ্য=== {{en-noun|-}} # {{lb|en|বিরল}} [[উভকামী-বিদ্বেষ]]; এমন [[ব্যক্তি|ব্যক্তিদের]] প্রতি [[বিদ্বেষ]] বা [[কুসংস্কার]] যারা [[উভকামী]]। 3cnzj2mieh63lqaxskuqboifuh80bcn تحامل 0 167267 507698 2026-04-11T04:16:21Z Sabah Azman Nahean 12022 "==আরবি== ===ব্যুৎপত্তি ১=== {{ar-rootbox|ح م ل}} {{m|ar|حَمَلَ||বহন করা}} শব্দটির সাথে তুলনীয়। ====ক্রিয়া==== تَحَامَلَ • (taḥāmala) VI (''non-past'' يَتَحَامَلُ (yataḥāmalu), ''verbal noun'' تَحَامُل (taḥāmul)) # কারো ওপর ভারী চাপ দেওয়া বা চড়াও..." দিয়ে পাতা তৈরি 507698 wikitext text/x-wiki ==আরবি== ===ব্যুৎপত্তি ১=== {{ar-rootbox|ح م ل}} {{m|ar|حَمَلَ||বহন করা}} শব্দটির সাথে তুলনীয়। ====ক্রিয়া==== تَحَامَلَ • (taḥāmala) VI (''non-past'' يَتَحَامَلُ (yataḥāmalu), ''verbal noun'' تَحَامُل (taḥāmul)) # কারো ওপর ভারী চাপ দেওয়া বা চড়াও হওয়া {{+obj|ar|:عَلَى<কারো/কিছুর ওপর>}}। # [[দুর্ব্যবহার]] করা, কারো প্রতি [[নিষ্ঠুর]] হওয়া, [[নির্যাতন]] করা বা কারো হক নষ্ট করা {{+obj|ar|:عَلَى<কাউকে>}}। # কষ্ট করে পায়ে ভর দিয়ে দাঁড়ানো বা উঠে দাঁড়ানোর জন্য সংগ্রাম করা। =====ক্রিয়ারূপ===== {| class="wikitable" |+Conjugation of تَحَامَلَ (VI, sound, impersonal passive, verbal noun تَحَامُل) ! colspan="6" |verbal noun الْمَصْدَر | colspan="7" |تَحَامُل taḥāmul |- ! colspan="6" |active participle اِسْم الْفَاعِل | colspan="7" |مُتَحَامِل mutaḥāmil |- ! colspan="6" |passive participle اِسْم الْمَفْعُول | colspan="7" |مُتَحَامَل mutaḥāmal |- ! colspan="999" | |- ! colspan="12" |active voice الْفِعْل الْمَعْلُوم |- ! colspan="2" | ! colspan="3" |singular الْمُفْرَد ! rowspan="12" | ! colspan="2" |dual الْمُثَنَّى ! rowspan="12" | ! colspan="3" |plural الْجَمْع |- ! colspan="2" | !1<sup>st</sup> person الْمُتَكَلِّم !2<sup>nd</sup> person الْمُخَاطَب !3<sup>rd</sup> person الْغَائِب !2<sup>nd</sup> person الْمُخَاطَب !3<sup>rd</sup> person الْغَائِب !1<sup>st</sup> person الْمُتَكَلِّم !2<sup>nd</sup> person الْمُخَاطَب !3<sup>rd</sup> person الْغَائِب |- ! rowspan="2" |past (perfect) indicative الْمَاضِي !m | rowspan="2" |تَحَامَلْتُ taḥāmaltu |تَحَامَلْتَ taḥāmalta |تَحَامَلَ taḥāmala | rowspan="2" |تَحَامَلْتُمَا taḥāmaltumā |تَحَامَلَا taḥāmalā | rowspan="2" |تَحَامَلْنَا taḥāmalnā |تَحَامَلْتُمْ taḥāmaltum |تَحَامَلُوا taḥāmalū |- !f |تَحَامَلْتِ taḥāmalti |تَحَامَلَتْ taḥāmalat |تَحَامَلَتَا taḥāmalatā |تَحَامَلْتُنَّ taḥāmaltunna |تَحَامَلْنَ taḥāmalna |- ! rowspan="2" |non-past (imperfect) indicative الْمُضَارِع الْمَرْفُوع !m | rowspan="2" |أَتَحَامَلُ ʔataḥāmalu |تَتَحَامَلُ tataḥāmalu |يَتَحَامَلُ yataḥāmalu | rowspan="2" |تَتَحَامَلَانِ tataḥāmalāni |يَتَحَامَلَانِ yataḥāmalāni | rowspan="2" |نَتَحَامَلُ nataḥāmalu |تَتَحَامَلُونَ tataḥāmalūna |يَتَحَامَلُونَ yataḥāmalūna |- !f |تَتَحَامَلِينَ tataḥāmalīna |تَتَحَامَلُ tataḥāmalu |تَتَحَامَلَانِ tataḥāmalāni |تَتَحَامَلْنَ tataḥāmalna |يَتَحَامَلْنَ yataḥāmalna |- ! rowspan="2" |subjunctive الْمُضَارِع الْمَنْصُوب !m | rowspan="2" |أَتَحَامَلَ ʔataḥāmala |تَتَحَامَلَ tataḥāmala |يَتَحَامَلَ yataḥāmala | rowspan="2" |تَتَحَامَلَا tataḥāmalā |يَتَحَامَلَا yataḥāmalā | rowspan="2" |نَتَحَامَلَ nataḥāmala |تَتَحَامَلُوا tataḥāmalū |يَتَحَامَلُوا yataḥāmalū |- !f |تَتَحَامَلِي tataḥāmalī |تَتَحَامَلَ tataḥāmala |تَتَحَامَلَا tataḥāmalā |تَتَحَامَلْنَ tataḥāmalna |يَتَحَامَلْنَ yataḥāmalna |- ! rowspan="2" |jussive الْمُضَارِع الْمَجْزُوم !m | rowspan="2" |أَتَحَامَلْ ʔataḥāmal |تَتَحَامَلْ tataḥāmal |يَتَحَامَلْ yataḥāmal | rowspan="2" |تَتَحَامَلَا tataḥāmalā |يَتَحَامَلَا yataḥāmalā | rowspan="2" |نَتَحَامَلْ nataḥāmal |تَتَحَامَلُوا tataḥāmalū |يَتَحَامَلُوا yataḥāmalū |- !f |تَتَحَامَلِي tataḥāmalī |تَتَحَامَلْ tataḥāmal |تَتَحَامَلَا tataḥāmalā |تَتَحَامَلْنَ tataḥāmalna |يَتَحَامَلْنَ yataḥāmalna |- ! rowspan="2" |imperative الْأَمْر !m | rowspan="2" | |تَحَامَلْ taḥāmal | rowspan="2" | | rowspan="2" |تَحَامَلَا taḥāmalā | rowspan="2" | | rowspan="2" | |تَحَامَلُوا taḥāmalū | rowspan="2" | |- !f |تَحَامَلِي taḥāmalī |تَحَامَلْنَ taḥāmalna |- ! colspan="999" | |- ! colspan="12" |passive voice الْفِعْل الْمَجْهُول |- ! colspan="2" | ! colspan="3" |singular الْمُفْرَد ! rowspan="10" | ! colspan="2" |dual الْمُثَنَّى ! rowspan="10" | ! colspan="3" |plural الْجَمْع |- ! colspan="2" | !1<sup>st</sup> person الْمُتَكَلِّم !2<sup>nd</sup> person الْمُخَاطَب !3<sup>rd</sup> person الْغَائِب !2<sup>nd</sup> person الْمُخَاطَب !3<sup>rd</sup> person الْغَائِب !1<sup>st</sup> person الْمُتَكَلِّم !2<sup>nd</sup> person الْمُخَاطَب !3<sup>rd</sup> person الْغَائِب |- ! rowspan="2" |past (perfect) indicative الْمَاضِي !m | rowspan="2" |— |— |تُحُومِلَ tuḥūmila | rowspan="2" |— |— | rowspan="2" |— |— |— |- !f |— |— |— |— |— |- ! rowspan="2" |non-past (imperfect) indicative الْمُضَارِع الْمَرْفُوع !m | rowspan="2" |— |— |يُتَحَامَلُ yutaḥāmalu | rowspan="2" |— |— | rowspan="2" |— |— |— |- !f |— |— |— |— |— |- ! rowspan="2" |subjunctive الْمُضَارِع الْمَنْصُوب !m | rowspan="2" |— |— |يُتَحَامَلَ yutaḥāmala | rowspan="2" |— |— | rowspan="2" |— |— |— |- !f |— |— |— |— |— |- ! rowspan="2" |jussive الْمُضَارِع الْمَجْزُوم !m | rowspan="2" |— |— |يُتَحَامَلْ yutaḥāmal | rowspan="2" |— |— | rowspan="2" |— |— |— |- !f |— |— |— |— |— |} ===== R ===== =====তথ্যসূত্র===== * {{R:ar:Wehr-4|حمل}} * {{R:ar:Lane}} ===ব্যুৎপত্তি ২=== ====বিশেষ্য==== {{ar-noun|تَحَامُل|m}} # {{ar-verbal noun of|تَحَامَلَ|form=VI}} (তাহামুল)। # [[পক্ষপাতিত্ব]], [[বিদ্বেষ]], অন্যায় আচরণ বা একপেশে মনোভাব। =====শব্দরূপ===== {| class="wikitable" |+Declension of noun تَحَامُل (taḥāmul) ! rowspan="2" |singular ! colspan="3" |basic singular triptote |- !indefinite !definite !construct |- !informal |تَحَامُل taḥāmul |التَّحَامُل at-taḥāmul |تَحَامُل taḥāmul |- !nominative |تَحَامُلٌ taḥāmulun |التَّحَامُلُ at-taḥāmulu |تَحَامُلُ taḥāmulu |- !accusative |تَحَامُلًا taḥāmulan |التَّحَامُلَ at-taḥāmula |تَحَامُلَ taḥāmula |- !genitive |تَحَامُلٍ taḥāmulin |التَّحَامُلِ at-taḥāmuli |تَحَامُلِ taḥāmuli |} 52oiye70ykm67o90iew8cre2p9k75nd تحيز 0 167268 507699 2026-04-11T04:21:42Z Sabah Azman Nahean 12022 "==আরবি== {{ar-rootbox|ح و ز}} ===ব্যুৎপত্তি ১=== ====উচ্চারণ==== {{ar-IPA|تَحَيَّزَ}} ====ক্রিয়া==== تَحَيَّزَ • (taḥayyaza) V (''non-past'' يَتَحَيَّزُ (yataḥayyazu), ''verbal noun'' تَحَيُّز (taḥayyuz)) # {{l|ar|تَحَوَّزَ}} এর বিকল্প রূপ। # কোনো এক পক্ষ নেওয়া, পক্..." দিয়ে পাতা তৈরি 507699 wikitext text/x-wiki ==আরবি== {{ar-rootbox|ح و ز}} ===ব্যুৎপত্তি ১=== ====উচ্চারণ==== {{ar-IPA|تَحَيَّزَ}} ====ক্রিয়া==== تَحَيَّزَ • (taḥayyaza) V (''non-past'' يَتَحَيَّزُ (yataḥayyazu), ''verbal noun'' تَحَيُّز (taḥayyuz)) # {{l|ar|تَحَوَّزَ}} এর বিকল্প রূপ। # কোনো এক পক্ষ নেওয়া, [[পক্ষপাতদুষ্ট]] হওয়া বা একপেশে হওয়া। #* {{RQ:Qur'an|8|16|passage=...أَوْ '''مُتَحَيِّزًا''' إِلَىٰ فِئَةٍ...|t=...অথবা নিজের দলের সাথে গিয়ে '''যোগ দেওয়ার''' (আশ্রয় নেওয়ার) জন্য...}} =====ক্রিয়ারূপ===== {| class="wikitable" |+Conjugation of تَحَيَّزَ (V, sound, impersonal passive, verbal noun تَحَيُّز) ! colspan="6" |verbal noun الْمَصْدَر | colspan="7" |تَحَيُّز taḥayyuz |- ! colspan="6" |active participle اِسْم الْفَاعِل | colspan="7" |مُتَحَيِّز mutaḥayyiz |- ! colspan="6" |passive participle اِسْم الْمَفْعُول | colspan="7" |مُتَحَيَّز mutaḥayyaz |- ! colspan="999" | |- ! colspan="12" |active voice الْفِعْل الْمَعْلُوم |- ! colspan="2" | ! colspan="3" |singular الْمُفْرَد ! rowspan="12" | ! colspan="2" |dual الْمُثَنَّى ! rowspan="12" | ! colspan="3" |plural الْجَمْع |- ! colspan="2" | !1<sup>st</sup> person الْمُتَكَلِّم !2<sup>nd</sup> person الْمُخَاطَب !3<sup>rd</sup> person الْغَائِب !2<sup>nd</sup> person الْمُخَاطَب !3<sup>rd</sup> person الْغَائِب !1<sup>st</sup> person الْمُتَكَلِّم !2<sup>nd</sup> person الْمُخَاطَب !3<sup>rd</sup> person الْغَائِب |- ! rowspan="2" |past (perfect) indicative الْمَاضِي !m | rowspan="2" |تَحَيَّزْتُ taḥayyaztu |تَحَيَّزْتَ taḥayyazta |تَحَيَّزَ taḥayyaza | rowspan="2" |تَحَيَّزْتُمَا taḥayyaztumā |تَحَيَّزَا taḥayyazā | rowspan="2" |تَحَيَّزْنَا taḥayyaznā |تَحَيَّزْتُمْ taḥayyaztum |تَحَيَّزُوا taḥayyazū |- !f |تَحَيَّزْتِ taḥayyazti |تَحَيَّزَتْ taḥayyazat |تَحَيَّزَتَا taḥayyazatā |تَحَيَّزْتُنَّ taḥayyaztunna |تَحَيَّزْنَ taḥayyazna |- ! rowspan="2" |non-past (imperfect) indicative الْمُضَارِع الْمَرْفُوع !m | rowspan="2" |أَتَحَيَّزُ ʔataḥayyazu |تَتَحَيَّزُ tataḥayyazu |يَتَحَيَّزُ yataḥayyazu | rowspan="2" |تَتَحَيَّزَانِ tataḥayyazāni |يَتَحَيَّزَانِ yataḥayyazāni | rowspan="2" |نَتَحَيَّزُ nataḥayyazu |تَتَحَيَّزُونَ tataḥayyazūna |يَتَحَيَّزُونَ yataḥayyazūna |- !f |تَتَحَيَّزِينَ tataḥayyazīna |تَتَحَيَّزُ tataḥayyazu |تَتَحَيَّزَانِ tataḥayyazāni |تَتَحَيَّزْنَ tataḥayyazna |يَتَحَيَّزْنَ yataḥayyazna |- ! rowspan="2" |subjunctive الْمُضَارِع الْمَنْصُوب !m | rowspan="2" |أَتَحَيَّزَ ʔataḥayyaza |تَتَحَيَّزَ tataḥayyaza |يَتَحَيَّزَ yataḥayyaza | rowspan="2" |تَتَحَيَّزَا tataḥayyazā |يَتَحَيَّزَا yataḥayyazā | rowspan="2" |نَتَحَيَّزَ nataḥayyaza |تَتَحَيَّزُوا tataḥayyazū |يَتَحَيَّزُوا yataḥayyazū |- !f |تَتَحَيَّزِي tataḥayyazī |تَتَحَيَّزَ tataḥayyaza |تَتَحَيَّزَا tataḥayyazā |تَتَحَيَّزْنَ tataḥayyazna |يَتَحَيَّزْنَ yataḥayyazna |- ! rowspan="2" |jussive الْمُضَارِع الْمَجْزُوم !m | rowspan="2" |أَتَحَيَّزْ ʔataḥayyaz |تَتَحَيَّزْ tataḥayyaz |يَتَحَيَّزْ yataḥayyaz | rowspan="2" |تَتَحَيَّزَا tataḥayyazā |يَتَحَيَّزَا yataḥayyazā | rowspan="2" |نَتَحَيَّزْ nataḥayyaz |تَتَحَيَّزُوا tataḥayyazū |يَتَحَيَّزُوا yataḥayyazū |- !f |تَتَحَيَّزِي tataḥayyazī |تَتَحَيَّزْ tataḥayyaz |تَتَحَيَّزَا tataḥayyazā |تَتَحَيَّزْنَ tataḥayyazna |يَتَحَيَّزْنَ yataḥayyazna |- ! rowspan="2" |imperative الْأَمْر !m | rowspan="2" | |تَحَيَّزْ taḥayyaz | rowspan="2" | | rowspan="2" |تَحَيَّزَا taḥayyazā | rowspan="2" | | rowspan="2" | |تَحَيَّزُوا taḥayyazū | rowspan="2" | |- !f |تَحَيَّزِي taḥayyazī |تَحَيَّزْنَ taḥayyazna |- ! colspan="999" | |- ! colspan="12" |passive voice الْفِعْل الْمَجْهُول |- ! colspan="2" | ! colspan="3" |singular الْمُفْرَد ! rowspan="10" | ! colspan="2" |dual الْمُثَنَّى ! rowspan="10" | ! colspan="3" |plural الْجَمْع |- ! colspan="2" | !1<sup>st</sup> person الْمُتَكَلِّم !2<sup>nd</sup> person الْمُخَاطَب !3<sup>rd</sup> person الْغَائِب !2<sup>nd</sup> person الْمُخَاطَب !3<sup>rd</sup> person الْغَائِب !1<sup>st</sup> person الْمُتَكَلِّم !2<sup>nd</sup> person الْمُخَاطَب !3<sup>rd</sup> person الْغَائِب |- ! rowspan="2" |past (perfect) indicative الْمَاضِي !m | rowspan="2" |— |— |تُحُيِّزَ tuḥuyyiza | rowspan="2" |— |— | rowspan="2" |— |— |— |- !f |— |— |— |— |— |- ! rowspan="2" |non-past (imperfect) indicative الْمُضَارِع الْمَرْفُوع !m | rowspan="2" |— |— |يُتَحَيَّزُ yutaḥayyazu | rowspan="2" |— |— | rowspan="2" |— |— |— |- !f |— |— |— |— |— |- ! rowspan="2" |subjunctive الْمُضَارِع الْمَنْصُوب !m | rowspan="2" |— |— |يُتَحَيَّزَ yutaḥayyaza | rowspan="2" |— |— | rowspan="2" |— |— |— |- !f |— |— |— |— |— |- ! rowspan="2" |jussive الْمُضَارِع الْمَجْزُوم !m | rowspan="2" |— |— |يُتَحَيَّزْ yutaḥayyaz | rowspan="2" |— |— | rowspan="2" |— |— |— |- !f |— |— |— |— |— |} ===ব্যুৎপত্তি ২=== {{l|ar|تَحَيَّزَ}} এর {{ar-verbal noun}}। ====উচ্চারণ==== {{ar-IPA|تَحَيُّز}} ====বিশেষ্য==== {{ar-noun|تَحَيُّز|m}} # {{l|ar|تَحَيَّزَ}} এর ক্রিয়াবিশেষ্য। # পক্ষপাতিত্ব, বৈষম্য। # স্বজনপ্রীতি। # {{lb|ar|পরিসংখ্যান}} ঝোঁক বা বায়াস। =====শব্দরূপ===== {| class="wikitable" |+Declension of noun تَحَيُّز (taḥayyuz) ! rowspan="2" |singular ! colspan="3" |basic singular triptote |- !indefinite !definite !construct |- !informal |تَحَيُّز taḥayyuz |التَّحَيُّز at-taḥayyuz |تَحَيُّز taḥayyuz |- !nominative |تَحَيُّزٌ taḥayyuzun |التَّحَيُّزُ at-taḥayyuzu |تَحَيُّزُ taḥayyuzu |- !accusative |تَحَيُّزًا taḥayyuzan |التَّحَيُّزَ at-taḥayyuza |تَحَيُّزَ taḥayyuza |- !genitive |تَحَيُّزٍ taḥayyuzin |التَّحَيُّزِ at-taḥayyuzi |تَحَيُّزِ taḥayyuzi |} ===তথ্যসূত্র=== * {{R:ar:Almaany}} * {{R:ar:Freytag|volume=1|page=441}} * {{R:ar:Lane|page=667}} * {{R:ar:Steingass|page=303}} cl0d1vp6nhb7riyeikgrl1t14cjr53c অঁস্‌লা 0 167269 507701 2026-04-11T05:01:44Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719213-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507701 wikitext text/x-wiki {{লে|L719213}} 6c5v52rkk25u02qcscmtpr8uetyhsbp অস্‌দিয়া 0 167270 507702 2026-04-11T05:01:51Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719212-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507702 wikitext text/x-wiki {{লে|L719212}} ncd6oek235u8h2u6q7homgbbtn48a0d অস্‌তর্‌ 0 167271 507703 2026-04-11T05:01:57Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719211-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507703 wikitext text/x-wiki {{লে|L719211}} 9l6qjrzoktzlz67c8xp2peiemkxa3l2 অস্‌ড়া 0 167272 507704 2026-04-11T05:02:06Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719210-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507704 wikitext text/x-wiki {{লে|L719210}} s8mbgvjg9287t25w18wcfpjb9ydng1w অস্‌ঠাই 0 167273 507705 2026-04-11T05:02:15Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719209-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507705 wikitext text/x-wiki {{লে|L719209}} 6f522jniso5i3q4wktl7o2h75r8i09t অর্‌ 0 167274 507707 2026-04-11T05:09:04Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719130-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507707 wikitext text/x-wiki {{লে|L719130}} 293surp0b7zo9u2yvgm4pnm4aq87kx1 অশ্‌টান্ন 0 167275 507712 2026-04-11T05:13:49Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719181-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507712 wikitext text/x-wiki {{লে|L719181}} nkgxcxo7harkwk0cjj5w31sp5vlbuei অস্‌টোপোরি 0 167276 507713 2026-04-11T05:14:08Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719207-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507713 wikitext text/x-wiki {{লে|L719207}} 8rk7lca80c2sp584kxuy21knild6agw অস্‌টোপরা 0 167277 507716 2026-04-11T05:17:18Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719206-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507716 wikitext text/x-wiki {{লে|L719206}} 89f0enrmuswtl32wkqnws8avbcy9dmm অস্‌-কাগ্‌ড়ি 0 167278 507717 2026-04-11T05:19:37Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719204-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507717 wikitext text/x-wiki {{লে|L719204}} fw3j1ah0d6914jevq5lubk24hbv9wzf অস্‌করা 0 167279 507718 2026-04-11T05:19:43Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719203-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507718 wikitext text/x-wiki {{লে|L719203}} 0dhwky4t9bzxbrisew3okb595qbvfvi অশোধ্‌ 0 167280 507725 2026-04-11T06:33:06Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719202-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507725 wikitext text/x-wiki {{লে|L719202}} 2jx8nb4rwi8937jplxdt54tskapgx00 অশোজ্‌ 0 167281 507726 2026-04-11T06:33:16Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719201-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507726 wikitext text/x-wiki {{লে|L719201}} krc16jbxdq6l8weqmtx657gevhc48m9 स्वसृ 0 167282 507730 2026-04-11T06:47:03Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L221809-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507730 wikitext text/x-wiki {{লে|L221809}} dh2oaxg006pyau8km2hb5o68e0zi4a1 मातृ 0 167283 507731 2026-04-11T06:48:45Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L221807-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507731 wikitext text/x-wiki {{লে|L221807}} c0pzdtkbq4dwbm2of41yqy785wbwmd0 অশোইব্বো 0 167284 507734 2026-04-11T07:11:19Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719200-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507734 wikitext text/x-wiki {{লে|L719200}} lpvi1byewo4gcs4gxw0to6zlalbnmz2 অশৈলো 0 167285 507735 2026-04-11T07:12:56Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719199-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507735 wikitext text/x-wiki {{লে|L719199}} ncb9v9v264zu76anvgoorum4wy2xzxb অশুল্‌ 0 167286 507736 2026-04-11T07:13:05Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719198-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507736 wikitext text/x-wiki {{লে|L719198}} mycg8wy8crg7yl7fhefre2ep6stizt1 أخ 0 167287 507738 2026-04-11T07:23:49Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L1463376-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507738 wikitext text/x-wiki {{লে|L1463376}} 65w8ku3hcjgvisiv0bdljx4p8tdevfc অশুন্‌ 0 167288 507745 2026-04-11T09:47:44Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719197-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507745 wikitext text/x-wiki {{লে|L719197}} 2t7c6y9rme7zhi4l7rdw1kmeh33w26t অশুখ্‌খিয়া 0 167289 507746 2026-04-11T09:47:50Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719196-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507746 wikitext text/x-wiki {{লে|L719196}} ems9ksn4o9vbz3x2h4wxlguhxsbmyzs অশুক্‌খান্‌ 0 167290 507747 2026-04-11T09:47:56Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719195-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507747 wikitext text/x-wiki {{লে|L719195}} s17inj2a54lkxfm4ig9ot6mw90ss1px অশিমাড়্‌ 0 167291 507748 2026-04-11T09:48:02Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719194-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507748 wikitext text/x-wiki {{লে|L719194}} qghc88goifsg0pv919c04sl2ouufg3i অশিক্‌ 0 167292 507749 2026-04-11T09:49:44Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719193-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507749 wikitext text/x-wiki {{লে|L719193}} rlvuzvtglhsth45ylxhg6xwvkvcfr4v অশার্‌ 0 167293 507750 2026-04-11T09:49:49Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719192-এর জন্য একটি নতুন ভুক্তি তৈরি করছি 507750 wikitext text/x-wiki {{লে|L719192}} 1uf3x19yhlb5r2rtyrvaazoa4k0yg1f 507751 507750 2026-04-11T09:50:02Z Redmin 6857 লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L719191-এর সাথে সংযোগ তৈরি করছি 507751 wikitext text/x-wiki {{লে|L719192}} {{লে|L719191}} egtuxb1xfwlwds6qlpekyff5gu2g9b5