मुख्य सामग्री पर जाएं

उन्नत अनुकूलन विकल्प

आप अधिक अनुकूलित कॉन्फ़िगरेशन को Extended Configuration Page -> Developer Settings -> User Config में संपादित कर सकते हैं, जो UI में उन्नत उपयोगकर्ताओं के लिए संपादन योग्य नहीं हैं, अधिक विवरण के लिए अंतिम नोट में दिए गए पैरामीटर देखें। वर्तमान बिल्ट-इन config यहां पाया जा सकता है।

उपयोगकर्ता नियम

Rules के साथ, किसी विशेष वेबसाइट की कॉन्फ़िगरेशन को अनुकूलित करना संभव है, यह तय करना कि किस सामग्री का अनुवाद करना है या नहीं, या पृष्ठों की शैली को समायोजित करना आदि।

[
{
"matches": "www.google.com",
"selectors": [".title"]
},
{
"matches": "*.twitter.com",
"selectors": [".text"],
"excludeSelectors": ["nav", " footer"]
}
]

संबंधित वेबसाइट से मेल खाने के लिए matches का उपयोग करें। वाइल्डकार्ड की अनुमति है, जैसे *.google.com,www.google.com/test/*,file://*

selectors का उपयोग करके स्मार्ट अनुवाद स्कोप को ओवरराइड करें, केवल उस चयनकर्ता से मेल खाने वाले तत्वों का अनुवाद करें।

स्थिति का अनुवाद किए बिना तत्वों को बाहर करने के लिए excludeSelectors का उपयोग करें।

बुद्धिमान अनुवाद के आधार पर अनुवाद सीमा को बढ़ाने या घटाने के लिए additional परिवार के चयनकर्ताओं का उपयोग करें।

[
{
"matches": "www.google.com",
"additionalSelectors": [],
"additionalExcludeSelectors": []
}
]

यदि आप एक क्षेत्र का अनुवाद करना चाहते हैं जबकि तत्वों को एक पूरे के रूप में मानते हुए और उन्हें अलग नहीं करते हैं, तो आप atomicBlockSelectors चयनकर्ता का उपयोग कर सकते हैं। उदाहरण के लिए, इंस्टाग्राम प्रोफाइल। ध्यान दें कि atomicBlockSelectors का उपयोग करने के लिए पहले selectors के साथ चयन करना आवश्यक है।

{
"matches": "https://www.instagram.com/*",
"selectors": [
"div._aa_c h1",
"li._acaz div[role=\"menuitem\"]"
]
"atomicBlockSelectors": [
"div. ._aa_c h1",
"li._acaz div[role=\"menuitem\"]"
]
}

यदि अनुवाद के परिणामस्वरूप पृष्ठ असंगत हो जाते हैं, पाठ ओवरलैप होता है, और अन्य किनारे के मामले होते हैं, तो आप इसे ठीक करने के लिए पृष्ठ शैली को समायोजित करने के लिए globalStyles का उपयोग कर सकते हैं। उदाहरण के लिए, यूट्यूब हेडर, जिसका उपयोग मूल पृष्ठ की अधिकतम ऊंचाई को हटाने के लिए किया जाता है।

{
"matches": "www.google.com",
"globalStyles": { ".title": "max-height:unset;" }
}

उपयोगकर्ता नियम समेकन संवर्द्धन

0.7.4+ समर्थन। अनुवाद-नहीं क्षेत्र को छोड़ने का उदाहरण लें

{
"matches": "https://www.elektrotechnik.rwth-aachen.de/*",
"additionalExcludeSelectors.remove": [".notranslate", "[translate=no]"]
}

डिफ़ॉल्ट रूप से प्रदान किए गए नियमों को जोड़ने और हटाने के संचालन को संशोधित करते हैं और उन्हें पूरी तरह से बदलने की आवश्यकता नहीं होती है, जैसा कि पहले था।

इंजेक्टेड CSS

इंजेक्टेड CSS आपको कस्टम वेब शैलियों को वैश्विक रूप से इंजेक्ट करने की अनुमति देता है। इसे Rules के translationClasses के साथ उपयोग किया जा सकता है।

".immersive-translate-target-wrapper img { width: 16px; height: 16px }"

यह साइट को एक अधिक व्यक्तिगत तरीके से स्टाइल करना भी संभव है, जैसे एक नियमित वेब स्टाइल मैनेजर। (यहां तक कि विज्ञापनों को हटाने के लिए display:none का उपयोग करना)

.title {
color: red;
}

उपयोगकर्ता कॉन्फ़िग

कॉन्फ़िग आपको इस प्लगइन की कॉन्फ़िगरेशन को अनुकूलित करने की अनुमति देता है, जैसे कि अनुवाद सेवाएं, भाषा-विशिष्ट भाषा अनुवाद विकल्प, आदि।

{
"translationService": "tencent",
"translationServices": {
"tencent": {
"secretId": "xxx",
"secretKey": "xxx",
"matches": ["*.twitter.com"]
}
} ,
"translationUrlPattern": {
"excludeMatches": ["www.google.com"]
},
"translationLanguagePattern": {
"matches": ["en"]
},
"translationTheme". "none",
"translationThemePatterns": {
"underline": {
"matches": ["discord.com"]
}
},
"generalRule": {
"_comment": "",
"normalizeBody": "",
" injectedCss": [],
"additionalInjectedCss": [],
"wrapperPrefix": "smart",
"wrapperSuffix": "smart",
"isPdf": false,
"isTransformPreTagNewLine ": false,
"urlChangeDelay": 20,
"isShowUserscriptPagePopup": true,
"observeUrlChange": true,
"paragraphMinTextCount": 8,
" paragraphMinWordCount": 2,
"blockMinTextCount": 32,
"blockMinWordCount": 5,
"containerMinTextCount": 18,
"lineBreakMaxTextCount": 0,
" globalAttributes": {},
"globalStyles": {},
"selectors": [],
"preWhitespaceDetectedTags": ["DIV", "SPAN"],
"stayOriginalSelectors": [],
" additionalSelectors": [],
"atomicBlockTags": [],
"excludeSelectors": [],
"additionalExcludeSelectors": [],
"translationClasses": [],
" atomicBlockSelectors": [],
"excludeTags": [],
"metaTags": ["META", "SCRIPT", "STYLE", "NOSCRIPT"],
"additionalExcludeTags": [],
" stayOriginalTags": ["CODE", "TT", "IMG", "SUP"],
"additionalStayOriginalTags": [],
"inlineTags": [],
"additionalInlineTags": [],
" extraInlineSelectors": [],
"additionalInlineSelectors": [],
"extraBlockSelectors": [],
"allBlockTags": [],
"pdfNewParagraphLineHeight": 2.4 ,
"pdfNewParagraphIndent": 1.2,
"pdfNewParagraphIndentRightIndentPx": 130,
"fingerCountToToggleTranslagePageWhenTouching": 4
},
"rules": [
{
"matches": "www.google.com",
"selectors": [".class"]
}
]
}

rules में नियम फ़ील्ड generalRule में सभी फ़ील्ड का उपयोग कर सकते हैं। rules की सर्वोच्च प्राथमिकता होती है, जब किसी विशेष साइट के लिए किसी विशेष rule का मिलान होता है, तो generalRule और उस rule के नियमों को मर्ज करते हैं।

कॉन्फ़िग के कुछ सामान्य फ़ील्ड का परिचय।

पॉपअप पैनल में बिना कॉन्फ़िगर किए गए अनुवाद सेवाओं को न दिखाएं

"showUnconfiguredTranslationServiceInPopup": false

अनुवाद सेवाओं की कॉन्फ़िगरेशन

डिफ़ॉल्ट अनुवाद इंजन का चयन करने के लिए translationService का उपयोग करें, जो वर्तमान में समर्थन करता है:

| "tencent"
| "google"
| "deepl"
| "baidu"
| "volc"
| "youdao"
| "caiyun"
| "openl"
| "bing"
| "transmart"

प्रत्येक अनुवाद सेवा के apikey को कॉन्फ़िगर करने के लिए translationServices का उपयोग करें, विभिन्न सेवा प्रदाताओं को विभिन्न पैरामीटर की आवश्यकता होती है, और उनके एपीआई कुंजियों को उनके संबंधित वेबसाइटों के डेवलपर केंद्र में अनुरोध किया जा सकता है।

उदाहरण के लिए, Tencent अनुवादक, आपको secretId, secretKey को कॉन्फ़िगर करने की आवश्यकता है। आप प्रति माह 5 मिलियन मुफ्त वर्णों के साथ एपीआई कुंजी के लिए आवेदन करने के लिए Tencent क्लाउड पर जा सकते हैं। आवेदन प्रक्रिया के लिए यहां देखें।

"translationServices": {
"tencent": {
"secretId": "xxx",
"secretKey": "xxx",
"matches":["*.twitter.com"],
"limit": 3,
"apiUrl":"",
" maxTextGroupLengthPerRequest": 25,
"maxTextLengthPerRequest": 1800
}
}

matches फ़ील्ड, एक विशिष्ट वेबसाइट के लिए इस अनुवाद सेवा का उपयोग करना।

limit फ़ील्ड, जो इस अनुवाद सेवा के लिए प्रति सेकंड अधिकतम अनुरोधों की संख्या निर्दिष्ट करता है (कुछ सेवाएं प्रति सेकंड अधिकतम अनुरोधों की संख्या को सीमित करती हैं)।

maxTextGroupLengthPerRequest फ़ील्ड, प्रति अनुरोध अधिकतम पैराग्राफ की संख्या

maxTextLengthPerRequest फ़ील्ड, प्रति अनुरोध अधिकतम वर्णों की संख्या

apiUrl आपको अनुवाद इंटरफेस के पते को अनुकूलित करने की अनुमति देता है।

हमेशा विशिष्ट वेबसाइटों का अनुवाद करें

translationUrlPattern साइटों को कॉन्फ़िगर करता है जो हमेशा अनुवादित होती हैं, और साइटें जो कभी अनुवादित नहीं होती हैं।

  • matches कॉन्फ़िगरेशन हमेशा साइट का अनुवाद करता है।
  • excludeMatches उन साइटों को कॉन्फ़िगर करें जो कभी अनुवादित नहीं होती हैं।

कॉन्फ़िगरेशन मान डोमेन नाम या * के साथ URL हो सकते हैं, जैसे:www.google.com/mail/*

"translationUrlPattern": {
"matches": ["stackoverflow.com"]
"excludeMatches": ["www.google.com/mail/*"]
}

हमेशा विशिष्ट भाषाओं का अनुवाद करें

translationLanguagePattern, उस भाषा को कॉन्फ़िगर करता है जो हमेशा अनुवादित होती है और वह भाषा जो कभी अनुवादित नहीं होती है।

  • matches उस भाषा को कॉन्फ़िगर करें जो हमेशा अनुवादित होती है, जैसे en,
  • excludeMatches उन भाषाओं को कॉन्फ़िगर करता है जो कभी अनुवादित नहीं होती हैं।

अनुवाद प्रदर्शन प्रारूप

translationTheme अनुवाद का प्रदर्शन प्रारूप है, और वर्तमान में निम्नलिखित शैलियों का समर्थन करता है:

| "none"
| "dashed"
| "dotted"
| "underline"
| "mask"
| "paper"
| "highlight"
| "blockquote"
| "weakening"
| "italic"
| "bold"
| "thinDashed".

संबंधित चीनी नाम:

{
"none": "none",
"dashed": "dotted underline",
"dotted": "dotted underline",
"underline": "straight line underline",
"mask": "blur effect",
"paper": "white paper shadow effect",
"highlight": "highlight",
"blockquote": "quote style",
"weakening": "weakening",
"italic": "italics",
"bold": "bolding",
"thinDashed": "thin dashed underline"
}

translationThemePatterns आपको विभिन्न वेबसाइटों के लिए विभिन्न अनुवाद शैलियों को कॉन्फ़िगर करने की अनुमति देता है।

"translationThemePatterns": {
"underline": {
"matches": ["discord.com"]
}
}

क्लास gpt पेज स्ट्रीम संदेश अनुवाद

{
"matches": ["chat.openai.com"],
"excludeSelectors": [".markdown *"],
"aiRule": {
"streamingSelector": ".result-streaming.markdown ",
"messageWrapperSelector": ".markdown",
"streamingChange": true
}
}

नियम

rules एक ऐरे ऑब्जेक्ट है जो आपको विशेष साइटों के लिए नियमों को कॉन्फ़िगर करने की अनुमति देता है, जैसे कि ट्विटर केवल एक निश्चित क्षेत्र के एक हिस्से का अनुवाद करता है:

{
"rules": [
{
"id": "twitter",
"matches": ["twitter.com", "mobile.twitter.com", "tweetdeck.twitter.com"],
"selectors": [
"[data-testid=' tweetText']",
".tweet-text",
".js-quoted-tweet-text",
"[data-testid='card.layoutSmall.detail'] > div:nth-child(2)",
"[data-testid=' developerBuiltCardContainer'] > div:nth-child(2)",
"[data-testid='card.layoutLarge.detail'] > div:nth-child(2)"
],
"extraInlineSelectors": ["[data-testid=\"tweetText\"] div"]
}
]
}

वर्तमान बिल्ट-इन rules यहां पाया जा सकता है।

कुछ महत्वपूर्ण फ़ील्ड नीचे चयनित हैं:

export interface Rule {
// वेबसाइट से मेल खाएं
id?: string; // प्रत्येक अनुकूलन नियम का अपना id होता है, यदि उपयोगकर्ता इस नियम को फिर से उपयोग करना चाहते हैं, तो उन्हें अपने नियम में इस संबंधित id को जोड़ना होगा ताकि इसे फिर से उपयोग किया जा सके
matches?: string | string[]; // यह नियम केवल यहां वेबसाइट से मेल खाएगा। यह नियम केवल यहां साइटों से मेल खाएगा।
excludeMatches?: string | string[]; // विशिष्ट साइटों को बाहर करें।
selectorMatches?: string | string[]; // सभी URL निर्दिष्ट किए बिना चयनकर्ता के साथ मेल खाएं
excludeSelectorMatches?: string | string[]; // नियमों को बाहर करें, जैसा कि ऊपर।

// अनुवाद की सीमा निर्दिष्ट करें
selectors?: string | string[]; // केवल मेल खाने वाले तत्वों का अनुवाद करें
excludeSelectors?: string | string[]; // तत्वों को बाहर करें, मेल खाने वालों का अनुवाद न करें
excludeTags?: string | string[]; // टैग को बाहर करें, मेल खाने वाले टैग का अनुवाद न करें

// ओवरराइड करने के बजाय अनुवाद सीमा जोड़ें
additionalSelectors?: string | string[]; // अनुवाद सीमा जोड़ें। बुद्धिमानी से अनुवादित क्षेत्रों में अनुवाद स्थान जोड़ें।
additionalExcludeSelectors?: string | string[]; // अतिरिक्त तत्वों को बाहर करें ताकि स्मार्ट अनुवाद विशिष्ट स्थानों का अनुवाद न करे।
additionalExcludeTags?: string | string[]; // अतिरिक्त टैग को बाहर करें

// जैसा है वैसा छोड़ें
stayOriginalSelectors?: string | string[]; // मेल खाने वाले तत्वों को जैसा है वैसा छोड़ दिया जाएगा। सामान्यतः फोरम साइट टैग में उपयोग किया जाता है।
stayOriginalTags?: string | string[]; // मेल खाने वाले टैग को जैसा है वैसा छोड़ दिया जाएगा, जैसे `code`

// क्षेत्रीय अनुवाद
atomicBlockSelectors?: string | string[]; // क्षेत्रीय चयनकर्ता, मेल खाने वाले तत्वों को एक पूरे के रूप में माना जाएगा, खंडों में अनुवादित नहीं किया जाएगा।
atomicBlockTags?: string | string[]; // क्षेत्र टैग चयनकर्ता, जैसा कि ऊपर

// ब्लॉक या इनलाइन
extraBlockSelectors?: string | string[]; // अतिरिक्त चयनकर्ता, मेल खाने वाले तत्वों को ब्लॉक तत्वों के रूप में माना जाएगा, एक पंक्ति में अनुवादित नहीं किया जाएगा।
extraInlineSelectors?: string | string[]; // अतिरिक्त चयनकर्ता जो इनलाइन तत्वों के रूप में उपयोग किए जाएंगे।

inlineTags?: string | string[]; // मेल खाने वाले टैग को इनलाइन तत्व के रूप में उपयोग किया जाएगा
preWhitespaceDetectedTags?: string | string[]; // मेल खाने वाले टैग को स्वचालित रूप से लपेटा जाएगा

// अनुवाद शैली
translationClasses? string | string | string[]; // अनुवाद में अतिरिक्त क्लास जोड़ें

// वैश्विक शैलियाँ
globalStyles?: Record<string, string>; // पृष्ठ शैलियों को संशोधित करें, यदि अनुवाद के कारण पृष्ठ गड़बड़ हो जाता है तो उपयोगी है। `
globalAttributes?: Record<string, Record<string, string>>; // पृष्ठ तत्वों के गुणों को संशोधित करें

// एम्बेडेड शैलियाँ
injectedCss?: string | string[]; // CSS शैलियों को एम्बेड करें
additionalInjectedCss?: string | string[]; // इसे ओवरराइड करने के बजाय अतिरिक्त CSS शैलियाँ।

// संदर्भ
wrapperPrefix?: string; // अनुवाद क्षेत्र का उपसर्ग, डिफ़ॉल्ट रूप से स्मार्ट, वर्णों की संख्या के आधार पर लाइन ब्रेक के साथ या बिना।
wrapperSuffix?: string; // अनुवाद क्षेत्र का प्रत्यय

// अनुवाद को लपेटने के लिए वर्णों की संख्या
blockMinTextCount?: number; // न्यूनतम वर्णों की संख्या जो अनुवाद को एक ब्लॉक के रूप में लपेटने के लिए होती है, अन्यथा अनुवाद एक इनलाइन तत्व होता है।
blockMinWordCount?: number; // जैसा कि ऊपर। यदि आप चाहते हैं कि वे हमेशा नई पंक्ति में हों, तो आप दोनों में 0 डाल सकते हैं।

// सामग्री से अनुवादित किए जा सकने वाले न्यूनतम वर्णों की संख्या
containerMinTextCount?: number; // न्यूनतम वर्णों की संख्या जो एक तत्व को अनुवादित होने से पहले होना चाहिए, डिफ़ॉल्ट रूप से 18
paragraphMinTextCount?: number; // पैराग्राफ के लिए न्यूनतम वर्णों की संख्या, उस संख्या से अधिक जो सामग्री को होना चाहिए। संख्या, इससे बड़ा कुछ भी अनुवादित होगा
paragraphMinWordCount?: number; // मूल पैराग्राफ में न्यूनतम शब्दों की संख्या

// लंबे पैराग्राफ के लिए मजबूर लाइन ब्रेक
lineBreakMaxTextCount?: number; // लंबे पैराग्राफ का अनुवाद करते समय पैराग्राफ में वर्णों की अधिकतम संख्या जो मजबूर ब्रेक के लिए होती है।

// अनुवाद कब शुरू करें।
urlChangeDelay?: number; // पृष्ठ में प्रवेश करने के बाद अनुवाद में कितने मिलीसेकंड की देरी होनी चाहिए। पृष्ठ को प्रारंभ करने के लिए प्रतीक्षा करने के लिए, यह डिफ़ॉल्ट रूप से 250ms है
observeUrlChange?: boolean; // यह पता लगाएं कि क्या URL पता बदल गया है और अनुवाद को फिर से शुरू करें, डिफ़ॉल्ट रूप से true।

// मोबाइल
isShowUserscriptPagePopup?: boolean; // मोबाइल उपकरणों पर पृष्ठ पॉपअप दिखाएं। फ्लोटिंग विंडो, डिफ़ॉल्ट रूप से true।
fingerCountToToggleTranslagePageWhenTouching?: number; // जब चार उंगलियाँ छूती हैं तो अनुवाद करता है, इसे 0, 2, 3, 4, 5 पर सेट किया जा सकता है

// एआई स्ट्रीमिंग अनुवाद
aiRule: {
streamingSelector. string; // gpt वेब पृष्ठ में अनुवादित तत्व को चिह्नित करने के लिए चयनकर्ता
messageWrapperSelector: string; // संदेश बॉडी चयनकर्ता
streamingChange: boolean; // क्या संदेश को वर्ग gpt वेब पृष्ठ पुनरावृत्ति के लिए क्रमिक रूप से या पूरी तरह से अपडेट किया गया है। gpt क्रमिक है
};
}

अधिक व्याख्या

ब्लॉक और इनलाइन के बीच का अंतर, यदि आप अधिक जानना चाहते हैं तो आप यहां देख सकते हैं

  • ब्लॉक तत्व एकल पंक्ति लेता है, और कई पड़ोसी ब्लॉक तत्व प्रत्येक नई पंक्ति लेते हैं।
  • इनलाइन तत्व एकल पंक्ति नहीं लेता है; कई पड़ोसी इनलाइन तत्व एक ही पंक्ति में व्यवस्थित होते हैं, और जब तक एक पंक्ति बहुत अधिक नहीं होती, तब तक नई पंक्ति नहीं बनाई जाती।