میڈیاویکی:Gadget-Peshkar-translateEnlinks.js
یاددہانی: محفوظ کرنے کے بعد تازہ ترین تبدیلیوں کو دیکھنے کے لیے آپ کو اپنے براؤزر کا کیش صاف کرنا ہوگا۔
- فائرفاکس/ سفاری: جب Reload پر کلک کریں تو Shift دبا کر رکھیں، یا Ctrl-F5 یا Ctrl-R دبائیں (Mac پر R- )
- گوگل کروم: Ctrl-Shift-R دبائیں (Mac پر Shift-R-⌘)
- انٹرنیٹ ایکسپلورر: جب Refresh پر کلک کریں تو Ctrl یا Ctrl-F5 دبائیں
- اوپیرا: Tools → Preferences میں جائیں اور کیش صاف کریں
اس اسکرپٹ کی دستاویزی تفصیلات میڈیاویکی:Gadget-Peshkar-translateEnlinks پر درج کی جا سکتی ہیں۔ |
var peshkarTranslateLinks = (function() {
// صفحہ کے سرخ انگریزی روابط اخذ کرنے کے لیے
function getSurkhRabt() {
return new Promise((resolve, reject) => {
const pageName = mw.config.get('wgPageName');
const params = {
action: 'query',
generator: 'links',
titles: pageName,
gpllimit: 'max',
format: 'json'
};
const mwapi = new mw.Api();
mwapi.get(params).done(async function(data) {
if (data && data.query && data.query.pages) {
const pages = data.query.pages;
let missingPages = [];
for (const p in pages) {
if (pages.hasOwnProperty(p) && pages[p].hasOwnProperty('missing')) {
const englishRegex = /^[A-Za-z0-9\s\-_(),:]*$/;
if (englishRegex.test(pages[p].title)) {
const urduTitle = await getUrduTitle(pages[p].title);
missingPages.push({
english: pages[p].title,
urdu: urduTitle
});
}
}
}
resolve(missingPages);
} else {
resolve([]);
}
}).fail(function(error) {
reject(error);
});
});
}
// مربوط اردو صفحہ اخذ کرنے کے لیے
async function getUrduTitle(englishTitle) {
const endpoint = 'https://en.wikipedia.org/w/api.php';
const params = new URLSearchParams({
action: 'query',
titles: englishTitle,
prop: 'langlinks',
lllang: 'ur',
format: 'json',
formatversion: 2
});
try {
const response = await fetch(`${endpoint}?origin=*&${params.toString()}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
});
const data = await response.json();
if (data.query && data.query.pages) {
const page = data.query.pages[0];
if (page.langlinks && page.langlinks.length > 0) {
return page.langlinks[0].title;
} else {
return 'No Urdu title found';
}
}
} catch (error) {
console.error('API request failed:', error);
return 'Error fetching Urdu title';
}
}
// روابط کا ترجمہ کرنے کے لیے
async function translateEnlinks(text) {
const missingPages = await getSurkhRabt();
missingPages.forEach(page => {
if (page.urdu !== 'No Urdu title found' && page.urdu !== 'Error fetching Urdu title') {
const englishTitleRegex = new RegExp(`\\[\\[(${page.english.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')})(\\|[^\\]]+)?\\]\\]`, 'g');
text = text.replace(englishTitleRegex, (match, p1, p2) => {
let displayText = p2 ? p2.slice(1) : ''; // اصل ربط
let pipeText = p2 ? p2 : ''; // ربط کا عنوان
// کیا ربط کا عنوان اردو میں ہے
if (/[\u0600-\u06FF]/.test(displayText)) {
// اگر اردو میں ہے تو عنوان کو باقی رکھیں اور محض ربط کو اردو میں منتقل کریں
return `[[${page.urdu}${pipeText}]]`;
} else {
// بصورت دیگر انگریزی ربط اور انگریزی عنوان دونوں کو اردو ربط سے بدلیں
return `[[${page.urdu}]]`;
}
});
}
});
return text;
}
return {
translateEnlinks: translateEnlinks,
getUrduTitle: getUrduTitle
};
}());
if (typeof window !== "undefined") {
window.peshkarTranslateLinks = peshkarTranslateLinks;
}