উইকিঅভিধান
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.47.0-wmf.11
case-sensitive
মিডিয়া
বিশেষ
আলাপ
ব্যবহারকারী
ব্যবহারকারী আলাপ
উইকিঅভিধান
উইকিঅভিধান আলোচনা
চিত্র
চিত্র আলোচনা
মিডিয়াউইকি
মিডিয়াউইকি আলোচনা
টেমপ্লেট
টেমপ্লেট আলোচনা
সাহায্য
সাহায্য আলোচনা
বিষয়শ্রেণী
বিষয়শ্রেণী আলোচনা
পরিশিষ্ট
পরিশিষ্ট আলোচনা
ছন্দ
ছন্দ আলোচনা
থিসরাস
থিসরাস আলোচনা
উদ্ধৃতি
উদ্ধৃতি আলোচনা
TimedText
TimedText talk
মডিউল
মডিউল আলাপ
ইভেন্ট
ইভেন্ট আলোচনা
হন্তা
0
2564
513752
361811
2026-07-15T05:23:14Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308493-এর সাথে সংযোগ তৈরি করছি
513752
wikitext
text/x-wiki
{{লে|L308493|ব্যুৎপত্তি=
* [[সংস্কৃত]] জাত;
* √হন্ + তৃ।|উচ্চারণ=
* হন্তা।
}}
0s9rzkz7cdz1npshnvt3qy34tr3k6md
হতাশা
0
6335
513766
116379
2026-07-15T05:36:36Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308519-এর সাথে সংযোগ তৈরি করছি
513766
wikitext
text/x-wiki
{{লে|L308519}}
===উচ্চারণ===
* {{অডিও|bn|LL-Q9610_(ben)-Yahya-হতাশা.wav|অডিও}}
বিশেষ্য
# নিরাশা
#বিষণ্ণ
#অধোবদন
==বিপরীত==
#[[আনন্দ]] বা [[খুশি]]
or5t9wcl2zfcghw7jti44dco1ikbasx
513767
513766
2026-07-15T05:37:22Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308520-এর সাথে সংযোগ তৈরি করছি
513767
wikitext
text/x-wiki
{{লে|L308519}}
{{লে|L308520|না}}
==বিপরীত==
#[[আনন্দ]] বা [[খুশি]]
d6rs5o84t8cyedpdvscv857epug9ax1
হতাশ
0
6359
513768
88576
2026-07-15T05:37:34Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308521-এর সাথে সংযোগ তৈরি করছি
513768
wikitext
text/x-wiki
{{লে|L308521}}
kgc2zsq9ut2j6d43u7alq3d44rz0c0g
হরীতকী
0
9031
513728
88603
2026-07-14T12:50:57Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308458-এর সাথে সংযোগ তৈরি করছি
513728
wikitext
text/x-wiki
{{লে|L308458|L308458-S
#[[হরিতকী]] একটি [[ভেষজ]] উদ্ভিদ।বাকল গাঢ় বাদামি। বাকলে লম্বা ফাটল থাকে। পাতা লম্বা-চ্যাপ্টা, কিনার চোখা, লম্বায় পাঁচ-ছয় ইঞ্চি।}}
===বৈজ্ঞানিক নাম===
[[Terminalia chebula]]
gpdl5sxvmt4qmwtvdrc3e5ee7hj1o8r
513729
513728
2026-07-14T12:51:12Z
Redmin
6857
513729
wikitext
text/x-wiki
{{লে|L308458|L308458-S1=[[হরিতকী]] একটি [[ভেষজ]] উদ্ভিদ।বাকল গাঢ় বাদামি। বাকলে লম্বা ফাটল থাকে। পাতা লম্বা-চ্যাপ্টা, কিনার চোখা, লম্বায় পাঁচ-ছয় ইঞ্চি।}}
===বৈজ্ঞানিক নাম===
[[Terminalia chebula]]
m14x5a8vn4yk3eez57zuptpna9o0s3w
হক
0
11489
513820
301927
2026-07-15T07:28:22Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308576-এর সাথে সংযোগ তৈরি করছি
513820
wikitext
text/x-wiki
== {{langname|bn}} ==
=== ব্যুৎপত্তি ===
* [[বিদেশি]] শব্দ ([[আরবি]] জাত);
* “হক্ক্” হতে।
===উচ্চারণ===
* {{অডিও|bn|LL-Q9610 (ben)-Titodutta-হক.wav|অডিও (ভারত)}}
=== বিশেষ্য ===
{{বিশেষ্য|bn}}
# ন্যায্য অধিকার;
# স্বত্ব;
# ন্যায্য কথা।
==== প্রয়োগ ====
* ন্যায্য অধিকার : হকের টাকা।
* স্বত্ব : হক বুঝে নেওয়া।
* ন্যায্য কথা : হক বলা।
{{লে|L308576|না|meaning=
# যথার্থ
# প্রকৃত।}}
==== প্রয়োগ ====
* যথার্থ/ন্যায্য/প্রকৃত: হক কথা।
[[বিষয়শ্রেণী:bn:ইসলাম]]
2p1aezq6qev7xtq64emg4957aggr1kd
513821
513820
2026-07-15T07:29:41Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308577-এর সাথে সংযোগ তৈরি করছি
513821
wikitext
text/x-wiki
{{লে|L308577|meaning=
# ন্যায্য অধিকার;
# ন্যায্য কথা।}}
==== প্রয়োগ ====
* ন্যায্য অধিকার : হকের টাকা।
* স্বত্ব : হক বুঝে নেওয়া।
* ন্যায্য কথা : হক বলা।
{{লে|L308576|না|meaning=
# যথার্থ
# প্রকৃত।}}
==== প্রয়োগ ====
* যথার্থ/ন্যায্য/প্রকৃত: হক কথা।
[[বিষয়শ্রেণী:bn:ইসলাম]]
jgycqyyninlw8397f4veleszoek0bsd
হতোদ্যম
0
14785
513763
112806
2026-07-15T05:33:16Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308514-এর সাথে সংযোগ তৈরি করছি
513763
wikitext
text/x-wiki
{{লে|L308514}}
=== ব্যুৎপত্তি ===
* [[সংস্কৃত]] জাত;
* হত + উদ্যম।
===উচ্চারণ===
* হতোদ্দম্।
===বিশেষণ===
{{বিশেষণ|bn}}
# নিরুদ্যম;
# উদ্যমহীন;
# নিশ্চেষ্ট;
# ভগ্নোৎসাহ।
av3ycnzicgyzls8b3qqq4d4ntw4tsjq
হয়রান
0
15014
513739
108903
2026-07-14T13:14:58Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308473-এর সাথে সংযোগ তৈরি করছি
513739
wikitext
text/x-wiki
{{লে|L308473|meaning=
# [[ব্যর্থ]] পরিশ্রমে [[ক্লান্ত]];
# [[জ্বালাতন]]}}
==== পদান্তর ====
* [[হয়রানি]] - [[বিশেষ্য]]।
==== ব্যবহার ====
* নাকাল / ব্যর্থ পরিশ্রমে ক্লান্ত - খুঁজে খুঁজে হয়রান / ঘুরে ঘুরে হয়রান।
7eq49278ii4ewcy1g02jpp5pi1d88an
টেমপ্লেট:compound
10
21840
513832
267462
2026-07-15T11:11:55Z
Redmin
6857
513832
wikitext
text/x-wiki
<includeonly>{{#invoke:affix/templates|compound}}</includeonly>
4c2odm1tn2895d0gd4r51amdt7at4ah
হর
0
24441
513738
513397
2026-07-14T13:10:41Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308472-এর সাথে সংযোগ তৈরি করছি
513738
wikitext
text/x-wiki
== {{langname|bn}} ==
===উচ্চারণ===
হর্
===ব্যুৎপত্তি===
[ফারসি]
===বিশেষণ===
# প্রতি, প্রত্যেক
# বিবিধ, বিভিন্ন
===সম্পর্কিত শব্দসমূহ===
{{লে|L303450|না}}
{{লে|L308472|না}}
mw1p7e81gdamk7fum0il38qe8f3akfp
হওন
0
48222
513827
111144
2026-07-15T08:55:04Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308596-এর সাথে সংযোগ তৈরি করছি
513827
wikitext
text/x-wiki
{{লে|L308596
|ব্যুৎপত্তি=
* [[আঞ্চলিক]] শব্দ।
}}
reupfbi15vd0srv8m7vsw4za9kkis1f
হকদার
0
48240
513822
111182
2026-07-15T08:48:15Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308575-এর সাথে সংযোগ তৈরি করছি
513822
wikitext
text/x-wiki
{{লে|L308575
|ব্যুৎপত্তি=
* [[বিদেশি]] শব্দ ([[আরবি]] জাত);
* “হক্ক্” -এর সাথে ‘দার’ যুক্ত হয়ে।
}}
p4lqlijy82m9t8c2mfa6utdo62xggfp
হওয়া
0
48244
513828
119540
2026-07-15T09:01:26Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308597-এর সাথে সংযোগ তৈরি করছি
513828
wikitext
text/x-wiki
== {{langname|bn}} ==
=== ব্যুৎপত্তি ===
* [[সংস্কৃত]] জাত;
* “√ অস্” হতে।
===উচ্চারণ===
* {{অডিও|bn|LL-Q9610_(ben)-Yahya-হওয়া.wav|অডিও}}
=== ক্রিয়া ===
{{ক্রিয়া|bn}}
# বর্তমান থাকা;
# বিদ্যমান থাকা;
# ঘটা;
# জন্মানো;
# প্রকাশ পাওয়া;
# উৎপন্ন হওয়া;
# প্রচুর আয় হওয়া;
# বাড়া;
# অধিক হওয়া;
# সমাপ্ত হওয়া;
# অবস্হাস্তর হওয়া;
# উপস্হিত হওয়া;
# ঘটা;
# উদয় হওয়া;
# আয়ু ফুরানো;
# মেলা;
# পাওয়া;
# জোটা;
# কুলানো;
# পড়া;
# পতিত হওয়া;
# সম্বন্ধযুক্ত থাকা;
# নিজস্ব;
# আপন হওয়া;
# অধিকারে আসা;
# উপযুক্ত;
# মাপসই হওয়া;
# সম্ভাবনা হওয়া
==== প্রয়োগ ====
* ঘটা : যুদ্ধ হওয়া / বিপদ হওয়া।
* জন্মানো : ছেলে হওয়া।
* প্রকাশ পাওয়া : মেঘ হওয়া।
* উৎপন্ন হওয়া : ধান হওয়া।
* প্রচুর আয় হওয়া : ব্যবসায় টাকা হওয়া।
* বাড়া : বেলা হওয়া।
* অধিক হওয়া : বয়স হওয়া।
* সমাপ্ত হওয়া : এ কাজ দুঘণ্টায় হয়।
* অবস্হাস্তর হওয়া : রক্ত জল হওয়া / দেউলিয়া হওয়া / স্বাধীন হওয়া।
* উপস্হিত হওয়া : যাবার সময় হওয়া।
* ঘটা : ভোর হওয়া।
* উদয় হওয়া : অসুখ হওয়া / ভয় হওয়া।
* আয়ু ফুরানো : আমার হয়ে এসেছে।
* মেলা / পাওয়া : সুখ হওয়া।
* জোটা : চাকরি হওয়া।
* কুলানো : এতেই হবে।
* পড়া / পতিত হওয়া : শিলাবৃষ্টি হওয়া।
* সম্বন্ধযুক্ত থাকা : সে আমার কুটুম্ব হয়।
* নিজস্ব / আপন হওয়া : সে কি আর আমার হবে?
* অধিকারে আসা : জমিটা কি আমার হবে?
* উপযুক্ত / মাপসই হওয়া : এ জুতো তোমার পায়ে হবে না।
* সম্ভাবনা হওয়া : তা হবে।
=== বিশেষণ ===
{{বিশেষণ|bn}}
# হয়েছে;
# প্রায় হয়েছে এমন।
==== প্রয়োগ ====
* হয়েছে / প্রায় হয়েছে এমন : হওয়া চাকরি।
{{লে|L308597|না}}
magwfmysh37zzjest8uy4zexqwi08bb
513829
513828
2026-07-15T10:28:42Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308598-এর সাথে সংযোগ তৈরি করছি
513829
wikitext
text/x-wiki
{{লে|L308598
|ব্যুৎপত্তি=
* [[সংস্কৃত]] জাত;
* “√ অস্” হতে।|meaning=
# প্রকাশ পাওয়া;
# উৎপন্ন হওয়া;
# প্রচুর আয় হওয়া;
# বাড়া;
# অধিক হওয়া;
# সমাপ্ত হওয়া;
# অবস্হাস্তর হওয়া;
# উপস্হিত হওয়া;
# ঘটা;
# উদয় হওয়া;
# আয়ু ফুরানো;
# মেলা;
# পাওয়া;
# জোটা;
# কুলানো;
# পড়া;
# পতিত হওয়া;
# সম্বন্ধযুক্ত থাকা;
# নিজস্ব;
# আপন হওয়া;
# অধিকারে আসা;
# উপযুক্ত;
# মাপসই হওয়া;
# সম্ভাবনা হওয়া
}}
==== প্রয়োগ ====
* ঘটা : যুদ্ধ হওয়া / বিপদ হওয়া।
* জন্মানো : ছেলে হওয়া।
* প্রকাশ পাওয়া : মেঘ হওয়া।
* উৎপন্ন হওয়া : ধান হওয়া।
* প্রচুর আয় হওয়া : ব্যবসায় টাকা হওয়া।
* বাড়া : বেলা হওয়া।
* অধিক হওয়া : বয়স হওয়া।
* সমাপ্ত হওয়া : এ কাজ দুঘণ্টায় হয়।
* অবস্হাস্তর হওয়া : রক্ত জল হওয়া / দেউলিয়া হওয়া / স্বাধীন হওয়া।
* উপস্হিত হওয়া : যাবার সময় হওয়া।
* ঘটা : ভোর হওয়া।
* উদয় হওয়া : অসুখ হওয়া / ভয় হওয়া।
* আয়ু ফুরানো : আমার হয়ে এসেছে।
* মেলা / পাওয়া : সুখ হওয়া।
* জোটা : চাকরি হওয়া।
* কুলানো : এতেই হবে।
* পড়া / পতিত হওয়া : শিলাবৃষ্টি হওয়া।
* সম্বন্ধযুক্ত থাকা : সে আমার কুটুম্ব হয়।
* নিজস্ব / আপন হওয়া : সে কি আর আমার হবে?
* অধিকারে আসা : জমিটা কি আমার হবে?
* উপযুক্ত / মাপসই হওয়া : এ জুতো তোমার পায়ে হবে না।
* সম্ভাবনা হওয়া : তা হবে।
=== বিশেষণ ===
{{বিশেষণ|bn}}
# হয়েছে;
# প্রায় হয়েছে এমন।
==== প্রয়োগ ====
* হয়েছে / প্রায় হয়েছে এমন : হওয়া চাকরি।
{{লে|L308597|না}}
oyme7u08rajihf98jbq8mojz44dlt39
হাঁকা
0
49155
513717
113351
2026-07-14T12:41:49Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308444-এর সাথে সংযোগ তৈরি করছি
513717
wikitext
text/x-wiki
{{লে|L308444|
ব্যুৎপত্তি=
[সং-হুঙ্কার >। হি. হাঁক্না। হাঁক (দ্রঃ) + আ (ক্রিয়ায়)। হাঁকি, হাঁক (হাঁকেন্, হাঁকিস), হাঁকে (হাঁকেন); হাঁকিতে; হাঁকিয়া (ক্ষে. হেঁকে)। ণিজন্ত- হাঁকান̑]|meaning=
# হৈ হৈ শব্দ করা।
#তাড়না করা।
#চালান।}}
{{উৎস-ভাষা|bn}}
0c1nbwhtn6zpqo1fvv207pc72bimdzs
হাঁচা
0
49161
513716
113354
2026-07-14T12:37:57Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308443-এর সাথে সংযোগ তৈরি করছি
513716
wikitext
text/x-wiki
{{লে|L308443}}
===ব্যুৎপত্তি===
[সং-হঞ্জি (ক্ষুৎ)। তুল-সং-ছিক্কা > হি. ছিঁক (হাঁচির শব্দ >)। মূলে অনু.। হাঁচি, হাঁচ (হাঁচেন, হাঁচিস), হাঁচে (হাঁচেন); হাঁচিতে; হাঁচিয়া > (ক্ষে. হেঁচে)। ণিজন্ত-হাঁচান̑-হাঁচাইয়া দেওয়া]
===ক্রিয়া===
{{ক্রিয়া|bn}}
#অতিশয় শ্রমসাধ্য কাজ লইয়া হাঁসফাঁস করা। হাঁচিয়ে দেওয়া
#ক্ষুৎ করা
g2wept7hj7llk90hvsd4s1kkyxsanvx
মডিউল:আভিধানিক উপাত্ত
828
50158
513833
513683
2026-07-15T11:19:22Z
Redmin
6857
513833
Scribunto
text/plain
local p = {}
local i18n = require('মডিউল:আভিধানিক উপাত্ত/i18n')
local references = require('মডিউল:উইকিউপাত্ত তথ্যসূত্র বিন্যাসকরণ').format
local getArgs = require('Module:Arguments').getArgs
local wb = mw.wikibase
local ustring = mw.ustring
local html = mw.html
local mw_lang = mw.language
local entity_cache = {}
local reference_cache = {}
local forms
local lang_code
local lex_cat
local matched_lemma
local lang_id
local function wrapStringInWikilinks(str)
local exceptions = i18n.nolinks
local result = str:gsub('(%S+)', function(token)
local word, trailing_char = token:match('^(.-)([;,.:!?]*)$')
local wrapped = word:gsub('[^(-/]+', function(part)
if exceptions[part] then
return part
else
return '[[' .. mw.text.nowiki(part) .. '#' .. i18n['content_lang_name'] .. '|' .. mw.text.nowiki(part) .. ']]'
end
end)
return wrapped .. trailing_char
end)
return result
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 .. "\"[inserializable 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 _, 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 checkTitleCodePointInRange(title, start_point, end_point)
return ustring.find( title, '[' ..ustring.char(start_point) .. '-' .. ustring.char(end_point) .. ']' )
end
local function getLanguageForCategories(title)
-- বিশেষ ভাষার জন্য
if lang_id == 'Q11051' then -- হিন্দি/উর্দু
if checkTitleCodePointInRange(title, 0x0600, 0x06ff) then -- উর্দু
lang_id = 'Q11051ur'
elseif checkTitleCodePointInRange(title, 0x0900, 0x097f) then -- হিন্দি
lang_id = 'Q11051hi'
end
elseif lang_id == 'Q58635' then -- পাঞ্জাবি
if checkTitleCodePointInRange(title, 0x0600, 0x06ff) then -- শাহমুখী
lang_id = 'Q58635pnb'
elseif checkTitleCodePointInRange(title, 0x0a00, 0x0a7f) then -- গুরুমুখী
lang_id = 'Q58635pa'
end
elseif lang_id == 'Q56356571' then -- নয়া ফার্সি ভাষা
if checkTitleCodePointInRange(title, 0x0600, 0x06ff) then -- ফার্সি (ইরান/আফগানিস্তান)
lang_id = 'Q56356571fa'
elseif checkTitleCodePointInRange(title, 0x0400, 0x04ff) then -- তাজিক
lang_id = 'Q56356571tg'
end
end
return lang_id
end
local function getEntity(id)
if entity_cache[id] == nil then
entity_cache[id] = wb.getEntity(id) or error('Invalid ID provided: ' .. id)
end
return entity_cache[id] ~= false and entity_cache[id] or nil
end
-- Use this function to get the label of an item even if that item does not have any label in the wiki's content language or English.
local function getLabel(id)
if id == 'Q11051hi' then
return 'হিন্দি'
elseif id == 'Q11051ur' then
return 'উর্দু'
elseif id == 'Q56356571fa' then
return 'ফার্সি'
elseif id == 'Q56356571tg' then
return 'তাজিক'
elseif id == 'Q58635pa' or id == 'Q58635pnb' then
return 'পাঞ্জাবি'
end
local label = wb.getLabel(id)
if label then
return label
end
local labels = getEntity(id).labels
if not labels then
return id
end
for _, v in pairs(labels) do
if v and v.value then
return v.value
end
end
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 then
if reference.snaks['P248'] 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'] then
local snak = reference.snaks['P854'][1]
if snak.datavalue then
url_value = snak.datavalue.value
end
end
end
if url_value 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
-- Returns the Wiktionary language code for a lexeme entity or nil, in the latter case, getLemmas() can be relied on to fetch the language code by stripping extraneous bits from the 'language' string as necessary
local function getLexemeLanguageCode(lexeme)
local lang_item_id = lexeme:getLanguage()
local lang_entity = getEntity(lang_item_id)
for i, statement_property in ipairs({'P305','P424', 'P220'}) do -- আইইটিএফ ভাষা ট্যাগ, উইকিমিডিয়া ভাষা কোড, আইএসও ৬৩৯-৩
local statements = lang_entity:getBestStatements(statement_property)
if statements[1] then
local code = statements[1].mainsnak.datavalue.value
if code == 'hr' then
return 'sh'
elseif code == 'pan' then
return 'pa'
else
return code
end
end
end
end
local function getLexemeLanguageCodeForEtymology(lexeme)
local lang_item_id = lexeme:getLanguage()
if lang_item_id == 'Q56356571' then
return 'fa' -- @TODO: Implement a proper solution
end
return getLexemeLanguageCode(lexeme)
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 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)
if lex then
lex = getEntity(lex)
n = n + 1
lemmas[n] = lex:getLemma(lang_code)
end
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
local formatter_urls = require('মডিউল:আভিধানিক উপাত্ত/urls').formatter_urls
for property_id, statements in pairs(entity.claims) do
local formatter_url = formatter_urls[property_id]
if formatter_url then
local property_source = wb.getBestStatements(property_id, 'P9073')
local source_name
if next(property_source) then
source_name = getLabel(property_source[1].mainsnak.datavalue.value.id)
or property_source[1].mainsnak.datavalue.value.id
else
source_name = 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 heading_level(text, level)
return '<h' .. level .. '>' .. ' ' .. text .. ' ' .. '</h' .. level .. '>'
end
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 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(lexeme, frame)
local lemma_string = ''
local lang
for i, rep in pairs(lexeme:getLemmas()) do
lang = getLexemeLanguageCode(lexeme)
if lang == nil then
lang = string.gsub(rep[2], '-%S+', '')
end
if lemma_string == '' then
lemma_string = frame:expandTemplate{title='link', args={lang, rep[1]}}
else
lemma_string = lemma_string .. '/' .. frame:expandTemplate{title='link', args={lang, rep[1]}}
end
end
return lemma_string
end
local function getExamples( current_lexeme, sense_id, references_seen )
local examples = html.create('dl')
local example_text, example_lang, example_form, example_str
for i, stmt in pairs(current_lexeme:getAllStatements('P5831')) do -- ব্যবহারের উদাহরণ
if stmt.qualifiers and stmt.qualifiers['P6072'] 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'] then
table.insert(example_form_strs, stmt.qualifiers['P1810'][1].datavalue.value)
elseif stmt.qualifiers['P5830'] then
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
for _, rep in pairs(example_form:getRepresentations()) do
table.insert(example_form_strs, rep[1])
end
end
for _, example_form_str in pairs(example_form_strs) do
local 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
example_text = new_example_text
end
if example_str == nil then
example_str = termSpan({example_text, example_lang})
end
local reference_text = ''
if stmt.references 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 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
local example_form_str = nil
if stmt.qualifiers then
if stmt.qualifiers['P5830'] then
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- subject lexeme form
end
if stmt.qualifiers['P1810'] then
example_form_str = stmt.qualifiers['P1810'][1].datavalue.value
end
end
if example_form and example_form_str == nil then
example_form_str = example_form:getRepresentation(i18n['content_lang_code'])
end
if example_form and example_form_str == nil then
example_form_str = example_form:getRepresentations()[1][1]
end
if example_form_str then
example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
end
example_str = termSpan({example_text, example_lang})
local reference_text = ''
if stmt.references 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 then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
return { tostring(examples) , references_seen }
end
-- This calls frame:preprocess() instead of :callParserFunction() because the latter does not work for Wikifunctions function calls yet (see https://www.wikifunctions.org/wiki/Wikifunctions:Embedded_function_calls).
local function callWikifunctionsFunction(args, frame)
return frame:preprocess('{{#function:' .. args .. '}}')
end
local function getOneValueForProperty(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 getLastValueForProperty(object, property)
local val, count
local stmts = object:getAllStatements(property)
for i, j in ipairs(stmts) do
count = i
end
if count then
val = stmts[count].mainsnak.datavalue.value
end
return val
end
local function getTranslations(frame, senses)
if #senses == 0 then
return nil
end
local all_translations = {}
local wmlang, item, label
for _, sense in pairs(senses) do
local translation_set = {}
local gloss = sense:getGloss(i18n['content_lang_code'])
if lex_cat ~= 'Q34698' then
item = getOneValueForProperty(sense, 'P5137')
if item then
item = item.id
label = getLabel(item)
end
end
if item then
wmlang = require("Module:wikimedia languages")
end
for _, stmt in pairs(sense:getAllStatements('P5972')) do
local translation = stmt.mainsnak.datavalue.value.id
local lexeme_id = wb.lexeme.splitLexemeId(translation)
local trans_lexeme = getEntity(lexeme_id)
local lang_name = getLabel(trans_lexeme:getLanguage())
local trans_code = getLexemeLanguageCode(trans_lexeme)
if trans_code then
table.insert(translation_set, lang_name .. ': ' .. frame:expandTemplate{title=i18n['template_t'], args={trans_code, getLinkedLemmata(trans_lexeme, frame) .. '<br/>'}})
else
table.insert(translation_set, lang_name .. ': ' .. getLinkedLemmata(trans_lexeme, frame) .. '<br/>' .. i18n.trans_category(lang_name))
end
end
if item then
for _, v in pairs(getEntity(item).labels) do
if string.find(v.language, '-') == nil then -- @TODO: Implement deduplication of translation and get rid of this check
local lang = wmlang.getByCode(v.language)
local wikt = lang:getWiktionaryLanguage()
if wikt:hasType('regular') then
table.insert(translation_set, getLabel(wikt:getWikidataItem()) .. ': ' .. frame:expandTemplate{title=i18n['template_t'], args={wikt:getCode(), v.value .. '<br/>'}})
end
end
end
end
if #translation_set > 0 then
local block = frame:expandTemplate{ title = i18n['template_trans-top'], args = { gloss or label } }
block = block .. table.concat(translation_set, '\n') .. frame:expandTemplate{ title = i18n['template_trans-bottom'] }
table.insert(all_translations, block)
end
end
if #all_translations == 0 then
return nil
end
return heading_level(i18n['heading_translation'], 4) .. ' \n' .. table.concat(all_translations, '\n')
end
local createicon = function(langcode, entityID, propertyID)
langcode = langcode or ""
propertyID = propertyID or ""
local icon = " <span class='penicon autoconfirmed-show'>[["
-- " <span data-bridge-edit-flow='overwrite' class='penicon'>[[" -> enable Wikidata Bridge
.. "File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt="
.. i18n['edit_wikidata']
.. "|link=https://www.wikidata.org/entity/" .. entityID
if langcode ~= "" then icon = icon .. "?uselang=" .. langcode end
if propertyID ~= "" then icon = icon .. "#" .. propertyID end
icon = icon .. "|" .. i18n['edit_wikidata'] .. "]]</span>"
return icon
end
local function getMeanings(frame, args, current_lexeme, senses, references_seen, language_name)
if #senses == 0 then
return {createicon(i18n['content_lang_code'], current_lexeme:getId()) .. "''" .. i18n['text_category_rfdef'] .. "''" .. i18n.tocatlink(i18n['category_rfdef']), references_seen}
end
local meanings = html.create( 'ol' )
local idlinkset = {}
for i, sense in pairs(senses) do
local item_label_gloss_parts = {}
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 _, stmt in pairs(sense:getAllStatements(property_id)) do
local stmt_value = stmt.mainsnak.datavalue.value.id
local reference_text = ''
local refs = stmt.references
if refs then
for j, reference in pairs(refs) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. frame:extensionTag('ref', got_reference[2])
end
end
local val = getLabel(stmt_value)
table.insert(specifiers, val .. reference_text)
if property_id == 'P9488' and lang_code ~= nil then
table.insert(item_label_gloss_parts, i18n.tocatlink(lang_code .. ':' .. val))
end
end
end
if #specifiers > 0 then
main_gloss_text = main_gloss_text .. "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
local gloss = sense:getGloss( i18n['content_lang_code'] )
if gloss then
main_gloss_text = main_gloss_text .. wrapStringInWikilinks(gloss)
if gloss:match('^প্রদত্ত%s*(%S-)%s*নাম$') then -- given names
main_gloss_text = main_gloss_text .. i18n.tocatlink(language_name .. ' ' .. i18n['category_given_names'])
end
else
local other_gloss_text, other_gloss_lang, item_label
local stmt_value = getOneValueForProperty(sense, 'P5137')
if stmt_value then
stmt_value = stmt_value.id
item_label = getLabel(stmt_value)
end
if item_label then
table.insert(item_label_gloss_parts, '[[:d:' .. stmt_value .. '|' .. item_label .. ']]')
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 _, fallback_lang in ipairs(mw_lang.getFallbacksFor( i18n['content_lang_code'] )) do
if sense:getGloss( fallback_lang ) then
other_gloss_text, other_gloss_lang = sense:getGloss( fallback_lang )
end
end
if other_gloss_lang == nil then
local glosses = sense:getGlosses()
for _, gloss in pairs(glosses) do
other_gloss_text = gloss[1]
other_gloss_lang = gloss[2]
break
end
end
main_gloss_text = main_gloss_text .. other_gloss_text .. "<sup><em>" .. mw_lang.fetchLanguageName(other_gloss_lang, i18n['content_lang_code']) .. "</em></sup>"
else
main_gloss_text = main_gloss_text .. "''" .. other_gloss_text .. "''"
end
main_gloss_text = main_gloss_text .. i18n.tocatlink(i18n['category_rfdef_equivalent'])
end
local synonym = expandTemplateForProperty(frame, sense, 'P5973', i18n['template_synonym'])
if synonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. synonym
end
local antonym = expandTemplateForProperty(frame, sense, 'P5974', i18n['template_antonym'])
if antonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. antonym
end
local hypernym = expandTemplateForProperty(frame, sense, 'P6593', i18n['template_hypernym'])
if hypernym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. hypernym
end
if lex_cat == 'Q1084' or lex_cat == 'Q147276' then -- noun or proper noun
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-noun'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
elseif lex_cat == 'Q34698' then
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-adj'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
end
table.insert(gloss_text_parts, main_gloss_text .. createicon(i18n['content_lang_code'], sense:getId()))
for _, stmt in pairs(sense:getAllStatements('P8394')) do -- টিপ্পনীর উদ্ধৃতি
local gloss_quote = termSpan({stmt.mainsnak.datavalue.value.text, stmt.mainsnak.datavalue.value.language})
if stmt.references[1] 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 _, 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 }
local qualifiers_order = stmt['qualifiers-order']
if qualifiers_order then
for _, 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) then
first_sense_image = sense_images[1].mainsnak.datavalue.value
end
if first_sense_image ~= '' then
table.insert(gloss_text_parts, '[[File:' .. first_sense_image .. "|thumb|'''" .. getLemmata(current_lexeme) .. "'''—" .. main_gloss_text .. ']]')
end
local idlinks = getExternalLinks(sense)
if #idlinks > 0 then
local idlinktext = '<small>('
for _, idlink in pairs(idlinks) do
idlinktext = idlinktext .. idlink .. '\n'
end
idlinktext = idlinktext .. ')</small>'
table.insert(gloss_text_parts, idlinktext)
table.insert(idlinkset, idlinks)
end
local externallinks = getArticleLinks(frame, sense)
if externallinks ~= '' then
table.insert(gloss_text_parts, externallinks)
end
local new_notes = {}
local sense_keys = { sense:getId(), string.sub(sense:getId(), string.find(sense:getId(), '-')+1) }
for _, v in ipairs(sense_keys) do
if args[v] then
table.insert(new_notes, args[v])
end
end
if #new_notes > 0 then
for _, v in ipairs(new_notes) do
if i == 1 then
table.insert(gloss_text_parts, '<br/>' .. v)
else
table.insert(gloss_text_parts, v)
end
end
end
local examples
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, idlinkset}
end
local function getPronunciationBaseForm()
local base_form = nil
-- (!) অন্য ভাষার শব্দের যদি অন্য রকম মূল ফর্ম থাকে সেগুলো এখানে নতুন if বিবৃতি দিয়ে যোগ করা যায়।
if lang_code == 'bn' 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, frame )
local combines = ''
local index_mappings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P5238')) do
if stmt.qualifiers and stmt.qualifiers['P1545'] 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
if stmt.mainsnak.datavalue then
local part_lexeme_id = stmt.mainsnak.datavalue.value.id
local part_lexeme = getEntity(part_lexeme_id)
local current_substring = getLinkedLemmata(part_lexeme, frame)
local part_etymology = getEtymology(part_lexeme, frame, 'partial')
if part_etymology ~= '' and part_etymology then
current_substring = current_substring .. ' (← ' .. part_etymology .. ')'
end
if combines == '' then
combines = current_substring
else -- @TODO: This should use the 'affix' and 'compound' templates instead.
combines = combines .. ' + ' .. current_substring
end
end
end
end
return combines
end
function getRoots(lexeme, frame)
local stmts = lexeme:getAllStatements('P5920')
if #stmts == 0 then return '', '', '' end
local root_lexeme = getEntity(stmts[1].mainsnak.datavalue.value.id)
return getLexemeLanguageCode(root_lexeme), '√' .. getLinkedLemmata(root_lexeme, frame), root_lexeme:getLemma('ar')
end
function getEtymology( current_lexeme, frame, mode )
-- @TODO: Fix the etymology chains that are not possible to render
local etymology = ''
local current_combines = getCombines(current_lexeme, frame)
local root_lang, current_roots, root_str = getRoots(current_lexeme, frame)
if mode ~= 'partial' and root_str then
--frame:expandTemplate{title=i18n['template_root'], args={lang_code, root_lang, root_str}}
end
local stmts = current_lexeme:getAllStatements('P5191')
local new_etymology_string
if #stmts == 0 then
if current_roots ~= '' and current_combines ~= '' and current_roots then
return current_roots .. '<br/>(' .. current_combines .. ')'
elseif current_roots ~= '' then
if lang_code == 'ar' and mode ~= 'partial' and root_str ~= matched_lemma then
return frame:expandTemplate{title=i18n['template_ar-rootbox'], args={root_str}}
else
return current_roots
end
else
return current_combines
end
end
local origin_lexeme_string
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 then
local origin_lexeme = getEntity(origin_lexeme_dv.value.id)
local origin_lexeme_lang = getLabel(origin_lexeme:getLanguage())
local sitelink = i18n.wplink(origin_lexeme:getLanguage(), origin_lexeme_lang, wb)
if sitelink ~= '' then
origin_lexeme_string = getLinkedLemmata(origin_lexeme, frame) .. ' (' .. sitelink .. ')'
else
origin_lexeme_string = getLinkedLemmata(origin_lexeme, frame) .. ' (' .. origin_lexeme_lang .. ')'
end
if stmt.qualifiers and stmt.qualifiers['P5886'] then
local mode_of_derivation = stmt.qualifiers['P5886'][1].datavalue.value.id
if mode_of_derivation == 'Q1345001' then
-- @TODO: Add support for showing gender
origin_lexeme_string = frame:expandTemplate{title=i18n['template_borrowed'], args={lang_code, getLexemeLanguageCodeForEtymology(origin_lexeme), getLemmata(origin_lexeme), pos=getLabel(lex_cat)}} .. ' ' .. i18n['etymology_borrowing']
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 = frame:expandTemplate{title=i18n['template_inherited'], args={lang_code, getLexemeLanguageCodeForEtymology(origin_lexeme), getLemmata(origin_lexeme), pos=getLabel(lex_cat)}} .. ' ' .. i18n['etymology_inheritance']
elseif mode_of_derivation == 'Q189743' then
origin_lexeme_string = frame:expandTemplate{title=i18n['template_ellipsis'], args={lang_code, getLemmata(origin_lexeme)}} .. ' ' .. i18n['etymology_ellipsis']
end
end
local origin_origin = getEtymology(origin_lexeme, frame)
if origin_origin ~= '' and origin_origin 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 and etymology then
etymology = etymology .. ' ' .. origin_lexeme_string
elseif origin_lexeme_string and etymology == nil then
etymology = origin_lexeme_string
end
end
if current_roots ~= '' and etymology and current_roots then
etymology = etymology .. ' ' .. current_roots
elseif current_roots ~= '' and etymology == nil then
etymology = current_roots
end
if current_combines ~= '' and etymology then
etymology = etymology .. '<br/>(' .. current_combines .. ')'
end
return etymology
end
local function pronunciationBlock(block, value)
return '* ' .. i18n['text_' .. block] .. ' ' .. value
end
local function getPronunciation(frame, current_lexeme, lang_name)
local pronunciations = {}
local base_form = getPronunciationBaseForm()
local iast, iso15919_transcription, itrans, xsampa
if base_form 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 then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
local qual = stmt.qualifiers[property_id]
if qual then
for _, qual in pairs(qual) do
local stmt_value = qual.datavalue.value.id
table.insert(specifiers, getLabel(stmt_value))
end
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
iso15919_transcription = getOneValueForProperty(base_form, 'P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ
itrans = getOneValueForProperty(base_form, 'P8881') -- ITRANS
iast = getOneValueForProperty(base_form, 'P7581') -- আইএএসটি প্রতিলিপিকরণ
xsampa = getOneValueForProperty(base_form, 'P2859')
local ipa_transcription = base_form:getAllStatements('P898') -- আধ্বব প্রতিলিপিকরণ
-- @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 then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in ipairs(stmt.qualifiers[property_id]) do
table.insert(specifiers, getLabel( qual.datavalue.value.id ))
end
end
end
if #specifiers > 0 then
specifier_text = "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
local syllable_count
if lang_code == 'tr' then
syllable_count = i18n['text_syllable_count'] .. ' ' .. callWikifunctionsFunction('Z10029|' .. ipa_text, frame)
else
syllable_count = i18n['text_syllable_count'] .. ' ' .. callWikifunctionsFunction('Z30837|' .. ipa_text, frame)
end
table.insert(pronunciations, '* ' .. specifier_text .. frame:expandTemplate{
title= i18n['template_ipa'],
args = {lang_name, ipa_text}
} .. '\n* ' .. syllable_count)
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
elseif lang_code == 'bn' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='bn-IPA',
})
elseif lang_code == 'ar' then
local lemma = current_lexeme:getLemma('ar')
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='ar-IPA',
args={lemma}
})
elseif lang_code == 'en' then
table.insert(pronunciations, '* ' .. i18n['text_syllable_count'] .. ' ' .. callWikifunctionsFunction('Z29940|' .. matched_lemma, frame))
elseif lang_code == 'pl' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='pl-IPA',
})
elseif lang_code == 'ko' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='ko-IPA',
})
elseif lang_code == 'fi' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fi-IPA',
})
elseif lang_code == 'ta' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='ta-IPA',
})
elseif lang_code == 'fax' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fax-pron',
})
end
end -- {{আধ্বব|en|/ˈɪntəvjuː/}}
if iso15919_transcription then
table.insert(pronunciations, pronunciationBlock('iso15919', iso15919_transcription))
end
if itrans then
table.insert(pronunciations, pronunciationBlock('itrans', itrans))
end
if iast then
table.insert(pronunciations, pronunciationBlock('iast', iast))
end
if xsampa then
table.insert(pronunciations, pronunciationBlock('xsampa', xsampa))
end
return table.concat(pronunciations, '\n')
end
local function getAlternativeSpellings( current_lexeme, frame )
local alt_spellings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P11577')) do -- বিকল্প বানান
if stmt.mainsnak.datavalue then
table.insert(alt_spellings, '* ' .. frame:expandTemplate{title=i18n['template_alter'], args={lang_code, getLemmata(getEntity(stmt.mainsnak.datavalue.value.id), frame)}})
end
end
return table.concat(alt_spellings, '\n')
end
function get_any_notes(sections, args, keys)
local notes = {}
for i, v in ipairs(keys) do
if args[v] then
table.insert(notes, args[v])
end
end
return notes
end
function add_specific_notes(sections, notes)
for i, v in ipairs(notes) do
table.insert(sections, v)
end
end
local function add_any_notes(sections, args, keys, heading)
for i, v in ipairs(keys) do
if args[v] then
if heading then
table.insert(sections, heading)
end
table.insert(sections, args[v])
end
end
end
local function getMatchingLemmaForPageTitle(lexeme, title)
local lemmas = lexeme:getLemmas()
local match
for _, lemma_entry in ipairs(lemmas) do
local lemma = lemma_entry[1]
if lemma == title then
match = lemma
break
end
end
if match == nil then
if lang_code == 'ar' then
match = lexeme:getLemma('ar')
elseif lang_code == 'rhg' then
match = lexeme:getLemma('rhg-arab')
elseif lang_id == 'Q11051ur' then
match = lexeme:getLemma('ur')
elseif lang_code == 'arz' then
match = lexeme:getLemma('arz')
end
end
return match
end
-- Returns the grammatical gender of a lexeme
local function getGenderOfLexeme(lexeme)
local gender = ''
local stmts = lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ
if #stmts ~= 0 and stmts[1].mainsnak.datavalue then
if #stmts == 1 then
local gender_qid = stmts[1].mainsnak.datavalue.value.id
if gender_qid == 'Q499327' then
gender = 'm'
elseif gender_qid == 'Q1775415' then
gender = 'f'
elseif gender_qid == 'Q1775461' then
gender = 'n'
elseif gender_qid == 'Q1305037' then
gender = 'c'
end
end
else
for i, stmt in pairs(stmts) do
local qid = stmts[i].mainsnak.datavalue
if qid then
qid = qid.value.id
end
if qid == 'Q499327' then
gender = gender .. 'm'
elseif qid == 'Q1775415' then
gender = gender .. 'f'
end
end
end
if gender == '' then
return nil
end
return gender
end
-- Returns the semantic gender for a sense
-- @TODO: Complete this
local function getGenderForSense(sense)
local gender = ''
local stmts = sense:getAllStatements('P10339') -- semantic gender
if #stmts ~= 0 and stmts[1].mainsnak.datavalue then
if #stmts == 1 then
local gender_qid = stmts[1].mainsnak.datavalue.value.id
if gender_qid == 'Q6581097' then
gender = 'm'
elseif gender_qid == 'Q1775415' then
gender = 'f'
elseif gender_qid == 'Q1775461' then
gender = 'n'
elseif gender_qid == 'Q1305037' then
gender = 'c'
elseif gender_qid == 'Q70853302' then
gender = 'mfbysense'
end
end
else
for i, stmt in pairs(stmts) do
local qid = stmts[i].mainsnak.datavalue
if qid then
qid = qid.value.id
end
if qid == 'Q499327' then
gender = gender .. 'm'
elseif qid == 'Q1775415' then
gender = gender .. 'f'
end
end
end
return gender
end
local function buildLanguageAgnosticInflectionTable()
local has_image = false
local form_images = {}
for i, form in ipairs(forms) do
local form_image = form:getAllStatements('P7407')
if next(form_image) 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 then
for j, f in ipairs(feat) do
local label = getLabel(f) or 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] 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 language = current_lexeme:getLanguage()
lang_id = language
local senses = current_lexeme:getSenses()
local add_heading = true
forms = current_lexeme:getForms()
if args[2] 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 title = mw.title.getCurrentTitle().text
local lang_category = getLanguageForCategories(title, true)
local lang_name = getLabel(lang_category)
local conj_class = getLastValueForProperty(current_lexeme, 'P5186')
if conj_class then
conj_class = wb.getLabelByLang(getLastValueForProperty(current_lexeme, 'P5186').id, 'en'):gsub('Form ', '')
end
if add_heading == true then
local lang_heading = heading_level(lang_name, 2)
table.insert(sections, lang_heading)
end
lang_code = getLexemeLanguageCode(current_lexeme)
matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
lex_cat = current_lexeme:getLexicalCategory()
local cat = i18n.lang_category(getLabel(lex_cat), lang_name)
local lex_cat_template, ety_added, pron_added, alt_added
if cat then
table.insert(sections, heading_level(getLabel(lex_cat) .. cat .. frame:expandTemplate{
title = i18n['template_anchor'],
args = { lexeme_id }
}, 3))
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, frame )
if etymology ~= '' and etymology then
table.insert(sections, heading_level(i18n['heading_etymology'], 4))
table.insert(sections, tostring(etymology))
ety_added = true
end
if ety_added then
add_any_notes(sections, args, i18n['manual_etymology'])
else
add_any_notes(sections, args, i18n['manual_etymology'], heading_level(i18n['heading_etymology'], 4))
end
local pronunciation = getPronunciation( frame, current_lexeme, lang_name)
if pronunciation ~= '' then
table.insert(sections, heading_level(i18n['heading_pronunciation'], 4))
table.insert(sections, tostring(pronunciation))
pron_added = true
end
if pron_added then
add_any_notes(sections, args, i18n['manual_pronunciation'])
else
add_any_notes(sections, args, i18n['manual_pronunciation'], heading_level(i18n['heading_pronunciation'], 4))
end
local alternative_spellings = getAlternativeSpellings(current_lexeme, frame)
if alternative_spellings ~= '' then
table.insert(sections, heading_level(i18n['heading_alternative_spellings'], 4))
table.insert(sections, alternative_spellings)
alt_added = true
end
if alt_added then
add_any_notes(sections, args, i18n['manual_alternative_spellings'])
else
add_any_notes(sections, args, i18n['manual_alternative_spellings'], heading_level( i18n['heading_alternative_spellings'], 4))
end
local gender = getGenderOfLexeme(current_lexeme)
if lang_code and lang_code ~= 'ksy' and lang_code ~= 'rkt' then -- Skip for Kharia Thar, Rangpuri
if lex_cat == 'Q34698' then -- বিশেষণ
if lang_code == 'en' or lang_code == 'bn' then
if #forms <= 1 then
lex_cat_template = frame:expandTemplate{title= lang_code .. '-বিশেষণ'}
end
else
lex_cat_template = safeExpand(frame, lang_code .. '-adj')
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষণ')
end
end
elseif lex_cat == 'Q1084' then -- @TODO: Also check for plural forms
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
if language == 'Q13955' then
if matched_lemma then
lex_cat_template = safeExpand(frame, 'ar-noun', {matched_lemma,gender})
else
lex_cat_template = frame:expandTemplate{title='ar-noun', args={nil,gender}}
end
elseif language == 'Q29919' then
lex_cat_template = frame:expandTemplate{title='arz-noun', args={g=gender}}
elseif language == 'Q397' then
if matched_lemma then
lex_cat_template = frame:expandTemplate{title='la-noun', args={matched_lemma,g=gender}}
end
elseif language == 'Q11059' then
lex_cat_template = frame:expandTemplate{title='sa-noun', args={g=gender}}
elseif language ~= 'Q1860' then -- These templates require the gender to be passed as the 1st argument.
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix'], {gender})
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix_fallback'], {gender})
end
end
elseif lex_cat == 'Q24905' then -- ক্রিয়া
if lang_code == 'ar' then
if conj_class then
lex_cat_template = frame:expandTemplate{title='ar-verb', args={conj_class}}
end
else
lex_cat_template = safeExpand(frame, lang_code .. '-verb')
end
end
end
-- elseif lex_cat == 'Q147276' then
-- lex_cat_template = safeExpand(frame, lang_code .. '-proper noun', {gender})
-- if not lex_cat_template then
-- lex_cat_template = safeExpand(frame, lang_code .. '-নামবাচক বিশেষ্য', {gender})
-- end
end
if lex_cat_template then
table.insert(sections, lex_cat_template)
else
if matched_lemma then
table.insert(sections, heading_level(matched_lemma, 4))
else
table.insert(sections, i18n.tocatlink(i18n['category_no_matching_lemma']))
end
end
local meanings, references_seen, sense_extlinks = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name))
table.insert(sections, tostring(meanings))
add_any_notes(sections, args, i18n['manual_meaning'])
local instance_of = current_lexeme:getAllStatements('P31') -- সত্ত্বার ধরন
if #instance_of ~= 0 then
local instance_of_entity = instance_of[1].mainsnak.datavalue.value.id
if instance_of_entity == 'Q376431' then -- বর্ণের নাম
table.insert(sections, i18n.tocatlink(lang_code .. ':রং'))
else
table.insert(sections, heading_level(i18n['heading_special_info'], 4) .. i18n['text_instance_of'] .. ' ' .. '[[d:' .. instance_of_entity .. '|' .. getLabel(instance_of_entity) .. ']]' .. i18n['text_sentence_terminator'])
end
end
if lex_cat ~= 'Q9788' then
local translations = getTranslations(frame, senses)
if translations then
table.insert(sections, translations)
end
end
-- (!) বিশেষ ভাষার বিভক্তির সারণি যদি থাকে সেগুলো এখানে নতুন if বিবৃতি যোগ করা যায়।
if next(forms) then
if language == 'Q9610' then -- বাংলা
if lex_cat == 'Q24905' then
local conjTable = require('মডিউল:আভিধানিক উপাত্ত/Q9610').getConjTable(frame, forms)
table.insert(sections, conjTable)
elseif lex_cat == 'Q1084' or lex_cat == 'Q36224' or lex_cat == 'Q147276' or lex_cat == 'Q956030' then
table.insert(sections, callWikifunctionsFunction('Z33243|' .. lexeme_id .. '|', frame))
else
if #forms > 1 then
table.insert(sections, buildLanguageAgnosticInflectionTable())
end
end
--elseif language == 'Q13955' then -- ar
-- if lex_cat == 'Q1084' then
-- table.insert(sections, frame:expandTemplate{title='ar-decl-noun', args={lemma}})
-- end
--elseif lang_code == 'ar' and lex_cat == 'Q24905' then
--table.insert(sections, frame:expandTemplate{title='ar-conj', args={conj_class}})
elseif language == 'Q11051' and lex_cat == 'Q1084' then -- de
if lang_id == "Q11051hi" then
table.insert(sections, callWikifunctionsFunction('Z37337|' .. lexeme_id .. '|', frame))
else
table.insert(sections, callWikifunctionsFunction('Z37346|' .. lexeme_id .. '|', frame))
end
elseif language == 'Q188' and lex_cat == 'Q1084' then -- de
table.insert(sections, callWikifunctionsFunction('Z28602|' .. lexeme_id .. '|', frame))
elseif lang_code == 'as' and lex_cat == 'Q1084' then
table.insert(sections, callWikifunctionsFunction('Z37219|' .. lexeme_id .. '|', frame))
elseif lang_code == 'ml' and lex_cat == 'Q1084' then
table.insert(sections, callWikifunctionsFunction('Z37217|' .. lexeme_id .. '|', frame))
--elseif language == 'Q397' and lex_cat == 'Q1084' then -- la
-- table.insert(sections, callWikifunctionsFunction('Z26333|' .. matched_lemma .. '|', frame))
elseif language == 'Q150' and lex_cat == 'Q34698' then -- fr
table.insert(sections, callWikifunctionsFunction('Z36435|' .. lexeme_id .. '|', frame))
elseif language == 'Q652' and lex_cat == 'Q34698' then -- ইতালীয়
table.insert(sections, callWikifunctionsFunction('Z36407|' .. lexeme_id .. '|', frame))
elseif language == 'Q809' or language == 'Q9058' or language == 'Q6654' or language == 'Q9056' then -- পোলীয়, স্লোভাক, ক্রোয়েশীয়, চেক
table.insert(sections, callWikifunctionsFunction('Z36421|' .. lexeme_id .. '|', frame))
elseif #forms > 1 and language ~= 'Q150' then
table.insert(sections, buildLanguageAgnosticInflectionTable())
end
end
if lex_cat == 'Q134830' then
table.insert(sections, frame:expandTemplate{title='prefixsee', args={lang_code}})
elseif lex_cat == 'Q102047' then
table.insert(sections, frame:expandTemplate{title='suffixsee', args={lang_code}})
-- elseif lex_cat == 'Q111029' then
-- table.insert(sections, frame:expandTemplate{title='rootsee', args={'+', lang_code, matched_lemma}})
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 sense_extlinks and #sense_extlinks == 0 and #external_link_table == 0 and #get_any_notes(sections, args, i18n['manual_external_link']) == 0 then
table.insert(sections, i18n.rfref_category(lang_name))
end
return table.concat(sections,"\n\n")
end
return p
qwopeuq61el65oawpnnj8402805m52r
513834
513833
2026-07-15T11:23:55Z
Redmin
6857
513834
Scribunto
text/plain
local p = {}
local i18n = require('মডিউল:আভিধানিক উপাত্ত/i18n')
local references = require('মডিউল:উইকিউপাত্ত তথ্যসূত্র বিন্যাসকরণ').format
local getArgs = require('Module:Arguments').getArgs
local wb = mw.wikibase
local ustring = mw.ustring
local html = mw.html
local mw_lang = mw.language
local entity_cache = {}
local reference_cache = {}
local forms
local lang_code
local lex_cat
local matched_lemma
local lang_id
local function wrapStringInWikilinks(str)
local exceptions = i18n.nolinks
local result = str:gsub('(%S+)', function(token)
local word, trailing_char = token:match('^(.-)([;,.:!?]*)$')
local wrapped = word:gsub('[^(-/]+', function(part)
if exceptions[part] then
return part
else
return '[[' .. mw.text.nowiki(part) .. '#' .. i18n['content_lang_name'] .. '|' .. mw.text.nowiki(part) .. ']]'
end
end)
return wrapped .. trailing_char
end)
return result
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 .. "\"[inserializable 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 _, 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 checkTitleCodePointInRange(title, start_point, end_point)
return ustring.find( title, '[' ..ustring.char(start_point) .. '-' .. ustring.char(end_point) .. ']' )
end
local function getLanguageForCategories(title)
-- বিশেষ ভাষার জন্য
if lang_id == 'Q11051' then -- হিন্দি/উর্দু
if checkTitleCodePointInRange(title, 0x0600, 0x06ff) then -- উর্দু
lang_id = 'Q11051ur'
elseif checkTitleCodePointInRange(title, 0x0900, 0x097f) then -- হিন্দি
lang_id = 'Q11051hi'
end
elseif lang_id == 'Q58635' then -- পাঞ্জাবি
if checkTitleCodePointInRange(title, 0x0600, 0x06ff) then -- শাহমুখী
lang_id = 'Q58635pnb'
elseif checkTitleCodePointInRange(title, 0x0a00, 0x0a7f) then -- গুরুমুখী
lang_id = 'Q58635pa'
end
elseif lang_id == 'Q56356571' then -- নয়া ফার্সি ভাষা
if checkTitleCodePointInRange(title, 0x0600, 0x06ff) then -- ফার্সি (ইরান/আফগানিস্তান)
lang_id = 'Q56356571fa'
elseif checkTitleCodePointInRange(title, 0x0400, 0x04ff) then -- তাজিক
lang_id = 'Q56356571tg'
end
end
return lang_id
end
local function getEntity(id)
if entity_cache[id] == nil then
entity_cache[id] = wb.getEntity(id) or error('Invalid ID provided: ' .. id)
end
return entity_cache[id] ~= false and entity_cache[id] or nil
end
-- Use this function to get the label of an item even if that item does not have any label in the wiki's content language or English.
local function getLabel(id)
if id == 'Q11051hi' then
return 'হিন্দি'
elseif id == 'Q11051ur' then
return 'উর্দু'
elseif id == 'Q56356571fa' then
return 'ফার্সি'
elseif id == 'Q56356571tg' then
return 'তাজিক'
elseif id == 'Q58635pa' or id == 'Q58635pnb' then
return 'পাঞ্জাবি'
end
local label = wb.getLabel(id)
if label then
return label
end
local labels = getEntity(id).labels
if not labels then
return id
end
for _, v in pairs(labels) do
if v and v.value then
return v.value
end
end
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 then
if reference.snaks['P248'] 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'] then
local snak = reference.snaks['P854'][1]
if snak.datavalue then
url_value = snak.datavalue.value
end
end
end
if url_value 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
-- Returns the Wiktionary language code for a lexeme entity or nil, in the latter case, getLemmas() can be relied on to fetch the language code by stripping extraneous bits from the 'language' string as necessary
local function getLexemeLanguageCode(lexeme)
local lang_item_id = lexeme:getLanguage()
local lang_entity = getEntity(lang_item_id)
for i, statement_property in ipairs({'P305','P424', 'P220'}) do -- আইইটিএফ ভাষা ট্যাগ, উইকিমিডিয়া ভাষা কোড, আইএসও ৬৩৯-৩
local statements = lang_entity:getBestStatements(statement_property)
if statements[1] then
local code = statements[1].mainsnak.datavalue.value
if code == 'hr' then
return 'sh'
elseif code == 'pan' then
return 'pa'
else
return code
end
end
end
end
local function getLexemeLanguageCodeForEtymology(lexeme)
local lang_item_id = lexeme:getLanguage()
if lang_item_id == 'Q56356571' then
return 'fa' -- @TODO: Implement a proper solution
end
return getLexemeLanguageCode(lexeme)
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 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)
if lex then
lex = getEntity(lex)
n = n + 1
lemmas[n] = lex:getLemma(lang_code)
end
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
local formatter_urls = require('মডিউল:আভিধানিক উপাত্ত/urls').formatter_urls
for property_id, statements in pairs(entity.claims) do
local formatter_url = formatter_urls[property_id]
if formatter_url then
local property_source = wb.getBestStatements(property_id, 'P9073')
local source_name
if next(property_source) then
source_name = getLabel(property_source[1].mainsnak.datavalue.value.id)
or property_source[1].mainsnak.datavalue.value.id
else
source_name = 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 heading_level(text, level)
return '<h' .. level .. '>' .. ' ' .. text .. ' ' .. '</h' .. level .. '>'
end
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 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(lexeme, frame)
local lemma_string = ''
local lang
for i, rep in pairs(lexeme:getLemmas()) do
lang = getLexemeLanguageCode(lexeme)
if lang == nil then
lang = string.gsub(rep[2], '-%S+', '')
end
if lemma_string == '' then
lemma_string = frame:expandTemplate{title='link', args={lang, rep[1]}}
else
lemma_string = lemma_string .. '/' .. frame:expandTemplate{title='link', args={lang, rep[1]}}
end
end
return lemma_string
end
local function getExamples( current_lexeme, sense_id, references_seen )
local examples = html.create('dl')
local example_text, example_lang, example_form, example_str
for i, stmt in pairs(current_lexeme:getAllStatements('P5831')) do -- ব্যবহারের উদাহরণ
if stmt.qualifiers and stmt.qualifiers['P6072'] 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'] then
table.insert(example_form_strs, stmt.qualifiers['P1810'][1].datavalue.value)
elseif stmt.qualifiers['P5830'] then
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- বিষয়ে লেক্সিমের রূপ
for _, rep in pairs(example_form:getRepresentations()) do
table.insert(example_form_strs, rep[1])
end
end
for _, example_form_str in pairs(example_form_strs) do
local 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
example_text = new_example_text
end
if example_str == nil then
example_str = termSpan({example_text, example_lang})
end
local reference_text = ''
if stmt.references 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 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
local example_form_str = nil
if stmt.qualifiers then
if stmt.qualifiers['P5830'] then
example_form = getEntity(stmt.qualifiers['P5830'][1].datavalue.value.id) -- subject lexeme form
end
if stmt.qualifiers['P1810'] then
example_form_str = stmt.qualifiers['P1810'][1].datavalue.value
end
end
if example_form and example_form_str == nil then
example_form_str = example_form:getRepresentation(i18n['content_lang_code'])
end
if example_form and example_form_str == nil then
example_form_str = example_form:getRepresentations()[1][1]
end
if example_form_str then
example_text = ustring.gsub(example_text, example_form_str, "'''" .. example_form_str .. "'''")
end
example_str = termSpan({example_text, example_lang})
local reference_text = ''
if stmt.references 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 then
examples:tag('dd'):wikitext("''" .. example_str .. "''")
if reference_text ~= '' then
examples:done():tag('dd'):css('text-indent', '2em'):wikitext(reference_text)
end
end
end
return { tostring(examples) , references_seen }
end
-- This calls frame:preprocess() instead of :callParserFunction() because the latter does not work for Wikifunctions function calls yet (see https://www.wikifunctions.org/wiki/Wikifunctions:Embedded_function_calls).
local function callWikifunctionsFunction(args, frame)
return frame:preprocess('{{#function:' .. args .. '}}') .. i18n.tocatlink('উইকিফাংশন্স-এর ফাংশন ব্যবহার করা পাতা')
end
local function getOneValueForProperty(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 getLastValueForProperty(object, property)
local val, count
local stmts = object:getAllStatements(property)
for i, j in ipairs(stmts) do
count = i
end
if count then
val = stmts[count].mainsnak.datavalue.value
end
return val
end
local function getTranslations(frame, senses)
if #senses == 0 then
return nil
end
local all_translations = {}
local wmlang, item, label
for _, sense in pairs(senses) do
local translation_set = {}
local gloss = sense:getGloss(i18n['content_lang_code'])
if lex_cat ~= 'Q34698' then
item = getOneValueForProperty(sense, 'P5137')
if item then
item = item.id
label = getLabel(item)
end
end
if item then
wmlang = require("Module:wikimedia languages")
end
for _, stmt in pairs(sense:getAllStatements('P5972')) do
local translation = stmt.mainsnak.datavalue.value.id
local lexeme_id = wb.lexeme.splitLexemeId(translation)
local trans_lexeme = getEntity(lexeme_id)
local lang_name = getLabel(trans_lexeme:getLanguage())
local trans_code = getLexemeLanguageCode(trans_lexeme)
if trans_code then
table.insert(translation_set, lang_name .. ': ' .. frame:expandTemplate{title=i18n['template_t'], args={trans_code, getLinkedLemmata(trans_lexeme, frame) .. '<br/>'}})
else
table.insert(translation_set, lang_name .. ': ' .. getLinkedLemmata(trans_lexeme, frame) .. '<br/>' .. i18n.trans_category(lang_name))
end
end
if item then
for _, v in pairs(getEntity(item).labels) do
if string.find(v.language, '-') == nil then -- @TODO: Implement deduplication of translation and get rid of this check
local lang = wmlang.getByCode(v.language)
local wikt = lang:getWiktionaryLanguage()
if wikt:hasType('regular') then
table.insert(translation_set, getLabel(wikt:getWikidataItem()) .. ': ' .. frame:expandTemplate{title=i18n['template_t'], args={wikt:getCode(), v.value .. '<br/>'}})
end
end
end
end
if #translation_set > 0 then
local block = frame:expandTemplate{ title = i18n['template_trans-top'], args = { gloss or label } }
block = block .. table.concat(translation_set, '\n') .. frame:expandTemplate{ title = i18n['template_trans-bottom'] }
table.insert(all_translations, block)
end
end
if #all_translations == 0 then
return nil
end
return heading_level(i18n['heading_translation'], 4) .. ' \n' .. table.concat(all_translations, '\n')
end
local createicon = function(langcode, entityID, propertyID)
langcode = langcode or ""
propertyID = propertyID or ""
local icon = " <span class='penicon autoconfirmed-show'>[["
-- " <span data-bridge-edit-flow='overwrite' class='penicon'>[[" -> enable Wikidata Bridge
.. "File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt="
.. i18n['edit_wikidata']
.. "|link=https://www.wikidata.org/entity/" .. entityID
if langcode ~= "" then icon = icon .. "?uselang=" .. langcode end
if propertyID ~= "" then icon = icon .. "#" .. propertyID end
icon = icon .. "|" .. i18n['edit_wikidata'] .. "]]</span>"
return icon
end
local function getMeanings(frame, args, current_lexeme, senses, references_seen, language_name)
if #senses == 0 then
return {createicon(i18n['content_lang_code'], current_lexeme:getId()) .. "''" .. i18n['text_category_rfdef'] .. "''" .. i18n.tocatlink(i18n['category_rfdef']), references_seen}
end
local meanings = html.create( 'ol' )
local idlinkset = {}
for i, sense in pairs(senses) do
local item_label_gloss_parts = {}
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 _, stmt in pairs(sense:getAllStatements(property_id)) do
local stmt_value = stmt.mainsnak.datavalue.value.id
local reference_text = ''
local refs = stmt.references
if refs then
for j, reference in pairs(refs) do
table.insert(references_seen, reference.hash)
local got_reference = getReference(reference.hash, reference)
reference_text = reference_text .. '\n\n' .. frame:extensionTag('ref', got_reference[2])
end
end
local val = getLabel(stmt_value)
table.insert(specifiers, val .. reference_text)
if property_id == 'P9488' and lang_code ~= nil then
table.insert(item_label_gloss_parts, i18n.tocatlink(lang_code .. ':' .. val))
end
end
end
if #specifiers > 0 then
main_gloss_text = main_gloss_text .. "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
local gloss = sense:getGloss( i18n['content_lang_code'] )
if gloss then
main_gloss_text = main_gloss_text .. wrapStringInWikilinks(gloss)
if gloss:match('^প্রদত্ত%s*(%S-)%s*নাম$') then -- given names
main_gloss_text = main_gloss_text .. i18n.tocatlink(language_name .. ' ' .. i18n['category_given_names'])
end
else
local other_gloss_text, other_gloss_lang, item_label
local stmt_value = getOneValueForProperty(sense, 'P5137')
if stmt_value then
stmt_value = stmt_value.id
item_label = getLabel(stmt_value)
end
if item_label then
table.insert(item_label_gloss_parts, '[[:d:' .. stmt_value .. '|' .. item_label .. ']]')
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 _, fallback_lang in ipairs(mw_lang.getFallbacksFor( i18n['content_lang_code'] )) do
if sense:getGloss( fallback_lang ) then
other_gloss_text, other_gloss_lang = sense:getGloss( fallback_lang )
end
end
if other_gloss_lang == nil then
local glosses = sense:getGlosses()
for _, gloss in pairs(glosses) do
other_gloss_text = gloss[1]
other_gloss_lang = gloss[2]
break
end
end
main_gloss_text = main_gloss_text .. other_gloss_text .. "<sup><em>" .. mw_lang.fetchLanguageName(other_gloss_lang, i18n['content_lang_code']) .. "</em></sup>"
else
main_gloss_text = main_gloss_text .. "''" .. other_gloss_text .. "''"
end
main_gloss_text = main_gloss_text .. i18n.tocatlink(i18n['category_rfdef_equivalent'])
end
local synonym = expandTemplateForProperty(frame, sense, 'P5973', i18n['template_synonym'])
if synonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. synonym
end
local antonym = expandTemplateForProperty(frame, sense, 'P5974', i18n['template_antonym'])
if antonym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. antonym
end
local hypernym = expandTemplateForProperty(frame, sense, 'P6593', i18n['template_hypernym'])
if hypernym ~= '' then
main_gloss_text = main_gloss_text .. ' <br/> ' .. hypernym
end
if lex_cat == 'Q1084' or lex_cat == 'Q147276' then -- noun or proper noun
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-noun'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
elseif lex_cat == 'Q34698' then
local demonym = expandTemplateForProperty(frame, sense, 'P6271', i18n['template_demonym-adj'])
main_gloss_text = main_gloss_text .. ' <br/> ' .. demonym
end
table.insert(gloss_text_parts, main_gloss_text .. createicon(i18n['content_lang_code'], sense:getId()))
for _, stmt in pairs(sense:getAllStatements('P8394')) do -- টিপ্পনীর উদ্ধৃতি
local gloss_quote = termSpan({stmt.mainsnak.datavalue.value.text, stmt.mainsnak.datavalue.value.language})
if stmt.references[1] 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 _, 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 }
local qualifiers_order = stmt['qualifiers-order']
if qualifiers_order then
for _, 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) then
first_sense_image = sense_images[1].mainsnak.datavalue.value
end
if first_sense_image ~= '' then
table.insert(gloss_text_parts, '[[File:' .. first_sense_image .. "|thumb|'''" .. getLemmata(current_lexeme) .. "'''—" .. main_gloss_text .. ']]')
end
local idlinks = getExternalLinks(sense)
if #idlinks > 0 then
local idlinktext = '<small>('
for _, idlink in pairs(idlinks) do
idlinktext = idlinktext .. idlink .. '\n'
end
idlinktext = idlinktext .. ')</small>'
table.insert(gloss_text_parts, idlinktext)
table.insert(idlinkset, idlinks)
end
local externallinks = getArticleLinks(frame, sense)
if externallinks ~= '' then
table.insert(gloss_text_parts, externallinks)
end
local new_notes = {}
local sense_keys = { sense:getId(), string.sub(sense:getId(), string.find(sense:getId(), '-')+1) }
for _, v in ipairs(sense_keys) do
if args[v] then
table.insert(new_notes, args[v])
end
end
if #new_notes > 0 then
for _, v in ipairs(new_notes) do
if i == 1 then
table.insert(gloss_text_parts, '<br/>' .. v)
else
table.insert(gloss_text_parts, v)
end
end
end
local examples
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, idlinkset}
end
local function getPronunciationBaseForm()
local base_form = nil
-- (!) অন্য ভাষার শব্দের যদি অন্য রকম মূল ফর্ম থাকে সেগুলো এখানে নতুন if বিবৃতি দিয়ে যোগ করা যায়।
if lang_code == 'bn' 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, frame )
local combines = ''
local index_mappings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P5238')) do
if stmt.qualifiers and stmt.qualifiers['P1545'] 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
if stmt.mainsnak.datavalue then
local part_lexeme_id = stmt.mainsnak.datavalue.value.id
local part_lexeme = getEntity(part_lexeme_id)
local current_substring = getLinkedLemmata(part_lexeme, frame)
local part_etymology = getEtymology(part_lexeme, frame, 'partial')
if part_etymology ~= '' and part_etymology then
current_substring = current_substring .. ' (← ' .. part_etymology .. ')'
end
if combines == '' then
combines = current_substring
else -- @TODO: This should use the 'affix' and 'compound' templates instead.
combines = combines .. ' + ' .. current_substring
end
end
end
end
return combines
end
function getRoots(lexeme, frame)
local stmts = lexeme:getAllStatements('P5920')
if #stmts == 0 then return '', '', '' end
local root_lexeme = getEntity(stmts[1].mainsnak.datavalue.value.id)
return getLexemeLanguageCode(root_lexeme), '√' .. getLinkedLemmata(root_lexeme, frame), root_lexeme:getLemma('ar')
end
function getEtymology( current_lexeme, frame, mode )
-- @TODO: Fix the etymology chains that are not possible to render
local etymology = ''
local current_combines = getCombines(current_lexeme, frame)
local root_lang, current_roots, root_str = getRoots(current_lexeme, frame)
if mode ~= 'partial' and root_str then
--frame:expandTemplate{title=i18n['template_root'], args={lang_code, root_lang, root_str}}
end
local stmts = current_lexeme:getAllStatements('P5191')
local new_etymology_string
if #stmts == 0 then
if current_roots ~= '' and current_combines ~= '' and current_roots then
return current_roots .. '<br/>(' .. current_combines .. ')'
elseif current_roots ~= '' then
if lang_code == 'ar' and mode ~= 'partial' and root_str ~= matched_lemma then
return frame:expandTemplate{title=i18n['template_ar-rootbox'], args={root_str}}
else
return current_roots
end
else
return current_combines
end
end
local origin_lexeme_string
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 then
local origin_lexeme = getEntity(origin_lexeme_dv.value.id)
local origin_lexeme_lang = getLabel(origin_lexeme:getLanguage())
local sitelink = i18n.wplink(origin_lexeme:getLanguage(), origin_lexeme_lang, wb)
if sitelink ~= '' then
origin_lexeme_string = getLinkedLemmata(origin_lexeme, frame) .. ' (' .. sitelink .. ')'
else
origin_lexeme_string = getLinkedLemmata(origin_lexeme, frame) .. ' (' .. origin_lexeme_lang .. ')'
end
if stmt.qualifiers and stmt.qualifiers['P5886'] then
local mode_of_derivation = stmt.qualifiers['P5886'][1].datavalue.value.id
if mode_of_derivation == 'Q1345001' then
-- @TODO: Add support for showing gender
origin_lexeme_string = frame:expandTemplate{title=i18n['template_borrowed'], args={lang_code, getLexemeLanguageCodeForEtymology(origin_lexeme), getLemmata(origin_lexeme), pos=getLabel(lex_cat)}} .. ' ' .. i18n['etymology_borrowing']
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 = frame:expandTemplate{title=i18n['template_inherited'], args={lang_code, getLexemeLanguageCodeForEtymology(origin_lexeme), getLemmata(origin_lexeme), pos=getLabel(lex_cat)}} .. ' ' .. i18n['etymology_inheritance']
elseif mode_of_derivation == 'Q189743' then
origin_lexeme_string = frame:expandTemplate{title=i18n['template_ellipsis'], args={lang_code, getLemmata(origin_lexeme)}} .. ' ' .. i18n['etymology_ellipsis']
end
end
local origin_origin = getEtymology(origin_lexeme, frame)
if origin_origin ~= '' and origin_origin 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 and etymology then
etymology = etymology .. ' ' .. origin_lexeme_string
elseif origin_lexeme_string and etymology == nil then
etymology = origin_lexeme_string
end
end
if current_roots ~= '' and etymology and current_roots then
etymology = etymology .. ' ' .. current_roots
elseif current_roots ~= '' and etymology == nil then
etymology = current_roots
end
if current_combines ~= '' and etymology then
etymology = etymology .. '<br/>(' .. current_combines .. ')'
end
return etymology
end
local function pronunciationBlock(block, value)
return '* ' .. i18n['text_' .. block] .. ' ' .. value
end
local function getPronunciation(frame, current_lexeme, lang_name)
local pronunciations = {}
local base_form = getPronunciationBaseForm()
local iast, iso15919_transcription, itrans, xsampa
if base_form 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 then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
local qual = stmt.qualifiers[property_id]
if qual then
for _, qual in pairs(qual) do
local stmt_value = qual.datavalue.value.id
table.insert(specifiers, getLabel(stmt_value))
end
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
iso15919_transcription = getOneValueForProperty(base_form, 'P5825') -- আইএসও ১৫৯১৯ প্রতিলিপিকরণ
itrans = getOneValueForProperty(base_form, 'P8881') -- ITRANS
iast = getOneValueForProperty(base_form, 'P7581') -- আইএএসটি প্রতিলিপিকরণ
xsampa = getOneValueForProperty(base_form, 'P2859')
local ipa_transcription = base_form:getAllStatements('P898') -- আধ্বব প্রতিলিপিকরণ
-- @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 then
for k, property_id in ipairs({'P5237'}) do -- উচ্চারণের ধরন
for l, qual in ipairs(stmt.qualifiers[property_id]) do
table.insert(specifiers, getLabel( qual.datavalue.value.id ))
end
end
end
if #specifiers > 0 then
specifier_text = "(''" .. table.concat(specifiers, "'', ''") .. "'') "
end
local syllable_count
if lang_code == 'tr' then
syllable_count = i18n['text_syllable_count'] .. ' ' .. callWikifunctionsFunction('Z10029|' .. ipa_text, frame)
else
syllable_count = i18n['text_syllable_count'] .. ' ' .. callWikifunctionsFunction('Z30837|' .. ipa_text, frame)
end
table.insert(pronunciations, '* ' .. specifier_text .. frame:expandTemplate{
title= i18n['template_ipa'],
args = {lang_name, ipa_text}
} .. '\n* ' .. syllable_count)
end
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
elseif lang_code == 'bn' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='bn-IPA',
})
elseif lang_code == 'ar' then
local lemma = current_lexeme:getLemma('ar')
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='ar-IPA',
args={lemma}
})
elseif lang_code == 'en' then
table.insert(pronunciations, '* ' .. i18n['text_syllable_count'] .. ' ' .. callWikifunctionsFunction('Z29940|' .. matched_lemma, frame))
elseif lang_code == 'pl' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='pl-IPA',
})
elseif lang_code == 'ko' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='ko-IPA',
})
elseif lang_code == 'fi' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fi-IPA',
})
elseif lang_code == 'ta' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='ta-IPA',
})
elseif lang_code == 'fax' then
table.insert(pronunciations, '* ' .. frame:expandTemplate{
title='fax-pron',
})
end
end -- {{আধ্বব|en|/ˈɪntəvjuː/}}
if iso15919_transcription then
table.insert(pronunciations, pronunciationBlock('iso15919', iso15919_transcription))
end
if itrans then
table.insert(pronunciations, pronunciationBlock('itrans', itrans))
end
if iast then
table.insert(pronunciations, pronunciationBlock('iast', iast))
end
if xsampa then
table.insert(pronunciations, pronunciationBlock('xsampa', xsampa))
end
return table.concat(pronunciations, '\n')
end
local function getAlternativeSpellings( current_lexeme, frame )
local alt_spellings = {}
for i, stmt in pairs(current_lexeme:getAllStatements('P11577')) do -- বিকল্প বানান
if stmt.mainsnak.datavalue then
table.insert(alt_spellings, '* ' .. frame:expandTemplate{title=i18n['template_alter'], args={lang_code, getLemmata(getEntity(stmt.mainsnak.datavalue.value.id), frame)}})
end
end
return table.concat(alt_spellings, '\n')
end
function get_any_notes(sections, args, keys)
local notes = {}
for i, v in ipairs(keys) do
if args[v] then
table.insert(notes, args[v])
end
end
return notes
end
function add_specific_notes(sections, notes)
for i, v in ipairs(notes) do
table.insert(sections, v)
end
end
local function add_any_notes(sections, args, keys, heading)
for i, v in ipairs(keys) do
if args[v] then
if heading then
table.insert(sections, heading)
end
table.insert(sections, args[v])
end
end
end
local function getMatchingLemmaForPageTitle(lexeme, title)
local lemmas = lexeme:getLemmas()
local match
for _, lemma_entry in ipairs(lemmas) do
local lemma = lemma_entry[1]
if lemma == title then
match = lemma
break
end
end
if match == nil then
if lang_code == 'ar' then
match = lexeme:getLemma('ar')
elseif lang_code == 'rhg' then
match = lexeme:getLemma('rhg-arab')
elseif lang_id == 'Q11051ur' then
match = lexeme:getLemma('ur')
elseif lang_code == 'arz' then
match = lexeme:getLemma('arz')
end
end
return match
end
-- Returns the grammatical gender of a lexeme
local function getGenderOfLexeme(lexeme)
local gender = ''
local stmts = lexeme:getAllStatements('P5185') -- ব্যাকরণগত লিঙ্গ
if #stmts ~= 0 and stmts[1].mainsnak.datavalue then
if #stmts == 1 then
local gender_qid = stmts[1].mainsnak.datavalue.value.id
if gender_qid == 'Q499327' then
gender = 'm'
elseif gender_qid == 'Q1775415' then
gender = 'f'
elseif gender_qid == 'Q1775461' then
gender = 'n'
elseif gender_qid == 'Q1305037' then
gender = 'c'
end
end
else
for i, stmt in pairs(stmts) do
local qid = stmts[i].mainsnak.datavalue
if qid then
qid = qid.value.id
end
if qid == 'Q499327' then
gender = gender .. 'm'
elseif qid == 'Q1775415' then
gender = gender .. 'f'
end
end
end
if gender == '' then
return nil
end
return gender
end
-- Returns the semantic gender for a sense
-- @TODO: Complete this
local function getGenderForSense(sense)
local gender = ''
local stmts = sense:getAllStatements('P10339') -- semantic gender
if #stmts ~= 0 and stmts[1].mainsnak.datavalue then
if #stmts == 1 then
local gender_qid = stmts[1].mainsnak.datavalue.value.id
if gender_qid == 'Q6581097' then
gender = 'm'
elseif gender_qid == 'Q1775415' then
gender = 'f'
elseif gender_qid == 'Q1775461' then
gender = 'n'
elseif gender_qid == 'Q1305037' then
gender = 'c'
elseif gender_qid == 'Q70853302' then
gender = 'mfbysense'
end
end
else
for i, stmt in pairs(stmts) do
local qid = stmts[i].mainsnak.datavalue
if qid then
qid = qid.value.id
end
if qid == 'Q499327' then
gender = gender .. 'm'
elseif qid == 'Q1775415' then
gender = gender .. 'f'
end
end
end
return gender
end
local function buildLanguageAgnosticInflectionTable()
local has_image = false
local form_images = {}
for i, form in ipairs(forms) do
local form_image = form:getAllStatements('P7407')
if next(form_image) 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 then
for j, f in ipairs(feat) do
local label = getLabel(f) or 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] 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 language = current_lexeme:getLanguage()
lang_id = language
local senses = current_lexeme:getSenses()
local add_heading = true
forms = current_lexeme:getForms()
if args[2] 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 title = mw.title.getCurrentTitle().text
local lang_category = getLanguageForCategories(title, true)
local lang_name = getLabel(lang_category)
local conj_class = getLastValueForProperty(current_lexeme, 'P5186')
if conj_class then
conj_class = wb.getLabelByLang(getLastValueForProperty(current_lexeme, 'P5186').id, 'en'):gsub('Form ', '')
end
if add_heading == true then
local lang_heading = heading_level(lang_name, 2)
table.insert(sections, lang_heading)
end
lang_code = getLexemeLanguageCode(current_lexeme)
matched_lemma = getMatchingLemmaForPageTitle(current_lexeme, title)
lex_cat = current_lexeme:getLexicalCategory()
local cat = i18n.lang_category(getLabel(lex_cat), lang_name)
local lex_cat_template, ety_added, pron_added, alt_added
if cat then
table.insert(sections, heading_level(getLabel(lex_cat) .. cat .. frame:expandTemplate{
title = i18n['template_anchor'],
args = { lexeme_id }
}, 3))
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, frame )
if etymology ~= '' and etymology then
table.insert(sections, heading_level(i18n['heading_etymology'], 4))
table.insert(sections, tostring(etymology))
ety_added = true
end
if ety_added then
add_any_notes(sections, args, i18n['manual_etymology'])
else
add_any_notes(sections, args, i18n['manual_etymology'], heading_level(i18n['heading_etymology'], 4))
end
local pronunciation = getPronunciation( frame, current_lexeme, lang_name)
if pronunciation ~= '' then
table.insert(sections, heading_level(i18n['heading_pronunciation'], 4))
table.insert(sections, tostring(pronunciation))
pron_added = true
end
if pron_added then
add_any_notes(sections, args, i18n['manual_pronunciation'])
else
add_any_notes(sections, args, i18n['manual_pronunciation'], heading_level(i18n['heading_pronunciation'], 4))
end
local alternative_spellings = getAlternativeSpellings(current_lexeme, frame)
if alternative_spellings ~= '' then
table.insert(sections, heading_level(i18n['heading_alternative_spellings'], 4))
table.insert(sections, alternative_spellings)
alt_added = true
end
if alt_added then
add_any_notes(sections, args, i18n['manual_alternative_spellings'])
else
add_any_notes(sections, args, i18n['manual_alternative_spellings'], heading_level( i18n['heading_alternative_spellings'], 4))
end
local gender = getGenderOfLexeme(current_lexeme)
if lang_code and lang_code ~= 'ksy' and lang_code ~= 'rkt' then -- Skip for Kharia Thar, Rangpuri
if lex_cat == 'Q34698' then -- বিশেষণ
if lang_code == 'en' or lang_code == 'bn' then
if #forms <= 1 then
lex_cat_template = frame:expandTemplate{title= lang_code .. '-বিশেষণ'}
end
else
lex_cat_template = safeExpand(frame, lang_code .. '-adj')
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. '-বিশেষণ')
end
end
elseif lex_cat == 'Q1084' then -- @TODO: Also check for plural forms
-- The following checks are ordered based on which one is expected to be true in a higher number of cases.
if language == 'Q13955' then
if matched_lemma then
lex_cat_template = safeExpand(frame, 'ar-noun', {matched_lemma,gender})
else
lex_cat_template = frame:expandTemplate{title='ar-noun', args={nil,gender}}
end
elseif language == 'Q29919' then
lex_cat_template = frame:expandTemplate{title='arz-noun', args={g=gender}}
elseif language == 'Q397' then
if matched_lemma then
lex_cat_template = frame:expandTemplate{title='la-noun', args={matched_lemma,g=gender}}
end
elseif language == 'Q11059' then
lex_cat_template = frame:expandTemplate{title='sa-noun', args={g=gender}}
elseif language ~= 'Q1860' then -- These templates require the gender to be passed as the 1st argument.
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix'], {gender})
if not lex_cat_template then
lex_cat_template = safeExpand(frame, lang_code .. i18n['noun_template_suffix_fallback'], {gender})
end
end
elseif lex_cat == 'Q24905' then -- ক্রিয়া
if lang_code == 'ar' then
if conj_class then
lex_cat_template = frame:expandTemplate{title='ar-verb', args={conj_class}}
end
else
lex_cat_template = safeExpand(frame, lang_code .. '-verb')
end
end
end
-- elseif lex_cat == 'Q147276' then
-- lex_cat_template = safeExpand(frame, lang_code .. '-proper noun', {gender})
-- if not lex_cat_template then
-- lex_cat_template = safeExpand(frame, lang_code .. '-নামবাচক বিশেষ্য', {gender})
-- end
end
if lex_cat_template then
table.insert(sections, lex_cat_template)
else
if matched_lemma then
table.insert(sections, heading_level(matched_lemma, 4))
else
table.insert(sections, i18n.tocatlink(i18n['category_no_matching_lemma']))
end
end
local meanings, references_seen, sense_extlinks = unpack(getMeanings( frame, args, current_lexeme, senses, references_seen, lang_name))
table.insert(sections, tostring(meanings))
add_any_notes(sections, args, i18n['manual_meaning'])
local instance_of = current_lexeme:getAllStatements('P31') -- সত্ত্বার ধরন
if #instance_of ~= 0 then
local instance_of_entity = instance_of[1].mainsnak.datavalue.value.id
if instance_of_entity == 'Q376431' then -- বর্ণের নাম
table.insert(sections, i18n.tocatlink(lang_code .. ':রং'))
else
table.insert(sections, heading_level(i18n['heading_special_info'], 4) .. i18n['text_instance_of'] .. ' ' .. '[[d:' .. instance_of_entity .. '|' .. getLabel(instance_of_entity) .. ']]' .. i18n['text_sentence_terminator'])
end
end
if lex_cat ~= 'Q9788' then
local translations = getTranslations(frame, senses)
if translations then
table.insert(sections, translations)
end
end
-- (!) বিশেষ ভাষার বিভক্তির সারণি যদি থাকে সেগুলো এখানে নতুন if বিবৃতি যোগ করা যায়।
if next(forms) then
if language == 'Q9610' then -- বাংলা
if lex_cat == 'Q24905' then
local conjTable = require('মডিউল:আভিধানিক উপাত্ত/Q9610').getConjTable(frame, forms)
table.insert(sections, conjTable)
elseif lex_cat == 'Q1084' or lex_cat == 'Q36224' or lex_cat == 'Q147276' or lex_cat == 'Q956030' then
table.insert(sections, callWikifunctionsFunction('Z33243|' .. lexeme_id .. '|', frame))
else
if #forms > 1 then
table.insert(sections, buildLanguageAgnosticInflectionTable())
end
end
--elseif language == 'Q13955' then -- ar
-- if lex_cat == 'Q1084' then
-- table.insert(sections, frame:expandTemplate{title='ar-decl-noun', args={lemma}})
-- end
--elseif lang_code == 'ar' and lex_cat == 'Q24905' then
--table.insert(sections, frame:expandTemplate{title='ar-conj', args={conj_class}})
elseif language == 'Q11051' and lex_cat == 'Q1084' then -- de
if lang_id == "Q11051hi" then
table.insert(sections, callWikifunctionsFunction('Z37337|' .. lexeme_id .. '|', frame))
else
table.insert(sections, callWikifunctionsFunction('Z37346|' .. lexeme_id .. '|', frame))
end
elseif language == 'Q188' and lex_cat == 'Q1084' then -- de
table.insert(sections, callWikifunctionsFunction('Z28602|' .. lexeme_id .. '|', frame))
elseif lang_code == 'as' and lex_cat == 'Q1084' then
table.insert(sections, callWikifunctionsFunction('Z37219|' .. lexeme_id .. '|', frame))
elseif lang_code == 'ml' and lex_cat == 'Q1084' then
table.insert(sections, callWikifunctionsFunction('Z37217|' .. lexeme_id .. '|', frame))
--elseif language == 'Q397' and lex_cat == 'Q1084' then -- la
-- table.insert(sections, callWikifunctionsFunction('Z26333|' .. matched_lemma .. '|', frame))
elseif language == 'Q150' and lex_cat == 'Q34698' then -- fr
table.insert(sections, callWikifunctionsFunction('Z36435|' .. lexeme_id .. '|', frame))
elseif language == 'Q652' and lex_cat == 'Q34698' then -- ইতালীয়
table.insert(sections, callWikifunctionsFunction('Z36407|' .. lexeme_id .. '|', frame))
elseif language == 'Q809' or language == 'Q9058' or language == 'Q6654' or language == 'Q9056' then -- পোলীয়, স্লোভাক, ক্রোয়েশীয়, চেক
table.insert(sections, callWikifunctionsFunction('Z36421|' .. lexeme_id .. '|', frame))
elseif #forms > 1 and language ~= 'Q150' then
table.insert(sections, buildLanguageAgnosticInflectionTable())
end
end
if lex_cat == 'Q134830' then
table.insert(sections, frame:expandTemplate{title='prefixsee', args={lang_code}})
elseif lex_cat == 'Q102047' then
table.insert(sections, frame:expandTemplate{title='suffixsee', args={lang_code}})
-- elseif lex_cat == 'Q111029' then
-- table.insert(sections, frame:expandTemplate{title='rootsee', args={'+', lang_code, matched_lemma}})
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 sense_extlinks and #sense_extlinks == 0 and #external_link_table == 0 and #get_any_notes(sections, args, i18n['manual_external_link']) == 0 then
table.insert(sections, i18n.rfref_category(lang_name))
end
return table.concat(sections,"\n\n")
end
return p
5l6kh20r8ct5zvyy4wqxpkzdwjqdmk7
হজম
0
52733
513817
194769
2026-07-15T07:20:53Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308570-এর সাথে সংযোগ তৈরি করছি
513817
wikitext
text/x-wiki
{{লে|L308570
|উচ্চারণ=
* হজোম্।}}
[[বিষয়শ্রেণী:২-অক্ষর বিশিষ্ট বাংলা শব্দ]]
mf0xyonx58lllquytthbemne4hl3wp2
হট্টগোল
0
53735
513811
345236
2026-07-15T07:14:29Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308564-এর সাথে সংযোগ তৈরি করছি
513811
wikitext
text/x-wiki
{{লে|L308564}}
===ভাবার্থ===
{{বাগধারা|bn}}
# হাটের মাঝের চেঁচামেচি
# বহুলোকের চিৎকার
#: {{ux|bn|এখানে কিসের এত হট্টগোল?}}
0dgmfjrnpnncyhomotvmy5uea2rquzx
হট্টবিলাসিনী
0
53736
513809
345237
2026-07-15T07:13:36Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308563-এর সাথে সংযোগ তৈরি করছি
513809
wikitext
text/x-wiki
{{লে|L308563}}
===ভাবার্থ===
{{বাগধারা|bn}}
# বারাঙ্গনা
l9ja89d4f097n8tjiotj64mdk71bh83
513810
513809
2026-07-15T07:14:14Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308562-এর সাথে সংযোগ তৈরি করছি
513810
wikitext
text/x-wiki
{{লে|L308563}}
{{লে|L308562|না}}
dhufpioxjc78sq9sfbkqy6xu8v6lwyw
হড়হড়
0
53740
513794
345243
2026-07-15T06:19:29Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308550-এর সাথে সংযোগ তৈরি করছি
513794
wikitext
text/x-wiki
{{লে|L308550|L308550-S1={{ux|bn|ছেলেটি হড়হড় করে গড়িয়ে গেল}}}}
fksjj7qld34q9md4773ntzb76sqdywu
হতভাগ্য
0
53742
513775
345250
2026-07-15T05:39:59Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308529-এর সাথে সংযোগ তৈরি করছি
513775
wikitext
text/x-wiki
{{লে|L308529}}
rg485jb2ju6e2raurbpw8ga3hceppwi
হতচ্ছাড়া
0
53744
513784
345245
2026-07-15T05:56:13Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308540-এর সাথে সংযোগ তৈরি করছি
513784
wikitext
text/x-wiki
{{লে|L308540|L308540-S1={{সমার্থক বাগধারা|bn|হতভাগা}}}}
6ygffn5257nosorkvjqnhy3bg93umg9
হতপ্রায়
0
53745
513781
345246
2026-07-15T05:52:52Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308537-এর সাথে সংযোগ তৈরি করছি
513781
wikitext
text/x-wiki
{{লে|L308537}}
7ticxxy55tacp9rjat3vk6ds1909ly9
হতভাগা
0
53747
513777
345249
2026-07-15T05:48:58Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308532-এর সাথে সংযোগ তৈরি করছি
513777
wikitext
text/x-wiki
{{লে|L308532|L308532-S2={{ux|bn|হতভাগা মরে না কেন}}
<br />{{সমার্থক বাগধারা|bn|হতচ্ছাড়া|লক্ষ্মীছাড়া}}}}
t5lgzxo3s6f9osmx8w6e15oedpxnw6x
513778
513777
2026-07-15T05:49:33Z
Redmin
6857
513778
wikitext
text/x-wiki
{{লে|L308532|L308532-S2={{ux|bn|হতভাগা মরে না কেন}}{{সমার্থক বাগধারা|bn|হতচ্ছাড়া|লক্ষ্মীছাড়া}}}}
avdr1ylie0uucdlzf9v7tfr71gvqgob
হবু
0
53759
513740
345269
2026-07-14T15:23:17Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308476-এর সাথে সংযোগ তৈরি করছি
513740
wikitext
text/x-wiki
{{লে|L308476|L308476-S1={{ux|bn|হবু জামাই}}}}
83q0eyjcp8dkhw1qzd8vbqvl2mitt6u
হরদম
0
53771
513737
345286
2026-07-14T13:08:20Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308471-এর সাথে সংযোগ তৈরি করছি
513737
wikitext
text/x-wiki
{{লে|L308471|L308471-S1={{ux|bn|চাকর-চাকরানিতে বাড়ি তার হরদম সরগরম-নজরুল}}}}
4k0fmrgeqanlk5drjr8alk8y9owvfg3
হস্তগত
0
53792
513707
345321
2026-07-14T12:26:27Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308409-এর সাথে সংযোগ তৈরি করছি
513707
wikitext
text/x-wiki
{{লে|L308409|L308409-S1=
{{ux|bn|জমি হস্তগত হয়েছে}}}}
olk9dqjzf9rc4pqyvbp725alndd6fti
হাঁটকানো
0
53806
513715
345344
2026-07-14T12:37:06Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308442-এর সাথে সংযোগ তৈরি করছি
513715
wikitext
text/x-wiki
{{লে|L308442|meaning=
# জিনিসপত্র উঠিয়ে দেখা
# নেড়েচেড়ে অনুসন্ধান করা}}
56wrkpdygf1kwa6ob76ppi0wbpusmkw
হাতড়ানো
0
53930
513711
345542
2026-07-14T12:28:37Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308428-এর সাথে সংযোগ তৈরি করছি
513711
wikitext
text/x-wiki
{{লে|L308428|L308428-S1=হাত দিয়ে অনুভবের সাহায্যে অনুসন্ধান করা}}
o8vy2dkeow1wqqnfoofqcqw7ju60b15
হাতানো
0
53973
513712
345551
2026-07-14T12:29:40Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308426-এর সাথে সংযোগ তৈরি করছি
513712
wikitext
text/x-wiki
{{লে|L308426|
L308426-S2={{ux|bn|সে নিশ্চয় ওটা হাতিয়েছে}}
: {{সমার্থক বাগধারা|bn|গেঁড়ানো}}}}
r9nom5fl2vwjyegcy5n9cz2jml7mskh
513713
513712
2026-07-14T12:31:13Z
Redmin
6857
513713
wikitext
text/x-wiki
{{লে|L308426|
L308426-S2={{ux|bn|সে নিশ্চয় ওটা হাতিয়েছে}}
{{সমার্থক বাগধারা|bn|গেঁড়ানো}}}}
rk3022c8lpitppx6siem2iht29u6jti
কাঁচি
0
59550
513748
501718
2026-07-14T17:47:05Z
Pavel Musfiqur
14879
সম্প্রসারণ
513748
wikitext
text/x-wiki
{{আরও দেখুন|কাচি|কাস্তে|কেঁচা|কেঁচি|কাঁচ}}
==অসমীয়া==
[[File:New Moon at sunset.jpg|thumb|কাঁচি]]
===বিকল্প বানান===
* {{alter|as|কাঁচিজোন}} {{q|অধিক প্রচলিত, for moon}}
===ব্যুৎপত্তি===
{{inh+|as|inc-oas|কাঞ্চি}}; এর উৎস {{inh|as|sa|कच्च|কচ্চ}}।
===উচ্চারণ===
* {{as-IPA}}
===বিশেষণ===
{{as-adj}}
# [[immature]], [[naive]]
# [[inexperienced]]
# [[unskilled]]
====বিপরীত শব্দ====
* {{l|as|পকা}}
* {{l|as|পূৰঠ}}
===বিশেষ্য===
{{as-noun|cl=-টো}}
# [[new]] [[moon]], [[crescent]]
====শব্দরুপ====
{{as-noun-v|kãsi|য়ে|e}}
====সম্পর্কিত শব্দ====
{{rel2|as|কেঁচা}}
----
=={{ভাষা|bn}}==
{{উইকিপিডিয়া|lang=bn}}
[[File:Large-scissors.jpg|thumb|{{m-self|bn|কাঁচি}}]]
===বিকল্প বানান===
* {{m|bn|কাঁইচি}}
* {{m|bn|কেঁচি}}
===ব্যুৎপত্তি===
{{bor+|bn|fa|قیچی}}; এর উৎস {{der|bn|trk|-}}, from {{der|bn|xgn-pro|*kaïcï}}। একই উৎসজাত: {{cog|hi|क़ैंची}}।
===উচ্চারণ===
* {{IPA|bn|[ˈkã.t͡ʃi]}}
** {{অডিও|bn|LL-Q9610 (ben)-Titodutta-কাঁচি.wav|অডিও}}
* {{hyphenation|bn|কাঁ|চি}}
===বিশেষ্য===
{{bn-বিশেষ্য}}
# [[scissors]]
#: {{ux|bn|এটা '''কাঁচি''' দিয়েই কাটতে হবে।|This has to be cut with '''scissors'''.}}
# [[sickle]] {{q|ফসল কাটার কাজে ব্যবহৃত একমুখী অর্ধচন্দ্রাকার সরঞ্জাম; [[কাস্তে]]}}
#: {{ux|bn|কৃষকেরা মাঠের ধান '''কাঁচি''' দিয়ে কাটছেন।|The farmers are reaping paddy in the field with a '''sickle'''.}}
====পদানতি====
{{bn-বিশেষ্য-i-inan|kãci}}
h384tolqodhshp6e3cnmumy87a32btk
হপ্তা
0
60791
513744
405741
2026-07-14T15:44:40Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308489-এর সাথে সংযোগ তৈরি করছি
513744
wikitext
text/x-wiki
{{লে|L308489|বিকল্প বানান=
* {{alt|bn|সপ্তা||}}
|L308489-S1={{ux|bn|'''হপ্তা''' [[মম]] [[জুম্আ]] [[করা|করে]] [[পরিশ্রম|পরিশ্রমে]] [[লজ্জা]] [[না]] [[পাওয়া|পায়]]}} - [[w:Abdul Haque Faridi|Abdul Haque Faridi]]}}
====উদ্ভূত শব্দ====
* {{l|bn|হপ্তা হপ্তা}}
===আরও দেখুন===
{{table:সপ্তাহের বার/bn}}
[[বিষয়শ্রেণী:bn:সময়]]
28fyhv2vzuvtpfyqsvrbmhq9vyt5jj4
হংসনাদ
0
67103
513830
184052
2026-07-15T10:29:30Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308589-এর সাথে সংযোগ তৈরি করছি
513830
wikitext
text/x-wiki
{{লে|L308589}}
0t757gd0ja11rcxrrva1x4dz6nutkjj
হংসোদক
0
67104
513823
184060
2026-07-15T08:49:34Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308578-এর সাথে সংযোগ তৈরি করছি
513823
wikitext
text/x-wiki
{{লে|L308578}}
g4t1pt40buszp7vpvxsiouarakeojqh
হট্ট
0
67105
513812
184072
2026-07-15T07:14:41Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308565-এর সাথে সংযোগ তৈরি করছি
513812
wikitext
text/x-wiki
{{লে|L308565}}
ed2kkd0nqik0hy936lk94fh7g4x7elj
হতপ্রভ
0
67107
513782
184089
2026-07-15T05:53:02Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308538-এর সাথে সংযোগ তৈরি করছি
513782
wikitext
text/x-wiki
{{লে|L308538}}
ljjpo2zjs3nok1cn8lb8wrqggs53gz7
جلال
0
72265
513751
511513
2026-07-14T23:15:44Z
Redmin
6857
513751
wikitext
text/x-wiki
=={{langname|ar}}==
===ব্যুৎপত্তি 1===
{{ar-root|ج ل ل|notext=1}}
====বিশেষ্য====
{{ar-noun|جَلَال|m}}
# {{ar-verbal noun of|جَلَّ|form=I}}
# [[loftiness]], [[sublimity]], [[splendor]]
{{লে|L1568164|0}}
=====উত্তরসূরি=====
* {{উত্তরসূরী|az|Cəlal|bor=1}}
* {{উত্তরসূরী|en|Jalal|bor=1}}
* {{উত্তরসূরী|bor=1|axm|Ջալալ|Ճալալ}}
** {{উত্তরসূরী|hy|Ջալալ}}
* {{উত্তরসূরী|ota|جلال|tr=Celal|bor=1}}
** {{উত্তরসূরী|tr|Celal}}
* {{উত্তরসূরী|fa|جلال|tr=jalâl|bor=1}}
** {{উত্তরসূরী|bn|জালাল|bor=1}}
** {{উত্তরসূরী|hi|जलाल|bor=1}}
** {{উত্তরসূরী|ur|جلال|tr=jalāl|bor=1}}
===ব্যুৎপত্তি 2===
====বিশেষ্য====
{{ar-noun-pl|جِلَال|p}}
# {{inflection of|ar|جُلّ||p|t=horse-covering}}
=={{ভাষা|fa}}==
{{উইকিপিডিয়া|lang=fa}}
===ব্যুৎপত্তি===
{{bor+|fa|ar|جَلَال}}.
===উচ্চারণ===
{{fa-IPA|ja`lāl}}
===নামবাচক বিশেষ্য===
{{fa-regional|جلال|جلال|Ҷалол}}
{{fa-proper noun|tr=jalâl}}
# {{প্রদত্ত নাম|fa|পুরুষ|xlit=[[Jalal]]|from=আরবি}}
n1ob2oj95w6cewhgqmqv1eoj19m063f
হতাদর
0
75936
513769
199097
2026-07-15T05:37:47Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308522-এর সাথে সংযোগ তৈরি করছি
513769
wikitext
text/x-wiki
{{লে|L308522}}
lsfmgay80r0gv8zey0ukyyxey1wunlb
513770
513769
2026-07-15T05:38:20Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308523-এর সাথে সংযোগ তৈরি করছি
513770
wikitext
text/x-wiki
{{লে|L308522}}
{{লে|L308523|না}}
cj6t90vnaan0cdgmytdj35vrhirl50h
কাস্তে
0
86135
513750
471062
2026-07-14T18:41:16Z
Pavel Musfiqur
14879
সম্প্রসারণ
513750
wikitext
text/x-wiki
{{আরও দেখুন|কাঁচি}}
== {{ভাষা|bn}} ==
=== উচ্চারণ ===
* {{bn-IPA}}
=== বিশেষ্য ===
{{bn-বিশেষ্য}}
# [[ফসল]] কাটার [[জন্য]] [[ব্যবহৃত]] [[বাঁকা]] দাঁতালো অস্ত্র, শস্যকর্তরী। {{syn|bn|কাঁচি}}
ambk8zmhctu6hz1lbf52il6wlogy8v2
হইহই
0
117786
513831
499996
2026-07-15T10:30:39Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308600-এর সাথে সংযোগ তৈরি করছি
513831
wikitext
text/x-wiki
{{লে|L308600|meaning=
[[কোলাহল]], [[হট্টগোল]]।}}
ner9ef2r3lyr6eajfpb68lqq09sejbl
হজ
0
117796
513818
499999
2026-07-15T07:23:59Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308571-এর সাথে সংযোগ তৈরি করছি
513818
wikitext
text/x-wiki
{{লে|L308571|L308571-S1= [[হিজরি]] পঞ্জিকার [[জিলহজ]] মাসের ৯ তারিখে [[ইসলাম]] ধর্মাবলম্বীদের [[কাবাশরিফ]] [[প্রদক্ষিণ]] ও মক্কাশরিফের অদূরে [[আরাফাত]] ময়দানে অবস্থানের ব্রতবিশেষ।}}
7cmbqc4wcq9ujm6nb76l88t1gu00j3f
হঠ
0
117800
513806
500001
2026-07-15T07:10:39Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308560-এর সাথে সংযোগ তৈরি করছি
513806
wikitext
text/x-wiki
{{লে|L308560}}
=== বিশেষ্য ===
{{bn-বিশেষ্য}}
# [[বলপ্রয়োগ]]। [[পরাজয়]]। [[অবিবেচনা]]। [[পশ্চাদপসরণ]], পশ্চাদ্গতি। (বাংলায়) [[শত্রুতা]]; [[ঝগড়া]]।
b7i21bpehwo5t20cpar2qox813yjgzx
513807
513806
2026-07-15T07:12:05Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308559-এর সাথে সংযোগ তৈরি করছি
513807
wikitext
text/x-wiki
{{লে|L308559}}
{{লে|L308560|meaning=
# [[বলপ্রয়োগ]]।
#[[পরাজয়]]।
# [[শত্রুতা]]; [[ঝগড়া]]।}}
0t8mtl1npdn8685tn3hrjqn1blv9ahh
513808
513807
2026-07-15T07:13:12Z
Redmin
6857
513808
wikitext
text/x-wiki
{{লে|L308559|meaning=
# [[বলপ্রয়োগ]]।
#[[পরাজয়]]।
# [[শত্রুতা]]; [[ঝগড়া]]।}}
{{লে|L308560}}
159bdr4tfymuf7cc7jxtdhopw0awcpr
হঠকারিতা
0
117801
513805
500002
2026-07-15T07:10:10Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308558-এর সাথে সংযোগ তৈরি করছি
513805
wikitext
text/x-wiki
{{লে|L308558|meaning=
#অভদ্রতা, অশিষ্টতা।
#অন্যায়।}}
g2qtaoubbzdxo14fk8apnf2ltsp2u37
হঠকারী
0
117802
513802
500003
2026-07-15T06:41:56Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308556-এর সাথে সংযোগ তৈরি করছি
513802
wikitext
text/x-wiki
{{লে|L308556}}
0rfkppfsyad6th4m7kclk8sdukid006
হঠযোগ
0
117803
513803
500004
2026-07-15T06:43:30Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308555-এর সাথে সংযোগ তৈরি করছি
513803
wikitext
text/x-wiki
{{লে|L308555|L308555-S1=[[প্রাণায়াম]], [[প্রাণ]] ও [[অপান]] [[বায়ু]] নিয়ন্ত্রণের কৌশলবিশেষ; যোগবিশেষ।}}
8co4qsi0b3b2ko0ri2hwca3ry3wjpyb
হড়হড়ে
0
117814
513793
500010
2026-07-15T06:18:59Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308549-এর সাথে সংযোগ তৈরি করছি
513793
wikitext
text/x-wiki
{{লে|L308549}}
ovlnn2n5qljy3xpblo2nkst59ivvybp
হতগৌরব
0
117815
513786
500011
2026-07-15T06:03:06Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308542-এর সাথে সংযোগ তৈরি করছি
513786
wikitext
text/x-wiki
{{লে|L308542|L308542-S1=[[গৌরব]] [[ধূলিসাৎ]] হয়েছে এমন।}}
5jfujj0jsv92sezeiid5vvznk8scyxj
হতচেতন
0
117817
513785
500013
2026-07-15T05:56:26Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308541-এর সাথে সংযোগ তৈরি করছি
513785
wikitext
text/x-wiki
{{লে|L308541}}
gwo8ur2qvke6tdx0ftx0zgdbn3hoeuy
হতজ্ঞান
0
117820
513783
500016
2026-07-15T05:53:29Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308539-এর সাথে সংযোগ তৈরি করছি
513783
wikitext
text/x-wiki
== {{langname|bn}} ==
=== উচ্চারণ ===
* {{bn-IPA}}
=== বিশেষণ ===
{{bn-বিশেষণ}}
# [[অচেতন]], অজ্ঞান, [[সংজ্ঞাহীন]]; মূর্ছাপ্রাপ্ত।
{{লে|L308539|না}}
b1uzftwo4f9d9mg4gapyvnyuvgl4ahu
হতবল
0
117822
513779
500018
2026-07-15T05:52:28Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308535-এর সাথে সংযোগ তৈরি করছি
513779
wikitext
text/x-wiki
{{লে|L308535}}
c74fpwjw6jrw2z6de1yvuc29o5qpj8s
513780
513779
2026-07-15T05:52:38Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308536-এর সাথে সংযোগ তৈরি করছি
513780
wikitext
text/x-wiki
{{লে|L308535}}
{{লে|L308536|না}}
g6fc8ms7l3nxsfkiqsoh5fw30qhgasb
হতমান
0
117825
513773
500021
2026-07-15T05:39:42Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308528-এর সাথে সংযোগ তৈরি করছি
513773
wikitext
text/x-wiki
{{লে|L308528}}
39e7kuc2tle9868u8rtkygoouruba0i
513774
513773
2026-07-15T05:39:51Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308527-এর সাথে সংযোগ তৈরি করছি
513774
wikitext
text/x-wiki
{{লে|L308528}}
{{লে|L308527|না}}
kgc5mwn0bdfs1n04a001luek8r90ibb
হতশ্রদ্ধ
0
117828
513772
500024
2026-07-15T05:39:26Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308526-এর সাথে সংযোগ তৈরি করছি
513772
wikitext
text/x-wiki
{{লে|L308526}}
gomrort8yneryli092l98f9xg9v07my
হতাশ্বাস
0
117832
513765
500028
2026-07-15T05:35:46Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308518-এর সাথে সংযোগ তৈরি করছি
513765
wikitext
text/x-wiki
{{লে|L308518}}
=== বিশেষণ ===
{{bn-বিশেষণ}}
# আশাপ্রত্যাশা [[লুপ্ত]] হয়েছে এমন; [[নিরাশ]]; আশ্বাসহীন।
avqs90axi3660lpjn4rujcup76n5t02
হত্যাকাণ্ড
0
117837
513761
500031
2026-07-15T05:31:34Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308506-এর সাথে সংযোগ তৈরি করছি
513761
wikitext
text/x-wiki
{{লে|L308506}}
gpxkpsx2ce7ahknprt36v27gbdq0zso
হত্যাকারী
0
117838
513760
500032
2026-07-15T05:31:16Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308504-এর সাথে সংযোগ তৈরি করছি
513760
wikitext
text/x-wiki
{{লে|L308504}}
12by9go16o7bu1j8gyfz41cmzid2cq1
হত্যাপরাধ
0
117839
513756
500033
2026-07-15T05:25:09Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308503-এর সাথে সংযোগ তৈরি করছি
513756
wikitext
text/x-wiki
{{লে|L308503}}
qc5dk62e7a3clnud8gxygbefis5eu18
হদিস
0
117842
513753
500036
2026-07-15T05:24:10Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308502-এর সাথে সংযোগ তৈরি করছি
513753
wikitext
text/x-wiki
{{লে|L308502|meaning=
#[[উপায়]], [[পথ]]; সন্ধানের [[সূত্র]]। [[নির্দেশ]]।}}
2g2lst1dm2tcrrokctcju7ynop8yztk
হদ্দ
0
117843
513759
500037
2026-07-15T05:30:39Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308501-এর সাথে সংযোগ তৈরি করছি
513759
wikitext
text/x-wiki
== {{langname|bn}} ==
=== উচ্চারণ ===
* {{bn-IPA}}
=== বিশেষ্য ===
{{bn-বিশেষ্য}}
# [[সীমা]], [[শেষ]], [[অবধি]]।
{{লে|L308501|0}}
9ft5wf8e5s0xt5xl8u747ype4yjmsua
হনন
0
117844
513758
500038
2026-07-15T05:30:01Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308500-এর সাথে সংযোগ তৈরি করছি
513758
wikitext
text/x-wiki
{{লে|L308500}}
ijc7lrzm3yth5nnw6w4ufqn70u3van4
হন্তব্য
0
117854
513755
500046
2026-07-15T05:24:32Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308495-এর সাথে সংযোগ তৈরি করছি
513755
wikitext
text/x-wiki
{{লে|L308495}}
in7m485md3985tb8e2ynctz48yue356
হন্তারক
0
117855
513747
500047
2026-07-14T15:47:09Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308492-এর সাথে সংযোগ তৈরি করছি
513747
wikitext
text/x-wiki
{{লে|L308492}}
7pn4w2ct57z0bs7hh2ldcijxuati45s
হন্যমান
0
117858
513745
500049
2026-07-14T15:45:39Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308490-এর সাথে সংযোগ তৈরি করছি
513745
wikitext
text/x-wiki
{{লে|L308490|meaning=
[[বিনষ্ট]] হচ্ছে এমন।}}
o4kdk29yi4djv8btyj9m2moo8hle6o7
513746
513745
2026-07-14T15:46:00Z
Redmin
6857
513746
wikitext
text/x-wiki
{{লে|L308490|meaning=
#[[বিনষ্ট]] হচ্ছে এমন।}}
403iex0banw7wfakxeebwxxpddazey3
হবিষ্য
0
117865
513743
500056
2026-07-14T15:39:29Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308479-এর সাথে সংযোগ তৈরি করছি
513743
wikitext
text/x-wiki
{{লে|L308479}}
fq9zl4jg2k2q9dizrlr88tb2ol8nw8q
হবিষ্যি
0
117867
513741
500058
2026-07-14T15:38:10Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308477-এর সাথে সংযোগ তৈরি করছি
513741
wikitext
text/x-wiki
{{লে|L308477}}
aohymbnp58d3gcfn9zhd4i1jvqrjwfl
হরিতাল
0
117890
513732
500078
2026-07-14T12:54:05Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308462-এর সাথে সংযোগ তৈরি করছি
513732
wikitext
text/x-wiki
{{লে|L308462|L308462-S1=
আর্সেনিক ও গন্ধকের মিশ্রণজাত উজ্বল হলুদ [[কেলাসিত]] (ত্রিকোণাকার) [[আকরিক]] পদার্থবিশেষ। [[হরিয়াল]]।}}
pv0edqidehzg7f1jbfqoc59q82aq9le
513733
513732
2026-07-14T12:54:20Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308463-এর সাথে সংযোগ তৈরি করছি
513733
wikitext
text/x-wiki
{{লে|L308462|L308462-S1=
আর্সেনিক ও গন্ধকের মিশ্রণজাত উজ্বল হলুদ [[কেলাসিত]] (ত্রিকোণাকার) [[আকরিক]] পদার্থবিশেষ। [[হরিয়াল]]।}}
{{লে|L308463|না}}
b35hw66ym5izpociyj4gi6g5o2j5ts8
হরিৎ
0
117894
513734
513392
2026-07-14T12:55:06Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308465-এর সাথে সংযোগ তৈরি করছি
513734
wikitext
text/x-wiki
{{লে|L303425|উচ্চারণ=
'''ছন্দ''' – হ-রিৎ|ব্যুৎপত্তি=
{{compound|bn|√হৃ|ইৎ}} → সংস্কৃত √হৃ (হরণ করা) + "ইৎ"।|L303425-S1={{ux|bn|মাঠের হরিৎ শোভা চোখ জুড়িয়ে দেয়।}}{{synonyms|bn|সবুজ|শ্যামল|হরিতবর্ণ}}<br />{{ant|bn|বিবর্ণ| শুষ্ক|পাণ্ডুর|ধূসর}}}}
==== বিস্তারিত তথ্য ====
হরিৎ সবুজ বা শ্যামল বর্ণের একটি কাব্যিক প্রতিশব্দ।
{{লে|L308465|না}}
fyftit84nq7masnk8oyvroenw9p9t4j
হরিদ্রাভ
0
117900
513731
500086
2026-07-14T12:51:56Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308461-এর সাথে সংযোগ তৈরি করছি
513731
wikitext
text/x-wiki
{{লে|L308461}}
t5lhjgq8tzih0nfnsa1k2q3vpgxjn0y
হরেক
0
117917
513727
500103
2026-07-14T12:49:49Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308457-এর সাথে সংযোগ তৈরি করছি
513727
wikitext
text/x-wiki
{{লে|L308457|L308457-S1=[[বিবিধ]], নানাপ্রকার; [[সকল]], [[প্রত্যেক]]।}}
m3lqgpjqijbt8hgmo566rvo1yhal7vs
হর্তা
0
117918
513725
513283
2026-07-14T12:47:49Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308456-এর সাথে সংযোগ তৈরি করছি
513725
wikitext
text/x-wiki
{{লে|L308456|ব্যুৎপত্তি=
স, √হৃ + তৃ|meaning=সংহারক, বিনাশক}}
{{লে|L302745|না}}
s8ft3xtbnjpt6qimrp4ucvfnyz0cqe9
513726
513725
2026-07-14T12:48:17Z
Redmin
6857
513726
wikitext
text/x-wiki
{{লে|L308456|ব্যুৎপত্তি=
স, √হৃ + তৃ}}
{{লে|L302745|না}}
g78vd03q9tw5lxmwa5naazez573f6ts
হর্ষণ
0
117925
513724
500110
2026-07-14T12:46:47Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308453-এর সাথে সংযোগ তৈরি করছি
513724
wikitext
text/x-wiki
{{লে|L308453}}
=== বিশেষ্য ===
{{bn-বিশেষ্য}}
# [[পুলক]], [[হর্ষ]]।
hgfwozl5irrr3t33iu4pfnjtjs9ucun
হর্ষিত
0
117928
513722
500113
2026-07-14T12:45:38Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308451-এর সাথে সংযোগ তৈরি করছি
513722
wikitext
text/x-wiki
{{লে|L308451}}
oa1w81bldkam47nzdct30gto58x010q
হলকর্ষণ
0
117933
513719
500117
2026-07-14T12:45:05Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308446-এর সাথে সংযোগ তৈরি করছি
513719
wikitext
text/x-wiki
{{লে|L308446}}
fhin8grwnigli3o44kop0sonwemsmsv
হলী
0
117952
513710
500134
2026-07-14T12:28:09Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308413-এর সাথে সংযোগ তৈরি করছি
513710
wikitext
text/x-wiki
{{লে|L308413}}
elqjbtyun7yr3mjojlv2z6lykz7z4x1
হসন্তী
0
117959
513709
500138
2026-07-14T12:27:36Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308411-এর সাথে সংযোগ তৈরি করছি
513709
wikitext
text/x-wiki
{{লে|L308411}}
=== বিশেষ্য ===
{{bn-বিশেষ্য}}
# আগুন রাখার [[পাত্র]]; ধুনুচি। বেলফুল, [[মল্লিকা]]।
s6fc3i8vt3cqyipsj8hwm3n444mq5tb
হসিত
0
117960
513708
513276
2026-07-14T12:26:48Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308410-এর সাথে সংযোগ তৈরি করছি
513708
wikitext
text/x-wiki
{{লে|L302611}}
{{লে|L308410|না}}
3k39o7gk8mgqgtc3f0a8uksimgm0um4
হস্তলিখিত
0
117973
513705
500152
2026-07-14T12:25:59Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308406-এর সাথে সংযোগ তৈরি করছি
513705
wikitext
text/x-wiki
{{লে|L308406}}
m95zu9pv8k64iavfdn9h6dk1424q8hp
হাঁটা
0
118020
513714
500178
2026-07-14T12:33:09Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308430-এর সাথে সংযোগ তৈরি করছি
513714
wikitext
text/x-wiki
{{লে|L308430}}
=== বিশেষণ ===
{{bn-বিশেষণ}}
# পায়ে হেঁটে [[অতিক্রম]] করা যায় এমন (হাঁটাপথ)।
r2rkyajo0fv1jyd9qrtx2sjbqyhfrtf
হ-য-ব-র-ল
0
125299
513735
268165
2026-07-14T13:07:01Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308474-এর সাথে সংযোগ তৈরি করছি
513735
wikitext
text/x-wiki
{{লে|L308474}}
===প্রবাদ===
{{bn-প্রবাদ}}
#পঞ্চবর্ণ ‘য-ব-র-ল-হ’ ক্রমের বিভ্রাটে ‘হ-য-ব-র-ল’ হয়েছে;
# চুড়ান্ত বিশৃঙ্খলা বা গোলমাল।
[[বিষয়শ্রেণী:bn:হ দিয়ে শুরু হওয়া প্রবাদ]]
ts45lz3sjvt4m55assjzfg1js4ukhxo
হকার
0
127806
513800
273158
2026-07-15T06:38:54Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308573-এর সাথে সংযোগ তৈরি করছি
513800
wikitext
text/x-wiki
{{লে|L308573|উচ্চারণ=
* হকার্
|meaning=
#[[রাস্তা|রাস্তার]] ধারে [[পণ্য]] [[বিক্রি]] [[যার]] [[পেশা]]}}
7c2mxyo9yd6da4ut5xyzf992g8q6ys9
513801
513800
2026-07-15T06:39:15Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308574-এর সাথে সংযোগ তৈরি করছি
513801
wikitext
text/x-wiki
{{লে|L308573|উচ্চারণ=
* হকার্
|meaning=
#[[রাস্তা|রাস্তার]] ধারে [[পণ্য]] [[বিক্রি]] [[যার]] [[পেশা]]}}
{{লে|L308574|না}}
qwsfkw0u21v27buno087fgvhm2ja4tj
হটা
0
128929
513814
273250
2026-07-15T07:16:25Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308567-এর সাথে সংযোগ তৈরি করছি
513814
wikitext
text/x-wiki
{{লে|L308567}}
===উচ্চারণ===
* হটা
=== ব্যুৎপত্তি ===
* [[হিন্দি]] জাত
=== ক্রিয়াবিশেষ্য ===
{{বিশেষ্য|bn}}
#[[সরে যাওয়া]]
#[[পশ্চাৎপদ]] [[হওয়া]]
#হেরে [[যাওয়া]]
#[[নিরস্ত]] হওয়া
ry8wnmkxdsr3dlat7k5wgxoqr59xbsr
হটানো
0
128931
513813
273255
2026-07-15T07:15:05Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308566-এর সাথে সংযোগ তৈরি করছি
513813
wikitext
text/x-wiki
{{লে|L308566}}
===উচ্চারণ===
* হটানো
=== ব্যুৎপত্তি ===
* [[বাংলা]] জাত
=== ক্রিয়াবিশেষ্য ===
{{বিশেষ্য|bn}}
#[[পরাজিত]] করা, [[হারানো]]
#সরিয়ে [[দেওয়া]]
#[[নিরস্ত]] করা
g4olwijphvm1q1dqnhpijbcrvh6le6d
হড়কা
0
128970
513797
273370
2026-07-15T06:30:20Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308552-এর সাথে সংযোগ তৈরি করছি
513797
wikitext
text/x-wiki
{{লে|L308552}}
===উচ্চারণ===
* হড়্কা
=== ব্যুৎপত্তি ===
* [[দেশি]] শব্দ
=== ক্রিয়াবিশেষ্য ===
{{বিশেষ্য|bn}}
#পিছলে পড়া, [[ঢিলে]] [[হওয়া]]
koksk8mu9ezcunab6nu5c7k9rtugqwz
513798
513797
2026-07-15T06:34:50Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308553-এর সাথে সংযোগ তৈরি করছি
513798
wikitext
text/x-wiki
{{লে|L308552}}
===উচ্চারণ===
* হড়্কা
=== ব্যুৎপত্তি ===
* [[দেশি]] শব্দ
=== ক্রিয়াবিশেষ্য ===
{{বিশেষ্য|bn}}
#পিছলে পড়া, [[ঢিলে]] [[হওয়া]]
{{লে|L308553|না}}
f1p47n0g8jpd9eg2lakl6ad4kc5nl68
হড়কানো
0
128989
513795
273373
2026-07-15T06:21:06Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L309053-এর সাথে সংযোগ তৈরি করছি
513795
wikitext
text/x-wiki
== {{langname|bn}} ==
===উচ্চারণ===
* হড়্কানো
=== ব্যুৎপত্তি ===
* [[দেশি]] শব্দ
=== ক্রিয়াবিশেষ্য ===
{{বিশেষ্য|bn}}
#পিছলে পড়া, [[স্থানভ্রষ্ট]] [[হওয়া]]
{{লে|L309053|না}}
p203p5vtd5ym6s1vo4u5kumq4a5ehle
513796
513795
2026-07-15T06:21:32Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308551-এর সাথে সংযোগ তৈরি করছি
513796
wikitext
text/x-wiki
== {{langname|bn}} ==
===উচ্চারণ===
* হড়্কানো
=== ব্যুৎপত্তি ===
* [[দেশি]] শব্দ
=== ক্রিয়াবিশেষ্য ===
{{বিশেষ্য|bn}}
#পিছলে পড়া, [[স্থানভ্রষ্ট]] [[হওয়া]]
{{লে|L308551|না}}
{{লে|L309053|না}}
24uwquddbe2wvhhme8d1i62bv26wkm9
হাঁকানো
0
129056
513718
273424
2026-07-14T12:44:53Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308445-এর সাথে সংযোগ তৈরি করছি
513718
wikitext
text/x-wiki
{{লে|L308445}}
===উচ্চারণ===
* হাঁকানো
=== ব্যুৎপত্তি ===
* [[দেশি]] শব্দ
=== ক্রিয়াবিশেষ্য ===
{{বিশেষ্য|bn}}
#[[হুংকার]] [[দেওয়া]]
#[[সদর্পে]] চালনা করা
41sol9vltn5u0z3s6q0ilsugbvsem1g
হটকা
0
136504
513815
302398
2026-07-15T07:17:19Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308568-এর সাথে সংযোগ তৈরি করছি
513815
wikitext
text/x-wiki
{{লে|L308568}}
===ব্যুৎপত্তি===
আঞ্চলিক ভাষা থেকে
===উচ্চারণ===
* হোট্কা
* {{অডিও|bn|LL-Q9610 (ben)-Titodutta-হটকা.wav|অডিও}}
===বিশেষ্য===
{{বিশেষ্য|bn}}
# [[দীর্ঘ]]
# [[লম্বা]]
iy9kzqa56w0g3n0l24mqg6qy3ucaugj
হঠাৎকার
0
136506
513799
302396
2026-07-15T06:36:35Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308554-এর সাথে সংযোগ তৈরি করছি
513799
wikitext
text/x-wiki
{{লে|L308554|ব্যুৎপত্তি=
সংস্কৃত থেকে|উচ্চারণ=
* হোঠাত্কার্|meaning=# [[জবরদস্তি]]
# [[গোঁয়ার্তুমি]]}}
neh0go34az8u9yrayzc5ld1fwtoa2ef
হণ্ডা
0
136507
513790
302397
2026-07-15T06:14:54Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308546-এর সাথে সংযোগ তৈরি করছি
513790
wikitext
text/x-wiki
{{লে|L308546|
ব্যুৎপত্তি=সংস্কৃত থেকে
* [ অর্বাচীন> ]|উচ্চারণ===
* হোন্ডা|meaning=
# বড় হাঁড়ি
# হাঁড়া}}
5xz74dvrnqjkkb5pk64bej5ysaxinb7
হকিকৎ
0
156046
513819
345221
2026-07-15T07:24:21Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308572-এর সাথে সংযোগ তৈরি করছি
513819
wikitext
text/x-wiki
{{লে|L308572}}
54oyqcwqdqksbp0tunua2xay888mwcu
হস্তবান
0
170510
513706
2026-07-14T12:26:07Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308407-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513706
wikitext
text/x-wiki
{{লে|L308407}}
90r3s42akyx16qn0exlhy3ms8lnxcmd
হলচালক
0
170511
513720
2026-07-14T12:45:13Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308449-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513720
wikitext
text/x-wiki
{{লে|L308449}}
pwd7vnlbt346kvhxn76btf3e7ozr7f6
হলচালিকা
0
170512
513721
2026-07-14T12:45:25Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308450-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513721
wikitext
text/x-wiki
{{লে|L308450}}
c5266yyy7dmuflzal6ni46ratgqlbcq
হর্ষপ্রফুল্ল
0
170513
513723
2026-07-14T12:45:47Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308452-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513723
wikitext
text/x-wiki
{{লে|L308452}}
89v5yino9f54ol2q5yk9yp0snh69vm9
হরিহরাত্মা
0
170514
513730
2026-07-14T12:51:38Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308459-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513730
wikitext
text/x-wiki
{{লে|L308459}}
7dl77niwl9uooizta3s7ygl1qdfuvxf
হরিণলোচনা
0
170515
513736
2026-07-14T13:07:34Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308468-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513736
wikitext
text/x-wiki
{{লে|L308468}}
hldsiy3b62q6crk04bnrcq0vcsfbchk
হব্বিষ্যি
0
170516
513742
2026-07-14T15:38:26Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308478-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513742
wikitext
text/x-wiki
{{লে|L308478}}
3dl73bdy2jv97ipift85ykbi9zw3wq8
ব্যবহারকারী আলাপ:Pavel Musfiqur
3
170517
513749
2026-07-14T18:23:05Z
অভ্যর্থনা কমিটি বট
2538
বাংলা উইকিঅভিধানে স্বাগতম!
513749
wikitext
text/x-wiki
== বাংলা উইকিঅভিধানে স্বাগতম! ==
{| class="plainlinks" style="width: 100%; padding: 10px; border: 2px solid #909999; background: #F6FFFF; margin-bottom: 3px; color: #000; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; box-shadow: 0 0 0.25em #829595; -moz-box-shadow: 0 0 0.25em #829595; -webkit-box-shadow: 0 0 0.25em #829595;"
|-
| সুপ্রিয় Pavel Musfiqur!<br>
উইকিঅভিধানে, বাংলা ভাষায় এই মুক্ত অভিধান গড়ার এই প্রকল্পে [[বিশেষ:অবদান/Pavel Musfiqur|আপনার প্রচেষ্টাকে]] স্বাগত জানাচ্ছি। আশা করছি এই প্রচেষ্টাকে সফল করতে আপনার সাহায্য অব্যাহত থাকবে এবং এই সম্প্রদায়ে আপনার অবস্থান আনন্দপূর্ণ হবে। যেকোনো প্রকার প্রশ্নে নিঃসঙ্কোচে [[ব্যবহারকারী আলাপ:অভ্যর্থনা কমিটি বট|আমার আলাপ পাতায়]] বার্তা রাখার অনুরোধ করছি। উইকিঅভিধানে লেখার ক্ষেত্রে কিছু বিষয় মনে রাখা উত্তম:
* [[উইকিঅভিধান:নীতিমালা ও নির্দেশাবলী|নীতিমালা ও নির্দেশাবলী]] — উইকিঅভিধানের মূল নীতিমালাগুলোতে একবার চোখ বুলিয়ে নিন, ও মেনে চলার চেষ্টা করুন।
* [[উইকিঅভিধান:ভুক্তির কাঠামো ব্যাখ্যা|ভুক্তির কাঠামো ব্যাখ্যা]] — অর্থাৎ একটি ভুক্তিতে যে বিষয়গুলো যোগ করার মাধ্যমে আপনি ভুক্তিটির উন্নয়ন ঘটাতে পারেন।
* [[উইকিঅভিধান:কপিরাইট|কপিরাইট নীতিমালা]] — উইকিঅভিধান আইনের প্রতি শ্রদ্ধাশীল। তাই কপিরাইটের মূল বিষয়গুলো অনুগ্রহপূর্বক দেখে নিন।
* [[উইকিঅভিধান:নতুন শব্দ যোগ|নতুন শব্দ যোগ]] — নতুন শব্দ যোগ করতে অনুগ্রহপূর্বক [[উইকিঅভিধান:নতুন শব্দ যোগ]] পাতার প্রণালীটি অনুসরণ করুন।
নিজের সম্পর্কে তথ্য আপনি আপনার [[ব্যবহারকারী:Pavel Musfiqur|ব্যবহারকারী পাতায়]] রাখতে পারেন। এর মাধ্যমে অন্যরা আপনার সম্পর্কে জানতে পারবে। সাহায্য চাইতে এবং মতামত রাখতে অনুগ্রহপূর্বক সম্পর্কিত পাতার আলাপ পাতা ব্যবহার করুন। অনুগ্রহপূর্বক আলাপের পাতায় বার্তা রাখার পর সম্পাদনা সরঞ্জামদণ্ডের [[চিত্র:OOjs UI icon signature-ltr.svg|22px|link=|alt=স্বাক্ষর আইকন]] চিহ্নে ক্লিক করার মাধ্যমে অথবা চারটি টিল্ডা (<code><nowiki>~~~~</nowiki></code>) চিহ্ন দিয়ে নাম স্বাক্ষর করুন। এটি স্বয়ংক্রিয়ভাবে আপনার নাম এবং তারিখ যোগ করবে।
আশা করি আপনি বাংলা উইকিঅভিধান সম্প্রদায়ের একজন হয়ে সম্পাদনা করে আনন্দ পাবেন! আবারও স্বাগতম এবং শুভেচ্ছা!
[[উইকিঅভিধান:অভ্যর্থনা কমিটি|উইকিঅভিধান অভ্যর্থনা কমিটির পক্ষে]], <br/>[[ব্যবহারকারী:অভ্যর্থনা কমিটি বট|অভ্যর্থনা কমিটি বট]] ([[ব্যবহারকারী আলাপ:অভ্যর্থনা কমিটি বট|আলাপ]]) ১৮:২৩, ১৪ জুলাই ২০২৬ (ইউটিসি)
|}
h1h0xd7rh85v7id9764lh90pu5whmp5
হন্ত্রী
0
170518
513754
2026-07-15T05:24:19Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308494-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513754
wikitext
text/x-wiki
{{লে|L308494}}
npxe29ic1ugqpsj7fr4ncsiv179ndjw
হনূ
0
170519
513757
2026-07-15T05:29:13Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308497-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513757
wikitext
text/x-wiki
{{লে|L308497}}
ho5lajn5t4nb0aad2rl3u97737nhl3y
হতি
0
170520
513762
2026-07-15T05:32:51Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308516-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513762
wikitext
text/x-wiki
{{লে|L308516}}
6lkwwzb6jhciae3qsyt0uquozm8vzgx
হত্তুকি
0
170521
513764
2026-07-15T05:33:23Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308513-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513764
wikitext
text/x-wiki
{{লে|L308513}}
evu9xnoh3gc0zeaal79eywxmq843axu
হতশ্রদ্ধা
0
170522
513771
2026-07-15T05:38:48Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308525-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513771
wikitext
text/x-wiki
{{লে|L308525}}
tcledodajejf7d6qo7hd85a0qfb9mfh
হতভাগী
0
170523
513776
2026-07-15T05:45:17Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308530-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513776
wikitext
text/x-wiki
{{লে|L308530}}
ayyt92y3w1k35t5u7fk3173dn22afp1
হতক
0
170524
513787
2026-07-15T06:03:23Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308543-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513787
wikitext
text/x-wiki
{{লে|L308543}}
fyyti715vzqjtq09rc8d4sncus0cfl7
হণ্ডিকা
0
170525
513788
2026-07-15T06:03:32Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308544-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513788
wikitext
text/x-wiki
{{লে|L308544}}
gh6b19a0r90y3jl9dq76cpldaimfudz
হণ্ডী
0
170526
513789
2026-07-15T06:11:07Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308545-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513789
wikitext
text/x-wiki
{{লে|L308545}}
ingqu6v09odd5svkpehq0scoy95qslv
হড্ড
0
170527
513791
2026-07-15T06:15:08Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308547-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513791
wikitext
text/x-wiki
{{লে|L308547}}
6t39ne7ebkrakp7b41nuds0v2byq4g9
হড়ি
0
170528
513792
2026-07-15T06:16:17Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308548-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513792
wikitext
text/x-wiki
{{লে|L308548}}
i37oakbz4u9tj0567b7le7pxql89qr7
হঠকারিণী
0
170529
513804
2026-07-15T07:00:14Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308557-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513804
wikitext
text/x-wiki
{{লে|L308557}}
b82r446b11phuqqvnqugow09jf12gwv
হজমী
0
170530
513816
2026-07-15T07:17:26Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308569-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513816
wikitext
text/x-wiki
{{লে|L308569}}
09bhwvc5zpjwxuhhxttzput381r9e6f
হংসরাজ
0
170531
513824
2026-07-15T08:49:52Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308580-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513824
wikitext
text/x-wiki
{{লে|L308580}}
4epkztszjwq23cfx7oy7fmy8l4z9p4w
513825
513824
2026-07-15T08:50:34Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308581-এর সাথে সংযোগ তৈরি করছি
513825
wikitext
text/x-wiki
{{লে|L308581}}
{{লে|L308580}}
dzufk4d9vqe4yyfquqnpjva7cki881c
হংকার
0
170532
513826
2026-07-15T08:53:26Z
Redmin
6857
লেক্সিম লিংকার এক্সটেনশনের সাহায্যে উইকিউপাত্ত লেক্সিম L308595-এর জন্য একটি নতুন ভুক্তি তৈরি করছি
513826
wikitext
text/x-wiki
{{লে|L308595}}
8x068tabc8xcc6v6ryypapmvdsfxyf3
বিষয়শ্রেণী:উইকিফাংশন্স-এর ফাংশন ব্যবহার করা পাতা
14
170533
513835
2026-07-15T11:24:22Z
Redmin
6857
"__HIDDENCAT__" দিয়ে পাতা তৈরি
513835
wikitext
text/x-wiki
__HIDDENCAT__
2twjmejn56ditxo46hqinfh52nh6flb