хранение и обработка урлов для разных языков

214
01 февраля 2019, 00:30

работаю над сайтом где есть... статьи на разных языках и переводы к ним на русский (и между языками), основной упор - переводы на русский.

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

делал так: для кирилических транслитерировал и в базу (utf-8, mysql) для европейских романоподобных польский, чешский, немецки, французский и тд - тоже транслитерировал, но тут стали появляться отличия (по буквам/звукам, в правилах транслитерации по сравнению с родными для языка сайтами) теперь добавились иврит, греческий, арабский, японский и тд, просмотрев "ихние" сайты - вижу что они урлят так сказать и на своей локали.

сейчас же вижу картину работы подругому: - для русских языков - транслит - для романских - как есть - иврит, греческий, арабский, японский - ? все их в rawurlencode() и в бд

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

требуется сохранить дружественность внешнего вида урла для посетителей учесть СЕО, (получать и иностранных посетителей на сайт)

в общем кто сталкивался - подскажите как у вас, как вы видите это? (надеюсь доступно изложил суть) спасибо

как пример:

пример - статья с заголовком ΔΕΝ ΣΕ ΕΝΔΙΑΦΈΡΕΙ ΠΩΣ ΑΙΣΘΆΝΟΜΑΙ урл для него транслитерированный den-se-endiaferei-pos-aisthanoma i

статью перевел вася с заголовком ПЕРЕВОД ТЕСТ и урлом perevod-test

перевел мойша с заголовком למנצח על-המחולות и урлом lm-sh-al-hmhwlwt ТУТ уже нет гласных и много вариантов для транслитерации

дальше ее перевел ахмед с заголовком الأحلام، وأنهم جميعا الحصول عليها и урлом ? тут тоже нет гласных и 100500 языковых наречий и символов, что все сразу и не учтёш для замены, получаем малочитаемый текст урла, strtr() не получается, пробую заменяеть посимвольно с проверкой есть ли исходный символ как ключ для замены, и получаем для непредусмотренных символов ошибку - сохранение статьи не проходит символа ا нет в массиве символа ل нет в массиве

при rawurlencode() для الأحلام، وأنهم جميعا الحصول عليها имеем для хранеия в бд string(186)

"%D8%A7%D9%84%D8%A3%D8%AD%D9%84%D8%A7%D9%85%D8%8C%20%D9%88%D8%A3%D9%86%D9%87%D9%85%20%D8%AC%D9%85%D9%8A%D8%B9%D8%A7%20%D8%A7%D9%84%D8%AD%D8%B5%D9%88%D9%84%20%D8%B9%D9%84%D9%8A%D9%87%D8%A7"

а если заголовок подлиннее

если применить rawurlencode() для "сложных языков"и в бд, то получается длинно, хоть красиво при отображении ссылки для пользователя, (гуглу ведь пофиг)

как правильнее все организовать, ваше видение этого, как хранить преобразованные ссылки в бд индексить их, иль преобразовывать на лету при вводе выводе, а хранить сам текст

както так. ?

READ ALSO
Масштабируемая страница

Масштабируемая страница

Всем приветПодскажите, как правильно реализовать

164
Как добавить данные из таблицы MySQL в таблицу WPF?

Как добавить данные из таблицы MySQL в таблицу WPF?

Необходимо по запросу из textbox выводить таблицу из MySqlПредполагаю вывод в DataGrid, но не понимаю как это реализовать

196
Вызвать необобщенную функцию обобщенного класса

Вызвать необобщенную функцию обобщенного класса

Допустим, есть класс MyClass<T>В этом классе есть метод Common()

172