Merge remote-tracking branch 'megalodon_main/main'

# Conflicts:
#	mastodon/build.gradle
#	mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java
#	mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java
#	mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java
#	metadata/de-DE/changelogs/83.txt
#	metadata/en-US/changelogs/83.txt
This commit is contained in:
LucasGGamerM 2023-04-12 13:04:31 -03:00
commit 64e681c227
47 changed files with 898 additions and 217 deletions

View File

@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Moshidon</title>
<link rel="icon" href="mastodon/src/main/res/mipmap-mdpi/ic_launcher_round.png">
<link rel="me" href="https://floss.social/@mastodon">
<link rel="me" href="https://floss.social/@megalodon">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.1.0/github-markdown.min.css">
</head>
<body class="markdown-body">

View File

@ -1,5 +0,0 @@
files:
- source: /mastodon/src/main/res/values/strings.xml
translation: /mastodon/src/main/res/values-%android_code%/strings.xml
- source: /fastlane/metadata/android/en-US/*.txt
translation: /fastlane/metadata/android/%locale%/%original_file_name%

View File

@ -17,6 +17,9 @@
<action android:name="android.intent.action.PROCESS_TEXT" />
<data android:mimeType="text/plain" />
</intent>
<intent>
<action android:name="android.intent.action.TRANSLATE" />
</intent>
</queries>
<application

View File

@ -14,6 +14,7 @@ import org.joinmastodon.android.api.session.AccountSessionManager;
import org.joinmastodon.android.fragments.ComposeFragment;
import org.joinmastodon.android.ui.AccountSwitcherSheet;
import org.joinmastodon.android.ui.utils.UiUtils;
import org.jsoup.internal.StringUtil;
import java.util.ArrayList;
import java.util.Collections;
@ -57,9 +58,15 @@ public class ExternalShareActivity extends FragmentStackActivity{
String subject = "";
if (intent.hasExtra(Intent.EXTRA_SUBJECT)) {
subject = intent.getStringExtra(Intent.EXTRA_SUBJECT);
if (!subject.isBlank()) builder.append(subject).append("\n\n");
if (!StringUtil.isBlank(subject)) builder.append(subject).append("\n\n");
}
if (intent.hasExtra(Intent.EXTRA_TEXT)) {
String extra = intent.getStringExtra(Intent.EXTRA_TEXT);
if (!StringUtil.isBlank(extra)) {
if (extra.startsWith(subject)) extra = extra.substring(subject.length()).trim();
builder.append(extra).append("\n\n");
}
}
if (intent.hasExtra(Intent.EXTRA_TEXT)) builder.append(intent.getStringExtra(Intent.EXTRA_TEXT)).append("\n");
String text=builder.toString();
List<Uri> mediaUris;
if(Intent.ACTION_SEND.equals(intent.getAction())){
@ -86,8 +93,7 @@ public class ExternalShareActivity extends FragmentStackActivity{
args.putString("account", accountID);
if(!TextUtils.isEmpty(text))
args.putString("prefilledText", text);
if(!subject.isBlank())
args.putInt("selectionEnd", subject.length());
args.putInt("selectionStart", StringUtil.isBlank(subject) ? 0 : subject.length());
if(mediaUris!=null && !mediaUris.isEmpty())
args.putParcelableArrayList("mediaAttachments", toArrayList(mediaUris));
Fragment fragment=new ComposeFragment();

View File

@ -50,6 +50,7 @@ public class GlobalUserPreferences{
public static boolean defaultToUnlistedReplies;
public static boolean disableDoubleTapToSwipe;
public static boolean compactReblogReplyLine;
public static boolean confirmBeforeReblog;
public static boolean replyLineAboveHeader;
public static boolean swapBookmarkWithBoostAction;
public static String publishButtonText;
@ -116,6 +117,8 @@ public class GlobalUserPreferences{
defaultToUnlistedReplies=prefs.getBoolean("defaultToUnlistedReplies", false);
disableDoubleTapToSwipe=prefs.getBoolean("disableDoubleTapToSwipe", false);
replyLineAboveHeader=prefs.getBoolean("replyLineAboveHeader", true);
compactReblogReplyLine=prefs.getBoolean("compactReblogReplyLine", true);
confirmBeforeReblog=prefs.getBoolean("confirmBeforeReblog", false);
swapBookmarkWithBoostAction=prefs.getBoolean("swapBookmarkWithBoostAction", false);
publishButtonText=prefs.getString("publishButtonText", "");
theme=ThemePreference.values()[prefs.getInt("theme", 0)];
@ -173,6 +176,7 @@ public class GlobalUserPreferences{
.putBoolean("disableDoubleTapToSwipe", disableDoubleTapToSwipe)
.putBoolean("compactReblogReplyLine", compactReblogReplyLine)
.putBoolean("replyLineAboveHeader", replyLineAboveHeader)
.putBoolean("confirmBeforeReblog", confirmBeforeReblog)
.putBoolean("swapBookmarkWithBoostAction", swapBookmarkWithBoostAction)
.putInt("theme", theme.ordinal())
.putString("color", color.name())

View File

@ -100,6 +100,7 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
UiUtils.loadMaxWidth(getContext());
if(GlobalUserPreferences.disableMarquee){
setTitleMarqueeEnabled(false);
setSubtitleMarqueeEnabled(false);
@ -798,7 +799,7 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
if(!imgHolder.getItem().status.spoilerRevealed){
if(TextUtils.isEmpty(imgHolder.getItem().status.spoilerText)){
int listWidth=getListWidthForMediaLayout();
int width=Math.min(listWidth, V.dp(MediaGridLayout.MAX_WIDTH));
int width=Math.min(listWidth, UiUtils.MAX_WIDTH);
if(currentMediaHiddenLayoutsWidth!=width)
rebuildMediaHiddenLayouts(width-V.dp(32));
c.save();

View File

@ -336,6 +336,7 @@ public class HomeFragment extends AppKitFragment implements OnBackPressedListene
public void updateNotificationBadge() {
AccountSession session = AccountSessionManager.getInstance().getAccount(accountID);
Instance instance = AccountSessionManager.getInstance().getInstanceInfo(session.domain);
if (instance == null) return;
new GetNotifications(null, 1, EnumSet.allOf(Notification.Type.class), instance != null && instance.pleroma != null)
.setCallback(new Callback<>() {

View File

@ -243,6 +243,10 @@ public class SettingsFragment extends MastodonToolbarFragment{
GlobalUserPreferences.prefixRepliesWithRe=i.checked;
GlobalUserPreferences.save();
}));
items.add(new SwitchItem(R.string.sk_settings_confirm_before_reblog, R.drawable.ic_fluent_checkmark_circle_24_regular, GlobalUserPreferences.confirmBeforeReblog, i->{
GlobalUserPreferences.confirmBeforeReblog=i.checked;
GlobalUserPreferences.save();
}));
items.add(new HeaderItem(R.string.sk_timelines));
items.add(new SwitchItem(R.string.sk_settings_show_replies, R.drawable.ic_fluent_chat_multiple_24_regular, GlobalUserPreferences.showReplies, i->{

View File

@ -165,7 +165,7 @@ public abstract class StatusListFragment extends BaseStatusListFragment<Status>
protected void onRemoveAccountPostsEvent(RemoveAccountPostsEvent ev){
List<Status> toRemove=Stream.concat(data.stream(), preloadedData.stream())
.filter(s->s.account.id.equals(ev.postsByAccountID) || (s.reblog!=null && s.reblog.account.id.equals(ev.postsByAccountID)))
.filter(s->s.account.id.equals(ev.postsByAccountID) || (!ev.isUnfollow && s.reblog!=null && s.reblog.account.id.equals(ev.postsByAccountID)))
.collect(Collectors.toList());
for(Status s:toRemove){
removeStatus(s);

View File

@ -238,6 +238,11 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
);
return;
}
if (GlobalUserPreferences.confirmBeforeReblog) {
v.startAnimation(opacityIn);
onBoostLongClick(v);
return;
}
boost.setSelected(!item.status.reblogged);
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setReblogged(item.status, !item.status.reblogged, null, r->boostConsumer(v, r));
}
@ -273,9 +278,9 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
reblogHeader.setVisibility(item.status.reblogged ? View.GONE : View.VISIBLE);
reblogAs.setVisibility(AccountSessionManager.getInstance().getLoggedInAccounts().size() > 1 ? View.VISIBLE : View.GONE);
itemPublic.setVisibility(item.status.reblogged || item.status.visibility.isLessVisibleThan(StatusPrivacy.PUBLIC) ? View.GONE : View.VISIBLE);
itemUnlisted.setVisibility(item.status.reblogged || item.status.visibility.isLessVisibleThan(StatusPrivacy.UNLISTED) ? View.GONE : View.VISIBLE);
itemFollowers.setVisibility(item.status.reblogged || item.status.visibility.isLessVisibleThan(StatusPrivacy.PRIVATE) ? View.GONE : View.VISIBLE);
itemPublic.setVisibility(item.status.reblogged ? View.GONE : View.VISIBLE);
itemUnlisted.setVisibility(item.status.reblogged ? View.GONE : View.VISIBLE);
itemFollowers.setVisibility(item.status.reblogged ? View.GONE : View.VISIBLE);
Drawable checkMark = ctx.getDrawable(R.drawable.ic_fluent_checkmark_circle_20_regular);
Drawable publicDrawable = ctx.getDrawable(R.drawable.ic_fluent_earth_24_regular);
@ -283,16 +288,6 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
Drawable followersDrawable = ctx.getDrawable(R.drawable.ic_fluent_lock_closed_24_regular);
StatusPrivacy defaultVisibility = session.preferences != null ? session.preferences.postingDefaultVisibility : null;
// e.g. post visibility is unlisted, but default is public
// in this case, we want to display the check mark on the most visible visibility
if (defaultVisibility != null && item.status.visibility.isLessVisibleThan(defaultVisibility)) {
for (StatusPrivacy vis : StatusPrivacy.values()) {
if (vis.equals(item.status.visibility)) {
defaultVisibility = vis;
break;
}
}
}
itemPublic.setCompoundDrawablesWithIntrinsicBounds(publicDrawable, null, StatusPrivacy.PUBLIC.equals(defaultVisibility) ? checkMark : null, null);
itemUnlisted.setCompoundDrawablesWithIntrinsicBounds(unlistedDrawable, null, StatusPrivacy.UNLISTED.equals(defaultVisibility) ? checkMark : null, null);
itemFollowers.setCompoundDrawablesWithIntrinsicBounds(followersDrawable, null, StatusPrivacy.PRIVATE.equals(defaultVisibility) ? checkMark : null, null);

View File

@ -247,10 +247,15 @@ public class MediaGridStatusDisplayItem extends StatusDisplayItem{
altTextAnimator.cancel();
View btn=controllers.get(altTextIndex).btnsWrap;
int i=0;
for(MediaAttachmentViewController c:controllers){
if(c.btnsWrap!=null && c.btnsWrap!=btn) {
c.btnsWrap.setVisibility(View.VISIBLE);
}
boolean hasAltText = !TextUtils.isEmpty(item.attachments.get(i).description);
if(c.btnsWrap!=null
&& c.btnsWrap!=btn
&& ((hasAltText && GlobalUserPreferences.showAltIndicator)
|| (!hasAltText && GlobalUserPreferences.showNoAltIndicator))
) c.btnsWrap.setVisibility(View.VISIBLE);
i++;
}
int[] loc={0, 0};

View File

@ -137,16 +137,21 @@ import me.grishka.appkit.imageloader.requests.UrlImageLoaderRequest;
import me.grishka.appkit.utils.V;
import okhttp3.MediaType;
public class UiUtils{
private static Handler mainHandler=new Handler(Looper.getMainLooper());
private static final DateTimeFormatter DATE_FORMATTER_SHORT_WITH_YEAR=DateTimeFormatter.ofPattern("d MMM uuuu"), DATE_FORMATTER_SHORT=DateTimeFormatter.ofPattern("d MMM");
public static final DateTimeFormatter DATE_TIME_FORMATTER=DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG, FormatStyle.SHORT);
public class UiUtils {
private static Handler mainHandler = new Handler(Looper.getMainLooper());
private static final DateTimeFormatter DATE_FORMATTER_SHORT_WITH_YEAR = DateTimeFormatter.ofPattern("d MMM uuuu"), DATE_FORMATTER_SHORT = DateTimeFormatter.ofPattern("d MMM");
public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG, FormatStyle.SHORT);
public static int MAX_WIDTH;
private UiUtils(){}
public static void launchWebBrowser(Context context, String url){
try{
if(GlobalUserPreferences.useCustomTabs){
public static void loadMaxWidth(Context ctx) {
if (MAX_WIDTH == 0) MAX_WIDTH = (int) ctx.getResources().getDimension(R.dimen.layout_max_width);
}
public static void launchWebBrowser(Context context, String url) {
try {
if (GlobalUserPreferences.useCustomTabs) {
new CustomTabsIntent.Builder()
.setShowTitle(true)
.build()

View File

@ -3,13 +3,13 @@ package org.joinmastodon.android.ui.views;
import android.annotation.SuppressLint;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import org.joinmastodon.android.ui.utils.UiUtils;
import me.grishka.appkit.utils.V;
public class ComposeMediaLayout extends ViewGroup{
private static final int MAX_WIDTH_DP=400;
private static final int GAP_DP=8;
private static final float ASPECT_RATIO=0.5625f;
@ -23,6 +23,7 @@ public class ComposeMediaLayout extends ViewGroup{
public ComposeMediaLayout(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
UiUtils.loadMaxWidth(context);
}
@Override
@ -30,7 +31,7 @@ public class ComposeMediaLayout extends ViewGroup{
int mode=MeasureSpec.getMode(widthMeasureSpec);
@SuppressLint("SwitchIntDef")
int width=switch(mode){
case MeasureSpec.AT_MOST -> Math.min(V.dp(MAX_WIDTH_DP), MeasureSpec.getSize(widthMeasureSpec));
case MeasureSpec.AT_MOST -> Math.min(UiUtils.MAX_WIDTH, MeasureSpec.getSize(widthMeasureSpec));
case MeasureSpec.EXACTLY -> MeasureSpec.getSize(widthMeasureSpec);
default -> throw new IllegalArgumentException("unsupported measure mode");
};

View File

@ -6,13 +6,13 @@ import android.view.View;
import android.view.ViewGroup;
import org.joinmastodon.android.ui.PhotoLayoutHelper;
import org.joinmastodon.android.ui.utils.UiUtils;
import me.grishka.appkit.utils.V;
public class MediaGridLayout extends ViewGroup{
private static final String TAG="MediaGridLayout";
public static final int MAX_WIDTH=400; // dp
private static final int GAP=1; // dp
private PhotoLayoutHelper.TiledLayoutResult tiledLayout;
private int[] columnStarts=new int[10], columnEnds=new int[10], rowStarts=new int[10], rowEnds=new int[10];
@ -27,7 +27,7 @@ public class MediaGridLayout extends ViewGroup{
public MediaGridLayout(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
UiUtils.loadMaxWidth(context);
}
@Override
@ -36,7 +36,7 @@ public class MediaGridLayout extends ViewGroup{
setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), 0);
return;
}
int width=Math.min(V.dp(MAX_WIDTH), MeasureSpec.getSize(widthMeasureSpec));
int width=Math.min(UiUtils.MAX_WIDTH, MeasureSpec.getSize(widthMeasureSpec));
int height=Math.round(width*(tiledLayout.height/(float)PhotoLayoutHelper.MAX_WIDTH));
int offset=0;
@ -74,10 +74,9 @@ public class MediaGridLayout extends ViewGroup{
if(tiledLayout==null)
return;
int maxWidth=V.dp(MAX_WIDTH);
int xOffset=0;
if(r-l>maxWidth){
xOffset=(r-l)/2-maxWidth/2;
if(r-l>UiUtils.MAX_WIDTH){
xOffset=(r-l)/2-UiUtils.MAX_WIDTH/2;
}
for(int i=0;i<getChildCount();i++){

View File

@ -44,7 +44,10 @@ public class MastodonLanguage {
for (int i = 0; i < localeList.size(); i++) systemLocales.add(localeList.get(i));
}
defaultRecentLanguages = systemLocales.stream().map(Locale::getLanguage).collect(Collectors.toList());
defaultRecentLanguages = systemLocales.stream()
.map(Locale::getLanguage)
.distinct()
.collect(Collectors.toList());
}
public final String languageTag, name, englishName;

View File

@ -91,7 +91,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginTop="3dp"
android:paddingTop="4sp"
android:paddingTop="3sp"
android:layout_toStartOf="@id/unread_indicator"
android:layout_toEndOf="@id/avatar"
android:minHeight="24sp">
@ -128,7 +128,6 @@
android:layout_toStartOf="@id/unread_indicator"
android:layout_toEndOf="@id/avatar"
android:layoutDirection="locale"
android:minHeight="20sp"
android:orientation="horizontal">
<TextView

View File

@ -11,7 +11,7 @@
android:layout_height="250dp"
android:layout_gravity="center_horizontal"
android:foreground="?android:selectableItemBackground"
android:maxWidth="400dp">
android:maxWidth="@dimen/layout_max_width">
<ImageView
android:id="@+id/photo"
android:layout_width="match_parent"

View File

@ -90,7 +90,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/self_avatar"
android:paddingTop="4sp"
android:paddingTop="3sp"
android:minHeight="24sp"
android:ellipsize="end"
android:singleLine="true"
@ -103,7 +103,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="8sp"
android:layout_toEndOf="@id/self_name"
android:paddingTop="4sp"
android:paddingTop="3sp"
android:ellipsize="end"
android:fontFamily="sans-serif"
android:singleLine="true"
@ -117,7 +117,6 @@
android:layout_height="wrap_content"
android:layout_below="@id/self_name"
android:layout_toEndOf="@id/self_avatar"
android:minHeight="20sp"
android:ellipsize="end"
android:singleLine="true"
android:textAppearance="@style/m3_title_small"

View File

@ -14,7 +14,7 @@
<org.joinmastodon.android.ui.views.MaxWidthFrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxWidth="400dp">
android:maxWidth="@dimen/layout_max_width">
<ImageView
android:id="@+id/photo"

View File

@ -5,7 +5,7 @@
android:layout_height="wrap_content"
android:background="?colorBackgroundLight"
android:elevation="2dp"
android:paddingBottom="16dp">
android:paddingBottom="0dp">
<ImageView
android:id="@+id/cover"
@ -81,92 +81,107 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/bio"
android:paddingRight="8dp"
android:orientation="horizontal">
<org.joinmastodon.android.ui.views.AutoOrientationLinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingBottom="16dp"
android:layout_marginStart="16dp">
<LinearLayout
android:id="@+id/posts_btn"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:gravity="center_horizontal"
android:orientation="vertical">
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/posts_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/m3_title_large"
android:textAppearance="@style/m3_title_medium"
android:singleLine="true"
android:ellipsize="end"
tools:text="123" />
<TextView
android:id="@+id/posts_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/m3_title_small"
tools:text="following" />
</LinearLayout>
<LinearLayout
android:id="@+id/followers_btn"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_marginTop="16dp"
android:layout_marginStart="12dp"
android:orientation="vertical"
android:gravity="center_horizontal">
<TextView
android:id="@+id/followers_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/m3_title_large"
tools:text="123"/>
<TextView
android:id="@+id/followers_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/m3_title_small"
tools:text="following"/>
android:layout_marginStart="4sp"
android:textAppearance="@style/m3_body_large"
android:singleLine="true"
android:ellipsize="middle"
tools:text="posts" />
</LinearLayout>
<LinearLayout
android:id="@+id/following_btn"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_marginTop="16dp"
android:layout_marginStart="12dp"
android:orientation="vertical"
android:gravity="center_horizontal">
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:orientation="horizontal"
android:gravity="center_vertical">
<TextView
android:id="@+id/following_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/m3_title_large"
android:textAppearance="@style/m3_title_medium"
android:singleLine="true"
android:ellipsize="end"
tools:text="123"/>
<TextView
android:id="@+id/following_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/m3_title_small"
android:layout_marginStart="4sp"
android:textAppearance="@style/m3_body_large"
android:singleLine="true"
android:ellipsize="middle"
tools:text="following"/>
</LinearLayout>
<Space
android:layout_width="0px"
android:layout_height="1px"
android:layout_weight="1"/>
<LinearLayout
android:id="@+id/followers_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:orientation="horizontal"
android:gravity="center_vertical">
<TextView
android:id="@+id/followers_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="@style/m3_title_medium"
android:singleLine="true"
android:ellipsize="end"
tools:text="123"/>
<TextView
android:id="@+id/followers_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4sp"
android:textAppearance="@style/m3_body_large"
android:singleLine="true"
android:ellipsize="middle"
tools:text="followers"/>
</LinearLayout>
</org.joinmastodon.android.ui.views.AutoOrientationLinearLayout>
<FrameLayout
android:id="@+id/reject_btn_wrap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_gravity="bottom"
android:paddingStart="8dp"
android:paddingEnd="4dp"
android:clipToPadding="false"
android:paddingHorizontal="4dp"
android:paddingVertical="8dp"
android:paddingTop="8dp"
android:paddingBottom="16dp"
android:visibility="gone">
<org.joinmastodon.android.ui.views.ProgressBarButton
@ -194,10 +209,12 @@
android:id="@+id/accept_btn_wrap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_gravity="bottom"
android:paddingStart="4dp"
android:paddingEnd="16dp"
android:clipToPadding="false"
android:paddingHorizontal="4dp"
android:paddingVertical="8dp"
android:paddingTop="8dp"
android:paddingBottom="16dp"
android:visibility="gone">
<org.joinmastodon.android.ui.views.ProgressBarButton
@ -224,8 +241,11 @@
android:id="@+id/action_btn_wrap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:padding="8dp"
android:layout_gravity="bottom"
android:paddingStart="8dp"
android:paddingEnd="16dp"
android:paddingTop="8dp"
android:paddingBottom="16dp"
android:clipToPadding="false">
<org.joinmastodon.android.ui.views.ProgressBarButton

View File

@ -0,0 +1,488 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="get_started">الخطوات الأولى</string>
<string name="log_in">تسجيلُ الدخول</string>
<string name="next">التالي</string>
<string name="loading_instance">يَجري الحُصُول على معلومات المَثيل…</string>
<string name="error">خطأ</string>
<string name="not_a_mastodon_instance">%s لا يبدو كمثيل ماستدون.</string>
<string name="ok">حسنًا</string>
<string name="preparing_auth">جَارٍ الإعدَادُ لِلمُصادَقَة…</string>
<string name="finishing_auth">يُنهي المصادقة…</string>
<string name="user_boosted">أعادَ %s تَدوينَها</string>
<string name="in_reply_to">ردًا على %s</string>
<string name="notifications">الإشعارات</string>
<string name="user_followed_you">بَدَأ بِمُتابَعَتِك</string>
<string name="user_sent_follow_request">أرسَلَ طَلَبًا لِمُتابَعَتِك</string>
<string name="user_favorited">فَضَّلَ مَنشُورَك</string>
<string name="notification_boosted">أعادَ تَدوينَ مَنشُورَك</string>
<string name="poll_ended">انتهى استطلاعُ الرأي</string>
<string name="time_seconds">%d ثا</string>
<string name="time_minutes">%d د</string>
<string name="time_hours">%d سا</string>
<string name="time_days">%d يوم</string>
<string name="share_toot_title">شارك</string>
<string name="settings">الإعدادات</string>
<string name="publish">انشر</string>
<string name="discard_draft">أتريد التخلص من المسودة؟</string>
<string name="discard">تخلص</string>
<string name="cancel">إلغاء</string>
<plurals name="followers">
<item quantity="zero">لا متابِعين</item>
<item quantity="one">متابِع</item>
<item quantity="two">متابِعان</item>
<item quantity="few">متابِعين</item>
<item quantity="many">متابِعًا</item>
<item quantity="other">متابِع</item>
</plurals>
<plurals name="following">
<item quantity="zero">لا متابَعين</item>
<item quantity="one">متابَع</item>
<item quantity="two">متابَعان</item>
<item quantity="few">متابَعين</item>
<item quantity="many">متابَعًا</item>
<item quantity="other">متابَع</item>
</plurals>
<plurals name="posts">
<item quantity="zero">لا منشورات</item>
<item quantity="one">منشور</item>
<item quantity="two">منشوران</item>
<item quantity="few">منشورات</item>
<item quantity="many">منشورًا</item>
<item quantity="other">منشور</item>
</plurals>
<string name="posts">منشورات</string>
<string name="posts_and_replies">مَنشُوراتٌ وَرُدُود</string>
<string name="media">وسائط</string>
<string name="profile_about">حَول</string>
<string name="button_follow">تابِع</string>
<string name="button_following">يُتابِع</string>
<string name="edit_profile">حرّر الملف الشخصي</string>
<string name="mention_user">ذِكر @%s</string>
<string name="share_user">مُشارَكَةُ %s</string>
<string name="mute_user">كَتمُ %s</string>
<string name="unmute_user">إلغاء الكَتم عن @%s</string>
<string name="block_user">حَظرُ %s</string>
<string name="unblock_user">رفع الحَظر عن %s</string>
<string name="report_user">الإبلاغُ عَن %s</string>
<string name="block_domain">حَظرُ %s</string>
<string name="unblock_domain">رفع الحَظر عن %s</string>
<plurals name="x_posts">
<item quantity="zero">لا مَنشورات</item>
<item quantity="one">منشورٌ واحِد</item>
<item quantity="two">منشورانِ اثنان</item>
<item quantity="few">%,d منشورات</item>
<item quantity="many">%,d منشورًا</item>
<item quantity="other">%,d منشور</item>
</plurals>
<string name="profile_joined">انضم في</string>
<string name="done">تمّ</string>
<string name="loading">يحمل…</string>
<string name="field_label">التسمية</string>
<string name="field_content">المحتوى</string>
<string name="saving">يحفظ…</string>
<string name="post_from_user">نُشر من %s</string>
<string name="poll_option_hint">الخيار %d</string>
<plurals name="x_minutes">
<item quantity="zero">أقل من دقيقة</item>
<item quantity="one">دقيقة واحدة</item>
<item quantity="two">دقيقتان</item>
<item quantity="few">%d دقائق</item>
<item quantity="many">%d دقيقة</item>
<item quantity="other">%d دقيقة</item>
</plurals>
<plurals name="x_hours">
<item quantity="zero">أقل من ساعة</item>
<item quantity="one">ساعة واحدة</item>
<item quantity="two">ساعتان</item>
<item quantity="few">%d ساعات</item>
<item quantity="many">%d ساعة</item>
<item quantity="other">%d ساعة</item>
</plurals>
<plurals name="x_days">
<item quantity="zero">أقل من يوم</item>
<item quantity="one">يومٌ واحِد</item>
<item quantity="two">يَومان</item>
<item quantity="few">%d أيام</item>
<item quantity="many">%d يومًا</item>
<item quantity="other">%d يوم</item>
</plurals>
<string name="compose_poll_duration">المُدَّة: %s</string>
<plurals name="x_seconds_left">
<item quantity="zero">تتبقى لَحظة</item>
<item quantity="one">تتبقى ثانية واحِدة</item>
<item quantity="two">تتبقى ثانيتان</item>
<item quantity="few">تتبقى %d ثوان</item>
<item quantity="many">تتبقى %d ثانية</item>
<item quantity="other">تتبقى %d ثانية</item>
</plurals>
<plurals name="x_minutes_left">
<item quantity="zero">تبقت أقل من دقيقة</item>
<item quantity="one">تبقت دقيقة</item>
<item quantity="two">تبقت دقيقتان</item>
<item quantity="few">تبقت %d دقائق</item>
<item quantity="many">تبقت %d دقيقة</item>
<item quantity="other">تبقت %d دقيقة</item>
</plurals>
<plurals name="x_hours_left">
<item quantity="zero">تبقت أقل من ساعة</item>
<item quantity="one">تبقت ساعة واحدة</item>
<item quantity="two">تبقت ساعتان</item>
<item quantity="few">تبقت %d ساعات</item>
<item quantity="many">تبقت %d ساعة</item>
<item quantity="other">تبقت %d ساعة</item>
</plurals>
<plurals name="x_days_left">
<item quantity="zero">تبقى أقل من يوم</item>
<item quantity="one">تبقى يوم واحد</item>
<item quantity="two">تبقى يومان</item>
<item quantity="few">تبقى %d أيام</item>
<item quantity="many">تبقى %d يومًا</item>
<item quantity="other">تبقى %d يوم</item>
</plurals>
<plurals name="x_voters">
<item quantity="zero">لا يوجد مصوتون</item>
<item quantity="one">مصوت واحد</item>
<item quantity="two">مصوتان</item>
<item quantity="few">%,d مصوتين</item>
<item quantity="many">%,d مصوتًا</item>
<item quantity="other">%,d مصوت</item>
</plurals>
<string name="poll_closed">انتهى</string>
<string name="confirm_mute_title">اكتم الحساب</string>
<string name="confirm_mute">أكّد كتم %s</string>
<string name="do_mute">اكتم</string>
<string name="confirm_unmute_title">ارفع الكتم عن الحساب</string>
<string name="confirm_unmute">أكِّد رفع الكتم عن %s</string>
<string name="do_unmute">ارفع الكتم</string>
<string name="confirm_block_title">احجب الحساب</string>
<string name="confirm_block_domain_title">احجب النطاق</string>
<string name="confirm_block">أكّد حجب %s</string>
<string name="do_block">احجب</string>
<string name="confirm_unblock_title">ارفع الحجب عن الحساب</string>
<string name="confirm_unblock_domain_title">ارفع الحجب عن النطاق</string>
<string name="confirm_unblock">أكّد رفع الحجب عن %s</string>
<string name="do_unblock">ارفع الحجب</string>
<string name="button_muted">مَكتوم</string>
<string name="button_blocked">محجوب</string>
<string name="action_vote">صَوّت</string>
<string name="tap_to_reveal">اُنقُر لِلكَشف</string>
<string name="delete">احذف</string>
<string name="confirm_delete_title">احذف المنشور</string>
<string name="confirm_delete">أمتأكد من حذف هذا المنشور؟</string>
<string name="deleting">يحذف…</string>
<string name="notification_channel_audio_player">تشغيل الصوت</string>
<string name="play">شغّل</string>
<string name="pause">ألبث</string>
<string name="log_out">خروج</string>
<string name="add_account">أضف حساباً</string>
<string name="search_hint">ابحث</string>
<string name="hashtags">وُسُوم</string>
<string name="news">الأخبار</string>
<string name="for_you">لأجلك</string>
<string name="all_notifications">الكل</string>
<string name="mentions">الذِكر</string>
<plurals name="x_people_talking">
<item quantity="zero">لا أحد يتحدث</item>
<item quantity="one">شخص واحد يتحدث</item>
<item quantity="two">شخصان يتحدثان</item>
<item quantity="few">%d أشخاص يتحدثون</item>
<item quantity="many">%d شخصًا يتحدثون</item>
<item quantity="other">%d شخص يتحدثون</item>
</plurals>
<plurals name="discussed_x_times">
<item quantity="zero">لم يُناقش</item>
<item quantity="one">نوقش مرة واحدة</item>
<item quantity="two">نوقش مرتين</item>
<item quantity="few">نوقش %d مرات</item>
<item quantity="many">نوقش %d مرة</item>
<item quantity="other">نوقش %d مرة</item>
</plurals>
<string name="report_title">بلّغ عن %s</string>
<string name="report_choose_reason">ما هي المشكلة في هذا المنشور؟</string>
<string name="report_choose_reason_account">ما هي المشكلة مع %s؟</string>
<string name="report_choose_reason_subtitle">اختر أفضل تطابق</string>
<string name="report_reason_personal">لا يعجبني</string>
<string name="report_reason_personal_subtitle">ألا ترغب برؤيته</string>
<string name="report_reason_spam">إزعاج</string>
<string name="report_reason_spam_subtitle">روابط خبيثة أو تفاعل كاذب أو ردود متكررة</string>
<string name="report_reason_violation">ينتهك قواعد الخادم</string>
<string name="report_reason_violation_subtitle">تعلم أنه ينتهك قواعد محددة</string>
<string name="report_reason_other">شيء آخر</string>
<string name="report_reason_other_subtitle">لا تندرج هذه المشكلة ضمن فئات أخرى</string>
<string name="report_choose_rule">ما هي القواعد المنتهكة؟</string>
<string name="report_choose_rule_subtitle">اختر كل ما ينطبق</string>
<string name="report_choose_posts">هل توجد منشورات تدعم صحة هذا البلاغ؟</string>
<string name="report_choose_posts_subtitle">اختر كل ما ينطبق</string>
<string name="report_comment_title">هل لديك شيء آخر لتخبرنا به؟</string>
<string name="report_comment_hint">تعليقات إضافية</string>
<string name="sending_report">يرسل البلاغ…</string>
<string name="report_sent_title">شُكرًا لَكَ على التبليغ، سَنَنظُرُ فِي هَذَا الأمر.</string>
<string name="report_sent_subtitle">في أثناء مراجعتنا للبلاغ، يمكنك اتخاذ إجراء ضد @%s.</string>
<string name="unfollow_user">ألغ متابعة %s</string>
<string name="unfollow">ألغ المتابعة</string>
<string name="mute_user_explain">لن ترى منشوراتهم أو إعادة تدوينهم في التغذية الرئيسية. ولن يعلموا أنهم كتموا.</string>
<string name="block_user_explain">لن يتمكنوا من متابعتك أو رؤية منشوراتك، وسيكون بديهيًا لهم أنهم حجبوا.</string>
<string name="report_personal_title">لاترغب في مشاهدة هذا؟</string>
<string name="report_personal_subtitle">عندما ترى ما لا يعجبك في ماستدون، يمكنك إزالة صاحبها من تجربتك كمستخدم.</string>
<string name="back">العودة</string>
<string name="instance_catalog_title">يتكوّن ماستدون من مستخدمين موزّعين عبر خوادم مختلفة.</string>
<string name="instance_catalog_subtitle">اختر خادمًا بناءً على اهتماماتك، منطقتك أو يمكنك حتى اختيارُ مجتمعٍ ذي غرضٍ عام. وسيضل بامكانك التواصل مع المستخدمين من الخوادم الأخرى.</string>
<string name="search_communities">ابحث عن خادم أو أدخل رابطه</string>
<string name="instance_rules_title">بعض القواعد الأساسية</string>
<string name="instance_rules_subtitle">خذ دقيقة لمراجعة القواعد التي حددها وفرضها مديروا %s.</string>
<string name="signup_title">دعنا نجهزك في %s</string>
<string name="edit_photo">حرّر</string>
<string name="display_name">الاسم العلني</string>
<string name="username">اسم المستخدم</string>
<string name="email">البريد الإلكتروني</string>
<string name="password">كلمة المرور</string>
<string name="password_note">ضمّن الأحرف الكبيرة والأحرف الخاصة والأرقام لزيادة قوة كلمة المرور.</string>
<string name="category_academia">أكاديمي</string>
<string name="category_activism">النشطاء</string>
<string name="category_all">الكل</string>
<string name="category_art">فنون</string>
<string name="category_food">طعام</string>
<string name="category_furry">حيوان ذو فرو</string>
<string name="category_games">ألعاب</string>
<string name="category_general">عام</string>
<string name="category_journalism">صحافة</string>
<string name="category_lgbt">LGBT</string>
<string name="category_music">موسيقى</string>
<string name="category_regional">إقليمي</string>
<string name="category_tech">تقني</string>
<string name="confirm_email_title">شيءٌ أخير</string>
<string name="confirm_email_subtitle">أنقر على الرابط المرسل إليك لاستيثاق حسابك.</string>
<string name="resend">أعد الإرسال</string>
<string name="open_email_app">افتح تطبيق البريد الإلكتروني</string>
<string name="resent_email">أُرسلت رسالة التأكيد</string>
<string name="compose_hint">عَبِّر عَمَّ يَجُولُ فِي ذِهنِك</string>
<string name="content_warning">تحذير من المحتوى</string>
<string name="add_image_description">أضف وصفًا للصورة…</string>
<string name="retry_upload">حاول الرفع مجددًا</string>
<string name="edit_image">حرّر الصورة</string>
<string name="save">احفظ</string>
<string name="add_alt_text">أضف نصًا بديلًا</string>
<string name="alt_text_subtitle">يصف النص البديل محتوى الصور للمكفوفين وضعاف البصر. حاول تضمين أكبر قدر ممكن من التفاصيل ليفهموا السياق.</string>
<string name="alt_text_hint">مثال: كلب ينظر حوله بارتياب وعيناه مثبتتان على الكاميرا.</string>
<string name="visibility_public">علني</string>
<string name="visibility_followers_only">للمُتابِعينَ فقط</string>
<string name="visibility_private">لمن ذكرتُهم فقط</string>
<string name="search_all">الكل</string>
<string name="search_people">أشخاص</string>
<string name="recent_searches">عَمَليَّاُت البَحثِ الأخيرَة</string>
<string name="step_x_of_n">الخطوة %1$d من %2$d</string>
<string name="skip">تخطى</string>
<string name="notification_type_follow">متابعُون جُدُد</string>
<string name="notification_type_favorite">المفضلة</string>
<string name="notification_type_reblog">المعاد تدوينها</string>
<string name="notification_type_mention">الذِكر</string>
<string name="notification_type_poll">استطلاع رأي</string>
<string name="choose_account">اختر حسابًا</string>
<string name="err_not_logged_in">يرجى تسجيل الدخول إلى حساب ماستدون أولًا</string>
<plurals name="cant_add_more_than_x_attachments">
<item quantity="zero">يجب عليك إرفاق ملف</item>
<item quantity="one">لا يمكنك إرفاق ملف</item>
<item quantity="two">لا يمكنك إرفاق أكثر من ملفين</item>
<item quantity="few">لا يمكنك إرفاق أكثر من %d ملفات</item>
<item quantity="many">لا يمكنك إرفاق أكثر من %d ملفًا</item>
<item quantity="other">لا يمكنك إرفاق أكثر من %d ملف</item>
</plurals>
<string name="media_attachment_unsupported_type">نوع الملف %s غير مدعوم</string>
<string name="media_attachment_too_big">الملف %1$s يتجاوز حدّ %2$s مب</string>
<string name="settings_theme">المظهر</string>
<string name="theme_auto">تلقائي</string>
<string name="theme_light">فاتح</string>
<string name="theme_dark">داكن</string>
<string name="theme_true_black">الوضع الداكن الحقيقي</string>
<string name="settings_behavior">السلوك</string>
<string name="settings_gif">تشغيل الصور الرمزية المتحركة والرموز التعبيرية المتحركة</string>
<string name="settings_custom_tabs">استخدم المتصفح المضمن</string>
<string name="settings_notifications">الإشعارات</string>
<string name="notify_me_when">أشعِرني عند قيام</string>
<string name="notify_anyone">أيَّ شخصٍ</string>
<string name="notify_follower">مُتابِع</string>
<string name="notify_followed">شخص أُتابِعُه</string>
<string name="notify_none">لَا أحد</string>
<string name="notify_favorites">بِالإعْجاب بِمَنشوري</string>
<string name="notify_follow">بمتابعتي</string>
<string name="notify_reblog">بإعادة تدوين مَنشوري</string>
<string name="notify_mention">ذكرني</string>
<string name="settings_boring">المنطِقَةُ المُملَّة</string>
<string name="settings_account">إعدادات الحساب</string>
<string name="settings_contribute">ساهم في ماستدون</string>
<string name="settings_tos">شروط الخدمة</string>
<string name="settings_privacy_policy">سياسة الخصوصية</string>
<string name="settings_spicy">المنطِقَةُ اللَّاذِعَة</string>
<string name="settings_clear_cache">امسح التخزين المؤقت للوسائط</string>
<string name="settings_app_version">تطبيق ماستدون لأندرويد نسخة %1$s (%2$d)</string>
<string name="media_cache_cleared">مُسح التخزين المؤقت للوسائط</string>
<string name="confirm_log_out">أمتأكد من الخروج؟</string>
<string name="sensitive_content">محتوى حساس</string>
<string name="sensitive_content_explain">علّم المؤلف هته الوسائط كحساسة. اضغط لكشفها.</string>
<string name="media_hidden">اُنقُر لِلكَشف</string>
<string name="avatar_description">انتقل للصفحة الشخصية لـ %s</string>
<string name="more_options">مزيد من الخيارات</string>
<string name="reveal_content">اكشف المحتوى</string>
<string name="hide_content">اخف المحتوى</string>
<string name="new_post">منشور جديد</string>
<string name="button_reply">ردّ</string>
<string name="button_reblog">أعد تدوين</string>
<string name="button_favorite">فضّل</string>
<string name="button_share">شارك</string>
<string name="media_no_description">وسائط بدون وصف</string>
<string name="add_media">أضف وسائط</string>
<string name="add_poll">أضف استطلاع رأي</string>
<string name="emoji">إيموجي</string>
<string name="post_visibility">مرئية المنشور</string>
<string name="home_timeline">الخيط الزمني الرئيسي</string>
<string name="my_profile">ملفي الشخصي</string>
<string name="media_viewer">عارض الوسائط</string>
<string name="follow_user">تابع %s</string>
<string name="unfollowed_user">ألغ متابعة %s</string>
<string name="followed_user">أنت تتابع %s</string>
<string name="open_in_browser">افتح في المتصفح</string>
<string name="hide_boosts_from_user">اخف ما أعاد %s تدوينه</string>
<string name="show_boosts_from_user">أظهر ما أعاد %s تدوينه</string>
<string name="signup_reason">لماذا ترغب في الانضمام؟</string>
<string name="signup_reason_note">هذا سوف يساعدنا في مراجعة تطبيقك.</string>
<string name="clear">امسح</string>
<string name="profile_header">الصورة الفوقية</string>
<string name="profile_picture">صورة الملفّ الشخصي</string>
<string name="reorder">أعد الترتيب</string>
<string name="download">نزّل</string>
<string name="permission_required">يتطلب أذونات</string>
<string name="storage_permission_to_download">يحتاج هذا التطبيق أذن الوصول للتخزين لحفظ الملف.</string>
<string name="open_settings">افتح الإعدادات</string>
<string name="error_saving_file">خطأ أثناء حفظ الملف</string>
<string name="file_saved">حُفظ الملف</string>
<string name="downloading">ينزّل…</string>
<string name="no_app_to_handle_action">لا يوجد تطبيق لمعالجة هذا الإجراء</string>
<string name="local_timeline">المجتمع</string>
<string name="trending_posts_info_banner">هَذِهِ هِيَ المَنشُوراتُ الَّتي تَكْتَسِبُ شَعبِيَّةً فِي الرُّكنِ الخاصِّ بِكَ مِن مَاستودُون.</string>
<string name="trending_hashtags_info_banner">هَذِهِ هِيَ الوُسُومُ الَّتي تَكْتَسِبُ شَعبِيَّةً فِي الرُّكنِ الخاصِّ بِكَ مِن مَاستودُون.</string>
<string name="trending_links_info_banner">هَذِهِ هِيَ القِصَصُ الأخبارِيَّةُ المُتَنَاقَلَةُ بِكِثرَةٍ فِي الرُّكنِ الخاصِّ بِكَ مِن مَاستودُون.</string>
<string name="local_timeline_info_banner">هذه هي أحدث منشورات المستخدمين المتواجدين على نفس الخادم الذي تستخدمه.</string>
<string name="dismiss">رفض</string>
<string name="see_new_posts">استعرض المنشورات الجديدة</string>
<string name="load_missing_posts">حمّل المَنشورات المَفقودَة</string>
<string name="follow_back">رُدّ المتابعة</string>
<string name="button_follow_pending">معلق</string>
<string name="follows_you">يُتابِعُك</string>
<string name="manually_approves_followers">الموافقة اليدوية على طلبات المتابعة</string>
<string name="current_account">الحِسابُ الحاليّ</string>
<string name="log_out_account">تَسجيلُ الخُرُوجِ مِن %s</string>
<!-- translators: %,d is a valid placeholder, it formats the number with locale-dependent grouping separators -->
<plurals name="x_followers">
<item quantity="zero">ليس له متابِعون</item>
<item quantity="one">متابِع واحد</item>
<item quantity="two">متابِعان</item>
<item quantity="few">%,d متابِعين</item>
<item quantity="many">%,d متابِعًا</item>
<item quantity="other">%,d متابِع</item>
</plurals>
<plurals name="x_following">
<item quantity="zero">ليس له متابَعون</item>
<item quantity="one">متابَع واحد</item>
<item quantity="two">متابَعان</item>
<item quantity="few">%,d متابَعين</item>
<item quantity="many">%,d متابَعًا</item>
<item quantity="other">%,d متابَع</item>
</plurals>
<plurals name="x_favorites">
<item quantity="zero">دون تفضيلات</item>
<item quantity="one">تفضيل واحد</item>
<item quantity="two">تفضيلان</item>
<item quantity="few">%,d تفضيلات</item>
<item quantity="many">%,d تفضيلًا</item>
<item quantity="other">%,d تفضيل</item>
</plurals>
<plurals name="x_reblogs">
<item quantity="zero">لا إعادات تدوين</item>
<item quantity="one">إعاد تدوين واحدة</item>
<item quantity="two">إعادتا تدوين</item>
<item quantity="few">%,d إعادات تدوين</item>
<item quantity="many">%,d إعادة تدوين</item>
<item quantity="other">%,d إعادة تدوين</item>
</plurals>
<string name="timestamp_via_app">%1$s عبر %2$s</string>
<string name="time_now">الآن</string>
<string name="post_info_reblogs">إعادات التدوين</string>
<string name="post_info_favorites">المفضلة</string>
<string name="edit_history">تاريخ التعديل</string>
<string name="last_edit_at_x">آخر تعديل %s</string>
<string name="time_just_now">للتوّ</string>
<plurals name="x_seconds_ago">
<item quantity="zero">منذ %d ثانية</item>
<item quantity="one">منذ ثانية</item>
<item quantity="two">منذ ثانيتان</item>
<item quantity="few">%d ثواني</item>
<item quantity="many">منذ %d ثانية</item>
<item quantity="other">%d ثواني مضت</item>
</plurals>
<plurals name="x_minutes_ago">
<item quantity="zero">الان</item>
<item quantity="one">منذ دقيقة</item>
<item quantity="two">منذ دقيقتان</item>
<item quantity="few">%d دقائق مضت</item>
<item quantity="many">منذ %d دقائق</item>
<item quantity="other">منذ %d دقائق</item>
</plurals>
<string name="edited_timestamp">عُدّل في %s</string>
<string name="edit_original_post">المنشور الأصلي</string>
<string name="edit_text_edited">تم تعديل النص</string>
<string name="edit_spoiler_added">تم إضافة تحذير المحتوى</string>
<string name="edit_spoiler_edited">تم تعديل تحذير المحتوى</string>
<string name="edit_spoiler_removed">تم حذف تحذير المحتوى</string>
<string name="edit_poll_added">تمت إضافة استطلاع للرأي</string>
<string name="edit_poll_edited">تم تعديل الاستطلاع</string>
<string name="edit_poll_removed">تمت إزالة الاستطلاع</string>
<string name="edit_media_added">تمت إضافة الوسائط</string>
<string name="edit_media_removed">تمت إزالة الوسائط</string>
<string name="edit_media_reordered">تمت إعادة ترتيب الوسائط</string>
<string name="edit_marked_sensitive">مُعَين كحساس</string>
<string name="edit_marked_not_sensitive">مُعَين كمنشور غير حساس</string>
<string name="edit_multiple_changed">عُدّل المنشور</string>
<string name="edit">تعديل</string>
<string name="discard_changes">تجاهل التغييرات؟</string>
<string name="upload_failed">فشلت عملية التحميل</string>
<string name="file_size_bytes">%d بايت</string>
<string name="file_size_kb">%.2f كيلوبايت</string>
<string name="file_size_mb">%.2f ميغابايت</string>
<string name="file_size_gb">%.2f جيجابايت</string>
<string name="file_upload_progress">%1$s من %2$s</string>
<string name="file_upload_time_remaining">%s متبقية</string>
<string name="upload_error_connection_lost">فقد جهازك الاتصال بالإنترنت</string>
<string name="upload_processing">قيد المعالجة…</string>
<!-- %s is version like 1.2.3 -->
<string name="update_available">ماستدون %s للأندرويد جاهز للتنزيل.</string>
<!-- %s is version like 1.2.3 -->
<string name="update_ready">تم تنزيل ماستدون %s للأندرويد ومستعد لتثبيته.</string>
<!-- %s is file size -->
<string name="download_update">جارٍ التنزيل (%s)</string>
<string name="install_update">تثبيت</string>
<string name="privacy_policy_title">ماستدون وخصوصيتك</string>
<string name="privacy_policy_subtitle">على الرغم من أن تطبيق ماستدون لا يجمع أي بيانات، فإن الخادم الذي قمت بالتسجيل من خلاله قد تكون له سياسة مختلفة. خذ دقيقة للمراجعة والموافقة على سياسة خصوصية التطبيق ماستدون وسياسة الخصوصية للخادم الخاص بك.</string>
<string name="i_agree">أنا مُوافِق</string>
<string name="empty_list">هذه القائمة فارغة</string>
<string name="confirm_delete_and_redraft">هل أنت متأكد أنك تريد حذف وإعادة صياغة هذا المنشور؟</string>
<string name="visibility_unlisted">غير مدرج</string>
<string name="list_timelines">القوائم</string>
<string name="follow_requests">طلبات المتابعة</string>
<string name="instance_signup_closed">هذا الخادم لا يقبل تسجيلات جديدة.</string>
<string name="pinned_posts">مدبّس</string>
<string name="delete_and_redraft">حذف وإعادة الصياغة</string>
<string name="confirm_delete_and_redraft_title">حذف وإعادة صياغة الرسالة</string>
<string name="pin_post">تدبيس على الصفحة الشخصية</string>
<string name="confirm_pin_post_title">تدبيس الرسالة على الصفحة الشخصية</string>
<string name="settings_show_federated_timeline">إظهار الخيط الفديرالي</string>
<string name="settings_contribute_fork">المساهمة في Megalodon</string>
<string name="accept_follow_request">قبول طلب المتابعة</string>
<string name="reject_follow_request">رفض طلب المتابعة</string>
<string name="lists_with_user">قوائم بها %s</string>
<string name="text_copied">تم النسخ إلى الحافظة</string>
<string name="add_bookmark">إضافة إلى الفواصل المرجعية</string>
<string name="remove_bookmark">إزالة من الفواصل المرجعية</string>
<string name="bookmarks">الفواصل المرجعية</string>
<string name="your_favorites">مفضلاتك</string>
</resources>

View File

@ -285,6 +285,7 @@
<string name="follow_user">%s folgen</string>
<string name="unfollowed_user">%s entfolgt</string>
<string name="followed_user">Du folgst nun %s</string>
<string name="following_user_requested">Deine Follower-Anfrage an %s wurde gesendet</string>
<string name="open_in_browser">Im Browser öffnen</string>
<string name="hide_boosts_from_user">geteilte Beiträge von %s ausblenden</string>
<string name="show_boosts_from_user">geteilte Beiträge von %s anzeigen</string>

View File

@ -267,4 +267,8 @@
<string name="sk_settings_reply_visibility_following">Antworten auf Follows</string>
<string name="sk_settings_reply_visibility_self">Antworten an mich</string>
<string name="sk_quoting_user">Zitiere %s</string>
<string name="sk_notification_action_replied">Antwort an %s gesendet</string>
<string name="sk_show_thread">Thread öffnen</string>
<string name="sk_compact_reblog_reply_line">Kompakte Geteilt/Geantwortet-Zeile</string>
<string name="sk_reply_line_above_avatar">“Als Antwort auf”-Zeile über Profilbild</string>
</resources>

View File

@ -263,4 +263,13 @@
<string name="sk_followed_as">Seguido desde %s</string>
<string name="sk_settings_hide_fab">Ocultar automáticamente el botón Redactar</string>
<string name="sk_in_reply">Respondiendo a</string>
<string name="sk_quoting_user">Citando %s</string>
<string name="sk_settings_reply_visibility">Visibilidad de la respuesta</string>
<string name="sk_settings_reply_visibility_all">Todas las respuestas</string>
<string name="sk_settings_reply_visibility_following">Responde a mis seguidores</string>
<string name="sk_settings_reply_visibility_self">Respondeme</string>
<string name="sk_notification_action_replied">Respuesta enviada a %s</string>
<string name="sk_reply_line_above_avatar">\"En respuesta a\" línea sobre el avatar</string>
<string name="sk_show_thread">Mostrar hilo</string>
<string name="sk_compact_reblog_reply_line">Línea compacta de reblog/respuesta</string>
</resources>

View File

@ -264,4 +264,13 @@
<string name="sk_followed_as">Suivi depuis %s</string>
<string name="sk_settings_hide_fab">Masquer automatiquement le bouton Composer</string>
<string name="sk_in_reply">En réponse</string>
<string name="sk_quoting_user">Citation %s</string>
<string name="sk_settings_reply_visibility">Visibilité des réponses</string>
<string name="sk_settings_reply_visibility_all">Toutes les réponses</string>
<string name="sk_settings_reply_visibility_following">Réponses à mes suivis</string>
<string name="sk_settings_reply_visibility_self">Me répond</string>
<string name="sk_notification_action_replied">Réponse envoyée à %s</string>
<string name="sk_show_thread">Afficher le fil</string>
<string name="sk_compact_reblog_reply_line">Ligne de repost/réponse compacte</string>
<string name="sk_reply_line_above_avatar">Ligne \"En réponse à\" au-dessus de l\'avatar</string>
</resources>

View File

@ -285,6 +285,7 @@
<string name="follow_user">Segue a %s</string>
<string name="unfollowed_user">Deixaches de seguir a %s</string>
<string name="followed_user">Estás a seguir a %s</string>
<string name="following_user_requested">Solicitaches seguir a %s</string>
<string name="open_in_browser">Abrir nun navegador</string>
<string name="hide_boosts_from_user">Agochar promocións de @%s</string>
<string name="show_boosts_from_user">Mostrar promocións de %s</string>

View File

@ -263,4 +263,13 @@
<string name="sk_followed_as">Seguida dende %s</string>
<string name="sk_settings_hide_fab">Auto-ocultar botón de redacción</string>
<string name="sk_in_reply">Respondendo</string>
<string name="sk_quoting_user">Citando a %s</string>
<string name="sk_settings_reply_visibility">Visibilidade da resposta</string>
<string name="sk_settings_reply_visibility_all">Todas as respostas</string>
<string name="sk_settings_reply_visibility_following">Respostas aos meus seguidos</string>
<string name="sk_settings_reply_visibility_self">Respostas a min</string>
<string name="sk_notification_action_replied">Resposta enviada a %s</string>
<string name="sk_reply_line_above_avatar">Liña \"en resposta a\" sobre o avatar</string>
<string name="sk_show_thread">Mostrar chío</string>
<string name="sk_compact_reblog_reply_line">Compactar liña de promoción/resposta</string>
</resources>

View File

@ -264,4 +264,13 @@
<string name="sk_unfinished_attachments_message">Beberapa lampiran belum selesai diunggah.</string>
<string name="sk_settings_hide_fab">Sembunyikan tombol Komposer</string>
<string name="sk_in_reply">Dalam balasan</string>
<string name="sk_settings_reply_visibility_following">Balasan ke yang saya ikuti</string>
<string name="sk_quoting_user">Mengutip %s</string>
<string name="sk_settings_reply_visibility">Keterlihatan balasan</string>
<string name="sk_settings_reply_visibility_all">Semua balasan</string>
<string name="sk_settings_reply_visibility_self">Balasan kepada saya</string>
<string name="sk_notification_action_replied">Mengirim balasan ke %s</string>
<string name="sk_reply_line_above_avatar">Baris “Membalas ke” di atas avatar</string>
<string name="sk_show_thread">Tampilkan utasan</string>
<string name="sk_compact_reblog_reply_line">Baris berbagi/balasan</string>
</resources>

View File

@ -285,6 +285,7 @@
<string name="follow_user">Segui %s</string>
<string name="unfollowed_user">Smetti di seguire %s</string>
<string name="followed_user">Hai cominciato a seguire %s</string>
<string name="following_user_requested">Richiesto di seguire %s</string>
<string name="open_in_browser">Apri nel browser</string>
<string name="hide_boosts_from_user">Nascondi le condivisioni di %s</string>
<string name="show_boosts_from_user">Mostra le condivisioni di %s</string>

View File

@ -251,7 +251,7 @@
<string name="notify_favorites">Mijn bericht als favoriet markeert</string>
<string name="notify_follow">Mij volgt</string>
<string name="notify_reblog">boost mijn bericht</string>
<string name="notify_mention">vermeldt mij</string>
<string name="notify_mention">Mij vermeldt</string>
<string name="settings_boring">De saaie zone</string>
<string name="settings_account">Accountinstellingen</string>
<string name="settings_contribute">Bijdragen aan Mastodon</string>
@ -285,6 +285,7 @@
<string name="follow_user">%s volgen</string>
<string name="unfollowed_user">%s ontvolgd</string>
<string name="followed_user">Je volgt %s nu</string>
<string name="following_user_requested">Je volgverzoek is aan %s verstuurd</string>
<string name="open_in_browser">Openen in browser</string>
<string name="hide_boosts_from_user">Boosts van %s verbergen</string>
<string name="show_boosts_from_user">Boosts van %s tonen</string>

View File

@ -262,4 +262,13 @@
<string name="sk_follow_as">Obserwuj z innego konta</string>
<string name="sk_settings_hide_fab">Automatycznie ukrywaj przycisk tworzenia nowego wpisu</string>
<string name="sk_in_reply">W odpowiedzi</string>
<string name="sk_settings_reply_visibility_following">Odpowiedzi do moich obserwacji</string>
<string name="sk_quoting_user">Cytowanie %s</string>
<string name="sk_settings_reply_visibility">Widoczność odpowiedzi</string>
<string name="sk_settings_reply_visibility_all">Wszystkie odpowiedzi</string>
<string name="sk_settings_reply_visibility_self">Odpowiedzi do mnie</string>
<string name="sk_notification_action_replied">Wysłano odpowiedź do %s</string>
<string name="sk_reply_line_above_avatar">Tekst \"W odpowiedzi na\" nad avatarem</string>
<string name="sk_show_thread">Pokaż wątek</string>
<string name="sk_compact_reblog_reply_line">Zmniejsz linię reblogu/odpowiedzi</string>
</resources>

View File

@ -315,6 +315,7 @@
<string name="follow_user">Sledi %s</string>
<string name="unfollowed_user">Konec sledenja %s</string>
<string name="followed_user">Zdaj sledite %s</string>
<string name="following_user_requested">Zaprošeni ste, da sledite %s</string>
<string name="open_in_browser">Odpri v brskalniku</string>
<string name="hide_boosts_from_user">Skrij poobjave %s</string>
<string name="show_boosts_from_user">Pokaži poobjave %s</string>

View File

@ -270,6 +270,7 @@
<string name="follow_user">ติดตาม %s</string>
<string name="unfollowed_user">เลิกติดตาม %s แล้ว</string>
<string name="followed_user">ตอนนี้คุณกำลังติดตาม %s</string>
<string name="following_user_requested">ขอติดตาม %s แล้ว</string>
<string name="open_in_browser">เปิดในเบราว์เซอร์</string>
<string name="hide_boosts_from_user">ซ่อนการดันจาก %s</string>
<string name="show_boosts_from_user">แสดงการดันจาก %s</string>

View File

@ -263,4 +263,13 @@
<string name="sk_followed_as">Відстежується з %s</string>
<string name="sk_settings_hide_fab">Автоматично ховати кнопку компонування</string>
<string name="sk_in_reply">У відповідь</string>
<string name="sk_quoting_user">Цитування %s</string>
<string name="sk_settings_reply_visibility">Видимість відповіді</string>
<string name="sk_settings_reply_visibility_all">Усі відповіді</string>
<string name="sk_settings_reply_visibility_following">Відповіді моїм підписникам</string>
<string name="sk_settings_reply_visibility_self">Відповіді мені</string>
<string name="sk_notification_action_replied">Надіслано відповідь на %s</string>
<string name="sk_reply_line_above_avatar">Рядок «У відповідь» над аватаром</string>
<string name="sk_show_thread">Показати потік</string>
<string name="sk_compact_reblog_reply_line">Компактний рядок для поширеного допису/відповіді</string>
</resources>

View File

@ -270,6 +270,7 @@
<string name="follow_user">Theo dõi %s</string>
<string name="unfollowed_user">Ngưng theo dõi %s</string>
<string name="followed_user">Bạn đã theo dõi %s</string>
<string name="following_user_requested">Yêu cầu theo dõi %s</string>
<string name="open_in_browser">Mở trong trình duyệt</string>
<string name="hide_boosts_from_user">Ẩn đăng lại từ %s</string>
<string name="show_boosts_from_user">Hiện đăng lại từ %s</string>

View File

@ -1,34 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="sk_pinned_posts">置顶</string>
<string name="sk_delete_and_redraft">删除重新编辑</string>
<string name="sk_confirm_delete_and_redraft_title">删除嘟文并重新编辑</string>
<string name="sk_confirm_delete_and_redraft">确定要删除这条嘟文并重新编辑吗?</string>
<string name="sk_delete_and_redraft">删除重新编辑</string>
<string name="sk_confirm_delete_and_redraft_title">删除并重新编辑帖文</string>
<string name="sk_confirm_delete_and_redraft">确定要删除并重新编辑此帖文吗?</string>
<string name="sk_pin_post">置顶</string>
<string name="sk_confirm_pin_post_title">置顶</string>
<string name="sk_confirm_pin_post">确定要在你的资料页置顶这条嘟文吗?</string>
<string name="sk_pinning">正在置顶文…</string>
<string name="sk_confirm_pin_post_title">置顶</string>
<string name="sk_confirm_pin_post">你确定要在资料页置顶此帖文吗?</string>
<string name="sk_pinning">正在置顶文…</string>
<string name="sk_unpin_post">取消置顶</string>
<string name="sk_confirm_unpin_post_title">取消文置顶</string>
<string name="sk_confirm_unpin_post">确定不再置顶这条嘟文吗?</string>
<string name="sk_confirm_unpin_post_title">取消文置顶</string>
<string name="sk_confirm_unpin_post">你确定不再置顶此帖文吗?</string>
<string name="sk_unpinning">正在取消置顶…</string>
<string name="sk_image_description">图片描述</string>
<string name="sk_visibility_unlisted">不公开</string>
<string name="sk_federated_timeline">联邦时间轴</string>
<string name="sk_federated_timeline_info_banner">是在你的联邦宇宙中最新发布的嘟文。</string>
<string name="sk_federated_timeline_info_banner">些是互联实例中最新发布的帖文。</string>
<string name="sk_app_name">Megalodon</string>
<string name="sk_settings_show_replies">显示回复</string>
<string name="sk_settings_show_boosts">显示转</string>
<string name="sk_settings_load_new_posts">自动加载新</string>
<string name="sk_settings_show_boosts">显示转</string>
<string name="sk_settings_load_new_posts">自动加载新</string>
<string name="sk_settings_show_interaction_counts">显示互动次数</string>
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
<string name="sk_mark_media_as_sensitive">标记为敏感媒体</string>
<string name="sk_user_post_notifications_on">为 %s启用嘟文通知</string>
<string name="sk_user_post_notifications_off">关闭%s的嘟文通知</string>
<string name="sk_user_post_notifications_on">启用 %s 的帖文通知</string>
<string name="sk_user_post_notifications_off">关闭 %s 的帖文通知</string>
<string name="sk_update_available">Megalodon %s 已经可以下载了。</string>
<string name="sk_update_ready">Megalodon %s 已下载,准备安装。</string>
<string name="sk_check_for_update">检查更新</string>
<string name="sk_no_update_available">已经是最新版本</string>
<string name="sk_no_update_available">无可用更新</string>
<string name="sk_list_timelines">列表</string>
<string name="sk_accept_follow_request">接受关注请求</string>
<string name="sk_reject_follow_request">拒绝关注请求</string>
@ -45,31 +45,31 @@
<string name="sk_color_palette_blue"></string>
<string name="sk_color_palette_brown"></string>
<string name="sk_color_palette_yellow"></string>
<string name="sk_notification_type_status"></string>
<string name="sk_notify_posts">文通知</string>
<string name="sk_notification_type_status"></string>
<string name="sk_notify_posts">文通知</string>
<string name="sk_translate_post">翻译</string>
<string name="sk_translate_show_original">显示原文</string>
<string name="sk_poll_allow_multiple">允许多选</string>
<string name="sk_welcome_text">鲨鱼向你致敬!要想开始,请在下面输入你的账户所在实例的域名。</string>
<string name="sk_welcome_text">鲨鱼向你致敬!首先,请在下方输入你所在主实例的域名。</string>
<string name="sk_welcome_title">欢迎!</string>
<string name="sk_clear_recent_languages">清除最近使用的语言</string>
<string name="sk_confirm_clear_recent_languages">确定要清除最近使用的语言吗?</string>
<string name="sk_confirm_clear_recent_languages">确定要清除最近使用的语言吗?</string>
<string name="sk_translated_using">使用 %s 翻译</string>
<string name="sk_post_language">语言: %s</string>
<string name="sk_post_language">语言%s</string>
<string name="sk_available_languages">可用语言</string>
<string name="sk_language_name">%s (%s)</string>
<string name="sk_example_domain">example.social</string>
<string name="sk_tabs_disable_swipe">禁用选项卡之间的滑动</string>
<string name="sk_settings_profile">设置个人资料</string>
<string name="sk_settings_posting">偏好</string>
<string name="sk_settings_posting">偏好</string>
<string name="sk_settings_filters">配置过滤器</string>
<string name="sk_settings_auth">安全设置</string>
<string name="sk_settings_rules">规则</string>
<string name="sk_settings_about">关于应用程序</string>
<string name="sk_settings_about">关于应用</string>
<string name="sk_settings_donate">捐赠</string>
<string name="sk_color_palette_material3">系统</string>
<string name="sk_color_palette_red"></string>
<string name="sk_delete_notification_confirm">确定要删除此通知吗?</string>
<string name="sk_delete_notification_confirm">确定要删除此通知吗?</string>
<string name="sk_enable_delete_notifications">启用删除通知</string>
<string name="sk_delete_notification">删除通知</string>
<string name="sk_delete_notification_confirm_action">删除通知</string>
@ -80,85 +80,85 @@
<string name="sk_settings_translation_availability_note_unavailable">%s 似乎不支持翻译。</string>
<string name="sk_clear_all_notifications">清除所有通知</string>
<string name="sk_clear_all_notifications_confirm_action">删除所有</string>
<string name="sk_clear_all_notifications_confirm">确定要清除所有通知吗?</string>
<string name="sk_loading_fediverse_resource_title">在联邦宇宙上查找</string>
<string name="sk_undo_reblog">撤销转</string>
<string name="sk_reblog_with_visibility">可见性</string>
<string name="sk_quote_post">关于这个嘟</string>
<string name="sk_copy_link_to_post">复制链接到嘟文</string>
<string name="sk_hashtags_you_follow">关注的标签</string>
<string name="sk_clear_all_notifications_confirm">确定要清除所有通知吗?</string>
<string name="sk_loading_fediverse_resource_title">在联邦宇宙上查找</string>
<string name="sk_undo_reblog">撤销转</string>
<string name="sk_reblog_with_visibility">可见性</string>
<string name="sk_quote_post">引用此帖</string>
<string name="sk_copy_link_to_post">复制帖文链接</string>
<string name="sk_hashtags_you_follow">关注的标签</string>
<string name="sk_loading_resource_on_instance_title">在 %s 上查找</string>
<string name="sk_resource_not_found">找不到资源</string>
<string name="sk_open_with_account">另一个帐户打开</string>
<string name="sk_bookmark_as">与其他帐户的书签</string>
<string name="sk_bookmarked_as">标记为 %s</string>
<string name="sk_already_bookmarked">已加入书签</string>
<string name="sk_open_with_account">其它帐户打开</string>
<string name="sk_bookmark_as">用其它帐户加入书签</string>
<string name="sk_bookmarked_as">加入书签为 %s</string>
<string name="sk_already_bookmarked">已加入书签</string>
<string name="sk_favorite_as">用其他账号收藏</string>
<string name="sk_favorited_as">收藏为 %s</string>
<string name="sk_already_favorited">已收藏</string>
<string name="sk_reblog_as">用其他账号转</string>
<string name="sk_reblogged_as">重新登录为 %s</string>
<string name="sk_already_reblogged">重新登录</string>
<string name="sk_favorited_as">收藏为 %s</string>
<string name="sk_already_favorited">已收藏</string>
<string name="sk_reblog_as">用其他账号转</string>
<string name="sk_reblogged_as">已转发为 %s</string>
<string name="sk_already_reblogged">转发过</string>
<string name="sk_reply_as">用其他帐号回复</string>
<string name="sk_settings_uniform_icon_for_notifications">所有通知的统一图标</string>
<string name="sk_unsent_posts">未发送的</string>
<string name="sk_unsent_posts">未发送的</string>
<string name="sk_confirm_delete_draft_title">删除草稿</string>
<string name="sk_draft">草稿</string>
<string name="sk_schedule">预订</string>
<string name="sk_confirm_delete_scheduled_post_title">删除预订嘟</string>
<string name="sk_confirm_delete_scheduled_post">您确定要删除此预定嘟文吗?</string>
<string name="sk_draft_or_schedule">草稿或预订</string>
<string name="sk_compose_draft">文将保存为草稿。</string>
<string name="sk_compose_scheduled">定于</string>
<string name="sk_schedule">定时</string>
<string name="sk_confirm_delete_scheduled_post_title">删除定时帖</string>
<string name="sk_confirm_delete_scheduled_post">你确定要删除此定时帖文吗?</string>
<string name="sk_draft_or_schedule">草稿或定时</string>
<string name="sk_compose_draft">文将保存为草稿。</string>
<string name="sk_compose_scheduled"></string>
<string name="sk_draft_saved">草稿已保存</string>
<string name="sk_post_scheduled">预订嘟文</string>
<string name="sk_post_scheduled">帖文已定时</string>
<string name="sk_forward_report_to">转发给 %s</string>
<string name="sk_confirm_delete_draft">您确定要删除此嘟文草稿吗?</string>
<string name="sk_scheduled_too_soon_title">预定的时间过早</string>
<string name="sk_scheduled_too_soon">嘟文必须预订在未来至少 10 分钟后</string>
<string name="sk_save_draft">保存草稿?</string>
<string name="sk_confirm_delete_draft">你确定要删除此帖文草稿吗?</string>
<string name="sk_scheduled_too_soon_title">定时时间过早</string>
<string name="sk_scheduled_too_soon">帖文只能设置为 10 分钟或更晚发送</string>
<string name="sk_save_draft">保存草稿?</string>
<string name="sk_save_changes">保存更改?</string>
<string name="sk_confirm_save_draft">保存草稿?</string>
<string name="sk_confirm_save_changes">保存更改?</string>
<string name="sk_mark_as_draft">标记为草稿</string>
<string name="sk_schedule_post">预订嘟</string>
<string name="sk_compose_no_schedule">预订</string>
<string name="sk_schedule_post">定时帖</string>
<string name="sk_compose_no_schedule">要定时</string>
<string name="sk_compose_no_draft">不要标记为草稿</string>
<string name="sk_settings_reduce_motion">减少动画中的效果</string>
<string name="sk_schedule_or_draft">预订或草稿</string>
<string name="sk_settings_reduce_motion">减少动画效果</string>
<string name="sk_schedule_or_draft">定时或草稿</string>
<string name="sk_announcements">公告</string>
<string name="sk_mark_as_read">标记为已读</string>
<string name="sk_settings_about_instance">关于实例</string>
<string name="sk_settings_single_notification">只显示一个通知</string>
<string name="sk_settings_single_notification">仅显示单条通知</string>
<string name="sk_create">创建</string>
<string name="sk_create_list_title">创建列表</string>
<string name="sk_list_name_hint">列表名</string>
<string name="sk_list_name_hint">列表名</string>
<string name="sk_list_replies_policy">显示回复</string>
<string name="sk_list_replies_policy_list">成员</string>
<string name="sk_list_replies_policy_followed">关注用户</string>
<string name="sk_list_replies_policy_none">没有</string>
<string name="sk_list_replies_policy_list">成员</string>
<string name="sk_list_replies_policy_followed">关注用户</string>
<string name="sk_list_replies_policy_none"></string>
<string name="sk_delete_list">删除列表</string>
<string name="sk_delete_list_confirm">您确定要删除列表“%s”吗?</string>
<string name="sk_delete_list_confirm">你确定要删除列表 “%s” 吗?</string>
<string name="sk_edit_list_title">编辑列表</string>
<string name="sk_your_lists">你的列表</string>
<string name="sk_timeline_federated">联邦</string>
<string name="sk_recent_searches_placeholder">输入开始搜索</string>
<string name="sk_recent_searches_placeholder">输入开始搜索</string>
<string name="sk_remove_follower">删除关注者</string>
<string name="sk_do_remove_follower">删除</string>
<string name="sk_remove_follower_success">成功删除关注者</string>
<string name="sk_remove_follower_success">成功删除关注者</string>
<string name="sk_changelog">变更日志</string>
<string name="sk_timeline_home">主页</string>
<string name="sk_timeline_local">本站</string>
<string name="sk_alt_text_missing">至少一个附件不包含描述。</string>
<string name="sk_alt_text_missing">至少一个附件不包含描述。</string>
<string name="sk_publish_anyway">仍然发布</string>
<string name="sk_notify_posts_info_banner">如果您为某些人启用嘟文通知,他们的新帖子将显示在这里</string>
<string name="sk_notify_posts_info_banner">如果你为某些人启用了帖文通知,其新帖文将显示在此处</string>
<string name="sk_timelines">时间线</string>
<string name="sk_edit_timelines">编辑时间线</string>
<string name="sk_alt_button">ALT</string>
<string name="sk_post_edited">编辑</string>
<string name="sk_notification_type_update">编辑</string>
<string name="sk_alt_text_missing_title">缺少ALT文字</string>
<string name="sk_timeline_posts"></string>
<string name="sk_notification_type_update">编辑</string>
<string name="sk_alt_text_missing_title">缺少 ALT 文本</string>
<string name="sk_timeline_posts"></string>
<string name="sk_timelines_add">添加</string>
<string name="sk_timeline">时间线</string>
<string name="sk_list">列表</string>
@ -172,7 +172,7 @@
<string name="sk_icon_heart"></string>
<string name="sk_icon_star"></string>
<string name="sk_edit_timeline">编辑时间线</string>
<string name="sk_settings_disable_alt_text_reminder">禁用添加ALT文本的提醒</string>
<string name="sk_settings_disable_alt_text_reminder">禁用添加 ALT 文本的提醒</string>
<string name="sk_icon_city">城市</string>
<string name="sk_icon_cat"></string>
<string name="sk_icon_dog"></string>
@ -223,41 +223,54 @@
<string name="sk_icon_headphones">耳机</string>
<string name="sk_icon_human">人类</string>
<string name="sk_icon_globe">地球</string>
<string name="sk_notify_update">编辑了你转嘟的嘟</string>
<string name="sk_notify_update">编辑已转发帖</string>
<string name="sk_icon_pin">钉子</string>
<string name="sk_remove_follower_confirm">通过屏蔽并立即解除屏蔽以移除%s的关注者身份</string>
<string name="sk_icon_clapper_board">拍板</string>
<string name="sk_icon_math_formula">数学公式</string>
<string name="sk_searching">搜索</string>
<string name="sk_no_results">结果</string>
<string name="sk_no_alt_text">没有可用的ALT文字</string>
<string name="sk_searching">正在搜索…</string>
<string name="sk_no_results">结果</string>
<string name="sk_no_alt_text">无可用的 ALT 文本</string>
<string name="sk_updater_enable_pre_releases">启用预发布</string>
<string name="sk_save_draft_message">要保存对此草稿的更改还是立即发布?</string>
<string name="sk_settings_show_alt_indicator">ALT文本指示器</string>
<string name="sk_settings_show_no_alt_indicator">缺少ALT文本的指示器</string>
<string name="sk_signed_up">注册</string>
<string name="sk_reported"></string>
<string name="sk_save_draft_message">要保存对此草稿的更改还是立即发布?</string>
<string name="sk_settings_show_alt_indicator">ALT 文本指示器</string>
<string name="sk_settings_show_no_alt_indicator">缺少 ALT 文本的指示器</string>
<string name="sk_signed_up">注册</string>
<string name="sk_reported">已举</string>
<string name="sk_inline_local_only">仅限本站</string>
<string name="sk_inline_direct">仅提及</string>
<string name="sk_separator">·</string>
<string name="sk_local_only">仅本地实例</string>
<string name="sk_instance_features">实例特</string>
<string name="sk_instance_features">实例特</string>
<string name="sk_settings_support_local_only">服务器支持仅本地发布</string>
<string name="sk_settings_local_only_explanation">您的家庭实例必须支持仅本地发布才能正常工作。大多数 Mastodon 的修改版本都可以,但 Mastodon 没有</string>
<string name="sk_settings_local_only_explanation">你的主实例必须支持仅本地发布才能正常工作。大多数 Mastodon 的修改版本都支持,但 Mastodon 原版不支持</string>
<string name="sk_settings_glitch_instance">Glitch 本地模式</string>
<string name="sk_settings_glitch_mode_explanation">如果您的主实例在 Glitch 上运行请启用此功能。Hometown 或 Akkoma 不需要。</string>
<string name="sk_settings_glitch_mode_explanation">如果你的主实例运行 Glitch请启用此功能。Hometown 或 Akkoma 不需要启用</string>
<string name="sk_sign_ups">用户注册</string>
<string name="sk_new_reports">新报</string>
<string name="sk_settings_see_new_posts_button">“查看新嘟文”按钮</string>
<string name="sk_new_reports"></string>
<string name="sk_settings_see_new_posts_button">“查看新帖文” 按钮</string>
<string name="sk_settings_server_version">服务器版本: %s</string>
<string name="sk_notify_poll_results">投票结果</string>
<string name="sk_expand">扩增</string>
<string name="sk_expand">展开</string>
<string name="sk_collapse">折叠</string>
<string name="sk_unfinished_attachments">修复附件?</string>
<string name="sk_unfinished_attachments_message">部分附件尚未上传完毕。</string>
<string name="sk_filtered">已过滤: %s</string>
<string name="sk_settings_collapse_long_posts">折叠很长的</string>
<string name="sk_settings_prefix_reply_cw_with_re">在回复带有内容警告的文前加上 \"re:\"</string>
<string name="sk_filtered">已过滤%s</string>
<string name="sk_settings_collapse_long_posts">折叠很长的</string>
<string name="sk_settings_prefix_reply_cw_with_re">在回复带有内容警告的文前加上 \"re:\"</string>
<string name="sk_spectator_mode">旁观模式</string>
<string name="sk_settings_hide_interaction">隐藏互动按钮</string>
<string name="sk_settings_reply_visibility_self">对我的回复</string>
<string name="sk_in_reply">回复</string>
<string name="sk_follow_as">用其它账号关注</string>
<string name="sk_followed_as">已被 %s 关注</string>
<string name="sk_settings_hide_fab">自动隐藏撰写按钮</string>
<string name="sk_quoting_user">引用了 %s</string>
<string name="sk_settings_reply_visibility">回复可见范围</string>
<string name="sk_settings_reply_visibility_all">所有回复</string>
<string name="sk_settings_reply_visibility_following">对正在关注的回复</string>
<string name="sk_notification_action_replied">已向 %s 发送回复</string>
<string name="sk_reply_line_above_avatar">头像上方的 “回复” 一行</string>
<string name="sk_compact_reblog_reply_line">紧凑转发/回复行</string>
<string name="sk_show_thread">显示同主题帖文</string>
</resources>

View File

@ -185,7 +185,7 @@
<string name="category_tech">科技</string>
<string name="confirm_email_title">請檢查您的收件夾</string>
<!-- %s is the email address -->
<string name="confirm_email_subtitle">請點擊我們寄給您連結以驗證 %s。我們將此稍候。</string>
<string name="confirm_email_subtitle">請點擊我們寄給您連結以驗證 %s。我們將此稍候。</string>
<string name="confirm_email_didnt_get">無法取得連結嗎?</string>
<string name="resend">重新發送</string>
<string name="open_email_app">開啟電子郵件 App</string>
@ -270,6 +270,7 @@
<string name="follow_user">跟隨 %s</string>
<string name="unfollowed_user">取消跟隨 %s</string>
<string name="followed_user">您現在開始跟隨 %s</string>
<string name="following_user_requested">要求跟隨 %s</string>
<string name="open_in_browser">在瀏覽器中開啟</string>
<string name="hide_boosts_from_user">隱藏來自 %s 的轉嘟</string>
<string name="show_boosts_from_user">顯示來自 %s 的轉嘟</string>
@ -381,7 +382,7 @@
<string name="welcome_page3_text">不同人基於各式各樣的原因挑選不同的伺服器。art.example 也許對藝術家來說是個好地方glasgow.example 也許對於蘇格蘭人來說是個好選擇。\n\n任何我們推薦的伺服器都是不錯的選擇或著您也能從搜尋欄中輸入您自己的伺服器您不會錯過任何來自聯邦宇宙角落的嘟嘟聲。</string>
<string name="signup_random_server_explain">如果您不選擇而繼續的話,我們將透過您的語言設定替您選擇一台伺服器。</string>
<string name="server_filter_any_language">任何語言</string>
<string name="server_filter_instant_signup">馬上註冊</string>
<string name="server_filter_instant_signup">立即註冊</string>
<string name="server_filter_manual_review">手動審核</string>
<string name="server_filter_any_signup_speed">任何註冊速度</string>
<string name="server_filter_region_europe">歐洲</string>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="text_max_height">220dp</dimen>
<dimen name="text_collapsed_height">150dp</dimen>
<dimen name="text_collapsed_height">145dp</dimen>
<dimen name="layout_max_width">450dp</dimen>
</resources>

View File

@ -272,4 +272,5 @@
<string name="sk_reply_line_above_avatar">“In reply to” line above avatar</string>
<string name="sk_show_thread">Show thread</string>
<string name="sk_compact_reblog_reply_line">Compact reblog/reply line</string>
<string name="sk_settings_confirm_before_reblog">Confirm before reblogging</string>
</resources>

View File

@ -0,0 +1,17 @@
Megalodon is a modified version of the <a href="https://github.com/mastodon/mastodon-android">official Mastodon Android app</a> adding important features that are missing in the official app, such as the federated timeline, unlisted posting, bookmarks and an image description viewer.
<b>Key features</b>
- <b>Unlisted posting</b>: Post publicly without having your post show up in trends, hashtags or public timelines.
- <b>Federated timeline</b>: See all public posts from people on all other Fediverse neighborhoods your home instance is connected to.
- <b>Image description viewer</b>: Quickly check whether an image or video has an alt text attached to it.
- <b>Pinning posts</b>: Pin your most important posts to your profile and see what others have pinned using the “Pinned“ tab.
- <b>Bookmarks</b>: Quickly save posts and find them later in the Bookmarks list.
- <b>Follow hashtags</b>: See new posts from specific hashtags directly in your home timeline by following them.
- <b>Answering follow requests</b>: Accept or decline follow requests from your notifications or the dedicated Follow requests list.
- <b>Delete and re-draft</b>: The much-loved feature that made editing possible without an actual editing function.
<b>Unreleased official features, available in advance</b>
- Editing posts
- Integrated updater for GitHub releases

View File

@ -0,0 +1 @@
Mastodon for Android but it's pink and has more features

View File

@ -0,0 +1,17 @@
Megalodon is a modified version of the <a href="https://github.com/mastodon/mastodon-android">official Mastodon Android app</a> adding important features that are missing in the official app, such as the federated timeline, unlisted posting, bookmarks and an image description viewer.
<b>Key features</b>
- <b>Unlisted posting</b>: Post publicly without having your post show up in trends, hashtags or public timelines.
- <b>Federated timeline</b>: See all public posts from people on all other Fediverse neighborhoods your home instance is connected to.
- <b>Image description viewer</b>: Quickly check whether an image or video has an alt text attached to it.
- <b>Pinning posts</b>: Pin your most important posts to your profile and see what others have pinned using the “Pinned“ tab.
- <b>Bookmarks</b>: Quickly save posts and find them later in the Bookmarks list.
- <b>Follow hashtags</b>: See new posts from specific hashtags directly in your home timeline by following them.
- <b>Answering follow requests</b>: Accept or decline follow requests from your notifications or the dedicated Follow requests list.
- <b>Delete and re-draft</b>: The much-loved feature that made editing possible without an actual editing function.
<b>Unreleased official features, available in advance</b>
- Editing posts
- Integrated updater for GitHub releases

View File

@ -0,0 +1 @@
Mastodon for Android but it's pink and has more features

View File

@ -0,0 +1,17 @@
Megalodon is a modified version of the <a href="https://github.com/mastodon/mastodon-android">official Mastodon Android app</a> adding important features that are missing in the official app, such as the federated timeline, unlisted posting, bookmarks and an image description viewer.
<b>Key features</b>
- <b>Unlisted posting</b>: Post publicly without having your post show up in trends, hashtags or public timelines.
- <b>Federated timeline</b>: See all public posts from people on all other Fediverse neighborhoods your home instance is connected to.
- <b>Image description viewer</b>: Quickly check whether an image or video has an alt text attached to it.
- <b>Pinning posts</b>: Pin your most important posts to your profile and see what others have pinned using the “Pinned“ tab.
- <b>Bookmarks</b>: Quickly save posts and find them later in the Bookmarks list.
- <b>Follow hashtags</b>: See new posts from specific hashtags directly in your home timeline by following them.
- <b>Answering follow requests</b>: Accept or decline follow requests from your notifications or the dedicated Follow requests list.
- <b>Delete and re-draft</b>: The much-loved feature that made editing possible without an actual editing function.
<b>Unreleased official features, available in advance</b>
- Editing posts
- Integrated updater for GitHub releases

View File

@ -0,0 +1 @@
Mastodon for Android but it's pink and has more features

View File

@ -0,0 +1,17 @@
Megalodon is a modified version of the <a href="https://github.com/mastodon/mastodon-android">official Mastodon Android app</a> adding important features that are missing in the official app, such as the federated timeline, unlisted posting, bookmarks and an image description viewer.
<b>Key features</b>
- <b>Unlisted posting</b>: Post publicly without having your post show up in trends, hashtags or public timelines.
- <b>Federated timeline</b>: See all public posts from people on all other Fediverse neighborhoods your home instance is connected to.
- <b>Image description viewer</b>: Quickly check whether an image or video has an alt text attached to it.
- <b>Pinning posts</b>: Pin your most important posts to your profile and see what others have pinned using the “Pinned“ tab.
- <b>Bookmarks</b>: Quickly save posts and find them later in the Bookmarks list.
- <b>Follow hashtags</b>: See new posts from specific hashtags directly in your home timeline by following them.
- <b>Answering follow requests</b>: Accept or decline follow requests from your notifications or the dedicated Follow requests list.
- <b>Delete and re-draft</b>: The much-loved feature that made editing possible without an actual editing function.
<b>Unreleased official features, available in advance</b>
- Editing posts
- Integrated updater for GitHub releases

View File

@ -0,0 +1 @@
Mastodon for Android but it's pink and has more features