QA@IT

mysqlのlang_textのテーブルに格納されている内容を変更したいが、指定の仕方が分からない。

2586 PV

lang_textのテーブルに格納されている英語の文章をそれぞれ変更したいのですが、それぞれをどう指定して変更すればいいかわかりません。
どうぞ宜しくお願い致します。

__________2015-12-31_16.23.03.png

回答

見たところ、メッセージの内容はCakePHPのコンソールコマンド(cakeコマンド)が出力するメッセージのようです。

僕はCakePHPには詳しくないんですが、マニュアルを見ると、メッセージの日本語化はcakeコマンドでpoファイルを生成して行なえばよさそうです。

国際化と地域化
http://book.cakephp.org/2.0/ja/core-libraries/internationalization-and-localization.html

I18N シェル
http://book.cakephp.org/2.0/ja/console-and-shells/i18n-shell.html

あとメッセージの日本語化とは別の話になりますが、国際化(I18N)と地域化(L10N)の全体像をつかむために下記も読んだほうがよいと思います。

Translateビヘイビア
http://book.cakephp.org/2.0/ja/core-libraries/behaviors/translate.html

しかし貼られた画面キャプチャを見ると、翻訳が必要なメッセージをデータベース内のテーブルtranslationsに格納しているようです。これはマニュアルに載っている標準的なやり方とは異なるものだと思うのですが、たぶんアプリケーションが独自にそうしているんじゃないかと思います。

例えば下記のプラグインでも翻訳用メッセージをpo/moでなくデータベースに格納していると書いてあります。ただし貼られた画面キャプチャのものとスキーマは異なっており、これを使用しているわけではないと思います。これと似たような仕組みになっているんじゃないかと推測されるということです。

CakePHP plugin for I18n related tools.
https://github.com/ADmad/cakephp-i18n

翻訳したメッセージのデータベースへの登録方法はたぶん独自なので、アプリケーションを作った人に直接きくか、テーブルtranslationsの構造と実際のデータを見比べて、自分で何をどこに入れればよいか見当をつけるしかないような気がします。たぶん

  • 個々のメッセージを識別するキーか名前をどこにどう入れるか
  • メッセージ自体(英語なら英語、日本語なら日本語のテキスト)をどこにどう入れるか
  • 言語かロケールを指定するコード(英語、日本語等を指定する)をどこにどう入れるか

の3点がわかれば日本語化したメッセージの登録はできるのではないかと思います。

実際の登録方法は人それぞれですが、僕だったら日本語化したメッセージを追加するためのinsert文を並べたファイルを1個作って、それを実行して一括登録すると思います。あと「変更」といっても、英語のメッセージは残しておいて、日本語のメッセージを追加する形にした方がよいのではと思います。

編集 履歴 (1)
  • ご丁寧にどうもありがとうございました。
    おかげさまでなんとかなりそうです。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。