2012-06-25 5 views
2

При использовании английского следующий URL следует применять:Yii интернационализации - URL

http://example.org/services/myservice/ 

При использовании другого языка, следующий URL следует применять:

http://example.org/sirvici/misirvice/ 

Любого простой/стандартный способ, которым мы должны справиться с этим с Yii?

+2

Я не думаю, что вы можете сделать это динамически, только вручную (с правилами перезаписи URL-адресов и переадресацией .htaccess). – adamors

ответ

1

Да, вы можете сделать это в Yii, но вы будете жертвовать:

  • Автоматический контроллер отображения/действий (в зависимости, как это работает)
  • Немного скорости из-за дополнительной рабочей нагрузки по каждому запросу.

Если вы все еще в порядке с этим, то вы можете продолжить его. Вам нужно создать собственное правило URL-адресов и обработать каждый URL-адрес, это хорошо документировано. Затем вам нужно вручную разделить URL-адрес (также хорошо документированные методы) и перевести каждую часть с выбранных пользователем языков (вам нужно будет знать это, если вы не захотите пройти через ад, пытаясь угадать язык O.o). Теперь у вас есть переводы для каждой части URL. Congrats.

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

Если это не сработает, вам придется создавать свои собственные (копирование Yii немного с CUrlRule и т. Д.) И выполнять логику отображения.

My Two Sense
Для большинства веб-приложений, которые я бы не рекомендовал это. Это означает, что у вас есть несколько способов доступа к одному и тому же контенту, с очень разных URL-адресов. Это плохо в SEO-терминах, а также в условиях удобства использования. Он также не предоставляет вам способ сопоставить их друг с другом особенно легко, чтобы позволить Google не индексировать ваш контент снова. Плюс я не вижу, что он набирает вас много. Большинство пользователей Simpleton не обращают внимания на панель URL, и даже если это на их родном языке, большинство из них не будет выводить много о странице и ее содержании из формулировки URL-адреса.

Сообщите мне, если вы продолжите это, но я хотел бы знать, как это происходит.

+0

Спасибо за ваши два цента. Таким образом, Örs прав, мы не можем этого сделать, без настройки. Я был убежден, что это может принести пользу для SEO. Мы знаем, что что-то вроде этого: 'mypage.com/somethingsemanticrelevant/anothersemanticrelevant' - если структура URL-адреса важна, то, возможно, наличие на« правильном »языке может также означать что-то для поисковых систем. Если нет, то у меня на самом деле нет причин передавать всю эту боль. Однако я хочу сохранить этот ответ, так что, если по какой-то причине мы обнаружили, что он имеет отношение к SEO, мы можем играть с ним. Большое спасибо. – MEM