Можно ли создавать МЕЖДУНАРОДНЫЕ постоянные ссылки? - PullRequest
3 голосов
/ 24 сентября 2008

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

например. для английских фраз это не проблема, например / продукт / некоторые титульный /

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

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

Ответы [ 6 ]

2 голосов
/ 24 сентября 2008

Взгляните на Википедию . Они используют национальные символы в URL.

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

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

2 голосов
/ 24 сентября 2008

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

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

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

2 голосов
/ 24 сентября 2008

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

Если название продукта может быть локализовано, вы можете использовать URL-адреса, например <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=<strong>en</strong>&product=<strong>cat</strong>. Внутри этого скрипта вы получите доступ к внутреннему механизму перевода (из параметра lang, в данном случае en), чтобы выполнить тот же перевод, который вы делаете на пользовательской стороне для перевода, скажем, , «Чат» на французской странице, «Кошка» на английском и др.

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

  • английский <=> арабский
  • английский <=> китайский
  • английский <=> русский
1 голос
/ 24 сентября 2008

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

0 голосов
/ 24 сентября 2008

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

Итак, насколько я вижу, невозможно использовать иностранные символы в постоянной ссылке, так как sepecs URL не позволяет этого.

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

0 голосов
/ 24 сентября 2008

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

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

foo.com / cat потребуется перевод для поиска "cat", "gato", "neko" и т. Д.

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

...