はじめに
2019年1月でサービス終了したGoogleウェブサイト翻訳ツールとGoogle翻訳系について調べてみた。
Google翻訳とGoogleウェブサイト翻訳ツール
Googleウェブサイト翻訳ツールは、Google翻訳のウェブサイト上で使用できる、ウィザード付のツールバー生成機能で
ステップごとに設定していくと、HTMLタグとjavascriptが生成されて、既存のHTMLに組み込むだけで言語変換できるツールバーが生成されてました。
こちらのサービスが2019年1月で終了しました。Google翻訳は現在もサービス中です。
下記のツールバー
言語を選択すると下記の画面になります。
Google翻訳からだと下記から
上部のツールバーが違いますね・・
Googleウェブサイト翻訳ツールのタグ
<script type="text/javascript">
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'ja'}, 'google_translate_element');
}
</script>
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
TranslateElementのオプション
ウィザードでなくても手動でjavascriptかけば。。
pageLanguage | ja Webサイトの言語 |
includedLanguages | en,zh-CN 翻訳する言語 |
layout | 表示モード |
autoDisplay | true 翻訳バナーを自動的に表示するか |
multilanguagePage | trueコンテンツに複数の言語が含まれているか |
gaTrack | true Google Analytics連動 |
gaId | Google AnalyticsのID |
layout
google.translate.TranslateElement.InlineLayout.VERTICAL | 縦 |
google.translate.TranslateElement.InlineLayout.HORIZONTAL | 横 |
google.translate.TranslateElement.InlineLayout.SIMPLE | 言語プルダウンのみ |
google.translate.TranslateElement.FloatPosition.BOTTOM_RIGHT | 右下 |
google.translate.TranslateElement.FloatPosition.BOTTOM_LEFT | 左下 |
google.translate.TranslateElement.FloatPosition.TOP_LEFT | 右上 |
google.translate.TranslateElement.FloatPosition.TOP_RIGHT | 左上 |
実際には、現在もサービスとしては動作しています。ウィザードでタグ生成機能がサービスを停止しています。
ただ、これは、下記URLによると
https://developers.google.com/search/blog/2020/05/google-translates-website-translator?hl=ja
Google 翻訳のウェブサイト翻訳ツール - 非営利目的の使用に限り無料で提供します。
2020 年 5 月 19 日に COVID-19 の対応による措置の様です。
Google翻訳へ直接飛ばす方法
こちらは、別ウィンドウ表示になります。
https://translate.google.com/translate?sl=ja&tl=en&hl=ja&u=http://xxx.xxx.xxx
<a href="https://translate.google.com/translate?sl=ja&tl=en&hl=ja&u=https://www.omakase.net">英語版はこちら</a>
上記サンプル
別ウィンドウにしたくない場合は・・または下記のようにするとか
<select onchange="location.href=value;">
<option value="https://translate.google.com/translate?hl=en&sl=ja&tl=en&u=https://www.omakase.net/">English</option>
<option value="https://translate.google.com/translate?hl=zh-CN&sl=ja&tl=zh-CN&u=https://www.omakase.net/">中文(简体字)</option>
<option value="https://translate.google.com/translate?hl=zh-TW&sl=ja&tl=zh-TW&u=https://www.omakase.net/">中文(繁體字)</option>
</select>
上記サンプル
u | 翻訳したいURL |
sl | 翻訳元の言語 auto ja en |
tl | 翻訳後の言語 ja en |
hl | 翻訳インターフェイスの言語 ja en |
上記も公開されいる情報ではないので・・・
下記のURLを解析してみたいな・・
https://translate.google.co.jp/?hl=ja&sl=auto&tl=ja&op=websites
どちらにしても、いつ終わるかわからないので・・
Google Translation API
こちらは、現在、Google MAP同様有料になり、サービス名が
Google Cloud Translationとなっています。ややこしいですね。
Cloud Translation - Basic(v2)系は、以前と同様に使用できます。
V2だとhtmlファイルのような、タグ付きはできず、textだけになります。
V3ではベータ版では、mimeType: 'text/html'ができていましたが。ファイルで指定のみになりました。
Cloud Translation - Basic(v2)(Google Translation API)
最初の 500,000 文字 *(1 か月あたり) | 無料(毎月 $10 分のクレジットとして適用) |
500,001 文字~10 億文字 *(1 か月あたり) | $20/100 万文字 |
10 億文字超*(1 か月あたり) | 割引料金についてのご相談は、営業担当者にお問い合わせください。 |
Cloud Translation - Advanced(v3)
NMTのみでドキュメント翻訳は省いています。
毎月最初の 500,000 文字 無料 | 毎月 $10 分のクレジットとして適用) |
1 か月あたり500,000 文字超 | 100 万文字あたり $20* |
1 か月あたり 10 億文字以上 | 割引料金についてのご相談は、営業担当者にお問い合わせください。 |
注意)mimeType: 'text/html'を指定した場合、htmlのタグも文字数に含まれるそうです。
javascriptのサンプルがなく・・RESTの方を参考に・・
https://cloud.google.com/translate/docs/basic/translating-text?hl=ja
文字をクリックしたら、そこの部分だけ翻訳する感じ・・
Cloud Translation - Basic(v2)サンプル
こちらもhtmlコードはできないのでtextで・・
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Google Translation APIV2 サンプル</title>
<script src="https://code.jquery.com/jquery.min.js"></script>
<script>
var apiKey = "Googleで取得したキー";
$(document).ready(function () {
loadLanguages();
$("[id^='tran_']").click(function (e) {
var text = $(this).text();
var saveid = $(this);
if(text.length > 0) {
var langSource = $('#selsrclang').val();
var langTarget = $('#seltrglang').val();
var apiurl = "https://www.googleapis.com/language/translate/v2?key=" + apiKey + "&source=" + langSource + "&target=" + langTarget + "&q=";
$.ajax({
url: apiurl + encodeURIComponent(text),
dataType: 'jsonp',
async: false,
success: function (data) {
if(langSource === langTarget) {
saveid.text(text);
} else {
saveid.text(data.data.translations[0].translatedText);
}
}
});
}
});
});
function loadLanguages() {
var apiurl = "https://www.googleapis.com/language/translate/v2/languages?key=" + apiKey + "&target=ja";
$.ajax({
url: apiurl,
dataType: 'jsonp',
success: function (data) {
var languages = data.data.languages;
$.each(languages, function (index, language) {
$('#selsrclang').append('<option value="' + language.language + '">' + language.name + '</option>');
$('#seltrglang').append('<option value="' + language.language + '">' + language.name + '</option>');
});
$("select#selsrclang").val('ja');
$("select#seltrglang").val('en');
}
});
}
</script>
</head>
<body>
<select id="selsrclang" name="selsrclang" >
</select>
<select id="seltrglang" name="seltrglang" >
</select>
<div id="tran_lang1">日本語です</div>
<div id="tran_lang2">英語です</div>
<div id="tran_lang3">ドイツ語です</div>
<div id="tran_lang4">鉛筆です</div>
</body>
</html>
HTMLマークアップ要件
Cloud Translationのドキュメントをみていると・・・
HTMLマークアップ要件という文言が。。
該当のリンク
https://cloud.google.com/translate/markup?hl=ja
https://cloud.google.com/translate/attribution?hl=ja
翻訳されたものを使うには、ガイドラインに準拠することが義務付けられているらしい・・
Google 翻訳による翻訳結果を直接ユーザーに表示するときは、その都度適切なテキストやブランド要素を使用して、Google 翻訳による自動翻訳が表示されていることをユーザーに対して明確に示す必要があります。
Cloud Translation API を使用するアプリケーションは、アプリケーションの説明やヘルプ ドキュメントに、そのアプリケーション内での翻訳の提供に Google 翻訳が使用されていることを明記し、Cloud Translation サイトへのリンクを表示する必要があります。
翻訳結果が変更されることなく、検索エンジンのインデックスに登録可能なウェブページに表示される場合、HTML マークアップ リファレンスを使用して、翻訳されたテキストを機械翻訳されたコンテンツとして指定する必要があります。
汗...
最近のブラウザーは
下記のように英語サイトなど見た場合、下記がでます。
またブラウザーに翻訳ボタンもついてきてますし・・iphoneないけど・・
正しくhtmlにlangを指定しておけば。。
さいごに
ホームページ制作には、素直に・・翻訳サイトを作成したほうが良さそうですね
Google翻訳、Googleウェブサイト翻訳ツール、Cloud Translation にしろ、検索エンジンにはヒットできないので・・・