בקשת מידע | סקריפט בגוגל לתרגום הודעה והחזרת הפלט כהודעה
-
במחשב שלי יש רשת אבל אין אינטרנט. יש לי הגנה חזקה על המחשב, המאפשרת לי לפתוח רק מייל של outlook ושולחן עבודה מרוחק.
אני לומד כעת cmd ועוד, ואני זקוק הרבה מאד לתרגום מקצועי. בינתיים לא מצאתי או שלא הלך לי שום תוכנת תרגום אופליין. השאלה היא האם יש אפשרות ליצור גוגל סקריפט [בחשבון גוגל שיש לי] שכאשר מתקבלת הודעה חדשה במייל [שאשלח מהמייל של outlook] הוא מעביר אותה לתרגום בטרנסלייט, ומחזיר את הפלט למייל השולח או למייל מוגדר מראש.
ניסיתי לעשות, אבל אין לי שמץ ב java ואין לי כח ללמוד שפה שלמה רק בשביל סקריפט אחד...
אשמח אם מישהו מהמומחים ידריך אותי [או אפילו ייצור בשבילי, אבל אני לא מעיז לבקש...]
תודה רבה!:::
@מנצפכ @chv @שאול-נ-י @yzahn @משה-144 ומי עוד?
:::
-
@תודה-רבה-4 זה לא java זה javascript
בג'ימייל אפשרי בהחלט אבל אין לי כ"כ זמן לזה
זה יכול לעזור לך:
https://developers.google.com/apps-script/reference/languageאתה יכול גם לנסות להתבסס על הסקריפט שכתבתי כאן
-
@תודה-רבה-4 אם תתחיל ויהיה לך שאלה ספיציפית יותר אני אשמח לעזור
-
@תודה-רבה-4 לא יודע מה יעזור לך כל כך רק תרגום, בלי אפשרות לחיפוש גוגל של מקורות וכו'
אבל פשוט רכבתי על הסקריפט של @מנצפכ (https://mitmachim.top/post/500897)... לקחתי אותו ופשוט מחקתי כל מה שלא רלוונטי, שיניתי פה ושם מה שהיה צריך וזהו.
אולי יום אחד אם יהיה בא לי אני יכנס ללוגיקה של הקוד עצמו וישנה כמה דברים, לדוגמה שלא יהיה צורך לחכות דקה בין הטריגרים...
קישור ליצירת עותק (בנטפרי צריך לשלוח לבדיקה, משום מה נחסם לי באמצע העריכה, אבל אמור לעבוד כבר):
https://docs.google.com/spreadsheets/d/1FhGDNzsgMJi-W-Y-r9kQ90G-9VgI7evahwMaCsqIhCE/copy
שאר ההוראות הם כמו בקישור של מנצפך (כמובן ללא שום דבר שקשור למערכת הטלפונית בימות), שדות שלא קיימים/אין כותרת באקסל פשוט אל תמלא...
תעדכן -
@צדיק-תמים תודה רבה! אבל יש לי בעיה 'קטנה', שמכיון שאני 'רוכב' על אינטרנט של שרת אחר [עם מחשב מרוחק וכו'], אין לי אפשרות לשלוח לבדיקה לנטפרי, מכיון שאין לי שם חשבון.
אולי אתה יכול לתת לי את הקוד פתוח, ואת האקסל בנפרד [אם שייך כזה דבר, אני ממש לא מבין בגוגל], ואני ינסה להכניס ידנית.
תודה רבה!אגב, אמרת שרכבת על מנצפכ. זה בדיוק מה שניסיתי פעם לעשות, אבל ראיתי שאפ"ה צריך ידע ב javascript...
-
@תודה-רבה-4 אמר בבקשת מידע | סקריפט בגוגל לתרגום הודעה והחזרת הפלט כהודעה:
@צדיק-תמים תודה רבה! אבל יש לי בעיה 'קטנה', שמכיון שאני 'רוכב' על אינטרנט של שרת אחר [עם מחשב מרוחק וכו'], אין לי אפשרות לשלוח לבדיקה לנטפרי, מכיון שאין לי שם חשבון.
אולי אתה יכול לתת לי את הקוד פתוח, ואת האקסל בנפרד [אם שייך כזה דבר, אני ממש לא מבין בגוגל], ואני ינסה להכניס ידנית.
תודה רבה!אני משתמש בנטפרי, ואין לי גישה... כמו שכתבתי זה נחסם לי משום מה עוד לפני שפרסמתי פה, לא ברור לי למה. אשלח לבדיקה, תנסה שוב בהמשך או שאעדכן כשיפתח
אגב, אמרת שרכבת על מנצפכ. זה בדיוק מה שניסיתי פעם לעשות, אבל ראיתי שאפ"ה צריך ידע ב javascript...
ברור
צריך לדעת מה אפשר למחוק, ומה צריך כן לשנות... -
@צדיק-תמים אמר בבקשת מידע | סקריפט בגוגל לתרגום הודעה והחזרת הפלט כהודעה:
לא יודע מה יעזור לך כל כך רק תרגום, בלי אפשרות לחיפוש גוגל של מקורות וכו'
כבר הורדתי אתר שלם של פקודות cmd, אבל כולו באנגלית...
-
@צדיק-תמים תודה רבה! שתזכה לראות פני משיח צדקינו במהרה בימינו אמן.
-
@מנצפכ @צדיק-תמים שמתי
// The code below will write "Esta es una prueba" to the log. var spanish = LanguageApp.translate('This is a test', '', 'he'); Logger.log(spanish);
איך נקרא הפלט?
ואם אני מוסיףGmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');
איך אני מגדיר בתוכן ההודעה את הפלט?
:::
אם זה היה cmd, הייתי אומר לו שהפלט זה abc, ובהודעה הייתי כותב %abc%. אבל אין לי מושג איך זה עובד כאן....
:::
יישר כח גדול!
-
@תודה-רבה-4 אני מבין שאתה רוצה בלי קשר (כי לבעיה הספציפית כבר הכנתי לך...) ללמוד קצת JavaScript... אדרבה למה לא, אני בעד (ובהמשך תראה שזה שימושי הרבה יותר מאשר CMD, אם כי דורש יותר השקעה בלמידה...)
אבל כדאי שכל שאלה, תהיה בנושא נפרד. זה לא עולה כסף לפתוח נושא, זה מקל על הסדר והמענה, וכן יאפשר למישהו שיחפש בעתיד, למצוא בקלות מענה ברור על השאלה.כמו כן אני ממליץ מאוד לקנות את הספר ללמוד ג'אוהסקריפט בעברית של רן בר זיק - https://hebdevbook.com
80 ש"ח סך הכל לקובץ PDF של מאות עמודים, שניתן לקרוא אותו גם באופליין כמובן, ייתן לך את היסודות בצורה מעודכנת ומסודרת. ממליץ בחום מנסיון. שווה כל שקל.לגוף השאלה:
ג'אוהסקריפט היא לא תוכנה שרצה בתוך הטרמינל ומחזירה לו פלט. כלומר כמובן שאפשר להדפיס לוג, אבל זה לא חלק מהותי מהתוכנה אלא יותר למטרות דיבוג וכדו'
אם למשל אתה מגדיר משתנה על ידיvar spanish = LanguageApp.translate('This is a test', '', 'he');
(עדיף מאוד להשתמש בlet/const ולא בvar הישן יותר שיש בו חסרונות שונים, ראה https://blog.chv.ovh/js-scopes ובספר הנ"ל של בר זיק)
אתה יכול להשתמש בו על ידיGmailApp.sendEmail('claire@example.com', 'Subject line', spanish);
טוב, סתם חבל שאני כותב מההתחלה מה שמישהו אחר כבר כתב בצורה מושקעת הרבה יותר, עם עריכה לשונית ומשוב מקוראים וכו...
אני יעצור פה, וישלח אותך לעשות את השיעורי בית הנ"ל
בהצלחה -
-
-
-
@צדיק-תמים נפתח בנטפרי, ב"ה.
הפעלתי, אבל הוא לא מעביר לי לתווית 'תורגם'. לפי איזה קריטריונים הוא אמור לעשות זאת? [כלומר, מה אני צריך להגדיר?]
הוא מראה לי את ההפעלות [והכשלים...], אבל לא מתרגם ומעביר לתווית.
תודה רבה! -
@תודה-רבה-4 מה הכשלים שהוא כותב?
יכול להיות שאין לך את התווית תורגם במייל
א״א להעביר לתווית לא קיימת -
@מנצפכ יש לי את התווית הזו.
זה פרטי הכשל
עכשיו אני אוחז שבטבלה ב - Sheets @צדיק-תמים נתן לי שתי מקומות למלא. לא מילאתי את הראשון, כי לא היה כתוב שם מה זה. יכול להיות שהייתי צריך למלא שם משהו?
-
@צדיק-תמים אמר בבקשת מידע | סקריפט בגוגל לתרגום הודעה והחזרת הפלט כהודעה:
עדיף מאוד להשתמש בlet/const ולא בvar הישן יותר שיש בו חסרונות שונים
בגוגל סקריפט לסקריפט קטן שעושה פעולה אחת אני לא רואה חיסרון בלהשתמש ב var לא מדובר באתר שלם שיש בו את התקלות של הקריאות
-
@מנצפכ אמר בבקשת מידע | סקריפט בגוגל לתרגום הודעה והחזרת הפלט כהודעה:
@צדיק-תמים אמר בבקשת מידע | סקריפט בגוגל לתרגום הודעה והחזרת הפלט כהודעה:
עדיף מאוד להשתמש בlet/const ולא בvar הישן יותר שיש בו חסרונות שונים
בגוגל סקריפט לסקריפט קטן שעושה פעולה אחת אני לא רואה חיסרון בלהשתמש ב var לא מדובר באתר שלם שיש בו את התקלות של הקריאות
זה לא קשור, זה טוב להתרגל קבוע לזה. אין שום סיבה לא לעשות את זה, ויש הרבה סיבות כן לעשות את זה.
@תודה-רבה-4 לא שכחתי אותך, אבל אני עמוס. אשתדל למצוא לזה זמן בהקדם -
@צדיק-תמים כתב בבקשת מידע | סקריפט בגוגל לתרגום הודעה והחזרת הפלט כהודעה:
@תודה-רבה-4 לא שכחתי אותך, אבל אני עמוס. אשתדל למצוא לזה זמן בהקדם
אחר כך כבר כן שכחתי
עכשיו ראיתי שתייגת אותי בפוסט אחר, וכתבתי משהו קטן - לא צריך להגדיר שום תגית ושום שיטס,
פשוט להיכנס לכתובת: https://script.new ולהדביק את הקוד הבא:const SUBJECT_WORD = 'תרגם'; function main() { const scriptProperties = PropertiesService.getScriptProperties(); const threads = GmailApp.search(`subject:("${SUBJECT_WORD}") newer_than:1h`); for (const thread of threads) { const messages = thread.getMessages(); for (const message of messages) { const msgId = message.getId(); const isSaved = scriptProperties.getProperty(msgId); let msgSender; try { msgSender = message.getFrom().split('<')[1].split('>')[0]; } catch (e) { msgSender = message.getFrom(); } const accountConnectedEmail = Session.getActiveUser().getEmail(); if (msgSender !== accountConnectedEmail && !isSaved) { sendReplayTranslated(message); scriptProperties.setProperty(msgId, 'true'); } } } } function sendReplayTranslated(message) { const bodyTranslate = LanguageApp.translate(message.getPlainBody(), '', 'iw'); message.reply(bodyTranslate); }
לאחר מכן להריץ פעם אחת את הסקריפט בחץ בשורת הכלים ולאשר את ההרשאות,
לאחר מכן ללחוץ על סמל השעון מעורר בצד ימין - "מפעילים", ללחוץ למטה בצד שמאל על הוספת טריגר, ולבחור כמו בתמונה:
וללחוץ שמירה.
מכאן ואילך כל מייל שיישלח לכתובת שבה התקנת את הסקריפט עם הכותרת (בדיוק! אפשר לשנות את המילה במשתנה שבתחילת הקוד) "תרגם" ייענה במייל חוזר עם התרגום (כרגע תוך עד דקה - אולי בהמשך אשפר את מהירות התגובה)
תיהנה -
@צדיק-תמים תודה רבה רבה רבה!! עובד מצויין ממש.
יישר כח גדול!!