読み込み中...

初心者でもできる!PHPによる翻訳機能の作り方10選

PHPで翻訳機能を作る方法を示すイメージ PHP
この記事は約14分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読むことで、PHPを使った翻訳機能の作り方について学べます。

プログラミング経験が無い初心者の方でも理解しやすいように、基本的なPHPの知識から始め、翻訳機能の作成までを一貫して解説しています。

そして、具体的なサンプルコードとそれを使った応用例を通じて、実際のコードを書く際のヒントとなる情報も提供します。

●PHPとは

PHPは、Webサイトのバックエンド開発に広く使用されるプログラミング言語の一つです。

HTML内に直接埋め込むことが可能で、動的なWebページを生成するのに最適です。

また、シンプルな構文と豊富なライブラリにより、初心者でも扱いやすい言語として知られています。

○PHPの基本

PHPはスクリプト言語の一つで、Webサーバ上で実行され、HTMLを動的に生成することができます。

変数は”$”記号を前につけて宣言し、”.”を使って文字列を連結することができます。

また、関数も自由に定義し、呼び出すことが可能です。

●PHPによる翻訳機能の作り方

PHPによる翻訳機能を作るには、APIを利用するのが一般的です。

APIとは、プログラムが他のプログラムと通信するためのインターフェースのことを指します。

翻訳APIを使用すれば、任意の言語から別の言語への翻訳を手軽に実装することができます。

○サンプルコード1:Hello World

まずは、PHPの基本的なコードを書いてみましょう。

次のコードは、「Hello, World!」と表示するものです。

<?php
echo "Hello, World!";
?>

このコードでは「echo」を使って文字列を出力しています。

この例では「Hello, World!」という文字列を出力しています。

○サンプルコード2:変数と配列

次に、変数と配列の基本的な使い方について見てみましょう。

次のコードは、変数と配列を使って複数の言葉を表示するものです。

<?php
$greetings = ["Hello", "Bonjour", "Hola"];
foreach ($greetings as $greeting) {
    echo $greeting . ", World!\n";
}
?>

このコードでは配列を使って複数の挨拶を格納し、それらを一つずつ出力しています。

この例では”Hello”, “Bonjour”, “Hola”という3つの挨拶をそれぞれ”, World!”と連結して出力しています。

○サンプルコード3:関数の定義と呼び出し

次に、関数の定義と呼び出しについて学んでいきましょう。

次のコードは、挨拶を表示する関数を定義し、それを呼び出しています。

<?php
function greet($greeting) {
    echo $greeting . ", World!\n";
}

greet("Hello");
greet("Bonjour");
greet("Hola");
?>

このコードでは「greet」という関数を定義し、その関数を呼び出しています。

この例では引数に”Hello”, “Bonjour”, “Hola”をそれぞれ渡して挨拶を出力しています。

○サンプルコード4:APIの利用

APIの利用方法について学びましょう。

次のコードは、外部のAPIを利用してデータを取得するものです。

<?php
$url = "https://api.example.com/data";
$json = file_get_contents($url);
$data = json_decode($json);
var_dump($data);
?>

このコードでは「file_get_contents」を使ってURLからデータを取得し、「json_decode」を用いてJSON形式のデータを配列に変換しています。

この例ではhttps://api.example.com/dataからデータを取得し、その内容を表示しています。

●PHPによる翻訳機能の応用例

それでは、これまでに学んだ知識を活かして、PHPによる翻訳機能の応用例を見てみましょう。

具体的なサンプルコードとその解説を通じて、自身で翻訳機能を作成する際の参考にしてください。

○サンプルコード5:Google翻訳APIの利用

まずは、Googleの翻訳APIを使ってテキストを翻訳する方法を見てみましょう。

次のコードは、Google翻訳APIを使って英語のテキストをフランス語に翻訳するものです。

