ホームページに多言語プルダウンを設置する方法【Google翻訳活用】

自作ホームページを多言語対応させたいときに便利なのが Google翻訳の埋め込み機能です。今回は 記事ファイルを書き換えずに、ヘッダー直下にプルダウン式の言語切替を設置する方法を紹介します。

完成イメージ
- 上に濃紺ヘッダー(高さ40px固定)
- その直下にグレーの言語バー(高さ30px)
- 右端にプルダウンが常時表示され、クリックで翻訳が切り替わる
注意: この方法は表示用(クライアント翻訳)なので、翻訳後のHTMLはSEOに反映されません。閲覧者向けの翻訳支援として使う想定です。
1. PHPで言語選択をCookieに保存
<?php
if (isset($_GET['translate'])) {
$to = preg_replace('/[^a-zA-Z\-]/', '', $_GET['translate']);
if ($to) {
setcookie('googtrans', '/ja/' . $to, time() + 365*24*60*60, '/');
}
$url = strtok($_SERVER['REQUEST_URI'], '?');
header("Location: $url", true, 302);
exit;
}
?>
2. Google翻訳ウィジェットを読み込む
<style>
.goog-te-banner-frame.skiptranslate{display:none!important}
body{top:0!important}
#google_translate_element{display:none}
</style>
<script>
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: 'ja',
includedLanguages: 'en,mn,zh-CN,ko,fr,de,es,vi,th,ru',
autoDisplay: false
}, 'google_translate_element');
const m = document.cookie.match(/(?:^|;\s*)googtrans=([^;]+)/);
if (m && m[1]) {
const to = decodeURIComponent(m[1]).split('/').pop();
setTimeout(() => {
const sel = document.querySelector('#google_translate_element select');
if (sel && to) {
sel.value = to;
sel.dispatchEvent(new Event('change'));
}
}, 600);
}
}
</script>
<script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
<div id="google_translate_element"></div>
3. ヘッダー直下に言語バーを設置
<!-- 言語切替バー -->
<div class="lang-bar">
<div class="lang-switch">
<label for="lang-select">🌐</label>
<select id="lang-select" onchange="if(this.value) location.search='?translate='+this.value;">
<option value="">選択してください</option>
<option value="ja">日本語</option>
<option value="en">English</option>
<option value="mn">Монгол</option>
<option value="zh-CN">中文</option>
<option value="ko">한국어</option>
</select>
</div>
</div>
4. CSSでデザイン調整
/* 言語切替バー */
.lang-bar {
position: fixed;
top: 40px; /* ヘッダーの下 */
left: 0;
right: 0;
height: 30px;
background: #f0f0f0;
display: flex;
align-items: center;
justify-content: flex-end;
padding: 0 20px;
border-bottom: 1px solid #ddd;
z-index: 1001;
}
.lang-switch {
display: flex;
align-items: center;
gap: .4rem;
font-size: 14px;
}
.lang-switch select {
padding: 2px 6px;
font-size: 13px;
border: 1px solid #ccc;
border-radius: 4px;
background: #fff;
cursor: pointer;
}
main {
padding-top: 70px !important;
}
ポイント
- 記事ファイルは一切変更不要
- Google翻訳を使って簡単に多言語表示が可能
- SEO対策には向かないため、閲覧者向けの翻訳支援に最適
これで、ヘッダー直下に言語プルダウンが常時表示され、どの記事でもワンクリックで翻訳して閲覧できるようになります。

キーワード
多言語対応, Google翻訳, ホームページ, 言語切替, プルダウンメニュー, PHP, Cookie保存, ウィジェット, SEO, ウェブ制作
コメントを投稿する
コメント一覧
まだコメントはありません。