উইকিঅভিধান 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.39.0-wmf.22 case-sensitive মিডিয়া বিশেষ আলাপ ব্যবহারকারী ব্যবহারকারী আলাপ উইকিঅভিধান উইকিঅভিধান আলোচনা চিত্র চিত্র আলোচনা মিডিয়াউইকি মিডিয়াউইকি আলোচনা টেমপ্লেট টেমপ্লেট আলোচনা সাহায্য সাহায্য আলোচনা বিষয়শ্রেণী বিষয়শ্রেণী আলোচনা উইকিসরাস উইকিসরাস আলোচনা TimedText TimedText talk মডিউল মডিউল আলাপ গ্যাজেট গ্যাজেট আলোচনা গ্যাজেট সংজ্ঞা গ্যাজেট সংজ্ঞার আলোচনা উইকিঅভিধান:আলোচনাসভা 4 2595 131479 131409 2022-07-28T12:39:22Z MdsShakil 6871 /* উইকিম্যানিয়া ২০২২ — বাংলাদেশ পর্ব: উপস্থাপনা সেশনের আহ্বান */+ wikitext text/x-wiki {{উইকিঅভিধান:আলোচনাসভা/শীর্ষ}}[[বিষয়শ্রেণী:উইকিঅভিধানের প্রশাসন]] <!-- অনুগ্রহপূর্বক নতুন আলোচনাসূত্র সবার নিচে যোগ করুন, ধন্যবাদ। --> __NEWSECTIONLINK__ == নিস্ক্রিয় বট অ্যাকাউন্ট == <div class="boilerplate metadata rfa" style="background-color: #f5fff5; margin: 2em 0 0 0; padding: 0 10px 0 10px; border: 1px solid #AAAAAA;">আলোচনা অনুসারে [https://meta.wikimedia.org/w/index.php?title=Steward_requests/Bot_status&oldid=22497793 মেটায়] আবেদনের ভিত্তিতে বট পতাকা অপসারণ করা হয়েছে। -- [[ব্যবহারকারী:MdsShakil|MdsShakil]] ([[ব্যবহারকারী আলাপ:MdsShakil|আলাপ]]) ০৪:০৯, ২৭ ডিসেম্বর ২০২১ (ইউটিসি) ----- সুপ্রিয় সবাই, আমি নিম্নোক্ত নিস্ক্রিয় বট অ্যাকাউন্টগুলো থেকে বট পতাকা অপসারণের প্রস্তাব করছি, * {{ব্যবহারকারী|RobotGMwikt}}, সর্বশেষ সম্পাদনা: ২১:৫১, ২৯ জুন ২০০৬ * {{ব্যবহারকারী|SpaceBirdyBot}}, সর্বশেষ সম্পাদনা: ১৫:৩৩, ৫ মার্চ ২০০৯ * {{ব্যবহারকারী|YS-Bot}}, সর্বশেষ সম্পাদনা: ১৩:১৮, ৯ অক্টোবর ২০১৫ এব্যাপারে সবাইকে মন্তব্য করতে অনুরোধ করছি, ধন্যবাদ -- [[ব্যবহারকারী:MdsShakil|MdsShakil]] ([[ব্যবহারকারী আলাপ:MdsShakil|আলাপ]]) ০৬:৪১, ২২ ডিসেম্বর ২০২১ (ইউটিসি) *{{সমর্থন}} [[ব্যবহারকারী:Yahya|Yahya]] ([[ব্যবহারকারী আলাপ:Yahya|আলাপ]]) ১০:৪৮, ২২ ডিসেম্বর ২০২১ (ইউটিসি) * বট পতাকা অপসারণে {{সমর্থন}}। [[ব্যবহারকারী:Aishik Rehman|Aishik Rehman]] ([[ব্যবহারকারী আলাপ:Aishik Rehman|আলাপ]]) ০২:৩৬, ২৩ ডিসেম্বর ২০২১ (ইউটিসি) </div> == বোর্ড অব ট্রাস্টিজ নির্বাচন সম্পর্কে প্রতিক্রিয়ার আহ্বান == :''বার্তাটি মেটা-উইকিতে অতিরিক্ত ভাষায় অনুবাদ করা হয়েছে।'' :''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation Board of Trustees/Call for feedback:2022 Board of Trustees election/Upcoming Call for Feedback about the Board of Trustees elections|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation Board of Trustees/Call for feedback:2022 Board of Trustees election/Upcoming Call for Feedback about the Board of Trustees elections}}&language=&action=page&filter= {{int:please-translate}}]</div>'' বোর্ড অব ট্রাস্টিজ আসন্ন নির্বাচন সম্পর্কে প্রতিক্রিয়ার আহ্বান প্রস্তুত করছে। এটি ৬ জানুয়ারী - ১০ ফেব্রুয়ারী ২০২২ এর মধ্যে হবে। যদিও বিশদটি এক সপ্তাহ আগে চূড়ান্ত করা হবে, আমরা কমপক্ষে দুটি প্রশ্ন নিশ্চিত করেছি: * ট্রাস্টি বোর্ডের মধ্যে উদীয়মান সম্প্রদায়ের প্রতিনিধিত্ব উন্নত করার সর্বোত্তম উপায় কি? * নির্বাচনের সময় প্রার্থীদের অংশগ্রহণ কেমন হওয়া উচিত? যদিও অতিরিক্ত প্রশ্ন যোগ করা যেতে পারে, আন্দোলনের কৌশল এবং শাসন টিম সম্প্রদায়ের সদস্য এবং সহকর্মীদের আলোচনার জন্য সময় দিতে চায়। এই সময়ে প্রশ্নের সম্পূর্ণ তালিকা না থাকার জন্য আমরা দুঃখিত৷ প্রশ্নগুলির তালিকা শুধুমাত্র একটি বা দুটি প্রশ্নের দ্বারা বাড়তে পারে। আমাদের উদ্দেশ্য অনুরোধের সাথে সম্প্রদায়কে অভিভূত করা নয়। '''আপনি কি স্থানীয় কথোপকথনের আয়োজনে সহায়তা করতে চান?''' মেটা, [https://t.me/wmboardgovernancechat টেলিগ্রামে] বা msg[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org-এ ইমেলের মাধ্যমে [[m:Special:MyLanguage/Movement Strategy and Governance|আন্দোলনের কৌশল এবং শাসন টিমের]] সাথে যোগাযোগ করুন। আপনার কোনো প্রশ্ন থাকলে আমাদের সাথে যোগাযোগ করুন। আন্দোলনের কৌশল এবং শাসন টিমে ৩ জানুয়ারি পর্যন্ত কম কর্মী থাকবে। বিলম্বিত প্রতিক্রিয়ার জন্য ক্ষমা করুন; আমাদের বার্তা আপনার অবকাশ চলাকালীন পৌঁছে থাকলে আমরা ক্ষমাপ্রার্থী। ধন্যবাদ, [[ব্যবহারকারী:CSinha (WMF)|CSinha (WMF)]] ([[ব্যবহারকারী আলাপ:CSinha (WMF)|আলাপ]]) ১০:৪৫, ২৮ ডিসেম্বর ২০২১ (ইউটিসি) == উইকি ভালোবাসে লোককথা ফিরে এসেছে! == <div lang="en" dir="ltr" class="mw-content-ltr"> {{int:please-translate}} [[File:Wiki Loves Folklore Logo.svg|right|150px|frameless]] You are humbly invited to participate in the '''[[:c:Commons:Wiki Loves Folklore 2022|Wiki Loves Folklore 2022]]''' an international photography contest organized on Wikimedia Commons to document folklore and intangible cultural heritage from different regions, including, folk creative activities and many more. It is held every year from the '''1st till the 28th''' of February. You can help in enriching the folklore documentation on Commons from your region by taking photos, audios, videos, and [https://commons.wikimedia.org/w/index.php?title=Special:UploadWizard&campaign=wlf_2022 submitting] them in this commons contest. You can also [[:c:Commons:Wiki Loves Folklore 2022/Organize|organize a local contest]] in your country and support us in translating the [[:c:Commons:Wiki Loves Folklore 2022/Translations|project pages]] to help us spread the word in your native language. Feel free to contact us on our [[:c:Commons talk:Wiki Loves Folklore 2022|project Talk page]] if you need any assistance. '''Kind regards,''' '''Wiki loves Folklore International Team''' --[[ব্যবহারকারী:MediaWiki message delivery|MediaWiki message delivery]] ([[ব্যবহারকারী আলাপ:MediaWiki message delivery|আলাপ]]) ১৩:১৪, ৯ জানুয়ারি ২০২২ (ইউটিসি) </div> <!-- https://meta.wikimedia.org/w/index.php?title=User:Tiven2240/wlf&oldid=22560402-এর তালিকা ব্যবহার করে বার্তাটি ব্যবহারকারী:Tiven2240@metawiki পাঠিয়েছেন --> == সম্প্রদায়ের ইচ্ছা তালিকার জরিপ 2022 == [[File:Community Wishlist Survey Lamp.svg|right|200px]] '''[[m:Special:MyLanguage/Community Wishlist Survey 2022|সম্প্রদায়ের ইচ্ছা তালিকার জরিপ 2022]]''' শুরু হয়েছে! এই জরিপটি হল এমন একটি প্রক্রিয়া, যার মাধ্যমে [[m:Special:MyLanguage/Community Tech|সম্প্রদায়ের প্রযুক্তি দলটির]] আগামী বছরের মাঝে কী নিয়ে কাজ করা উচিত তা স্থির করা হয়। আমরা সবাইকে '''২৩ জানুয়ারি'''-এর মধ্যে প্রস্তাবনা জমা দেওয়ার জন্য, অথবা অন্যদের প্রস্তাবনায় মন্তব্য করে সেগুলিকে আরও উন্নত করতে সহায়তা করার জন্য আহ্বান করছি। ২৮ জানুয়ারি ও ১১ ফেব্রুয়ারি-এর মধ্যে সম্প্রদায়ের লোকজন এই প্রস্তাবগুলিতে ভোট দিবেন। সম্প্রদায়ের প্রযুক্তি দল, উইকিমিডিয়ার অভিজ্ঞ সম্পাদকদের জন্য সরঞ্জাম সৃষ্টিতে বেশি মনোনিবেশ করে থাকে। আপনি যে কোনও ভাষায় প্রস্তাব লিখতে পারেন, এবং আমরা সেগুলি আপনার জন্য অনুবাদ করব। আপনাকে ধন্যবাদ, এবং আমরা আপনার প্রস্তাবগুলি দেখার জন্য উন্মুখ হয়ে রয়েছি! [[User:SGrabarczuk (WMF)|SGrabarczuk (WMF)]] ([[User talk:SGrabarczuk (WMF)|talk]]) ২০:৪৫, ১০ জানুয়ারি ২০২২ (ইউটিসি) <!-- https://meta.wikimedia.org/w/index.php?title=User:SGrabarczuk_(WMF)/sandbox/MM/Other_TOP30/bn&oldid=22381747-এর তালিকা ব্যবহার করে বার্তাটি ব্যবহারকারী:SGrabarczuk (WMF)@metawiki পাঠিয়েছেন --> == ট্রাস্টি বোর্ডের নির্বাচন সম্পর্কে প্রতিক্রিয়া জানাতে আহ্বান করা হচ্ছে == <section begin="announcement-content" />:''[[m:Special:MyLanguage/Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Call for Feedback about the Board of Trustees elections is now open/Short|বার্তাটি মেটা-উইকিতে আরও একাধিক ভাষায় অনুবাদ করা হয়েছে।]]'' :''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Call for Feedback about the Board of Trustees elections is now open/Short|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Call for Feedback about the Board of Trustees elections is now open/Short}}&language=&action=page&filter= {{int:please-translate}}]</div>'' ট্রাস্টি বোর্ডের নির্বাচন সম্পর্কে প্রতিক্রিয়া জানাতে আহ্বান করা হচ্ছে এবং এটি ৬ ফেব্রুয়ারি ২০২২ তারিখে শেষ হবে। এই প্রতিক্রিয়া আহ্বান উদ্যোগে, আন্দোলনের কৌশল ও শাসন দল একটি ভিন্ন পদ্ধতি গ্রহণ করছে। আমাদের পদ্ধতির মধ্যে ২০২১ সালের প্রক্রিয়া থেকে সম্প্রদায়ের প্রতিক্রিয়া অন্তর্ভুক্ত থাকবে। আলোচনাটি মূল প্রশ্নগুলিতে ফোকাস করবে। উদ্দেশ্য হল এই মূল প্রশ্নগুলি সম্পর্কে সম্মিলিত সংলাপকে অনুপ্রাণিত করা এবং সহযোগিতামূলক প্রস্তাব বিকশিত করা। [[m:Special:MyLanguage/Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections|কথোপকথনে অংশ নিন]]। ধন্যবাদ, আন্দোলনের কৌশল এবং শাসন<section end="announcement-content" /> [[ব্যবহারকারী:CSinha (WMF)|CSinha (WMF)]] ([[ব্যবহারকারী আলাপ:CSinha (WMF)|আলাপ]]) ১০:০০, ১২ জানুয়ারি ২০২২ (ইউটিসি) == সম্প্রদায়ের প্রযুক্তিকুশলীদের সাথে কথা বলুন == [[File:Community Wishlist Survey Lamp.svg|150px|right]] {{int:Hello}} We, the team working on the [[m:Special:MyLanguage/Community Wishlist Survey|Community Wishlist Survey]], would like to invite you to an online meeting with us. It will take place on [https://www.timeanddate.com/worldclock/fixedtime.html?iso=20220119T1800 '''{{#time:j xg|2022-01-19}} ({{#time:l|2022-01-19}}), {{#time:H:i e|18:00|en|1}}'''] on Zoom, and will last an hour. This external system is not subject to the [[foundation:Privacy_policy|WMF Privacy Policy]]. [https://wikimedia.zoom.us/j/85804347114 '''Click here to join''']. '''আলোচ্যসূচী''' * Bring drafts of your proposals and talk to to a member of the Community Tech Team about your questions on how to improve the proposal '''বিন্যাস ও কার্যপদ্ধতি''' মিটিংটি রেকর্ড বা স্ট্রিম করা হবে না। অ্যাট্রিবিউশন ছাড়া বাকি নোটগুলি মেটা-উইকিতে নেওয়া হবে এবং প্রকাশ করা হবে। আমরা ইংরেজি, ফরাসি, পোলিশ, স্প্যানিশ, জার্মান এবং ইতালীয় ভাষায় জিজ্ঞাসা করা প্রশ্নের উত্তর দিতে পারব। আপনি যদি আগে থেকে প্রশ্ন জিজ্ঞাসা করতে চান তবে সেগুলি [[m:Talk:Community Wishlist Survey|সম্প্রদায়ের ইচ্ছাতালিকা জরিপের আলাপ পাতায়]] যোগ করুন বা sgrabarczuk@wikimedia.org ঠিকানায় পাঠান। [[m:Special:MyLanguage/User:NRodriguez (WMF)|নাটালিয়া রদ্রিগেজ]] ([[m:Special:MyLanguage/Community Tech|কমিউনিটি টেক]] ম্যানেজার) এই মিটিংটি সঞ্চালনা করবেন। '''আমন্ত্রণ লিংক''' * [https://wikimedia.zoom.us/j/85804347114 অনলাইনে যোগ দিন] * মিটিং আইডি: <span dir=ltr>85804347114</span> * [https://wikimedia.zoom.us/u/keu6UeRT0T আপনার অবস্থান অনুযায়ী ডায়াল করুন] আশা করি আমরা আপনাকে দেখতে পাব! [[User:SGrabarczuk (WMF)|SGrabarczuk (WMF)]] ([[User talk:SGrabarczuk (WMF)|talk]]) ১৭:৩৮, ১৮ জানুয়ারি ২০২২ (ইউটিসি) <!-- https://meta.wikimedia.org/w/index.php?title=User:SGrabarczuk_(WMF)/sandbox/MM/Other_TOP30/bn&oldid=22381747-এর তালিকা ব্যবহার করে বার্তাটি ব্যবহারকারী:SGrabarczuk (WMF)@metawiki পাঠিয়েছেন --> == আন্দোলন কৌশল ও অনুশাসন খবর - প্রকাশন ৫ == <section begin="ucoc-newsletter"/> :''<div class="plainlinks">[[m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/5/Global message|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Strategy and Governance/Newsletter/5/Global message}}&language=&action=page&filter= {{int:please-translate}}]</div>'' <span style="font-size:200%;">'''আন্দোলন কৌশল ও অনুশাসন খবর'''</span><br> <span style="font-size:120%; color:#404040;">'''প্রকাশন ৫, জানুয়ারী ২০২২'''</span><span style="font-size:120%; float:right;">[[m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/5|'''সম্পূর্ণ সংবাদটি পড়ুন''']]</span> ---- আন্দোলন কৌশল ও অনুশাসন খবরের পঞ্চম সংখ্যায় আপনাকে স্বাগতম (পূর্বে সর্বজনীন আচরণবিধি সংবাদ হিসাবে পরিচিত ছিল)! পুনর্নির্মাণ সংবাদটি আন্দোলনের খসড়া সনদ, সর্বজনীন আচরণবিধি, আন্দোলন কৌশল বাস্তবায়ন সম্পর্কিত অনুদান, বোর্ড নির্বাচন এবং আন্দোলন কৌশল ও অনুশাসন সম্পর্কিত অন্যান্য বিষয় সংবাদ বিতরণ করে। সংবাদটি ত্রৈমাসিক বিতরণ করা হবে, আর কিছু হালনাগাদ সাপ্তাহিক বা দ্বি-সাপ্তাহিক হিসাবে সাবস্ক্রাইবারদের কাছে সরবরাহ করা হবে। আপনি যদি এই হালনাগাদ পেতে চান তবে '''[[:m:Special:MyLanguage/Global message delivery/Targets/MSG Newsletter Subscription|এখানে]]''' সাবস্ক্রাইব করতে ভুলবেন না। <div style="margin-top:3px; padding:10px 10px 10px 20px; background:#fffff; border:2px solid #808080; border-radius:4px; font-size:100%;"> *'''ট্রাস্টি বোর্ডের প্রতিক্রিয়া আহ্বান''' - আসন্ন উইকিমিডিয়া ফাউন্ডেশন ট্রাস্টি বোর্ড নির্বাচনের বিষয়ে আপনার মতামত জানাতে আমরা আপনাকে আমন্ত্রণ জানাচ্ছি। প্রতিক্রিয়ার আহ্বান ১০ জানুয়ারি ২০২২ শুরু হয়েছে এবং ১৬ ফেব্রুয়ারী ২০২২ শেষ হবে। ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/5#Call for Feedback about the Board elections|আরও পড়ুন]]) *'''সর্বজনীন আচরণবিধি অনুসমর্থন''' - ২০২১ সালে, উইকিমিডিয়া ফাউন্ডেশন সম্প্রদায়কে সর্বজনীন আচরণবিধি নীতি কিভাবে বাস্তবায়ন করা যেতে পারে সে সম্পর্কে জিজ্ঞাসা করেছিল। প্রয়োগকারী নির্দেশিকার সংশোধিত খসড়াটি মার্চ মাসের মধ্যে সম্প্রদায়ের ভোটের জন্য প্রস্তুত হওয়া উচিত। ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/5#Universal Code of Conduct Ratification|আরও পড়ুন]]) *'''আন্দোলনের কৌশল বাস্তবায়ন সম্পর্কিত অনুদান''' - যেহেতু আমরা বেশ কয়েকটি প্রস্তাব পর্যালোচনা করে চলেছি, আমরা আপনাকে আরও প্রস্তাব জমা দিতে উত্সাহিত করি যা আন্দোলনের কৌশল সংক্রান্ত সুপারিশ থেকে একটি নির্দিষ্ট উদ্যোগকে লক্ষ্য করে। ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/5#Movement Strategy Implementation Grants|আরও পড়ুন]]) *'''সংবাদটির নতুন দিকনির্দেশ''' - UCoC সংবাদপত্রকে MSG সংবাদপত্র করার রূপান্তর প্রক্রিয়াতে আপনি ফ্যাসিলিটেটর টিমের সাথে এর নতুন নির্দেশগুলি কল্পনা এবং সিদ্ধান্ত নিতে অংশ নিতে পারেন। ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/5#The New Direction for the Newsletter|আরও পড়ুন]]) *'''ডিফ ব্লগস''' - উইকিমিডিয়া ডিফ-এ MSG সম্পর্কে পড়ুন। ([[:m:Special:MyLanguage/Movement Strategy and Governance/Newsletter/5#Diff Blogs|আরও পড়ুন]])</div><section end="ucoc-newsletter"/> [[ব্যবহারকারী:CSinha (WMF)|CSinha (WMF)]] ([[ব্যবহারকারী আলাপ:CSinha (WMF)|আলাপ]]) ০৭:৪১, ১৯ জানুয়ারি ২০২২ (ইউটিসি) == [ঘোষণা] নেতৃত্ব উন্নয়ন টাস্ক ফোর্স == প্রিয় সম্প্রদায়ের সদস্যরা, [[:m:Strategy/Wikimedia movement/2018-20/Recommendations/Invest in Skills and Leadership Development|দক্ষতা ও নেতৃত্ব উন্নয়ন]] সুপারিশ ইঙ্গিত দেয় যে নেতৃত্বের বিকাশে সাফল্যের জন্য আমাদের আন্দোলনের বিশ্বব্যাপী সমন্বিত প্রযত্নের ​প্রয়োজন রয়েছে। [[:m:Community Development|সম্প্রদায় উন্নয়ন দল]] একটি বৈশ্বিক এবং সম্প্রদায়ভিত্তিক [[:m:Leadership Development Task Force|নেতৃত্ব উন্নয়ন টাস্ক ফোর্স]] ([[:m:Leadership Development Task Force/Purpose and Structure|উদ্দেশ্য এবং কাঠামো]]) তৈরী করতে সহায়তা করছে। টাস্ক ফোর্সের উদ্দেশ্য হল নেতৃত্ব উন্নয়নের জন্য প্রয়োজনীয় পরামর্শ দেওয়া। দলটি নেতৃত্ব উন্নয়ন টাস্ক ফোর্সের দায়িত্ব সম্পর্কে প্রতিক্রিয়া জানাতে আহ্বান করছে। এছাড়াও, যদি কোনও সম্প্রদায়ের সদস্য এই ১২-সদস্যের টাস্কফোর্সের অংশ হতে চান তবে আমাদের সাথে যোগাযোগ করুন। প্রতিক্রিয়ার সময় ২৫ ফেব্রুয়ারি ২০২২ পর্যন্ত। '''প্রতিক্রিয়া কোথায় ভাগ করবেন?''' <nowiki>#</nowiki>১ আগ্রহী সম্প্রদায়ের সদস্যরা [[:m:Talk:Leadership Development Task Force|আলোচনা পৃষ্ঠায়]] তাদের প্রতিক্রিয়া যুক্ত করতে পারেন। <nowiki>#</nowiki>২ আগ্রহী সম্প্রদায়ের সদস্যরা Google Meet মাধ্যমে ১৮ ফেব্রুয়ারী, শুক্রবার একটি আঞ্চলিক আলোচনায় যোগ দিতে পারেন। '''তারিখ এবং সময়''' * Friday, 18 February · 7:00 – 8:00 PM IST ([https://zonestamp.toolforge.org/1645191032 Your Timezone]) ([https://calendar.google.com/event?action=TEMPLATE&tmeid=NHVqMjgxNGNnOG9rYTFtMW8zYzFiODlvNGMgY19vbWxxdXBsMTRqbnNhaHQ2N2Y5M2RoNDJnMEBn&tmsrc=c_omlqupl14jnsaht67f93dh42g0%40group.calendar.google.com Add to Calendar]) * Google Meet link: https://meet.google.com/nae-rgsd-vif ধন্যবাদ, [[ব্যবহারকারী:CSinha (WMF)|CSinha (WMF)]] ([[ব্যবহারকারী আলাপ:CSinha (WMF)|আলাপ]]) ০৮:৫১, ৯ ফেব্রুয়ারি ২০২২ (ইউটিসি) == ইন্টারফেস প্রশাসন == {{atopg | status = | result = }} উইকিঅভিধানে ইন্টারফেস প্রশাসন নেই। মিডিয়াউইকি নামস্থানে থাকা ভুল বা কমতি দৃষ্টিগোচর হলে করার কিছু থাকেনা। সম্প্রদায়ের পক্ষ থেকে উইকিপিডিয়ার সক্রিয় ও অভিজ্ঞ ইন্টারফেস প্রশাসক [[ব্যবহারকারী:আফতাবুজ্জামান|আফতাব ভাই]] বা উইকিভ্রমণের [[ব্যবহারকারী:Yahya|ইয়াহইয়া ভাইকে]] (তাদের স্থানীয় কার্যক্রমও অতীতে রয়েছে, ইয়াহইয়া ভাই স্বয়ংক্রিয় পরীক্ষক) দায়িত্ব প্রদানের প্রস্তাব করব। খুব বেশি কাজ নয়, কিছু সামান্য পরিবর্তন ও পরিবর্ধন প্রয়োজন হতে পারে। ইন্টারফেস প্রশাসনের প্রকল্প পাতাগুলো আমি দ্রুতই তৈরি করার চিন্তা করেছি। হয়ত খুব দ্রুতই কাজটি সমাপ্ত করব। কিন্তু এর আগে বিষয়টি নিয়ে আলোচনা শুরু করা উচিত মনে করেছি। ~ [[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব]] <sup>[[বিশেষ:অবদান/খাত্তাব হাসান|অ]], [[ব্যবহারকারী আলাপ:খাত্তাব হাসান|আ]], [[বিশেষ:ইমেইল/খাত্তাব হাসান|ই]]...</sup> ০৭:২৫, ১২ ফেব্রুয়ারি ২০২২ (ইউটিসি) :@[[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব হাসান]] যেহেতু বাংলা উইকিপিডিয়ায় আমার একটি আলোচনা চলমান। তাই আপতত আর কোথাও কোনো অধিকারের আবেদন করতে চাচ্ছি না (হ্যাট কালেক্টর হতে চাই না :P)। আমি আফতাব ভাই বা @[[ব্যবহারকারী:Aishik Rehman|Aishik Rehman]] ভাইকে এখানে ইন্টারফেস প্রশাসক হওয়ার অনুরোধ করছি। ঐশিক রেহমান বর্তমানে উইকিবইয়ের ইন্টারফেস প্রশাসক ও এই প্রকল্পের প্রশাসক। -- [[ব্যবহারকারী:Yahya|Yahya]] ([[ব্যবহারকারী আলাপ:Yahya|আলাপ]]) ০৮:০০, ১২ ফেব্রুয়ারি ২০২২ (ইউটিসি) ::আপনার মন্তব্য ঠিক আছে। সেটাও হতে পারে। তবে উন্নয়নে বাধা হলে [[w:bn:উইকিপিডিয়া:সকল বিধি উপেক্ষা করুন|সকল বিধি উপেক্ষা করাই শ্রেয়।]] আমি অন্যদের মন্তব্যের জন্যও অপেক্ষা করব। -- ~ [[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব]] <sup>[[বিশেষ:অবদান/খাত্তাব হাসান|অ]], [[ব্যবহারকারী আলাপ:খাত্তাব হাসান|আ]], [[বিশেষ:ইমেইল/খাত্তাব হাসান|ই]]...</sup> ০৮:১২, ১২ ফেব্রুয়ারি ২০২২ (ইউটিসি) {{abot}} == প্রকল্পের নাম == উইকিঅভিধান নাম আগেও আমার মনে খটকা তৈরি করত। আজকে প্রধান পাতা আলাপ পাতা পরিভ্রমণ করতে গিয়ে মহাদ্বার ভাই বিষয়টি স্পষ্টভাবে উল্লেখ করায় স্পষ্টভাবে নজরে এল। শব্দের শুরুতে বাংলায় "অ"-এর ব্যবহার থাকলেও মাঝখানে এর ব্যবহার নেই। যেকোনো ব্যাকরণ বইয়ে দেখা যেতে পারে। অভিধানের মত একটা ভারি ব্যাকরণ নির্ভরশীল প্রকল্পের নামে এই বিষয়টি মেনে নেয়া যায়না। আমি বিষয়টির জন্য সম্প্রদায়ের দৃষ্টি আকর্ষণ করতে চাইব। ~ [[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব]] <sup>[[বিশেষ:অবদান/খাত্তাব হাসান|অ]], [[ব্যবহারকারী আলাপ:খাত্তাব হাসান|আ]], [[বিশেষ:ইমেইল/খাত্তাব হাসান|ই]]...</sup> ০৭:২৫, ১২ ফেব্রুয়ারি ২০২২ (ইউটিসি) == Wiki Loves Folklore is extended till 15th March == <div lang="en" dir="ltr" class="mw-content-ltr">{{int:please-translate}} [[File:Wiki Loves Folklore Logo.svg|right|frameless|180px]] Greetings from Wiki Loves Folklore International Team, We are pleased to inform you that [[:c:Commons:Wiki Loves Folklore|Wiki Loves Folklore]] an international photographic contest on Wikimedia Commons has been extended till the '''15th of March 2022'''. The scope of the contest is focused on folk culture of different regions on categories, such as, but not limited to, folk festivals, folk dances, folk music, folk activities, etc. We would like to have your immense participation in the photographic contest to document your local Folk culture on Wikipedia. You can also help with the [[:c:Commons:Wiki Loves Folklore 2022/Translations|translation]] of project pages and share a word in your local language. Best wishes, '''International Team'''<br /> '''Wiki Loves Folklore''' [[ব্যবহারকারী:MediaWiki message delivery|MediaWiki message delivery]] ([[ব্যবহারকারী আলাপ:MediaWiki message delivery|আলাপ]]) ০৪:৫০, ২২ ফেব্রুয়ারি ২০২২ (ইউটিসি) </div> <!-- https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=22754428-এর তালিকা ব্যবহার করে বার্তাটি ব্যবহারকারী:Rockpeterson@metawiki পাঠিয়েছেন --> == সর্বজনীন আচরণবিধি (UCoC) প্রয়োগের নির্দেশিকা এবং অনুসমর্থন ভোট == '''সংক্ষিপ্ত:''' [[:m:Universal Code of Conduct/Enforcement guidelines|সংশোধিত প্রয়োগকারী নির্দেশিকা]] প্রকাশিত করা হয়েছে। নির্দেশিকা অনুসমর্থনের জন্য ভোট [[:m:Universal Code of Conduct/Enforcement guidelines/Voting|৭ মার্চ থেকে ২১ মার্চ 2022]] পর্যন্ত অনুষ্ঠিত হবে। ২৫ ফেব্রুয়ারী (১২:০০ UTC) এবং ৪ মার্চ (১৫:০০ UTC) সম্প্রদায়ের সদস্যরা প্রকল্প দল এবং খসড়া কমিটির সদস্যদের সাথে আলোচনায় অংশগ্রহণ করতে পারে। অংশগ্রহণ করার জন্য [[:m:Special:MyLanguage/Universal Code of Conduct/Conversations|সাইন আপ]] করুন। '''বিস্তারিত:''' [[:m:Universal Code of Conduct|সর্বজনীন আচরণবিধি]] (UCoC) পুরো উইকিমিডিয়া আন্দোলনের জন্য গ্রহণযোগ্য আচরণের একটি ভিত্তিরেখা সরবরাহ করে। UCoC এবং প্রয়োগের নির্দেশিকা সম্প্রদায়ের পরামর্শের পরে [[:m:Special:MyLanguage/Universal Code of Conduct/Drafting committee|স্বেচ্ছাসেবক-কর্মীদের খসড়া কমিটি]] দ্বারা লিখিত হয়েছিল। সংশোধিত নির্দেশিকা ২৪ জানুয়ারী ২০২২ প্রকাশিত হয়েছিল। '''এরপরে কী?''' '''#১ সম্প্রদায় কথোপকথন''' নির্দেশিকা বুঝতে সহায়তা করার জন্য, [[:m:Special:MyLanguage/Movement Strategy and Governance|আন্দোলন কৌশল ও অনুশাসন]] (MSG) টিম UCoC প্রকল্প দল এবং খসড়া কমিটির সদস্যদের সাথে ২৫ ফেব্রুয়ারি (১২:০০ UTC) এবং ৪ মার্চ (১৫:০০ UTC) আলোচনার আয়োজন করেছে। অংশগ্রহণ করার জন্য [[:m:Special:MyLanguage/Universal Code of Conduct/Conversations|সাইন আপ]] করুন। নির্দেশিকা সম্পর্কে প্রতিক্রিয়া [[:m:Talk:Universal Code of Conduct/Enforcement guidelines|আলাপ পাতায়]] ভাগ করা যায়। আপনি যে কোনও ভাষায় প্রতিক্রিয়া ভাগ করতে পারেন। '''#২ অনুসমর্থনের ভোট''' উইকিমিডিয়া ফাউন্ডেশনের ট্রাস্টি বোর্ড অনুসমর্থনের প্রক্রিয়া সম্পর্কে [[:m:Special:MyLanguage/Wikimedia Foundation Board noticeboard/January 2022 - Board of Trustees on Community ratification of enforcement guidelines of UCoC|একটি বিবৃতি প্রকাশ করেছে]] যেখানে যোগ্য ভোটাররা ভোটের মাধ্যমে প্রয়োগের নির্দেশিকা গ্রহণ বা বিরোধিতা করতে পারবে। উইকিমিডিয়ানদের গুরুত্বপূর্ণ তথ্য [[:m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Voter information/Volunteer|অনুবাদ এবং ভাগ]] করে নেওয়ার জন্য আমন্ত্রিত করা হচ্ছে। [[:m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Voting|SecurePoll]] মাধ্যমে ভোটদান প্রক্রিয়া নির্ধারিত করা হয়েছে। ভোট ৭ মার্চ থেকে ২১ মার্চ ২০২২ পর্যন্ত চলবে। [[:m:Universal Code of Conduct/Enforcement guidelines/Voter information#Voting eligibility|যোগ্য ভোটারদের]] একটি সমীক্ষা প্রশ্নের উত্তর দিতে এবং মন্তব্য ভাগ করার জন্য আমন্ত্রণ জানানো হচ্ছে। প্রস্তাবিত নির্দেশিকার ভিত্তিতে তারা UCoC প্রয়োগকে সমর্থন করেন কিনা তা ভোটারদের জিজ্ঞাসা করা হবে। ধনাবাদ। [[ব্যবহারকারী:CSinha (WMF)|CSinha (WMF)]] ([[ব্যবহারকারী আলাপ:CSinha (WMF)|আলাপ]]) ১৮:৩১, ২২ ফেব্রুয়ারি ২০২২ (ইউটিসি) == Coming soon == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> === Several improvements around templates === Hello, from March 9, several improvements around templates will become available on your wiki: * Fundamental improvements of the [[Mw:Special:MyLanguage/Help:VisualEditor/User guide#Editing templates|VisualEditor template dialog]] ([[m:WMDE Technical Wishes/VisualEditor template dialog improvements|1]], [[m:WMDE Technical Wishes/Removing a template from a page using the VisualEditor|2]]), * Improvements to make it easier to put a template on a page ([[m:WMDE Technical Wishes/Finding and inserting templates|3]]) (for the template dialogs in [[Mw:Special:MyLanguage/Help:VisualEditor/User guide#Editing templates|VisualEditor]], [[Mw:Special:MyLanguage/Extension:WikiEditor#/media/File:VectorEditorBasic-en.png|2010 Wikitext]] and [[Mw:Special:MyLanguage/2017 wikitext editor|New Wikitext Mode]]), * and improvements in the syntax highlighting extension [[Mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] ([[m:WMDE Technical Wishes/Improved Color Scheme of Syntax Highlighting|4]], [[m:WMDE Technical Wishes/Bracket Matching|5]]) (which is available on wikis with writing direction left-to-right). All these changes are part of the “[[m:WMDE Technical Wishes/Templates|Templates]]” project by [[m:WMDE Technical Wishes|WMDE Technical Wishes]]. We hope they will help you in your work, and we would love to hear your feedback on the talk pages of these projects. </div> - [[m:User:Johanna Strodt (WMDE)|Johanna Strodt (WMDE)]] ১২:৩৮, ২৮ ফেব্রুয়ারি ২০২২ (ইউটিসি) <!-- https://meta.wikimedia.org/w/index.php?title=WMDE_Technical_Wishes/Technical_Wishes_News_list_all_village_pumps&oldid=22907463-এর তালিকা ব্যবহার করে বার্তাটি ব্যবহারকারী:Johanna Strodt (WMDE)@metawiki পাঠিয়েছেন --> == <section begin="announcement-header" />ট্রাস্টি বোর্ড নির্বাচনের জন্য প্রতিক্রিয়া আহ্বান সমাপ্ত হয়েছে <section end="announcement-header" /> == <section begin="announcement-content" />:''[[m:Special:MyLanguage/Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Call for Feedback is now closed|বার্তাটি মেটা-উইকিতে আরও একাধিক ভাষায় অনুবাদ করা হয়েছে।]]'' :''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Call for Feedback is now closed|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Call for Feedback is now closed}}&language=&action=page&filter= {{int:please-translate}}]</div>'' [[m:Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections|ট্রাস্টি বোর্ড নির্বাচনের জন্য প্রতিক্রিয়া আহ্বান]] সমাপ্ত হয়েছে। প্রতিক্রিয়া আহ্বান ১০ জানুয়ারি থেকে ১৬ ফেব্রুয়ারী ২০২২-এর মধ্যে হয়েছিল। প্রতিক্রিয়া আহ্বান [[m:Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Discuss Key Questions#Questions|তিনটি মূল প্রশ্নের]] উপর দৃষ্টি নিবদ্ধ করে এবং [[m:Talk:Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Discuss Key Questions|মেটা-উইকি-র]] উপর, অ্যাফিলিয়েটসদের সাথে বৈঠকের সময় এবং বিভিন্ন সম্প্রদায়ের কথোপকথন থেকে প্রতিক্রিয়া প্রাপ্ত হয়েছে। [[m:Wikimedia Foundation Board of Trustees/Call for feedback: Board of Trustees elections/Reports|রিপোর্ট]] মেটা-উইকিতে প্রকাশ করা হয়েছে। এই তথ্যটি ট্রাস্টি বোর্ড এবং নির্বাচন কমিটির সাথে ভাগ করা হবে যাতে তারা আসন্ন ট্রাস্টি বোর্ড নির্বাচন সম্পর্কে জ্ঞাত সিদ্ধান্ত নিতে পারে। অভ্যন্তরীণ আলোচনার পরে ট্রাস্টি বোর্ড একটি ঘোষণা দেবে। নির্বাচন প্রক্রিয়া উন্নত করতে এবং সহায়তা করার জন্য আপনাকে ধন্যবাদ। শুভেচ্ছান্তে, আন্দোলন কৌশল ও অনুশাসন>br /><section end="announcement-content" /> [[ব্যবহারকারী:CSinha (WMF)|CSinha (WMF)]] ([[ব্যবহারকারী আলাপ:CSinha (WMF)|আলাপ]]) ০৮:৪৫, ৫ মার্চ ২০২২ (ইউটিসি) == সর্বজনীন আচরণবিধি (UCoC) প্রয়োগের নির্দেশিকা অনুসমর্থনের জন্য ভোট শুরু হয়েছে (৭ - ২১ মার্চ ২০২২) == [[metawiki:Special:MyLanguage/Universal Code of Conduct|সর্বজনীন আচরণবিধি]] (UCoC) [[metawiki:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines|প্রয়োগের নির্দেশিকার]] অনুমোদন শুরু হয়েছে। প্রতিটি যোগ্য সম্প্রদায়ের সদস্য ভোট দিতে পারেন। SecurePoll ব্যবহার এবং ভোটিং যোগ্যতা সম্পর্কে জানতে, [[metawiki:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Voter_information|এটি পড়ুন]]। ভোটের শেষ তারিখ ২১ মার্চ ২০২২। '''এখানে ভোট দিন''' - https://meta.wikimedia.org/wiki/Special:SecurePoll/vote/391 ধন্যবাদ। [[ব্যবহারকারী:CSinha (WMF)|CSinha (WMF)]] ([[ব্যবহারকারী আলাপ:CSinha (WMF)|আলাপ]]) ১৬:৫৩, ৭ মার্চ ২০২২ (ইউটিসি) == পশ্চিমবঙ্গ উইকিমিডিয়া ব্যবহারকারী দলের পক্ষ থেকে প্রকল্পের আহ্বান == [[File:Logo of West Bengal Wikimedians User Group.svg|100px|right|পশ্চিমবঙ্গ উইকিমিডিয়া ব্যবহারকারী দল]] সুধী, [[:meta:West Bengal Wikimedians|পশ্চিমবঙ্গ উইকিমিডিয়া ব্যবহারকারী দলের]] পক্ষ থেকে পশ্চিমবঙ্গের উইকিমিডিয়া সম্প্রদায়ের সকলকে ২০২২ সালের কার্যকলাপের জন্য প্রকল্প জমা দেওয়ার আহ্বান করা হচ্ছে। [[:meta:West Bengal Wikimedians/Requests|এই পাতায়]] আপনারা আগামী এক বছরে কি উইকিমিডিয়া প্রকল্প রূপায়িত করতে চান, তাতে কত আনুমানিক খরচ হতে পারে, এই প্রকল্প থেকে উইকিমিডিয়ার কি লক্ষ্য পূরণ হবে, ইত্যাদি বিস্তারিত ভাবে জানান। আপনাদের প্রস্তাবিত প্রকল্প বিবেচনা করেই ব্যবহারকারী দলের তরফ থেকে উইকিমিডিয়া ফাউন্ডেশনের নিকট হতে গ্র্যান্টের আবেদন করা হবে এবং তা গৃহীত হলে আপনাদের প্রকল্পের জন্য অর্থ বরাদ্দ হবে। আগামী ৩১শে মার্চের মধ্যে বিস্তারিত প্রকল্প জমা নেওয়া হবে। ধন্যবাদান্তে, -- পশ্চিমবঙ্গ ব্যবহারকারী দলের পক্ষে থেকে [[ব্যবহারকারী:Bodhisattwa|বোধিসত্ত্ব]] ([[ব্যবহারকারী আলাপ:Bodhisattwa|আলাপ]]) ০৪:১৬, ৮ মার্চ ২০২২ (ইউটিসি) == Wiki Loves Folklore 2022 ends tomorrow == [[File:Wiki Loves Folklore Logo.svg|right|frameless|180px]] International photographic contest [[:c:Commons:Wiki Loves Folklore 2022| Wiki Loves Folklore 2022]] ends on 15th March 2022 23:59:59 UTC. This is the last chance of the year to upload images about local folk culture, festival, cuisine, costume, folklore etc on Wikimedia Commons. Watch out our social media handles for regular updates and declaration of Winners. ([https://www.facebook.com/WikiLovesFolklore/ Facebook] , [https://twitter.com/WikiFolklore Twitter ] , [https://www.instagram.com/wikilovesfolklore/ Instagram]) The writing competition Feminism and Folklore will run till 31st of March 2022 23:59:59 UTC. Write about your local folk tradition, women, folk festivals, folk dances, folk music, folk activities, folk games, folk cuisine, folk wear, folklore, and tradition, including ballads, folktales, fairy tales, legends, traditional song and dance, folk plays, games, seasonal events, calendar customs, folk arts, folk religion, mythology etc. on your local Wikipedia. Check if your [[:m:Feminism and Folklore 2022/Project Page|local Wikipedia is participating]] A special competition called '''Wiki Loves Falles''' is organised in Spain and the world during 15th March 2022 till 15th April 2022 to document local folk culture and [[:en:Falles|Falles]] in Valencia, Spain. Learn more about it on [[:ca:Viquiprojecte:Falles 2022|Catalan Wikipedia project page]]. We look forward for your immense co-operation. Thanks Wiki Loves Folklore international Team [[ব্যবহারকারী:MediaWiki message delivery|MediaWiki message delivery]] ([[ব্যবহারকারী আলাপ:MediaWiki message delivery|আলাপ]]) ১৪:৪১, ১৪ মার্চ ২০২২ (ইউটিসি) <!-- https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=22754428-এর তালিকা ব্যবহার করে বার্তাটি ব্যবহারকারী:Rockpeterson@metawiki পাঠিয়েছেন --> == <section begin="announcement-header" />সর্বজনীন আচরণবিধি প্রয়োগের নির্দেশিকা অনুমোদনের ভোটদান প্রক্রিয়া শেষ হয়েছে<section end="announcement-header" /> == <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Vote/Closing message|বার্তাটি মেটা-উইকিতে আরও একাধিক ভাষায় অনুবাদ করা হয়েছে।]]'' :''<div class="plainlinks">[[m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Vote/Closing message|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Enforcement guidelines/Vote/Closing message}}&language=&action=page&filter= {{int:please-translate}}]</div>'' অভিনন্দন, [[m:Special:MyLanguage/Universal Code of Conduct|সর্বজনীন আচরণবিধির]] (UCoC) [[m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines|সংশোধিত প্রয়োগকারী নির্দেশিকা]] অনুমোদনের ভোটদান প্রক্রিয়া ২১ মার্চ ২০২২-এ শেষ হয়েছে। '''{{#expr:2300}} এরও বেশি''' উইকিমিডিয়ান বিভিন্ন সম্প্রদায় জুড়ে ভোট দিয়েছে। যারা এই প্রক্রিয়াটিতে অংশ নিয়েছে তাদের সবাইকে ধন্যবাদ! যাচাই-বাছাই কারী গোষ্ঠী এখন নির্ভুলতার জন্য ভোট পর্যালোচনা করবে; তাদের কাজ শেষ করতে দুই সপ্তাহ পর্যন্ত সময় দিন। ভোটদান প্রক্রিয়া থেকে চূড়ান্ত ফলাফলগুলি [[m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Voting/Results|এখানে]] প্রাসঙ্গিক পরিসংখ্যান এবং মন্তব্যের সংক্ষিপ্তসার সহ ঘোষণা করা হবে। পরবর্তী পদক্ষেপগুলি সম্পর্কে জানতে [[m:Special:MyLanguage/Universal Code of Conduct/Enforcement guidelines/Voter information|ভোটার তথ্য পৃষ্ঠাটি]] দেখুন। আপনি যে কোনও ভাষায় [[m:Talk:Universal Code of Conduct/Enforcement guidelines|মেটা-উইকিতে]] প্রকল্পের আলাপ পৃষ্ঠায় মন্তব্য করতে পারেন। আপনি UCoC প্রকল্প টিমের সাথে ইমেলের মাধ্যমে যোগাযোগ করতে পারেন: ucocproject[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org শুভেচ্ছান্তে! [[ব্যবহারকারী:CSinha (WMF)|CSinha (WMF)]] ([[ব্যবহারকারী আলাপ:CSinha (WMF)|আলাপ]]) ০৯:২৫, ২৩ মার্চ ২০২২ (ইউটিসি) == ইন্টারফেস প্রশাসকত্বের আবেদন == {{atopr | status = | result = }} যেহেতু কোনও ইন্টারফেস প্রশাসক নেই, তাই সাম্প্রতিক পরিবর্তনে নোটিশ দেওয়া সম্ভব নয়। এখানেই সম্প্রদায়ের অবগতির লক্ষ্যে আমার '''[[উইকিঅভিধান:ইন্টারফেস প্রশাসক হওয়ার আবেদন/খাত্তাব হাসান (সাময়িক)|ইন্টারফেস প্রশাসক হওয়ার আবেদনের]]''' বিষয়টি জানাচ্ছি। আশা করছি, সম্প্রদায় আবেদনটিতে মন্তব্য করবে।~ [[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব]] <sup>[[বিশেষ:অবদান/খাত্তাব হাসান|অ]], [[ব্যবহারকারী আলাপ:খাত্তাব হাসান|আ]], [[বিশেষ:ইমেইল/খাত্তাব হাসান|ই]]...</sup> ০৫:৩১, ৩১ মার্চ ২০২২ (ইউটিসি) {{abot}} == Announcing Indic Hackathon 2022 and Scholarship Applications == Dear Wikimedians, we are happy to announce that the Indic MediaWiki Developers User Group will be organizing [[m:Indic Hackathon 2022|Indic Hackathon 2022]], a regional event as part of the main [[mw:Wikimedia Hackathon 2022|Wikimedia Hackathon 2022]] taking place in a hybrid mode during 20-22 May 2022. The event will take place in Hyderabad. The regional event will be in-person with support for virtual participation. As it is with any hackathon, the event’s program will be semi-structured i.e. while we will have some sessions in sync with the main hackathon event, the rest of the time will be upto participants’ interest on what issues they are interested to work on. The event page can be seen on [[m:Indic Hackathon 2022|this page]]. In this regard, we would like to invite community members who would like to attend in-person to fill out a [https://docs.google.com/forms/d/e/1FAIpQLSc1lhp8IdXNxL55sgPmgOKzfWxknWzN870MvliqJZHhIijY5A/viewform?usp=sf_link form for scholarship application] by 17 April, which is available on the event page. Please note that the hackathon won’t be focusing on training of new skills, and it is expected that applications have some experience/knowledge contributing to technical areas of the Wikimedia movement. Please post on the event talk page if you have any queries. [[ব্যবহারকারী:MediaWiki message delivery|MediaWiki message delivery]] ([[ব্যবহারকারী আলাপ:MediaWiki message delivery|আলাপ]]) ১৮:৩১, ৭ এপ্রিল ২০২২ (ইউটিসি) <!-- https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/South_Asia_Village_Pumps&oldid=23115331-এর তালিকা ব্যবহার করে বার্তাটি ব্যবহারকারী:KCVelaga@metawiki পাঠিয়েছেন --> == মারিয়ানা ইস্কান্ডারের সাথে দক্ষিণ এশিয়া/ESEAP বার্ষিক পরিকল্পনা সভা == প্রিয় সম্প্রদায়ের সদস্যরা, [[m:User:MIskander-WMF|মারিয়ানা ইস্কান্দারের]] [[m:Special:MyLanguage/Wikimedia Foundation Chief Executive Officer/Maryana’s Listening Tour|লিস্তেনিং টুর-এর]] ধারাবাহিকতায়, [[m:Special:MyLanguage/Movement Communications|আন্দোলন যোগাযোগ]] এবং [[m:Special:MyLanguage/Movement Strategy and Governance|আন্দোলনের কৌশল এবং শাসন]] টিম আপনাকে '''[[m:Special:MyLanguage/Wikimedia Foundation Annual Plan/2022-2023/draft|২০২২-২৩ উইকিমিডিয়া ফাউন্ডেশনের বার্ষিক পরিকল্পনা]]''' নিয়ে আলোচনায় আমন্ত্রণ জানাচ্ছে। কথোপকথন এই প্রশ্নগুলি সম্পর্কে হবে: * [[m:Special:MyLanguage/Wikimedia 2030|২০৩০ উইকিমিডিয়া আন্দোলনের কৌশল]] "knowledge as a service" এবং "knowledge equity"-র দিকে একটি দিকনির্দেশ নির্ধারণ করে। উইকিমিডিয়া ফাউন্ডেশন এই দুটি লক্ষ্য অনুযায়ী পরিকল্পনা করতে চায়। এই প্রসঙ্গে, উইকিমিডিয়া ফাউন্ডেশনের জন্য আপনার পরামর্শ কি? * উইকিমিডিয়া ফাউন্ডেশন আঞ্চলিক পর্যায়ে কাজ করার আরও ভালো উপায় অন্বেষণ করে চলেছে। আমরা অনুদান, নতুন বৈশিষ্ট্য এবং সম্প্রদায়ের কথোপকথনে আমাদের আঞ্চলিক ফোকাস বাড়িয়ে চলেছি। আমরা আরও কিভাবে উন্নত করতে পারি? * যে কেউ আন্দোলনের কৌশল প্রক্রিয়ায় অবদান রাখতে পারে। আমরা আপনাদের কার্যকলাপ, ধারণা, এবং অনুরোধ সম্পর্কে আরও জানতে চাই। কিভাবে উইকিমিডিয়া ফাউন্ডেশন আন্দোলনের কৌশল কার্যক্রমে কর্মরত স্বেচ্ছাসেবক এবং অ্যাফিলিয়েটসদের জন্য সমর্থন উন্নত করতে পারে? <b>তারিখ এবং সময়</b> [https://wikimedia.zoom.us/j/84673607574?pwd=dXo0Ykpxa0xkdWVZaUZPNnZta0k1UT09 জুমের] মাধ্যমে সভা অনুষ্ঠিত হবে। তারিখ এবং সময় হল ২৪ এপ্রিল (রবিবার) ০৭:০০ UTC ([https://zonestamp.toolforge.org/1650783659 স্থানীয় সময়])। আপনার [https://calendar.google.com/event?action=TEMPLATE&tmeid=MmtjZnJibXVjYXYyZzVwcGtiZHVjNW1lY3YgY19vbWxxdXBsMTRqbnNhaHQ2N2Y5M2RoNDJnMEBn&tmsrc=c_omlqupl14jnsaht67f93dh42g0%40group.calendar.google.com ক্যালেন্ডারে মিটিং যোগ করুন]। লাইভ ব্যাখ্যা কিছু ভাষার জন্য উপলব্ধ হবে। ধন্যবাদ, [[ব্যবহারকারী:CSinha (WMF)|CSinha (WMF)]] ([[ব্যবহারকারী আলাপ:CSinha (WMF)|আলাপ]]) ১০:৪৯, ১৭ এপ্রিল ২০২২ (ইউটিসি) == চলুন ডেস্কটপ উন্নয়ন সম্পর্কে কথা বলি == [[File:New table of contents shown on English wikipedia.png|thumb]] সুপ্রিয়! আপনি কি লক্ষ্য করেছেন যে কিছু উইকি [[mw:Special:MyLanguage/Reading/Web/Desktop_Improvements|ভিন্ন ডেস্কটপ ইন্টারফেস]] ব্যবহার করছে? আপনি কি আমাদের পরবর্তী পদক্ষেপগুলি সম্পর্কে জানতে আগ্রহী? নকশা বা প্রযুক্তিগত বিষয় সম্পর্কে আপনার কোনও প্রশ্ন বা মতামত রয়েছে? ডেস্কটপ উন্নয়ন নিয়ে কাজ করা দলের সাথে একটি অনলাইন সভায় যোগ দিন! এটি '''২৯ এপ্রিল ২০২২ তারিখ [https://www.timeanddate.com/worldclock/fixedtime.html?iso=20220429T1300 ১৩:০০ UTC], [https://www.timeanddate.com/worldclock/fixedtime.html?iso=20220429T1800 ১৮ ০০ UTC]-তে''' জুমে সঞ্চালিত হবে। '''[https://wikimedia.zoom.us/j/88045453898 যোগ দিতে এখানে ক্লিক করুন]'''। সভার আইডি: 88045453898। [https://wikimedia.zoom.us/u/kcOMICmyyA আপনার অবস্থান অনুযায়ী ডায়াল করুন]। '''আলোচ্যসূচি''' * সাম্প্রতিক উন্নয়ন নিয়ে হালনাগাদ * প্রশ্ন ও উত্তর, আলোচনা '''বিন্যাস''' সভাটি রেকর্ড বা স্ট্রিম করা হবে না। টীকাগুলি একটি [https://docs.google.com/document/d/1G4tfss-JBVxyZMxGlOj5MCBhOO-0sLekquFoa2XiQb8/edit# গুগল ডক ফাইলে] লেখা হবে। এই সভাটি সঞ্চালন করবেন [[mw:User:OVasileva_(WMF)|ওলগা ভাসিলেভা]] (পণ্য ব্যবস্থাপক)। সভার উপস্থাপনা অংশটি ইংরেজিতে দেওয়া হবে। আমরা ইংরেজি, ফরাসি, ইতালীয় এবং পোলিশ ভাষায় করা প্রশ্নের উত্তর দিতে পারব। আপনি যদি আগে থেকে প্রশ্ন জিজ্ঞাসা করতে চান, তবে [[mw:Talk:Reading/Web/Desktop_Improvements|আলাপ পাতায়]] সেগুলি যোগ করুন বা sgrabarczuk@wikimedia.org ঠিকানায় সেগুলি প্রেরণ করুন। এই সভায়, [[foundation:Friendly_space_policy|বন্ধুত্বপূর্ণ স্থানের নীতি]] এবং উইকিমিডিয়ার কারিগরি স্থানের জন্য [[mw:Special:MyLanguage/Code_of_Conduct|আচরণবিধি]] উভয় প্রযোজ্য হবে। জুম [[foundation:Privacy_policy|WMF-এর গোপনীয়তা নীতির]] অধীনে নয়। আশা করি আমরা আপনাকে দেখতে পাব! [[User:SGrabarczuk (WMF)|SGrabarczuk (WMF)]] ([[User talk:SGrabarczuk (WMF)|আলাপ]]) ১৪:৩৬, ২৭ এপ্রিল ২০২২ (ইউটিসি) <!-- https://meta.wikimedia.org/w/index.php?title=User:SGrabarczuk_(WMF)/sandbox/MM/Other_TOP30/bn&oldid=22381747-এর তালিকা ব্যবহার করে বার্তাটি ব্যবহারকারী:SGrabarczuk (WMF)@metawiki পাঠিয়েছেন --> ==প্রার্থিতা আহ্বান: ২০২২ ট্রাস্টি বোর্ড নির্বাচন== প্রিয় সম্প্রদায়ের সদস্যরা, [[m:Special:MyLanguage/Wikimedia Foundation elections/2022|২০২২ ট্রাস্টি বোর্ড নির্বাচন]] প্রক্রিয়া শুরু হয়ে গ্যাছে। [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2022/Announcement/Call_for_Candidates|প্রার্থিতার আহ্বান]] জানানো হয়েছে। ট্রাস্টি বোর্ড উইকিমিডিয়া ফাউন্ডেশনের কার্যক্রম তত্ত্বাবধান করে। সম্প্রদায়-এবং-অ্যাফিলিয়েট নির্বাচিত ট্রাস্টি এবং বোর্ড-নিযুক্ত ট্রাস্টিরা ট্রাস্টি বোর্ড গঠন করে। প্রতিটি ট্রাস্টি তিন বছরের মেয়াদে কাজ করে। উইকিমিডিয়া সম্প্রদায় সম্প্রদায়-এবং-অ্যাফিলিয়েট ট্রাস্টি নির্বাচনের জন্য ভোট দিতে পারে। উইকিমিডিয়া সম্প্রদায় ২০২২ সালে ট্রাস্টি বোর্ডে দুটি আসন নির্বাচন করার জন্য ভোট দেবে। এটি ট্রাস্টি বোর্ডের প্রতিনিধিত্ব, বৈচিত্র্য, এবং দক্ষতা উন্নত করার একটি সুযোগ। ট্রাস্টি বোর্ডে যোগদানের জন্য [[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Apply to be a Candidate|আপনার প্রার্থিতা জমা দিন]]। [[ব্যবহারকারী:CSinha (WMF)|CSinha (WMF)]] ([[ব্যবহারকারী আলাপ:CSinha (WMF)|আলাপ]]) ০৯:০৮, ২৯ এপ্রিল ২০২২ (ইউটিসি) == Coming soon: Improvements for templates == <div class="plainlinks mw-content-ltr" lang="en" dir="ltr"> <!--T:11--> [[File:Overview of changes in the VisualEditor template dialog by WMDE Technical Wishes.webm|thumb|Fundamental changes in the template dialog.]] Hello, more changes around templates are coming to your wiki soon: The [[mw:Special:MyLanguage/Help:VisualEditor/User guide#Editing templates|'''template dialog''' in VisualEditor]] and in the [[mw:Special:MyLanguage/2017 wikitext editor|2017 Wikitext Editor]] (beta) will be '''improved fundamentally''': This should help users understand better what the template expects, how to navigate the template, and how to add parameters. * [[metawiki:WMDE Technical Wishes/VisualEditor template dialog improvements|project page]], [[metawiki:Talk:WMDE Technical Wishes/VisualEditor template dialog improvements|talk page]] In '''syntax highlighting''' ([[mw:Special:MyLanguage/Extension:CodeMirror|CodeMirror]] extension), you can activate a '''colorblind-friendly''' color scheme with a user setting. * [[metawiki:WMDE Technical Wishes/Improved Color Scheme of Syntax Highlighting#Color-blind_mode|project page]], [[metawiki:Talk:WMDE Technical Wishes/Improved Color Scheme of Syntax Highlighting|talk page]] Deployment is planned for May 10. This is the last set of improvements from [[m:WMDE Technical Wishes|WMDE Technical Wishes']] focus area “[[m:WMDE Technical Wishes/Templates|Templates]]”. We would love to hear your feedback on our talk pages! </div> -- [[m:User:Johanna Strodt (WMDE)|Johanna Strodt (WMDE)]] ১১:১৩, ২৯ এপ্রিল ২০২২ (ইউটিসি) <!-- https://meta.wikimedia.org/w/index.php?title=WMDE_Technical_Wishes/Technical_Wishes_News_list_all_village_pumps&oldid=23222263-এর তালিকা ব্যবহার করে বার্তাটি ব্যবহারকারী:Johanna Strodt (WMDE)@metawiki পাঠিয়েছেন --> == সম্পাদনা সংবাদ ২০২২ #১ == <section begin="message"/><i>[[metawiki:VisualEditor/Newsletter/2022/April|অন্য আরেকটি ভাষায় এটি পড়ুন]] • [[m:VisualEditor/Newsletter|এই বহুভাষী বার্তাপত্রের জন্য সদস্যতার তালিকা]]</i> [[File:Junior Contributor New Topic Tool Completion Rate.png|thumb|নতুন সম্পাদকরা এই নতুন সরঞ্জাম ব্যবহার করে আরও সফল হয়।]] [[mw:Special:MyLanguage/Help:DiscussionTools#New discussion tool|নতুন আলোচনা সরঞ্জাম]] সম্পাদকদের আলোচনা পাতায় নতুন ==অনুচ্ছেদ== তৈরিতে সহায়তা করে। নতুন সম্পাদকরা এই নতুন সরঞ্জাম ব্যবহার করে আরও সফল হন। আপনি [[mw:Talk pages project/New topic#21 April 2022|প্রতিবেদনটি পড়তে পারেন]]। শীঘ্রই, সম্পাদনা দল পরীক্ষায় অংশগ্রহণকারী ২০টি উইকিপিডিয়াতে এইগুলো চালু করবে। আপনি চাইলে [[Special:Preferences#mw-prefsection-editing-discussion]]-এ গিয়ে এটি বন্ধ করতে পারবেন।<section end="message"/> [[User:Whatamidoing (WMF)|Whatamidoing (WMF)]] ১৮:৫৫, ২ মে ২০২২ (ইউটিসি) <!-- https://meta.wikimedia.org/w/index.php?title=Global_message_delivery/Targets/VisualEditor/Newsletter/Wikis_with_VE&oldid=22019984-এর তালিকা ব্যবহার করে বার্তাটি ব্যবহারকারী:Quiddity (WMF)@metawiki পাঠিয়েছেন --> == <section begin="announcement-header" />উইকিমিডিয়া ফাউন্ডেশন ২০২২ ট্রাস্টি বোর্ড নির্বাচন - নির্বাচন স্বেচ্ছাসেবকদের জন্য আহ্বান<section end="announcement-header" /> == <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Movement Strategy and Governance/Election Volunteers/2022/Call for Election Volunteers|বার্তাটি মেটা-উইকিতে আরও একাধিক ভাষায় অনুবাদ করা হয়েছে।]]'' :''<div class="plainlinks">[[m:Special:MyLanguage/Movement Strategy and Governance/Election Volunteers/2022/Call for Election Volunteers|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Strategy and Governance/Election Volunteers/2022/Call for Election Volunteers}}&language=&action=page&filter= {{int:please-translate}}]</div>'' আন্দোলনের কৌশল এবং শাসন দল আসন্ন ট্রাস্টি বোর্ড নির্বাচনে নির্বাচনী স্বেচ্ছাসেবক হিসাবে সহযোগিতা করার জন্য সম্প্রদায়ের সদস্যদের খুঁজছেন৷ নির্বাচন স্বেচ্ছাসেবক প্রোগ্রামেটি ২০২১ সালের উইকিমিডিয়া ট্রাস্টি বোর্ড নির্বাচনের সময় শুরু হয়েছিল। প্রোগ্রামেটি সফল হয়। নির্বাচনী স্বেচ্ছাসেবকদের সহায়তায়, আমরা ১৭৫৩ ভোটারের নির্বাচনে অংশগ্রহণ এবং প্রচার বাড়াতে সক্ষম হয়েছিলাম। সামগ্রিক ভোটদান ছিল ১০.১৩%, ১.১% বেশি, এবং ২১৪টি উইকি নির্বাচনে প্রতিনিধিত্ব করেছিল। মোট ৭৪টি উইকি যারা ২০১৭-এ অংশগ্রহণ করেনি তারা ২০২১ সালের নির্বাচনে ভোট দিয়েছে। আপনি অংশগ্রহণ উন্নত করতে সাহায্য করতে পারেন? নির্বাচনী স্বেচ্ছাসেবকরা নিম্নলিখিত ক্ষেত্রে সাহায্য করবে: * সংক্ষিপ্ত বার্তা অনুবাদ করা, এবং সম্প্রদায়েতে চলমান নির্বাচন প্রক্রিয়া ঘোষণা করা। * '''ঐচ্ছিক''': মন্তব্য এবং প্রশ্নের জন্য সম্প্রদায়েটিতে নিরীক্ষণ রাখা। স্বেচ্ছাসেবকদের উচিত: * কথোপকথন এবং ইভেন্টের সময় ফ্রেন্ডলি স্পেস নীতি বজায় রাখা। * নিরপেক্ষভাবে সম্প্রদায়ের কাছে নির্বাচনের নির্দেশিকা এবং ভোটদানের তথ্য উপস্থাপন করা। আপনি কি নির্বাচনী স্বেচ্ছাসেবক হতে চান এবং ভোটে আপনার সম্প্রদায়ের প্রতিনিধিত্ব নিশ্চিত করতে চান? হালনাগাদ পেতে এখানে [[m:Special:MyLanguage/Movement Strategy and Governance/Election Volunteers/About|সাইন আপ করুন]]। আপনি অনুবাদ সম্পর্কিত প্রশ্নের জন্য [[m:Special:MyLanguage/Talk:Movement Strategy and Governance/Election Volunteers/About|আলাপ পাতা]] ব্যবহার করতে পারেন।<br /><section end="announcement-content" /> [[ব্যবহারকারী:CSinha (WMF)|CSinha (WMF)]] ([[ব্যবহারকারী আলাপ:CSinha (WMF)|আলাপ]]) ১০:০০, ১২ মে ২০২২ (ইউটিসি) == Results of Wiki Loves Folklore 2022 is out! == <div lang="en" dir="ltr" class="mw-content-ltr"> {{int:please-translate}} [[File:Wiki Loves Folklore Logo.svg|right|150px|frameless]] Hi, Greetings The winners for '''[[c:Commons:Wiki Loves Folklore 2022|Wiki Loves Folklore 2022]]''' is announced! We are happy to share with you winning images for this year's edition. This year saw over 8,584 images represented on commons in over 92 countries. Kindly see images '''[[:c:Commons:Wiki Loves Folklore 2022/Winners|here]]''' Our profound gratitude to all the people who participated and organized local contests and photo walks for this project. We hope to have you contribute to the campaign next year. '''Thank you,''' '''Wiki Loves Folklore International Team''' --[[ব্যবহারকারী:MediaWiki message delivery|MediaWiki message delivery]] ([[ব্যবহারকারী আলাপ:MediaWiki message delivery|আলাপ]]) ১৬:১২, ৪ জুলাই ২০২২ (ইউটিসি) </div> <!-- https://meta.wikimedia.org/w/index.php?title=Distribution_list/Non-Technical_Village_Pumps_distribution_list&oldid=23454230-এর তালিকা ব্যবহার করে বার্তাটি ব্যবহারকারী:Tiven2240@metawiki পাঠিয়েছেন --> == ২০২২ নির্বাচনী কম্পাসের জন্য বিবৃতির প্রস্তাব রাখুন == :''[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Propose statements for the 2022 Election Compass| বার্তাটি মেটা-উইকিতে আরও একাধিক ভাষায় অনুবাদ করা হয়েছে।]]'' :''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2022/Announcement/Propose statements for the 2022 Election Compass|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2022/Announcement/Propose statements for the 2022 Election Compass}}&language=&action=page&filter= {{int:please-translate}}]</div>'' প্রিয় সবাই, স্বেচ্ছাসেবকদের [[m:Special:MyLanguage/Wikimedia Foundation elections/2022|২০২২ ট্রাস্টি বোর্ডের]] '''[[m:Special:MyLanguage/Wikimedia_Foundation_elections/2022/Community_Voting/Election_Compass|নির্বাচন কম্পাসের বিবৃতির প্রস্তাবের জন্য]]''' আমন্ত্রণ জানানো হচ্ছে। নির্বাচনী কম্পাস এমন একটি সংরঞ্জাম যা ভোটারদের তাদের বিশ্বাস এবং দৃষ্টিভঙ্গির সাথে সর্বোত্তম সারিবদ্ধ প্রার্থীদের সনাক্ত করতে সহায়তা করে। সম্প্রদায়ের সদস্যরা বিবৃতির প্রস্তাব রাখবেন এবং প্রার্থীরা লিকার্ট স্কেল ব্যবহার করে উত্তর দেবেন (একমত/অসম্মত/নিরপক্ষ)। বিবৃতির উত্তর নির্বাচন কম্পাস সরঞ্জামে আপলোড করা হবে। ভোটাররা বিবৃতিতে তাদের উত্তর ভাগ করে সরঞ্জামটি ব্যবহার করবে (একমত/অসম্মত/নিরপক্ষ)। ফলাফলে সেই প্রার্থীদের শনাক্ত হবে যারা ভোটারদের বিশ্বাস ও দৃষ্টিভঙ্গির সাথে সর্বোত্তমে সারিবদ্ধ হয়। এখানে নির্বাচন কম্পাসের সময়রেখা দেওয়া রয়েছে: * জুলাই ৮ - ২০: স্বেচ্ছাসেবকরা নির্বাচন কম্পাসের জন্য বিবৃতির প্রস্তাব রাখবে। * জুলাই ২১ - ২২: নির্বাচন কমিটি স্পষ্টতার জন্য বিবৃতিগুলির পর্যালোচনা করে এবং বিষয়বস্তুর বাইরের বিবৃতিগুলি সরিয়ে দেবে। * জুলাই ২৩ - আগস্ট ১: স্বেচ্ছাসেবকরা বিবৃতি উপর ভোট দেবে। * আগস্ট ২ - ৪: নির্বাচন কমিটি শীর্ষ ১৫ বিবৃতি বেছে নেবে। * আগস্ট ৫ - ১২: প্রার্থীরা বিবৃতির সঙ্গে নিজেদের সারিবদ্ধ করবে। * আগস্ট ১৫: ভোটারদের জন্য নির্বাচনী কম্পাস খোলা হবে। নির্বাচন কমিটি আগস্টের শুরুতে সেরা ১৫টি বিবৃতির নির্বাচন করবে। আন্দোলন কৌশল ও অনুশাসন টিম দ্বারা সমর্থিত নির্বাচন কমিটি প্রক্রিয়াটি তত্ত্বাবধান করবে। আন্দোলন কৌশল ও অনুশাসন টিম প্রশ্নের স্পষ্টতা, সদৃশতা, ভুল ইত্যাদি পরীক্ষা করবে। শুভেচ্ছান্তে, আন্দোলন কৌশল ও অনুশাসন ''এই বার্তা-টি বোর্ড নির্বাচন কার্যকরী দল এবং নির্বাচন কমিটির পক্ষ থেকে পাঠানো হয়েছে।'' [[ব্যবহারকারী:CSinha (WMF)|CSinha (WMF)]] ([[ব্যবহারকারী আলাপ:CSinha (WMF)|আলাপ]]) ০৯:০৫, ১২ জুলাই ২০২২ (ইউটিসি) ==উইকিম্যানিয়া ২০২২ – বাংলাদেশ পর্বে অংশগ্রহণের আহ্বান == [[চিত্র:Wikimania Bangladesh Logo Horizontal.svg|right|250px|frameless]] প্রিয় সবাই, অত্যন্ত আনন্দের সাথে জানাচ্ছি যে, [[w:উইকিম্যানিয়া|উইকিম্যানিয়া]] ২০২২ উপলক্ষ্যে আগামী ১২ আগস্ট উইকিমিডিয়া বাংলাদেশ বাংলাদেশের রাজধানী ঢাকায় '''উইকিম্যানিয়া ২০২২ – বাংলাদেশ পর্ব''' নামে একটি দিনব্যাপী সম্মেলনের আয়োজন করেছে। এই সম্মেলনে উইকিমিডিয়া প্রকল্পের অন্তর্ভুক্ত যেমন উইকিপিডিয়া, অন্যান্য উইকিসমূহ, মুক্ত জ্ঞান ও বিষয়বস্তু সম্পর্কিত সামাজিক এবং প্রযুক্তিগত দিক উপস্থাপনা ও আলোচনা করা হবে। বাংলাদেশে অবস্থানকারী উইকিমিডিয়ানরা এই সম্মেলনে অংশগ্রহণ করতে পারবেন। আসনসংখ্যা সীমিত হবার কারণে এই অনুষ্ঠানে অংশগ্রহণ নিশ্চিত করার লক্ষ্যে অংশগ্রহণের প্রাথমিক আবেদন সংগ্রহ করা হচ্ছে। আবেদন করতে [https://docs.google.com/forms/d/e/1FAIpQLSekWAubA6o1ZHE_WXY6O880ym7w16R1PHW_DeRaPNIM4kdIdw/viewform এখানে ক্লিক করুন]। উইকিম্যানিয়া ২০২২ এর বৈশ্বিক আয়োজন ১১ - ১৪ আগস্ট ২০২২ অনলাইনে অনুষ্ঠিত হবে। এই আয়োজনে অংশগ্রহণ করতে ইচ্ছুক বাংলাদেশে বসবাসকারী উইকিমিডিয়ানদের জন্য উইকিমিডিয়া বাংলাদেশ কর্তৃক সীমিত সংখ্যক ইন্টারনেট ডাটা প্যাকেজ বৃত্তি দেয়া হবে। আপনি যদি বৃত্তি পেতে আগ্রহী হন, তবে [https://docs.google.com/forms/d/e/1FAIpQLSez6uADSg0DtimssWHK510rAaDKpAPOPz_qHvvXgkBnJQA7sQ/viewform এই গুগল ফর্মটি] পূরণ করুন। জমা পড়া প্রাথমিক আবেদনগুলো যাচাই-বাছাইয়ের পরে বৃত্তিপ্রাপ্তদের তালিকা চূড়ান্ত করা হবে। বিস্তারিত তথ্যের জন্য ভিজিট করুন: https://bd.wikimedia.org/s/235 আবেদন গ্রহণ ''' ১ আগস্ট, ২০২২''' পর্যন্ত চলবে। মূল আয়োজকদলের পক্ষে [[ব্যবহারকারী:MdsShakil|MdsShakil]] ([[ব্যবহারকারী আলাপ:MdsShakil|আলাপ]]) ১৫:১৩, ২৭ জুলাই ২০২২ (ইউটিসি) == উইকিম্যানিয়া ২০২২ — বাংলাদেশ পর্ব: উপস্থাপনা সেশনের আহ্বান == [[চিত্র:Wikimania Bangladesh Logo With Text.svg|100px|right|উইকিম্যানিয়া বাংলাদেশের লোগো]] সুপ্রিয় সবাই, উইকিম্যানিয়া ২০২২ উপলক্ষ্যে [[w:উইকিমিডিয়া বাংলাদেশ|উইকিমিডিয়া বাংলাদেশ]] কর্তৃক আয়োজিত [[:wmbd:উইকিম্যানিয়া বাংলাদেশ, ২০২২|উইকিম্যানিয়া ২০২২ বাংলাদেশ পর্বে]] [[:wmbd:উইকিম্যানিয়া বাংলাদেশ, ২০২২/উপস্থাপনা|উপস্থাপনা সেশনের আহ্বান]] করা হয়েছে। এই আয়োজনে ৬টি বিষয়ভিত্তিক উপস্থাপনা এবং ৬টি সংক্ষিপ্ত উপস্থাপনা সেশন নেওয়ার সুযোগ রয়েছে। প্রতিটি বিষয়ভিত্তিক উপস্থাপনার জন্য সময় থাকছে ১৫ মিনিট এবং প্রতিটি সংক্ষিপ্ত উপস্থাপনার জন্য সময় থাকছে ৫ মিনিট। সময়ের অপ্রতুলতার কারণে উপস্থাপনার সংখ্যা বৃদ্ধির সুযোগ না থাকায় জমা পড়া উপস্থাপনা প্রস্তাবের সংখ্যা বেশি হলে গুরুত্ব অনুসারে উপস্থাপনাসমূহ চূড়ান্তভাবে নির্বাচন করা হবে। আগ্ৰহীদের [https://docs.google.com/forms/d/e/1FAIpQLScBlKBK5bsZ41D2gZr0mVbNP14JBTh0UMfZt5JCVY2ehSkM7w/viewform এই গুগল ফর্মটি] পূরণ করার জন্য অনুরোধ করা হচ্ছে। উল্লেখ্য যে, '''৩ আগস্ট''' পর্যন্ত অনুরোধ গ্ৰহণ চলবে এবং '''৬ আগস্ট''' যাচাই-বাছাই করে ফলাফল জানানো হবে। মূল আয়োজক দলের পক্ষে, [[ব্যবহারকারী:MdsShakil|MdsShakil]] ([[ব্যবহারকারী আলাপ:MdsShakil|আলাপ]]) ১৫:১৩, ২৭ জুলাই ২০২২ (ইউটিসি) 2rlg1o8kli5x03s2npf1tqu64idfhvx ফলা 0 11696 131481 109508 2022-07-28T15:26:48Z 119.30.39.237 /* বাংলা */ wikitext text/x-wiki == {{ভাষা|bn}} == ব্যঞ্জনবর্ণের সংক্ষিপ্ত রূপকে বলে ফলা। ফলা যুক্ত হলে বর্ণের আকারের পরিবর্তন সাধিত হয়। বাংলা ব্যঞ্জনবর্ণের ফলা ৬টি। যেমন: * ণ/ন-ফলা : চিহ্ন, রত্ন, পূর্বাহ্ন (হ+ন), অপরাহ্ণ (হ+ণ), কৃষ্ণ (ষ+ণ) * ব-ফলা : বিশ্বাস, নিঃস্ব, নিতম্ব * ম-ফলা : তন্ময়, পদ্ম, আত্মা * য-ফলা : সহ্য, অত্যন্ত, বিদ্যা * র-ফলা : গ্রহ, ব্রত, স্রষ্ট * রেফ : বর্ণ, স্বর্ণ, তর্ক, খর্ব * ল-ফলা : ক্লান্ত, অম্লান, উল্লাস বাংলা স্বরবর্ণের সঙ্গেও ফলা যুক্ত হয়। যেমন : এ্যাপোলো, এ্যাটম, অ্যাটর্নি, অ্যালার্ম ধ্বনি ইত্যাদি। বাংলা যুক্তব্যঞ্জনের সঙ্গেও কার এবং ফলা যুক্ত হয়ে শব্দ গঠিত হয়। যেমন : সন্ন্যাস, সূক্ষ্ম, বুক্নিণী, সন্ধ্যা ইত্যাদি। ===ব্যুৎপত্তি=== সংস্কৃত [[ফলক]] থেকে। ===বিশেষ্য=== # [[পলক]] # তীক্ষ্ণ প্রান্ত # ব্যঞ্জনবর্ণের সঙ্গে যোজ্য ব্যঞ্জনবর্ণের চিহ্ন (র-ফলা, য-ফলা) [[বিষয়শ্রেণী:বাংলা বিশেষ্য]] m4y4cu7feihdae4vtzofvrjeho3whto ব্যবহারকারী আলাপ:Aishik Rehman 3 22105 131487 129174 2022-07-29T06:37:05Z Aishik Rehman 5592 সাধারণ বিজ্ঞপ্তি: পরীক্ষামূলক সম্পাদনা। wikitext text/x-wiki {{mfd|help=off}} == বাংলা উইকিঅভিধানে স্বাগতম == {{atop | status = | result = }} {| 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;" |- | সুপ্রিয় হীরক রাজা! <br /> উইকিঅভিধানে, বাংলা ভাষায় এই মুক্ত অভিধান গড়ার এই প্রকল্পে [[বিশেষ:অবদান/এম এ রেহমান তুষার শুভ্র|আপনার প্রচেষ্টাকে]]&nbsp;স্বাগত জানাচ্ছি। আশা করছি এই প্রচেষ্টাকে সফল করতে আপনার সাহায্য অব্যাহত থাকবে, এবং এই সম্প্রদায়ে আপনার অবস্থান আনন্দপূর্ণ হবে। যেকোনো প্রকার প্রশ্নে নিঃসঙ্কোচে [[ব্যবহারকারী আলাপ:অভ্যর্থনা কমিটি বট|আমার আলাপ পাতায়]]&nbsp;বার্তা রাখার অনুরোধ করছি। উইকিঅভিধানে লেখার ক্ষেত্রে কিছু বিষয় মনে রাখা উত্তম: * [[উইকিঅভিধান:নীতিমালা ও নির্দেশাবলী|নীতিমালা ও নির্দেশাবলী]] &mdash; উইকিঅভিধানের মূল নীতিমালাগুলোতে একবার চোখ বুলিয়ে নিন, ও মেনে চলার চেষ্টা করুন। * [[উইকিঅভিধান:ভুক্তির কাঠামো ব্যাখ্যা|ভুক্তির কাঠামো ব্যাখ্যা]] &mdash; অর্থাৎ একটি ভুক্তিতে যে বিষয়গুলো যোগ করার মাধ্যমে আপনি ভুক্তিটির উন্নয়ন ঘটাতে পারেন। * [[উইকিঅভিধান:কপিরাইট|কপিরাইট নীতিমালা]] &mdash; উইকিঅভিধান আইনের প্রতি শ্রদ্ধাশীল। তাই কপিরাইটের মূল বিষয়গুলো অনুগ্রহপূর্বক দেখে নিন। * [[উইকিঅভিধান:নতুন শব্দ যোগ|নতুন শব্দ যোগ]] &mdash; বাংলা ও ইংরেজীতে নতুন শব্দ যোগ করতে অনুগ্রহপূর্বক [[উইকিঅভিধান:নতুন শব্দ যোগ]] পাতার প্রণালীটি অনুসরণ করুন। নিজের সম্পর্কে তথ্য আপনি আপনার [[ব্যবহারকারী:এম এ রেহমান তুষার শুভ্র|ব্যবহারকারী পাতায়]] রাখতে পারেন। এর মাধ্যমে অন্যরা আপনার সম্পর্কে জানতে পারবে। সাহায্য চাইতে এবং মতামত রাখতে অনুগ্রহপূর্বক সম্পর্কিত পাতার আলাপ পাতা ব্যবহার করুন। <br /><br /> অনুগ্রহপূর্বক আলাপের পাতায় বার্তা রাখার পর সম্পাদনা সরঞ্জামদণ্ডের [[চিত্র:OOjs UI icon signature-ltr.svg|22px|link=|alt=স্বাক্ষর আইকন]] চিহ্নে ক্লিক করার মাধ্যমে অথবা চারটি টিল্ডা (<code><nowiki>~~~~</nowiki></code>) চিহ্ন দিয়ে নাম স্বাক্ষর করুন। এটি স্বয়ংক্রিয় ভাবে আপনার নাম এবং তারিখ যোগ করবে। <br /> আশা করি আপনি বাংলা উইকিঅভিধান সম্প্রদায়ের একজন হয়ে সম্পাদনা করে আনন্দ পাবেন! আবারও স্বাগতম এবং শুভেচ্ছা! [[উইকিঅভিধান:অভ্যর্থনা কমিটি|উইকিঅভিধান অভ্যর্থনা কমিটি]], [[ব্যবহারকারী:অভ্যর্থনা কমিটি বট|অভ্যর্থনা কমিটি বট]] ([[ব্যবহারকারী আলাপ:অভ্যর্থনা কমিটি বট|আলাপ]]) ২০:২৮, ৯ জুলাই ২০১৯ (ইউটিসি) |} {{abot}} == How we will see unregistered users == {{atop | status = | result = }} <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin=content/> Hi! You get this message because you are an admin on a Wikimedia wiki. When someone edits a Wikimedia wiki without being logged in today, we show their IP address. As you may already know, we will not be able to do this in the future. This is a decision by the Wikimedia Foundation Legal department, because norms and regulations for privacy online have changed. Instead of the IP we will show a masked identity. You as an admin '''will still be able to access the IP'''. There will also be a new user right for those who need to see the full IPs of unregistered users to fight vandalism, harassment and spam without being admins. Patrollers will also see part of the IP even without this user right. We are also working on [[m:IP Editing: Privacy Enhancement and Abuse Mitigation/Improving tools|better tools]] to help. If you have not seen it before, you can [[m:IP Editing: Privacy Enhancement and Abuse Mitigation|read more on Meta]]. If you want to make sure you don’t miss technical changes on the Wikimedia wikis, you can [[m:Global message delivery/Targets/Tech ambassadors|subscribe]] to [[m:Tech/News|the weekly technical newsletter]]. We have [[m:IP Editing: Privacy Enhancement and Abuse Mitigation#IP Masking Implementation Approaches (FAQ)|two suggested ways]] this identity could work. '''We would appreciate your feedback''' on which way you think would work best for you and your wiki, now and in the future. You can [[m:Talk:IP Editing: Privacy Enhancement and Abuse Mitigation|let us know on the talk page]]. You can write in your language. The suggestions were posted in October and we will decide after 17 January. Thank you. /[[m:User:Johan (WMF)|Johan (WMF)]]<section end=content/> </div> ১৮:১০, ৪ জানুয়ারি ২০২২ (ইউটিসি) <!-- https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Target_lists/Admins2022(1)&oldid=22532492-এর তালিকা ব্যবহার করে বার্তাটি ব্যবহারকারী:Johan (WMF)@metawiki পাঠিয়েছেন --> {{abot}} == উইকিসরাস প্রকল্প কীভাবে কাজ করে? == আমি এই প্রকল্পে বহু আগে কাজ করেছিলাম। ভুলেই গিয়েছি আসলে। তখন বোধহয় সরাসের কাজ শুরুও হয়নি। এখন দেখলাম প্রকল্পটিতে কেবল একটা ভুক্তিই আছে। আপনি কি বলতে পারেন, প্রকল্পটি কীভাবে কাজ করে? --~ [[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব]] <sup>[[বিশেষ:অবদান/খাত্তাব হাসান|অ]], [[ব্যবহারকারী আলাপ:খাত্তাব হাসান|আ]], [[বিশেষ:ইমেইল/খাত্তাব হাসান|ই]]...</sup> ০৮:১৩, ১২ ফেব্রুয়ারি ২০২২ (ইউটিসি) :@[[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব হাসান]] এটি আসলে কেবল সমার্থক শব্দের তালিকা। এ পর্যন্ত একটি পাতাই তৈরি হয়েছে। প্রকল্পটি আসলে ভঙুর অবস্থায় আছে এবং এটির ভবিষ্যৎ খুব একটা আশাজাগানিয়া নয়। শীঘ্রই এটার একটা এসপার-ওসপার করা হবে।-- [[ব্যবহারকারী:Aishik Rehman|Aishik Rehman]] ([[ব্যবহারকারী আলাপ:Aishik Rehman#top|আলাপ]]) ১২:১৭, ১৩ ফেব্রুয়ারি ২০২২ (ইউটিসি) ::পরীক্ষামূলক [[ব্যবহারকারী:Aishik Rehman|Aishik Rehman]] ([[ব্যবহারকারী আলাপ:Aishik Rehman#top|আলাপ]]) ১১:৩২, ৩ জুন ২০২২ (ইউটিসি) == ইন্টারফেস প্রশাসকত্বের জন্য মনোনয়ন == প্রিয় ঐশিক ভাই! আশা করি ভাল আছেন। যেহেতু প্রকল্পটিতে একজন ইন্টারফেস প্রশাসক প্রয়োজন, তাই আমি [[উইকিঅভিধান:ইন্টারফেস প্রশাসক হওয়ার আবেদন/Aishik Rehman|এখানে]] আপনার নাম মনোনয়ন করেছি। আশা করছি মন্তব্য করবেন। ~ [[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব]] <sup>[[বিশেষ:অবদান/খাত্তাব হাসান|অ]], [[ব্যবহারকারী আলাপ:খাত্তাব হাসান|আ]], [[বিশেষ:ইমেইল/খাত্তাব হাসান|ই]]...</sup> ০৯:২৬, ১৩ ফেব্রুয়ারি ২০২২ (ইউটিসি) :@[[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব হাসান]] শুভ সায়াহ্ন, আমার মনে হচ্ছে এই মুহুর্তে এই মনোনয়ন গ্রহণ করাটা হ-য-ব-র-ল হয়ে যাবে আমার জন্য। এ সপ্তাহেই হয়ত বইয়ের ইন্টারফেস প্রশাসক অধিকার রিনিউ করতে হবে। তাছাড়া পিডিয়াতে অলরেডি একটা বিষয় আলোচনায় রয়েছে। সেদিক থেকে এখন আরও একটি মনোনয়ন নিলে মনে হচ্ছে অনেকগুলো বিষয় একসঙ্গে হয়ে যায়। অভিধানে ইন্টারফেস প্রশাসক দরকার কথাটি সত্য, কিন্তু সম্ভবত এখনও অনুকূল পরিবেশ তৈরি হয় নি। সার্বিক পরিস্থিতি না বুঝেই সাড়া দেওয়াটা আমার পক্ষে এখনই সম্ভব হচ্ছে না। -- [[ব্যবহারকারী:Aishik Rehman|Aishik Rehman]] ([[ব্যবহারকারী আলাপ:Aishik Rehman#top|আলাপ]]) ১১:৩২, ১৩ ফেব্রুয়ারি ২০২২ (ইউটিসি) ::@[[ব্যবহারকারী:Aishik Rehman|Aishik Rehman]]; আপনার কোনো সমস্যা বা বাঁধা থাকলে অবশ্যই আলোচনা করুন। কিন্তু অনুগ্রহ করে কোনো নীতিমালা উন্নয়নের ক্ষেত্রে বাঁধা থাকলে [[w:উইকিপিডিয়া:সকল বিধি উপেক্ষা করুন|সেগুলোকে উপেক্ষা করুন]]। -- ~ [[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব]] <sup>[[বিশেষ:অবদান/খাত্তাব হাসান|অ]], [[ব্যবহারকারী আলাপ:খাত্তাব হাসান|আ]], [[বিশেষ:ইমেইল/খাত্তাব হাসান|ই]]...</sup> ১১:৫৩, ১৩ ফেব্রুয়ারি ২০২২ (ইউটিসি) == জুলাই ২০২২ == {{subst:uw-test1}} [[ব্যবহারকারী:Aishik Rehman|Aishik Rehman]] ([[ব্যবহারকারী আলাপ:Aishik Rehman#top|আলাপ]]) ০৬:৩৭, ২৯ জুলাই ২০২২ (ইউটিসি) 0j7onzqq9txx7qim9ytgtm3i9610uoq 131488 131487 2022-07-29T06:37:57Z Aishik Rehman 5592 wikitext text/x-wiki {{mfd|help=off}} == বাংলা উইকিঅভিধানে স্বাগতম == {{atop | status = | result = }} {| 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;" |- | সুপ্রিয় হীরক রাজা! <br /> উইকিঅভিধানে, বাংলা ভাষায় এই মুক্ত অভিধান গড়ার এই প্রকল্পে [[বিশেষ:অবদান/এম এ রেহমান তুষার শুভ্র|আপনার প্রচেষ্টাকে]]&nbsp;স্বাগত জানাচ্ছি। আশা করছি এই প্রচেষ্টাকে সফল করতে আপনার সাহায্য অব্যাহত থাকবে, এবং এই সম্প্রদায়ে আপনার অবস্থান আনন্দপূর্ণ হবে। যেকোনো প্রকার প্রশ্নে নিঃসঙ্কোচে [[ব্যবহারকারী আলাপ:অভ্যর্থনা কমিটি বট|আমার আলাপ পাতায়]]&nbsp;বার্তা রাখার অনুরোধ করছি। উইকিঅভিধানে লেখার ক্ষেত্রে কিছু বিষয় মনে রাখা উত্তম: * [[উইকিঅভিধান:নীতিমালা ও নির্দেশাবলী|নীতিমালা ও নির্দেশাবলী]] &mdash; উইকিঅভিধানের মূল নীতিমালাগুলোতে একবার চোখ বুলিয়ে নিন, ও মেনে চলার চেষ্টা করুন। * [[উইকিঅভিধান:ভুক্তির কাঠামো ব্যাখ্যা|ভুক্তির কাঠামো ব্যাখ্যা]] &mdash; অর্থাৎ একটি ভুক্তিতে যে বিষয়গুলো যোগ করার মাধ্যমে আপনি ভুক্তিটির উন্নয়ন ঘটাতে পারেন। * [[উইকিঅভিধান:কপিরাইট|কপিরাইট নীতিমালা]] &mdash; উইকিঅভিধান আইনের প্রতি শ্রদ্ধাশীল। তাই কপিরাইটের মূল বিষয়গুলো অনুগ্রহপূর্বক দেখে নিন। * [[উইকিঅভিধান:নতুন শব্দ যোগ|নতুন শব্দ যোগ]] &mdash; বাংলা ও ইংরেজীতে নতুন শব্দ যোগ করতে অনুগ্রহপূর্বক [[উইকিঅভিধান:নতুন শব্দ যোগ]] পাতার প্রণালীটি অনুসরণ করুন। নিজের সম্পর্কে তথ্য আপনি আপনার [[ব্যবহারকারী:এম এ রেহমান তুষার শুভ্র|ব্যবহারকারী পাতায়]] রাখতে পারেন। এর মাধ্যমে অন্যরা আপনার সম্পর্কে জানতে পারবে। সাহায্য চাইতে এবং মতামত রাখতে অনুগ্রহপূর্বক সম্পর্কিত পাতার আলাপ পাতা ব্যবহার করুন। <br /><br /> অনুগ্রহপূর্বক আলাপের পাতায় বার্তা রাখার পর সম্পাদনা সরঞ্জামদণ্ডের [[চিত্র:OOjs UI icon signature-ltr.svg|22px|link=|alt=স্বাক্ষর আইকন]] চিহ্নে ক্লিক করার মাধ্যমে অথবা চারটি টিল্ডা (<code><nowiki>~~~~</nowiki></code>) চিহ্ন দিয়ে নাম স্বাক্ষর করুন। এটি স্বয়ংক্রিয় ভাবে আপনার নাম এবং তারিখ যোগ করবে। <br /> আশা করি আপনি বাংলা উইকিঅভিধান সম্প্রদায়ের একজন হয়ে সম্পাদনা করে আনন্দ পাবেন! আবারও স্বাগতম এবং শুভেচ্ছা! [[উইকিঅভিধান:অভ্যর্থনা কমিটি|উইকিঅভিধান অভ্যর্থনা কমিটি]], [[ব্যবহারকারী:অভ্যর্থনা কমিটি বট|অভ্যর্থনা কমিটি বট]] ([[ব্যবহারকারী আলাপ:অভ্যর্থনা কমিটি বট|আলাপ]]) ২০:২৮, ৯ জুলাই ২০১৯ (ইউটিসি) |} {{abot}} == How we will see unregistered users == {{atop | status = | result = }} <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin=content/> Hi! You get this message because you are an admin on a Wikimedia wiki. When someone edits a Wikimedia wiki without being logged in today, we show their IP address. As you may already know, we will not be able to do this in the future. This is a decision by the Wikimedia Foundation Legal department, because norms and regulations for privacy online have changed. Instead of the IP we will show a masked identity. You as an admin '''will still be able to access the IP'''. There will also be a new user right for those who need to see the full IPs of unregistered users to fight vandalism, harassment and spam without being admins. Patrollers will also see part of the IP even without this user right. We are also working on [[m:IP Editing: Privacy Enhancement and Abuse Mitigation/Improving tools|better tools]] to help. If you have not seen it before, you can [[m:IP Editing: Privacy Enhancement and Abuse Mitigation|read more on Meta]]. If you want to make sure you don’t miss technical changes on the Wikimedia wikis, you can [[m:Global message delivery/Targets/Tech ambassadors|subscribe]] to [[m:Tech/News|the weekly technical newsletter]]. We have [[m:IP Editing: Privacy Enhancement and Abuse Mitigation#IP Masking Implementation Approaches (FAQ)|two suggested ways]] this identity could work. '''We would appreciate your feedback''' on which way you think would work best for you and your wiki, now and in the future. You can [[m:Talk:IP Editing: Privacy Enhancement and Abuse Mitigation|let us know on the talk page]]. You can write in your language. The suggestions were posted in October and we will decide after 17 January. Thank you. /[[m:User:Johan (WMF)|Johan (WMF)]]<section end=content/> </div> ১৮:১০, ৪ জানুয়ারি ২০২২ (ইউটিসি) <!-- https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Target_lists/Admins2022(1)&oldid=22532492-এর তালিকা ব্যবহার করে বার্তাটি ব্যবহারকারী:Johan (WMF)@metawiki পাঠিয়েছেন --> {{abot}} == উইকিসরাস প্রকল্প কীভাবে কাজ করে? == আমি এই প্রকল্পে বহু আগে কাজ করেছিলাম। ভুলেই গিয়েছি আসলে। তখন বোধহয় সরাসের কাজ শুরুও হয়নি। এখন দেখলাম প্রকল্পটিতে কেবল একটা ভুক্তিই আছে। আপনি কি বলতে পারেন, প্রকল্পটি কীভাবে কাজ করে? --~ [[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব]] <sup>[[বিশেষ:অবদান/খাত্তাব হাসান|অ]], [[ব্যবহারকারী আলাপ:খাত্তাব হাসান|আ]], [[বিশেষ:ইমেইল/খাত্তাব হাসান|ই]]...</sup> ০৮:১৩, ১২ ফেব্রুয়ারি ২০২২ (ইউটিসি) :@[[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব হাসান]] এটি আসলে কেবল সমার্থক শব্দের তালিকা। এ পর্যন্ত একটি পাতাই তৈরি হয়েছে। প্রকল্পটি আসলে ভঙুর অবস্থায় আছে এবং এটির ভবিষ্যৎ খুব একটা আশাজাগানিয়া নয়। শীঘ্রই এটার একটা এসপার-ওসপার করা হবে।-- [[ব্যবহারকারী:Aishik Rehman|Aishik Rehman]] ([[ব্যবহারকারী আলাপ:Aishik Rehman#top|আলাপ]]) ১২:১৭, ১৩ ফেব্রুয়ারি ২০২২ (ইউটিসি) ::পরীক্ষামূলক [[ব্যবহারকারী:Aishik Rehman|Aishik Rehman]] ([[ব্যবহারকারী আলাপ:Aishik Rehman#top|আলাপ]]) ১১:৩২, ৩ জুন ২০২২ (ইউটিসি) == ইন্টারফেস প্রশাসকত্বের জন্য মনোনয়ন == প্রিয় ঐশিক ভাই! আশা করি ভাল আছেন। যেহেতু প্রকল্পটিতে একজন ইন্টারফেস প্রশাসক প্রয়োজন, তাই আমি [[উইকিঅভিধান:ইন্টারফেস প্রশাসক হওয়ার আবেদন/Aishik Rehman|এখানে]] আপনার নাম মনোনয়ন করেছি। আশা করছি মন্তব্য করবেন। ~ [[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব]] <sup>[[বিশেষ:অবদান/খাত্তাব হাসান|অ]], [[ব্যবহারকারী আলাপ:খাত্তাব হাসান|আ]], [[বিশেষ:ইমেইল/খাত্তাব হাসান|ই]]...</sup> ০৯:২৬, ১৩ ফেব্রুয়ারি ২০২২ (ইউটিসি) :@[[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব হাসান]] শুভ সায়াহ্ন, আমার মনে হচ্ছে এই মুহুর্তে এই মনোনয়ন গ্রহণ করাটা হ-য-ব-র-ল হয়ে যাবে আমার জন্য। এ সপ্তাহেই হয়ত বইয়ের ইন্টারফেস প্রশাসক অধিকার রিনিউ করতে হবে। তাছাড়া পিডিয়াতে অলরেডি একটা বিষয় আলোচনায় রয়েছে। সেদিক থেকে এখন আরও একটি মনোনয়ন নিলে মনে হচ্ছে অনেকগুলো বিষয় একসঙ্গে হয়ে যায়। অভিধানে ইন্টারফেস প্রশাসক দরকার কথাটি সত্য, কিন্তু সম্ভবত এখনও অনুকূল পরিবেশ তৈরি হয় নি। সার্বিক পরিস্থিতি না বুঝেই সাড়া দেওয়াটা আমার পক্ষে এখনই সম্ভব হচ্ছে না। -- [[ব্যবহারকারী:Aishik Rehman|Aishik Rehman]] ([[ব্যবহারকারী আলাপ:Aishik Rehman#top|আলাপ]]) ১১:৩২, ১৩ ফেব্রুয়ারি ২০২২ (ইউটিসি) ::@[[ব্যবহারকারী:Aishik Rehman|Aishik Rehman]]; আপনার কোনো সমস্যা বা বাঁধা থাকলে অবশ্যই আলোচনা করুন। কিন্তু অনুগ্রহ করে কোনো নীতিমালা উন্নয়নের ক্ষেত্রে বাঁধা থাকলে [[w:উইকিপিডিয়া:সকল বিধি উপেক্ষা করুন|সেগুলোকে উপেক্ষা করুন]]। -- ~ [[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব]] <sup>[[বিশেষ:অবদান/খাত্তাব হাসান|অ]], [[ব্যবহারকারী আলাপ:খাত্তাব হাসান|আ]], [[বিশেষ:ইমেইল/খাত্তাব হাসান|ই]]...</sup> ১১:৫৩, ১৩ ফেব্রুয়ারি ২০২২ (ইউটিসি) dbhijxtoysm9eijt0a6uvg5atc1tk9r ব্যবহারকারী আলাপ:Pratyutpannamati 3 24577 131482 69182 2022-07-29T04:07:35Z MdsShakil 6871 MdsShakil [[ব্যবহারকারী আলাপ:তমালকৃষ্ণ মণ্ডল]] কে [[ব্যবহারকারী আলাপ:Pratyutpannamati]] শিরোনামে স্থানান্তর করেছেন: ব্যবহারকারীকে "[[Special:CentralAuth/তমালকৃষ্ণ মণ্ডল|তমালকৃষ্ণ মণ্ডল]]" থেকে "[[Special:CentralAuth/Pratyutpannamati|Pratyutpannamati]]"-এ নামান্তরের সময় স্বয়ংক্রিয়ভাবে পাতা স্থানান্তরিত 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;" |- | সুপ্রিয় REVENGER IHM AA S! <br /> উইকিঅভিধানে, বাংলা ভাষায় এই মুক্ত অভিধান গড়ার এই প্রকল্পে [[বিশেষ:অবদান/REVENGER IHM AA S|আপনার প্রচেষ্টাকে]]&nbsp;স্বাগত জানাচ্ছি। আশা করছি এই প্রচেষ্টাকে সফল করতে আপনার সাহায্য অব্যাহত থাকবে, এবং এই সম্প্রদায়ে আপনার অবস্থান আনন্দপূর্ণ হবে। যেকোনো প্রকার প্রশ্নে নিঃসঙ্কোচে [[ব্যবহারকারী আলাপ:অভ্যর্থনা কমিটি বট|আমার আলাপ পাতায়]]&nbsp;বার্তা রাখার অনুরোধ করছি। উইকিঅভিধানে লেখার ক্ষেত্রে কিছু বিষয় মনে রাখা উত্তম: * [[উইকিঅভিধান:নীতিমালা ও নির্দেশাবলী|নীতিমালা ও নির্দেশাবলী]] &mdash; উইকিঅভিধানের মূল নীতিমালাগুলোতে একবার চোখ বুলিয়ে নিন, ও মেনে চলার চেষ্টা করুন। * [[উইকিঅভিধান:ভুক্তির কাঠামো ব্যাখ্যা|ভুক্তির কাঠামো ব্যাখ্যা]] &mdash; অর্থাৎ একটি ভুক্তিতে যে বিষয়গুলো যোগ করার মাধ্যমে আপনি ভুক্তিটির উন্নয়ন ঘটাতে পারেন। * [[উইকিঅভিধান:কপিরাইট|কপিরাইট নীতিমালা]] &mdash; উইকিঅভিধান আইনের প্রতি শ্রদ্ধাশীল। তাই কপিরাইটের মূল বিষয়গুলো অনুগ্রহপূর্বক দেখে নিন। * [[উইকিঅভিধান:নতুন শব্দ যোগ|নতুন শব্দ যোগ]] &mdash; বাংলা ও ইংরেজীতে নতুন শব্দ যোগ করতে অনুগ্রহপূর্বক [[উইকিঅভিধান:নতুন শব্দ যোগ]] পাতার প্রণালীটি অনুসরণ করুন। নিজের সম্পর্কে তথ্য আপনি আপনার [[ব্যবহারকারী:REVENGER IHM AA S|ব্যবহারকারী পাতায়]] রাখতে পারেন। এর মাধ্যমে অন্যরা আপনার সম্পর্কে জানতে পারবে। সাহায্য চাইতে এবং মতামত রাখতে অনুগ্রহপূর্বক সম্পর্কিত পাতার আলাপ পাতা ব্যবহার করুন। <br /><br /> অনুগ্রহপূর্বক আলাপের পাতায় বার্তা রাখার পর সম্পাদনা সরঞ্জামদণ্ডের [[চিত্র:OOjs UI icon signature-ltr.svg|22px|link=|alt=স্বাক্ষর আইকন]] চিহ্নে ক্লিক করার মাধ্যমে অথবা চারটি টিল্ডা (<code><nowiki>~~~~</nowiki></code>) চিহ্ন দিয়ে নাম স্বাক্ষর করুন। এটি স্বয়ংক্রিয় ভাবে আপনার নাম এবং তারিখ যোগ করবে। <br /> আশা করি আপনি বাংলা উইকিঅভিধান সম্প্রদায়ের একজন হয়ে সম্পাদনা করে আনন্দ পাবেন! আবারও স্বাগতম এবং শুভেচ্ছা! [[উইকিঅভিধান:অভ্যর্থনা কমিটি|উইকিঅভিধান অভ্যর্থনা কমিটি]], [[ব্যবহারকারী:অভ্যর্থনা কমিটি বট|অভ্যর্থনা কমিটি বট]] ([[ব্যবহারকারী আলাপ:অভ্যর্থনা কমিটি বট|আলাপ]]) ০২:৫৩, ৬ অক্টোবর ২০২০ (ইউটিসি) |} q3lcskm78zyjjn8c2au9wpzl3pnw3b1 উইকিঅভিধান:AutoWikiBrowser/CheckPageJSON 4 48988 131480 128966 2022-07-28T12:39:57Z Aishik Rehman 5592 json application/json { "enabledusers": [ "Aishik Rehman", "MdsShakil" ], "enabledbots": [ "আফতাব বট" ] } gtl5e0f5oguhfx5i0wnl5hvf37rbik8 মিডিয়াউইকি:Gadget-twinklewarn.js 8 51408 131484 127033 2022-07-29T06:33:15Z Aishik Rehman 5592 javascript text/javascript // <nowiki> /* অনুবাদ কৃতজ্ঞতা: **মোঃ মারুফ হাসান **Yahya **MdsShakil */pageobj.setNewSectionTitle(now.monthHeader( /* **************************************** *** twinklewarn.js: সতর্কবার্তা মডিউল **************************************** * Mode of invocation: Tab ("সতর্কবার্তা") * Active on: Any page with relevant user name (userspace, contribs, * etc.) (not IP ranges), as well as the rollback success page *caution কে ‘দ্বিতীয় স্তরের সতর্কতা’ এবং warning কে ‘তৃতীয় স্তরের সতর্কতা’ অনুবাদ করা হয়েছে। --Yahya *[[টেমপ্লেট:বাংলায় সম্পাদনা সারাংশ দিন (টুইংকল)]] একক সমস্যার বার্তা অংশে যুক্ত করা হলো --MdsShakil */ (function ($) { Twinkle.warn = function twinklewarn() { // Users and IPs but not IP ranges if ( mw.config.exists("wgRelevantUserName") && !Morebits.ip.isRange(mw.config.get("wgRelevantUserName")) ) { Twinkle.addPortletLink( Twinkle.warn.callback, "সতর্ক করুন", "tw-warn", "সতর্ক করুন/ব্যবহারকারীকে অবহিত করুন" ); if ( Twinkle.getPref("autoMenuAfterRollback") && mw.config.get("wgNamespaceNumber") === 3 && mw.util.getParamValue("vanarticle") && !mw.util.getParamValue("friendlywelcome") && !mw.util.getParamValue("noautowarn") ) { Twinkle.warn.callback(); } } // Modify URL of talk page on rollback success pages, makes use of a // custom message box in [[MediaWiki:Rollback-success]] if (mw.config.get("wgAction") === "rollback") { var $vandalTalkLink = $("#mw-rollback-success") .find(".mw-usertoollinks a") .first(); if ($vandalTalkLink.length) { $vandalTalkLink.css("font-weight", "bold"); $vandalTalkLink.wrapInner( $("<span/>").attr( "title", "উপযুক্ত হলে, আপনি এই পৃষ্ঠায় ব্যবহারকারীদের তাদের সম্পাদনা সম্পর্কে সতর্ক করতে টুইঙ্কল ব্যবহার করতে পারেন।" ) ); // Can't provide vanarticlerevid as only wgCurRevisionId is provided var extraParam = "vanarticle=" + mw.util.rawurlencode(Morebits.pageNameNorm); var href = $vandalTalkLink.attr("href"); if (href.indexOf("?") === -1) { $vandalTalkLink.attr("href", href + "?" + extraParam); } else { $vandalTalkLink.attr("href", href + "&" + extraParam); } } } }; // Used to close window when switching to ARV in autolevel Twinkle.warn.dialog = null; Twinkle.warn.callback = function twinklewarnCallback() { if ( mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName") && !confirm( "আপনি নিজেকে সতর্ক করতে চলেছেন! আপনি কি নিশ্চিত আপনি এটাই করতে চান?" ) ) { return; } var dialog; Twinkle.warn.dialog = new Morebits.simpleWindow(600, 440); dialog = Twinkle.warn.dialog; dialog.setTitle("সতর্ক করুন/ব্যবহারকারীকে অবহিত করুন"); dialog.setScriptName("টুইংকল"); dialog.addFooterLink("একটি সতর্কতা স্তর নির্বাচন করা", "WP:UWUL#Levels"); dialog.addFooterLink("সতর্কতার পছন্দসমূহ", "WP:TW/PREF#warn"); dialog.addFooterLink("টুইংকল সাহায্য", "WP:TW/DOC#warn"); dialog.addFooterLink("প্রতিক্রিয়া জানান", "WT:TW"); var form = new Morebits.quickForm(Twinkle.warn.callback.evaluate); var main_select = form.append({ type: "field", label: "প্রদান করার জন্য সতর্কতার ধরন/বিজ্ঞপ্তি বেছে নিন", tooltip: "প্রথমে একটি প্রধান সতর্কতা গ্রুপ নির্বাচন করুন, তারপরে প্রদান করার জন্য একটি নির্দিষ্ট সতর্কতা বাছাই করুন।", }); var main_group = main_select.append({ type: "select", name: "main_group", tooltip: "আপনি আপনার টুইঙ্কল পছন্দগুলিতে ডিফল্ট নির্বাচনটি কাস্টমাইজ করতে পারেন", event: Twinkle.warn.callback.change_category, }); var defaultGroup = parseInt(Twinkle.getPref("defaultWarningGroup"), 10); main_group.append({ type: "option", label: "স্বয়ংক্রিয় স্তর নির্বাচন (১-৪)", value: "autolevel", selected: defaultGroup === 11, }); main_group.append({ type: "option", label: "১: সাধারণ বিজ্ঞপ্তি", value: "level1", selected: defaultGroup === 1, }); main_group.append({ type: "option", label: "২: দ্বিতীয় স্তরের সতর্কবার্তা", value: "level2", selected: defaultGroup === 2, }); main_group.append({ type: "option", label: "৩: তৃতীয় স্তরের সতর্কবার্তা", value: "level3", selected: defaultGroup === 3, }); main_group.append({ type: "option", label: "৪: সর্বশেষ সতর্কবার্তা", value: "level4", selected: defaultGroup === 4, }); main_group.append({ type: "option", label: "4im: একমাত্র সতর্কবার্তা", value: "level4im", selected: defaultGroup === 5, }); if (Twinkle.getPref("combinedSingletMenus")) { main_group.append({ type: "option", label: "একক সমস্যার বার্তা", value: "singlecombined", selected: defaultGroup === 6 || defaultGroup === 7, }); } else { main_group.append({ type: "option", label: "একক সমস্যার বার্তা", value: "singlenotice", selected: defaultGroup === 6, }); main_group.append({ type: "option", label: "একক সমস্যার সতর্কবার্তা", value: "singlewarn", selected: defaultGroup === 7, }); } if (Twinkle.getPref("customWarningList").length) { main_group.append({ type: "option", label: "স্বনির্ধারিত সতর্কবার্তা", value: "custom", selected: defaultGroup === 9, }); } main_group.append({ type: "option", label: "সকল সতর্কবার্তা টেমপ্লেট", value: "kitchensink", selected: defaultGroup === 10, }); main_select.append({ type: "select", name: "sub_group", event: Twinkle.warn.callback.change_subcategory, }); // Will be empty to begin with. form.append({ type: "input", name: "article", label: "সংযুক্ত পাতা", value: mw.util.getParamValue("vanarticle") || "", tooltip: "একটি পাতা বিজ্ঞপ্তির সাথে সংযুক্ত করা যেতে পারে, কারণ সম্ভবত আপনি উল্লিখিত পাতায় সম্পাদনা পুনর্বহাল করেছিলেন যে কারণে এই বিজ্ঞপ্তিটি পাঠাচ্ছেন। কোন পৃষ্ঠা সংযুক্ত না করতে এটি খালি রাখুন।", }); form.append({ type: "div", label: "", style: "color: red", id: "twinkle-warn-warning-messages", }); var more = form.append({ type: "field", name: "reasonGroup", label: "সতর্কীকরণ তথ্য", }); more.append({ type: "textarea", label: "ঐচ্ছিক বার্তা:", name: "reason", tooltip: "সম্ভবত একটি কারণ, অথবা আরো বিস্তারিত বিজ্ঞপ্তি সংযুক্ত করা আবশ্যক", }); var previewlink = document.createElement("a"); $(previewlink).click(function () { Twinkle.warn.callbacks.preview(result); // |result| is defined below }); previewlink.style.cursor = "pointer"; previewlink.textContent = "প্রাকদর্শন"; more.append({ type: "div", id: "warningpreview", label: [previewlink] }); more.append({ type: "div", id: "twinklewarn-previewbox", style: "display: none", }); more.append({ type: "submit", label: "জমা দিন" }); var result = form.render(); dialog.setContent(result); dialog.display(); result.main_group.root = result; result.previewer = new Morebits.wiki.preview( $(result).find("div#twinklewarn-previewbox").last()[0] ); // Potential notices for staleness and missed reverts var vanrevid = mw.util.getParamValue("vanarticlerevid"); if (vanrevid) { var message = ""; var query = {}; // If you tried reverting, check if *you* actually reverted if ( !mw.util.getParamValue("noautowarn") && mw.util.getParamValue("vanarticle") ) { // Via fluff link query = { action: "query", titles: mw.util.getParamValue("vanarticle"), prop: "revisions", rvstartid: vanrevid, rvlimit: 2, rvdir: "newer", rvprop: "user", format: "json", }; new Morebits.wiki.api( "আপনি পাতাটি সফলভাবে সম্পাদনা পুনর্বহাল করেছেন কিনা তা পরীক্ষা করা হচ্ছে", query, function (apiobj) { var rev = apiobj.getResponse().query.pages[0].revisions; var revertUser = rev && rev[1].user; if (revertUser && revertUser !== mw.config.get("wgUserName")) { message += " অন্য কেউ পাতাটিতে পুনর্বহাল করেছেন এবং ইতিমধ্যেই ব্যবহারকারীকে সতর্ক করেছে।"; $("#twinkle-warn-warning-messages").text("বিজ্ঞপ্তি:" + message); } } ).post(); } // Confirm edit wasn't too old for a warning var checkStale = function (vantimestamp) { var revDate = new Morebits.date(vantimestamp); if (vantimestamp && revDate.isValid()) { if (revDate.add(24, "hours").isBefore(new Date())) { message += " এই সম্পাদনাটি ২৪ ঘন্টারও বেশি আগে করা হয়েছিল তাই একটি সতর্কতা পুরনো হতে পারে।"; $("#twinkle-warn-warning-messages").text("বিজ্ঞপ্তি:" + message); } } }; var vantimestamp = mw.util.getParamValue("vantimestamp"); // Provided from a fluff module-based revert, no API lookup necessary if (vantimestamp) { checkStale(vantimestamp); } else { query = { action: "query", prop: "revisions", rvprop: "timestamp", revids: vanrevid, format: "json", }; new Morebits.wiki.api( "সংস্করণ টাইমস্ট্যাম্প আনা হচ্ছে", query, function (apiobj) { var rev = apiobj.getResponse().query.pages[0].revisions; vantimestamp = rev && rev[0].timestamp; checkStale(vantimestamp); } ).post(); } } // We must init the first choice (General Note); var evt = document.createEvent("Event"); evt.initEvent("change", true, true); result.main_group.dispatchEvent(evt); }; // This is all the messages that might be dispatched by the code // Each of the individual templates require the following information: // label (required): A short description displayed in the dialog // summary (required): The edit summary used. If an article name is entered, the summary is postfixed with "on [[article]]", and it is always postfixed with "." // suppressArticleInSummary (optional): Set to true to suppress showing the article name in the edit summary. Useful if the warning relates to attack pages, or some such. Twinkle.warn.messages = { levels: { "Common warnings": { "uw-vandalism": { level1: { label: "ধ্বংসপ্রবণতা", summary: "সাধারণ বিজ্ঞপ্তি: অগঠনমূলক সম্পাদনা", }, level2: { label: "ধ্বংসপ্রবণতা", summary: "দ্বিতীয় স্তরের সতর্কতা: অগঠনমূলক সম্পাদনা", }, level3: { label: "ধ্বংসপ্রবণতা", summary: "তৃতীয় স্তরের সতর্কতা: ধ্বংসপ্রবণতা", }, level4: { label: "ধ্বংসপ্রবণতা", summary: "সর্বশেষ সতর্কতা: ধ্বংসপ্রবণতা", }, level4im: { label: "ধ্বংসপ্রবণতা", summary: "একমাত্র সতর্কতা: ধ্বংসপ্রবণতা", }, }, "uw-disruptive": { level1: { label: "অগঠনমূলক সম্পাদনা", summary: "সাধারণ বিজ্ঞপ্তি: অগঠমূলক সম্পাদনা", }, level2: { label: "অগঠনমূলক সম্পাদনা", summary: "দ্বিতীয় স্তরের সতর্কতা: অগঠমূলক সম্পাদনা", }, level3: { label: "অগঠনমূলক সম্পাদনা", summary: "তৃতীয় স্তরের সতর্কতা: অগঠনমূলক সম্পাদনা", }, }, "uw-test": { level1: { label: "পরীক্ষামূলক সম্পাদনা", summary: "সাধারণ বিজ্ঞপ্তি: পরীক্ষামূলক সম্পাদনা", }, level2: { label: "পরীক্ষামূলক সম্পাদনা", summary: "দ্বিতীয় স্তরের সতর্কতা: পরীক্ষামূলক সম্পাদনা", }, level3: { label: "পরীক্ষামূলক সম্পাদনা", summary: "তৃতীয় স্তরের সতর্কতা: পরীক্ষামূলক সম্পাদনা", }, }, "uw-delete": { level1: { label: "পাতার বিষয়বস্তু অপসারণ বা খালি করা", summary: "সাধারণ বিজ্ঞপ্তি: পাতার বিষয়বস্তু অপসারণ বা খালি করা", }, level2: { label: "পাতার বিষয়বস্তু অপসারণ বা খালি করা", summary: "দ্বিতীয় স্তরের সতর্কতা: পাতার বিষয়বস্তু অপসারণ বা খালি করা", }, level3: { label: "পাতার বিষয়বস্তু অপসারণ বা খালি করা", summary: "তৃতীয় স্তরের সতর্কতা: পাতার বিষয়বস্তু অপসারণ বা খালি করা", }, level4: { label: "পাতার বিষয়বস্তু অপসারণ বা খালি করা", summary: "সর্বশেষ সতর্কতা: পাতার বিষয়বস্তু অপসারণ বা খালি করা", }, level4im: { label: "পাতার বিষয়বস্তু অপসারণ বা খালি করা", summary: "একমাত্র সতর্কতা: পাতার বিষয়বস্তু অপসারণ বা খালি করা", }, }, "uw-generic": { level4: { label: "জেনেরিক সতর্কতা (৪র্থ স্তরের অনুপস্থিত টেমপ্লেট সিরিজের জন্য)", summary: "সর্বশেষ সতর্কতা বিজ্ঞপ্তি", }, }, }, "Behavior in articles": { "uw-biog": { level1: { label: "জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", summary: "সাধারণ বিজ্ঞপ্তি: জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", }, level2: { label: "জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", summary: "দ্বিতীয় স্তরের সতর্কতা: জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", }, level3: { label: "জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত/মানহানীকর তথ্য যোগ করা", summary: "তৃতীয় স্তরের সতর্কতা: জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", }, level4: { label: "জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্র বিহীন মানহানিকর তথ্য যোগ করা", summary: "সর্বশেষ সতর্কতা: জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", }, level4im: { label: "জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্র বিহীন মানহানিকর তথ্য যোগ করা", summary: "একমাত্র সতর্কতা: জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", }, }, "uw-defamatory": { level1: { label: "মানহানিকর বিষয়বস্তুর সংযোজন", summary: "সাধারণ বিজ্ঞপ্তি: মানহানিকর বিষয়বস্তুর সংযোজন", }, level2: { label: "মানহানিকর বিষয়বস্তুর সংযোজন", summary: "দ্বিতীয় স্তরের সতর্কতা: মানহানিকর বিষয়বস্তুর সংযোজন", }, level3: { label: "মানহানিকর বিষয়বস্তুর সংযোজন", summary: "তৃতীয় স্তরের সতর্কতা: মানহানিকর বিষয়বস্তুর সংযোজন", }, level4: { label: "মানহানিকর বিষয়বস্তুর সংযোজন", summary: "সর্বশেষ সতর্কতা: মানহানিকর বিষয়বস্তুর সংযোজন", }, level4im: { label: "মানহানিকর বিষয়বস্তুর সংযোজন", summary: "একমাত্র সতর্কতা: মানহানিকর বিষয়বস্তুর সংযোজন", }, }, "uw-error": { level1: { label: "ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", summary: "সাধারণ বিজ্ঞপ্তি: ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ", }, level2: { label: "ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", summary: "দ্বিতীয় স্তরের সতর্কতা: ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ", }, level3: { label: "ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", summary: "তৃতীয় স্তরের সতর্কতা: ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", }, level4: { label: "ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", summary: "সর্বশেষ সতর্কতা: ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", }, }, "uw-genre": { level1: { label: "ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", summary: "সাধারণ বিজ্ঞপ্তি: ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", }, level2: { label: "ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", summary: "দ্বিতীয় স্তরের সতর্কতা: ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", }, level3: { label: "ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", summary: "তৃতীয় স্তরের সতর্কতা: ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", }, level4: { label: "ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", summary: "সর্বশেষ সতর্কতা: ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", }, }, "uw-image": { level1: { label: "নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", summary: "সাধারণ বিজ্ঞপ্তি: নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", }, level2: { label: "নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", summary: "দ্বিতীয় স্তরের সতর্কতা: নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", }, level3: { label: "নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", summary: "তৃতীয় স্তরের সতর্কতা: নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", }, level4: { label: "নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", summary: "সর্বশেষ সতর্কতা: নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", }, level4im: { label: "চিত্র-সংক্রান্ত ধ্বংসপ্রবণতা", summary: "একমাত্র সতর্কতা: চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", }, }, "uw-joke": { level1: { label: "নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", summary: "সাধারণ বিজ্ঞপ্তি: নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", }, level2: { label: "নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", summary: "দ্বিতীয় স্তরের সতর্কতা: নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", }, level3: { label: "নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", summary: "তৃতীয় স্তরের সতর্কতা: নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", }, level4: { label: "নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", summary: "সর্বশেষ সতর্কতা: নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", }, level4im: { label: "অনুপযুক্ত হাস্যরস ব্যবহার", summary: "একমাত্র সতর্কতা: অনুপযুক্ত হাস্যরস ব্যবহার", }, }, "uw-nor": { level1: { label: "উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", summary: "সাধারণ বিজ্ঞপ্তি: উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", }, level2: { label: "উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", summary: "দ্বিতীয় স্তরের সতর্কতা: উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", }, level3: { label: "উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", summary: "তৃতীয় স্তরের সতর্কতা: উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", }, level4: { label: "উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", summary: "সর্বশেষ সতর্কতা: উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", }, }, "uw-notcensored": { level1: { label: "উপাদান সেন্সরশিপ", summary: "সাধারণ বিজ্ঞপ্তি: উপাদান সেন্সরশিপ", }, level2: { label: "উপাদান সেন্সরশিপ", summary: "দ্বিতীয় স্তরের সতর্কতা: উপাদান সেন্সরশিপ", }, level3: { label: "উপাদান সেন্সরশিপ", summary: "তৃতীয় স্তরের সতর্কতা: উপাদান সেন্সরশিপ", }, }, "uw-own": { level1: { label: "নিবন্ধের মালিকানা", summary: "সাধারণ বিজ্ঞপ্তি: নিবন্ধের মালিকানা", }, level2: { label: "নিবন্ধের মালিকানা", summary: "দ্বিতীয় স্তরের সতর্কতা: নিবন্ধের মালিকানা", }, level3: { label: "নিবন্ধের মালিকানা", summary: "তৃতীয় স্তরের সতর্কতা: নিবন্ধের মালিকানা", }, level4: { label: "নিবন্ধের মালিকানা", summary: "সর্বশেষ সতর্কতা: নিবন্ধের মালিকানা", }, level4im: { label: "নিবন্ধের মালিকানা", summary: "একমাত্র সতর্কতা: নিবন্ধের মালিকানা", }, }, "uw-subtle": { level1: { label: "সূক্ষ্ম ধ্বংপ্রবণতা", summary: "সাধারণ বিজ্ঞপ্তি: সম্ভবত অগঠনমূলক সম্পাদনা", }, level2: { label: "সূক্ষ্ম ধ্বংপ্রবণতা", summary: "দ্বিতীয় স্তরের সতর্কতা: সম্ভাব্য অগঠনমূলক সম্পাদনা", }, level3: { label: "সূক্ষ্ম ধ্বংপ্রবণতা", summary: "তৃতীয় স্তরের সতর্কতা: সূক্ষ্ম ধ্বংপ্রবণতা", }, level4: { label: "সূক্ষ্ম ধ্বংপ্রবণতা", summary: "সর্বশেষ সতর্কতা: সূক্ষ্ম ধ্বংপ্রবণতা", }, }, "uw-tdel": { level1: { label: "রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", summary: "সাধারণ বিজ্ঞপ্তি: রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", }, level2: { label: "রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", summary: "দ্বিতীয় স্তরের সতর্কতা: রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", }, level3: { label: "রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", summary: "তৃতীয় স্তরের সতর্কতা: রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", }, level4: { label: "রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", summary: "সর্বশেষ সতর্কতা: রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", }, }, "uw-unsourced": { level1: { label: "তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", summary: "সাধারণ বিজ্ঞপ্তি: তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", }, level2: { label: "তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", summary: "দ্বিতীয় স্তরের সতর্কতা: তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", }, level3: { label: "তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", summary: "তৃতীয় স্তরের সতর্কতা: তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", }, level4: { label: "তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", summary: "সর্বশেষ সতর্কতা: তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", }, }, }, "প্রচারণা ও স্প্যাম": { "uw-advert": { level1: { label: "বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", summary: "সাধারণ বিজ্ঞপ্তি: বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", }, level2: { label: "বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", summary: "দ্বিতীয় স্তরের সতর্কতা: বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", }, level3: { label: "বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", summary: "তৃতীয় স্তরের সতর্কতা: বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", }, level4: { label: "বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", summary: "সর্বশেষ সতর্কতা: বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", }, level4im: { label: "বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", summary: "একমাত্র সতর্কতা: বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", }, }, "uw-npov": { level1: { label: "নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", summary: "সাধারণ বিজ্ঞপ্তি: নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", }, level2: { label: "নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", summary: "দ্বিতীয় স্তরের সতর্কতা: নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", }, level3: { label: "নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", summary: "তৃতীয় স্তরের সতর্কতা: নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", }, level4: { label: "নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", summary: "সর্বশেষ সতর্কতা: নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", }, }, "uw-paid": { level1: { label: "উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", summary: "সাধারণ বিজ্ঞপ্তি: উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", }, level2: { label: "উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", summary: "দ্বিতীয় স্তরের সতর্কতা: উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", }, level3: { label: "উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", summary: "তৃতীয় স্তরের সতর্কতা: উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", }, level4: { label: "উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", summary: "সর্বশেষ সতর্কতা: উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", }, }, "uw-spam": { level1: { label: "অনুপযুক্ত বহিঃসংযোগ যোগ করা", summary: "সাধারণ বিজ্ঞপ্তি: অনুপযুক্ত বহিঃসংযোগ যোগ করা", }, level2: { label: "স্প্যাম লিংক সংযোজন", summary: "দ্বিতীয় স্তরের সতর্কতা: স্প্যাম লিংক সংযোজন", }, level3: { label: "স্প্যাম লিংক সংযোজন", summary: "তৃতীয় স্তরের সতর্কতা: স্প্যাম লিংক সংযোজন", }, level4: { label: "স্প্যাম লিংক সংযোজন", summary: "সর্বশেষ সতর্কতা: স্প্যাম লিংক সংযোজন", }, level4im: { label: "স্প্যাম লিংক সংযোজন", summary: "একমাত্র সতর্কতা: স্প্যাম লিংক সংযোজন", }, }, }, "অন্য ব্যবহারকারীর প্রতি আচরণ": { "uw-agf": { level1: { label: "অন্য ব্যবহারকারীর উপর আস্থা না রাখা", summary: "সাধারণ বিজ্ঞপ্তি: অন্য ব্যবহারকারীর উপর আস্থা না রাখা", }, level2: { label: "অন্য ব্যবহারকারীর উপর আস্থা না রাখা", summary: "দ্বিতীয় স্তরের সতর্কতা: অন্য ব্যবহারকারীর উপর আস্থা না রাখা", }, level3: { label: "অন্য ব্যবহারকারীর উপর আস্থা না রাখা", summary: "তৃতীয় স্তরের সতর্কতা: অন্য ব্যবহারকারীর উপর আস্থা না রাখা", }, }, "uw-harass": { level1: { label: "অন্য ব্যবহারকারীদের হয়রানি", summary: "সাধারণ বিজ্ঞপ্তি: অন্য ব্যবহারকারীদের হয়রানি", }, level2: { label: "অন্য ব্যবহারকারীদের হয়রানি", summary: "দ্বিতীয় স্তরের সতর্কতা: অন্য ব্যবহারকারীদের হয়রানি", }, level3: { label: "অন্য ব্যবহারকারীদের হয়রানি", summary: "তৃতীয় স্তরের সতর্কতা: অন্য ব্যবহারকারীদের হয়রানি", }, level4: { label: "অন্য ব্যবহারকারীদের হয়রানি", summary: "সর্বশেষ সতর্কতা: অন্য ব্যবহারকারীদের হয়রানি", }, level4im: { label: "অন্য ব্যবহারকারীদের হয়রানি", summary: "একমাত্র সতর্কতা: অন্য ব্যবহারকারীদের হয়রানি", }, }, "uw-npa": { level1: { label: "একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", summary: "সাধারণ বিজ্ঞপ্তি: একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", }, level2: { label: "একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", summary: "দ্বিতীয় স্তরের সতর্কতা: একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", }, level3: { label: "একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", summary: "তৃতীয় স্তরের সতর্কতা: একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", }, level4: { label: "একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", summary: "সর্বশেষ সতর্কতা: একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", }, level4im: { label: "একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", summary: "একমাত্র সতর্কতা: একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", }, }, "uw-tempabuse": { level1: { label: "সতর্কতা ও বাধা দান টেমপ্লেটের অনুপযুক্ত ব্যবহার", summary: "সাধারণ বিজ্ঞপ্তি: সতর্কতা ও বাধা দান টেমপ্লেটের অনুপযুক্ত ব্যবহার", }, level2: { label: "সতর্কতা ও বাধা দান টেমপ্লেটের অনুপযুক্ত ব্যবহার", summary: "দ্বিতীয় স্তরের সতর্কতা: সতর্কতা ও বাধা দান টেমপ্লেটের অনুপযুক্ত ব্যবহার", }, }, }, "অপসারণ ট্যাগ অপসারণ": { "uw-afd": { level1: { label: "{{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", summary: "সাধারণ বিজ্ঞপ্তি: {{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", }, level2: { label: "{{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", summary: "দ্বিতীয় স্তরের সতর্কতা: {{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", }, level3: { label: "{{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", summary: "তৃতীয় স্তরের সতর্কতা: {{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", }, level4: { label: "{{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", summary: "সর্বশেষ সতর্কতা: {{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", }, }, "uw-blpprod": { level1: { label: "{{Prod blp}} টেমপ্লেট অপসারণ", summary: "সাধারণ বিজ্ঞপ্তি: {{Prod blp}} টেমপ্লেট অপসারণ", }, level2: { label: "{{Prod blp}} টেমপ্লেট অপসারণ", summary: "দ্বিতীয় স্তরের সতর্কতা: {{Prod blp}} টেমপ্লেট অপসারণ", }, level3: { label: "{{Prod blp}} টেমপ্লেট অপসারণ", summary: "তৃতীয় স্তরের সতর্কতা: {{Prod blp}} টেমপ্লেট অপসারণ", }, level4: { label: "{{Prod blp}} টেমপ্লেট অপসারণ", summary: "সর্বশেষ সতর্কতা: {{Prod blp}} টেমপ্লেট অপসারণ", }, }, "uw-idt": { level1: { label: "ফাইল অপসারন ট্যাগ অপসারণ", summary: "সাধারণ বিজ্ঞপ্তি: ফাইল অপসারন ট্যাগ অপসারণ", }, level2: { label: "ফাইল অপসারন ট্যাগ অপসারণ", summary: "দ্বিতীয় স্তরের সতর্কতা: ফাইল অপসারন ট্যাগ অপসারণ", }, level3: { label: "ফাইল অপসারন ট্যাগ অপসারণ", summary: "তৃতীয় স্তরের সতর্কতা: ফাইল অপসারন ট্যাগ অপসারণ", }, level4: { label: "ফাইল অপসারন ট্যাগ অপসারণ", summary: "সর্বশেষ সতর্কতা: ফাইল অপসারন ট্যাগ অপসারণ", }, }, "uw-speedy": { level1: { label: "দ্রুত অপসারণ ট্যাগ অপসারণ", summary: "সাধারণ বিজ্ঞপ্তি: দ্রুত অপসারণ ট্যাগ অপসারণ", }, level2: { label: "দ্রুত অপসারণ ট্যাগ অপসারণ", summary: "দ্বিতীয় স্তরের সতর্কতা: দ্রুত অপসারণ ট্যাগ অপসারণ", }, level3: { label: "দ্রুত অপসারণ ট্যাগ অপসারণ", summary: "তৃতীয় স্তরের সতর্কতা: দ্রুত অপসারণ ট্যাগ অপসারণ", }, level4: { label: "দ্রুত অপসারণ ট্যাগ অপসারণ", summary: "সর্বশেষ সতর্কতা: দ্রুত অপসারণ ট্যাগ অপসারণ", }, }, }, Other: { "uw-attempt": { level1: { label: "সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "সাধারণ বিজ্ঞপ্তি: সম্পাদনা ছাঁকনি ট্রিগার করা", }, level2: { label: "সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "দ্বিতীয় স্তরের সতর্কতা: সম্পাদনা ছাঁকনি ট্রিগার করা", }, level3: { label: "সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "তৃতীয় স্তরের সতর্কতা: সম্পাদনা ছাঁকনি ট্রিগার করা", }, level4: { label: "সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "সর্বশেষ সতর্কতা: সম্পাদনা ছাঁকনি ট্রিগার করা", }, level4im: { label: "সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "শুধুমাত্র সতর্কতা: সম্পাদনা ছাঁকনি ট্রিগার করা", }, }, "uw-chat": { level1: { label: "আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", summary: "সাধারণ বিজ্ঞপ্তি: আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", }, level2: { label: "আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", summary: "দ্বিতীয় স্তরের সতর্কতা: আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", }, level3: { label: "আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", summary: "তৃতীয় স্তরের সতর্কতা: আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", }, level4: { label: "আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", summary: "সর্বশেষ সতর্কতা: আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", }, }, "uw-create": { level1: { label: "অনুপযুক্ত পাতা তৈরি", summary: "সাধারণ বিজ্ঞপ্তি: অনুপযুক্ত পাতা তৈরি", }, level2: { label: "অনুপযুক্ত পাতা তৈরি", summary: "দ্বিতীয় স্তরের সতর্কতা: অনুপযুক্ত পাতা তৈরি", }, level3: { label: "অনুপযুক্ত পাতা তৈরি", summary: "তৃতীয় স্তরের সতর্কতা: অনুপযুক্ত পাতা তৈরি", }, level4: { label: "অনুপযুক্ত পাতা তৈরি", summary: "সর্বশেষ সতর্কতা: অনুপযুক্ত পাতা তৈরি", }, level4im: { label: "অনুপযুক্ত পাতা তৈরি", summary: "একমাত্র সতর্কতা: অনুপযুক্ত পাতা তৈরি", }, }, "uw-mos": { level1: { label: "রচনাশৈলী", summary: "সাধারণ বিজ্ঞপ্তি: ফরম্যাটিং, তারিখ, ভাষা ইত্যাদি (রচনাশৈলী)", }, level2: { label: "রচনাশৈলী", summary: "দ্বিতীয় স্তরের সতর্কতা: ফরম্যাটিং, তারিখ, ভাষা ইত্যাদি (রচনাশৈলী)", }, level3: { label: "রচনাশৈলী", summary: "তৃতীয় স্তরের সতর্কতা: ফরম্যাটিং, তারিখ, ভাষা ইত্যাদি (রচনাশৈলী)", }, level4: { label: "রচনাশৈলী", summary: "সর্বশেষ সতর্কতা: ফরম্যাটিং, তারিখ, ভাষা ইত্যাদি (রচনাশৈলী)", }, }, "uw-move": { level1: { label: "নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", summary: "সাধারণ বিজ্ঞপ্তি: নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", }, level2: { label: "নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", summary: "দ্বিতীয় স্তরের সতর্কতা: নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", }, level3: { label: "নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", summary: "তৃতীয় স্তরের সতর্কতা: নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", }, level4: { label: "নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", summary: "সর্বশেষ সতর্কতা: নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", }, level4im: { label: "নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", summary: "একমাত্র সতর্কতা: নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", }, }, "uw-tpv": { level1: { label: "অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", //Refactoring others' talk page comments summary: "সাধারণ বিজ্ঞপ্তি: অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", }, level2: { label: "অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", summary: "দ্বিতীয় স্তরের সতর্কতা: অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", }, level3: { label: "অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", summary: "তৃতীয় স্তরের সতর্কতা: অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", }, level4: { label: "অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", summary: "সর্বশেষ সতর্কতা: অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", }, level4im: { label: "অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", summary: "একমাত্র সতর্কতা: অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", }, }, "uw-upload": { level1: { label: "অবিশ্বকোষীয় চিত্র আপলোড", summary: "সাধারণ বিজ্ঞপ্তি: অবিশ্বকোষীয় চিত্র আপলোড", }, level2: { label: "অবিশ্বকোষীয় চিত্র আপলোড", summary: "দ্বিতীয় স্তরের সতর্কতা: অবিশ্বকোষীয় চিত্র আপলোড", }, level3: { label: "অবিশ্বকোষীয় চিত্র আপলোড", summary: "তৃতীয় স্তরের সতর্কতা: অবিশ্বকোষীয় চিত্র আপলোড", }, level4: { label: "অবিশ্বকোষীয় চিত্র আপলোড", summary: "সর্বশেষ সতর্কতা: অবিশ্বকোষীয় চিত্র আপলোড", }, level4im: { label: "অবিশ্বকোষীয় চিত্র আপলোড", summary: "একমাত্র সতর্কতা: অবিশ্বকোষীয় চিত্র আপলোড", }, }, }, }, singlenotice: { "uw-agf-sock": { label: "একাধিক অ্যাকাউন্টের ব্যবহার (আস্থা রেখে)", summary: "বিজ্ঞপ্তি: একাধিক অ্যাকাউন্টের ব্যবহার", }, /** 'uw-aiv': { label: 'Bad AIV report', summary: 'বিজ্ঞপ্তি: Bad AIV report' }, **/ "uw-autobiography": { label: "আত্মজীবনী তৈরি", summary: "বিজ্ঞপ্তি: আত্মজীবনী তৈরি", }, "uw-badcat": { label: "ভুল বিষয়শ্রেণী যোগ", summary: "বিজ্ঞপ্তি: ভুল বিষয়শ্রেণী যোগ", }, "বাংলায় সম্পাদনা সারাংশ দিন (টুইংকল)": { label: "ইংরেজিতে সম্পাদনা সারাংশ দেওয়া", summary: "বিজ্ঞপ্তি: ইংরেজিতে সম্পাদনা সারাংশ দেওয়া", }, "Uw-np": { label: "অ-উল্লেখযোগ্য ব্যক্তির নাম যোগ", summary: "বিজ্ঞপ্তি: অ-উল্লেখযোগ্য ব্যক্তির নাম যোগ", }, "Uw-patrol": { label: "টহলদান নীতিমালা লঙ্ঘন", summery: "বিজ্ঞপ্তি: নিবন্ধ তৈরির ৪৮ ঘন্টা পার হওয়ার পূর্বেই রক্ষণাবেক্ষণ ট্যাগ যোগ", }, "uw-badlistentry": { label: "তালিকায় অনুপযুক্ত ভুক্তি যোগ", summary: "বিজ্ঞপ্তি: তালিকায় অনুপযুক্ত ভুক্তি যোগ", }, "uw-bite": { label: 'নবাগতদের "জ্বালাতন"', summary: 'বিজ্ঞপ্তি: "নবাগতদের জ্বালাতন', suppressArticleInSummary: true, // non-standard (user name, not article), and not necessary }, "uw-coi": { label: "স্বার্থের সংঘাত", summary: "বিজ্ঞপ্তি: স্বার্থের সংঘাত", heading: "একটি স্বার্থের সংঘাত ব্যবস্থাপনা", }, "uw-controversial": { label: "বিতর্কিত উপাদান যোগ", summary: "বিজ্ঞপ্তি: বিতর্কিত উপাদান যোগ", }, "uw-copying": { label: "অন্য পাতায় লেখা অনুলিপি", summary: "বিজ্ঞপ্তি: অন্য পাতায় লেখা অনুলিপি", }, "uw-crystal": { label: "অনুমাননির্ভর বা অনিশ্চিত তথ্য যোগ করা", summary: "বিজ্ঞপ্তি: অনুমাননির্ভর বা অনিশ্চিত তথ্য যোগ করা", }, "uw-c&pmove": { label: "অনুলিপি প্রতিলিপি করে পাতা স্থানান্তর", summary: "বিজ্ঞপ্তি: অনুলিপি প্রতিলিপি করে পাতা স্থানান্তর", }, "uw-dab": { label: "দ্ব্যর্থতা নিরসন পাতায় ভুল সম্পাদনা", summary: "বিজ্ঞপ্তি: দ্ব্যর্থতা নিরসন পাতায় ভুল সম্পাদনা", }, "uw-date": { label: "অপ্রয়োজনে তারিখের বিন্যাস পরিবর্তন করা", summary: "বিজ্ঞপ্তি: অপ্রয়োজনে তারিখের বিন্যাস পরিবর্তন করা", }, "uw-deadlink": { label: "অকার্যকর সংযোগ সম্বলিত সঠিক উৎস সরানো", summary: "বিজ্ঞপ্তি: অকার্যকর সংযোগ সম্বলিত সঠিক উৎস সরানো", }, "uw-displaytitle": { label: "DISPLAYTITLE এর ভুল ব্যবহার", summary: "বিজ্ঞপ্তি: DISPLAYTITLE এর ভুল ব্যবহার", }, "uw-draftfirst": { label: "দ্রুত মুছে ফেলার ঝুঁকি এড়াতে ব্যবহারকারীর ব্যবহারকারী নামস্থানে খসড়া তৈরি করা উচিত", summary: "বিজ্ঞপ্তি: দয়া করে [[Help:Userspace draft|ব্যবহারকারী নামস্থানে]] খসড়া তৈরি করুন", }, "uw-editsummary": { label: "নতুন ব্যবহারকারী সম্পাদনা সারাংশ ব্যবহার করছে না", summary: "বিজ্ঞপ্তি: সম্পাদনা সারাংশ ব্যবহার না করা", }, "uw-editsummary2": { label: "অভিজ্ঞ ব্যবহারকারী সম্পাদনা সারাংশ ব্যবহার করছে না", summary: "বিজ্ঞপ্তি: সম্পাদনা সারাংশ ব্যবহার না করা", }, "uw-elinbody": { label: "একটি নিবন্ধের মূল অংশে বহিঃসংযোগ যোগ করা", summary: "বিজ্ঞপ্তি: বহিঃসংযোগ নিবন্ধের নিচে বহিঃসংযোগ অনুচ্ছেদে যোগ করুন", }, "uw-bangla": { label: "বাংলায় যোগাযোগ না করা", summary: "বিজ্ঞপ্তি: বাংলায় যোগাযোগ না করা", }, "uw-hasty": { label: "তাড়াহুড়ো করে দ্রুত অপসারণ ট্যাগ যোগ", summary: "বিজ্ঞপ্তি: অপসারণ ট্যাগ যোগ করার আগে প্রণেতাকে নিবন্ধটির মানোন্নয়নের সময় দিন", }, "uw-italicize": { label: "নিবন্ধের মধ্যে বই, চলচ্চিত্র, অ্যালবাম, ম্যাগাজিন, টিভি সিরিজ ইত্যাদির নাম ইটালিক করুন", summary: "বিজ্ঞপ্তি: নিবন্ধের মধ্যে বই, চলচ্চিত্র, অ্যালবাম, ম্যাগাজিন, টিভি সিরিজ ইত্যাদির নাম ইটালিক করুন", }, /**'uw-lang': { label: 'Unnecessarily changing between British and American English', summary: 'বিজ্ঞপ্তি: Unnecessarily changing between British and American English', heading: 'National varieties of English' }, **/ //দরকার নেই "uw-linking": { label: "লাল লিংকের অত্যধিক কিংবা বার বার নীল লিংকের ব্যবহার", summary: "বিজ্ঞপ্তি: লাল লিংকের অত্যধিক কিংবা বার বার নীল লিংকের ব্যবহার", }, "uw-minor": { label: "অনুল্লেখ্য সম্পাদনা চেক বক্সের ভুল ব্যবহার", summary: "বিজ্ঞপ্তি: অনুল্লেখ্য সম্পাদনা চেক বক্সের ভুল ব্যবহার", }, "uw-notbangla": { label: "বাংলা নয় এমন নিবন্ধ তৈরি", summary: "বিজ্ঞপ্তি: বাংলা নয় এমন নিবন্ধ তৈরি", }, "uw-notbanglaedit": { label: "নিবন্ধে বাংলা নয় এমন বিষয়বস্তু সংযোজন", summary: "বিজ্ঞপ্তি: নিবন্ধে বাংলা নয় এমন বিষয়বস্তু সংযোজন", }, "uw-notvote": { label: "আমরা ঐকমত্য ব্যবহার করি, ভোট নয়", summary: "বিজ্ঞপ্তি: আমরা ঐকমত্য ব্যবহার করি, ভোট নয়", }, "uw-plagiarism": { label: "অ্যাট্রিবিউশন ছাড়াই পাবলিক ডোমেইন উৎস থেকে কপি করা", summary: "বিজ্ঞপ্তি: অ্যাট্রিবিউশন ছাড়াই পাবলিক ডোমেইন উৎস থেকে কপি করা", }, "uw-preview": { label: "ভুল এড়াতে প্রাকদর্শন বাটন ব্যবহার করুন", summary: "বিজ্ঞপ্তি: ভুল এড়াতে প্রাকদর্শন বাটন ব্যবহার করুন", }, "uw-redlink": { label: "নির্বিচারে লাল লিংক অপসারণ", summary: "বিজ্ঞপ্তি: লাল লিংক অপসারণ করার সময় সতর্ক হোন", }, "uw-selfrevert": { label: "নিজের পরীক্ষা-নিরীক্ষা পুনর্বহাল করা", summary: "বিজ্ঞপ্তি: নিজের পরীক্ষা-নিরীক্ষা পুনর্বহাল করা", }, "uw-socialnetwork": { label: "উইকিপিডিয়া সামাজিক যোগাযোগমাধ্যম নয়", summary: "বিজ্ঞপ্তি: উইকিপিডিয়া সামাজিক যোগাযোগমাধ্যম নয়", }, "uw-sofixit": { label: "সাহসী হোন এবং নিজেই কোনো কিছু সংশোধন করুন", summary: "বিজ্ঞপ্তি: সাহস করে নিজেই কোনো কিছু সংশোধন করতে পারেন", }, "uw-spoiler": { label: "স্পয়লার সতর্কতা যোগ অথবা যথাযথ অনুচ্ছেদ থেকে স্পয়লার অপসারণ", summary: "বিজ্ঞপ্তি: উইকিপিডিয়া নিবন্ধে সম্ভাব্য 'স্পয়লার' মুছবেন না বা পতাকাঙ্কিত করবেন না", }, "uw-talkinarticle": { label: "নিবন্ধের ভেতরে বার্তা", summary: "বিজ্ঞপ্তি: নিবন্ধের ভেতরে বার্তা", }, "uw-tilde": { label: "পোস্টে স্বাক্ষর না করা", summary: "বিজ্ঞপ্তি: পোস্টে স্বাক্ষর না করা", }, "uw-toppost": { label: "আলাপ পাতার শীর্ষে বার্তা প্রদান", summary: "বিজ্ঞপ্তি: আলাপ পাতার শীর্ষে বার্তা প্রদান", }, "uw-unattribcc": { label: "নির্দেশ ছাড়াই উপযুক্ত-লাইসেন্সযুক্ত উৎস থেকে অনুলিপি করা", summary: "বিজ্ঞপ্তি: নির্দেশ ছাড়াই উপযুক্ত-লাইসেন্সযুক্ত উৎস থেকে অনুলিপি করা", //Copying from compatibility-licensed sources without attribution }, "uw-userspace draft finish": { label: "অনেক পুরাতন ব্যবহারকারী খসড়া", summary: "বিজ্ঞপ্তি: অনেক পুরাতন ব্যবহারকারী খসড়া", }, "uw-vgscope": { label: "ভিডিও গেম প্লে, প্রতারণা বা নির্দেশাবলী যোগ করা", summary: "বিজ্ঞপ্তি: ভিডিও গেম প্লে, প্রতারণা বা নির্দেশাবলী যোগ করা", }, "uw-warn": { label: "ধ্বংসপ্রবণতা পুনর্বহাল করার সময় ব্যবহারকারীকে সতর্ক বার্তা দিন", summary: "বিজ্ঞপ্তি: ধ্বংসপ্রবণতা পুনর্বহাল করার সময় ব্যবহারকারীকে সতর্কতা বার্তা দিন", }, "uw-wrongsummary": { label: "ভুল বা অনুপযুক্ত সম্পাদনা সারাংশ ব্যবহার করা", summary: "সতর্কতা: ভুল বা অনুপযুক্ত সম্পাদনা সারাংশ ব্যবহার করা", }, }, singlewarn: { "uw-3rr": { label: "সম্ভাব্য তিন-প্রত্যাবর্তন নিয়ম লঙ্ঘন; uw-ew ও দেখুন", summary: "সতর্কতা: তিন-প্রত্যাবর্তন নিয়ম", }, "uw-affiliate": { label: "অ্যাফিলিয়েট মার্কেটিং", summary: "সতর্কতা: অ্যাফিলিয়েট মার্কেটিং", }, "uw-attack": { label: "আক্রমণাত্বক পাতা তৈরি", summary: "সতর্কতা: আক্রমণাত্বক পাতা তৈরি", suppressArticleInSummary: true, }, "uw-botun": { label: "বট ব্যবহারকারী নাম", summary: "সতর্কতা: বট ব্যবহারকারী নাম", }, "uw-canvass": { label: "ক্যানভাসিং", summary: "সতর্কতা: ক্যানভাসিং", }, "uw-copyright": { label: "কপিরাইট লঙ্ঘন", summary: "সতর্কতা: কপিরাইট লঙ্ঘন", }, "uw-copyright-link": { label: "কপিরাইটযুক্ত কাজের লঙ্ঘনের সাথে সংযোগ স্থাপন করা হচ্ছে", //Linking to copyrighted works violation summary: "সতর্কতা: কপিরাইটযুক্ত কাজের লঙ্ঘনের সাথে সংযোগ স্থাপন করা হচ্ছে", }, "uw-copyright-new": { label: "কপিরাইট নীতি লঙ্ঘন (নতুন ব্যবহারকারীদের জন্য ব্যাখ্যা সহ)", summary: "বিজ্ঞপ্তি: কপিরাইট সমস্যা এড়ানো", heading: "উইকিপিডিয়া ও কপিরাইট", }, "uw-copyright-remove": { label: "নিবন্ধ থেকে {{copyvio}} টেমপ্লেট অপসারণ", summary: "সতর্কতা: {{copyvio}} টেমপ্লেট অপসারণ", }, "uw-efsummary": { label: "সম্পাদনা সারাংশে সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "সতর্কতা: সম্পাদনা সারাংশে সম্পাদনা ছাঁকনি ট্রিগার করা", }, "uw-ew": { label: "সম্পাদনা যুদ্ধ (শক্তিশালী শব্দ)", // Edit warring summary: "সতর্কতা: সম্পাদনা যুদ্ধ", }, "uw-ewsoft": { label: "সম্পাদনা যুদ্ধ (নতুনদের জন্য নরম শব্দ)", summary: "সতর্কতা: সম্পাদনা যুদ্ধ", }, "uw-hijacking": { label: "নিবন্ধ ছিনতাই", // Hijacking articles summary: "সতর্কতা: নিবন্ধ ছিনতাই", }, "uw-hoax": { label: "প্রতারণা তৈরি করা", // Creating hoaxes summary: "সতর্কতা: প্রতারণা তৈরি করা", }, "uw-legal": { label: "আইনি হুমকি প্রদান", summary: "সতর্কতা: আইনি হুমকি প্রদান", }, "uw-login": { label: "লগ আউট অবস্থায় সম্পাদনা", summary: "সতর্কতা: লগ আউট অবস্থায় সম্পাদনা", }, "uw-multipleIPs": { label: "একাধিক আইপি ব্যবহার", summary: "সতর্কতা: একাধিক আইপি ব্যবহার করে ধ্বংসপ্রবণতা", }, "uw-pinfo": { label: "ব্যক্তিগত তথ্য (outing)", summary: "সতর্কতা: ব্যক্তিগত তথ্য", }, "uw-salt": { label: "ভিন্ন শিরোনামের অধীনে সুরক্ষিত নিবন্ধগুলি পুনরায় তৈরি করা", summary: "বিজ্ঞপ্তি: একটি ভিন্ন শিরোনামের অধীনে সুরক্ষিত নিবন্ধগুলি পুনরায় তৈরি করা হচ্ছে", }, "uw-socksuspect": { label: "সকপাপেট্রি", summary: "সতর্কতা: আপনি একজন সন্দেহভাজন [[WP:SOCK|সকপাপেট]]", // of User:... }, "uw-upv": { label: "ব্যবহারকারী পাতা ধ্বংসপ্রবণতা", summary: "সতর্কতা: ব্যবহারকারী পাতা ধ্বংসপ্রবণতা", }, "uw-username": { label: "ব্যবহারকারী নাম নীতিমালা বিরোধী", summary: "সতর্কতা: আপনার ব্যবহারকারী নাম সম্ভবত নীতিমালা বিরোধী", suppressArticleInSummary: true, // not relevant for this template }, "uw-coi-username": { label: "ব্যবহারকারী নাম নীতিমালা বিরোধী, এবং স্বার্থের সংঘাত", summary: "সতর্কতা: ব্যবহারকারী নাম ও স্বার্থের সংঘাত নীতি", heading: "আপনার ব্যবহারকারী নাম", }, "uw-userpage": { label: "ব্যবহারকারী পাতা বা উপপাতা নীতিমালা বিরোধী", summary: "সতর্কতা: ব্যবহারকারী পাতা বা উপপাতা নীতিমালা বিরোধী", }, }, }; // Used repeatedly below across menu rebuilds Twinkle.warn.prev_article = null; Twinkle.warn.prev_reason = null; Twinkle.warn.talkpageObj = null; Twinkle.warn.callback.change_category = function twinklewarnCallbackChangeCategory(e) { var value = e.target.value; var sub_group = e.target.root.sub_group; sub_group.main_group = value; var old_subvalue = sub_group.value; var old_subvalue_re; if (old_subvalue) { if (value === "kitchensink") { // Exact match possible in kitchensink menu old_subvalue_re = new RegExp(mw.util.escapeRegExp(old_subvalue)); } else { old_subvalue = old_subvalue.replace(/\d*(im)?$/, ""); old_subvalue_re = new RegExp( mw.util.escapeRegExp(old_subvalue) + "(\\d*(?:im)?)$" ); } } while (sub_group.hasChildNodes()) { sub_group.removeChild(sub_group.firstChild); } var selected = false; // worker function to create the combo box entries var createEntries = function (contents, container, wrapInOptgroup, val) { val = typeof val !== "undefined" ? val : value; // IE doesn't support default parameters // level2->2, singlewarn->''; also used to distinguish the // scaled levels from singlenotice, singlewarn, and custom var level = val.replace(/^\D+/g, ""); // due to an apparent iOS bug, we have to add an option-group to prevent truncation of text // (search WT:TW archives for "Problem selecting warnings on an iPhone") if (wrapInOptgroup && $.client.profile().platform === "iphone") { var wrapperOptgroup = new Morebits.quickForm.element({ type: "optgroup", label: "ব্যবহারযোগ্য টেমপ্লেটগুলো", }); wrapperOptgroup = wrapperOptgroup.render(); container.appendChild(wrapperOptgroup); container = wrapperOptgroup; } $.each(contents, function (itemKey, itemProperties) { // Skip if the current template doesn't have a version for the current level if (!!level && !itemProperties[val]) { return; } var key = typeof itemKey === "string" ? itemKey : itemProperties.value; var template = key + level; var elem = new Morebits.quickForm.element({ type: "option", label: "{{" + template + "}}: " + (level ? itemProperties[val].label : itemProperties.label), value: template, }); // Select item best corresponding to previous selection if (!selected && old_subvalue && old_subvalue_re.test(template)) { elem.data.selected = selected = true; } var elemRendered = container.appendChild(elem.render()); $(elemRendered).data("messageData", itemProperties); }); }; var createGroup = function (warnGroup, label, wrapInOptgroup, val) { wrapInOptgroup = typeof wrapInOptgroup !== "undefined" ? wrapInOptgroup : true; var optgroup = new Morebits.quickForm.element({ type: "optgroup", label: label, }); optgroup = optgroup.render(); sub_group.appendChild(optgroup); createEntries(warnGroup, optgroup, wrapInOptgroup, val); }; switch (value) { case "singlenotice": case "singlewarn": createEntries(Twinkle.warn.messages[value], sub_group, true); break; case "singlecombined": var unSortedSinglets = $.extend( {}, Twinkle.warn.messages.singlenotice, Twinkle.warn.messages.singlewarn ); var sortedSingletMessages = {}; Object.keys(unSortedSinglets) .sort() .forEach(function (key) { sortedSingletMessages[key] = unSortedSinglets[key]; }); createEntries(sortedSingletMessages, sub_group, true); break; case "custom": createEntries(Twinkle.getPref("customWarningList"), sub_group, true); break; case "kitchensink": ["level1", "level2", "level3", "level4", "level4im"].forEach( function (lvl) { $.each( Twinkle.warn.messages.levels, function (levelGroupLabel, levelGroup) { createGroup( levelGroup, "Level " + lvl.slice(5) + ": " + levelGroupLabel, true, lvl ); } ); } ); createGroup( Twinkle.warn.messages.singlenotice, "Single-issue notices" ); createGroup( Twinkle.warn.messages.singlewarn, "Single-issue warnings" ); createGroup(Twinkle.getPref("customWarningList"), "Custom warnings"); break; case "level1": case "level2": case "level3": case "level4": case "level4im": // Creates subgroup regardless of whether there is anything to place in it; // leaves "Removal of deletion tags" empty for 4im $.each( Twinkle.warn.messages.levels, function (groupLabel, groupContents) { createGroup(groupContents, groupLabel, false); } ); break; case "autolevel": // Check user page to determine appropriate level var autolevelProc = function () { var wikitext = Twinkle.warn.talkpageObj.getPageText(); // history not needed for autolevel var latest = Twinkle.warn.callbacks.dateProcessing(wikitext)[0]; // Pseudo-params with only what's needed to parse the level i.e. no messageData var params = { sub_group: old_subvalue, article: e.target.root.article.value, }; var lvl = "level" + Twinkle.warn.callbacks.autolevelParseWikitext( wikitext, params, latest )[1]; // Identical to level1, etc. above but explicitly provides the level $.each( Twinkle.warn.messages.levels, function (groupLabel, groupContents) { createGroup(groupContents, groupLabel, false, lvl); } ); // Trigger subcategory change, add select menu, etc. Twinkle.warn.callback.postCategoryCleanup(e); }; if (Twinkle.warn.talkpageObj) { autolevelProc(); } else { var usertalk_page = new Morebits.wiki.page( "ব্যবহারকারী_আলাপ:" + mw.config.get("wgRelevantUserName"), "পূর্ববর্তী সতর্কবার্তাসমূহ লোড হচ্ছে।" ); usertalk_page.setFollowRedirect(true, false); usertalk_page.load( function (pageobj) { Twinkle.warn.talkpageObj = pageobj; // Update talkpageObj autolevelProc(); }, function () { // Catch and warn if the talkpage can't load, // most likely because it's a cross-namespace redirect // Supersedes the typical $autolevelMessage added in autolevelParseWikitext var $noTalkPageNode = $("<strong/>", { text: "ব্যবহারকারীর আলাপ পাতা লোড হচ্ছে না; এটি একটি ক্রস-নেমস্পেসের পুনঃনির্দেশ হতে পারে। স্বয়ংক্রিয় লেভেল সনাক্তকরণ সম্ভব নয়।", id: "twinkle-warn-autolevel-message", css: { color: "red" }, }); $noTalkPageNode.insertBefore( $("#twinkle-warn-warning-messages") ); // If a preview was opened while in a different mode, close it // Should nullify the need to catch the error in preview callback e.target.root.previewer.closePreview(); } ); } break; default: alert("টুইংকেল সতর্কীকরণে অজানা সতর্কীকরণ গ্রুপ"); break; } // Trigger subcategory change, add select menu, etc. // Here because of the async load for autolevel if (value !== "autolevel") { // reset any autolevel-specific messages while we're here $("#twinkle-warn-autolevel-message").remove(); Twinkle.warn.callback.postCategoryCleanup(e); } }; Twinkle.warn.callback.postCategoryCleanup = function twinklewarnCallbackPostCategoryCleanup(e) { // clear overridden label on article textbox Morebits.quickForm.setElementTooltipVisibility( e.target.root.article, true ); Morebits.quickForm.resetElementLabel(e.target.root.article); // Trigger custom label/change on main category change Twinkle.warn.callback.change_subcategory(e); // Use select2 to make the select menu searchable if (!Twinkle.getPref("oldSelect")) { $("select[name=sub_group]") .select2({ width: "100%", matcher: Morebits.select2.matchers.optgroupFull, templateResult: Morebits.select2.highlightSearchMatches, language: { searching: Morebits.select2.queryInterceptor, }, }) .change(Twinkle.warn.callback.change_subcategory); $(".select2-selection").keydown(Morebits.select2.autoStart).focus(); mw.util.addCSS( // Increase height ".select2-container .select2-dropdown .select2-results > .select2-results__options { max-height: 350px; }" + // Reduce padding ".select2-results .select2-results__option { padding-top: 1px; padding-bottom: 1px; }" + ".select2-results .select2-results__group { padding-top: 1px; padding-bottom: 1px; } " + // Adjust font size ".select2-container .select2-dropdown .select2-results { font-size: 13px; }" + ".select2-container .selection .select2-selection__rendered { font-size: 13px; }" ); } }; Twinkle.warn.callback.change_subcategory = function twinklewarnCallbackChangeSubcategory(e) { var main_group = e.target.form.main_group.value; var value = e.target.form.sub_group.value; // Tags that don't take a linked article, but something else (often a username). // The value of each tag is the label next to the input field var notLinkedArticle = { "uw-agf-sock": "অন্য অ্যাকাউন্টের ঐচ্ছিক ব্যবহারকারীর নাম ('ব্যবহারকারী:' ছাড়া) ", "uw-bite": "'দংশিত' ব্যবহারকারীর ব্যবহারকারীর নাম ('ব্যবহারকারী:' ছাড়া) ", "uw-socksuspect": "সক মাস্টারের ব্যবহারকারী নাম, যদি জানা থাকে ('ব্যবহারকারী:' ছাড়া) ", "uw-username": "ব্যবহারকারী নাম নীতিমালা ভঙ্গ করে কারণ... ", "uw-aiv": "ঐচ্ছিক ব্যবহারকারীর নাম যেটি রিপোর্ট করা হয়েছে ('ব্যবহারকারী:' ছাড়া) ", }; if ( ["singlenotice", "singlewarn", "singlecombined", "kitchensink"].indexOf( main_group ) !== -1 ) { if (notLinkedArticle[value]) { if (Twinkle.warn.prev_article === null) { Twinkle.warn.prev_article = e.target.form.article.value; } e.target.form.article.notArticle = true; e.target.form.article.value = ""; // change form labels according to the warning selected Morebits.quickForm.setElementTooltipVisibility( e.target.form.article, false ); Morebits.quickForm.overrideElementLabel( e.target.form.article, notLinkedArticle[value] ); } else if (e.target.form.article.notArticle) { if (Twinkle.warn.prev_article !== null) { e.target.form.article.value = Twinkle.warn.prev_article; Twinkle.warn.prev_article = null; } e.target.form.article.notArticle = false; Morebits.quickForm.setElementTooltipVisibility( e.target.form.article, true ); Morebits.quickForm.resetElementLabel(e.target.form.article); } } // add big red notice, warning users about how to use {{uw-[coi-]username}} appropriately $("#tw-warn-red-notice").remove(); var $redWarning; if (value === "uw-username") { $redWarning = $( "<div style='color: red;' id='tw-warn-red-notice'>{{uw-username}} ব্যবহারকারী নাম সম্পর্কিত <b>গুরুতর</b> নীতি লঙ্ঘনের জন্য ব্যবহার করা উচিত <b>নয়</b>। " + "গুরুতর লঙ্ঘন হলে তা সরাসরি UAA-তে জানানো উচিত (টুইংকেলের ARV টুলের মাধ্যমে)। " + "ব্যবহারকারীর সাথে আলোচনা করার জন্য {{uw-username}} শুধুমাত্র সর্বশেষ ক্ষেত্রে ব্যবহার করা উচিত।</div>" ); $redWarning.insertAfter( Morebits.quickForm.getElementLabelObject(e.target.form.reasonGroup) ); } else if (value === "uw-coi-username") { $redWarning = $( "<div style='color: red;' id='tw-warn-red-notice'>{{uw-coi-username}} ব্যবহারকারী নাম সম্পর্কিত <b>গুরুতর</b> নীতি লঙ্ঘনের জন্য ব্যবহার করা উচিত <b>নয়</b>। " + "গুরুতর লঙ্ঘন হলে তা সরাসরি UAA-তে জানানো উচিত (টুইংকেলের ARV টুলের মাধ্যমে)। " + "ব্যবহারকারীর সাথে আলোচনা করার জন্য {{uw-coi-username}} শুধুমাত্র সর্বশেষ ক্ষেত্রে ব্যবহার করা উচিত।</div>" ); $redWarning.insertAfter( Morebits.quickForm.getElementLabelObject(e.target.form.reasonGroup) ); } }; Twinkle.warn.callbacks = { getWarningWikitext: function (templateName, article, reason, isCustom) { var text = "{{subst:" + templateName; // add linked article for user warnings if (article) { // c&pmove has the source as the first parameter if (templateName === "uw-c&pmove") { text += "|to=" + article; } else { text += "|1=" + article; } } if (reason && !isCustom) { // add extra message if ( templateName === "uw-csd" || templateName === "uw-probation" || templateName === "uw-userspacenoindex" || templateName === "uw-userpage" ) { text += "|3=''" + reason + "''"; } else { text += "|2=''" + reason + "''"; } } text += "}}"; if (reason && isCustom) { // we assume that custom warnings lack a {{{2}}} parameter text += " ''" + reason + "''"; } return text + " ~~~~"; }, showPreview: function (form, templatename) { var input = Morebits.quickForm.getInputData(form); // Provided on autolevel, not otherwise templatename = templatename || input.sub_group; var linkedarticle = input.article; var templatetext; templatetext = Twinkle.warn.callbacks.getWarningWikitext( templatename, linkedarticle, input.reason, input.main_group === "custom" ); form.previewer.beginRender( templatetext, "ব্যবহারকারী_আলাপ:" + mw.config.get("wgRelevantUserName") ); // Force wikitext/correct username }, // Just a pass-through unless the autolevel option was selected preview: function (form) { if (form.main_group.value === "autolevel") { // Always get a new, updated talkpage for autolevel processing var usertalk_page = new Morebits.wiki.page( "ব্যবহারকারী_আলাপ:" + mw.config.get("wgRelevantUserName"), "পূর্ববর্তী সতর্কবার্তা গুলো লোড হচ্ছে।" ); usertalk_page.setFollowRedirect(true, false); // Will fail silently if the talk page is a cross-ns redirect, // removal of the preview box handled when loading the menu usertalk_page.load(function (pageobj) { Twinkle.warn.talkpageObj = pageobj; // Update talkpageObj var wikitext = pageobj.getPageText(); // history not needed for autolevel var latest = Twinkle.warn.callbacks.dateProcessing(wikitext)[0]; var params = { sub_group: form.sub_group.value, article: form.article.value, messageData: $(form.sub_group) .find('option[value="' + $(form.sub_group).val() + '"]') .data("messageData"), }; var template = Twinkle.warn.callbacks.autolevelParseWikitext( wikitext, params, latest )[0]; Twinkle.warn.callbacks.showPreview(form, template); // If the templates have diverged, fake a change event // to reload the menu with the updated pageobj if (form.sub_group.value !== template) { var evt = document.createEvent("Event"); evt.initEvent("change", true, true); form.main_group.dispatchEvent(evt); } }); } else { Twinkle.warn.callbacks.showPreview(form); } }, /** * Used in the main and autolevel loops to determine when to warn * about excessively recent, stale, or identical warnings. * @param {string} wikitext The text of a user's talk page, from getPageText() * @returns {Object[]} - Array of objects: latest contains most recent * warning and date; history lists all prior warnings */ dateProcessing: function (wikitext) { var history_re = /<!--\s?Template:([uU]w-.*?)\s?-->.*?(\d{1,2}:\d{1,2}, \d{1,2} \w+ \d{4} \(UTC\))/g; var history = {}; var latest = { date: new Morebits.date(0), type: "" }; var current; while ((current = history_re.exec(wikitext)) !== null) { var template = current[1], current_date = new Morebits.date(current[2]); if ( !(template in history) || history[template].isBefore(current_date) ) { history[template] = current_date; } if (!latest.date.isAfter(current_date)) { latest.date = current_date; latest.type = template; } } return [latest, history]; }, /** * Main loop for deciding what the level should increment to. Most of * this is really just error catching and updating the subsequent data. * May produce up to two notices in a twinkle-warn-autolevel-messages div * * @param {string} wikitext The text of a user's talk page, from getPageText() (required) * @param {Object} params Params object: sub_group is the template (required); * article is the user-provided article (form.article) used to link ARV on recent level4 warnings; * messageData is only necessary if getting the full template, as it's * used to ensure a valid template of that level exists * @param {Object} latest First element of the array returned from * dateProcessing. Provided here rather than processed within to avoid * repeated call to dateProcessing * @param {(Date|Morebits.date)} date Date from which staleness is determined * @param {Morebits.status} statelem Status element, only used for handling error in final execution * * @returns {Array} - Array that contains the full template and just the warning level */ autolevelParseWikitext: function ( wikitext, params, latest, date, statelem ) { var level; // undefined rather than '' means the isNaN below will return true if (/\d(?:im)?$/.test(latest.type)) { // level1-4im level = parseInt(latest.type.replace(/.*(\d)(?:im)?$/, "$1"), 10); } else if (latest.type) { // Non-numbered warning // Try to leverage existing categorization of // warnings, all but one are universally lowercased var loweredType = /uw-multipleIPs/i.test(latest.type) ? "uw-multipleIPs" : latest.type.toLowerCase(); // It would be nice to account for blocks, but in most // cases the hidden message is terminal, not the sig if (Twinkle.warn.messages.singlewarn[loweredType]) { level = 3; } else { level = 1; // singlenotice or not found } } var $autolevelMessage = $("<div/>", { id: "twinkle-warn-autolevel-message", }); if (isNaN(level)) { // No prior warnings found, this is the first level = 1; } else if (level > 4 || level < 1) { // Shouldn't happen var message = "পূর্ববর্তী সতর্কতা স্তর পার্স করতে অক্ষম, দয়া করে হাত দ্বারা একটি সতর্কতা স্তর নির্বাচন করুন৷"; if (statelem) { statelem.error(message); } else { alert(message); } return; } else { date = date || new Date(); var autoTimeout = new Morebits.date(latest.date.getTime()).add( parseInt(Twinkle.getPref("autolevelStaleDays"), 10), "days" ); if (autoTimeout.isAfter(date)) { if (level === 4) { level = 4; // Basically indicates whether we're in the final Main evaluation or not, // and thus whether we can continue or need to display the warning and link if (!statelem) { var $link = $("<a/>", { href: "#", text: "ARV টুলটি চালু করতে এখানে ক্লিক করুন।", css: { fontWeight: "bold" }, click: function () { Morebits.wiki.actionCompleted.redirect = null; Twinkle.warn.dialog.close(); Twinkle.arv.callback(mw.config.get("wgRelevantUserName")); $("input[name=page]").val(params.article); // Target page $("input[value=final]").prop("checked", true); // Vandalism after final }, }); var statusNode = $("<div/>", { text: mw.config.get("wgRelevantUserName") + " সম্প্রতি চতুর্থ স্তরের সতর্কতা বার্তা পেয়েছেন (" + latest.type + ") তাই সম্ভবত অভিযোগ করা ভালো হবে; ", css: { color: "red" }, }); statusNode.append($link[0]); $autolevelMessage.append(statusNode); } } else { // Automatically increase severity level += 1; } } else { // Reset warning level if most-recent warning is too old level = 1; } } $autolevelMessage.prepend( $( '<div>একটা ইস্যু সৃষ্টি করবে যা, <span style="font-weight: bold;">লেভেল ' + level + "</span> টেমপ্লেটে।</div>" ) ); // Place after the stale and other-user-reverted (text-only) messages $("#twinkle-warn-autolevel-message").remove(); // clean slate $autolevelMessage.insertAfter($("#twinkle-warn-warning-messages")); var template = params.sub_group.replace(/(.*)\d$/, "$1"); // Validate warning level, falling back to the uw-generic series. // Only a few items are missing a level, and in all but a handful // of cases, the uw-generic series is explicitly used elsewhere per WP:UTM. if (params.messageData && !params.messageData["level" + level]) { template = "uw-generic"; } template += level; return [template, level]; }, main: function (pageobj) { var text = pageobj.getPageText(); var statelem = pageobj.getStatusElement(); var params = pageobj.getCallbackParameters(); var messageData = params.messageData; // JS somehow didn't get destructured assignment until ES6 so of course IE doesn't support it var warningHistory = Twinkle.warn.callbacks.dateProcessing(text); var latest = warningHistory[0]; var history = warningHistory[1]; var now = new Morebits.date(pageobj.getLoadTime()); Twinkle.warn.talkpageObj = pageobj; // Update talkpageObj, just in case if (params.main_group === "autolevel") { // [template, level] var templateAndLevel = Twinkle.warn.callbacks.autolevelParseWikitext( text, params, latest, now, statelem ); // Only if there's a change from the prior display/load if ( params.sub_group !== templateAndLevel[0] && !confirm( "{{" + templateAndLevel[0] + "}} টেমপ্লেটটি ব্যবহারকারীর জন্য একটি ইস্যু তৈরি করবে, ঠিক আছে?" ) ) { statelem.error("ব্যবহারকারীর অনুরোধে বাতিল করা হয়েছে"); return; } // Update params now that we've selected a warning params.sub_group = templateAndLevel[0]; messageData = params.messageData["level" + templateAndLevel[1]]; } else if (params.sub_group in history) { if ( new Morebits.date(history[params.sub_group]) .add(1, "day") .isAfter(now) ) { if ( !confirm( "An identical " + params.sub_group + " গত ২৪ ঘন্টায় ইস্যুগুলো হয়েছে। \nআপনি কি এখনও এই সতর্কবার্তা/বিজ্ঞপ্তি যোগ করতে চান?" ) ) { statelem.error("ব্যবহারকারীর অনুরোধে বাতিল করা হয়েছে"); return; } } } latest.date.add(1, "minute"); // after long debate, one minute is max if (latest.date.isAfter(now)) { if ( !confirm( "একটি ইস্যু" + latest.type + " শেষ মিনিটে উত্থাপিত হয়েছে। \nআপনি কি এখনও এই সতর্কবার্তা/বিজ্ঞপ্তি যোগ করতে চান?" ) ) { statelem.error("aborted per user request"); return; } } // build the edit summary // Function to handle generation of summary prefix for custom templates var customProcess = function (template) { template = template.split("|")[0]; var prefix; switch (template.substr(-1)) { case "1": prefix = "সাধারণ মন্তব্য"; break; case "2": prefix = "সতর্কবার্তা"; break; case "3": prefix = "সতর্কবার্তা"; break; case "4": prefix = "সর্বশেষ সতর্কবার্তা"; break; case "m": if (template.substr(-3) === "4im") { prefix = "একমাত্র সতর্কবার্তা"; break; } // falls through default: prefix = "বিজ্ঞপ্তি"; break; } return ( prefix + ": " + Morebits.string.toUpperCaseFirstChar(messageData.label) ); }; var summary; if (params.main_group === "custom") { summary = customProcess(params.sub_group); } else { // Normalize kitchensink to the 1-4im style if ( params.main_group === "kitchensink" && !/^D+$/.test(params.sub_group) ) { var sub = params.sub_group.substr(-1); if (sub === "m") { sub = params.sub_group.substr(-3); } // Don't overwrite uw-3rr, technically unnecessary if (/\d/.test(sub)) { params.main_group = "level" + sub; } } // singlet || level1-4im, no need to /^\D+$/.test(params.main_group) summary = messageData.summary || (messageData[params.main_group] && messageData[params.main_group].summary); // Not in Twinkle.warn.messages, assume custom template if (!summary) { summary = customProcess(params.sub_group); } if (messageData.suppressArticleInSummary !== true && params.article) { if ( params.sub_group === "uw-agf-sock" || params.sub_group === "uw-socksuspect" || params.sub_group === "uw-aiv" ) { // these templates require a username summary += " [[:ব্যাবহারকারী:" + params.article + "]] পাতায়"; } else { summary += " [[:" + params.article + "]] পাতায়"; } } } pageobj.setEditSummary(summary + "।"); pageobj.setChangeTags(Twinkle.changeTags); pageobj.setWatchlist(Twinkle.getPref("watchWarnings")); // Get actual warning text var warningText = Twinkle.warn.callbacks.getWarningWikitext( params.sub_group, params.article, params.reason, params.main_group === "custom" ); if ( Twinkle.getPref("showSharedIPNotice") && mw.util.isIPAddress(mw.config.get("wgTitle")) ) { Morebits.status.info( "তথ্য", "একটি শেয়ার করা আইপি নোটিশ যোগ করা হচ্ছে।" ); warningText += "\n{{subst:Shared IP advice}}"; } var sectionExists = false, sectionNumber = 0; // Only check sections if there are sections or there's a chance we won't create our own if (!messageData.heading && text.length) { // Get all sections var sections = text.match(/^(==*).+\1/gm); if (sections && sections.length !== 0) { // Find the index of the section header in question var dateHeaderRegex = now.monthHeaderRegex(); sectionNumber = 0; // Find this month's section among L2 sections, preferring the bottom-most sectionExists = sections.reverse().some(function (sec, idx) { return ( /^(==)[^=].+\1/m.test(sec) && dateHeaderRegex.test(sec) && typeof (sectionNumber = sections.length - 1 - idx) === "number" ); }); } } if (sectionExists) { // append to existing section pageobj.setPageSection(sectionNumber + 1); pageobj.setAppendText("\n\n" + warningText); pageobj.append(); } else { if (messageData.heading) { // create new section pageobj.setNewSectionTitle(messageData.heading); } else { Morebits.status.info( "তথ্য", "যেহেতু কিছুই পাওয়া যায় নি, তাই এই মাসের জন্য নতুন অনুচ্ছেদ তৈরি করা হবে" ); pageobj.setNewSectionTitle(now.monthHeader()); } pageobj.setNewSectionText(warningText); pageobj.newSection(); } }, }; Twinkle.warn.callback.evaluate = function twinklewarnCallbackEvaluate(e) { var userTalkPage = "ব্যবহারকারী_আলাপ:" + mw.config.get("wgRelevantUserName"); // reason, main_group, sub_group, article var params = Morebits.quickForm.getInputData(e.target); // Check that a reason was filled in if uw-username was selected if (params.sub_group === "uw-username" && !params.article) { alert( "{{uw-username}} এই টেমপ্লেটি ব্যবহারের জন্য আপনাকে সঠিক কারণ দর্শাতে হবে।" ); return; } // The autolevel option will already know by now if a user talk page // is a cross-namespace redirect (via !!Twinkle.warn.talkpageObj), so // technically we could alert an error here, but the user will have // already ignored the bold red error above. Moreover, they probably // *don't* want to actually issue a warning, so the error handling // after the form is submitted is probably preferable // Find the selected <option> element so we can fetch the data structure var $selectedEl = $(e.target.sub_group).find( 'option[value="' + $(e.target.sub_group).val() + '"]' ); params.messageData = $selectedEl.data("messageData"); Morebits.simpleWindow.setButtonsEnabled(false); Morebits.status.init(e.target); Morebits.wiki.actionCompleted.redirect = userTalkPage; Morebits.wiki.actionCompleted.notice = "সতর্কবার্তা প্রদান করা হয়েছে, কয়েক সেকেন্ডের মধ্যে আলাপ পাতা পুনঃলোড করা হবে"; var wikipedia_page = new Morebits.wiki.page( userTalkPage, "আলাপ পাতা পরিবর্তন" ); wikipedia_page.setCallbackParameters(params); wikipedia_page.setFollowRedirect(true, false); wikipedia_page.load(Twinkle.warn.callbacks.main); }; Twinkle.addInitCallback(Twinkle.warn, "warn"); })(jQuery); // </nowiki> 9psb15vbm5hgusm07vb6vyn3t85q29s 131485 131484 2022-07-29T06:34:36Z Aishik Rehman 5592 javascript text/javascript // <nowiki> /* **************************************** *** twinklewarn.js: সতর্কবার্তা মডিউল **************************************** * Mode of invocation: Tab ("সতর্কবার্তা") * Active on: Any page with relevant user name (userspace, contribs, * etc.) (not IP ranges), as well as the rollback success page *caution কে ‘দ্বিতীয় স্তরের সতর্কতা’ এবং warning কে ‘তৃতীয় স্তরের সতর্কতা’ অনুবাদ করা হয়েছে। --Yahya *[[টেমপ্লেট:বাংলায় সম্পাদনা সারাংশ দিন (টুইংকল)]] একক সমস্যার বার্তা অংশে যুক্ত করা হলো --MdsShakil */ (function ($) { Twinkle.warn = function twinklewarn() { // Users and IPs but not IP ranges if ( mw.config.exists("wgRelevantUserName") && !Morebits.ip.isRange(mw.config.get("wgRelevantUserName")) ) { Twinkle.addPortletLink( Twinkle.warn.callback, "সতর্ক করুন", "tw-warn", "সতর্ক করুন/ব্যবহারকারীকে অবহিত করুন" ); if ( Twinkle.getPref("autoMenuAfterRollback") && mw.config.get("wgNamespaceNumber") === 3 && mw.util.getParamValue("vanarticle") && !mw.util.getParamValue("friendlywelcome") && !mw.util.getParamValue("noautowarn") ) { Twinkle.warn.callback(); } } // Modify URL of talk page on rollback success pages, makes use of a // custom message box in [[MediaWiki:Rollback-success]] if (mw.config.get("wgAction") === "rollback") { var $vandalTalkLink = $("#mw-rollback-success") .find(".mw-usertoollinks a") .first(); if ($vandalTalkLink.length) { $vandalTalkLink.css("font-weight", "bold"); $vandalTalkLink.wrapInner( $("<span/>").attr( "title", "উপযুক্ত হলে, আপনি এই পৃষ্ঠায় ব্যবহারকারীদের তাদের সম্পাদনা সম্পর্কে সতর্ক করতে টুইঙ্কল ব্যবহার করতে পারেন।" ) ); // Can't provide vanarticlerevid as only wgCurRevisionId is provided var extraParam = "vanarticle=" + mw.util.rawurlencode(Morebits.pageNameNorm); var href = $vandalTalkLink.attr("href"); if (href.indexOf("?") === -1) { $vandalTalkLink.attr("href", href + "?" + extraParam); } else { $vandalTalkLink.attr("href", href + "&" + extraParam); } } } }; // Used to close window when switching to ARV in autolevel Twinkle.warn.dialog = null; Twinkle.warn.callback = function twinklewarnCallback() { if ( mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName") && !confirm( "আপনি নিজেকে সতর্ক করতে চলেছেন! আপনি কি নিশ্চিত আপনি এটাই করতে চান?" ) ) { return; } var dialog; Twinkle.warn.dialog = new Morebits.simpleWindow(600, 440); dialog = Twinkle.warn.dialog; dialog.setTitle("সতর্ক করুন/ব্যবহারকারীকে অবহিত করুন"); dialog.setScriptName("টুইংকল"); dialog.addFooterLink("একটি সতর্কতা স্তর নির্বাচন করা", "WP:UWUL#Levels"); dialog.addFooterLink("সতর্কতার পছন্দসমূহ", "WP:TW/PREF#warn"); dialog.addFooterLink("টুইংকল সাহায্য", "WP:TW/DOC#warn"); dialog.addFooterLink("প্রতিক্রিয়া জানান", "WT:TW"); var form = new Morebits.quickForm(Twinkle.warn.callback.evaluate); var main_select = form.append({ type: "field", label: "প্রদান করার জন্য সতর্কতার ধরন/বিজ্ঞপ্তি বেছে নিন", tooltip: "প্রথমে একটি প্রধান সতর্কতা গ্রুপ নির্বাচন করুন, তারপরে প্রদান করার জন্য একটি নির্দিষ্ট সতর্কতা বাছাই করুন।", }); var main_group = main_select.append({ type: "select", name: "main_group", tooltip: "আপনি আপনার টুইঙ্কল পছন্দগুলিতে ডিফল্ট নির্বাচনটি কাস্টমাইজ করতে পারেন", event: Twinkle.warn.callback.change_category, }); var defaultGroup = parseInt(Twinkle.getPref("defaultWarningGroup"), 10); main_group.append({ type: "option", label: "স্বয়ংক্রিয় স্তর নির্বাচন (১-৪)", value: "autolevel", selected: defaultGroup === 11, }); main_group.append({ type: "option", label: "১: সাধারণ বিজ্ঞপ্তি", value: "level1", selected: defaultGroup === 1, }); main_group.append({ type: "option", label: "২: দ্বিতীয় স্তরের সতর্কবার্তা", value: "level2", selected: defaultGroup === 2, }); main_group.append({ type: "option", label: "৩: তৃতীয় স্তরের সতর্কবার্তা", value: "level3", selected: defaultGroup === 3, }); main_group.append({ type: "option", label: "৪: সর্বশেষ সতর্কবার্তা", value: "level4", selected: defaultGroup === 4, }); main_group.append({ type: "option", label: "4im: একমাত্র সতর্কবার্তা", value: "level4im", selected: defaultGroup === 5, }); if (Twinkle.getPref("combinedSingletMenus")) { main_group.append({ type: "option", label: "একক সমস্যার বার্তা", value: "singlecombined", selected: defaultGroup === 6 || defaultGroup === 7, }); } else { main_group.append({ type: "option", label: "একক সমস্যার বার্তা", value: "singlenotice", selected: defaultGroup === 6, }); main_group.append({ type: "option", label: "একক সমস্যার সতর্কবার্তা", value: "singlewarn", selected: defaultGroup === 7, }); } if (Twinkle.getPref("customWarningList").length) { main_group.append({ type: "option", label: "স্বনির্ধারিত সতর্কবার্তা", value: "custom", selected: defaultGroup === 9, }); } main_group.append({ type: "option", label: "সকল সতর্কবার্তা টেমপ্লেট", value: "kitchensink", selected: defaultGroup === 10, }); main_select.append({ type: "select", name: "sub_group", event: Twinkle.warn.callback.change_subcategory, }); // Will be empty to begin with. form.append({ type: "input", name: "article", label: "সংযুক্ত পাতা", value: mw.util.getParamValue("vanarticle") || "", tooltip: "একটি পাতা বিজ্ঞপ্তির সাথে সংযুক্ত করা যেতে পারে, কারণ সম্ভবত আপনি উল্লিখিত পাতায় সম্পাদনা পুনর্বহাল করেছিলেন যে কারণে এই বিজ্ঞপ্তিটি পাঠাচ্ছেন। কোন পৃষ্ঠা সংযুক্ত না করতে এটি খালি রাখুন।", }); form.append({ type: "div", label: "", style: "color: red", id: "twinkle-warn-warning-messages", }); var more = form.append({ type: "field", name: "reasonGroup", label: "সতর্কীকরণ তথ্য", }); more.append({ type: "textarea", label: "ঐচ্ছিক বার্তা:", name: "reason", tooltip: "সম্ভবত একটি কারণ, অথবা আরো বিস্তারিত বিজ্ঞপ্তি সংযুক্ত করা আবশ্যক", }); var previewlink = document.createElement("a"); $(previewlink).click(function () { Twinkle.warn.callbacks.preview(result); // |result| is defined below }); previewlink.style.cursor = "pointer"; previewlink.textContent = "প্রাকদর্শন"; more.append({ type: "div", id: "warningpreview", label: [previewlink] }); more.append({ type: "div", id: "twinklewarn-previewbox", style: "display: none", }); more.append({ type: "submit", label: "জমা দিন" }); var result = form.render(); dialog.setContent(result); dialog.display(); result.main_group.root = result; result.previewer = new Morebits.wiki.preview( $(result).find("div#twinklewarn-previewbox").last()[0] ); // Potential notices for staleness and missed reverts var vanrevid = mw.util.getParamValue("vanarticlerevid"); if (vanrevid) { var message = ""; var query = {}; // If you tried reverting, check if *you* actually reverted if ( !mw.util.getParamValue("noautowarn") && mw.util.getParamValue("vanarticle") ) { // Via fluff link query = { action: "query", titles: mw.util.getParamValue("vanarticle"), prop: "revisions", rvstartid: vanrevid, rvlimit: 2, rvdir: "newer", rvprop: "user", format: "json", }; new Morebits.wiki.api( "আপনি পাতাটি সফলভাবে সম্পাদনা পুনর্বহাল করেছেন কিনা তা পরীক্ষা করা হচ্ছে", query, function (apiobj) { var rev = apiobj.getResponse().query.pages[0].revisions; var revertUser = rev && rev[1].user; if (revertUser && revertUser !== mw.config.get("wgUserName")) { message += " অন্য কেউ পাতাটিতে পুনর্বহাল করেছেন এবং ইতিমধ্যেই ব্যবহারকারীকে সতর্ক করেছে।"; $("#twinkle-warn-warning-messages").text("বিজ্ঞপ্তি:" + message); } } ).post(); } // Confirm edit wasn't too old for a warning var checkStale = function (vantimestamp) { var revDate = new Morebits.date(vantimestamp); if (vantimestamp && revDate.isValid()) { if (revDate.add(24, "hours").isBefore(new Date())) { message += " এই সম্পাদনাটি ২৪ ঘন্টারও বেশি আগে করা হয়েছিল তাই একটি সতর্কতা পুরনো হতে পারে।"; $("#twinkle-warn-warning-messages").text("বিজ্ঞপ্তি:" + message); } } }; var vantimestamp = mw.util.getParamValue("vantimestamp"); // Provided from a fluff module-based revert, no API lookup necessary if (vantimestamp) { checkStale(vantimestamp); } else { query = { action: "query", prop: "revisions", rvprop: "timestamp", revids: vanrevid, format: "json", }; new Morebits.wiki.api( "সংস্করণ টাইমস্ট্যাম্প আনা হচ্ছে", query, function (apiobj) { var rev = apiobj.getResponse().query.pages[0].revisions; vantimestamp = rev && rev[0].timestamp; checkStale(vantimestamp); } ).post(); } } // We must init the first choice (General Note); var evt = document.createEvent("Event"); evt.initEvent("change", true, true); result.main_group.dispatchEvent(evt); }; // This is all the messages that might be dispatched by the code // Each of the individual templates require the following information: // label (required): A short description displayed in the dialog // summary (required): The edit summary used. If an article name is entered, the summary is postfixed with "on [[article]]", and it is always postfixed with "." // suppressArticleInSummary (optional): Set to true to suppress showing the article name in the edit summary. Useful if the warning relates to attack pages, or some such. Twinkle.warn.messages = { levels: { "Common warnings": { "uw-vandalism": { level1: { label: "ধ্বংসপ্রবণতা", summary: "সাধারণ বিজ্ঞপ্তি: অগঠনমূলক সম্পাদনা", }, level2: { label: "ধ্বংসপ্রবণতা", summary: "দ্বিতীয় স্তরের সতর্কতা: অগঠনমূলক সম্পাদনা", }, level3: { label: "ধ্বংসপ্রবণতা", summary: "তৃতীয় স্তরের সতর্কতা: ধ্বংসপ্রবণতা", }, level4: { label: "ধ্বংসপ্রবণতা", summary: "সর্বশেষ সতর্কতা: ধ্বংসপ্রবণতা", }, level4im: { label: "ধ্বংসপ্রবণতা", summary: "একমাত্র সতর্কতা: ধ্বংসপ্রবণতা", }, }, "uw-disruptive": { level1: { label: "অগঠনমূলক সম্পাদনা", summary: "সাধারণ বিজ্ঞপ্তি: অগঠমূলক সম্পাদনা", }, level2: { label: "অগঠনমূলক সম্পাদনা", summary: "দ্বিতীয় স্তরের সতর্কতা: অগঠমূলক সম্পাদনা", }, level3: { label: "অগঠনমূলক সম্পাদনা", summary: "তৃতীয় স্তরের সতর্কতা: অগঠনমূলক সম্পাদনা", }, }, "uw-test": { level1: { label: "পরীক্ষামূলক সম্পাদনা", summary: "সাধারণ বিজ্ঞপ্তি: পরীক্ষামূলক সম্পাদনা", }, level2: { label: "পরীক্ষামূলক সম্পাদনা", summary: "দ্বিতীয় স্তরের সতর্কতা: পরীক্ষামূলক সম্পাদনা", }, level3: { label: "পরীক্ষামূলক সম্পাদনা", summary: "তৃতীয় স্তরের সতর্কতা: পরীক্ষামূলক সম্পাদনা", }, }, "uw-delete": { level1: { label: "পাতার বিষয়বস্তু অপসারণ বা খালি করা", summary: "সাধারণ বিজ্ঞপ্তি: পাতার বিষয়বস্তু অপসারণ বা খালি করা", }, level2: { label: "পাতার বিষয়বস্তু অপসারণ বা খালি করা", summary: "দ্বিতীয় স্তরের সতর্কতা: পাতার বিষয়বস্তু অপসারণ বা খালি করা", }, level3: { label: "পাতার বিষয়বস্তু অপসারণ বা খালি করা", summary: "তৃতীয় স্তরের সতর্কতা: পাতার বিষয়বস্তু অপসারণ বা খালি করা", }, level4: { label: "পাতার বিষয়বস্তু অপসারণ বা খালি করা", summary: "সর্বশেষ সতর্কতা: পাতার বিষয়বস্তু অপসারণ বা খালি করা", }, level4im: { label: "পাতার বিষয়বস্তু অপসারণ বা খালি করা", summary: "একমাত্র সতর্কতা: পাতার বিষয়বস্তু অপসারণ বা খালি করা", }, }, "uw-generic": { level4: { label: "জেনেরিক সতর্কতা (৪র্থ স্তরের অনুপস্থিত টেমপ্লেট সিরিজের জন্য)", summary: "সর্বশেষ সতর্কতা বিজ্ঞপ্তি", }, }, }, "Behavior in articles": { "uw-biog": { level1: { label: "জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", summary: "সাধারণ বিজ্ঞপ্তি: জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", }, level2: { label: "জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", summary: "দ্বিতীয় স্তরের সতর্কতা: জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", }, level3: { label: "জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত/মানহানীকর তথ্য যোগ করা", summary: "তৃতীয় স্তরের সতর্কতা: জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", }, level4: { label: "জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্র বিহীন মানহানিকর তথ্য যোগ করা", summary: "সর্বশেষ সতর্কতা: জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", }, level4im: { label: "জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্র বিহীন মানহানিকর তথ্য যোগ করা", summary: "একমাত্র সতর্কতা: জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", }, }, "uw-defamatory": { level1: { label: "মানহানিকর বিষয়বস্তুর সংযোজন", summary: "সাধারণ বিজ্ঞপ্তি: মানহানিকর বিষয়বস্তুর সংযোজন", }, level2: { label: "মানহানিকর বিষয়বস্তুর সংযোজন", summary: "দ্বিতীয় স্তরের সতর্কতা: মানহানিকর বিষয়বস্তুর সংযোজন", }, level3: { label: "মানহানিকর বিষয়বস্তুর সংযোজন", summary: "তৃতীয় স্তরের সতর্কতা: মানহানিকর বিষয়বস্তুর সংযোজন", }, level4: { label: "মানহানিকর বিষয়বস্তুর সংযোজন", summary: "সর্বশেষ সতর্কতা: মানহানিকর বিষয়বস্তুর সংযোজন", }, level4im: { label: "মানহানিকর বিষয়বস্তুর সংযোজন", summary: "একমাত্র সতর্কতা: মানহানিকর বিষয়বস্তুর সংযোজন", }, }, "uw-error": { level1: { label: "ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", summary: "সাধারণ বিজ্ঞপ্তি: ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ", }, level2: { label: "ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", summary: "দ্বিতীয় স্তরের সতর্কতা: ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ", }, level3: { label: "ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", summary: "তৃতীয় স্তরের সতর্কতা: ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", }, level4: { label: "ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", summary: "সর্বশেষ সতর্কতা: ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", }, }, "uw-genre": { level1: { label: "ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", summary: "সাধারণ বিজ্ঞপ্তি: ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", }, level2: { label: "ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", summary: "দ্বিতীয় স্তরের সতর্কতা: ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", }, level3: { label: "ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", summary: "তৃতীয় স্তরের সতর্কতা: ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", }, level4: { label: "ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", summary: "সর্বশেষ সতর্কতা: ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", }, }, "uw-image": { level1: { label: "নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", summary: "সাধারণ বিজ্ঞপ্তি: নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", }, level2: { label: "নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", summary: "দ্বিতীয় স্তরের সতর্কতা: নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", }, level3: { label: "নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", summary: "তৃতীয় স্তরের সতর্কতা: নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", }, level4: { label: "নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", summary: "সর্বশেষ সতর্কতা: নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", }, level4im: { label: "চিত্র-সংক্রান্ত ধ্বংসপ্রবণতা", summary: "একমাত্র সতর্কতা: চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", }, }, "uw-joke": { level1: { label: "নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", summary: "সাধারণ বিজ্ঞপ্তি: নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", }, level2: { label: "নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", summary: "দ্বিতীয় স্তরের সতর্কতা: নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", }, level3: { label: "নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", summary: "তৃতীয় স্তরের সতর্কতা: নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", }, level4: { label: "নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", summary: "সর্বশেষ সতর্কতা: নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", }, level4im: { label: "অনুপযুক্ত হাস্যরস ব্যবহার", summary: "একমাত্র সতর্কতা: অনুপযুক্ত হাস্যরস ব্যবহার", }, }, "uw-nor": { level1: { label: "উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", summary: "সাধারণ বিজ্ঞপ্তি: উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", }, level2: { label: "উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", summary: "দ্বিতীয় স্তরের সতর্কতা: উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", }, level3: { label: "উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", summary: "তৃতীয় স্তরের সতর্কতা: উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", }, level4: { label: "উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", summary: "সর্বশেষ সতর্কতা: উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", }, }, "uw-notcensored": { level1: { label: "উপাদান সেন্সরশিপ", summary: "সাধারণ বিজ্ঞপ্তি: উপাদান সেন্সরশিপ", }, level2: { label: "উপাদান সেন্সরশিপ", summary: "দ্বিতীয় স্তরের সতর্কতা: উপাদান সেন্সরশিপ", }, level3: { label: "উপাদান সেন্সরশিপ", summary: "তৃতীয় স্তরের সতর্কতা: উপাদান সেন্সরশিপ", }, }, "uw-own": { level1: { label: "নিবন্ধের মালিকানা", summary: "সাধারণ বিজ্ঞপ্তি: নিবন্ধের মালিকানা", }, level2: { label: "নিবন্ধের মালিকানা", summary: "দ্বিতীয় স্তরের সতর্কতা: নিবন্ধের মালিকানা", }, level3: { label: "নিবন্ধের মালিকানা", summary: "তৃতীয় স্তরের সতর্কতা: নিবন্ধের মালিকানা", }, level4: { label: "নিবন্ধের মালিকানা", summary: "সর্বশেষ সতর্কতা: নিবন্ধের মালিকানা", }, level4im: { label: "নিবন্ধের মালিকানা", summary: "একমাত্র সতর্কতা: নিবন্ধের মালিকানা", }, }, "uw-subtle": { level1: { label: "সূক্ষ্ম ধ্বংপ্রবণতা", summary: "সাধারণ বিজ্ঞপ্তি: সম্ভবত অগঠনমূলক সম্পাদনা", }, level2: { label: "সূক্ষ্ম ধ্বংপ্রবণতা", summary: "দ্বিতীয় স্তরের সতর্কতা: সম্ভাব্য অগঠনমূলক সম্পাদনা", }, level3: { label: "সূক্ষ্ম ধ্বংপ্রবণতা", summary: "তৃতীয় স্তরের সতর্কতা: সূক্ষ্ম ধ্বংপ্রবণতা", }, level4: { label: "সূক্ষ্ম ধ্বংপ্রবণতা", summary: "সর্বশেষ সতর্কতা: সূক্ষ্ম ধ্বংপ্রবণতা", }, }, "uw-tdel": { level1: { label: "রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", summary: "সাধারণ বিজ্ঞপ্তি: রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", }, level2: { label: "রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", summary: "দ্বিতীয় স্তরের সতর্কতা: রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", }, level3: { label: "রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", summary: "তৃতীয় স্তরের সতর্কতা: রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", }, level4: { label: "রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", summary: "সর্বশেষ সতর্কতা: রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", }, }, "uw-unsourced": { level1: { label: "তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", summary: "সাধারণ বিজ্ঞপ্তি: তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", }, level2: { label: "তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", summary: "দ্বিতীয় স্তরের সতর্কতা: তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", }, level3: { label: "তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", summary: "তৃতীয় স্তরের সতর্কতা: তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", }, level4: { label: "তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", summary: "সর্বশেষ সতর্কতা: তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", }, }, }, "প্রচারণা ও স্প্যাম": { "uw-advert": { level1: { label: "বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", summary: "সাধারণ বিজ্ঞপ্তি: বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", }, level2: { label: "বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", summary: "দ্বিতীয় স্তরের সতর্কতা: বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", }, level3: { label: "বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", summary: "তৃতীয় স্তরের সতর্কতা: বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", }, level4: { label: "বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", summary: "সর্বশেষ সতর্কতা: বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", }, level4im: { label: "বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", summary: "একমাত্র সতর্কতা: বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", }, }, "uw-npov": { level1: { label: "নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", summary: "সাধারণ বিজ্ঞপ্তি: নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", }, level2: { label: "নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", summary: "দ্বিতীয় স্তরের সতর্কতা: নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", }, level3: { label: "নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", summary: "তৃতীয় স্তরের সতর্কতা: নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", }, level4: { label: "নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", summary: "সর্বশেষ সতর্কতা: নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", }, }, "uw-paid": { level1: { label: "উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", summary: "সাধারণ বিজ্ঞপ্তি: উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", }, level2: { label: "উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", summary: "দ্বিতীয় স্তরের সতর্কতা: উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", }, level3: { label: "উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", summary: "তৃতীয় স্তরের সতর্কতা: উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", }, level4: { label: "উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", summary: "সর্বশেষ সতর্কতা: উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", }, }, "uw-spam": { level1: { label: "অনুপযুক্ত বহিঃসংযোগ যোগ করা", summary: "সাধারণ বিজ্ঞপ্তি: অনুপযুক্ত বহিঃসংযোগ যোগ করা", }, level2: { label: "স্প্যাম লিংক সংযোজন", summary: "দ্বিতীয় স্তরের সতর্কতা: স্প্যাম লিংক সংযোজন", }, level3: { label: "স্প্যাম লিংক সংযোজন", summary: "তৃতীয় স্তরের সতর্কতা: স্প্যাম লিংক সংযোজন", }, level4: { label: "স্প্যাম লিংক সংযোজন", summary: "সর্বশেষ সতর্কতা: স্প্যাম লিংক সংযোজন", }, level4im: { label: "স্প্যাম লিংক সংযোজন", summary: "একমাত্র সতর্কতা: স্প্যাম লিংক সংযোজন", }, }, }, "অন্য ব্যবহারকারীর প্রতি আচরণ": { "uw-agf": { level1: { label: "অন্য ব্যবহারকারীর উপর আস্থা না রাখা", summary: "সাধারণ বিজ্ঞপ্তি: অন্য ব্যবহারকারীর উপর আস্থা না রাখা", }, level2: { label: "অন্য ব্যবহারকারীর উপর আস্থা না রাখা", summary: "দ্বিতীয় স্তরের সতর্কতা: অন্য ব্যবহারকারীর উপর আস্থা না রাখা", }, level3: { label: "অন্য ব্যবহারকারীর উপর আস্থা না রাখা", summary: "তৃতীয় স্তরের সতর্কতা: অন্য ব্যবহারকারীর উপর আস্থা না রাখা", }, }, "uw-harass": { level1: { label: "অন্য ব্যবহারকারীদের হয়রানি", summary: "সাধারণ বিজ্ঞপ্তি: অন্য ব্যবহারকারীদের হয়রানি", }, level2: { label: "অন্য ব্যবহারকারীদের হয়রানি", summary: "দ্বিতীয় স্তরের সতর্কতা: অন্য ব্যবহারকারীদের হয়রানি", }, level3: { label: "অন্য ব্যবহারকারীদের হয়রানি", summary: "তৃতীয় স্তরের সতর্কতা: অন্য ব্যবহারকারীদের হয়রানি", }, level4: { label: "অন্য ব্যবহারকারীদের হয়রানি", summary: "সর্বশেষ সতর্কতা: অন্য ব্যবহারকারীদের হয়রানি", }, level4im: { label: "অন্য ব্যবহারকারীদের হয়রানি", summary: "একমাত্র সতর্কতা: অন্য ব্যবহারকারীদের হয়রানি", }, }, "uw-npa": { level1: { label: "একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", summary: "সাধারণ বিজ্ঞপ্তি: একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", }, level2: { label: "একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", summary: "দ্বিতীয় স্তরের সতর্কতা: একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", }, level3: { label: "একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", summary: "তৃতীয় স্তরের সতর্কতা: একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", }, level4: { label: "একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", summary: "সর্বশেষ সতর্কতা: একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", }, level4im: { label: "একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", summary: "একমাত্র সতর্কতা: একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", }, }, "uw-tempabuse": { level1: { label: "সতর্কতা ও বাধা দান টেমপ্লেটের অনুপযুক্ত ব্যবহার", summary: "সাধারণ বিজ্ঞপ্তি: সতর্কতা ও বাধা দান টেমপ্লেটের অনুপযুক্ত ব্যবহার", }, level2: { label: "সতর্কতা ও বাধা দান টেমপ্লেটের অনুপযুক্ত ব্যবহার", summary: "দ্বিতীয় স্তরের সতর্কতা: সতর্কতা ও বাধা দান টেমপ্লেটের অনুপযুক্ত ব্যবহার", }, }, }, "অপসারণ ট্যাগ অপসারণ": { "uw-afd": { level1: { label: "{{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", summary: "সাধারণ বিজ্ঞপ্তি: {{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", }, level2: { label: "{{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", summary: "দ্বিতীয় স্তরের সতর্কতা: {{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", }, level3: { label: "{{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", summary: "তৃতীয় স্তরের সতর্কতা: {{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", }, level4: { label: "{{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", summary: "সর্বশেষ সতর্কতা: {{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", }, }, "uw-blpprod": { level1: { label: "{{Prod blp}} টেমপ্লেট অপসারণ", summary: "সাধারণ বিজ্ঞপ্তি: {{Prod blp}} টেমপ্লেট অপসারণ", }, level2: { label: "{{Prod blp}} টেমপ্লেট অপসারণ", summary: "দ্বিতীয় স্তরের সতর্কতা: {{Prod blp}} টেমপ্লেট অপসারণ", }, level3: { label: "{{Prod blp}} টেমপ্লেট অপসারণ", summary: "তৃতীয় স্তরের সতর্কতা: {{Prod blp}} টেমপ্লেট অপসারণ", }, level4: { label: "{{Prod blp}} টেমপ্লেট অপসারণ", summary: "সর্বশেষ সতর্কতা: {{Prod blp}} টেমপ্লেট অপসারণ", }, }, "uw-idt": { level1: { label: "ফাইল অপসারন ট্যাগ অপসারণ", summary: "সাধারণ বিজ্ঞপ্তি: ফাইল অপসারন ট্যাগ অপসারণ", }, level2: { label: "ফাইল অপসারন ট্যাগ অপসারণ", summary: "দ্বিতীয় স্তরের সতর্কতা: ফাইল অপসারন ট্যাগ অপসারণ", }, level3: { label: "ফাইল অপসারন ট্যাগ অপসারণ", summary: "তৃতীয় স্তরের সতর্কতা: ফাইল অপসারন ট্যাগ অপসারণ", }, level4: { label: "ফাইল অপসারন ট্যাগ অপসারণ", summary: "সর্বশেষ সতর্কতা: ফাইল অপসারন ট্যাগ অপসারণ", }, }, "uw-speedy": { level1: { label: "দ্রুত অপসারণ ট্যাগ অপসারণ", summary: "সাধারণ বিজ্ঞপ্তি: দ্রুত অপসারণ ট্যাগ অপসারণ", }, level2: { label: "দ্রুত অপসারণ ট্যাগ অপসারণ", summary: "দ্বিতীয় স্তরের সতর্কতা: দ্রুত অপসারণ ট্যাগ অপসারণ", }, level3: { label: "দ্রুত অপসারণ ট্যাগ অপসারণ", summary: "তৃতীয় স্তরের সতর্কতা: দ্রুত অপসারণ ট্যাগ অপসারণ", }, level4: { label: "দ্রুত অপসারণ ট্যাগ অপসারণ", summary: "সর্বশেষ সতর্কতা: দ্রুত অপসারণ ট্যাগ অপসারণ", }, }, }, Other: { "uw-attempt": { level1: { label: "সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "সাধারণ বিজ্ঞপ্তি: সম্পাদনা ছাঁকনি ট্রিগার করা", }, level2: { label: "সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "দ্বিতীয় স্তরের সতর্কতা: সম্পাদনা ছাঁকনি ট্রিগার করা", }, level3: { label: "সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "তৃতীয় স্তরের সতর্কতা: সম্পাদনা ছাঁকনি ট্রিগার করা", }, level4: { label: "সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "সর্বশেষ সতর্কতা: সম্পাদনা ছাঁকনি ট্রিগার করা", }, level4im: { label: "সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "শুধুমাত্র সতর্কতা: সম্পাদনা ছাঁকনি ট্রিগার করা", }, }, "uw-chat": { level1: { label: "আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", summary: "সাধারণ বিজ্ঞপ্তি: আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", }, level2: { label: "আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", summary: "দ্বিতীয় স্তরের সতর্কতা: আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", }, level3: { label: "আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", summary: "তৃতীয় স্তরের সতর্কতা: আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", }, level4: { label: "আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", summary: "সর্বশেষ সতর্কতা: আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", }, }, "uw-create": { level1: { label: "অনুপযুক্ত পাতা তৈরি", summary: "সাধারণ বিজ্ঞপ্তি: অনুপযুক্ত পাতা তৈরি", }, level2: { label: "অনুপযুক্ত পাতা তৈরি", summary: "দ্বিতীয় স্তরের সতর্কতা: অনুপযুক্ত পাতা তৈরি", }, level3: { label: "অনুপযুক্ত পাতা তৈরি", summary: "তৃতীয় স্তরের সতর্কতা: অনুপযুক্ত পাতা তৈরি", }, level4: { label: "অনুপযুক্ত পাতা তৈরি", summary: "সর্বশেষ সতর্কতা: অনুপযুক্ত পাতা তৈরি", }, level4im: { label: "অনুপযুক্ত পাতা তৈরি", summary: "একমাত্র সতর্কতা: অনুপযুক্ত পাতা তৈরি", }, }, "uw-mos": { level1: { label: "রচনাশৈলী", summary: "সাধারণ বিজ্ঞপ্তি: ফরম্যাটিং, তারিখ, ভাষা ইত্যাদি (রচনাশৈলী)", }, level2: { label: "রচনাশৈলী", summary: "দ্বিতীয় স্তরের সতর্কতা: ফরম্যাটিং, তারিখ, ভাষা ইত্যাদি (রচনাশৈলী)", }, level3: { label: "রচনাশৈলী", summary: "তৃতীয় স্তরের সতর্কতা: ফরম্যাটিং, তারিখ, ভাষা ইত্যাদি (রচনাশৈলী)", }, level4: { label: "রচনাশৈলী", summary: "সর্বশেষ সতর্কতা: ফরম্যাটিং, তারিখ, ভাষা ইত্যাদি (রচনাশৈলী)", }, }, "uw-move": { level1: { label: "নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", summary: "সাধারণ বিজ্ঞপ্তি: নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", }, level2: { label: "নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", summary: "দ্বিতীয় স্তরের সতর্কতা: নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", }, level3: { label: "নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", summary: "তৃতীয় স্তরের সতর্কতা: নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", }, level4: { label: "নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", summary: "সর্বশেষ সতর্কতা: নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", }, level4im: { label: "নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", summary: "একমাত্র সতর্কতা: নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", }, }, "uw-tpv": { level1: { label: "অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", //Refactoring others' talk page comments summary: "সাধারণ বিজ্ঞপ্তি: অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", }, level2: { label: "অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", summary: "দ্বিতীয় স্তরের সতর্কতা: অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", }, level3: { label: "অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", summary: "তৃতীয় স্তরের সতর্কতা: অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", }, level4: { label: "অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", summary: "সর্বশেষ সতর্কতা: অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", }, level4im: { label: "অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", summary: "একমাত্র সতর্কতা: অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", }, }, "uw-upload": { level1: { label: "অবিশ্বকোষীয় চিত্র আপলোড", summary: "সাধারণ বিজ্ঞপ্তি: অবিশ্বকোষীয় চিত্র আপলোড", }, level2: { label: "অবিশ্বকোষীয় চিত্র আপলোড", summary: "দ্বিতীয় স্তরের সতর্কতা: অবিশ্বকোষীয় চিত্র আপলোড", }, level3: { label: "অবিশ্বকোষীয় চিত্র আপলোড", summary: "তৃতীয় স্তরের সতর্কতা: অবিশ্বকোষীয় চিত্র আপলোড", }, level4: { label: "অবিশ্বকোষীয় চিত্র আপলোড", summary: "সর্বশেষ সতর্কতা: অবিশ্বকোষীয় চিত্র আপলোড", }, level4im: { label: "অবিশ্বকোষীয় চিত্র আপলোড", summary: "একমাত্র সতর্কতা: অবিশ্বকোষীয় চিত্র আপলোড", }, }, }, }, singlenotice: { "uw-agf-sock": { label: "একাধিক অ্যাকাউন্টের ব্যবহার (আস্থা রেখে)", summary: "বিজ্ঞপ্তি: একাধিক অ্যাকাউন্টের ব্যবহার", }, /** 'uw-aiv': { label: 'Bad AIV report', summary: 'বিজ্ঞপ্তি: Bad AIV report' }, **/ "uw-autobiography": { label: "আত্মজীবনী তৈরি", summary: "বিজ্ঞপ্তি: আত্মজীবনী তৈরি", }, "uw-badcat": { label: "ভুল বিষয়শ্রেণী যোগ", summary: "বিজ্ঞপ্তি: ভুল বিষয়শ্রেণী যোগ", }, "বাংলায় সম্পাদনা সারাংশ দিন (টুইংকল)": { label: "ইংরেজিতে সম্পাদনা সারাংশ দেওয়া", summary: "বিজ্ঞপ্তি: ইংরেজিতে সম্পাদনা সারাংশ দেওয়া", }, "Uw-np": { label: "অ-উল্লেখযোগ্য ব্যক্তির নাম যোগ", summary: "বিজ্ঞপ্তি: অ-উল্লেখযোগ্য ব্যক্তির নাম যোগ", }, "Uw-patrol": { label: "টহলদান নীতিমালা লঙ্ঘন", summery: "বিজ্ঞপ্তি: নিবন্ধ তৈরির ৪৮ ঘন্টা পার হওয়ার পূর্বেই রক্ষণাবেক্ষণ ট্যাগ যোগ", }, "uw-badlistentry": { label: "তালিকায় অনুপযুক্ত ভুক্তি যোগ", summary: "বিজ্ঞপ্তি: তালিকায় অনুপযুক্ত ভুক্তি যোগ", }, "uw-bite": { label: 'নবাগতদের "জ্বালাতন"', summary: 'বিজ্ঞপ্তি: "নবাগতদের জ্বালাতন', suppressArticleInSummary: true, // non-standard (user name, not article), and not necessary }, "uw-coi": { label: "স্বার্থের সংঘাত", summary: "বিজ্ঞপ্তি: স্বার্থের সংঘাত", heading: "একটি স্বার্থের সংঘাত ব্যবস্থাপনা", }, "uw-controversial": { label: "বিতর্কিত উপাদান যোগ", summary: "বিজ্ঞপ্তি: বিতর্কিত উপাদান যোগ", }, "uw-copying": { label: "অন্য পাতায় লেখা অনুলিপি", summary: "বিজ্ঞপ্তি: অন্য পাতায় লেখা অনুলিপি", }, "uw-crystal": { label: "অনুমাননির্ভর বা অনিশ্চিত তথ্য যোগ করা", summary: "বিজ্ঞপ্তি: অনুমাননির্ভর বা অনিশ্চিত তথ্য যোগ করা", }, "uw-c&pmove": { label: "অনুলিপি প্রতিলিপি করে পাতা স্থানান্তর", summary: "বিজ্ঞপ্তি: অনুলিপি প্রতিলিপি করে পাতা স্থানান্তর", }, "uw-dab": { label: "দ্ব্যর্থতা নিরসন পাতায় ভুল সম্পাদনা", summary: "বিজ্ঞপ্তি: দ্ব্যর্থতা নিরসন পাতায় ভুল সম্পাদনা", }, "uw-date": { label: "অপ্রয়োজনে তারিখের বিন্যাস পরিবর্তন করা", summary: "বিজ্ঞপ্তি: অপ্রয়োজনে তারিখের বিন্যাস পরিবর্তন করা", }, "uw-deadlink": { label: "অকার্যকর সংযোগ সম্বলিত সঠিক উৎস সরানো", summary: "বিজ্ঞপ্তি: অকার্যকর সংযোগ সম্বলিত সঠিক উৎস সরানো", }, "uw-displaytitle": { label: "DISPLAYTITLE এর ভুল ব্যবহার", summary: "বিজ্ঞপ্তি: DISPLAYTITLE এর ভুল ব্যবহার", }, "uw-draftfirst": { label: "দ্রুত মুছে ফেলার ঝুঁকি এড়াতে ব্যবহারকারীর ব্যবহারকারী নামস্থানে খসড়া তৈরি করা উচিত", summary: "বিজ্ঞপ্তি: দয়া করে [[Help:Userspace draft|ব্যবহারকারী নামস্থানে]] খসড়া তৈরি করুন", }, "uw-editsummary": { label: "নতুন ব্যবহারকারী সম্পাদনা সারাংশ ব্যবহার করছে না", summary: "বিজ্ঞপ্তি: সম্পাদনা সারাংশ ব্যবহার না করা", }, "uw-editsummary2": { label: "অভিজ্ঞ ব্যবহারকারী সম্পাদনা সারাংশ ব্যবহার করছে না", summary: "বিজ্ঞপ্তি: সম্পাদনা সারাংশ ব্যবহার না করা", }, "uw-elinbody": { label: "একটি নিবন্ধের মূল অংশে বহিঃসংযোগ যোগ করা", summary: "বিজ্ঞপ্তি: বহিঃসংযোগ নিবন্ধের নিচে বহিঃসংযোগ অনুচ্ছেদে যোগ করুন", }, "uw-bangla": { label: "বাংলায় যোগাযোগ না করা", summary: "বিজ্ঞপ্তি: বাংলায় যোগাযোগ না করা", }, "uw-hasty": { label: "তাড়াহুড়ো করে দ্রুত অপসারণ ট্যাগ যোগ", summary: "বিজ্ঞপ্তি: অপসারণ ট্যাগ যোগ করার আগে প্রণেতাকে নিবন্ধটির মানোন্নয়নের সময় দিন", }, "uw-italicize": { label: "নিবন্ধের মধ্যে বই, চলচ্চিত্র, অ্যালবাম, ম্যাগাজিন, টিভি সিরিজ ইত্যাদির নাম ইটালিক করুন", summary: "বিজ্ঞপ্তি: নিবন্ধের মধ্যে বই, চলচ্চিত্র, অ্যালবাম, ম্যাগাজিন, টিভি সিরিজ ইত্যাদির নাম ইটালিক করুন", }, /**'uw-lang': { label: 'Unnecessarily changing between British and American English', summary: 'বিজ্ঞপ্তি: Unnecessarily changing between British and American English', heading: 'National varieties of English' }, **/ //দরকার নেই "uw-linking": { label: "লাল লিংকের অত্যধিক কিংবা বার বার নীল লিংকের ব্যবহার", summary: "বিজ্ঞপ্তি: লাল লিংকের অত্যধিক কিংবা বার বার নীল লিংকের ব্যবহার", }, "uw-minor": { label: "অনুল্লেখ্য সম্পাদনা চেক বক্সের ভুল ব্যবহার", summary: "বিজ্ঞপ্তি: অনুল্লেখ্য সম্পাদনা চেক বক্সের ভুল ব্যবহার", }, "uw-notbangla": { label: "বাংলা নয় এমন নিবন্ধ তৈরি", summary: "বিজ্ঞপ্তি: বাংলা নয় এমন নিবন্ধ তৈরি", }, "uw-notbanglaedit": { label: "নিবন্ধে বাংলা নয় এমন বিষয়বস্তু সংযোজন", summary: "বিজ্ঞপ্তি: নিবন্ধে বাংলা নয় এমন বিষয়বস্তু সংযোজন", }, "uw-notvote": { label: "আমরা ঐকমত্য ব্যবহার করি, ভোট নয়", summary: "বিজ্ঞপ্তি: আমরা ঐকমত্য ব্যবহার করি, ভোট নয়", }, "uw-plagiarism": { label: "অ্যাট্রিবিউশন ছাড়াই পাবলিক ডোমেইন উৎস থেকে কপি করা", summary: "বিজ্ঞপ্তি: অ্যাট্রিবিউশন ছাড়াই পাবলিক ডোমেইন উৎস থেকে কপি করা", }, "uw-preview": { label: "ভুল এড়াতে প্রাকদর্শন বাটন ব্যবহার করুন", summary: "বিজ্ঞপ্তি: ভুল এড়াতে প্রাকদর্শন বাটন ব্যবহার করুন", }, "uw-redlink": { label: "নির্বিচারে লাল লিংক অপসারণ", summary: "বিজ্ঞপ্তি: লাল লিংক অপসারণ করার সময় সতর্ক হোন", }, "uw-selfrevert": { label: "নিজের পরীক্ষা-নিরীক্ষা পুনর্বহাল করা", summary: "বিজ্ঞপ্তি: নিজের পরীক্ষা-নিরীক্ষা পুনর্বহাল করা", }, "uw-socialnetwork": { label: "উইকিপিডিয়া সামাজিক যোগাযোগমাধ্যম নয়", summary: "বিজ্ঞপ্তি: উইকিপিডিয়া সামাজিক যোগাযোগমাধ্যম নয়", }, "uw-sofixit": { label: "সাহসী হোন এবং নিজেই কোনো কিছু সংশোধন করুন", summary: "বিজ্ঞপ্তি: সাহস করে নিজেই কোনো কিছু সংশোধন করতে পারেন", }, "uw-spoiler": { label: "স্পয়লার সতর্কতা যোগ অথবা যথাযথ অনুচ্ছেদ থেকে স্পয়লার অপসারণ", summary: "বিজ্ঞপ্তি: উইকিপিডিয়া নিবন্ধে সম্ভাব্য 'স্পয়লার' মুছবেন না বা পতাকাঙ্কিত করবেন না", }, "uw-talkinarticle": { label: "নিবন্ধের ভেতরে বার্তা", summary: "বিজ্ঞপ্তি: নিবন্ধের ভেতরে বার্তা", }, "uw-tilde": { label: "পোস্টে স্বাক্ষর না করা", summary: "বিজ্ঞপ্তি: পোস্টে স্বাক্ষর না করা", }, "uw-toppost": { label: "আলাপ পাতার শীর্ষে বার্তা প্রদান", summary: "বিজ্ঞপ্তি: আলাপ পাতার শীর্ষে বার্তা প্রদান", }, "uw-unattribcc": { label: "নির্দেশ ছাড়াই উপযুক্ত-লাইসেন্সযুক্ত উৎস থেকে অনুলিপি করা", summary: "বিজ্ঞপ্তি: নির্দেশ ছাড়াই উপযুক্ত-লাইসেন্সযুক্ত উৎস থেকে অনুলিপি করা", //Copying from compatibility-licensed sources without attribution }, "uw-userspace draft finish": { label: "অনেক পুরাতন ব্যবহারকারী খসড়া", summary: "বিজ্ঞপ্তি: অনেক পুরাতন ব্যবহারকারী খসড়া", }, "uw-vgscope": { label: "ভিডিও গেম প্লে, প্রতারণা বা নির্দেশাবলী যোগ করা", summary: "বিজ্ঞপ্তি: ভিডিও গেম প্লে, প্রতারণা বা নির্দেশাবলী যোগ করা", }, "uw-warn": { label: "ধ্বংসপ্রবণতা পুনর্বহাল করার সময় ব্যবহারকারীকে সতর্ক বার্তা দিন", summary: "বিজ্ঞপ্তি: ধ্বংসপ্রবণতা পুনর্বহাল করার সময় ব্যবহারকারীকে সতর্কতা বার্তা দিন", }, "uw-wrongsummary": { label: "ভুল বা অনুপযুক্ত সম্পাদনা সারাংশ ব্যবহার করা", summary: "সতর্কতা: ভুল বা অনুপযুক্ত সম্পাদনা সারাংশ ব্যবহার করা", }, }, singlewarn: { "uw-3rr": { label: "সম্ভাব্য তিন-প্রত্যাবর্তন নিয়ম লঙ্ঘন; uw-ew ও দেখুন", summary: "সতর্কতা: তিন-প্রত্যাবর্তন নিয়ম", }, "uw-affiliate": { label: "অ্যাফিলিয়েট মার্কেটিং", summary: "সতর্কতা: অ্যাফিলিয়েট মার্কেটিং", }, "uw-attack": { label: "আক্রমণাত্বক পাতা তৈরি", summary: "সতর্কতা: আক্রমণাত্বক পাতা তৈরি", suppressArticleInSummary: true, }, "uw-botun": { label: "বট ব্যবহারকারী নাম", summary: "সতর্কতা: বট ব্যবহারকারী নাম", }, "uw-canvass": { label: "ক্যানভাসিং", summary: "সতর্কতা: ক্যানভাসিং", }, "uw-copyright": { label: "কপিরাইট লঙ্ঘন", summary: "সতর্কতা: কপিরাইট লঙ্ঘন", }, "uw-copyright-link": { label: "কপিরাইটযুক্ত কাজের লঙ্ঘনের সাথে সংযোগ স্থাপন করা হচ্ছে", //Linking to copyrighted works violation summary: "সতর্কতা: কপিরাইটযুক্ত কাজের লঙ্ঘনের সাথে সংযোগ স্থাপন করা হচ্ছে", }, "uw-copyright-new": { label: "কপিরাইট নীতি লঙ্ঘন (নতুন ব্যবহারকারীদের জন্য ব্যাখ্যা সহ)", summary: "বিজ্ঞপ্তি: কপিরাইট সমস্যা এড়ানো", heading: "উইকিপিডিয়া ও কপিরাইট", }, "uw-copyright-remove": { label: "নিবন্ধ থেকে {{copyvio}} টেমপ্লেট অপসারণ", summary: "সতর্কতা: {{copyvio}} টেমপ্লেট অপসারণ", }, "uw-efsummary": { label: "সম্পাদনা সারাংশে সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "সতর্কতা: সম্পাদনা সারাংশে সম্পাদনা ছাঁকনি ট্রিগার করা", }, "uw-ew": { label: "সম্পাদনা যুদ্ধ (শক্তিশালী শব্দ)", // Edit warring summary: "সতর্কতা: সম্পাদনা যুদ্ধ", }, "uw-ewsoft": { label: "সম্পাদনা যুদ্ধ (নতুনদের জন্য নরম শব্দ)", summary: "সতর্কতা: সম্পাদনা যুদ্ধ", }, "uw-hijacking": { label: "নিবন্ধ ছিনতাই", // Hijacking articles summary: "সতর্কতা: নিবন্ধ ছিনতাই", }, "uw-hoax": { label: "প্রতারণা তৈরি করা", // Creating hoaxes summary: "সতর্কতা: প্রতারণা তৈরি করা", }, "uw-legal": { label: "আইনি হুমকি প্রদান", summary: "সতর্কতা: আইনি হুমকি প্রদান", }, "uw-login": { label: "লগ আউট অবস্থায় সম্পাদনা", summary: "সতর্কতা: লগ আউট অবস্থায় সম্পাদনা", }, "uw-multipleIPs": { label: "একাধিক আইপি ব্যবহার", summary: "সতর্কতা: একাধিক আইপি ব্যবহার করে ধ্বংসপ্রবণতা", }, "uw-pinfo": { label: "ব্যক্তিগত তথ্য (outing)", summary: "সতর্কতা: ব্যক্তিগত তথ্য", }, "uw-salt": { label: "ভিন্ন শিরোনামের অধীনে সুরক্ষিত নিবন্ধগুলি পুনরায় তৈরি করা", summary: "বিজ্ঞপ্তি: একটি ভিন্ন শিরোনামের অধীনে সুরক্ষিত নিবন্ধগুলি পুনরায় তৈরি করা হচ্ছে", }, "uw-socksuspect": { label: "সকপাপেট্রি", summary: "সতর্কতা: আপনি একজন সন্দেহভাজন [[WP:SOCK|সকপাপেট]]", // of User:... }, "uw-upv": { label: "ব্যবহারকারী পাতা ধ্বংসপ্রবণতা", summary: "সতর্কতা: ব্যবহারকারী পাতা ধ্বংসপ্রবণতা", }, "uw-username": { label: "ব্যবহারকারী নাম নীতিমালা বিরোধী", summary: "সতর্কতা: আপনার ব্যবহারকারী নাম সম্ভবত নীতিমালা বিরোধী", suppressArticleInSummary: true, // not relevant for this template }, "uw-coi-username": { label: "ব্যবহারকারী নাম নীতিমালা বিরোধী, এবং স্বার্থের সংঘাত", summary: "সতর্কতা: ব্যবহারকারী নাম ও স্বার্থের সংঘাত নীতি", heading: "আপনার ব্যবহারকারী নাম", }, "uw-userpage": { label: "ব্যবহারকারী পাতা বা উপপাতা নীতিমালা বিরোধী", summary: "সতর্কতা: ব্যবহারকারী পাতা বা উপপাতা নীতিমালা বিরোধী", }, }, }; // Used repeatedly below across menu rebuilds Twinkle.warn.prev_article = null; Twinkle.warn.prev_reason = null; Twinkle.warn.talkpageObj = null; Twinkle.warn.callback.change_category = function twinklewarnCallbackChangeCategory(e) { var value = e.target.value; var sub_group = e.target.root.sub_group; sub_group.main_group = value; var old_subvalue = sub_group.value; var old_subvalue_re; if (old_subvalue) { if (value === "kitchensink") { // Exact match possible in kitchensink menu old_subvalue_re = new RegExp(mw.util.escapeRegExp(old_subvalue)); } else { old_subvalue = old_subvalue.replace(/\d*(im)?$/, ""); old_subvalue_re = new RegExp( mw.util.escapeRegExp(old_subvalue) + "(\\d*(?:im)?)$" ); } } while (sub_group.hasChildNodes()) { sub_group.removeChild(sub_group.firstChild); } var selected = false; // worker function to create the combo box entries var createEntries = function (contents, container, wrapInOptgroup, val) { val = typeof val !== "undefined" ? val : value; // IE doesn't support default parameters // level2->2, singlewarn->''; also used to distinguish the // scaled levels from singlenotice, singlewarn, and custom var level = val.replace(/^\D+/g, ""); // due to an apparent iOS bug, we have to add an option-group to prevent truncation of text // (search WT:TW archives for "Problem selecting warnings on an iPhone") if (wrapInOptgroup && $.client.profile().platform === "iphone") { var wrapperOptgroup = new Morebits.quickForm.element({ type: "optgroup", label: "ব্যবহারযোগ্য টেমপ্লেটগুলো", }); wrapperOptgroup = wrapperOptgroup.render(); container.appendChild(wrapperOptgroup); container = wrapperOptgroup; } $.each(contents, function (itemKey, itemProperties) { // Skip if the current template doesn't have a version for the current level if (!!level && !itemProperties[val]) { return; } var key = typeof itemKey === "string" ? itemKey : itemProperties.value; var template = key + level; var elem = new Morebits.quickForm.element({ type: "option", label: "{{" + template + "}}: " + (level ? itemProperties[val].label : itemProperties.label), value: template, }); // Select item best corresponding to previous selection if (!selected && old_subvalue && old_subvalue_re.test(template)) { elem.data.selected = selected = true; } var elemRendered = container.appendChild(elem.render()); $(elemRendered).data("messageData", itemProperties); }); }; var createGroup = function (warnGroup, label, wrapInOptgroup, val) { wrapInOptgroup = typeof wrapInOptgroup !== "undefined" ? wrapInOptgroup : true; var optgroup = new Morebits.quickForm.element({ type: "optgroup", label: label, }); optgroup = optgroup.render(); sub_group.appendChild(optgroup); createEntries(warnGroup, optgroup, wrapInOptgroup, val); }; switch (value) { case "singlenotice": case "singlewarn": createEntries(Twinkle.warn.messages[value], sub_group, true); break; case "singlecombined": var unSortedSinglets = $.extend( {}, Twinkle.warn.messages.singlenotice, Twinkle.warn.messages.singlewarn ); var sortedSingletMessages = {}; Object.keys(unSortedSinglets) .sort() .forEach(function (key) { sortedSingletMessages[key] = unSortedSinglets[key]; }); createEntries(sortedSingletMessages, sub_group, true); break; case "custom": createEntries(Twinkle.getPref("customWarningList"), sub_group, true); break; case "kitchensink": ["level1", "level2", "level3", "level4", "level4im"].forEach( function (lvl) { $.each( Twinkle.warn.messages.levels, function (levelGroupLabel, levelGroup) { createGroup( levelGroup, "Level " + lvl.slice(5) + ": " + levelGroupLabel, true, lvl ); } ); } ); createGroup( Twinkle.warn.messages.singlenotice, "Single-issue notices" ); createGroup( Twinkle.warn.messages.singlewarn, "Single-issue warnings" ); createGroup(Twinkle.getPref("customWarningList"), "Custom warnings"); break; case "level1": case "level2": case "level3": case "level4": case "level4im": // Creates subgroup regardless of whether there is anything to place in it; // leaves "Removal of deletion tags" empty for 4im $.each( Twinkle.warn.messages.levels, function (groupLabel, groupContents) { createGroup(groupContents, groupLabel, false); } ); break; case "autolevel": // Check user page to determine appropriate level var autolevelProc = function () { var wikitext = Twinkle.warn.talkpageObj.getPageText(); // history not needed for autolevel var latest = Twinkle.warn.callbacks.dateProcessing(wikitext)[0]; // Pseudo-params with only what's needed to parse the level i.e. no messageData var params = { sub_group: old_subvalue, article: e.target.root.article.value, }; var lvl = "level" + Twinkle.warn.callbacks.autolevelParseWikitext( wikitext, params, latest )[1]; // Identical to level1, etc. above but explicitly provides the level $.each( Twinkle.warn.messages.levels, function (groupLabel, groupContents) { createGroup(groupContents, groupLabel, false, lvl); } ); // Trigger subcategory change, add select menu, etc. Twinkle.warn.callback.postCategoryCleanup(e); }; if (Twinkle.warn.talkpageObj) { autolevelProc(); } else { var usertalk_page = new Morebits.wiki.page( "ব্যবহারকারী_আলাপ:" + mw.config.get("wgRelevantUserName"), "পূর্ববর্তী সতর্কবার্তাসমূহ লোড হচ্ছে।" ); usertalk_page.setFollowRedirect(true, false); usertalk_page.load( function (pageobj) { Twinkle.warn.talkpageObj = pageobj; // Update talkpageObj autolevelProc(); }, function () { // Catch and warn if the talkpage can't load, // most likely because it's a cross-namespace redirect // Supersedes the typical $autolevelMessage added in autolevelParseWikitext var $noTalkPageNode = $("<strong/>", { text: "ব্যবহারকারীর আলাপ পাতা লোড হচ্ছে না; এটি একটি ক্রস-নেমস্পেসের পুনঃনির্দেশ হতে পারে। স্বয়ংক্রিয় লেভেল সনাক্তকরণ সম্ভব নয়।", id: "twinkle-warn-autolevel-message", css: { color: "red" }, }); $noTalkPageNode.insertBefore( $("#twinkle-warn-warning-messages") ); // If a preview was opened while in a different mode, close it // Should nullify the need to catch the error in preview callback e.target.root.previewer.closePreview(); } ); } break; default: alert("টুইংকেল সতর্কীকরণে অজানা সতর্কীকরণ গ্রুপ"); break; } // Trigger subcategory change, add select menu, etc. // Here because of the async load for autolevel if (value !== "autolevel") { // reset any autolevel-specific messages while we're here $("#twinkle-warn-autolevel-message").remove(); Twinkle.warn.callback.postCategoryCleanup(e); } }; Twinkle.warn.callback.postCategoryCleanup = function twinklewarnCallbackPostCategoryCleanup(e) { // clear overridden label on article textbox Morebits.quickForm.setElementTooltipVisibility( e.target.root.article, true ); Morebits.quickForm.resetElementLabel(e.target.root.article); // Trigger custom label/change on main category change Twinkle.warn.callback.change_subcategory(e); // Use select2 to make the select menu searchable if (!Twinkle.getPref("oldSelect")) { $("select[name=sub_group]") .select2({ width: "100%", matcher: Morebits.select2.matchers.optgroupFull, templateResult: Morebits.select2.highlightSearchMatches, language: { searching: Morebits.select2.queryInterceptor, }, }) .change(Twinkle.warn.callback.change_subcategory); $(".select2-selection").keydown(Morebits.select2.autoStart).focus(); mw.util.addCSS( // Increase height ".select2-container .select2-dropdown .select2-results > .select2-results__options { max-height: 350px; }" + // Reduce padding ".select2-results .select2-results__option { padding-top: 1px; padding-bottom: 1px; }" + ".select2-results .select2-results__group { padding-top: 1px; padding-bottom: 1px; } " + // Adjust font size ".select2-container .select2-dropdown .select2-results { font-size: 13px; }" + ".select2-container .selection .select2-selection__rendered { font-size: 13px; }" ); } }; Twinkle.warn.callback.change_subcategory = function twinklewarnCallbackChangeSubcategory(e) { var main_group = e.target.form.main_group.value; var value = e.target.form.sub_group.value; // Tags that don't take a linked article, but something else (often a username). // The value of each tag is the label next to the input field var notLinkedArticle = { "uw-agf-sock": "অন্য অ্যাকাউন্টের ঐচ্ছিক ব্যবহারকারীর নাম ('ব্যবহারকারী:' ছাড়া) ", "uw-bite": "'দংশিত' ব্যবহারকারীর ব্যবহারকারীর নাম ('ব্যবহারকারী:' ছাড়া) ", "uw-socksuspect": "সক মাস্টারের ব্যবহারকারী নাম, যদি জানা থাকে ('ব্যবহারকারী:' ছাড়া) ", "uw-username": "ব্যবহারকারী নাম নীতিমালা ভঙ্গ করে কারণ... ", "uw-aiv": "ঐচ্ছিক ব্যবহারকারীর নাম যেটি রিপোর্ট করা হয়েছে ('ব্যবহারকারী:' ছাড়া) ", }; if ( ["singlenotice", "singlewarn", "singlecombined", "kitchensink"].indexOf( main_group ) !== -1 ) { if (notLinkedArticle[value]) { if (Twinkle.warn.prev_article === null) { Twinkle.warn.prev_article = e.target.form.article.value; } e.target.form.article.notArticle = true; e.target.form.article.value = ""; // change form labels according to the warning selected Morebits.quickForm.setElementTooltipVisibility( e.target.form.article, false ); Morebits.quickForm.overrideElementLabel( e.target.form.article, notLinkedArticle[value] ); } else if (e.target.form.article.notArticle) { if (Twinkle.warn.prev_article !== null) { e.target.form.article.value = Twinkle.warn.prev_article; Twinkle.warn.prev_article = null; } e.target.form.article.notArticle = false; Morebits.quickForm.setElementTooltipVisibility( e.target.form.article, true ); Morebits.quickForm.resetElementLabel(e.target.form.article); } } // add big red notice, warning users about how to use {{uw-[coi-]username}} appropriately $("#tw-warn-red-notice").remove(); var $redWarning; if (value === "uw-username") { $redWarning = $( "<div style='color: red;' id='tw-warn-red-notice'>{{uw-username}} ব্যবহারকারী নাম সম্পর্কিত <b>গুরুতর</b> নীতি লঙ্ঘনের জন্য ব্যবহার করা উচিত <b>নয়</b>। " + "গুরুতর লঙ্ঘন হলে তা সরাসরি UAA-তে জানানো উচিত (টুইংকেলের ARV টুলের মাধ্যমে)। " + "ব্যবহারকারীর সাথে আলোচনা করার জন্য {{uw-username}} শুধুমাত্র সর্বশেষ ক্ষেত্রে ব্যবহার করা উচিত।</div>" ); $redWarning.insertAfter( Morebits.quickForm.getElementLabelObject(e.target.form.reasonGroup) ); } else if (value === "uw-coi-username") { $redWarning = $( "<div style='color: red;' id='tw-warn-red-notice'>{{uw-coi-username}} ব্যবহারকারী নাম সম্পর্কিত <b>গুরুতর</b> নীতি লঙ্ঘনের জন্য ব্যবহার করা উচিত <b>নয়</b>। " + "গুরুতর লঙ্ঘন হলে তা সরাসরি UAA-তে জানানো উচিত (টুইংকেলের ARV টুলের মাধ্যমে)। " + "ব্যবহারকারীর সাথে আলোচনা করার জন্য {{uw-coi-username}} শুধুমাত্র সর্বশেষ ক্ষেত্রে ব্যবহার করা উচিত।</div>" ); $redWarning.insertAfter( Morebits.quickForm.getElementLabelObject(e.target.form.reasonGroup) ); } }; Twinkle.warn.callbacks = { getWarningWikitext: function (templateName, article, reason, isCustom) { var text = "{{subst:" + templateName; // add linked article for user warnings if (article) { // c&pmove has the source as the first parameter if (templateName === "uw-c&pmove") { text += "|to=" + article; } else { text += "|1=" + article; } } if (reason && !isCustom) { // add extra message if ( templateName === "uw-csd" || templateName === "uw-probation" || templateName === "uw-userspacenoindex" || templateName === "uw-userpage" ) { text += "|3=''" + reason + "''"; } else { text += "|2=''" + reason + "''"; } } text += "}}"; if (reason && isCustom) { // we assume that custom warnings lack a {{{2}}} parameter text += " ''" + reason + "''"; } return text + " ~~~~"; }, showPreview: function (form, templatename) { var input = Morebits.quickForm.getInputData(form); // Provided on autolevel, not otherwise templatename = templatename || input.sub_group; var linkedarticle = input.article; var templatetext; templatetext = Twinkle.warn.callbacks.getWarningWikitext( templatename, linkedarticle, input.reason, input.main_group === "custom" ); form.previewer.beginRender( templatetext, "ব্যবহারকারী_আলাপ:" + mw.config.get("wgRelevantUserName") ); // Force wikitext/correct username }, // Just a pass-through unless the autolevel option was selected preview: function (form) { if (form.main_group.value === "autolevel") { // Always get a new, updated talkpage for autolevel processing var usertalk_page = new Morebits.wiki.page( "ব্যবহারকারী_আলাপ:" + mw.config.get("wgRelevantUserName"), "পূর্ববর্তী সতর্কবার্তা গুলো লোড হচ্ছে।" ); usertalk_page.setFollowRedirect(true, false); // Will fail silently if the talk page is a cross-ns redirect, // removal of the preview box handled when loading the menu usertalk_page.load(function (pageobj) { Twinkle.warn.talkpageObj = pageobj; // Update talkpageObj var wikitext = pageobj.getPageText(); // history not needed for autolevel var latest = Twinkle.warn.callbacks.dateProcessing(wikitext)[0]; var params = { sub_group: form.sub_group.value, article: form.article.value, messageData: $(form.sub_group) .find('option[value="' + $(form.sub_group).val() + '"]') .data("messageData"), }; var template = Twinkle.warn.callbacks.autolevelParseWikitext( wikitext, params, latest )[0]; Twinkle.warn.callbacks.showPreview(form, template); // If the templates have diverged, fake a change event // to reload the menu with the updated pageobj if (form.sub_group.value !== template) { var evt = document.createEvent("Event"); evt.initEvent("change", true, true); form.main_group.dispatchEvent(evt); } }); } else { Twinkle.warn.callbacks.showPreview(form); } }, /** * Used in the main and autolevel loops to determine when to warn * about excessively recent, stale, or identical warnings. * @param {string} wikitext The text of a user's talk page, from getPageText() * @returns {Object[]} - Array of objects: latest contains most recent * warning and date; history lists all prior warnings */ dateProcessing: function (wikitext) { var history_re = /<!--\s?Template:([uU]w-.*?)\s?-->.*?(\d{1,2}:\d{1,2}, \d{1,2} \w+ \d{4} \(UTC\))/g; var history = {}; var latest = { date: new Morebits.date(0), type: "" }; var current; while ((current = history_re.exec(wikitext)) !== null) { var template = current[1], current_date = new Morebits.date(current[2]); if ( !(template in history) || history[template].isBefore(current_date) ) { history[template] = current_date; } if (!latest.date.isAfter(current_date)) { latest.date = current_date; latest.type = template; } } return [latest, history]; }, /** * Main loop for deciding what the level should increment to. Most of * this is really just error catching and updating the subsequent data. * May produce up to two notices in a twinkle-warn-autolevel-messages div * * @param {string} wikitext The text of a user's talk page, from getPageText() (required) * @param {Object} params Params object: sub_group is the template (required); * article is the user-provided article (form.article) used to link ARV on recent level4 warnings; * messageData is only necessary if getting the full template, as it's * used to ensure a valid template of that level exists * @param {Object} latest First element of the array returned from * dateProcessing. Provided here rather than processed within to avoid * repeated call to dateProcessing * @param {(Date|Morebits.date)} date Date from which staleness is determined * @param {Morebits.status} statelem Status element, only used for handling error in final execution * * @returns {Array} - Array that contains the full template and just the warning level */ autolevelParseWikitext: function ( wikitext, params, latest, date, statelem ) { var level; // undefined rather than '' means the isNaN below will return true if (/\d(?:im)?$/.test(latest.type)) { // level1-4im level = parseInt(latest.type.replace(/.*(\d)(?:im)?$/, "$1"), 10); } else if (latest.type) { // Non-numbered warning // Try to leverage existing categorization of // warnings, all but one are universally lowercased var loweredType = /uw-multipleIPs/i.test(latest.type) ? "uw-multipleIPs" : latest.type.toLowerCase(); // It would be nice to account for blocks, but in most // cases the hidden message is terminal, not the sig if (Twinkle.warn.messages.singlewarn[loweredType]) { level = 3; } else { level = 1; // singlenotice or not found } } var $autolevelMessage = $("<div/>", { id: "twinkle-warn-autolevel-message", }); if (isNaN(level)) { // No prior warnings found, this is the first level = 1; } else if (level > 4 || level < 1) { // Shouldn't happen var message = "পূর্ববর্তী সতর্কতা স্তর পার্স করতে অক্ষম, দয়া করে হাত দ্বারা একটি সতর্কতা স্তর নির্বাচন করুন৷"; if (statelem) { statelem.error(message); } else { alert(message); } return; } else { date = date || new Date(); var autoTimeout = new Morebits.date(latest.date.getTime()).add( parseInt(Twinkle.getPref("autolevelStaleDays"), 10), "days" ); if (autoTimeout.isAfter(date)) { if (level === 4) { level = 4; // Basically indicates whether we're in the final Main evaluation or not, // and thus whether we can continue or need to display the warning and link if (!statelem) { var $link = $("<a/>", { href: "#", text: "ARV টুলটি চালু করতে এখানে ক্লিক করুন।", css: { fontWeight: "bold" }, click: function () { Morebits.wiki.actionCompleted.redirect = null; Twinkle.warn.dialog.close(); Twinkle.arv.callback(mw.config.get("wgRelevantUserName")); $("input[name=page]").val(params.article); // Target page $("input[value=final]").prop("checked", true); // Vandalism after final }, }); var statusNode = $("<div/>", { text: mw.config.get("wgRelevantUserName") + " সম্প্রতি চতুর্থ স্তরের সতর্কতা বার্তা পেয়েছেন (" + latest.type + ") তাই সম্ভবত অভিযোগ করা ভালো হবে; ", css: { color: "red" }, }); statusNode.append($link[0]); $autolevelMessage.append(statusNode); } } else { // Automatically increase severity level += 1; } } else { // Reset warning level if most-recent warning is too old level = 1; } } $autolevelMessage.prepend( $( '<div>একটা ইস্যু সৃষ্টি করবে যা, <span style="font-weight: bold;">লেভেল ' + level + "</span> টেমপ্লেটে।</div>" ) ); // Place after the stale and other-user-reverted (text-only) messages $("#twinkle-warn-autolevel-message").remove(); // clean slate $autolevelMessage.insertAfter($("#twinkle-warn-warning-messages")); var template = params.sub_group.replace(/(.*)\d$/, "$1"); // Validate warning level, falling back to the uw-generic series. // Only a few items are missing a level, and in all but a handful // of cases, the uw-generic series is explicitly used elsewhere per WP:UTM. if (params.messageData && !params.messageData["level" + level]) { template = "uw-generic"; } template += level; return [template, level]; }, main: function (pageobj) { var text = pageobj.getPageText(); var statelem = pageobj.getStatusElement(); var params = pageobj.getCallbackParameters(); var messageData = params.messageData; // JS somehow didn't get destructured assignment until ES6 so of course IE doesn't support it var warningHistory = Twinkle.warn.callbacks.dateProcessing(text); var latest = warningHistory[0]; var history = warningHistory[1]; var now = new Morebits.date(pageobj.getLoadTime()); Twinkle.warn.talkpageObj = pageobj; // Update talkpageObj, just in case if (params.main_group === "autolevel") { // [template, level] var templateAndLevel = Twinkle.warn.callbacks.autolevelParseWikitext( text, params, latest, now, statelem ); // Only if there's a change from the prior display/load if ( params.sub_group !== templateAndLevel[0] && !confirm( "{{" + templateAndLevel[0] + "}} টেমপ্লেটটি ব্যবহারকারীর জন্য একটি ইস্যু তৈরি করবে, ঠিক আছে?" ) ) { statelem.error("ব্যবহারকারীর অনুরোধে বাতিল করা হয়েছে"); return; } // Update params now that we've selected a warning params.sub_group = templateAndLevel[0]; messageData = params.messageData["level" + templateAndLevel[1]]; } else if (params.sub_group in history) { if ( new Morebits.date(history[params.sub_group]) .add(1, "day") .isAfter(now) ) { if ( !confirm( "An identical " + params.sub_group + " গত ২৪ ঘন্টায় ইস্যুগুলো হয়েছে। \nআপনি কি এখনও এই সতর্কবার্তা/বিজ্ঞপ্তি যোগ করতে চান?" ) ) { statelem.error("ব্যবহারকারীর অনুরোধে বাতিল করা হয়েছে"); return; } } } latest.date.add(1, "minute"); // after long debate, one minute is max if (latest.date.isAfter(now)) { if ( !confirm( "একটি ইস্যু" + latest.type + " শেষ মিনিটে উত্থাপিত হয়েছে। \nআপনি কি এখনও এই সতর্কবার্তা/বিজ্ঞপ্তি যোগ করতে চান?" ) ) { statelem.error("aborted per user request"); return; } } // build the edit summary // Function to handle generation of summary prefix for custom templates var customProcess = function (template) { template = template.split("|")[0]; var prefix; switch (template.substr(-1)) { case "1": prefix = "সাধারণ মন্তব্য"; break; case "2": prefix = "সতর্কবার্তা"; break; case "3": prefix = "সতর্কবার্তা"; break; case "4": prefix = "সর্বশেষ সতর্কবার্তা"; break; case "m": if (template.substr(-3) === "4im") { prefix = "একমাত্র সতর্কবার্তা"; break; } // falls through default: prefix = "বিজ্ঞপ্তি"; break; } return ( prefix + ": " + Morebits.string.toUpperCaseFirstChar(messageData.label) ); }; var summary; if (params.main_group === "custom") { summary = customProcess(params.sub_group); } else { // Normalize kitchensink to the 1-4im style if ( params.main_group === "kitchensink" && !/^D+$/.test(params.sub_group) ) { var sub = params.sub_group.substr(-1); if (sub === "m") { sub = params.sub_group.substr(-3); } // Don't overwrite uw-3rr, technically unnecessary if (/\d/.test(sub)) { params.main_group = "level" + sub; } } // singlet || level1-4im, no need to /^\D+$/.test(params.main_group) summary = messageData.summary || (messageData[params.main_group] && messageData[params.main_group].summary); // Not in Twinkle.warn.messages, assume custom template if (!summary) { summary = customProcess(params.sub_group); } if (messageData.suppressArticleInSummary !== true && params.article) { if ( params.sub_group === "uw-agf-sock" || params.sub_group === "uw-socksuspect" || params.sub_group === "uw-aiv" ) { // these templates require a username summary += " [[:ব্যাবহারকারী:" + params.article + "]] পাতায়"; } else { summary += " [[:" + params.article + "]] পাতায়"; } } } pageobj.setEditSummary(summary + "।"); pageobj.setChangeTags(Twinkle.changeTags); pageobj.setWatchlist(Twinkle.getPref("watchWarnings")); // Get actual warning text var warningText = Twinkle.warn.callbacks.getWarningWikitext( params.sub_group, params.article, params.reason, params.main_group === "custom" ); if ( Twinkle.getPref("showSharedIPNotice") && mw.util.isIPAddress(mw.config.get("wgTitle")) ) { Morebits.status.info( "তথ্য", "একটি শেয়ার করা আইপি নোটিশ যোগ করা হচ্ছে।" ); warningText += "\n{{subst:Shared IP advice}}"; } var sectionExists = false, sectionNumber = 0; // Only check sections if there are sections or there's a chance we won't create our own if (!messageData.heading && text.length) { // Get all sections var sections = text.match(/^(==*).+\1/gm); if (sections && sections.length !== 0) { // Find the index of the section header in question var dateHeaderRegex = now.monthHeaderRegex(); sectionNumber = 0; // Find this month's section among L2 sections, preferring the bottom-most sectionExists = sections.reverse().some(function (sec, idx) { return ( /^(==)[^=].+\1/m.test(sec) && dateHeaderRegex.test(sec) && typeof (sectionNumber = sections.length - 1 - idx) === "number" ); }); } } if (sectionExists) { // append to existing section pageobj.setPageSection(sectionNumber + 1); pageobj.setAppendText("\n\n" + warningText); pageobj.append(); } else { if (messageData.heading) { // create new section pageobj.setNewSectionTitle(messageData.heading); } else { Morebits.status.info( "তথ্য", "যেহেতু কিছুই পাওয়া যায় নি, তাই এই মাসের জন্য নতুন অনুচ্ছেদ তৈরি করা হবে" ); pageobj.setNewSectionTitle(now.monthHeader()); } pageobj.setNewSectionText(warningText); pageobj.newSection(); } }, }; Twinkle.warn.callback.evaluate = function twinklewarnCallbackEvaluate(e) { var userTalkPage = "ব্যবহারকারী_আলাপ:" + mw.config.get("wgRelevantUserName"); // reason, main_group, sub_group, article var params = Morebits.quickForm.getInputData(e.target); // Check that a reason was filled in if uw-username was selected if (params.sub_group === "uw-username" && !params.article) { alert( "{{uw-username}} এই টেমপ্লেটি ব্যবহারের জন্য আপনাকে সঠিক কারণ দর্শাতে হবে।" ); return; } // The autolevel option will already know by now if a user talk page // is a cross-namespace redirect (via !!Twinkle.warn.talkpageObj), so // technically we could alert an error here, but the user will have // already ignored the bold red error above. Moreover, they probably // *don't* want to actually issue a warning, so the error handling // after the form is submitted is probably preferable // Find the selected <option> element so we can fetch the data structure var $selectedEl = $(e.target.sub_group).find( 'option[value="' + $(e.target.sub_group).val() + '"]' ); params.messageData = $selectedEl.data("messageData"); Morebits.simpleWindow.setButtonsEnabled(false); Morebits.status.init(e.target); Morebits.wiki.actionCompleted.redirect = userTalkPage; Morebits.wiki.actionCompleted.notice = "সতর্কবার্তা প্রদান করা হয়েছে, কয়েক সেকেন্ডের মধ্যে আলাপ পাতা পুনঃলোড করা হবে"; var wikipedia_page = new Morebits.wiki.page( userTalkPage, "আলাপ পাতা পরিবর্তন" ); wikipedia_page.setCallbackParameters(params); wikipedia_page.setFollowRedirect(true, false); wikipedia_page.load(Twinkle.warn.callbacks.main); }; Twinkle.addInitCallback(Twinkle.warn, "warn"); })(jQuery); // </nowiki> a41o9tvsnnl3cb2oqu9zy295pmvpetj 131486 131485 2022-07-29T06:34:54Z Aishik Rehman 5592 javascript text/javascript // <nowiki> /* **************************************** *** twinklewarn.js: সতর্কবার্তা মডিউল **************************************** * Mode of invocation: Tab ("সতর্কবার্তা") * Active on: Any page with relevant user name (userspace, contribs, * etc.) (not IP ranges), as well as the rollback success page *caution কে ‘দ্বিতীয় স্তরের সতর্কতা’ এবং warning কে ‘তৃতীয় স্তরের সতর্কতা’ অনুবাদ করা হয়েছে। --Yahya *[[টেমপ্লেট:বাংলায় সম্পাদনা সারাংশ দিন (টুইংকল)]] একক সমস্যার বার্তা অংশে যুক্ত করা হলো --MdsShakil */ (function ($) { Twinkle.warn = function twinklewarn() { // Users and IPs but not IP ranges if ( mw.config.exists("wgRelevantUserName") && !Morebits.ip.isRange(mw.config.get("wgRelevantUserName")) ) { Twinkle.addPortletLink( Twinkle.warn.callback, "সতর্ক করুন", "tw-warn", "সতর্ক করুন/ব্যবহারকারীকে অবহিত করুন" ); if ( Twinkle.getPref("autoMenuAfterRollback") && mw.config.get("wgNamespaceNumber") === 3 && mw.util.getParamValue("vanarticle") && !mw.util.getParamValue("friendlywelcome") && !mw.util.getParamValue("noautowarn") ) { Twinkle.warn.callback(); } } // Modify URL of talk page on rollback success pages, makes use of a // custom message box in [[MediaWiki:Rollback-success]] if (mw.config.get("wgAction") === "rollback") { var $vandalTalkLink = $("#mw-rollback-success") .find(".mw-usertoollinks a") .first(); if ($vandalTalkLink.length) { $vandalTalkLink.css("font-weight", "bold"); $vandalTalkLink.wrapInner( $("<span/>").attr( "title", "উপযুক্ত হলে, আপনি এই পৃষ্ঠায় ব্যবহারকারীদের তাদের সম্পাদনা সম্পর্কে সতর্ক করতে টুইঙ্কল ব্যবহার করতে পারেন।" ) ); // Can't provide vanarticlerevid as only wgCurRevisionId is provided var extraParam = "vanarticle=" + mw.util.rawurlencode(Morebits.pageNameNorm); var href = $vandalTalkLink.attr("href"); if (href.indexOf("?") === -1) { $vandalTalkLink.attr("href", href + "?" + extraParam); } else { $vandalTalkLink.attr("href", href + "&" + extraParam); } } } }; // Used to close window when switching to ARV in autolevel Twinkle.warn.dialog = null; Twinkle.warn.callback = function twinklewarnCallback() { if ( mw.config.get("wgRelevantUserName") === mw.config.get("wgUserName") && !confirm( "আপনি নিজেকে সতর্ক করতে চলেছেন! আপনি কি নিশ্চিত আপনি এটাই করতে চান?" ) ) { return; } var dialog; Twinkle.warn.dialog = new Morebits.simpleWindow(600, 440); dialog = Twinkle.warn.dialog; dialog.setTitle("সতর্ক করুন/ব্যবহারকারীকে অবহিত করুন"); dialog.setScriptName("টুইংকল"); dialog.addFooterLink("একটি সতর্কতা স্তর নির্বাচন করা", "WP:UWUL#Levels"); dialog.addFooterLink("সতর্কতার পছন্দসমূহ", "WP:TW/PREF#warn"); dialog.addFooterLink("টুইংকল সাহায্য", "WP:TW/DOC#warn"); dialog.addFooterLink("প্রতিক্রিয়া জানান", "WT:TW"); var form = new Morebits.quickForm(Twinkle.warn.callback.evaluate); var main_select = form.append({ type: "field", label: "প্রদান করার জন্য সতর্কতার ধরন/বিজ্ঞপ্তি বেছে নিন", tooltip: "প্রথমে একটি প্রধান সতর্কতা গ্রুপ নির্বাচন করুন, তারপরে প্রদান করার জন্য একটি নির্দিষ্ট সতর্কতা বাছাই করুন।", }); var main_group = main_select.append({ type: "select", name: "main_group", tooltip: "আপনি আপনার টুইঙ্কল পছন্দগুলিতে ডিফল্ট নির্বাচনটি কাস্টমাইজ করতে পারেন", event: Twinkle.warn.callback.change_category, }); var defaultGroup = parseInt(Twinkle.getPref("defaultWarningGroup"), 10); main_group.append({ type: "option", label: "স্বয়ংক্রিয় স্তর নির্বাচন (১-৪)", value: "autolevel", selected: defaultGroup === 11, }); main_group.append({ type: "option", label: "১: সাধারণ বিজ্ঞপ্তি", value: "level1", selected: defaultGroup === 1, }); main_group.append({ type: "option", label: "২: দ্বিতীয় স্তরের সতর্কবার্তা", value: "level2", selected: defaultGroup === 2, }); main_group.append({ type: "option", label: "৩: তৃতীয় স্তরের সতর্কবার্তা", value: "level3", selected: defaultGroup === 3, }); main_group.append({ type: "option", label: "৪: সর্বশেষ সতর্কবার্তা", value: "level4", selected: defaultGroup === 4, }); main_group.append({ type: "option", label: "4im: একমাত্র সতর্কবার্তা", value: "level4im", selected: defaultGroup === 5, }); if (Twinkle.getPref("combinedSingletMenus")) { main_group.append({ type: "option", label: "একক সমস্যার বার্তা", value: "singlecombined", selected: defaultGroup === 6 || defaultGroup === 7, }); } else { main_group.append({ type: "option", label: "একক সমস্যার বার্তা", value: "singlenotice", selected: defaultGroup === 6, }); main_group.append({ type: "option", label: "একক সমস্যার সতর্কবার্তা", value: "singlewarn", selected: defaultGroup === 7, }); } if (Twinkle.getPref("customWarningList").length) { main_group.append({ type: "option", label: "স্বনির্ধারিত সতর্কবার্তা", value: "custom", selected: defaultGroup === 9, }); } main_group.append({ type: "option", label: "সকল সতর্কবার্তা টেমপ্লেট", value: "kitchensink", selected: defaultGroup === 10, }); main_select.append({ type: "select", name: "sub_group", event: Twinkle.warn.callback.change_subcategory, }); // Will be empty to begin with. form.append({ type: "input", name: "article", label: "সংযুক্ত পাতা", value: mw.util.getParamValue("vanarticle") || "", tooltip: "একটি পাতা বিজ্ঞপ্তির সাথে সংযুক্ত করা যেতে পারে, কারণ সম্ভবত আপনি উল্লিখিত পাতায় সম্পাদনা পুনর্বহাল করেছিলেন যে কারণে এই বিজ্ঞপ্তিটি পাঠাচ্ছেন। কোন পৃষ্ঠা সংযুক্ত না করতে এটি খালি রাখুন।", }); form.append({ type: "div", label: "", style: "color: red", id: "twinkle-warn-warning-messages", }); var more = form.append({ type: "field", name: "reasonGroup", label: "সতর্কীকরণ তথ্য", }); more.append({ type: "textarea", label: "ঐচ্ছিক বার্তা:", name: "reason", tooltip: "সম্ভবত একটি কারণ, অথবা আরো বিস্তারিত বিজ্ঞপ্তি সংযুক্ত করা আবশ্যক", }); var previewlink = document.createElement("a"); $(previewlink).click(function () { Twinkle.warn.callbacks.preview(result); // |result| is defined below }); previewlink.style.cursor = "pointer"; previewlink.textContent = "প্রাকদর্শন"; more.append({ type: "div", id: "warningpreview", label: [previewlink] }); more.append({ type: "div", id: "twinklewarn-previewbox", style: "display: none", }); more.append({ type: "submit", label: "জমা দিন" }); var result = form.render(); dialog.setContent(result); dialog.display(); result.main_group.root = result; result.previewer = new Morebits.wiki.preview( $(result).find("div#twinklewarn-previewbox").last()[0] ); // Potential notices for staleness and missed reverts var vanrevid = mw.util.getParamValue("vanarticlerevid"); if (vanrevid) { var message = ""; var query = {}; // If you tried reverting, check if *you* actually reverted if ( !mw.util.getParamValue("noautowarn") && mw.util.getParamValue("vanarticle") ) { // Via fluff link query = { action: "query", titles: mw.util.getParamValue("vanarticle"), prop: "revisions", rvstartid: vanrevid, rvlimit: 2, rvdir: "newer", rvprop: "user", format: "json", }; new Morebits.wiki.api( "আপনি পাতাটি সফলভাবে সম্পাদনা পুনর্বহাল করেছেন কিনা তা পরীক্ষা করা হচ্ছে", query, function (apiobj) { var rev = apiobj.getResponse().query.pages[0].revisions; var revertUser = rev && rev[1].user; if (revertUser && revertUser !== mw.config.get("wgUserName")) { message += " অন্য কেউ পাতাটিতে পুনর্বহাল করেছেন এবং ইতিমধ্যেই ব্যবহারকারীকে সতর্ক করেছে।"; $("#twinkle-warn-warning-messages").text("বিজ্ঞপ্তি:" + message); } } ).post(); } // Confirm edit wasn't too old for a warning var checkStale = function (vantimestamp) { var revDate = new Morebits.date(vantimestamp); if (vantimestamp && revDate.isValid()) { if (revDate.add(24, "hours").isBefore(new Date())) { message += " এই সম্পাদনাটি ২৪ ঘন্টারও বেশি আগে করা হয়েছিল তাই একটি সতর্কতা পুরনো হতে পারে।"; $("#twinkle-warn-warning-messages").text("বিজ্ঞপ্তি:" + message); } } }; var vantimestamp = mw.util.getParamValue("vantimestamp"); // Provided from a fluff module-based revert, no API lookup necessary if (vantimestamp) { checkStale(vantimestamp); } else { query = { action: "query", prop: "revisions", rvprop: "timestamp", revids: vanrevid, format: "json", }; new Morebits.wiki.api( "সংস্করণ টাইমস্ট্যাম্প আনা হচ্ছে", query, function (apiobj) { var rev = apiobj.getResponse().query.pages[0].revisions; vantimestamp = rev && rev[0].timestamp; checkStale(vantimestamp); } ).post(); } } // We must init the first choice (General Note); var evt = document.createEvent("Event"); evt.initEvent("change", true, true); result.main_group.dispatchEvent(evt); }; // This is all the messages that might be dispatched by the code // Each of the individual templates require the following information: // label (required): A short description displayed in the dialog // summary (required): The edit summary used. If an article name is entered, the summary is postfixed with "on [[article]]", and it is always postfixed with "." // suppressArticleInSummary (optional): Set to true to suppress showing the article name in the edit summary. Useful if the warning relates to attack pages, or some such. Twinkle.warn.messages = { levels: { "Common warnings": { "uw-vandalism": { level1: { label: "ধ্বংসপ্রবণতা", summary: "সাধারণ বিজ্ঞপ্তি: অগঠনমূলক সম্পাদনা", }, level2: { label: "ধ্বংসপ্রবণতা", summary: "দ্বিতীয় স্তরের সতর্কতা: অগঠনমূলক সম্পাদনা", }, level3: { label: "ধ্বংসপ্রবণতা", summary: "তৃতীয় স্তরের সতর্কতা: ধ্বংসপ্রবণতা", }, level4: { label: "ধ্বংসপ্রবণতা", summary: "সর্বশেষ সতর্কতা: ধ্বংসপ্রবণতা", }, level4im: { label: "ধ্বংসপ্রবণতা", summary: "একমাত্র সতর্কতা: ধ্বংসপ্রবণতা", }, }, "uw-disruptive": { level1: { label: "অগঠনমূলক সম্পাদনা", summary: "সাধারণ বিজ্ঞপ্তি: অগঠমূলক সম্পাদনা", }, level2: { label: "অগঠনমূলক সম্পাদনা", summary: "দ্বিতীয় স্তরের সতর্কতা: অগঠমূলক সম্পাদনা", }, level3: { label: "অগঠনমূলক সম্পাদনা", summary: "তৃতীয় স্তরের সতর্কতা: অগঠনমূলক সম্পাদনা", }, }, "uw-test": { level1: { label: "পরীক্ষামূলক সম্পাদনা", summary: "সাধারণ বিজ্ঞপ্তি: পরীক্ষামূলক সম্পাদনা", }, level2: { label: "পরীক্ষামূলক সম্পাদনা", summary: "দ্বিতীয় স্তরের সতর্কতা: পরীক্ষামূলক সম্পাদনা", }, level3: { label: "পরীক্ষামূলক সম্পাদনা", summary: "তৃতীয় স্তরের সতর্কতা: পরীক্ষামূলক সম্পাদনা", }, }, "uw-delete": { level1: { label: "পাতার বিষয়বস্তু অপসারণ বা খালি করা", summary: "সাধারণ বিজ্ঞপ্তি: পাতার বিষয়বস্তু অপসারণ বা খালি করা", }, level2: { label: "পাতার বিষয়বস্তু অপসারণ বা খালি করা", summary: "দ্বিতীয় স্তরের সতর্কতা: পাতার বিষয়বস্তু অপসারণ বা খালি করা", }, level3: { label: "পাতার বিষয়বস্তু অপসারণ বা খালি করা", summary: "তৃতীয় স্তরের সতর্কতা: পাতার বিষয়বস্তু অপসারণ বা খালি করা", }, level4: { label: "পাতার বিষয়বস্তু অপসারণ বা খালি করা", summary: "সর্বশেষ সতর্কতা: পাতার বিষয়বস্তু অপসারণ বা খালি করা", }, level4im: { label: "পাতার বিষয়বস্তু অপসারণ বা খালি করা", summary: "একমাত্র সতর্কতা: পাতার বিষয়বস্তু অপসারণ বা খালি করা", }, }, "uw-generic": { level4: { label: "জেনেরিক সতর্কতা (৪র্থ স্তরের অনুপস্থিত টেমপ্লেট সিরিজের জন্য)", summary: "সর্বশেষ সতর্কতা বিজ্ঞপ্তি", }, }, }, "Behavior in articles": { "uw-biog": { level1: { label: "জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", summary: "সাধারণ বিজ্ঞপ্তি: জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", }, level2: { label: "জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", summary: "দ্বিতীয় স্তরের সতর্কতা: জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", }, level3: { label: "জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত/মানহানীকর তথ্য যোগ করা", summary: "তৃতীয় স্তরের সতর্কতা: জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", }, level4: { label: "জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্র বিহীন মানহানিকর তথ্য যোগ করা", summary: "সর্বশেষ সতর্কতা: জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", }, level4im: { label: "জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্র বিহীন মানহানিকর তথ্য যোগ করা", summary: "একমাত্র সতর্কতা: জীবিত ব্যক্তিদের সম্পর্কে তথ্যসূত্রবিহীন বিতর্কিত তথ্য যোগ করা", }, }, "uw-defamatory": { level1: { label: "মানহানিকর বিষয়বস্তুর সংযোজন", summary: "সাধারণ বিজ্ঞপ্তি: মানহানিকর বিষয়বস্তুর সংযোজন", }, level2: { label: "মানহানিকর বিষয়বস্তুর সংযোজন", summary: "দ্বিতীয় স্তরের সতর্কতা: মানহানিকর বিষয়বস্তুর সংযোজন", }, level3: { label: "মানহানিকর বিষয়বস্তুর সংযোজন", summary: "তৃতীয় স্তরের সতর্কতা: মানহানিকর বিষয়বস্তুর সংযোজন", }, level4: { label: "মানহানিকর বিষয়বস্তুর সংযোজন", summary: "সর্বশেষ সতর্কতা: মানহানিকর বিষয়বস্তুর সংযোজন", }, level4im: { label: "মানহানিকর বিষয়বস্তুর সংযোজন", summary: "একমাত্র সতর্কতা: মানহানিকর বিষয়বস্তুর সংযোজন", }, }, "uw-error": { level1: { label: "ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", summary: "সাধারণ বিজ্ঞপ্তি: ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ", }, level2: { label: "ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", summary: "দ্বিতীয় স্তরের সতর্কতা: ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ", }, level3: { label: "ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", summary: "তৃতীয় স্তরের সতর্কতা: ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", }, level4: { label: "ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", summary: "সর্বশেষ সতর্কতা: ইচ্ছাকৃত বাস্তবভিত্তিক ত্রুটি যোগ করা", }, }, "uw-genre": { level1: { label: "ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", summary: "সাধারণ বিজ্ঞপ্তি: ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", }, level2: { label: "ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", summary: "দ্বিতীয় স্তরের সতর্কতা: ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", }, level3: { label: "ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", summary: "তৃতীয় স্তরের সতর্কতা: ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", }, level4: { label: "ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", summary: "সর্বশেষ সতর্কতা: ঐকমত্য বা তথ্যসূত্র ছাড়া ঘরানার ঘন ঘন বা গণ পরিবর্তন", }, }, "uw-image": { level1: { label: "নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", summary: "সাধারণ বিজ্ঞপ্তি: নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", }, level2: { label: "নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", summary: "দ্বিতীয় স্তরের সতর্কতা: নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", }, level3: { label: "নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", summary: "তৃতীয় স্তরের সতর্কতা: নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", }, level4: { label: "নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", summary: "সর্বশেষ সতর্কতা: নিবন্ধে চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", }, level4im: { label: "চিত্র-সংক্রান্ত ধ্বংসপ্রবণতা", summary: "একমাত্র সতর্কতা: চিত্র-সংক্রান্ত ধ্বংসাত্মক সম্পাদনা", }, }, "uw-joke": { level1: { label: "নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", summary: "সাধারণ বিজ্ঞপ্তি: নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", }, level2: { label: "নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", summary: "দ্বিতীয় স্তরের সতর্কতা: নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", }, level3: { label: "নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", summary: "তৃতীয় স্তরের সতর্কতা: নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", }, level4: { label: "নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", summary: "সর্বশেষ সতর্কতা: নিবন্ধে অনুপযুক্ত হাস্যরস ব্যবহার করা", }, level4im: { label: "অনুপযুক্ত হাস্যরস ব্যবহার", summary: "একমাত্র সতর্কতা: অনুপযুক্ত হাস্যরস ব্যবহার", }, }, "uw-nor": { level1: { label: "উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", summary: "সাধারণ বিজ্ঞপ্তি: উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", }, level2: { label: "উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", summary: "দ্বিতীয় স্তরের সতর্কতা: উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", }, level3: { label: "উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", summary: "তৃতীয় স্তরের সতর্কতা: উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", }, level4: { label: "উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", summary: "সর্বশেষ সতর্কতা: উৎসের অপ্রকাশিত বিশ্লেষণ সহ ব্যক্তিগত গবেষণা যোগ করা", }, }, "uw-notcensored": { level1: { label: "উপাদান সেন্সরশিপ", summary: "সাধারণ বিজ্ঞপ্তি: উপাদান সেন্সরশিপ", }, level2: { label: "উপাদান সেন্সরশিপ", summary: "দ্বিতীয় স্তরের সতর্কতা: উপাদান সেন্সরশিপ", }, level3: { label: "উপাদান সেন্সরশিপ", summary: "তৃতীয় স্তরের সতর্কতা: উপাদান সেন্সরশিপ", }, }, "uw-own": { level1: { label: "নিবন্ধের মালিকানা", summary: "সাধারণ বিজ্ঞপ্তি: নিবন্ধের মালিকানা", }, level2: { label: "নিবন্ধের মালিকানা", summary: "দ্বিতীয় স্তরের সতর্কতা: নিবন্ধের মালিকানা", }, level3: { label: "নিবন্ধের মালিকানা", summary: "তৃতীয় স্তরের সতর্কতা: নিবন্ধের মালিকানা", }, level4: { label: "নিবন্ধের মালিকানা", summary: "সর্বশেষ সতর্কতা: নিবন্ধের মালিকানা", }, level4im: { label: "নিবন্ধের মালিকানা", summary: "একমাত্র সতর্কতা: নিবন্ধের মালিকানা", }, }, "uw-subtle": { level1: { label: "সূক্ষ্ম ধ্বংপ্রবণতা", summary: "সাধারণ বিজ্ঞপ্তি: সম্ভবত অগঠনমূলক সম্পাদনা", }, level2: { label: "সূক্ষ্ম ধ্বংপ্রবণতা", summary: "দ্বিতীয় স্তরের সতর্কতা: সম্ভাব্য অগঠনমূলক সম্পাদনা", }, level3: { label: "সূক্ষ্ম ধ্বংপ্রবণতা", summary: "তৃতীয় স্তরের সতর্কতা: সূক্ষ্ম ধ্বংপ্রবণতা", }, level4: { label: "সূক্ষ্ম ধ্বংপ্রবণতা", summary: "সর্বশেষ সতর্কতা: সূক্ষ্ম ধ্বংপ্রবণতা", }, }, "uw-tdel": { level1: { label: "রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", summary: "সাধারণ বিজ্ঞপ্তি: রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", }, level2: { label: "রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", summary: "দ্বিতীয় স্তরের সতর্কতা: রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", }, level3: { label: "রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", summary: "তৃতীয় স্তরের সতর্কতা: রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", }, level4: { label: "রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", summary: "সর্বশেষ সতর্কতা: রক্ষণাবেক্ষণ টেমপ্লেট অপসারণ", }, }, "uw-unsourced": { level1: { label: "তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", summary: "সাধারণ বিজ্ঞপ্তি: তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", }, level2: { label: "তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", summary: "দ্বিতীয় স্তরের সতর্কতা: তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", }, level3: { label: "তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", summary: "তৃতীয় স্তরের সতর্কতা: তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", }, level4: { label: "তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", summary: "সর্বশেষ সতর্কতা: তথ্যসূত্র বিহীন বা অনুপযুক্ত উদ্ধৃতি সহ উপাদান যোগ করা", }, }, }, "প্রচারণা ও স্প্যাম": { "uw-advert": { level1: { label: "বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", summary: "সাধারণ বিজ্ঞপ্তি: বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", }, level2: { label: "বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", summary: "দ্বিতীয় স্তরের সতর্কতা: বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", }, level3: { label: "বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", summary: "তৃতীয় স্তরের সতর্কতা: বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", }, level4: { label: "বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", summary: "সর্বশেষ সতর্কতা: বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", }, level4im: { label: "বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", summary: "একমাত্র সতর্কতা: বিজ্ঞাপন বা প্রচারনার উদ্দেশ্যে উইকিপিডিয়া ব্যবহার করা", }, }, "uw-npov": { level1: { label: "নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", summary: "সাধারণ বিজ্ঞপ্তি: নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", }, level2: { label: "নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", summary: "দ্বিতীয় স্তরের সতর্কতা: নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", }, level3: { label: "নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", summary: "তৃতীয় স্তরের সতর্কতা: নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", }, level4: { label: "নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", summary: "সর্বশেষ সতর্কতা: নিরপেক্ষ দৃষ্টিভঙ্গি মেনে চলে না", }, }, "uw-paid": { level1: { label: "উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", summary: "সাধারণ বিজ্ঞপ্তি: উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", }, level2: { label: "উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", summary: "দ্বিতীয় স্তরের সতর্কতা: উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", }, level3: { label: "উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", summary: "তৃতীয় স্তরের সতর্কতা: উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", }, level4: { label: "উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", summary: "সর্বশেষ সতর্কতা: উইকিমিডিয়া ব্যবহারের শর্তাবলীর অধীনে পূর্ব ঘোষণা ছাড়াই অর্থের বিনিময়ে সম্পাদনা", }, }, "uw-spam": { level1: { label: "অনুপযুক্ত বহিঃসংযোগ যোগ করা", summary: "সাধারণ বিজ্ঞপ্তি: অনুপযুক্ত বহিঃসংযোগ যোগ করা", }, level2: { label: "স্প্যাম লিংক সংযোজন", summary: "দ্বিতীয় স্তরের সতর্কতা: স্প্যাম লিংক সংযোজন", }, level3: { label: "স্প্যাম লিংক সংযোজন", summary: "তৃতীয় স্তরের সতর্কতা: স্প্যাম লিংক সংযোজন", }, level4: { label: "স্প্যাম লিংক সংযোজন", summary: "সর্বশেষ সতর্কতা: স্প্যাম লিংক সংযোজন", }, level4im: { label: "স্প্যাম লিংক সংযোজন", summary: "একমাত্র সতর্কতা: স্প্যাম লিংক সংযোজন", }, }, }, "অন্য ব্যবহারকারীর প্রতি আচরণ": { "uw-agf": { level1: { label: "অন্য ব্যবহারকারীর উপর আস্থা না রাখা", summary: "সাধারণ বিজ্ঞপ্তি: অন্য ব্যবহারকারীর উপর আস্থা না রাখা", }, level2: { label: "অন্য ব্যবহারকারীর উপর আস্থা না রাখা", summary: "দ্বিতীয় স্তরের সতর্কতা: অন্য ব্যবহারকারীর উপর আস্থা না রাখা", }, level3: { label: "অন্য ব্যবহারকারীর উপর আস্থা না রাখা", summary: "তৃতীয় স্তরের সতর্কতা: অন্য ব্যবহারকারীর উপর আস্থা না রাখা", }, }, "uw-harass": { level1: { label: "অন্য ব্যবহারকারীদের হয়রানি", summary: "সাধারণ বিজ্ঞপ্তি: অন্য ব্যবহারকারীদের হয়রানি", }, level2: { label: "অন্য ব্যবহারকারীদের হয়রানি", summary: "দ্বিতীয় স্তরের সতর্কতা: অন্য ব্যবহারকারীদের হয়রানি", }, level3: { label: "অন্য ব্যবহারকারীদের হয়রানি", summary: "তৃতীয় স্তরের সতর্কতা: অন্য ব্যবহারকারীদের হয়রানি", }, level4: { label: "অন্য ব্যবহারকারীদের হয়রানি", summary: "সর্বশেষ সতর্কতা: অন্য ব্যবহারকারীদের হয়রানি", }, level4im: { label: "অন্য ব্যবহারকারীদের হয়রানি", summary: "একমাত্র সতর্কতা: অন্য ব্যবহারকারীদের হয়রানি", }, }, "uw-npa": { level1: { label: "একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", summary: "সাধারণ বিজ্ঞপ্তি: একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", }, level2: { label: "একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", summary: "দ্বিতীয় স্তরের সতর্কতা: একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", }, level3: { label: "একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", summary: "তৃতীয় স্তরের সতর্কতা: একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", }, level4: { label: "একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", summary: "সর্বশেষ সতর্কতা: একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", }, level4im: { label: "একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", summary: "একমাত্র সতর্কতা: একজন নির্দিষ্ট সম্পাদককে লক্ষ্য করে ব্যক্তিগত আক্রমণ", }, }, "uw-tempabuse": { level1: { label: "সতর্কতা ও বাধা দান টেমপ্লেটের অনুপযুক্ত ব্যবহার", summary: "সাধারণ বিজ্ঞপ্তি: সতর্কতা ও বাধা দান টেমপ্লেটের অনুপযুক্ত ব্যবহার", }, level2: { label: "সতর্কতা ও বাধা দান টেমপ্লেটের অনুপযুক্ত ব্যবহার", summary: "দ্বিতীয় স্তরের সতর্কতা: সতর্কতা ও বাধা দান টেমপ্লেটের অনুপযুক্ত ব্যবহার", }, }, }, "অপসারণ ট্যাগ অপসারণ": { "uw-afd": { level1: { label: "{{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", summary: "সাধারণ বিজ্ঞপ্তি: {{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", }, level2: { label: "{{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", summary: "দ্বিতীয় স্তরের সতর্কতা: {{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", }, level3: { label: "{{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", summary: "তৃতীয় স্তরের সতর্কতা: {{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", }, level4: { label: "{{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", summary: "সর্বশেষ সতর্কতা: {{নিবন্ধ অপসারণের প্রস্তাবনা}} টেমপ্লেট অপসারণ", }, }, "uw-blpprod": { level1: { label: "{{Prod blp}} টেমপ্লেট অপসারণ", summary: "সাধারণ বিজ্ঞপ্তি: {{Prod blp}} টেমপ্লেট অপসারণ", }, level2: { label: "{{Prod blp}} টেমপ্লেট অপসারণ", summary: "দ্বিতীয় স্তরের সতর্কতা: {{Prod blp}} টেমপ্লেট অপসারণ", }, level3: { label: "{{Prod blp}} টেমপ্লেট অপসারণ", summary: "তৃতীয় স্তরের সতর্কতা: {{Prod blp}} টেমপ্লেট অপসারণ", }, level4: { label: "{{Prod blp}} টেমপ্লেট অপসারণ", summary: "সর্বশেষ সতর্কতা: {{Prod blp}} টেমপ্লেট অপসারণ", }, }, "uw-idt": { level1: { label: "ফাইল অপসারন ট্যাগ অপসারণ", summary: "সাধারণ বিজ্ঞপ্তি: ফাইল অপসারন ট্যাগ অপসারণ", }, level2: { label: "ফাইল অপসারন ট্যাগ অপসারণ", summary: "দ্বিতীয় স্তরের সতর্কতা: ফাইল অপসারন ট্যাগ অপসারণ", }, level3: { label: "ফাইল অপসারন ট্যাগ অপসারণ", summary: "তৃতীয় স্তরের সতর্কতা: ফাইল অপসারন ট্যাগ অপসারণ", }, level4: { label: "ফাইল অপসারন ট্যাগ অপসারণ", summary: "সর্বশেষ সতর্কতা: ফাইল অপসারন ট্যাগ অপসারণ", }, }, "uw-speedy": { level1: { label: "দ্রুত অপসারণ ট্যাগ অপসারণ", summary: "সাধারণ বিজ্ঞপ্তি: দ্রুত অপসারণ ট্যাগ অপসারণ", }, level2: { label: "দ্রুত অপসারণ ট্যাগ অপসারণ", summary: "দ্বিতীয় স্তরের সতর্কতা: দ্রুত অপসারণ ট্যাগ অপসারণ", }, level3: { label: "দ্রুত অপসারণ ট্যাগ অপসারণ", summary: "তৃতীয় স্তরের সতর্কতা: দ্রুত অপসারণ ট্যাগ অপসারণ", }, level4: { label: "দ্রুত অপসারণ ট্যাগ অপসারণ", summary: "সর্বশেষ সতর্কতা: দ্রুত অপসারণ ট্যাগ অপসারণ", }, }, }, Other: { "uw-attempt": { level1: { label: "সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "সাধারণ বিজ্ঞপ্তি: সম্পাদনা ছাঁকনি ট্রিগার করা", }, level2: { label: "সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "দ্বিতীয় স্তরের সতর্কতা: সম্পাদনা ছাঁকনি ট্রিগার করা", }, level3: { label: "সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "তৃতীয় স্তরের সতর্কতা: সম্পাদনা ছাঁকনি ট্রিগার করা", }, level4: { label: "সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "সর্বশেষ সতর্কতা: সম্পাদনা ছাঁকনি ট্রিগার করা", }, level4im: { label: "সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "শুধুমাত্র সতর্কতা: সম্পাদনা ছাঁকনি ট্রিগার করা", }, }, "uw-chat": { level1: { label: "আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", summary: "সাধারণ বিজ্ঞপ্তি: আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", }, level2: { label: "আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", summary: "দ্বিতীয় স্তরের সতর্কতা: আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", }, level3: { label: "আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", summary: "তৃতীয় স্তরের সতর্কতা: আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", }, level4: { label: "আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", summary: "সর্বশেষ সতর্কতা: আলাপ পাতাকে ফোরাম হিসেবে ব্যবহার", }, }, "uw-create": { level1: { label: "অনুপযুক্ত পাতা তৈরি", summary: "সাধারণ বিজ্ঞপ্তি: অনুপযুক্ত পাতা তৈরি", }, level2: { label: "অনুপযুক্ত পাতা তৈরি", summary: "দ্বিতীয় স্তরের সতর্কতা: অনুপযুক্ত পাতা তৈরি", }, level3: { label: "অনুপযুক্ত পাতা তৈরি", summary: "তৃতীয় স্তরের সতর্কতা: অনুপযুক্ত পাতা তৈরি", }, level4: { label: "অনুপযুক্ত পাতা তৈরি", summary: "সর্বশেষ সতর্কতা: অনুপযুক্ত পাতা তৈরি", }, level4im: { label: "অনুপযুক্ত পাতা তৈরি", summary: "একমাত্র সতর্কতা: অনুপযুক্ত পাতা তৈরি", }, }, "uw-mos": { level1: { label: "রচনাশৈলী", summary: "সাধারণ বিজ্ঞপ্তি: ফরম্যাটিং, তারিখ, ভাষা ইত্যাদি (রচনাশৈলী)", }, level2: { label: "রচনাশৈলী", summary: "দ্বিতীয় স্তরের সতর্কতা: ফরম্যাটিং, তারিখ, ভাষা ইত্যাদি (রচনাশৈলী)", }, level3: { label: "রচনাশৈলী", summary: "তৃতীয় স্তরের সতর্কতা: ফরম্যাটিং, তারিখ, ভাষা ইত্যাদি (রচনাশৈলী)", }, level4: { label: "রচনাশৈলী", summary: "সর্বশেষ সতর্কতা: ফরম্যাটিং, তারিখ, ভাষা ইত্যাদি (রচনাশৈলী)", }, }, "uw-move": { level1: { label: "নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", summary: "সাধারণ বিজ্ঞপ্তি: নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", }, level2: { label: "নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", summary: "দ্বিতীয় স্তরের সতর্কতা: নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", }, level3: { label: "নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", summary: "তৃতীয় স্তরের সতর্কতা: নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", }, level4: { label: "নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", summary: "সর্বশেষ সতর্কতা: নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", }, level4im: { label: "নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", summary: "একমাত্র সতর্কতা: নামকরণ রীতি বা ঐকমত্যের বিরুদ্ধে পাতা স্থানান্তর", }, }, "uw-tpv": { level1: { label: "অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", //Refactoring others' talk page comments summary: "সাধারণ বিজ্ঞপ্তি: অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", }, level2: { label: "অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", summary: "দ্বিতীয় স্তরের সতর্কতা: অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", }, level3: { label: "অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", summary: "তৃতীয় স্তরের সতর্কতা: অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", }, level4: { label: "অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", summary: "সর্বশেষ সতর্কতা: অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", }, level4im: { label: "অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", summary: "একমাত্র সতর্কতা: অন্যদের আলাপ পাতার মন্তব্যসমূহের পুনর্বিন্যস করা", }, }, "uw-upload": { level1: { label: "অবিশ্বকোষীয় চিত্র আপলোড", summary: "সাধারণ বিজ্ঞপ্তি: অবিশ্বকোষীয় চিত্র আপলোড", }, level2: { label: "অবিশ্বকোষীয় চিত্র আপলোড", summary: "দ্বিতীয় স্তরের সতর্কতা: অবিশ্বকোষীয় চিত্র আপলোড", }, level3: { label: "অবিশ্বকোষীয় চিত্র আপলোড", summary: "তৃতীয় স্তরের সতর্কতা: অবিশ্বকোষীয় চিত্র আপলোড", }, level4: { label: "অবিশ্বকোষীয় চিত্র আপলোড", summary: "সর্বশেষ সতর্কতা: অবিশ্বকোষীয় চিত্র আপলোড", }, level4im: { label: "অবিশ্বকোষীয় চিত্র আপলোড", summary: "একমাত্র সতর্কতা: অবিশ্বকোষীয় চিত্র আপলোড", }, }, }, }, singlenotice: { "uw-agf-sock": { label: "একাধিক অ্যাকাউন্টের ব্যবহার (আস্থা রেখে)", summary: "বিজ্ঞপ্তি: একাধিক অ্যাকাউন্টের ব্যবহার", }, /** 'uw-aiv': { label: 'Bad AIV report', summary: 'বিজ্ঞপ্তি: Bad AIV report' }, **/ "uw-autobiography": { label: "আত্মজীবনী তৈরি", summary: "বিজ্ঞপ্তি: আত্মজীবনী তৈরি", }, "uw-badcat": { label: "ভুল বিষয়শ্রেণী যোগ", summary: "বিজ্ঞপ্তি: ভুল বিষয়শ্রেণী যোগ", }, "বাংলায় সম্পাদনা সারাংশ দিন (টুইংকল)": { label: "ইংরেজিতে সম্পাদনা সারাংশ দেওয়া", summary: "বিজ্ঞপ্তি: ইংরেজিতে সম্পাদনা সারাংশ দেওয়া", }, "Uw-np": { label: "অ-উল্লেখযোগ্য ব্যক্তির নাম যোগ", summary: "বিজ্ঞপ্তি: অ-উল্লেখযোগ্য ব্যক্তির নাম যোগ", }, "Uw-patrol": { label: "টহলদান নীতিমালা লঙ্ঘন", summery: "বিজ্ঞপ্তি: নিবন্ধ তৈরির ৪৮ ঘন্টা পার হওয়ার পূর্বেই রক্ষণাবেক্ষণ ট্যাগ যোগ", }, "uw-badlistentry": { label: "তালিকায় অনুপযুক্ত ভুক্তি যোগ", summary: "বিজ্ঞপ্তি: তালিকায় অনুপযুক্ত ভুক্তি যোগ", }, "uw-bite": { label: 'নবাগতদের "জ্বালাতন"', summary: 'বিজ্ঞপ্তি: "নবাগতদের জ্বালাতন', suppressArticleInSummary: true, // non-standard (user name, not article), and not necessary }, "uw-coi": { label: "স্বার্থের সংঘাত", summary: "বিজ্ঞপ্তি: স্বার্থের সংঘাত", heading: "একটি স্বার্থের সংঘাত ব্যবস্থাপনা", }, "uw-controversial": { label: "বিতর্কিত উপাদান যোগ", summary: "বিজ্ঞপ্তি: বিতর্কিত উপাদান যোগ", }, "uw-copying": { label: "অন্য পাতায় লেখা অনুলিপি", summary: "বিজ্ঞপ্তি: অন্য পাতায় লেখা অনুলিপি", }, "uw-crystal": { label: "অনুমাননির্ভর বা অনিশ্চিত তথ্য যোগ করা", summary: "বিজ্ঞপ্তি: অনুমাননির্ভর বা অনিশ্চিত তথ্য যোগ করা", }, "uw-c&pmove": { label: "অনুলিপি প্রতিলিপি করে পাতা স্থানান্তর", summary: "বিজ্ঞপ্তি: অনুলিপি প্রতিলিপি করে পাতা স্থানান্তর", }, "uw-dab": { label: "দ্ব্যর্থতা নিরসন পাতায় ভুল সম্পাদনা", summary: "বিজ্ঞপ্তি: দ্ব্যর্থতা নিরসন পাতায় ভুল সম্পাদনা", }, "uw-date": { label: "অপ্রয়োজনে তারিখের বিন্যাস পরিবর্তন করা", summary: "বিজ্ঞপ্তি: অপ্রয়োজনে তারিখের বিন্যাস পরিবর্তন করা", }, "uw-deadlink": { label: "অকার্যকর সংযোগ সম্বলিত সঠিক উৎস সরানো", summary: "বিজ্ঞপ্তি: অকার্যকর সংযোগ সম্বলিত সঠিক উৎস সরানো", }, "uw-displaytitle": { label: "DISPLAYTITLE এর ভুল ব্যবহার", summary: "বিজ্ঞপ্তি: DISPLAYTITLE এর ভুল ব্যবহার", }, "uw-draftfirst": { label: "দ্রুত মুছে ফেলার ঝুঁকি এড়াতে ব্যবহারকারীর ব্যবহারকারী নামস্থানে খসড়া তৈরি করা উচিত", summary: "বিজ্ঞপ্তি: দয়া করে [[Help:Userspace draft|ব্যবহারকারী নামস্থানে]] খসড়া তৈরি করুন", }, "uw-editsummary": { label: "নতুন ব্যবহারকারী সম্পাদনা সারাংশ ব্যবহার করছে না", summary: "বিজ্ঞপ্তি: সম্পাদনা সারাংশ ব্যবহার না করা", }, "uw-editsummary2": { label: "অভিজ্ঞ ব্যবহারকারী সম্পাদনা সারাংশ ব্যবহার করছে না", summary: "বিজ্ঞপ্তি: সম্পাদনা সারাংশ ব্যবহার না করা", }, "uw-elinbody": { label: "একটি নিবন্ধের মূল অংশে বহিঃসংযোগ যোগ করা", summary: "বিজ্ঞপ্তি: বহিঃসংযোগ নিবন্ধের নিচে বহিঃসংযোগ অনুচ্ছেদে যোগ করুন", }, "uw-bangla": { label: "বাংলায় যোগাযোগ না করা", summary: "বিজ্ঞপ্তি: বাংলায় যোগাযোগ না করা", }, "uw-hasty": { label: "তাড়াহুড়ো করে দ্রুত অপসারণ ট্যাগ যোগ", summary: "বিজ্ঞপ্তি: অপসারণ ট্যাগ যোগ করার আগে প্রণেতাকে নিবন্ধটির মানোন্নয়নের সময় দিন", }, "uw-italicize": { label: "নিবন্ধের মধ্যে বই, চলচ্চিত্র, অ্যালবাম, ম্যাগাজিন, টিভি সিরিজ ইত্যাদির নাম ইটালিক করুন", summary: "বিজ্ঞপ্তি: নিবন্ধের মধ্যে বই, চলচ্চিত্র, অ্যালবাম, ম্যাগাজিন, টিভি সিরিজ ইত্যাদির নাম ইটালিক করুন", }, /**'uw-lang': { label: 'Unnecessarily changing between British and American English', summary: 'বিজ্ঞপ্তি: Unnecessarily changing between British and American English', heading: 'National varieties of English' }, **/ //দরকার নেই "uw-linking": { label: "লাল লিংকের অত্যধিক কিংবা বার বার নীল লিংকের ব্যবহার", summary: "বিজ্ঞপ্তি: লাল লিংকের অত্যধিক কিংবা বার বার নীল লিংকের ব্যবহার", }, "uw-minor": { label: "অনুল্লেখ্য সম্পাদনা চেক বক্সের ভুল ব্যবহার", summary: "বিজ্ঞপ্তি: অনুল্লেখ্য সম্পাদনা চেক বক্সের ভুল ব্যবহার", }, "uw-notbangla": { label: "বাংলা নয় এমন নিবন্ধ তৈরি", summary: "বিজ্ঞপ্তি: বাংলা নয় এমন নিবন্ধ তৈরি", }, "uw-notbanglaedit": { label: "নিবন্ধে বাংলা নয় এমন বিষয়বস্তু সংযোজন", summary: "বিজ্ঞপ্তি: নিবন্ধে বাংলা নয় এমন বিষয়বস্তু সংযোজন", }, "uw-notvote": { label: "আমরা ঐকমত্য ব্যবহার করি, ভোট নয়", summary: "বিজ্ঞপ্তি: আমরা ঐকমত্য ব্যবহার করি, ভোট নয়", }, "uw-plagiarism": { label: "অ্যাট্রিবিউশন ছাড়াই পাবলিক ডোমেইন উৎস থেকে কপি করা", summary: "বিজ্ঞপ্তি: অ্যাট্রিবিউশন ছাড়াই পাবলিক ডোমেইন উৎস থেকে কপি করা", }, "uw-preview": { label: "ভুল এড়াতে প্রাকদর্শন বাটন ব্যবহার করুন", summary: "বিজ্ঞপ্তি: ভুল এড়াতে প্রাকদর্শন বাটন ব্যবহার করুন", }, "uw-redlink": { label: "নির্বিচারে লাল লিংক অপসারণ", summary: "বিজ্ঞপ্তি: লাল লিংক অপসারণ করার সময় সতর্ক হোন", }, "uw-selfrevert": { label: "নিজের পরীক্ষা-নিরীক্ষা পুনর্বহাল করা", summary: "বিজ্ঞপ্তি: নিজের পরীক্ষা-নিরীক্ষা পুনর্বহাল করা", }, "uw-socialnetwork": { label: "উইকিপিডিয়া সামাজিক যোগাযোগমাধ্যম নয়", summary: "বিজ্ঞপ্তি: উইকিপিডিয়া সামাজিক যোগাযোগমাধ্যম নয়", }, "uw-sofixit": { label: "সাহসী হোন এবং নিজেই কোনো কিছু সংশোধন করুন", summary: "বিজ্ঞপ্তি: সাহস করে নিজেই কোনো কিছু সংশোধন করতে পারেন", }, "uw-spoiler": { label: "স্পয়লার সতর্কতা যোগ অথবা যথাযথ অনুচ্ছেদ থেকে স্পয়লার অপসারণ", summary: "বিজ্ঞপ্তি: উইকিপিডিয়া নিবন্ধে সম্ভাব্য 'স্পয়লার' মুছবেন না বা পতাকাঙ্কিত করবেন না", }, "uw-talkinarticle": { label: "নিবন্ধের ভেতরে বার্তা", summary: "বিজ্ঞপ্তি: নিবন্ধের ভেতরে বার্তা", }, "uw-tilde": { label: "পোস্টে স্বাক্ষর না করা", summary: "বিজ্ঞপ্তি: পোস্টে স্বাক্ষর না করা", }, "uw-toppost": { label: "আলাপ পাতার শীর্ষে বার্তা প্রদান", summary: "বিজ্ঞপ্তি: আলাপ পাতার শীর্ষে বার্তা প্রদান", }, "uw-unattribcc": { label: "নির্দেশ ছাড়াই উপযুক্ত-লাইসেন্সযুক্ত উৎস থেকে অনুলিপি করা", summary: "বিজ্ঞপ্তি: নির্দেশ ছাড়াই উপযুক্ত-লাইসেন্সযুক্ত উৎস থেকে অনুলিপি করা", //Copying from compatibility-licensed sources without attribution }, "uw-userspace draft finish": { label: "অনেক পুরাতন ব্যবহারকারী খসড়া", summary: "বিজ্ঞপ্তি: অনেক পুরাতন ব্যবহারকারী খসড়া", }, "uw-vgscope": { label: "ভিডিও গেম প্লে, প্রতারণা বা নির্দেশাবলী যোগ করা", summary: "বিজ্ঞপ্তি: ভিডিও গেম প্লে, প্রতারণা বা নির্দেশাবলী যোগ করা", }, "uw-warn": { label: "ধ্বংসপ্রবণতা পুনর্বহাল করার সময় ব্যবহারকারীকে সতর্ক বার্তা দিন", summary: "বিজ্ঞপ্তি: ধ্বংসপ্রবণতা পুনর্বহাল করার সময় ব্যবহারকারীকে সতর্কতা বার্তা দিন", }, "uw-wrongsummary": { label: "ভুল বা অনুপযুক্ত সম্পাদনা সারাংশ ব্যবহার করা", summary: "সতর্কতা: ভুল বা অনুপযুক্ত সম্পাদনা সারাংশ ব্যবহার করা", }, }, singlewarn: { "uw-3rr": { label: "সম্ভাব্য তিন-প্রত্যাবর্তন নিয়ম লঙ্ঘন; uw-ew ও দেখুন", summary: "সতর্কতা: তিন-প্রত্যাবর্তন নিয়ম", }, "uw-affiliate": { label: "অ্যাফিলিয়েট মার্কেটিং", summary: "সতর্কতা: অ্যাফিলিয়েট মার্কেটিং", }, "uw-attack": { label: "আক্রমণাত্বক পাতা তৈরি", summary: "সতর্কতা: আক্রমণাত্বক পাতা তৈরি", suppressArticleInSummary: true, }, "uw-botun": { label: "বট ব্যবহারকারী নাম", summary: "সতর্কতা: বট ব্যবহারকারী নাম", }, "uw-canvass": { label: "ক্যানভাসিং", summary: "সতর্কতা: ক্যানভাসিং", }, "uw-copyright": { label: "কপিরাইট লঙ্ঘন", summary: "সতর্কতা: কপিরাইট লঙ্ঘন", }, "uw-copyright-link": { label: "কপিরাইটযুক্ত কাজের লঙ্ঘনের সাথে সংযোগ স্থাপন করা হচ্ছে", //Linking to copyrighted works violation summary: "সতর্কতা: কপিরাইটযুক্ত কাজের লঙ্ঘনের সাথে সংযোগ স্থাপন করা হচ্ছে", }, "uw-copyright-new": { label: "কপিরাইট নীতি লঙ্ঘন (নতুন ব্যবহারকারীদের জন্য ব্যাখ্যা সহ)", summary: "বিজ্ঞপ্তি: কপিরাইট সমস্যা এড়ানো", heading: "উইকিপিডিয়া ও কপিরাইট", }, "uw-copyright-remove": { label: "নিবন্ধ থেকে {{copyvio}} টেমপ্লেট অপসারণ", summary: "সতর্কতা: {{copyvio}} টেমপ্লেট অপসারণ", }, "uw-efsummary": { label: "সম্পাদনা সারাংশে সম্পাদনা ছাঁকনি ট্রিগার করা", summary: "সতর্কতা: সম্পাদনা সারাংশে সম্পাদনা ছাঁকনি ট্রিগার করা", }, "uw-ew": { label: "সম্পাদনা যুদ্ধ (শক্তিশালী শব্দ)", // Edit warring summary: "সতর্কতা: সম্পাদনা যুদ্ধ", }, "uw-ewsoft": { label: "সম্পাদনা যুদ্ধ (নতুনদের জন্য নরম শব্দ)", summary: "সতর্কতা: সম্পাদনা যুদ্ধ", }, "uw-hijacking": { label: "নিবন্ধ ছিনতাই", // Hijacking articles summary: "সতর্কতা: নিবন্ধ ছিনতাই", }, "uw-hoax": { label: "প্রতারণা তৈরি করা", // Creating hoaxes summary: "সতর্কতা: প্রতারণা তৈরি করা", }, "uw-legal": { label: "আইনি হুমকি প্রদান", summary: "সতর্কতা: আইনি হুমকি প্রদান", }, "uw-login": { label: "লগ আউট অবস্থায় সম্পাদনা", summary: "সতর্কতা: লগ আউট অবস্থায় সম্পাদনা", }, "uw-multipleIPs": { label: "একাধিক আইপি ব্যবহার", summary: "সতর্কতা: একাধিক আইপি ব্যবহার করে ধ্বংসপ্রবণতা", }, "uw-pinfo": { label: "ব্যক্তিগত তথ্য (outing)", summary: "সতর্কতা: ব্যক্তিগত তথ্য", }, "uw-salt": { label: "ভিন্ন শিরোনামের অধীনে সুরক্ষিত নিবন্ধগুলি পুনরায় তৈরি করা", summary: "বিজ্ঞপ্তি: একটি ভিন্ন শিরোনামের অধীনে সুরক্ষিত নিবন্ধগুলি পুনরায় তৈরি করা হচ্ছে", }, "uw-socksuspect": { label: "সকপাপেট্রি", summary: "সতর্কতা: আপনি একজন সন্দেহভাজন [[WP:SOCK|সকপাপেট]]", // of User:... }, "uw-upv": { label: "ব্যবহারকারী পাতা ধ্বংসপ্রবণতা", summary: "সতর্কতা: ব্যবহারকারী পাতা ধ্বংসপ্রবণতা", }, "uw-username": { label: "ব্যবহারকারী নাম নীতিমালা বিরোধী", summary: "সতর্কতা: আপনার ব্যবহারকারী নাম সম্ভবত নীতিমালা বিরোধী", suppressArticleInSummary: true, // not relevant for this template }, "uw-coi-username": { label: "ব্যবহারকারী নাম নীতিমালা বিরোধী, এবং স্বার্থের সংঘাত", summary: "সতর্কতা: ব্যবহারকারী নাম ও স্বার্থের সংঘাত নীতি", heading: "আপনার ব্যবহারকারী নাম", }, "uw-userpage": { label: "ব্যবহারকারী পাতা বা উপপাতা নীতিমালা বিরোধী", summary: "সতর্কতা: ব্যবহারকারী পাতা বা উপপাতা নীতিমালা বিরোধী", }, }, }; // Used repeatedly below across menu rebuilds Twinkle.warn.prev_article = null; Twinkle.warn.prev_reason = null; Twinkle.warn.talkpageObj = null; Twinkle.warn.callback.change_category = function twinklewarnCallbackChangeCategory(e) { var value = e.target.value; var sub_group = e.target.root.sub_group; sub_group.main_group = value; var old_subvalue = sub_group.value; var old_subvalue_re; if (old_subvalue) { if (value === "kitchensink") { // Exact match possible in kitchensink menu old_subvalue_re = new RegExp(mw.util.escapeRegExp(old_subvalue)); } else { old_subvalue = old_subvalue.replace(/\d*(im)?$/, ""); old_subvalue_re = new RegExp( mw.util.escapeRegExp(old_subvalue) + "(\\d*(?:im)?)$" ); } } while (sub_group.hasChildNodes()) { sub_group.removeChild(sub_group.firstChild); } var selected = false; // worker function to create the combo box entries var createEntries = function (contents, container, wrapInOptgroup, val) { val = typeof val !== "undefined" ? val : value; // IE doesn't support default parameters // level2->2, singlewarn->''; also used to distinguish the // scaled levels from singlenotice, singlewarn, and custom var level = val.replace(/^\D+/g, ""); // due to an apparent iOS bug, we have to add an option-group to prevent truncation of text // (search WT:TW archives for "Problem selecting warnings on an iPhone") if (wrapInOptgroup && $.client.profile().platform === "iphone") { var wrapperOptgroup = new Morebits.quickForm.element({ type: "optgroup", label: "ব্যবহারযোগ্য টেমপ্লেটগুলো", }); wrapperOptgroup = wrapperOptgroup.render(); container.appendChild(wrapperOptgroup); container = wrapperOptgroup; } $.each(contents, function (itemKey, itemProperties) { // Skip if the current template doesn't have a version for the current level if (!!level && !itemProperties[val]) { return; } var key = typeof itemKey === "string" ? itemKey : itemProperties.value; var template = key + level; var elem = new Morebits.quickForm.element({ type: "option", label: "{{" + template + "}}: " + (level ? itemProperties[val].label : itemProperties.label), value: template, }); // Select item best corresponding to previous selection if (!selected && old_subvalue && old_subvalue_re.test(template)) { elem.data.selected = selected = true; } var elemRendered = container.appendChild(elem.render()); $(elemRendered).data("messageData", itemProperties); }); }; var createGroup = function (warnGroup, label, wrapInOptgroup, val) { wrapInOptgroup = typeof wrapInOptgroup !== "undefined" ? wrapInOptgroup : true; var optgroup = new Morebits.quickForm.element({ type: "optgroup", label: label, }); optgroup = optgroup.render(); sub_group.appendChild(optgroup); createEntries(warnGroup, optgroup, wrapInOptgroup, val); }; switch (value) { case "singlenotice": case "singlewarn": createEntries(Twinkle.warn.messages[value], sub_group, true); break; case "singlecombined": var unSortedSinglets = $.extend( {}, Twinkle.warn.messages.singlenotice, Twinkle.warn.messages.singlewarn ); var sortedSingletMessages = {}; Object.keys(unSortedSinglets) .sort() .forEach(function (key) { sortedSingletMessages[key] = unSortedSinglets[key]; }); createEntries(sortedSingletMessages, sub_group, true); break; case "custom": createEntries(Twinkle.getPref("customWarningList"), sub_group, true); break; case "kitchensink": ["level1", "level2", "level3", "level4", "level4im"].forEach( function (lvl) { $.each( Twinkle.warn.messages.levels, function (levelGroupLabel, levelGroup) { createGroup( levelGroup, "Level " + lvl.slice(5) + ": " + levelGroupLabel, true, lvl ); } ); } ); createGroup( Twinkle.warn.messages.singlenotice, "Single-issue notices" ); createGroup( Twinkle.warn.messages.singlewarn, "Single-issue warnings" ); createGroup(Twinkle.getPref("customWarningList"), "Custom warnings"); break; case "level1": case "level2": case "level3": case "level4": case "level4im": // Creates subgroup regardless of whether there is anything to place in it; // leaves "Removal of deletion tags" empty for 4im $.each( Twinkle.warn.messages.levels, function (groupLabel, groupContents) { createGroup(groupContents, groupLabel, false); } ); break; case "autolevel": // Check user page to determine appropriate level var autolevelProc = function () { var wikitext = Twinkle.warn.talkpageObj.getPageText(); // history not needed for autolevel var latest = Twinkle.warn.callbacks.dateProcessing(wikitext)[0]; // Pseudo-params with only what's needed to parse the level i.e. no messageData var params = { sub_group: old_subvalue, article: e.target.root.article.value, }; var lvl = "level" + Twinkle.warn.callbacks.autolevelParseWikitext( wikitext, params, latest )[1]; // Identical to level1, etc. above but explicitly provides the level $.each( Twinkle.warn.messages.levels, function (groupLabel, groupContents) { createGroup(groupContents, groupLabel, false, lvl); } ); // Trigger subcategory change, add select menu, etc. Twinkle.warn.callback.postCategoryCleanup(e); }; if (Twinkle.warn.talkpageObj) { autolevelProc(); } else { var usertalk_page = new Morebits.wiki.page( "ব্যবহারকারী_আলাপ:" + mw.config.get("wgRelevantUserName"), "পূর্ববর্তী সতর্কবার্তাসমূহ লোড হচ্ছে।" ); usertalk_page.setFollowRedirect(true, false); usertalk_page.load( function (pageobj) { Twinkle.warn.talkpageObj = pageobj; // Update talkpageObj autolevelProc(); }, function () { // Catch and warn if the talkpage can't load, // most likely because it's a cross-namespace redirect // Supersedes the typical $autolevelMessage added in autolevelParseWikitext var $noTalkPageNode = $("<strong/>", { text: "ব্যবহারকারীর আলাপ পাতা লোড হচ্ছে না; এটি একটি ক্রস-নেমস্পেসের পুনঃনির্দেশ হতে পারে। স্বয়ংক্রিয় লেভেল সনাক্তকরণ সম্ভব নয়।", id: "twinkle-warn-autolevel-message", css: { color: "red" }, }); $noTalkPageNode.insertBefore( $("#twinkle-warn-warning-messages") ); // If a preview was opened while in a different mode, close it // Should nullify the need to catch the error in preview callback e.target.root.previewer.closePreview(); } ); } break; default: alert("টুইংকেল সতর্কীকরণে অজানা সতর্কীকরণ গ্রুপ"); break; } // Trigger subcategory change, add select menu, etc. // Here because of the async load for autolevel if (value !== "autolevel") { // reset any autolevel-specific messages while we're here $("#twinkle-warn-autolevel-message").remove(); Twinkle.warn.callback.postCategoryCleanup(e); } }; Twinkle.warn.callback.postCategoryCleanup = function twinklewarnCallbackPostCategoryCleanup(e) { // clear overridden label on article textbox Morebits.quickForm.setElementTooltipVisibility( e.target.root.article, true ); Morebits.quickForm.resetElementLabel(e.target.root.article); // Trigger custom label/change on main category change Twinkle.warn.callback.change_subcategory(e); // Use select2 to make the select menu searchable if (!Twinkle.getPref("oldSelect")) { $("select[name=sub_group]") .select2({ width: "100%", matcher: Morebits.select2.matchers.optgroupFull, templateResult: Morebits.select2.highlightSearchMatches, language: { searching: Morebits.select2.queryInterceptor, }, }) .change(Twinkle.warn.callback.change_subcategory); $(".select2-selection").keydown(Morebits.select2.autoStart).focus(); mw.util.addCSS( // Increase height ".select2-container .select2-dropdown .select2-results > .select2-results__options { max-height: 350px; }" + // Reduce padding ".select2-results .select2-results__option { padding-top: 1px; padding-bottom: 1px; }" + ".select2-results .select2-results__group { padding-top: 1px; padding-bottom: 1px; } " + // Adjust font size ".select2-container .select2-dropdown .select2-results { font-size: 13px; }" + ".select2-container .selection .select2-selection__rendered { font-size: 13px; }" ); } }; Twinkle.warn.callback.change_subcategory = function twinklewarnCallbackChangeSubcategory(e) { var main_group = e.target.form.main_group.value; var value = e.target.form.sub_group.value; // Tags that don't take a linked article, but something else (often a username). // The value of each tag is the label next to the input field var notLinkedArticle = { "uw-agf-sock": "অন্য অ্যাকাউন্টের ঐচ্ছিক ব্যবহারকারীর নাম ('ব্যবহারকারী:' ছাড়া) ", "uw-bite": "'দংশিত' ব্যবহারকারীর ব্যবহারকারীর নাম ('ব্যবহারকারী:' ছাড়া) ", "uw-socksuspect": "সক মাস্টারের ব্যবহারকারী নাম, যদি জানা থাকে ('ব্যবহারকারী:' ছাড়া) ", "uw-username": "ব্যবহারকারী নাম নীতিমালা ভঙ্গ করে কারণ... ", "uw-aiv": "ঐচ্ছিক ব্যবহারকারীর নাম যেটি রিপোর্ট করা হয়েছে ('ব্যবহারকারী:' ছাড়া) ", }; if ( ["singlenotice", "singlewarn", "singlecombined", "kitchensink"].indexOf( main_group ) !== -1 ) { if (notLinkedArticle[value]) { if (Twinkle.warn.prev_article === null) { Twinkle.warn.prev_article = e.target.form.article.value; } e.target.form.article.notArticle = true; e.target.form.article.value = ""; // change form labels according to the warning selected Morebits.quickForm.setElementTooltipVisibility( e.target.form.article, false ); Morebits.quickForm.overrideElementLabel( e.target.form.article, notLinkedArticle[value] ); } else if (e.target.form.article.notArticle) { if (Twinkle.warn.prev_article !== null) { e.target.form.article.value = Twinkle.warn.prev_article; Twinkle.warn.prev_article = null; } e.target.form.article.notArticle = false; Morebits.quickForm.setElementTooltipVisibility( e.target.form.article, true ); Morebits.quickForm.resetElementLabel(e.target.form.article); } } // add big red notice, warning users about how to use {{uw-[coi-]username}} appropriately $("#tw-warn-red-notice").remove(); var $redWarning; if (value === "uw-username") { $redWarning = $( "<div style='color: red;' id='tw-warn-red-notice'>{{uw-username}} ব্যবহারকারী নাম সম্পর্কিত <b>গুরুতর</b> নীতি লঙ্ঘনের জন্য ব্যবহার করা উচিত <b>নয়</b>। " + "গুরুতর লঙ্ঘন হলে তা সরাসরি UAA-তে জানানো উচিত (টুইংকেলের ARV টুলের মাধ্যমে)। " + "ব্যবহারকারীর সাথে আলোচনা করার জন্য {{uw-username}} শুধুমাত্র সর্বশেষ ক্ষেত্রে ব্যবহার করা উচিত।</div>" ); $redWarning.insertAfter( Morebits.quickForm.getElementLabelObject(e.target.form.reasonGroup) ); } else if (value === "uw-coi-username") { $redWarning = $( "<div style='color: red;' id='tw-warn-red-notice'>{{uw-coi-username}} ব্যবহারকারী নাম সম্পর্কিত <b>গুরুতর</b> নীতি লঙ্ঘনের জন্য ব্যবহার করা উচিত <b>নয়</b>। " + "গুরুতর লঙ্ঘন হলে তা সরাসরি UAA-তে জানানো উচিত (টুইংকেলের ARV টুলের মাধ্যমে)। " + "ব্যবহারকারীর সাথে আলোচনা করার জন্য {{uw-coi-username}} শুধুমাত্র সর্বশেষ ক্ষেত্রে ব্যবহার করা উচিত।</div>" ); $redWarning.insertAfter( Morebits.quickForm.getElementLabelObject(e.target.form.reasonGroup) ); } }; Twinkle.warn.callbacks = { getWarningWikitext: function (templateName, article, reason, isCustom) { var text = "{{subst:" + templateName; // add linked article for user warnings if (article) { // c&pmove has the source as the first parameter if (templateName === "uw-c&pmove") { text += "|to=" + article; } else { text += "|1=" + article; } } if (reason && !isCustom) { // add extra message if ( templateName === "uw-csd" || templateName === "uw-probation" || templateName === "uw-userspacenoindex" || templateName === "uw-userpage" ) { text += "|3=''" + reason + "''"; } else { text += "|2=''" + reason + "''"; } } text += "}}"; if (reason && isCustom) { // we assume that custom warnings lack a {{{2}}} parameter text += " ''" + reason + "''"; } return text + " ~~~~"; }, showPreview: function (form, templatename) { var input = Morebits.quickForm.getInputData(form); // Provided on autolevel, not otherwise templatename = templatename || input.sub_group; var linkedarticle = input.article; var templatetext; templatetext = Twinkle.warn.callbacks.getWarningWikitext( templatename, linkedarticle, input.reason, input.main_group === "custom" ); form.previewer.beginRender( templatetext, "ব্যবহারকারী_আলাপ:" + mw.config.get("wgRelevantUserName") ); // Force wikitext/correct username }, // Just a pass-through unless the autolevel option was selected preview: function (form) { if (form.main_group.value === "autolevel") { // Always get a new, updated talkpage for autolevel processing var usertalk_page = new Morebits.wiki.page( "ব্যবহারকারী_আলাপ:" + mw.config.get("wgRelevantUserName"), "পূর্ববর্তী সতর্কবার্তা গুলো লোড হচ্ছে।" ); usertalk_page.setFollowRedirect(true, false); // Will fail silently if the talk page is a cross-ns redirect, // removal of the preview box handled when loading the menu usertalk_page.load(function (pageobj) { Twinkle.warn.talkpageObj = pageobj; // Update talkpageObj var wikitext = pageobj.getPageText(); // history not needed for autolevel var latest = Twinkle.warn.callbacks.dateProcessing(wikitext)[0]; var params = { sub_group: form.sub_group.value, article: form.article.value, messageData: $(form.sub_group) .find('option[value="' + $(form.sub_group).val() + '"]') .data("messageData"), }; var template = Twinkle.warn.callbacks.autolevelParseWikitext( wikitext, params, latest )[0]; Twinkle.warn.callbacks.showPreview(form, template); // If the templates have diverged, fake a change event // to reload the menu with the updated pageobj if (form.sub_group.value !== template) { var evt = document.createEvent("Event"); evt.initEvent("change", true, true); form.main_group.dispatchEvent(evt); } }); } else { Twinkle.warn.callbacks.showPreview(form); } }, /** * Used in the main and autolevel loops to determine when to warn * about excessively recent, stale, or identical warnings. * @param {string} wikitext The text of a user's talk page, from getPageText() * @returns {Object[]} - Array of objects: latest contains most recent * warning and date; history lists all prior warnings */ dateProcessing: function (wikitext) { var history_re = /<!--\s?Template:([uU]w-.*?)\s?-->.*?(\d{1,2}:\d{1,2}, \d{1,2} \w+ \d{4} \(UTC\))/g; var history = {}; var latest = { date: new Morebits.date(0), type: "" }; var current; while ((current = history_re.exec(wikitext)) !== null) { var template = current[1], current_date = new Morebits.date(current[2]); if ( !(template in history) || history[template].isBefore(current_date) ) { history[template] = current_date; } if (!latest.date.isAfter(current_date)) { latest.date = current_date; latest.type = template; } } return [latest, history]; }, /** * Main loop for deciding what the level should increment to. Most of * this is really just error catching and updating the subsequent data. * May produce up to two notices in a twinkle-warn-autolevel-messages div * * @param {string} wikitext The text of a user's talk page, from getPageText() (required) * @param {Object} params Params object: sub_group is the template (required); * article is the user-provided article (form.article) used to link ARV on recent level4 warnings; * messageData is only necessary if getting the full template, as it's * used to ensure a valid template of that level exists * @param {Object} latest First element of the array returned from * dateProcessing. Provided here rather than processed within to avoid * repeated call to dateProcessing * @param {(Date|Morebits.date)} date Date from which staleness is determined * @param {Morebits.status} statelem Status element, only used for handling error in final execution * * @returns {Array} - Array that contains the full template and just the warning level */ autolevelParseWikitext: function ( wikitext, params, latest, date, statelem ) { var level; // undefined rather than '' means the isNaN below will return true if (/\d(?:im)?$/.test(latest.type)) { // level1-4im level = parseInt(latest.type.replace(/.*(\d)(?:im)?$/, "$1"), 10); } else if (latest.type) { // Non-numbered warning // Try to leverage existing categorization of // warnings, all but one are universally lowercased var loweredType = /uw-multipleIPs/i.test(latest.type) ? "uw-multipleIPs" : latest.type.toLowerCase(); // It would be nice to account for blocks, but in most // cases the hidden message is terminal, not the sig if (Twinkle.warn.messages.singlewarn[loweredType]) { level = 3; } else { level = 1; // singlenotice or not found } } var $autolevelMessage = $("<div/>", { id: "twinkle-warn-autolevel-message", }); if (isNaN(level)) { // No prior warnings found, this is the first level = 1; } else if (level > 4 || level < 1) { // Shouldn't happen var message = "পূর্ববর্তী সতর্কতা স্তর পার্স করতে অক্ষম, দয়া করে হাত দ্বারা একটি সতর্কতা স্তর নির্বাচন করুন৷"; if (statelem) { statelem.error(message); } else { alert(message); } return; } else { date = date || new Date(); var autoTimeout = new Morebits.date(latest.date.getTime()).add( parseInt(Twinkle.getPref("autolevelStaleDays"), 10), "days" ); if (autoTimeout.isAfter(date)) { if (level === 4) { level = 4; // Basically indicates whether we're in the final Main evaluation or not, // and thus whether we can continue or need to display the warning and link if (!statelem) { var $link = $("<a/>", { href: "#", text: "ARV টুলটি চালু করতে এখানে ক্লিক করুন।", css: { fontWeight: "bold" }, click: function () { Morebits.wiki.actionCompleted.redirect = null; Twinkle.warn.dialog.close(); Twinkle.arv.callback(mw.config.get("wgRelevantUserName")); $("input[name=page]").val(params.article); // Target page $("input[value=final]").prop("checked", true); // Vandalism after final }, }); var statusNode = $("<div/>", { text: mw.config.get("wgRelevantUserName") + " সম্প্রতি চতুর্থ স্তরের সতর্কতা বার্তা পেয়েছেন (" + latest.type + ") তাই সম্ভবত অভিযোগ করা ভালো হবে; ", css: { color: "red" }, }); statusNode.append($link[0]); $autolevelMessage.append(statusNode); } } else { // Automatically increase severity level += 1; } } else { // Reset warning level if most-recent warning is too old level = 1; } } $autolevelMessage.prepend( $( '<div>একটা ইস্যু সৃষ্টি করবে যা, <span style="font-weight: bold;">লেভেল ' + level + "</span> টেমপ্লেটে।</div>" ) ); // Place after the stale and other-user-reverted (text-only) messages $("#twinkle-warn-autolevel-message").remove(); // clean slate $autolevelMessage.insertAfter($("#twinkle-warn-warning-messages")); var template = params.sub_group.replace(/(.*)\d$/, "$1"); // Validate warning level, falling back to the uw-generic series. // Only a few items are missing a level, and in all but a handful // of cases, the uw-generic series is explicitly used elsewhere per WP:UTM. if (params.messageData && !params.messageData["level" + level]) { template = "uw-generic"; } template += level; return [template, level]; }, main: function (pageobj) { var text = pageobj.getPageText(); var statelem = pageobj.getStatusElement(); var params = pageobj.getCallbackParameters(); var messageData = params.messageData; // JS somehow didn't get destructured assignment until ES6 so of course IE doesn't support it var warningHistory = Twinkle.warn.callbacks.dateProcessing(text); var latest = warningHistory[0]; var history = warningHistory[1]; var now = new Morebits.date(pageobj.getLoadTime()); Twinkle.warn.talkpageObj = pageobj; // Update talkpageObj, just in case if (params.main_group === "autolevel") { // [template, level] var templateAndLevel = Twinkle.warn.callbacks.autolevelParseWikitext( text, params, latest, now, statelem ); // Only if there's a change from the prior display/load if ( params.sub_group !== templateAndLevel[0] && !confirm( "{{" + templateAndLevel[0] + "}} টেমপ্লেটটি ব্যবহারকারীর জন্য একটি ইস্যু তৈরি করবে, ঠিক আছে?" ) ) { statelem.error("ব্যবহারকারীর অনুরোধে বাতিল করা হয়েছে"); return; } // Update params now that we've selected a warning params.sub_group = templateAndLevel[0]; messageData = params.messageData["level" + templateAndLevel[1]]; } else if (params.sub_group in history) { if ( new Morebits.date(history[params.sub_group]) .add(1, "day") .isAfter(now) ) { if ( !confirm( "An identical " + params.sub_group + " গত ২৪ ঘন্টায় ইস্যুগুলো হয়েছে। \nআপনি কি এখনও এই সতর্কবার্তা/বিজ্ঞপ্তি যোগ করতে চান?" ) ) { statelem.error("ব্যবহারকারীর অনুরোধে বাতিল করা হয়েছে"); return; } } } latest.date.add(1, "minute"); // after long debate, one minute is max if (latest.date.isAfter(now)) { if ( !confirm( "একটি ইস্যু" + latest.type + " শেষ মিনিটে উত্থাপিত হয়েছে। \nআপনি কি এখনও এই সতর্কবার্তা/বিজ্ঞপ্তি যোগ করতে চান?" ) ) { statelem.error("aborted per user request"); return; } } // build the edit summary // Function to handle generation of summary prefix for custom templates var customProcess = function (template) { template = template.split("|")[0]; var prefix; switch (template.substr(-1)) { case "1": prefix = "সাধারণ মন্তব্য"; break; case "2": prefix = "সতর্কবার্তা"; break; case "3": prefix = "সতর্কবার্তা"; break; case "4": prefix = "সর্বশেষ সতর্কবার্তা"; break; case "m": if (template.substr(-3) === "4im") { prefix = "একমাত্র সতর্কবার্তা"; break; } // falls through default: prefix = "বিজ্ঞপ্তি"; break; } return ( prefix + ": " + Morebits.string.toUpperCaseFirstChar(messageData.label) ); }; var summary; if (params.main_group === "custom") { summary = customProcess(params.sub_group); } else { // Normalize kitchensink to the 1-4im style if ( params.main_group === "kitchensink" && !/^D+$/.test(params.sub_group) ) { var sub = params.sub_group.substr(-1); if (sub === "m") { sub = params.sub_group.substr(-3); } // Don't overwrite uw-3rr, technically unnecessary if (/\d/.test(sub)) { params.main_group = "level" + sub; } } // singlet || level1-4im, no need to /^\D+$/.test(params.main_group) summary = messageData.summary || (messageData[params.main_group] && messageData[params.main_group].summary); // Not in Twinkle.warn.messages, assume custom template if (!summary) { summary = customProcess(params.sub_group); } if (messageData.suppressArticleInSummary !== true && params.article) { if ( params.sub_group === "uw-agf-sock" || params.sub_group === "uw-socksuspect" || params.sub_group === "uw-aiv" ) { // these templates require a username summary += " [[:ব্যাবহারকারী:" + params.article + "]] পাতায়"; } else { summary += " [[:" + params.article + "]] পাতায়"; } } } pageobj.setEditSummary(summary + "।"); pageobj.setChangeTags(Twinkle.changeTags); pageobj.setWatchlist(Twinkle.getPref("watchWarnings")); // Get actual warning text var warningText = Twinkle.warn.callbacks.getWarningWikitext( params.sub_group, params.article, params.reason, params.main_group === "custom" ); if ( Twinkle.getPref("showSharedIPNotice") && mw.util.isIPAddress(mw.config.get("wgTitle")) ) { Morebits.status.info( "তথ্য", "একটি শেয়ার করা আইপি নোটিশ যোগ করা হচ্ছে।" ); warningText += "\n{{subst:Shared IP advice}}"; } var sectionExists = false, sectionNumber = 0; // Only check sections if there are sections or there's a chance we won't create our own if (!messageData.heading && text.length) { // Get all sections var sections = text.match(/^(==*).+\1/gm); if (sections && sections.length !== 0) { // Find the index of the section header in question var dateHeaderRegex = now.monthHeaderRegex(); sectionNumber = 0; // Find this month's section among L2 sections, preferring the bottom-most sectionExists = sections.reverse().some(function (sec, idx) { return ( /^(==)[^=].+\1/m.test(sec) && dateHeaderRegex.test(sec) && typeof (sectionNumber = sections.length - 1 - idx) === "number" ); }); } } if (sectionExists) { // append to existing section pageobj.setPageSection(sectionNumber + 1); pageobj.setAppendText("\n\n" + warningText); pageobj.append(); } else { if (messageData.heading) { // create new section pageobj.setNewSectionTitle(messageData.heading); } else { Morebits.status.info( "তথ্য", "যেহেতু কিছুই পাওয়া যায় নি, তাই এই মাসের জন্য নতুন অনুচ্ছেদ তৈরি করা হবে" ); pageobj.setNewSectionTitle(now.monthHeader(0)); } pageobj.setNewSectionText(warningText); pageobj.newSection(); } }, }; Twinkle.warn.callback.evaluate = function twinklewarnCallbackEvaluate(e) { var userTalkPage = "ব্যবহারকারী_আলাপ:" + mw.config.get("wgRelevantUserName"); // reason, main_group, sub_group, article var params = Morebits.quickForm.getInputData(e.target); // Check that a reason was filled in if uw-username was selected if (params.sub_group === "uw-username" && !params.article) { alert( "{{uw-username}} এই টেমপ্লেটি ব্যবহারের জন্য আপনাকে সঠিক কারণ দর্শাতে হবে।" ); return; } // The autolevel option will already know by now if a user talk page // is a cross-namespace redirect (via !!Twinkle.warn.talkpageObj), so // technically we could alert an error here, but the user will have // already ignored the bold red error above. Moreover, they probably // *don't* want to actually issue a warning, so the error handling // after the form is submitted is probably preferable // Find the selected <option> element so we can fetch the data structure var $selectedEl = $(e.target.sub_group).find( 'option[value="' + $(e.target.sub_group).val() + '"]' ); params.messageData = $selectedEl.data("messageData"); Morebits.simpleWindow.setButtonsEnabled(false); Morebits.status.init(e.target); Morebits.wiki.actionCompleted.redirect = userTalkPage; Morebits.wiki.actionCompleted.notice = "সতর্কবার্তা প্রদান করা হয়েছে, কয়েক সেকেন্ডের মধ্যে আলাপ পাতা পুনঃলোড করা হবে"; var wikipedia_page = new Morebits.wiki.page( userTalkPage, "আলাপ পাতা পরিবর্তন" ); wikipedia_page.setCallbackParameters(params); wikipedia_page.setFollowRedirect(true, false); wikipedia_page.load(Twinkle.warn.callbacks.main); }; Twinkle.addInitCallback(Twinkle.warn, "warn"); })(jQuery); // </nowiki> lnlc9td0p5kf56mc5p37b28sjbzr2gd ব্যবহারকারী আলাপ:তমালকৃষ্ণ মণ্ডল 3 52995 131483 2022-07-29T04:07:35Z MdsShakil 6871 MdsShakil [[ব্যবহারকারী আলাপ:তমালকৃষ্ণ মণ্ডল]] কে [[ব্যবহারকারী আলাপ:Pratyutpannamati]] শিরোনামে স্থানান্তর করেছেন: ব্যবহারকারীকে "[[Special:CentralAuth/তমালকৃষ্ণ মণ্ডল|তমালকৃষ্ণ মণ্ডল]]" থেকে "[[Special:CentralAuth/Pratyutpannamati|Pratyutpannamati]]"-এ নামান্তরের সময় স্বয়ংক্রিয়ভাবে পাতা স্থানান্তরিত wikitext text/x-wiki #পুনর্নির্দেশ [[ব্যবহারকারী আলাপ:Pratyutpannamati]] 83dyp3eiwe9yj4obqjn5lyoiqlrk1pm