בקשת מידע | סקריפט בגוגל לתרגום הודעה והחזרת הפלט כהודעה
-
@צדיק-תמים תודה רבה! שתזכה לראות פני משיח צדקינו במהרה בימינו אמן.
-
@מנצפכ @צדיק-תמים שמתי
// 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); }
לאחר מכן להריץ פעם אחת את הסקריפט בחץ בשורת הכלים ולאשר את ההרשאות,
לאחר מכן ללחוץ על סמל השעון מעורר בצד ימין - "מפעילים", ללחוץ למטה בצד שמאל על הוספת טריגר, ולבחור כמו בתמונה:
וללחוץ שמירה.
מכאן ואילך כל מייל שיישלח לכתובת שבה התקנת את הסקריפט עם הכותרת (בדיוק! אפשר לשנות את המילה במשתנה שבתחילת הקוד) "תרגם" ייענה במייל חוזר עם התרגום (כרגע תוך עד דקה - אולי בהמשך אשפר את מהירות התגובה)
תיהנה -
@צדיק-תמים תודה רבה רבה רבה!! עובד מצויין ממש.
יישר כח גדול!!