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

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

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

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

PHP

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

Q&A

解決済

4回答

1988閲覧

PHPで多言語対応のホームページの作成の仕方について

leyd73d0

総合スコア13

Webサイト

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

PHP

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

0グッド

0クリップ

投稿2019/01/28 11:24

外国語⇔日本語のように言語を切り替えられるホームページをPHPで作成したいと思っています。
下記のHTMLを外国語で出力する場合、

html

1<html> 2 <body> 3 <p>りんご</p> 4 <p>みかん</p> 5 </body> 6</html>

下記のようにサーバーサイドで動的に「りんご」などに対応する
外国語を変数につめて、それをechoで出力するって方法になるのでしょうか?
これですと、文章の数だけ変数ができて見づらくならないか心配です。

php

1<?php 2$apple = "Apple"; 3$orange = "Orange"; 4?> 5<html> 6 <body> 7 <p><?php echo $apple; ?></p> 8 <p><?php echo $orange; ?></p> 9 </body> 10</html>

一般的には、こうするという方法があればお教えください。

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

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

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

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

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

guest

回答4

0

SEO 考えると、別ページとして構築するのが楽みたいですよ。
多地域、多言語のサイトの管理

Google では、ページの各言語のバージョンに異なる URL を使用することをおすすめします。Cookie やブラウザの設定を使用してページ上のコンテンツの言語を調整する方法はおすすめしません。

投稿2019/01/29 04:59

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

leyd73d0

2019/01/29 13:53

回答ありがとうございます。 SEO対策もできれば取り入れてみたいです。
guest

0

ベストアンサー

通常は単語だけにはならないと思います。
記事なりなんなり文章があり、データベースより取得してくることになります。
データベースに同じレコードに例えば英語カラムと日本語カラムを用意しておきそれぞれ文章を保存
言語指定をされたらそのデータを取得
という形になるのではないでしょうか。
記事以外の共通のテンプレート文言についても考え方は同じで、設定ファイルに配列で同じキーで持っておき、ディレクトリやファイル名で日本語か英語かを識別できるようにしておき、言語指定されたらそのファイルから画面に表示する情報を取得。

「一般的には」と仰いますが、全てが同じ作りとは限りません。要件次第です。
phpに限定せず「多言語対応の考え方」は調べて学んでおいてください。
フレームワークを利用するともう少し楽にできるかもしれませんが、いずれにしろ対応したい言語の分だけ文章なり設定を準備する必要があります。

投稿2019/01/28 11:52

m.ts10806

総合スコア80842

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

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

leyd73d0

2019/01/29 13:47

回答ありがとうございます。 対応する言語の分だけ文章なり設定を準備しておいて、そこから取得するんですね。 フレームワークを使ったやり方も見てみます。
guest

0

既に回答されていますが、
gettextなどに日本語と英語を準備しておいて切り替えるか、
Mysqlなどのデータベースに日本語・英語 それぞれ準備しておいて切り替える、になるかと思います。

ユーザーが文章を登録や変更できるか、できないかなどでも変わってくるかと思いますが、

ユーザーが文章を登録できる→データベースに保存必要

ユーザーが文章を登録できない→gettextなどのファイル、データベース、どっちでもOKになるかと思います。

参考記事
https://qiita.com/yotsak83/items/06a32e1ad6efa938be0a

投稿2019/01/29 03:36

編集2019/01/29 04:48
aoki_monpro

総合スコア45

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

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

leyd73d0

2019/01/29 13:59

回答ありがとうございます。 gettextについて調べてみます。
guest

0

多言語対応のあえて「一般的」ものを挙げると、gettext のメッセージカタログという手法が従来より使われてきました。
現在は必ずしもこれを使う必要は無いし、これ以外にも意識すべきことはあるのですが、とりあえず国際化対応の一端を知るという意味では有用だと思います。
PHP でも gettext は使えるので、勉強する気があれば使ってみてもよいかもしれません。

投稿2019/01/28 12:02

ssasaki

総合スコア1167

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

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

leyd73d0

2019/01/29 13:49

回答ありがとうございます。 gettextというのは知りませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問