Menerjemahkan teks dengan ML Kit di Android

Anda dapat menggunakan ML Kit untuk menerjemahkan teks antarbahasa. Saat ini, ML Kit mendukung terjemahan antara 59 bahasa.

Sebelum memulai

  1. Tambahkan Firebase ke project Android jika belum melakukannya.
  2. Tambahkan dependensi untuk library Android ML Kit ke file Gradle modul (level aplikasi), biasanya app/build.gradle:
    apply plugin: 'com.android.application'
    apply plugin: 'com.google.gms.google-services'
    
    dependencies {
      // ...
    
      implementation 'com.google.firebase:firebase-ml-natural-language:22.0.0'
      implementation 'com.google.firebase:firebase-ml-natural-language-translate-model:20.0.8'
    }

Menerjemahkan string teks

Cara menerjemahkan string antara dua bahasa:

  1. Buat objek FirebaseTranslator, lalu konfigurasikan dengan bahasa sumber dan target:

    JavaKotlin
    // Create an English-German translator:
    FirebaseTranslatorOptions options =
            new FirebaseTranslatorOptions.Builder()
                    .setSourceLanguage(FirebaseTranslateLanguage.EN)
                    .setTargetLanguage(FirebaseTranslateLanguage.DE)
                    .build();
    final FirebaseTranslator englishGermanTranslator =
            FirebaseNaturalLanguage.getInstance().getTranslator(options);
    
    // Create an English-German translator:
    val options = FirebaseTranslatorOptions.Builder()
            .setSourceLanguage(FirebaseTranslateLanguage.EN)
            .setTargetLanguage(FirebaseTranslateLanguage.DE)
            .build()
    val englishGermanTranslator = FirebaseNaturalLanguage.getInstance().getTranslator(options)
    

    Jika tidak tahu bahasa teks input, Anda dapat menggunakan API identifikasi bahasa terlebih dahulu. (Tetapi pastikan Anda tidak menyimpan terlalu banyak model bahasa pada perangkat sekaligus.)

  2. Pastikan model terjemahan yang diperlukan telah didownload ke perangkat. Jangan memanggil translate() sebelum Anda mengetahui ketersediaan model tersebut.

    JavaKotlin
    FirebaseModelDownloadConditions conditions = new FirebaseModelDownloadConditions.Builder()
        .requireWifi()
        .build();
    englishGermanTranslator.downloadModelIfNeeded(conditions)
          .addOnSuccessListener(
              new OnSuccessListener<Void>() {
                @Override
                public void onSuccess(Void v) {
                  // Model downloaded successfully. Okay to start translating.
                  // (Set a flag, unhide the translation UI, etc.)
                }
              })
          .addOnFailureListener(
              new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                  // Model couldn’t be downloaded or other internal error.
                  // ...
                }
              });
    
    englishGermanTranslator.downloadModelIfNeeded()
            .addOnSuccessListener {
                // Model downloaded successfully. Okay to start translating.
                // (Set a flag, unhide the translation UI, etc.)
            }
            .addOnFailureListener { exception ->
                // Model couldn’t be downloaded or other internal error.
                // ...
            }
    

    Ukuran model bahasa sekitar 30 MB, jadi jangan mendownloadnya jika tidak perlu dan hanya download menggunakan Wi-Fi, kecuali jika pengguna telah menentukan sebaliknya. Anda juga harus menghapus model yang tidak dibutuhkan. Baca artikel Mengelola model terjemahan secara eksplisit.

  3. Setelah Anda mengonfirmasi bahwa model telah didownload, teruskan string teks dalam bahasa sumber ke translate():

    JavaKotlin
    englishGermanTranslator.translate(text)
          .addOnSuccessListener(
              new OnSuccessListener<String>() {
                @Override
                public void onSuccess(@NonNull String translatedText) {
                  // Translation successful.
                }
              })
          .addOnFailureListener(
              new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                  // Error.
                  // ...
                }
              });
    
    englishGermanTranslator.translate(text)
            .addOnSuccessListener { translatedText ->
                // Translation successful.
            }
            .addOnFailureListener { exception ->
                 // Error.
                 // ...
            }
    

    Teks yang sudah diterjemahkan, dalam bahasa target yang Anda konfigurasi, akan diteruskan ke pemroses yang berhasil.

Mengelola model terjemahan secara eksplisit

Saat Anda menggunakan Translation API seperti yang dijelaskan di atas, ML Kit akan otomatis mendownload model terjemahan bahasa tertentu ke perangkat sesuai kebutuhan. Anda juga dapat secara eksplisit mengelola model terjemahan yang diinginkan agar tersedia di perangkat menggunakan API manajemen model terjemahan dari ML Kit. Hal ini berguna jika Anda ingin mendownload model lebih awal, atau menghapus model yang tidak diperlukan dari perangkat.

JavaKotlin
FirebaseModelManager modelManager = FirebaseModelManager.getInstance();

// Get translation models stored on the device.
modelManager.getDownloadedModels(FirebaseTranslateRemoteModel.class)
        .addOnSuccessListener(new OnSuccessListener<Set<FirebaseTranslateRemoteModel>>() {
            @Override
            public void onSuccess(Set<FirebaseTranslateRemoteModel> models) {
                // ...
            }
        })
        .addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                // Error.
            }
        });

// Delete the German model if it's on the device.
FirebaseTranslateRemoteModel deModel =
        new FirebaseTranslateRemoteModel.Builder(FirebaseTranslateLanguage.DE).build();
modelManager.deleteDownloadedModel(deModel)
        .addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override
            public void onSuccess(Void v) {
                // Model deleted.
            }
        })
        .addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                // Error.
            }
        });

// Download the French model.
FirebaseTranslateRemoteModel frModel =
        new FirebaseTranslateRemoteModel.Builder(FirebaseTranslateLanguage.FR).build();
FirebaseModelDownloadConditions conditions = new FirebaseModelDownloadConditions.Builder()
        .requireWifi()
        .build();
modelManager.download(frModel, conditions)
        .addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override
            public void onSuccess(Void v) {
                // Model downloaded.
            }
        })
        .addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                // Error.
            }
        });
val modelManager = FirebaseModelManager.getInstance()

// Get translation models stored on the device.
modelManager.getDownloadedModels(FirebaseTranslateRemoteModel::class.java)
    .addOnSuccessListener { models ->
        // ...
    }
    .addOnFailureListener {
        // Error.
    }

// Delete the German model if it's on the device.
val deModel = FirebaseTranslateRemoteModel.Builder(FirebaseTranslateLanguage.DE).build()
modelManager.deleteDownloadedModel(deModel)
    .addOnSuccessListener {
        // Model deleted.
    }
    .addOnFailureListener {
        // Error.
    }

// Download the French model.
val frModel = FirebaseTranslateRemoteModel.Builder(FirebaseTranslateLanguage.FR).build()
val conditions = FirebaseModelDownloadConditions.Builder()
    .requireWifi()
    .build()
modelManager.download(frModel, conditions)
    .addOnSuccessListener {
        // Model downloaded.
    }
    .addOnFailureListener {
        // Error.
    }

ML Kit for Firebase menyediakan solusi ML siap pakai bagi developer aplikasi. Aplikasi baru harus menggunakan library ML Kit mandiri untuk ML di perangkat dan Firebase ML untuk ML berbasis cloud.

Diperbarui Feb 28, 2025

ML Kit for Firebase menyediakan solusi ML siap pakai bagi developer aplikasi. Aplikasi baru harus menggunakan library ML Kit mandiri untuk ML di perangkat dan Firebase ML untuk ML berbasis cloud.

Diperbarui Feb 28, 2025