Rumah  >  Artikel  >  Java  >  Gunakan Java Baidu Translation API untuk mencapai terjemahan yang pantas dan tepat antara berbilang bahasa

Gunakan Java Baidu Translation API untuk mencapai terjemahan yang pantas dan tepat antara berbilang bahasa

PHPz
PHPzasal
2023-08-06 09:34:45837semak imbas

Gunakan API Terjemahan Java Baidu untuk mencapai terjemahan yang pantas dan tepat antara pelbagai bahasa

Dengan perkembangan globalisasi yang semakin pantas, komunikasi antara manusia menjadi semakin kerap. Walau bagaimanapun, komunikasi antara bahasa yang berbeza kekal sebagai halangan besar. Untuk menyelesaikan masalah ini, teknologi terjemahan telah digunakan secara meluas. Dalam teknologi terjemahan, terjemahan mesin juga telah berkembang menjadi kaedah biasa.

Baidu Translation ialah salah satu perkhidmatan terjemahan dalam talian yang digunakan secara meluas di China. Dengan menggunakan API Terjemahan Baidu, kami boleh mencapai terjemahan yang pantas dan tepat antara pelbagai bahasa dalam program Java dengan mudah. Artikel ini akan memperkenalkan secara terperinci cara menggunakan API Terjemahan Java Baidu untuk terjemahan dan memberikan contoh kod yang berkaitan.

Pertama, kami perlu memohon akaun pembangun pada platform terjemahan Baidu dan membuat aplikasi. Apabila membuat aplikasi, kami akan memperoleh Kunci API dan Kunci Rahsia, yang akan digunakan untuk membenarkan akses API.

Seterusnya, kami menggunakan Java untuk pengaturcaraan. Pertama, kita perlu mengimport fail perpustakaan yang diperlukan. Dalam contoh ini, kami menggunakan Apache HttpClient untuk menghantar permintaan HTTP dan Json-lib untuk menghuraikan data JSON yang dikembalikan. Oleh itu, kita perlu menambah kebergantungan yang berkaitan dalam fail binaan projek.

import net.sf.json.JSONObject;
import net.sf.json.JSONArray;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import java.util.ArrayList;
import java.util.List;

Seterusnya, kami mentakrifkan kelas Terjemah, yang mengandungi dua kaedah:

public class Translate {
    // 百度翻译API地址
    private static final String TRANSLATE_API_URL = "http://api.fanyi.baidu.com/api/trans/vip/translate";
    // 百度翻译API密钥
    private static final String API_KEY = "YOUR_API_KEY";
    // 百度翻译API密钥
    private static final String SECRET_KEY = "YOUR_SECRET_KEY";

    /**
     * 将文本从指定语言翻译为目标语言
     *
     * @param text         待翻译文本
     * @param sourceLang   源语言
     * @param targetLang   目标语言
     * @return 翻译结果
     */
    public static String translate(String text, String sourceLang, String targetLang) {
        try {
            HttpClient httpClient = HttpClients.createDefault();

            // 构建请求参数
            List<NameValuePair> params = new ArrayList<>();
            params.add(new BasicNameValuePair("q", text));
            params.add(new BasicNameValuePair("from", sourceLang));
            params.add(new BasicNameValuePair("to", targetLang));
            params.add(new BasicNameValuePair("appid", API_KEY));
            params.add(new BasicNameValuePair("salt", String.valueOf(System.currentTimeMillis())));
            params.add(new BasicNameValuePair("sign", getSign(text)));

            HttpEntity entity = new UrlEncodedFormEntity(params, "UTF-8");

            // 发送POST请求
            HttpPost httpPost = new HttpPost(TRANSLATE_API_URL);
            httpPost.setEntity(entity);
            HttpResponse response = httpClient.execute(httpPost);

            // 解析返回的JSON数据
            String jsonString = EntityUtils.toString(response.getEntity(), "UTF-8");
            JSONObject jsonObject = JSONObject.fromObject(jsonString);
            JSONArray transArray = jsonObject.getJSONArray("trans_result");
            JSONObject transObj = transArray.getJSONObject(0);
            String translation = transObj.getString("dst");

            return translation;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 生成签名
     *
     * @param text 待翻译文本
     * @return 签名
     */
    private static String getSign(String text) {
        String sign = API_KEY + text + String.valueOf(System.currentTimeMillis()) + SECRET_KEY;
        return MD5.encode(sign);
    }
}

Dalam kod di atas, kaedah terjemah menerima tiga parameter: teks yang akan diterjemahkan, bahasa sumber dan bahasa sasaran. Ia mula-mula menghantar permintaan POST ke API Terjemahan Baidu melalui HttpClient, kemudian menghuraikan data JSON yang dikembalikan, dan akhirnya mengembalikan hasil terjemahan.

Kaedah getSign digunakan untuk menjana tandatangan, yang menggabungkan Kunci API, teks yang akan diterjemahkan, cap masa semasa dan Kunci Rahsia, dan kemudian menyulitkannya menggunakan algoritma penyulitan MD5.

Menggunakan kelas Terjemah yang disebutkan di atas, kami boleh menterjemah dengan mudah. Berikut ialah contoh penggunaan:

public class Main {
    public static void main(String[] args) {
        String text = "Hello world!";
        String sourceLang = "en";
        String targetLang = "zh";

        String translation = Translate.translate(text, sourceLang, targetLang);
        System.out.println("翻译结果:" + translation);
    }
}

Dengan menjalankan kod di atas, kita boleh menterjemah bahasa Inggeris "Hello world ke dalam bahasa Cina dan mengeluarkannya pada konsol. Sudah tentu, anda juga boleh melaraskannya mengikut keperluan anda sendiri untuk mencapai fungsi terjemahan yang lebih kompleks.

Ringkasnya, menggunakan Java Baidu Translation API boleh dengan cepat dan tepat mencapai terjemahan antara berbilang bahasa. Melalui contoh kod di atas, kita dapat melihat bahawa menggunakan API Terjemahan Baidu boleh dengan mudah melaksanakan fungsi terjemahan dalam program Java. Saya harap artikel ini dapat membantu anda memahami dan menggunakan API Terjemahan Baidu!

Atas ialah kandungan terperinci Gunakan Java Baidu Translation API untuk mencapai terjemahan yang pantas dan tepat antara berbilang bahasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn