Merge commit '2ea9336b6855b44126a55106a81e96ea68eaf8ff' into glitch-soc/merge-upstream
commit
52fb4f16ef
|
@ -1 +1 @@
|
||||||
3.3.3
|
3.3.4
|
||||||
|
|
|
@ -12,7 +12,7 @@ ARG BUILDPLATFORM=${BUILDPLATFORM}
|
||||||
|
|
||||||
# Ruby image to use for base image, change with [--build-arg RUBY_VERSION="3.3.x"]
|
# Ruby image to use for base image, change with [--build-arg RUBY_VERSION="3.3.x"]
|
||||||
# renovate: datasource=docker depName=docker.io/ruby
|
# renovate: datasource=docker depName=docker.io/ruby
|
||||||
ARG RUBY_VERSION="3.3.3"
|
ARG RUBY_VERSION="3.3.4"
|
||||||
# # Node version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"]
|
# # Node version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"]
|
||||||
# renovate: datasource=node-version depName=node
|
# renovate: datasource=node-version depName=node
|
||||||
ARG NODE_MAJOR_VERSION="20"
|
ARG NODE_MAJOR_VERSION="20"
|
||||||
|
@ -67,7 +67,9 @@ ENV \
|
||||||
# Optimize jemalloc 5.x performance
|
# Optimize jemalloc 5.x performance
|
||||||
MALLOC_CONF="narenas:2,background_thread:true,thp:never,dirty_decay_ms:1000,muzzy_decay_ms:0" \
|
MALLOC_CONF="narenas:2,background_thread:true,thp:never,dirty_decay_ms:1000,muzzy_decay_ms:0" \
|
||||||
# Enable libvips, should not be changed
|
# Enable libvips, should not be changed
|
||||||
MASTODON_USE_LIBVIPS=true
|
MASTODON_USE_LIBVIPS=true \
|
||||||
|
# Sidekiq will touch tmp/sidekiq_process_has_started_and_will_begin_processing_jobs to indicate it is ready. This can be used for a readiness check in Kubernetes
|
||||||
|
MASTODON_SIDEKIQ_READY_FILENAME=sidekiq_process_has_started_and_will_begin_processing_jobs
|
||||||
|
|
||||||
# Set default shell used for running commands
|
# Set default shell used for running commands
|
||||||
SHELL ["/bin/bash", "-o", "pipefail", "-o", "errexit", "-c"]
|
SHELL ["/bin/bash", "-o", "pipefail", "-o", "errexit", "-c"]
|
||||||
|
|
|
@ -197,7 +197,7 @@
|
||||||
"copy_icon_button.copied": "Zkopírováno do schránky",
|
"copy_icon_button.copied": "Zkopírováno do schránky",
|
||||||
"copypaste.copied": "Zkopírováno",
|
"copypaste.copied": "Zkopírováno",
|
||||||
"copypaste.copy_to_clipboard": "Zkopírovat do schránky",
|
"copypaste.copy_to_clipboard": "Zkopírovat do schránky",
|
||||||
"directory.federated": "Ze známého fedivesmíru",
|
"directory.federated": "Ze známého fediversu",
|
||||||
"directory.local": "Pouze z {domain}",
|
"directory.local": "Pouze z {domain}",
|
||||||
"directory.new_arrivals": "Nově příchozí",
|
"directory.new_arrivals": "Nově příchozí",
|
||||||
"directory.recently_active": "Nedávno aktivní",
|
"directory.recently_active": "Nedávno aktivní",
|
||||||
|
@ -213,7 +213,7 @@
|
||||||
"domain_block_modal.block_account_instead": "Raději blokovat @{name}",
|
"domain_block_modal.block_account_instead": "Raději blokovat @{name}",
|
||||||
"domain_block_modal.they_can_interact_with_old_posts": "Lidé z tohoto serveru mohou interagovat s vašimi starými příspěvky.",
|
"domain_block_modal.they_can_interact_with_old_posts": "Lidé z tohoto serveru mohou interagovat s vašimi starými příspěvky.",
|
||||||
"domain_block_modal.they_cant_follow": "Nikdo z tohoto serveru vás nemůže sledovat.",
|
"domain_block_modal.they_cant_follow": "Nikdo z tohoto serveru vás nemůže sledovat.",
|
||||||
"domain_block_modal.they_wont_know": "Nebude vědět, že je zablokován.",
|
"domain_block_modal.they_wont_know": "Nebude vědět, že je zablokován*a.",
|
||||||
"domain_block_modal.title": "Blokovat doménu?",
|
"domain_block_modal.title": "Blokovat doménu?",
|
||||||
"domain_block_modal.you_will_lose_followers": "Všichni vaši sledující z tohoto serveru budou odstraněni.",
|
"domain_block_modal.you_will_lose_followers": "Všichni vaši sledující z tohoto serveru budou odstraněni.",
|
||||||
"domain_block_modal.you_wont_see_posts": "Neuvidíte příspěvky ani upozornění od uživatelů z tohoto serveru.",
|
"domain_block_modal.you_wont_see_posts": "Neuvidíte příspěvky ani upozornění od uživatelů z tohoto serveru.",
|
||||||
|
@ -341,7 +341,7 @@
|
||||||
"hashtag.column_settings.tag_mode.any": "Jakýkoliv z těchto",
|
"hashtag.column_settings.tag_mode.any": "Jakýkoliv z těchto",
|
||||||
"hashtag.column_settings.tag_mode.none": "Žádný z těchto",
|
"hashtag.column_settings.tag_mode.none": "Žádný z těchto",
|
||||||
"hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci další štítky",
|
"hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci další štítky",
|
||||||
"hashtag.counter_by_accounts": "{count, plural, one {{counter} účastník} few {{counter} účastníci} other {{counter} účastníků}}",
|
"hashtag.counter_by_accounts": "{count, plural, one {{counter} účastník*ice} few {{counter} účastníci} other {{counter} účastníků}}",
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
|
||||||
"hashtag.counter_by_uses_today": "Dnes {count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
|
"hashtag.counter_by_uses_today": "Dnes {count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
|
||||||
"hashtag.follow": "Sledovat hashtag",
|
"hashtag.follow": "Sledovat hashtag",
|
||||||
|
@ -440,7 +440,7 @@
|
||||||
"mute_modal.show_options": "Zobrazit možnosti",
|
"mute_modal.show_options": "Zobrazit možnosti",
|
||||||
"mute_modal.they_can_mention_and_follow": "Mohou vás zmínit a sledovat, ale neuvidíte je.",
|
"mute_modal.they_can_mention_and_follow": "Mohou vás zmínit a sledovat, ale neuvidíte je.",
|
||||||
"mute_modal.they_wont_know": "Nebudou vědět, že byli skryti.",
|
"mute_modal.they_wont_know": "Nebudou vědět, že byli skryti.",
|
||||||
"mute_modal.title": "Ztlumit uživatele?",
|
"mute_modal.title": "Ztlumit uživatele*ku?",
|
||||||
"mute_modal.you_wont_see_mentions": "Neuvidíte příspěvky, které je zmiňují.",
|
"mute_modal.you_wont_see_mentions": "Neuvidíte příspěvky, které je zmiňují.",
|
||||||
"mute_modal.you_wont_see_posts": "Stále budou moci vidět vaše příspěvky, ale vy jejich neuvidíte.",
|
"mute_modal.you_wont_see_posts": "Stále budou moci vidět vaše příspěvky, ale vy jejich neuvidíte.",
|
||||||
"navigation_bar.about": "O aplikaci",
|
"navigation_bar.about": "O aplikaci",
|
||||||
|
@ -566,8 +566,8 @@
|
||||||
"onboarding.share.message": "Jsem {username} na #Mastodonu! Pojď mě sledovat na {url}",
|
"onboarding.share.message": "Jsem {username} na #Mastodonu! Pojď mě sledovat na {url}",
|
||||||
"onboarding.share.next_steps": "Možné další kroky:",
|
"onboarding.share.next_steps": "Možné další kroky:",
|
||||||
"onboarding.share.title": "Sdílejte svůj profil",
|
"onboarding.share.title": "Sdílejte svůj profil",
|
||||||
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
|
"onboarding.start.lead": "Nyní jste součástí Mastodonu, unikátní sociální sítě, kde vy - ne algoritmus - vytváří vaše vlastní prožitky. Začněte na této nové sociální platformě:",
|
||||||
"onboarding.start.skip": "Want to skip right ahead?",
|
"onboarding.start.skip": "Nepotřebujete pomoci začít?",
|
||||||
"onboarding.start.title": "Dokázali jste to!",
|
"onboarding.start.title": "Dokázali jste to!",
|
||||||
"onboarding.steps.follow_people.body": "Mastodon je o sledování zajimavých lidí.",
|
"onboarding.steps.follow_people.body": "Mastodon je o sledování zajimavých lidí.",
|
||||||
"onboarding.steps.follow_people.title": "Přispůsobit vlastní domovský kanál",
|
"onboarding.steps.follow_people.title": "Přispůsobit vlastní domovský kanál",
|
||||||
|
@ -581,7 +581,7 @@
|
||||||
"onboarding.tips.accounts_from_other_servers": "<strong>Víte, že?</strong> Protože je Mastodon decentralizovaný, některé profily, na které narazíte, budou hostovány na jiných serverech, než je ten váš. A přesto s nimi můžete bezproblémově komunikovat! Jejich server se nachází v druhé polovině uživatelského jména!",
|
"onboarding.tips.accounts_from_other_servers": "<strong>Víte, že?</strong> Protože je Mastodon decentralizovaný, některé profily, na které narazíte, budou hostovány na jiných serverech, než je ten váš. A přesto s nimi můžete bezproblémově komunikovat! Jejich server se nachází v druhé polovině uživatelského jména!",
|
||||||
"onboarding.tips.migration": "<strong>Víte, že?</strong> Pokud máte pocit, že {domain} pro vás v budoucnu není vhodnou volbou, můžete se přesunout na jiný Mastodon server, aniž byste přišli o své sledující. Můžete dokonce hostovat svůj vlastní server!",
|
"onboarding.tips.migration": "<strong>Víte, že?</strong> Pokud máte pocit, že {domain} pro vás v budoucnu není vhodnou volbou, můžete se přesunout na jiný Mastodon server, aniž byste přišli o své sledující. Můžete dokonce hostovat svůj vlastní server!",
|
||||||
"onboarding.tips.verification": "<strong>Víte, že?</strong> Svůj účet můžete ověřit tak, že na své webové stránky umístíte odkaz na váš Mastodon profil a odkaz na stránku přidáte do svého profilu. Nejsou k tomu potřeba žádné poplatky ani dokumenty!",
|
"onboarding.tips.verification": "<strong>Víte, že?</strong> Svůj účet můžete ověřit tak, že na své webové stránky umístíte odkaz na váš Mastodon profil a odkaz na stránku přidáte do svého profilu. Nejsou k tomu potřeba žádné poplatky ani dokumenty!",
|
||||||
"password_confirmation.exceeds_maxlength": "Potvrzení hesla překračuje maximální délku hesla",
|
"password_confirmation.exceeds_maxlength": "Potvrzení hesla překračuje maximální povolenou délku hesla",
|
||||||
"password_confirmation.mismatching": "Zadaná hesla se neshodují",
|
"password_confirmation.mismatching": "Zadaná hesla se neshodují",
|
||||||
"picture_in_picture.restore": "Vrátit zpět",
|
"picture_in_picture.restore": "Vrátit zpět",
|
||||||
"poll.closed": "Uzavřeno",
|
"poll.closed": "Uzavřeno",
|
||||||
|
@ -665,7 +665,7 @@
|
||||||
"report.unfollow": "Přestat sledovat @{name}",
|
"report.unfollow": "Přestat sledovat @{name}",
|
||||||
"report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jeho příspěvky ve své domovské časové ose, přestaňte jej sledovat.",
|
"report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jeho příspěvky ve své domovské časové ose, přestaňte jej sledovat.",
|
||||||
"report_notification.attached_statuses": "{count, plural, one {{count} připojený příspěvek} few {{count} připojené příspěvky} many {{count} připojených příspěvků} other {{count} připojených příspěvků}}",
|
"report_notification.attached_statuses": "{count, plural, one {{count} připojený příspěvek} few {{count} připojené příspěvky} many {{count} připojených příspěvků} other {{count} připojených příspěvků}}",
|
||||||
"report_notification.categories.legal": "Zákonné",
|
"report_notification.categories.legal": "Právní ustanovení",
|
||||||
"report_notification.categories.other": "Ostatní",
|
"report_notification.categories.other": "Ostatní",
|
||||||
"report_notification.categories.spam": "Spam",
|
"report_notification.categories.spam": "Spam",
|
||||||
"report_notification.categories.violation": "Porušení pravidla",
|
"report_notification.categories.violation": "Porušení pravidla",
|
||||||
|
|
|
@ -82,6 +82,7 @@
|
||||||
"alert.unexpected.title": "Ийой!",
|
"alert.unexpected.title": "Ийой!",
|
||||||
"announcement.announcement": "Голошіня",
|
"announcement.announcement": "Голошіня",
|
||||||
"audio.hide": "Зпрятати звук",
|
"audio.hide": "Зпрятати звук",
|
||||||
|
"block_modal.remote_users_caveat": "Попросиме ґазду сервера {domain} честовати вашоє рішеня. Айбо не ґарантуєме повный соглас, бо даякі серверы можут брати блокованя по-инчакому. Публичні дописы годно быти видко незалоґованым хосновачам.",
|
||||||
"block_modal.show_less": "Указати менше",
|
"block_modal.show_less": "Указати менше",
|
||||||
"block_modal.show_more": "Указати бульше",
|
"block_modal.show_more": "Указати бульше",
|
||||||
"block_modal.they_cant_mention": "Они не можут вас споминати авадь слідовати.",
|
"block_modal.they_cant_mention": "Они не можут вас споминати авадь слідовати.",
|
||||||
|
@ -111,5 +112,43 @@
|
||||||
"column.direct": "Шептаня",
|
"column.direct": "Шептаня",
|
||||||
"column.directory": "Никати профілі",
|
"column.directory": "Никати профілі",
|
||||||
"column.domain_blocks": "Заблоковані домены",
|
"column.domain_blocks": "Заблоковані домены",
|
||||||
"column.favourites": "Убраноє"
|
"column.favourites": "Убраноє",
|
||||||
|
"column.follow_requests": "Запросы на пудписку",
|
||||||
|
"column.lists": "Исписы",
|
||||||
|
"column.mutes": "Стишені хосновачі",
|
||||||
|
"column.notifications": "Убвіщеня",
|
||||||
|
"column.pins": "Закріплені публикації",
|
||||||
|
"column_back_button.label": "Назад",
|
||||||
|
"column_header.hide_settings": "Спрятати штімованя",
|
||||||
|
"column_header.moveLeft_settings": "Посунути колонку до ліва",
|
||||||
|
"column_header.moveRight_settings": "Посунути колонку до права",
|
||||||
|
"column_header.pin": "Закріпити",
|
||||||
|
"column_header.show_settings": "Указати штімованя",
|
||||||
|
"column_header.unpin": "Удкріпити",
|
||||||
|
"column_subheading.settings": "Штімованя",
|
||||||
|
"compose.language.change": "Поміняти язык",
|
||||||
|
"compose.language.search": "Глядати языкы...",
|
||||||
|
"compose.published.body": "Пост опубликованый.",
|
||||||
|
"compose.saved.body": "Пост усокоченый.",
|
||||||
|
"compose_form.direct_message_warning_learn_more": "Читайте бульше",
|
||||||
|
"compose_form.encryption_warning": "Публикації на Mastodon не шіфрувут ся. Не шырьте чутливу інформацію через Mastodon.",
|
||||||
|
"compose_form.hashtag_warning": "Сись пост не буде ся появляти у исписови по гештеґови, бо вун не є публичный. Лишек публичні посты буде видко за гештеґом.",
|
||||||
|
"compose_form.lock_disclaimer": "Ваш профіл є {locked}. Хоть-тко може ся на вас пудписати, обы видїти ваші ексклузівні посты.",
|
||||||
|
"compose_form.lock_disclaimer.lock": "замкнено",
|
||||||
|
"compose_form.placeholder": "Што нового?",
|
||||||
|
"compose_form.poll.duration": "Трывалость убзвідованя",
|
||||||
|
"compose_form.poll.multiple": "Дакулько варіантув",
|
||||||
|
"compose_form.poll.option_placeholder": "Варіант {number}",
|
||||||
|
"compose_form.poll.single": "Уберіт єден",
|
||||||
|
"compose_form.poll.switch_to_multiple": "Змінити убзвідованя обы поволити дакулько варіантув",
|
||||||
|
"compose_form.poll.switch_to_single": "Змінити убзвідованя обы поволити лишек єден варіант",
|
||||||
|
"compose_form.poll.type": "Стіл",
|
||||||
|
"compose_form.publish": "Публикація",
|
||||||
|
"compose_form.publish_form": "Нова публикація",
|
||||||
|
"compose_form.reply": "Удповідь",
|
||||||
|
"copypaste.copy_to_clipboard": "Копіровати у памнять",
|
||||||
|
"directory.recently_active": "Недавно актівні",
|
||||||
|
"disabled_account_banner.account_settings": "Штімованя акаунта",
|
||||||
|
"disabled_account_banner.text": "Ваш акаунт {disabledAccount} раз є неактівный.",
|
||||||
|
"dismissable_banner.community_timeline": "Туй сут недавні публикації уд профілув на серверови {domain}."
|
||||||
}
|
}
|
||||||
|
|
|
@ -1366,6 +1366,8 @@ body > [data-popper-placement] {
|
||||||
min-height: 54px;
|
min-height: 54px;
|
||||||
border-bottom: 1px solid var(--background-border-color);
|
border-bottom: 1px solid var(--background-border-color);
|
||||||
cursor: auto;
|
cursor: auto;
|
||||||
|
opacity: 1;
|
||||||
|
animation: fade 150ms linear;
|
||||||
|
|
||||||
@keyframes fade {
|
@keyframes fade {
|
||||||
0% {
|
0% {
|
||||||
|
@ -1377,9 +1379,6 @@ body > [data-popper-placement] {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
opacity: 1;
|
|
||||||
animation: fade 150ms linear;
|
|
||||||
|
|
||||||
.media-gallery,
|
.media-gallery,
|
||||||
.video-player,
|
.video-player,
|
||||||
.audio-player,
|
.audio-player,
|
||||||
|
@ -4851,8 +4850,10 @@ a.status-card {
|
||||||
&__menu {
|
&__menu {
|
||||||
@include search-popout;
|
@include search-popout;
|
||||||
|
|
||||||
padding: 0;
|
& {
|
||||||
background: $ui-secondary-color;
|
padding: 0;
|
||||||
|
background: $ui-secondary-color;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__menu-list {
|
&__menu-list {
|
||||||
|
|
|
@ -274,7 +274,7 @@ class LinkDetailsExtractor
|
||||||
end
|
end
|
||||||
|
|
||||||
def detect_encoding_and_parse_document
|
def detect_encoding_and_parse_document
|
||||||
[detect_encoding, nil, @html_charset].uniq.each do |encoding|
|
[detect_encoding, nil, header_encoding].uniq.each do |encoding|
|
||||||
document = Nokogiri::HTML(@html, nil, encoding)
|
document = Nokogiri::HTML(@html, nil, encoding)
|
||||||
return document if document.to_s.valid_encoding?
|
return document if document.to_s.valid_encoding?
|
||||||
end
|
end
|
||||||
|
@ -286,6 +286,13 @@ class LinkDetailsExtractor
|
||||||
guess&.fetch(:confidence, 0).to_i > 60 ? guess&.fetch(:encoding, nil) : nil
|
guess&.fetch(:confidence, 0).to_i > 60 ? guess&.fetch(:encoding, nil) : nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def header_encoding
|
||||||
|
Encoding.find(@html_charset).name if @html_charset
|
||||||
|
rescue ArgumentError
|
||||||
|
# Encoding from HTTP header is not recognized by ruby
|
||||||
|
nil
|
||||||
|
end
|
||||||
|
|
||||||
def detector
|
def detector
|
||||||
@detector ||= CharlockHolmes::EncodingDetector.new.tap do |detector|
|
@detector ||= CharlockHolmes::EncodingDetector.new.tap do |detector|
|
||||||
detector.strip_tags = true
|
detector.strip_tags = true
|
||||||
|
|
|
@ -2,19 +2,24 @@
|
||||||
|
|
||||||
require_relative '../../lib/mastodon/sidekiq_middleware'
|
require_relative '../../lib/mastodon/sidekiq_middleware'
|
||||||
|
|
||||||
SIDEKIQ_WILL_PROCESSES_JOBS_FILE = Rails.root.join('tmp', 'sidekiq_process_has_started_and_will_begin_processing_jobs').freeze
|
|
||||||
|
|
||||||
Sidekiq.configure_server do |config|
|
Sidekiq.configure_server do |config|
|
||||||
config.redis = REDIS_SIDEKIQ_PARAMS
|
config.redis = REDIS_SIDEKIQ_PARAMS
|
||||||
|
|
||||||
# This is used in Kubernetes setups, to signal that the Sidekiq process has started and will begin processing jobs
|
# This is used in Kubernetes setups, to signal that the Sidekiq process has started and will begin processing jobs
|
||||||
# This comes from https://github.com/sidekiq/sidekiq/wiki/Kubernetes#sidekiq
|
# This comes from https://github.com/sidekiq/sidekiq/wiki/Kubernetes#sidekiq
|
||||||
config.on(:startup) do
|
ready_filename = ENV.fetch('MASTODON_SIDEKIQ_READY_FILENAME', nil)
|
||||||
FileUtils.touch(SIDEKIQ_WILL_PROCESSES_JOBS_FILE)
|
if ready_filename
|
||||||
end
|
raise 'MASTODON_SIDEKIQ_READY_FILENAME is not a valid filename' if File.basename(ready_filename) != ready_filename
|
||||||
|
|
||||||
config.on(:shutdown) do
|
ready_path = Rails.root.join('tmp', ready_filename)
|
||||||
FileUtils.rm_f(SIDEKIQ_WILL_PROCESSES_JOBS_FILE)
|
|
||||||
|
config.on(:startup) do
|
||||||
|
FileUtils.touch(ready_path)
|
||||||
|
end
|
||||||
|
|
||||||
|
config.on(:shutdown) do
|
||||||
|
FileUtils.rm_f(ready_path)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
config.server_middleware do |chain|
|
config.server_middleware do |chain|
|
||||||
|
|
|
@ -118,7 +118,7 @@ cs:
|
||||||
promote: Povýšit
|
promote: Povýšit
|
||||||
protocol: Protokol
|
protocol: Protokol
|
||||||
public: Veřejný
|
public: Veřejný
|
||||||
push_subscription_expires: Odebírání PuSH expiruje
|
push_subscription_expires: Odebírání PuSH vyprší
|
||||||
redownload: Obnovit profil
|
redownload: Obnovit profil
|
||||||
redownloaded_msg: Profil účtu %{username} byl úspěšně obnoven ze zdroje
|
redownloaded_msg: Profil účtu %{username} byl úspěšně obnoven ze zdroje
|
||||||
reject: Zamítnout
|
reject: Zamítnout
|
||||||
|
|
|
@ -25,7 +25,7 @@ lv:
|
||||||
edit: Labot
|
edit: Labot
|
||||||
submit: Apstiprināt
|
submit: Apstiprināt
|
||||||
confirmations:
|
confirmations:
|
||||||
destroy: Vai esi pārliecināts?
|
destroy: Vai tiešām?
|
||||||
edit:
|
edit:
|
||||||
title: Labot lietotni
|
title: Labot lietotni
|
||||||
form:
|
form:
|
||||||
|
@ -69,7 +69,7 @@ lv:
|
||||||
buttons:
|
buttons:
|
||||||
revoke: Atsaukt
|
revoke: Atsaukt
|
||||||
confirmations:
|
confirmations:
|
||||||
revoke: Vai esi pārliecināts?
|
revoke: Vai tiešām?
|
||||||
index:
|
index:
|
||||||
authorized_at: Autorizētas %{date}
|
authorized_at: Autorizētas %{date}
|
||||||
description_html: Šīs ir lietotnes, kas var piekļūt Tavam kontam ar API. Ja šeit ir lietotnes, kuras neatpazīsti, vai lietotne darbojas ne tā, kā paredzēts, vari atsaukt tās piekļuvi.
|
description_html: Šīs ir lietotnes, kas var piekļūt Tavam kontam ar API. Ja šeit ir lietotnes, kuras neatpazīsti, vai lietotne darbojas ne tā, kā paredzēts, vari atsaukt tās piekļuvi.
|
||||||
|
@ -135,6 +135,7 @@ lv:
|
||||||
media: Multividesu pielikumi
|
media: Multividesu pielikumi
|
||||||
mutes: Apklusinātie
|
mutes: Apklusinātie
|
||||||
notifications: Paziņojumi
|
notifications: Paziņojumi
|
||||||
|
profile: Tavs Mastodon profils
|
||||||
push: Uznirstošie paziņojumi
|
push: Uznirstošie paziņojumi
|
||||||
reports: Ziņojumi
|
reports: Ziņojumi
|
||||||
search: Meklēt
|
search: Meklēt
|
||||||
|
@ -165,6 +166,7 @@ lv:
|
||||||
admin:write:reports: veikt moderācijas darbības pārskatos
|
admin:write:reports: veikt moderācijas darbības pārskatos
|
||||||
crypto: lieto pilnīgu šifrēšanu
|
crypto: lieto pilnīgu šifrēšanu
|
||||||
follow: mainīt konta attiecības
|
follow: mainīt konta attiecības
|
||||||
|
profile: lasīt tikai Tava konta profila informāciju
|
||||||
push: saņemt savus push paziņojumus
|
push: saņemt savus push paziņojumus
|
||||||
read: lasīt visus sava konta datus
|
read: lasīt visus sava konta datus
|
||||||
read:accounts: apskatīt kontu informāciju
|
read:accounts: apskatīt kontu informāciju
|
||||||
|
|
|
@ -1 +1,21 @@
|
||||||
|
---
|
||||||
ry:
|
ry:
|
||||||
|
accounts:
|
||||||
|
follow: Пудписати ся
|
||||||
|
following: Пудпискы
|
||||||
|
posts:
|
||||||
|
few: Публикації
|
||||||
|
one: Публикація
|
||||||
|
other: Публикації
|
||||||
|
posts_tab_heading: Публикації
|
||||||
|
imports:
|
||||||
|
titles:
|
||||||
|
following: Імпортованя пудписок
|
||||||
|
types:
|
||||||
|
following: Испис пудписок
|
||||||
|
notification_mailer:
|
||||||
|
follow:
|
||||||
|
body: "%{name} ся пудписує ся на вас!"
|
||||||
|
subject: "%{name} ся пудписує ся на вас"
|
||||||
|
relationships:
|
||||||
|
following: Пудпискы
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
HTTP/1.1 200 OK
|
||||||
|
server: nginx
|
||||||
|
date: Thu, 13 Jun 2024 14:33:13 GMT
|
||||||
|
content-type: text/html; charset=utf8
|
||||||
|
content-length: 192
|
||||||
|
accept-ranges: bytes
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Webserver Configs R Us</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h2>Welcome</h2>
|
||||||
|
<p>Sneaky non-UTF character: á</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -32,6 +32,7 @@ RSpec.describe FetchLinkCardService do
|
||||||
stub_request(:get, 'http://example.com/aergerliche-umlaute').to_return(request_fixture('redirect_with_utf8_url.txt'))
|
stub_request(:get, 'http://example.com/aergerliche-umlaute').to_return(request_fixture('redirect_with_utf8_url.txt'))
|
||||||
stub_request(:get, 'http://example.com/page_without_title').to_return(request_fixture('page_without_title.txt'))
|
stub_request(:get, 'http://example.com/page_without_title').to_return(request_fixture('page_without_title.txt'))
|
||||||
stub_request(:get, 'http://example.com/long_canonical_url').to_return(request_fixture('long_canonical_url.txt'))
|
stub_request(:get, 'http://example.com/long_canonical_url').to_return(request_fixture('long_canonical_url.txt'))
|
||||||
|
stub_request(:get, 'http://example.com/alternative_utf8_spelling_in_header').to_return(request_fixture('alternative_utf8_spelling_in_header.txt'))
|
||||||
|
|
||||||
Rails.cache.write('oembed_endpoint:example.com', oembed_cache) if oembed_cache
|
Rails.cache.write('oembed_endpoint:example.com', oembed_cache) if oembed_cache
|
||||||
|
|
||||||
|
@ -292,6 +293,14 @@ RSpec.describe FetchLinkCardService do
|
||||||
expect(status.preview_card).to be_nil
|
expect(status.preview_card).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with a URL where the `Content-Type` header uses `utf8` instead of `utf-8`' do
|
||||||
|
let(:status) { Fabricate(:status, text: 'test http://example.com/alternative_utf8_spelling_in_header') }
|
||||||
|
|
||||||
|
it 'does not create a preview card' do
|
||||||
|
expect(status.preview_card.title).to eq 'Webserver Configs R Us'
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with a remote status' do
|
context 'with a remote status' do
|
||||||
|
|
|
@ -15486,15 +15486,15 @@ __metadata:
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"sass@npm:^1.62.1":
|
"sass@npm:^1.62.1":
|
||||||
version: 1.77.6
|
version: 1.77.7
|
||||||
resolution: "sass@npm:1.77.6"
|
resolution: "sass@npm:1.77.7"
|
||||||
dependencies:
|
dependencies:
|
||||||
chokidar: "npm:>=3.0.0 <4.0.0"
|
chokidar: "npm:>=3.0.0 <4.0.0"
|
||||||
immutable: "npm:^4.0.0"
|
immutable: "npm:^4.0.0"
|
||||||
source-map-js: "npm:>=0.6.2 <2.0.0"
|
source-map-js: "npm:>=0.6.2 <2.0.0"
|
||||||
bin:
|
bin:
|
||||||
sass: sass.js
|
sass: sass.js
|
||||||
checksum: 10c0/fe5a393c0aa29eda9f83c06be9b94788b61fe8bad0616ee6e3a25d21ab504f430d40c0064fdca89b02b8e426411ae6dcd906c91f2e48c263575c3d392b6daeb1
|
checksum: 10c0/6cacbf4b5165d30a9be0f09438aed85ff0617e5087442e65c23c8464750ff1b9988855a58f36b420b62f992d1e82403f99810aba7731519d3d026847e21a5635
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue