From f1ef2dfe635e3d1d1812ecb73be0ec21011e44b3 Mon Sep 17 00:00:00 2001 From: John Date: Mon, 16 Nov 2020 14:54:14 +0200 Subject: [PATCH 1/5] Updated lang: Russian --- resources/lang/ru/app.php | 156 +++++++++++++++++++------------------- 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/resources/lang/ru/app.php b/resources/lang/ru/app.php index c4ece814a..d9bafaaef 100644 --- a/resources/lang/ru/app.php +++ b/resources/lang/ru/app.php @@ -1,154 +1,154 @@ 'Описательное резюме ...', - 'a_unique_slug' => 'а-уникально-пробковый', - 'add_a_caption' => 'Добавьте подпись для вашего изображения', + 'a_descriptive_summary' => 'Описательное резюме...', + 'a_unique_slug' => 'уникальный-слег', + 'add_a_caption' => 'Добавить подпись к изображению', 'add_a_new_tag' => 'Добавить новый тег', - 'add_a_new_topic' => 'Добавить это как новую тему', - 'admin' => 'Админ', - 'all_stats' => 'Все характеристики', + 'add_a_new_topic' => 'Добавить новую категорию', + 'admin' => 'Администратор', + 'all_stats' => 'Общая статистика', 'assets_are_not_up_to_date' => 'Ресурсы для Canvas не соответствуют установленной версии.', 'average_reading_time' => 'Среднее время чтения', 'cancel' => 'Отмена', 'cancel_scheduling' => 'Отмена планирования', 'canonical_link' => 'Каноническая ссылка', 'canonical_link_placeholder' => 'Канонический URL оригинального источника', - 'caption' => 'титр', - 'choose_a_username' => 'Выбери логин...', - 'click_to_see_insights' => 'Нажмите на пост ниже, чтобы увидеть более подробную информацию.', + 'caption' => 'Заголовок', + 'choose_a_username' => 'Выберите имя пользователя...', + 'click_to_see_insights' => 'Нажмите на публикацию ниже, чтобы увидеть более подробную информацию.', 'contributor' => 'Автор', 'convert_to_draft' => 'Преобразовать в черновик', - 'created' => 'созданный', + 'created' => 'Создан', 'dark_mode' => 'Темный режим', - 'default_layout' => 'Макет по умолчанию', - 'delete' => 'удалять', + 'default_layout' => 'Оформление по умолчанию', + 'delete' => 'Удали', 'deleted_posts_are_gone_forever' => 'Вы уверены, что хотите удалить эту запись? Это действие не может быть отменено.', 'deleted_tags_are_gone_forever' => 'Вы уверены, что хотите удалить этот тег? Это действие не может быть отменено.', - 'deleted_topics_are_gone_forever' => 'Вы уверены, что хотите удалить эту тему? Это действие не может быть отменено.', + 'deleted_topics_are_gone_forever' => 'Вы уверены, что хотите удалить эту категорию? Это действие не может быть отменено.', 'deleted_users_are_gone_forever' => 'Вы уверены, что хотите удалить этого пользователя? Это действие не может быть отменено.', 'details' => 'Детали', - 'done' => 'Выполнено', + 'done' => 'Готово', 'draft' => 'Черновой вариант', 'drafts' => 'Черновики', 'drop_files_or_click_to_upload' => 'Перетащите файлы или нажмите здесь, чтобы загрузить', - 'edit_post' => 'Редактировать сообщение', + 'edit_post' => 'Редактировать публикацию', 'edit_profile' => 'Редактировать профиль', 'edit_tag' => 'Изменить тег', 'edit_topic' => 'Редактировать тему', 'edit_user' => 'Редактировать пользователя', - 'editor' => 'редактор', + 'editor' => 'Редактор', 'embed_content' => 'Вставить контент', 'featured_image' => 'Популярное изображение', 'featured_image_caption' => 'Подпись к изображению', - 'from' => 'Из', + 'from' => 'С', 'from_last_month' => 'с прошлого месяца', 'general_settings' => 'Общие настройки', 'give_your_tag_a_name' => 'Дайте вашему тегу имя', - 'give_your_tag_a_name_slug' => 'дать-ваш-тег-а-имя', + 'give_your_tag_a_name_slug' => 'дайте-имя-вашему-тегу', 'give_your_topic_a_name' => 'Дайте название вашей теме', - 'give_your_topic_a_name_slug' => 'дать-вашей-тему-а-имя', + 'give_your_topic_a_name_slug' => 'дать-название-вашей-теме', 'last_thirty_days' => 'Последние 30 дней', 'last_updated' => 'Последнее обновление', - 'layout' => 'раскладка', - 'lifetime_summary' => 'Резюме жизни', - 'locale' => 'место действия', + 'layout' => 'Оформление', + 'lifetime_summary' => 'Резюме по всей статистике', + 'locale' => 'Локаль', 'manage_user_roles' => 'Управление пользовательскими ролями и разрешениями.', 'meta_description' => 'Мета Описание', - 'meta_description_placeholder' => 'Мета-описание для вашего поста', - 'meta_title' => 'Мета Название', - 'meta_title_placeholder' => 'Мета заголовок для вашего поста', - 'min' => 'мне', + 'meta_description_placeholder' => 'Мета описание для вашей публикации', + 'meta_title' => 'Мета название', + 'meta_title_placeholder' => 'Мета заголовок для вашей публикации', + 'min' => 'мин', 'monthly_summary' => 'Ежемесячная сводка', - 'name' => 'название', - 'new_post' => 'Новый пост', - 'new_tag' => 'Новый день', - 'new_topic' => 'Новая тема', - 'new_user' => 'New user', + 'name' => 'Название', + 'new_post' => 'Новая публикация', + 'new_tag' => 'Новый тег', + 'new_topic' => 'Новая категория', + 'new_user' => 'Новый пользователь', 'no_images_found_for' => 'Изображения не найдены для', 'on' => 'на', 'other' => 'Другой', - 'paste_embed_code_to_include' => 'Вставьте любой код для вставки в пост', + 'paste_embed_code_to_include' => 'Вставьте любой код для добавления его в публикацию', 'paste_or_type_a_link' => 'Вставьте или введите ссылку ...', - 'photo_by' => 'фото', + 'photo_by' => 'Фото', 'popular_reading_times' => 'Популярное время чтения', - 'post_scheduling_format' => 'Пост-планирование использует 24-часовой формат времени и использует', - 'post' => 'Почта', - 'posts' => 'Сообщений', + 'post_scheduling_format' => 'Для планирования публикации используется 24-часовой формат времени и', + 'post' => 'Публикация', + 'posts' => 'Публикаций', 'publish' => 'Публиковать', 'publish_now' => 'Опубликовать сейчас', - 'published' => 'опубликованный', + 'published' => 'Опубликовано', 'published_on' => 'Опубликован в', 'published_posts' => 'Опубликованные сообщения', - 'publishing' => 'Издательский', + 'publishing' => 'Публикация', 'read' => 'читать', - 'referer_unknown' => 'Просмотры сообщений в этой категории не могут надежно определить реферала. например Режим инкогнито', + 'referer_unknown' => 'Просмотры публикаций в этой категории не могут надежно определить реферала. Например, режим инкогнито', 'save' => 'Сохранить', 'save_changes' => 'Сохранить изменения', 'saved' => 'Сохраненный!', - 'saving' => 'Saving...', + 'saving' => 'Сохранение...', 'schedule_for_later' => 'Расписание на потом', - 'schedule_to_publish' => 'График публикации', + 'schedule_to_publish' => 'График публикаций', 'search_free_photos' => 'Поиск бесплатных фотографий в высоком разрешении', - 'see_all_stats' => 'Посмотреть всю статистику', - 'select_a_topic' => 'Выберите тему...', + 'see_all_stats' => 'Посмотреть полную статистику', + 'select_a_topic' => 'Выберите категорию...', 'select_some_tags' => 'Выберите несколько тегов ...', 'select_your_language_or_region' => 'Выберите ваш язык или регион.', 'search_canvas' => 'Поиск Canvas', 'seo_settings' => 'Настройки SEO', - 'settings' => 'настройки', - 'sign_out' => 'выход', - 'slug' => 'слизень', + 'settings' => 'Настройки', + 'sign_out' => 'Выход', + 'slug' => 'Слег', 'stats' => 'Статистика', - 'stats_are_made_available' => 'Статистика становится доступной, когда вы начинаете публикацию!', - 'stats_for_your_posts' => 'Статистика для ваших сообщений', - 'success' => 'Успех!', + 'stats_are_made_available' => 'Статистика повится после того, как вы начнете публиковать!', + 'stats_for_your_posts' => 'Статистика ваших публикаций', + 'success' => 'Успешно!', 'summary' => 'Резюме', - 'sync_with_post_description' => 'Синхронизировать с краткой публикацией', - 'sync_with_post_title' => 'Синхронизировать с заголовком поста', + 'sync_with_post_description' => 'Синхронизировать с кратким описанием', + 'sync_with_post_title' => 'Синхронизировать с заголовком публикации', 'tags' => 'Теги', - 'tags_are_great_for' => 'Теги отлично подходят для описания деталей ваших сообщений.', - 'tell_us_about_yourself' => 'Расскажи нам немного о себе...', - 'tell_your_story' => 'Расскажи свою историю ...', + 'tags_are_great_for' => 'Теги отлично подходят для описания деталей ваших публикаций.', + 'tell_us_about_yourself' => 'Расскажите нам немного о себе...', + 'tell_your_story' => 'Расскажите свою историю ...', 'thirty_days' => '30 дней', 'timezone' => 'часовой пояс', - 'title' => 'заглавие', - 'to' => 'в', + 'title' => 'Заглавие', + 'to' => 'по', 'to_update_run' => 'Чтобы обновить, запустите:', - 'toggle_dark_mode' => 'Используйте темный вид для холста.', - 'toggle_digest' => 'Укажите, следует ли получать еженедельную сводку вашего опубликованного контента.', - 'topic' => 'Тема', - 'topics' => 'темы', - 'topics_are_great_for' => 'Темы отлично подходят для широкой группировки ваших сообщений.', - 'total_posts' => 'Всего сообщений', + 'toggle_dark_mode' => 'Используйте темную тему Canvas.', + 'toggle_digest' => 'Укажите, если желаете получать еженедельную сводку вашего опубликованного контента.', + 'topic' => 'Категория', + 'topics' => 'Категории', + 'topics_are_great_for' => 'Категории отлично подходят для широкой группировки ваших публикаций.', + 'total_posts' => 'Всего публикаций', 'total_views' => 'Всего просмотров', 'type_caption_for_image' => 'Введите подпись к изображению (необязательно)', - 'unique_visit' => 'уникальный визит', + 'unique_visit' => 'уникальное посещение', 'unique_visits' => 'уникальные посещения', - 'updated' => 'обновленный', - 'username' => 'имя пользователя', - 'users' => 'пользователей', - 'view' => 'Посмотреть', + 'updated' => 'Обновлено', + 'username' => 'Имя пользователя', + 'users' => 'Пользователи', + 'view' => 'просмотр', 'view_stats' => 'Посмотреть статистику', - 'views' => 'Просмотры', + 'views' => 'просмотров', 'views_by_traffic_source' => 'Просмотры по источникам трафика', - 'views_info' => 'Просмотр считается, когда посетитель загружает или перезагружает страницу.', + 'views_info' => 'Просмотр засчитывается, когда посетитель загружает или перезагружает страницу.', 'views_this_week' => 'Просмотров на этой неделе', - 'visitor' => 'посетитель', + 'visitor' => 'Посетитель', 'visitors' => 'Посетители', - 'visits_info' => 'Количество посетителей учитывается, когда мы видим пользователя или браузер впервые за определенный 24-часовой период.', - 'visits' => 'просмотров', - 'waiting_until_more_data' => 'Ожидание, пока в вашем сообщении появится больше просмотров, чтобы показать эти идеи.', + 'visits_info' => 'Посещение учитывается, если мы видим пользователя или браузер впервые за определенный 24-часовой период.', + 'visits' => 'Просмотров', + 'waiting_until_more_data' => 'Эта информация будет доступна, когда у вашей публикации появится больше просмотров.', 'weekly_digest' => 'Еженедельный дайджест', 'wide_image' => 'Широкое изображение', 'write_on_the_go' => 'Пишите на ходу с нашим мобильным приложением!', 'you_have_no_draft_posts' => 'У вас нет черновиков', - 'you_have_no_published_posts' => 'У вас нет опубликованных постов', + 'you_have_no_published_posts' => 'У вас нет опубликованных статей', 'you_have_no_tags' => 'У вас нет тегов', - 'you_have_no_topics' => 'У вас нет тем', - 'your_post_will_publish_at' => 'Ваш пост будет опубликован на', - 'your_posts_received' => 'ваши сообщения получили:', - 'your_profile' => 'Твой профиль', + 'you_have_no_topics' => 'У вас нет категорий', + 'your_post_will_publish_at' => 'Ваша статья будет опубликована', + 'your_posts_received' => 'ваши публикации получили:', + 'your_profile' => 'Ваш профиль', 'your_stats' => 'Ваша статистика', 'your_weekly_writer_summary_for' => 'Ваше еженедельное резюме для писателя', ]; From 656c52ec973aa03aa1f53df384007be943f94c51 Mon Sep 17 00:00:00 2001 From: John Date: Mon, 16 Nov 2020 14:56:01 +0200 Subject: [PATCH 2/5] New lang: Bulgarian --- resources/lang/bg/app.php | 154 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 resources/lang/bg/app.php diff --git a/resources/lang/bg/app.php b/resources/lang/bg/app.php new file mode 100644 index 000000000..3a397eedc --- /dev/null +++ b/resources/lang/bg/app.php @@ -0,0 +1,154 @@ + 'Нагледна статистика...', + 'a_unique_slug' => 'уникален-слъг', + 'add_a_caption' => 'Добавете описание на снимката', + 'add_a_new_tag' => 'Добавете нов тег', + 'add_a_new_topic' => 'Добавете като нова категория', + 'admin' => 'Админ', + 'all_stats' => 'Обща статистика', + 'assets_are_not_up_to_date' => 'Ресурсите за Canvas не съответстват на установената версия.', + 'average_reading_time' => 'Средно време за четене', + 'cancel' => 'Отмяна', + 'cancel_scheduling' => 'Отменете планирането', + 'canonical_link' => 'Каноническа препратка', + 'canonical_link_placeholder' => 'Канонически URL на оригиналния източник', + 'caption' => 'Надпис', + 'choose_a_username' => 'Изберете потребителско име...', + 'click_to_see_insights' => 'Цъкнете върху статия долу за по-детайлна информация.', + 'contributor' => 'Автор', + 'convert_to_draft' => 'Конвертирайте в чернова', + 'created' => 'Създаден', + 'dark_mode' => 'Тъмен режим', + 'default_layout' => 'Оформление по подразбиране', + 'delete' => 'Изтрийте', + 'deleted_posts_are_gone_forever' => 'Наистина ли искате да изтриете тази публикация? Това действие не може да бъде отменено.', + 'deleted_tags_are_gone_forever' => 'Наистина ли искате да изтриете този маркер? Това действие не може да бъде отменено.', + 'deleted_topics_are_gone_forever' => 'Наистина ли искате да изтриете тази категория? Това действие не може да бъде отменено.', + 'deleted_users_are_gone_forever' => 'Наистина ли искате да изтриете този потребител? Това действие не може да бъде отменено.', + 'details' => 'Подробности', + 'done' => 'Готово', + 'draft' => 'Чернова', + 'drafts' => 'Чернови', + 'drop_files_or_click_to_upload' => 'Пуснете файлове или кликнете тук, за да качите', + 'edit_post' => 'Редактирайте статията', + 'edit_profile' => 'Редактирайте профила', + 'edit_tag' => 'Редактирайте таг', + 'edit_topic' => 'Редактирайте категория', + 'edit_user' => 'Редактирайте потребител', + 'editor' => 'Редактор', + 'embed_content' => 'Добавяне на съдържание', + 'featured_image' => 'Основно изображение', + 'featured_image_caption' => 'Описание на основното изображение', + 'from' => 'От', + 'from_last_month' => 'от миналия месец', + 'general_settings' => 'Общи настройки', + 'give_your_tag_a_name' => 'Дайте име на вашият таг', + 'give_your_tag_a_name_slug' => 'дайте-име-на-вашият-таг', + 'give_your_topic_a_name' => 'Дайте име на вашата категория', + 'give_your_topic_a_name_slug' => 'дайте-име-на-вашата-категория', + 'last_thirty_days' => 'Последните 30 дни', + 'last_updated' => 'Последна актуализация', + 'layout' => 'Оформление', + 'lifetime_summary' => 'Обобщение на цялата статистика', + 'locale' => 'Локал', + 'manage_user_roles' => 'Управление на потребителски роли и разрешения.', + 'meta_description' => 'Мета описание', + 'meta_description_placeholder' => 'Мета описание на вашата публикация', + 'meta_title' => 'Мета заглавие', + 'meta_title_placeholder' => 'Мета заглавие на вашата публикация', + 'min' => 'мин', + 'monthly_summary' => 'Месечно обобщение', + 'name' => 'Име', + 'new_post' => 'Нова публикация', + 'new_tag' => 'Нов таг', + 'new_topic' => 'Нова категория', + 'new_user' => 'Нов потребител', + 'no_images_found_for' => 'Не бяха открити изображения за', + 'on' => 'на', + 'other' => 'Други', + 'paste_embed_code_to_include' => 'Поставете код за вграждане за да го добавиш в публикацията', + 'paste_or_type_a_link' => 'Поставете или въведете линк...', + 'photo_by' => 'Снимка от', + 'popular_reading_times' => 'Популярно време за четене', + 'post_scheduling_format' => 'За планирането на публикацията се използва 24-часов формат на времето и', + 'post' => 'Публикация', + 'posts' => 'Публикации', + 'publish' => 'Публикувайте', + 'publish_now' => 'Публиковайте сега', + 'published' => 'Публикувано', + 'published_on' => 'Публикувана на', + 'published_posts' => 'Публиковани статии', + 'publishing' => 'Публикуване', + 'read' => 'чети', + 'referer_unknown' => 'Прегледите на публикации в тази категория не могат надеждно да определят препращащия. Например, режим инкогнито', + 'save' => 'Запазете', + 'save_changes' => 'Запазете промените', + 'saved' => 'Запазено!', + 'saving' => 'Запазване...', + 'schedule_for_later' => 'График за по-късно', + 'schedule_to_publish' => 'График за публикуване', + 'search_free_photos' => 'Търсене на безплатни снимки с висока разделителна способност', + 'see_all_stats' => 'Прегледайте цялата статистика', + 'select_a_topic' => 'Изберете категория...', + 'select_some_tags' => 'Изберете няколко тага ...', + 'select_your_language_or_region' => 'Изберете вашият език или регион.', + 'search_canvas' => 'Canvas Търсене', + 'seo_settings' => 'Настройки SEO', + 'settings' => 'Настройки', + 'sign_out' => 'Излизане', + 'slug' => 'Слъг', + 'stats' => 'Статистика', + 'stats_are_made_available' => 'Статистическите данни ще се появят, след като започнете да публикувате!', + 'stats_for_your_posts' => 'Статистика на вашите публикации', + 'success' => 'Успех!', + 'summary' => 'Обобщение', + 'sync_with_post_description' => 'Синхронизирайте с резюмето на публикацията', + 'sync_with_post_title' => 'Синхронизирайте с заглавието на публикацията', + 'tags' => 'Тагове', + 'tags_are_great_for' => 'Таговете са чудесни за описване на детайлите на вашите публикации.', + 'tell_us_about_yourself' => 'Разкажете ни малко за себе си...', + 'tell_your_story' => 'Разкажете историята си...', + 'thirty_days' => '30 дни', + 'timezone' => 'часова зона', + 'title' => 'Заглавие', + 'to' => 'до', + 'to_update_run' => 'За актуализация, изпълнете:', + 'toggle_dark_mode' => 'Исползвайте тъмен външен вид за Canvas.', + 'toggle_digest' => 'Контролирайте дали да получавате седмично обобщение на публикуваното съдържание.', + 'topic' => 'Категория', + 'topics' => 'Категории', + 'topics_are_great_for' => 'Категориите са чудесни за широко групиране на вашите публикации.', + 'total_posts' => 'Общо публикации', + 'total_views' => 'Общо показвания', + 'type_caption_for_image' => 'Добавете надпис за изображението (по избор)', + 'unique_visit' => 'уникално посещение', + 'unique_visits' => 'уникални посещения', + 'updated' => 'Актуализирано', + 'username' => 'Име на потребител', + 'users' => 'Потребители', + 'view' => 'преглеждане', + 'view_stats' => 'Преглед на статистика', + 'views' => 'преглеждания', + 'views_by_traffic_source' => 'Преглеждания по източник на трафик', + 'views_info' => 'Преглеждането се отчита, когато посетител зареди или презареди страница.', + 'views_this_week' => 'Преглеждания тази седмица', + 'visitor' => 'Посетител', + 'visitors' => 'Посетители', + 'visits_info' => 'Посетителят се отчита, когато виждаме потребителя или браузъра за първи път за даден 24-часов период.', + 'visits' => 'Посещения', + 'waiting_until_more_data' => 'Тази информация ще бъде достъпна, когато публикацията ви ще набере повече преглеждания.', + 'weekly_digest' => 'Седмично кратко изложение', + 'wide_image' => 'Широко изображение', + 'write_on_the_go' => 'Пишете в движение с нашето приложение, готово за мобилни устройства!', + 'you_have_no_draft_posts' => 'Нямате чернови', + 'you_have_no_published_posts' => 'Нямате публикации', + 'you_have_no_tags' => 'Нямате тегове', + 'you_have_no_topics' => 'Нямате категории', + 'your_post_will_publish_at' => 'Статията ви ще бъде публикувана:', + 'your_posts_received' => 'вашите публикации са получили:', + 'your_profile' => 'Вашият профил', + 'your_stats' => 'Вашите статистически данни', + 'your_weekly_writer_summary_for' => 'Вашето седмично резюме на писател за', +]; From 3bf0ef4845e4aa7ee98dfcf5b4b933bf27b681ef Mon Sep 17 00:00:00 2001 From: John Date: Mon, 16 Nov 2020 15:15:08 +0200 Subject: [PATCH 3/5] Url slug ability to group sets by lang MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Not a perfect solution but in this case I found it the easiest one :) Group sets by lang if required cause some langs may have their own rules for the same symbols (like "Щ" in ru and bg - lines 81 and 116). After that run locale's set first (if exists) and then run default set (sets.default). --- resources/js/mixins/strings.js | 86 ++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 3 deletions(-) diff --git a/resources/js/mixins/strings.js b/resources/js/mixins/strings.js index 03d9d3bb9..0e7771484 100644 --- a/resources/js/mixins/strings.js +++ b/resources/js/mixins/strings.js @@ -20,7 +20,8 @@ export default { slugify(str) { let text = str.toString().toLowerCase().trim(); - const sets = [ + const sets = {} + sets.default = [ { to: 'a', from: '[ÀÁÂÃÄÅÆĀĂĄẠẢẤẦẨẪẬẮẰẲẴẶ]' }, { to: 'c', from: '[ÇĆĈČ]' }, { to: 'd', from: '[ÐĎĐÞ]' }, @@ -30,7 +31,6 @@ export default { { to: 'i', from: '[ÌÍÎÏĨĪĮİỈỊ]' }, { to: 'j', from: '[Ĵ]' }, { to: 'ij', from: '[IJ]' }, - { to: 'k', from: '[Ķ]' }, { to: 'l', from: '[ĹĻĽŁ]' }, { to: 'm', from: '[Ḿ]' }, { to: 'n', from: '[ÑŃŅŇ]' }, @@ -48,7 +48,87 @@ export default { { to: '-', from: "[·/_,:;']" }, ]; - sets.forEach((set) => { + /** + * russian + */ + sets.ru = [ + { to: 'a', from: '[А]' }, + { to: 'b', from: '[Б]' }, + { to: 'v', from: '[В]' }, + { to: 'g', from: '[Г]' }, + { to: 'd', from: '[Д]' }, + { to: 'e', from: '[ЕЭ]' }, + { to: 'yo', from: '[Ё]' }, + { to: 'zh', from: '[Ж]' }, + { to: 'z', from: '[З]' }, + { to: 'i', from: '[И]' }, + { to: 'j', from: '[Й]' }, + { to: 'k', from: '[К]' }, + { to: 'l', from: '[Л]' }, + { to: 'm', from: '[М]' }, + { to: 'n', from: '[Н]' }, + { to: 'o', from: '[О]' }, + { to: 'p', from: '[П]' }, + { to: 'r', from: '[Р]' }, + { to: 's', from: '[С]' }, + { to: 't', from: '[Т]' }, + { to: 'u', from: '[У]' }, + { to: 'f', from: '[Ф]' }, + { to: 'h', from: '[Х]' }, + { to: 'c', from: '[Ц]' }, + { to: 'ch', from: '[Ч]' }, + { to: 'sh', from: '[Ш]' }, + { to: 'shch', from: '[Щ]' }, + { to: 'y', from: '[Ы]' }, + { to: 'yu', from: '[Ю]' }, + { to: 'ya', from: '[Я]' }, + ]; + + /** + * bulgarian + */ + sets.bg = [ + { to: 'a', from: '[А]' }, + { to: 'b', from: '[Б]' }, + { to: 'v', from: '[В]' }, + { to: 'g', from: '[Г]' }, + { to: 'd', from: '[Д]' }, + { to: 'e', from: '[ЕЭ]' }, + { to: 'zh', from: '[Ж]' }, + { to: 'z', from: '[З]' }, + { to: 'i', from: '[И]' }, + { to: 'y', from: '[Й]' }, + { to: 'k', from: '[К]' }, + { to: 'l', from: '[Л]' }, + { to: 'm', from: '[М]' }, + { to: 'n', from: '[Н]' }, + { to: 'o', from: '[О]' }, + { to: 'p', from: '[П]' }, + { to: 'r', from: '[Р]' }, + { to: 's', from: '[С]' }, + { to: 't', from: '[Т]' }, + { to: 'u', from: '[У]' }, + { to: 'f', from: '[Ф]' }, + { to: 'h', from: '[Х]' }, + { to: 'ts', from: '[Ц]' }, + { to: 'ch', from: '[Ч]' }, + { to: 'sh', from: '[Ш]' }, + { to: 'sht', from: '[Щ]' }, + { to: 'a', from: '[Ъ]' }, + { to: 'y', from: '[Ь]' }, + { to: 'yu', from: '[Ю]' }, + { to: 'ya', from: '[Я]' }, + ]; + + // first try user locale's sets + if(Canvas.user.locale in sets){ + sets[Canvas.user.locale].forEach((set) => { + text = text.replace(new RegExp(set.from, 'gi'), set.to); + }); + } + + // after that use detault sets + sets.default.forEach((set) => { text = text.replace(new RegExp(set.from, 'gi'), set.to); }); From 22b024b8946eaef756dc6df27d81e2b97fa1f45a Mon Sep 17 00:00:00 2001 From: John Date: Mon, 16 Nov 2020 15:46:03 +0200 Subject: [PATCH 4/5] Restore deleted line --- resources/js/mixins/strings.js | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/js/mixins/strings.js b/resources/js/mixins/strings.js index 0e7771484..a4c3478b6 100644 --- a/resources/js/mixins/strings.js +++ b/resources/js/mixins/strings.js @@ -31,6 +31,7 @@ export default { { to: 'i', from: '[ÌÍÎÏĨĪĮİỈỊ]' }, { to: 'j', from: '[Ĵ]' }, { to: 'ij', from: '[IJ]' }, + { to: 'k', from: '[Ķ]' }, { to: 'l', from: '[ĹĻĽŁ]' }, { to: 'm', from: '[Ḿ]' }, { to: 'n', from: '[ÑŃŅŇ]' }, From 2cf449ba2f2e8e3d19a09417fe8284ee9c76d26f Mon Sep 17 00:00:00 2001 From: Todd Austin Date: Sun, 27 Dec 2020 12:46:45 -0600 Subject: [PATCH 5/5] revert slugify() --- resources/js/mixins/strings.js | 85 +--------------------------------- 1 file changed, 2 insertions(+), 83 deletions(-) diff --git a/resources/js/mixins/strings.js b/resources/js/mixins/strings.js index a4c3478b6..03d9d3bb9 100644 --- a/resources/js/mixins/strings.js +++ b/resources/js/mixins/strings.js @@ -20,8 +20,7 @@ export default { slugify(str) { let text = str.toString().toLowerCase().trim(); - const sets = {} - sets.default = [ + const sets = [ { to: 'a', from: '[ÀÁÂÃÄÅÆĀĂĄẠẢẤẦẨẪẬẮẰẲẴẶ]' }, { to: 'c', from: '[ÇĆĈČ]' }, { to: 'd', from: '[ÐĎĐÞ]' }, @@ -49,87 +48,7 @@ export default { { to: '-', from: "[·/_,:;']" }, ]; - /** - * russian - */ - sets.ru = [ - { to: 'a', from: '[А]' }, - { to: 'b', from: '[Б]' }, - { to: 'v', from: '[В]' }, - { to: 'g', from: '[Г]' }, - { to: 'd', from: '[Д]' }, - { to: 'e', from: '[ЕЭ]' }, - { to: 'yo', from: '[Ё]' }, - { to: 'zh', from: '[Ж]' }, - { to: 'z', from: '[З]' }, - { to: 'i', from: '[И]' }, - { to: 'j', from: '[Й]' }, - { to: 'k', from: '[К]' }, - { to: 'l', from: '[Л]' }, - { to: 'm', from: '[М]' }, - { to: 'n', from: '[Н]' }, - { to: 'o', from: '[О]' }, - { to: 'p', from: '[П]' }, - { to: 'r', from: '[Р]' }, - { to: 's', from: '[С]' }, - { to: 't', from: '[Т]' }, - { to: 'u', from: '[У]' }, - { to: 'f', from: '[Ф]' }, - { to: 'h', from: '[Х]' }, - { to: 'c', from: '[Ц]' }, - { to: 'ch', from: '[Ч]' }, - { to: 'sh', from: '[Ш]' }, - { to: 'shch', from: '[Щ]' }, - { to: 'y', from: '[Ы]' }, - { to: 'yu', from: '[Ю]' }, - { to: 'ya', from: '[Я]' }, - ]; - - /** - * bulgarian - */ - sets.bg = [ - { to: 'a', from: '[А]' }, - { to: 'b', from: '[Б]' }, - { to: 'v', from: '[В]' }, - { to: 'g', from: '[Г]' }, - { to: 'd', from: '[Д]' }, - { to: 'e', from: '[ЕЭ]' }, - { to: 'zh', from: '[Ж]' }, - { to: 'z', from: '[З]' }, - { to: 'i', from: '[И]' }, - { to: 'y', from: '[Й]' }, - { to: 'k', from: '[К]' }, - { to: 'l', from: '[Л]' }, - { to: 'm', from: '[М]' }, - { to: 'n', from: '[Н]' }, - { to: 'o', from: '[О]' }, - { to: 'p', from: '[П]' }, - { to: 'r', from: '[Р]' }, - { to: 's', from: '[С]' }, - { to: 't', from: '[Т]' }, - { to: 'u', from: '[У]' }, - { to: 'f', from: '[Ф]' }, - { to: 'h', from: '[Х]' }, - { to: 'ts', from: '[Ц]' }, - { to: 'ch', from: '[Ч]' }, - { to: 'sh', from: '[Ш]' }, - { to: 'sht', from: '[Щ]' }, - { to: 'a', from: '[Ъ]' }, - { to: 'y', from: '[Ь]' }, - { to: 'yu', from: '[Ю]' }, - { to: 'ya', from: '[Я]' }, - ]; - - // first try user locale's sets - if(Canvas.user.locale in sets){ - sets[Canvas.user.locale].forEach((set) => { - text = text.replace(new RegExp(set.from, 'gi'), set.to); - }); - } - - // after that use detault sets - sets.default.forEach((set) => { + sets.forEach((set) => { text = text.replace(new RegExp(set.from, 'gi'), set.to); });