diff --git a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java index 191f2b07d..c53ed561b 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java +++ b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java @@ -26,6 +26,8 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; +import androidx.annotation.StringRes; + public class GlobalUserPreferences{ private static final String TAG="GlobalUserPreferences"; diff --git a/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java b/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java index 046c55531..44cbeac9f 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java +++ b/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java @@ -97,7 +97,7 @@ public class PushSubscriptionManager{ deviceToken=getPrefs().getString("deviceToken", null); int tokenVersion=getPrefs().getInt("version", 0); if(!TextUtils.isEmpty(deviceToken) && tokenVersion==BuildConfig.VERSION_CODE){ - registerAllAccountsForPush(false); + registerAllAccountsForPush(true); // TODO: revert this before release return; } Log.i(TAG, "tryRegisterFCM: no token found or app was updated. Trying to get push token..."); diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java index 212927e05..f0cb17b66 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java @@ -622,7 +622,7 @@ public abstract class BaseStatusListFragment exten } } - public void onGapClick(GapStatusDisplayItem.Holder item){} + public void onGapClick(GapStatusDisplayItem.Holder item, boolean downwards){} public void onWarningClick(WarningFilteredStatusDisplayItem.Holder warning){ int startPos = warning.getAbsoluteAdapterPosition(); diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java index d511740fe..92d0bb076 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java @@ -13,25 +13,24 @@ import org.joinmastodon.android.api.requests.markers.SaveMarkers; import org.joinmastodon.android.api.requests.timelines.GetHomeTimeline; import org.joinmastodon.android.api.session.AccountLocalPreferences; import org.joinmastodon.android.api.session.AccountSessionManager; -import org.joinmastodon.android.events.StatusCreatedEvent; import org.joinmastodon.android.model.CacheablePaginatedResponse; import org.joinmastodon.android.model.FilterContext; import org.joinmastodon.android.model.Status; import org.joinmastodon.android.model.TimelineMarkers; import org.joinmastodon.android.ui.displayitems.GapStatusDisplayItem; import org.joinmastodon.android.ui.displayitems.StatusDisplayItem; -import org.joinmastodon.android.utils.StatusFilterPredicate; import java.util.Collections; import java.util.HashSet; import java.util.List; +import java.util.Objects; +import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; import me.grishka.appkit.api.Callback; import me.grishka.appkit.api.ErrorResponse; import me.grishka.appkit.api.SimpleCallback; -import me.grishka.appkit.utils.V; public class HomeTimelineFragment extends StatusListFragment { private HomeTabFragment parent; @@ -176,15 +175,23 @@ public class HomeTimelineFragment extends StatusListFragment { } @Override - public void onGapClick(GapStatusDisplayItem.Holder item){ + public void onGapClick(GapStatusDisplayItem.Holder item, boolean downwards){ if(dataLoading) return; - item.getItem().loading=true; - V.setVisibilityAnimated(item.progress, View.VISIBLE); - V.setVisibilityAnimated(item.text, View.GONE); GapStatusDisplayItem gap=item.getItem(); + gap.loading=true; dataLoading=true; - currentRequest=new GetHomeTimeline(item.getItemID(), null, 20, null, getLocalPrefs().timelineReplyVisibility) + + String maxID = null; + String minID = null; + if (downwards) { + maxID = item.getItemID(); + } else { + int gapPos=displayItems.indexOf(gap); + StatusDisplayItem nextItem=displayItems.get(gapPos + 1); + minID=nextItem.parentID; + } + currentRequest=new GetHomeTimeline(maxID, minID, 20, null, getLocalPrefs().timelineReplyVisibility) .setCallback(new Callback<>(){ @Override public void onSuccess(List result){ @@ -204,52 +211,96 @@ public class HomeTimelineFragment extends StatusListFragment { AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomeTimeline(Collections.singletonList(gapStatus), false); } }else{ - Set idsBelowGap=new HashSet<>(); - boolean belowGap=false; - int gapPostIndex=0; - for(Status s:data){ - if(belowGap){ - idsBelowGap.add(s.id); - }else if(s.id.equals(gap.parentID)){ - belowGap=true; - s.hasGapAfter=false; - AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomeTimeline(Collections.singletonList(s), false); - }else{ - gapPostIndex++; + if(downwards) { + Set idsBelowGap=new HashSet<>(); + boolean belowGap=false; + int gapPostIndex=0; + for(Status s:data){ + if(belowGap){ + idsBelowGap.add(s.id); + }else if(s.id.equals(gap.parentID)){ + belowGap=true; + s.hasGapAfter=false; + AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomeTimeline(Collections.singletonList(s), false); + }else{ + gapPostIndex++; + } } - } - int endIndex=0; - for(Status s:result){ - endIndex++; - if(idsBelowGap.contains(s.id)) - break; - } - if(endIndex==result.size()){ - result.get(result.size()-1).hasGapAfter=true; - }else{ - result=result.subList(0, endIndex); - } - List targetList=displayItems.subList(gapPos, gapPos+1); - targetList.clear(); - List insertedPosts=data.subList(gapPostIndex+1, gapPostIndex+1); - StatusFilterPredicate filterPredicate=new StatusFilterPredicate(accountID, getFilterContext()); - for(Status s:result){ - if(idsBelowGap.contains(s.id)) - break; - if(typeFilterPredicate(s) && filterPredicate.test(s)){ + int endIndex=0; + for(Status s:result){ + endIndex++; + if(idsBelowGap.contains(s.id)) + break; + } + if(endIndex==result.size()){ + result.get(result.size()-1).hasGapAfter=true; + }else{ + result=result.subList(0, endIndex); + } + AccountSessionManager.get(accountID).filterStatuses(result, FilterContext.HOME); + List targetList=displayItems.subList(gapPos, gapPos+1); + targetList.clear(); + List insertedPosts=data.subList(gapPostIndex+1, gapPostIndex+1); + for(Status s:result){ + if(idsBelowGap.contains(s.id)) + break; targetList.addAll(buildDisplayItems(s)); insertedPosts.add(s); } + if(targetList.isEmpty()){ + // oops. We didn't add new posts, but at least we know there are none. + adapter.notifyItemRemoved(getMainAdapterOffset()+gapPos); + }else{ + adapter.notifyItemChanged(getMainAdapterOffset()+gapPos); + adapter.notifyItemRangeInserted(getMainAdapterOffset()+gapPos+1, targetList.size()-1); + } + AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomeTimeline(insertedPosts, false); + } else { + String aboveGapID = gap.parentID; + int gapPostIndex = 0; + for (;gapPostIndex targetList=displayItems.subList(gapPos, gapPos+1); + if(indexOfGapInResponse gapStatus=data.stream() + .filter(s->Objects.equals(s.id, gap.parentID)) + .findFirst(); + if (gapStatus.isPresent()) { + gapStatus.get().hasGapAfter=false; + AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomeTimeline(Collections.singletonList(gapStatus.get()), false); + } + targetList.clear(); + } else { + gap.loading=false; + } + List insertedPosts=data.subList(gapPostIndex+1, gapPostIndex+1); + for(Status s:result){ + targetList.addAll(buildDisplayItems(s)); + insertedPosts.add(s); + } + AccountSessionManager.get(accountID).filterStatuses(insertedPosts, FilterContext.HOME); + if(targetList.isEmpty()){ + // oops. We didn't add new posts, but at least we know there are none. + adapter.notifyItemRemoved(getMainAdapterOffset()+gapPos); + }else{ + adapter.notifyItemChanged(getMainAdapterOffset()+gapPos); + adapter.notifyItemRangeInserted(getMainAdapterOffset()+gapPos+1, targetList.size()-1); + } + list.scrollToPosition(getMainAdapterOffset()+gapPos+targetList.size()); + AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomeTimeline(insertedPosts, false); } - AccountSessionManager.get(accountID).filterStatuses(insertedPosts, getFilterContext()); - if(targetList.isEmpty()){ - // oops. We didn't add new posts, but at least we know there are none. - adapter.notifyItemRemoved(getMainAdapterOffset()+gapPos); - }else{ - adapter.notifyItemChanged(getMainAdapterOffset()+gapPos); - adapter.notifyItemRangeInserted(getMainAdapterOffset()+gapPos+1, targetList.size()-1); - } - AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomeTimeline(insertedPosts, false); } } diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/StatusEditHistoryFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/StatusEditHistoryFragment.java index f3e7b3d49..aa52dda9a 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/StatusEditHistoryFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/StatusEditHistoryFragment.java @@ -144,7 +144,7 @@ public class StatusEditHistoryFragment extends StatusListFragment{ } } String sep = getString(R.string.sk_separator); - items.add(0, new ReblogOrReplyLineStatusDisplayItem(s.id, this, action+" "+sep+" "+date, Collections.emptyList(), 0, null, null)); + items.add(0, new ReblogOrReplyLineStatusDisplayItem(s.id, this, action+" "+sep+" "+date, Collections.emptyList(), 0, null, null, s)); items.add(1, new DummyStatusDisplayItem(s.id, this)); } return items; diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/report/ReportReasonChoiceFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/report/ReportReasonChoiceFragment.java index 32b2edec6..7834867d0 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/report/ReportReasonChoiceFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/report/ReportReasonChoiceFragment.java @@ -83,7 +83,7 @@ public class ReportReasonChoiceFragment extends StatusListFragment{ reportStatus=Parcels.unwrap(getArguments().getParcelable("status")); if(reportStatus!=null){ Status hiddenStatus=reportStatus.clone(); - hiddenStatus.spoilerText=getString(R.string.post_hidden); + if(hiddenStatus.spoilerText==null) hiddenStatus.spoilerText=getString(R.string.post_hidden); onDataLoaded(Collections.singletonList(hiddenStatus)); setTitle(R.string.report_title_post); }else{ @@ -168,17 +168,6 @@ public class ReportReasonChoiceFragment extends StatusListFragment{ ((UsableRecyclerView)list).setIncludeMarginsInItemHitbox(false); if(reportStatus!=null){ - list.addItemDecoration(new RecyclerView.ItemDecoration(){ - @Override - public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state){ - RecyclerView.ViewHolder holder=parent.getChildViewHolder(view); - if(holder instanceof LinkCardStatusDisplayItem.Holder || holder instanceof MediaGridStatusDisplayItem.Holder){ - outRect.left=V.dp(16); - outRect.right=V.dp(16); - } - } - }); - list.addItemDecoration(new RecyclerView.ItemDecoration(){ private Paint paint=new Paint(Paint.ANTI_ALIAS_FLAG); { @@ -222,10 +211,6 @@ public class ReportReasonChoiceFragment extends StatusListFragment{ if(holder instanceof StatusDisplayItem.Holder){ outRect.left=outRect.right=V.dp(16); } - int index=holder.getAbsoluteAdapterPosition()-mergeAdapter.getPositionForAdapter(adapter); - if(index==displayItems.size()){ - outRect.top=V.dp(32); - } } }); } @@ -251,18 +236,6 @@ public class ReportReasonChoiceFragment extends StatusListFragment{ return null; } - @Override - protected void onModifyItemViewHolder(BindableViewHolder holder){ - if((Object)holder instanceof MediaGridStatusDisplayItem.Holder h){ - View layout=h.getLayout(); - layout.setOutlineProvider(OutlineProviders.roundedRect(8)); - layout.setClipToOutline(true); - View overlay=h.getSensitiveOverlay(); - overlay.setOutlineProvider(OutlineProviders.roundedRect(8)); - overlay.setClipToOutline(true); - } - } - @Override public void putRelationship(String id, Relationship rel){ super.putRelationship(id, rel); diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBehaviorFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBehaviorFragment.java index 339c10463..524cfe747 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBehaviorFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBehaviorFragment.java @@ -20,6 +20,7 @@ import org.joinmastodon.android.utils.MastodonLanguage; import java.util.ArrayList; import java.util.List; import java.util.stream.IntStream; +import java.util.stream.Stream; public class SettingsBehaviorFragment extends BaseSettingsFragment implements HasAccountID{ private ListItem languageItem; diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java index 6338b4cac..92a5b7f1f 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java @@ -1,5 +1,8 @@ package org.joinmastodon.android.ui.displayitems; +import static org.joinmastodon.android.ui.utils.UiUtils.opacityIn; +import static org.joinmastodon.android.ui.utils.UiUtils.opacityOut; + import android.app.Activity; import android.app.Dialog; import android.content.Context; diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/GapStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/GapStatusDisplayItem.java index 7c325f658..1009bb148 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/GapStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/GapStatusDisplayItem.java @@ -8,14 +8,21 @@ import android.widget.TextView; import org.joinmastodon.android.R; import org.joinmastodon.android.fragments.BaseStatusListFragment; +import org.joinmastodon.android.model.Status; import org.joinmastodon.android.ui.drawables.SawtoothTearDrawable; +import org.joinmastodon.android.ui.utils.UiUtils; + +import java.time.Instant; + +import me.grishka.appkit.utils.V; -// Mind the gap! public class GapStatusDisplayItem extends StatusDisplayItem{ public boolean loading; + private Status status; - public GapStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment){ + public GapStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, Status status){ super(parentID, parentFragment); + this.status=status; } @Override @@ -24,25 +31,53 @@ public class GapStatusDisplayItem extends StatusDisplayItem{ } public static class Holder extends StatusDisplayItem.Holder{ - public final ProgressBar progress; - public final TextView text; + public final ProgressBar progressTop, progressBottom; + public final TextView textTop, gap, textBottom; + public final View top, bottom; public Holder(Context context, ViewGroup parent){ super(context, R.layout.display_item_gap, parent); - progress=findViewById(R.id.progress); - text=findViewById(R.id.text); - itemView.setForeground(new SawtoothTearDrawable(context)); + progressTop=findViewById(R.id.progress_top); + progressBottom=findViewById(R.id.progress_bottom); + textTop=findViewById(R.id.text_top); + textBottom=findViewById(R.id.text_bottom); + top=findViewById(R.id.top); + top.setOnClickListener(this::onViewClick); + bottom=findViewById(R.id.bottom); + bottom.setOnClickListener(this::onViewClick); + gap=findViewById(R.id.gap); + gap.setForeground(new SawtoothTearDrawable(context)); } @Override public void onBind(GapStatusDisplayItem item){ - text.setVisibility(item.loading ? View.GONE : View.VISIBLE); - progress.setVisibility(item.loading ? View.VISIBLE : View.GONE); + if(!item.loading){ + progressBottom.setVisibility(View.GONE); + progressTop.setVisibility(View.GONE); + } + top.setClickable(!item.loading); + bottom.setClickable(!item.loading); + StatusDisplayItem next=getNextVisibleDisplayItem().orElse(null); + Instant dateBelow=next instanceof HeaderStatusDisplayItem h ? h.status.createdAt + : next instanceof ReblogOrReplyLineStatusDisplayItem l ? l.status.createdAt + : null; + String text=dateBelow!=null && item.status.createdAt!=null && dateBelow.isBefore(item.status.createdAt) + ? UiUtils.formatPeriodBetween(item.parentFragment.getContext(), dateBelow, item.status.createdAt) + : null; + gap.setText(text); + int p=text==null ? V.dp(6) : V.dp(20); + gap.setPadding(p, p, p, p); + } + + private void onViewClick(View v){ + if(item.loading) return; + boolean isTop=v==top; + (isTop ? textTop : textBottom).startAnimation(UiUtils.opacityOut); + V.setVisibilityAnimated((isTop ? progressTop : progressBottom), View.VISIBLE); + item.parentFragment.onGapClick(this, isTop); } @Override - public void onClick(){ - item.parentFragment.onGapClick(this); - } + public void onClick(){} } } diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ReblogOrReplyLineStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ReblogOrReplyLineStatusDisplayItem.java index 0e87b656d..097aae9f0 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ReblogOrReplyLineStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ReblogOrReplyLineStatusDisplayItem.java @@ -17,6 +17,7 @@ import org.joinmastodon.android.GlobalUserPreferences; import org.joinmastodon.android.R; import org.joinmastodon.android.fragments.BaseStatusListFragment; import org.joinmastodon.android.model.Emoji; +import org.joinmastodon.android.model.Status; import org.joinmastodon.android.model.StatusPrivacy; import org.joinmastodon.android.ui.text.HtmlParser; import org.joinmastodon.android.ui.utils.CustomEmojiHelper; @@ -43,18 +44,20 @@ public class ReblogOrReplyLineStatusDisplayItem extends StatusDisplayItem{ public boolean needBottomPadding; ReblogOrReplyLineStatusDisplayItem extra; CharSequence fullText; + Status status; - public ReblogOrReplyLineStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, CharSequence text, List emojis, @DrawableRes int icon, StatusPrivacy visibility, @Nullable View.OnClickListener handleClick) { - this(parentID, parentFragment, text, emojis, icon, visibility, handleClick, text); + public ReblogOrReplyLineStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, CharSequence text, List emojis, @DrawableRes int icon, StatusPrivacy visibility, @Nullable View.OnClickListener handleClick, Status status) { + this(parentID, parentFragment, text, emojis, icon, visibility, handleClick, text, status); } - public ReblogOrReplyLineStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, CharSequence text, List emojis, @DrawableRes int icon, StatusPrivacy visibility, @Nullable View.OnClickListener handleClick, CharSequence fullText) { + public ReblogOrReplyLineStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, CharSequence text, List emojis, @DrawableRes int icon, StatusPrivacy visibility, @Nullable View.OnClickListener handleClick, CharSequence fullText, Status status) { super(parentID, parentFragment); SpannableStringBuilder ssb=new SpannableStringBuilder(text); HtmlParser.parseCustomEmoji(ssb, emojis); this.text=ssb; emojiHelper.setText(ssb); this.icon=icon; + this.status=status; this.handleClick=handleClick; TypedValue outValue = new TypedValue(); context.getTheme().resolveAttribute(android.R.attr.selectableItemBackground, outValue, true); diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java index 149c74e51..2fd32ac7b 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java @@ -54,7 +54,7 @@ import me.grishka.appkit.views.UsableRecyclerView; public abstract class StatusDisplayItem{ public final String parentID; public final BaseStatusListFragment parentFragment; - public boolean inset, insetPadding=true; + public boolean inset; public int index; public boolean hasDescendantNeighbor = false, @@ -136,7 +136,7 @@ public abstract class StatusDisplayItem{ : fragment.getString(R.string.in_reply_to, account.displayName); return new ReblogOrReplyLineStatusDisplayItem( parentID, fragment, text, account == null ? List.of() : account.emojis, - R.drawable.ic_fluent_arrow_reply_20sp_filled, null, null, fullText + R.drawable.ic_fluent_arrow_reply_20sp_filled, null, null, fullText, status ); } @@ -171,7 +171,7 @@ public abstract class StatusDisplayItem{ items.add(new ReblogOrReplyLineStatusDisplayItem(parentID, fragment, text, status.account.emojis, R.drawable.ic_fluent_arrow_repeat_all_20sp_filled, isOwnPost ? status.visibility : null, i->{ args.putParcelable("profileAccount", Parcels.wrap(status.account)); Nav.go(fragment.getActivity(), ProfileFragment.class, args); - }, fullText)); + }, fullText, status)); } else if (!(status.tags.isEmpty() || fragment instanceof HashtagTimelineFragment || fragment instanceof ListTimelineFragment @@ -187,7 +187,7 @@ public abstract class StatusDisplayItem{ i -> { args.putString("hashtag", hashtag.name); Nav.go(fragment.getActivity(), HashtagTimelineFragment.class, args); - } + }, status ))); } @@ -303,7 +303,7 @@ public abstract class StatusDisplayItem{ footer.hideCounts=hideCounts; items.add(footer); if(status.hasGapAfter && !(fragment instanceof ThreadFragment)) - items.add(new GapStatusDisplayItem(parentID, fragment)); + items.add(new GapStatusDisplayItem(parentID, fragment, status)); } int i=1; boolean inset=(flags & FLAG_INSET)!=0; @@ -406,10 +406,11 @@ public abstract class StatusDisplayItem{ } public Optional getDisplayItemOffset(int offset){ - int nextPos=getAbsoluteAdapterPosition() + offset; List displayItems=item.parentFragment.getDisplayItems(); - return displayItems.size() > nextPos - ? Optional.of(displayItems.get(nextPos)) + int thisPos=displayItems.indexOf(item); + int offsetPos=thisPos + offset; + return displayItems.size() > offsetPos && thisPos >= 0 && offsetPos >= 0 + ? Optional.of(displayItems.get(offsetPos)) : Optional.empty(); } diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/drawables/SawtoothTearDrawable.java b/mastodon/src/main/java/org/joinmastodon/android/ui/drawables/SawtoothTearDrawable.java index 1100fd950..a461646dc 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/drawables/SawtoothTearDrawable.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/drawables/SawtoothTearDrawable.java @@ -23,9 +23,9 @@ import me.grishka.appkit.utils.V; public class SawtoothTearDrawable extends Drawable{ private final Paint topPaint, bottomPaint; - private static final int TOP_SAWTOOTH_HEIGHT=5; - private static final int BOTTOM_SAWTOOTH_HEIGHT=3; - private static final int STROKE_WIDTH=2; + private static final int TOP_SAWTOOTH_HEIGHT=4; + private static final int BOTTOM_SAWTOOTH_HEIGHT=4; + private static final int STROKE_WIDTH=1; private static final int SAWTOOTH_PERIOD=14; public SawtoothTearDrawable(Context context){ diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/DiscoverInfoBannerHelper.java b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/DiscoverInfoBannerHelper.java index cfe0cbcab..e69acc17f 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/DiscoverInfoBannerHelper.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/DiscoverInfoBannerHelper.java @@ -10,6 +10,7 @@ import android.widget.TextView; import org.joinmastodon.android.MastodonApp; import org.joinmastodon.android.R; import org.joinmastodon.android.api.session.AccountSessionManager; +import org.joinmastodon.android.model.TimelineDefinition; import java.util.EnumSet; @@ -44,8 +45,8 @@ public class DiscoverInfoBannerHelper{ banner=((Activity)list.getContext()).getLayoutInflater().inflate(R.layout.discover_info_banner, list, false); TextView text=banner.findViewById(R.id.banner_text); text.setText(switch(type){ - case TRENDING_POSTS -> list.getResources().getString(R.string.trending_posts_info_banner); - case TRENDING_LINKS -> list.getResources().getString(R.string.trending_links_info_banner); + case TRENDING_POSTS -> list.getResources().getString(R.string.sk_trending_posts_info_banner); + case TRENDING_LINKS -> list.getResources().getString(R.string.sk_trending_links_info_banner); case FEDERATED_TIMELINE -> list.getResources().getString(R.string.sk_federated_timeline_info_banner); case POST_NOTIFICATIONS -> list.getResources().getString(R.string.sk_notify_posts_info_banner); case BUBBLE_TIMELINE -> list.getResources().getString(R.string.sk_bubble_timeline_info_banner); @@ -57,8 +58,10 @@ public class DiscoverInfoBannerHelper{ case TRENDING_POSTS -> R.drawable.ic_fluent_arrow_trending_24_regular; case TRENDING_LINKS -> R.drawable.ic_fluent_news_24_regular; case ACCOUNTS -> R.drawable.ic_fluent_people_add_24_regular; - // no icon because those are displayed as timelines - with icon in top left - case LOCAL_TIMELINE, FEDERATED_TIMELINE, BUBBLE_TIMELINE, POST_NOTIFICATIONS -> 0; + case LOCAL_TIMELINE -> TimelineDefinition.LOCAL_TIMELINE.getDefaultIcon().iconRes; + case FEDERATED_TIMELINE -> TimelineDefinition.FEDERATED_TIMELINE.getDefaultIcon().iconRes; + case BUBBLE_TIMELINE -> TimelineDefinition.BUBBLE_TIMELINE.getDefaultIcon().iconRes; + case POST_NOTIFICATIONS -> TimelineDefinition.POSTS_TIMELINE.getDefaultIcon().iconRes; }); adapter.addAdapter(new SingleViewRecyclerAdapter(banner)); } diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/InsetStatusItemDecoration.java b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/InsetStatusItemDecoration.java index 5b1da1837..cb4a2b08e 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/InsetStatusItemDecoration.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/InsetStatusItemDecoration.java @@ -84,24 +84,19 @@ public class InsetStatusItemDecoration extends RecyclerView.ItemDecoration{ @Override public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state){ - List displayItems=listFragment.getDisplayItems(); +// List displayItems=listFragment.getDisplayItems(); RecyclerView.ViewHolder holder=parent.getChildViewHolder(view); if(holder instanceof StatusDisplayItem.Holder sdi){ boolean inset=sdi.getItem().inset; - int pos=holder.getAbsoluteAdapterPosition(); +// int pos=holder.getAbsoluteAdapterPosition(); if(inset){ - boolean topSiblingInset=pos>0 && displayItems.get(pos-1).inset; - boolean bottomSiblingInset=pos0 && displayItems.get(pos-1).inset; +// boolean bottomSiblingInset=pos) holder).getItem().insetPadding; - if(insetPadding) - outRect.left=pad; - if(insetPadding) - outRect.right=pad; + int pad=V.dp(16); +// else pad=V.dp(12); + outRect.left=pad; + outRect.right=pad; // had to comment this out because animations with offsets aren't handled properly. // can be worked around by manually applying top margins to items diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java index 49a56b9fc..05ce5b573 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java @@ -54,6 +54,8 @@ import android.view.SubMenu; import android.view.View; import android.view.ViewGroup; import android.view.WindowInsets; +import android.view.animation.AlphaAnimation; +import android.view.animation.Animation; import android.webkit.MimeTypeMap; import android.widget.Button; import android.widget.ImageView; @@ -97,7 +99,6 @@ import org.joinmastodon.android.fragments.ComposeFragment; import org.joinmastodon.android.fragments.HashtagTimelineFragment; import org.joinmastodon.android.fragments.ProfileFragment; import org.joinmastodon.android.fragments.ThreadFragment; -import org.joinmastodon.android.fragments.settings.SettingsServerAboutFragment; import org.joinmastodon.android.fragments.settings.SettingsServerFragment; import org.joinmastodon.android.model.Account; import org.joinmastodon.android.model.AccountField; @@ -175,6 +176,19 @@ public class UiUtils { private static final DateTimeFormatter TIME_FORMATTER=DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT); public static int MAX_WIDTH, SCROLL_TO_TOP_DELTA; + public static final float ALPHA_PRESSED=0.55f; + public static final Animation opacityOut, opacityIn; + + static { + opacityOut = new AlphaAnimation(1, ALPHA_PRESSED); + opacityOut.setDuration(300); + opacityOut.setInterpolator(CubicBezierInterpolator.DEFAULT); + opacityOut.setFillAfter(true); + opacityIn = new AlphaAnimation(ALPHA_PRESSED, 1); + opacityIn.setDuration(400); + opacityIn.setInterpolator(CubicBezierInterpolator.DEFAULT); + } + private UiUtils() { } @@ -194,28 +208,33 @@ public class UiUtils { } public static String formatRelativeTimestamp(Context context, Instant instant) { - long t = instant.toEpochMilli(); - long now = System.currentTimeMillis(); + return formatPeriodBetween(context, instant, null); + } + + public static String formatPeriodBetween(Context context, Instant since, Instant until) { + boolean ago = until == null; + long t = since.toEpochMilli(); + long now = ago ? System.currentTimeMillis() : until.toEpochMilli(); long diff = now - t; if(diff<1000L){ return context.getString(R.string.time_now); }else if(diff<60_000L){ - return context.getString(R.string.time_seconds_ago_short, diff/1000L); + return context.getString(ago ? R.string.time_seconds_ago_short : R.string.sk_time_seconds, diff/1000L); }else if(diff<3600_000L){ - return context.getString(R.string.time_minutes_ago_short, diff/60_000L); + return context.getString(ago ? R.string.time_minutes_ago_short : R.string.sk_time_minutes, diff/60_000L); }else if(diff<3600_000L*24L){ - return context.getString(R.string.time_hours_ago_short, diff/3600_000L); + return context.getString(ago ? R.string.time_hours_ago_short : R.string.sk_time_hours, diff/3600_000L); } else { int days = (int) (diff / (3600_000L * 24L)); - if (days > 30) { - ZonedDateTime dt = instant.atZone(ZoneId.systemDefault()); + if (ago && days > 30) { + ZonedDateTime dt = since.atZone(ZoneId.systemDefault()); if (dt.getYear() == ZonedDateTime.now().getYear()) { return DATE_FORMATTER_SHORT.format(dt); } else { return DATE_FORMATTER_SHORT_WITH_YEAR.format(dt); } } - return context.getString(R.string.time_days_ago_short, days); + return context.getString(ago ? R.string.time_days_ago_short : R.string.sk_time_days, days); } } diff --git a/mastodon/src/main/res/drawable/bg_timeline_gap.xml b/mastodon/src/main/res/drawable/bg_timeline_gap.xml index 1536ca15d..c14028dc5 100644 --- a/mastodon/src/main/res/drawable/bg_timeline_gap.xml +++ b/mastodon/src/main/res/drawable/bg_timeline_gap.xml @@ -1,7 +1,6 @@ - + - \ No newline at end of file diff --git a/mastodon/src/main/res/drawable/bg_timeline_gap_border.xml b/mastodon/src/main/res/drawable/bg_timeline_gap_border.xml new file mode 100644 index 000000000..d782ee72a --- /dev/null +++ b/mastodon/src/main/res/drawable/bg_timeline_gap_border.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/mastodon/src/main/res/drawable/ic_fluent_arrow_maximize_vertical_24_regular.xml b/mastodon/src/main/res/drawable/ic_fluent_arrow_maximize_vertical_24_regular.xml new file mode 100644 index 000000000..405c1eaba --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_fluent_arrow_maximize_vertical_24_regular.xml @@ -0,0 +1,3 @@ + + + diff --git a/mastodon/src/main/res/drawable/ic_fluent_chevron_double_down_20_filled.xml b/mastodon/src/main/res/drawable/ic_fluent_chevron_double_down_20_filled.xml new file mode 100644 index 000000000..832130b0d --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_fluent_chevron_double_down_20_filled.xml @@ -0,0 +1,3 @@ + + + diff --git a/mastodon/src/main/res/drawable/ic_fluent_chevron_double_up_20_filled.xml b/mastodon/src/main/res/drawable/ic_fluent_chevron_double_up_20_filled.xml new file mode 100644 index 000000000..cb1915942 --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_fluent_chevron_double_up_20_filled.xml @@ -0,0 +1,3 @@ + + + diff --git a/mastodon/src/main/res/layout/discover_info_banner.xml b/mastodon/src/main/res/layout/discover_info_banner.xml index 5def8563c..d1387260c 100644 --- a/mastodon/src/main/res/layout/discover_info_banner.xml +++ b/mastodon/src/main/res/layout/discover_info_banner.xml @@ -5,7 +5,9 @@ android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="16dp" + android:layout_marginHorizontal="16dp" + android:layout_marginTop="16dp" + android:layout_marginBottom="8dp" android:padding="16dp" android:background="@drawable/rect_12dp" android:backgroundTint="?colorM3SurfaceVariant"> diff --git a/mastodon/src/main/res/layout/display_item_gap.xml b/mastodon/src/main/res/layout/display_item_gap.xml index cbc06a8b7..a2e904154 100644 --- a/mastodon/src/main/res/layout/display_item_gap.xml +++ b/mastodon/src/main/res/layout/display_item_gap.xml @@ -1,24 +1,79 @@ - + android:layout_height="wrap_content" + android:orientation="vertical" + android:background="@drawable/bg_timeline_gap_border"> - + android:layout_marginBottom="4dp" + android:background="?android:selectableItemBackground"> - + - \ No newline at end of file + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mastodon/src/main/res/values-ar/strings_sk.xml b/mastodon/src/main/res/values-ar/strings_sk.xml index 804f0d5f0..fbf6a6e3d 100644 --- a/mastodon/src/main/res/values-ar/strings_sk.xml +++ b/mastodon/src/main/res/values-ar/strings_sk.xml @@ -31,49 +31,222 @@ عطل إشعارات النشر لـ %s تحقق من وجود تحديثات لا يتوفر تحديث - إضافة خيط زمني - المنشورات + ساعة واحدة + 6 ساعات + يوم واحد + 3 أيام + 7 أيام الفديرالية - قوائمك - إلغاء تدبيس الخيط الزمني - الأيقونة - تعديل الخيوط الزمنية - أدخِل وسمًا … - ميزات مثيل الخادم - مثيل الخادم - الرئيسي - البحث - الإشعارات - الملف التعريفي المحلي - المحلي فقط - الخادم المحلي فقط + الإشعارات + المدة + إظهار المعاد نشرها + 5 دقائق الرئيسي + 30 دقيقة + الرئيسي + المنشورات التي تحتوي على الوسم … + عُدِّل + المنشورات المُعدَّلة + نص زر النشر + حذف الإشعار + إنَّ %s يدعم خدمة الترجمة! + رُدّ بواسطة حساب آخَر + أتريد حفظ التعديلات؟ + لا أحد + تم فك التثبيت مِن الرئيسي + إخفاء أزرار التفاعلات + جعلُ القائمة حصرية + أضفه إلى المفضلة بحساب آخَر + فقاعة + حساب آلي + لوحة المفاتيح الموسيقية + الخادم المحلي فقط + تعطيل تذكيري لإضافة نص بديل + المعلومات البُعدية غير متوفرة + إظهار الميزات المتقدمة + نوع المحتوى + Megalodon + القائمة + تعديل الخيوط الزمنية + موجز اخباري + GIF + المحلي فقط + مدى ظهور الردود + إظهار عدد التفاعلات + Megalodon نسخة %1$s (%2$d) + تعيين الوسائط كحساسة + ميگالودون %s متوفّر للتنزيل. + القِرش يحييك! للبداية ، رجاءً قم بإدخال اسم نطاق خادمك الخاص هنا. + النظام + وردي + أرجواني + أخضر + أزرق + قهوي + أحمر + أصفر + السماح بخيارات متعددة + ترجمة + إظهار الأصلي + تُرجِم بواسطة %s + اللغة: %s + اللغات المتوفرة + مسح آخر اللغات المستخدَمة + مرحبًا! + example.social + إعداد الملف التعريفي + تفضيلات النشر + ضبط عوامل التصفية + إعدادات الأمان + القواعد + عن التطبيق + التبرع + حذف الإشعار + حذف كافة الإشعارات + حذف الكل + تخصيص نص زر النشر + ترجمة المنشورات المفتوحة فقط + البحث عنه في الفديفرس + البحث في %s + أنشُر حول الموضوع + الوسوم التي تتبعها + انسخ رابط المنشور + افتحه بواسطة حساب آخَر + المنشورات غير المُرسَلَة + المسودة + برمجة + احذف المسودّة + تم حفظ المسودّة + أتريد حفظ المسودّة؟ + لا يبدو أنّ %s يدعم الترجمة. + أضفه إلى الفواصل المرجعية بحساب آخَر + إعادة التوجيه إلى %s + سيُحفَظ المنشور كمسودّة. + تعيينه كمسودّة + برمَجة المنشور + تعديل القائمة + قوائمك + الإعلانات + تعيينه كمقروء + عن مثيل الخادم + إنشاء + إنشاء قائمة + اسم القائمة + أعضاء القائمة + المستخدِمون المتابَعون + احذف القائمة الفديرالية + إظهار إشعار واحد فقط + استخدم UnifiedPush + اختر مُزوِّدًا + أمُتأكد مِن أنك تُريد حذف قائمة \"%s\"؟ + أكتب شيئا ما لمواصلة البحث + سِجِلّ التغييرات + ينقصه نص بديل + أنشُره على أي حال الخيوط الزمنية المنشورات إضافة - خيط زمني - تدبيس الخيط الزمني + تنحية من بين متابعيك + مثبَّت على الرئيسي + … أو أي من هذه + أدخِل الوسم … + أدخِل الوسوم … + الخيط الزمني + الوسم + تثبيت الخيط الزمني + فكّ تثبيت الخيط الزمني + حذف + أيقونة + قلب + نجمة + مدينة + قط + كلب + أرنب + سلحفاة + سرير + سلة مهملات + طبيب + إضافة خيط زمني + كرة + صورة + اللغة + المكان + المايكروفون + مجهر + قهوة + ضحك + أخبار + سمّاعة + الطقس + ألعاب + ألماس + مطرية + أتريد إظهار المنشورات المحلية فقط؟ + ALT + أرفِق ملفًا + البحث… + لا نص بديل متوفر + · + ميزات مثيل الخادم + تم الإبلاغ عنه + إصدار الخادم: %s + توسيع + متابعته بواسطة حساب آخَر + النوع المبدئي للمحتوى + افتحه بواسطة التطبيق + قائمة حصرية + إخفاء الميزات المتقدمة + إظهار المحتوى + الضمائر + لا نتائج + أتريد حفظ المسودّة؟ + غير محدد + شاركه عبر حساب + ردود مِن نفس الناشر + مثيل الخادم + الوضع الأسود الداكن + إظهار الضمائر على الخيوط الزمنية + إظهار الضمائر على خيوط المحادثات + البحث + الملف التعريفي + التأكيد قبل إعادة النشر + %1$s (%2$s) + إلغاء إعادة النشر + أعد النشر بمدى الظهور التالي + أعد النشر بحساب آخَر + تمت إعادة النشر كـ %s + إظهار خيط المحادثة + إبلاغات جديدة + اطوي + الكشف عن تحذيرات المحتوى دائما + المنشورات + تم تنزيل ميگالودون %s وهو جاهز للتنصيب. تعديل الخيط الزمني - أدخِل وسمًا … - البحث جارٍ … + دبوس + أوراق شجر + رياضة + موسيقى + ناس + صحة + مهم + دردشة + إنسان + كرة أرضية + مصباح + قطار + درع + كتاب + دراجة هوائية + خريطة + نار + حشرة + بيتزا + مطرقة + سمّاعات + نتيجة استطلاع الرأي + تمت تصفيته: %s البحث في الفديفرس - إعداد الملف التعريفي - الوسوم المُتابَعَة - انسخ رابط المنشور - ترجم فقط المنشورات المفتوحة - المنشورات غير المُرسَلة - - لا منشور - منشور واحد - منشوران - منشورات - منشورًا - منشور - - الإعلانات - عن مثيل الخادم - مرحبًا! - للبداية، ندعوك إلى إدخال عنوان اسم نطاق خادمك هنا. \ No newline at end of file diff --git a/mastodon/src/main/res/values-bn-rBD/strings.xml b/mastodon/src/main/res/values-bn-rBD/strings.xml index cc2e931a2..506df1209 100644 --- a/mastodon/src/main/res/values-bn-rBD/strings.xml +++ b/mastodon/src/main/res/values-bn-rBD/strings.xml @@ -2,6 +2,7 @@ লগ ইন করুন এরপর + সার্ভারের তথ্য পুনরূদ্ধার করা হচ্ছে… কোনো ত্রুটি ঘটেছে ঠিক আছে প্রমাণীকরণের জন্য প্রস্তুত হচ্ছে... @@ -65,6 +66,10 @@ %d দিন বাকি %d দিন বাকি + + %,d ভোট + %,d ভোট + বন্ধ অ্যাকাউন্টটি মিউট করুন মিউট করুন @@ -123,6 +128,8 @@ তথ্য-প্রযুক্তি আপনার ইনবক্স দেখুন + ই-মেইল অ্যাপ খুলুন + নিশ্চিতকরনের ই-মেইল পাঠানো হয়েছে ফলোয়ারদের জন্য নতুন ফলোয়াররা Mastodon-এ প্রথমে লগ ইন করুন diff --git a/mastodon/src/main/res/values-ca-rES/strings_sk.xml b/mastodon/src/main/res/values-ca-rES/strings_sk.xml index 49b101970..f37cc5e1b 100644 --- a/mastodon/src/main/res/values-ca-rES/strings_sk.xml +++ b/mastodon/src/main/res/values-ca-rES/strings_sk.xml @@ -372,4 +372,8 @@ Aquestes són les publicacions més recents de la xarxa seleccionades per l\'administració de la instància. Indicador Cerca al fedivers + + publicació + publicacions + \ No newline at end of file diff --git a/mastodon/src/main/res/values-de-rDE/strings.xml b/mastodon/src/main/res/values-de-rDE/strings.xml index d203dfe0f..c0a48dd37 100644 --- a/mastodon/src/main/res/values-de-rDE/strings.xml +++ b/mastodon/src/main/res/values-de-rDE/strings.xml @@ -43,8 +43,8 @@ %s sperren %s entsperren %s melden - %s blockieren - %s nicht mehr blockieren + %s sperren + %s nicht mehr sperren %,d Beitrag %,d Beiträge @@ -98,12 +98,12 @@ Nicht mehr stummschalten Konto sperren Domain sperren - Bestätigen, um %s zu blockieren + Bestätigen, um %s zu sperren Sperren Konto nicht mehr sperren Domain nicht mehr blockieren - Bestätigen, um %s nicht mehr zu blockieren - Nicht mehr blockieren + Bestätigen, um Sperre von %s aufzuheben + Sperre aufheben Blockiert Abstimmen Löschen @@ -387,6 +387,7 @@ Willkommen auf Mastodon Mastodon ist ein dezentrales, soziales Netzwerk. Das bedeutet, dass es nicht von einem einzigen Unternehmen kontrolliert wird. Das Netzwerk besteht aus unabhängig voneinander betriebenen Servern, die miteinander verbunden sind. Was sind Server? + Link wird geöffnet… Dieser Link wird in der App nicht unterstützt Von allen Konten abmelden diff --git a/mastodon/src/main/res/values-de-rDE/strings_sk.xml b/mastodon/src/main/res/values-de-rDE/strings_sk.xml index a237f83b5..8c7cb5da9 100644 --- a/mastodon/src/main/res/values-de-rDE/strings_sk.xml +++ b/mastodon/src/main/res/values-de-rDE/strings_sk.xml @@ -348,4 +348,45 @@ Suche Benachrichtigungen Profil + Bitte geben Sie ein Emoji ein + Emoji-Reaktionen einschalten + Zeigt Emoji-Reaktionen zu Beiträgen an und lässt dich eigene hinzufügen. Einige Fediverse-Server unterstützen das, Mastodon jedoch nicht. + Mit Emoji reagieren + Dauer + Emoji-Reaktionen in Timelines anzeigen + Nur wenn der Beitrag geöffnet ist + 3 Tage + Wenn du auf ein Zeichen wartest, keinen Suizid zu begehen – das hier ist es. Bitte ziehe in Erwägung, eine Suizid-Hotline zu kontaktieren, wenn du Hilfe brauchst. + Leere Emoji-Reaktionen verbergen + Hinzufügen-Button immer anzeigen + Emoji zum Reagieren eintippen + Unbestimmt + 5 Minuten + 30 Minuten + 1 Stunde + 6 Stunden + 1 Tag + 7 Tage + Du wurdest von %s erwähnt + Suizid + Falls es dir schlecht geht… + Hotline finden + Nicht mehr anzeigen + Beitrag enthält Medien + + Ein User hat mit %2$s reagiert + %1$,d User haben mit %2$s reagiert + + + Beitrag + Beiträge + + Tab-Bezeichnungen in der Navigationsleiste anzeigen + %d Sekunden + %d Minuten + %d Stunden + %d Tage + https://findahelpline.com + Ältere Beiträge laden + Neuere Beiträge laden \ No newline at end of file diff --git a/mastodon/src/main/res/values-es-rES/strings_sk.xml b/mastodon/src/main/res/values-es-rES/strings_sk.xml index 7da511ee4..184db60d5 100644 --- a/mastodon/src/main/res/values-es-rES/strings_sk.xml +++ b/mastodon/src/main/res/values-es-rES/strings_sk.xml @@ -331,10 +331,10 @@ GIF Mostrar el contenido Pronombres - Cambiar la línea de tiempo + Cambiar la cronología Instancia Desactivar el indicador de pestaña activa en forma de pastilla - Modo negro intenso + Usar tema negro Buscar en el Fediverso Selecciona un distribuidor No se ha encontrado ningún distribuidor @@ -379,4 +379,16 @@ temas temas + Ocultar emoji vacíos + Sólo cuando se abre un tema + Mostrar siempre el botón de añadir + Encontrar un teléfono de ayuda + No mostrar de nuevo + El tema contiene medios + El más antiguo primero (hacia arriba) + Mostrar los emoji en las líneas de tiempo + En caso de que estés en apuros… + https://findahelpline.com + Cargar los mensajes que faltan + Lo más nuevo primero (hacia abajo) \ No newline at end of file diff --git a/mastodon/src/main/res/values-eu-rES/strings.xml b/mastodon/src/main/res/values-eu-rES/strings.xml index 2e893b1d4..62fca5584 100644 --- a/mastodon/src/main/res/values-eu-rES/strings.xml +++ b/mastodon/src/main/res/values-eu-rES/strings.xml @@ -11,6 +11,10 @@ %s(e)k bultzatu du %s-(r)i erantzunez Jakinarazpenak + %s(e)k jarraitu zaitu + %s-(e)k jarraitzeko eskaera bidali dizu + %s(e)k zure bidalketa gogoko du + %s(e)k zure bidalketa bultzatu du Partekatu Ezarpenak Argitaratu @@ -32,6 +36,7 @@ Jarraitu Jarraitzen Editatu profila + Partekatu profila Mututu %s Desmututu %s Blokeatu %s diff --git a/mastodon/src/main/res/values-fi-rFI/strings_sk.xml b/mastodon/src/main/res/values-fi-rFI/strings_sk.xml index 045e125f3..c727880a9 100644 --- a/mastodon/src/main/res/values-fi-rFI/strings_sk.xml +++ b/mastodon/src/main/res/values-fi-rFI/strings_sk.xml @@ -1,3 +1,378 @@ - + Kiinnitetty + Megalodon + Suodatettu: %s + Ota emojireaktiot käyttöön + Näytä emojireaktiot aikajanoissa + Näytetäänkö emojireaktiot aikajanoissa. Jos tämä on pois käytöstä, emojireaktiot näkyvät vain lankaa katsottaessa. + Reagoi emojilla + Järjestelmän näppäimistö seuraavalla painalluksella + Tähän tarvitaan emoji + Kirjoita vastataksesi emojilla + Kesto + Loputon + 5 minuuttia + 30 minuuttia + 1 tunti + 6 tuntia + 1 päivä + 3 päivää + 7 päivää + %s mainitsi sinut + Paikallinen + Koti + Poista ja kirjoita uudestaan + Kiinnitä profiiliin + Irrota profiilista + Poista ja kirjoita viesti uudelleen + Kiinnitä viesti profiiliin + Haluatko kiinnittää tämän viestin profiiliisi\? + Oletko varma että haluat poistaa ja kirjoittaa viestin uudelleen\? + Poista viestin kiinnitys profiilista + Viestiä irrotetaan… + Viestiä kiinnitetään… + Kuvaselitys + Listaamaton + Näytä vastaukset + Listat + Tyhjennä viimeksi käytetyt kielet + Tervetuloa! + Tue Megalodonia + Avaa automaattisesti samat sisältövaroitukset vastauksissa + Ei koskaan + Saman tilin vastauksissa + Kaikkien vastauksissa + Käännä vain avatut viestit + Näytä alkuperäinen + Käytettävissä olevat kielet + Kännetty käyttäen %s + Kieli: %s + Luo profiili + Julkaisuasetukset + Järjestelmä + Pinkki + Väripaletti + Poista ilmoitus + %s tukee käännöksiä! + Sovelluksessa avaaminen ei onnistunut + Jaa tilinä + Poista kaikki ilmoitukset + Poista kaikki + Oletko varma, että haluat poistaa kaikki ilmoitukset\? + Etsitään Fediversestä + Peru tehostus + Tehostuksen näkyvyysasetus + Kopioi linkki viestiin + Avaa toisella tilillä + Kohdetta ei löytynyt + Hae tietoa etäinstansseista + Lähetä edelleen kohteeseen %s + Julkaisemattomat viestit + Vastauksissa kaikille + Ei koskaan + Tallenna luonnos\? + Tallenna muutokset\? + Merkitse luonnokseksi + Ajasta julkaisu + Vuode + Todennettu + Lääkäri + Timantti + Sateenverjo + Lisää aikajana + Viestit joissa on aihetunniste… + ...tai jokin näistä + Kannu + Ei määritelty + Pelkkä teksti + HTML + Sisällön tyyppi + Markdown + Rajoita animaatioiden liikettä + Oletusarvo valinnalle \"Lähetä raportti edelleen\" + Bubble + Merkitse luetuksi + Palvelinilmoitukset + Tietoja instanssista + Näytä vain yksi ilmoitus + Luo + Vastauksena + Oletko varma että haluat poistaa listan \"%s\"\? + Poista seuraajista + Kissa + Kaupunki + Koira + Nasta + Etsitään… + ”Katso uudet viestit” -painike + Syöte + muokattu + Muokatut viestit + Liitä tiedosto + Piilota reaktiopainikkeet + Seurattu tilinä %s + Piilota Julkaise-painike automaattisesti + Seuraa toisena tilinä + Viesti-ilmoitukset + Estä välilehdestä toiseen pyyhkäiseminen + Salli ilmoitusten poistaminen + GIF + Selitys puuttuu + vain maininnat + Glitch local-only mode + Ota tämä käyttöön, jos koti-instanssisi käyttää Glitchiä. Hometown tai Akkoma eivät tarvitse tätä. + Joitakin liitteitä ei ole vielä ladattu valmiiksi. + Ota viestin muotoilu käyttöön + Sisältötyypin oletusarvo + Tämä mahdollistaa uusien viestien sisältötyypin ennaltavalinnan, ohittaa julkaisuasetuksissa asetetun arvon. + Tietoa instanssista ei juuri nyt ole saatavilla + Avaa sovelluksessa + Jaa tai avaa tilinä + Vastauksen näkyvyys + Kaikki vastaukset + Näytä lanka + \"Vastauksena\" -rivi käyttäjäkuvakkeen yläpuolella + Tiivistetty tehostus/vastaus-rivi + + Yksi käyttäjä reagoi näin: %2$s + %1$,d käyttäjää reagoi näin: %2$s + + + viesti + viestiä + + Ääniraita + Vastaukset seuraamilleni + Vastaukset minulle + Näytä laskimet + Megalodon v%1$s (%2$d) + Merkitse media arkaluontoiseksi + Nämä ovat uusimmat viestit yleiseltä aikajanalta. + Listoja joissa on %s + Viestit + Sininen + Ruskea + Punainen + Keltainen + Salli useita valintoja + Käännä + Hai tervehtii sinua! Päästäksesi alkuun kirjoita koti-instanssisi osoite alla olevaan ruutuun. + example.social + Suodatinasetukset + Turvallisuusasetukset + Säännöt + Tietoa sovelluksesta + Lahjoita + Oletko varma, että haluat poistaa ilmoituksen\? + Julkaisupainikkeen teksti + Kirjoita viesti aiheena tämä + Tee kirjamerkki toiselle tilille + Kirjamerkki jo tallennettu + Tykkä toisena tilinä + Tykätty tilinä %s + Tykkäys jo tallennettu + Vastaa toisena tilinä + Luonnos + Ajasta + Poista luonnos + Oletko varma, että haluat poistaa tämän viestiluonnoksen\? + Poista ajastettu julkaisu + Ilmoitukset käyttäjän %s viesteistä poistettu käyttöstä + Näytä tehostukset + Lataa uudet viestit automaattisesti + Luonnos tai ajastettu viesti + Ajastettu ajalle + Luonnos tallennettu + Julkaisu ajastettu + Valittu aika on liian pian + Ajasta tai kirjoita luonnos + Älä ajasta + Älä kirjoita luonnosta + Ota käyttöön UnifiedPush + Valitse jakelija + Jakelijaa ei löydetty + Luo lista + Listan nimi + Näytä vastaukset kohteeseen + listan jäsenet + seuratut tilit + ei mitään + Poista lista + Muokkaa listaa + Listasi + Yleinen + Poista %s seuraajista estämällä ja poistamalla esto välittömästi\? + Poista + Seuraaja poistettu onnistuneesti + Muutoslista + Kuvaselitys puuttuu + Julkaise silti + Poista muistutus mediakuvauksesta + Jos otat käyttöön ilmoitukset joidenkin henkilöiden viesteistä, heidän uudet viestinsä näkyvät täällä. + Aikajanat + Viestit + Lisää + Aikajana + Lista + Aihetunniste + Kiinnitä aikajana + Irrota aikajana + Irrotettu kotinäytöstä + Poista + Kuvake + Sydän + Tähti + Megafoni + Koskettimisto + Nauru + Pii + Väripaletti + Akateeminen päähine + Etiketti + Stetoskooppi + Sää + Pelit + Koodi + Hehkulamppu + Juna + Lehtiä + Urheilu + Aukko + Musiikki + Ihmisiä + Terveys + Tärkeää + Juttelu + Kilpi + Kirja + Polkupyörä + Kartta + Laskukaava + Reppu + Salkku + Tuli + Ötökkä + Puheenjohtajan nuija + Mittari + Kuulokkeet + Ihminen + Maapallo + Muokkaa aikajanaa + ... ja kaikki nämä + ...muttei mitään näistä + Kirjoita aihetunniste… + Kirjoita aihetunnisteet… + Näytetäänkö vain paikalliset viestit\? + Aihetunniste ei voi olla tyhjä + ALT + Ei tuloksia + Tallenna luonnos\? + Ilmoitus kuvaselityksistä + Ilmoitus puuttuvista kuvaselityksistä + Salli pre-release-versiot + vain paikallinen + · + Vain paikallinen instanssi + Jotta tämä toimii, koti-instanssisi on tuettava viestien julkaisemista ainoastaan paikallisesti. Useimmat Mastodonin muunnellut versiot tukevat, mutta Mastodon ei. + rekisteröity + raportoitu + Käyttäjät rekisteröityvät + Lisää sisältövaroitukseen \"re:\" kun vastaat + Korjataanko liitteet\? + BBCode + MFM + Vain vastauksissa muille + Erillinen lista + Tee listasta erillinen + Erillisen listan jäsenet eivät näy kotiaikajanallasi – jos instanssisi tukee tätä. + Näytä lisäasetukset + Piilota lisäasetukset + Näytä sisältö + Pronominit + Vaihda aikajanaa + Instanssi + Ota aktiivisen välilehden pillerinmuotoinen osoitin pois käytöstä + Täysmusta tila + Näytä pronominit aikajanoissa + Näytä pronominit langoissa + Näytä pronominit käyttäjälistoissa + Koti + Etsi + Ilmoitukset + Näytä välilehtien nimet navigointipalkissa + Profiili + Tehostettu tililtä %s + Jo tehostettu + %s reagoi + Uusia raportteja + Palvelimen versio: %s + Kyselyn tulokset + Avaa + Kätke + Kätke pitkien viestien loppuosa + %1$s reagoi %2$s + Vastaus lähetetty käyttäjälle %s + Megalodon %s on ladattu ja valmis asennettavaksi. + Etsi päivityksiä + Ei päivityksiä saatavilla + Seuraamispyynnöt + Megalodon %s on valmis ladattavaksi. + Hyväksy seuraamispyyntö + Avaa sisältövaroitukset aina + Näytä yleinen aikajana + Violetti + Vihreä + Kilpikonna + Jänis + Ilmapallo + Kuva + Botti + Kieli + Sijainti + Mikrofoni + Mikroskooppi + Instanssin ominaisuudet + Etsi Fediversumista + Kysy vahvistus ennen tehostamista + %1$s (%2$s) + Oletko varma, että haluat tyhjentää viimeksi käytettyjen kielten listan\? + Ilmoitukset käyttäjän %s viesteistä otettu käyttöön + Yleinen + Poista ilmoitus + Mahdollistaa viestien sisältötyypin valinnan, esimerkiksi Markdown. Kaikki instanssit eivät tue tätä. + Nämä ovat uusimmat viestit ihmisiltä, joiden tilejä sinun instanssisi isännöi. + Muokkaa Julkaise-painikkeen tekstiä + etäinfoa ei saatavilla + Hylkää seuraamispyyntö + %s ei näytä tukevan käännöksiä. + Profiilin lataaminen %s:n kautta epäonnistui + Salli tekstin rullaus otsikkolistoissa + Etsitään %ssta + Yritä hakea tarkempia tietoja seuraajista, tykkäyksistä ja tehostuksista lataamalla tiedot alkuperäiseltä instanssilta. + Aihetunnisteet joita seuraat + Kirjamerkki tehty tilille %s + Tehosta toisena tilinä + Sama kuvake kaikille ilmoituksille + Oletko varma, että haluat poistaa tämän ajastetun julkaisun\? + Julkaisu tallennetaan luonnoksena. + Julkaisu on ajastettava vähintään 10 minuuttia tulevaisuuteen. + Oletko varma että haluat irrottaa tämän viestin\? + On asennettava jakelijaohjelma jotta UnifiedPush-ilmoitukset toimivat. Lisätietoja: https://unifiedpush.org/ + Näyttää viestien emojireaktiot ja mahdollistaa vuorovaikutuksen niiden kanssa. Jotkin Mastodonin muokatut versiot tukevat tätä, mutta Mastodon ei. + Hae kirjoittamalla tähän + Selitys puuttuu vähintään yhdestä liitteestä. + Kiinnitetty kotinäyttöön + Kahvi + Uutiset + Klaffitaulu + Pitsa + Roskakori + Muokkaa aikananoja + Ota huomioon, että palvelin tekee nämä operaatiot. Niiden yhdistelyä ei välttämättä tueta. + Tämä muokkaa tehostettua viestiä + Haluatko tallentaa muutokset tähän luonnokseen vai julkaista sen nyt\? + Palvelin tukee paikallista julkaisemista + Anna mediatoiston jatkua lisäten uusi raita + Lainaus %s + \ No newline at end of file diff --git a/mastodon/src/main/res/values-fr-rFR/strings_sk.xml b/mastodon/src/main/res/values-fr-rFR/strings_sk.xml index 96054fd13..9f1a8ee55 100644 --- a/mastodon/src/main/res/values-fr-rFR/strings_sk.xml +++ b/mastodon/src/main/res/values-fr-rFR/strings_sk.xml @@ -29,7 +29,7 @@ Toujours afficher les avertissements de contenu Désactiver le défilement du texte dans les barres de titre Contribuez à Megalodon - Afficher la timeline fédérée + Afficher le fil fédéré Megalodon Supprimer et rééditer Épingler au profil @@ -141,7 +141,7 @@ Êtes-vous sûr de vouloir supprimer la liste \"%s\" \? Vos listes Fédération - Communauté + Local Accueil Écrivez pour lancer la recherche Supprimer @@ -149,28 +149,28 @@ Journal des modifications Supprimer %s en tant qu\'abonné en le bloquant et en le débloquant immédiatement \? Supprimer comme abonné - Détacher la timeline + Détacher le fil Texte alternatif manquant Au moins une pièce jointe ne contient pas de description. Publier quand même Si vous activez les notifications de message pour certaines personnes, leurs nouveaux messages apparaîtront ici. - Chronologies + Fils Messages Ajouter - Chronologie + Fil Liste Hashtag - Épingler la timeline + Épingler le fil Détachée de l\'accueil - Épinglée à l\'accueil + Épinglé à l’accueil Supprimer Icône Cœur Favoris - Modifier les timelines + Modifier les fils ALT édité - Modifier la timeline + Modifier le fil Modifier un article boosté Désactiver le rappel pour ajouter du texte alternatif Messages modifiés @@ -290,7 +290,7 @@ Ouvrir dans l\'application Partager avec le compte Partager ou ouvrir avec le compte - Ce sont les messages les plus récents du réseau organisés par vos administrateurs d\'instance. + Ce sont les messages les plus récents du réseau organisés par les administrateur·rice·s de votre instance. Bulle Informations sur l\'instance temporairement indisponibles Impossible de l\'ouvrir dans l\'application @@ -304,14 +304,14 @@ Réponses de tout le monde En réponse à n\'importe qui Jamais - Uniquement en réponse aux autres + autres \"Transférer le rapport\" par défaut Corbeille Vérifié Docteur Diamant Parapluie - Ajouter une timeline + Ajouter un fil … ou l\'un d\'entre eux … et chacun d\'entre eux … mais aucun d\'entre eux @@ -327,11 +327,11 @@ Entrez le hashtag… Veuillez noter que le serveur gère ces opérations. Les combiner peut ne pas être prise en charge. Liste exclusive - Les membres d\'une liste exclusive n\'apparaîtront pas sur votre chronologie personnelle - si votre instance le prend en charge. + Les membres d\'une liste exclusive n\'apparaîtront pas sur votre fil principal - si votre instance le prend en charge. Flux Montrer le contenu Pronoms - Changer la chronologie + Changer de fil Instance Mode noir absolu GIF @@ -375,13 +375,22 @@ Tapez pour réagir avec un emoji Vous devez saisir un emoji - publication - publications - publications + message + messages + messages - Bouton « Afficher les nouvelles publications » - Uniquement lorsque la publication est ouverte - Toujours afficher le bouton « ajouter » - Afficher les réactions émoji dans les fils - Masquer les réactions émojis vides + Uniquement lorsque le message est ouvert + Toujours afficher le bouton Ajouter + Trouver un numéro d\'assistance + Ne plus afficher + https://findahelpline.com/fr + Le message contient des médias + Le plus récent en premier (descendant) + Le plus ancien en premier (ascendant) + Comportement lors du chargement des messages manquants + Afficher les réactions emoji dans les fils + Masquer les réactions emoji vides + Suicide + Dans le cas où vous seriez en détresse… + Si vous cherchez un signe pour ne pas vous suicider, le voici. Si vous êtes en détresse et/ou avez des pensées suicidaires, si vous voulez aider une personne en souffrance, vous pouvez contacter une ligne d\'assistance de prévention du suicide. \ No newline at end of file diff --git a/mastodon/src/main/res/values-gd-rGB/strings_sk.xml b/mastodon/src/main/res/values-gd-rGB/strings_sk.xml index 045e125f3..16f02bd9f 100644 --- a/mastodon/src/main/res/values-gd-rGB/strings_sk.xml +++ b/mastodon/src/main/res/values-gd-rGB/strings_sk.xml @@ -1,3 +1,314 @@ - + Criathraichte: %s + Co-theannaich + Ceadaich iomadh roghainn + Prìnichte + Falamhaich na cànain o chionn goirid + Megalodon + Prìnich ris a’ phròifil + Leudaich rabhaidhean susbainte an-còmhnaidh + Cuir ris na comharran-lìn aig cunntas eile + Seall an tionndadh tùsail + Air eadar-theangachadh le %s + Pailead nan dathan + Sguab às am brath + Sguab às am brath + Tha %s a’ cur taic ri eadar-theangachadh! + Chan eil %s a’ cur taic ri eadar-theangachadh a-rèir coltais. + Falamhaich a h-uile brath + Sguab às na h-uile + A bheil thu cinnteach gu bheil thu airson gach brath fhalamhachadh\? + ’Ga lorg air a’ cho-shaoghal + Na brosnaich tuilleadh + Sìn air adhart gu %s + Ann am freagairtean gu duine sam bith + Ann am freagairtean do chàch a-mhàin + A bheil thu airson a shàbhaladh ’na dhreachd\? + Bìocar + Dotair + Daoimean + Sgàilean + Cuir loidhne-ama ris + Postaichean sa bheil taga hais… + … no gin sam bith dhen fheadhainn seo + … ’s gach fear dhen fheadhainn seo + Sgeideal no dreachd + Seòrsa na susbainte + Ìslich an gluasad sna beòthachaidhean + Brathan-fios + Cuir comharra gun deach a leughadh + Mun ionstans + Sgrìobh rud a thòiseachadh air lorg + Thoir an neach-leantainn air falbh + Thoir air falbh + Baile + Cat + + Coineanach + Bòrd-braig + Duilleach + Deasaich na loidhnichean-ama + ALT + air a dheasachadh + Prìne + Postaichean air an deasachadh + ’Ga lorg… + Putan “Seall na postaichean ùra” + Inbhir + Falaich putanan na h-eadar-ghabhail + Cuir an comas sgroladh teacsa air bàraichean-tiotail + A’ toirt iomradh air %s + Dreachd + Tar-chòmhdachadh fuaime + Leig le meadhanan a tha ’gan cluich cumail a’ dol thairis air a’ chluiche ùr + Luchdaich postaichean ùra gu fèin-obrachail + Seall cunntas na h-eadar-ghabhail + Megalodon v%1$s (%2$d) + Cuir comharra gu bheil am meadhan frionasach + Co-nasgadh + Tha roghainn teacsa a dhìth + Tha ceanglachan no dhà gun tuairisgeul ann. + Foillsich e co-dhiù + Cuir an cuimhneachan air roghainn teacsa dheth + Ma chuireas tu brathan puist an comas do chuid, nochdaidh na postaichean ùra aca an-seo. + Loidhnichean-ama + Postaichean + Cuir ris + Loidhne-ama + Liosta + Taga hais + Prìnich an loidhne-ama + Dì-phrìnich an loidhne-ama + Prìnichte ris an dachaigh + Dì-phrìnichte on dachaigh + Thoir air falbh + Ìomhaigheag + Cridhe + GIF + Post brosnaichte air a dheasachadh + Ceangail faidhle ris + Gun toradh + A bheil thu airson a shàbhaladh ’na dhreachd\? + A bheil thu airson na h-atharraichean agad a shàbhaladh ’nan dreachd no am foillseachadh an-dràsta\? + Chan eil roghainn teacsa ri fhaighinn + Taisbeanair dhan roghainn teacsa + Taisbeanair do roghainn teacsa a dhìth + Cuir na ro-sgaoilidhean an comas + ionadail a-mhàin + le iomradh ort a-mhàin + · + An t-ionstans ionadail a-mhàin + Gleusan an ionstans + Cuiridh am frithealaiche taic ri postadh gu h-ionadail + Feumaidh an ionstans-dachaigh agad taic a chur ri postaichean a bhios ionadail a-mhàin. Cuiridh a’ mhòrchuid de thionndaidhean atharraichte de Mhastdon taic ri seo ach cha chuir Mastodon àbhaisteach. + Modh ionadail a-mhàin aig Glitch + Cuir seo an comas ma tha an t-ionstans-dachaigh agad a’ ruith Glitch. Chan eil feum air seo airson Hometown no Akkoma. + HTML + Dearbh mus dèan thu brosnachadh + %1$s (%2$s) + Brosnaich le cunntas eile + Loidhne brosnachaidh/freagairt dhùmhlaichte + Seo na postaichean as ùire on lìonra a tha rianairean an ionstans agad a’ curaideachadh. + Gabh ris an iarrtas leantainn + Diùlt an t-iarrtas leantainn + Liostaichean le %s + Pinc + Purpaidh + Uaine + Gorm + Donn + Dearg + Buidhe + A bheil thu cinnteach gu bheil thu airson na cànain o chionn goirid fhalamhachadh\? + Fàilte! + Tha an cearban ’gad fhàilteachadh! Airson tòiseachadh, cuir a-steach ainm àrainne an ionstans-dhachaigh agad gu h-ìosal. + ball-eisimpleir.social + Suidhich pròifil + Roghainnean postaidh + Rèitich na criathragan + Roghainnean tèarainteachd + Riaghailtean + Teacsa a’ phutain-fhoillseachaidh + Gnàthaich teacsa a’ phutain-fhoillseachaidh + Meaga-fòn + Micreofon + Micreosgop + Meur-chlàr + Cofaidh + Gàire + Naidheachdan + Pi + Pailead nan dathan + Currac sgoilearachd + Taga + Steatasgop + Aimsir + Geamannan + Còd + Bolgan solais + Trèana + Spòrs + Thoir an aire gur e am frithealaiche a làimhsicheas na gnìomhan seo. Dh’fhaoidte nach obraich an cur ri chèile aca. + A bheil thu airson na postaichean ionadail a shealltainn a-mhàin\? + Chan fhaod an taga hais a bhith falamh + air a chlàradh + air gearan a dhèanamh + Fhreagair %1$s le %2$s + Fhreagair %s + Cleachdaichean a’ clàradh + Gearanan ùra + Toraidhean cunntais-bheachd + Cuir ro-leasachan “re:” ris an rabhadh susbainte nuair a bhios tu a’ freagairt + Leudaich + Co-theannaich postaichean glè fhada + A bheil thu airson na ceanglachain a chàradh\? + Chan eil luchdadh suas nan ceanglachan uile deiseil. + Lean le cunntas eile + ’Ga leantainn le %s + Falaich putan an sgrìobhaidh gu fèin-obrachail + Chaidh freagairt a chur gu %s + San fhreagairt + Loidhne nam freagairtean os cionn an avatar + Seall an snàithlean + Cha deach a shònrachadh + Teacsa lom + Markdown + BBCode + MFM + Cuir fòrmatadh nam postaichean an comas + Tionndadh an fhrithealaiche: %s + Sguab às is dèan dreachd ùr air + Sguab às is dèan dreachd ùr air a’ phost + A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às ’s dreachd ùr a dhèanamh air\? + Prìnich am post ris a’ phròifil + A bheil thu airson am post seo a phrìneachadh ris a’ phròifil agad\? + A’ prìneachadh a’ phuist… + Dì-phrìnich on phròifil + Dì-phrìnich am post on phròifil + A bheil thu cinnteach gu bheil thu airson am post seo a dì-phrìneachadh\? + A’ dì-phrìneachadh a’ phuist… + Tuairisgeul an deilbh + Falaichte o liostaichean + Seall na freagairtean + Faicsinneach nam freagairtean + A h-uile freagairt + Freagairtean dhan luchd-leantainn agam + Freagairtean dhomhsa + Seall na brosnachaidhean + Chuir thu brathan nam post air dha %s + Chuir thu brathan nam post dheth dha %s + Seo na postaichean as ùire leis na daoine sa cho-nasgadh agad. + Tha Megalodon %s deiseil ri luchdadh a-nuas. + Chaidh Megalodon %s a luchdadh a-nuas is tha e deiseil ri stàladh. + Thoir sùil airson ùrachadh + Chan eil ùrachadh ri fhaighinn + Liostaichean + Iarrtasan leantainn + Cuidich le leasachadh Megalodon + Seall an loidhne-ama cho-naisgte + Postaichean + Brathan puist + An siostam + Eadar-theangaich + Cànan: %s + Cànain ri am faighinn + Cuir grad-shlaighdeadh eadar tabaichean à comas + Mun aplacaid + Thoir tabhartas dhuinn + A bheil thu cinnteach gu bheil thu airson am brath seo a sguabadh às\? + Cuir sguabadh às nam brathan an comas + Na eadar-theangaich ach postaichean a chaidh fhosgladh + ’Ga lorg air %s + Chaidh a bhrosnachadh mar %s + Brosnaich le so-fhaicsinneachd + Postaich mu dhèidhinn seo + Tagaichean hais ’gan leantainn + Dèan lethbhreac dhen cheangal dhan phost + Fosgail le cunntas eile + Cha deach an goireas a lorg + Chaidh a chur ris na comharran-lìn mar %s + Tha seo ’na chomharra-lìn mu thràth + Cuir ris na h-annsachdan aig cunntas eile + Chaidh a chur ris na h-annsachdan mar %s + Tha seo ’na annsachd mu thràth + Tha seo ’ga bhrosnachadh mu thràth + Freagair le cunntas eile + Ìomhaigheag chunbhalach dhan a h-uile brath + Postaichean gun chur + Sgeidealaich + Sguab às an dreachd + A bheil thu cinnteach gu bheil thu airson an dreachd seo a sguabadh às\? + Sguab às am post sgeidealaichte + A bheil thu cinnteach gu bheil thu airson am post sgeidealaichte seo a sguabadh às\? + Dèan dreachd no sgeidealaich + Thèid am post a shàbhaladh mar dhreachd. + Air an sgeideal + Chaidh an dreachd a shàbhaladh + Chaidh am post a chur air an sgeideal + Tha àm an sgeideil ro thràth + Feumaidh post sgeidealaichte a bhith 10 mionaidean san àm ri teachd air a char as tràithe. + A bheil thu airson na dh’atharraich thu a shàbhaladh\? + Cuir comharra gur e dreachd a th’ ann + Cuir am post air an sgeideal + Na cuir air an sgeideal + Na dèan dreachd dheth + Na seall ach aon bhrath + Cleachd UnifiedPush + Tagh sgaoileadair + Cha deach sgaoileadair a lorg + Feumaidh tu sgaoileadair a stàladh mus obraich brathan le UnifiedPush. Airson barrachd fiosrachaidh, tadhail air https://unifiedpush.org/ + Cruthaich + Cruthaich liosta + Ainm na liosta + Seall na freagairtean gu + buill na liosta + cleachdaichean a leanas tu + na seall idir + Sguab às an liosta + A bheil thu cinnteach gu bheil thu airson an liosta “%s” a sguabadh às\? + Deasaich an liosta + Na liostaichean agad + Dachaigh + Ionadail + Co-nasgadh + Do cuideachd + A bheil thu airson %s a thoirt air falbh ’na neach-leantainn le bacadh ’s dì-bhacadh sa bhad\? + Chaidh an neach-leantainn a thoirt air falbh + Loga nan atharraichean + Rionnag + Turtar + Bailiùn + Dealbh + Bot + Cànan + Ionad + Fosgladh + Ceòl + Daoine + Slàinte + Cudromach + Cabadaich + Sgiath + Leabhar + Baidhseagal + Mapa + Foirmle matamataig + Màla-droma + Màileid-oifise + Teine + Biastag + Pizza + Casar + Gèidse + Cluais-fhòn + Daonna + Cruinne + Leabaidh + Biona ath-chuairteachaidh + Air a dhearbhadh + Deasaich an loidhne-ama + … ach gun gin sam bith dhen fheadhainn seo + Cuir a-steach taga hais… + Cuir a-steach tagaichean hais… + \ No newline at end of file diff --git a/mastodon/src/main/res/values-it-rIT/strings.xml b/mastodon/src/main/res/values-it-rIT/strings.xml index 295e41410..0e93b619a 100644 --- a/mastodon/src/main/res/values-it-rIT/strings.xml +++ b/mastodon/src/main/res/values-it-rIT/strings.xml @@ -387,6 +387,7 @@ Benvenuto/a su Mastodon Mastodon è un social network decentralizzato, il che significa che nessuna singola azienda lo controlla. È composto da molti server indipendenti e tutti connessi insieme. Cosa sono i server? + Ogni account Mastodon è ospitato su un server — ognuno con i propri valori, regole, & amministratori. Non importa quale scegliere, è possibile seguire e interagire con persone su altri server. Apertura del collegamento… Questo collegamento non è supportato nell\'app Esci da tutti gli account diff --git a/mastodon/src/main/res/values-ja-rJP/strings_sk.xml b/mastodon/src/main/res/values-ja-rJP/strings_sk.xml index f71f35794..befa74f5a 100644 --- a/mastodon/src/main/res/values-ja-rJP/strings_sk.xml +++ b/mastodon/src/main/res/values-ja-rJP/strings_sk.xml @@ -1,292 +1,294 @@ - Markdown - MFM - 投稿のフォーマットを有効にする - 既定のコンテンツタイプ - コンテンツタイプ - BBCode - 指定なし - プレーンテキスト - HTML - 投稿の作成時に Markdown のようなコンテンツタイプを設定できるようにします。すべてのインスタンスがこれをサポートしているわけではないことに注意してください。 - リスト - フォローリクエストを承認 - 利用可能なアップデートはありません - フォローリクエスト - Megalodon %s がダウンロードされ、インストールの準備ができました。 - Megalodon に貢献 - 警告コンテンツを常に表示 + 固定 + 削除して再編集 + 投稿を削除して再編集 + 本当にこの投稿を削除して再編集しますか? + プロファイルに固定 + 投稿をプロフィールに固定 + この投稿をあなたのプロフィールに固定しますか? + 投稿を固定しています… + プロフィールへの固定を解除 + プロフィールへの投稿の固定を解除 + 本当にこの投稿の固定を解除しますか? + 投稿の固定を解除しています… + 画像の説明 + 未収載 + 返信を表示 + 返信の公開範囲 + すべての返信 + 音声のオーバーレイ + 既に再生されているメディアを停止することなく、新たなメディアを再生できるようにします + 7日 + 3日 + 1日 + 6時間 + 1時間 + 30分 + 5分 + 無期限 + 絵文字で反応 + 期間 + 絵文字リアクションを有効にする 投稿 + ホーム + 翻訳 + オリジナルを表示 + 複数回答を許可 + 最近使用した言語を消去 + ブーストを表示 + Megalodon + ようこそ! + サメはあなたに敬意を表します! まずは、あなたの所属するインスタンスのドメイン名を以下に入力してください。 + フォローリクエスト + 連合タイムラインを表示 + 他のアカウントでブックマークを追加 + %s でブックマークを追加しました + 開いた投稿のみ翻訳 + ブックマークを追加済みです + 本当に最近使用した言語を消去しますか? + %1$s (%2$s) + プロフィールを設定 + フィルター設定 + セキュリティ設定 + ルール + アプリについて + 寄付 + 投稿設定 システム - お知らせの投稿 ピンク パープル グリーン + カラーパレット + ブルー ブラウン - 言語: %s - 翻訳 - 最近使用した言語を本当にクリアしますか? - ようこそ! - オリジナルを表示 - %s で翻訳 - example.social - ルール - 寄付 - 投稿設定 - フィルター設定 + 通知を削除 + 通知を削除 本当にこの通知を削除しますか? + %s は翻訳機能をサポートしていません。 + すべての通知をクリア すべて削除 - すべての通知を削除 - 通知の削除を有効にする - 公開ボタンの文字列 - 投稿リンクをコピー - %s は翻訳をサポートしています! - 他のアカウントでブックマーク - %s としてブックマークしました - フォロー中のハッシュタグ - %s としてお気に入りにしました - 他のアカウントで返信 - 既にお気に入りになっています - 本当にこの予約投稿を削除しますか? - 下書きまたは予約 + 本当にすべての通知をクリアしますか? + Fediverse で調べる + ブーストを取り消す + ブーストの公開範囲 + 引用して投稿 + %s で調べる + 他のアカウントで開く + リソースが見つかりません 下書きを保存しますか? - 投稿は下書きとして保存されます。 - 投稿は少なくとも 10 分以降に予約する必要があります。 - 投稿を予約しました - 下書きにする - 予約または下書き + 変更を保存しますか? + 下書きとしてマーク + 予約投稿 + 予約しない + 下書きに保存しない + ベッド + ごみ箱 + 認証済み + 医者 + ビーカー + ダイヤモンド + + タイムラインを追加 + ハッシュタグを含む投稿… + アニメーションの動きを減らす + バブル お知らせ - このインスタンスについて - 作成 既読にする - リスト名 - リストメンバー - ホーム - ローカル - リストを削除 - 本当にリスト \"%s\" を削除しますか? - 変更履歴 - カラーパレット - 言語 - タイムライン - タイムライン - アイコン - タイムラインにピン留め - ホームにピン留め - ホームからピン留めを解除 - 削除 + インスタンスについて + 通知を1つのみ表示 + 作成 + リストを作成 + リストの名前 + 入力して検索を開始 削除 + フォロワーの削除に成功しました + 変更履歴 + 代替テキストがありません + %s をリストに追加/削除 + + 画鋲 + ALT + 編集済み + 編集済みの投稿 + タイムラインを編集 + 検索しています… + “新しい投稿を見る” ボタン + タイトルバーのテキストスクロールを有効にする + 投稿通知 + タブ間のスワイプを無効にする + 通知の削除を有効にする + GIF + この下書きの変更を保存しますか? または今すぐ公開しますか? + 代替テキストなし + 自分への返信 + %s を引用 + + 投稿 + + 新しい投稿を自動で読み込む + インタラクション数を表示 + Megalodon v%1$s (%2$d) + メディアを閲覧注意としてマーク + %s からの投稿通知をオフにしました + 連合 + Megalodon %s をダウンロードできます。 + Megalodon %s がダウンロードされ、インストールできます。 + アップデートを確認 + アップデートはありません + フォローリクエストを承認 + コンテンツ警告を常に展開 + レッド + %s を使用して翻訳されました + 言語: %s + フォロー中のハッシュタグ + %s でお気に入りに登録しました + お気に入りに登録済みです + 他のアカウントでブースト + 本当にこの予約済みの投稿を削除しますか? + 下書きまたは予約 + 投稿は下書きとして保存されます。 + 予約日時 + 下書きを保存しました + 投稿を予約しました + 投稿は10分以上後の予約である必要があります。 + UnifiedPush を使用 + ディストリビューターを選択 + フォローされたユーザー + リストを削除 + 本当にリスト “%s” を削除しますか? + リストを編集 + あなたのリスト + ローカル 連合 + 代替テキストを追加するためのリマインダーを無効にする + タイムライン + 投稿 + 追加 + タイムライン + リスト + ハッシュタグ + タイムラインを固定 + ホームへの固定が解除されました + 削除 + アイコン ハート - - - うさぎ - - バルーン + + 風船 + ボット + 言語 画像 - Bot - 拡声器 + 場所 + メガホン マイク + 顕微鏡 キーボード コーヒー - 笑い ニュース - パイ - 学帽 + 角帽 タグ 聴診器 天気 + ゲーム コード + 電球 電車 + カチンコ + スポーツ - 音楽 - - 健康 - チャット - 自転車 - 人間 - . - ローカルインスタンスのみ - 下書きを保存しますか? - 検索しています… - ローカルのみ - ローカル投稿のみを表示しますか? - 結果がありません + …そしてこれらすべて + …しかしいずれもない ハッシュタグを入力… ハッシュタグを入力… - ファイルを添付 - ハッシュタグを空にすることはできません - タイムラインを追加 - 医者 - ダイヤモンド - - ベッド - 投票結果 - サーバーはローカルのみの投稿をサポート - これが機能するには、ホームインスタンスがローカルのみの投稿をサポートしている必要があります。Mastodon のほとんどの改造版はサポートしていますが、Mastodon はサポートしていません。 - 折り畳む - 非常に長い投稿を折り畳む - フィルター済み: %s - インタラクションボタンを隠す - 他のアカウントからフォロー - %s に返信を送信 - インスタンス情報が一時的に利用できません - アプリで開く - アプリで開くことができませんでした - アカウントで共有 - アカウントで共有または開く - リモート情報が利用できません - リモートインスタンスから情報を読み込む + パイ + レンズ + 検索結果なし + 下書きを保存しますか? + ローカルのみ + · + ローカルインスタンスのみ 高度な設定を表示 - 高度な設定を隠す - 排他的リスト - リストを排他的にする - タイムラインを編集 - タイムラインを編集 - 編集済み - 編集済みの投稿 - ブーストされた投稿の編集 - このアプリについて - 追加 - 利用可能な言語 - カラーパレット - フォローリクエストを拒否 - リストを作成 - リストを編集 - 利用可能な代替テキストがありません - 投稿 - 変更を保存しますか? - ごみ箱 - あなたのリスト - ブルー - レッド - イエロー - 最近使用した言語をクリア - 通知を削除 - 通知を削除 - タイトルバーのテキストスクロールを無効にする - 下書き + ホーム + スレッドに代名詞を表示 + タイムラインに代名詞を表示 + 真っ黒なダークテーマ + インスタンス + タイムライン切替 + 代名詞 + ナビゲーションバーにタブラベルを表示 + プロフィール + 通知 + これらはあなたが所属するインスタンスの管理者によってキュレーションされたネットワークからの最新の投稿です。 + Megalodon に貢献する + すべての通知でアイコンを統一 + %s に転送 未送信の投稿 + 下書き + 公開ボタンのテキスト + 公開ボタンのテキストをカスタマイズ + 投稿のリンクをコピー + ブースト済みです 下書きを削除 - 他のアカウントで開く - 下書きを保存しました - タイムラインのピン留めを解除 - 投稿を予約 - 複数選択を許可 - プロフィール設定 - セキュリティ設定 予約 - 予約投稿を削除 - タブ間のスワイプを無効にする - 新しい投稿を作成する際に、「投稿設定」で設定された値を上書きして、コンテンツタイプを事前に選択させることができます。 - 本当にこの下書き投稿を削除しますか? - 本当にすべての通知を削除しますか? - 公開ボタンの文字列をカスタマイズ - 連合タイムラインを表示 - 代替テキストの追加リマインダーを無効にする - 他のアカウントでお気に入りに登録 - ゲーム - - 予約時間が近すぎます - これらの操作はサーバーが行うことにご注意ください。組み合わせはサポートされない場合があります。 - インスタンスがサポートしている場合、排他的リストのメンバーはホームタイムラインに表示されません。 - ヘッドホン - 既にブックマークされています - 電球 - この下書きの変更を保存しますか、それとも今すぐ公開しますか? - %s は翻訳をサポートしていないようです。 - %s からフォローされました - サメはあなたに敬意を表します!まずは、あなたのホームインスタンスのドメイン名を以下に入力してください。 - 一部の人の投稿通知を有効にすると、その人の新しい投稿がここに表示されます。 - Megalodon - 投稿をピン留めしています… - ピン留め - プロフィールにピン留め - 投稿をプロフィールにピン留め - この投稿をあなたのプロフィールにピン留めしますか? - プロフィールからピン留めを解除 - プロフィールから投稿のピン留めを解除 - 削除して下書きに戻す - 投稿を削除して下書きに戻す - 本当にこの投稿を削除して下書きに戻しますか? - アップデートを確認 - 返信を表示 - ブーストを表示 - 新しい投稿を自動的に読み込む - すべての返信 - Megalodon v%1$s (%2$d) - この投稿のピン留めを本当に解除しますか? - 投稿のピン留めを解除しています… - 画像の説明 - Megalodon %s をダウンロードする準備ができました。 - インタラクション数を表示 - 連合 - これらは、あなたが所属する連合の人々による最新の投稿です。 - センシティブなメディアにする - リスト - ハッシュタグ - ピザ - ”新しい投稿を表示”ボタン - %1$s (%2$s) - ブーストを元に戻す - 展開 - 他のアカウントでブースト - %s としてブーストしました - 既にブーストされています - スレッドを表示 - ブースト前に確認する - ブースト/返信ラインを小さくする - プレリリース版を有効にする - 気にせずに公開 - 発信元のインスタンスから情報を読み込むことで、より正確なフォロワーやお気に入り、ブーストのリストの取得を試みます。 - 地図 - アニメーションの動きを軽減する - 通知を1つだけ表示する - 代替テキストがありません - 少なくとも1つの添付ファイルに説明がありません。 - 入力して検索を開始します - グローブ - 下書きにしない - この投稿について投稿 - リソースが見つかりませんでした - すべての通知をアイコンにまとめる - 次の時間に予約 - 予約しない - 顕微鏡 - 地域 - - 拍子木 - 重要 + 予約済みの投稿を削除 + イエロー + 使用可能な言語 + example.social + 他のアカウントで返信 + チャット - 計算式 - リュック + + 自転車 + 地図 + 数式 + リュックサック ブリーフケース - + - ピン - ビーカー - 認証済み - インスタンスの機能 - 代替テキストのインジケータ - 代替テキスト不足のインジケータ - Glitch ローカル限定モード - ホームインスタンスが Glitch で動作している場合に有効にします。Hometown または Akkoma では不要です。 - 添付ファイルを修正しますか? - 一部の添付ファイルのアップロードが完了していません。 - 新規投稿ボタンを自動的に隠す - フィード - ALT - 未収載 - %s を引用中 - 自分への返信 - フォロワーへの返信 - %s さんの投稿通知をオンにしました - %s さんの投稿通知をオフにしました - 計器 + ピザ 小槌 - 絞り - サーバーバージョン: %s + ヘッドフォン + 人間 + 地球儀 + タイムラインを編集 + 計器 + ファイルを添付 + 音楽 + 人々 + 健康 + 重要 + Fediverse を検索 + %s からの投稿通知をオンにしました + これらはあなたが所属するインスタンス内のユーザーによる最新の投稿です。 + リスト + %s は翻訳機能をサポートしています! + 他のアカウントでお気に入りに登録 + …またはこれらのいずれか + フォロワーを削除 + タイムラインの固定を解除 + カラーパレット + フォローリクエストを却下 + %s をブロックしてすぐにブロックを解除して、フォロワーを削除しますか? + ホームに固定されました + + %s でブーストしました + + 本当にこの下書きの投稿を削除しますか? + 笑い + ローカルの投稿のみを表示しますか? + ブーストした投稿の編集 + 予約日時が早すぎます + 予約または下書き + ディストリビューターが見つかりません + プレリリースを有効にする + 検索 + メンションされたユーザーのみ + ユーザーリストに代名詞を表示 + UnifiedPush による通知を動作させるにはディストリビューターをインストールする必要があります。詳しくは https://unifiedpush.org/ をご覧ください + リストのメンバー + サーバーはローカルのみの投稿をサポートしています + コンテンツを表示 + 高度な設定を非表示にする \ No newline at end of file diff --git a/mastodon/src/main/res/values-kab/strings_sk.xml b/mastodon/src/main/res/values-kab/strings_sk.xml index 045e125f3..e9e123052 100644 --- a/mastodon/src/main/res/values-kab/strings_sk.xml +++ b/mastodon/src/main/res/values-kab/strings_sk.xml @@ -1,3 +1,4 @@ - + Megalodon + \ No newline at end of file diff --git a/mastodon/src/main/res/values-pt-rBR/strings.xml b/mastodon/src/main/res/values-pt-rBR/strings.xml index 7a9cad8c0..afc5bb99f 100644 --- a/mastodon/src/main/res/values-pt-rBR/strings.xml +++ b/mastodon/src/main/res/values-pt-rBR/strings.xml @@ -236,7 +236,9 @@ Seguir %s Deixou de seguir %s Agora você está seguindo %s + Solicitou para te seguir %s Abrir no navegador + Ocultar boosts de %s Por que você deseja se inscrever? Isso vai nos ajudar a revisar sua inscrição. Limpar @@ -365,6 +367,7 @@ Escolha um ou mais Salvar alterações Destaques + Linha do tempo Visualizar tudo Contas Link verificado @@ -377,6 +380,7 @@ Bem-vindo ao Mastodon Mastodon é uma rede social descentralizada, o que significa que nenhuma empresa a controla. É composto de muitos servidores executados de forma independente, todos conectados entre si. O que são servidores? + Todas as contas no Mastodon são hospedadas em um servidor — cada um com seus próprios valores, regras, & administradores. Não importa qual você escolha, você pode seguir e interagir com pessoas que estão em qualquer outro servidor. Abrindo link… Este link não é compatível com o aplicativo Sair de todas as contas @@ -461,6 +465,7 @@ Termina %s + Notificações serão retomadas %s. Vá para as configurações de notificação Sobre Regras diff --git a/mastodon/src/main/res/values-pt-rBR/strings_sk.xml b/mastodon/src/main/res/values-pt-rBR/strings_sk.xml index 3ac89e0a0..fc2cbaf1f 100644 --- a/mastodon/src/main/res/values-pt-rBR/strings_sk.xml +++ b/mastodon/src/main/res/values-pt-rBR/strings_sk.xml @@ -370,4 +370,9 @@ Revelar automaticamente Avisos de Conteúdo nas respostas Lixeira de reciclagem Pesquisar + %d minutos + %d horas + Suicídio + %d segundos + %d dias \ No newline at end of file diff --git a/mastodon/src/main/res/values-sl-rSI/strings.xml b/mastodon/src/main/res/values-sl-rSI/strings.xml index 9770923ae..cb81f9631 100644 --- a/mastodon/src/main/res/values-sl-rSI/strings.xml +++ b/mastodon/src/main/res/values-sl-rSI/strings.xml @@ -272,6 +272,7 @@ Ni programa za ravnanje s tem dejanjem Krajevno To so objave, ki plenijo pozornost po Mastodonu. + To so novice, o katerih se govori na Mastodonu. Pokaži nove objave Naloži manjkajoče objave @@ -385,6 +386,7 @@ Sledenje uporabnikom ... + %1$s ne dovoljuje prijav s/z %2$s. Poskusite drugega ali <a>izberite drug strežnik</a>. Vseeno pokaži Ponovno skrij Izberi eno ali več izbir @@ -403,29 +405,51 @@ Dobrodošli na Mastodon Mastodon je decentralizirano družbeno omrežje, kar pomeni, da ga ne upravlja nobeno posamezno podjetje. Sestavljajo ga številni neodvisni strežniki, ki so medsebojno povezani. Kaj so strežniki? + Vsak račun Mastodon gostuje na strežniku — vsak strežnik ima svoje vrednote, pravila in skbrnike. Vseeno je, katerega izberete - sledite in komunicirate lahko z osebbami na poljubnem strežniku. Odpiranje povezav ... + Ta povezava v aplikaciji ni podprta Odjava iz vseh računov Ali se želite odjaviti iz vseh računov? Poskusi znova + Objave ni možno poslati + %s slika + %s video posnetek + %s zvočni posnetek + %s datoteka Slika Video Zvok GIF Datoteka + Dodaj možen odgovor v anketi + Dolžina ankete Slog + Izberite eno možnost + Več možnosti + Izbriši možen odgovor v anketi Slog ankete + Nadomestno besedilo Pomoč + Kaj je nadomestno besedilo (alt text)? Uredi objavo Ni preverjenih povezav + Najdite tiste, ki jih iščete + Za ta iskalni niz ni zadetkov Jezik Privzeto sistemski Zaznavanje jezika Jezika ni moč zaznati Zaznano + Mediji so skriti + Skrita objava + Prijavi objavo + Račun je z drugega strežnika. Ali želite poslati anonimno kopijo prijave tudi na drugi strežnik? + Posreduj k %s + Prijavljeno Označi vse kot prebrano Filtri @@ -433,25 +457,34 @@ Privzeti jezik objave Premor za vse Izklopljeno + Ljudje, ki jim sledite Nihče Omembe in odgovori Zaustavi vsa obvestila + %1$s ob %2$s danes včeraj jutri + Obveščanje se bo nadaljevalo: %s. Nadaljuj zdaj + Pojdi k nastavitvam obvestil O programu Pravila Skrbnik Še več nastavitev Pokaži opozorilo o vsebini Skrij medij, ki je označen kot občutljiv + Števci interakcije objave Ena + Dva + Tri + Štiri Objavi + Ne želite slediti %s? Dejaven Nedejaven Dodaj filter @@ -462,14 +495,21 @@ Izbriši filter Za vedno + %1$s in %2$s + %1$s, %2$s in %3$s + %1$s, %2$s in še dodatnih %3$d Obvestila Javne časovnice Niti in odgovori Profili Naslov Ali želite izbrisati filter »%s«? + Dodaj utišano besedo + Uredi utišano besedo Dodaj Beseda ali besedna zveza + Ali želite izbrisati besedo »%s«? + Izberite Izberi vse Filtriraj po trajanju Po meri diff --git a/mastodon/src/main/res/values-sv-rSE/strings.xml b/mastodon/src/main/res/values-sv-rSE/strings.xml index 7cbb5aa14..f3e7f6a20 100644 --- a/mastodon/src/main/res/values-sv-rSE/strings.xml +++ b/mastodon/src/main/res/values-sv-rSE/strings.xml @@ -165,6 +165,7 @@ Teknik Kolla din inkorg + Fick du ingen länk? Skicka igen Öppna e-postappen Bekräftelse via e-post skickad @@ -370,6 +371,7 @@ Om %s Fråga innan du raderar inlägg + Personer som följer dig Ingen %d vecka diff --git a/mastodon/src/main/res/values-sv-rSE/strings_sk.xml b/mastodon/src/main/res/values-sv-rSE/strings_sk.xml index e6b239821..75b51bff3 100644 --- a/mastodon/src/main/res/values-sv-rSE/strings_sk.xml +++ b/mastodon/src/main/res/values-sv-rSE/strings_sk.xml @@ -152,4 +152,5 @@ Svara med annat konto Opublicerade inlägg Utkast sparat + Citerar %s \ No newline at end of file diff --git a/mastodon/src/main/res/values-th-rTH/strings_sk.xml b/mastodon/src/main/res/values-th-rTH/strings_sk.xml index 1d940f50b..efae29384 100644 --- a/mastodon/src/main/res/values-th-rTH/strings_sk.xml +++ b/mastodon/src/main/res/values-th-rTH/strings_sk.xml @@ -75,4 +75,15 @@ ปิดใช้การปัดระหว่างแท็บ Megalodon รุ่น %s ดาวน์โหลดเสร็จและพร้อมให้ติดตั้งแล้ว ล้างการแจ้งเตือนทั้งหมด + %s รองรับการแปล! + ดูเหมือนว่า %s ไม่รองรับการแปล + กำลังค้นหาบนเฟดิเวิร์ส + เลิกดันโพสต์ + ดันด้วยการมองเห็น + โพสต์เกี่ยวกับสิ่งนี้ + คัดลอกลิงก์ไปยังโพสต์ + แฮชแท็กที่คุณติดตาม + กำลังค้นหาบน %s + เปิดด้วยบัญชีอื่น + ไม่พบทรัพยากร \ No newline at end of file diff --git a/mastodon/src/main/res/values-uk-rUA/strings_sk.xml b/mastodon/src/main/res/values-uk-rUA/strings_sk.xml index 2512b98a5..3c846372c 100644 --- a/mastodon/src/main/res/values-uk-rUA/strings_sk.xml +++ b/mastodon/src/main/res/values-uk-rUA/strings_sk.xml @@ -380,4 +380,18 @@ дописів дописів + Лише коли допис відкрито + Знайти гарячу лінію + Не показувати знову + https://findahelpline.com + Допис містить медіа + Поведінка завантаження пропущених дописів + Спочатку найдавніші (за зростанням) + Показувати реакції емоджі у стрічках + Сховати реакції без емоджі + Завжди показувати кнопку Додати + Самогубство + Якщо ви потрапили в біду… + Якщо ви шукаєте знак, щоб не накладати на себе руки, то це він. Якщо ви перебуваєте у скрутному становищі, зверніться на місцеву гарячу лінію з питань самогубств. + Спочатку найновіші (за спаданням) \ No newline at end of file diff --git a/mastodon/src/main/res/values/strings_sk.xml b/mastodon/src/main/res/values/strings_sk.xml index 3942d29dd..5203e1b73 100644 --- a/mastodon/src/main/res/values/strings_sk.xml +++ b/mastodon/src/main/res/values/strings_sk.xml @@ -16,8 +16,8 @@ Image description Unlisted Show replies - Audio overlay - Allow already playing media to continue playing, overlaying the new playback + Audio overlay + Allow already playing media to continue playing, overlaying the new playback Quoting %s Reply visibility All replies @@ -33,7 +33,9 @@ Federation These are the most recent posts by the people in your federation. These are the most recent posts from the network curated by your instance admins. - Megalodon %s is ready to download. + These are the posts gaining traction on your server. + These are the news stories getting talked about on your server. + Megalodon %s is ready to download. Megalodon %s is downloaded and ready to install. Check for update No update available @@ -137,11 +139,11 @@ Mark as read About instance Only show one notification - Use UnifiedPush - Choose a distributor - No distributor found - You need to install a distributor for UnifiedPush notifications to work. For more information, visit https://unifiedpush.org/ - Create + Use UnifiedPush + Choose a distributor + No distributor found + You need to install a distributor for UnifiedPush notifications to work. For more information, visit https://unifiedpush.org/ + Create Create list List name Show replies to @@ -336,53 +338,58 @@ Show advanced options Hide advanced options Show content - Pronouns - Switch timeline - Instance - Disable pill-shaped active tab indicator - Pitch black mode - Search the Fediverse - Display pronouns in timelines - Display pronouns in threads - Display pronouns in user listings - Home - Search - Notifications - Profile - Show tab labels in the navigation bar + Pronouns + Switch timeline + Instance + Disable pill-shaped active tab indicator + Pitch black mode + Search the Fediverse + Display pronouns in timelines + Display pronouns in threads + Display pronouns in user listings + Home + Search + Notifications + Profile + Show tab labels in the navigation bar Enable emoji reactions - Displays emoji reactions to posts and lets you interact with them. Some modified versions of Mastodon support this, but Mastodon doesn\'t. + Displays emoji reactions to posts and lets you add yours. Various Fediverse servers support this, but Mastodon doesn’t. Show emoji reactions in timelines - Hide empty emoji reactions - Only when post is opened - Always show add button - - One user reacted with %2$s - %1$,d users reacted with %2$s - + Hide empty emoji reactions + Only when post is opened + Always show add button + + One user reacted with %2$s + %1$,d users reacted with %2$s + React with emoji - Tap again for System Keyboard - You need to type an emoji - Type to react with an emoji - Duration - Indefinite - 5 minutes - 30 minutes - 1 hour - 6 hours - 1 day - 3 days - 7 days - You were mentioned by %s - Suicide + Please type an emoji + Type to react with an emoji + Duration + Indefinite + 5 minutes + 30 minutes + 1 hour + 6 hours + 1 day + 3 days + 7 days + You were mentioned by %s + Suicide In case you’re in distress… - If you’re looking for a sign not to commit suicide, this is it. Please consider reaching out to a local suicide hotline if you’re in distress. - Find a helpline - Don’t show again - https://findahelpline.com - - post - posts - - Post contains media + If you’re looking for a sign not to commit suicide, this is it. Please consider reaching out to a local suicide hotline if you’re in distress. + Find a helpline + Don’t show again + https://findahelpline.com + + post + posts + + Post contains media + Load newer posts + Load older posts + %d seconds + %d minutes + %d hours + %d days \ No newline at end of file diff --git a/metadata/ar/title.txt b/metadata/ar/title.txt new file mode 100644 index 000000000..cf946e02c --- /dev/null +++ b/metadata/ar/title.txt @@ -0,0 +1 @@ +Megalodon diff --git a/metadata/ca/changelogs/67.txt b/metadata/ca/changelogs/67.txt index c4a0a1817..3f445ab52 100644 --- a/metadata/ca/changelogs/67.txt +++ b/metadata/ca/changelogs/67.txt @@ -1,6 +1,6 @@ - Pestanya d'inici nova amb línies de temps públiques - Mostra els avisos del servidor -- El text s'escala segons la configuració del sistema +- El text s'escala segons el sistema - Filtre millorat (no, «Amaga amb un avís» encara no funciona) per @thiagojedi - Gestió de llistes - Elimina els seguidors bloquejant-los suaument diff --git a/metadata/ca/changelogs/76.txt b/metadata/ca/changelogs/76.txt new file mode 100644 index 000000000..3ca84ec47 --- /dev/null +++ b/metadata/ca/changelogs/76.txt @@ -0,0 +1,6 @@ +- Filtres millorats, inclosa la compatibilitat «Amaga amb un avís» +- Pàgina de perfil redissenyada amb metadades directament a sota de la bio +- Funció de replegar/expandir a les publicacions molt llargues +- Opció que afegeix el prefix «re:» a les respostes d'avisos de contingut +- Opció d’amagar els botons d’interacció en la línia de temps +- Diverses correccions, retocs i millores diff --git a/metadata/ca/changelogs/77.txt b/metadata/ca/changelogs/77.txt new file mode 100644 index 000000000..1f3060df4 --- /dev/null +++ b/metadata/ca/changelogs/77.txt @@ -0,0 +1,4 @@ +- Feu una pulsació llarga al botó de seguiment per a seguir els perfils en un altre compte +- Opció d’obrir perfils en un altre compte +- Amaga automàticament el botó de redacció en desplaçar-se per la línia de temps +- S'ha arreglat un error en obrir els perfils d'administrador del servidor diff --git a/metadata/ca/changelogs/83.txt b/metadata/ca/changelogs/83.txt new file mode 100644 index 000000000..3332987ab --- /dev/null +++ b/metadata/ca/changelogs/83.txt @@ -0,0 +1,5 @@ +- Feu m'agrada/afegiu als marcadors/responeu directament des de la notificació +- Capçaleres més boniques i coherents per a les republicacions i respostes en la línia de temps +- Punt de notificació (que encara no carrega les notificacions) +- Per als usuaris d'Akkoma: Visibilitat de les respostes, respostes ordenades als fils, citar… +- S'han arreglat alguns errors i retocs menors diff --git a/metadata/ca/changelogs/94.txt b/metadata/ca/changelogs/94.txt new file mode 100644 index 000000000..c472cacf7 --- /dev/null +++ b/metadata/ca/changelogs/94.txt @@ -0,0 +1,8 @@ +- Vista millorada i més clara dels fils +- Obre comptes o publicacions compartint un lloc web a Megalodon +- Carrega els llistats de seguidors, preferits… des de la instància d’origen +- Millores de compatibilitat per a servidors que no són de Mastodon +- Opció per establir el tipus de contingut a les publicacions +- Suport per a copiar URL de les aplicacions recents en dispositius Pixel +- Mostra automàticament els mateixos avisos de contingut als fils +- Correcció d'errors i millores de la interfície