דילוג לתוכן
  • חוקי הפורום
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
לוגו מותג
  1. דף הבית
  2. מחשבים וטכנולוגיה
  3. מדריכים - מחשבים וטכנולוגיה
  4. שיתוף | תרגום הסטטוס של ה ✔️✔️ במיילטראק

שיתוף | תרגום הסטטוס של ה ✔️✔️ במיילטראק

מתוזמן נעוץ נעול הועבר מדריכים - מחשבים וטכנולוגיה
5 פוסטים 2 כותבים 324 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • יוסף אלחנןי מחובר
    יוסף אלחנןי מחובר
    יוסף אלחנן מדריכים
    כתב נערך לאחרונה על ידי יוסף אלחנן
    #1

    היי לכולם, מקווה שאני לא מפריע לכם בין ניקיון התנור למקרר,
    מקווה שהידיים שלכם לא שומניות מהמסיר שומנים (עוד יותר מקווה שזכרתם להלביש כפפות) .

    יאללה, אז אחרי שידידנו ר' @י-ע ביקש תוסף למעקב מיילים בעברית וכמה שאני יודע, אין חיה כזו... 😞

    אז ככה, יש לנו את התוסף של מיילטראק, לא, זה לא בעברית, אבל חשבתי לנסות לתרגם...
    הורדתי את הCRX שלו, אבל, וואלה, איבדתי את עצמי מרוב קבצים מוצפנים שיש שם... 😵

    כמעט והתייאשתי, אבל אז נזכרתי מידידנו ר' @עדלאידע שהעלה את המודעות לתוסף המעולה Tampermonkey, אמרתי לעצמי, למה לא ננסה עם זה... 🤔

    אז הנה לכם סקריפט בטמפרמונקי שיתרגם לכם את הטולטיפ של מייל טראק 🎉

    // ==UserScript==
    // @name         תרגום הסטטוסים של מיילטראק
    // @namespace    http://tampermonkey.net/
    // @version      1.0
    // @author       יוסף אלחנן@
    // @description  מתרגם טולטיפים של Mailtrack לעברית כולל כל הביטויים בחלונית תוך שמירה על העיצוב
    // @match        https://mail.google.com/*
    // @grant        none
    // ==/UserScript==
    
    (function() {
        'use strict';
    
        const translations = {
            "Your last email was read": " המייל האחרון שלך נקרא ",
            "read your email": " קרא את המייל שלך ",
            "hours ago": " לפני שעות ",
            "Hasn't read your last email yet": " עדיין לא קרא את המייל האחרון שלך ",
            "Email not tracked": " מייל לא במעקב ",
            "read your last email": " קרא את המייל האחרון שלך ",
            "day ago": " לפני יום ",
            "days ago": " לפני ימים ",
            "times": " פעמים ",
            "First read": " קריאה ראשונה ",
            "day after you sent it": " יום אחרי ששלחת אותו ",
            "days after you sent it": " ימים אחרי ששלחת אותו ",
            "The open status of this message may be unreliable": " סטטוס הפתיחה של הודעה זו עשוי להיות לא אמין ",
            "It's possible that email service provider doesn't allow email tracking": " ייתכן שספק שירותי הדוא\"ל לא מאפשר מעקב אחר דוא\"ל ",
            "The open status of this message may be unreliable. It's possible that email service provider doesn't allow email tracking": " סטטוס הפתיחה של הודעה זו עשוי להיות לא אמין. ייתכן שספק שירותי הדוא\"ל לא מאפשר מעקב אחר דוא\"ל ",
            "minutes after you sent it": " דקות אחרי ששלחת אותו ",
            "First read hours after you sent it": " קריאה ראשונה שעות אחרי ששלחת אותו ",
            "First read less than a minute after you sent it": " קריאה ראשונה פחות מדקה אחרי ששלחת אותו ",
            "minutes ago": " לפני דקות "
        };
    
        function translateText(text) {
            let translated = text;
            for (let pattern in translations) {
                const regex = new RegExp(pattern, 'gi');
                translated = translated.replace(regex, translations[pattern]);
            }
            return translated;
        }
    
        function processTextNodes(element) {
            element.childNodes.forEach(node => {
                if (node.nodeType === Node.TEXT_NODE) {
                    const text = node.textContent.trim();
                    if (text && text !== "See full tracking history") {
                        const translated = translateText(text);
                        if (translated !== text) {
                            node.textContent = translated;
                        }
                    }
                } else if (node.nodeType === Node.ELEMENT_NODE) {
                    processTextNodes(node);
                }
            });
        }
    
        function updateTooltips() {
            document.querySelectorAll('[role="tooltip"]').forEach(tooltip => {
                const textOnly = tooltip.textContent.trim();
                if (textOnly && textOnly !== "See full tracking history") {
                    const translatedText = translateText(textOnly);
                    if (translatedText !== textOnly) {
                        // נסה קודם לתרגם את הטקסט המלא
                        if (textOnly in translations) {
                            tooltip.textContent = translatedText;
                        } else {
                            // אם יש עיצוב או פיצול, תרגם את ה-text nodes
                            processTextNodes(tooltip);
                        }
                    }
                }
            });
        }
    
        const observer = new MutationObserver(() => {
            updateTooltips();
        });
    
        observer.observe(document.body, { childList: true, subtree: true });
    
        updateTooltips();
    
        setInterval(() => {
            updateTooltips();
        }, 1000);
    })();
    

    איך להתקין?
    יש לכם מדריך מפורט פה! 👌
    רק תמחקו 🗑 את כל הקוד שמופיע שם ותדביקו את הקוד שהעלתי לעייל.

    התרגום הוא ממש בסיסי, והוא יופיע לפעמים עם שגיאות בשילוב של המילים... 😞
    נגיד, במקום שיהיה כתוב:   קרא את המייל שלך לפני 10 דקות  יהיה כתוב  קרא את המייל שלך 10 לפני דקות
    אבל סומך עליכם שתבינו... 🏆

    מצאתם מילים שלא מופיעות בסקריפט?
    מוזמנים לערוך לבד...

    המון המון הצלחה! 😘

    אה, ותעבדו על האנגלית שלכם! 😉

    בכלל, כדאי לכם לעבור על הקוד, אולי אני תירגמתי לא נכון... 😜

    מעניין לציין שביקשתי מGPT עזרה, אבל הוא עבד ממש קשה (לזכותו יאמר) אבל הוא לא הצליח כלום...

    כשפניתי לGROK של @אלון-מאסק הוא נתן לי מיד סקריפט שעשה את זה, אמנם היו הרבה עריכות ותיקונים, אבל הוא הצליח מיד בקוד הראשון שלו...

    יאנג בויי תגובה 1 תגובה אחרונה
    11
    • יאנג בויי מנותק
      יאנג בויי מנותק
      יאנג בוי מדריכים
      השיב ליוסף אלחנן נערך לאחרונה על ידי
      #2

      @יוסף-אלחנן כתב בשיתוף | תרגום הסטטוס של מיילטראק:

      > // ==UserScript==
      > // @name         תרגום הסטטוסים של מיילטראק
      > // @namespace    http://tampermonkey.net/
      > // @version      1.0
      > // @author       יוסף אלחנן@
      > // @description  מתרגם טולטיפים של Mailtrack לעברית כולל כל הביטויים בחלונית תוך שמירה על העיצוב
      > // @match        https://mail.google.com/*
      > // @grant        none
      > // ==/UserScript==
      >  
      > (function() {
      >     'use strict';
      >  
      >     const translations = {
      >         "Your last email was read": " המייל האחרון שלך נקרא ",
      >         "read your email": " קרא את המייל שלך ",
      >         "hours ago": " לפני שעות ",
      >         "Hasn't read your last email yet": " עדיין לא קרא את המייל האחרון שלך ",
      >         "Email not tracked": " מייל לא במעקב ",
      >         "read your last email": " קרא את המייל האחרון שלך ",
      >         "day ago": " לפני יום ",
      >         "days ago": " לפני ימים ",
      >         "times": " פעמים ",
      >         "First read": " קריאה ראשונה ",
      >         "day after you sent it": " יום אחרי ששלחת אותו ",
      >         "days after you sent it": " ימים אחרי ששלחת אותו ",
      >         "The open status of this message may be unreliable": " סטטוס הפתיחה של הודעה זו עשוי להיות לא אמין ",
      >         "It's possible that email service provider doesn't allow email tracking": " ייתכן שספק שירותי הדוא\"ל לא מאפשר מעקב אחר דוא\"ל ",
      >         "The open status of this message may be unreliable. It's possible that email service provider doesn't allow email tracking": " סטטוס הפתיחה של הודעה זו עשוי להיות לא אמין. ייתכן שספק שירותי הדוא\"ל לא מאפשר מעקב אחר דוא\"ל ",
      >         "minutes after you sent it": " דקות אחרי ששלחת אותו ",
      >         "First read hours after you sent it": " קריאה ראשונה שעות אחרי ששלחת אותו ",
      >         "First read less than a minute after you sent it": " קריאה ראשונה פחות מדקה אחרי ששלחת אותו ",
      >         "minutes ago": " לפני דקות "
      >     };
      >  
      >     function translateText(text) {
      >         let translated = text;
      >         for (let pattern in translations) {
      >             const regex = new RegExp(pattern, 'gi');
      >             translated = translated.replace(regex, translations[pattern]);
      >         }
      >         return translated;
      >     }
      >  
      >     function processTextNodes(element) {
      >         element.childNodes.forEach(node => {
      >             if (node.nodeType === Node.TEXT_NODE) {
      >                 const text = node.textContent.trim();
      >                 if (text && text !== "See full tracking history") {
      >                     const translated = translateText(text);
      >                     if (translated !== text) {
      >                         node.textContent = translated;
      >                     }
      >                 }
      >             } else if (node.nodeType === Node.ELEMENT_NODE) {
      >                 processTextNodes(node);
      >             }
      >         });
      >     }
      >  
      >     function updateTooltips() {
      >         document.querySelectorAll('[role="tooltip"]').forEach(tooltip => {
      >             const textOnly = tooltip.textContent.trim();
      >             if (textOnly && textOnly !== "See full tracking history") {
      >                 const translatedText = translateText(textOnly);
      >                 if (translatedText !== textOnly) {
      >                     // נסה קודם לתרגם את הטקסט המלא
      >                     if (textOnly in translations) {
      >                         tooltip.textContent = translatedText;
      >                     } else {
      >                         // אם יש עיצוב או פיצול, תרגם את ה-text nodes
      >                         processTextNodes(tooltip);
      >                     }
      >                 }
      >             }
      >         });
      >     }
      >  
      >     const observer = new MutationObserver(() => {
      >         updateTooltips();
      >     });
      >  
      >     observer.observe(document.body, { childList: true, subtree: true });
      >  
      >     updateTooltips();
      >  
      >     setInterval(() => {
      >         updateTooltips();
      >     }, 1000);
      > })();
      
      

      כמה שיפורים בנוסח המתורגם:

      // ==UserScript==
      // @name         תרגום הסטטוסים של מיילטראק
      // @namespace    https://mitmachim.top/user/יוסף-אלחנן
      // @version      1.1
      // @author       יוסף אלחנן@
      // @description  מתרגם טולטיפים של Mailtrack לעברית כולל כל הביטויים בחלונית תוך שמירה על העיצוב
      // @match        https://mail.google.com/*
      // @grant        none
      // ==/UserScript==
       
      (function() {
          'use strict';
       
          const translations = {
              "Your last email was read": " המייל האחרון שלך נקרא ",
              "read your email": " קרא את המייל שלך ",
              "hours ago": " שעות אחורה ",
              "Hasn't read your last email yet": " עדיין לא קרא את המייל האחרון שלך ",
              "Email not tracked": " מייל לא במעקב ",
              "read your last email": " קרא את המייל האחרון שלך ",
              "day ago": " יום אחורה ",
              "days ago": " ימים אחורה ",
              "times": " פעמים ",
              "First read": " קריאה ראשונה ",
              "day after you sent it": " יום אחרי ששלחת אותו ",
              "days after you sent it": " ימים אחרי ששלחת אותו ",
              "The open status of this message may be unreliable": " סטטוס הפתיחה של הודעה זו עשוי להיות לא אמין ",
              "It's possible that email service provider doesn't allow email tracking": " ייתכן שספק שירותי הדוא\"ל לא מאפשר מעקב אחר דוא\"ל ",
              "The open status of this message may be unreliable. It's possible that email service provider doesn't allow email tracking": " סטטוס הפתיחה של הודעה זו עשוי להיות לא אמין. ייתכן שספק שירותי הדוא\"ל לא מאפשר מעקב אחר דוא\"ל ",
              "minutes after you sent it": " דקות אחרי ששלחת אותו ",
              "First read hours after you sent it": " קריאה ראשונה שעות אחרי ששלחת אותו ",
              "First read less than a minute after you sent it": " קריאה ראשונה פחות מדקה אחרי ששלחת אותו ",
              "minutes ago": " דקות אחורה "
          };
       
          function translateText(text) {
              let translated = text;
              for (let pattern in translations) {
                  const regex = new RegExp(pattern, 'gi');
                  translated = translated.replace(regex, translations[pattern]);
              }
              return translated;
          }
       
          function processTextNodes(element) {
              element.childNodes.forEach(node => {
                  if (node.nodeType === Node.TEXT_NODE) {
                      const text = node.textContent.trim();
                      if (text && text !== "See full tracking history") {
                          const translated = translateText(text);
                          if (translated !== text) {
                              node.textContent = translated;
                          }
                      }
                  } else if (node.nodeType === Node.ELEMENT_NODE) {
                      processTextNodes(node);
                  }
              });
          }
       
          function updateTooltips() {
              document.querySelectorAll('[role="tooltip"]').forEach(tooltip => {
                  const textOnly = tooltip.textContent.trim();
                  if (textOnly && textOnly !== "See full tracking history") {
                      const translatedText = translateText(textOnly);
                      if (translatedText !== textOnly) {
                          // נסה קודם לתרגם את הטקסט המלא
                          if (textOnly in translations) {
                              tooltip.textContent = translatedText;
                          } else {
                              // אם יש עיצוב או פיצול, תרגם את ה-text nodes
                              processTextNodes(tooltip);
                          }
                      }
                  }
              });
          }
       
          const observer = new MutationObserver(() => {
              updateTooltips();
          });
       
          observer.observe(document.body, { childList: true, subtree: true });
       
          updateTooltips();
       
          setInterval(() => {
              updateTooltips();
          }, 1000);
      })();
      

      לא בדקתי אם זה עובד, קחו את זה בחשבון.

      תגובה 1 תגובה אחרונה
      3
      • יוסף אלחנןי מחובר
        יוסף אלחנןי מחובר
        יוסף אלחנן מדריכים
        כתב נערך לאחרונה על ידי יוסף אלחנן
        #3

        מי שאין לו כוח להתעסק עם Tampermonkey, הפסד שלו... 🙄

        אבל הוא יכול להתקין את התוסף באופן ידני
        Hebrew Mailtrack.zip

        זה עדיין בגרסה שלי, מי שרוצה לשפר את התירגום מוזמן לשנות את המילים לתרגום כפי ש @יאנג-בוי ערך בפוסט הקודם.

        איך להתקין?
        להוריד את הקובץ ZIP, לחלץ 📥
        להיכנס לדף התוספים בדפדפן
        למשתמשי כרום 👇

        chrome://extensions/
        

        לאדג'ים 👇

        edge://extensions/
        

        לוודא שמצב מפתחים מופעל
        073bd0da-09a3-4e33-8c46-1580787419c6-image.png

        ואז להעלות את התיקייה המחולצת על ידי לחיצה על הכפתור הזה 📤
        a4f44964-9434-4621-8a39-8fecb34033d9-image.png

        אין לי מושג איך זה בדפדפן בעברית, תסתדרו...

        משום מה, זה לא מתרגם את המשפט  hasn't read your last email yet 🤷‍♂️
        לא הצלחתי לסדר את זה, אם מישהו יצליח, שיעדכן... 📢

        בהצלחה! 😘

        יאנג בויי תגובה 1 תגובה אחרונה
        3
        • יאנג בויי מנותק
          יאנג בויי מנותק
          יאנג בוי מדריכים
          השיב ליוסף אלחנן נערך לאחרונה על ידי יאנג בוי
          #4

          @יוסף-אלחנן כתב בשיתוף | תרגום הסטטוס של מיילטראק:

          אין לי מושג איך זה בדפדפן בעברית, תסתדרו...

          5806effd-75b6-4286-a7fa-267e8fa10f83-image.png

                                      ☝️☝️☝️☝️

          תגובה 1 תגובה אחרונה
          4
          • י י.ע התייחס לנושא זה
          • יוסף אלחנןי מחובר
            יוסף אלחנןי מחובר
            יוסף אלחנן מדריכים
            כתב נערך לאחרונה על ידי
            #5

            לאחר שראיתי את הפוסט הזה, ולמען האמת, גם לי זה הציק...

            אז שיפרתי (אני... GPT!) את הסקריפט בTampermonkey שהוא גם יתקן את העיצוב שנהרס בגלל הRTL...

            אז הנה לכם הקוד הכולל את שני הפונקציות 👇

            // ==UserScript==
            // @name         תרגום סטטוסים + תיקון עיצוב Mailtrack בג'ימייל
            // @namespace    http://tampermonkey.net/
            // @version      2.0
            // @description  מתרגם טולטיפים של Mailtrack לעברית, מתקן עיצוב כפתור "אימייל חדש" לפי כיוון השפה
            // @author       יוסף אלחנן@
            // @match        https://mail.google.com/*
            // @grant        none
            // ==/UserScript==
            
            (function() {
                'use strict';
            
                // --- חלק 1: תרגום טולטיפים ---
            
                const translations = {
                    "Your last email was read": "המייל האחרון שלך נקרא",
                    "read your email": "קרא את המייל שלך",
                    "hours ago": "לפני שעות",
                    "Hasn't read your last email yet": "עדיין לא קרא את המייל האחרון שלך",
                    "Email not tracked": "מייל לא במעקב",
                    "read your last email": "קרא את המייל האחרון שלך",
                    "day ago": "לפני יום",
                    "days ago": "לפני ימים",
                    "times": "פעמים",
                    "First read": "קריאה ראשונה",
                    "day after you sent it": "יום אחרי ששלחת אותו",
                    "days after you sent it": "ימים אחרי ששלחת אותו",
                    "The open status of this message may be unreliable": "סטטוס הפתיחה של הודעה זו עשוי להיות לא אמין",
                    "It's possible that email service provider doesn't allow email tracking": "ייתכן שספק שירותי הדוא\"ל לא מאפשר מעקב אחר דוא\"ל",
                    "The open status of this message may be unreliable. It's possible that email service provider doesn't allow email tracking": "סטטוס הפתיחה של הודעה זו עשוי להיות לא אמין. ייתכן שספק שירותי הדוא\"ל לא מאפשר מעקב אחר דוא\"ל",
                    "minutes after you sent it": "דקות אחרי ששלחת אותו",
                    "First read hours after you sent it": "קריאה ראשונה שעות אחרי ששלחת אותו",
                    "First read less than a minute after you sent it": "קריאה ראשונה פחות מדקה אחרי ששלחת אותו",
                    "minutes ago": "לפני דקות"
                };
            
                function translateText(text) {
                    let translated = text;
                    for (let pattern in translations) {
                        const regex = new RegExp(pattern, 'gi');
                        translated = translated.replace(regex, translations[pattern]);
                    }
                    return translated;
                }
            
                function processTextNodes(element) {
                    element.childNodes.forEach(node => {
                        if (node.nodeType === Node.TEXT_NODE) {
                            const text = node.textContent.trim();
                            if (text && text !== "See full tracking history") {
                                const translated = translateText(text);
                                if (translated !== text) {
                                    node.textContent = translated;
                                }
                            }
                        } else if (node.nodeType === Node.ELEMENT_NODE) {
                            processTextNodes(node);
                        }
                    });
                }
            
                function updateTooltips() {
                    document.querySelectorAll('[role="tooltip"]').forEach(tooltip => {
                        const textOnly = tooltip.textContent.trim();
                        if (textOnly && textOnly !== "See full tracking history") {
                            const translatedText = translateText(textOnly);
                            if (translatedText !== textOnly) {
                                if (textOnly in translations) {
                                    tooltip.textContent = translatedText;
                                } else {
                                    processTextNodes(tooltip);
                                }
                            }
                        }
                    });
                }
            
                // --- חלק 2: תיקון עיצוב כפתורים ---
            
                function fixButtonCorners() {
                    const composeButton = document.querySelector('.ms-compose-button');
                    const actionsButton = document.querySelector('.ms-compose-button-actions-container');
            
                    if (composeButton && actionsButton) {
                        const isRTL = document.documentElement.getAttribute('dir') === 'rtl';
            
                        if (isRTL) {
                            composeButton.style.borderTopLeftRadius = '0';
                            composeButton.style.borderBottomLeftRadius = '0';
                            composeButton.style.borderTopRightRadius = '16px';
                            composeButton.style.borderBottomRightRadius = '16px';
            
                            actionsButton.style.borderTopLeftRadius = '16px';
                            actionsButton.style.borderBottomLeftRadius = '16px';
                            actionsButton.style.borderTopRightRadius = '0';
                            actionsButton.style.borderBottomRightRadius = '0';
                        } else {
                            composeButton.style.borderTopRightRadius = '0';
                            composeButton.style.borderBottomRightRadius = '0';
                            composeButton.style.borderTopLeftRadius = '16px';
                            composeButton.style.borderBottomLeftRadius = '16px';
            
                            actionsButton.style.borderTopRightRadius = '16px';
                            actionsButton.style.borderBottomRightRadius = '16px';
                            actionsButton.style.borderTopLeftRadius = '0';
                            actionsButton.style.borderBottomLeftRadius = '0';
                        }
                    }
                }
            
                // --- ניטור שינויים בדף ---
            
                const observer = new MutationObserver(() => {
                    updateTooltips();
                    fixButtonCorners();
                });
            
                observer.observe(document.body, { childList: true, subtree: true });
            
                window.addEventListener('load', () => {
                    updateTooltips();
                    fixButtonCorners();
                });
            
                setInterval(() => {
                    updateTooltips();
                    fixButtonCorners();
                }, 1000);
            })();
            
            
            תגובה 1 תגובה אחרונה
            1

            • התחברות

            • אין לך חשבון עדיין? הרשמה

            • התחברו או הירשמו כדי לחפש.
            • פוסט ראשון
              פוסט אחרון
            0
            • חוקי הפורום
            • לא נפתר
            • משתמשים
            • חיפוש גוגל בפורום
            • צור קשר