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

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

新規登録して質問してみよう
ただいま回答率
85.30%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

2045閲覧

多言語対応する際のサイトの組み方

Raiden

総合スコア22

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/05/28 01:50

編集2019/05/28 02:02

多言語対応のページをつくっています。
日本語と英語です。

各ページ内でENGLISHとJAPANESEの言語切替ボタンをクリックすると文字と一部の画像がその言語用に切り替わるページを作りました。
(glottologist.jsというJSプラグインを使い、言語変更するとJSONファイルに記述した日本語と英語の文章を使ってHTMLの文章をその言語へと表示を切り替えるものです。)

しかし、調べてみるとSEO的には言語ごとにURLを変更する必要があるようです。

今のサイトの都合上、サブドメインではなく

○△○△.com(日本語) ○△○△.com/en(英語)

のようなURLにしようと思っています。

この場合、ディレクトリ/enにほぼ同じファイルを置いて、
日本語のページで言語切替ボタンを押すと/enの同じページに飛ばし、言語変更処理をさせれば良いのでしょうか?
例えばHTMLやCSSでデザインをいじる度にほぼ同じものを/enに配置するのはスマートではないので、何か効率の良い方法があると思うのですが、この場合どうすれ良いでしょうか?

(検索をして、URLを分けるとか、<link re="altrenate" hreflang="x">アノテーションをつける等の解説は出てきたのですが、自分のケースの場合に実際にどのように組むのか調べても見つけられませんでした)

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

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

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

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

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

maisumakun

2019/05/28 01:52

タグが「JavaScript」「HTML」「CSS」となっていますが、今のサイト構造は「HTMLファイルを作って置く」というもので間違いないでしょうか。
m.ts10806

2019/05/28 01:52

テキストが埋め込まれた画像なども言語毎に準備しているということでしょうか? それとも同じですか?
Raiden

2019/05/28 01:57

>間違いないでしょうか。 間違いないです。消しときますね。 >同じですか? 画像は同じです。 多言語対応する文字はすべてテキストにしました。
m.ts10806

2019/05/28 01:59

sample.comは実在のサイトなので例示ドメイン(example.comなど)をご利用ください。
guest

回答1

2

ベストアンサー

私であればサーバーサイドの言語のフレームワークを利用します。
例えばPHPのフレームワークLaravelなど。
言語毎に言語用メッセージファイルですとか、データベースにテキスト情報を持つのは必須です。

URLによって言語モードを切り替え、言語ファイルやデータを取得して表示する形です。
これでしたら画面用のHTMLコードですら1つで済みます。
※もちろんPHPやLaravelを覚える必要はありますが。

投稿2019/05/28 02:01

m.ts10806

総合スコア80888

miyabi_pudding, yasutomi👍を押しています

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

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

Raiden

2019/05/28 02:16

>URLによって言語モードを切り替え、言語ファイルやデータを取得して表示する形です。 なるほど、URLから判別して切り替えるのですね。 ちなみにその方法だと、/enディレクトリにHTMLファイルを配置もしなくて良いのでしょうか?
m.ts10806

2019/05/28 02:20 編集

フレームワークのルーティングとはそういうものです。 URLによって呼び出す機能を決定して読むこむようにします。 プログラムの実体は(CSSやJS、画像などを除いて)ブラウザからアクセスできる場所には置きません。 例を言うとteratailですね。 利用しているフレームワークは私が提示したLaravelではないですが、この質問のURL /questions/191719 実際にquestionsというディレクトリは存在しませんしもちろん191719という名前のディレクトリも存在しません。 questionsという機能からID:191719の情報を取得するようにPHPから指示して取得した情報をテンプレートファイルに書き込んでいるだけです。
Raiden

2019/06/03 14:57

ご教示いただき,ありがとうございます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問