<?php
$url = "https://translation.googleapis.com/language/translate/v2";
$params = [
    'q' => 'Hello, World!',
    'source' => 'en',
    'target' => 'fr',
    'key' => 'YOUR_API_KEY',
];
$url .= '?' . http_build_query($params);
$json = file_get_contents($url);
$data = json_decode($json, true);
echo $data['data']['translations'][0]['translatedText'];
?>

このコードではGoogle翻訳APIを使って英語のテキストをフランス語に翻訳しています。

この例では”Hello, World!”という英語のテキストをフランス語に翻訳し、その翻訳結果を表示しています。

○サンプルコード6:ユーザー入力の翻訳

次に、ユーザーからの入力を翻訳する方法を見てみましょう。

次のコードは、ユーザーからの入力を受け取り、それをGoogle翻訳APIを使ってフランス語に翻訳するものです。

<?php
$text = $_POST['text'];
$url = "https://translation.googleapis.com/language/translate/v2";
$params = [
    'q' => $text,
    'source' => 'en',
    'target' => 'fr',
    'key' => 'YOUR_API_KEY',
];
$url .= '?' . http_build_query($params);
$json = file_get_contents($url);
$data = json_decode($json, true);
echo $data['data']['translations'][0]['translatedText'];
?>

このコードではユーザーからの入力を受け取り、それをGoogle翻訳APIを使ってフランス語に翻訳しています。

この例ではPOSTリクエストからテキストを取得し、それをフランス語に翻訳し、その翻訳結果を表示しています。

○サンプルコード7:複数言語対応

さて、次に複数の言語へ対応する翻訳機能を作成してみましょう。

次のコードは、英語のテキストを指定した言語に翻訳するものです。

<?php
$text = "Hello, World!";
$target_languages = ["fr", "de", "es", "it", "ja"];

$url_base = "https://translation.googleapis.com/language/translate/v2";
$params_base = [
    'q' => $text,
    'source' => 'en',
    'key' => 'YOUR_API_KEY',
];

foreach($target_languages as $lang) {
    $params = $params_base;
    $params['target'] = $lang;
    $url = $url_base . '?' . http_build_query($params);
    $json = file_get_contents($url);
    $data = json_decode($json, true);
    echo $data['data']['translations'][0]['translatedText'] . "\n";
}
?>

このコードでは”Hello, World!”という英語のテキストをフランス語、ドイツ語、スペイン語、イタリア語、そして日本語に翻訳しています。

この例では各言語の翻訳結果をそれぞれ出力しています。

○サンプルコード8:翻訳結果の保存

さらに進んで、翻訳結果を保存する方法について見てみましょう。

次のコードは、翻訳結果をテキストファイルに保存するものです。

<?php
$text = "Hello, World!";
$target_languages = ["fr", "de", "es", "it", "ja"];

$url_base = "https://translation.googleapis.com/language/translate/v2";
$params_base = [
    'q' => $text,
    'source' => 'en',
    'key' => 'YOUR_API_KEY',
];

foreach($target_languages as $lang) {
    $params = $params_base;
    $params['target'] = $lang;
    $url = $url_base . '?' . http_build_query($params);
    $json = file_get_contents($url);
    $data = json_decode($json, true);
    $translation = $data['data']['translations'][0]['translatedText'];

    file_put_contents($lang . ".txt", $translation);
}
?>

このコードではGoogle翻訳APIを用いて複数の言語に翻訳し、その結果をテキストファイルに保存しています。

この例では各言語の翻訳結果をそれぞれの言語名をファイル名としたテキストファイルに書き込んでいます。

○サンプルコード9:動的な翻訳

よりユーザーフレンドリーな翻訳機能を実装するため、動的な翻訳機能を構築してみましょう。

次のコードはユーザーが入力したテキストをリアルタイムに翻訳するものです。

