Dịch thuật đa ngôn ngữ (dựa vào Google Translate) (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,972
Từ bài viết này:

http://www.giaiphapexcel.com/forum/...a-code-vba-Translate-thành-Function!&p=480229
Mình chợt có ý nghĩ tạo thành 1 ứng dụng để dịch thuật đa ngôn ngữ trên Excel (thông qua 1 UserForm)

Capture.JPG




























Thấy cũng đơn giản...
Ai có hứng thú hãy mang về phát triển thêm
(yêu cầu: máy phải kết nối Internet)
------------------------------------------
Tôi thường hay đọc các tài liệu và Help VBA bằng tiếng Anh nhưng trình độ Anh ngữ còn hạn chế nên cứ phải vào Google Translate để dịch... Giờ nếu dùng cái này thì chỉ việc Save nó thành một Add-In rồi cứ ngay trên Excel mà dịch luôn, khỏi cần nhảy qua nhảy lại cho mất công


Capture2.JPG













------------------------------------------------------
Mình gửi thêm bản mới (đã sửa lại theo anh siwtom)... Các bạn tải file Google Translator_4.xlsm nhé
------------------------------------------------------
Phiên bản mới nhất (cũng theo code của anh siwtom): File Translator_5.xlsm
 

File đính kèm

Lần chỉnh sửa cuối:
ANH CÓ THỂ SỬA ĐOẠN NÀY "With CreateObject("InternetExplorer.application")" TRÊN FORM CHO NGƯỜI DÙNG DỄ CHỌN ĐƯỢC KHÔNG. BAN ĐẦU MÁY EM BỊ LỖI SAU ĐÓ thấy đoạn này . DO MẮY EM CHẠY DEFAULT LÀ GOOGLE CHROME
 

File đính kèm

  • LOI.jpg
    LOI.jpg
    58.9 KB · Đọc: 325
Lần chỉnh sửa cuối:
Upvote 0
ANH CÓ THỂ SỬA ĐOẠN NÀY "With CreateObject("InternetExplorer.application")" TRÊN FORM CHO NGƯỜI DÙNG DỄ CHỌN ĐƯỢC KHÔNG. BAN ĐẦU MÁY EM BỊ LỖI SAU ĐÓ thấy đoạn này . DO MẮY EM CHẠY DEFAULT LÀ GOOGLE CHROME

Uả kỳ vậy? Máy nào mà chẳng có Internet Explore?
Dù Default là trình duyệt gì thì liên quan gì đến câu lệnh With CreateObject("InternetExplorer.application") nhỉ?
Máy tôi dùng mặc định Firefox nè, có sao đâu?
Các bạn khác đang dùng Chrome thí nghiệm tiếp giúp tôi với
 
Upvote 0
Chạy trên máy em toàn bung ra IE-"Internet Explorer" với giao diện dịch thuật của Google. Trong phần dịch của form thì không hiện cái gì.

Thông tin máy của em: Vista Home Premium (SP2) 32-bit, IE7.
 
Upvote 0
Uả kỳ vậy? Máy nào mà chẳng có Internet Explore?
Dù Default là trình duyệt gì thì liên quan gì đến câu lệnh With CreateObject("InternetExplorer.application") nhỉ?
Máy tôi dùng mặc định Firefox nè, có sao đâu?
Các bạn khác đang dùng Chrome thí nghiệm tiếp giúp tôi với

Máy em chạy bình thường, chỉ có điều dịch hơi chậm.
 
Upvote 0
Chạy trên máy em toàn bung ra IE-"Internet Explorer" với giao diện dịch thuật của Google. Trong phần dịch của form thì không hiện cái gì.

Thông tin máy của em: Vista Home Premium (SP2) 32-bit, IE7.

Code thì đơn giản rồi (không có gì phải bàn)... nhưng không biết mỗi người test thế nào
Theo Tuân thì đây là lỗi gì?
 
Upvote 0
Uả kỳ vậy? Máy nào mà chẳng có Internet Explore?
Dù Default là trình duyệt gì thì liên quan gì đến câu lệnh With CreateObject("InternetExplorer.application") nhỉ?
Máy tôi dùng mặc định Firefox nè, có sao đâu?
Các bạn khác đang dùng Chrome thí nghiệm tiếp giúp tôi với
Máy em vừa s/d Internet Explore và Chrome
mặc định là Internet Explore
Mở file của thầy Ndu , thấy bình thường!
 
Upvote 0
Ở máy của nhóc thì trong form không hiện gì mà lại hiện trên google ạ.
 
Upvote 0
Em dùng ứng dụng này thấy chạy ngon lành. Em kết nối IE. Cảm ơn anh Ndu nhiều lắm!
 
Upvote 0
Uả kỳ vậy? Máy nào mà chẳng có Internet Explore?
Dù Default là trình duyệt gì thì liên quan gì đến câu lệnh With CreateObject("InternetExplorer.application") nhỉ?
Máy tôi dùng mặc định Firefox nè, có sao đâu?
Các bạn khác đang dùng Chrome thí nghiệm tiếp giúp tôi với
em cũng bị y chang anh Lê Duy Thương, máy em win7 64bit (ie9 + chrome )
234.jpg
 
Lần chỉnh sửa cuối:
Upvote 0
Code thì đơn giản rồi (không có gì phải bàn)... nhưng không biết mỗi người test thế nào
Theo Tuân thì đây là lỗi gì?

Em vừa kiểm tra trên máy Win7 64-bit, IE8 (32-bit) thì chạy được. Lỗi trước của em hình như là lỗi IE7 làm việc không đúng, đã có lệnh Visible = False rồi mà nó vẫn hiện ra, rồi không dịch được. Nó chạy mãi trong vòng lặp Do Until. Còn về lập trình thì như thế cũng là đúng rồi. Nếu lỗi đúng là do phiên bản IE7 thì anh cho cảnh báo upgrade IE mới...
 
Lần chỉnh sửa cuối:
Upvote 0
Thôi đúng rồi, cẩn thận quá vẫn hơn. Chắc chắn IE7 có vấn đề về READYSTATE_COMPLETE
Nói ngắn gọn thì thực ra document vẫn chưa được load hoàn chỉnh mà code đã "cố" đọc nội dung (.Document.getElementById("result_box").innerText) nên kết quả là chuỗi rỗng.

Vậy thì tôi đề nghị 2 hướng:

1. Sau Do Until .ReadyState = 4: DoEvents: Loop ta thêm chút chờ đợi: Application.Wait (Now + TimeValue("0:00:5"))

2. Chờ đợi 5 giây như ở trên không biết có là cách tốt hay không. Có khi ít quá (kết cục là thất bại) mà có khi nhiều quá (chờ phí công). Tôi đề nghị chờ tối đa 10 giây. Tức nếu sau 1, 2, 3 giây mà đã có kết quả thì không chờ thêm nữa, còn không thì chờ tiếp nhưng tối đa là 10 giây. Sau 10 giây mà vẫn chưa có kết quả thì cũng dọn đồ chơi luôn.

Mã:
    Do Until .ReadyState = 4: DoEvents: Loop
    Do While count < 10 And result_data = ""
        Application.Wait (Now + TimeValue("0:00:1"))
        result_data = .Document.getElementById("result_box").innerText
        count = count + 1
        Debug.Print count
    Loop

Tôi đã sửa lại code hàm Translate theo code trên.

Các bạn Lê Duy Thương, Nguyễn Duy Tuân, Crystal Rose, Good-Luck đã "kêu ca" thì bây giờ đề nghị thử lại, thậm chí với IE7, và cho biết kết quả nhé.
 

File đính kèm

Upvote 0
Em bị giống #8, form không hiện gì, chỉ hiện ra trang google
 
Lần chỉnh sửa cuối:
Upvote 0
Thôi đúng rồi, cẩn thận quá vẫn hơn. Chắc chắn IE7 có vấn đề về READYSTATE_COMPLETE
Nói ngắn gọn thì thực ra document vẫn chưa được load hoàn chỉnh mà code đã "cố" đọc nội dung (.Document.getElementById("result_box").innerText) nên kết quả là chuỗi rỗng.

Vậy thì tôi đề nghị 2 hướng:

1. Sau Do Until .ReadyState = 4: DoEvents: Loop ta thêm chút chờ đợi: Application.Wait (Now + TimeValue("0:00:5"))

2. Chờ đợi 5 giây như ở trên không biết có là cách tốt hay không. Có khi ít quá (kết cục là thất bại) mà có khi nhiều quá (chờ phí công). Tôi đề nghị chờ tối đa 10 giây. Tức nếu sau 1, 2, 3 giây mà đã có kết quả thì không chờ thêm nữa, còn không thì chờ tiếp nhưng tối đa là 10 giây. Sau 10 giây mà vẫn chưa có kết quả thì cũng dọn đồ chơi luôn.


[GPECODE=vb]Do Until .ReadyState = 4: DoEvents: Loop
Do While count < 10 And result_data = ""
Application.Wait (Now + TimeValue("0:00:1"))
result_data = .Document.getElementById("result_box").innerText
count = count + 1
Debug.Print count
Loop[/GPECODE]


Tôi đã sửa lại code hàm Translate theo code trên.

Các bạn Lê Duy Thương, Nguyễn Duy Tuân, Crystal Rose, Good-Luck đã "kêu ca" thì bây giờ đề nghị thử lại, thậm chí với IE7, và cho biết kết quả nhé.
chính nó rồi Thầy ơi
 
Upvote 0
Thôi đúng rồi, cẩn thận quá vẫn hơn. Chắc chắn IE7 có vấn đề về READYSTATE_COMPLETE
Nói ngắn gọn thì thực ra document vẫn chưa được load hoàn chỉnh mà code đã "cố" đọc nội dung (.Document.getElementById("result_box").innerText) nên kết quả là chuỗi rỗng.

Vậy thì tôi đề nghị 2 hướng:

1. Sau Do Until .ReadyState = 4: DoEvents: Loop ta thêm chút chờ đợi: Application.Wait (Now + TimeValue("0:00:5"))

2. Chờ đợi 5 giây như ở trên không biết có là cách tốt hay không. Có khi ít quá (kết cục là thất bại) mà có khi nhiều quá (chờ phí công). Tôi đề nghị chờ tối đa 10 giây. Tức nếu sau 1, 2, 3 giây mà đã có kết quả thì không chờ thêm nữa, còn không thì chờ tiếp nhưng tối đa là 10 giây. Sau 10 giây mà vẫn chưa có kết quả thì cũng dọn đồ chơi luôn.

Mã:
    Do Until .ReadyState = 4: DoEvents: Loop
    Do While count < 10 And result_data = ""
        Application.Wait (Now + TimeValue("0:00:1"))
        result_data = .Document.getElementById("result_box").innerText
        count = count + 1
        Debug.Print count
    Loop

Tôi đã sửa lại code hàm Translate theo code trên.

Các bạn Lê Duy Thương, Nguyễn Duy Tuân, Crystal Rose, Good-Luck đã "kêu ca" thì bây giờ đề nghị thử lại, thậm chí với IE7, và cho biết kết quả nhé.

Máy em vẫn chưa được. Khi code chạy đến dòng .Navigate2 "http://translate.google.com/#" & Lang_In & "/" & Lang_Out & "/" & text_to_translate thì IE7 tự mở ra và có kết quả dịch trên IE. Như vậy thực thế máy chủ Google đã nhận yêu cầu và trả về từ đã dịch nên không phải lỗi gửi và nhận dữ liệu qua mạng. Từ khi IE tự mở ra cửa sổ của nó lập tưc đối tượng tạo bởi CreateObject("InternetExplorer.Application") bị mất điều khiển và lỗi xảy ra "The object invoked has díconnected from its clients.". Như vậy có thể xử lý thằng IE không tự mở thì có thể làm việc được bình thường.
 
Upvote 0
Máy em vẫn chưa được. Khi code chạy đến dòng .Navigate2 "http://translate.google.com/#" & Lang_In & "/" & Lang_Out & "/" & text_to_translate thì IE7 tự mở ra và có kết quả dịch trên IE. Như vậy thực thế máy chủ Google đã nhận yêu cầu và trả về từ đã dịch nên không phải lỗi gửi và nhận dữ liệu qua mạng. Từ khi IE tự mở ra cửa sổ của nó lập tưc đối tượng tạo bởi CreateObject("InternetExplorer.Application") bị mất điều khiển và lỗi xảy ra "The object invoked has díconnected from its clients.". Như vậy có thể xử lý thằng IE không tự mở thì có thể làm việc được bình thường.

Thế thì thằng IE7 này lắm chuyện thật.
Trước đó tôi cài IE8 và đã test nhiều lần đều OK. Để thử với IE7 tôi đã xóa IE8 rồi cài IE7. Sau đó chạy code của ndu thì có 5 lần không có kết quả gì, và có 1 lần thì đúng là IE tự hiển thị, và có 1 loạt thẻ được mở. Sau đó tôi thử cho thêm Sleep 5000 thì nhận được kết quả.
Chính từ thử nghiệm trên mà tôi đã đề xuất 2 hướng đi. Tôi đã test cả 2 hướng thì đều nhận được kết quả - mỗi hướng test 3 lần. Trong 6 lần test này không có lần nào IE tự hiển thị. Chưa đến lúc nó "quậy"?
Tôi test trên XP Home sp2 + IE7, 8
 
Upvote 0
Upvote 0
thôi đúng rồi, cẩn thận quá vẫn hơn. Chắc chắn ie7 có vấn đề về readystate_complete
nói ngắn gọn thì thực ra document vẫn chưa được load hoàn chỉnh mà code đã "cố" đọc nội dung (.document.getelementbyid("result_box").innertext) nên kết quả là chuỗi rỗng.

Vậy thì tôi đề nghị 2 hướng:

1. Sau do until .readystate = 4: Doevents: Loop ta thêm chút chờ đợi: application.wait (now + timevalue("0:00:5"))

2. Chờ đợi 5 giây như ở trên không biết có là cách tốt hay không. Có khi ít quá (kết cục là thất bại) mà có khi nhiều quá (chờ phí công). Tôi đề nghị chờ tối đa 10 giây. Tức nếu sau 1, 2, 3 giây mà đã có kết quả thì không chờ thêm nữa, còn không thì chờ tiếp nhưng tối đa là 10 giây. Sau 10 giây mà vẫn chưa có kết quả thì cũng dọn đồ chơi luôn.

Mã:
    do until .readystate = 4: Doevents: Loop
    do while count < 10 and result_data = ""
        application.wait (now + timevalue("0:00:1"))
        result_data = .document.getelementbyid("result_box").innertext
        count = count + 1
        debug.print count
    loop

tôi đã sửa lại code hàm translate theo code trên.

Các bạn lê duy thương, nguyễn duy tuân, crystal rose, good-luck đã "kêu ca" thì bây giờ đề nghị thử lại, thậm chí với ie7, và cho biết kết quả nhé.
máy em đã chạy ok rồi anh ơi. Cảm ơn sự nhiệt huyết của các anh.có điều cái thằng google translate nó dịch tầm bậy.thậm chí thua translate trong word nữa. Anh có thể chuyển qua anh bill dịch dùm được không.MÁY EM DUNG W8 32 BIT
 

File đính kèm

  • TRANS1.jpg
    TRANS1.jpg
    44 KB · Đọc: 30
  • TRANS2.jpg
    TRANS2.jpg
    118.1 KB · Đọc: 24
Upvote 0
Thôi đúng rồi, cẩn thận quá vẫn hơn. Chắc chắn IE7 có vấn đề về READYSTATE_COMPLETE
Nói ngắn gọn thì thực ra document vẫn chưa được load hoàn chỉnh mà code đã "cố" đọc nội dung (.Document.getElementById("result_box").innerText) nên kết quả là chuỗi rỗng.

Vậy thì tôi đề nghị 2 hướng:

1. Sau Do Until .ReadyState = 4: DoEvents: Loop ta thêm chút chờ đợi: Application.Wait (Now + TimeValue("0:00:5"))

2. Chờ đợi 5 giây như ở trên không biết có là cách tốt hay không. Có khi ít quá (kết cục là thất bại) mà có khi nhiều quá (chờ phí công). Tôi đề nghị chờ tối đa 10 giây. Tức nếu sau 1, 2, 3 giây mà đã có kết quả thì không chờ thêm nữa, còn không thì chờ tiếp nhưng tối đa là 10 giây. Sau 10 giây mà vẫn chưa có kết quả thì cũng dọn đồ chơi luôn.

Mã:
    Do Until .ReadyState = 4: DoEvents: Loop
    Do While count < 10 And result_data = ""
        Application.Wait (Now + TimeValue("0:00:1"))
        result_data = .Document.getElementById("result_box").innerText
        count = count + 1
        Debug.Print count
    Loop

Tôi đã sửa lại code hàm Translate theo code trên.

Các bạn Lê Duy Thương, Nguyễn Duy Tuân, Crystal Rose, Good-Luck đã "kêu ca" thì bây giờ đề nghị thử lại, thậm chí với IE7, và cho biết kết quả nhé.

Mình dùng Google Chrome, test thấy Ok!, tuy nhiên đôi lúc cũng hiện lên trang Web.

Mình xin mạn phép cải tiến thêm tí:
- Gán mặc định in = tiếng Anh, out = tiếng Việt
- Thêm một nút đảo in <--> out và một "dấu X" để xóa nội dung cũ.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Em tìm trên mạng thấy dân tình cũng kêu thủ tục "getElementById" lỗi trên IE 6,7. Và có cách giải quyết bằng ngôn ngữ Java gì gì đó:

Link đây:
http://msdn.microsoft.com/en-us/library/ie/ms536437(v=vs.85).aspx
http://remysharp.com/2007/02/10/ie-7-breaks-getelementbyid/

Vụ viết java script thì chịu thua rồi. +-+-+-+

Như thế là IE7 có vấn đề. Thiên hạ người ta biết từ lâu, chỉ có mình bây giờ mới "khám phá" ra.
Được cái an ủi là hiếm có người bây giờ dùng IE7. Vì nhiều trang web không chịu mở, không mở hoàn chỉnh nếu là IE7. Thậm chí IE8.
 
Upvote 0
máy em đã chạy ok rồi anh ơi. Cảm ơn sự nhiệt huyết của các anh.có điều cái thằng google translate nó dịch tầm bậy.thậm chí thua translate trong word nữa. Anh có thể chuyển qua anh bill dịch dùm được không.MÁY EM DUNG W8 32 BIT

Tất nhiên google đâu phải là người. Nhiều khi nó dịch ra cái rất buồn cười. Chỉ để tham khảo thôi. Nhiều khi giúp ta hiểu được ý của một đoạn văn bản. Mà trong dịch thuật thì theo tôi nghĩa là chính. Cùng một đoạn văn bản đưa cho 10 biên dịch thì tôi tin là có thể có tới 10 phiên bản khác nhau về câu từ, độ chính xác.
Nhưng nói không bằng Translate của WORD thì tôi e rằng không đúng. Tôi không dịch bằng WORD bao giờ nhưng vài phút trước đây tôi ngó qua WORD của tôi (2007) thì thấy: ngôn ngữ vào là Arabic, English, French, Spanish. Nếu đầu vào là English thì ra chỉ là French, Spanish. Như vậy là rất hạn chế. Tôi thử viếi chơi "how are you" thì không có kết quả dịch.
 
Upvote 0
À em quên mất.dịch tiếng việt trong office chỉ có từ office 2010 trở đi hay sao âý.em cũng không để ý kỹ.có 1 lần viết mail tự nhiên thấy 1 vài từ nó đỏ lè dưới chân.bôi đen từ đó thấy nó hiên ra 1 số từ thay thế thì ra viết sai chính tả.sau đó thấy chữ translate bèn kiểm tra xem nó dịch có đúng không.kết quả thấy 60% đúng.đem câu đó đưa cho anh google thấy buồn cười làm sao.
 
Upvote 0
Dịch thuật thì nó vẫn dịch, mặc dù dịch chưa sát nghĩa, dịch "chay", dịch "thô", tuy nhiên có một số ngôn ngữ nếu máy nào chưa cài thì sẽ không được hiển thị hoặc hiển thị các ô vuông (như tiếng Ả rập, Hàn quốc ...).
 
Lần chỉnh sửa cuối:
Upvote 0
Không ngờ cái code nhỏ xíu này cũng khiến các bạn quan tâm nhiều đến thế ---> Vô cùng cảm ơn!
Thật lòng mà nói thì tôi viết ứng dụng này để phục vụ nhu cầu cá nhân là chính (tra help, đọc không kịp hiểu hết nên nhờ máy dịch hộ)
Gửi lên đây cũng chỉ với mục đích: Ai có nhu cầu giống mình cứ việc mang về mà xài, cải tiến tùy thích
-----------------
Cảm ơn các bạn đã quan tâm
 
Upvote 0
Như thế là IE7 có vấn đề. Thiên hạ người ta biết từ lâu, chỉ có mình bây giờ mới "khám phá" ra.
Được cái an ủi là hiếm có người bây giờ dùng IE7. Vì nhiều trang web không chịu mở, không mở hoàn chỉnh nếu là IE7. Thậm chí IE8.

Thế mới thấy bác Bill làm ăn cũng tương đối "chắp vá" đấy chứ. IE cũ thì bị những lỗi chẳng ai có, chạy trên Win7 64-bit thì IE lại là 32-bit,... Thực ra vì code lôi IE vào nên nó mới "sống" lại chứ lâu rồi toàn dùng FF.
 
Lần chỉnh sửa cuối:
Upvote 0
Thôi đúng rồi, cẩn thận quá vẫn hơn. Chắc chắn IE7 có vấn đề về READYSTATE_COMPLETE
Nói ngắn gọn thì thực ra document vẫn chưa được load hoàn chỉnh mà code đã "cố" đọc nội dung (.Document.getElementById("result_box").innerText) nên kết quả là chuỗi rỗng.

Vậy thì tôi đề nghị 2 hướng:

1. Sau Do Until .ReadyState = 4: DoEvents: Loop ta thêm chút chờ đợi: Application.Wait (Now + TimeValue("0:00:5"))

2. Chờ đợi 5 giây như ở trên không biết có là cách tốt hay không. Có khi ít quá (kết cục là thất bại) mà có khi nhiều quá (chờ phí công). Tôi đề nghị chờ tối đa 10 giây. Tức nếu sau 1, 2, 3 giây mà đã có kết quả thì không chờ thêm nữa, còn không thì chờ tiếp nhưng tối đa là 10 giây. Sau 10 giây mà vẫn chưa có kết quả thì cũng dọn đồ chơi luôn.

Mã:
    Do Until .ReadyState = 4: DoEvents: Loop
    Do While count < 10 And result_data = ""
        Application.Wait (Now + TimeValue("0:00:1"))
        result_data = .Document.getElementById("result_box").innerText
        count = count + 1
        Debug.Print count
    Loop

Tôi đã sửa lại code hàm Translate theo code trên.

Các bạn Lê Duy Thương, Nguyễn Duy Tuân, Crystal Rose, Good-Luck đã "kêu ca" thì bây giờ đề nghị thử lại, thậm chí với IE7, và cho biết kết quả nhé.
Hihi..nhóc tải file này về và sử dụng bình thường rồi ạ. Cám ơn hai anh ạ.
 
Upvote 0
Không ngờ cái code nhỏ xíu này cũng khiến các bạn quan tâm nhiều đến thế ---> Vô cùng cảm ơn!
Thật lòng mà nói thì tôi viết ứng dụng này để phục vụ nhu cầu cá nhân là chính (tra help, đọc không kịp hiểu hết nên nhờ máy dịch hộ)
Gửi lên đây cũng chỉ với mục đích: Ai có nhu cầu giống mình cứ việc mang về mà xài, cải tiến tùy thích
-----------------
Cảm ơn các bạn đã quan tâm

Bây giờ mình muốn cải tiến một bước nữa là thêm một Combobox để lưu lại những gì đã tra cứu, kể cả khi thoát Form, để nếu cần xem lại mà không phải chờ đợi Internet nữa. Chỉ khi nào thoát Excle thì danh sách m[í bị xoá. Bạn nào có hứng thú thì nghiên cứu cùng mình xem.
 
Upvote 0
Bây giờ mình muốn cải tiến một bước nữa là thêm một Combobox để lưu lại những gì đã tra cứu, kể cả khi thoát Form, để nếu cần xem lại mà không phải chờ đợi Internet nữa. Chỉ khi nào thoát Excle thì danh sách m[í bị xoá. Bạn nào có hứng thú thì nghiên cứu cùng mình xem.

Em nghĩ là lưu trong sheet luôn, combobox thoát ra rồi thì không lưu gì nữa cả. Nếu muốn những từ đã tra cứu thì sau khi load form thì up lên combobox đó.
 
Upvote 0
Upvote 0
Anh lưu bằng cách nào? Còn em thì chỉ lưu trong sheet mà thôi.

Ý Nghĩa là sao. Không có cách hay là thích lưu trên sheet?
Lưu trên Sheet cũng có cái hay là đơn giản, có thể tạo thành một sổ tay dạng như từ điển các từ thông dụng. Khi mở Form thì nạp từ điển vào combobox luôn. Nhưng nếu muốn tạo File add-in thì sao?
Sheet ẩn của add-ins có lưu được không nhỉ? mình chưa thử.
 
Upvote 0
Ý Nghĩa là sao. Không có cách hay là thích lưu trên sheet?
Lưu trên Sheet cũng có cái hay là đơn giản, có thể tạo thành một sổ tay dạng như từ điển các từ thông dụng. Khi mở Form thì nạp từ điển vào combobox luôn. Nhưng nếu muốn tạo File add-in thì sao?
Sheet ẩn của add-ins có lưu được không nhỉ? mình chưa thử.

Anh lưu trên sheet, hay lưu trên sheet của addins cũng đều như nhau, nhưng addin không thể lưu trực tiếp được, trừ khi anh chỉnh sửa trong môi trường VBA và lưu trên đó.
 
Upvote 0
Sheet ẩn của add-ins có lưu được không nhỉ? mình chưa thử.
Đương nhiên là lưu được. Anh thử thì biết liền chứ gì (gọi đúng tên Workbook, tên sheet, vùng dữ liệu là được rồi)
Anh lưu trên sheet, hay lưu trên sheet của addins cũng đều như nhau, nhưng addin không thể lưu trực tiếp được, trừ khi anh chỉnh sửa trong môi trường VBA và lưu trên đó.
Sao mà không được chứ... thử code này:
Mã:
Sub Test()
  Dim Text As String
  Text = Application.InputBox("nhap tu", , , , , , , 2)
  ThisWorkbook.Sheets(1).Range("A1").Value = Text
End Sub
Sub Auto_Close()
  ThisWorkbook.Save
End Sub
Code cho vào 1 module rồi lưu thành Add-In... Xong thí nghiệm xem nó có lưu được gì không
 
Lần chỉnh sửa cuối:
Upvote 0
Bây giờ mình muốn cải tiến một bước nữa là thêm một Combobox để lưu lại những gì đã tra cứu, kể cả khi thoát Form, để nếu cần xem lại mà không phải chờ đợi Internet nữa. Chỉ khi nào thoát Excle thì danh sách m[í bị xoá. Bạn nào có hứng thú thì nghiên cứu cùng mình xem.
nếu đã cải tiến thỉ cảm phiền cải tiến thêm cái này nữa các anh nhé: nếu mình cảm thấy nó dịch chưa đúng nghĩa của câu mình có thể chọn từ đó tìm nghĩa khác, nếu từ đó có nhiều nghĩa , không biết có khó không ???
tu dien.jpg
 
Upvote 0
Mình đã cải tiến thêm cho tiện dụng, thêm chức năng lưu lại các từ đã tra để khi cần lấy lại cho nhanh mà không cần đến Internet và một nút (Replace) để sửa lại nghĩa tùy thích.
Tặng các bạn và mong các bạn góp ý để hoàn thiện hơn.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Xin góp ý nhỏ. Nếu đây là sản phẩm bạn viết từ đầu thì dùng từ "tặng" nghe chuẩn hơn. Bạn đang cải tiến ứng dụng của anh NDU mà.

Bài này mình cũng nói là mình cải tiến thêm thôi mà, còn bài #19 mình cũng đã nói xin mạn phép cải tiến và ndu đã đồng ý. Ai đọc topic này từ đầu cũng hiểu thôi. Nếu mình "tặng" trong topic mới thì đúng là có ý xấu.
Mình cũng vì kiệm lời nên mới nói ngắn gọn vậy, không giải thích kỹ hơn, ngoài ra không có ý gì hết. Mong bạn hiểu và mình sẽ rút kinh nghiệm.
Vậy theo bạn phải viết như thế nào cho chuẩn?
 
Upvote 0
Bài này mình cũng nói là mình cải tiến thêm thôi mà, còn bài #19 mình cũng đã nói xin mạn phép cải tiến và ndu đã đồng ý. Ai đọc topic này từ đầu cũng hiểu thôi. Nếu mình "tặng" trong topic mới thì đúng là có ý xấu.
Mình cũng vì kiệm lời nên mới nói ngắn gọn vậy, không giải thích kỹ hơn, ngoài ra không có ý gì hết. Mong bạn hiểu và mình sẽ rút kinh nghiệm.
Vậy theo bạn phải viết như thế nào cho chuẩn?

Bạn có vẻ quan tâm tới vấn đề này. Vậy thì bạn xem xet luôn code dưới đây.

Nếu bạn có thời gian thì tìm với google, từ khóa ví dụ là
http://translate.google.com/translate_a/t?client=t&text=

Tôi chỉ tìm thấy các code dùng các ngôn ngữ khác và không hỗ trợ nguồn unicode. Tức truyền trực tiếp văn bản Việt là dữ liệu nguồn cần dịch thì không được. Trong URL "http://..." thì phải mã các ký tự.
 

File đính kèm

Upvote 0
Bạn có vẻ quan tâm tới vấn đề này. Vậy thì bạn xem xet luôn code dưới đây.

Nếu bạn có thời gian thì tìm với google, từ khóa ví dụ là
http://translate.google.com/translate_a/t?client=t&text=

Tôi chỉ tìm thấy các code dùng các ngôn ngữ khác và không hỗ trợ nguồn unicode. Tức truyền trực tiếp văn bản Việt là dữ liệu nguồn cần dịch thì không được. Trong URL "http://..." thì phải mã các ký tự.

Đã test, quả nhiên kỳ diệu... Mọi thứ đã gõ sẽ được lưu ở file translatetext.txt rồi cứ thế mà load lên... Vậy nên dù không có internet nhưng với những từ đã tra trước đó thì chương trình vẫn dịch được bình thường
Hay!
 
Upvote 0
Đã test, quả nhiên kỳ diệu... Mọi thứ đã gõ sẽ được lưu ở file translatetext.txt rồi cứ thế mà load lên... Vậy nên dù không có internet nhưng với những từ đã tra trước đó thì chương trình vẫn dịch được bình thường
Hay!

Tôi không hiểu ý lắm. Mình dùng google dịch thì phải có internet chứ?
 
Upvote 0
Tôi không hiểu ý lắm. Mình dùng google dịch thì phải có internet chứ?

Em chẳng biết nữa, nhưng em thí nghiệm thế này:
Bước 1
- Mở Internet
- Gõ từ "Tôi đi làm", dịch từ Việt sang Anh, kết quả: "I go to work"
- Gõ từ "Tôi đi học", dịch từ Việt sang Anh, kết quả: "I go to school"

Bước 2
- Tắt Internet
- Gõ từ "Tôi đi làm", dịch từ Việt sang Anh, vẫn ra kết quả: "I go to work"
- Gõ từ "Tôi đi học", dịch từ Việt sang Anh, vẫn ra kết quả: "I go to school"

Ở bước 2, dù không có internet như nó vẫn dịch được! Anh nghĩ sao?
 
Upvote 0
Đã test, quả nhiên kỳ diệu... Mọi thứ đã gõ sẽ được lưu ở file translatetext.txt rồi cứ thế mà load lên... Vậy nên dù không có internet nhưng với những từ đã tra trước đó thì chương trình vẫn dịch được bình thường
Hay!
Sao em test có internet và không có internet như Thầy nói, khi không có internet thì không dịch thuật được. Lúc đầu em test thử xóa dữ liệu duyệt web, cookie, để test xem có phải là do cái này không, nhưng cả xóa và không xóa, khi không có internet thì không dịch thuật được. Em dùng mạng wifi.
 
Upvote 0
Sao em test có internet và không có internet như Thầy nói, khi không có internet thì không dịch thuật được. Lúc đầu em test thử xóa dữ liệu duyệt web, cookie, để test xem có phải là do cái này không, nhưng cả xóa và không xóa, khi không có internet thì không dịch thuật được. Em dùng mạng wifi.
Mình đã test sau khi đã tra 1 từ nào rồi thì khi tắt internet thì vẫn có thể tra được từ đó. Tuy nhiên nghĩa của bác google cung cấp thì không được trọn vẹn cho lắm.
 
Upvote 0
Sao em test có internet và không có internet như Thầy nói, khi không có internet thì không dịch thuật được. Lúc đầu em test thử xóa dữ liệu duyệt web, cookie, để test xem có phải là do cái này không, nhưng cả xóa và không xóa, khi không có internet thì không dịch thuật được. Em dùng mạng wifi.

Tôi đâu có nói KHÔNG CÓ INTERNET VẪN DỊCH ĐƯỢC
Tôi nói thế này: Nếu có internet, ta dịch 1 vài từ nào đó, xong cắt internet đi, gõ lại y chang những từ khi nãy đã gõ thì chương trình vẫn dịch bình thường
 
Upvote 0
Tôi quay phim màn hình cho các bạn xem nha:

[video=youtube;ERI9PnHPNHg]http://www.youtube.com/watch?v=ERI9PnHPNHg&feature=youtu.be[/video]

Đang dùng DCOM 3G
Lưu ý: Cái này đang nói với code mới nhất của anh siwtom nha (code tại bài 37)
 
Lần chỉnh sửa cuối:
Upvote 0
Em chẳng biết nữa, nhưng em thí nghiệm thế này:
Bước 1
- Mở Internet
- Gõ từ "Tôi đi làm", dịch từ Việt sang Anh, kết quả: "I go to work"
- Gõ từ "Tôi đi học", dịch từ Việt sang Anh, kết quả: "I go to school"

Bước 2
- Tắt Internet
- Gõ từ "Tôi đi làm", dịch từ Việt sang Anh, vẫn ra kết quả: "I go to work"
- Gõ từ "Tôi đi học", dịch từ Việt sang Anh, vẫn ra kết quả: "I go to school"

Ở bước 2, dù không có internet như nó vẫn dịch được! Anh nghĩ sao?

À, hiểu rồi.
----------------
Trong translatetext chỉ có bản nguồn chứ không có bản dịch.
---------------

Bạn làm: khởi động IE --> gõ địa chỉ www.giaiphapexcel.com --> có trang GPE --> gõ địa chỉ www.yahoo.com --> có trang Yahoo.

Bây giờ bạn rút cáp internet --> nhấn nút Back --> bạn lại có trang GPE.

Vậy IE lấy trang GPE ở đâu? Nó lấy từ CACHE. Khi bạn lướt web thì trong thư mục "C:\Documents and Settings\[Tên user]\Local setting\Temporary Internet Files" có rất nhiều "thứ". IE lấy từ "Temporary Internet Files"

Bạn hãy mở "Temporary Internet Files" rồi xóa tất cả. Trong Excel bạn gõ "I like dog", bạn sẽ có bản dịch "Tôi thích con chó"

Nếu bây giờ bạn vào lại "Temporary Internet Files" thì bạn sẽ thấy có 1 tập tin tên là

PHP:
http://translate.google.com/translate_a/t?client=t&text=%49%20%6C%69%6B%65%20%64%6F%67&hl=en&sl=en&tl=vi&multires=1&pc=0&rom=1&sc=1

Bạn copy ra ngoài rồi mở lên (chọn notepad để mở) thì sẽ thấy nội dung:

HTML:
[[["Tôi thích con chó","I like dog","",""]],,"en",,[["Tôi thích",[5],0,0,1000,0,2,0],["con chó",[6],1,0,1000,2,4,0]],[["I like",5,[["Tôi thích",1000,0,0],["tôi muốn",0,0,0],["tôi như",0,0,0]],[[0,6]],"I like dog"],["dog",6,[["con chó",1000,1,0],["chó",0,1,0],["chú chó",0,1,0],["dog",0,1,0],["cho chó",0,1,0]],[[7,10]],""]],,,[["en"]],6]

Như vậy thì khi ta gửi request (trong code) thì câu trả lời từ server cũng được ghi trong "Temporary Internet Files"
-------------
Nếu bạn khởi động IE rồi bạn dán vào ô địa chỉ

PHP:
http://translate.google.com/translate_a/t?client=t&text=%49%20%6C%69%6B%65%20%64%6F%67&hl=en&sl=en&tl=vi&multires=1&pc=0&rom=1&sc=1

thì sẽ có cửa sổ nhẩy ra hỏi bạn ghi tập tin ở đâu. Bạn chọn ghi ở đâu đó rồi sau đó mở bằng notepad. Nội dung chính là như trên, tức câu trả lời của server.
Khi ta thực hiện code trong Excel thì nội dung đó được "tự động" ghi trong "Temporary Internet Files"
 
Lần chỉnh sửa cuối:
Upvote 0
À, hiểu rồi.
----------------
Trong translatetext chỉ có bản nguồn chứ không có bản dịch.
---------------

Bạn làm: khởi động IE --> gõ địa chỉ www.giaiphapexcel.com --> có trang GPE --> gõ địa chỉ www.yahoo.com --> có trang Yahoo.

Bây giờ bạn rút cáp internet --> nhấn nút Back --> bạn lại có trang GPE.

Vậy IE lấy trang GPE ở đâu? Nó lấy từ CACHE. Khi bạn lướt web thì trong thư mục "C:\Documents and Settings\[Tên user]\Local setting\Temporary Internet Files" có rất nhiều "thứ". IE lấy từ "Temporary Internet Files"

Bạn hãy mở "Temporary Internet Files" rồi xóa tất cả. Trong Excel bạn gõ "I like dog", bạn sẽ có bản dịch "Tôi thích con chó"

Nếu bây giờ bạn vào lại "Temporary Internet Files" thì bạn sẽ thấy có 1 tập tin tên là

PHP:
http://translate.google.com/translate_a/t?client=t&text=%49%20%6C%69%6B%65%20%64%6F%67&hl=en&sl=en&tl=vi&multires=1&pc=0&rom=1&sc=1

Bạn copy ra ngoài rồi mở lên (chọn notepad để mở) thì sẽ thấy nội dung:

HTML:
[[["Tôi thích con chó","I like dog","",""]],,"en",,[["Tôi thích",[5],0,0,1000,0,2,0],["con chó",[6],1,0,1000,2,4,0]],[["I like",5,[["Tôi thích",1000,0,0],["tôi muốn",0,0,0],["tôi như",0,0,0]],[[0,6]],"I like dog"],["dog",6,[["con chó",1000,1,0],["chó",0,1,0],["chú chó",0,1,0],["dog",0,1,0],["cho chó",0,1,0]],[[7,10]],""]],,,[["en"]],6]

Như vậy thì khi ta gửi request (trong code) thì câu trả lời từ server cũng được ghi trong "Temporary Internet Files"
-------------
Nếu bạn khởi động IE rồi bạn dán vào ô địa chỉ

PHP:
http://translate.google.com/translate_a/t?client=t&text=%49%20%6C%69%6B%65%20%64%6F%67&hl=en&sl=en&tl=vi&multires=1&pc=0&rom=1&sc=1

thì sẽ có cửa sổ nhẩy ra hỏi bạn ghi tập tin ở đâu. Bạn chọn ghi ở đâu đó rồi sau đó mở bằng notepad. Nội dung chính là như trên, tức câu trả lời của server.
Khi ta thực hiện code trong Excel thì nội dung đó được "tự động" ghi trong "Temporary Internet Files"
Vậy thì em mạn phép anh, dùng code mới nhất post vào bài 1 nhé
 
Upvote 0
Bản mới không dùng IE nữa nên máy nào cũng (gần như) chạy được rồi. Chạy cũng mịn màng hơn. Nhưng cần chỉnh lại giá trị ở cửa sổ hiện nội dung dịch. Ví dụ bên trái (English) gõ "hello" bấm dịch, cửa sổ bên phải (Việt nam) hiện "cha[]o".

Chúng ta đọc các code, các ứng dụng, module nhỏ trên mạng người nước ngoài hay có phần thông tin người thiết kế, người góp ý hoàn thiện.... Thấy rất hay, ngoài sự chuyên nghiệp còn giúp cho người đọc biết được nguồn gốc của sp mình dùng, có "kiện cáo" gì còn biết nơi để kêu. Thỉnh thoảng tôi làm những cái tâm đắc cũng viết thông tin như vậy. Tại sao trên GPE chúng ta không làm nhỉ?
 
Lần chỉnh sửa cuối:
Upvote 0
Bản mới không dùng IE nữa lên máy nào cũng (gần như) chạy được rồi. Chạy cũng mịn màng hơn. Nhưng cần chỉnh lại giá trị ở cửa sổ hiện nội dung dịch. Ví dụ bên trái (English) gõ "hello" bấm dịch, cửa sổ bên phải (Việt nam) hiện "cha[]o".
Chổ này chưa hiểu ý Tuân muốn nói gì

Chúng ta đọc các code, các ứng dụng, module nhỏ trên mạng người nước ngoài hay có phần thông tin người thiết kế, người góp ý hoàn thiện.... Thấy rất hay, ngoài sự chuyên nghiệp còn giúp cho người đọc biết được nguồn gốc của sp mình dùng, có "kiện cáo" gì còn biết nơi để kêu. Thỉnh thoảng tôi làm những cái tâm đắc cũng viết thông tin như vậy. Tại sao trên GPE chúng ta không làm nhỉ?
Vấn đề là mình đâu có kinh doanh. Chỉ tổng hợp vài thứ thành 1 cái gọi là "ứng dụng" cho oai thế thôi chứ cũng chỉ là Excel VBA code ---> Ai download về, thích làm gì cứ tự nhiên. Thậm chí ai đó ghi tác giả là ông A, ông B gì mình cũng không có ý kiến (mà thực chất mình cũng không phải tác giả)
 
Upvote 0
Nhưng cần chỉnh lại giá trị ở cửa sổ hiện nội dung dịch. Ví dụ bên trái (English) gõ "hello" bấm dịch, cửa sổ bên phải (Việt nam) hiện "cha[]o".

Khổ cái là mhiều khi google lại cung cấp kết quả như

View attachment 98690

Tức không hẳn là "chào". Chữ "chào" có 4 ký tự trong khi kết quả trên gồm 5 ký tự: c, h, a, o và ký tự dấu huyền.

----------------
Câu trả lời của server là

[[["chào","hello","",""]],[["noun",["chào","câu chào","tiếng chào"],[["chào",["hello"],,0.0051661632],
["câu chào",["hello"],,0.00034074541],["tiếng chào",["hello","salaam"],,0.00033546262]]],
["interjection",["alô","chào anh","chào chị","ô nài","xin chào"],[["alô",["hello"],,0.00085663382],["chào
anh",["hello"],,0.00034074541],["chào chị",["hello"],,0.00033546262],["ô nài",
["hello"],,0.00033546262],["xin chào",["hello"],,0.00033026177]]]],"en",,[["chào",[5],0,0,1000,0,1,0]],
[["hello",4,,,""],["hello",5,[["chào",1000,0,0],["Xin chào",0,0,0],["chào",0,0,0],["Xin chào quý",0,0,0],
["chào hỏi",0,0,0]],[[0,5]],"hello"]],,,[["en"]],5]

Vậy ai có thời gian nghiên cứu lọc ra kết quả: kết quả dịch, nếu có danh từ thì cũng hiển thị như ở trang web dịch? Giơ tay lên nào.
 
Lần chỉnh sửa cuối:
Upvote 0
Chổ này chưa hiểu ý Tuân muốn nói gì


Vấn đề là mình đâu có kinh doanh. Chỉ tổng hợp vài thứ thành 1 cái gọi là "ứng dụng" cho oai thế thôi chứ cũng chỉ là Excel VBA code ---> Ai download về, thích làm gì cứ tự nhiên. Thậm chí ai đó ghi tác giả là ông A, ông B gì mình cũng không có ý kiến (mà thực chất mình cũng không phải tác giả)

Oh, việc viết thông tin đâu chỉ nhăm nhe kinh doanh. Có các lý do:
+ tự chịu trách nhiệm
+ nhận các phản hồi từ người dùng để nâng cấp, hoàn thiện đứa con của mình
+ giúp thiên hạ. Em đang cần xử lý một vấn đề rất "khoai" tìm được giải pháp trên mạng nhưng không thể cải tiến để cho công việc được, hỏi ai cũng không biết tác giả ở đâu. Tìm mỏi mắt trên Google thì thấy đoạn code nguyên bản của tác giả và có thông tin email. Thế là mail nhờ luôn. Thực sự lúc đó thấy quý nhau vô cùng.
+ văn hoá "Bản quyền - Copyright (C). Người việt nam đang bị lên án chữ này, có lẽ một phần không rõ nguồn gốc để mà trích dẫn. Thực tế có nhiều người viết sách chép y nguyên của người khác nhưng thay tên mình vào, rõ ràng như vậy là không văn minh.
+ kinh doanh
+ cho oai
+ ....
 
Lần chỉnh sửa cuối:
Upvote 0
Sao em tạo thành file addin nhưng trên menu không thấy, em xài office 2003 (Win7)
 
Upvote 0
Bác Ndu chỉ em cách làm addin file này với. Em search các bài trên diễn đàn để tạo hoài mà không làm được. TK bác nhiều
 
Upvote 0
Bác Ndu chỉ em cách làm addin file này với. Em search các bài trên diễn đàn để tạo hoài mà không làm được. TK bác nhiều

Bạn làm như sau:
- Download file Google Translator_5.xlsm về máy tính
- Mở file lên, bấm Alt + F11 để vào cửa sổ lập trình
- Copy đoạn code dưới đây cho thêm vào trong Module
Mã:
Sub Auto_Open()
  With Application.CommandBars(1)
    .Reset
    With .Controls.Add(1, , , 1)
      .Caption = "Google Translate"
      .OnAction = "ShowTranslator"
      .FaceId = [COLOR=#ff0000]48[/COLOR]
    End With
  End With
End Sub
Sub Auto_Close()
  Application.CommandBars(1).Reset
End Sub
- Xong, SaveAs thành Add-In
- Kích hoạt Add-In, bạn sẽ thấy xuất hiện 1 nút trên menu ---> Bấm vào sẽ hiện form
- Lưu ý: Con số 48 màu đỏ ở trên bạn có thể thay thành số mấy tùy ý (mục đích để đổi Icon)
----------------------
Làm 1 cái nút trên menu chỉ đơn giản thế thôi
 
Upvote 0
Anh siwtom cho em hỏi 1 vấn đề:
Tra từ trên Google Translate có khi nó trả về nhiều kết quả (nhiều nghĩa)
Ví dụ: Tử transpose dịch từ Anh sang Việt sẽ cho 3 kết quả:
- Chuyển điệu
- Chuyển vị
- Đổi chổ

Câu hỏi đặt ra là: Sửa code thế nào để lấy được toàn bộ các kết quả này?
 
Upvote 0
Anh siwtom cho em hỏi 1 vấn đề:
Tra từ trên Google Translate có khi nó trả về nhiều kết quả (nhiều nghĩa)
Ví dụ: Tử transpose dịch từ Anh sang Việt sẽ cho 3 kết quả:
- Chuyển điệu
- Chuyển vị
- Đổi chổ

Câu hỏi đặt ra là: Sửa code thế nào để lấy được toàn bộ các kết quả này?

Thực ra cái này ai cũng có thể tự nghiên cứu.
Trong bài #50 tôi đã đưa ra câu trả lời của server cho câu "hello".
Như đã thấy ở dưới đây thì câu dịch chỉ là "chào". Còn "noun" và "interjection" là phần mở rộng.

[[["chào","hello","",""]],[["noun",["chào","câu chào","tiếng chào"],[["chào",["hello"],,0.0051661632],
["câu chào",["hello"],,0.00034074541],["tiếng chào",["hello","salaam"],,0.00033546262]]],
["interjection",["alô","chào anh","chào chị","ô nài","xin chào"],[["alô",["hello"],,0.00085663382],["chào
anh",["hello"],,0.00034074541],["chào chị",["hello"],,0.00033546262],["ô nài",
["hello"],,0.00033546262],["xin chào",["hello"],,0.00033026177]]]],"en",,[["chào",[5],0,0,1000,0,1,0]],
[["hello",4,,,""],["hello",5,[["chào",1000,0,0],["Xin chào",0,0,0],["chào",0,0,0],["Xin chào quý",0,0,0],
["chào hỏi",0,0,0]],[[0,5]],"hello"]],,,[["en"]],5]

Tương tự cho câu "transpose" thì câu dịch chỉ là "chuyển điệu". Còn "verb" là phần mở rộng.

[[["chuyển điệu","transpose","",""]],[["verb",["chuyển điệu","chuyển vị","đổi chổ"],[["chuyển điệu",["modulate","mutate","transpose"],,0.0095020281],["chuyển vị",["transpose"],,0.0093547134],["đổi chổ",["displace","remove","shift","transpose","translocate","displace"],,0.0093547134]]]],"en",,[["chuyển điệu",[12],0,0,1000,0,2,1]],[["transpose",12,[["chuyển điệu",1000,0,0],["transpose",0,0,0],["hoán chuyển",0,0,0],["hoán chuyển vị",0,0,0],["chuyển vị",0,0,0]],[[0,9]],"transpose"]],,,[["en"]],53]

Trong code tôi mới chỉ lọc cho phần dịch - cho th tổng quát là văn bản có nhiều dòng. Chưa có lọc cho phần mở rộng. Chú ý là không phải lúc nào cũng có. Chính vì chưa có code lọc cho phần mở rộng nên tôi đã hỏi trong bài #50 nhưng không ai trả lời.

Câu trả lời của server là
...
Vậy ai có thời gian nghiên cứu lọc ra kết quả: kết quả dịch, nếu có danh từ thì cũng hiển thị như ở trang web dịch? Giơ tay lên nào.

Nói cho cùng thì công việc "vừa tầm" với nhiều người. Vả lại tôi cũng lười như mọi người. Tôi nghĩ tôi còn lười hơn. Vì những việc không thú vị, những việc chỉ cần cần cù (cơ bắp) thì tôi không có hứng.
Tôi đã viết rất rõ rồi. Câu trả lời của server nằm trong text = .responseText. Cả phần dịch và phần mở rộng. Có thể ghi text vào tập tin rồi nghiên cứu: khi có và không có phần mở rộng thì cấu trúc của text như thế nào?, các phần "noun", "interjection", "verb" lọc ra như thế nào?
Khi đã biết cấu trúc của câu trả lời thì lọc ra thôi. Về cái khoản xét cấu trúc này thì chắc chắn tôi kém hơn nhiều người.
 
Upvote 0
Thực ra cái này ai cũng có thể tự nghiên cứu.
Trong bài #50 tôi đã đưa ra câu trả lời của server cho câu "hello".
Như đã thấy ở dưới đây thì câu dịch chỉ là "chào". Còn "noun" và "interjection" là phần mở rộng.



Tương tự cho câu "transpose" thì câu dịch chỉ là "chuyển điệu". Còn "verb" là phần mở rộng.



Trong code tôi mới chỉ lọc cho phần dịch - cho th tổng quát là văn bản có nhiều dòng. Chưa có lọc cho phần mở rộng. Chú ý là không phải lúc nào cũng có. Chính vì chưa có code lọc cho phần mở rộng nên tôi đã hỏi trong bài #50 nhưng không ai trả lời.



Nói cho cùng thì công việc "vừa tầm" với nhiều người. Vả lại tôi cũng lười như mọi người. Tôi nghĩ tôi còn lười hơn. Vì những việc không thú vị, những việc chỉ cần cần cù (cơ bắp) thì tôi không có hứng.
Tôi đã viết rất rõ rồi. Câu trả lời của server nằm trong text = .responseText. Cả phần dịch và phần mở rộng. Có thể ghi text vào tập tin rồi nghiên cứu: khi có và không có phần mở rộng thì cấu trúc của text như thế nào?, các phần "noun", "interjection", "verb" lọc ra như thế nào?
Khi đã biết cấu trúc của câu trả lời thì lọc ra thôi. Về cái khoản xét cấu trúc này thì chắc chắn tôi kém hơn nhiều người.

Thật ra trước khi hỏi, em đã mở cái file trong Temporary Internet Files để xem rồi... nhưng mà nhìn nó "rối" quá, không biết chổ nào để bám vào mà tách ra được những từ mình cần
Các bạn ai giỏi về xử lý text nghiên cứu giúp với
 
Upvote 0
chào bác, em là mem mới toe, vô tình xem đc post này của bác, bác có thể hướng dẫn cụ thể cách để kích hoạt add-in cho em được không ạ. Em cám ơn bác nhiều
 
Upvote 0
Chào Thầy ndu96081631, em có gửi đoạn code dịch ở #17 link dưới, không dùng câu lệnh With CreateObject("InternetExplorer.application")
Không dùng Do..Loop cũng như Application.Wait
được Dịch bởi google translate di động, thay vì google translate cổ điển.
Thầy ứng dụng code vào file của thầy xem sao, em thấy dịch rất nhanh

http://www.giaiphapexcel.com/diendan/threads/giúp-đỡ-sửa-code-vba-translate-thành-function.78107/
Với Code thầy phát triển thì ứng dụng hay hơn khi lấy được dữ liệu Phát hiện ngôn ngữ, cấu tạo danh từ, động từ, ... đó là phần bên dưới của phần Dịch. Mong thầy phát triển thêm ứng dụng dịch để mọi người vận dụng vào học tập và công việc tốt hơn.
 
Lần chỉnh sửa cuối:
Upvote 0

Bài viết mới nhất

Back
Top Bottom