Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8e9911962d | ||
|
|
3ebe03b729 | ||
|
|
6bc07d3de3 | ||
|
|
fbc6375fde | ||
|
|
0352c40e99 | ||
|
|
e5d8166a12 | ||
|
|
07ea625cb2 | ||
|
|
27101f1beb | ||
|
|
1823cf435a | ||
|
|
6a50329a9c | ||
|
|
b17e571bc2 | ||
|
|
476e79b8e3 | ||
|
|
19d3317a69 | ||
|
|
fe6941e28e | ||
|
|
38600b2792 | ||
|
|
b0407ece42 | ||
|
|
9b3d8ee346 | ||
|
|
b3d7ad958f | ||
|
|
552d22bec9 | ||
|
|
7c33da45f0 | ||
|
|
9815be2a44 | ||
|
|
bebaa6eced | ||
|
|
616f53eea8 |
@@ -8,8 +8,17 @@
|
|||||||
# /config/locales/*.fr.yml @żelipapą
|
# /config/locales/*.fr.yml @żelipapą
|
||||||
# /config/locales/fr.yml @żelipapą
|
# /config/locales/fr.yml @żelipapą
|
||||||
|
|
||||||
|
# Polish
|
||||||
/app/javascript/mastodon/locales/pl.json @m4sk1n
|
/app/javascript/mastodon/locales/pl.json @m4sk1n
|
||||||
/app/views/user_mailer/*.pl.html.erb @m4sk1n
|
/app/views/user_mailer/*.pl.html.erb @m4sk1n
|
||||||
/app/views/user_mailer/*.pl.text.erb @m4sk1n
|
/app/views/user_mailer/*.pl.text.erb @m4sk1n
|
||||||
/config/locales/*.pl.yml @m4sk1n
|
/config/locales/*.pl.yml @m4sk1n
|
||||||
/config/locales/pl.yml @m4sk1n
|
/config/locales/pl.yml @m4sk1n
|
||||||
|
|
||||||
|
# French
|
||||||
|
/app/javascript/mastodon/locales/fr.json @aldarone
|
||||||
|
/app/javascript/mastodon/locales/whitelist_fr.json @aldarone
|
||||||
|
/app/views/user_mailer/*.fr.html.erb @aldarone
|
||||||
|
/app/views/user_mailer/*.fr.text.erb @aldarone
|
||||||
|
/config/locales/*.fr.yml @aldarone
|
||||||
|
/config/locales/fr.yml @aldarone
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ class Auth::RegistrationsController < Devise::RegistrationsController
|
|||||||
before_action :check_enabled_registrations, only: [:new, :create]
|
before_action :check_enabled_registrations, only: [:new, :create]
|
||||||
before_action :configure_sign_up_params, only: [:create]
|
before_action :configure_sign_up_params, only: [:create]
|
||||||
before_action :set_sessions, only: [:edit, :update]
|
before_action :set_sessions, only: [:edit, :update]
|
||||||
|
before_action :set_instance_presenter, only: [:new, :update]
|
||||||
|
|
||||||
def destroy
|
def destroy
|
||||||
not_found
|
not_found
|
||||||
@@ -39,6 +40,10 @@ class Auth::RegistrationsController < Devise::RegistrationsController
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def set_instance_presenter
|
||||||
|
@instance_presenter = InstancePresenter.new
|
||||||
|
end
|
||||||
|
|
||||||
def determine_layout
|
def determine_layout
|
||||||
%w(edit update).include?(action_name) ? 'admin' : 'auth'
|
%w(edit update).include?(action_name) ? 'admin' : 'auth'
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ class Auth::SessionsController < Devise::SessionsController
|
|||||||
skip_before_action :require_no_authentication, only: [:create]
|
skip_before_action :require_no_authentication, only: [:create]
|
||||||
skip_before_action :check_suspension, only: [:destroy]
|
skip_before_action :check_suspension, only: [:destroy]
|
||||||
prepend_before_action :authenticate_with_two_factor, if: :two_factor_enabled?, only: [:create]
|
prepend_before_action :authenticate_with_two_factor, if: :two_factor_enabled?, only: [:create]
|
||||||
|
before_action :set_instance_presenter, only: [:new]
|
||||||
|
|
||||||
def create
|
def create
|
||||||
super do |resource|
|
super do |resource|
|
||||||
@@ -84,6 +85,10 @@ class Auth::SessionsController < Devise::SessionsController
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def set_instance_presenter
|
||||||
|
@instance_presenter = InstancePresenter.new
|
||||||
|
end
|
||||||
|
|
||||||
def home_paths(resource)
|
def home_paths(resource)
|
||||||
paths = [about_path]
|
paths = [about_path]
|
||||||
if single_user_mode? && resource.is_a?(User)
|
if single_user_mode? && resource.is_a?(User)
|
||||||
|
|||||||
@@ -8,15 +8,41 @@ import { useEmoji } from '../../../actions/emojis';
|
|||||||
const perLine = 8;
|
const perLine = 8;
|
||||||
const lines = 2;
|
const lines = 2;
|
||||||
|
|
||||||
|
const DEFAULTS = [
|
||||||
|
'+1',
|
||||||
|
'grinning',
|
||||||
|
'kissing_heart',
|
||||||
|
'heart_eyes',
|
||||||
|
'laughing',
|
||||||
|
'stuck_out_tongue_winking_eye',
|
||||||
|
'sweat_smile',
|
||||||
|
'joy',
|
||||||
|
'yum',
|
||||||
|
'disappointed',
|
||||||
|
'thinking_face',
|
||||||
|
'weary',
|
||||||
|
'sob',
|
||||||
|
'sunglasses',
|
||||||
|
'heart',
|
||||||
|
'ok_hand',
|
||||||
|
];
|
||||||
|
|
||||||
const getFrequentlyUsedEmojis = createSelector([
|
const getFrequentlyUsedEmojis = createSelector([
|
||||||
state => state.getIn(['settings', 'frequentlyUsedEmojis'], ImmutableMap()),
|
state => state.getIn(['settings', 'frequentlyUsedEmojis'], ImmutableMap()),
|
||||||
], emojiCounters => emojiCounters
|
], emojiCounters => {
|
||||||
|
let emojis = emojiCounters
|
||||||
.keySeq()
|
.keySeq()
|
||||||
.sort((a, b) => emojiCounters.get(a) - emojiCounters.get(b))
|
.sort((a, b) => emojiCounters.get(a) - emojiCounters.get(b))
|
||||||
.reverse()
|
.reverse()
|
||||||
.slice(0, perLine * lines)
|
.slice(0, perLine * lines)
|
||||||
.toArray()
|
.toArray();
|
||||||
);
|
|
||||||
|
if (emojis.length < DEFAULTS.length) {
|
||||||
|
emojis = emojis.concat(DEFAULTS.slice(0, DEFAULTS.length - emojis.length));
|
||||||
|
}
|
||||||
|
|
||||||
|
return emojis;
|
||||||
|
});
|
||||||
|
|
||||||
const getCustomEmojis = createSelector([
|
const getCustomEmojis = createSelector([
|
||||||
state => state.get('custom_emojis'),
|
state => state.get('custom_emojis'),
|
||||||
|
|||||||
@@ -78,6 +78,7 @@ export default class Status extends ImmutablePureComponent {
|
|||||||
|
|
||||||
componentWillReceiveProps (nextProps) {
|
componentWillReceiveProps (nextProps) {
|
||||||
if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) {
|
if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) {
|
||||||
|
this._scrolledIntoView = false;
|
||||||
this.props.dispatch(fetchStatus(nextProps.params.statusId));
|
this.props.dispatch(fetchStatus(nextProps.params.statusId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -240,11 +241,17 @@ export default class Status extends ImmutablePureComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidUpdate () {
|
componentDidUpdate () {
|
||||||
const { ancestorsIds } = this.props;
|
if (this._scrolledIntoView) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (ancestorsIds && ancestorsIds.size > 0) {
|
const { status, ancestorsIds } = this.props;
|
||||||
const element = this.node.querySelectorAll('.focusable')[ancestorsIds.size];
|
|
||||||
element.scrollIntoView();
|
if (status && ancestorsIds && ancestorsIds.size > 0) {
|
||||||
|
const element = this.node.querySelectorAll('.focusable')[ancestorsIds.size - 1];
|
||||||
|
|
||||||
|
element.scrollIntoView(true);
|
||||||
|
this._scrolledIntoView = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ export default class UI extends React.Component {
|
|||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.hotkeys.__mousetrap__.stopCallback = (e, element) => {
|
this.hotkeys.__mousetrap__.stopCallback = (e, element) => {
|
||||||
return !(e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) && ['TEXTAREA', 'SELECT', 'INPUT'].includes(element.tagName);
|
return ['TEXTAREA', 'SELECT', 'INPUT'].includes(element.tagName);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,31 +1,31 @@
|
|||||||
{
|
{
|
||||||
"account.block": "حظر @{name}",
|
"account.block": "حظر @{name}",
|
||||||
"account.block_domain": "Hide everything from {domain}",
|
"account.block_domain": "إخفاء كل شيئ قادم من إسم النطاق {domain}",
|
||||||
"account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
|
"account.disclaimer_full": "قد لا تعكس المعلومات أدناه الملف الشخصي الكامل للمستخدم.",
|
||||||
"account.edit_profile": "تعديل الملف الشخصي",
|
"account.edit_profile": "تعديل الملف الشخصي",
|
||||||
"account.follow": "تابِع",
|
"account.follow": "تابِع",
|
||||||
"account.followers": "المتابعون",
|
"account.followers": "المتابعون",
|
||||||
"account.follows": "يتبع",
|
"account.follows": "يتبع",
|
||||||
"account.follows_you": "يتابعك",
|
"account.follows_you": "يتابعك",
|
||||||
"account.media": "Media",
|
"account.media": "وسائط",
|
||||||
"account.mention": "أُذكُر @{name}",
|
"account.mention": "أُذكُر @{name}",
|
||||||
"account.mute": "أكتم @{name}",
|
"account.mute": "أكتم @{name}",
|
||||||
"account.posts": "المشاركات",
|
"account.posts": "المشاركات",
|
||||||
"account.report": "أبلغ عن @{name}",
|
"account.report": "أبلغ عن @{name}",
|
||||||
"account.requested": "في انتظار الموافقة",
|
"account.requested": "في انتظار الموافقة",
|
||||||
"account.share": "Share @{name}'s profile",
|
"account.share": "مشاركة @{name}'s profile",
|
||||||
"account.unblock": "إلغاء الحظر عن @{name}",
|
"account.unblock": "إلغاء الحظر عن @{name}",
|
||||||
"account.unblock_domain": "Unhide {domain}",
|
"account.unblock_domain": "فك حظر {domain}",
|
||||||
"account.unfollow": "إلغاء المتابعة",
|
"account.unfollow": "إلغاء المتابعة",
|
||||||
"account.unmute": "إلغاء الكتم عن @{name}",
|
"account.unmute": "إلغاء الكتم عن @{name}",
|
||||||
"account.view_full_profile": "View full profile",
|
"account.view_full_profile": "عرض الملف الشخصي كاملا",
|
||||||
"boost_modal.combo": "يمكنك ضغط {combo} لتخطّي هذه في المرّة القادمة",
|
"boost_modal.combo": "يمكنك ضغط {combo} لتخطّي هذه في المرّة القادمة",
|
||||||
"bundle_column_error.body": "Something went wrong while loading this component.",
|
"bundle_column_error.body": "لقد وقع هناك خطأ أثناء عملية تحميل هذا العنصر.",
|
||||||
"bundle_column_error.retry": "Try again",
|
"bundle_column_error.retry": "إعادة المحاولة",
|
||||||
"bundle_column_error.title": "Network error",
|
"bundle_column_error.title": "خطأ في الشبكة",
|
||||||
"bundle_modal_error.close": "Close",
|
"bundle_modal_error.close": "أغلق",
|
||||||
"bundle_modal_error.message": "Something went wrong while loading this component.",
|
"bundle_modal_error.message": "لقد وقع هناك خطأ أثناء عملية تحميل هذا العنصر.",
|
||||||
"bundle_modal_error.retry": "Try again",
|
"bundle_modal_error.retry": "إعادة المحاولة",
|
||||||
"column.blocks": "الحسابات المحجوبة",
|
"column.blocks": "الحسابات المحجوبة",
|
||||||
"column.community": "الخيط العام المحلي",
|
"column.community": "الخيط العام المحلي",
|
||||||
"column.favourites": "المفضلة",
|
"column.favourites": "المفضلة",
|
||||||
@@ -33,15 +33,15 @@
|
|||||||
"column.home": "الرئيسية",
|
"column.home": "الرئيسية",
|
||||||
"column.mutes": "الحسابات المكتومة",
|
"column.mutes": "الحسابات المكتومة",
|
||||||
"column.notifications": "الإشعارات",
|
"column.notifications": "الإشعارات",
|
||||||
"column.pins": "Pinned toot",
|
"column.pins": "التبويقات المثبتة",
|
||||||
"column.public": "الخيط العام الموحد",
|
"column.public": "الخيط العام الموحد",
|
||||||
"column_back_button.label": "العودة",
|
"column_back_button.label": "العودة",
|
||||||
"column_header.hide_settings": "Hide settings",
|
"column_header.hide_settings": "إخفاء الإعدادات",
|
||||||
"column_header.moveLeft_settings": "Move column to the left",
|
"column_header.moveLeft_settings": "نقل القائمة إلى اليسار",
|
||||||
"column_header.moveRight_settings": "Move column to the right",
|
"column_header.moveRight_settings": "نقل القائمة إلى اليمين",
|
||||||
"column_header.pin": "Pin",
|
"column_header.pin": "تدبيس",
|
||||||
"column_header.show_settings": "Show settings",
|
"column_header.show_settings": "عرض الإعدادات",
|
||||||
"column_header.unpin": "Unpin",
|
"column_header.unpin": "فك التدبيس",
|
||||||
"column_subheading.navigation": "التصفح",
|
"column_subheading.navigation": "التصفح",
|
||||||
"column_subheading.settings": "الإعدادات",
|
"column_subheading.settings": "الإعدادات",
|
||||||
"compose_form.lock_disclaimer": "حسابك ليس {locked}. يمكن لأي شخص متابعتك و عرض المنشورات.",
|
"compose_form.lock_disclaimer": "حسابك ليس {locked}. يمكن لأي شخص متابعتك و عرض المنشورات.",
|
||||||
@@ -57,16 +57,16 @@
|
|||||||
"confirmations.block.message": "هل أنت متأكد أنك تريد حجب {name} ؟",
|
"confirmations.block.message": "هل أنت متأكد أنك تريد حجب {name} ؟",
|
||||||
"confirmations.delete.confirm": "حذف",
|
"confirmations.delete.confirm": "حذف",
|
||||||
"confirmations.delete.message": "هل أنت متأكد أنك تريد حذف هذا المنشور ؟",
|
"confirmations.delete.message": "هل أنت متأكد أنك تريد حذف هذا المنشور ؟",
|
||||||
"confirmations.domain_block.confirm": "Hide entire domain",
|
"confirmations.domain_block.confirm": "إخفاء إسم النطاق كاملا",
|
||||||
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.",
|
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.",
|
||||||
"confirmations.mute.confirm": "أكتم",
|
"confirmations.mute.confirm": "أكتم",
|
||||||
"confirmations.mute.message": "هل أنت متأكد أنك تريد كتم {name} ؟",
|
"confirmations.mute.message": "هل أنت متأكد أنك تريد كتم {name} ؟",
|
||||||
"confirmations.unfollow.confirm": "Unfollow",
|
"confirmations.unfollow.confirm": "إلغاء المتابعة",
|
||||||
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
|
"confirmations.unfollow.message": "متأكد من أنك تريد إلغاء متابعة {name} ؟",
|
||||||
"embed.instructions": "Embed this status on your website by copying the code below.",
|
"embed.instructions": "يمكنكم إدماج هذه الحالة على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.",
|
||||||
"embed.preview": "Here is what it will look like:",
|
"embed.preview": "هكذا ما سوف يبدو عليه :",
|
||||||
"emoji_button.activity": "الأنشطة",
|
"emoji_button.activity": "الأنشطة",
|
||||||
"emoji_button.custom": "Custom",
|
"emoji_button.custom": "مخصص",
|
||||||
"emoji_button.flags": "الأعلام",
|
"emoji_button.flags": "الأعلام",
|
||||||
"emoji_button.food": "الطعام والشراب",
|
"emoji_button.food": "الطعام والشراب",
|
||||||
"emoji_button.label": "أدرج إيموجي",
|
"emoji_button.label": "أدرج إيموجي",
|
||||||
@@ -74,9 +74,9 @@
|
|||||||
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
|
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
|
||||||
"emoji_button.objects": "أشياء",
|
"emoji_button.objects": "أشياء",
|
||||||
"emoji_button.people": "الناس",
|
"emoji_button.people": "الناس",
|
||||||
"emoji_button.recent": "Frequently used",
|
"emoji_button.recent": "الشائعة الإستخدام",
|
||||||
"emoji_button.search": "ابحث...",
|
"emoji_button.search": "ابحث...",
|
||||||
"emoji_button.search_results": "Search results",
|
"emoji_button.search_results": "نتائج البحث",
|
||||||
"emoji_button.symbols": "رموز",
|
"emoji_button.symbols": "رموز",
|
||||||
"emoji_button.travel": "أماكن و أسفار",
|
"emoji_button.travel": "أماكن و أسفار",
|
||||||
"empty_column.community": "الخط الزمني المحلي فارغ. اكتب شيئا ما للعامة كبداية.",
|
"empty_column.community": "الخط الزمني المحلي فارغ. اكتب شيئا ما للعامة كبداية.",
|
||||||
@@ -100,8 +100,8 @@
|
|||||||
"home.column_settings.show_replies": "عرض الردود",
|
"home.column_settings.show_replies": "عرض الردود",
|
||||||
"home.settings": "إعدادات العمود",
|
"home.settings": "إعدادات العمود",
|
||||||
"lightbox.close": "إغلاق",
|
"lightbox.close": "إغلاق",
|
||||||
"lightbox.next": "Next",
|
"lightbox.next": "التالي",
|
||||||
"lightbox.previous": "Previous",
|
"lightbox.previous": "العودة",
|
||||||
"loading_indicator.label": "تحميل ...",
|
"loading_indicator.label": "تحميل ...",
|
||||||
"media_gallery.toggle_visible": "عرض / إخفاء",
|
"media_gallery.toggle_visible": "عرض / إخفاء",
|
||||||
"missing_indicator.label": "تعذر العثور عليه",
|
"missing_indicator.label": "تعذر العثور عليه",
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
"navigation_bar.info": "معلومات إضافية",
|
"navigation_bar.info": "معلومات إضافية",
|
||||||
"navigation_bar.logout": "خروج",
|
"navigation_bar.logout": "خروج",
|
||||||
"navigation_bar.mutes": "الحسابات المكتومة",
|
"navigation_bar.mutes": "الحسابات المكتومة",
|
||||||
"navigation_bar.pins": "Pinned toots",
|
"navigation_bar.pins": "التبويقات المثبتة",
|
||||||
"navigation_bar.preferences": "التفضيلات",
|
"navigation_bar.preferences": "التفضيلات",
|
||||||
"navigation_bar.public_timeline": "الخيط العام الموحد",
|
"navigation_bar.public_timeline": "الخيط العام الموحد",
|
||||||
"notification.favourite": "{name} أعجب بمنشورك",
|
"notification.favourite": "{name} أعجب بمنشورك",
|
||||||
@@ -126,8 +126,8 @@
|
|||||||
"notifications.column_settings.favourite": "المُفَضَّلة :",
|
"notifications.column_settings.favourite": "المُفَضَّلة :",
|
||||||
"notifications.column_settings.follow": "متابعُون جُدُد :",
|
"notifications.column_settings.follow": "متابعُون جُدُد :",
|
||||||
"notifications.column_settings.mention": "الإشارات :",
|
"notifications.column_settings.mention": "الإشارات :",
|
||||||
"notifications.column_settings.push": "Push notifications",
|
"notifications.column_settings.push": "الإخطارات المدفوعة",
|
||||||
"notifications.column_settings.push_meta": "This device",
|
"notifications.column_settings.push_meta": "هذا الجهاز",
|
||||||
"notifications.column_settings.reblog": "الترقيّات:",
|
"notifications.column_settings.reblog": "الترقيّات:",
|
||||||
"notifications.column_settings.show": "إعرِضها في عمود",
|
"notifications.column_settings.show": "إعرِضها في عمود",
|
||||||
"notifications.column_settings.sound": "أصدر صوتا",
|
"notifications.column_settings.sound": "أصدر صوتا",
|
||||||
@@ -165,23 +165,23 @@
|
|||||||
"report.submit": "إرسال",
|
"report.submit": "إرسال",
|
||||||
"report.target": "إبلاغ",
|
"report.target": "إبلاغ",
|
||||||
"search.placeholder": "ابحث",
|
"search.placeholder": "ابحث",
|
||||||
"search_popout.search_format": "Advanced search format",
|
"search_popout.search_format": "نمط البحث المتقدم",
|
||||||
"search_popout.tips.hashtag": "hashtag",
|
"search_popout.tips.hashtag": "وسم",
|
||||||
"search_popout.tips.status": "status",
|
"search_popout.tips.status": "حالة",
|
||||||
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
|
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
|
||||||
"search_popout.tips.user": "user",
|
"search_popout.tips.user": "مستخدِم",
|
||||||
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
||||||
"standalone.public_title": "A look inside...",
|
"standalone.public_title": "نظرة على ...",
|
||||||
"status.cannot_reblog": "تعذرت ترقية هذا المنشور",
|
"status.cannot_reblog": "تعذرت ترقية هذا المنشور",
|
||||||
"status.delete": "إحذف",
|
"status.delete": "إحذف",
|
||||||
"status.embed": "Embed",
|
"status.embed": "إدماج",
|
||||||
"status.favourite": "أضف إلى المفضلة",
|
"status.favourite": "أضف إلى المفضلة",
|
||||||
"status.load_more": "حمّل المزيد",
|
"status.load_more": "حمّل المزيد",
|
||||||
"status.media_hidden": "الصورة مستترة",
|
"status.media_hidden": "الصورة مستترة",
|
||||||
"status.mention": "أذكُر @{name}",
|
"status.mention": "أذكُر @{name}",
|
||||||
"status.mute_conversation": "Mute conversation",
|
"status.mute_conversation": "كتم المحادثة",
|
||||||
"status.open": "وسع هذه المشاركة",
|
"status.open": "وسع هذه المشاركة",
|
||||||
"status.pin": "Pin on profile",
|
"status.pin": "تدبيس على الملف الشخصي",
|
||||||
"status.reblog": "رَقِّي",
|
"status.reblog": "رَقِّي",
|
||||||
"status.reblogged_by": "{name} رقى",
|
"status.reblogged_by": "{name} رقى",
|
||||||
"status.reply": "ردّ",
|
"status.reply": "ردّ",
|
||||||
@@ -189,11 +189,11 @@
|
|||||||
"status.report": "إبلِغ عن @{name}",
|
"status.report": "إبلِغ عن @{name}",
|
||||||
"status.sensitive_toggle": "اضغط للعرض",
|
"status.sensitive_toggle": "اضغط للعرض",
|
||||||
"status.sensitive_warning": "محتوى حساس",
|
"status.sensitive_warning": "محتوى حساس",
|
||||||
"status.share": "Share",
|
"status.share": "مشاركة",
|
||||||
"status.show_less": "إعرض أقلّ",
|
"status.show_less": "إعرض أقلّ",
|
||||||
"status.show_more": "أظهر المزيد",
|
"status.show_more": "أظهر المزيد",
|
||||||
"status.unmute_conversation": "Unmute conversation",
|
"status.unmute_conversation": "فك الكتم عن المحادثة",
|
||||||
"status.unpin": "Unpin from profile",
|
"status.unpin": "فك التدبيس من الملف الشخصي",
|
||||||
"tabs_bar.compose": "تحرير",
|
"tabs_bar.compose": "تحرير",
|
||||||
"tabs_bar.federated_timeline": "الموحَّد",
|
"tabs_bar.federated_timeline": "الموحَّد",
|
||||||
"tabs_bar.home": "الرئيسية",
|
"tabs_bar.home": "الرئيسية",
|
||||||
@@ -201,16 +201,16 @@
|
|||||||
"tabs_bar.notifications": "الإخطارات",
|
"tabs_bar.notifications": "الإخطارات",
|
||||||
"upload_area.title": "إسحب ثم أفلت للرفع",
|
"upload_area.title": "إسحب ثم أفلت للرفع",
|
||||||
"upload_button.label": "إضافة وسائط",
|
"upload_button.label": "إضافة وسائط",
|
||||||
"upload_form.description": "Describe for the visually impaired",
|
"upload_form.description": "وصف للمعاقين بصريا",
|
||||||
"upload_form.undo": "إلغاء",
|
"upload_form.undo": "إلغاء",
|
||||||
"upload_progress.label": "يرفع...",
|
"upload_progress.label": "يرفع...",
|
||||||
"video.close": "Close video",
|
"video.close": "إغلاق الفيديو",
|
||||||
"video.exit_fullscreen": "Exit full screen",
|
"video.exit_fullscreen": "الخروج من وضع الشاشة المليئة",
|
||||||
"video.expand": "Expand video",
|
"video.expand": "توسيع الفيديو",
|
||||||
"video.fullscreen": "Full screen",
|
"video.fullscreen": "ملء الشاشة",
|
||||||
"video.hide": "Hide video",
|
"video.hide": "إخفاء الفيديو",
|
||||||
"video.mute": "Mute sound",
|
"video.mute": "كتم الصوت",
|
||||||
"video.pause": "Pause",
|
"video.pause": "إيقاف مؤقت",
|
||||||
"video.play": "Play",
|
"video.play": "تشغيل",
|
||||||
"video.unmute": "Unmute sound"
|
"video.unmute": "تشغيل الصوت"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
"embed.instructions": "Intégrez ce statut à votre site en copiant ce code ci-dessous.",
|
"embed.instructions": "Intégrez ce statut à votre site en copiant ce code ci-dessous.",
|
||||||
"embed.preview": "Il apparaîtra comme cela : ",
|
"embed.preview": "Il apparaîtra comme cela : ",
|
||||||
"emoji_button.activity": "Activités",
|
"emoji_button.activity": "Activités",
|
||||||
"emoji_button.custom": "Custom",
|
"emoji_button.custom": "Personnalisés",
|
||||||
"emoji_button.flags": "Drapeaux",
|
"emoji_button.flags": "Drapeaux",
|
||||||
"emoji_button.food": "Boire et manger",
|
"emoji_button.food": "Boire et manger",
|
||||||
"emoji_button.label": "Insérer un emoji",
|
"emoji_button.label": "Insérer un emoji",
|
||||||
@@ -74,9 +74,9 @@
|
|||||||
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
|
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
|
||||||
"emoji_button.objects": "Objets",
|
"emoji_button.objects": "Objets",
|
||||||
"emoji_button.people": "Personnages",
|
"emoji_button.people": "Personnages",
|
||||||
"emoji_button.recent": "Frequently used",
|
"emoji_button.recent": "Fréquemment utilisés",
|
||||||
"emoji_button.search": "Recherche…",
|
"emoji_button.search": "Recherche…",
|
||||||
"emoji_button.search_results": "Search results",
|
"emoji_button.search_results": "Résultats de la recherche",
|
||||||
"emoji_button.symbols": "Symboles",
|
"emoji_button.symbols": "Symboles",
|
||||||
"emoji_button.travel": "Lieux et voyages",
|
"emoji_button.travel": "Lieux et voyages",
|
||||||
"empty_column.community": "Le fil public local est vide. Écrivez-donc quelque chose pour le remplir !",
|
"empty_column.community": "Le fil public local est vide. Écrivez-donc quelque chose pour le remplir !",
|
||||||
@@ -165,11 +165,11 @@
|
|||||||
"report.submit": "Envoyer",
|
"report.submit": "Envoyer",
|
||||||
"report.target": "Signalement",
|
"report.target": "Signalement",
|
||||||
"search.placeholder": "Rechercher",
|
"search.placeholder": "Rechercher",
|
||||||
"search_popout.search_format": "Advanced search format",
|
"search_popout.search_format": "Recherche avancée",
|
||||||
"search_popout.tips.hashtag": "hashtag",
|
"search_popout.tips.hashtag": "hashtag",
|
||||||
"search_popout.tips.status": "status",
|
"search_popout.tips.status": "statuts",
|
||||||
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
|
"search_popout.tips.text": "Un texte simple renvoie les noms affichés, les noms d’utilisateur⋅ice et les hashtags correspondants",
|
||||||
"search_popout.tips.user": "user",
|
"search_popout.tips.user": "utilisateur⋅ice",
|
||||||
"search_results.total": "{count, number} {count, plural, one {résultat} other {résultats}}",
|
"search_results.total": "{count, number} {count, plural, one {résultat} other {résultats}}",
|
||||||
"standalone.public_title": "Jeter un coup d’œil…",
|
"standalone.public_title": "Jeter un coup d’œil…",
|
||||||
"status.cannot_reblog": "Cette publication ne peut être boostée",
|
"status.cannot_reblog": "Cette publication ne peut être boostée",
|
||||||
@@ -201,7 +201,7 @@
|
|||||||
"tabs_bar.notifications": "Notifications",
|
"tabs_bar.notifications": "Notifications",
|
||||||
"upload_area.title": "Glissez et déposez pour envoyer",
|
"upload_area.title": "Glissez et déposez pour envoyer",
|
||||||
"upload_button.label": "Joindre un média",
|
"upload_button.label": "Joindre un média",
|
||||||
"upload_form.description": "Describe for the visually impaired",
|
"upload_form.description": "Décrire pour les malvoyants",
|
||||||
"upload_form.undo": "Annuler",
|
"upload_form.undo": "Annuler",
|
||||||
"upload_progress.label": "Envoi en cours…",
|
"upload_progress.label": "Envoi en cours…",
|
||||||
"video.close": "Fermer la vidéo",
|
"video.close": "Fermer la vidéo",
|
||||||
|
|||||||
@@ -66,17 +66,17 @@
|
|||||||
"embed.instructions": "Embed deze toot op jouw website, door de onderstaande code te kopiëren.",
|
"embed.instructions": "Embed deze toot op jouw website, door de onderstaande code te kopiëren.",
|
||||||
"embed.preview": "Zo komt het eruit te zien:",
|
"embed.preview": "Zo komt het eruit te zien:",
|
||||||
"emoji_button.activity": "Activiteiten",
|
"emoji_button.activity": "Activiteiten",
|
||||||
"emoji_button.custom": "Custom",
|
"emoji_button.custom": "Lokale emoji’s",
|
||||||
"emoji_button.flags": "Vlaggen",
|
"emoji_button.flags": "Vlaggen",
|
||||||
"emoji_button.food": "Eten en drinken",
|
"emoji_button.food": "Eten en drinken",
|
||||||
"emoji_button.label": "Emoji toevoegen",
|
"emoji_button.label": "Emoji toevoegen",
|
||||||
"emoji_button.nature": "Natuur",
|
"emoji_button.nature": "Natuur",
|
||||||
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
|
"emoji_button.not_found": "Geen emoji’s!! (╯°□°)╯︵ ┻━┻",
|
||||||
"emoji_button.objects": "Voorwerpen",
|
"emoji_button.objects": "Voorwerpen",
|
||||||
"emoji_button.people": "Mensen",
|
"emoji_button.people": "Mensen",
|
||||||
"emoji_button.recent": "Frequently used",
|
"emoji_button.recent": "Vaak gebruikt",
|
||||||
"emoji_button.search": "Zoeken...",
|
"emoji_button.search": "Zoeken...",
|
||||||
"emoji_button.search_results": "Search results",
|
"emoji_button.search_results": "Zoekresultaten",
|
||||||
"emoji_button.symbols": "Symbolen",
|
"emoji_button.symbols": "Symbolen",
|
||||||
"emoji_button.travel": "Reizen en plekken",
|
"emoji_button.travel": "Reizen en plekken",
|
||||||
"empty_column.community": "De lokale tijdlijn is nog leeg. Toot iets in het openbaar om de bal aan het rollen te krijgen!",
|
"empty_column.community": "De lokale tijdlijn is nog leeg. Toot iets in het openbaar om de bal aan het rollen te krijgen!",
|
||||||
@@ -165,11 +165,11 @@
|
|||||||
"report.submit": "Verzenden",
|
"report.submit": "Verzenden",
|
||||||
"report.target": "Rapporteren van",
|
"report.target": "Rapporteren van",
|
||||||
"search.placeholder": "Zoeken",
|
"search.placeholder": "Zoeken",
|
||||||
"search_popout.search_format": "Advanced search format",
|
"search_popout.search_format": "Geavanceerd zoeken",
|
||||||
"search_popout.tips.hashtag": "hashtag",
|
"search_popout.tips.hashtag": "hashtag",
|
||||||
"search_popout.tips.status": "status",
|
"search_popout.tips.status": "toot",
|
||||||
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
|
"search_popout.tips.text": "Gebruik gewone tekst om te zoeken op weergavenamen, gebruikersnamen en hashtags.",
|
||||||
"search_popout.tips.user": "user",
|
"search_popout.tips.user": "gebruiker",
|
||||||
"search_results.total": "{count, number} {count, plural, one {resultaat} other {resultaten}}",
|
"search_results.total": "{count, number} {count, plural, one {resultaat} other {resultaten}}",
|
||||||
"standalone.public_title": "Een kijkje binnenin...",
|
"standalone.public_title": "Een kijkje binnenin...",
|
||||||
"status.cannot_reblog": "Deze toot kan niet geboost worden",
|
"status.cannot_reblog": "Deze toot kan niet geboost worden",
|
||||||
@@ -201,11 +201,11 @@
|
|||||||
"tabs_bar.notifications": "Meldingen",
|
"tabs_bar.notifications": "Meldingen",
|
||||||
"upload_area.title": "Hierin slepen om te uploaden",
|
"upload_area.title": "Hierin slepen om te uploaden",
|
||||||
"upload_button.label": "Media toevoegen",
|
"upload_button.label": "Media toevoegen",
|
||||||
"upload_form.description": "Describe for the visually impaired",
|
"upload_form.description": "Omschrijf dit voor mensen met een visuele beperking",
|
||||||
"upload_form.undo": "Ongedaan maken",
|
"upload_form.undo": "Ongedaan maken",
|
||||||
"upload_progress.label": "Uploaden...",
|
"upload_progress.label": "Uploaden...",
|
||||||
"video.close": "Close video",
|
"video.close": "Video sluiten",
|
||||||
"video.exit_fullscreen": "Exit full screen",
|
"video.exit_fullscreen": "Volledig scherm sluiten",
|
||||||
"video.expand": "Video groter maken",
|
"video.expand": "Video groter maken",
|
||||||
"video.fullscreen": "Volledig scherm",
|
"video.fullscreen": "Volledig scherm",
|
||||||
"video.hide": "Video verbergen",
|
"video.hide": "Video verbergen",
|
||||||
|
|||||||
@@ -29,8 +29,7 @@ body {
|
|||||||
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", mastodon-font-sans-serif, sans-serif;
|
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", mastodon-font-sans-serif, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.app-body,
|
&.app-body {
|
||||||
&.error {
|
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@@ -70,14 +69,22 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
&.error {
|
&.error {
|
||||||
|
position: absolute;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: $ui-primary-color;
|
color: $ui-primary-color;
|
||||||
padding: 20px;
|
background: $ui-base-color;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
padding: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
.dialog img {
|
.dialog {
|
||||||
|
vertical-align: middle;
|
||||||
|
margin: 20px;
|
||||||
|
|
||||||
|
img {
|
||||||
display: block;
|
display: block;
|
||||||
max-width: 470px;
|
max-width: 470px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -85,12 +92,13 @@ body {
|
|||||||
margin-top: -120px;
|
margin-top: -120px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialog h1 {
|
h1 {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
line-height: 28px;
|
line-height: 28px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
- content_for :header_tags do
|
- content_for :header_tags do
|
||||||
= javascript_pack_tag 'public', integrity: true, crossorigin: 'anonymous'
|
= javascript_pack_tag 'public', integrity: true, crossorigin: 'anonymous'
|
||||||
= render partial: 'og'
|
= render partial: 'shared/og'
|
||||||
|
|
||||||
.landing-page
|
.landing-page
|
||||||
.header-wrapper.compact
|
.header-wrapper.compact
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
- content_for :header_tags do
|
- content_for :header_tags do
|
||||||
%script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json)
|
%script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json)
|
||||||
= javascript_pack_tag 'about', integrity: true, crossorigin: 'anonymous'
|
= javascript_pack_tag 'about', integrity: true, crossorigin: 'anonymous'
|
||||||
= render partial: 'og'
|
= render partial: 'shared/og'
|
||||||
|
|
||||||
.landing-page
|
.landing-page
|
||||||
.header-wrapper
|
.header-wrapper
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
- content_for :page_title do
|
- content_for :page_title do
|
||||||
= t('auth.register')
|
= t('auth.register')
|
||||||
|
|
||||||
|
- content_for :header_tags do
|
||||||
|
= render partial: 'shared/og'
|
||||||
|
|
||||||
= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f|
|
= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f|
|
||||||
= render 'shared/error_messages', object: resource
|
= render 'shared/error_messages', object: resource
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
- content_for :page_title do
|
- content_for :page_title do
|
||||||
= t('auth.login')
|
= t('auth.login')
|
||||||
|
|
||||||
|
- content_for :header_tags do
|
||||||
|
= render partial: 'shared/og'
|
||||||
|
|
||||||
= simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f|
|
= simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f|
|
||||||
= f.input :email, autofocus: true, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email') }
|
= f.input :email, autofocus: true, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email') }
|
||||||
= f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' }
|
= f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off' }
|
||||||
|
|||||||
@@ -1,4 +1,10 @@
|
|||||||
- content_for :header_tags do
|
- content_for :header_tags do
|
||||||
|
%link{ href: asset_pack_path('features/getting_started.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
||||||
|
%link{ href: asset_pack_path('features/compose.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
||||||
|
%link{ href: asset_pack_path('features/home_timeline.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
||||||
|
%link{ href: asset_pack_path('features/notifications.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
||||||
|
%link{ href: asset_pack_path('features/community_timeline.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
||||||
|
%link{ href: asset_pack_path('features/public_timeline.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
||||||
%meta{name: 'applicationServerKey', content: Rails.configuration.x.vapid_public_key}
|
%meta{name: 'applicationServerKey', content: Rails.configuration.x.vapid_public_key}
|
||||||
%script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json)
|
%script#initial-state{ type: 'application/json' }!= json_escape(@initial_state_json)
|
||||||
|
|
||||||
|
|||||||
@@ -21,14 +21,6 @@
|
|||||||
= stylesheet_pack_tag 'common', media: 'all'
|
= stylesheet_pack_tag 'common', media: 'all'
|
||||||
= stylesheet_pack_tag current_theme, media: 'all'
|
= stylesheet_pack_tag current_theme, media: 'all'
|
||||||
= javascript_pack_tag 'common', integrity: true, crossorigin: 'anonymous'
|
= javascript_pack_tag 'common', integrity: true, crossorigin: 'anonymous'
|
||||||
|
|
||||||
%link{ href: asset_pack_path('features/getting_started.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
|
||||||
%link{ href: asset_pack_path('features/compose.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
|
||||||
%link{ href: asset_pack_path('features/home_timeline.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
|
||||||
%link{ href: asset_pack_path('features/notifications.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
|
||||||
%link{ href: asset_pack_path('features/community_timeline.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
|
||||||
%link{ href: asset_pack_path('features/public_timeline.js'), crossorigin: 'anonymous', rel: 'preload', as: 'script' }/
|
|
||||||
|
|
||||||
= javascript_pack_tag "locale_#{I18n.locale}", integrity: true, crossorigin: 'anonymous'
|
= javascript_pack_tag "locale_#{I18n.locale}", integrity: true, crossorigin: 'anonymous'
|
||||||
= csrf_meta_tags
|
= csrf_meta_tags
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- thumbnail = @instance_presenter.thumbnail
|
- thumbnail = @instance_presenter.thumbnail
|
||||||
= opengraph 'og:site_name', t('about.hosted_on', domain: site_hostname)
|
= opengraph 'og:site_name', t('about.hosted_on', domain: site_hostname)
|
||||||
= opengraph 'og:url', about_url
|
= opengraph 'og:url', url_for(only_path: false)
|
||||||
= opengraph 'og:type', 'website'
|
= opengraph 'og:type', 'website'
|
||||||
= opengraph 'og:title', @instance_presenter.site_title
|
= opengraph 'og:title', @instance_presenter.site_title
|
||||||
= opengraph 'og:description', strip_tags(@instance_presenter.site_description.presence || t('about.about_mastodon_html'))
|
= opengraph 'og:description', strip_tags(@instance_presenter.site_description.presence || t('about.about_mastodon_html'))
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
de:
|
de:
|
||||||
about:
|
about:
|
||||||
about_mastodon_html: Mastodon ist ein soziales Netzwerk. Es basiert auf offenen Web-Protokollen und freier, quelloffener Software. Es ist dezentral (so wie E-Mail!).
|
about_mastodon_html: Mastodon ist ein soziales Netzwerk. Es basiert auf offenen Web-Protokollen und freier, quelloffener Software. Es ist dezentral (so wie E-Mail!).
|
||||||
|
about_hashtag_html: Dies sind öffentliche Beiträge, die mit <strong>#%{hashtag}</strong> getaggt wurden. Wenn du ein Konto irgendwo im Fediversum besitzt, kannst du mit ihnen interagieren.
|
||||||
about_this: Über diese Instanz
|
about_this: Über diese Instanz
|
||||||
closed_registrations: Die Registrierung auf dieser Instanz ist momentan geschlossen. Aber du kannst dein Konto auch auf einer anderen Instanz erstellen! Von dort hast du genauso Zugriff auf das Mastodon-Netzwerk.
|
closed_registrations: Die Registrierung auf dieser Instanz ist momentan geschlossen. Aber du kannst dein Konto auch auf einer anderen Instanz erstellen! Von dort hast du genauso Zugriff auf das Mastodon-Netzwerk.
|
||||||
contact: Kontakt
|
contact: Kontakt
|
||||||
@@ -75,6 +76,7 @@ de:
|
|||||||
silenced: Stummgeschaltet
|
silenced: Stummgeschaltet
|
||||||
suspended: Gesperrt
|
suspended: Gesperrt
|
||||||
title: Moderation
|
title: Moderation
|
||||||
|
moderation_notes: Moderationsnotizen
|
||||||
most_recent_activity: Letzte Aktivität
|
most_recent_activity: Letzte Aktivität
|
||||||
most_recent_ip: Letzte IP-Adresse
|
most_recent_ip: Letzte IP-Adresse
|
||||||
not_subscribed: Nicht abonniert
|
not_subscribed: Nicht abonniert
|
||||||
@@ -108,11 +110,25 @@ de:
|
|||||||
unsubscribe: Abbestellen
|
unsubscribe: Abbestellen
|
||||||
username: Profilname
|
username: Profilname
|
||||||
web: Web
|
web: Web
|
||||||
|
account_moderation_notes:
|
||||||
|
account: Moderator*in
|
||||||
|
created_at: Datum
|
||||||
|
create: Erstellen
|
||||||
|
created_msg: Moderationsnotiz erfolgreich erstellt!
|
||||||
|
delete: Löschen
|
||||||
|
destroyed_msg: Moderationsnotiz erfolgreich gelöscht!
|
||||||
custom_emojis:
|
custom_emojis:
|
||||||
|
copied_msg: Eine lokale Kopie des Emojis wurde erstellt
|
||||||
|
copy: Kopieren
|
||||||
|
copy_failed_msg: Es konnte keine lokale Kopie des Emojis erstellt werden
|
||||||
created_msg: Emoji erstellt!
|
created_msg: Emoji erstellt!
|
||||||
delete: Löschen
|
delete: Löschen
|
||||||
destroyed_msg: Emoji gelöscht!
|
destroyed_msg: Emoji gelöscht!
|
||||||
|
disable: Deaktivieren
|
||||||
|
disabled_msg: Das Emoji wurde deaktiviert
|
||||||
emoji: Emoji
|
emoji: Emoji
|
||||||
|
enable: Aktivieren
|
||||||
|
enabled_msg: Das Emoji wurde aktiviert
|
||||||
image_hint: PNG bis 50 kB
|
image_hint: PNG bis 50 kB
|
||||||
new:
|
new:
|
||||||
title: Eigenes Emoji hinzufügen
|
title: Eigenes Emoji hinzufügen
|
||||||
@@ -423,7 +439,7 @@ de:
|
|||||||
reblog:
|
reblog:
|
||||||
title: "%{name} hat deinen Beitrag geteilt"
|
title: "%{name} hat deinen Beitrag geteilt"
|
||||||
remote_follow:
|
remote_follow:
|
||||||
acct: Dein Profilname@Domain, von dem aus du dieser Person folgen möchtest
|
acct: Profilname@Domain, von wo aus du dieser Person folgen möchtest
|
||||||
missing_resource: Die erforderliche Weiterleitungs-URL für dein Konto konnte nicht gefunden werden
|
missing_resource: Die erforderliche Weiterleitungs-URL für dein Konto konnte nicht gefunden werden
|
||||||
proceed: Weiter
|
proceed: Weiter
|
||||||
prompt: 'Du wirst dieser Person folgen:'
|
prompt: 'Du wirst dieser Person folgen:'
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ fr:
|
|||||||
prompt: Autoriser %{client_name} à utiliser votre compte ?
|
prompt: Autoriser %{client_name} à utiliser votre compte ?
|
||||||
title: Autorisation requise
|
title: Autorisation requise
|
||||||
show:
|
show:
|
||||||
title: Copy this authorization code and paste it to the application.
|
title: Copiez ce code d'autorisation et collez-le dans l'application.
|
||||||
authorized_applications:
|
authorized_applications:
|
||||||
buttons:
|
buttons:
|
||||||
revoke: Annuler
|
revoke: Annuler
|
||||||
@@ -112,4 +112,4 @@ fr:
|
|||||||
scopes:
|
scopes:
|
||||||
follow: s’abonner, se désabonner, bloquer et débloquer des comptes
|
follow: s’abonner, se désabonner, bloquer et débloquer des comptes
|
||||||
read: lire les données de votre compte
|
read: lire les données de votre compte
|
||||||
write: poster en tant que vous
|
write: poster en votre nom
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -4,6 +4,7 @@ fr:
|
|||||||
hints:
|
hints:
|
||||||
defaults:
|
defaults:
|
||||||
avatar: Au format PNG, GIF ou JPG. 2Mo maximum. Sera réduit à 120x120px
|
avatar: Au format PNG, GIF ou JPG. 2Mo maximum. Sera réduit à 120x120px
|
||||||
|
digest: Envoyé après une longue période d’inactivité et contient un résumé des notifications que vous avez reçues pendant votre absence
|
||||||
display_name:
|
display_name:
|
||||||
one: <span class="name-counter">1</span> caractère restant
|
one: <span class="name-counter">1</span> caractère restant
|
||||||
other: <span class="name-counter">%{count}</span> caractères restants
|
other: <span class="name-counter">%{count}</span> caractères restants
|
||||||
@@ -13,12 +14,13 @@ fr:
|
|||||||
one: <span class="note-counter">1</span> caractère restant
|
one: <span class="note-counter">1</span> caractère restant
|
||||||
other: <span class="note-counter">%{count}</span> caractères restants
|
other: <span class="note-counter">%{count}</span> caractères restants
|
||||||
setting_noindex: Affecte votre profil public ainsi que vos statuts
|
setting_noindex: Affecte votre profil public ainsi que vos statuts
|
||||||
|
setting_theme: Affecte l’apparence de Mastodon quand vous êtes connecté·e depuis n’importe quel appareil.
|
||||||
imports:
|
imports:
|
||||||
data: Un fichier CSV généré par une autre instance de Mastodon
|
data: Un fichier CSV généré par une autre instance de Mastodon
|
||||||
sessions:
|
sessions:
|
||||||
otp: Entrez le code d’authentification à deux facteurs depuis votre téléphone ou utilisez un de vos codes de récupération.
|
otp: Entrez le code d’authentification à deux facteurs depuis votre téléphone ou utilisez un de vos codes de récupération.
|
||||||
user:
|
user:
|
||||||
filtered_languages: Les langues sélectionnées seront retirées de vos fils publics.
|
filtered_languages: Les langues sélectionnées seront filtrées hors de vos fils publics pour vous
|
||||||
labels:
|
labels:
|
||||||
defaults:
|
defaults:
|
||||||
avatar: Image de profil
|
avatar: Image de profil
|
||||||
@@ -43,6 +45,7 @@ fr:
|
|||||||
setting_delete_modal: Afficher un dialogue de confirmation avant de supprimer un pouet
|
setting_delete_modal: Afficher un dialogue de confirmation avant de supprimer un pouet
|
||||||
setting_noindex: Demander aux moteurs de recherche de ne pas indexer vos informations personnelles
|
setting_noindex: Demander aux moteurs de recherche de ne pas indexer vos informations personnelles
|
||||||
setting_system_font_ui: Utiliser la police par défaut du système
|
setting_system_font_ui: Utiliser la police par défaut du système
|
||||||
|
setting_theme: Thème du site
|
||||||
setting_unfollow_modal: Afficher un dialogue de confirmation avant de vous désabonner d’un compte
|
setting_unfollow_modal: Afficher un dialogue de confirmation avant de vous désabonner d’un compte
|
||||||
severity: Séverité
|
severity: Séverité
|
||||||
type: Type d’import
|
type: Type d’import
|
||||||
|
|||||||
@@ -4,11 +4,7 @@ const env = process.env.NODE_ENV || 'development';
|
|||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
test: /\.js$/,
|
test: /\.js$/,
|
||||||
// include react-intl because transform-react-remove-prop-types needs to apply to it
|
exclude: /node_modules/,
|
||||||
exclude: {
|
|
||||||
test: /node_modules/,
|
|
||||||
exclude: /react-intl[\/\\](?!locale-data)/,
|
|
||||||
},
|
|
||||||
loader: 'babel-loader',
|
loader: 'babel-loader',
|
||||||
options: {
|
options: {
|
||||||
forceEnv: env,
|
forceEnv: env,
|
||||||
|
|||||||
21
config/webpack/loaders/babel_external.js
Normal file
21
config/webpack/loaders/babel_external.js
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
const { resolve } = require('path');
|
||||||
|
|
||||||
|
const env = process.env.NODE_ENV || 'development';
|
||||||
|
|
||||||
|
if (env === 'development') {
|
||||||
|
module.exports = {};
|
||||||
|
} else {
|
||||||
|
// babel options to apply only to external libraries, e.g. remove-prop-types
|
||||||
|
module.exports = {
|
||||||
|
test: /\.js$/,
|
||||||
|
include: /node_modules/,
|
||||||
|
loader: 'babel-loader',
|
||||||
|
options: {
|
||||||
|
babelrc: false,
|
||||||
|
plugins: [
|
||||||
|
'transform-react-remove-prop-types',
|
||||||
|
],
|
||||||
|
cacheDirectory: env === 'development' ? false : resolve(__dirname, '..', '..', '..', 'tmp', 'cache', 'babel-loader-external'),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -335,7 +335,10 @@ module Mastodon
|
|||||||
|
|
||||||
start_arel = table.project(table[:id]).order(table[:id].asc).take(1)
|
start_arel = table.project(table[:id]).order(table[:id].asc).take(1)
|
||||||
start_arel = yield table, start_arel if block_given?
|
start_arel = yield table, start_arel if block_given?
|
||||||
start_id = exec_query(start_arel.to_sql).to_hash.first['id'].to_i
|
first_row = exec_query(start_arel.to_sql).to_hash.first
|
||||||
|
# In case there are no rows but we didn't catch it in the estimated size:
|
||||||
|
return unless first_row
|
||||||
|
start_id = first_row['id'].to_i
|
||||||
|
|
||||||
say "Migrating #{table_name}.#{column} (~#{total.to_i} rows)"
|
say "Migrating #{table_name}.#{column} (~#{total.to_i} rows)"
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ module Mastodon
|
|||||||
end
|
end
|
||||||
|
|
||||||
def flags
|
def flags
|
||||||
'rc1'
|
'rc2'
|
||||||
end
|
end
|
||||||
|
|
||||||
def to_a
|
def to_a
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 13 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.0 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.5 KiB |
@@ -2192,8 +2192,8 @@ elliptic@^6.0.0:
|
|||||||
minimalistic-crypto-utils "^1.0.0"
|
minimalistic-crypto-utils "^1.0.0"
|
||||||
|
|
||||||
emoji-mart@Gargron/emoji-mart#build:
|
emoji-mart@Gargron/emoji-mart#build:
|
||||||
version "2.1.3"
|
version "2.1.4"
|
||||||
resolved "https://codeload.github.com/Gargron/emoji-mart/tar.gz/74721c33954e239b0dba7e24bc7be0b4a650063a"
|
resolved "https://codeload.github.com/Gargron/emoji-mart/tar.gz/a5e1afe5ebcf2841e611d20d261b029581cbe051"
|
||||||
|
|
||||||
emoji-regex@^6.1.0:
|
emoji-regex@^6.1.0:
|
||||||
version "6.4.3"
|
version "6.4.3"
|
||||||
|
|||||||
Reference in New Issue
Block a user