1

私は現在、バイリンガルのExpressionEngine2.5.2のWebサイトを作成しています。私はこの手法を使用して、完全に機能する2つの言語を作成しています。

2つのindex.phpファイルに{country_code}グローバル変数を作成しました。これにより、現在の言語を検出できます。

この手法を使用すると、エントリにアクセスするときに言語相対データを取得するのに問題はありません。私の唯一の懸念は、明らかに言語固有の「クリーン」URLに特権を与える必要があるということです。

エントリの例:

  • {entry_id} = 123
  • {タイトル}=私のテスト記事
  • {title_permalink} = my-test-article
  • {name_fr}=月の記事
  • {name_en}=私の記事

リクエストhttp://www.example.com/index.php/en/blog/articles/my-test-articleした場合、ブログテンプレートグループのテンプレート記事を使用して、英語で「私の記事」を見つけることを期待しています。

すべて問題ありませんが、リクエストするとフランス語の翻訳にアクセスできますhttp://www.example.com/index.php/fr/blog/articles/my-test-article。URLの正しい翻訳は。である必要がありますhttp://www.example.com/index.php/fr/blogue/articles/mon-article-test

誰かがこのような問題に遭遇しましたか?拡張機能またはモジュールを介したソリューションはありますか?

4

2 に答える 2

1

Transcribeモジュールは、テンプレートグループとテンプレート名を翻訳する機能を提供し、サイト内の言語とコンテンツごとに個別のエントリを作成することでこれを解決すると思います(したがって、2つの個別のURLタイトルがあります)。しかし、それは多言語サイトの方法論全体を取り入れることを意味します。

私自身、私は通常、のentry_id代わりに使用することに固執url_titleし、テンプレート名を第一言語で使用しています。

于 2012-07-23T19:41:41.790 に答える
0

これを達成するために私が見つけた最善の方法は、セグメント変換を含むテンプレートを埋め込み、テンプレートグループを複製し、チャネルを複製することです。

blog/articlesテンプレート内:

{embed="shared/.head" segment_2_translation="blogue" segment_3_translation="articles"}

blogue/articlesテンプレート内:

{embed="shared/.head" segment_2_translation="blog" segment_3_translation="articles"}

テンプレートshared/.headの場合:

[...] <a href="/{lang}/{if embed:segment_2_translated}{segment_2_translated}/{/if}{if embed:segment_3_translated}{segment_3_translated}/{/if}">{if lang == "fr"}English{if:else}Français{/if}</a> [...]

Articles (FR)次に、チャネルとチャネルを作成できますArticles (EN)。それぞれに固有のURLタイトルがあります。各チャネルにリレーションシップカスタムフィールドを追加して、エントリをその翻訳に関連付けることもできます。

面倒な感じがしますが、モジュールやプラグインなどがなくても動作させることができる唯一の方法です。

于 2012-07-24T17:22:26.517 に答える