翻訳ファイルについて

Author Message

shuhei yamamoto

Thursday 04 November 2010 4:14:49 am

いつもお世話になっております。
山本です。

■サイトアクセス
ez_admin:管理サイト
jpn:日本語公開サイト
eng:英語公開サイト

■構成
extension
|--jpn
| |-design(この下にテンプレートなど)
|
|--eng
| |-desing
| |-translations
| |-eng-US
|-translation.ts

公開側のテンプレートはjpnの中に作成し、engではjpnのテンプレートを参照して表示を行っています。
また、engでは翻訳ファイルを持ちjpnのテンプレート内に記載した日本語を適宜英語に翻訳しております。

■事象
管理サイトでコンテンツを作成し、プレビューを行いengのサイトアクセスを指定しても翻訳がされない。
⇒プレビューの際に一番最初に表示されるのはjpnですが、その後にengに切り替えています。ですので、念のためキャッシュをクリアして確認もしているのですが、翻訳されません。

※公開側のサイトで確認する場合は正常に翻訳されています。

■バージョン情報

eZ Publish 4.1.3

以上、よろしくお願いいたします。

Eric Sagnes

Thursday 04 November 2010 8:21:40 pm

山本さん

現在は公開サイトアクセスを二つ持って、エクステンションも二つあります。
実は、eZ Publishでは一つのエクステンションが複数の言語を管理できます。
管理しやすいため、一つのエクステンションでまとめるのをおすすめします、構造は下記のようになります:

extension
└── public_site
    ├── design
    └── translations
        ├── eng-US
        │   └── translation.ts
        ├── jpn-JP
        │   └── translation.ts
        └── untranslated
            └── translation.ts

翻訳については2種類あります:

  1. コンテントの翻訳
  2. テンプレートの翻訳

コンテント翻訳
コンテントの翻訳は多言語環境でオブジェクトを編集する際に翻訳ダイヤログがでます。コンテント系の翻訳はDBで保存されます。

テンプレート翻訳
テンプレートに入った文字の翻訳はtsファイルを使います、翻訳したい文字を「i18n」オペレータに入れる必要があります。

例えばテンプレートファイルに詳細へのリンクをつけたい場合には:

<a href={$node.url_alias|ezurl()}>more</a>

「more」を翻訳対応にしたければ、下記のように書きます:

<a href={$node.url_alias|ezurl()}>{"more"|i18n('design/public_site')}</a>

「design/public_site」はtsファイルでのコンテクストに当たります。

shuhei yamamoto

Thursday 04 November 2010 9:45:20 pm

エリックさん

ご回答ありがとうございます。

管理サイトからのプレビューについても、教えて頂けますでしょうか?

管理サイトの言語はjpn-JPで、その管理サイトから公開サイトのプレビューを見るときに翻訳が出来なくて困っています。公開サイトの言語設定はjpnはjpn-JPでengはeng-USになります。

現状だと管理サイトからプレビュー(versionview)を見ると翻訳はされません。
⇒プレビュー時にサイトアクセスを変更しても変わりません。

※エクステンションを1つにまとめるのは管理が効率的ですが、iniファイルや画像等もサイトアクセスで分けているので、別にする方法しかない状態です。

以上、よろしくお願い致します。

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.