ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin

quick_link Babylon ב-Awesome, ובכלל

מעבר לעמוד 1, 2, 3  הבא
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
bjesusאורח · ·
 

הודעה פורסם: 29/01/2009 - 16:56
נושא ההודעה: Babylon ב-Awesome, ובכלל

אהלן,
כתבתי סקריפט פייתון קצרצר שמתממשק לבבילון ומביא את התרגום. אני משתמש בו עם xclip ב-Awesome ככה שאחרי סימון מילה כלשהי, Ctrl+D מדפיס באמצעות Naughty את התרגום.

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

להלן הקוד:
קוד:
import sys, urllib2
from BeautifulSoup import BeautifulSoup

term = sys.argv[1]
url = 'http://info.babylon.com/cgi-bin/info.cgi?s=educaterra&lang=14&word='+term

code = BeautifulSoup(urllib2.urlopen(url).read())
print code.div.prettify().replace('<div align="right" dir="rtl">\n<font color="BLUE">\n ', '').replace('\n', '').replace('</font>', ' ').replace('<br /><br /></div>', '').replace('<hr /><font color="BLUE"> ', '\n')


אני יודע, זה לא הכי נקי, אבל זה עובד וגם עובד מהר.
כאמור, מריצים כך:
קוד:
bjesus@tilon ~/projects/pytrans % ./pytrans.py hello | iconv -f utf8 -t windows-1252 -c | iconv -f iso88598 -t utf8       
(מ"ק) הלו, היי (ברכת שלום, ברכה בזמן פגישה); הלו! (קריאה למשוך תשומת-לב)
(ש"ע) ברכת שלום, שלום, הלו

Image
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 29/01/2009 - 17:50
נושא ההודעה:

מזה Awesome xclip Naughty ?

ואיך זה קשור?
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
bjesusאורח · ·
 

הודעה פורסם: 29/01/2009 - 19:23
נושא ההודעה:

Awesome זה מנהל חלונות - חפש בגוגל את Awesome Window Manager
xclip הוא כלי קטן שעוזר לנהל את ה-clipboard של X - ובעזרת 'xclip -o' אתה יכול לראות את המילה האחרונה שבחרת בעכבר
Naughty היא ספריה ב-Awesome שאחראית על Notifications. אתה יכול למצוא מידע עליה ב-Wiki של Awesome.

כמו שאמרתי, בסופו של דבר הסקריפט בסה"כ מקבל מילה ומביא את התרגום שלה. אתה יכול להשתמש בו איך שאתה רוצה. אני בחרתי להשתמש ב-xclip כדי למצוא איזו מילה מסומנת עכשו, וב-Naughty כדי להעביר את המידע למנהל החלונות שלי - Awesome. וזה גם מה שאתה רואה בתמונה.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
bjesusלא בפורום כעת ת.הצטרפות: 12/04/2002 · הודעות: 287 · מיקום: נאות הכיכר
 

הודעה פורסם: 30/01/2009 - 08:46
נושא ההודעה:

ורק רציתי להוסיף - אם מישהו יכול להצליח לשחזר את מה שעושה iconv ישירות בפייתון, אני אודה לו מאוד Smile אני מודה שזה נראה קצת צ'יקמוק ככה Embarassed

_________________
קוד:
<erno> hm. I've lost a machine.. literally _lost_. it responds to ping, it works completely, I just can't figure out where in my apartment it is.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
משהלא בפורום כעתSite Moderator ת.הצטרפות: 30/08/2003 · הודעות: 985 · מיקום: אלקנה, ישראל
 

הודעה פורסם: 30/01/2009 - 09:32
נושא ההודעה:

יש מודול של iconv בפייתון, למה אתה לא משתמש בו?

משה
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם מספר ICQ 
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
bjesusלא בפורום כעת ת.הצטרפות: 12/04/2002 · הודעות: 287 · מיקום: נאות הכיכר
 

הודעה פורסם: 30/01/2009 - 11:28
נושא ההודעה:

בגדול כי אני מעדיף לממש את זה פשוט בעזרת str.decode ו-str.encode, אבל לא מצליח בזה.

בנוסף, לא רציתי לחייב את המשתמש להתקין את המודול, שאצלי למשל לא מותקן כברירת מחדל במערכת, ואילו iconv כן (אני חושב שזה המצב אצל רוב האנשים). חשבתי שלשחרר את הקוד ככה יהפוך אותו לשמיש אצל יותר אנשים יותר ביתר קלות (לא ש-easy_install זה סיפור, אבל בכל זאת).

יש בעיה תאורטית לממש את ע"י שימוש ב-decode ו-encode של הסטרינג? נראה לי הרבה יותר נכון לעשות את זה ככה, אבל זה לא הולך.

_________________
קוד:
<erno> hm. I've lost a machine.. literally _lost_. it responds to ping, it works completely, I just can't figure out where in my apartment it is.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
bjesusלא בפורום כעת ת.הצטרפות: 12/04/2002 · הודעות: 287 · מיקום: נאות הכיכר
 

הודעה פורסם: 30/01/2009 - 12:08
נושא ההודעה:

הצלחתי. כעת אין צורך ב-iconv (לא התוכנה ולא המודול).

קוד:
#!/usr/bin/env python
# Pytrans is a frontend to babylon
# 0.2
import sys, urllib2, codecs
from BeautifulSoup import BeautifulSoup

term = sys.argv[1]
url = 'http://info.babylon.com/cgi-bin/info.cgi?s=educaterra&lang=14&word='+term

code = BeautifulSoup(urllib2.urlopen(url).read())
result = code.div.prettify().replace('<div align="right" dir="rtl">\n<font color="BLUE">\n ', '').replace('\n', '').replace('</font>', ' ').replace('<br /><br /></div>', '').replace('<hr /><font color="BLUE"> ', '\n').decode('utf8').encode('windows-1252').decode('iso8859-8').encode('utf8')
print result

_________________
קוד:
<erno> hm. I've lost a machine.. literally _lost_. it responds to ping, it works completely, I just can't figure out where in my apartment it is.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
bjesusלא בפורום כעת ת.הצטרפות: 12/04/2002 · הודעות: 287 · מיקום: נאות הכיכר
 

הודעה פורסם: 30/01/2009 - 12:23
נושא ההודעה:

היי, מעכשיו אפשר לחפש כמה מילים יחד, ואם אין תרגום הוא אפילו יגיד Smile

קוד:
#!/usr/bin/env python
# Pytrans is a frontend to babylon
# 0.5
import sys, urllib2
from BeautifulSoup import BeautifulSoup

babylon='http://info.babylon.com/cgi-bin/info.cgi?s=educaterra&lang=14&word='

def translate(term):
    url=babylon+term
    code=BeautifulSoup(urllib2.urlopen(url).read())
    try:
        result = code.div.prettify().replace(
          '<div align="right" dir="rtl">\n<font color="BLUE">\n ', '').replace(
          '\n', '').replace('</font>', ' ').replace('<br /><br /></div>', ''
          ).replace('<hr /><font color="BLUE"> ', '\n').decode('utf8').encode(
          'windows-1252').decode('iso8859-8').encode('utf8')
    except:
        result = "no translation found"
    return result

result = ""
for term in sys.argv[1:]:
    result = result + term + "\n"
    result = result + translate(term) + "\n"

print result


כאמור, אין כבר צורך ב-iconv. לא כמודול ולא בתוכנה עצמה.

_________________
קוד:
<erno> hm. I've lost a machine.. literally _lost_. it responds to ping, it works completely, I just can't figure out where in my apartment it is.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
bjesusלא בפורום כעת ת.הצטרפות: 12/04/2002 · הודעות: 287 · מיקום: נאות הכיכר
 

הודעה פורסם: 05/02/2009 - 01:48
נושא ההודעה:

אמממ... רק בגלל שאין התלהבות, חשבתי לציין שגם מי שלא משתמש ב-Awesome יכול להשתמש בזה בפשטות.
אם יש לכם את הפקודה notify-send (שאצלי ב-Arch מגיעה יחד עם libnotify), למשל, אתם יכולים להריץ את זה פשוט ככה:
קוד:
./pytrans.py hello world | xargs -0I 1 notify-send 1

ולקבל את התרגום, כמו בתמונה הבאה:
Image

בגדול זה יכול להשתלב בכלל סביבת עבודה, ואם תשתמשו ב-xclip ותתנו לזה קיצור במקלדת - אתם מסודרים Wink בהצלחה

_________________
קוד:
<erno> hm. I've lost a machine.. literally _lost_. it responds to ping, it works completely, I just can't figure out where in my apartment it is.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 06/02/2009 - 02:00
נושא ההודעה:

זה נשמע לי נהדר, ואני מתלהב מאוד. אני זקוק לדבר כזה בדיוק.
רק מה, בתור בור קצת קשה לי להשתמש בתיאור הגולמי של מה שכתבת. אני לא יודע מה עושה Awsome, מה עושה xclip ואיך מחברים אותם עם הסקריפט שלך. האם תוכל בבקשה לכתוב Howto שיפרט איך להתקין את הסקריפט ולהשתמש בו, כולל התקנת תלויות ועד לרמת קיצור-הדרך במקלדת, בסביבת גנום?
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אחד שמתחילאורח · ·
 

הודעה פורסם: 06/02/2009 - 03:53
נושא ההודעה: גם אני מצטרף לזה שמעליי

אין לי שום מושג במה שקשור לפייתון
מה אני עושה עם זה איך אני מפעיל את הסקריפט? יש ממשק גרפי לדבר? אני על KDE אז איך אני נותן לזה קיצור? או לייתר דיוק המערכת מכירה בזה כתוכנה כדי לתת לזה קיצור?
סליחה על כל השאלות זה אולי הולך להיות הסקריפט הראשון שאני ישים
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 06/02/2009 - 09:12
נושא ההודעה:

לא רוצה לקלקל את השמחה אבל יש את stardict ואפשר לשים לו מילון בבילון בעברית. בנוסף המילון מורד למחשב ולא צריך לגשת לאינטרנט בשביל לחפש את המילה (עובד באמת כמו בבילון).
יש ממשק גרפי נחמד וקיצורי מקלדת.

אסף ש.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 06/02/2009 - 13:21
נושא ההודעה:

שינויים קוסמטיים בלבד:
קוד:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from urllib2 import urlopen
from sys import argv

from BeautifulSoup import BeautifulSoup

en_base_url = "http://info.babylon.com/cgi-bin/info.cgi?s=educaterra&lang=14&word='"

def translate(term):
   search_url = "%s%s" % (en_base_url, term)
   page = BeautifulSoup(urlopen(search_url).read())
   try:
      result = page.div.prettify().replace('<div align="right" dir="rtl">\n<font color="BLUE">\n ', '')
      result = result.replace('\n', '')
      result = result.replace('</font>', ' ')
      result = result.replace('<br /><br /></div>', '')
      result = result.replace('<hr /><font color="BLUE"> ', '\n')
      result = result.decode('utf8').encode('windows-1252').decode('iso8859-8').encode('utf8')
      return result
   except:
      return None

if __name__ == "__main__":
   for term in argv[1:]:
      output = translate(term)
      if output:
         print "%s:\n%s" % (term, output)
      else:
         print "No translation found for the term %s" % term
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 06/02/2009 - 15:46
נושא ההודעה: מכיר את סטארדיקט

אני מכיר את סטארדיקט, ומסיבות שונות אני מוצא אותו מאוד לא נוח. התגובה שלו איטית מאוד, למרות שמאגר הנתונים שלו מקומי, והוא מקפיץ חלון שלם שצריך לסגור.
שוב, אני מתחנן: אנא הבו לנו מדריך מפורט ליישום הסקריפט המגניב הזה!
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 06/02/2009 - 16:26
נושא ההודעה:

מצטער על האוף-טופיק, אבל יש לך טעם מצויין במוזיקה Very Happy
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
bjesusלא בפורום כעת ת.הצטרפות: 12/04/2002 · הודעות: 287 · מיקום: נאות הכיכר
 

הודעה פורסם: 06/02/2009 - 18:37
נושא ההודעה:

היי אורח, תודה, אני מניח שגם לך Wink

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

אני ממש צפוף בזמנים, אז אין לי כרגע זמן לכתוב (ולוודא) מדריך מפורט לגנום או KDE, אבל אני אגיד שוב בקצרה שאחרי התקנת xclip ו-libnotify (שאני חושב שמגיעה עם רוב ההפצות המודרניות) - זה בסה"כ עניין של הגדרת קיצור במקלדת עבור השורה הבאה:
קוד:
xclip -o | xargs -I $ ./pytrans.py $ | xargs -0I 1 notify-send 1


כאמור xclip -o מביא את המילה(המילים) המסומנת, pytrans.py זה הנתיב לסקריפט שמביא את התרגום, ו-notify-send שולח את התרגום אל libnotify, כמו בסקריפט האחרון.

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

נ.ב.
באשר לשאלה "האם המערכת מכירה בזה כתוכנה?" - אם משהו עושה לך בעיות, נסה לקרוא לקוד עם python קודם. למשל - python thenameofmyscript.py.

_________________
קוד:
<erno> hm. I've lost a machine.. literally _lost_. it responds to ping, it works completely, I just can't figure out where in my apartment it is.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 06/02/2009 - 18:56
נושא ההודעה:

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

הודעה פורסם: 07/02/2009 - 02:22
נושא ההודעה:

והנה מגיעות הבקשות.

הסקריפט כבר התחיל לעזור לי. שני דברים קטנים שהייתי רוצה:
1. ניקוי התגיות לא מושלם עדיין. כשמבקשים את ההגדרה למחרוזת faq, למשל, מקבלים כמה תגיות html-יות.
2. הודעות השגיאה לא מושלמות עדיין. כאשר מחפשים מילה אנגלית לא מוכרת מקבלים הודעת שגיאה, אבל כאשר מחפשים צירוף לא מוכר או מילה עברית לא מקבלים כלום. הייתי רוצה לקבל משוב כל פעם שאני מפעיל את הסקריפט. אגב, הייתי שמח גם לקבל שגיאה מיוחדת אם אין שום טקסט ב-x selection, אבל זו כבר באמת התקטננות.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 07/02/2009 - 03:58
נושא ההודעה:

חמוס במשקפיים :
והנה מגיעות הבקשות.

הסקריפט כבר התחיל לעזור לי. שני דברים קטנים שהייתי רוצה:
1. ניקוי התגיות לא מושלם עדיין. כשמבקשים את ההגדרה למחרוזת faq, למשל, מקבלים כמה תגיות html-יות.
2. הודעות השגיאה לא מושלמות עדיין. כאשר מחפשים מילה אנגלית לא מוכרת מקבלים הודעת שגיאה, אבל כאשר מחפשים צירוף לא מוכר או מילה עברית לא מקבלים כלום. הייתי רוצה לקבל משוב כל פעם שאני מפעיל את הסקריפט. אגב, הייתי שמח גם לקבל שגיאה מיוחדת אם אין שום טקסט ב-x selection, אבל זו כבר באמת התקטננות.


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

הודעה פורסם: 07/02/2009 - 15:31
נושא ההודעה:

אחלה, וכל הכבוד!

אם אתה בונה חבילה, חשוב לזכור:
1. גרסאות ל-32 ו-64 ביט.
2. דאגה לתלויות: python, beautiful-soup, libnotify-bin, xclip.
3. הוספה של קיצור-דרך מקלדתי כברירת מחדל במטסיטי, קומפיז, קיי-די-אי.

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

חזון לגרסה שאחרי הבאה: הסקריפט יבין לבד אם הטקסט עברי, ואז יציג תרגום אנגלי, או עברי, ואז יציג תרגום אנגלי.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
חמוס_במשקפייםלא בפורום כעת ת.הצטרפות: 07/02/2009 · הודעות: 97 ·
 

הודעה פורסם: 08/02/2009 - 03:24
נושא ההודעה:

ניקוי קטן של המחרוזת הסופית:

קוד:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from urllib2 import urlopen
from sys import argv

from BeautifulSoup import BeautifulSoup

en_base_url = "http://info.babylon.com/cgi-bin/info.cgi?s=educaterra&lang=14&word='"

def translate(term):
   search_url = "%s%s" % (en_base_url, term)
   page = BeautifulSoup(urlopen(search_url).read())
   try:
      result = page.div.prettify().replace('\n<font color="BLUE">\n ', '')
      result = result.replace('\n', '')
      result = result.replace('</font>', ' ')
      result = result.replace('<br /><br /></div>', '')
      result = result.replace('<div align="right" dir="rtl">', '')
      result = result.replace('<hr /><font color="BLUE"> ', '\n')
      result = result.decode('utf8').encode('windows-1252').decode('iso8859-8').encode('utf8')
      return result
   except:
      return None

if __name__ == "__main__":
   for term in argv[1:]:
      output = translate(term)
      if output:
         print "%s:\n%s" % (term, output)
      else:
         print "No translation found for the term %s" % term


עם הגירסה הזאת, אין תגיות html שמשתרבבות להגדרות המופקות מר"ת באנגלית כמו faq או hp.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 08/02/2009 - 07:40
נושא ההודעה:

מה עם גרסה שמשתמשת בויקימילון
בתור מילון עברית-עברית?
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
bjesusלא בפורום כעת ת.הצטרפות: 12/04/2002 · הודעות: 287 · מיקום: נאות הכיכר
 

הודעה פורסם: 09/02/2009 - 17:59
נושא ההודעה:

היי, ממש מגניב שאנשים עושים שיפוצים בקוד. תודה Smile

אני שולח עוד תיקון לגירסה האחרונה של חמוס במשקפיים, שמשום מה נותנת ל<hr /> לעבור.
קוד:

#!/usr/bin/env python
# -*- coding: utf-8 -
#
# Pytrans is a frontend to babylon
# 0.8
from urllib2 import urlopen
from sys import argv
from BeautifulSoup import BeautifulSoup

en_base_url = "http://info.babylon.com/cgi-bin/info.cgi?s=educaterra&lang=14&word='"

def translate(term):
    search_url = "%s%s" % (en_base_url, term)
    page = BeautifulSoup(urlopen(search_url).read())
    try:
        result = page.div.prettify().replace('\n<font color="BLUE">\n ', '')
        result = result.replace('\n', '')
        result = result.replace('</font>', ' ')
        result = result.replace('<br /><br /></div>', '')
        result = result.replace('<div align="right" dir="rtl">', '')
        result = result.replace('<hr />', '\n')
        result = result.decode('utf8').encode('windows-1252').decode('iso8859-8').encode('utf8')
        return result
    except:
        return None

if __name__ == "__main__":
    for term in argv[1:]:
        output = translate(term)
        if output:
            print "%s:\n%s" % (term, output)
        else:
            print "No translation found for the term %s" % term
    if len(argv) == 1:
        print "What do you want to translate?"

זה אמור לפתור את זה.

לגבי כל הבקשות:
- העניין המילונים המקומיים נראה לי מסובך. העפתי מבט קצר בקבצי מילון של בבילון, וזה נראה לי מורכב מדי להשקיע בזה. בסופו של דבר זה גם בטח לא חוקי להפיץ את קבצי המילון (בטח שלא אם נעשה בהם שינויים), אז אני לא בטוח שיש בזה טעם, מה גם שהשרת של בבילון עונה מהר.
- חמוס_במשקפיים תיקן את רוב (כל?) בעיות התגיות שהתפלחו לתרגום. תודה.
- הסקריפט נותן עכשו תשובה תמיד (?), גם אם הוא לא מקבל שום בקשה לתרגום.
- לגבי ממשק משתמש - אין לדעתי טעם לשלב כזה בסקריפט. שוב, אם מישהו רוצה ליצור deb שמגדיר את המקשים, מה טוב. בהנחה ש notify-send עובד גם ב-KDE וגם בגנום, זה גם לא צריך להיות מורכב מדי.
- תרגום עברי-אנגלי / אנגלי-עברי לפי ההקשר - לא צריך להיות מסובך בכלל. אני חושב שאת התרגום אפשר להשיג באותו אופן מהאתר של בבילון, ואז נשאלת רק השאלה של איך מאתרים את השפה? יש למישהו רעיון? אולי איזה ביטוי רגולרי?
- ויקימילון נראה לי עדיין קצת חסר, לא? כמו שאני זוכר יש לבבילון מילון עברי-עברי, אני לא בטוח אם יש לו ממשק אינטרנטי. צריך לבדוק.

שוב תודה לכל מי שתרם/תורם וגם לכל מי שמשתמש Wink

_________________
קוד:
<erno> hm. I've lost a machine.. literally _lost_. it responds to ping, it works completely, I just can't figure out where in my apartment it is.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
חמוס_במשקפייםלא בפורום כעת ת.הצטרפות: 07/02/2009 · הודעות: 97 ·
 

הודעה פורסם: 09/02/2009 - 20:09
נושא ההודעה:

אכן, שמתי לב שה-hr התפלק... הקדמת אותי בתיקון.

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

האם אתה יודע מהו קוד השפה של בבילון לתרגום עברי-אנגלי? אם כן, אז היישום המלא קרוב מאוד! Smile
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
bjesusלא בפורום כעת ת.הצטרפות: 12/04/2002 · הודעות: 287 · מיקום: נאות הכיכר
 

הודעה פורסם: 10/02/2009 - 00:46
נושא ההודעה:

היי, יש עכשו תמיכה בתרגום עברי-אנגלי, ואפילו זיהוי של השפה Wink

מצאתי ממשק נוח יותר למאגר של בבילון, בכתובת הזו: http://translation.babylon.com/post_post.php
הוא מקבל POST עם lps כקוד של שפת המקור, lpt כשפת היעד, ו-mytextarea1 כמילה לתרגום. יש להם שם תמיכה בהמון, המון שפות. זה נחמד, ואם מישהו מבין קצת בביטוים רגולרים הוא יכול בקלות להוסיף גם תמיכה בערבית, צרפתית, וכו'.

בכל אופן הקוד קצת מבולגן, אבל אני סומך על המתקנים הקוסמטיים כאן Smile תהנו:


קוד:
#!/usr/bin/env python
# -*- coding: utf-8 -
#
# Pytrans is a frontend to babylon
# Version 0.9
from urllib2 import urlopen
from urllib import urlencode
from sys import argv
from re import compile
from BeautifulSoup import BeautifulSoup

base_url = "http://translation.babylon.com/post_post.php"
english = compile("[A-z]")
def translate(term):
    if english.search(term):
        params = urlencode(dict(lps=0, lpt=14, mytextarea1=term))
    else:
        params = urlencode(dict(lps=14, lpt=0, mytextarea1=term))
    page = BeautifulSoup(urlopen(base_url, params).read())
    try:
        result = ""
        for div in page.findAll("div", {"class": "definition"}):
            try:
                result = result + div.span.span.renderContents().replace("\n","")
            except:
                result = result + div.span.renderContents().replace("\n","")
            try:
                result = result + div.span.nextSibling.renderContents().replace("\n","")
            except:
                result = result + div.span.nextSibling.replace("\n","")
            result = result + "\n"
        result = result.replace("  ","")
        return result
    except:
        return None

if __name__ == "__main__":
    for term in argv[1:]:
        output = translate(term)
        if output:
            print term
            print output
        else:
            print "No translation found for the term '%s'" % term
    if len(argv) == 1:
        print "What do you want to translate?"

_________________
קוד:
<erno> hm. I've lost a machine.. literally _lost_. it responds to ping, it works completely, I just can't figure out where in my apartment it is.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
חמוס_במשקפייםלא בפורום כעת ת.הצטרפות: 07/02/2009 · הודעות: 97 ·
 

הודעה פורסם: 10/02/2009 - 05:51
נושא ההודעה:

נראה מגניב, אבל לא מצליח לתרגם לי עברית. כשאני מבקש ממנו, למשל, לתרגם את המילה "יש", אני מקבל:
קוד:
No translation found for the term 'u05d9u05e9'

מבדיקה שערכתי, מסתבר שהבעיה היא עם xclip שהופך, לפחות באובונטו אינטרפיד, טקסט עברי גאה ב-utf8 לטקסט לועזי מקודד ב-ISO-8859-1. יש דיווח של הבעיה ופאץ', שכביכול כבר נכנס לאפסטרים, בקישור הבא:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=380392
אבל בתיעוד הודעות השחרור של חבילת xclip באובונטו לא מצויין שום פאץ' כזה, והאפשרות המתוארת בקישור להריץ עם הפרמטר -utf8 לא עובדת אצלי.

האם אצלך התרגום מעברית לאנגלית עובד? אם כן יכול להיות שזה תלוי בגירסת ה-x. באיזו הפצה אתה משתמש? בכל אופן זה מסבך את העניינים - אפשר בקלות לזהות את המספרים בקלט ולהניח כתוצאה מכך שהמחרוזת היא עברית, אבל אני לא יודע אם ואיך אפשר לקודד אותה בחזרה ל-utf8 לפני המשלוח לבבילון.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
חמוס_במשקפייםלא בפורום כעת ת.הצטרפות: 07/02/2009 · הודעות: 97 ·
 

הודעה פורסם: 10/02/2009 - 15:38
נושא ההודעה:

אוקיי - יש! האח הידד!

צריך להשתמש בגירסה 0.11 ומעלה של xclip כדי שהתרגום מעברית יעבוד, ואין צורך בשום פרמטר נוסף. אנשי פדורה החביבים העלו פאץ' שמומש, סוף סוף, באפסטרים. ניתן להוריד מכאן: http://sourceforge.net/projects/xclip ולהדר. צריך להתקין את חבילות הפיתוח של xorg.

באובונטו, למרבית הצער, גירסת xclip אינה עולה 0.8. אני אנסה לבקש יפה בפורומים שלהם לייבא את הגירסה החדשה לפחות לג'אונטי.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
bjesusלא בפורום כעת ת.הצטרפות: 12/04/2002 · הודעות: 287 · מיקום: נאות הכיכר
 

הודעה פורסם: 10/02/2009 - 19:32
נושא ההודעה:

הי חמוס, אני שמח לשמוע שזה מסתדר בשבילך.

חשבתי - אולי אפשר להוסיף איזה דגל לסקריפט - '--ubuntu' למשל, שידע לקבל את הסטרינג בקידוד הדפוק? סה"כ זה לא צריך להיות מסובך מדי להמיר אותו, לא?
אין לי איזה מחשב אובנטו באזור אז אין לי איך לבדוק, אבל אם יש לך אולי תוכל לעשות איזה ניסוי בהמרת הקידוד (אם תמצא איך, אני אוכל להוסיף את הדגל).

תודה וערב טוב.

_________________
קוד:
<erno> hm. I've lost a machine.. literally _lost_. it responds to ping, it works completely, I just can't figure out where in my apartment it is.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
bjesusלא בפורום כעת ת.הצטרפות: 12/04/2002 · הודעות: 287 · מיקום: נאות הכיכר
 

הודעה פורסם: 12/02/2009 - 11:47
נושא ההודעה:

עוד עדכון! Smile
מעכשו הסקריפט לא מחפש בנפרד כל ערך שאתם מעבירים לו, אלא במידה ויש כמה מילים הוא מחפש אותם יחד - כמשפט או כביטוי. נראה לי יעיל יותר.

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

קוד:
#!/usr/bin/env python
# -*- coding: utf-8 -
#
# Pytrans is a frontend to babylon
# Version 1.0
from urllib2 import urlopen
from urllib import urlencode
from sys import argv
from re import compile, sub

base_url = "http://translation.babylon.com/post_post.php"
english = compile("[A-z]")

def strip(s):
    intag = [False]
    def chk(c):
        if intag[0]:
            intag[0] = (c != '>')
            return False
        elif c == '<':
            intag[0] = True
            return False
        return True

    return ''.join(c for c in s if chk(c))

def translate(term):
    if english.search(term):
        params = urlencode(dict(lps=0, lpt=14, mytextarea1=term))
    else:
        params = urlencode(dict(lps=14, lpt=0, mytextarea1=term))
    page = urlopen(base_url, params).read()
    return strip(page).replace("\n", '').replace("&nbsp;", "\n").replace("  ", "")
   
if __name__ == "__main__":
    if len(argv) == 1:
        print "What do you want to translate?"
        exit()
    term = " ".join(argv[1:])
    output = translate(term)
    print term
    print output


מישהו יכול לעזור לי לזהות טקסט בערבית? איזה ביטוי רגולרי עולה על זה?

תודה ותהנו (הנה, אני מצרף תמונה מסך של תרגום משפט בעברית).
Image

_________________
קוד:
<erno> hm. I've lost a machine.. literally _lost_. it responds to ping, it works completely, I just can't figure out where in my apartment it is.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
ypלא בפורום כעת ת.הצטרפות: 21/08/2007 · הודעות: 826 · מיקום: ירושלים
 

הודעה פורסם: 12/02/2009 - 20:32
נושא ההודעה:

נחמד ,עוד כמה כמוך ואנחנו מסודרים!

מעניין שאצלי צריך
קוד:

xclip -o | xargs -I $ python pytrans.py $ | xargs -0I 1 notify-send 1


כאילו ./pytrans.py עושה בעיות מעניין למה??? (רק באובנוטו עדיין לא נסיתי בשאר ההפצות אצלי)
קוד:

yy@yy-desktop:~$ xclip -o | xargs -I $ ./pytrans.py $ | xargs -0I 1 notify-send 1
from: can't read /var/mail/urllib2
from: can't read /var/mail/urllib
from: can't read /var/mail/sys
from: can't read /var/mail/re
./pytrans.py: line 12: base_url: command not found
./pytrans.py: line 13: syntax error near unexpected token `('
./pytrans.py: line 13: `english = compile("[A-z]")'
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. אורח [bjesus]
  2. אורח
  3. אורח [bjesus]
  4. bjesus
  5. משה
  6. bjesus
  7. bjesus
  8. bjesus
  9. bjesus
  10. אורח
  11. אורח [אחד שמתחיל]
  12. אורח
  13. אורח
  14. אורח
  15. אורח
  16. bjesus
  17. אורח
  18. אורח [חמוס במשקפיים]
  19. אורח
  20. אורח
  21. חמוס_במשקפיים
  22. אורח
  23. bjesus
  24. חמוס_במשקפיים
  25. bjesus
  26. חמוס_במשקפיים
  27. חמוס_במשקפיים
  28. bjesus
  29. bjesus
  30. yp
  31. bjesus
  32. bjesus
  33. חמוס_במשקפיים
  34. אורח
  35. yp
  36. חמוס_במשקפיים
  37. Ddorda
  38. iceman23
  39. אורח
  40. חמוס_במשקפיים
  41. iceman23
  42. MBD
  43. bjesus
  44. Ddorda
  45. חמוס_במשקפיים
  46. MBD
  47. Ddorda
  48. חמוס_במשקפיים
  49. אורח
  50. חמוס_במשקפיים
  51. queency
  52. חמוס_במשקפיים
  53. queency
  54. חמוס_במשקפיים
  55. אורח
  56. ZooZ
  57. אורח
  58. חמוס_במשקפיים
  59. אורח
  60. חמוס_במשקפיים
  61. אורח
  62. אורח [יוחאי]