2012-04-26 25 views
7

Tôi muốn dịch từ với yêu cầu ajax để google dịch Nếu tôi sử dụng curl, nó willl được như:Làm thế nào để có được và phân tích câu trả lời json từ google dịch

curl_init("http://translate.google.com/translate_a/t?client=t&text=hello&sl=en&tl=ru"); 

Nhưng tôi không thể sử dụng server-side script với các truy vấn vì chúng sẽ từ cùng một IP
Nhưng tôi không thể sử dụng yêu cầu JSONP quá, bởi vì nó không được phép tôi nghĩ. Đây là máy chủ đáp ứng:

[[[ "привет", "hello", "cây thủy lạp", ""]], [[ "", [ "Алло", "Здравствуйте"]], [ "имя Ví dụ: ", [" приветствие "," приветственный возглас "," возглас удивления "]], [" глагол ", [" здороваться "," звать "," окликать "]], [" междометие ", [" привет ", "здравствуйте", "алло"]]], "en" ,, [["привет", [5], 1,0,1000,0,1,0]], [["xin chào", 4 ,,, ""], ["hello", 5, [["привет", 1000,1,0], ["Здравствуй", 0,1,0], ["Здравствуйте", 0,1,0], [" Xin chào ", 0,1,0]], [[0,5]]," xin chào "]] ,,, [[" vi "]], 13]

Và tôi không thể tải nội dung đến khung nội tuyến

<iframe src="http://translate.google.com/translate_a/t?client=t&text=hello&sl=en&tl=ru"></iframe> 

vì kiểu nội dung câu trả lời là "text/javascript" và trình duyệt downloads a file

PS. tôi không thể giải mã nội dung với hàm json_decode() hoặc với jquery.ajax vì json phản hồi bị hỏng. Bạn có thể kiểm tra nó ở đây http://json.parser.online.fr/

Hãy cho tôi một lời khuyên, xin vui lòng

+0

đề nghị: (a) mua giấy phép cho dịch vụ dịch cho phép bạn sử dụng "cùng một IP". Hoặc (b) không làm bản dịch. Các giới hạn nơi google trên dịch vụ dịch thuật có lý do. Có vẻ như bạn đang tìm kiếm một cách xung quanh những giới hạn đó. Đừng làm thế. – Cheeso

+7

oh, chúa ơi. Đó là thử nghiệm, tôi không muốn mua giấy phép triệu truy vấn cho thử nghiệm một ngày. – Shara

+0

Tại sao bạn đưa Đức Chúa Trời vào trong đó? Nếu đó là một thử nghiệm thì bạn không cần phải lo lắng về cùng một vấn đề ip. – Cheeso

Trả lời

12

Hãy thử:

http://translate.google.com/translate_a/t?client=p 

nếu tham số khách hàng là bất cứ điều gì khác hơn là 't' nó sẽ trả về dữ liệu JSON hợp lệ. Tất nhiên, bạn luôn có thể biến biến trả về 't' thành một mảng hợp lệ hoặc JSON nhưng điều này dễ dàng hơn.

+0

Cảm ơn bạn, puromonogatari! Tôi đã làm điều này với cách biến đổi, nhưng cảm ơn cho giải pháp đầu tiên – Shara

+1

NP, cần lưu ý mặc dù tôi đã có một số rắc rối gửi ký tự cho nó .... Tôi không thể tìm thấy lý do nhưng vì một số lý do gửi HTML thực thể hoạt động tốt " & x281 "chẳng hạn, không có dấu"; ", hãy thử điều đó nếu bạn có bất kỳ sự cố mã hóa nào. – puromonogatari

+2

Và nó bắt đầu sử dụng captcha – Toolkit

2

Đảm bảo thêm thông số tiêu đề "User-Agent" = "Mozilla/4.0". Google thêm hình ảnh xác thực nếu bạn không

Các vấn đề liên quan