mirror of
https://github.com/HUSSEIN-Syu/LLMs-RTL.git
synced 2026-11-03 12:19:41 +00:00
Init commit
This commit is contained in:
@@ -0,0 +1,60 @@
|
|||||||
|
// ==UserScript==
|
||||||
|
// @name ChatGPT RTL
|
||||||
|
// @namespace http://chat.openai.com
|
||||||
|
// @author Alireza Farzaneh
|
||||||
|
// @version 0.1.0
|
||||||
|
// @description Changes the direction of Persian text on ChatGPT interface to RTL
|
||||||
|
// @match https://chat.openai.com/*
|
||||||
|
// @grant none
|
||||||
|
// ==/UserScript==
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
'use strict';
|
||||||
|
const PERSIAN_REGEX = /[\u0600-\u06FF\uFB8A\u067E\u0686\u06AF\u200C\u200F]+/;
|
||||||
|
|
||||||
|
// Function to check if a given string contains Persian text
|
||||||
|
function containsPersianText(text) {
|
||||||
|
return PERSIAN_REGEX.test(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to modify a single text node
|
||||||
|
function changeTextElementDirection(element) {
|
||||||
|
element.parentNode.setAttribute('dir', 'rtl');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to recursively search and modify elements containing Persian text
|
||||||
|
function modifyPersianTextElements(element) {
|
||||||
|
var childNodes = element.childNodes;
|
||||||
|
for (var i = 0; i < childNodes.length; i++) {
|
||||||
|
var childNode = childNodes[i];
|
||||||
|
if (childNode.nodeType === Node.TEXT_NODE && containsPersianText(childNode.textContent)) {
|
||||||
|
changeTextElementDirection(childNode);
|
||||||
|
} else if (childNode.nodeType === Node.ELEMENT_NODE) {
|
||||||
|
modifyPersianTextElements(childNode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to handle mutation events
|
||||||
|
function handleMutations(mutationsList) {
|
||||||
|
for (var i = 0; i < mutationsList.length; i++) {
|
||||||
|
var mutation = mutationsList[i];
|
||||||
|
if (mutation.type === 'childList') {
|
||||||
|
var addedNodes = mutation.addedNodes;
|
||||||
|
for (var j = 0; j < addedNodes.length; j++) {
|
||||||
|
var addedNode = addedNodes[j];
|
||||||
|
if (addedNode.nodeType === Node.ELEMENT_NODE) {
|
||||||
|
modifyPersianTextElements(addedNode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Modify elements containing Persian text
|
||||||
|
modifyPersianTextElements(document.body);
|
||||||
|
|
||||||
|
// Watch for DOM mutations and apply RTL direction to newly added Persian text
|
||||||
|
var observer = new MutationObserver(handleMutations);
|
||||||
|
observer.observe(document.body, { childList: true, subtree: true });
|
||||||
|
})();
|
||||||
Reference in New Issue
Block a user