質問するログイン新規登録

回答編集履歴

1

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

2020/05/29 05:59

投稿

yosato
yosato

スコア1

answer CHANGED
@@ -1,58 +1,1 @@
1
- 回答いただきましてありがとうございます!
2
- 教えていただいた方法と、[こちら](https://easyramble.com/get-language-setting-by-javascript.html)を参考に、以下のように対応して
3
- JavaScriptとCSSで日本語と、それ以外(=en)を振り分け、メッセージの表示/非表示で実現できました。
4
-
5
- JavaScript
6
- ---
7
- ```ここに言語を入力
8
- window.onload = function() {
9
- var language;
10
-
11
- if (navigator.browserLanguage != null) {
12
- // Internet Explorer, Opera, 他
13
- language = navigator.browserLanguage.substr(0, 2) == "ja" ? "ja" : "en";
14
- } else if(navigator.userLanguage != null) {
15
- // Internet Explorerの場合
16
- language = navigator.userLanguage.substr(0, 2) == "ja" ? "ja" : "en";
17
- } else if(navigator.language != null) {
18
- // Chrome, Firefox, Opera, 他
19
- language = navigator.language.substr(0, 2) == "ja" ? "ja" : "en";
20
- } else {
21
- // その他
22
- language = "en";
23
- }
24
-
25
- setLanguage(language);
26
- }
27
-
28
- function setLanguage(language){
29
- var element = document.getElementsByClassName("displaybylanguage");
30
- for (var i = 0; i < element.length; i++) {
31
- if(element[i].getAttribute("lang") == language){
32
- element[i].style.display = "block";
33
- }
34
- else{
35
- element[i].style.display = "none";
36
- }
37
- }
38
- }
39
- ```
40
- CSS
41
- ---
42
- ```ここに言語を入力
43
- .displaybylanguage {
44
- display: none;
45
- }
46
- ```
47
- - 表示する必要のない日本語環境でのローディング時のチラ見せ防止対策
48
- HTML
49
- ---
50
- ```ここに言語を入力
51
- <div class="displaybylanguage" lang="en">
52
- ブラウザの言語が日本語以外の時にこのメッセージを表示する
53
- </div>
54
- ```
55
- 希望はPHPでしたが苦手なのと納期が迫っているためJavaScriptで妥協しましたが、
56
- 思ったよりいい仕上がりでした。
57
- 私のリサーチ不足をお詫びいたします。
58
- 回答頂きましてありがとうございました
1
+ サーバーエラーで重複して投稿されたので削除しました