質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

ポップアップ

一般的に、ポップアップは、ウィンドウやアプリケーションに上に浮かぶUIエレメントを指します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

1555閲覧

多言語(日・英)サイトでブラウザの言語が日本語以外の訪問者が日本語版に訪問された際、 英語版に誘導するための方法(ポップアップ等)をアドバイス下さい。

yosato

総合スコア1

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

ポップアップ

一般的に、ポップアップは、ウィンドウやアプリケーションに上に浮かぶUIエレメントを指します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/05/28 06:19

前提・実現したいこと

WordPressで多言語(日本語・英語)を「BOGO」というプラグインを導入して作成しています。
ブラウザの言語が日本語(ja)以外の訪問者が日本語版に訪問された際、
英語版に誘導するためのポップアップ or 何らかの表示をして、
英語版に誘導したいと考えていますが、参考になる情報が探しだせず困っています。
上記を実現するためのプラグインやコード等、アドバイスいただけますと幸いです。

参考サイト

(日本語環境からアクセスすると上部に「お住まいの場所に合ったコンテンツを表示させ、オンラインで購入できるようにするには、国または地域を選んでください。」と言語スイッチャーが現れる)

(日本語環境からアクセスすると「You are on amazon.com. You can also shop on Amazon Japan for millions of products with fast local delivery. Click here to go to amazon.co.jp」と誘導の案内が表示される)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/05/28 07:22

自動で対象言語に切り替えるのではダメですかね
yosato

2020/05/28 07:28 編集

返信ありがとうございます。 できればリダイレクトをしない方法を探しています。 また、可能であればPHPで実現したいと思っています。
m.ts10806

2020/05/28 07:57

リダイレクトはしなくても良いかと。同じURLで出す内容を切り替えます。 ※WordPressで実現可能なプラグインがあるかは知らないですが、データがあるなら幾つもURLなくていいんじゃないかなあと PHP組めるならそれこそ如何様にもできるとは思いますけど
guest

回答3

0

ベストアンサー

ブラウザでユーザーが指定している言語は一応JavaScriptでわかるようです。英語版かどうかの情報はページ中のどこかかURLにあると思われるので、それとつき合わせて判断すれば良いと思います。

【JavaScript - JavaScriptでブラウザ言語を取得したい|teratail】
https://teratail.com/questions/188080

投稿2020/05/28 12:08

kei344

総合スコア69400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yosato

2020/05/29 04:52

回答ありがとうございます!JavaScriptでおおむね解決できました! 参考にさせていただきました。ありがとうございました。
guest

0

サーバーエラーで重複して投稿されたので削除しました。

投稿2020/05/29 04:56

編集2020/05/29 05:59
yosato

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

回答いただきましてありがとうございます!
教えていただいた方法と、こちらを参考に、以下のように対応して
JavaScriptとCSSで日本語と、それ以外(=en)を振り分け、メッセージの表示/非表示で実現できました。

JavaScript

<script> window.onload = function() { var language; if (navigator.browserLanguage != null) { // Internet Explorer, Opera, 他 language = navigator.browserLanguage.substr(0, 2) == "ja" ? "ja" : "en"; } else if(navigator.userLanguage != null) { // Internet Explorerの場合 language = navigator.userLanguage.substr(0, 2) == "ja" ? "ja" : "en"; } else if(navigator.language != null) { // Chrome, Firefox, Opera, 他 language = navigator.language.substr(0, 2) == "ja" ? "ja" : "en"; } else { // その他 language = "en"; } setLanguage(language); } function setLanguage(language){ var element = document.getElementsByClassName("displaybylanguage"); for (var i = 0; i < element.length; i++) { if(element[i].getAttribute("lang") == language){ element[i].style.display = "block"; } else{ element[i].style.display = "none"; } } } </script>

CSS

.displaybylanguage { display: none; }
  • 表示する必要のない日本語環境でのローディング時のチラ見せ防止対策

HTML

<div class="displaybylanguage" lang="en"> ブラウザの言語が日本語以外の時にこのメッセージを表示する </div>
  • HTML文はHeader内のウィジェットに入れ、BOGOプラグインにより日本語ページのみに表示されるよう設定しました。

希望はPHPでしたが苦手なのと納期が迫っているためJavaScriptで妥協しましたが、
思ったよりいい仕上がりでした。
私のリサーチ不足をお詫びいたします。
回答頂きましてありがとうございました!

投稿2020/05/29 04:52

編集2020/05/29 06:01
yosato

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問