<?php
if ($_POST) {
    $text = $_POST['text'];
    $lang = $_POST['lang'];

    $url_base = "https://translation.googleapis.com/language/translate/v2";
    $params = [
        'q' => $text,
        'source' => 'en',
        'target' => $lang,
        'key' => 'YOUR_API_KEY',
    ];
    $url = $url_base . '?' . http_build_query($params);
    $json = file_get_contents($url);
    $data = json_decode($json, true);
    $translation = $data['data']['translations'][0]['translatedText'];

    echo "Translation: " . $translation;
} else {
    ?>
    <form method="post">
        <input type="text" name="text" placeholder="Enter text...">
        <select name="lang">
            <option value="fr">French</option>
            <option value="de">German</option>
            <option value="es">Spanish</option>
            <option value="it">Italian</option>
            <option value="ja">Japanese</option>
        </select>
        <input type="submit" value="Translate">
    </form>
    <?php
}
?>

このコードではユーザーが入力したテキストと選択した言語に基づいて翻訳を行っています。

この例ではユーザーがテキスト入力と言語選択を行うことで、その場で翻訳結果が表示されます。

○サンプルコード10:翻訳結果の表示カスタマイズ

最後に、翻訳結果の表示方法をカスタマイズする方法について見てみましょう。

次のコードは翻訳結果をHTMLで整形して表示するものです。

<?php
$text = "Hello, World!";
$lang = "ja";

$url_base = "https://translation.googleapis.com/language/translate/v2";
$params = [
    'q' => $text,
    'source' => 'en',
    'target' => $lang,
    'key' => 'YOUR_API_KEY',
];
$url = $url_base . '?' . http_build_query($params);
$json = file_get_contents($url);
$data = json_decode($json, true);
$translation = $data['data']['translations'][0]['translatedText'];

echo "<h1>Translation</h1>";
echo "<p><strong>Original text:</strong> " . htmlspecialchars($text) . "</p>";
echo "<p><strong>Translated text:</strong> " . htmlspecialchars($translation) . "</p>";
?>

このコードでは翻訳結果をHTMLで整形して表示しています。

この例では元のテキストと翻訳後のテキストをそれぞれ表示し、見やすく整形しています。

●注意点と対処法

PHPによる翻訳機能の実装には、いくつかの注意点があります。

まず、無料のAPIを使用する場合、翻訳回数には制限があります。

大量のテキストを翻訳する場合や、大量のユーザーが同時に翻訳を要求する可能性がある場合、制限に達してしまうと翻訳ができなくなってしまいます。

このような場合は有料のプランにアップグレードするか、別の翻訳サービスを併用することを検討してみてください。

また、APIを使った翻訳の正確性は完全ではありません。

特に専門的な用語やスラング、方言などは適切に翻訳できないことがあります。

そのため、翻訳結果をそのまま信頼するのではなく、可能な場合は人間によるチェックを行うことをおすすめします。

最後に、翻訳APIはインターネット接続が必要です。

ネットワーク接続が不安定な環境では、翻訳がうまく機能しない可能性があります。

この問題を解決するためには、オフラインで動作する翻訳ライブラリを使用することを検討してみてください。

●カスタマイズ方法

基本的な翻訳機能を実装したら、次はそれをカスタマイズしてみましょう。

例えば、ユーザーが好みの言語を選択できるようにする、翻訳結果をデータベースに保存して後から参照できるようにする、複数の翻訳サービスを併用して結果を比較する、などが考えられます。

また、翻訳結果を表示する方法もカスタマイズできます。

例えば、色やフォント、背景などを変更して見やすくする、翻訳結果を音声で出力する、翻訳結果をメールで送信する、などの機能を追加することが可能です。

まとめ

以上がPHPによる翻訳機能の作り方と応用例についての説明です。

基本的なコードから応用的なコードまで、一通りの実装方法を解説しました。

これを参考にして、自分だけのオリジナルな翻訳機能を作成してみてください。

ただし、翻訳は複雑な技術であり、完璧な翻訳を実現することは難しいです。

APIを使った翻訳も便利ですが、その限界を理解し、適切な利用方法を考えることが重要です。

これからも技術の進歩に合わせて、より良い翻訳システムを追求していきましょう。