Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для URL, имени файла, имени объекта в каком-то софте и тд. Требования совместимости простые: в тексте должны быть только допустимые символы. Обычно это a-z, 0-9 и "_" или "-". То есть, только прописные буквы латинского алфавита и цифры (как пример).
Допустим, нам нужно название статьи в блоге преобразовать в slug для добавления его в URL этой статьи. Как это лучше всего сделать?
В Django по умолчанию есть готовая функция slugify для таких случаев.
Но я её никогда не использую. Почему? Потому что её недостаточно!
Приведём пример
>>> from django.utils.text import slugify
>>> slugify('This is a Title')
'this-is-a-title'
Пока всё отлично
>>> slugify('This is a "Title!"')
'this-is-a-title'
Спец символы удалились, всё хорошо.
>>> slugify('Это заголовок статьи')
''
Вот и приехали 😢. Если текст не английский то буквы просто игнорируются. Можно это поправить
>>> slugify('Это заголовок статьи', allow_unicode=True)
'это-заголовок-статьи'
Но тогда мы не вписываемся в условие. У нас появилась кириллица в тексте.
Так как я часто пишу сайты для русскоязычных пользователей эта проблема весьма актуальна. Я не использую стандартную функцию и всегда пишу свою.
Оригинал я не беру в расчёт и пишу полностью свою функцию. И так, по порядку:
🔸1. Исходный текст:
>>> text = 'Мой заголовок №10 😁!'
Взял специально посложней со специальными символами.
🔸2. Транслит
Необходимо сделать транслит всех символов в латиницу. Здесь очень выручает библиотека unidecode. Помимо простого транслита кириллицы в латиницу она умеет преобразовывать спец символы и иероглифы в текстовые аналоги.
from unidecode import unidecode
>>> unidecode("Ñ Σ ® µ ¶ ¼ 月 山")
'N S (r) u P 1/4 Yue Shan'
Очень крутая библиотека, советую👍
В нашем случае получаем такое преобразование:
>>> text = unidecode(text)
>>> print(text)
'Moi zagolovok No. 10 !'
Отличный транслит. Смайл просто удалился, хотя я ждал что-то вроде :). Ну и ладно, всë равно невалидные символы.
А еще наш код уже поддерживает любой язык, будь то хинди или корейский.
🔸4. Фильтр символов
Unidecode не занимается фильтрацией по недопустимым символам. Это мы делаем в следующем шаге через regex. Просто заменим все символы на "_" если они вне указанного диапазона.
>>> text = re.sub(r'[^a-zA-Z0-9]+', '_', text)
>>> print(text)
'Moi_zagolovok_No_10_'
Символ "+" в паттерне выручает когда несколько недопустимых символов идут рядом. Все они заменяются на один символ "_".
🔸5. Slugify
Осталось удалить лишние символы по краям и сделать нижний регистр
>>> text = text.strip('_').lower()
>>> print(text)
'moi_zagolovok_no_10'
Получаем отличный slug! 😎
🌎 Полный код в виде функции.
______________
PS. Проверку что в строке остался хоть один допустимый символ я бы вынес в отдельную функцию.
#libs#tricks#django
Наши победители уже в теме!😎
Часть ваших коллег вовсю тестируют подарки от RuFilms и берут с собой нашего Фила на работу, учёбу и даже в путешествия!
Вы тоже смотрите на это с лёгкой завистью? Признавайтесь! 😉
Мы всё поняли! И чтобы у всех был шанс на крутые плюшки, мы готовим кое-что особенное... ❄️
Обязательно подготовим наш традиционный НОВОГОДНИЙ КОНКУРС! 🎄
Так что не расслабляемся, подписываемся и ждём анонс. Будет жарко!🔥несмотря на зимнюю погоду
#rufilms
🎯ИГРА ДЛЯ АВПШНИКОВ
Принесли вам бинго аудиовизуального переводчика. Ситуации, с которыми коллеги сталкивались хотя бы раз в переводческой жизни! А получится ли у вас собрать полное бинго?Скидывайте в комментариях, какие пункты получилось зачеркнуть❌
За идею благодарим переводчицу Юлию Суфиарову 🫶
#rufilms
📺 Что ждет медиа-рынок в 2025 году?
Краткий видеоролик с представителями медиа-рынка о том, какие тренды нас ждут в этом году и что ждет российский рынок: https://vkvideo.ru/video-46499225_456240175?ref_domain=telesputnik.ru
#rufilms
Ирония судьбы по-китайски, или что смотрят на Праздник весны в Китае?🎆
🏮 В этом году новый год по лунному календарю празднуется с 29 января по 4 февраля. Мы спросили наших китайских друзей, какие фильмы они любят смотреть на Новый год? Оказывается, что китайской «Иронии судьбы» не существует. Ведь жители Поднебесной в праздники ходят в кинотеатры на свежие новинки.
Топ-5 фильмов, которые крутят в кино прямо сейчас:
📽唐探1900 (Детектив из Чайнатауна, 1900 год)
Четвертый фильм из серии «Детектив Чайнатаун». Приквел к основной истории. Фильм рассказывает историю о том, как охотник А-Гуй и молодой студент Цинь Фу встречаются в Чайнатауне Сан-Франциско в 1900 году и случайно создают команду «Детектив Чайнатауна» для расследования загадочного дела.
📽哪吒魔童闹海 (Нэчжа побеждает Царя драконов)
Нэчжа (哪吒 Nézha) — один из героев китайской мифологии. История о его рождении и взрослении характеризуется смелым пересмотром образа героя: в мультфильме его впервые изобразили как озорника.
📽射雕英雄传: 侠之大者 (Легенда о героях Кондора: Величайший герой)
Под предводительством Чингисхана монгольская армия движется на запад, чтобы сокрушить династию Цзинь, а затем уничтожить династию Сун на юге. Го Цзин собирает мастеров боевых искусств Центральных равнин, чтобы дать отпор и защитить родные земли.
📽封神第二部:战火西岐 (Творение богов 2: Битва с демоническим войском)
Второй фильм трилогии о посланниках богов. Эпичное китайское фэнтези о защите родного края главных героев — Сици. Продолжение борьбы за божественный артефакт «Список бессмертных».
📽熊出没 重启未来 (Медведи-соседи: Перерождение)
Франшиза о мишках, запущенная в 2012 году. Новый мультфильм — история о том, как герои попадают в будущее на сто лет вперёд. В это время на Земле происходит огромная катастрофа, и люди изо всех сил пытаются выжить. А виновником стал один из наших мишек.
#rufilms
🥇 RuFilms вошла в 20-ку лучших переводческих компаний по версии АПК
Ассоциация переводческих компаний опубликовала ежегодный рейтинг на основании открытых данных по российским компаниям, имеющим переводческий ОКВЭД.
Весь рейтинг и критерии его составления читайте на сайте.
#rufilms
💎Лучшие субтитровщики ассоциации SUBTLE
Международная ассоциация субтитровщиков SUBTLE составила список лучших членов ассоциации, которые создавали и редактировали субтитры и SDH, перевод под дубляж для сериалов, номинированных на премию Emmy Awards 2024.
Среди рабочих языков итальянский, греческий, украинский, венгерский, румынский, датский, польский, английский и другие.
Список отмеченных переводчиков и подробности.
#rufilms
💡 Переводческая загадка от нашего переводчика Романа Рожкова
В песне Eminem - Stepping Stones есть строчка, которую можно услышать двумя способами:
⭐️ When your reign is over you'll hardly be missed
⭐️ When your rain is over you'll hardly be mist
🤔 Как бы вы перевели строчку, чтобы сохранить двусмысленность игры слов?
#rufilms
🎊 Вы думали, что праздники закончились? Расчехляйте свои формы для тортиков: сегодня чествуем целых два языка 👅
💫 23 апреля – такую дату ООН выбрала, чтобы отметить праздники для двух самых распространенных языков в мире. Сегодня День английского и День испанского языков.
🤔 В отличие от китайского языка никаких мифов и легенд в выборе этой даты не заложено. Зато таким жестом ООН позволяет нам вновь почтить вклад классиков мировой литературы – Уильяма Шекспира и Мигеля де Сервантеса Сааведры. 23 апреля традиционно отмечается день рождения и дата смерти Шекспира, а также дата смерти Сервантеса.
😁 Интересный факт: на Кинопоиске есть страничка Шекспира, где он указан сценаристом для 1436 фильмов (собственно, снятых по мотивам его пьес). Сервантеса Кинопоиск также не оставил в стороне, указав 108 фильмов в его «фильмографии».
#rufilms
🎆 Сегодня, 20 апреля, отмечается День китайского языка или 中文日
В 2010 году ООН учредила языковые дни для каждого из шести ее официальных языков: арабского, китайского, английского, французского, русского и испанского. Цель этих праздников – способствовать многоязычию и культурному разнообразию мира.
🤔 Почему для китайского языка была выбрана именно сегодняшняя дата? Предполагается, что в честь Цан Цзе (仓颉) – легендарного древнейшего деятеля, которому приписывают изобретение китайской письменности. Мифы гласят, что у него было четыре глаза. Когда в течение трех дней, в том числе и 20 апреля, он создавал иероглифы, боги и призраки плакали, а с неба сыпался дождь из проса. С тех пор китайцы каждый год отмечают это событие, называя его Гую (谷雨 – «хлебные дожди»).
❓Какие китайские фильмы посоветуете на вечер?
#rufilms
春节快乐🐲
🎊 Поздравляем всех подписчиков с наступлением Нового года по восточному календарю, китайским «Праздником весны»🎋
Предлагаем на выходные выбрать фильм о том, как в Китае празднуют главный праздник года🥳
#rufilms
💫 Друзья, как проходит ваша первая рабочая неделя в этом году? Соскучились по переводам? А мы принесли вам потешную сценку из фильма "Иван Васильевич меняет все" от ТНТ об авторском и официальном переводе кино😁
#rufilms
📢 Новый контент, новые языки, новые рабочие процессы - способна ли перестроиться отрасль локализации под запросы зрителей и вещателей?
По общему мнению компаний-локализаторов, представителей телеканалов и онлайн-платформ, а также актеров озвучивания в ближайшие 20 лет апокалипсис в отрасли не состоится.
🔥 Дискуссия на тему будущего отрасли перевода и озвучивания контента 29 сентября была жаркой. Однако все согласны – искусственный интеллект еще надолго останется «пластмассовым», неграмотным, бездушным вариантом работы с контентом. И центром работы над фильмами еще много десятилетий будет человек.
❗️Полное видео на нашем ютуб-канале: https://youtu.be/PyhqwGfRDW8
#rufilms