 |
|
KINH NGHIỆM LẬP
TRÌNH |
|
Phiên dịch tiếng Anh sang tiếng Việt bằng VB |
|
Viết ứng dụng để dịch một đoạn
văn tiếng Anh sang tiếng Việt dường như là việc quá
ư khó khăn. Tuy nhiên, nếu ta chỉ xét những câu đàm
thoại thông thường thì việc "phiên dịch tự động"
không phức tạp lắm. Xin trình bày một ý tưởng để
giúp bạn... học tiếng Anh tốt hơn. |
|
Bạn hãy tạo dự án mới trong VB
rồi bấm Ctrl+T. Trên hộp thoại vừa hiện ra, bạn chọn
Microsoft Rich Textbox Control 6.0 và nhấn OK. Tiếp
theo, bạn thiết kế giao diện như hình 1 với các
thuộc tính như trong bảng 1 và bảng 2 rồi đánh đoạn
mã 1. |
Sau khi lưu ứng dụng, bạn tạo 3 tập tin văn bản TXT
trong thư mục của ứng dụng:
- phrases.txt: chứa các mệnh đề đặc biệt hay thành
ngữ tiếng Anh (at night, at times,...).
- verbs.txt: chứa các chủ ngữ và động từ tiếng Anh
(I am, he is, we do,...).
- words.txt: chứa các từ tiếng Anh thông dụng (I,
hello, you,...). |
Cả ba tập tin như vậy có dạng thức như sau:
"tu_tieng_Anh_1","nghia_1"
"tu_tieng_Anh_2","nghia_2"
... |
|
Bạn chạy thử và đánh câu tiếng Anh ở khung văn bản
phía trên xem sao. Thật ngạc nhiên, phía dưới xuất
hiện câu tiếng Việt tương ứng! Bạn chú ý, ứng dụng
hoạt động tốt hay không là do cơ sở dữ liệu (CSDL)
từ ngữ của ta có phong phú hay không. Bạn nên đưa
nhiều thành ngữ vào tập tin phrases.txt. Bạn có thể
tải mã nguồn và CSDL của ứng dụng tại:
www.echip.com.vn. Chúc bạn thành công. |
H1
 |
|
Bảng
1
|
Control |
Name |
Font |
|
RichTextbox1 |
txtenglish |
14, Bold |
|
RichTextbox2 |
txtvietnam |
14, Bold |
Bảng
2
|
Control |
Name |
Interval |
|
Timer1 |
t_1 |
5 |
|
Timer2 |
t_2 |
1 |
|
Đoạn mã 1
Dim vn_words(1 To 1000)
Dim en_words(1 To 1000)
Dim dotime As String
Dim strings As String
Dim check_verbs As Integer
Dim check_phrases As Integer
Dim englishtext, vietnamtext
Private Sub Form_Load()
Form1.Show
t_1.Enabled = False
t_2.Enabled = True
listwords = 1
Open (App.Path & "\phrases.txt") For Input
As #1
Do While Not EOF(1)
Input #1, englishtext, vietnamtext
en_words(listwords) = englishtext
vn_words(listwords) = vietnamtext
listwords = listwords + 1
Loop
Close #1
check_phrases = listwords
Open (App.Path & "\verbs.txt") For Input As
#1
Do While Not EOF(1)
Input #1, englishtext, vietnamtext
en_words(listwords) = englishtext
vn_words(listwords) = vietnamtext
listwords = listwords + 1
Loop
Close #1
check_verbs = listwords - check_phrases
Open (App.Path & "\words.txt") For Input As
#1
Do While Not EOF(1)
Input #1, englishtext, vietnamtext
en_words(listwords) = englishtext
vn_words(listwords) = vietnamtext
listwords = listwords + 1
Loop
Close #1
End Sub
Private Sub t_1_Timer()
If txtvietnam.Text = "" Then Exit Sub
If dotime = txtvietnam.Text Then Exit Sub
txtenglish.Text = ""
whereareweat = 1
dotime = txtvietnam.Text
strings = txtvietnam.Text
For i = 1 To 13
strings = Replace(strings, vn_words(i),
en_words(i) & " ")
Next i
For i = 1 To 1000
strings = Replace(strings, vn_words(i),
en_words(i) & " ")
Next i
txtvietnam.Text = strings
End Sub
Private Sub t_2_Timer()
If txtenglish.Text = "" Then Exit Sub
If dotime = txtenglish.Text Then Exit Sub
txtvietnam.Text = ""
whereareweat = 1
dotime = txtenglish.Text
strings = txtenglish.Text
For i = 1 To check_phrases
strings = Replace(strings, vn_words(i),
en_words(i) & " ")
Next i
For i = check_phrases To check_verbs
strings = Replace(strings, vn_words(i),
en_words(i) & " ")
Next i
For i = 1 To 1000
strings = Replace(strings, en_words(i),
vn_words(i) & " ")
Next i
txtvietnam.Text = strings
End Sub |
|
|
 |
|
Lê Khắc Như (Bình Định) |
|
Lời bàn của CHƯƠNG CAN CHÍP |
Bạn Như có ý tưởng rất vui, nhưng bạn nên tung thêm
một số “chiêu thức” bổ sung nữa. Tui có mần theo lời
dụ dỗ của bạn. Nhờ thói quen... cẩu thả (gõ lộn xộn
chữ thường và chữ hoa), tui phát hiện đôi điều:
• Khi muốn chào, tui gõ HI, thì nhận được phần dịch
là HTôi.
• Nếu muốn "everybody" trở thành “mọi người”, tui
phải gõ ký tự trắng trước khi nện dấu phẩy.
• Nếu gõ "AM", tui hổng nhận được “là” mà chương
trình thẩy lại cho tui y như dzậy! |
|
Vậy là chương trình hổng chịu phân biệt chữ thường
với chữ hoa, hổng phân biệt chữ I đứng riêng và I
đứng trong từ khác và cũng hổng phân biệt dấu cách
giữa các từ nữa. Nào, bà con vén tay áo nhào dzô
xem! |
|
|
|
 |
|
 |