2008-09-24 2 views
3

Мне было интересно, как вы относитесь к постоянным отношениям на международных сайтах. По permalink я имею в виду некоторую ссылку, которая уникальна и удобочитаема.Возможно ли создание МЕЖДУНАРОДНЫХ постоянных ссылок?

E.g. для английских фраз его не проблема, например. /product/some-title/

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

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

ответ

1

Как насчет схемы, как/PRODUCTID/{продукт-id- number}/some-title/ , где сайт просматривает {число} и полностью игнорирует часть «some-title». Вы можете поместить это на любой язык или кодировку, который вам нравится, потому что он не используется.

+0

Thats действительно хорошая и интересная идея. Это указывает на мою проблему. 1. URL-адрес незаконен, не так ли? позволяет:/product/122/prodöktä/ 2. распознает ли Google эти URL-адреса? – Michal 2008-09-24 14:06:13

+0

Похоже, что это возможно - http://dmoz.org.il/ - хотя вы можете лучше кодировать их как UTF8 и посмотреть, декодированы ли они в браузере. Google и др. Также, вероятно, будут лучше с ними. – 2008-09-24 14:53:57

0

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

, который сказал, что вам нужно будет найти таблицу, в которой вы назначаете переводы продуктов/названий в любое слово, которое они будут на другом языке. Например:

foo.com/cat будет нужен перевод искать для «кошек» «Гато» «нэко» и т.д.

Тогда ваш HTTP модуль, который является разбор этих объектов для чтения человека в точный адрес будет знать, какую страницу использовать на основе переводов.

0

Создание взгляда на такую ​​вещь кажется переполнением для меня. Я не могу создать поиск для всех разных слов на всех языках. Возможно, доступ к API перевода будет хорошей идеей.

Так как я вижу, что его невозможно использовать внешние символы в permalink, поскольку sepecs URL-адреса этого не позволяют.

Что вы думаете о кодировании специальных символов? являются ли эти URL-адреса, распознанные Google?

+0

API перевода - хорошая идея. Что касается специальных символов и google - это вне моего объема знаний. Прости. – 2008-09-24 13:51:44

2

Символы за пределами набора ISO Latin-1 не разрешены в URL-адресах в соответствии с this spec, поэтому китайские строки будут немедленно отключены.

Где название продукта может быть локализована, использовать унифицированные как <DOMAIN>/<LANGUAGE>/DIR/<PRODUCT_TRANSLATED>, например:

http://www.example.com/en/products/cat/ 
http://www.example.com/fr/products/chat/ 

сопровождается mod_rewrite правило к действию:

RewriteRule ^([a-z]+)/product/([a-z]+)? product_lookup.php?lang=$1&product=$2 

Для первого примера выше , это правило вызовет product_lookup.php?lang=en&product=cat. Внутри этого скрипта вы можете получить доступ к внутреннему механизму перевода (из параметра lang, en в этом случае), чтобы сделать тот же перевод, который вы делаете на стороне пользователя, чтобы перевести, скажем, «Чат» на французской странице , «Cat» на английском языке и т. Д.

Использование API внешнего перевода было бы хорошей идеей, но было бы сложно получить надежный, который работает правильно в вашем бизнес-домене. Google открыл translation API, но в настоящее время он поддерживает только ограниченное количество языков.

  • Английский < => арабский
  • Английский < => Китайский
  • Английский < => Русский
+0

http://www.example.com/fr/produits/chat/ имел бы смысл, поэтому я бы переписал: RewriteRule^([az] +)/([az] +)/([az] +)? lookup.php? lang = $ 1 & type = $ 2 & item = $ 3 – 2008-10-29 07:00:51

2

Я обычно транслитерирую символы не-ascii. Например, «täst» станет «taest». GNU Iconv может сделать это для вас (я уверен, что есть и другие библиотеки):

$ echo täst | iconv -t 'ascii//translit' 
taest 

Увы, эти транслитерации локали зависит: отличные от немецких языков, «A» может быть translitertated просто как «а» , например. Но с другой стороны, должна быть транслитерация для каждого (обычно используемого) набора символов в ASCII.

2

Посмотрите на Wikipedia. Они используют национальные символы в URL-адресах.

Например, русский адрес домашней страницы: http://ru.wikipedia.org/wiki/Заглавная_страница. Браузер прозрачно кодирует все символы, отличные от ASCII, и заменяет их своими кодами при отправке URL-адреса на сервер. Но на веб-странице все URL-адреса являются удобочитаемыми для человека.

Для этого вам не нужно ничего особенного - просто введите названия своих продуктов в URL-адреса, как есть. Веб-сервер должен иметь возможность автоматически декодировать их для вашего приложения.

Смежные вопросы