グーグル翻訳のウィジェットの導入手順とjavascriptをasyncで動かしてみた。
このブログは、日本だけでなく色んな国々からアクセスが増えてきたのでグーグル翻訳のウィジェットを導入してみました。
追加したところ、GoogleのPageSpeed Insightsでページの速度を確認してみたら、今回追加したJavascriptが読み込まれないことを理由に少し速度が遅くなっていると指摘されました。
今回はウィジェットの導入手順とスクリプトを非同期にして動作検証をしてみました。
導入手順
- 無料のウェブサイト翻訳ツールプラグインが入手できるサイトにアクセスし「今すぐウェブサイトに追加」
- 自分のサイトのURLを入力し、現在の主要言語を選択
- 翻訳する言語を「すべての言語」または「言語を指定」
- 表示モードはインラインで「縦」、「横」、「プルダウン リストのみ」を選択
- 詳細設定はお好みで
- 最後に取得したコードをページに追加します
因みに私は特定の言語をいくつか指定しました。選択基準はGoogle Analyticsでアクセス数が高い国の言語順に追加しました。
すべての言語にしてしまうと、表示言語が多すぎる為、選ぶ時煩わしいです。 表示はプルダウンリストが見やすいかなと思いました。
HTMLに追加
まずjavascriptファイル(以下例ではgoogletranslate.jsという名前にしました)を用意し、その中に取得したコードをコピペします。
googletranslate.jsの中身は以下の通りです。下記のはサンプルなので、翻訳ツールが出力されたスクリプトを使用します。
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'ja', includedLanguages: 'en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE, gaTrack: true, gaId: 'UA-XXXXXXXX-X'}, 'google_translate_element');
}
asyncを追加
次に、サイトのページに先ほど作成したスクリプトファイルをheadタグ内に入れ、element.jsのスクリプト呼び出し部分も追加します。
下記の例ではgoogletranslate.jsとelement.jsを追加して、両方にasync="async"という文字列を加えています。 こうすることでスクリプトが非同期に読み込まれます。
<html>
<head>
<script type="text/javascript" src="googletranslate.js" async="async"></script>
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit" async="async"></script>
</head>
<body>
<div id="google_translate_element"></div>
</body>
</html>
非同期による不具合
非同期にしたことで特に不具合を感じていませんが、スクリプトが完全に読み込まれないと翻訳機能が正しく動作しない可能性も考えられるので、もし心配な方はasyncを追加しない方が良いかもしれません。
Google PageSpeed Insightsの結果でこのサイトのページを確認したところ、問題となっていたスクリプトの速度が改善されたというレポートを確認できたので、個人的には満足してます。
google翻訳ツールバーを消す方法はCSSで
グーグル翻訳ウィジェットを追加するとページ上部にツールバーが自動的に表示されます。 調べたらこれをCSSで消す方法があったので、その方法を下記に紹介します。
具体的な方法はこちらに書いてあります。
方法はとても簡単で、以下の文をCSSファイルに追加するだけ。これでツールバーが消えます。
.goog-te-banner-frame.skiptranslate {display: none !important;}
body { top: 0px !important; }