Последние 2 буквы URI, определяющие используемый язык - PullRequest
0 голосов
/ 13 января 2010
<?php
$pageurl = "http://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
$pageurl_noslashes = str_replace("/","",$pageurl);
$lang = substr($pageurl_noslashes,-3);
echo $lang;
?>
{exp:channel:entries channel="products" limit="10"}
<p>Product title: <span>{if title<?php echo $lang; ?>} {title<?php echo $lang; ?>} {if:else} {title} {/if}</span></p>
{/exp:channel:entries}

Я взломал механизм выражений, чтобы вернуть соответствующие языковые переменные.

Я знаю, что способ получения кода языка (fr / en / etc ...) далек от идеала, поэтому мне нужен совет по этому вопросу:)

Что происходит:

  • host.com / products / item / _fr / - загружает французский
  • host.com / products / item / _en / - загружает английский
  • host.com / products / item / - загружает английский (после сбоя условия if)

Так что, по сути, он делает именно то, что я хочу, однако я чувствую, что это не лучший способ сделать это.

1 Ответ

0 голосов
/ 13 января 2010

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

echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];

Это объясняет, как здесь

...