mirror of
https://git.kescher.at/CatCatNya/catstodon.git
synced 2024-11-25 17:51:36 +01:00
Merge commit '8c8bee5a36e0cd0b5d35903f8891896447c3e060' into glitch-soc/merge-upstream
This commit is contained in:
commit
db0b12e5dc
7 changed files with 37 additions and 26 deletions
|
@ -159,7 +159,7 @@ GEM
|
|||
case_transform (0.2)
|
||||
activesupport
|
||||
cbor (0.5.9.8)
|
||||
charlock_holmes (0.7.8)
|
||||
charlock_holmes (0.7.9)
|
||||
chewy (7.6.0)
|
||||
activesupport (>= 5.2)
|
||||
elasticsearch (>= 7.14.0, < 8)
|
||||
|
@ -583,7 +583,7 @@ GEM
|
|||
orm_adapter (0.5.0)
|
||||
ox (2.14.18)
|
||||
parallel (1.25.1)
|
||||
parser (3.3.3.0)
|
||||
parser (3.3.4.0)
|
||||
ast (~> 2.4.1)
|
||||
racc
|
||||
parslet (2.0.0)
|
||||
|
@ -733,13 +733,13 @@ GEM
|
|||
rspec-mocks (~> 3.0)
|
||||
sidekiq (>= 5, < 8)
|
||||
rspec-support (3.13.1)
|
||||
rubocop (1.64.1)
|
||||
rubocop (1.65.0)
|
||||
json (~> 2.3)
|
||||
language_server-protocol (>= 3.17.0)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 3.3.0.2)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 1.8, < 3.0)
|
||||
regexp_parser (>= 2.4, < 3.0)
|
||||
rexml (>= 3.2.5, < 4.0)
|
||||
rubocop-ast (>= 1.31.1, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"about.disclaimer": "ماستدون برنامج حر ومفتوح المصدر وعلامة تجارية لـ Mastodon GmbH.",
|
||||
"about.domain_blocks.no_reason_available": "السبب غير متوفر",
|
||||
"about.domain_blocks.preamble": "يسمح لك ماستدون عموماً بعرض المحتوى من المستخدمين من أي خادم آخر في الفدرالية والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادم بالذات.",
|
||||
"about.domain_blocks.silenced.explanation": "عموماً، لن ترى ملفات التعريف والمحتوى من هذا الخادم، إلا إذا كنت تبحث عنه بشكل صريح أو تختار أن تتابعه.",
|
||||
"about.domain_blocks.silenced.explanation": "لن تظهر لك ملفات التعريف الشخصية والمحتوى من هذا الخادوم، إلا إن بحثت عنه عمدًا أو تابعته.",
|
||||
"about.domain_blocks.silenced.title": "محدود",
|
||||
"about.domain_blocks.suspended.explanation": "لن يتم معالجة أي بيانات من هذا الخادم أو تخزينها أو تبادلها، مما يجعل أي تفاعل أو اتصال مع المستخدمين من هذا الخادم مستحيلا.",
|
||||
"about.domain_blocks.suspended.title": "مُعلّق",
|
||||
|
@ -21,7 +21,7 @@
|
|||
"account.blocked": "محظور",
|
||||
"account.browse_more_on_origin_server": "تصفح المزيد في الملف الشخصي الأصلي",
|
||||
"account.cancel_follow_request": "إلغاء طلب المتابعة",
|
||||
"account.copy": "نسخ الرابط إلى الحساب",
|
||||
"account.copy": "نسخ الرابط إلى الملف الشخصي",
|
||||
"account.direct": "إشارة خاصة لـ @{name}",
|
||||
"account.disable_notifications": "توقف عن إشعاري عندما ينشر @{name}",
|
||||
"account.domain_blocked": "اسم النِّطاق محظور",
|
||||
|
@ -32,7 +32,7 @@
|
|||
"account.featured_tags.last_status_never": "لا توجد رسائل",
|
||||
"account.featured_tags.title": "وسوم {name} المميَّزة",
|
||||
"account.follow": "متابعة",
|
||||
"account.follow_back": "رد المتابعة",
|
||||
"account.follow_back": "تابعهم بالمثل",
|
||||
"account.followers": "مُتابِعون",
|
||||
"account.followers.empty": "لا أحدَ يُتابع هذا المُستخدم إلى حد الآن.",
|
||||
"account.following": "الاشتراكات",
|
||||
|
@ -51,7 +51,7 @@
|
|||
"account.mute_notifications_short": "كتم الإشعارات",
|
||||
"account.mute_short": "اكتم",
|
||||
"account.muted": "مَكتوم",
|
||||
"account.mutual": "متبادل",
|
||||
"account.mutual": "متبادلة",
|
||||
"account.no_bio": "لم يتم تقديم وصف.",
|
||||
"account.open_original_page": "افتح الصفحة الأصلية",
|
||||
"account.posts": "منشورات",
|
||||
|
@ -70,8 +70,8 @@
|
|||
"account.unmute_notifications_short": "إلغاء كَتم الإشعارات",
|
||||
"account.unmute_short": "إلغاء الكتم",
|
||||
"account_note.placeholder": "اضغط لإضافة مُلاحظة",
|
||||
"admin.dashboard.daily_retention": "معدل الاحتفاظ بالمستخدم بعد التسجيل بيوم",
|
||||
"admin.dashboard.monthly_retention": "معدل الاحتفاظ بالمستخدم بعد التسجيل بالشهور",
|
||||
"admin.dashboard.daily_retention": "معدّل بقاء المستخدمين بعد إنشاء الحسابات، بالأيام",
|
||||
"admin.dashboard.monthly_retention": "معدّل بقاء المستخدمين بعد إنشاء الحسابات، بالشهور",
|
||||
"admin.dashboard.retention.average": "المعدل",
|
||||
"admin.dashboard.retention.cohort": "شهر التسجيل",
|
||||
"admin.dashboard.retention.cohort_size": "المستخدمون الجدد",
|
||||
|
@ -87,12 +87,12 @@
|
|||
"attachments_list.unprocessed": "(غير معالَج)",
|
||||
"audio.hide": "إخفاء المقطع الصوتي",
|
||||
"block_modal.remote_users_caveat": "سوف نطلب من الخادم {domain} أن يحترم قرارك، لكن الالتزام غير مضمون لأن بعض الخواديم قد تتعامل مع نصوص الكتل بشكل مختلف. قد تظل المنشورات العامة مرئية للمستخدمين غير المسجلين الدخول.",
|
||||
"block_modal.show_less": "أظهر الأقل",
|
||||
"block_modal.show_more": "أظهر المزيد",
|
||||
"block_modal.show_less": "تفاصيل أقلّ",
|
||||
"block_modal.show_more": "تفاصيل أكثر",
|
||||
"block_modal.they_cant_mention": "لن يستطيع ذِكرك أو متابعتك.",
|
||||
"block_modal.they_cant_see_posts": "لن يستطيع رؤية منشوراتك ولن ترى منشوراته.",
|
||||
"block_modal.they_will_know": "يمكنه أن يرى أنه قد تم حظره.",
|
||||
"block_modal.title": "أتريد حظر المستخدم؟",
|
||||
"block_modal.they_cant_see_posts": "لن يستطيع مطالعة منشوراتك ولن تطالع منشوراته.",
|
||||
"block_modal.they_will_know": "سيعلم أنه قد حُظِر.",
|
||||
"block_modal.title": "أتريد حظر هذا المستخدم؟",
|
||||
"block_modal.you_wont_see_mentions": "لن تر المنشورات التي يُشار فيهم إليه.",
|
||||
"boost_modal.combo": "يُمكنك الضّغط على {combo} لتخطي هذا في المرة المُقبلة",
|
||||
"bundle_column_error.copy_stacktrace": "انسخ تقرير الخطأ",
|
||||
|
@ -156,7 +156,7 @@
|
|||
"compose_form.poll.single": "اختر واحدا",
|
||||
"compose_form.poll.switch_to_multiple": "تغيِير الاستطلاع للسماح باِخيارات مُتعدِّدة",
|
||||
"compose_form.poll.switch_to_single": "تغيِير الاستطلاع للسماح باِخيار واحد فقط",
|
||||
"compose_form.poll.type": "الأسلوب",
|
||||
"compose_form.poll.type": "الطراز",
|
||||
"compose_form.publish": "نشر",
|
||||
"compose_form.publish_form": "منشور جديد",
|
||||
"compose_form.reply": "ردّ",
|
||||
|
|
|
@ -28,9 +28,12 @@
|
|||
"account.featured_tags.last_status_at": "Tasuffeɣt taneggarut ass n {date}",
|
||||
"account.featured_tags.last_status_never": "Ulac tisuffaɣ",
|
||||
"account.follow": "Ḍfer",
|
||||
"account.follow_back": "Ḍfer-it ula d kečč·m",
|
||||
"account.followers": "Imeḍfaren",
|
||||
"account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.",
|
||||
"account.followers_counter": "{count, plural, one {{counter} n umḍfar} other {{counter} n yimeḍfaren}}",
|
||||
"account.following": "Yeṭṭafaṛ",
|
||||
"account.following_counter": "{count, plural, one {{counter} yettwaḍfaren} other {{counter} yettwaḍfaren}}",
|
||||
"account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.",
|
||||
"account.go_to_profile": "Ddu ɣer umaɣnu",
|
||||
"account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}",
|
||||
|
@ -53,6 +56,7 @@
|
|||
"account.requested_follow": "{name} yessuter ad k·m-yeḍfer",
|
||||
"account.share": "Bḍu amaɣnu n @{name}",
|
||||
"account.show_reblogs": "Ssken-d inebḍa n @{name}",
|
||||
"account.statuses_counter": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}}",
|
||||
"account.unblock": "Serreḥ i @{name}",
|
||||
"account.unblock_domain": "Ssken-d {domain}",
|
||||
"account.unblock_short": "Serreḥ",
|
||||
|
@ -560,6 +564,7 @@
|
|||
"status.edited_x_times": "Tettwaẓreg {count, plural, one {{count} n tikkelt} other {{count} n tikkal}}",
|
||||
"status.embed": "Seddu",
|
||||
"status.favourite": "Amenyaf",
|
||||
"status.favourites": "{count, plural, one {n usmenyaf} other {n ismenyafen}}",
|
||||
"status.filter": "Sizdeg tassufeɣt-a",
|
||||
"status.filtered": "Yettwasizdeg",
|
||||
"status.hide": "Ffer tasuffeɣt",
|
||||
|
@ -579,6 +584,7 @@
|
|||
"status.read_more": "Issin ugar",
|
||||
"status.reblog": "Bḍu",
|
||||
"status.reblogged_by": "Yebḍa-tt {name}",
|
||||
"status.reblogs": "{count, plural, one {n usnerni} other {n yisnernuyen}}",
|
||||
"status.reblogs.empty": "Ula yiwen ur yebḍi tajewwiqt-agi ar tura. Ticki yebḍa-tt yiwen, ad d-iban da.",
|
||||
"status.redraft": "Kkes tɛiwdeḍ tira",
|
||||
"status.remove_bookmark": "Kkes tacreḍt",
|
||||
|
|
|
@ -48,6 +48,10 @@ html {
|
|||
}
|
||||
}
|
||||
|
||||
.icon-button:disabled {
|
||||
color: darken($action-button-color, 25%);
|
||||
}
|
||||
|
||||
.account__header__bar .avatar .account__avatar {
|
||||
border-color: $white;
|
||||
}
|
||||
|
|
|
@ -1762,6 +1762,10 @@ ar:
|
|||
webauthn_authentication: مفاتيح الأمان
|
||||
severed_relationships:
|
||||
download: تنزيل (%{count})
|
||||
lost_followers: المتابعون المفقودون
|
||||
lost_follows: المتابعات المفقودة
|
||||
preamble: بحجبكم اسم نطاق قد تخسرون متابَعاتٍ، و كذلك إذا قرّر مديرو الخادوم حظر خادوم ما. و في هذه الحالات يكون بوسعكم تنزيل قائمة بالصلات المبتورة لمعاينتها، مع القدرة على استيرادها إلى خادوم آخر.
|
||||
purged: حذف مدير خادومكم المعلومات عن هذا الخادوم.
|
||||
statuses:
|
||||
attached:
|
||||
audio:
|
||||
|
@ -1978,6 +1982,7 @@ ar:
|
|||
edit_profile_title: قم بتخصيص ملفك التعريفي
|
||||
explanation: ها هي بعض النصائح قبل بداية الاستخدام
|
||||
feature_action: اعرف المزيد
|
||||
feature_audience: يتيح لكم مًستُدون إدارة جمهوركم بلا وسطاء. فبتنصيب و تشغيل مَستُودون على بنيتكم التحتية تمكنكم متابعة مستخدمي مَستُدون من أيّ خادوم،كما يمكنهم متابعتكم، بلا تحكُّم من أي طرف ثالث.
|
||||
feature_audience_title: اِبنوا جُمهورَكم بِثِقَة
|
||||
feature_control: أنتم الأدرى بالمحتوى الذي تريدون أن تطالعوه في فيض المنشورات الرئيس. لا خوارزميات تتحكم فيما يظهر لكم ولا إعلانات تضيع وقتكم. بحساب واحد تمكنكم متابعة من تشاؤون على أيّ خادوم ماستدون، وتلقّى منشوراتهم بترتيبها الزمني، لتصنعوا ركنكم الأليف في الإنترنت.
|
||||
feature_control_title: تحكَّموا في فيض المنشورات الخاص بكم
|
||||
|
|
|
@ -105,13 +105,9 @@ Rails.application.routes.draw do
|
|||
end
|
||||
end
|
||||
|
||||
devise_for :users, path: 'auth', format: false, controllers: {
|
||||
omniauth_callbacks: 'auth/omniauth_callbacks',
|
||||
sessions: 'auth/sessions',
|
||||
registrations: 'auth/registrations',
|
||||
passwords: 'auth/passwords',
|
||||
confirmations: 'auth/confirmations',
|
||||
}
|
||||
scope module: :auth do
|
||||
devise_for :users, path: 'auth', format: false
|
||||
end
|
||||
|
||||
with_options constraints: ->(req) { req.format.nil? || req.format.html? } do
|
||||
get '/users/:username', to: redirect_with_vary('/@%{username}')
|
||||
|
|
|
@ -1114,7 +1114,7 @@ const startServer = async () => {
|
|||
|
||||
/**
|
||||
* @param {http.IncomingMessage} req
|
||||
* @param {WebSocket} ws
|
||||
* @param {import('ws').WebSocket} ws
|
||||
* @param {string[]} streamName
|
||||
* @returns {function(string, string): void}
|
||||
*/
|
||||
|
@ -1345,7 +1345,7 @@ const startServer = async () => {
|
|||
|
||||
/**
|
||||
* @typedef WebSocketSession
|
||||
* @property {WebSocket & { isAlive: boolean}} websocket
|
||||
* @property {import('ws').WebSocket & { isAlive: boolean}} websocket
|
||||
* @property {http.IncomingMessage & ResolvedAccount} request
|
||||
* @property {import('pino').Logger} logger
|
||||
* @property {Object.<string, { channelName: string, listener: SubscriptionListener, stopHeartbeat: function(): void }>} subscriptions
|
||||
|
@ -1471,7 +1471,7 @@ const startServer = async () => {
|
|||
};
|
||||
|
||||
/**
|
||||
* @param {WebSocket & { isAlive: boolean }} ws
|
||||
* @param {import('ws').WebSocket & { isAlive: boolean }} ws
|
||||
* @param {http.IncomingMessage & ResolvedAccount} req
|
||||
* @param {import('pino').Logger} log
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue