Laravel を多言語対応する際、trans() や __() を使って言語別表示すると思いますが、その際のファイル名やキー名をどのようにすべきか迷っています。
公式ドキュメントでは例として resources/lang に messages.php というファイルを作り、メッセージ関連の翻訳を扱っています。おそらく「保存しました。」「エラーが発生しました」などのメッセージ類はこのファイルでいいと思いますが、メニュー名やボタンの文字、フォームの項目名などをどの程度細分化し、どんなファイル名、キー名にすればいいのか十分な情報がありません。
キー名で指定せずに ja.json ファイルを作って文字列と対訳を関連付ける手段もありますが、変更に強くしたいので今回は使わないつもりでいます。併用したほうがいいなどのご意見があればぜひ伺いたいと思います。
github で Laravel 製と思われるアプリケーションをいくつか調べてみたのですが翻訳機能を使っているものを見つけることができずにいます。
一般的なサイトではおそらく次のような文字列を翻訳すると思うのですが、どのようなファイル名、キー名でまとめるのが一般的なのでしょうか?
- メニュー名(About, Blog など)
- 見出し(Testimonial, Comments など)
- 動作、ボタンの文字(Submit, Close など)
- フォームラベル(Name, Email など)
- 状態(Private, Active など)
- メッセージ(Item saved successfully. など)
メニューと見出しはまとめられそうに見えます。heading や menu としてしまってはどちらかにしか使えません。
名詞、動詞に分けて noun, verb という手もあるかもしれません。
メッセージは messages.php で良さそうですがキー名についてははっきりした結論が出せず、「item.save.done」「item.update.failed」のような配列でまとめる形にしていますが自信はありません。
明確な答えのない質問ではありますが、よく使われる命名規則や参考になる多言語対応しているオープンソースプロジェクト(Laravelに限らず)があれば教えていただきたいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/04/27 02:42
2018/05/01 01:11