プログラミングeメモ

始まりは自分用メモから。

PHPで複数言語化をサクッとしてみるつもりだった。

time 2015/11/15

PHPで複数言語化をサクッとしてみるつもりだった。

sponsored link

Webアプリの多言語対応案件をやりました。

今回、フォームページの制作案件で複数言語(日本語、英語)対応の案件がありましたので、ちょっと記事にしてみようと思いました。

複数言語対応方法の考察

  1. gettextやフレームワークを利用した多言語化
  2. 言語分のファイルを作成
  3. Javascriptの翻訳APIを利用する
  4. 変数で文を保持して処理

1,のgettextを利用した多言語化について

色々とググってみて見たのですが、どうやらgettextを利用するためにはサーバ側の設定ファイルを編集する必要があるみたいでした。

今回の案件では、フォームのページのみを構築してもらいたいとの事でしたので、サーバ側でPHPが利用できるぐらいしか要件がわからなかった+制作したらその後はなるべく本件での作業は控えておきたいと思い見送らせて頂きました。

2,の言語分のファイルを作成について

コピーファイルをなるべく作りたくないと言うエゴから見送り

3,のJavascriptの翻訳APIを利用するについて

メールフォームなので確認メールとかの処理考えると使いづらいのでパス

4,の変数で文章を保持して処理

今回フォームのページのみの構築で、文章も多くないので変数で文章を保持する方法で切り替えていこうと思いました。

方針決定!実装方法を考察

さぁ、方針は「4,変数方式」に決定したのでここからは実装方法を考察!

言語切り替えの方法の考察

考え始めるまでもなくGETパラメータで判別と言う方法を取りましたw

http://hogehoge.hoge?l=ja

l=jaをl=enに変更することで英語に出来るようにしました。

(本案件のサイトが基本が英語だったため指定無しの場合は英語になるように構築)

無計画にとりあえず定数化

変数の定義方法の考察

さて、切り替え方法は実装したのでここから変数の定義方法を考察。

まずは変数に両方の言語を配列で入れようと考察

毎度連想配列を定義するのも面倒だし、表示させる時に連想配列のキーを打つのがめんどくさい・・・

変数に代入しつつ言語を確定させれるように関数を作った。

関数化すればとりあえずどんなムダの多いコードでも打つ文字数減るよね?w

if文使うよりも楽そうだったのでreturn時に言語を確定させました。

これで変数を定義する時に

こんな感じでやればもうそのまま変数が要求された言語に!!!

あ、ちょっと気になるのが混じっているのは気にしないでください。。。(あと変数名が物凄く安易で衝突しそうなのもw実際にこのままの変数名で構築しましたwww)

「ふりがな」どうするよ!!!

とりあえず、空にして放置w(その後ちゃんと処理してます。)

変数の定義は終わった。ちょっと厄介な事が。。。

実はフォームに日付と時間を記載する所があるのですが。

私、日本人ですのでグローバルな方法がわかりません!!!

希望日: 1月2日 希望時間: 10時25分

これ、どうしよw

Date: January 2  time: 10:25

こんな感じが理想なんだろうが、ぶっちゃけ月を文字表記に変える処理作るのとかめんどくさいw

結局

Date: 1(Month) 2(Day)  time: 10:25

となりました。

入力した人も管理者側もわかるだろうし、これで良いでしょう。

いやー、文化の違いって恐ろしいですね。

「ふりがな」の処理

フォームを構成する要素を一通り変数に格納してforeachで回して要素を出力しちゃおうと思っていたのですが、そのままだと「ふりがな」が出力されちゃいます。

でも、ダイジョーブ( ̄ー ̄)ニヤリ

変数に格納する時に英語の時は”(空)にしておいたのだ!

だから、ループで回している時に”(空)だったらその項目は飛ばすだけでOKw

最初に想定が漏れていて変数に格納していなかった文字がちょくちょく・・・

そう、計画性が足りないんです。

だからこういうことになっちゃいました。

っと、こんな感じで最初に作った関数setMultiLang()を使っちゃいました。

そもそも”set”ってなんだよw ”get”とかのほうが良いんだろうし、そもそもMultiって3つより多くないとダメなんじゃなかったっけか?w

こんな感じで無事作業完了。

っとまぁ何だかんだグダグダですが、こんな感じで作業しながら食ってます。

他に普段こんな風に多言語化しているよ!とかあったらコメント頂けると嬉しいっす!

sponsored link

down

コメントする




プロフィール

とみ

とみ

1985年生まれのおっさんです。 5年前ぐらいから色々とプログラミングの仕事したり工事(水道とかエアコンとか大工とか)したりして食ってます。 何か質問とか文句とかがあれば
tomi@e-archi.net
へ連絡いただければと思います!

最近のコメント

    

    sponsored link