Xây dựng ứng dụng Dịch ngôn ngữ – Lập trình ứng dụng Android
Link tham khảo API dịch ngôn ngữ: https://developers.google.com/ml-kit/language/translation/android
Với API dịch trên thiết bị của ML Kit được phát triển bởi Google, bạn có thể dịch văn bản giữa hơn 50 ngôn ngữ.
Các bạn thực hiện theo các bước sau để xây dựng ứng dụng Dịch ngôn ngữ:
Bước 1: Trong tệp build.gradle ở cấp Project, hãy nhớ đưa kho lưu trữ Maven của Google vào cả hai phần buildscript và allprojects. (Thông thường, khi bạn tạo một ứng dụng đều đã tích hợp phần này, nên có thể bỏ qua bước này).
Bước 2: Thêm thư viện Dịch ngôn ngữ vào tệp app/build.gradle cấp ứng dụng:
dependencies {
// ...
implementation 'com.google.mlkit:translate:17.0.3'
}
Bước 3: Xây dựng giao diện trong tệp “activity_main.xml”:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:orientation="vertical"
android:gravity="center"
>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="5dp"
android:textSize="19sp"
android:background="#E2E2E2"
android:hint="Nhập văn bản cần dịch"
android:id="@+id/edt_nhapvanban" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="5dp"
android:textSize="19sp"
android:background="#E2E2E2"
android:id="@+id/tv_vanban_dadich" />
</LinearLayout>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Dịch"
app:layout_constraintBottom_toBottomOf="parent"
android:id="@+id/btn_dich"
android:layout_margin="5dp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
Bước 4: Viết chương trình dùng ngôn ngữ Java trong tệp “MainActivity.java“:
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.mlkit.common.model.DownloadConditions;
import com.google.mlkit.nl.translate.TranslateLanguage;
import com.google.mlkit.nl.translate.Translation;
import com.google.mlkit.nl.translate.Translator;
import com.google.mlkit.nl.translate.TranslatorOptions;
public class MainActivity extends AppCompatActivity {
private Translator Dich_tu_tieng_Viet_sang_tieng_Anh;
private boolean boolean_tai_mohinh_dichthuat = false;
private EditText edt_nhapvanban;
private TextView tv_dichvanban;
private Button btn_dich;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edt_nhapvanban = findViewById(R.id.edt_nhapvanban);
tv_dichvanban = findViewById(R.id.tv_vanban_dadich);
btn_dich = findViewById(R.id.btn_dich);
// Tạo cấu hình dịch từ tiếng Việt sang tiếng Anh
TranslatorOptions options =
new TranslatorOptions.Builder()
.setSourceLanguage(TranslateLanguage.VIETNAMESE)
.setTargetLanguage(TranslateLanguage.ENGLISH)
.build();
Dich_tu_tieng_Viet_sang_tieng_Anh =
Translation.getClient(options);
tai_mo_hinh_dich_thuat();
btn_dich.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (boolean_tai_mohinh_dichthuat){
//Khi mô hình dịch thuật đã tải xong, nếu nút Dịch được nhấn, sẽ bắt đầu dịch văn bản
String van_ban = edt_nhapvanban.getText().toString().trim();
dich_van_ban(van_ban);
}
else {
//Khi mô hình dịch thuật chưa tải xong,
// nếu nút Dịch được nhấn, sẽ thông báo chờ tải mô hình
Toast.makeText(MainActivity.this, "Vui lòng chờ tải mô hình dịch thuật", Toast.LENGTH_SHORT).show();
}
}
});
}
private void tai_mo_hinh_dich_thuat(){
DownloadConditions conditions = new DownloadConditions.Builder()
.requireWifi()
.build();
Dich_tu_tieng_Viet_sang_tieng_Anh.downloadModelIfNeeded(conditions)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void v) {
boolean_tai_mohinh_dichthuat = true;
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Model couldn’t be downloaded or other internal error.
// ...
}
});
}
private void dich_van_ban(String van_ban){
Dich_tu_tieng_Viet_sang_tieng_Anh.translate(van_ban)
.addOnSuccessListener(new OnSuccessListener<String>() {
@Override
public void onSuccess(String s) {
//Văn bản đã dịch thành công
tv_dichvanban.setText(s);
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
//Lỗi không thể dịch văn bản
// ...
}
});
}
}
Sau khi xây dựng ứng dụng thành công, sẽ có kết quả như sau:
Ứng dụng đã dịch thành công văn bản từ tiếng Việt sang tiếng Anh. Các bạn có thể thay đổi cầu hình để dịch sang nhiều ngôn ngữ khác.
Chúc các bạn thực hiện thành công!


Comments
Post a Comment