עזרה בפונקציית תרגום בPHP
-
שלום, מצורף פונקציה קטנה שכתבתי בPHP שמחזירה תרגום אוטומטי בעברית מגוגל למחרוזת טקסט, עם זיהוי שפה אוטומטי.
זה עובד נהדר, הבעייה היא שאם במחרוזת טקסט יש מילים בעברית, זה מחזיר איקסים.השאלה אם זה בעייה בקידוד, או שאין מה לעשות
אשמח לעזרה
תודה רבה<?php function translate($text) { global $mwa; $API_translate = 'https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=he&dt=t&q='; $return = ''; $text = substr(urlencode($text), 0, 3000); $translate = url_get_contents($API_translate . $text); $text = json_decode($translate); foreach($text[0] AS $t) { $return .= $t[0]; } return $return; } function url_get_contents ($Url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $Url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); curl_close($ch); return $output; } header('Content-Type: text/html; charset=utf-8'); echo translate('how are you הכל בסדר');
פורסם במקור בפורום CODE613 ב07/12/2017 23:54 (+02:00)
-
Warning: iconv(): Charset parameter exceeds the maximum allowed length of 64 characters in /var/www/yoops/a.php on line 22 Warning: Invalid argument supplied for foreach() in /var/www/yoops/a.php on line 10
פורסם במקור בפורום CODE613 ב08/12/2017 10:38 (+02:00)
-
ככה אמור לצאת
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)