Skip to content

Commit 8edb3a6

Browse files
add translation document
1 parent f235d4e commit 8edb3a6

File tree

1 file changed

+127
-0
lines changed

1 file changed

+127
-0
lines changed

pages/multilingualization/spec.md

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
---
2+
title: 多言語化仕様
3+
keywords: multilingualization
4+
tags: [multilingualization]
5+
sidebar: home_sidebar
6+
permalink: multilingualization_spec
7+
forder: multilingualization
8+
---
9+
10+
# 概要
11+
12+
EC-CUBEは、初期設定では日本語で表示されますが、英語やその他の言語で表示するための機構が組み込まれています。表示言語は、環境変数でロケールを指定することで切り替えられ、現時点では日本語または英語が利用できます。
13+
14+
# 言語の切り替え
15+
16+
環境変数でロケールを指定し、言語表示を切り替えることが出来ます。
17+
18+
EC-CUBEのルートディレクトリ直下に、`.env`ファイルを作成し、`ECCUBE_LOCALE`を設定します。
19+
20+
```bash
21+
//.env
22+
23+
ECCUBE_LOCALE=en
24+
25+
```
26+
27+
環境変数設定後、画面をリロードすると、表示言語が切り替わります。
28+
キャッシュの削除を行う必要はありません。
29+
30+
※ 現時点では、データベースに保持されているデータは翻訳されません。
31+
※ ショップ画面/管理画面ともに表示言語が切り替わります。
32+
33+
# メッセージファイル(翻訳ファイル)
34+
35+
メッセージファイルは、`src/Eccube/Resouce/locale`以下に保存されています。
36+
`ECCUBE_LOCALE`の値に応じて、
37+
38+
- messages.xxx.php
39+
- validators.xxx.php
40+
41+
のファイルが読み込まれます。
42+
43+
メッセージファイルは単純な連想配列で定義されたphpファイルです。
44+
連想配列のキーはメッセージのID、値は翻訳された文字列を表します。
45+
46+
```php
47+
// messages.ja.php
48+
49+
<?php
50+
51+
return [
52+
53+
//common
54+
'common.label.add' => '新規作成',
55+
'common.label.edit' => '編集',
56+
'common.label.delete' => '削除',
57+
'common.label.save' => '登録',
58+
...
59+
```
60+
61+
# trans関数とtransフィルタ
62+
63+
trans関数やtransフィルタを使用することで、翻訳された文字列を表示することができます。
64+
php内で翻訳する場合はtrans関数を、twig内で翻訳する場合はtransフィルタを使用します。
65+
66+
## trans関数
67+
68+
trans関数にメッセージIDを指定することで、翻訳された文字列を取得できます。
69+
基本的な使い方は以下のとおりです。
70+
71+
```php
72+
<?php
73+
74+
// 'common.label.add' => '新規作成',
75+
76+
$message = trans('common.label.edit');
77+
var_dump($message);
78+
79+
// 編集
80+
```
81+
82+
メッセージがパラメータ付きで定義されている場合は、以下のように使用します。
83+
84+
```php
85+
<?php
86+
87+
// 'admin.order.index.paginator_total_count' => '検索結果:%count%件が該当しました',
88+
89+
$message = trans('admin.order.index.paginator_total_count', ['%count%' => 10]);
90+
var_dump($message);
91+
92+
// 検索結果:10件が該当しました
93+
94+
```
95+
96+
## transフィルタ
97+
98+
twig内で翻訳する場合は、transフィルタを使用します。
99+
基本的な使い方は以下の通りです。
100+
101+
```twig
102+
103+
{{ 'common.label.add'|trans }}
104+
105+
{# 編集 #}
106+
107+
```
108+
109+
メッセージがパラメータ付きで定義されている場合は、以下のように使用します。
110+
111+
```twig
112+
113+
{{ 'admin.order.index.paginator_total_count'|trans({
114+
'' : 10
115+
}) }}
116+
117+
{# 検索結果:10件が該当しました #}
118+
119+
```
120+
121+
# 参考
122+
123+
EC-CUBEの翻訳機構は、SymfonyのTranslationコンポーネントを利用しています。
124+
より詳しく知りたい場合は、Symfonyの公式ドキュメントを参照してみてください。
125+
126+
Translations
127+
http://symfony.com/doc/current/translation.html

0 commit comments

Comments
 (0)