Возможно ли, чтобы запись имела два URL-адреса в Expression Engine и переводила имена шаблонов?

В настоящее время я делаю двуязычный веб-сайт Expression Engine 2.5.2. Я использую эту технику для создания двух языков, которая отлично работает.

Я создал глобальную переменную {country_code} в двух файлах index.php, которая позволяет мне определять текущий язык.

Используя эту технику, у меня нет проблем с получением данных, относящихся к языку, при доступе к записи. Единственное, что меня беспокоит, это то, что мне, по-видимому, нужно привилегировать «чистый» URL-адрес для конкретного языка.

Пример записи:

  • {entry_id} = 123
  • {title} = Моя тестовая статья
  • {title_permalink} = моя тестовая статья
  • {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.

Кто-нибудь сталкивался с такой проблемой? Любые решения через расширения или модули?


person Rémi Breton    schedule 23.07.2012    source источник


Ответы (2)


Я считаю, что модуль Transcribe решает эту проблему, обеспечивая возможность перевода групп шаблонов и имен шаблонов. , а также создание отдельной записи для каждого языка и части контента на вашем сайте (следовательно, у вас есть два отдельных заголовка URL). Но это означает покупку всей их методологии для многоязычного сайта.

Лично я обычно просто использую entry_id вместо url_title и живу с именами шаблонов на основном языке.

person Derek Hogue    schedule 23.07.2012
comment
Да, я узнал о Transcribe, кажется, это все, что мне сейчас нужно. Как вы сказали, это означает, что вы покупаете их методологию, и, учитывая цену в 150 долларов, я хотел бы изучить другие варианты. Идентификатор входа будет работать, но цель здесь — сохранить чистые, красивые URL-адреса. - person Rémi Breton; 23.07.2012

Лучший способ добиться этого — встроить шаблоны с переводами сегментов, дублировать группы шаблонов и дублировать каналы.

В шаблоне blog/articles:

{embed="shared/.head" segment_2_translation="blogue" segmentblogue/articlestranslation="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. Вы также можете добавить настраиваемое поле отношения для каждого канала, чтобы связать запись с ее переводом.

Это кажется грязным, но это единственный способ заставить его работать без модулей, плагинов и прочего.

person Rémi Breton    schedule 24.07.2012