עזרה בפונקציית תרגום בPHP
-
ככה אמור לצאת
http://sandbox.onlinephpfunctions.com/code/149ecc357f24297c7b4fbe94630162f7e9b3d975פורסם במקור בפורום CODE613 ב08/12/2017 12:39 (+02:00)
-
שום דבר לא עוזר.
הURLENCODE כבר כתוב בקוד, לא צריך לעשות אותו שוב
זה כל כך מוזר כי כשאני כותב בדפדפן ישירות את הURL זה כן מחזיר תשובה תקינה, אבל הפונקציה לא עובדתכתבתי שוב את הפונקציה, יותר קצר וברור
<?php function translate($text) { $API_translate = 'https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=he&dt=t&q='; $url = $API_translate . urlencode($text); $translate = file_get_contents($url); $text = json_decode($translate); foreach($text[0] AS $t) { $return .= $t[0]; } return $return; } header('Content-Type: text/html; charset=utf-8'); echo translate(('how are you הכל בסדר'));
פורסם במקור בפורום CODE613 ב10/12/2017 12:07 (+02:00)
-
כנראה שזה באמת בעייה בגוגל, גם בתוסף שלהם לכרום יש את הבעייה הזו, הוא לא מסוגל "לתרגם" עברית לעברית. אם מבקשים ממנו לתרגם טקסט שמורכב מעברית ואנגלית, למשל "how are you אני עייף", הוא לא מתרגם כלום. כנראה בגלל הבעייה הזו.
פורסם במקור בפורום CODE613 ב10/12/2017 12:33 (+02:00)
-
אין שום בעיה בגוגל. אצלי זה מחזיר:
[[["how are you אני עייף","how are you אני עייף",null,null,0]],null,"iw",null,null,null,1,null,[["iw"],null,[1],["iw"]]]
אכן לא מתרגם, אבל לא מחזיר איקסים.בקשו ממך לנסות את הפלט של הurlencode. מה היה קורה אם היית מנסה?
שים לפני הגישה פשוט
echo $url
ונראה את כל התשובות האם הבעיה בגוגל או בקידוד.פורסם במקור בפורום CODE613 ב10/12/2017 12:53 (+02:00)
-
תודה על העזרה הבלתי נילאת!!
הecho url מחזיר את זהזה תקין לגמרי
משום מה, בשלב מסוים של הPHP זה הופך לאיקסים..
פורסם במקור בפורום CODE613 ב10/12/2017 13:03 (+02:00)
-
הופה אתה צודק!
https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=he&dt=t&q=how are you אני עייף
מחזיר
[[["איך אתה × × × × × × × × £","how are you × × × ×¢×××£",null,null,3]],null,"en",null,null,null,1,null,[["en"],null,[1],["en"]]]פורסם במקור בפורום CODE613 ב10/12/2017 13:05 (+02:00)
-
-
למשיך לשגע את הלב הטוב שלך או לא?
אכן עכשיו כבר אין איקסים, אבל זה מחזיר את הטקסט המקורי, לא מתורגם בכלל.
שלחתי לתירגום: "how are you אני עייף" וזה בדיוק מה שחזר. מה שאין כן מקודם, לפני השורה הזו, לפחות תירגם לי את האנגלית, והעברית הפכה לאיקסים.בקיצור זה באג של גוגל, ואין לזה פיתרון, עכשיו שוב בדקתי בהרחבה של כרום, גם שמה זה מחזיר הטקסט לא מתורגם.
הדבר היחיד שאולי אפשר לעשות זה לעבור על הטקסט מילה מילה, ולחתוך כל המילים בעברית, לשלוח לתירגום רק את האנגלית, ואז לצרף שוב את הכל. אבל השאילתא לוקחת זמן, ואם צריך לעשות שלשים שאילתות זה יקח המון זמן.פורסם במקור בפורום CODE613 ב10/12/2017 17:17 (+02:00)
-
בטח גוגל עוקבים אחריי פה, אז לא אגיד בקול את המטרה...
אבל בגדול זה לתרגם הודעות, אנשים מקבלים הודעות כתובות דרכי, בדרך כלל בעברית, אבל לפעמים זה בלועזית, ולכן יש אופציה לתרגום בעברית.
אם הטקסט הוא רק באנגלית, זה עובד טוב, אבל כשזה מעורב במילים בעברית, יש בעייה, זה מציג טקסט מקוטע, שרק המילים באנגלית מתורגמות, וכל המילים בעברית חסרות.פורסם במקור בפורום CODE613 ב10/12/2017 17:47 (+02:00)
-
אהממ.
אפשרות אחת יש לך להיות מסודר ולהתחיל לשם כמה גרושים לגוגל תרגום.
(אם תרצה עזרה, יש לי נסיון).אפשרות שניה זה להמשיך עם הטריק של הapi של התוסף, ולפצל את הטקסט לקטעי אנגלית רצופים.
הנה דוגמה https://regex101.com/r/AmLtMi/1
הקוד צריך להיראות בסגנון:preg_replace_callback('/\b[^א-ת]{3,}\b/', function($match) { $url = $API_translate . urlencode($match[0]); $translate = file_get_contents($url); ... return $return; ); }, $text);
בקשר לבעיית ריבוי הבקשות, זה לא יהיה הרבה כי זה מוציא רק קטעי אנגלית רצופים.
פורסם במקור בפורום CODE613 ב10/12/2017 21:01 (+02:00)