Compare commits
199 Commits
2.3.0+fork
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f1f04375f6 | ||
|
|
b56a922c65 | ||
|
|
732a0f9b4c | ||
|
|
889762f667 | ||
|
|
baf9536145 | ||
|
|
b8b8287f8f | ||
|
|
fb6b9a9bed | ||
|
|
bf288f82f4 | ||
|
|
41a7ca5487 | ||
|
|
78219038bd | ||
|
|
6671253b05 | ||
|
|
18a827708c | ||
|
|
b2b0182e04 | ||
|
|
499d425e68 | ||
|
|
026f32b03c | ||
|
|
6b4f114e06 | ||
|
|
7b64d49084 | ||
|
|
ad1bc22c6a | ||
|
|
8f571e7d74 | ||
|
|
eb10544960 | ||
|
|
7190b61b94 | ||
|
|
8f9f58a0e9 | ||
|
|
f29598374c | ||
|
|
c7f6975d4f | ||
|
|
750456820a | ||
|
|
42f29291b4 | ||
|
|
9b7a64d5aa | ||
|
|
3d0392db70 | ||
|
|
08f559e70a | ||
|
|
3d9379a4c0 | ||
|
|
0da5188900 | ||
|
|
3932b9dc11 | ||
|
|
6776f1fb55 | ||
|
|
f25d731b42 | ||
|
|
6dde25009d | ||
|
|
087c5c1993 | ||
|
|
6f1a3e02b0 | ||
|
|
9e7f3a3b2c | ||
|
|
c678a37f95 | ||
|
|
eb451736e9 | ||
|
|
77687cfb4e | ||
|
|
bdec03514a | ||
|
|
2f16e06750 | ||
|
|
ab2256f90c | ||
|
|
abe40c08db | ||
|
|
2a7e8bac2d | ||
|
|
a8da796956 | ||
|
|
0de346c1bc | ||
|
|
8598dc2608 | ||
|
|
ab72435347 | ||
|
|
d5f6852bdc | ||
|
|
36f96c1ed6 | ||
|
|
058fb62253 | ||
|
|
bc43e2180f | ||
|
|
c1e96d4ff0 | ||
|
|
42a060e8a6 | ||
|
|
065db923cc | ||
|
|
0089a10a81 | ||
|
|
c6d4436467 | ||
|
|
98d58c35dc | ||
|
|
3f7c0417c2 | ||
|
|
64dcb8b387 | ||
|
|
4145b6451b | ||
|
|
188b3fade7 | ||
|
|
87800a696a | ||
|
|
f51891f64c | ||
|
|
45c822c48d | ||
|
|
a1eae5a1a1 | ||
|
|
73926e0ac1 | ||
|
|
00333604c9 | ||
|
|
8aa9e99e91 | ||
|
|
5159e8fbda | ||
|
|
6cf3253d40 | ||
|
|
b769bf5ee4 | ||
|
|
7adb3c7b39 | ||
|
|
4f33194884 | ||
|
|
bfaa6e12a7 | ||
|
|
e48143585e | ||
|
|
3f60beb999 | ||
|
|
a952a17a18 | ||
|
|
ae966cc784 | ||
|
|
5b684bd9b3 | ||
|
|
251a518e56 | ||
|
|
0156f8a732 | ||
|
|
20464001b8 | ||
|
|
2d4f3b9a88 | ||
|
|
66afd9d091 | ||
|
|
69562fa3e4 | ||
|
|
9e2839c0ae | ||
|
|
f1b9f110d2 | ||
|
|
94cb110f99 | ||
|
|
07a29564d5 | ||
|
|
015d416773 | ||
|
|
2fea6a2934 | ||
|
|
3af59de797 | ||
|
|
543f7ab30a | ||
|
|
dacc32dcaa | ||
|
|
45568f600a | ||
|
|
df96e6af31 | ||
|
|
c7b58a0982 | ||
|
|
463933b19a | ||
|
|
53f3a42588 | ||
|
|
9338fbc246 | ||
|
|
54d074839c | ||
|
|
0424dcd6ca | ||
|
|
dedd1a7b70 | ||
|
|
7684b6705c | ||
|
|
86d01cbb97 | ||
|
|
3ca18ed38b | ||
|
|
5a5c2fbc69 | ||
|
|
4bbeb4f198 | ||
|
|
2133ca7188 | ||
|
|
33a71e1c46 | ||
|
|
0cba8f30a6 | ||
|
|
0241628cf5 | ||
|
|
a4bac9c100 | ||
|
|
915bd41b71 | ||
|
|
32c3b81ec3 | ||
|
|
fad20394ff | ||
|
|
fba279f43e | ||
|
|
a8fd78b1a8 | ||
|
|
19390221ec | ||
|
|
ab47192b2c | ||
|
|
e9c01a5452 | ||
|
|
bc45072542 | ||
|
|
e24bfb0448 | ||
|
|
673ada4782 | ||
|
|
ee02634036 | ||
|
|
1c42b9a4e7 | ||
|
|
3bd855ed1e | ||
|
|
fba7650918 | ||
|
|
c3b2e9fdc2 | ||
|
|
b957f3500b | ||
|
|
51bf3416bf | ||
|
|
8bdbde0ea6 | ||
|
|
c50aecdd05 | ||
|
|
f4ffd4718e | ||
|
|
6d83453f96 | ||
|
|
69dbf38e1e | ||
|
|
a03297313a | ||
|
|
b52f1c156d | ||
|
|
28097554a7 | ||
|
|
5984783831 | ||
|
|
5299cda1ad | ||
|
|
65c8906b2a | ||
|
|
86e7e7cdc6 | ||
|
|
fe7f9f14c3 | ||
|
|
1bbfc45bd0 | ||
|
|
0b5588515e | ||
|
|
2cdc649b7d | ||
|
|
4e1f7839b3 | ||
|
|
281e989749 | ||
|
|
7cd756f6b0 | ||
|
|
cc4558458c | ||
|
|
66824aadb9 | ||
|
|
00e90e5f21 | ||
|
|
376653cb3f | ||
|
|
082de410e0 | ||
|
|
899f48b40c | ||
|
|
ed5c58b4ea | ||
|
|
cbab92ed87 | ||
|
|
bd6f739842 | ||
|
|
e336f15cb0 | ||
|
|
a554059cce | ||
|
|
f016b87ea0 | ||
|
|
9426a9bc59 | ||
|
|
f146067cda | ||
|
|
f28e06d2f5 | ||
|
|
87cbffcb06 | ||
|
|
7a103046b4 | ||
|
|
64c53be990 | ||
|
|
e419c504e4 | ||
|
|
1f06e4e8f3 | ||
|
|
b0f8cbb2e3 | ||
|
|
e3df5ce0a8 | ||
|
|
fcf7665ab5 | ||
|
|
407844378f | ||
|
|
c834199ee4 | ||
|
|
893b88350a | ||
|
|
96b992025b | ||
|
|
cd7c546bed | ||
|
|
6a46815809 | ||
|
|
5d411e842e | ||
|
|
309d27242d | ||
|
|
5f78cd4a8e | ||
|
|
1ad2257bb1 | ||
|
|
3266a490be | ||
|
|
86b6adf228 | ||
|
|
2856e99569 | ||
|
|
684164903a | ||
|
|
2dfb79c828 | ||
|
|
86f54f5a02 | ||
|
|
3593d8d80f | ||
|
|
454660fe89 | ||
|
|
325eda58cb | ||
|
|
0e96e23cfa | ||
|
|
2892a31c72 | ||
|
|
c8bb0de7d4 | ||
|
|
53e8c0d2f4 |
16
.github/workflows/mirror-to-codeberg.yml
vendored
Normal file
16
.github/workflows/mirror-to-codeberg.yml
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
name: Mirror to Codeberg
|
||||
|
||||
on: [push]
|
||||
jobs:
|
||||
sync-git:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: yesolutions/mirror-action@master
|
||||
with:
|
||||
REMOTE: 'https://codeberg.org/LucasGGamerM/moshidon.git'
|
||||
GIT_USERNAME: LucasGGamerM
|
||||
GIT_PASSWORD: ${{ secrets.CODEBERG_GIT_PASSWORD }}
|
||||
2
.github/workflows/nightly-builds.yml
vendored
2
.github/workflows/nightly-builds.yml
vendored
@@ -65,7 +65,7 @@ jobs:
|
||||
CURRENT_DATE: ${{ steps.date.outputs.date }}
|
||||
|
||||
- name: Upload a Build Artifact
|
||||
uses: actions/upload-artifact@v3.1.2
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: moshidon-nightly.apk
|
||||
path: ./mastodon/build/outputs/apk/nightly/moshidon-nightly.apk
|
||||
|
||||
57
CSAE-POLICY.md
Normal file
57
CSAE-POLICY.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# CSAE Policy
|
||||
## "Moshidon" CSAE Policy
|
||||
> CSAE refers to child sexual abuse and exploitation, including content or behavior that sexually exploits, abuses, or endangers children. This includes, for example, grooming a child for sexual exploitation, sextorting a child, trafficking of a child for sex, or otherwise sexually exploiting a child. – Google Child Safety Standards Policy
|
||||
|
||||
## Posting or linking to CSAE
|
||||
|
||||
“Moshidon” allows you to create posts on your account’s server.
|
||||
|
||||
Using the application to post or link to CSAE is strictly prohibited.
|
||||
|
||||
## Reporting accounts posting or linking to CSAE
|
||||
#### If you suspect a child is in immediate danger in any way, contact the police immediately.
|
||||
|
||||
If you see an account posting CSAE you can report it to your server’s moderators for further action.
|
||||
|
||||
Reporting an account is a four step process.
|
||||
|
||||
### 1. Start the report
|
||||
Tap the “…” button at the bottom of any post from the account to show the per-post menu
|
||||
|
||||

|
||||
|
||||
Choose “Report” from the per-post menu.
|
||||
|
||||
### 2. Fill in appropriate server rule breakage information
|
||||
|
||||

|
||||
|
||||
### 3. Optionally, include additional posts
|
||||
Choose one or more posts to report.
|
||||
|
||||
The post you chose at the previous step is automatically selected.
|
||||
|
||||

|
||||
|
||||
Tap the “Continue” button when you have finished selecting posts.
|
||||
|
||||
### 4. Finalise the report
|
||||
Enter any additional information in the space provided.
|
||||
|
||||

|
||||
|
||||
Finalising the report
|
||||
|
||||
Tap the “Report” button.
|
||||
|
||||
The report will be sent to your server’s moderation team for action according to their published policies.
|
||||
|
||||
## Additional reporting
|
||||
You may also want to report to the relevant organisations in your jurisdiction.
|
||||
|
||||
Google maintains a list of organisations to report CSAE organised by country.
|
||||
|
||||
If your country is not listed there it may be listed at INHOPE.
|
||||
|
||||
## Contact
|
||||
If you have any questions about this CSAE policy please contact moshidon.app@gmail.com.
|
||||
@@ -103,7 +103,9 @@ This project is released under the [GPL-3 License](./LICENSE).
|
||||
|
||||
[Official Matrix Chatroom](https://matrix.to/#/#moshidon:floss.social)
|
||||
|
||||
[F.A.Q](FAQ.md)
|
||||
[F.A.Q.](FAQ.md)
|
||||
|
||||
[Moshidon's CSAE policy](CSAE-POLICY.md)
|
||||
|
||||
[Moshidon Roadmap](https://github.com/users/LucasGGamerM/projects/1)
|
||||
|
||||
|
||||
BIN
img/CSAE-POLICY/step1.png
Normal file
BIN
img/CSAE-POLICY/step1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 97 KiB |
BIN
img/CSAE-POLICY/step2.png
Normal file
BIN
img/CSAE-POLICY/step2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 119 KiB |
BIN
img/CSAE-POLICY/step3.png
Normal file
BIN
img/CSAE-POLICY/step3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 121 KiB |
BIN
img/CSAE-POLICY/step4.png
Normal file
BIN
img/CSAE-POLICY/step4.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 68 KiB |
@@ -16,12 +16,19 @@ android {
|
||||
applicationId "org.joinmastodon.android.moshinda"
|
||||
minSdk 23
|
||||
targetSdk 34
|
||||
versionCode 108
|
||||
versionName "2.3.0+fork.108.moshinda"
|
||||
versionCode 109
|
||||
versionName "2.3.0+fork.109.moshinda"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
resourceConfigurations += ['ar-rSA', 'ar-rDZ', 'be-rBY', 'bn-rBD', 'bs-rBA', 'ca-rES', 'cs-rCZ', 'da-rDK', 'de-rDE', 'el-rGR', 'es-rES', 'eu-rES', 'fa-rIR', 'fi-rFI', 'fil-rPH', 'fr-rFR', 'ga-rIE', 'gd-rGB', 'gl-rES', 'hi-rIN', 'hr-rHR', 'hu-rHU', 'hy-rAM', 'ig-rNG', 'in-rID', 'is-rIS', 'it-rIT', 'iw-rIL', 'ja-rJP', 'kab', 'ko-rKR', 'my-rMM', 'nl-rNL', 'no-rNO', 'oc-rFR', 'pl-rPL', 'pt-rBR', 'pt-rPT', 'ro-rRO', 'ru-rRU', 'si-rLK', 'sl-rSI', 'sv-rSE', 'th-rTH', 'tr-rTR', 'uk-rUA', 'ur-rIN', 'vi-rVN', 'zh-rCN', 'zh-rTW']
|
||||
}
|
||||
|
||||
dependenciesInfo {
|
||||
// Disables dependency metadata when building APKs.
|
||||
includeInApk = false
|
||||
// Disables dependency metadata when building Android App Bundles.
|
||||
includeInBundle = false
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
nightly{
|
||||
storeFile = file("keystore/nightly_keystore.jks")
|
||||
@@ -108,6 +115,7 @@ android {
|
||||
}
|
||||
fdroidRelease {
|
||||
initWith release
|
||||
vcsInfo.include true
|
||||
// The F-droid build system doesn't like this at all for some reason.
|
||||
// versionNameSuffix '-fdroid'
|
||||
// signingConfig signingConfigs.release
|
||||
@@ -156,7 +164,7 @@ dependencies {
|
||||
implementation 'com.github.bottom-software-foundation:bottom-java:2.1.0'
|
||||
annotationProcessor 'org.parceler:parceler:1.1.12'
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
|
||||
implementation 'com.github.UnifiedPush:android-connector:2.1.1'
|
||||
implementation 'org.unifiedpush.android:connector:3.0.7'
|
||||
|
||||
androidTestImplementation 'androidx.test:core:1.5.0'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
|
||||
|
||||
3
mastodon/proguard-rules.pro
vendored
3
mastodon/proguard-rules.pro
vendored
@@ -33,6 +33,9 @@
|
||||
# i don't know how proguard works
|
||||
-keep class org.joinmastodon.android.** { *; }
|
||||
|
||||
# i still don't know how proguard works
|
||||
-dontwarn android.app.BroadcastOptions
|
||||
|
||||
# Keep all enums for debugging purposes
|
||||
-keepnames public enum * {
|
||||
*;
|
||||
|
||||
@@ -17,8 +17,7 @@ brainsoap.net
|
||||
breastmilk.club
|
||||
brighteon.social
|
||||
cachapa.xyz
|
||||
canary.fedinuke.example.com
|
||||
catgirl.life
|
||||
caekis.love
|
||||
cawfee.club
|
||||
childlove.su
|
||||
clew.lol
|
||||
@@ -34,6 +33,7 @@ decayable.ink
|
||||
dembased.xyz
|
||||
detroitriotcity.com
|
||||
djsumdog.com
|
||||
drinkanddrive.africa
|
||||
eientei.org
|
||||
eveningzoo.club
|
||||
fluf.club
|
||||
@@ -50,7 +50,7 @@ geofront.rocks
|
||||
gleasonator.com
|
||||
glee.li
|
||||
glindr.org
|
||||
goyim.app
|
||||
goyim.social
|
||||
h5q.net
|
||||
haeder.net
|
||||
handholding.io
|
||||
@@ -78,7 +78,6 @@ morale.ch
|
||||
mouse.services
|
||||
mugicha.club
|
||||
narrativerry.xyz
|
||||
natehiggers.online
|
||||
nationalist.social
|
||||
needs.vodka
|
||||
neenster.org
|
||||
@@ -86,14 +85,13 @@ nicecrew.digital
|
||||
nightshift.social
|
||||
nnia.space
|
||||
noagendasocial.com
|
||||
noagendasocial.nl
|
||||
noagendatube.com
|
||||
noauthority.social
|
||||
nobodyhasthe.biz
|
||||
norwoodzero.net
|
||||
nyanide.com
|
||||
onionfarms.org
|
||||
parcero.bond
|
||||
parcero.casa
|
||||
pawlicker.com
|
||||
pawoo.net
|
||||
pedo.school
|
||||
@@ -138,10 +136,10 @@ sonichu.com
|
||||
spinster.xyz
|
||||
springbo.cc
|
||||
strelizia.net
|
||||
subs4social.xyz
|
||||
taihou.website
|
||||
tastingtraffic.net
|
||||
teci.world
|
||||
theapex.social
|
||||
theblab.org
|
||||
thechimp.zone
|
||||
thenobody.club
|
||||
@@ -152,7 +150,6 @@ truthsocial.co.in
|
||||
usualsuspects.lol
|
||||
vampiremaid.cafe
|
||||
varishangout.net
|
||||
vtuberfan.social
|
||||
wolfgirl.bar
|
||||
xn--p1abe3d.xn--80asehdb
|
||||
yggdrasil.social
|
||||
|
||||
@@ -81,6 +81,7 @@ public class GlobalUserPreferences{
|
||||
public static boolean showPostsWithoutAlt;
|
||||
public static boolean showMediaPreview;
|
||||
public static boolean removeTrackingParams;
|
||||
public static boolean enhanceTextSize;
|
||||
|
||||
public static SharedPreferences getPrefs(){
|
||||
return MastodonApp.context.getSharedPreferences("global", Context.MODE_PRIVATE);
|
||||
@@ -162,10 +163,10 @@ public class GlobalUserPreferences{
|
||||
showPostsWithoutAlt=prefs.getBoolean("showPostsWithoutAlt", true);
|
||||
showMediaPreview=prefs.getBoolean("showMediaPreview", true);
|
||||
removeTrackingParams=prefs.getBoolean("removeTrackingParams", true);
|
||||
enhanceTextSize=prefs.getBoolean("enhanceTextSize", false);
|
||||
|
||||
theme=ThemePreference.values()[prefs.getInt("theme", 0)];
|
||||
|
||||
|
||||
if (prefs.contains("prefixRepliesWithRe")) {
|
||||
prefixReplies = prefs.getBoolean("prefixRepliesWithRe", false)
|
||||
? PrefixRepliesMode.TO_OTHERS : PrefixRepliesMode.NEVER;
|
||||
@@ -237,6 +238,7 @@ public class GlobalUserPreferences{
|
||||
.putBoolean("showPostsWithoutAlt", showPostsWithoutAlt)
|
||||
.putBoolean("showMediaPreview", showMediaPreview)
|
||||
.putBoolean("removeTrackingParams", removeTrackingParams)
|
||||
.putBoolean("enhanceTextSize", enhanceTextSize)
|
||||
|
||||
.apply();
|
||||
}
|
||||
|
||||
@@ -7,8 +7,10 @@ import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.app.Fragment;
|
||||
import android.app.assist.AssistContent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Bitmap;
|
||||
import android.net.Uri;
|
||||
import android.net.Uri;
|
||||
@@ -16,7 +18,9 @@ import android.os.BadParcelableException;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.MediaStore;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.Toast;
|
||||
@@ -338,4 +342,20 @@ public class MainActivity extends FragmentStackActivity implements ProvidesAssis
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attachBaseContext(Context base) {
|
||||
if (!GlobalUserPreferences.enhanceTextSize) {
|
||||
super.attachBaseContext(base);
|
||||
return;
|
||||
}
|
||||
|
||||
final Configuration override = new Configuration(base.getResources().getConfiguration());
|
||||
|
||||
// This is the font multiplier, which should be multiplied by, because the system settings also play a role here
|
||||
override.fontScale *= 1.15f;
|
||||
final Context newBase = base.createConfigurationContext(override);
|
||||
|
||||
super.attachBaseContext(newBase);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import android.content.Context;
|
||||
import android.webkit.WebView;
|
||||
|
||||
import org.joinmastodon.android.api.PushSubscriptionManager;
|
||||
import org.joinmastodon.android.utils.UnifiedPushHelper;
|
||||
|
||||
import me.grishka.appkit.imageloader.ImageCache;
|
||||
import me.grishka.appkit.utils.NetworkUtils;
|
||||
@@ -27,7 +28,11 @@ public class MastodonApp extends Application{
|
||||
ImageCache.setParams(params);
|
||||
NetworkUtils.setUserAgent("MoshidonAndroid/"+BuildConfig.VERSION_NAME);
|
||||
|
||||
PushSubscriptionManager.tryRegisterFCM();
|
||||
if (UnifiedPushHelper.isUnifiedPushEnabled(this)){
|
||||
UnifiedPushHelper.registerAllAccounts(this);
|
||||
} else {
|
||||
PushSubscriptionManager.tryRegisterFCM();
|
||||
}
|
||||
GlobalUserPreferences.load();
|
||||
if(BuildConfig.DEBUG){
|
||||
WebView.setWebContentsDebuggingEnabled(true);
|
||||
|
||||
@@ -163,7 +163,7 @@ public class PushNotificationReceiver extends BroadcastReceiver{
|
||||
PushNotificationReceiver.this.notify(context, PushNotification.fromNotification(context, account, notification), account.getID(), notification);
|
||||
}
|
||||
|
||||
private void notify(Context context, PushNotification pn, String accountID, org.joinmastodon.android.model.Notification notification){
|
||||
void notify(Context context, PushNotification pn, String accountID, org.joinmastodon.android.model.Notification notification){
|
||||
NotificationManager nm=context.getSystemService(NotificationManager.class);
|
||||
AccountSession session=AccountSessionManager.get(accountID);
|
||||
Account self=session.self;
|
||||
|
||||
@@ -5,14 +5,22 @@ import android.util.Log;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.joinmastodon.android.api.MastodonAPIController;
|
||||
import org.joinmastodon.android.api.requests.notifications.GetNotificationByID;
|
||||
import org.joinmastodon.android.api.session.AccountSession;
|
||||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
||||
import org.joinmastodon.android.model.Notification;
|
||||
import org.joinmastodon.android.model.PaginatedResponse;
|
||||
import org.joinmastodon.android.model.PushNotification;
|
||||
import org.unifiedpush.android.connector.FailedReason;
|
||||
import org.unifiedpush.android.connector.MessagingReceiver;
|
||||
import org.unifiedpush.android.connector.data.PublicKeySet;
|
||||
import org.unifiedpush.android.connector.data.PushEndpoint;
|
||||
import org.unifiedpush.android.connector.data.PushMessage;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
import kotlin.text.Charsets;
|
||||
import me.grishka.appkit.api.Callback;
|
||||
import me.grishka.appkit.api.ErrorResponse;
|
||||
|
||||
@@ -24,16 +32,23 @@ public class UnifiedPushNotificationReceiver extends MessagingReceiver{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNewEndpoint(@NotNull Context context, @NotNull String endpoint, @NotNull String instance) {
|
||||
public void onNewEndpoint(@NotNull Context context, @NotNull PushEndpoint endpoint, @NotNull String instance) {
|
||||
// Called when a new endpoint be used for sending push messages
|
||||
Log.d(TAG, "onNewEndpoint: New Endpoint " + endpoint + " for "+ instance);
|
||||
Log.d(TAG, "onNewEndpoint: New Endpoint " + endpoint.getUrl() + " for "+ instance);
|
||||
AccountSession account = AccountSessionManager.getInstance().tryGetAccount(instance);
|
||||
if (account != null)
|
||||
account.getPushSubscriptionManager().registerAccountForPush(null, endpoint);
|
||||
if (account != null) {
|
||||
PublicKeySet ks = endpoint.getPubKeySet();
|
||||
if (ks != null){
|
||||
account.getPushSubscriptionManager().registerAccountForPush(account.pushSubscription, true, endpoint.getUrl(), ks.getPubKey(), ks.getAuth());
|
||||
} else {
|
||||
// ks should never be null on new endpoint
|
||||
account.getPushSubscriptionManager().registerAccountForPush(account.pushSubscription, endpoint.getUrl());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRegistrationFailed(@NotNull Context context, @NotNull String instance) {
|
||||
public void onRegistrationFailed(@NotNull Context context, @NotNull FailedReason reason, @NotNull String instance) {
|
||||
// called when the registration is not possible, eg. no network
|
||||
Log.d(TAG, "onRegistrationFailed: " + instance);
|
||||
//re-register for gcm
|
||||
@@ -53,26 +68,46 @@ public class UnifiedPushNotificationReceiver extends MessagingReceiver{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMessage(@NotNull Context context, @NotNull byte[] message, @NotNull String instance) {
|
||||
public void onMessage(@NotNull Context context, @NotNull PushMessage message, @NotNull String instance) {
|
||||
Log.d(TAG, "New message for " + instance);
|
||||
// Called when a new message is received. The message contains the full POST body of the push message
|
||||
AccountSession account = AccountSessionManager.getInstance().tryGetAccount(instance);
|
||||
|
||||
if (account == null)
|
||||
return;
|
||||
|
||||
//this is stupid
|
||||
// Mastodon stores the info to decrypt the message in the HTTP headers, which are not accessible in UnifiedPush,
|
||||
// thus it is not possible to decrypt them. SO we need to re-request them from the server and transform them later on
|
||||
// The official uses fcm and moves the headers to extra data, see
|
||||
// https://github.com/mastodon/webpush-fcm-relay/blob/cac95b28d5364b0204f629283141ac3fb749e0c5/webpush-fcm-relay.go#L116
|
||||
// https://github.com/tuskyapp/Tusky/pull/2303#issue-1112080540
|
||||
if (message.getDecrypted()) {
|
||||
// If the mastodon server supports the standard webpush, we can directly use the content
|
||||
Log.d(TAG, "Push message correctly decrypted");
|
||||
PushNotification pn = MastodonAPIController.gson.fromJson(new String(message.getContent(), Charsets.UTF_8), PushNotification.class);
|
||||
new GetNotificationByID(pn.notificationId)
|
||||
.setCallback(new Callback<>(){
|
||||
@Override
|
||||
public void onSuccess(org.joinmastodon.android.model.Notification result){
|
||||
MastodonAPIController.runInBackground(()->new PushNotificationReceiver().notify(context, pn, instance, result));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(ErrorResponse error){
|
||||
MastodonAPIController.runInBackground(()-> new PushNotificationReceiver().notify(context, pn, instance, null));
|
||||
}
|
||||
})
|
||||
.exec(instance);
|
||||
} else {
|
||||
// else, we have to sync with the server
|
||||
Log.d(TAG, "Server doesn't support standard webpush, fetching one notification");
|
||||
fetchOneNotification(context, account, (notif) -> () -> new PushNotificationReceiver().notifyUnifiedPush(context, account, notif));
|
||||
}
|
||||
}
|
||||
|
||||
private void fetchOneNotification(@NotNull Context context, @NotNull AccountSession account, @NotNull Function<Notification, Runnable> callback) {
|
||||
account.getCacheController().getNotifications(null, 1, false, false, true, new Callback<>(){
|
||||
@Override
|
||||
public void onSuccess(PaginatedResponse<List<Notification>> result){
|
||||
result.items
|
||||
.stream()
|
||||
.findFirst()
|
||||
.ifPresent(value->MastodonAPIController.runInBackground(()->new PushNotificationReceiver().notifyUnifiedPush(context, account, value)));
|
||||
.ifPresent(value->MastodonAPIController.runInBackground(callback.apply(value)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -37,6 +37,8 @@ import okhttp3.Response;
|
||||
public abstract class MastodonAPIRequest<T> extends APIRequest<T>{
|
||||
private static final String TAG="MastodonAPIRequest";
|
||||
|
||||
private static MastodonAPIController unauthenticatedApiController=new MastodonAPIController(null);
|
||||
|
||||
private String domain;
|
||||
private AccountSession account;
|
||||
private String path;
|
||||
@@ -95,14 +97,14 @@ public abstract class MastodonAPIRequest<T> extends APIRequest<T>{
|
||||
|
||||
public MastodonAPIRequest<T> execNoAuth(String domain){
|
||||
this.domain=domain;
|
||||
AccountSessionManager.getInstance().getUnauthenticatedApiController().submitRequest(this);
|
||||
unauthenticatedApiController.submitRequest(this);
|
||||
return this;
|
||||
}
|
||||
|
||||
public MastodonAPIRequest<T> exec(String domain, Token token){
|
||||
this.domain=domain;
|
||||
this.token=token;
|
||||
AccountSessionManager.getInstance().getUnauthenticatedApiController().submitRequest(this);
|
||||
unauthenticatedApiController.submitRequest(this);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@@ -166,12 +166,23 @@ public class PushSubscriptionManager{
|
||||
|
||||
//work-around for adding the randomAccountId
|
||||
String newEndpoint = endpoint;
|
||||
if (endpoint.startsWith("https://app.joinmastodon.org/relay-to/fcm/"))
|
||||
newEndpoint += pushAccountID;
|
||||
Boolean standard = true;
|
||||
if (endpoint.startsWith("https://app.joinmastodon.org/relay-to/fcm/")){
|
||||
newEndpoint+=pushAccountID;
|
||||
standard = false;
|
||||
}
|
||||
|
||||
new RegisterForPushNotifications(newEndpoint,
|
||||
encodedPublicKey,
|
||||
encodedAuthKey,
|
||||
registerAccountForPush(subscription, standard, newEndpoint, encodedPublicKey, encodedAuthKey);
|
||||
});
|
||||
}
|
||||
|
||||
public void registerAccountForPush(PushSubscription subscription, Boolean standard, String endpoint, String p256dh, String auth){
|
||||
MastodonAPIController.runInBackground(()->{
|
||||
Log.d(TAG, "registerAccountForPush: started for "+accountID);
|
||||
new RegisterForPushNotifications(endpoint,
|
||||
standard,
|
||||
p256dh,
|
||||
auth,
|
||||
subscription==null ? PushSubscription.Alerts.ofAll() : subscription.alerts,
|
||||
subscription==null ? PushSubscription.Policy.ALL : subscription.policy)
|
||||
.setCallback(new Callback<>(){
|
||||
|
||||
@@ -8,14 +8,23 @@ import org.joinmastodon.android.api.requests.statuses.SetStatusBookmarked;
|
||||
import org.joinmastodon.android.api.requests.statuses.SetStatusFavorited;
|
||||
import org.joinmastodon.android.api.requests.statuses.SetStatusMuted;
|
||||
import org.joinmastodon.android.api.requests.statuses.SetStatusReblogged;
|
||||
import org.joinmastodon.android.api.session.AccountSession;
|
||||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
||||
import org.joinmastodon.android.events.EmojiReactionsUpdatedEvent;
|
||||
import org.joinmastodon.android.events.ReblogDeletedEvent;
|
||||
import org.joinmastodon.android.events.StatusCountersUpdatedEvent;
|
||||
import org.joinmastodon.android.events.StatusCreatedEvent;
|
||||
import org.joinmastodon.android.events.StatusDeletedEvent;
|
||||
import org.joinmastodon.android.model.Emoji;
|
||||
import org.joinmastodon.android.model.EmojiCategory;
|
||||
import org.joinmastodon.android.model.EmojiReaction;
|
||||
import org.joinmastodon.android.model.Instance;
|
||||
import org.joinmastodon.android.model.Status;
|
||||
import org.joinmastodon.android.model.StatusPrivacy;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import me.grishka.appkit.api.Callback;
|
||||
@@ -42,6 +51,9 @@ public class StatusInteractionController{
|
||||
if(!Looper.getMainLooper().isCurrentThread())
|
||||
throw new IllegalStateException("Can only be called from main thread");
|
||||
|
||||
AccountSession session=AccountSessionManager.get(accountID);
|
||||
Instance instance=session.getInstance().get();
|
||||
|
||||
SetStatusFavorited current=runningFavoriteRequests.remove(status.id);
|
||||
if(current!=null){
|
||||
current.cancel();
|
||||
@@ -54,6 +66,7 @@ public class StatusInteractionController{
|
||||
result.favouritesCount = Math.max(0, status.favouritesCount + (favorited ? 1 : -1));
|
||||
cb.accept(result);
|
||||
if(updateCounters) E.post(new StatusCountersUpdatedEvent(result));
|
||||
if(instance.isIceshrimpJs()) E.post(new EmojiReactionsUpdatedEvent(status.id, result.reactions, false, null));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -63,12 +76,58 @@ public class StatusInteractionController{
|
||||
status.favourited=!favorited;
|
||||
cb.accept(status);
|
||||
if(updateCounters) E.post(new StatusCountersUpdatedEvent(status));
|
||||
if(instance.isIceshrimpJs()) E.post(new EmojiReactionsUpdatedEvent(status.id, status.reactions, false, null));
|
||||
}
|
||||
})
|
||||
.exec(accountID);
|
||||
runningFavoriteRequests.put(status.id, req);
|
||||
status.favourited=favorited;
|
||||
if(updateCounters) E.post(new StatusCountersUpdatedEvent(status));
|
||||
|
||||
if(instance.configuration==null || instance.configuration.reactions==null)
|
||||
return;
|
||||
|
||||
String defaultReactionEmojiRaw=instance.configuration.reactions.defaultReaction;
|
||||
if(!instance.isIceshrimpJs() || defaultReactionEmojiRaw==null)
|
||||
return;
|
||||
|
||||
boolean reactionIsCustom=defaultReactionEmojiRaw.startsWith(":");
|
||||
String defaultReactionEmoji=reactionIsCustom ? defaultReactionEmojiRaw.substring(1, defaultReactionEmojiRaw.length()-1) : defaultReactionEmojiRaw;
|
||||
ArrayList<EmojiReaction> reactions=new ArrayList<>(status.reactions.size());
|
||||
for(EmojiReaction reaction:status.reactions){
|
||||
reactions.add(reaction.copy());
|
||||
}
|
||||
Optional<EmojiReaction> existingReaction=reactions.stream().filter(r->r.me).findFirst();
|
||||
Optional<EmojiReaction> existingDefaultReaction=reactions.stream().filter(r->r.name.equals(defaultReactionEmoji)).findFirst();
|
||||
if(existingReaction.isPresent() && !favorited){
|
||||
existingReaction.get().me=false;
|
||||
existingReaction.get().count--;
|
||||
existingReaction.get().pendingChange=true;
|
||||
}else if(existingDefaultReaction.isPresent() && favorited){
|
||||
existingDefaultReaction.get().count++;
|
||||
existingDefaultReaction.get().me=true;
|
||||
existingDefaultReaction.get().pendingChange=true;
|
||||
}else if(favorited){
|
||||
EmojiReaction reaction=null;
|
||||
if(reactionIsCustom){
|
||||
List<EmojiCategory> customEmojis=AccountSessionManager.getInstance().getCustomEmojis(session.domain);
|
||||
for(EmojiCategory category:customEmojis){
|
||||
for(Emoji emoji:category.emojis){
|
||||
if(emoji.shortcode.equals(defaultReactionEmoji)){
|
||||
reaction=EmojiReaction.of(emoji, session.self);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(reaction==null)
|
||||
reaction=EmojiReaction.of(defaultReactionEmoji, session.self);
|
||||
}else{
|
||||
reaction=EmojiReaction.of(defaultReactionEmoji, session.self);
|
||||
}
|
||||
reaction.pendingChange=true;
|
||||
reactions.add(reaction);
|
||||
}
|
||||
E.post(new EmojiReactionsUpdatedEvent(status.id, reactions, false, null));
|
||||
}
|
||||
|
||||
public void setReblogged(Status status, boolean reblogged, StatusPrivacy visibility, Consumer<Status> cb){
|
||||
|
||||
@@ -4,10 +4,11 @@ import org.joinmastodon.android.api.MastodonAPIRequest;
|
||||
import org.joinmastodon.android.model.PushSubscription;
|
||||
|
||||
public class RegisterForPushNotifications extends MastodonAPIRequest<PushSubscription>{
|
||||
public RegisterForPushNotifications(String endpoint, String encryptionKey, String authKey, PushSubscription.Alerts alerts, PushSubscription.Policy policy){
|
||||
public RegisterForPushNotifications(String endpoint, Boolean standard, String encryptionKey, String authKey, PushSubscription.Alerts alerts, PushSubscription.Policy policy){
|
||||
super(HttpMethod.POST, "/push/subscription", PushSubscription.class);
|
||||
Request r=new Request();
|
||||
r.subscription.endpoint=endpoint;
|
||||
r.subscription.standard = standard;
|
||||
r.data.alerts=alerts;
|
||||
r.policy=policy;
|
||||
r.subscription.keys.p256dh=encryptionKey;
|
||||
@@ -27,6 +28,8 @@ public class RegisterForPushNotifications extends MastodonAPIRequest<PushSubscri
|
||||
|
||||
private static class Subscription{
|
||||
public String endpoint;
|
||||
// Use standard push notifications if available
|
||||
public Boolean standard;
|
||||
public Keys keys=new Keys();
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ import org.joinmastodon.android.model.AkkomaTranslation;
|
||||
|
||||
public class AkkomaTranslateStatus extends MastodonAPIRequest<AkkomaTranslation>{
|
||||
public AkkomaTranslateStatus(String id, String lang){
|
||||
super(HttpMethod.GET, "/statuses/"+id+"/translations/"+lang.toUpperCase(), AkkomaTranslation.class);
|
||||
super(HttpMethod.GET, "/statuses/"+id+"/translations/"+lang.toLowerCase(), AkkomaTranslation.class);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ import org.joinmastodon.android.model.ContentType;
|
||||
import org.joinmastodon.android.model.Emoji;
|
||||
import org.joinmastodon.android.model.Emoji;
|
||||
import org.joinmastodon.android.model.PushSubscription;
|
||||
import org.joinmastodon.android.model.Instance;
|
||||
import org.joinmastodon.android.model.TimelineDefinition;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
@@ -23,6 +24,7 @@ import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
public class AccountLocalPreferences{
|
||||
private final SharedPreferences prefs;
|
||||
@@ -72,19 +74,20 @@ public class AccountLocalPreferences{
|
||||
// preReplySheet=prefs.getBoolean("preReplySheet", false);
|
||||
|
||||
// MEGALODON
|
||||
Optional<Instance> instance=session.getInstance();
|
||||
showReplies=prefs.getBoolean("showReplies", true);
|
||||
showBoosts=prefs.getBoolean("showBoosts", true);
|
||||
recentLanguages=fromJson(prefs.getString("recentLanguages", null), recentLanguagesType, new ArrayList<>());
|
||||
bottomEncoding=prefs.getBoolean("bottomEncoding", false);
|
||||
defaultContentType=enumValue(ContentType.class, prefs.getString("defaultContentType", ContentType.PLAIN.name()));
|
||||
contentTypesEnabled=prefs.getBoolean("contentTypesEnabled", true);
|
||||
defaultContentType=enumValue(ContentType.class, prefs.getString("defaultContentType", instance.map(Instance::isIceshrimp).orElse(false) ? ContentType.MISSKEY_MARKDOWN.name() : ContentType.PLAIN.name()));
|
||||
contentTypesEnabled=prefs.getBoolean("contentTypesEnabled", instance.map(i->!i.isIceshrimp()).orElse(false));
|
||||
timelines=fromJson(prefs.getString("timelines", null), timelinesType, TimelineDefinition.getDefaultTimelines(session.getID()));
|
||||
localOnlySupported=prefs.getBoolean("localOnlySupported", false);
|
||||
glitchInstance=prefs.getBoolean("glitchInstance", false);
|
||||
publishButtonText=prefs.getString("publishButtonText", null);
|
||||
timelineReplyVisibility=prefs.getString("timelineReplyVisibility", null);
|
||||
keepOnlyLatestNotification=prefs.getBoolean("keepOnlyLatestNotification", false);
|
||||
emojiReactionsEnabled=prefs.getBoolean("emojiReactionsEnabled", session.getInstance().isPresent() && session.getInstance().get().isAkkoma());
|
||||
emojiReactionsEnabled=prefs.getBoolean("emojiReactionsEnabled", instance.map(i->i.isAkkoma() || i.isIceshrimp()).orElse(false));
|
||||
showEmojiReactions=ShowEmojiReactions.valueOf(prefs.getString("showEmojiReactions", ShowEmojiReactions.HIDE_EMPTY.name()));
|
||||
color=prefs.contains("color") ? ColorPreference.valueOf(prefs.getString("color", null)) : null;
|
||||
recentCustomEmoji=fromJson(prefs.getString("recentCustomEmoji", null), recentCustomEmojiType, new ArrayList<>());
|
||||
|
||||
@@ -34,6 +34,7 @@ import org.joinmastodon.android.model.EmojiCategory;
|
||||
import org.joinmastodon.android.model.LegacyFilter;
|
||||
import org.joinmastodon.android.model.Instance;
|
||||
import org.joinmastodon.android.model.Token;
|
||||
import org.joinmastodon.android.utils.UnifiedPushHelper;
|
||||
import org.unifiedpush.android.connector.UnifiedPush;
|
||||
|
||||
import java.io.File;
|
||||
@@ -70,7 +71,6 @@ public class AccountSessionManager{
|
||||
private HashMap<String, List<EmojiCategory>> customEmojis=new HashMap<>();
|
||||
private HashMap<String, Long> instancesLastUpdated=new HashMap<>();
|
||||
private HashMap<String, Instance> instances=new HashMap<>();
|
||||
private MastodonAPIController unauthenticatedApiController=new MastodonAPIController(null);
|
||||
private Instance authenticatingInstance;
|
||||
private Application authenticatingApp;
|
||||
private String lastActiveAccountID;
|
||||
@@ -109,7 +109,7 @@ public class AccountSessionManager{
|
||||
Log.e(TAG, "Error loading accounts", x);
|
||||
}
|
||||
lastActiveAccountID=prefs.getString("lastActiveAccount", null);
|
||||
MastodonAPIController.runInBackground(()->readInstanceInfo(domains));
|
||||
readInstanceInfo(domains);
|
||||
maybeUpdateShortcuts();
|
||||
}
|
||||
|
||||
@@ -127,12 +127,12 @@ public class AccountSessionManager{
|
||||
MastodonAPIController.runInBackground(()->writeInstanceInfoFile(wrapper, instance.uri));
|
||||
|
||||
updateMoreInstanceInfo(instance, instance.uri);
|
||||
if (!UnifiedPush.getDistributor(context).isEmpty()) {
|
||||
UnifiedPush.registerApp(
|
||||
if (UnifiedPushHelper.isUnifiedPushEnabled(context)) {
|
||||
UnifiedPush.register(
|
||||
context,
|
||||
session.getID(),
|
||||
new ArrayList<>(),
|
||||
context.getPackageName()
|
||||
null,
|
||||
session.app.vapidKey.replaceAll("=","")
|
||||
);
|
||||
} else if(PushSubscriptionManager.arePushNotificationsAvailable()){
|
||||
session.getPushSubscriptionManager().registerAccountForPush(null);
|
||||
@@ -247,11 +247,6 @@ public class AccountSessionManager{
|
||||
maybeUpdateShortcuts();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public MastodonAPIController getUnauthenticatedApiController(){
|
||||
return unauthenticatedApiController;
|
||||
}
|
||||
|
||||
public void authenticate(Activity activity, Instance instance){
|
||||
authenticatingInstance=instance;
|
||||
new CreateOAuthApp()
|
||||
|
||||
@@ -68,14 +68,14 @@ public class AnnouncementsFragment extends BaseStatusListFragment<Announcement>
|
||||
instanceUser.url = "https://"+session.domain+"/about";
|
||||
instanceUser.avatar = instanceUser.avatarStatic = instance.thumbnail;
|
||||
instanceUser.emojis = List.of();
|
||||
Status fakeStatus = a.toStatus();
|
||||
Status fakeStatus = a.toStatus(isInstanceIceshrimp());
|
||||
TextStatusDisplayItem textItem = new TextStatusDisplayItem(a.id, HtmlParser.parse(a.content, a.emojis, a.mentions, a.tags, accountID), this, fakeStatus, true);
|
||||
textItem.textSelectable = true;
|
||||
|
||||
List<StatusDisplayItem> items=new ArrayList<>();
|
||||
items.add(HeaderStatusDisplayItem.fromAnnouncement(a, fakeStatus, instanceUser, this, accountID, this::onMarkAsRead));
|
||||
items.add(textItem);
|
||||
if(!isInstanceAkkoma()) items.add(new EmojiReactionsStatusDisplayItem(a.id, this, fakeStatus, accountID, false, true));
|
||||
if(!isInstanceAkkoma() && !isInstanceIceshrimp()) items.add(new EmojiReactionsStatusDisplayItem(a.id, this, fakeStatus, accountID, false, true));
|
||||
return items;
|
||||
}
|
||||
|
||||
|
||||
@@ -838,6 +838,14 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
|
||||
list.invalidateItemDecorations();
|
||||
}
|
||||
|
||||
public void onFavoriteChanged(Status status, String itemID) {
|
||||
FooterStatusDisplayItem.Holder footer=findHolderOfType(itemID, FooterStatusDisplayItem.Holder.class);
|
||||
if(footer!=null){
|
||||
footer.getItem().status=status;
|
||||
footer.onFavoriteClick();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getAccountID(){
|
||||
return accountID;
|
||||
|
||||
@@ -787,7 +787,7 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
||||
String ownID=AccountSessionManager.getInstance().getAccount(accountID).self.id;
|
||||
if(!status.account.id.equals(ownID))
|
||||
mentions.add('@'+status.account.acct);
|
||||
if(status.rebloggedBy != null && GlobalUserPreferences.mentionRebloggerAutomatically)
|
||||
if(GlobalUserPreferences.mentionRebloggerAutomatically && status.rebloggedBy != null && !status.rebloggedBy.id.equals(ownID))
|
||||
mentions.add('@'+status.rebloggedBy.acct);
|
||||
for(Mention mention:status.mentions){
|
||||
if(mention.id.equals(ownID))
|
||||
@@ -927,6 +927,9 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
||||
}
|
||||
return false;
|
||||
});
|
||||
if(instance.isIceshrimpJs())
|
||||
languageButton.setVisibility(View.GONE); // hide language selector on Iceshrimp-JS because the feature is not supported
|
||||
|
||||
if (!GlobalUserPreferences.relocatePublishButton)
|
||||
publishButton.post(()->publishButton.setMinimumWidth(publishButton.getWidth()));
|
||||
|
||||
@@ -1052,12 +1055,12 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
||||
public void updatePublishButtonState(){
|
||||
uuid=null;
|
||||
if(GlobalUserPreferences.relocatePublishButton && publishButtonRelocated != null){
|
||||
publishButtonRelocated.setEnabled((!isInstancePixelfed() || !mediaViewController.isEmpty()) && (trimmedCharCount>0 || !mediaViewController.isEmpty()) && charCount<=charLimit && mediaViewController.getNonDoneAttachmentCount()==0 && (pollViewController.isEmpty() || pollViewController.getNonEmptyOptionsCount()>1));
|
||||
publishButtonRelocated.setEnabled(((!isInstancePixelfed() || replyTo != null) || !mediaViewController.isEmpty()) && (trimmedCharCount>0 || !mediaViewController.isEmpty()) && charCount<=charLimit && mediaViewController.getNonDoneAttachmentCount()==0 && (pollViewController.isEmpty() || pollViewController.getNonEmptyOptionsCount()>1));
|
||||
}
|
||||
|
||||
if(publishButton==null)
|
||||
return;
|
||||
publishButton.setEnabled((!isInstancePixelfed() || !mediaViewController.isEmpty()) && (trimmedCharCount>0 || !mediaViewController.isEmpty()) && charCount<=charLimit && mediaViewController.getNonDoneAttachmentCount()==0 && (pollViewController.isEmpty() || pollViewController.getNonEmptyOptionsCount()>1));
|
||||
publishButton.setEnabled(((!isInstancePixelfed() || replyTo != null) || !mediaViewController.isEmpty()) && (trimmedCharCount>0 || !mediaViewController.isEmpty()) && charCount<=charLimit && mediaViewController.getNonDoneAttachmentCount()==0 && (pollViewController.isEmpty() || pollViewController.getNonEmptyOptionsCount()>1));
|
||||
}
|
||||
|
||||
private void onCustomEmojiClick(Emoji emoji){
|
||||
|
||||
@@ -22,6 +22,14 @@ public interface HasAccountID {
|
||||
return getInstance().map(Instance::isPixelfed).orElse(false);
|
||||
}
|
||||
|
||||
default boolean isInstanceIceshrimp() {
|
||||
return getInstance().map(Instance::isIceshrimp).orElse(false);
|
||||
}
|
||||
|
||||
default boolean isInstanceIceshrimpJs() {
|
||||
return getInstance().map(Instance::isIceshrimpJs).orElse(false);
|
||||
}
|
||||
|
||||
default Optional<Instance> getInstance() {
|
||||
return getSession().getInstance();
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
@@ -32,21 +31,21 @@ import org.joinmastodon.android.model.FilterAction;
|
||||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
||||
import org.joinmastodon.android.model.FilterContext;
|
||||
import org.joinmastodon.android.model.FilterKeyword;
|
||||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
||||
import org.joinmastodon.android.model.FilterContext;
|
||||
import org.joinmastodon.android.model.Hashtag;
|
||||
import org.joinmastodon.android.model.Status;
|
||||
import org.joinmastodon.android.model.TimelineDefinition;
|
||||
import org.joinmastodon.android.ui.Snackbar;
|
||||
import org.joinmastodon.android.ui.sheets.MuteHashtagConfirmationSheet;
|
||||
import org.joinmastodon.android.ui.text.SpacerSpan;
|
||||
import org.joinmastodon.android.ui.utils.UiUtils;
|
||||
import org.joinmastodon.android.ui.views.ProgressBarButton;
|
||||
import org.parceler.Parcels;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.time.Duration;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
import me.grishka.appkit.Nav;
|
||||
import me.grishka.appkit.api.Callback;
|
||||
@@ -110,15 +109,35 @@ public class HashtagTimelineFragment extends PinnableStatusListFragment{
|
||||
followMenuItem.setIcon(following ? R.drawable.ic_fluent_person_delete_24_filled : R.drawable.ic_fluent_person_add_24_regular);
|
||||
}
|
||||
|
||||
private void showMuteDialog(boolean mute) {
|
||||
UiUtils.showConfirmationAlert(getContext(),
|
||||
mute ? R.string.mo_unmute_hashtag : R.string.mo_mute_hashtag,
|
||||
mute ? R.string.mo_confirm_to_unmute_hashtag : R.string.mo_confirm_to_mute_hashtag,
|
||||
mute ? R.string.do_unmute : R.string.do_mute,
|
||||
mute ? R.drawable.ic_fluent_speaker_2_28_regular : R.drawable.ic_fluent_speaker_off_28_regular,
|
||||
mute ? this::unmuteHashtag : this::muteHashtag
|
||||
);
|
||||
private void showMuteDialog(boolean currentlyMuted) {
|
||||
if (currentlyMuted) {
|
||||
unmuteHashtag();
|
||||
return;
|
||||
}
|
||||
|
||||
//pass a references, so they can be changed inside the confirmation sheet
|
||||
AtomicReference<Duration> muteDuration=new AtomicReference<>(Duration.ZERO);
|
||||
new MuteHashtagConfirmationSheet(getContext(), null, muteDuration, hashtag, (onSuccess, onError)->{
|
||||
FilterKeyword hashtagFilter=new FilterKeyword();
|
||||
hashtagFilter.wholeWord=true;
|
||||
hashtagFilter.keyword="#"+hashtagName;
|
||||
new CreateFilter("#"+hashtagName, EnumSet.of(FilterContext.HOME), FilterAction.HIDE, (int) muteDuration.get().getSeconds(), List.of(hashtagFilter)).setCallback(new Callback<>(){
|
||||
@Override
|
||||
public void onSuccess(Filter result){
|
||||
filter=Optional.of(result);
|
||||
updateMuteState(true);
|
||||
onSuccess.run();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(ErrorResponse error){
|
||||
error.showToast(getContext());
|
||||
onError.run();
|
||||
}
|
||||
}).exec(accountID);
|
||||
}).show();
|
||||
}
|
||||
|
||||
private void unmuteHashtag() {
|
||||
//safe to get, this only called if filter is present
|
||||
new DeleteFilter(filter.get().id).setCallback(new Callback<>(){
|
||||
@@ -126,24 +145,9 @@ public class HashtagTimelineFragment extends PinnableStatusListFragment{
|
||||
public void onSuccess(Void result){
|
||||
filter=Optional.empty();
|
||||
updateMuteState(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(ErrorResponse error){
|
||||
error.showToast(getContext());
|
||||
}
|
||||
}).exec(accountID);
|
||||
}
|
||||
|
||||
private void muteHashtag() {
|
||||
FilterKeyword hashtagFilter=new FilterKeyword();
|
||||
hashtagFilter.wholeWord=true;
|
||||
hashtagFilter.keyword="#"+hashtagName;
|
||||
new CreateFilter("#"+hashtagName, EnumSet.of(FilterContext.HOME), FilterAction.HIDE, 0 , List.of(hashtagFilter)).setCallback(new Callback<>(){
|
||||
@Override
|
||||
public void onSuccess(Filter result){
|
||||
filter=Optional.of(result);
|
||||
updateMuteState(true);
|
||||
new Snackbar.Builder(getContext())
|
||||
.setText(getContext().getString(R.string.unmuted_user_x, '#'+hashtagName))
|
||||
.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -24,6 +24,7 @@ import org.joinmastodon.android.events.EmojiReactionsUpdatedEvent;
|
||||
import org.joinmastodon.android.events.PollUpdatedEvent;
|
||||
import org.joinmastodon.android.events.RemoveAccountPostsEvent;
|
||||
import org.joinmastodon.android.events.StatusCountersUpdatedEvent;
|
||||
import org.joinmastodon.android.model.Account;
|
||||
import org.joinmastodon.android.model.Notification;
|
||||
import org.joinmastodon.android.model.PaginatedResponse;
|
||||
import org.joinmastodon.android.model.Status;
|
||||
@@ -122,7 +123,9 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
|
||||
}
|
||||
|
||||
NotificationHeaderStatusDisplayItem titleItem;
|
||||
if(n.type==Notification.Type.MENTION || n.type==Notification.Type.STATUS){
|
||||
Account self=AccountSessionManager.get(accountID).self;
|
||||
if(n.type==Notification.Type.MENTION || n.type==Notification.Type.STATUS
|
||||
|| (n.type==Notification.Type.REBLOG && n.status != null && n.status.account != null && !n.status.account.id.equals(self.id))){ // Iceshrimp quote
|
||||
titleItem=null;
|
||||
}else{
|
||||
titleItem=new NotificationHeaderStatusDisplayItem(n.id, this, n, accountID);
|
||||
@@ -316,13 +319,16 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
|
||||
public void onEmojiReactionsChanged(EmojiReactionsUpdatedEvent ev){
|
||||
for(Notification n : data){
|
||||
if(n.status!=null && n.status.getContentStatus().id.equals(ev.id)){
|
||||
n.status.getContentStatus().update(ev);
|
||||
AccountSessionManager.get(accountID).getCacheController().updateNotification(n);
|
||||
for(int i=0; i<list.getChildCount(); i++){
|
||||
RecyclerView.ViewHolder holder=list.getChildViewHolder(list.getChildAt(i));
|
||||
if(holder instanceof EmojiReactionsStatusDisplayItem.Holder reactions && reactions.getItem().status==n.status.getContentStatus() && ev.viewHolder!=holder){
|
||||
reactions.rebind();
|
||||
}else if(holder instanceof TextStatusDisplayItem.Holder text && text.getItem().parentID.equals(n.getID())){
|
||||
reactions.updateReactions(ev.reactions);
|
||||
}
|
||||
}
|
||||
AccountSessionManager.get(accountID).getCacheController().updateNotification(n);
|
||||
for(int i=0;i<list.getChildCount();i++){
|
||||
RecyclerView.ViewHolder holder=list.getChildViewHolder(list.getChildAt(i));
|
||||
if(holder instanceof TextStatusDisplayItem.Holder text && text.getItem().parentID.equals(n.getID())){
|
||||
text.rebind();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -877,7 +877,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
||||
}else if(id==R.id.open_in_browser){
|
||||
UiUtils.launchWebBrowser(getActivity(), account.url);
|
||||
}else if(id==R.id.block_domain){
|
||||
UiUtils.confirmToggleBlockDomain(getActivity(), accountID, account.getDomain(), relationship.domainBlocking, ()->{
|
||||
UiUtils.confirmToggleBlockDomain(getActivity(), accountID, account, relationship.domainBlocking, ()->{
|
||||
relationship.domainBlocking=!relationship.domainBlocking;
|
||||
updateRelationship();
|
||||
});
|
||||
@@ -991,7 +991,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
||||
else hidePrivateNote();
|
||||
invalidateOptionsMenu();
|
||||
actionButton.setVisibility(View.VISIBLE);
|
||||
notifyButton.setVisibility(relationship.following ? View.VISIBLE : View.GONE);
|
||||
notifyButton.setVisibility(relationship.following && !isInstanceIceshrimpJs() ? View.VISIBLE : View.GONE); // always hide notify button on Iceshrimp-JS because it's unsupported on the server
|
||||
UiUtils.setRelationshipToActionButtonM3(relationship, actionButton);
|
||||
actionProgress.setIndeterminateTintList(actionButton.getTextColors());
|
||||
notifyProgress.setIndeterminateTintList(notifyButton.getTextColors());
|
||||
|
||||
@@ -327,13 +327,16 @@ public abstract class StatusListFragment extends BaseStatusListFragment<Status>
|
||||
public void onEmojiReactionsChanged(EmojiReactionsUpdatedEvent ev){
|
||||
for(Status s:data){
|
||||
if(s.getContentStatus().id.equals(ev.id)){
|
||||
s.getContentStatus().update(ev);
|
||||
AccountSessionManager.get(accountID).getCacheController().updateStatus(s);
|
||||
for(int i=0;i<list.getChildCount();i++){
|
||||
RecyclerView.ViewHolder holder=list.getChildViewHolder(list.getChildAt(i));
|
||||
if(holder instanceof EmojiReactionsStatusDisplayItem.Holder reactions && reactions.getItem().status==s.getContentStatus() && ev.viewHolder!=holder){
|
||||
reactions.rebind();
|
||||
}else if(holder instanceof TextStatusDisplayItem.Holder text && text.getItem().parentID.equals(s.getID())){
|
||||
reactions.updateReactions(ev.reactions);
|
||||
}
|
||||
}
|
||||
AccountSessionManager.get(accountID).getCacheController().updateStatus(s);
|
||||
for(int i=0;i<list.getChildCount();i++){
|
||||
RecyclerView.ViewHolder holder=list.getChildViewHolder(list.getChildAt(i));
|
||||
if(holder instanceof TextStatusDisplayItem.Holder text && text.getItem().parentID.equals(s.getID())){
|
||||
text.rebind();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.joinmastodon.android.fragments.discover;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.app.FragmentTransaction;
|
||||
import android.app.assist.AssistContent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
@@ -31,6 +32,9 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.viewpager2.widget.ViewPager2;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import me.grishka.appkit.Nav;
|
||||
import me.grishka.appkit.fragments.AppKitFragment;
|
||||
import me.grishka.appkit.fragments.BaseRecyclerFragment;
|
||||
@@ -60,6 +64,7 @@ public class DiscoverFragment extends AppKitFragment implements ScrollableToTop,
|
||||
private String currentQuery;
|
||||
|
||||
private boolean disableDiscover;
|
||||
private boolean isIceshrimp;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState){
|
||||
@@ -78,13 +83,17 @@ public class DiscoverFragment extends AppKitFragment implements ScrollableToTop,
|
||||
tabLayout=view.findViewById(R.id.tabbar);
|
||||
pager=view.findViewById(R.id.pager);
|
||||
|
||||
tabViews=new FrameLayout[4];
|
||||
Optional<Instance> instance=AccountSessionManager.get(accountID).getInstance();
|
||||
disableDiscover=instance.map(Instance::isAkkoma).orElse(false);
|
||||
isIceshrimp=instance.map(Instance::isIceshrimp).orElse(false);
|
||||
|
||||
tabViews=new FrameLayout[isIceshrimp ? 3 : 4]; // reduce array size on Iceshrimp to hide news feed because it's unsupported and always returns an empty list
|
||||
for(int i=0;i<tabViews.length;i++){
|
||||
FrameLayout tabView=new FrameLayout(getActivity());
|
||||
tabView.setId(switch(i){
|
||||
case 0 -> R.id.discover_posts;
|
||||
case 1 -> R.id.discover_hashtags;
|
||||
case 2 -> R.id.discover_news;
|
||||
case 2 -> isIceshrimp ? R.id.discover_users : R.id.discover_news; // skip unsupported news discovery on Iceshrimp
|
||||
case 3 -> R.id.discover_users;
|
||||
default -> throw new IllegalStateException("Unexpected value: "+i);
|
||||
});
|
||||
@@ -126,12 +135,15 @@ public class DiscoverFragment extends AppKitFragment implements ScrollableToTop,
|
||||
accountsFragment=new DiscoverAccountsFragment();
|
||||
accountsFragment.setArguments(args);
|
||||
|
||||
getChildFragmentManager().beginTransaction()
|
||||
.add(R.id.discover_posts, postsFragment)
|
||||
.add(R.id.discover_hashtags, hashtagsFragment)
|
||||
.add(R.id.discover_news, newsFragment)
|
||||
.add(R.id.discover_users, accountsFragment)
|
||||
.commit();
|
||||
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
|
||||
transaction
|
||||
.add(R.id.discover_posts, postsFragment)
|
||||
.add(R.id.discover_hashtags, hashtagsFragment);
|
||||
if(!isIceshrimp) // skip unsupported news discovery on Iceshrimp
|
||||
transaction.add(R.id.discover_news, newsFragment);
|
||||
transaction
|
||||
.add(R.id.discover_users, accountsFragment)
|
||||
.commit();
|
||||
}
|
||||
|
||||
tabLayoutMediator=new TabLayoutMediator(tabLayout, pager, new TabLayoutMediator.TabConfigurationStrategy(){
|
||||
@@ -140,7 +152,7 @@ public class DiscoverFragment extends AppKitFragment implements ScrollableToTop,
|
||||
tab.setText(switch(position){
|
||||
case 0 -> R.string.posts;
|
||||
case 1 -> R.string.hashtags;
|
||||
case 2 -> R.string.news;
|
||||
case 2 -> isIceshrimp ? R.string.for_you : R.string.news; // skip unsupported news discovery on Iceshrimp
|
||||
case 3 -> R.string.for_you;
|
||||
default -> throw new IllegalStateException("Unexpected value: "+position);
|
||||
});
|
||||
@@ -160,7 +172,6 @@ public class DiscoverFragment extends AppKitFragment implements ScrollableToTop,
|
||||
}
|
||||
});
|
||||
|
||||
disableDiscover=AccountSessionManager.get(accountID).getInstance().map(Instance::isAkkoma).orElse(false);
|
||||
searchView=view.findViewById(R.id.search_fragment);
|
||||
if(searchFragment==null){
|
||||
searchFragment=new SearchFragment();
|
||||
@@ -262,7 +273,7 @@ public class DiscoverFragment extends AppKitFragment implements ScrollableToTop,
|
||||
return switch(page){
|
||||
case 0 -> postsFragment;
|
||||
case 1 -> hashtagsFragment;
|
||||
case 2 -> newsFragment;
|
||||
case 2 -> isIceshrimp ? accountsFragment : newsFragment; // skip unsupported news discovery on Iceshrimp
|
||||
case 3 -> accountsFragment;
|
||||
default -> throw new IllegalStateException("Unexpected value: "+page);
|
||||
};
|
||||
|
||||
@@ -54,7 +54,6 @@ public class SettingsBehaviorFragment extends BaseSettingsFragment<Void> impleme
|
||||
languageResolver.from(s.preferences.postingDefaultLanguage).orElse(null);
|
||||
|
||||
List<ListItem<Void>> items = new ArrayList<>(List.of(
|
||||
languageItem=new ListItem<>(getString(R.string.default_post_language), postLanguage!=null ? postLanguage.getDisplayName(getContext()) : null, R.drawable.ic_fluent_local_language_24_regular, this::onDefaultLanguageClick),
|
||||
customTabsItem=new ListItem<>(getString(R.string.settings_custom_tabs), getString(GlobalUserPreferences.useCustomTabs ? R.string.in_app_browser : R.string.system_browser), R.drawable.ic_fluent_open_24_regular, this::onCustomTabsClick),
|
||||
altTextItem=new CheckableListItem<>(R.string.settings_alt_text_reminders, 0, CheckableListItem.Style.SWITCH, GlobalUserPreferences.altTextReminders, R.drawable.ic_fluent_image_alt_text_24_regular, i->toggleCheckableItem(altTextItem)),
|
||||
showPostsWithoutAltItem=new CheckableListItem<>(R.string.mo_settings_show_posts_without_alt, R.string.mo_settings_show_posts_without_alt_summary, CheckableListItem.Style.SWITCH, GlobalUserPreferences.showPostsWithoutAlt, R.drawable.ic_fluent_eye_tracking_on_24_regular, i->toggleCheckableItem(showPostsWithoutAltItem)),
|
||||
@@ -73,6 +72,11 @@ public class SettingsBehaviorFragment extends BaseSettingsFragment<Void> impleme
|
||||
showRepliesItem=new CheckableListItem<>(R.string.sk_settings_show_replies, 0, CheckableListItem.Style.SWITCH, lp.showReplies, R.drawable.ic_fluent_arrow_reply_24_regular, i->toggleCheckableItem(showRepliesItem))
|
||||
));
|
||||
|
||||
if(!isInstanceIceshrimpJs()) items.add(
|
||||
0,
|
||||
languageItem=new ListItem<>(getString(R.string.default_post_language), postLanguage!=null ? postLanguage.getDisplayName(getContext()) : null, R.drawable.ic_fluent_local_language_24_regular, this::onDefaultLanguageClick)
|
||||
);
|
||||
|
||||
if(isInstanceAkkoma()) items.add(
|
||||
replyVisibilityItem=new ListItem<>(R.string.sk_settings_reply_visibility, getReplyVisibilityString(), R.drawable.ic_fluent_chat_24_regular, this::onReplyVisibilityClick)
|
||||
);
|
||||
@@ -203,7 +207,6 @@ public class SettingsBehaviorFragment extends BaseSettingsFragment<Void> impleme
|
||||
@Override
|
||||
protected void onHidden(){
|
||||
super.onHidden();
|
||||
GlobalUserPreferences.playGifs=playGifsItem.checked;
|
||||
GlobalUserPreferences.overlayMedia=overlayMediaItem.checked;
|
||||
GlobalUserPreferences.altTextReminders=altTextItem.checked;
|
||||
GlobalUserPreferences.confirmUnfollow=confirmUnfollowItem.checked;
|
||||
@@ -215,13 +218,14 @@ public class SettingsBehaviorFragment extends BaseSettingsFragment<Void> impleme
|
||||
GlobalUserPreferences.mentionRebloggerAutomatically=mentionRebloggerAutomaticallyItem.checked;
|
||||
GlobalUserPreferences.hapticFeedback=hapticFeedbackItem.checked;
|
||||
GlobalUserPreferences.showPostsWithoutAlt=showPostsWithoutAltItem.checked;
|
||||
GlobalUserPreferences.save();
|
||||
AccountLocalPreferences lp=getLocalPrefs();
|
||||
boolean restartPlease=lp.showBoosts!=showBoostsItem.checked
|
||||
|| lp.showReplies!=showRepliesItem.checked;
|
||||
|| lp.showReplies!=showRepliesItem.checked || GlobalUserPreferences.playGifs!=playGifsItem.checked;
|
||||
lp.showBoosts=showBoostsItem.checked;
|
||||
lp.showReplies=showRepliesItem.checked;
|
||||
GlobalUserPreferences.playGifs=playGifsItem.checked;
|
||||
lp.save();
|
||||
GlobalUserPreferences.save();
|
||||
if(newPostLanguage!=null){
|
||||
AccountSession s=AccountSessionManager.get(accountID);
|
||||
if(s.preferences==null)
|
||||
|
||||
@@ -47,7 +47,7 @@ public class SettingsDisplayFragment extends BaseSettingsFragment<Void>{
|
||||
private CheckableListItem<Void> pronounsInUserListingsItem, pronounsInTimelinesItem, pronounsInThreadsItem;
|
||||
|
||||
// MOSHIDON
|
||||
private CheckableListItem<Void> enableDoubleTapToSwipeItem, relocatePublishButtonItem, showPostDividersItem, enableDoubleTapToSearchItem, showMediaPreviewItem;
|
||||
private CheckableListItem<Void> enableDoubleTapToSwipeItem, relocatePublishButtonItem, showPostDividersItem, enableDoubleTapToSearchItem, showMediaPreviewItem, enhanceTextSizeItem;
|
||||
|
||||
private AccountLocalPreferences lp;
|
||||
|
||||
@@ -63,6 +63,7 @@ public class SettingsDisplayFragment extends BaseSettingsFragment<Void>{
|
||||
trueBlackModeItem=new CheckableListItem<>(R.string.sk_settings_true_black, R.string.mo_setting_true_black_summary, CheckableListItem.Style.SWITCH, GlobalUserPreferences.trueBlackTheme, R.drawable.ic_fluent_dark_theme_24_regular, i->onTrueBlackModeClick(), true),
|
||||
publishTextItem=new ListItem<>(getString(R.string.sk_settings_publish_button_text), getPublishButtonText(), R.drawable.ic_fluent_send_24_regular, this::onPublishTextClick),
|
||||
autoRevealCWsItem=new ListItem<>(R.string.sk_settings_auto_reveal_equal_spoilers, getAutoRevealSpoilersText(), R.drawable.ic_fluent_eye_24_regular, this::onAutoRevealSpoilersClick),
|
||||
enhanceTextSizeItem=new CheckableListItem<>(R.string.mo_settings_enhance_text_size, R.string.mo_settings_enhance_text_size_summary, CheckableListItem.Style.SWITCH, GlobalUserPreferences.enhanceTextSize, R.drawable.ic_fluent_text_more_24_regular, i->onEnhanceTextSizeClick()),
|
||||
relocatePublishButtonItem=new CheckableListItem<>(R.string.mo_relocate_publish_button, R.string.mo_setting_relocate_publish_summary, CheckableListItem.Style.SWITCH, GlobalUserPreferences.relocatePublishButton, R.drawable.ic_fluent_arrow_autofit_down_24_regular, i->toggleCheckableItem(relocatePublishButtonItem)),
|
||||
revealCWsItem=new CheckableListItem<>(R.string.sk_settings_always_reveal_content_warnings, 0, CheckableListItem.Style.SWITCH, lp.revealCWs, R.drawable.ic_fluent_chat_warning_24_regular, i->toggleCheckableItem(revealCWsItem)),
|
||||
hideSensitiveMediaItem=new CheckableListItem<>(R.string.settings_hide_sensitive_media, 0, CheckableListItem.Style.SWITCH, lp.hideSensitiveMedia, R.drawable.ic_fluent_flag_24_regular, i->toggleCheckableItem(hideSensitiveMediaItem)),
|
||||
@@ -141,6 +142,7 @@ public class SettingsDisplayFragment extends BaseSettingsFragment<Void>{
|
||||
GlobalUserPreferences.displayPronounsInThreads=pronounsInThreadsItem.checked;
|
||||
GlobalUserPreferences.displayPronounsInUserListings=pronounsInUserListingsItem.checked;
|
||||
GlobalUserPreferences.showMediaPreview=showMediaPreviewItem.checked;
|
||||
GlobalUserPreferences.enhanceTextSize=enhanceTextSizeItem.checked;
|
||||
GlobalUserPreferences.save();
|
||||
if(restartPlease) restartActivityToApplyNewTheme();
|
||||
else E.post(new StatusDisplaySettingsChangedEvent(accountID));
|
||||
@@ -182,6 +184,11 @@ public class SettingsDisplayFragment extends BaseSettingsFragment<Void>{
|
||||
maybeApplyNewThemeRightNow(null, null, prev);
|
||||
}
|
||||
|
||||
private void onEnhanceTextSizeClick(){
|
||||
toggleCheckableItem(enhanceTextSizeItem);
|
||||
restartActivityToApplyNewTheme();
|
||||
}
|
||||
|
||||
private void onAppearanceClick(ListItem<?> item_){
|
||||
int selected=switch(GlobalUserPreferences.theme){
|
||||
case LIGHT -> 0;
|
||||
|
||||
@@ -17,6 +17,7 @@ import org.joinmastodon.android.model.viewmodel.ListItem;
|
||||
import org.joinmastodon.android.ui.M3AlertDialogBuilder;
|
||||
import org.joinmastodon.android.ui.utils.UiUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -35,24 +36,27 @@ public class SettingsInstanceFragment extends BaseSettingsFragment<Void> impleme
|
||||
setTitle(R.string.sk_settings_instance);
|
||||
AccountSession s=AccountSessionManager.get(accountID);
|
||||
lp=s.getLocalPreferences();
|
||||
onDataLoaded(List.of(
|
||||
ArrayList<ListItem<Void>> items=new ArrayList<>(List.of(
|
||||
new ListItem<>(AccountSessionManager.get(accountID).domain, getString(R.string.settings_server_explanation), R.drawable.ic_fluent_server_24_regular, this::onServerClick),
|
||||
new ListItem<>(R.string.sk_settings_profile, 0, R.drawable.ic_fluent_open_24_regular, i->UiUtils.launchWebBrowser(getActivity(), "https://"+s.domain+"/settings/profile")),
|
||||
new ListItem<>(R.string.sk_settings_posting, 0, R.drawable.ic_fluent_open_24_regular, i->UiUtils.launchWebBrowser(getActivity(), "https://"+s.domain+"/settings/preferences/other")),
|
||||
new ListItem<>(R.string.sk_settings_auth, 0, R.drawable.ic_fluent_open_24_regular, i->UiUtils.launchWebBrowser(getActivity(), "https://"+s.domain+"/auth/edit"), 0, true),
|
||||
contentTypesItem=new CheckableListItem<>(R.string.sk_settings_content_types, R.string.sk_settings_content_types_explanation, CheckableListItem.Style.SWITCH, lp.contentTypesEnabled, R.drawable.ic_fluent_text_edit_style_24_regular, i->onContentTypeClick()),
|
||||
defaultContentTypeItem=new ListItem<>(R.string.sk_settings_default_content_type, lp.defaultContentType.getName(), R.drawable.ic_fluent_text_bold_24_regular, this::onDefaultContentTypeClick, 0, true),
|
||||
emojiReactionsItem=new CheckableListItem<>(R.string.sk_settings_emoji_reactions, R.string.sk_settings_emoji_reactions_explanation, CheckableListItem.Style.SWITCH, lp.emojiReactionsEnabled, R.drawable.ic_fluent_emoji_laugh_24_regular, i->onEmojiReactionsClick()),
|
||||
showEmojiReactionsItem=new ListItem<>(R.string.sk_settings_show_emoji_reactions, getShowEmojiReactionsString(), R.drawable.ic_fluent_emoji_24_regular, this::onShowEmojiReactionsClick, 0, true),
|
||||
localOnlyItem=new CheckableListItem<>(R.string.sk_settings_support_local_only, R.string.sk_settings_local_only_explanation, CheckableListItem.Style.SWITCH, lp.localOnlySupported, R.drawable.ic_fluent_eye_24_regular, i->onLocalOnlyClick()),
|
||||
glitchModeItem=new CheckableListItem<>(R.string.sk_settings_glitch_instance, R.string.sk_settings_glitch_mode_explanation, CheckableListItem.Style.SWITCH, lp.glitchInstance, R.drawable.ic_fluent_eye_24_filled, i->toggleCheckableItem(glitchModeItem))
|
||||
));
|
||||
contentTypesItem.checkedChangeListener=checked->onContentTypeClick();
|
||||
defaultContentTypeItem.isEnabled=contentTypesItem.checked;
|
||||
if(!isInstanceIceshrimp()){
|
||||
items.add(4, contentTypesItem=new CheckableListItem<>(R.string.sk_settings_content_types, R.string.sk_settings_content_types_explanation, CheckableListItem.Style.SWITCH, lp.contentTypesEnabled, R.drawable.ic_fluent_text_edit_style_24_regular, i->onContentTypeClick()));
|
||||
items.add(5, defaultContentTypeItem=new ListItem<>(R.string.sk_settings_default_content_type, lp.defaultContentType.getName(), R.drawable.ic_fluent_text_bold_24_regular, this::onDefaultContentTypeClick, 0, true));
|
||||
contentTypesItem.checkedChangeListener=checked->onContentTypeClick();
|
||||
defaultContentTypeItem.isEnabled=contentTypesItem.checked;
|
||||
}
|
||||
emojiReactionsItem.checkedChangeListener=checked->onEmojiReactionsClick();
|
||||
showEmojiReactionsItem.isEnabled=emojiReactionsItem.checked;
|
||||
localOnlyItem.checkedChangeListener=checked->onLocalOnlyClick();
|
||||
glitchModeItem.isEnabled=localOnlyItem.checked;
|
||||
onDataLoaded(items);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -61,7 +65,8 @@ public class SettingsInstanceFragment extends BaseSettingsFragment<Void> impleme
|
||||
@Override
|
||||
protected void onHidden(){
|
||||
super.onHidden();
|
||||
lp.contentTypesEnabled=contentTypesItem.checked;
|
||||
if(contentTypesItem!=null)
|
||||
lp.contentTypesEnabled=contentTypesItem.checked;
|
||||
lp.emojiReactionsEnabled=emojiReactionsItem.checked;
|
||||
lp.localOnlySupported=localOnlyItem.checked;
|
||||
lp.glitchInstance=glitchModeItem.checked;
|
||||
@@ -84,7 +89,8 @@ public class SettingsInstanceFragment extends BaseSettingsFragment<Void> impleme
|
||||
|
||||
private void resetDefaultContentType(){
|
||||
lp.defaultContentType=defaultContentTypeItem.isEnabled
|
||||
? ContentType.PLAIN : ContentType.UNSPECIFIED;
|
||||
? isInstanceIceshrimp() ? ContentType.MISSKEY_MARKDOWN
|
||||
: ContentType.PLAIN : ContentType.UNSPECIFIED;
|
||||
defaultContentTypeItem.subtitleRes=lp.defaultContentType.getName();
|
||||
}
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ public class SettingsMainFragment extends BaseSettingsFragment<Void>{
|
||||
));
|
||||
|
||||
Instance instance=AccountSessionManager.getInstance().getInstanceInfo(account.domain);
|
||||
if(!instance.isAkkoma()){
|
||||
if(!instance.isAkkoma() && !instance.isIceshrimpJs()){ // hide filter settings on Akkoma and Iceshrimp-JS because the servers don't support the feature
|
||||
data.add(3, new ListItem<>(R.string.settings_filters, 0, R.drawable.ic_fluent_filter_24_regular, this::onFiltersClick));
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ import org.joinmastodon.android.model.viewmodel.ListItem;
|
||||
import org.joinmastodon.android.ui.M3AlertDialogBuilder;
|
||||
import org.joinmastodon.android.ui.utils.HideableSingleViewRecyclerAdapter;
|
||||
import org.joinmastodon.android.ui.utils.UiUtils;
|
||||
import org.joinmastodon.android.utils.UnifiedPushHelper;
|
||||
import org.unifiedpush.android.connector.UnifiedPush;
|
||||
|
||||
import java.time.Instant;
|
||||
@@ -57,6 +58,7 @@ public class SettingsNotificationsFragment extends BaseSettingsFragment<Void>{
|
||||
|
||||
// MEGALODON
|
||||
private boolean useUnifiedPush = false;
|
||||
private boolean hasAnyUnifiedPushDistrib = false;
|
||||
private CheckableListItem<Void> uniformIconItem, deleteItem, onlyLatestItem, unifiedPushItem;
|
||||
private CheckableListItem<Void> postsItem, updateItem;
|
||||
|
||||
@@ -72,7 +74,8 @@ public class SettingsNotificationsFragment extends BaseSettingsFragment<Void>{
|
||||
lp=AccountSessionManager.get(accountID).getLocalPreferences();
|
||||
|
||||
getPushSubscription();
|
||||
useUnifiedPush=!UnifiedPush.getDistributor(getContext()).isEmpty();
|
||||
useUnifiedPush=UnifiedPushHelper.isUnifiedPushEnabled(getContext());
|
||||
hasAnyUnifiedPushDistrib=UnifiedPushHelper.hasAnyDistributorInstalled(getContext());
|
||||
|
||||
onDataLoaded(List.of(
|
||||
pauseItem=new CheckableListItem<>(getString(R.string.pause_all_notifications), getPauseItemSubtitle(), CheckableListItem.Style.SWITCH, false, R.drawable.ic_fluent_alert_snooze_24_regular, i->onPauseNotificationsClick(false)),
|
||||
@@ -94,7 +97,7 @@ public class SettingsNotificationsFragment extends BaseSettingsFragment<Void>{
|
||||
));
|
||||
|
||||
//only enable when distributors, who can receive notifications, are available
|
||||
unifiedPushItem.isEnabled=!UnifiedPush.getDistributors(getContext(), new ArrayList<>()).isEmpty();
|
||||
unifiedPushItem.isEnabled=hasAnyUnifiedPushDistrib;
|
||||
if (!unifiedPushItem.isEnabled) {
|
||||
unifiedPushItem.subtitleRes=R.string.sk_settings_unifiedpush_no_distributor_body;
|
||||
}
|
||||
@@ -124,7 +127,7 @@ public class SettingsNotificationsFragment extends BaseSettingsFragment<Void>{
|
||||
GlobalUserPreferences.save();
|
||||
lp.keepOnlyLatestNotification=onlyLatestItem.checked;
|
||||
lp.save();
|
||||
if(needUpdateNotificationSettings && PushSubscriptionManager.arePushNotificationsAvailable()){
|
||||
if(needUpdateNotificationSettings && (PushSubscriptionManager.arePushNotificationsAvailable() || useUnifiedPush)){
|
||||
ps.alerts.mention=mentionsItem.checked;
|
||||
ps.alerts.reblog=boostsItem.checked;
|
||||
ps.alerts.favourite=favoritesItem.checked;
|
||||
@@ -316,12 +319,12 @@ public class SettingsNotificationsFragment extends BaseSettingsFragment<Void>{
|
||||
bannerText.setText(R.string.notifications_disabled_in_system);
|
||||
bannerButton.setText(R.string.open_system_notification_settings);
|
||||
bannerButton.setOnClickListener(v->openSystemNotificationSettings());
|
||||
}else if(BuildConfig.BUILD_TYPE.equals("fdroidRelease") && UnifiedPush.getDistributor(getContext()).isEmpty()){
|
||||
}else if(BuildConfig.BUILD_TYPE.equals("fdroidRelease") && useUnifiedPush){
|
||||
bannerAdapter.setVisible(true);
|
||||
bannerIcon.setImageResource(R.drawable.ic_fluent_warning_24_filled);
|
||||
bannerTitle.setVisibility(View.VISIBLE);
|
||||
bannerTitle.setText(R.string.mo_settings_unifiedpush_warning);
|
||||
if(UnifiedPush.getDistributors(getContext(), new ArrayList<>()).isEmpty()) {
|
||||
if(!hasAnyUnifiedPushDistrib) {
|
||||
bannerText.setText(R.string.mo_settings_unifiedpush_warning_no_distributors);
|
||||
bannerButton.setText(R.string.info);
|
||||
bannerButton.setOnClickListener(v->UiUtils.launchWebBrowser(getContext(), "https://unifiedpush.org/"));
|
||||
@@ -342,23 +345,15 @@ public class SettingsNotificationsFragment extends BaseSettingsFragment<Void>{
|
||||
}
|
||||
|
||||
private void onUnifiedPushClick(){
|
||||
if(UnifiedPush.getDistributor(getContext()).isEmpty()){
|
||||
List<String> distributors = UnifiedPush.getDistributors(getContext(), new ArrayList<>());
|
||||
if(!useUnifiedPush){
|
||||
List<String> distributors = UnifiedPush.getDistributors(getContext());
|
||||
showUnifiedPushRegisterDialog(distributors);
|
||||
return;
|
||||
}
|
||||
|
||||
for (AccountSession accountSession : AccountSessionManager.getInstance().getLoggedInAccounts()) {
|
||||
UnifiedPush.unregisterApp(
|
||||
getContext(),
|
||||
accountSession.getID()
|
||||
);
|
||||
|
||||
//re-register to fcm
|
||||
accountSession.getPushSubscriptionManager().registerAccountForPush(getPushSubscription());
|
||||
}
|
||||
UnifiedPushHelper.unregisterAllAccounts(getContext());
|
||||
unifiedPushItem.toggle();
|
||||
rebindItem(unifiedPushItem);
|
||||
useUnifiedPush = false;
|
||||
}
|
||||
|
||||
private void showUnifiedPushRegisterDialog(List<String> distributors){
|
||||
@@ -366,16 +361,10 @@ public class SettingsNotificationsFragment extends BaseSettingsFragment<Void>{
|
||||
(dialog, which)->{
|
||||
String userDistrib = distributors.get(which);
|
||||
UnifiedPush.saveDistributor(getContext(), userDistrib);
|
||||
for (AccountSession accountSession : AccountSessionManager.getInstance().getLoggedInAccounts()){
|
||||
UnifiedPush.registerApp(
|
||||
getContext(),
|
||||
accountSession.getID(),
|
||||
new ArrayList<>(),
|
||||
getContext().getPackageName()
|
||||
);
|
||||
}
|
||||
UnifiedPushHelper.registerAllAccounts(getContext());
|
||||
unifiedPushItem.toggle();
|
||||
rebindItem(unifiedPushItem);
|
||||
useUnifiedPush = true;
|
||||
}).setOnCancelListener(d->rebindItem(unifiedPushItem)).show();
|
||||
}
|
||||
|
||||
|
||||
@@ -50,11 +50,11 @@ public class Announcement extends BaseModel implements DisplayItemsParent {
|
||||
if(reactions==null) reactions=new ArrayList<>();
|
||||
}
|
||||
|
||||
public Status toStatus() {
|
||||
public Status toStatus(boolean isIceshrimp) {
|
||||
Status s=Status.ofFake(id, content, publishedAt);
|
||||
s.createdAt=startsAt != null ? startsAt : publishedAt;
|
||||
s.reactions=reactions;
|
||||
if(updatedAt != null) s.editedAt=updatedAt;
|
||||
if(updatedAt != null && (!isIceshrimp || !updatedAt.equals(publishedAt))) s.editedAt=updatedAt;
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,6 @@ public enum ContentType {
|
||||
}
|
||||
|
||||
public boolean supportedByInstance(Instance i) {
|
||||
return i.isAkkoma() || (this!=BBCODE && this!=MISSKEY_MARKDOWN);
|
||||
return i.isAkkoma() || i.isIceshrimp() || (this!=BBCODE && this!=MISSKEY_MARKDOWN);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ public class EmojiReaction {
|
||||
public String staticUrl;
|
||||
|
||||
public transient ImageLoaderRequest request;
|
||||
public transient boolean pendingChange=false;
|
||||
|
||||
public String getUrl(boolean playGifs){
|
||||
String idealUrl=playGifs ? url : staticUrl;
|
||||
@@ -60,4 +61,18 @@ public class EmojiReaction {
|
||||
accounts.add(self);
|
||||
accountIds.add(self.id);
|
||||
}
|
||||
|
||||
public EmojiReaction copy() {
|
||||
EmojiReaction r=new EmojiReaction();
|
||||
r.accounts=accounts;
|
||||
r.accountIds=accountIds;
|
||||
r.count=count;
|
||||
r.me=me;
|
||||
r.name=name;
|
||||
r.url=url;
|
||||
r.staticUrl=staticUrl;
|
||||
r.request=request;
|
||||
r.pendingChange=pendingChange;
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -146,14 +146,28 @@ public class Instance extends BaseModel{
|
||||
return ci;
|
||||
}
|
||||
|
||||
// This method has almost exclusively been used to improve support for
|
||||
// Akkoma with no regard for Pleroma, hence its name. However, it is
|
||||
// more likely than not that most uses should also apply to Pleroma,
|
||||
// so checking for that too probably causes more good than harm.
|
||||
public boolean isAkkoma() {
|
||||
return pleroma != null;
|
||||
return version.contains("compatible; Akkoma") || version.contains("compatible; Pleroma");
|
||||
}
|
||||
|
||||
public boolean isPixelfed() {
|
||||
return version.contains("compatible; Pixelfed");
|
||||
}
|
||||
|
||||
// For both Iceshrimp-JS and Iceshrimp.NET
|
||||
public boolean isIceshrimp() {
|
||||
return version.contains("compatible; Iceshrimp");
|
||||
}
|
||||
|
||||
// Only for Iceshrimp-JS
|
||||
public boolean isIceshrimpJs() {
|
||||
return version.contains("compatible; Iceshrimp "); // Iceshrimp.NET will not have a space immediately after
|
||||
}
|
||||
|
||||
public boolean hasFeature(Feature feature) {
|
||||
Optional<List<String>> pleromaFeatures = Optional.ofNullable(pleroma)
|
||||
.map(p -> p.metadata)
|
||||
@@ -219,6 +233,7 @@ public class Instance extends BaseModel{
|
||||
public StatusesConfiguration statuses;
|
||||
public MediaAttachmentsConfiguration mediaAttachments;
|
||||
public PollsConfiguration polls;
|
||||
public ReactionsConfiguration reactions;
|
||||
}
|
||||
|
||||
@Parcel
|
||||
@@ -242,8 +257,14 @@ public class Instance extends BaseModel{
|
||||
public static class PollsConfiguration{
|
||||
public int maxOptions;
|
||||
public int maxCharactersPerOption;
|
||||
public int minExpiration;
|
||||
public int maxExpiration;
|
||||
public long minExpiration;
|
||||
public long maxExpiration;
|
||||
}
|
||||
|
||||
@Parcel
|
||||
public static class ReactionsConfiguration {
|
||||
public int maxReactions;
|
||||
public String defaultReaction;
|
||||
}
|
||||
|
||||
@Parcel
|
||||
|
||||
@@ -47,7 +47,7 @@ public class Status extends BaseModel implements DisplayItemsParent, Searchable{
|
||||
public String uri;
|
||||
// @RequiredField // sometimes null on calckey
|
||||
public Instant createdAt;
|
||||
@RequiredField
|
||||
// @RequiredField // sometimes null? Gonna make sure to check everytime. TODO: make account field required again
|
||||
public Account account;
|
||||
// @RequiredField
|
||||
public String content;
|
||||
@@ -62,8 +62,8 @@ public class Status extends BaseModel implements DisplayItemsParent, Searchable{
|
||||
public List<Mention> mentions;
|
||||
@RequiredField
|
||||
public List<Hashtag> tags;
|
||||
@RequiredField
|
||||
public List<Emoji> emojis;
|
||||
// @RequiredField // sometimes null on glitch-soc? TODO: make this field required again
|
||||
public List<Emoji> emojis = new ArrayList<>();
|
||||
public long reblogsCount;
|
||||
public long favouritesCount;
|
||||
public long repliesCount;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.joinmastodon.android.ui.displayitems;
|
||||
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.graphics.Paint;
|
||||
@@ -33,16 +34,24 @@ import org.joinmastodon.android.api.requests.statuses.PleromaDeleteStatusReactio
|
||||
import org.joinmastodon.android.api.session.AccountSession;
|
||||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
||||
import org.joinmastodon.android.events.EmojiReactionsUpdatedEvent;
|
||||
import org.joinmastodon.android.events.StatusCountersUpdatedEvent;
|
||||
import org.joinmastodon.android.fragments.BaseStatusListFragment;
|
||||
import org.joinmastodon.android.fragments.account_list.StatusEmojiReactionsListFragment;
|
||||
import org.joinmastodon.android.model.Account;
|
||||
import org.joinmastodon.android.model.Emoji;
|
||||
import org.joinmastodon.android.model.EmojiReaction;
|
||||
import org.joinmastodon.android.model.Instance;
|
||||
import org.joinmastodon.android.model.Status;
|
||||
import org.joinmastodon.android.ui.CustomEmojiPopupKeyboard;
|
||||
import org.joinmastodon.android.ui.utils.TextDrawable;
|
||||
import org.joinmastodon.android.ui.utils.UiUtils;
|
||||
import org.joinmastodon.android.ui.views.ProgressBarButton;
|
||||
import org.joinmastodon.android.ui.views.EmojiReactionButton;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import me.grishka.appkit.Nav;
|
||||
import me.grishka.appkit.api.Callback;
|
||||
@@ -62,6 +71,7 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
private final boolean hideEmpty, forAnnouncement, playGifs;
|
||||
private final String accountID;
|
||||
private static final float ALPHA_DISABLED=0.55f;
|
||||
private boolean forceShow=false;
|
||||
|
||||
public EmojiReactionsStatusDisplayItem(String parentID, BaseStatusListFragment<?> parentFragment, Status status, String accountID, boolean hideEmpty, boolean forAnnouncement) {
|
||||
super(parentID, parentFragment);
|
||||
@@ -90,6 +100,10 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
}
|
||||
|
||||
public boolean isHidden(){
|
||||
if(forceShow){
|
||||
forceShow=false;
|
||||
return false;
|
||||
}
|
||||
return status.reactions.isEmpty() && hideEmpty;
|
||||
}
|
||||
|
||||
@@ -101,7 +115,7 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
vh.btn.setAlpha(visible ? ALPHA_DISABLED : 1);
|
||||
}
|
||||
|
||||
private MastodonAPIRequest<?> createRequest(String name, int count, boolean delete, Holder.EmojiReactionViewHolder vh, Runnable cb, Runnable err){
|
||||
private MastodonAPIRequest<?> createRequest(String name, int count, boolean delete, Holder.EmojiReactionViewHolder vh, Consumer<Status> cb, Runnable err){
|
||||
setActionProgressVisible(vh, true);
|
||||
boolean ak=parentFragment.isInstanceAkkoma();
|
||||
boolean keepSpinning=delete && count == 1;
|
||||
@@ -113,7 +127,7 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
@Override
|
||||
public void onSuccess(Object result){
|
||||
if(!keepSpinning) setActionProgressVisible(vh, false);
|
||||
cb.run();
|
||||
cb.accept(null);
|
||||
}
|
||||
@Override
|
||||
public void onError(ErrorResponse error){
|
||||
@@ -130,7 +144,7 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
@Override
|
||||
public void onSuccess(Status result){
|
||||
if(!keepSpinning) setActionProgressVisible(vh, false);
|
||||
cb.run();
|
||||
cb.accept(result);
|
||||
}
|
||||
@Override
|
||||
public void onError(ErrorResponse error){
|
||||
@@ -151,6 +165,8 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
private final ProgressBar progress;
|
||||
private final EmojiReactionsAdapter adapter;
|
||||
private final ListImageLoaderWrapper imgLoader;
|
||||
private int meReactionCount=0;
|
||||
private Instance instance;
|
||||
|
||||
public Holder(Activity activity, ViewGroup parent) {
|
||||
super(activity, R.layout.display_item_emoji_reactions, parent);
|
||||
@@ -171,6 +187,13 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
if(emojiKeyboard != null) root.removeView(emojiKeyboard.getView());
|
||||
addButton.setSelected(false);
|
||||
AccountSession session=item.parentFragment.getSession();
|
||||
instance=item.parentFragment.getInstance().get();
|
||||
if(instance.configuration!=null && instance.configuration.reactions!=null && instance.configuration.reactions.maxReactions!=0){
|
||||
meReactionCount=(int) item.status.reactions.stream().filter(r->r.me).count();
|
||||
boolean canReact=meReactionCount<instance.configuration.reactions.maxReactions;
|
||||
addButton.setClickable(canReact);
|
||||
addButton.setAlpha(canReact ? 1 : ALPHA_DISABLED);
|
||||
}
|
||||
item.status.reactions.forEach(r->r.request=r.getUrl(item.playGifs)!=null
|
||||
? new UrlImageLoaderRequest(r.getUrl(item.playGifs), 0, V.sp(24))
|
||||
: null);
|
||||
@@ -182,18 +205,34 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
emojiKeyboard.setListener(this);
|
||||
space.setVisibility(View.GONE);
|
||||
root.addView(emojiKeyboard.getView());
|
||||
boolean hidden=item.isHidden();
|
||||
root.setVisibility(hidden ? View.GONE : View.VISIBLE);
|
||||
line.setVisibility(hidden ? View.GONE : View.VISIBLE);
|
||||
updateVisibility(item.isHidden(), true);
|
||||
imgLoader.updateImages();
|
||||
adapter.notifyDataSetChanged();
|
||||
|
||||
if(!GlobalUserPreferences.showDividers || item.isHidden())
|
||||
return;
|
||||
|
||||
StatusDisplayItem next=getNextVisibleDisplayItem().orElse(null);
|
||||
if(next!=null && !next.parentID.equals(item.parentID)) next=null;
|
||||
if(next instanceof ExtendedFooterStatusDisplayItem)
|
||||
itemView.setPadding(0, 0, 0, V.dp(12));
|
||||
else
|
||||
itemView.setPadding(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
private void updateVisibility(boolean hidden, boolean force){
|
||||
int visibility=hidden ? View.GONE : View.VISIBLE;
|
||||
if(!force && visibility==root.getVisibility())
|
||||
return;
|
||||
root.setVisibility(visibility);
|
||||
line.setVisibility(visibility);
|
||||
line.setPadding(
|
||||
list.getPaddingLeft(),
|
||||
hidden ? 0 : V.dp(8),
|
||||
list.getPaddingRight(),
|
||||
item.forAnnouncement ? V.dp(8) : 0
|
||||
);
|
||||
imgLoader.updateImages();
|
||||
adapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private void hideEmojiKeyboard(){
|
||||
space.setVisibility(View.GONE);
|
||||
@@ -244,19 +283,32 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
}
|
||||
}
|
||||
EmojiReaction finalExisting=existing;
|
||||
item.createRequest(emoji, existing==null ? 1 : existing.count, false, null, ()->{
|
||||
item.createRequest(emoji, existing==null ? 1 : existing.count, false, null, (status)->{
|
||||
resetBtn.run();
|
||||
if(finalExisting==null){
|
||||
int pos=item.status.reactions.size();
|
||||
int pos=status.reactions.stream()
|
||||
.filter(r->r.name.equals(info!=null ? info.shortcode : emoji))
|
||||
.findFirst()
|
||||
.map(r->status.reactions.indexOf(r))
|
||||
.orElse(item.status.reactions.size());
|
||||
boolean previouslyEmpty=item.status.reactions.isEmpty();
|
||||
item.status.reactions.add(pos, info!=null ? EmojiReaction.of(info, me) : EmojiReaction.of(emoji, me));
|
||||
adapter.notifyItemRangeInserted(pos, 1);
|
||||
if(previouslyEmpty)
|
||||
adapter.notifyItemChanged(pos);
|
||||
else
|
||||
adapter.notifyItemInserted(pos);
|
||||
RecyclerView.SmoothScroller scroller=new LinearSmoothScroller(list.getContext());
|
||||
scroller.setTargetPosition(pos);
|
||||
list.getLayoutManager().startSmoothScroll(scroller);
|
||||
updateMeReactionCount(false);
|
||||
}else{
|
||||
finalExisting.add(me);
|
||||
adapter.notifyItemChanged(item.status.reactions.indexOf(finalExisting));
|
||||
}
|
||||
if(instance.isIceshrimpJs() && status!=null){
|
||||
item.parentFragment.onFavoriteChanged(status, getItemID());
|
||||
E.post(new StatusCountersUpdatedEvent(status));
|
||||
}
|
||||
E.post(new EmojiReactionsUpdatedEvent(item.status.id, item.status.reactions, countBefore==0, adapter.parentHolder));
|
||||
}, resetBtn).exec(item.accountID);
|
||||
}
|
||||
@@ -278,6 +330,99 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
}
|
||||
}
|
||||
|
||||
private void updateAddButtonClickable() {
|
||||
if(instance==null || instance.configuration==null || instance.configuration.reactions==null || instance.configuration.reactions.maxReactions==0)
|
||||
return;
|
||||
boolean canReact=meReactionCount<instance.configuration.reactions.maxReactions;
|
||||
addButton.setClickable(canReact);
|
||||
|
||||
ObjectAnimator anim=ObjectAnimator.ofFloat(
|
||||
addButton, View.ALPHA,
|
||||
canReact ? ALPHA_DISABLED : 1,
|
||||
canReact ? 1 : ALPHA_DISABLED);
|
||||
anim.setDuration(200);
|
||||
anim.start();
|
||||
}
|
||||
|
||||
private void updateMeReactionCount(boolean deleting) {
|
||||
meReactionCount=Math.max(0, meReactionCount + (deleting ? -1 : 1));
|
||||
updateAddButtonClickable();
|
||||
}
|
||||
|
||||
public void updateReactions(List<EmojiReaction> reactions){
|
||||
item.status.reactions=new ArrayList<>(item.status.reactions); // I don't know how, but this seemingly fixes a bug
|
||||
|
||||
List<EmojiReaction> toRemove=new ArrayList<>();
|
||||
for(int i=0;i<item.status.reactions.size();i++){
|
||||
EmojiReaction reaction=item.status.reactions.get(i);
|
||||
Optional<EmojiReaction> newReactionOptional=reactions.stream().filter(r->r.name.equals(reaction.name)).findFirst();
|
||||
if(newReactionOptional.isEmpty()){ // deleted reactions
|
||||
toRemove.add(reaction);
|
||||
continue;
|
||||
}
|
||||
|
||||
// changed reactions
|
||||
EmojiReaction newReaction=newReactionOptional.get();
|
||||
if(reaction.count!=newReaction.count || reaction.me!=newReaction.me || reaction.pendingChange!=newReaction.pendingChange){
|
||||
if(newReaction.pendingChange){
|
||||
View holderView=list.getChildAt(i);
|
||||
if(holderView!=null){
|
||||
EmojiReactionViewHolder reactionHolder=(EmojiReactionViewHolder) list.getChildViewHolder(holderView);
|
||||
item.setActionProgressVisible(reactionHolder, true);
|
||||
}
|
||||
}else{
|
||||
item.status.reactions.set(i, newReaction);
|
||||
adapter.notifyItemChanged(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Collections.reverse(toRemove);
|
||||
for(EmojiReaction r:toRemove){
|
||||
int index=item.status.reactions.indexOf(r);
|
||||
item.status.reactions.remove(index);
|
||||
adapter.notifyItemRemoved(index);
|
||||
}
|
||||
|
||||
boolean pendingAddReaction=false;
|
||||
for(int i=0;i<reactions.size();i++){
|
||||
EmojiReaction reaction=reactions.get(i);
|
||||
if(item.status.reactions.stream().anyMatch(r->r.name.equals(reaction.name)))
|
||||
continue;
|
||||
|
||||
// new reactions
|
||||
if(reaction.pendingChange){
|
||||
pendingAddReaction=true;
|
||||
item.forceShow=true;
|
||||
continue;
|
||||
}
|
||||
boolean previouslyEmpty=item.status.reactions.isEmpty();
|
||||
item.status.reactions.add(i, reaction);
|
||||
if(previouslyEmpty)
|
||||
adapter.notifyItemChanged(i);
|
||||
else
|
||||
adapter.notifyItemInserted(i);
|
||||
RecyclerView.SmoothScroller scroller=new LinearSmoothScroller(list.getContext());
|
||||
scroller.setTargetPosition(i);
|
||||
list.getLayoutManager().startSmoothScroll(scroller);
|
||||
}
|
||||
if(pendingAddReaction){
|
||||
progress.setVisibility(View.VISIBLE);
|
||||
addButton.setClickable(false);
|
||||
addButton.setAlpha(ALPHA_DISABLED);
|
||||
}else{
|
||||
progress.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
int newMeReactionCount=(int) reactions.stream().filter(r->r.me || r.pendingChange).count();
|
||||
if (newMeReactionCount!=meReactionCount){
|
||||
meReactionCount=newMeReactionCount;
|
||||
updateAddButtonClickable();
|
||||
}
|
||||
|
||||
updateVisibility(reactions.isEmpty() && item.hideEmpty, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setImage(int index, Drawable image){
|
||||
View child=list.getChildAt(index);
|
||||
@@ -330,7 +475,7 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
}
|
||||
|
||||
private static class EmojiReactionViewHolder extends BindableViewHolder<Pair<EmojiReactionsStatusDisplayItem, EmojiReaction>> implements ImageLoaderViewHolder{
|
||||
private final ProgressBarButton btn;
|
||||
private final EmojiReactionButton btn;
|
||||
private final ProgressBar progress;
|
||||
|
||||
public EmojiReactionViewHolder(Context context, RecyclerView list){
|
||||
@@ -356,6 +501,12 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
|
||||
@Override
|
||||
public void onBind(Pair<EmojiReactionsStatusDisplayItem, EmojiReaction> item){
|
||||
if(item.second.pendingChange){
|
||||
itemView.setVisibility(View.GONE);
|
||||
return;
|
||||
}else{
|
||||
itemView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
item.first.setActionProgressVisible(this, false);
|
||||
EmojiReactionsStatusDisplayItem parent=item.first;
|
||||
EmojiReaction reaction=item.second;
|
||||
@@ -371,10 +522,25 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
btn.setCompoundDrawablesRelative(item.first.placeholder, null, null, null);
|
||||
}
|
||||
btn.setSelected(reaction.me);
|
||||
if(parent.parentFragment.isInstanceIceshrimpJs() && reaction.name.contains("@")){
|
||||
btn.setEnabled(false);
|
||||
btn.setClickable(false);
|
||||
btn.setLongClickable(true);
|
||||
}else{
|
||||
btn.setEnabled(true);
|
||||
btn.setClickable(true);
|
||||
}
|
||||
btn.setOnClickListener(e->{
|
||||
EmojiReactionsAdapter adapter = (EmojiReactionsAdapter) getBindingAdapter();
|
||||
Instance instance = adapter.parentHolder.instance;
|
||||
if(instance.configuration!=null && instance.configuration.reactions!=null && instance.configuration.reactions.maxReactions!=0 &&
|
||||
adapter.parentHolder.meReactionCount >= instance.configuration.reactions.maxReactions &&
|
||||
!reaction.me){
|
||||
return;
|
||||
}
|
||||
|
||||
boolean deleting=reaction.me;
|
||||
parent.createRequest(reaction.name, reaction.count, deleting, this, ()->{
|
||||
EmojiReactionsAdapter adapter = (EmojiReactionsAdapter) getBindingAdapter();
|
||||
parent.createRequest(reaction.name, reaction.count, deleting, this, (status)->{
|
||||
for(int i=0; i<parent.status.reactions.size(); i++){
|
||||
EmojiReaction r=parent.status.reactions.get(i);
|
||||
if(!r.name.equals(reaction.name)) continue;
|
||||
@@ -394,6 +560,14 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem {
|
||||
adapter.parentHolder.root.setVisibility(View.GONE);
|
||||
adapter.parentHolder.line.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
if(instance.configuration!=null && instance.configuration.reactions!=null && instance.configuration.reactions.maxReactions!=0){
|
||||
adapter.parentHolder.updateMeReactionCount(deleting);
|
||||
}
|
||||
if(instance.isIceshrimpJs() && status!=null){
|
||||
parent.parentFragment.onFavoriteChanged(status, adapter.parentHolder.getItemID());
|
||||
E.post(new StatusCountersUpdatedEvent(status));
|
||||
}
|
||||
E.post(new EmojiReactionsUpdatedEvent(parent.status.id, parent.status.reactions, parent.status.reactions.isEmpty(), adapter.parentHolder));
|
||||
adapter.parentHolder.imgLoader.updateImages();
|
||||
}, null).exec(parent.parentFragment.getAccountID());
|
||||
|
||||
@@ -46,7 +46,6 @@ import me.grishka.appkit.utils.CubicBezierInterpolator;
|
||||
import me.grishka.appkit.utils.V;
|
||||
|
||||
public class FooterStatusDisplayItem extends StatusDisplayItem{
|
||||
public final Status status;
|
||||
private final String accountID;
|
||||
public boolean hideCounts;
|
||||
|
||||
@@ -316,17 +315,16 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
||||
UiUtils.opacityIn(v);
|
||||
Bundle args=new Bundle();
|
||||
args.putString("account", item.accountID);
|
||||
AccountSession accountSession=AccountSessionManager.getInstance().getAccount(item.accountID);
|
||||
Instance instance=AccountSessionManager.getInstance().getInstanceInfo(accountSession.domain);
|
||||
if(instance.pleroma == null){
|
||||
Instance instance=AccountSessionManager.get(item.accountID).getInstance().get();
|
||||
if(instance.isAkkoma() || instance.isIceshrimp()){
|
||||
args.putParcelable("quote", Parcels.wrap(item.status));
|
||||
}else{
|
||||
StringBuilder prefilledText = new StringBuilder().append("\n\n");
|
||||
String ownID = AccountSessionManager.getInstance().getAccount(item.accountID).self.id;
|
||||
if (!item.status.account.id.equals(ownID)) prefilledText.append('@').append(item.status.account.acct).append(' ');
|
||||
prefilledText.append(item.status.url);
|
||||
args.putString("prefilledText", prefilledText.toString());
|
||||
args.putInt("selectionStart", 0);
|
||||
}else{
|
||||
args.putParcelable("quote", Parcels.wrap(item.status));
|
||||
}
|
||||
Nav.go(item.parentFragment.getActivity(), ComposeFragment.class, args);
|
||||
});
|
||||
@@ -335,6 +333,20 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void onFavoriteClick() {
|
||||
favorite.setSelected(item.status.favourited);
|
||||
favorite.animate().scaleX(0.95f).scaleY(0.95f).setInterpolator(CubicBezierInterpolator.DEFAULT).setDuration(75).start();
|
||||
UiUtils.opacityOut(favorite);
|
||||
favorite.postDelayed(() -> {
|
||||
favorite.animate().scaleX(1).scaleY(1).setInterpolator(CubicBezierInterpolator.DEFAULT).setDuration(150).start();
|
||||
UiUtils.opacityIn(favorite);
|
||||
if(item.status.favourited && !GlobalUserPreferences.reduceMotion && !GlobalUserPreferences.likeIcon) {
|
||||
favorite.startAnimation(spin);
|
||||
}
|
||||
}, 300);
|
||||
bindText(favorites, item.status.favouritesCount);
|
||||
}
|
||||
|
||||
private void onFavoriteClick(View v){
|
||||
if(item.status.preview) return;
|
||||
applyInteraction(v, status -> {
|
||||
|
||||
@@ -113,7 +113,7 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
|
||||
}
|
||||
|
||||
public static HeaderStatusDisplayItem fromAnnouncement(Announcement a, Status fakeStatus, Account instanceUser, BaseStatusListFragment parentFragment, String accountID, Consumer<String> consumeReadID) {
|
||||
HeaderStatusDisplayItem item = new HeaderStatusDisplayItem(a.id, instanceUser, a.startsAt, parentFragment, accountID, fakeStatus, null, null, null);
|
||||
HeaderStatusDisplayItem item = new HeaderStatusDisplayItem(a.id, instanceUser, a.startsAt!=null ? a.startsAt : fakeStatus.createdAt, parentFragment, accountID, fakeStatus, null, null, null);
|
||||
item.announcement = a;
|
||||
item.consumeReadAnnouncement = consumeReadID;
|
||||
return item;
|
||||
@@ -279,7 +279,7 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
|
||||
Toast.makeText(activity, activity.getString(rel.following ? R.string.followed_user : rel.requested ? R.string.following_user_requested : R.string.unfollowed_user, account.getDisplayUsername()), Toast.LENGTH_SHORT).show();
|
||||
});
|
||||
}else if(id==R.id.block_domain){
|
||||
UiUtils.confirmToggleBlockDomain(activity, item.parentFragment.getAccountID(), account.getDomain(), relationship!=null && relationship.domainBlocking, ()->{});
|
||||
UiUtils.confirmToggleBlockDomain(activity, item.parentFragment.getAccountID(), account, relationship!=null && relationship.domainBlocking, ()->{});
|
||||
}else if(id==R.id.bookmark){
|
||||
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setBookmarked(item.status, !item.status.bookmarked);
|
||||
}else if(id==R.id.manage_user_lists){
|
||||
|
||||
@@ -183,6 +183,11 @@ public abstract class StatusDisplayItem{
|
||||
try{
|
||||
ScheduledStatus scheduledStatus=parentObject instanceof ScheduledStatus s ? s : null;
|
||||
|
||||
// Check if account is null. This should never happen, but it seems to do in latest versions of glitch-soc
|
||||
if (scheduledStatus == null && status.account == null || (status.reblog != null && status.reblog.account == null) || (status.quote != null && status.quote.account == null)) {
|
||||
throw new Exception("status " + status.url + " has null account field");
|
||||
}
|
||||
|
||||
HeaderStatusDisplayItem header=null;
|
||||
boolean hideCounts=!AccountSessionManager.get(accountID).getLocalPreferences().showInteractionCounts;
|
||||
|
||||
@@ -274,8 +279,10 @@ public abstract class StatusDisplayItem{
|
||||
contentItems=items;
|
||||
}
|
||||
|
||||
if(statusForContent.quote!=null){
|
||||
if(statusForContent.quote!=null) {
|
||||
int quoteInlineIndex=statusForContent.content.lastIndexOf("<span class=\"quote-inline\"><br/><br/>RE:");
|
||||
if(quoteInlineIndex==-1)
|
||||
quoteInlineIndex=statusForContent.content.lastIndexOf("<span class=\"quote-inline\"><br><br>RE:");
|
||||
if(quoteInlineIndex!=-1)
|
||||
statusForContent.content=statusForContent.content.substring(0, quoteInlineIndex);
|
||||
else {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.joinmastodon.android.ui.sheets;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
@@ -15,6 +16,7 @@ import android.widget.TextView;
|
||||
|
||||
import org.joinmastodon.android.R;
|
||||
import org.joinmastodon.android.model.Account;
|
||||
import org.joinmastodon.android.ui.M3AlertDialogBuilder;
|
||||
import org.joinmastodon.android.ui.drawables.EmptyDrawable;
|
||||
import org.joinmastodon.android.ui.utils.UiUtils;
|
||||
import org.joinmastodon.android.ui.views.AutoOrientationLinearLayout;
|
||||
@@ -23,6 +25,11 @@ import org.joinmastodon.android.ui.views.ProgressBarButton;
|
||||
import androidx.annotation.DrawableRes;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.StringRes;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
import me.grishka.appkit.utils.V;
|
||||
import me.grishka.appkit.views.BottomSheet;
|
||||
|
||||
@@ -108,6 +115,51 @@ public abstract class AccountRestrictionConfirmationSheet extends BottomSheet{
|
||||
addRow(icon, getContext().getString(text));
|
||||
}
|
||||
|
||||
public void addDurationRow(@NonNull Context context, AtomicReference<Duration> muteDuration) {
|
||||
//Moshidon: add row to choose a duration, e.g. for muting accounts
|
||||
Button muteDurationBtn=new Button(getContext());
|
||||
muteDurationBtn.setOnClickListener(v->getMuteDurationDialog(context, muteDuration, muteDurationBtn).show());
|
||||
muteDurationBtn.setText(R.string.sk_duration_indefinite);
|
||||
addRow(R.drawable.ic_fluent_clock_20_regular, R.string.sk_mute_label, muteDurationBtn);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private M3AlertDialogBuilder getMuteDurationDialog(@NonNull Context context, AtomicReference<Duration> muteDuration, Button button){
|
||||
M3AlertDialogBuilder builder=new M3AlertDialogBuilder(context);
|
||||
builder.setTitle(R.string.sk_mute_label);
|
||||
builder.setIcon(R.drawable.ic_fluent_clock_20_regular);
|
||||
List<Duration> durations =List.of(Duration.ZERO,
|
||||
Duration.ofMinutes(5),
|
||||
Duration.ofMinutes(30),
|
||||
Duration.ofHours(1),
|
||||
Duration.ofHours(6),
|
||||
Duration.ofDays(1),
|
||||
Duration.ofDays(3),
|
||||
Duration.ofDays(7),
|
||||
Duration.ofDays(7));
|
||||
|
||||
String[] choices = {context.getString(R.string.sk_duration_indefinite),
|
||||
context.getString(R.string.sk_duration_minutes_5),
|
||||
context.getString(R.string.sk_duration_minutes_30),
|
||||
context.getString(R.string.sk_duration_hours_1),
|
||||
context.getString(R.string.sk_duration_hours_6),
|
||||
context.getString(R.string.sk_duration_days_1),
|
||||
context.getString(R.string.sk_duration_days_3),
|
||||
context.getString(R.string.sk_duration_days_7)};
|
||||
|
||||
builder.setSingleChoiceItems(choices, durations.indexOf(muteDuration.get()), (dialog, which) -> {});
|
||||
|
||||
builder.setPositiveButton(R.string.ok, (dialog, which)->{
|
||||
int selected = ((AlertDialog) dialog).getListView().getCheckedItemPosition();
|
||||
muteDuration.set(durations.get(selected));
|
||||
button.setText(choices[selected]);
|
||||
});
|
||||
builder.setNegativeButton(R.string.cancel, null);
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
|
||||
public interface ConfirmCallback{
|
||||
void onConfirmed(Runnable onSuccess, Runnable onError);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
package org.joinmastodon.android.ui.sheets;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
|
||||
import org.joinmastodon.android.R;
|
||||
import org.joinmastodon.android.model.Account;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
public class BlockDomainConfirmationSheet extends AccountRestrictionConfirmationSheet{
|
||||
public BlockDomainConfirmationSheet(@NonNull Context context, Account user, ConfirmCallback confirmCallback, ConfirmCallback blockUserConfirmCallback){
|
||||
super(context, user, confirmCallback);
|
||||
titleView.setText(R.string.block_domain_confirm_title);
|
||||
confirmBtn.setText(R.string.do_block_server);
|
||||
secondaryBtn.setText(context.getString(R.string.block_user_x_instead, user.getDisplayUsername()));
|
||||
icon.setImageResource(R.drawable.ic_fluent_shield_24_regular);
|
||||
subtitleView.setText(user.getDomain());
|
||||
addRow(R.drawable.ic_campaign_24px, R.string.users_cant_see_blocked);
|
||||
addRow(R.drawable.ic_fluent_eye_off_24_regular, R.string.you_wont_see_server_posts);
|
||||
addRow(R.drawable.ic_fluent_person_delete_24_regular, R.string.server_followers_will_be_removed);
|
||||
addRow(R.drawable.ic_fluent_arrow_reply_24_regular, R.string.server_cant_mention_or_follow_you);
|
||||
addRow(R.drawable.ic_fluent_history_24_regular, R.string.server_can_interact_with_older);
|
||||
|
||||
secondaryBtn.setOnClickListener(v->{
|
||||
if(loading)
|
||||
return;
|
||||
loading=true;
|
||||
secondaryBtn.setProgressBarVisible(true);
|
||||
blockUserConfirmCallback.onConfirmed(this::dismiss, ()->{
|
||||
secondaryBtn.setProgressBarVisible(false);
|
||||
loading=false;
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,13 @@
|
||||
package org.joinmastodon.android.ui.sheets;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
|
||||
import org.joinmastodon.android.R;
|
||||
import org.joinmastodon.android.model.Account;
|
||||
import org.joinmastodon.android.ui.M3AlertDialogBuilder;
|
||||
import org.joinmastodon.android.ui.views.M3Switch;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
@@ -39,47 +35,6 @@ public class MuteAccountConfirmationSheet extends AccountRestrictionConfirmation
|
||||
addRow(R.drawable.ic_fluent_alert_off_24_regular, R.string.mo_mute_notifications, m3Switch);
|
||||
|
||||
// add mute duration (Moshidon)
|
||||
Button muteDurationBtn=new Button(getContext());
|
||||
muteDurationBtn.setOnClickListener(v->getMuteDurationDialog(context, muteDuration, muteDurationBtn).show());
|
||||
muteDurationBtn.setText(R.string.sk_duration_indefinite);
|
||||
addRow(R.drawable.ic_fluent_clock_20_regular, R.string.sk_mute_label, muteDurationBtn);
|
||||
addDurationRow(context, muteDuration);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private M3AlertDialogBuilder getMuteDurationDialog(@NonNull Context context, AtomicReference<Duration> muteDuration, Button button){
|
||||
M3AlertDialogBuilder builder=new M3AlertDialogBuilder(context);
|
||||
builder.setTitle(R.string.sk_mute_label);
|
||||
builder.setIcon(R.drawable.ic_fluent_clock_20_regular);
|
||||
List<Duration> durations =List.of(Duration.ZERO,
|
||||
Duration.ofMinutes(5),
|
||||
Duration.ofMinutes(30),
|
||||
Duration.ofHours(1),
|
||||
Duration.ofHours(6),
|
||||
Duration.ofDays(1),
|
||||
Duration.ofDays(3),
|
||||
Duration.ofDays(7),
|
||||
Duration.ofDays(7));
|
||||
|
||||
String[] choices = {context.getString(R.string.sk_duration_indefinite),
|
||||
context.getString(R.string.sk_duration_minutes_5),
|
||||
context.getString(R.string.sk_duration_minutes_30),
|
||||
context.getString(R.string.sk_duration_hours_1),
|
||||
context.getString(R.string.sk_duration_hours_6),
|
||||
context.getString(R.string.sk_duration_days_1),
|
||||
context.getString(R.string.sk_duration_days_3),
|
||||
context.getString(R.string.sk_duration_days_7)};
|
||||
|
||||
builder.setSingleChoiceItems(choices, durations.indexOf(muteDuration.get()), (dialog, which) -> {});
|
||||
|
||||
builder.setPositiveButton(R.string.ok, (dialog, which)->{
|
||||
int selected = ((AlertDialog) dialog).getListView().getCheckedItemPosition();
|
||||
muteDuration.set(durations.get(selected));
|
||||
button.setText(choices[selected]);
|
||||
});
|
||||
builder.setNegativeButton(R.string.cancel, null);
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package org.joinmastodon.android.ui.sheets;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import org.joinmastodon.android.R;
|
||||
import org.joinmastodon.android.model.Account;
|
||||
import org.joinmastodon.android.model.Hashtag;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
|
||||
// MOSHIDON
|
||||
public class MuteHashtagConfirmationSheet extends AccountRestrictionConfirmationSheet{
|
||||
public MuteHashtagConfirmationSheet(@NonNull Context context, Account user, AtomicReference<Duration> muteDuration, Hashtag hashtag, ConfirmCallback confirmCallback){
|
||||
super(context, user, confirmCallback);
|
||||
titleView.setText(R.string.mo_mute_hashtag);
|
||||
confirmBtn.setText(R.string.do_mute);
|
||||
secondaryBtn.setVisibility(View.GONE);
|
||||
icon.setImageResource(R.drawable.ic_fluent_speaker_off_24_regular);
|
||||
subtitleView.setText("#"+hashtag.name);
|
||||
addRow(R.drawable.ic_fluent_number_symbol_24_regular, R.string.mo_mute_hashtag_explanation_muted_home);
|
||||
addRow(R.drawable.ic_fluent_eye_off_24_regular, R.string.mo_mute_hashtag_explanation_discreet);
|
||||
addRow(R.drawable.ic_fluent_search_24_regular, R.string.mo_mute_hashtag_explanation_search);
|
||||
addDurationRow(context, muteDuration);
|
||||
}
|
||||
}
|
||||
@@ -123,6 +123,7 @@ import org.joinmastodon.android.ui.Snackbar;
|
||||
import org.joinmastodon.android.ui.sheets.AccountSwitcherSheet;
|
||||
import org.joinmastodon.android.ui.sheets.BlockAccountConfirmationSheet;
|
||||
import org.joinmastodon.android.ui.sheets.MuteAccountConfirmationSheet;
|
||||
import org.joinmastodon.android.ui.sheets.BlockDomainConfirmationSheet;
|
||||
import org.joinmastodon.android.ui.text.CustomEmojiSpan;
|
||||
import org.joinmastodon.android.ui.text.HtmlParser;
|
||||
import org.joinmastodon.android.utils.Tracking;
|
||||
@@ -574,27 +575,61 @@ public class UiUtils {
|
||||
);
|
||||
}
|
||||
|
||||
public static void confirmToggleBlockDomain(Activity activity, String accountID, String domain, boolean currentlyBlocked, Runnable resultCallback) {
|
||||
showConfirmationAlert(activity, activity.getString(currentlyBlocked ? R.string.confirm_unblock_domain_title : R.string.confirm_block_domain_title),
|
||||
activity.getString(currentlyBlocked ? R.string.confirm_unblock : R.string.confirm_block, domain),
|
||||
activity.getString(currentlyBlocked ? R.string.do_unblock : R.string.do_block),
|
||||
R.drawable.ic_fluent_shield_28_regular,
|
||||
() -> {
|
||||
new SetDomainBlocked(domain, !currentlyBlocked)
|
||||
.setCallback(new Callback<>() {
|
||||
@Override
|
||||
public void onSuccess(Object result) {
|
||||
resultCallback.run();
|
||||
}
|
||||
public static void confirmToggleBlockDomain(Activity activity, String accountID, Account account, boolean currentlyBlocked, Runnable resultCallback){
|
||||
if(!currentlyBlocked){
|
||||
new BlockDomainConfirmationSheet(activity, account, (onSuccess, onError)->{
|
||||
new SetDomainBlocked(account.getDomain(), true)
|
||||
.setCallback(new Callback<>(){
|
||||
@Override
|
||||
public void onSuccess(Object result){
|
||||
resultCallback.run();
|
||||
onSuccess.run();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(ErrorResponse error) {
|
||||
error.showToast(activity);
|
||||
}
|
||||
})
|
||||
.wrapProgress(activity, R.string.loading, false)
|
||||
.exec(accountID);
|
||||
});
|
||||
@Override
|
||||
public void onError(ErrorResponse error){
|
||||
error.showToast(activity);
|
||||
onError.run();
|
||||
}
|
||||
})
|
||||
.exec(accountID);
|
||||
}, (onSuccess, onError)->{
|
||||
new SetAccountBlocked(account.id, true)
|
||||
.setCallback(new Callback<>(){
|
||||
@Override
|
||||
public void onSuccess(Relationship result){
|
||||
resultCallback.run();
|
||||
onSuccess.run();
|
||||
E.post(new RemoveAccountPostsEvent(accountID, account.id, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(ErrorResponse error){
|
||||
error.showToast(activity);
|
||||
onError.run();
|
||||
}
|
||||
})
|
||||
.exec(accountID);
|
||||
}).show();
|
||||
}else{
|
||||
new SetDomainBlocked(account.getDomain(), false)
|
||||
.setCallback(new Callback<>(){
|
||||
@Override
|
||||
public void onSuccess(Object result){
|
||||
resultCallback.run();
|
||||
new Snackbar.Builder(activity)
|
||||
.setText(activity.getString(R.string.unblocked_domain_x, account.getDomain()))
|
||||
.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(ErrorResponse error){
|
||||
error.showToast(activity);
|
||||
}
|
||||
})
|
||||
.wrapProgress(activity, R.string.loading, false)
|
||||
.exec(accountID);
|
||||
}
|
||||
}
|
||||
public static void confirmToggleMuteUser(Context context, String accountID, Account account, boolean currentlyMuted, Consumer<Relationship> resultCallback){
|
||||
if(!currentlyMuted){
|
||||
@@ -973,6 +1008,9 @@ public class UiUtils {
|
||||
}
|
||||
|
||||
public static <T> void updateList(List<T> oldList, List<T> newList, RecyclerView list, RecyclerView.Adapter<?> adapter, BiPredicate<T, T> areItemsSame) {
|
||||
RecyclerView.ItemAnimator animator=list.getItemAnimator();
|
||||
if(animator!=null)
|
||||
animator.endAnimations();
|
||||
// Save topmost item position and offset because for some reason RecyclerView would scroll the list to weird places when you insert items at the top
|
||||
int topItem, topItemOffset;
|
||||
if (list.getChildCount() == 0) {
|
||||
@@ -1183,6 +1221,10 @@ public class UiUtils {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Akkoma somehow makes this necessary, because youtube links look like posts. And because it may trigger too many requests.
|
||||
if (uri.getHost().toLowerCase().contains("youtube.com") || uri.getHost().toLowerCase().contains("youtu.be"))
|
||||
return false;
|
||||
|
||||
if (uri.getQuery() != null || uri.getFragment() != null || uri.getPath() == null)
|
||||
return false;
|
||||
|
||||
|
||||
@@ -312,7 +312,7 @@ public class AccountViewHolder extends BindableViewHolder<AccountViewModel> impl
|
||||
}else if(id==R.id.open_in_browser){
|
||||
UiUtils.launchWebBrowser(fragment.getActivity(), account.url);
|
||||
}else if(id==R.id.block_domain){
|
||||
UiUtils.confirmToggleBlockDomain(fragment.getActivity(), accountID, account.getDomain(), relationship.domainBlocking, ()->{
|
||||
UiUtils.confirmToggleBlockDomain(fragment.getActivity(), accountID, account, relationship.domainBlocking, ()->{
|
||||
relationship.domainBlocking=!relationship.domainBlocking;
|
||||
bindRelationship();
|
||||
});
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package org.joinmastodon.android.ui.views;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.ViewConfiguration;
|
||||
|
||||
public class EmojiReactionButton extends ProgressBarButton {
|
||||
private final Handler handler=new Handler();
|
||||
|
||||
public EmojiReactionButton(Context context){
|
||||
super(context);
|
||||
}
|
||||
|
||||
public EmojiReactionButton(Context context, AttributeSet attrs){
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public EmojiReactionButton(Context context, AttributeSet attrs, int defStyleAttr){
|
||||
super(context, attrs, defStyleAttr);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent event) {
|
||||
// allow long click even if button is disabled
|
||||
int action=event.getAction();
|
||||
if(action==MotionEvent.ACTION_DOWN && !isEnabled())
|
||||
handler.postDelayed(this::performLongClick, ViewConfiguration.getLongPressTimeout());
|
||||
if(action==MotionEvent.ACTION_UP)
|
||||
handler.removeCallbacksAndMessages(null);
|
||||
return super.onTouchEvent(event);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package org.joinmastodon.android.utils;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import org.joinmastodon.android.api.requests.oauth.GetOauthToken;
|
||||
import org.joinmastodon.android.api.session.AccountSession;
|
||||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
||||
import org.unifiedpush.android.connector.UnifiedPush;
|
||||
|
||||
public class UnifiedPushHelper {
|
||||
|
||||
/**
|
||||
* @param context
|
||||
* @return `true` if UnifiedPush is used
|
||||
*/
|
||||
public static boolean isUnifiedPushEnabled(@NonNull Context context) {
|
||||
return UnifiedPush.getAckDistributor(context) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* If any distributor is installed on the device
|
||||
* @param context
|
||||
* @return `true` if at least one is installed
|
||||
*/
|
||||
public static boolean hasAnyDistributorInstalled(@NonNull Context context) {
|
||||
return !UnifiedPush.getDistributors(context).isEmpty();
|
||||
}
|
||||
|
||||
public static void registerAllAccounts(@NonNull Context context) {
|
||||
for (AccountSession accountSession : AccountSessionManager.getInstance().getLoggedInAccounts()){
|
||||
// Sometimes this is null when the account's server has died (don't ask me how I know this)
|
||||
if (accountSession.app.vapidKey == null) {
|
||||
// TODO: throw this on a translatable string and tell the user to log out and back in
|
||||
Toast.makeText(context, "Error on unified push subscription: no valid vapid key for account " + accountSession.getFullUsername(), Toast.LENGTH_LONG).show();
|
||||
break;
|
||||
}
|
||||
UnifiedPush.register(
|
||||
context,
|
||||
accountSession.getID(),
|
||||
null,
|
||||
accountSession.app.vapidKey.replaceAll("=","")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public static void unregisterAllAccounts(@NonNull Context context) {
|
||||
for (AccountSession accountSession : AccountSessionManager.getInstance().getLoggedInAccounts()){
|
||||
UnifiedPush.unregister(
|
||||
context,
|
||||
accountSession.getID()
|
||||
);
|
||||
// use FCM again
|
||||
accountSession.getPushSubscriptionManager().registerAccountForPush(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -567,6 +567,7 @@
|
||||
android:layout_marginEnd="16dp"
|
||||
android:textAppearance="@style/m3_label_large"
|
||||
android:textColor="?colorM3OnSurface"
|
||||
android:visibility="gone"
|
||||
tools:text="500"/>
|
||||
|
||||
<ImageButton
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
android:indeterminate="true"
|
||||
android:outlineProvider="none"
|
||||
android:visibility="gone"/>
|
||||
<org.joinmastodon.android.ui.views.ProgressBarButton
|
||||
<org.joinmastodon.android.ui.views.EmojiReactionButton
|
||||
android:id="@+id/btn"
|
||||
style="@style/Widget.Mastodon.M3.Button.Outlined.Icon"
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@@ -94,4 +94,15 @@
|
||||
<string name="mo_swap_bookmark_with_reblog">استبدال إجراء الإضافة إلى الفواصل المرجعية بإعادة النشر</string>
|
||||
<string name="mo_setting_haptic_feedback_summary">اهتز عند التفاعل مع المنشورات</string>
|
||||
<string name="mo_notification_filter_reset">إعادة التعيين إلى الإفتراضية</string>
|
||||
<string name="mo_instance_view_info">إظهار معلومات الخادم</string>
|
||||
<string name="mo_settings_remove_tracking_params">روابط ذات خصوصية</string>
|
||||
<string name="mo_personal_note_saved">تم حفظ الملاحظة</string>
|
||||
<string name="mo_settings_unifiedpush_enable">تمكين</string>
|
||||
<string name="import_settings_failed">فشل في استيراد الإعدادات</string>
|
||||
<string name="export_settings_share">تصدير الإعدادات</string>
|
||||
<string name="export_settings_fail">فشل في تصدير الإعدادات</string>
|
||||
<string name="export_settings_title">تصدير الإعدادات</string>
|
||||
<string name="import_settings_title">استيراد الإعدادات</string>
|
||||
<string name="mo_error_display_copy_error_details">نسخ التفاصيل</string>
|
||||
<string name="mo_trending_link_read">قراءة</string>
|
||||
</resources>
|
||||
@@ -170,4 +170,23 @@
|
||||
<string name="sk_icon_microscope">مجهر</string>
|
||||
<string name="sk_delete_notification_confirm_action">احذف الإشعار</string>
|
||||
<string name="sk_notification_mention">أشار إليك %s</string>
|
||||
<string name="sk_settings_show_interaction_counts">إظهار عدد التفاعلات</string>
|
||||
<string name="sk_timeline_bubble">فقاعة</string>
|
||||
<string name="sk_do_remove_follower">حذف</string>
|
||||
<string name="sk_remove">حذف</string>
|
||||
<string name="sk_icon_bot">آلي</string>
|
||||
<string name="sk_icon_location">الموضع</string>
|
||||
<string name="sk_icon_laugh">ضحك</string>
|
||||
<string name="sk_icon_code">شفرة</string>
|
||||
<string name="sk_icon_bug">حشرة</string>
|
||||
<string name="sk_icon_pizza">بيتزا</string>
|
||||
<string name="sk_icon_gavel">مطرقة</string>
|
||||
<string name="sk_icon_feed">موجز حي</string>
|
||||
<string name="sk_icon_diamond">ألماس</string>
|
||||
<string name="sk_icon_umbrella">مطارية</string>
|
||||
<string name="sk_icon_water">ماء</string>
|
||||
<string name="sk_icon_sun">شمس</string>
|
||||
<string name="sk_icon_sunset">شروق الشمس</string>
|
||||
<string name="sk_icon_cloud">سحاب</string>
|
||||
<string name="sk_icon_rain">مطر</string>
|
||||
</resources>
|
||||
80
mastodon/src/main/res/values-ast/strings_mo.xml
Normal file
80
mastodon/src/main/res/values-ast/strings_mo.xml
Normal file
@@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="mo_hide_compose_button_while_scrolling_setting">Ancultar el botón d\'escritura mientres te desplaces</string>
|
||||
<string name="mo_settings_contribute">Contribuyir a Moshidon</string>
|
||||
<string name="mo_instance_status">Estáu</string>
|
||||
<string name="mo_mute_label">Duración:</string>
|
||||
<string name="mo_share_open_url">Abrir na aplicación</string>
|
||||
<string name="mo_duration_hours_6">6 hores</string>
|
||||
<string name="mo_instance_users">Usuarios</string>
|
||||
<string name="mo_setting_uniform_summary">Usar l\'iconu de la aplicación pa toles notificaciones</string>
|
||||
<string name="mo_settings_show_posts_without_alt">Amosar artículos con multimedia que-yos falta\'l testu alternativu</string>
|
||||
<string name="mo_settings_unifiedpush_warning_disabled">UnifiedPush nun ta habilitáu. Nun vas recibir nenguna notificación.</string>
|
||||
<string name="mo_trending_link_read">Leer</string>
|
||||
<string name="mo_settings_show_posts_without_alt_summary">Los artículos tarán ancultos en toles cronoloxíes, pero puen amosase nos filos y los avisos</string>
|
||||
<string name="mo_color_palette_nord">Nord</string>
|
||||
<string name="mo_color_palette_black_and_white">Blancu y Negru</string>
|
||||
<string name="mo_enable_dividers">Amosar divisores ente artículos</string>
|
||||
<string name="mo_relocate_publish_button">Mover el botón d\'espublizar</string>
|
||||
<string name="mo_welcome_text">Pa entamar, introduz el nome del dominiu de la to instancia embaxo, por favor.</string>
|
||||
<string name="mo_personal_note">Amestar una nota sobre esti perfil</string>
|
||||
<string name="mo_personal_note_saved">Nota guardada</string>
|
||||
<string name="mo_personal_note_confirm">Confirmar los cambeos a la nota</string>
|
||||
<string name="mo_update_available">Moshidon %s ta llistu pa descargar.</string>
|
||||
<string name="mo_update_ready">Moshidon %s ta descargáu y llistu pa instalar.</string>
|
||||
<string name="mo_no_image_desc_title">Ensin descripción de la semeya</string>
|
||||
<string name="mo_disable_reminder_to_add_alt_text">Desactivar el recordatoriu pa amestar el testu alternativu</string>
|
||||
<string name="mo_personal_note_update_failed">Fallu al guardar la nota</string>
|
||||
<string name="mo_emoji_recent">Recién usaos</string>
|
||||
<string name="mo_open_camera">Facer una semeya</string>
|
||||
<string name="mo_camera_not_available">Nun hai una cámara disponible!</string>
|
||||
<string name="mo_poll_option_add">Amestar una nueva opción a la encuesta</string>
|
||||
<string name="mo_fab_compose">Redactar</string>
|
||||
<string name="mo_sending_error">Erru espublizando</string>
|
||||
<string name="mo_duration_indefinite">Indefiníu</string>
|
||||
<string name="mo_duration_minutes_5">5 minutos</string>
|
||||
<string name="mo_duration_minutes_30">30 minutos</string>
|
||||
<string name="mo_duration_hours_1">1 hora</string>
|
||||
<string name="mo_duration_days_1">1 día</string>
|
||||
<string name="mo_duration_days_3">3 díes</string>
|
||||
<string name="mo_duration_days_7">7 díes</string>
|
||||
<string name="mo_instance_view_info">Ver versión del servidor</string>
|
||||
<string name="mo_instance_admin">Alministráu por</string>
|
||||
<string name="mo_instance_contact">Contautu</string>
|
||||
<string name="mo_instance_registration">Rexistru</string>
|
||||
<string name="mo_instance_registration_open">Abiertu</string>
|
||||
<string name="mo_instance_registration_approval">Requier aprobación</string>
|
||||
<string name="mo_instance_info_open_timeline">Cronoloxía llocal</string>
|
||||
<string name="mo_instance_info_moderated_servers">Servidores moderaos</string>
|
||||
<string name="mo_severity_suspend">Bloquiáu</string>
|
||||
<string name="mo_setting_true_black_summary">Podría aforrar enerxía en pantalles AMOLED</string>
|
||||
<string name="mo_setting_remote_follower_summary">Amosar siguidores dende otres instancies</string>
|
||||
<string name="mo_setting_relocate_publish_summary">Mover el botón d\'espublizar a la barra inferior</string>
|
||||
<string name="mo_setting_interaction_count_summary">Amosar cuánta xente interactuó con un artículu na cronoloxía</string>
|
||||
<string name="mo_setting_disable_swipe_summary">Eslizar pa camudar de cronoloxía</string>
|
||||
<string name="mo_swap_bookmark_with_reblog_summary">Meter en marcadores o impulsar artículos dende l\'avisu</string>
|
||||
<string name="mo_setting_haptic_feedback_summary">Vibrar cuando interactues colos artículos</string>
|
||||
<string name="mo_double_tap_to_swipe_between_tabs">Doble toque pa camudar ente pestañes</string>
|
||||
<string name="mo_haptic_feedback">Respuesta táctil</string>
|
||||
<string name="mo_show_media_preview">Amosar previsualización multimedia nes cronoloxíes</string>
|
||||
<string name="mo_settings_unifiedpush_warning">UnifiedPush nun ta habilitáu</string>
|
||||
<string name="mo_confirm_unfollow_title">Dexar de siguir</string>
|
||||
<string name="mo_confirm_unfollow">Confirma pa dexar de siguir a %s</string>
|
||||
<string name="mo_settings_unifiedpush_enable">Habilitar</string>
|
||||
<string name="mo_blocked_accounts">Cuentes bloquiaes</string>
|
||||
<string name="mo_settings_remove_tracking_params">Enllaces privaos</string>
|
||||
<string name="mo_add_custom_server_local_timeline">Amestar la cronoloxía llocal d\'otru sirvidor</string>
|
||||
<string name="mo_notification_action_replied">Respondisti al artículu de %s</string>
|
||||
<string name="mo_change_default_reply_visibility_to_unlisted">Responder como \'Non llistáu\' por defeutu</string>
|
||||
<string name="mo_notification_management_settings">Xestionar avisos</string>
|
||||
<string name="mo_composer_behavior">Comportamientu del editor</string>
|
||||
<string name="mo_load_remote_followers">Cargar los siguíos y siguidores del perfil remotu</string>
|
||||
<string name="export_settings_title">Esportar axustes</string>
|
||||
<string name="import_settings_title">Importar axustes</string>
|
||||
<string name="mo_error_display_title">Nun se pudo amosar l\'artículu</string>
|
||||
<string name="mo_error_display_copy_error_details">Copiar detalles</string>
|
||||
<string name="import_settings_confirm">¿Confirmes la importación de los axustes?</string>
|
||||
<string name="export_settings_share">Esportar Axustes</string>
|
||||
<string name="export_settings_fail">Nun se pudieron esportar los axustes</string>
|
||||
<string name="import_settings_failed">Nun se pudieron importar los axustes</string>
|
||||
</resources>
|
||||
336
mastodon/src/main/res/values-ast/strings_sk.xml
Normal file
336
mastodon/src/main/res/values-ast/strings_sk.xml
Normal file
@@ -0,0 +1,336 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sk_icon_weather">Tiempu</string>
|
||||
<string name="sk_settings_allow_remote_loading">Cargando información dende instancies remotes</string>
|
||||
<string name="sk_exclusive_list">Llista escluyente</string>
|
||||
<string name="sk_icon_bicycle">Bicicleta</string>
|
||||
<string name="sk_save_draft">¿Guardar el borrador?</string>
|
||||
<string name="sk_settings_default_content_type">Tipu de conteníu per defeutu</string>
|
||||
<string name="sk_search_fediverse">Buscar nel Fediversu</string>
|
||||
<string name="sk_settings_display_pronouns_in_user_listings">Amosar los pronomes nos llistaos d\'usuarios</string>
|
||||
<string name="sk_edit_alt_text">Editar el testu alternativu</string>
|
||||
<string name="sk_hashtag_timeline_local_only_switch">¿Amosar namás los artículos llocales?</string>
|
||||
<string name="sk_follow_as">Siguir dende otra cuenta</string>
|
||||
<string name="sk_content_type_markdown">Markdown</string>
|
||||
<plurals name="sk_posts_count_label">
|
||||
<item quantity="one">artículu</item>
|
||||
<item quantity="other">artículos</item>
|
||||
</plurals>
|
||||
<string name="sk_timeline_home">Aniciu</string>
|
||||
<string name="sk_settings_show_labels_in_navigation_bar">Amosar etiquetes de pestañes na barra de navegación</string>
|
||||
<plurals name="sk_time_minutes">
|
||||
<item quantity="one">%d minutu</item>
|
||||
<item quantity="other">%d minutos</item>
|
||||
</plurals>
|
||||
<string name="sk_poll_show_results">Amosar resultaos</string>
|
||||
<string name="sk_announcements">Anuncios</string>
|
||||
<string name="sk_your_lists">Les tos llistes</string>
|
||||
<string name="sk_confirm_unpin_post">¿De xuru que quies desapegar esti artículu?</string>
|
||||
<string name="sk_create">Crear</string>
|
||||
<string name="sk_pinned_posts">Fixáu</string>
|
||||
<string name="sk_delete_and_redraft">Desaniciar y reeditar</string>
|
||||
<string name="sk_confirm_delete_and_redraft_title">Desaniciar y reeditar artículu</string>
|
||||
<string name="sk_pinning">Fixando l\'artículu…</string>
|
||||
<string name="sk_image_description">Descripción de la semeya</string>
|
||||
<string name="sk_settings_show_replies">Amosar respuestes</string>
|
||||
<string name="sk_quoting_user">Mentando %s</string>
|
||||
<string name="sk_settings_reply_visibility">Visibilidá de la respuesta</string>
|
||||
<string name="sk_settings_reply_visibility_all">Toles respuestes</string>
|
||||
<string name="sk_settings_reply_visibility_self">Respuestes pa mi</string>
|
||||
<string name="sk_settings_load_new_posts">Cargar artículos nuevos automáticamente</string>
|
||||
<string name="sk_settings_show_interaction_counts">Amosar la cuenta d\'interaiciones</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_visibility_unlisted">Non llistáu</string>
|
||||
<string name="sk_settings_show_boosts">Amosar impulsos</string>
|
||||
<string name="sk_unpin_post">Desapegar del perfil</string>
|
||||
<string name="sk_confirm_unpin_post_title">Desapegar artículu del perfil</string>
|
||||
<string name="sk_unpinning">Desapegando artículu…</string>
|
||||
<string name="sk_settings_continues_playback">Superposición d\'audiu</string>
|
||||
<string name="sk_user_post_notifications_on">Activaes les notificaciones d\'artículos pa %s</string>
|
||||
<string name="sk_user_post_notifications_off">Desactivaes les notificaciones d\'artículos pa %s</string>
|
||||
<string name="sk_federated_timeline">Federación</string>
|
||||
<string name="sk_trending_posts_info_banner">Estos artículos tan ganando tracción nel Fediversu.</string>
|
||||
<string name="sk_update_available">Megalodon %s ta llistu pa descargar.</string>
|
||||
<string name="sk_update_ready">Megalodon %s ta descargáu y llistu pa instalar.</string>
|
||||
<string name="sk_check_for_update">Buscar actualizaciones</string>
|
||||
<string name="sk_no_update_available">Nun hai actualizaciones disponibles</string>
|
||||
<string name="sk_accept_follow_request">Aceptar solicitúes de siguimientu</string>
|
||||
<string name="sk_reject_follow_request">Refugar solicitúes de siguimientu</string>
|
||||
<string name="sk_lists_with_user">Llistes con %s</string>
|
||||
<string name="sk_list_timelines">Llistes</string>
|
||||
<string name="sk_follow_requests">Solicitúes de siguimientu</string>
|
||||
<string name="sk_notification_type_status">Artículos</string>
|
||||
<string name="sk_notification_type_posts">Avisos d\'artículos</string>
|
||||
<string name="sk_settings_color_palette">Paleta de color</string>
|
||||
<string name="sk_settings_show_federated_timeline">Amosar la llínea del tiempu federada</string>
|
||||
<string name="sk_color_palette_material3">Sistema</string>
|
||||
<string name="sk_color_palette_pink">Rosa</string>
|
||||
<string name="sk_color_palette_purple">Morao</string>
|
||||
<string name="sk_color_palette_brown">Marrón</string>
|
||||
<string name="sk_color_palette_red">Coloráu</string>
|
||||
<string name="sk_color_palette_yellow">Mariellu</string>
|
||||
<string name="sk_translate_post">Traducir</string>
|
||||
<string name="sk_translate_show_original">Amosar l\'orixinal</string>
|
||||
<string name="sk_post_language">Idioma: %s</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_clear_recent_languages">Desaniciar llingües usaes apocayá</string>
|
||||
<string name="sk_welcome_title">¡Bienveníu!</string>
|
||||
<string name="sk_welcome_text">¡El tiburón te saluda! Pa entamar, introduz el nome del dominiu de la to instancia embaxo.</string>
|
||||
<string name="sk_example_domain">exemplu.social</string>
|
||||
<string name="sk_settings_posting">Preferencies d\'espublizamientu</string>
|
||||
<string name="sk_settings_filters">Configurar filtros</string>
|
||||
<string name="sk_settings_auth">Configuraciones de seguridá</string>
|
||||
<string name="sk_settings_rules">Regles</string>
|
||||
<string name="sk_settings_profile">Configurar el perfil</string>
|
||||
<string name="sk_delete_notification_confirm_action">Desaniciar l\'avisu</string>
|
||||
<string name="sk_settings_donate">Donar</string>
|
||||
<string name="sk_settings_translation_availability_note_available">¡%s almite traducción!</string>
|
||||
<string name="sk_settings_translation_availability_note_unavailable">%s paez que nun almite traducción.</string>
|
||||
<string name="sk_undo_reblog">Desfaer impulsu</string>
|
||||
<string name="sk_clear_all_notifications">Desaniciar tolos avisos</string>
|
||||
<string name="sk_clear_all_notifications_confirm">¿De xuru que quies desaniciar tolos avisos?</string>
|
||||
<string name="sk_loading_fediverse_resource_title">Buscando nel Fediversu</string>
|
||||
<string name="sk_loading_resource_on_instance_title">Buscando en %s</string>
|
||||
<string name="sk_settings_publish_button_text_title">Personalizar el testu del botón d\'Espublizar</string>
|
||||
<string name="sk_reblog_with_visibility">Impulsa con visibilidá</string>
|
||||
<string name="sk_hashtags_you_follow">Etiquetes que sigues</string>
|
||||
<string name="sk_copy_link_to_post">Copiar l\'enllaz al artículu</string>
|
||||
<string name="sk_open_with_account">Abrir con otra cuenta</string>
|
||||
<string name="sk_resource_not_found">Nun pudo atopase el recursu</string>
|
||||
<string name="sk_quote_post">Espublizar sobre esto</string>
|
||||
<string name="sk_bookmark_as">Meter en marcadores con otra cuenta</string>
|
||||
<string name="sk_reblogged_as">Impulsáu como %s</string>
|
||||
<string name="sk_already_reblogged">Yá impulsáu</string>
|
||||
<string name="sk_reply_as">Responder con otra cuenta</string>
|
||||
<string name="sk_unsent_posts">Artículos non espublizáos</string>
|
||||
<string name="sk_draft">Borrador</string>
|
||||
<string name="sk_schedule">Programar</string>
|
||||
<string name="sk_confirm_delete_draft_title">Desaniciar borrador</string>
|
||||
<string name="sk_confirm_delete_draft">¿De xuru que quies desaniciar esti borrador?</string>
|
||||
<string name="sk_confirm_delete_scheduled_post">¿De xuru que quies desaniciar esti artículu programáu?</string>
|
||||
<string name="sk_draft_or_schedule">Borrador o programar</string>
|
||||
<string name="sk_compose_scheduled">Programáu para</string>
|
||||
<string name="sk_draft_saved">Borrador guardáu</string>
|
||||
<string name="sk_post_scheduled">Artículu programáu</string>
|
||||
<string name="sk_confirm_save_draft">¿Guardar el borrador?</string>
|
||||
<string name="sk_confirm_save_changes">¿Guardar cambeos?</string>
|
||||
<string name="sk_mark_as_draft">Marcar como borrador</string>
|
||||
<string name="sk_mark_as_read">Marcar como lleíu</string>
|
||||
<string name="sk_settings_single_notification">Amosar namás un avisu</string>
|
||||
<string name="sk_settings_unifiedpush">Usar UnifiedPush</string>
|
||||
<string name="sk_create_list_title">Crear llista</string>
|
||||
<string name="sk_list_name_hint">Nome de la llista</string>
|
||||
<string name="sk_list_replies_policy_list">miembros de la llista</string>
|
||||
<string name="sk_list_replies_policy_followed">usuarios siguíos</string>
|
||||
<string name="sk_list_replies_policy_none">nengunu</string>
|
||||
<string name="sk_delete_list">Desaniciar llista</string>
|
||||
<string name="sk_delete_list_confirm">¿De xuru que quies desaniciar la llista “%s”?</string>
|
||||
<string name="sk_edit_list_title">Editar llista</string>
|
||||
<string name="sk_timeline_local">Llocal</string>
|
||||
<string name="sk_timeline_federated">Federada</string>
|
||||
<string name="sk_timeline_bubble">Burbuya</string>
|
||||
<string name="sk_recent_searches_placeholder">Escribe pa entamar a buscar</string>
|
||||
<string name="sk_do_remove_follower">Desaniciar</string>
|
||||
<string name="sk_remove_follower_success">Siguidor desaniciáu con ésitu</string>
|
||||
<string name="sk_changelog">Llista de cambeos</string>
|
||||
<string name="sk_alt_text_missing_title">Falta\'l testu alternativu</string>
|
||||
<string name="sk_alt_text_missing">A lo menos falta-y la descripción a un archivu axuntu.</string>
|
||||
<string name="sk_publish_anyway">Espublizar de toes formes</string>
|
||||
<string name="sk_settings_disable_alt_text_reminder">Desactivar el recordatoriu pa amestar el testu alternativu</string>
|
||||
<string name="sk_timelines">Cronoloxíes</string>
|
||||
<string name="sk_timeline_posts">Artículos</string>
|
||||
<string name="sk_list">Llista</string>
|
||||
<string name="sk_pin_timeline">Fixar cronoloxía</string>
|
||||
<string name="sk_remove">Desaniciar</string>
|
||||
<string name="sk_timeline_icon">Iconu</string>
|
||||
<string name="sk_icon_heart">Corazón</string>
|
||||
<string name="sk_icon_star">Estrella</string>
|
||||
<string name="sk_icon_city">Ciudá</string>
|
||||
<string name="sk_icon_cat">Gatu</string>
|
||||
<string name="sk_icon_dog">Perru</string>
|
||||
<string name="sk_icon_rabbit">Conexu</string>
|
||||
<string name="sk_icon_turtle">Tortuga</string>
|
||||
<string name="sk_icon_balloon">Globu</string>
|
||||
<string name="sk_icon_bot">Robó</string>
|
||||
<string name="sk_icon_language">Llingüa</string>
|
||||
<string name="sk_icon_megaphone">Megáfonu</string>
|
||||
<string name="sk_icon_microphone">Micrófonu</string>
|
||||
<string name="sk_icon_microscope">Microscopiu</string>
|
||||
<string name="sk_icon_keyboard">Tecláu</string>
|
||||
<string name="sk_icon_location">Llocalización</string>
|
||||
<string name="sk_icon_news">Noticies</string>
|
||||
<string name="sk_icon_tag">Etiqueta</string>
|
||||
<string name="sk_icon_games">Xuegos</string>
|
||||
<string name="sk_icon_light_bulb">Bombilla</string>
|
||||
<string name="sk_icon_train">Tren</string>
|
||||
<string name="sk_icon_leaves">Fueyes</string>
|
||||
<string name="sk_icon_sport">Deporte</string>
|
||||
<string name="sk_icon_music">Música</string>
|
||||
<string name="sk_icon_people">Xente</string>
|
||||
<string name="sk_icon_health">Salú</string>
|
||||
<string name="sk_icon_important">Importante</string>
|
||||
<string name="sk_icon_shield">Escudu</string>
|
||||
<string name="sk_icon_book">Llibru</string>
|
||||
<string name="sk_icon_code">Códigu</string>
|
||||
<string name="sk_icon_map">Mapa</string>
|
||||
<string name="sk_icon_backpack">Mochila</string>
|
||||
<string name="sk_icon_fire">Fueu</string>
|
||||
<string name="sk_icon_bug">Bichu</string>
|
||||
<string name="sk_icon_pizza">Pizza</string>
|
||||
<string name="sk_icon_gavel">Mazu</string>
|
||||
<string name="sk_icon_verified">Verificáu</string>
|
||||
<string name="sk_icon_water">Agua</string>
|
||||
<string name="sk_icon_sun">Sol</string>
|
||||
<string name="sk_icon_cloud">Nube</string>
|
||||
<string name="sk_icon_thunderstorm">Tormenta</string>
|
||||
<string name="sk_icon_rain">Lluvia</string>
|
||||
<string name="sk_add_timeline_tag_error_empty">L\'etiqueta nun pue tar vacía</string>
|
||||
<string name="sk_icon_human">Persona</string>
|
||||
<string name="sk_icon_globe">Planeta</string>
|
||||
<string name="sk_icon_bed">Cama</string>
|
||||
<string name="sk_icon_diamond">Diamante</string>
|
||||
<string name="sk_icon_umbrella">Paragües</string>
|
||||
<string name="sk_edit_timeline">Editar cronoloxía</string>
|
||||
<string name="sk_add_timeline">Amestar cronoloxía</string>
|
||||
<string name="sk_edit_timelines">Editar cronoloxíes</string>
|
||||
<string name="sk_edit_timeline_tag_any">...o dalguna d\'estes</string>
|
||||
<string name="sk_edit_timeline_tag_all">...y toes estes</string>
|
||||
<string name="sk_edit_timeline_tag_none">...pero nenguna d\'estes</string>
|
||||
<string name="sk_edit_timeline_tag_hint">Introduz l\'etiqueta…</string>
|
||||
<string name="sk_edit_timeline_tags_hint">Introduz les etiquetes…</string>
|
||||
<string name="sk_alt_button">ALT</string>
|
||||
<string name="sk_gif_badge">GIF</string>
|
||||
<string name="sk_posted">%s espublizáu</string>
|
||||
<string name="sk_post_edited">editáu</string>
|
||||
<string name="sk_notification_type_update">Artículos editáos</string>
|
||||
<string name="sk_notify_update">Editáu un artículu impulsáu</string>
|
||||
<string name="sk_attach_file">Axuntar ficheru</string>
|
||||
<string name="sk_searching">Buscando…</string>
|
||||
<string name="sk_no_results">Ensin resultaos</string>
|
||||
<string name="sk_no_alt_text">Nun hai testu alternativu disponible</string>
|
||||
<string name="sk_settings_see_new_posts_button">Botón “Ver artículos nuevos”</string>
|
||||
<string name="sk_separator">·</string>
|
||||
<string name="sk_local_only">Namás l\'instancia llocal</string>
|
||||
<string name="sk_settings_support_local_only">El servidor namás almite espublizar llocalmente</string>
|
||||
<string name="sk_settings_show_alt_indicator">Indicador pa los testos alternativos</string>
|
||||
<string name="sk_inline_local_only">Namás llocal</string>
|
||||
<string name="sk_instance_features">Carauterístiques de l\'instancia</string>
|
||||
<string name="sk_signed_up">rexistráu</string>
|
||||
<string name="sk_reported">denunciáu</string>
|
||||
<string name="sk_reacted_with">%1$s reaccionó con %2$s</string>
|
||||
<string name="sk_reacted">%s reaccionó</string>
|
||||
<string name="sk_settings_server_version">Versión de servidor: %s</string>
|
||||
<string name="sk_notify_poll_results">Resultáos de la encuesta</string>
|
||||
<string name="sk_sign_ups">Rexistru d\'usuarios</string>
|
||||
<string name="sk_new_reports">Denuncies nueves</string>
|
||||
<string name="sk_expand">Espandir</string>
|
||||
<string name="sk_collapse">Encoyer</string>
|
||||
<string name="sk_settings_collapse_long_posts">Encoyer artículos mui llargos</string>
|
||||
<string name="sk_unfinished_attachments">Subiendo los archivos axuntos</string>
|
||||
<string name="sk_unfinished_attachments_message">Dalgunos archivos axuntos nun acabaron de xubir.</string>
|
||||
<string name="sk_settings_hide_interaction">Ancultar botones d\'interaición</string>
|
||||
<string name="sk_followed_as">Siguíu dende %s</string>
|
||||
<string name="sk_show_thread">Amosar filu</string>
|
||||
<string name="sk_content_type">Tipu de conteníu</string>
|
||||
<string name="sk_content_type_unspecified">Ensin especificar</string>
|
||||
<string name="sk_content_type_plain">Testu planu</string>
|
||||
<string name="sk_content_type_html">HTML</string>
|
||||
<string name="sk_content_type_bbcode">BBCode</string>
|
||||
<string name="sk_content_type_mfm">MFM</string>
|
||||
<string name="sk_notification_action_replied">Respuesta unviada a %s</string>
|
||||
<string name="sk_in_reply">En respuesta</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Confirma antes d\'impulsar</string>
|
||||
<string name="sk_instance_info_unavailable">L\'información de la instancia nun ta disponible temporalmente</string>
|
||||
<string name="sk_open_in_app">Abrir na aplicación</string>
|
||||
<string name="sk_open_in_app_failed">Nun se pudo abrir na aplicación</string>
|
||||
<string name="sk_settings_auto_reveal_nobody">Nunca</string>
|
||||
<string name="sk_settings_auto_reveal_author">Respuestes del mesmu autor</string>
|
||||
<string name="sk_settings_auto_reveal_anyone">Respuestes de toos</string>
|
||||
<string name="sk_settings_prefix_replies_never">Nunca</string>
|
||||
<string name="sk_advanced_options_show">Amosar opciones avanzaes</string>
|
||||
<string name="sk_advanced_options_hide">Ancultar opciones avanzaes</string>
|
||||
<string name="sk_spoiler_show">Amosar el conteníu</string>
|
||||
<string name="sk_pronouns_label">Pronomes</string>
|
||||
<string name="sk_settings_instance">Instancia</string>
|
||||
<string name="sk_settings_display_pronouns_in_timelines">Amosar los pronomes nes cronoloxíes</string>
|
||||
<string name="sk_settings_display_pronouns_in_threads">Amosar los pronomes nos filos</string>
|
||||
<string name="sk_list_exclusive_switch">Facer que la llista seya esclusiva</string>
|
||||
<string name="sk_switch_timeline">Camudar cronoloxía</string>
|
||||
<string name="sk_tab_home">Aniciu</string>
|
||||
<string name="sk_tab_notifications">Avisos</string>
|
||||
<string name="sk_tab_profile">Perfil</string>
|
||||
<string name="sk_settings_show_emoji_reactions_only_opened">Namás cuando s\'abre l\'artículu</string>
|
||||
<plurals name="sk_users_reacted_with">
|
||||
<item quantity="one">Un usuariu reaccionó con %2$s</item>
|
||||
<item quantity="other">%1$,d usuarios reaccionaron con %2$s</item>
|
||||
</plurals>
|
||||
<string name="sk_duration_indefinite">Indefiníu</string>
|
||||
<string name="sk_duration_minutes_5">5 minutos</string>
|
||||
<string name="sk_duration_minutes_30">30 minutos</string>
|
||||
<string name="sk_duration_hours_1">1 hora</string>
|
||||
<string name="sk_duration_hours_6">6 hores</string>
|
||||
<string name="sk_duration_days_1">1 día</string>
|
||||
<string name="sk_duration_days_3">3 díes</string>
|
||||
<string name="sk_duration_days_7">7 díes</string>
|
||||
<string name="sk_suicide_search_terms">Suicidiu</string>
|
||||
<string name="sk_tab_search">Busca</string>
|
||||
<string name="sk_mute_label">Duración</string>
|
||||
<string name="sk_load_missing_posts_above">Cargar artículos nuevos</string>
|
||||
<string name="sk_load_missing_posts_below">Cargar artículos vieyos</string>
|
||||
<plurals name="sk_time_seconds">
|
||||
<item quantity="one">%d segundu</item>
|
||||
<item quantity="other">%d segundos</item>
|
||||
</plurals>
|
||||
<plurals name="sk_time_hours">
|
||||
<item quantity="one">%d hora</item>
|
||||
<item quantity="other">%d hores</item>
|
||||
</plurals>
|
||||
<plurals name="sk_time_days">
|
||||
<item quantity="one">%d día</item>
|
||||
<item quantity="other">%d díes</item>
|
||||
</plurals>
|
||||
<string name="sk_blocked_accounts">Cuentes bloquiaes</string>
|
||||
<string name="sk_post_contains_media">L\'artículu contien conteníu multimedia</string>
|
||||
<string name="sk_poll_hide_results">Ancultar resultaos</string>
|
||||
<string name="sk_open_post_preview">Vista previa del artículu</string>
|
||||
<string name="sk_post_preview">Vista previa</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_confirm_delete_and_redraft">¿De xuru que quies desaniciar y reeditar esti artículu?</string>
|
||||
<string name="sk_confirm_pin_post_title">Fixar l\'artículu nel perfil</string>
|
||||
<string name="sk_color_palette_blue">Azul</string>
|
||||
<string name="sk_translated_using">Traducíu usando %s</string>
|
||||
<string name="sk_pin_post">Fixar nel perfil</string>
|
||||
<string name="sk_delete_notification">Desaniciar avisu</string>
|
||||
<string name="sk_confirm_pin_post">¿Quies fixar esti artículu al to perfil?</string>
|
||||
<string name="sk_settings_reply_visibility_following">Respuestes a los mios siguidores</string>
|
||||
<string name="sk_federated_timeline_info_banner">Estos son los artículos más recientes de la xente de la to federación.</string>
|
||||
<string name="sk_settings_color_palette_default">Por defeutu (%s)</string>
|
||||
<string name="sk_color_palette_green">Verde</string>
|
||||
<string name="sk_settings_publish_button_text">Testu del botón d\'espublizamientu</string>
|
||||
<string name="sk_confirm_delete_scheduled_post_title">Desaniciar artículu programáu</string>
|
||||
<string name="sk_hashtag">Etiqueta</string>
|
||||
<string name="sk_icon_image">Semeya</string>
|
||||
<string name="sk_available_languages">Llingües disponibles</string>
|
||||
<string name="sk_confirm_clear_recent_languages">¿De xuru que quies desaniciar les llingües usaes apocayá?</string>
|
||||
<string name="sk_icon_coffee">Café</string>
|
||||
<string name="sk_icon_color_palette">Paleta de colores</string>
|
||||
<string name="sk_clear_all_notifications_confirm_action">Desaniciar tou</string>
|
||||
<string name="sk_settings_uniform_icon_for_notifications">Mesmu icono pa tolos avisos</string>
|
||||
<string name="sk_compose_draft">L\'artículu va guardase como borrador.</string>
|
||||
<string name="sk_timelines_add">Amestar</string>
|
||||
<string name="sk_icon_briefcase">Maletu</string>
|
||||
<string name="sk_reblog_as">Impulsar con otra cuenta</string>
|
||||
<string name="sk_pinned_timeline">Fixáu a aniciu</string>
|
||||
<string name="sk_icon_headphones">Auriculares</string>
|
||||
<string name="sk_save_draft_message">¿Quies guardar los tos cambios nesti borrador o espublizalo agora?</string>
|
||||
<string name="sk_delete_notification_confirm">¿De xuru que quies desaniciar esti avisu?</string>
|
||||
<string name="sk_already_bookmarked">Yá ta metíu en marcadores</string>
|
||||
<string name="sk_compose_no_draft">Nun guardar borrador</string>
|
||||
<string name="sk_remove_follower">Desaniciar como siguidor</string>
|
||||
<string name="sk_bookmarked_as">Metíu en marcadores como %s</string>
|
||||
<string name="sk_notification_mention">Fuisti mentáu por %s</string>
|
||||
<string name="sk_settings_translate_only_opened">Namás traducir artículos abiertos</string>
|
||||
<string name="sk_list_replies_policy">Amosar respuestes a</string>
|
||||
<string name="sk_timeline">Cronoloxía</string>
|
||||
<string name="sk_edit_timeline_tag_main">Artículos que contienen l\'etiqueta…</string>
|
||||
</resources>
|
||||
@@ -375,4 +375,55 @@
|
||||
<item quantity="one">publicació</item>
|
||||
<item quantity="other">publicacions</item>
|
||||
</plurals>
|
||||
</resources>
|
||||
<string name="sk_trending_links_info_banner">Aquestes notícies s\'estan comentant per tot el Fedivers.</string>
|
||||
<string name="sk_icon_sunset">Foscant</string>
|
||||
<string name="sk_icon_cloud">Núvol</string>
|
||||
<string name="sk_icon_water">Aigua</string>
|
||||
<string name="sk_icon_sun">Sol</string>
|
||||
<string name="sk_icon_thunderstorm">Tempesta</string>
|
||||
<string name="sk_icon_rain">Pluja</string>
|
||||
<string name="sk_icon_snowflake">Floc de neu</string>
|
||||
<string name="sk_posted">%s publicat/s</string>
|
||||
<string name="sk_settings_show_emoji_reactions">Mostrar reaccions d\'emoji a la línia de temps</string>
|
||||
<string name="sk_settings_show_emoji_reactions_hide_empty">Ocultar reaccions d\'emoji buides</string>
|
||||
<string name="sk_settings_show_emoji_reactions_only_opened">Només quan s\'obri la publicació</string>
|
||||
<string name="sk_suicide_search_terms">Suïcidi</string>
|
||||
<string name="sk_search_suicide_title">Si estàs sofrint…</string>
|
||||
<string name="sk_search_suicide_hotlines">Trobar una línia d\'ajuda</string>
|
||||
<string name="sk_do_not_show_again">No tornar a mostrar</string>
|
||||
<string name="sk_suicide_helplines_url">https://findahelpline.com</string>
|
||||
<string name="sk_post_contains_media">La publicació conté contingut multimedia</string>
|
||||
<string name="sk_load_missing_posts_below">Carregar publicacions més antigues</string>
|
||||
<plurals name="sk_time_seconds">
|
||||
<item quantity="one">%d segon</item>
|
||||
<item quantity="many">%d segons</item>
|
||||
<item quantity="other">%d segons</item>
|
||||
</plurals>
|
||||
<plurals name="sk_time_minutes">
|
||||
<item quantity="one">%d minut</item>
|
||||
<item quantity="many">%d minuts</item>
|
||||
<item quantity="other">%d minuts</item>
|
||||
</plurals>
|
||||
<plurals name="sk_time_hours">
|
||||
<item quantity="one">%d hora</item>
|
||||
<item quantity="many">%d hores</item>
|
||||
<item quantity="other">%d hores</item>
|
||||
</plurals>
|
||||
<plurals name="sk_time_days">
|
||||
<item quantity="one">%d dia</item>
|
||||
<item quantity="many">%d díes</item>
|
||||
<item quantity="other">%d díes</item>
|
||||
</plurals>
|
||||
<string name="sk_muted_accounts">Comptes silenciats</string>
|
||||
<string name="sk_blocked_accounts">Comptes bloquejats</string>
|
||||
<string name="sk_settings_like_icon">Utilitzar un cor com a icona de favorit</string>
|
||||
<string name="sk_recently_used">Utilitzat recentment</string>
|
||||
<string name="sk_settings_underlined_links">Enllaços subratllats</string>
|
||||
<string name="sk_set_as_default">Posar per defecte</string>
|
||||
<string name="sk_edit_alt_text">Editar text alternatiu</string>
|
||||
<string name="sk_settings_color_palette_default">Per defecte (%s)</string>
|
||||
<string name="sk_search_suicide_message">Si estàs buscant una senyal per a no suicidar-te, ací està. Per favor, planteja\'t cridar a una línia d\'ajuda de prevenció del suïcidi si estàs sofrint.</string>
|
||||
<string name="sk_load_missing_posts_above">Carregar publicacions més recents</string>
|
||||
<string name="sk_trending_posts_info_banner">Aquestes publicacions estan guanyant popularitat en el Fedivers.</string>
|
||||
<string name="sk_settings_show_emoji_reactions_always">Mostrar sempre el botó d\'afegir</string>
|
||||
</resources>
|
||||
|
||||
@@ -606,6 +606,7 @@
|
||||
<string name="manage_list_members">Listenmitglieder verwalten</string>
|
||||
<string name="list_no_members">Noch keine Mitglieder</string>
|
||||
<string name="dont_remind_again">Nicht erneut erinnern</string>
|
||||
<string name="reply_to_user">Antwort an %s</string>
|
||||
<!-- %s is a time interval ("5 months") -->
|
||||
<string name="old_post_sheet_title">Dieser Beitrag ist %s alt</string>
|
||||
</resources>
|
||||
|
||||
@@ -121,4 +121,7 @@
|
||||
<string name="export_settings_share">Einstellungen exportieren</string>
|
||||
<string name="export_settings_fail">Exportieren der Einstellungen fehlgeschlagen</string>
|
||||
<string name="export_settings_title">Einstellungen exportieren</string>
|
||||
</resources>
|
||||
<string name="mo_personal_note_saved">Notiz gespeichert</string>
|
||||
<string name="mo_settings_enhance_text_size_summary">Macht den Text der App größer</string>
|
||||
<string name="mo_settings_enhance_text_size">Textgröße verändern</string>
|
||||
</resources>
|
||||
|
||||
@@ -185,7 +185,7 @@
|
||||
<string name="sk_icon_location">Standort</string>
|
||||
<string name="sk_icon_microphone">Mikrofon</string>
|
||||
<string name="sk_icon_microscope">Mikroskop</string>
|
||||
<string name="sk_icon_keyboard">Keyboard</string>
|
||||
<string name="sk_icon_keyboard">Tastatur</string>
|
||||
<string name="sk_icon_coffee">Kaffee</string>
|
||||
<string name="sk_icon_laugh">Lachen</string>
|
||||
<string name="sk_icon_news">Nachrichten</string>
|
||||
|
||||
@@ -113,4 +113,5 @@
|
||||
<string name="mo_trending_link_read">Ανάγνωση</string>
|
||||
<string name="mo_settings_remove_tracking_params_summary">Απομάκρυνση πληροφοριών ανίχνευσης από συνδέσμους</string>
|
||||
<string name="mo_settings_remove_tracking_params">Ιδιωτικοί Σύνδεσμοι</string>
|
||||
<string name="mo_personal_note_saved">Η σημείωση αποθηκεύτηκε</string>
|
||||
</resources>
|
||||
@@ -96,4 +96,22 @@
|
||||
<string name="mo_trending_link_read">Legi</string>
|
||||
<string name="mo_error_display_copy_error_details">Kopii informojn</string>
|
||||
<string name="mo_settings_unifiedpush_enable">Ebligi</string>
|
||||
</resources>
|
||||
<string name="mo_settings_remove_tracking_params">Malpublikaj Ligiloj</string>
|
||||
<string name="import_settings_failed">Malsukcesis importi agordojn</string>
|
||||
<string name="export_settings_share">Eksporti agordojn</string>
|
||||
<string name="export_settings_fail">Malsukcesis eksporti agordojn</string>
|
||||
<string name="export_settings_title">Eksportu agordojn</string>
|
||||
<string name="export_settings_summary">Eksporti la agordojn kaj templinioj de ĉiuj ensalutitaj kontoj</string>
|
||||
<string name="mo_settings_remove_tracking_params_summary">Foru gvitidintan informacion el ligiloj</string>
|
||||
<string name="mo_personal_note_saved">Noto savita</string>
|
||||
<string name="import_settings_confirm_body">Ĉiu nunaj agordoj kaj templinioj estos anstataŭitaj! Ĉi tiu ago ne povas malfarita.</string>
|
||||
<string name="mo_settings_unifiedpush_warning">UnifiedPush ne estas ŝaltita</string>
|
||||
<string name="mo_settings_unifiedpush_warning_no_distributors">Neniom da instalitaj distribuantoj de UnifiedPush. Vi ne recivos iajn sciigojn.</string>
|
||||
<string name="mo_mute_notifications">Ĉu malmontru sciigojn de ĉi tiu uzanto?</string>
|
||||
<string name="import_settings_confirm">Ĉu akceptu importi agordojn?</string>
|
||||
<string name="mo_settings_unifiedpush_warning_disabled">UnifiedPush ne estas ŝaltita. Vi ne recivos iajn sciigojn.</string>
|
||||
<string name="import_settings_title">Importi agordojn</string>
|
||||
<string name="import_settings_summary">Importi antaŭitajn eksportitajn agordojn kaj templiniojn</string>
|
||||
<string name="mo_error_display_title">Malsukcesis montri afiŝon</string>
|
||||
<string name="mo_error_display_text">Io malsukcesis dum ŝarĝas ĉi tiun afiŝon. Se la problemo daŭras, bonvole raportu ĝin en nia paĝo de Issues kune kun la detalojn.</string>
|
||||
</resources>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<string name="mo_emoji_recent">Usados recientemente</string>
|
||||
<string name="mo_clear_recent_emoji">Borrar emojis usados recientemente</string>
|
||||
<string name="mo_disable_relocate_publish_button_to_enable_customization">Desactiva \"Recolocar botón de publicación\" para poder personalizar</string>
|
||||
<string name="mo_poll_option_add">Añadir nueva opción en la encuesta</string>
|
||||
<string name="mo_poll_option_add">Añadir opción en la encuesta</string>
|
||||
<string name="mo_fab_compose">Redactar</string>
|
||||
<string name="mo_sending_error">Error al publicar</string>
|
||||
<string name="mo_settings_contribute">Contribuir en Moshidon</string>
|
||||
@@ -70,7 +70,7 @@
|
||||
<string name="mo_setting_relocate_publish_summary">Mueve el botón de publicación a la barra inferior</string>
|
||||
<string name="mo_swap_bookmark_with_reblog_summary">Añade un marcador o impulsa publicaciones desde la notificación</string>
|
||||
<string name="mo_open_camera">Hacer foto</string>
|
||||
<string name="mo_camera_not_available">¡No hay cámara disponible!</string>
|
||||
<string name="mo_camera_not_available">¡No detecto la cámara!</string>
|
||||
<string name="mo_setting_haptic_feedback_summary">Vibra cuando interactúas con publicaciones</string>
|
||||
<string name="mo_haptic_feedback">Vibración</string>
|
||||
<string name="mo_color_palette_black_and_white">Blanco y Negro</string>
|
||||
@@ -81,7 +81,7 @@
|
||||
<string name="mo_show_media_preview">Mostrar previsualización de multimedia en la cronología</string>
|
||||
<string name="mo_recent_emoji_cleared">Emojis recientes eliminados</string>
|
||||
<string name="mo_double_tap_to_search">Doble toque para abrir la búsqueda</string>
|
||||
<string name="mo_unmuted_conversation_successfully">Conversación sin silencio</string>
|
||||
<string name="mo_unmuted_conversation_successfully">Conversación no silenciada</string>
|
||||
<string name="mo_confirm_to_unmute_conversation">¿Quieres dejar de silenciar esta conversación\?</string>
|
||||
<string name="mo_confirm_to_mute_conversation">¿Quieres silenciar esta conversación\?</string>
|
||||
<string name="mo_muted_conversation_successfully">Conversación silenciada correctamente</string>
|
||||
@@ -101,16 +101,16 @@
|
||||
<string name="mo_mute_notifications">¿Ocultar las notificaciones de este usuario?</string>
|
||||
<string name="mo_settings_unifiedpush_warning">UnifiedPush no habilitado</string>
|
||||
<string name="mo_settings_unifiedpush_warning_disabled">UnifiedPush no está habilitado. No recibirás ninguna notificación.</string>
|
||||
<string name="export_settings_share">Exportar configuración</string>
|
||||
<string name="mo_error_display_text">Algo salió mal al cargar esta publicación. Si el problema persiste, infórmelo en nuestra página de Problemas junto con los detalles del error.</string>
|
||||
<string name="export_settings_share">Exportar ajustes</string>
|
||||
<string name="mo_error_display_text">Algo salió mal al cargar esta publicación. Si el problema continúa, infórmanos en nuestra página de soporte junto con los detalles del error.</string>
|
||||
<string name="import_settings_summary">Importar configuraciones y líneas de tiempo previamente exportadas</string>
|
||||
<string name="mo_settings_unifiedpush_warning_no_distributors">No hay distribuidores de UnifiedPush instalados. No recibirás ninguna notificación.</string>
|
||||
<string name="mo_settings_unifiedpush_enable">Permitir</string>
|
||||
<string name="import_settings_confirm">¿Confirmar para importar la configuración?</string>
|
||||
<string name="import_settings_confirm_body">¡Se sobrescribirán todas las configuraciones y líneas de tiempo actuales! Esta acción no se puede deshacer.</string>
|
||||
<string name="import_settings_confirm_body">¡Se sobrescribirán todas las configuraciones y cronologías actuales! Esta acción no se puede deshacer.</string>
|
||||
<string name="import_settings_failed">No se pudo importar la configuración</string>
|
||||
<string name="export_settings_fail">No se pudo exportar la configuración</string>
|
||||
<string name="export_settings_title">Exportar configuración</string>
|
||||
<string name="export_settings_title">Exportar ajustes</string>
|
||||
<string name="export_settings_summary">Exportar configuraciones y cronogramas para todas las cuentas</string>
|
||||
<string name="import_settings_title">Importar ajustes</string>
|
||||
<string name="mo_error_display_title">No se pudo mostrar la publicación</string>
|
||||
@@ -118,4 +118,10 @@
|
||||
<string name="mo_trending_link_read">Leer</string>
|
||||
<string name="mo_settings_remove_tracking_params">Enlaces Privados</string>
|
||||
<string name="mo_settings_remove_tracking_params_summary">Eliminar información de rastreo de los enlaces</string>
|
||||
</resources>
|
||||
<string name="mo_personal_note_saved">Nota guardada</string>
|
||||
<string name="mo_settings_enhance_text_size">Aumentar tamaño del texto</string>
|
||||
<string name="mo_settings_enhance_text_size_summary">Agranda el texto de la app</string>
|
||||
<string name="mo_mute_hashtag_explanation_discreet">Los demás no sabrán que has silenciado esta etiqueta.</string>
|
||||
<string name="mo_mute_hashtag_explanation_muted_home">No verás publicaciones con esta etiqueta en tu Inicio.</string>
|
||||
<string name="mo_mute_hashtag_explanation_search">Todavía verás publicaciones con esta etiqueta buscándolas o en otras cronologías.</string>
|
||||
</resources>
|
||||
|
||||
@@ -224,7 +224,7 @@
|
||||
<string name="sk_timeline_posts">Publicaciones</string>
|
||||
<string name="sk_timelines_add">Añadir</string>
|
||||
<string name="sk_timeline">Línea de tiempo</string>
|
||||
<string name="sk_hashtag">Hashtag</string>
|
||||
<string name="sk_hashtag">Etiqueta</string>
|
||||
<string name="sk_pin_timeline">Anclar cronología</string>
|
||||
<string name="sk_unpin_timeline">Desanclar cronología</string>
|
||||
<string name="sk_pinned_timeline">Anclado a inicio</string>
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
<string name="sk_publish_anyway">Argitaratu hala ere</string>
|
||||
<string name="sk_settings_disable_alt_text_reminder">Desgaitu gogorarazlea testu alternatiboa gehitzeko</string>
|
||||
<string name="sk_timelines">Denbora-lerroak</string>
|
||||
<string name="sk_timeline_posts">Bidalketak</string>
|
||||
<string name="sk_timeline_posts">Argitalpenak</string>
|
||||
<string name="sk_timelines_add">Gehitu</string>
|
||||
<string name="sk_timeline">Denbora-lerroa</string>
|
||||
<string name="sk_list">Zerrenda</string>
|
||||
@@ -218,7 +218,7 @@
|
||||
<string name="sk_alt_button">ALT</string>
|
||||
<string name="sk_post_edited">Editatua</string>
|
||||
<string name="sk_notification_type_update">Editatutako argitalpenak</string>
|
||||
<string name="sk_notify_update">Bultzatutako bidalketa editatu da</string>
|
||||
<string name="sk_notify_update">Bultzatutako argitalpena editatu da</string>
|
||||
<string name="sk_no_results">Emaitzarik ez</string>
|
||||
<string name="sk_save_draft">Zirriborroa gorde\?</string>
|
||||
<string name="sk_no_alt_text">Ez dago testu alternatiborik eskuragarri</string>
|
||||
@@ -270,7 +270,7 @@
|
||||
<string name="sk_quoting_user">%s aipatzen</string>
|
||||
<string name="sk_settings_reply_visibility_self">Niri eginiko erantzunak</string>
|
||||
<string name="sk_notification_action_replied">%s-(r)i erantzun</string>
|
||||
<string name="sk_bubble_timeline_info_banner">Hauexek dira zure instantziako administratzaileek saretik aukeratutako azken bidalketak.</string>
|
||||
<string name="sk_bubble_timeline_info_banner">Hauexek dira zure instantziako administratzaileek saretik aukeratutako azken argitalpenak.</string>
|
||||
<string name="sk_content_type">Edukiaren mota</string>
|
||||
<string name="sk_content_type_unspecified">Zehaztu gabea</string>
|
||||
<string name="sk_content_type_plain">Testu arrunta</string>
|
||||
@@ -278,8 +278,8 @@
|
||||
<string name="sk_content_type_markdown">Markdown</string>
|
||||
<string name="sk_content_type_bbcode">BBCode</string>
|
||||
<string name="sk_content_type_mfm">MFM</string>
|
||||
<string name="sk_settings_content_types">Gaitu bidalketaren formateatzea</string>
|
||||
<string name="sk_settings_content_types_explanation">Markdown bezalako eduki-mota ezartzea ahalbidetzen du bidalketa bat sortzerakoan. Gogoan izan instantzia guztiek ez dutela hau baimentzen.</string>
|
||||
<string name="sk_settings_content_types">Gaitu argitalpenaren formateatzea</string>
|
||||
<string name="sk_settings_content_types_explanation">Markdown bezalako eduki-mota ezartzea ahalbidetzen du argitalpen bat sortzerakoan. Gogoan izan instantzia guztiek ez dutela hau baimentzen.</string>
|
||||
<string name="sk_settings_default_content_type">Eduki-mota lehenetsia</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Berretsi bultzatu aurretik</string>
|
||||
<string name="sk_reacted_with">%1$s-(e)k honela erreakzionatu du: %2$s</string>
|
||||
@@ -290,9 +290,9 @@
|
||||
<string name="sk_edit_timeline_tags_explanation">Jakin eragiketa hauek zerbitzariak kudeatzen dituela. Litekeena da konbinazioetarako euskarririk ez izatea.</string>
|
||||
<string name="sk_settings_unifiedpush_no_distributor_body">Banatzaile bat instalatu behar duzu UnifiedPush jakinarazpenek funtzionatzeko. Informazio gehiago: https://unifiedpush.org/</string>
|
||||
<string name="sk_icon_feed">Jarioa</string>
|
||||
<string name="sk_edit_timeline_tag_main">Traola hau duten tootak…</string>
|
||||
<string name="sk_edit_timeline_tag_main">Traola hau duten argitalpenak…</string>
|
||||
<string name="sk_icon_verified">Egiaztatua</string>
|
||||
<string name="sk_hashtag_timeline_local_only_switch">Erakutsi toot lokalak soilik\?</string>
|
||||
<string name="sk_hashtag_timeline_local_only_switch">Erakutsi argitalpen lokalak soilik?</string>
|
||||
<string name="sk_icon_umbrella">Euritakoa</string>
|
||||
<string name="sk_settings_unifiedpush_no_distributor">Ez da banatzailerik aurkitu</string>
|
||||
<string name="sk_edit_timeline_tag_any">...edo hauetako edozein</string>
|
||||
@@ -304,4 +304,23 @@
|
||||
<string name="sk_icon_recycle_bin">Zakarrontzia</string>
|
||||
<string name="sk_trending_links_info_banner">Hauek dira zure zerbitzarian komentatzen ari diren albisteak</string>
|
||||
<string name="sk_add_timeline_tag_error_empty">Traola ezin da hutsik egon</string>
|
||||
<string name="sk_icon_sun">Eguzkia</string>
|
||||
<string name="sk_icon_sunset">Ilunabarra</string>
|
||||
<string name="sk_icon_cloud">Lainoa</string>
|
||||
<string name="sk_icon_rain">Euria</string>
|
||||
<string name="sk_icon_snowflake">Elur maluta</string>
|
||||
<string name="sk_gif_badge">GIF</string>
|
||||
<string name="sk_posted">%s(e)k argitaratua</string>
|
||||
<string name="sk_icon_thunderstorm">Ekaitza</string>
|
||||
<string name="sk_trending_posts_info_banner">Argitalpen hauek garrantzia hartzen ari dira Fedibertsoan.</string>
|
||||
<plurals name="sk_posts_count_label">
|
||||
<item quantity="one">Argitalpena</item>
|
||||
<item quantity="other">Argitalpenak</item>
|
||||
</plurals>
|
||||
<string name="sk_post_contains_media">Multimediadun argitalpena</string>
|
||||
<string name="sk_load_missing_posts_below">Argitalpen zaharragoak kargatu</string>
|
||||
<string name="sk_load_missing_posts_above">Argitalpen berriagoak kargatu</string>
|
||||
<string name="sk_settings_default_visibility">Lehenetsitako argitalpenen ikusgarritasuna</string>
|
||||
<string name="sk_open_post_preview">Aurreikusi argitalpena</string>
|
||||
<string name="sk_post_preview">Aurrebista</string>
|
||||
</resources>
|
||||
@@ -1,4 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
<string name="mo_relocate_publish_button">Siirrä julkaisupainike uudelleen</string>
|
||||
<string name="mo_color_palette_nord">Nord</string>
|
||||
<string name="mo_color_palette_black_and_white">Mustavalkoinen</string>
|
||||
<string name="mo_enable_dividers">Näytä postin jakajat</string>
|
||||
</resources>
|
||||
@@ -118,4 +118,5 @@
|
||||
<string name="export_settings_fail">Échec de l\'export des paramètres</string>
|
||||
<string name="export_settings_title">Export des paramètres</string>
|
||||
<string name="mo_settings_unifiedpush_warning">UnifiedPush n\'est pas activé</string>
|
||||
<string name="mo_personal_note_saved">La note a été enregistrée</string>
|
||||
</resources>
|
||||
@@ -414,4 +414,22 @@
|
||||
<string name="sk_settings_lock_account">Approuver manuellement les nouveaux·elles abonné·e·s</string>
|
||||
<string name="sk_timeline_cache_cleared">Cache du fil d\'accueil vidé</string>
|
||||
<string name="sk_button_mutuals">Suivi mutuel</string>
|
||||
<string name="sk_icon_water">Eau</string>
|
||||
<string name="sk_icon_sunset">Crépuscule</string>
|
||||
<string name="sk_icon_cloud">Nuage</string>
|
||||
<string name="sk_icon_rain">Pluie</string>
|
||||
<string name="sk_posted">%s a publié</string>
|
||||
<string name="sk_confirm_changes">Confirmer les changements</string>
|
||||
<string name="sk_icon_sun">Soleil</string>
|
||||
<string name="sk_icon_snowflake">Flocon de neige</string>
|
||||
<string name="sk_private_note_update_failed">Échec de la sauvegarde de la note</string>
|
||||
<string name="sk_private_note_hint">Ajouter une note personnelle à propos du profil</string>
|
||||
<string name="sk_private_note_confirm_delete">Effacer la note personnelle à propos de %s ?</string>
|
||||
<string name="sk_delete_note">Supprimer la note personnelle</string>
|
||||
<string name="sk_add_note">Ajouter une note personnelle</string>
|
||||
<string name="sk_open_post_preview">Prévisualisation du message</string>
|
||||
<string name="sk_poll_hide_results">Cacher les résultats</string>
|
||||
<string name="sk_poll_show_results">Afficher les résultats</string>
|
||||
<string name="sk_post_preview">Prévisualisation</string>
|
||||
<string name="sk_poll_multiple_choice">Choix multiple</string>
|
||||
</resources>
|
||||
@@ -1,4 +1,122 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<string name="mo_settings_remove_tracking_params_summary">Stráice rianú faisnéise ó naisc</string>
|
||||
<string name="mo_notification_audience_settings">Lucht Féachana Fógraí</string>
|
||||
<string name="mo_color_palette_nord">Nord</string>
|
||||
<string name="mo_color_palette_black_and_white">Dubh agus Bán</string>
|
||||
<string name="mo_update_available">Tá Moshidon %s réidh le híoslódáil.</string>
|
||||
<string name="mo_update_ready">Tá Moshidon %s íosluchtaithe agus réidh le suiteáil.</string>
|
||||
<string name="mo_fab_compose">Cum</string>
|
||||
<string name="mo_instance_admin">Arna riar ag</string>
|
||||
<string name="mo_instance_status">Stádas</string>
|
||||
<string name="mo_instance_contact">Teagmháil</string>
|
||||
<string name="mo_relocate_publish_button">Cnaipe foilsithe a athlonnú</string>
|
||||
<string name="mo_hide_compose_button_while_scrolling_setting">Folaigh an cnaipe cumadóireachta agus tú ag scrollú</string>
|
||||
<string name="mo_welcome_text">Chun tús a chur leis, cuir isteach ainm fearainn do chás baile thíos.</string>
|
||||
<string name="mo_personal_note">Cuir nóta leis faoin bpróifíl seo</string>
|
||||
<string name="mo_personal_note_confirm">Deimhnigh na hathruithe atá le tabhairt faoi deara</string>
|
||||
<string name="mo_emoji_recent">Le déanaí a úsáidtear</string>
|
||||
<string name="mo_swap_bookmark_with_reblog">Babhtáil leabharmharc le gníomh reblog</string>
|
||||
<string name="mo_filtered">Scagtha: %s</string>
|
||||
<string name="mo_add_custom_server_local_timeline">Cuir amlíne áitiúil freastalaí saincheaptha leis</string>
|
||||
<string name="mo_mute_label">Fad:</string>
|
||||
<string name="mo_duration_indefinite">Éiginnte</string>
|
||||
<string name="mo_duration_minutes_5">5 nóiméad</string>
|
||||
<string name="mo_composer_behavior">Iompar an Chumadóir</string>
|
||||
<string name="mo_download_latest_nightly_release">Íoslódáil an t-amhrán deireanach oíche</string>
|
||||
<string name="mo_notification_management_settings">Bainistigh Fógraí</string>
|
||||
<string name="mo_mention_reblogger_automatically">Luaigh go huathoibríoch an cuntas a rinne athbhlogáil ar an bpostáil i bhfreagraí</string>
|
||||
<string name="mo_duration_days_3">3 lá</string>
|
||||
<string name="mo_sending_error">Earráid foilsitheoireachta</string>
|
||||
<string name="mo_unmute_hashtag">Díbhalbhaigh an hashtag</string>
|
||||
<string name="mo_confirm_to_unmute_hashtag">An bhfuil tú cinnte gur mhaith leat an hashchlib seo a dhíbhalbhú?</string>
|
||||
<string name="mo_share_open_url">Oscail san Aip</string>
|
||||
<string name="mo_severity_silence">Ciúnaithe</string>
|
||||
<string name="mo_blocked_accounts">Cuntais bactha</string>
|
||||
<string name="mo_muted_accounts">Cuntais bhalbhaithe</string>
|
||||
<string name="mo_show_media_preview">Taispeáin réamhamharc meán i línte ama</string>
|
||||
<string name="mo_filter_notifications">Scag fógraí</string>
|
||||
<string name="mo_recent_emoji_cleared">Glanadh emoji le déanaí</string>
|
||||
<string name="mo_double_tap_to_search">Tapáil faoi dhó chun cuardach a oscailt</string>
|
||||
<string name="mo_instance_users">Úsáideoirí</string>
|
||||
<string name="mo_instance_registration_open">Oscail</string>
|
||||
<string name="mo_instance_info_open_timeline">Amlíne áitiúil</string>
|
||||
<string name="mo_setting_true_black_summary">D\'fhéadfadh sé cumhacht a shábháil ar thaispeántais AMOLED</string>
|
||||
<string name="mo_setting_marquee_summary">Díchumasaítear an scrolláil teidil éilipsithe</string>
|
||||
<string name="mo_setting_reduced_motion_summary">Díchumasaigh beochan na n-idirghníomhaíochtaí</string>
|
||||
<string name="mo_enable_dividers">Taispeáin roinnteoirí postálacha</string>
|
||||
<string name="mo_notification_action_replied">D\'éirigh le %s an postáil a fhreagairt</string>
|
||||
<string name="mo_mute_hashtag">Balbhaigh hashtag</string>
|
||||
<string name="mo_poll_option_add">Cuir rogha vótaíochta nua leis</string>
|
||||
<string name="export_settings_fail">Theip ar easpórtáil na socruithe</string>
|
||||
<string name="mo_no_image_desc_title">Gan cur síos ar an íomhá</string>
|
||||
<string name="mo_no_image_desc">Níl aon chur síos ar na híomhánna atá san áireamh. Smaoinigh le do thoil ceann a chur leis, chun ligean do dhaoine lagamhairc a bheith rannpháirteach.</string>
|
||||
<string name="mo_disable_reminder_to_add_alt_text">Díchumasaigh meabhrúchán chun téacs alt a chur leis</string>
|
||||
<string name="mo_open_camera">Glac pictiúr</string>
|
||||
<string name="mo_confirm_to_mute_hashtag">An bhfuil tú cinnte gur mhaith leat an hashchlib seo a bhalbhú?</string>
|
||||
<string name="mo_setting_disable_swipe_summary">Svaidhpeáil chun amlíne amharc a athrú</string>
|
||||
<string name="mo_settings_remove_tracking_params">Naisc Príobháideacha</string>
|
||||
<string name="mo_camera_not_available">Níl ceamara ar fáil!</string>
|
||||
<string name="mo_confirm_to_mute_conversation">An bhfuil tú cinnte gur mhaith leat an comhrá seo a bhalbhú?</string>
|
||||
<string name="mo_confirm_to_unmute_conversation">An bhfuil tú cinnte gur mhaith leat an comhrá seo a dhíbhalbhú?</string>
|
||||
<string name="mo_instance_registration_approval">Faomhadh ag teastáil</string>
|
||||
<string name="mo_double_tap_to_swipe_between_tabs">Tapáil faoi dhó chun sleamhnú idir na cluaisíní</string>
|
||||
<string name="mo_instance_view_info">Féach ar Fhaisnéis an Fhreastalaí</string>
|
||||
<string name="mo_severity_suspend">Bactha</string>
|
||||
<string name="mo_setting_uniform_summary">Bain úsáid as an deilbhín app do gach fógra</string>
|
||||
<string name="mo_setting_remote_follower_summary">Taispeáin leantóirí ó chásanna eile</string>
|
||||
<string name="mo_personal_note_saved">Nóta sábháilte</string>
|
||||
<string name="mo_change_default_reply_visibility_to_unlisted">Freagair mar \'Neamhliostaithe\' de réir réamhshocraithe</string>
|
||||
<string name="mo_setting_interaction_count_summary">Taispeáin cé mhéad duine a d\'idirghníomhaigh le postáil san amlíne</string>
|
||||
<string name="mo_swap_bookmark_with_reblog_summary">Leabharmharc nó athbhlogáil postálacha ón bhfógra</string>
|
||||
<string name="mo_load_remote_followers">Luchtaigh an phróifíl chianda seo a leanas agus na leantóirí</string>
|
||||
<string name="mo_notification_filter_reset">Athshocraigh go réamhshocrú</string>
|
||||
<string name="mo_mute_notifications">An bhfuil fonn ort fógraí ón úsáideoir seo a cheilt?</string>
|
||||
<string name="mo_settings_unifiedpush_warning">Níl UnifiedPush cumasaithe</string>
|
||||
<string name="mo_settings_unifiedpush_warning_no_distributors">Níl aon Dáileoirí UnifiedPush suiteáilte. Ní bhfaighidh tú aon fhógraí.</string>
|
||||
<string name="mo_settings_unifiedpush_warning_disabled">Níl UnifiedPush cumasaithe. Ní bhfaighidh tú aon fhógraí.</string>
|
||||
<string name="mo_settings_unifiedpush_enable">Cumasaigh</string>
|
||||
<string name="import_settings_confirm">Deimhnigh na socruithe a iompórtáil?</string>
|
||||
<string name="mo_personal_note_update_failed">Theip ar shábháil an nóta</string>
|
||||
<string name="mo_settings_contribute">Cur le Moshidon</string>
|
||||
<string name="mo_clear_recent_emoji">Glan emoji a úsáideadh le déanaí</string>
|
||||
<string name="mo_disable_relocate_publish_button_to_enable_customization">Díchumasaigh an cnaipe Foilsithe Athlonnaigh chun oiriúnú a cheadú</string>
|
||||
<string name="mo_muted_conversation_successfully">D\'éirigh le balbhú an chomhrá</string>
|
||||
<string name="mo_unmuted_conversation_successfully">D\'éirigh le díbhalbhú an chomhrá</string>
|
||||
<string name="mo_muting">Ag balbhú…</string>
|
||||
<string name="mo_unmuting">Ag díbhalbhú…</string>
|
||||
<string name="mo_mute_conversation">Balbhaigh an comhrá</string>
|
||||
<string name="mo_unmute_conversation">Díbhalbhaigh an comhrá</string>
|
||||
<string name="mo_duration_minutes_30">30 nóiméad</string>
|
||||
<string name="mo_duration_hours_1">1 uair</string>
|
||||
<string name="mo_duration_hours_6">6 huaire</string>
|
||||
<string name="mo_duration_days_1">1 lá</string>
|
||||
<string name="mo_duration_days_7">7 lá</string>
|
||||
<string name="mo_instance_registration">Clárú</string>
|
||||
<string name="mo_instance_info_moderated_servers">Freastalaithe modhnaithe</string>
|
||||
<string name="mo_setting_play_gif_summary">Uathsheinn GIFanna in avatars agus emoji</string>
|
||||
<string name="mo_setting_relocate_publish_summary">Bog an cnaipe foilsithe go dtí an barra bun</string>
|
||||
<string name="mo_setting_default_reply_privacy_summary">Diúltófar do fhreagraí ó ghnéithe fionnachtana</string>
|
||||
<string name="mo_setting_haptic_feedback_summary">Creathadh agus tú ag idirghníomhú le postálacha</string>
|
||||
<string name="mo_settings_show_posts_without_alt_summary">Beidh postálacha i bhfolach i ngach amlíne, ach is féidir iad a nochtadh i snáitheanna agus i bhfógraí</string>
|
||||
<string name="mo_settings_show_posts_without_alt">Taispeáin postálacha meán a bhfuil téacs alt in easnamh orthu</string>
|
||||
<string name="mo_haptic_feedback">Aiseolas haptach</string>
|
||||
<string name="mo_confirm_unfollow_title">Dílean an Cuntas</string>
|
||||
<string name="mo_confirm_unfollow">Deimhnigh %s a dhíleanúint</string>
|
||||
<string name="import_settings_confirm_body">Déanfar gach socrú agus amlíne reatha a fhorscríobh! Ní féidir an gníomh seo a chealú.</string>
|
||||
<string name="import_settings_failed">Theip ar iompórtáil na socruithe</string>
|
||||
<string name="export_settings_share">Socruithe Easpórtála</string>
|
||||
<string name="export_settings_title">Socruithe easpórtála</string>
|
||||
<string name="export_settings_summary">Easpórtáil socruithe agus línte ama gach cuntas logáilte isteach</string>
|
||||
<string name="mo_error_display_title">Theip ar an bpostáil a thaispeáint</string>
|
||||
<string name="mo_error_display_text">Tharla earráid agus an postáil seo á lódáil. Má leanann an fhadhb, cuir in iúl é ar ár leathanach Ceisteanna mar aon le sonraí na hearráide.</string>
|
||||
<string name="mo_error_display_copy_error_details">Cóipeáil sonraí</string>
|
||||
<string name="mo_trending_link_read">Léigh</string>
|
||||
<string name="import_settings_title">Socruithe a allmhairiú</string>
|
||||
<string name="import_settings_summary">Iompórtáil socruithe agus amlínte a easpórtáladh roimhe seo</string>
|
||||
<string name="mo_settings_enhance_text_size">Feabhsaigh méid an téacs</string>
|
||||
<string name="mo_settings_enhance_text_size_summary">Déanann sé téacs na haipe níos mó</string>
|
||||
<string name="mo_mute_hashtag_explanation_discreet">Ní bheidh a fhios ag daoine eile go bhfuil an hashchlib seo balbhaithe agat.</string>
|
||||
<string name="mo_mute_hashtag_explanation_search">Is féidir leat postálacha leis an hashchlib seo a fháil fós ar línte ama eile nó trí chuardach.</string>
|
||||
<string name="mo_mute_hashtag_explanation_muted_home">Ní fheicfidh tú postálacha a luann an hashchlib seo i d\'amlíne Baile.</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,3 +1,458 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_pinned_posts">Pinned</string>
|
||||
<string name="sk_delete_and_redraft">Scrios agus athdhréachtú</string>
|
||||
<string name="sk_confirm_delete_and_redraft_title">Scrios agus athdhréachtaigh Post</string>
|
||||
<string name="sk_pin_post">Pionnáil le próifíl</string>
|
||||
<string name="sk_confirm_pin_post_title">Pionnáil an post le próifíl</string>
|
||||
<string name="sk_confirm_pin_post">An bhfuil fonn ort an post seo a phionnáil le do phróifíl?</string>
|
||||
<string name="sk_pinning">Post pinning…</string>
|
||||
<string name="sk_unpin_post">Díphionnáil ón bpróifíl</string>
|
||||
<string name="sk_confirm_unpin_post_title">Díphionnáil an post ón bpróifíl</string>
|
||||
<string name="sk_confirm_unpin_post">An bhfuil tú cinnte go bhfuil fonn ort an post seo a dhíphionnáil?</string>
|
||||
<string name="sk_unpinning">Post á dhíphionnáil…</string>
|
||||
<string name="sk_image_description">Cur síos ar an íomhá</string>
|
||||
<string name="sk_quoting_user">%s á lua</string>
|
||||
<string name="sk_settings_reply_visibility">Infheictheacht freagra</string>
|
||||
<string name="sk_mark_media_as_sensitive">Marcáil na meáin mar íogair</string>
|
||||
<string name="sk_federated_timeline">Cónaidhm</string>
|
||||
<string name="sk_federated_timeline_info_banner">Is iad seo na poist is déanaí ag na daoine i do chónaidhm.</string>
|
||||
<string name="sk_bubble_timeline_info_banner">Is iad seo na poist is déanaí ón líonra coimeádaithe ag do admins shampla.</string>
|
||||
<string name="sk_trending_posts_info_banner">Tá na poist seo ag tarraingt ar an Fediverse faoi láthair.</string>
|
||||
<string name="sk_trending_links_info_banner">Tá na scéalta nuachta seo ag caint faoi ar fud na Fediverse.</string>
|
||||
<string name="sk_update_available">Tá Megalodon %s réidh le híoslódáil.</string>
|
||||
<string name="sk_reject_follow_request">Diúltaigh don iarratas seo a leanas</string>
|
||||
<string name="sk_lists_with_user">Liostaí le %s</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Nocht rabhaidh inneachair i gcónaí</string>
|
||||
<string name="sk_settings_enable_marquee">Cumasaigh téacs scrollaithe i mbarra teidil</string>
|
||||
<string name="sk_settings_contribute">Cur le Megalodon</string>
|
||||
<string name="sk_settings_color_palette_default">Réamhshocrú (%s)</string>
|
||||
<string name="sk_color_palette_purple">Corcra</string>
|
||||
<string name="sk_color_palette_brown">Donn</string>
|
||||
<string name="sk_color_palette_red">Dearg</string>
|
||||
<string name="sk_translate_show_original">Taispeáin an bunleagan</string>
|
||||
<string name="sk_translated_using">Aistrithe ag úsáid %s</string>
|
||||
<string name="sk_post_language">Teanga: %s</string>
|
||||
<string name="sk_example_domain">sampla.social</string>
|
||||
<string name="sk_settings_filters">Cumraigh scagairí</string>
|
||||
<string name="sk_settings_auth">Socruithe slándála</string>
|
||||
<string name="sk_settings_rules">Rialacha</string>
|
||||
<string name="sk_settings_about">Maidir leis an aip</string>
|
||||
<string name="sk_settings_donate">Deonaigh</string>
|
||||
<string name="sk_delete_notification_confirm_action">Scrios fógra</string>
|
||||
<string name="sk_delete_notification_confirm">An bhfuil tú cinnte go bhfuil fonn ort an fógra seo a scriosadh?</string>
|
||||
<string name="sk_clear_all_notifications">Glan gach fógra</string>
|
||||
<string name="sk_clear_all_notifications_confirm_action">Scrios gach rud</string>
|
||||
<string name="sk_clear_all_notifications_confirm">An bhfuil tú cinnte go bhfuil fonn ort gach fógra a ghlanadh?</string>
|
||||
<string name="sk_settings_enable_delete_notifications">Cumasaigh fógraí a scriosadh</string>
|
||||
<string name="sk_settings_publish_button_text">Foilsigh téacs an chnaipe</string>
|
||||
<string name="sk_quote_post">Post faoi seo</string>
|
||||
<string name="sk_hashtags_you_follow">Hashtags a leanann tú</string>
|
||||
<string name="sk_copy_link_to_post">Cóipeáil nasc leis an bpost</string>
|
||||
<string name="sk_already_reblogged">Borradh curtha cheana féin</string>
|
||||
<string name="sk_reply_as">Freagra le cuntas eile</string>
|
||||
<string name="sk_settings_uniform_icon_for_notifications">Deilbhín aonfhoirmeach do gach fógra</string>
|
||||
<string name="sk_forward_report_to">Ar aghaidh chuig %s</string>
|
||||
<string name="sk_unsent_posts">Poist gan choinne</string>
|
||||
<string name="sk_draft">Dréacht</string>
|
||||
<string name="sk_schedule">Sceideal</string>
|
||||
<string name="sk_confirm_delete_draft_title">Scrios dréacht</string>
|
||||
<string name="sk_confirm_delete_scheduled_post_title">Scrios an post sceidealta</string>
|
||||
<string name="sk_confirm_delete_scheduled_post">An bhfuil tú cinnte go bhfuil fonn ort an post sceidealta seo a scriosadh?</string>
|
||||
<string name="sk_draft_or_schedule">Dréacht nó sceideal</string>
|
||||
<string name="sk_compose_scheduled">Sceidealaithe le haghaidh</string>
|
||||
<string name="sk_draft_saved">Dréacht sábháilte</string>
|
||||
<string name="sk_post_scheduled">Post sceidealta</string>
|
||||
<string name="sk_scheduled_too_soon_title">Tá an t-am sceidealta ró-luath</string>
|
||||
<string name="sk_confirm_save_changes">Sábháil athruithe?</string>
|
||||
<string name="sk_settings_reduce_motion">Laghdaigh gluaisne i mbeochan</string>
|
||||
<string name="sk_announcements">Fógraí</string>
|
||||
<string name="sk_settings_about_instance">Mar shampla,</string>
|
||||
<string name="sk_settings_unifiedpush">Úsáid AontaithePush</string>
|
||||
<string name="sk_settings_unifiedpush_no_distributor_body">Ní mór duit dáileoir a shuiteáil le haghaidh fógraí UnifiedPush a bheith ag obair. Chun tuilleadh eolais a fháil, tabhair cuairt ar https://unifiedpush.org/</string>
|
||||
<string name="sk_create">Cruthaigh</string>
|
||||
<string name="sk_create_list_title">Cruthaigh liosta</string>
|
||||
<string name="sk_list_name_hint">Ainm an liosta</string>
|
||||
<string name="sk_your_lists">Do liostaí</string>
|
||||
<string name="sk_timelines">Amlínte</string>
|
||||
<string name="sk_unpin_timeline">Díphionnáil amlíne</string>
|
||||
<string name="sk_pinned_timeline">Pinned chun an bhaile</string>
|
||||
<string name="sk_remove">Bain</string>
|
||||
<string name="sk_timeline_icon">Deilbhín</string>
|
||||
<string name="sk_icon_heart">Croí</string>
|
||||
<string name="sk_icon_star">Réalta</string>
|
||||
<string name="sk_icon_city">Cathair</string>
|
||||
<string name="sk_icon_cat">Cat</string>
|
||||
<string name="sk_icon_dog">Madra</string>
|
||||
<string name="sk_icon_balloon">Balún</string>
|
||||
<string name="sk_icon_language">Teanga</string>
|
||||
<string name="sk_icon_location">Suíomh</string>
|
||||
<string name="sk_icon_megaphone">Meigeafón</string>
|
||||
<string name="sk_icon_coffee">Caife</string>
|
||||
<string name="sk_icon_laugh">Gáire</string>
|
||||
<string name="sk_icon_news">Nuacht</string>
|
||||
<string name="sk_icon_backpack">Mála droma</string>
|
||||
<string name="sk_icon_globe">Cruinneog</string>
|
||||
<string name="sk_icon_pin">Biorán</string>
|
||||
<string name="sk_icon_feed">Fotha</string>
|
||||
<string name="sk_icon_beaker">Eascra</string>
|
||||
<string name="sk_icon_bed">Leaba</string>
|
||||
<string name="sk_icon_recycle_bin">Athchúrsáil an bosca bruscair</string>
|
||||
<string name="sk_icon_verified">Fíoraithe</string>
|
||||
<string name="sk_icon_doctor">Dochtúir</string>
|
||||
<string name="sk_icon_diamond">Muileata</string>
|
||||
<string name="sk_icon_umbrella">Scáth fearthainne</string>
|
||||
<string name="sk_icon_water">Uisce</string>
|
||||
<string name="sk_icon_sun">An Ghrian</string>
|
||||
<string name="sk_icon_sunset">Luí na Gréine</string>
|
||||
<string name="sk_icon_cloud">Scamall</string>
|
||||
<string name="sk_icon_thunderstorm">Stoirm thoirní</string>
|
||||
<string name="sk_icon_rain">Báisteach</string>
|
||||
<string name="sk_icon_snowflake">Brat sneachta</string>
|
||||
<string name="sk_edit_timeline">Cuir amlíne in eagar</string>
|
||||
<string name="sk_edit_timeline_tag_none">… ach níl aon cheann de na</string>
|
||||
<string name="sk_edit_timeline_tag_hint">Iontráil hashtag…</string>
|
||||
<string name="sk_edit_timeline_tags_hint">Iontráil hashtags…</string>
|
||||
<string name="sk_hashtag_timeline_local_only_switch">Ná taispeáin ach poist áitiúla?</string>
|
||||
<string name="sk_notification_type_update">Poist curtha in eagar</string>
|
||||
<string name="sk_settings_show_alt_indicator">Táscaire le haghaidh téacsanna alt</string>
|
||||
<string name="sk_settings_show_no_alt_indicator">Táscaire le haghaidh téacsanna alt ar iarraidh</string>
|
||||
<string name="sk_updater_enable_pre_releases">Cumasaigh réamh-eisiúintí</string>
|
||||
<string name="sk_settings_see_new_posts_button">Cnaipe \"Féach poist nua\"</string>
|
||||
<string name="sk_settings_hide_interaction">Folaigh cnaipí idirghníomhaíochta</string>
|
||||
<string name="sk_compact_reblog_reply_line">Dlúth borradh / líne freagra</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Deimhnigh roimh threisiú</string>
|
||||
<string name="sk_content_type_plain">Gnáth-théacs</string>
|
||||
<string name="sk_content_type_html">HTML</string>
|
||||
<string name="sk_content_type_markdown">Marcáil síos</string>
|
||||
<string name="sk_content_type_bbcode">BBCodeGenericName</string>
|
||||
<string name="sk_content_type_mfm">MFM</string>
|
||||
<string name="sk_settings_content_types">Cumasaigh formáidiú an phoist</string>
|
||||
<string name="sk_settings_default_content_type">Cineál inneachair réamhshocraithe</string>
|
||||
<string name="sk_instance_info_unavailable">Níl faisnéis shamplach ar fáil go sealadach</string>
|
||||
<string name="sk_open_in_app">Oscail san fheidhmchlár</string>
|
||||
<string name="sk_settings_allow_remote_loading_explanation">Bain triail as liostaí níos cruinne a fháil do leanúna, is maith agus boosts tríd an bhfaisnéis a luchtú ón gcás tionscnaimh.</string>
|
||||
<string name="sk_settings_auto_reveal_equal_spoilers">Nocht CWanna comhionanna go huathoibríoch i bhfreagraí</string>
|
||||
<string name="sk_settings_auto_reveal_nobody">Riamh</string>
|
||||
<string name="sk_settings_auto_reveal_author">Freagraí ón údar céanna</string>
|
||||
<string name="sk_settings_auto_reveal_anyone">Freagraí ó gach duine</string>
|
||||
<string name="sk_settings_prefix_replies_always">Mar fhreagra ar dhuine ar bith</string>
|
||||
<string name="sk_settings_prefix_replies_never">Riamh</string>
|
||||
<string name="sk_settings_prefix_replies_to_others">Ach amháin mar fhreagra ar dhaoine eile</string>
|
||||
<string name="sk_settings_forward_report_default">Réamhshocrú lasca \"Tuarascáil ar Aghaidh\"</string>
|
||||
<string name="sk_list_exclusive_switch_explanation">Ní thaispeánfaidh baill de liosta eisiach ar d\'amlíne baile – má thacaíonn do chás leis.</string>
|
||||
<string name="sk_advanced_options_show">Taispeáin ardroghanna</string>
|
||||
<string name="sk_pronouns_label">Forainmneacha</string>
|
||||
<string name="sk_switch_timeline">Athraigh amlíne</string>
|
||||
<string name="sk_settings_true_black">Pic mód dubh</string>
|
||||
<string name="sk_search_fediverse">Cuardaigh an Fediverse</string>
|
||||
<string name="sk_settings_display_pronouns_in_timelines">Taispeáin forainmneacha in amlínte</string>
|
||||
<string name="sk_settings_show_emoji_reactions">Taispeáin frithghníomhartha emoji in amlínte</string>
|
||||
<plurals name="sk_users_reacted_with">
|
||||
<item quantity="one">D\'fhreagair úsáideoir amháin le %2$s</item>
|
||||
<item quantity="two">D\'fhreagair %1$,d úsáideoirí le %2$s</item>
|
||||
<item quantity="few">D\'fhreagair %1$,d úsáideoirí le %2$s</item>
|
||||
<item quantity="many">D\'fhreagair %1$,d úsáideoirí le %2$s</item>
|
||||
<item quantity="other">D\'fhreagair %1$,d úsáideoirí le %2$s</item>
|
||||
</plurals>
|
||||
<plurals name="sk_posts_count_label">
|
||||
<item quantity="one">teachtaireacht</item>
|
||||
<item quantity="two">teachtaireachtaí</item>
|
||||
<item quantity="few">teachtaireachtaí</item>
|
||||
<item quantity="many">teachtaireachtaí</item>
|
||||
<item quantity="other">teachtaireachtaí</item>
|
||||
</plurals>
|
||||
<string name="sk_post_contains_media">Tá meáin sa phost</string>
|
||||
<plurals name="sk_time_seconds">
|
||||
<item quantity="one">%d soicind</item>
|
||||
<item quantity="two">%d soicindí</item>
|
||||
<item quantity="few">%d soicindí</item>
|
||||
<item quantity="many">%d soicindí</item>
|
||||
<item quantity="other">%d soicindí</item>
|
||||
</plurals>
|
||||
<plurals name="sk_time_hours">
|
||||
<item quantity="one">%d uair</item>
|
||||
<item quantity="two">%d uair an chloig</item>
|
||||
<item quantity="few">%d uair an chloig</item>
|
||||
<item quantity="many">%d uair an chloig</item>
|
||||
<item quantity="other">%d uair an chloig</item>
|
||||
</plurals>
|
||||
<string name="sk_muted_accounts">Cuntais muted</string>
|
||||
<string name="sk_blocked_accounts">Cuntais bhlocáilte</string>
|
||||
<string name="sk_settings_like_icon">Úsáid croí mar dheilbhín is fearr leat</string>
|
||||
<plurals name="sk_time_days">
|
||||
<item quantity="one">%d lá</item>
|
||||
<item quantity="two">%d laethanta</item>
|
||||
<item quantity="few">%d laethanta</item>
|
||||
<item quantity="many">%d laethanta</item>
|
||||
<item quantity="other">%d laethanta</item>
|
||||
</plurals>
|
||||
<string name="sk_settings_underlined_links">Naisc aibhsithe</string>
|
||||
<string name="sk_set_as_default">Socraigh mar réamhshocrú</string>
|
||||
<string name="sk_edit_alt_text">Cuir téacs alt in eagar</string>
|
||||
<string name="sk_settings_clear_timeline_cache">Glan taisce amlíne baile</string>
|
||||
<string name="sk_timeline_cache_cleared">Taisce amlíne baile glanta</string>
|
||||
<string name="sk_settings_lock_account">Ceadaigh leanúna nua de láimh</string>
|
||||
<string name="sk_settings_default_visibility">Infheictheacht réamhshocraithe postála</string>
|
||||
<string name="sk_button_mutuals">Frithpháirteacha</string>
|
||||
<string name="sk_private_note_hint">Cuir nóta pearsanta leis faoin bpróifíl seo</string>
|
||||
<string name="sk_confirm_changes">Deimhnigh athruithe</string>
|
||||
<string name="sk_private_note_update_failed">Theip ar shábháil an nóta</string>
|
||||
<string name="sk_private_note_confirm_delete">Scrios nóta pearsanta faoi %s?</string>
|
||||
<string name="sk_delete_note">Scrios nóta pearsanta</string>
|
||||
<string name="sk_add_note">Cuir nóta pearsanta leis</string>
|
||||
<string name="sk_settings_copy_crash_log">Cóipeáil an logchomhad tuairteála is déanaí</string>
|
||||
<string name="sk_poll_show_results">Taispeáin torthaí</string>
|
||||
<string name="sk_poll_hide_results">Folaigh torthaí</string>
|
||||
<string name="sk_confirm_delete_and_redraft">An bhfuil tú cinnte go bhfuil fonn ort an post seo a scriosadh agus a athdhréachtú?</string>
|
||||
<string name="sk_visibility_unlisted">Neamhliostaithe</string>
|
||||
<string name="sk_settings_show_replies">Taispeáin freagraí</string>
|
||||
<string name="sk_settings_continues_playback">Forleagan fuaime</string>
|
||||
<string name="sk_settings_continues_playback_summary">Lig do na meáin atá ag imirt cheana féin leanúint ar aghaidh ag imirt, ag forleagan an athsheinm nua</string>
|
||||
<string name="sk_settings_reply_visibility_all">Gach freagra</string>
|
||||
<string name="sk_settings_reply_visibility_following">Freagraí ar mo chuid seo a leanas</string>
|
||||
<string name="sk_settings_reply_visibility_self">Freagraí dom</string>
|
||||
<string name="sk_settings_show_boosts">Taispeáin teanndáileoga</string>
|
||||
<string name="sk_settings_load_new_posts">Luchtaigh poist nua go huathoibríoch</string>
|
||||
<string name="sk_settings_show_interaction_counts">Taispeáin comhaireamh idirghníomhaíochta</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_user_post_notifications_on">Casta air fógraí poist le haghaidh %s</string>
|
||||
<string name="sk_user_post_notifications_off">Múch fógraí poist le haghaidh %s</string>
|
||||
<string name="sk_update_ready">Tá Megalodon %s íoslódáilte agus réidh le suiteáil.</string>
|
||||
<string name="sk_check_for_update">Seiceáil le haghaidh nuashonrú</string>
|
||||
<string name="sk_no_update_available">Níl aon nuashonrú ar fáil</string>
|
||||
<string name="sk_list_timelines">Liostaí</string>
|
||||
<plurals name="sk_time_minutes">
|
||||
<item quantity="one">%d nóiméad</item>
|
||||
<item quantity="two">%d nóiméad</item>
|
||||
<item quantity="few">%d nóiméad</item>
|
||||
<item quantity="many">%d nóiméad</item>
|
||||
<item quantity="other">%d nóiméad</item>
|
||||
</plurals>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_follow_requests">Lean iarratais</string>
|
||||
<string name="sk_accept_follow_request">Glac leis an iarratas seo a leanas</string>
|
||||
<string name="sk_settings_show_federated_timeline">Taispeáin amlíne chónasctha</string>
|
||||
<string name="sk_notification_type_status">Poist</string>
|
||||
<string name="sk_notification_type_posts">Fógraí poist</string>
|
||||
<string name="sk_settings_color_palette">Pailéad dathanna</string>
|
||||
<string name="sk_color_palette_material3">Córas</string>
|
||||
<string name="sk_color_palette_pink">Bándearg</string>
|
||||
<string name="sk_translate_post">Aistrigh</string>
|
||||
<string name="sk_available_languages">Teangacha atá ar fáil</string>
|
||||
<string name="sk_clear_recent_languages">Glan teangacha a úsáideadh le déanaí</string>
|
||||
<string name="sk_color_palette_green">Glas</string>
|
||||
<string name="sk_color_palette_blue">Gorm</string>
|
||||
<string name="sk_color_palette_yellow">Buí</string>
|
||||
<string name="sk_confirm_clear_recent_languages">An bhfuil tú cinnte go bhfuil fonn ort do theangacha a úsáideadh le déanaí a ghlanadh?</string>
|
||||
<string name="sk_welcome_title">Fáilte!</string>
|
||||
<string name="sk_welcome_text">Salutes an siorc tú! Chun tús a chur leis, cuir isteach ainm fearainn do shampla baile thíos.</string>
|
||||
<string name="sk_settings_tabs_disable_swipe">Díchumasaigh svaidhpeáil idir cluaisíní</string>
|
||||
<string name="sk_settings_profile">Cumraigh próifíl</string>
|
||||
<string name="sk_settings_posting">Sainroghanna postála</string>
|
||||
<string name="sk_delete_notification">Scrios fógra</string>
|
||||
<string name="sk_settings_publish_button_text_title">Saincheap Foilsigh téacs an chnaipe</string>
|
||||
<string name="sk_settings_translate_only_opened">Ná aistrigh ach poist oscailte</string>
|
||||
<string name="sk_settings_translation_availability_note_available">Tacaíonn %s le haistriúchán!</string>
|
||||
<string name="sk_settings_translation_availability_note_unavailable">Ní cosúil go dtacaíonn %s leis an aistriúchán.</string>
|
||||
<string name="sk_loading_fediverse_resource_title">Ag breathnú suas ar an Fediverse</string>
|
||||
<string name="sk_loading_resource_on_instance_title">Á chuardach suas ar %s</string>
|
||||
<string name="sk_undo_reblog">Cealaigh borradh</string>
|
||||
<string name="sk_reblog_with_visibility">Borradh le hinfheictheacht</string>
|
||||
<string name="sk_open_with_account">Oscail le cuntas eile</string>
|
||||
<string name="sk_resource_not_found">Níorbh fhéidir acmhainn a aimsiú</string>
|
||||
<string name="sk_bookmark_as">Leabharmharc le cuntas eile</string>
|
||||
<string name="sk_bookmarked_as">Leabharmharc mar %s</string>
|
||||
<string name="sk_already_bookmarked">Leabharmharcáilte cheana féin</string>
|
||||
<string name="sk_favorite_as">Is fearr leat le cuntas eile</string>
|
||||
<string name="sk_favorited_as">Ceanaithe mar %s</string>
|
||||
<string name="sk_already_favorited">Ceanaithe cheana féin</string>
|
||||
<string name="sk_reblog_as">Treisiú le cuntas eile</string>
|
||||
<string name="sk_reblogged_as">Treisithe mar %s</string>
|
||||
<string name="sk_confirm_delete_draft">An bhfuil tú cinnte go bhfuil fonn ort an post dréachtaithe seo a scriosadh?</string>
|
||||
<string name="sk_compose_draft">Sábhálfar an post mar dhréacht.</string>
|
||||
<string name="sk_scheduled_too_soon">Ní mór an post a sceidealú 10 nóiméad ar a laghad amach anseo.</string>
|
||||
<string name="sk_confirm_save_draft">Sábháil dréacht?</string>
|
||||
<string name="sk_mark_as_draft">Marcáil mar dhréacht</string>
|
||||
<string name="sk_schedule_post">Sceideal an phoist</string>
|
||||
<string name="sk_schedule_or_draft">Sceideal nó dréacht</string>
|
||||
<string name="sk_compose_no_schedule">Ná sceideal</string>
|
||||
<string name="sk_compose_no_draft">Ná dréachtaigh</string>
|
||||
<string name="sk_mark_as_read">Marcáil mar léite</string>
|
||||
<string name="sk_settings_single_notification">Ná taispeáin ach fógra amháin</string>
|
||||
<string name="sk_settings_unifiedpush_choose">Roghnaigh dáileoir</string>
|
||||
<string name="sk_settings_unifiedpush_no_distributor">Níor aimsíodh dáileoir ar bith</string>
|
||||
<string name="sk_list_replies_policy">Taispeáin freagraí ar</string>
|
||||
<string name="sk_list_replies_policy_list">Liostaigh Baill</string>
|
||||
<string name="sk_list_replies_policy_followed">úsáideoirí a lean</string>
|
||||
<string name="sk_list_replies_policy_none">Duine ar bith</string>
|
||||
<string name="sk_delete_list">Scrios liosta</string>
|
||||
<string name="sk_delete_list_confirm">An bhfuil tú cinnte go bhfuil fonn ort an liosta \"%s\" a scriosadh?</string>
|
||||
<string name="sk_edit_list_title">Cuir liosta in eagar</string>
|
||||
<string name="sk_timeline_home">Baile</string>
|
||||
<string name="sk_timeline_local">Áitiúil</string>
|
||||
<string name="sk_timeline_federated">Cónaidhm</string>
|
||||
<string name="sk_timeline_bubble">Mboilgeog</string>
|
||||
<string name="sk_recent_searches_placeholder">Cineál le tosú ag cuardach</string>
|
||||
<string name="sk_remove_follower">Bain mar leantóir</string>
|
||||
<string name="sk_remove_follower_confirm">Bain %s mar leantóir trí iad a bhlocáil agus a dhíbhlocáil láithreach?</string>
|
||||
<string name="sk_do_remove_follower">Bain</string>
|
||||
<string name="sk_remove_follower_success">D\' éirigh leis an leantóir a bhaint</string>
|
||||
<string name="sk_changelog">ChangelogName</string>
|
||||
<string name="sk_alt_text_missing_title">Téacs alt ar iarraidh</string>
|
||||
<string name="sk_alt_text_missing">Níl tuairisc i gceangaltán amháin ar a laghad.</string>
|
||||
<string name="sk_publish_anyway">Foilsigh ar aon nós</string>
|
||||
<string name="sk_settings_disable_alt_text_reminder">Díchumasaigh meabhrúchán chun téacs alt a chur leis</string>
|
||||
<string name="sk_notify_posts_info_banner">Má chumasaíonn tú fógraí poist do roinnt daoine, beidh a gcuid post nua le feiceáil anseo.</string>
|
||||
<string name="sk_timeline_posts">Poist</string>
|
||||
<string name="sk_timelines_add">Cuir Leis</string>
|
||||
<string name="sk_timeline">Amlíne</string>
|
||||
<string name="sk_list">Liosta</string>
|
||||
<string name="sk_hashtag">Haischlib</string>
|
||||
<string name="sk_pin_timeline">Amlíne bioráin</string>
|
||||
<string name="sk_unpinned_timeline">Gan phioc ón mbaile</string>
|
||||
<string name="sk_icon_rabbit">Coinín</string>
|
||||
<string name="sk_icon_turtle">Turtar</string>
|
||||
<string name="sk_icon_image">Íomhá</string>
|
||||
<string name="sk_icon_bot">Róbónna</string>
|
||||
<string name="sk_icon_microphone">Micreafón</string>
|
||||
<string name="sk_icon_microscope">Micreascóp</string>
|
||||
<string name="sk_icon_keyboard">Méarchlár</string>
|
||||
<string name="sk_icon_pi">Pi</string>
|
||||
<string name="sk_icon_color_palette">Pailéad dathanna</string>
|
||||
<string name="sk_icon_academic_cap">Caipín acadúil</string>
|
||||
<string name="sk_icon_tag">Lá</string>
|
||||
<string name="sk_icon_stethoscope">Stethoscope</string>
|
||||
<string name="sk_icon_weather">Aimsir</string>
|
||||
<string name="sk_icon_games">Cluichí</string>
|
||||
<string name="sk_icon_code">Cód</string>
|
||||
<string name="sk_icon_aperture">Cró</string>
|
||||
<string name="sk_icon_music">Ceol</string>
|
||||
<string name="sk_icon_light_bulb">Bolgán solais</string>
|
||||
<string name="sk_icon_train">Traein</string>
|
||||
<string name="sk_icon_clapper_board">Clár clapper</string>
|
||||
<string name="sk_icon_leaves">Duilleoga</string>
|
||||
<string name="sk_icon_sport">Spórt</string>
|
||||
<string name="sk_icon_people">Daoine</string>
|
||||
<string name="sk_icon_health">Sláinte</string>
|
||||
<string name="sk_icon_important">Tábhachtach</string>
|
||||
<string name="sk_icon_chat">Comhrá</string>
|
||||
<string name="sk_icon_shield">Sciath</string>
|
||||
<string name="sk_icon_book">Leabhar</string>
|
||||
<string name="sk_icon_bicycle">Rothar</string>
|
||||
<string name="sk_icon_map">Léarscáil</string>
|
||||
<string name="sk_icon_math_formula">Foirmle mhata</string>
|
||||
<string name="sk_icon_briefcase">Mála Cáipéisí</string>
|
||||
<string name="sk_icon_fire">Dóiteán</string>
|
||||
<string name="sk_icon_bug">Fabht</string>
|
||||
<string name="sk_icon_pizza">Píotsa</string>
|
||||
<string name="sk_icon_gavel">GavelName</string>
|
||||
<string name="sk_icon_gauge">Tomhas</string>
|
||||
<string name="sk_icon_headphones">Cluasáin</string>
|
||||
<string name="sk_icon_human">An Duine</string>
|
||||
<string name="sk_add_timeline">Cuir amlíne leis</string>
|
||||
<string name="sk_edit_timelines">Cuir amlínte in eagar</string>
|
||||
<string name="sk_edit_timeline_tag_main">Poist ina bhfuil hashtag…</string>
|
||||
<string name="sk_edit_timeline_tag_any">… nó aon cheann de na</string>
|
||||
<string name="sk_edit_timeline_tag_all">… agus gach ceann de na</string>
|
||||
<string name="sk_edit_timeline_tags_explanation">Tabhair faoi deara go láimhseálann an freastalaí na hoibríochtaí seo. B\'fhéidir nach dtacófaí leo iad a chur le chéile.</string>
|
||||
<string name="sk_add_timeline_tag_error_empty">Ní féidir leis an haischlib a bheith folamh</string>
|
||||
<string name="sk_alt_button">SEAN</string>
|
||||
<string name="sk_gif_badge">GIF</string>
|
||||
<string name="sk_posted">%s sa phost</string>
|
||||
<string name="sk_post_edited">curtha in eagar</string>
|
||||
<string name="sk_notify_update">Cuir post treisithe in eagar</string>
|
||||
<string name="sk_attach_file">Ceangail comhad</string>
|
||||
<string name="sk_searching">Ag cuardach…</string>
|
||||
<string name="sk_no_results">Gan torthaí</string>
|
||||
<string name="sk_save_draft">Sábháil dréacht?</string>
|
||||
<string name="sk_save_draft_message">An bhfuil fonn ort do chuid athruithe ar an dréacht seo a shábháil nó é a fhoilsiú anois?</string>
|
||||
<string name="sk_no_alt_text">Níl téacs alt ar fáil</string>
|
||||
<string name="sk_inline_local_only">áitiúil amháin</string>
|
||||
<string name="sk_inline_direct">luaite amháin</string>
|
||||
<string name="sk_separator">·</string>
|
||||
<string name="sk_local_only">Sampla áitiúil amháin</string>
|
||||
<string name="sk_instance_features">Gnéithe ásc</string>
|
||||
<string name="sk_settings_support_local_only">Tacaíonn freastalaí le postáil áitiúil amháin</string>
|
||||
<string name="sk_settings_glitch_instance">Glitch mód logánta-amháin</string>
|
||||
<string name="sk_settings_glitch_mode_explanation">Cumasaigh é seo má ritheann do chás baile ar Glitch. Ní gá do Bhaile Dúchais nó Akkoma.</string>
|
||||
<string name="sk_signed_up">Sínithe</string>
|
||||
<string name="sk_reported">a tuairiscíodh</string>
|
||||
<string name="sk_reacted_with">D\'fhreagair %1$s le %2$s</string>
|
||||
<string name="sk_reacted">D\'fhreagair %s</string>
|
||||
<string name="sk_sign_ups">Úsáideoirí ag clárú</string>
|
||||
<string name="sk_new_reports">Tuarascálacha nua</string>
|
||||
<string name="sk_settings_server_version">Leagan freastalaí: %s</string>
|
||||
<string name="sk_notify_poll_results">Torthaí na pobalbhreithe</string>
|
||||
<string name="sk_settings_prefix_reply_cw_with_re">Réimír CW le \"re:\" agus freagra á thabhairt</string>
|
||||
<string name="sk_filtered">Scagtha: %s</string>
|
||||
<string name="sk_expand">Leathnaigh</string>
|
||||
<string name="sk_collapse">Laghdaigh</string>
|
||||
<string name="sk_settings_collapse_long_posts">Laghdaigh poist an-fhada</string>
|
||||
<string name="sk_unfinished_attachments">Iatáin á n- uasluchtú</string>
|
||||
<string name="sk_unfinished_attachments_message">Níor chríochnaigh roinnt ceangaltán uaslódáil.</string>
|
||||
<string name="sk_follow_as">Lean ó chuntas eile</string>
|
||||
<string name="sk_followed_as">Leanadh ó %s</string>
|
||||
<string name="sk_settings_hide_fab">Uathfholaigh Cum cnaipe</string>
|
||||
<string name="sk_notification_action_replied">Seoladh freagra chuig %s</string>
|
||||
<string name="sk_in_reply">Mar fhreagra ar</string>
|
||||
<string name="sk_reply_line_above_avatar">\"Mar fhreagra ar\" líne os cionn avatar</string>
|
||||
<string name="sk_show_thread">Taispeáin snáithe</string>
|
||||
<string name="sk_content_type">Cineál inneachair</string>
|
||||
<string name="sk_content_type_unspecified">Gan sonrú</string>
|
||||
<string name="sk_settings_content_types_explanation">Ceadaíonn sé cineál ábhair a shocrú cosúil le Markdown agus post á chruthú. Coinnigh i gcuimhne nach dtacaíonn gach cás leis seo.</string>
|
||||
<string name="sk_settings_default_content_type_explanation">Ligeann sé seo duit cineál ábhair a réamhroghnú agus poist nua á gcruthú agat, rud a sháraíonn an luach atá leagtha síos i \"Sainroghanna postála\".</string>
|
||||
<string name="sk_open_in_app_failed">Níorbh fhéidir oscailt san fheidhmchlár</string>
|
||||
<string name="sk_external_share_title">Comhroinn le cuntas</string>
|
||||
<string name="sk_external_share_or_open_title">Comhroinn nó oscail le cuntas</string>
|
||||
<string name="sk_no_remote_info_hint">Níl eolas cianda ar fáil</string>
|
||||
<string name="sk_error_loading_profile">Theip ar luchtú na próifíle trí %s</string>
|
||||
<string name="sk_settings_allow_remote_loading">Luchtaigh faisnéis ó chásanna cianda</string>
|
||||
<string name="sk_exclusive_list">Liosta eisiach</string>
|
||||
<string name="sk_list_exclusive_switch">Déan liosta eisiach</string>
|
||||
<string name="sk_advanced_options_hide">Folaigh ardroghanna</string>
|
||||
<string name="sk_spoiler_show">Taispeáin inneachar</string>
|
||||
<string name="sk_settings_instance">Cuir i gcás</string>
|
||||
<string name="sk_disable_pill_shaped_active_indicator">Díchumasaigh táscaire cluaisín gníomhach pill-chruthach</string>
|
||||
<string name="sk_settings_display_pronouns_in_threads">Taispeáin forainmneacha i snáitheanna</string>
|
||||
<string name="sk_settings_display_pronouns_in_user_listings">Taispeáin forainmneacha i liostaí úsáideora</string>
|
||||
<string name="sk_tab_home">Baile</string>
|
||||
<string name="sk_tab_search">Cuardaigh</string>
|
||||
<string name="sk_tab_notifications">Fógraí</string>
|
||||
<string name="sk_tab_profile">Próifíl</string>
|
||||
<string name="sk_settings_show_labels_in_navigation_bar">Taispeáin lipéid na gcluaisíní sa bharra nascleanúna</string>
|
||||
<string name="sk_settings_emoji_reactions">Cumasaigh frithghníomhartha emoji</string>
|
||||
<string name="sk_settings_emoji_reactions_explanation">Taispeánann sé frithghníomhartha emoji do phoist agus ligeann duit mise a chur leis. Tacaíonn freastalaithe Fediverse éagsúla leis seo, ach ní dhéanann Mastodon.</string>
|
||||
<string name="sk_settings_show_emoji_reactions_hide_empty">Folaigh frithghníomhartha emoji folamh</string>
|
||||
<string name="sk_settings_show_emoji_reactions_only_opened">Ach amháin nuair a osclaítear an post</string>
|
||||
<string name="sk_settings_show_emoji_reactions_always">Taispeáin cnaipe cuir leis i gcónaí</string>
|
||||
<string name="sk_button_react">Imoibrigh le emoji</string>
|
||||
<string name="sk_enter_emoji_toast">Clóscríobh emoji le do thoil</string>
|
||||
<string name="sk_enter_emoji_hint">Clóscríobh emoji nó cuardaigh</string>
|
||||
<string name="sk_mute_label">Fad ama</string>
|
||||
<string name="sk_duration_indefinite">Éiginnte</string>
|
||||
<string name="sk_duration_minutes_5">5 nóiméad</string>
|
||||
<string name="sk_duration_minutes_30">30 nóiméad</string>
|
||||
<string name="sk_duration_hours_1">1 uair an chloig</string>
|
||||
<string name="sk_duration_hours_6">6 uair an chloig</string>
|
||||
<string name="sk_duration_days_1">1 lá</string>
|
||||
<string name="sk_duration_days_3">laethanta 3</string>
|
||||
<string name="sk_search_suicide_title">Ar fhaitíos go mbeadh tú i gcruachás…</string>
|
||||
<string name="sk_duration_days_7">laethanta 7</string>
|
||||
<string name="sk_notification_mention">Luaigh %s thú</string>
|
||||
<string name="sk_suicide_search_terms">Féinmharú</string>
|
||||
<string name="sk_search_suicide_message">Má tá comhartha á lorg agat gan féinmharú a dhéanamh, seo é. Smaoinigh ar dhul i dteagmháil le beolíne fhéinmharaithe áitiúil má tá tú i gcruachás.</string>
|
||||
<string name="sk_search_suicide_hotlines">Aimsigh líne chabhrach</string>
|
||||
<string name="sk_do_not_show_again">Ná taispeáin arís</string>
|
||||
<string name="sk_suicide_helplines_url">https://findahelpline.com</string>
|
||||
<string name="sk_load_missing_posts_above">Luchtaigh poist níos nuaí</string>
|
||||
<string name="sk_load_missing_posts_below">Luchtaigh poist níos sine</string>
|
||||
<string name="sk_recently_used">Úsáidte le déanaí</string>
|
||||
<string name="sk_settings_crash_log_unavailable">Níl aon cheann ar fáil... fós</string>
|
||||
<string name="sk_crash_log_copied">Cóipeáladh logchomhad tuairteála</string>
|
||||
<string name="sk_open_post_preview">Post réamhamhairc</string>
|
||||
<string name="sk_post_preview">Réamhamharc</string>
|
||||
<string name="sk_poll_multiple_choice">Roghanna éagsúla</string>
|
||||
<string name="sk_settings_local_only_explanation">Ní mór le do chás baile tacú le postáil áitiúil amháin chun go n-oibreoidh sé seo. Déanann an chuid is mó de na leaganacha modhnaithe de Mastodon, ach ní dhéanann Mastodon.</string>
|
||||
</resources>
|
||||
@@ -76,4 +76,41 @@
|
||||
<string name="mo_double_tap_to_swipe_between_tabs">Thoir gnogag dhùbailte airson grad-shlaighdeadh eadar tabaichean</string>
|
||||
<string name="mo_confirm_unfollow">Dearbh nach lean thu %s tuilleadh</string>
|
||||
<string name="mo_show_media_preview">Seall ro-sheallaidhean meadhain sna loidhnichean-ama</string>
|
||||
<string name="mo_settings_remove_tracking_params_summary">Rùisg fiosrachadh tracaidh o cheanglaichean</string>
|
||||
<string name="mo_settings_remove_tracking_params">Ceanglaichean prìobhaideach</string>
|
||||
<string name="mo_error_display_copy_error_details">Dèan lethbhreac dhen mhion-fhiosrachadh</string>
|
||||
<string name="mo_muted_conversation_successfully">Chaidh an còmhradh a mhùchadh</string>
|
||||
<string name="mo_confirm_to_mute_conversation">A bheil thu cinnteach gu bheil thu airson an còmhradh seo a mhùchadh?</string>
|
||||
<string name="mo_mute_hashtag">Mùch an taga hais</string>
|
||||
<string name="mo_unmute_hashtag">Dì-mhùch an taga hais</string>
|
||||
<string name="mo_confirm_to_mute_hashtag">A bheil thu cinnteach gu bheil thu airson an taga hais seo a mhùchadh?</string>
|
||||
<string name="mo_confirm_to_unmute_hashtag">A bheil thu cinnteach gu bheil thu airson an taga hais seo a dhì-mhùchadh?</string>
|
||||
<string name="mo_filter_notifications">Criathraich na brathan</string>
|
||||
<string name="mo_notification_filter_reset">Ath-shuidhich air a’ bhun-roghainn</string>
|
||||
<string name="mo_instance_view_info">Seall fiosrachadh an fhrithealaiche</string>
|
||||
<string name="mo_personal_note_saved">Chaidh an nòta a shàbhaladh</string>
|
||||
<string name="mo_unmuted_conversation_successfully">Chaidh an còmhradh a dhì-mhùchadh</string>
|
||||
<string name="mo_muting">’Ga mhùchadh…</string>
|
||||
<string name="mo_unmuting">’Ga dhì-mhùchadh…</string>
|
||||
<string name="mo_mute_conversation">Mùch an còmhradh</string>
|
||||
<string name="mo_unmute_conversation">Dì-mhùch an còmhradh</string>
|
||||
<string name="mo_confirm_to_unmute_conversation">A bheil thu cinnteach gu bheil thu airson an còmhradh seo a dhì-mhùchadh?</string>
|
||||
<string name="mo_settings_unifiedpush_warning">Chan eil UnifiedPush an comas</string>
|
||||
<string name="mo_settings_unifiedpush_warning_no_distributors">Cha deach sgaoileadair UnifiedPush a stàladh. Chan fhaigh thu brath sam bith.</string>
|
||||
<string name="mo_settings_unifiedpush_warning_disabled">Chan eil UnifiedPush an comas. Chan fhaigh thu brath sam bith.</string>
|
||||
<string name="mo_settings_unifiedpush_enable">Cuir an comas</string>
|
||||
<string name="mo_muted_accounts">Cunntasan mùchte</string>
|
||||
<string name="mo_blocked_accounts">Cunntasan ’gam bacadh</string>
|
||||
<string name="mo_mute_notifications">A bheil thu airson na brathan on chleachdaiche seo fhalach?</string>
|
||||
<string name="import_settings_confirm">Dearbh ion-phortadh nan roghainnean</string>
|
||||
<string name="import_settings_confirm_body">Thèid sgrìobhadh thairis air gach roghainn ’s loidhne-ama làithreach! Cha ghabh seo a neo-dhèanamh.</string>
|
||||
<string name="import_settings_failed">Dh’fhàillig ion-phortadh nan roghainnean</string>
|
||||
<string name="export_settings_share">Às-phortaich na roghainnean</string>
|
||||
<string name="export_settings_fail">Dh’fhàillig às-phortadh nan roghainnean</string>
|
||||
<string name="export_settings_title">Às-phortaich na roghainnean</string>
|
||||
<string name="export_settings_summary">Às-phortaich na roghainnean ’s loidhnichean-ama aig gach cunntas a tha clàraichte a-staigh</string>
|
||||
<string name="import_settings_title">Ion-phortaich roghainnean</string>
|
||||
<string name="import_settings_summary">Ion-phortaich roghainnean ’s loidhnichean-ama a chaidh às-phortadh roimhe</string>
|
||||
<string name="mo_error_display_title">Dh’fhàillig le sealltainn a’ phuist</string>
|
||||
<string name="mo_error_display_text">Chaidh rudeigin ceàrr le luchdadh a’ phuist. Ma mhaireas an duilgheadas, dèan aithris air duilleag nan Issues againn le mion-fhiosrachadh na mearachd.</string>
|
||||
</resources>
|
||||
@@ -161,7 +161,7 @@
|
||||
<string name="sk_settings_prefix_reply_cw_with_re">Cuir ro-leasachan “re:” ris an rabhadh susbainte nuair a bhios tu a’ freagairt</string>
|
||||
<string name="sk_expand">Leudaich</string>
|
||||
<string name="sk_settings_collapse_long_posts">Co-theannaich postaichean glè fhada</string>
|
||||
<string name="sk_unfinished_attachments">A bheil thu airson na ceanglachain a chàradh\?</string>
|
||||
<string name="sk_unfinished_attachments">A’ luchdadh suas nan ceanglachan</string>
|
||||
<string name="sk_unfinished_attachments_message">Chan eil luchdadh suas nan ceanglachan uile deiseil.</string>
|
||||
<string name="sk_follow_as">Lean le cunntas eile</string>
|
||||
<string name="sk_followed_as">’Ga leantainn le %s</string>
|
||||
@@ -321,8 +321,8 @@
|
||||
<string name="sk_settings_auto_reveal_anyone">Freagairtean le duine sam bith</string>
|
||||
<string name="sk_settings_content_types_explanation">Leigidh seo leat seòrsa susbainte ma Markdown a shuidheachadh nuair a chruthaicheas tu post. Thoir an aire nach cuir gach ionstans taic ri seo.</string>
|
||||
<string name="sk_tab_home">Dachaigh</string>
|
||||
<string name="sk_settings_show_emoji_reactions_hide_empty">Falaich freagairtean Emoji falamh</string>
|
||||
<string name="sk_settings_show_emoji_reactions">Seall freagairtean Emoji air loidhnichean-ama</string>
|
||||
<string name="sk_settings_show_emoji_reactions_hide_empty">Falaich frith-ghnìomhan Emoji falamh</string>
|
||||
<string name="sk_settings_show_emoji_reactions">Seall frith-ghnìomhan Emoji air loidhnichean-ama</string>
|
||||
<plurals name="sk_posts_count_label">
|
||||
<item quantity="one">phost</item>
|
||||
<item quantity="two">phost</item>
|
||||
@@ -331,7 +331,7 @@
|
||||
</plurals>
|
||||
<string name="sk_notification_mention">Thug %s iomradh ort</string>
|
||||
<string name="sk_open_in_app">Fosgail san aplacaid</string>
|
||||
<string name="sk_settings_emoji_reactions">Cuir an comas freagairtean Emoji</string>
|
||||
<string name="sk_settings_emoji_reactions">Cuir an comas frith-ghnìomhan Emoji</string>
|
||||
<string name="sk_suicide_search_terms">Fèin-mhurt</string>
|
||||
<string name="sk_duration_minutes_5">5 mionaidean</string>
|
||||
<string name="sk_advanced_options_show">Seall na roghainnean adhartach</string>
|
||||
@@ -356,7 +356,7 @@
|
||||
<string name="sk_advanced_options_hide">Falaich na roghainnean adhartach</string>
|
||||
<string name="sk_duration_hours_1">Uair a thìde</string>
|
||||
<string name="sk_duration_hours_6">6 uairean a thìde</string>
|
||||
<string name="sk_enter_emoji_hint">Sgrìobh rudeigin airson freagairt le Emoji</string>
|
||||
<string name="sk_enter_emoji_hint">Cuit a-steach Emoji no lorg</string>
|
||||
<string name="sk_duration_days_7">Seachdain</string>
|
||||
<string name="sk_settings_true_black">Modh dubh dorcha</string>
|
||||
<string name="sk_no_remote_info_hint">chan eil am fiosrachadh cèin ri fhaighinn</string>
|
||||
@@ -366,13 +366,13 @@
|
||||
<string name="sk_settings_display_pronouns_in_threads">Seall na riochdairean ann an snàithleanan</string>
|
||||
<string name="sk_error_loading_profile">Dh’fhàillig le luchdadh na pròifil slighe %s</string>
|
||||
<string name="sk_enter_emoji_toast">Cuir a-steach Emoji</string>
|
||||
<string name="sk_trending_posts_info_banner">Seo na postaichean fèillmhor air an fhrithealaiche agad.</string>
|
||||
<string name="sk_trending_posts_info_banner">Seo na postaichean fèillmhor air a’ cho-shaoghal.</string>
|
||||
<string name="sk_duration_minutes_30">Leth-uair a thìde</string>
|
||||
<string name="sk_settings_display_pronouns_in_user_listings">Seall na riochdairean air liostaichean luchd-cleachdadh</string>
|
||||
<string name="sk_button_react">Freagair le emoji</string>
|
||||
<string name="sk_duration_days_1">Latha</string>
|
||||
<string name="sk_load_missing_posts_below">Luchdaich na postaichean nas sine</string>
|
||||
<string name="sk_settings_emoji_reactions_explanation">Seallaidh seo freagairtean Emoji do phostaichean is leigidh e leat an fheadhainn agad fhèin a chur ris. Cuiridh grunn fhrithealaichean a’ cho-shaoghail taic ri seo ach cha chuir Mastodon.</string>
|
||||
<string name="sk_settings_emoji_reactions_explanation">Seallaidh seo frith-ghnìomhan Emoji do phostaichean is leigidh e leat an fheadhainn agad fhèin a chur ris. Cuiridh grunn fhrithealaichean a’ cho-shaoghail taic ri seo ach cha chuir Mastodon.</string>
|
||||
<string name="sk_external_share_title">Co-roinn le cunntas</string>
|
||||
<string name="sk_list_exclusive_switch">Dèan an liosta às-dùnach</string>
|
||||
<string name="sk_duration_days_3">3 làithean</string>
|
||||
@@ -388,10 +388,45 @@
|
||||
<item quantity="other">Fhreagair %1$,d luchd-cleachdaidh le %2$s</item>
|
||||
</plurals>
|
||||
<string name="sk_search_suicide_message">Ma tha thu a’ sireadh samhla nach cuir thu às dhiot fhèin, seo e. Saoil am bruidhinn thu ri loidhne theth ionadail mu fhèin-mhurt ma tha iomagain ort\?</string>
|
||||
<string name="sk_trending_links_info_banner">Seo na sgeulachdan naidheachd air a bheilear a’ bruidhinn air an fhrithealaiche agad.</string>
|
||||
<string name="sk_trending_links_info_banner">Seo na sgeulachdan naidheachd air a bheilear a’ bruidhinn air a’ cho-shaoghal.</string>
|
||||
<string name="sk_search_fediverse">Lorg air a’ cho-shaoghal</string>
|
||||
<string name="sk_post_contains_media">Tha meadhan sa phost</string>
|
||||
<string name="sk_tab_notifications">Brathan</string>
|
||||
<string name="sk_list_exclusive_switch_explanation">Cha nochd buill liosta às-dùnaich air loidhne-ama na dachaighe agad – ma chuireas an t-ionstans agad taic ri seo.</string>
|
||||
<string name="sk_pronouns_label">Riochdairean</string>
|
||||
<string name="sk_settings_color_palette_default">Bun-roghainn (%s)</string>
|
||||
<string name="sk_icon_water">Uisge</string>
|
||||
<string name="sk_icon_sun">Grian</string>
|
||||
<string name="sk_icon_sunset">Laighe na grèine</string>
|
||||
<string name="sk_icon_cloud">Neul</string>
|
||||
<string name="sk_icon_thunderstorm">Gailleann</string>
|
||||
<string name="sk_icon_rain">An t-uisge</string>
|
||||
<string name="sk_posted">Phostaich %s</string>
|
||||
<string name="sk_edit_alt_text">Deasaich an roghainn teacsa</string>
|
||||
<string name="sk_settings_clear_timeline_cache">Glan tasgadan na dachaigh</string>
|
||||
<string name="sk_button_mutuals">Co-dhàimhean</string>
|
||||
<string name="sk_icon_snowflake">Bleideag sneachda</string>
|
||||
<string name="sk_muted_accounts">Cunntasan mùchte</string>
|
||||
<string name="sk_blocked_accounts">Cunntasan ’gam bacadh</string>
|
||||
<string name="sk_settings_like_icon">Cleachd cridhe ’na ìomhaigheag annsachd</string>
|
||||
<string name="sk_recently_used">Air a chleachdadh o chionn goirid</string>
|
||||
<string name="sk_settings_underlined_links">Fo-loidhnich ceanglaichean</string>
|
||||
<string name="sk_set_as_default">Suidhich mar a’ bhun-roghainn</string>
|
||||
<string name="sk_timeline_cache_cleared">Chaidh tasgadan na dachaigh a ghlanadh</string>
|
||||
<string name="sk_settings_lock_account">Aontaich ri luchd-leantainn ùra a làimh</string>
|
||||
<string name="sk_settings_default_visibility">Faicsinneachd bhunaiteach nam post</string>
|
||||
<string name="sk_private_note_hint">Cuir ris nòta pearsanta mun phròifil seo</string>
|
||||
<string name="sk_confirm_changes">Dearbh na h-atharraichean</string>
|
||||
<string name="sk_private_note_update_failed">Dh’fhàillig le sàbhaladh an nòta</string>
|
||||
<string name="sk_private_note_confirm_delete">A bheil thu airson an nòta pearsanta mu %s a sguabadh às?</string>
|
||||
<string name="sk_delete_note">Sguab às an nòta pearsanta</string>
|
||||
<string name="sk_add_note">Cuir nòta pearsanta ris</string>
|
||||
<string name="sk_settings_copy_crash_log">Dèan lethbhreac dhen loga tuislidh as ùire</string>
|
||||
<string name="sk_settings_crash_log_unavailable">Chan eil gin ri fhaighinn… fhathast</string>
|
||||
<string name="sk_crash_log_copied">Chaidh lethbhreac dhen loga tuislidh a dhèanamh</string>
|
||||
<string name="sk_open_post_preview">Ro-sheall am post</string>
|
||||
<string name="sk_post_preview">Ro-sheall</string>
|
||||
<string name="sk_poll_multiple_choice">Iomadh roghainn</string>
|
||||
<string name="sk_poll_show_results">Seall na toraidhean</string>
|
||||
<string name="sk_poll_hide_results">Falaich na toraidhean</string>
|
||||
</resources>
|
||||
@@ -114,4 +114,10 @@
|
||||
<string name="mo_error_display_text">Algo fallou ao cargar esta publicación. Se o problema persiste, informa dos detalles do problema na nosa páxina de Incidencias.</string>
|
||||
<string name="mo_settings_remove_tracking_params">Ligazóns privadas</string>
|
||||
<string name="mo_settings_remove_tracking_params_summary">Retirar os parámetros de rastrexo das ligazóns</string>
|
||||
</resources>
|
||||
<string name="mo_personal_note_saved">Gardouse a nota</string>
|
||||
<string name="mo_settings_enhance_text_size_summary">Aumenta o tamaño do texto da app</string>
|
||||
<string name="mo_settings_enhance_text_size">Mellorar tamaño do texto</string>
|
||||
<string name="mo_mute_hashtag_explanation_discreet">As outras persoas non saberás que acalaches este cancelo.</string>
|
||||
<string name="mo_mute_hashtag_explanation_search">Poderás seguir atopando publicacións con este cancelo noutras cronoloxías ou nas buscas.</string>
|
||||
<string name="mo_mute_hashtag_explanation_muted_home">Non verás na cronoloxía de Inicio as publicacións que mencionen este cancelo.</string>
|
||||
</resources>
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
<string name="sk_confirm_pin_post_title">Fixar publicación ao perfil</string>
|
||||
<string name="sk_confirm_pin_post">Queres fixar esta publicación ao teu perfil\?</string>
|
||||
<string name="sk_pinning">Fixando a publicación…</string>
|
||||
<string name="sk_unpin_post">Despegar do perfil</string>
|
||||
<string name="sk_confirm_unpin_post_title">Despegar publicación do perfil</string>
|
||||
<string name="sk_confirm_unpin_post">Tes a certeza de querer despegar esta publicación\?</string>
|
||||
<string name="sk_unpinning">Despegando publicación…</string>
|
||||
<string name="sk_unpin_post">Soltar do perfil</string>
|
||||
<string name="sk_confirm_unpin_post_title">Non fixar a publicación no perfil</string>
|
||||
<string name="sk_confirm_unpin_post">Tes a certeza de querer soltar esta publicación?</string>
|
||||
<string name="sk_unpinning">Soltando a publicación…</string>
|
||||
<string name="sk_image_description">Descrición da imaxe</string>
|
||||
<string name="sk_lists_with_user">Listas con %s</string>
|
||||
<string name="sk_visibility_unlisted">Non listado</string>
|
||||
<string name="sk_visibility_unlisted">Fóra das listas</string>
|
||||
<string name="sk_settings_show_replies">Mostrar respostas</string>
|
||||
<string name="sk_settings_show_boosts">Mostrar promocións</string>
|
||||
<string name="sk_settings_load_new_posts">Cargar automáticamente novas publicacións</string>
|
||||
@@ -26,8 +26,8 @@
|
||||
<string name="sk_user_post_notifications_off">Apagadas as notificación de publicación para %s</string>
|
||||
<string name="sk_federated_timeline">Federación</string>
|
||||
<string name="sk_federated_timeline_info_banner">Estas son as publicacións máis recentes das persoas da túa federación.</string>
|
||||
<string name="sk_update_available">Megalodon %s está lista para descargar.</string>
|
||||
<string name="sk_update_ready">Megalodon %s foi descargada e está lista para instalar.</string>
|
||||
<string name="sk_update_available">Megalodon %s está preparada para descargar.</string>
|
||||
<string name="sk_update_ready">Megalodon %s descargouse e está preparada para instalar.</string>
|
||||
<string name="sk_check_for_update">Comprobar actualizacións</string>
|
||||
<string name="sk_no_update_available">Non hai actualizacións</string>
|
||||
<string name="sk_list_timelines">Listas</string>
|
||||
@@ -253,7 +253,7 @@
|
||||
<string name="sk_unfinished_attachments_message">Algúns arquivos adxuntos aínda non remataron de cargarse.</string>
|
||||
<string name="sk_settings_prefix_reply_cw_with_re">Prefixar AC con \"re:\" cando respondes</string>
|
||||
<string name="sk_filtered">Filtrados: %s</string>
|
||||
<string name="sk_expand">Expandir</string>
|
||||
<string name="sk_expand">Despregar</string>
|
||||
<string name="sk_settings_collapse_long_posts">Contraer publicacións moi longas</string>
|
||||
<string name="sk_unfinished_attachments">Subindo arquivos adxuntos</string>
|
||||
<string name="sk_spectator_mode">Modo espectador</string>
|
||||
@@ -285,7 +285,7 @@
|
||||
<string name="sk_content_type">Tipo de contido</string>
|
||||
<string name="sk_content_type_markdown">Markdown</string>
|
||||
<string name="sk_settings_content_types_explanation">Permite configurar un tipo de contido como Markdown ao crear unha publicación. Teña en conta que non tódalas instancias soportan isto.</string>
|
||||
<string name="sk_bubble_timeline_info_banner">Estas son as publicacións máis recentes da instancia seleccionadas polos administradores da súa instancia.</string>
|
||||
<string name="sk_bubble_timeline_info_banner">Estas son as publicacións máis recentes da instancia seleccionadas pola administración da túa instancia.</string>
|
||||
<string name="sk_timeline_bubble">Burbulla</string>
|
||||
<string name="sk_instance_info_unavailable">Información da instancia temporalmente non dispoñible</string>
|
||||
<string name="sk_open_in_app">Abrir na aplicación</string>
|
||||
@@ -329,10 +329,10 @@
|
||||
<string name="sk_gif_badge">GIF</string>
|
||||
<string name="sk_settings_unifiedpush_no_distributor_body">Debe instalar un distribuidor para que as notificacións UnifiedPush funcionen. Para máis información, visita https://unifiedpush.org/</string>
|
||||
<string name="sk_settings_unifiedpush_no_distributor">Non se atopou ningún distribuidor</string>
|
||||
<string name="sk_trending_posts_info_banner">Estas publicacións están a gañar tracción no Fediverso.</string>
|
||||
<string name="sk_trending_posts_info_banner">Estas publicacións están a gañar atención no Fediverso.</string>
|
||||
<string name="sk_settings_unifiedpush_choose">Escoller un distribuidor</string>
|
||||
<string name="sk_settings_continues_playback">Superposición de audio</string>
|
||||
<string name="sk_trending_links_info_banner">Estase a falar destas novas historias a través do Fediverso.</string>
|
||||
<string name="sk_trending_links_info_banner">Estase a falar destas novas historias no Fediverso.</string>
|
||||
<string name="sk_settings_unifiedpush">Empregar UnifiedPush</string>
|
||||
<string name="sk_disable_pill_shaped_active_indicator">Desactivar o indicador de lapela activa en forma de pílula</string>
|
||||
<string name="sk_tab_profile">Perfil</string>
|
||||
@@ -426,4 +426,4 @@
|
||||
<string name="sk_private_note_confirm_delete">Borrar unha nota persoal sobre %s?</string>
|
||||
<string name="sk_confirm_changes">Confirmar cambios</string>
|
||||
<string name="sk_posted">%s publicou</string>
|
||||
</resources>
|
||||
</resources>
|
||||
|
||||
@@ -94,4 +94,31 @@
|
||||
<string name="mo_setting_haptic_feedback_summary">Bergetar ketika berinteraksi dengan kiriman</string>
|
||||
<string name="mo_confirm_to_mute_hashtag">Apakah Anda yakin ingin membisukan tagar ini\?</string>
|
||||
<string name="mo_notification_filter_reset">Atur ulang ke bawaan</string>
|
||||
</resources>
|
||||
<string name="mo_settings_remove_tracking_params">Tautan Pribadi</string>
|
||||
<string name="mo_error_display_text">Ada yang salah saat memuat kiriman ini. Jika masalah terus berlanjut, silakan laporkan di laman Isu serta dengan detail kesalahan.</string>
|
||||
<string name="mo_settings_remove_tracking_params_summary">Hilangkan informasi pelacak dari tautan</string>
|
||||
<string name="mo_instance_view_info">Tampilkan Info Server</string>
|
||||
<string name="mo_mute_notifications">Sembunyikan notifikasi dari pengguna ini?</string>
|
||||
<string name="mo_settings_unifiedpush_warning">UnifiedPush tidak diaktifkan</string>
|
||||
<string name="mo_settings_unifiedpush_warning_no_distributors">Tidak ada distributor UnifiedPush yang terpasang. Anda tidak akan menerima notifikasi.</string>
|
||||
<string name="mo_settings_unifiedpush_warning_disabled">UnifiedPush tidak diaktifkan. Anda tidak akan menerima notifikasi.</string>
|
||||
<string name="mo_settings_unifiedpush_enable">Aktifkan</string>
|
||||
<string name="import_settings_confirm">Konfirmasi mengimpor pengaturan?</string>
|
||||
<string name="import_settings_confirm_body">Semua pengaturan dan lini masa saat ini akan ditimpa! Ini tidak dapat diurungkan.</string>
|
||||
<string name="import_settings_failed">Gagal mengimpor pengaturan</string>
|
||||
<string name="export_settings_share">Pengaturan Pengeksporan</string>
|
||||
<string name="export_settings_fail">Gagal mengekspor pengaturan</string>
|
||||
<string name="export_settings_summary">Ekspor semua pengaturan dan lini masa dari semua akun yang masuk</string>
|
||||
<string name="import_settings_title">Impor pengaturan</string>
|
||||
<string name="export_settings_title">Ekspor pengaturan</string>
|
||||
<string name="mo_personal_note_saved">Catatan disimpan</string>
|
||||
<string name="import_settings_summary">Impor pengaturan dan lini masa yang sebelumnya diekspor</string>
|
||||
<string name="mo_error_display_title">Gagal menampilkan kiriman</string>
|
||||
<string name="mo_error_display_copy_error_details">Salin detail</string>
|
||||
<string name="mo_trending_link_read">Baca</string>
|
||||
<string name="mo_settings_enhance_text_size">Tingkatkan ukuran teks</string>
|
||||
<string name="mo_settings_enhance_text_size_summary">Membuat teks aplikasi lebih besar</string>
|
||||
<string name="mo_mute_hashtag_explanation_search">Anda masih dapat mencari kiriman dengan tagar ini di lini masa lain atau melalui pencarian.</string>
|
||||
<string name="mo_mute_hashtag_explanation_muted_home">Anda tidak akan melihat kiriman menyebutkan tagar ini dalam lini masa Beranda Anda.</string>
|
||||
<string name="mo_mute_hashtag_explanation_discreet">Orang lain tidak akan tahu bahwa Anda membisukan tagar ini.</string>
|
||||
</resources>
|
||||
|
||||
@@ -113,4 +113,5 @@
|
||||
<string name="mo_mute_hashtag">Silenzia hashtag</string>
|
||||
<string name="mo_unmute_hashtag">Riattiva hashtag</string>
|
||||
<string name="mo_instance_view_info">Visualizza informazioni Server</string>
|
||||
<string name="mo_personal_note_saved">Nota salvata</string>
|
||||
</resources>
|
||||
@@ -71,4 +71,47 @@
|
||||
<string name="mo_notification_action_replied">%s さんの投稿への返信に成功しました</string>
|
||||
<string name="mo_load_remote_followers">リモートプロフィールのフォローとフォロワーを読み込む</string>
|
||||
<string name="mo_color_palette_black_and_white">白黒</string>
|
||||
<string name="mo_settings_remove_tracking_params_summary">リンクからトラッキング情報を削除</string>
|
||||
<string name="mo_trending_link_read">既読</string>
|
||||
<string name="mo_muted_conversation_successfully">会話を正常にミュートしました</string>
|
||||
<string name="mo_unmuted_conversation_successfully">会話のミュートを解除しました</string>
|
||||
<string name="mo_muting">ミュート中…</string>
|
||||
<string name="mo_unmuting">ミュートを解除中…</string>
|
||||
<string name="mo_mute_conversation">会話をミュート</string>
|
||||
<string name="mo_confirm_to_unmute_conversation">この会話をミュート解除してもよろしいですか?</string>
|
||||
<string name="mo_mute_hashtag">ハッシュタグをミュート</string>
|
||||
<string name="mo_blocked_accounts">ブロックしたアカウント</string>
|
||||
<string name="mo_show_media_preview">タイムラインにメディアプレビューを表示</string>
|
||||
<string name="mo_filter_notifications">通知をフィルタリング</string>
|
||||
<string name="mo_recent_emoji_cleared">最近の絵文字がクリアされました</string>
|
||||
<string name="mo_notification_filter_reset">デフォルトにリセット</string>
|
||||
<string name="mo_double_tap_to_search">ダブルタップして検索を開く</string>
|
||||
<string name="mo_confirm_to_mute_hashtag">このハッシュタグをミュートしてもよろしいですか?</string>
|
||||
<string name="mo_unmute_conversation">会話のミュートを解除</string>
|
||||
<string name="mo_muted_accounts">ミュートしたアカウント</string>
|
||||
<string name="mo_personal_note_saved">ノートが保存されました</string>
|
||||
<string name="mo_instance_view_info">サーバー情報を表示</string>
|
||||
<string name="mo_settings_show_posts_without_alt_summary">投稿はすべてのタイムラインで非表示になりますが、スレッドや通知では表示されます</string>
|
||||
<string name="mo_error_display_text">この投稿の読み込み中に問題が発生しました。問題が解決しない場合は、エラーの詳細を添えて私たちのIssuesページに報告してください。</string>
|
||||
<string name="mo_confirm_to_mute_conversation">この会話をミュートしてもよろしいですか?</string>
|
||||
<string name="mo_settings_show_posts_without_alt">代替テキストがないメディア投稿を表示</string>
|
||||
<string name="mo_mute_notifications">このユーザーからの通知を非表示にしますか?</string>
|
||||
<string name="mo_settings_unifiedpush_warning">UnifiedPushが有効になっていません</string>
|
||||
<string name="mo_settings_unifiedpush_warning_no_distributors">UnifiedPushディストリビューターがインストールされていないため、通知を受け取ることができません。</string>
|
||||
<string name="mo_settings_unifiedpush_warning_disabled">UnifiedPushが有効になっていないため、通知を受け取ることができません。</string>
|
||||
<string name="mo_settings_unifiedpush_enable">有効</string>
|
||||
<string name="import_settings_confirm">設定をインポートしてもよろしいですか?</string>
|
||||
<string name="import_settings_confirm_body">現在のすべての設定とタイムラインが上書きされます!この操作は元に戻せません。</string>
|
||||
<string name="import_settings_failed">設定のインポートに失敗しました</string>
|
||||
<string name="export_settings_share">設定をエクスポート</string>
|
||||
<string name="export_settings_fail">設定のエクスポートに失敗しました</string>
|
||||
<string name="export_settings_title">設定をエクスポート</string>
|
||||
<string name="export_settings_summary">すべてのログイン中のアカウントの設定とタイムラインをエクスポート</string>
|
||||
<string name="import_settings_title">設定をインポート</string>
|
||||
<string name="import_settings_summary">以前にエクスポートした設定とタイムラインをインポート</string>
|
||||
<string name="mo_error_display_title">投稿の表示に失敗しました</string>
|
||||
<string name="mo_error_display_copy_error_details">詳細をコピー</string>
|
||||
<string name="mo_unmute_hashtag">ハッシュタグのミュートを解除</string>
|
||||
<string name="mo_confirm_to_unmute_hashtag">このハッシュタグをミュート解除してもよろしいですか?</string>
|
||||
<string name="mo_settings_remove_tracking_params">プライベートリンク</string>
|
||||
</resources>
|
||||
@@ -401,4 +401,31 @@
|
||||
<string name="sk_icon_thunderstorm">雷雨</string>
|
||||
<string name="sk_open_in_app_failed">アプリで開くことができませんでした</string>
|
||||
<string name="sk_private_note_confirm_delete">%s に関するパーソナルメモを削除しますか?</string>
|
||||
<string name="sk_settings_reply_visibility_following">フォローしている人への返信</string>
|
||||
<string name="sk_trending_links_info_banner">これらのニュース記事はフェディバース全体で話題になっています。</string>
|
||||
<string name="sk_alt_text_missing">少なくとも1つの添付ファイルに説明が含まれていません。</string>
|
||||
<string name="sk_posted">%s が投稿しました</string>
|
||||
<string name="sk_settings_local_only_explanation">この機能が動作するためには、あなたのホームインスタンスがローカル専用投稿をサポートしている必要があります。ほとんどの修正されたMastodonのバージョンはこれをサポートしていますが、Mastodonはサポートしていません。</string>
|
||||
<string name="sk_reacted">%s がリアクションしました</string>
|
||||
<string name="sk_settings_prefix_reply_cw_with_re">返信する際は、CWを「re:」で始めてください</string>
|
||||
<string name="sk_content_type_unspecified">指定されていません</string>
|
||||
<string name="sk_external_share_or_open_title">アカウントで共有または開く</string>
|
||||
<string name="sk_settings_prefix_replies_always">誰にでも</string>
|
||||
<string name="sk_settings_prefix_replies_never">無効にする</string>
|
||||
<string name="sk_settings_forward_report_default">「報告を転送」スイッチのデフォルト</string>
|
||||
<plurals name="sk_users_reacted_with">
|
||||
<item quantity="other">%1$,d人のユーザーが%2$sで反応しました</item>
|
||||
</plurals>
|
||||
<string name="sk_search_suicide_message">もし自殺を考えているなら、これはあなたに対するメッセージです。辛い時は、お住いの地域の自殺防止ホットラインに連絡することを考えてみてください。</string>
|
||||
<string name="sk_open_post_preview">投稿のプレビュー</string>
|
||||
<string name="sk_poll_multiple_choice">複数の選択肢</string>
|
||||
<string name="sk_poll_show_results">結果を表示</string>
|
||||
<string name="sk_poll_hide_results">結果を隠す</string>
|
||||
<string name="sk_settings_content_types_explanation">投稿を作成する際に、Markdownのようなコンテンツタイプを設定できるようにします。ただし、すべてのインスタンスがこれをサポートしているわけではないことに注意してください。</string>
|
||||
<string name="sk_reply_line_above_avatar">アバターの上の「返信先」行</string>
|
||||
<string name="sk_settings_prefix_replies_to_others">他の人への返信のみ</string>
|
||||
<string name="sk_reacted_with">%1$s が %2$s でリアクションしました</string>
|
||||
<string name="sk_settings_default_content_type_explanation">これにより、新しい投稿を作成する際にコンテンツタイプを事前に選択でき、「投稿設定」で設定された値を上書きすることができます。</string>
|
||||
<string name="sk_edit_timeline_tags_explanation">これらの操作はサーバーによって処理されることに注意してください。これらを組み合わせることはサポートされていない可能性があります。</string>
|
||||
<string name="sk_post_preview">プレビュー</string>
|
||||
</resources>
|
||||
@@ -407,4 +407,11 @@
|
||||
<string name="sk_edit_alt_text">대체 텍스트 편집</string>
|
||||
<string name="sk_settings_unifiedpush">UnifiedPush 사용</string>
|
||||
<string name="sk_pronouns_label">인칭 대명사</string>
|
||||
<string name="sk_icon_water">물</string>
|
||||
<string name="sk_icon_sun">태양</string>
|
||||
<string name="sk_icon_sunset">일몰</string>
|
||||
<string name="sk_icon_cloud">구름</string>
|
||||
<string name="sk_icon_thunderstorm">번개구름</string>
|
||||
<string name="sk_icon_rain">비</string>
|
||||
<string name="sk_icon_snowflake">눈꽃</string>
|
||||
</resources>
|
||||
@@ -113,4 +113,5 @@
|
||||
<string name="import_settings_confirm_body">Visi esami nustatymai ir laiko skalės bus perrašyti! Šio veiksmo atšaukti negalima.</string>
|
||||
<string name="import_settings_summary">Importuok anksčiau eksportuotus nustatymus ir laiko skales.</string>
|
||||
<string name="mo_error_display_text">Įkeliant šį įrašą kažkas nutiko ne taip. Jei problema išlieka, pranešk apie tai mūsų problemų puslapyje ir nurodyk klaidos informaciją.</string>
|
||||
<string name="mo_personal_note_saved">Išsaugota pastaba</string>
|
||||
</resources>
|
||||
@@ -3,12 +3,12 @@
|
||||
<string name="sk_pinned_posts">Prisegta</string>
|
||||
<string name="sk_confirm_pin_post_title">Prisegti įrašą prie profilio</string>
|
||||
<string name="sk_confirm_unpin_post_title">Atsegti įrašą iš profilio</string>
|
||||
<string name="sk_confirm_pin_post">Ar nori prisegti šį įrašą prie savo profilio?</string>
|
||||
<string name="sk_confirm_delete_and_redraft">Ar tikrai nori ištrinti ir iš naujo parengti šį įrašą?</string>
|
||||
<string name="sk_confirm_pin_post">Ar norite prisegti šį įrašą prie savo profilio?</string>
|
||||
<string name="sk_confirm_delete_and_redraft">Ar tikrai norite ištrinti ir iš naujo parengti šį įrašą?</string>
|
||||
<string name="sk_pin_post">Prisegti prie profilio</string>
|
||||
<string name="sk_pinning">Prisegimas įrašas…</string>
|
||||
<string name="sk_unpin_post">Atsegti iš profilio</string>
|
||||
<string name="sk_confirm_unpin_post">Ar tikrai nori atsegti šį įrašą?</string>
|
||||
<string name="sk_confirm_unpin_post">Ar tikrai norite atsegti šį įrašą?</string>
|
||||
<string name="sk_unpinning">Atsegimas įrašas…</string>
|
||||
<string name="sk_image_description">Vaizdo aprašymas</string>
|
||||
<string name="sk_settings_show_replies">Rodyti atsakymus</string>
|
||||
@@ -22,9 +22,9 @@
|
||||
<string name="sk_mark_media_as_sensitive">Žymėti mediją kaip jautrią</string>
|
||||
<string name="sk_user_post_notifications_on">Įjungta įrašų pranešimai naudotojui %s</string>
|
||||
<string name="sk_federated_timeline">Federacija</string>
|
||||
<string name="sk_federated_timeline_info_banner">Tai – naujausi įrašai, kuriuos paskelbė žmonės tavo federacijoje.</string>
|
||||
<string name="sk_bubble_timeline_info_banner">Tai – naujausi įrašai iš tinklo, kuriuos kuruoja tavo serverio administratoriai.</string>
|
||||
<string name="sk_trending_links_info_banner">Tai – naujienų istorijos, kurios kalbamoms visoje Fediversijoje.</string>
|
||||
<string name="sk_federated_timeline_info_banner">Tai – naujausi įrašai, kuriuos paskelbė asmenys jūsų federacijoje.</string>
|
||||
<string name="sk_bubble_timeline_info_banner">Tai – naujausi įrašai iš tinklo, kuriuos kuruoja jūsų serverio administratoriai.</string>
|
||||
<string name="sk_trending_links_info_banner">Tai – naujienų istorijos, kurios kalbamoms visoje fediversijoje.</string>
|
||||
<string name="sk_update_available">„Megalodon“ %s paruoštas atsisiųsti.</string>
|
||||
<string name="sk_check_for_update">Tikrinti, ar yra naujinimas</string>
|
||||
<string name="sk_list_timelines">Sąrašai</string>
|
||||
@@ -69,7 +69,7 @@
|
||||
<string name="sk_settings_translate_only_opened">Versti tik atvirus įrašus</string>
|
||||
<string name="sk_settings_translation_availability_note_available">%s palaiko vertimą!</string>
|
||||
<string name="sk_settings_translation_availability_note_unavailable">%s atrodo, kad nepalaiko vertimo.</string>
|
||||
<string name="sk_loading_fediverse_resource_title">Ieškoma Fediversijoje</string>
|
||||
<string name="sk_loading_fediverse_resource_title">Ieškoma fediversijoje</string>
|
||||
<string name="sk_loading_resource_on_instance_title">Ieškoma serveryje %s</string>
|
||||
<string name="sk_undo_reblog">Atšaukti pasidalinimą</string>
|
||||
<string name="sk_quote_post">Skelbti apie tai</string>
|
||||
@@ -125,7 +125,7 @@
|
||||
<string name="sk_resource_not_found">Išteklių nepavyko rasti.</string>
|
||||
<string name="sk_bookmarked_as">Pridėta kaip %s</string>
|
||||
<string name="sk_save_draft_message">Ar nori išsaugoti šio juodraščio pakeitimus, ar paskelbti jį dabar?</string>
|
||||
<string name="sk_settings_continues_playback_summary">Leisk toliau leisti jau leidžiamą mediją, uždengiant naująjį įrašo peržiūrą.</string>
|
||||
<string name="sk_settings_continues_playback_summary">Leiskite toliau paleisti jau leidžiamą mediją, uždengiant naująjį įrašo peržiūrą.</string>
|
||||
<string name="sk_settings_show_boosts">Rodyti pasidalinimus</string>
|
||||
<string name="sk_reject_follow_request">Atmesti sekimo prašymą</string>
|
||||
<string name="sk_color_palette_red">Raudona</string>
|
||||
@@ -153,7 +153,7 @@
|
||||
<string name="sk_compose_draft">Įrašas bus išsaugotas kaip juodraštis.</string>
|
||||
<string name="sk_private_note_update_failed">Nepavyko išsaugoti pastabos.</string>
|
||||
<string name="sk_schedule">Planuoti</string>
|
||||
<string name="sk_trending_posts_info_banner">Tai – įrašai, kurie šiuo metu sulaukia vis daugiau dėmesio Fediversijoje.</string>
|
||||
<string name="sk_trending_posts_info_banner">Tai – įrašai, kurie šiuo metu sulaukia vis daugiau dėmesio fediversijoje.</string>
|
||||
<string name="sk_schedule_or_draft">Planuoti arba išsaugoti kaip juodraštį</string>
|
||||
<string name="sk_notify_update">Redaguoja pasidalintą įrašą</string>
|
||||
<string name="sk_external_share_title">Bendrinti su paskyra</string>
|
||||
@@ -335,7 +335,7 @@
|
||||
<string name="sk_settings_instance">Serveris</string>
|
||||
<string name="sk_disable_pill_shaped_active_indicator">Išjungti piliulės formos aktyvaus skirtuko indikatorių</string>
|
||||
<string name="sk_settings_true_black">Juodos spalvos režimas</string>
|
||||
<string name="sk_search_fediverse">Ieškoti Fediversą</string>
|
||||
<string name="sk_search_fediverse">Ieškoti fediversą</string>
|
||||
<string name="sk_settings_display_pronouns_in_timelines">Rodyti įvardžius laiko skalėje</string>
|
||||
<string name="sk_settings_display_pronouns_in_threads">Rodyti įvardžius gijose</string>
|
||||
<string name="sk_settings_display_pronouns_in_user_listings">Rodyti įvardžius naudotojų sąrašuose</string>
|
||||
@@ -442,5 +442,5 @@
|
||||
<string name="sk_settings_like_icon">Naudoti širdelę kaip mėgstamą piktogramą</string>
|
||||
<string name="sk_settings_prefix_replies_always">Atsakant į bet kurį</string>
|
||||
<string name="sk_settings_show_labels_in_navigation_bar">Rodyti skirtukų etiketes naršymo juostoje</string>
|
||||
<string name="sk_settings_emoji_reactions_explanation">Rodo jaustukų reakcijas įrašams ir leidžia pridėti savo. Įvairūs Fediverso serveriai tai palaiko, bet įprastas „Mastodon“ – ne.</string>
|
||||
<string name="sk_settings_emoji_reactions_explanation">Rodo jaustukų reakcijas įrašams ir leidžia pridėti savo. Įvairūs fediverso serveriai tai palaiko, bet įprastas „Mastodon“ – ne.</string>
|
||||
</resources>
|
||||
@@ -107,4 +107,13 @@
|
||||
<string name="import_settings_failed">Import ustawień się nie powiódł</string>
|
||||
<string name="export_settings_fail">Nie udało się wyeksportować ustawień</string>
|
||||
<string name="mo_error_display_title">Nie udało się wyświetlić wpisu</string>
|
||||
<string name="mo_settings_remove_tracking_params_summary">Usuń z linków parametry służące do śledzenia użytkoników</string>
|
||||
<string name="mo_settings_remove_tracking_params">Linki bez parametrów śledzących</string>
|
||||
<string name="mo_settings_unifiedpush_warning_no_distributors">Nie zainstalowano UnifiedPush Distributors. Nie możliwe będzie otrzymywanie powiadomień.</string>
|
||||
<string name="mo_settings_unifiedpush_warning_disabled">UnifiedPush nie jest włączone. Niemożliwe będzie otrzymywanie powiadomień.</string>
|
||||
<string name="import_settings_confirm_body">Wszystkie obecne ustawienia i osie czasu zostaną nadpisane! Nie można tego cofnąć.</string>
|
||||
<string name="import_settings_summary">Importuj wcześniej wyeksportowane ustawienia i osie czasu</string>
|
||||
<string name="mo_personal_note_saved">Zapisano notatkę</string>
|
||||
<string name="export_settings_summary">Eksportuj wszystkie ustawienia i osie czasu z zalogowanych kont</string>
|
||||
<string name="mo_error_display_text">Wystąpił błąd podczas ładowania tego wpisu. Jeżeli problem się powtarza prosimy zgłosić go na naszej stronie Zgłoszeń wraz z infomacjami o błędzie.</string>
|
||||
</resources>
|
||||
@@ -448,4 +448,5 @@
|
||||
<string name="sk_add_timeline_tag_error_empty">Hashtag nie może być pusty</string>
|
||||
<string name="sk_list_exclusive_switch_explanation">Członkowie listy na wyłączność nie będą wyświetlani na głównej osi czasu — jeśli Twoja instancja ją obsługuje.</string>
|
||||
<string name="sk_icon_beaker">Szkło laboratoryjne</string>
|
||||
<string name="sk_posted">Nowy wpis %s</string>
|
||||
</resources>
|
||||
@@ -115,4 +115,5 @@
|
||||
<string name="mo_trending_link_read">Citiți</string>
|
||||
<string name="mo_settings_remove_tracking_params_summary">Eliminați informațiile de urmărire din linkuri</string>
|
||||
<string name="mo_settings_remove_tracking_params">Linkuri private</string>
|
||||
<string name="mo_personal_note_saved">Notă salvată</string>
|
||||
</resources>
|
||||
@@ -104,4 +104,7 @@
|
||||
<string name="export_settings_fail">Не удалось экспортировать настройка</string>
|
||||
<string name="export_settings_title">Экспортировать настройки</string>
|
||||
<string name="import_settings_title">Импортировать настройки</string>
|
||||
</resources>
|
||||
<string name="mo_settings_enhance_text_size">Крупнее текст</string>
|
||||
<string name="mo_settings_enhance_text_size_summary">Крупнее текст приложения</string>
|
||||
<string name="mo_personal_note_saved">Заметка сохранена</string>
|
||||
</resources>
|
||||
|
||||
@@ -14,4 +14,106 @@
|
||||
<string name="mo_color_palette_nord">Nord</string>
|
||||
<string name="mo_disable_reminder_to_add_alt_text">Fotoğraflara açıklama yazısı ekleme hatırlatıcısını devre dışı bırak</string>
|
||||
<string name="mo_filtered">Filtrelenen: %s</string>
|
||||
</resources>
|
||||
<string name="mo_settings_remove_tracking_params_summary">Bağlantılardan izleme bilgilerini çıkarın</string>
|
||||
<string name="mo_trending_link_read">Oku</string>
|
||||
<string name="mo_settings_remove_tracking_params">Özel Bağlantılar</string>
|
||||
<string name="mo_disable_relocate_publish_button_to_enable_customization">Özelleştirmeye izin vermek için Yayınla düğmesinin yerini değiştir\'i devre dışı bırakın</string>
|
||||
<string name="mo_fab_compose">Oluştur</string>
|
||||
<string name="mo_confirm_unfollow_title">Hesabı Takipten Çıkar</string>
|
||||
<string name="mo_confirm_unfollow">%s\'i takipten çıkmayı onaylayın</string>
|
||||
<string name="mo_instance_admin">Tarafından yönetilir</string>
|
||||
<string name="mo_hide_compose_button_while_scrolling_setting">Kaydırırken oluştur düğmesini gizle</string>
|
||||
<string name="mo_welcome_text">Başlamak için lütfen aşağıya ana örneğinizin alan adını girin.</string>
|
||||
<string name="mo_open_camera">Fotoğraf çek</string>
|
||||
<string name="mo_duration_days_3">3 gün</string>
|
||||
<string name="mo_share_open_url">Uygulamada aç</string>
|
||||
<string name="mo_severity_suspend">Engellendi</string>
|
||||
<string name="mo_setting_relocate_publish_summary">Yayımla düğmesini alt çubuğa taşı</string>
|
||||
<string name="mo_setting_default_reply_privacy_summary">Yanıtlar keşfet özelliklerinde yer almayacak</string>
|
||||
<string name="mo_instance_info_open_timeline">Yerel zaman tüneli</string>
|
||||
<string name="mo_instance_info_moderated_servers">Denetlenen sunucular</string>
|
||||
<string name="mo_setting_haptic_feedback_summary">Gönderilerle etkileşimde titreşimi aç</string>
|
||||
<string name="mo_swap_bookmark_with_reblog">Yer imini yeniden bloglama eylemiyle değiştir</string>
|
||||
<string name="mo_relocate_publish_button">Yayımla düğmesini yeniden konumlandır</string>
|
||||
<string name="mo_camera_not_available">Kamera yok!</string>
|
||||
<string name="mo_notification_audience_settings">Bildirim Kitlesi</string>
|
||||
<string name="mo_poll_option_add">Yeni anket seçeneği ekle</string>
|
||||
<string name="mo_add_custom_server_local_timeline">Özel bir sunucunun yerel zaman çizelgesini ekleyin</string>
|
||||
<string name="mo_mute_label">Süre:</string>
|
||||
<string name="mo_duration_indefinite">Belirsiz</string>
|
||||
<string name="mo_change_default_reply_visibility_to_unlisted">Varsayılan olarak \'Listelenmemiş\' olarak yanıtla</string>
|
||||
<string name="mo_duration_days_7">7 gün</string>
|
||||
<string name="mo_composer_behavior">Bestecinin Davranışı</string>
|
||||
<string name="mo_download_latest_nightly_release">Son nightly sürümü indir</string>
|
||||
<string name="mo_setting_reduced_motion_summary">Etkileşim animasyonlarını devre dışı bırak</string>
|
||||
<string name="mo_enable_dividers">Gönderi ayırıcılarını göster</string>
|
||||
<string name="mo_notification_management_settings">Bildirimleri Yönet</string>
|
||||
<string name="mo_setting_true_black_summary">AMOLED ekranlarda güç tasarrufu sağlayabilir</string>
|
||||
<string name="mo_setting_marquee_summary">Elips şeklindeki başlık kaydırmayı devre dışı bırakır</string>
|
||||
<string name="mo_load_remote_followers">Uzak profil takip ve takipçilerini yükle</string>
|
||||
<string name="mo_mention_reblogger_automatically">Gönderiyi yeniden bloglayan hesabı yanıtlarda otomatik olarak belirtin</string>
|
||||
<string name="mo_muted_conversation_successfully">Konuşma başarıyla sessize alındı</string>
|
||||
<string name="mo_unmuted_conversation_successfully">Konuşma başarıyla sessize alındı</string>
|
||||
<string name="mo_muting">Sessize alınıyor…</string>
|
||||
<string name="mo_unmuting">Ses açılıyor…</string>
|
||||
<string name="mo_mute_conversation">Konuşmayı sessize al</string>
|
||||
<string name="mo_unmute_conversation">Konuşmanın sesini aç</string>
|
||||
<string name="mo_mute_hashtag">Sessiz etiket</string>
|
||||
<string name="mo_confirm_to_mute_hashtag">Bu etiketi sessize almak istediğinizden emin misiniz?</string>
|
||||
<string name="mo_unmute_hashtag">Etiketi sessize al</string>
|
||||
<string name="mo_confirm_to_unmute_hashtag">Bu etiketin sesini açmak istediğinizden emin misiniz?</string>
|
||||
<string name="mo_duration_hours_1">1 saat</string>
|
||||
<string name="mo_duration_hours_6">6 saat</string>
|
||||
<string name="mo_duration_days_1">1 gün</string>
|
||||
<string name="mo_severity_silence">Susturulmuş</string>
|
||||
<string name="mo_blocked_accounts">Bloke edilmiş hesaplar</string>
|
||||
<string name="mo_muted_accounts">Sessize alınmış hesaplar</string>
|
||||
<string name="mo_show_media_preview">Medya önizlemesini zaman çizelgelerinde göster</string>
|
||||
<string name="mo_setting_disable_swipe_summary">Görüntülenen zaman tünelini değiştirmek için kaydırın</string>
|
||||
<string name="mo_filter_notifications">Bildirimleri filtrele</string>
|
||||
<string name="mo_settings_show_posts_without_alt">Eksik alternatif metni olan medya gönderilerini göster</string>
|
||||
<string name="mo_double_tap_to_swipe_between_tabs">Sekmeler arasında kaydırmak için çift dokunun</string>
|
||||
<string name="mo_settings_show_posts_without_alt_summary">Gönderiler tüm zaman tünellerinde gizlenecek, ancak konu başlıklarında ve bildirimlerde gösterilebilecek</string>
|
||||
<string name="mo_recent_emoji_cleared">Son emoji temizlendi</string>
|
||||
<string name="mo_notification_filter_reset">Varsayılana sıfırla</string>
|
||||
<string name="mo_double_tap_to_search">Aramayı açmak için iki kez dokunun</string>
|
||||
<string name="mo_setting_play_gif_summary">Avatarlarda ve emojilerde otomatik oynatılan GIF\'ler</string>
|
||||
<string name="mo_instance_view_info">Sunucu Bilgilerini Görüntüle</string>
|
||||
<string name="mo_setting_remote_follower_summary">Diğer örneklerden takipçileri göster</string>
|
||||
<string name="mo_instance_status">Durum</string>
|
||||
<string name="mo_setting_interaction_count_summary">Zaman tünelinde bir gönderiyle kaç kişinin etkileşime girdiğini göster</string>
|
||||
<string name="export_settings_summary">Oturum açmış tüm hesapların ayarlarını ve zaman çizelgelerini dışa aktarın</string>
|
||||
<string name="mo_error_display_text">Bu gönderi yüklenirken bir şeyler ters gitti. Sorun devam ederse, lütfen hata ayrıntılarıyla birlikte Sorunlar sayfamızda bildirin.</string>
|
||||
<string name="mo_instance_contact">İletişim</string>
|
||||
<string name="mo_notification_action_replied">%s tarafından gönderilen gönderiye başarıyla yanıt verildi</string>
|
||||
<string name="mo_settings_enhance_text_size">Metin boyutunu geliştir</string>
|
||||
<string name="mo_settings_enhance_text_size_summary">Uygulamanın metnini büyütür</string>
|
||||
<string name="import_settings_title">Ayarları içe aktar</string>
|
||||
<string name="import_settings_summary">Önceden dışa aktarılan ayarları ve zaman çizelgelerini içe aktarma</string>
|
||||
<string name="mo_error_display_title">Gönderi görüntülenemedi</string>
|
||||
<string name="mo_error_display_copy_error_details">Detayları kopyala</string>
|
||||
<string name="mo_mute_notifications">Bu kullanıcıdan gelen bildirimler gizlensin mi?</string>
|
||||
<string name="import_settings_failed">Ayarlar içe aktarılamadı</string>
|
||||
<string name="mo_settings_unifiedpush_warning">UnifiedPush etkin değil</string>
|
||||
<string name="mo_settings_unifiedpush_warning_no_distributors">UnifiedPush Distribütörleri yüklü değil. Herhangi bir bildirim almayacaksınız.</string>
|
||||
<string name="mo_settings_unifiedpush_warning_disabled">UnifiedPush etkin değil. Herhangi bir bildirim almayacaksınız.</string>
|
||||
<string name="mo_settings_unifiedpush_enable">Etkinleştir</string>
|
||||
<string name="import_settings_confirm">Ayarları içe aktarmayı onaylıyor musunuz?</string>
|
||||
<string name="import_settings_confirm_body">Tüm mevcut ayarların ve zaman çizelgelerinin üzerine yazılacaktır! Bu işlem geri alınamaz.</string>
|
||||
<string name="export_settings_share">Dışa Aktarma Ayarları</string>
|
||||
<string name="export_settings_fail">Ayarlar dışa aktarılamadı</string>
|
||||
<string name="export_settings_title">Dışa aktarma ayarları</string>
|
||||
<string name="mo_confirm_to_mute_conversation">Bu konuşmayı sessize almak istediğinizden emin misiniz?</string>
|
||||
<string name="mo_confirm_to_unmute_conversation">Bu sohbeti sessize almak istediğinizden emin misiniz?</string>
|
||||
<string name="mo_personal_note_saved">Not kaydedildi</string>
|
||||
<string name="mo_sending_error">Yayınlama hatası</string>
|
||||
<string name="mo_duration_minutes_5">5 dakika</string>
|
||||
<string name="mo_duration_minutes_30">30 dakika</string>
|
||||
<string name="mo_instance_users">Kullanıcılar</string>
|
||||
<string name="mo_instance_registration">Kayıt</string>
|
||||
<string name="mo_instance_registration_open">Açık</string>
|
||||
<string name="mo_instance_registration_approval">Onay gerekli</string>
|
||||
<string name="mo_haptic_feedback">Dokunsal geri bildirim</string>
|
||||
<string name="mo_setting_uniform_summary">Tüm bildirimler için uygulama simgesini kullanın</string>
|
||||
<string name="mo_swap_bookmark_with_reblog_summary">Bildirimden gönderileri yer imlerine ekleyin veya yeniden bloglayın</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,3 +1,440 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_pinned_posts">Sabitlenmiş</string>
|
||||
<string name="sk_delete_and_redraft">Sil ve yeniden taslak oluştur</string>
|
||||
<string name="sk_confirm_delete_and_redraft_title">Gönderiyi sil ve yeniden taslak oluştur</string>
|
||||
<string name="sk_confirm_delete_and_redraft">Bu yazıyı silmek ve yeniden taslak olarak hazırlamak istediğinizden emin misiniz?</string>
|
||||
<string name="sk_pin_post">Profile sabitle</string>
|
||||
<string name="sk_confirm_pin_post_title">Gönderiyi profile sabitle</string>
|
||||
<string name="sk_confirm_pin_post">Bu gönderiyi profilinize sabitlemek ister misiniz?</string>
|
||||
<string name="sk_pinning">Gönderi sabitleniyor…</string>
|
||||
<string name="sk_unpin_post">Profilden sabitlemeyi kaldır</string>
|
||||
<string name="sk_confirm_unpin_post">Bu gönderiyi geri almak istediğinizden emin misiniz?</string>
|
||||
<string name="sk_unpinning">Gönderi sabitlemesini kaldırıyor…</string>
|
||||
<string name="sk_image_description">Resim açıklaması</string>
|
||||
<string name="sk_visibility_unlisted">Listelenmemiş</string>
|
||||
<string name="sk_settings_show_replies">Cevapları göster</string>
|
||||
<string name="sk_settings_continues_playback">Ses katmanı</string>
|
||||
<string name="sk_quoting_user">Alıntı %s</string>
|
||||
<string name="sk_settings_reply_visibility">Cevap görünürlüğü</string>
|
||||
<string name="sk_settings_reply_visibility_all">Tüm yanıtlar</string>
|
||||
<string name="sk_settings_reply_visibility_following">Takip ettiklerime yanıtlar</string>
|
||||
<string name="sk_settings_reply_visibility_self">Bana verilen yanıtlar</string>
|
||||
<string name="sk_settings_continues_playback_summary">Zaten oynatılan medyanın oynatılmaya devam etmesine ve yeni oynatmanın üst üste gelmesine izin verin</string>
|
||||
<string name="sk_confirm_unpin_post_title">Gönderiyi profilden kaldır</string>
|
||||
<string name="sk_settings_show_boosts">Yayınları göster</string>
|
||||
<string name="sk_settings_load_new_posts">Yeni gönderileri otomatik olarak yükle</string>
|
||||
<string name="sk_settings_show_interaction_counts">Etkileşim sayılarını göster</string>
|
||||
<string name="sk_trending_links_info_banner">Bu haberler Fediverse\'de konuşuluyor.</string>
|
||||
<string name="sk_update_available">Megalodon %s indirilmeye hazır.</string>
|
||||
<string name="sk_update_ready">Megalodon %s indirildi ve kuruluma hazır.</string>
|
||||
<string name="sk_check_for_update">Güncellemeyi kontrol edin</string>
|
||||
<string name="sk_no_update_available">Güncelleme mevcut değil</string>
|
||||
<string name="sk_list_timelines">Listeler</string>
|
||||
<string name="sk_accept_follow_request">Takip isteğini kabul et</string>
|
||||
<string name="sk_reject_follow_request">Takip isteğini reddet</string>
|
||||
<string name="sk_follow_requests">Takip istekleri</string>
|
||||
<string name="sk_lists_with_user">%s içeren listeler</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">İçerik uyarılarını her zaman göster</string>
|
||||
<string name="sk_settings_enable_marquee">Başlık çubuklarında kayan metni etkinleştir</string>
|
||||
<string name="sk_settings_contribute">Megalodon\'a katkıda bulunun</string>
|
||||
<string name="sk_settings_show_federated_timeline">Federasyon zaman çizelgesini göster</string>
|
||||
<string name="sk_notification_type_status">Gönderiler</string>
|
||||
<string name="sk_notification_type_posts">Bildirim gönder</string>
|
||||
<string name="sk_settings_color_palette">Renk paleti</string>
|
||||
<string name="sk_settings_color_palette_default">Varsayılan (%s)</string>
|
||||
<string name="sk_color_palette_material3">Sistem</string>
|
||||
<string name="sk_color_palette_pink">Pembe</string>
|
||||
<string name="sk_color_palette_purple">Mor</string>
|
||||
<string name="sk_color_palette_green">Yeşil</string>
|
||||
<string name="sk_color_palette_blue">Mavi</string>
|
||||
<string name="sk_color_palette_brown">Kahverengi</string>
|
||||
<string name="sk_color_palette_red">Kırmızı</string>
|
||||
<string name="sk_color_palette_yellow">Sarı</string>
|
||||
<string name="sk_translate_post">Çeviri</string>
|
||||
<string name="sk_translate_show_original">Orijinalini göster</string>
|
||||
<string name="sk_translated_using">%s kullanılarak çevrildi</string>
|
||||
<string name="sk_post_language">Dil: %s</string>
|
||||
<string name="sk_available_languages">Mevcut diller</string>
|
||||
<string name="sk_language_name">%1$s (%2$s)</string>
|
||||
<string name="sk_confirm_clear_recent_languages">Son kullandığınız dilleri temizlemek istediğinizden emin misiniz?</string>
|
||||
<string name="sk_welcome_title">Hoş geldiniz!</string>
|
||||
<string name="sk_example_domain">ornek.com</string>
|
||||
<string name="sk_settings_tabs_disable_swipe">Sekmeler arasında kaydırmayı devre dışı bırak</string>
|
||||
<string name="sk_settings_profile">Profil kurulumu</string>
|
||||
<string name="sk_settings_posting">Gönderi tercihleri</string>
|
||||
<string name="sk_settings_filters">Filtreleri yapılandır</string>
|
||||
<string name="sk_settings_auth">Güvenlik ayarları</string>
|
||||
<string name="sk_settings_rules">Kurallar</string>
|
||||
<string name="sk_settings_about">Uygulama hakkında</string>
|
||||
<string name="sk_settings_donate">Bağış yap</string>
|
||||
<string name="sk_delete_notification">Bildirimi sil</string>
|
||||
<string name="sk_delete_notification_confirm_action">Bildirimi sil</string>
|
||||
<string name="sk_clear_all_notifications">Tüm bildirimleri temizle</string>
|
||||
<string name="sk_clear_all_notifications_confirm_action">Hepsini sil</string>
|
||||
<string name="sk_clear_all_notifications_confirm">Tüm bildirimleri temizlemek istediğinizden emin misiniz?</string>
|
||||
<string name="sk_settings_enable_delete_notifications">Bildirimleri silmeyi etkinleştir</string>
|
||||
<string name="sk_settings_publish_button_text">Yayımla düğmesi metni</string>
|
||||
<string name="sk_settings_publish_button_text_title">Yayımla düğmesinin metnini özelleştir</string>
|
||||
<string name="sk_welcome_text">Köpekbalığı sizi selamlıyor! Başlamak için lütfen aşağıya ana örneğinizin alan adını girin.</string>
|
||||
<string name="sk_delete_notification_confirm">Bu bildirimi silmek istediğinizden emin misiniz?</string>
|
||||
<string name="sk_clear_recent_languages">Son kullanılan dilleri temizle</string>
|
||||
<string name="sk_settings_translate_only_opened">Sadece açılan gönderileri çevir</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_mark_media_as_sensitive">Medyayı hassas olarak işaretleyin</string>
|
||||
<string name="sk_user_post_notifications_on">%s için gönderi bildirimleri açıldı</string>
|
||||
<string name="sk_user_post_notifications_off">%s için gönderi bildirimleri kapatıldı</string>
|
||||
<string name="sk_federated_timeline">Federasyon</string>
|
||||
<string name="sk_federated_timeline_info_banner">Bunlar, federasyonunuzdaki kişiler tarafından yapılan en son gönderilerdir.</string>
|
||||
<string name="sk_bubble_timeline_info_banner">Bunlar, örnek yöneticileriniz tarafından derlenen ağdaki en son gönderilerdir.</string>
|
||||
<string name="sk_trending_posts_info_banner">Bu paylaşımlar şu anda Fediverse\'de ilgi çekmeye devam ediyor.</string>
|
||||
<string name="sk_settings_translation_availability_note_available">%s çeviriyi destekliyor!</string>
|
||||
<string name="sk_settings_translation_availability_note_unavailable">%s çeviriyi desteklemiyor gibi görünüyor.</string>
|
||||
<string name="sk_loading_fediverse_resource_title">Fediverse\'de bunu araştırıyorum</string>
|
||||
<string name="sk_loading_resource_on_instance_title">%s üzerinde arıyorum</string>
|
||||
<string name="sk_undo_reblog">Geri alma güçlendirmesi</string>
|
||||
<string name="sk_reblog_with_visibility">Görünürlüğü artırın</string>
|
||||
<string name="sk_quote_post">Bu konuda gönderi oluşturun</string>
|
||||
<string name="sk_hashtags_you_follow">Takip ettiğiniz etiketler</string>
|
||||
<string name="sk_copy_link_to_post">Bağlantıyı gönderiye kopyala</string>
|
||||
<string name="sk_open_with_account">Başka bir hesapla aç</string>
|
||||
<string name="sk_resource_not_found">Kaynak bulunamadı</string>
|
||||
<string name="sk_bookmark_as">Başka bir hesapla yer imlerine ekle</string>
|
||||
<string name="sk_bookmarked_as">%s olarak yer imlerine eklendi</string>
|
||||
<string name="sk_already_bookmarked">Zaten yer imlerine eklendi</string>
|
||||
<string name="sk_favorite_as">Diğer hesapla favorilere ekle</string>
|
||||
<string name="sk_favorited_as">%s olarak favorilere eklendi</string>
|
||||
<string name="sk_already_favorited">Zaten favorilere eklendi</string>
|
||||
<string name="sk_reblog_as">Diğer hesapla öne çıkarın</string>
|
||||
<string name="sk_reblogged_as">%s öne çıkarıldı</string>
|
||||
<string name="sk_reply_as">Başka bir hesapla yanıtla</string>
|
||||
<string name="sk_settings_uniform_icon_for_notifications">Tüm bildirimler için tek tip simge</string>
|
||||
<string name="sk_forward_report_to">%s\'ye ilet</string>
|
||||
<string name="sk_unsent_posts">Gönderilmemiş gönderiler</string>
|
||||
<string name="sk_draft">Taslak</string>
|
||||
<string name="sk_schedule">Planla</string>
|
||||
<string name="sk_confirm_delete_draft_title">Taslağı sil</string>
|
||||
<string name="sk_confirm_delete_draft">Bu taslak yazıyı silmek istediğinizden emin misiniz?</string>
|
||||
<string name="sk_confirm_delete_scheduled_post_title">Planlanmış gönderiyi sil</string>
|
||||
<string name="sk_confirm_delete_scheduled_post">Bu planlanmış gönderiyi silmek istediğinizden emin misiniz?</string>
|
||||
<string name="sk_draft_or_schedule">Taslak veya planlanmış</string>
|
||||
<string name="sk_compose_draft">Gönderi taslak olarak kaydedilecektir.</string>
|
||||
<string name="sk_compose_scheduled">Planlandı</string>
|
||||
<string name="sk_draft_saved">Taslak kaydedildi</string>
|
||||
<string name="sk_post_scheduled">Planlanmış gönderi</string>
|
||||
<string name="sk_scheduled_too_soon_title">Planlanan zaman çok erken</string>
|
||||
<string name="sk_confirm_save_draft">Taslağı kaydetmek ister misiniz?</string>
|
||||
<string name="sk_confirm_save_changes">Değişiklikler kaydedilsin mi?</string>
|
||||
<string name="sk_mark_as_draft">Taslak olarak işaretle</string>
|
||||
<string name="sk_schedule_post">Gönderiyi planla</string>
|
||||
<string name="sk_schedule_or_draft">Planla veya taslak</string>
|
||||
<string name="sk_compose_no_schedule">Planlama yapmayın</string>
|
||||
<string name="sk_compose_no_draft">Taslak hazırlamayın</string>
|
||||
<string name="sk_settings_reduce_motion">Animasyonlardaki hareketi azaltın</string>
|
||||
<string name="sk_announcements">Duyurular</string>
|
||||
<string name="sk_mark_as_read">Okundu olarak işaretle</string>
|
||||
<string name="sk_settings_about_instance">Örnek hakkında</string>
|
||||
<string name="sk_settings_single_notification">Yalnızca bir bildirim göster</string>
|
||||
<string name="sk_settings_unifiedpush">UnifiedPush kullanın</string>
|
||||
<string name="sk_settings_unifiedpush_choose">Bir yayıncı seçin</string>
|
||||
<string name="sk_settings_unifiedpush_no_distributor">Yayıncı bulunamadı</string>
|
||||
<string name="sk_create">Oluştur</string>
|
||||
<string name="sk_create_list_title">Liste oluştur</string>
|
||||
<string name="sk_list_name_hint">Liste adı</string>
|
||||
<string name="sk_list_replies_policy">Yanıtları göster</string>
|
||||
<string name="sk_list_replies_policy_list">üye listesi</string>
|
||||
<string name="sk_list_replies_policy_followed">takip edilen kullanıcılar</string>
|
||||
<string name="sk_list_replies_policy_none">hiç kimse</string>
|
||||
<string name="sk_delete_list">Listeyi sil</string>
|
||||
<string name="sk_delete_list_confirm">“%s” listesini silmek istediğinizden emin misiniz?</string>
|
||||
<string name="sk_edit_list_title">Listeyi düzenle</string>
|
||||
<string name="sk_your_lists">Listeleriniz</string>
|
||||
<string name="sk_timeline_home">Ev</string>
|
||||
<string name="sk_timeline_local">Yerel</string>
|
||||
<string name="sk_timeline_federated">Federasyon</string>
|
||||
<string name="sk_timeline_bubble">Balon</string>
|
||||
<string name="sk_recent_searches_placeholder">Aramaya başlamak için yazın</string>
|
||||
<string name="sk_remove_follower">Takipçiyi kaldır</string>
|
||||
<string name="sk_remove_follower_confirm">%s isimli kişiyi engelleyip hemen engelini kaldırarak takipçi listenizden çıkarılsın mı?</string>
|
||||
<string name="sk_do_remove_follower">Kaldır</string>
|
||||
<string name="sk_remove_follower_success">Takipçi başarıyla kaldırıldı</string>
|
||||
<string name="sk_changelog">Değişiklik Günlüğü</string>
|
||||
<string name="sk_alt_text_missing_title">Eksik alt metin</string>
|
||||
<string name="sk_alt_text_missing">En az bir ek açıklama içermiyor.</string>
|
||||
<string name="sk_settings_disable_alt_text_reminder">Alt metin ekleme hatırlatmasını devre dışı bırak</string>
|
||||
<string name="sk_notify_posts_info_banner">Bazı kişiler için gönderi bildirimlerini etkinleştirirseniz, yeni gönderileri burada görünecektir.</string>
|
||||
<string name="sk_timelines">Zaman tüneli</string>
|
||||
<string name="sk_timeline_posts">Gönderiler</string>
|
||||
<string name="sk_publish_anyway">Yine de yayınlayın</string>
|
||||
<string name="sk_timelines_add">Ekle</string>
|
||||
<string name="sk_timeline">Zaman tüneli</string>
|
||||
<string name="sk_list">Liste</string>
|
||||
<string name="sk_hashtag">Etiket</string>
|
||||
<string name="sk_pin_timeline">Zaman tüneline sabitle</string>
|
||||
<string name="sk_unpin_timeline">Zaman tüneline sabitleme</string>
|
||||
<string name="sk_pinned_timeline">Eve sabitlendi</string>
|
||||
<string name="sk_icon_star">Yıldız</string>
|
||||
<string name="sk_icon_heart">Kalp</string>
|
||||
<string name="sk_icon_city">Şehir</string>
|
||||
<string name="sk_unpinned_timeline">Eve sabitlenmedi</string>
|
||||
<string name="sk_remove">Kaldır</string>
|
||||
<string name="sk_timeline_icon">Simge</string>
|
||||
<string name="sk_icon_cat">Kedi</string>
|
||||
<string name="sk_icon_dog">Köpek</string>
|
||||
<string name="sk_icon_rabbit">Tavşan</string>
|
||||
<string name="sk_icon_turtle">Kaplumbağa</string>
|
||||
<string name="sk_icon_balloon">Balon</string>
|
||||
<string name="sk_icon_image">Resim</string>
|
||||
<string name="sk_icon_bot">Bot</string>
|
||||
<string name="sk_icon_language">Dil</string>
|
||||
<string name="sk_icon_location">Konum</string>
|
||||
<string name="sk_icon_megaphone">Megafon</string>
|
||||
<string name="sk_icon_microphone">Mikrofon</string>
|
||||
<string name="sk_icon_microscope">Mikroskop</string>
|
||||
<string name="sk_icon_keyboard">Klavye</string>
|
||||
<string name="sk_icon_coffee">Kahve</string>
|
||||
<string name="sk_icon_laugh">Gülmek</string>
|
||||
<string name="sk_icon_news">Haberler</string>
|
||||
<string name="sk_icon_pi">Pi</string>
|
||||
<string name="sk_icon_color_palette">Renk paleti</string>
|
||||
<string name="sk_icon_academic_cap">Akademik kep</string>
|
||||
<string name="sk_icon_tag">Etiket</string>
|
||||
<string name="sk_icon_stethoscope">Stetoskop</string>
|
||||
<string name="sk_icon_weather">Hava</string>
|
||||
<string name="sk_icon_games">Oyunlar</string>
|
||||
<string name="sk_icon_code">Kod</string>
|
||||
<string name="sk_icon_light_bulb">Ampul</string>
|
||||
<string name="sk_icon_train">Tren</string>
|
||||
<string name="sk_icon_clapper_board">Film klaketi</string>
|
||||
<string name="sk_icon_leaves">Yapraklar</string>
|
||||
<string name="sk_icon_sport">Spor</string>
|
||||
<string name="sk_icon_aperture">Diyafram</string>
|
||||
<string name="sk_icon_music">Müzik</string>
|
||||
<string name="sk_icon_people">İnsan</string>
|
||||
<string name="sk_icon_health">Sağlık</string>
|
||||
<string name="sk_icon_important">Önemli</string>
|
||||
<string name="sk_icon_chat">Sohbet</string>
|
||||
<string name="sk_icon_shield">Kalkan</string>
|
||||
<string name="sk_icon_book">Kitap</string>
|
||||
<string name="sk_icon_bicycle">Bisiklet</string>
|
||||
<string name="sk_icon_map">Harita</string>
|
||||
<string name="sk_icon_math_formula">Matematik formülü</string>
|
||||
<string name="sk_icon_backpack">Sırt çantası</string>
|
||||
<string name="sk_icon_briefcase">Evrak Çantası</string>
|
||||
<string name="sk_icon_fire">Yangın</string>
|
||||
<string name="sk_icon_bug">Böcek</string>
|
||||
<string name="sk_icon_pizza">Pizza</string>
|
||||
<string name="sk_icon_gavel">Tokmak</string>
|
||||
<string name="sk_icon_gauge">Gösterge</string>
|
||||
<string name="sk_icon_headphones">Kulaklıklar</string>
|
||||
<string name="sk_icon_human">İnsan</string>
|
||||
<string name="sk_icon_globe">Dünya küresi</string>
|
||||
<string name="sk_icon_pin">Sabitleme</string>
|
||||
<string name="sk_icon_feed">Besleme</string>
|
||||
<string name="sk_icon_beaker">Laboratuvar kabı</string>
|
||||
<string name="sk_icon_bed">Yatak</string>
|
||||
<string name="sk_icon_recycle_bin">Geri dönüşüm kutusu</string>
|
||||
<string name="sk_icon_verified">Doğrulama</string>
|
||||
<string name="sk_icon_doctor">Doktor</string>
|
||||
<string name="sk_icon_diamond">Elmas</string>
|
||||
<string name="sk_icon_umbrella">Şemsiye</string>
|
||||
<string name="sk_icon_water">Su</string>
|
||||
<string name="sk_icon_sun">Güneş</string>
|
||||
<string name="sk_icon_sunset">Gün batımı</string>
|
||||
<string name="sk_icon_cloud">Bulut</string>
|
||||
<string name="sk_icon_thunderstorm">Fırtına</string>
|
||||
<string name="sk_icon_rain">Yağmur</string>
|
||||
<string name="sk_icon_snowflake">Kar Tanesi</string>
|
||||
<string name="sk_edit_timeline">Zaman tünelini düzenle</string>
|
||||
<string name="sk_add_timeline">Zaman tüneline ekle</string>
|
||||
<string name="sk_edit_timelines">Zaman tünellerini düzenle</string>
|
||||
<string name="sk_edit_timeline_tag_main">Etiket içeren gönderiler…</string>
|
||||
<string name="sk_edit_timeline_tag_any">...ya da bunlardan herhangi biri</string>
|
||||
<string name="sk_edit_timeline_tag_all">…ve bunların her biri</string>
|
||||
<string name="sk_edit_timeline_tag_none">...ama bunların hiçbiri</string>
|
||||
<string name="sk_edit_timeline_tag_hint">Etiket girin…</string>
|
||||
<string name="sk_edit_timeline_tags_hint">Etiketler girin…</string>
|
||||
<string name="sk_hashtag_timeline_local_only_switch">Yalnızca yerel gönderiler gösterilsin mi?</string>
|
||||
<string name="sk_alt_button">ALT</string>
|
||||
<string name="sk_gif_badge">GIF</string>
|
||||
<string name="sk_posted">%s gönderildi</string>
|
||||
<string name="sk_post_edited">düzenlendi</string>
|
||||
<string name="sk_notification_type_update">Düzenlenmiş gönderiler</string>
|
||||
<string name="sk_attach_file">Dosya ekle</string>
|
||||
<string name="sk_searching">Aranıyor…</string>
|
||||
<string name="sk_no_results">Sonuç yok</string>
|
||||
<string name="sk_save_draft">Taslak kaydedilsin mi?</string>
|
||||
<string name="sk_already_reblogged">Zaten öne çıkarılmış</string>
|
||||
<string name="sk_settings_unifiedpush_no_distributor_body">UnifiedPush bildirimlerinin çalışması için bir dağıtıcı yüklemeniz gerekir. Daha fazla bilgi için https://unifiedpush.org/ adresini ziyaret edin</string>
|
||||
<string name="sk_notify_update">Öne çıkarılmış bir gönderiyi düzenle</string>
|
||||
<string name="sk_scheduled_too_soon">Gönderi en az 10 dakika sonrasına planlanmalıdır.</string>
|
||||
<string name="sk_edit_timeline_tags_explanation">Lütfen bu işlemlerin sunucu tarafından gerçekleştirildiğini unutmayın. Bunların birleştirilmesi desteklenmeyebilir.</string>
|
||||
<string name="sk_add_timeline_tag_error_empty">Etiket boş olmamalıdır</string>
|
||||
<string name="sk_save_draft_message">Bu taslağa yaptığınız değişiklikleri kaydetmek mi yoksa şimdi yayınlamak mı istiyorsunuz?</string>
|
||||
<string name="sk_no_alt_text">Alt metin mevcut değil</string>
|
||||
<string name="sk_settings_show_alt_indicator">Alt metinler için gösterge</string>
|
||||
<string name="sk_settings_show_no_alt_indicator">Eksik alt metinler için gösterge</string>
|
||||
<string name="sk_updater_enable_pre_releases">Ön sürümleri etkinleştir</string>
|
||||
<string name="sk_settings_see_new_posts_button">\"Yeni gönderileri gör\" düğmesi</string>
|
||||
<string name="sk_inline_direct">sadece bahsedilen</string>
|
||||
<string name="sk_inline_local_only">sadece yerel</string>
|
||||
<string name="sk_separator">·</string>
|
||||
<string name="sk_local_only">Yalnızca yerel örnek</string>
|
||||
<string name="sk_instance_features">Örnek özellikleri</string>
|
||||
<string name="sk_settings_support_local_only">Sunucu sadece yerel gönderimi destekler</string>
|
||||
<string name="sk_settings_glitch_instance">Glitch sadece yerel mod</string>
|
||||
<string name="sk_settings_glitch_mode_explanation">Ev örneğiniz Glitch\'te çalışıyorsa bunu etkinleştirin. Hometown veya Akkoma için gerekli değildir.</string>
|
||||
<string name="sk_signed_up">Kaydoldu</string>
|
||||
<string name="sk_reported">Rapor Bildirdi</string>
|
||||
<string name="sk_reacted_with">%1$s %2$s ile tepki verdi</string>
|
||||
<string name="sk_reacted">%s tepki verdi</string>
|
||||
<string name="sk_sign_ups">Kayıt yaptıran kullanıcılar</string>
|
||||
<string name="sk_new_reports">Yeni raporlar</string>
|
||||
<string name="sk_settings_server_version">Sunucu sürümü: %s</string>
|
||||
<string name="sk_notify_poll_results">Anket sonuçları</string>
|
||||
<string name="sk_filtered">Filtrelendi: %s</string>
|
||||
<string name="sk_expand">Devamı</string>
|
||||
<string name="sk_collapse">Gizle</string>
|
||||
<string name="sk_settings_collapse_long_posts">Çok uzun gönderileri gizleyin</string>
|
||||
<string name="sk_unfinished_attachments">Eklerin yüklenmesi</string>
|
||||
<string name="sk_unfinished_attachments_message">Bazı eklerin yüklenmesi tamamlanmadı.</string>
|
||||
<string name="sk_settings_hide_interaction">Etkileşim düğmelerini gizle</string>
|
||||
<string name="sk_follow_as">Diğer hesaptan takip et</string>
|
||||
<string name="sk_followed_as">%s\'den takip edildi</string>
|
||||
<string name="sk_notification_action_replied">%s\'e yanıt gönderildi</string>
|
||||
<string name="sk_in_reply">Cevap olarak</string>
|
||||
<string name="sk_reply_line_above_avatar">Avatarın üstündeki \"Cevap olarak\" satırı</string>
|
||||
<string name="sk_show_thread">Konuyu göster</string>
|
||||
<string name="sk_content_type">İçerik türü</string>
|
||||
<string name="sk_content_type_unspecified">Belirtilmemiş</string>
|
||||
<string name="sk_content_type_plain">Düz metin</string>
|
||||
<string name="sk_content_type_html">HTML</string>
|
||||
<string name="sk_content_type_markdown">Markdown</string>
|
||||
<string name="sk_compact_reblog_reply_line">Kompakt yeniden paylaş/cevap hattı</string>
|
||||
<string name="sk_settings_confirm_before_reblog">Yeniden paylaşmadan önce onaylayın</string>
|
||||
<string name="sk_content_type_bbcode">BBCode</string>
|
||||
<string name="sk_content_type_mfm">MFM</string>
|
||||
<string name="sk_settings_content_types">Gönderi biçimlendirmeyi etkinleştir</string>
|
||||
<string name="sk_settings_default_content_type">Varsayılan içerik türü</string>
|
||||
<string name="sk_settings_default_content_type_explanation">Bu, yeni gönderiler oluştururken içerik türünün önceden seçilmesini ve \"Gönderi tercihleri\"nde ayarlanan değerin geçersiz kılınmasını sağlar.</string>
|
||||
<string name="sk_instance_info_unavailable">Örnek bilgisi geçici olarak kullanılamıyor</string>
|
||||
<string name="sk_open_in_app">Uygulamada aç</string>
|
||||
<string name="sk_open_in_app_failed">Uygulamada açılamadı</string>
|
||||
<string name="sk_external_share_title">Hesap ile paylaş</string>
|
||||
<string name="sk_external_share_or_open_title">Hesapla paylaşın veya açın</string>
|
||||
<string name="sk_no_remote_info_hint">uzak bilgi kullanılamıyor</string>
|
||||
<string name="sk_settings_allow_remote_loading">Uzak örneklerden bilgi yükle</string>
|
||||
<string name="sk_settings_auto_reveal_equal_spoilers">Cevaplarda eşit CW\'leri otomatik olarak ortaya çıkar</string>
|
||||
<string name="sk_settings_auto_reveal_nobody">Asla</string>
|
||||
<string name="sk_settings_auto_reveal_anyone">Herkesin cevapları</string>
|
||||
<string name="sk_settings_prefix_replies_always">Herkese yanıt olarak</string>
|
||||
<string name="sk_settings_prefix_replies_never">Asla</string>
|
||||
<string name="sk_settings_prefix_replies_to_others">Sadece diğerlerine yanıt olarak</string>
|
||||
<string name="sk_settings_forward_report_default">\"İleri rapor\" varsayılan geçiş</string>
|
||||
<string name="sk_exclusive_list">Özel liste</string>
|
||||
<string name="sk_list_exclusive_switch">Listeyi özel yapın</string>
|
||||
<string name="sk_advanced_options_show">Gelişmiş seçenekleri göster</string>
|
||||
<string name="sk_advanced_options_hide">Gelişmiş seçenekleri gizle</string>
|
||||
<string name="sk_spoiler_show">İçeriği göster</string>
|
||||
<string name="sk_pronouns_label">Zamirler</string>
|
||||
<string name="sk_switch_timeline">Zaman tünelini değiştir</string>
|
||||
<string name="sk_settings_instance">Örnek</string>
|
||||
<string name="sk_disable_pill_shaped_active_indicator">Hap şeklindeki etkin sekme göstergesini devre dışı bırak</string>
|
||||
<string name="sk_settings_true_black">Zifiri karanlık modu</string>
|
||||
<string name="sk_search_fediverse">Fediverse\'de arama yapın</string>
|
||||
<string name="sk_settings_display_pronouns_in_timelines">Zaman tünelinde zamirleri görüntüleme</string>
|
||||
<string name="sk_settings_display_pronouns_in_threads">Konularda zamirleri gösterme</string>
|
||||
<string name="sk_settings_display_pronouns_in_user_listings">Kullanıcı listelerinde zamirleri gösterme</string>
|
||||
<string name="sk_tab_home">Ev</string>
|
||||
<string name="sk_tab_search">Arama</string>
|
||||
<string name="sk_tab_notifications">Bildirimler</string>
|
||||
<string name="sk_tab_profile">Profil</string>
|
||||
<string name="sk_settings_show_labels_in_navigation_bar">Gezinme çubuğunda sekme etiketlerini göster</string>
|
||||
<string name="sk_settings_emoji_reactions">Emoji tepkilerini etkinleştirin</string>
|
||||
<string name="sk_settings_show_emoji_reactions">Zaman tünellerinde emoji tepkilerini gösterin</string>
|
||||
<string name="sk_settings_show_emoji_reactions_hide_empty">Boş emoji tepkilerini gizle</string>
|
||||
<string name="sk_settings_show_emoji_reactions_only_opened">Sadece gönderi açıldığında</string>
|
||||
<string name="sk_settings_show_emoji_reactions_always">Her zaman ekle düğmesini göster</string>
|
||||
<plurals name="sk_users_reacted_with">
|
||||
<item quantity="one">Bir kullanıcı %2$s ile tepki verdi</item>
|
||||
<item quantity="other">%1$,d kullanıcı %2$s ile tepki verdi</item>
|
||||
</plurals>
|
||||
<string name="sk_button_react">Emoji ile tepki verin</string>
|
||||
<string name="sk_enter_emoji_toast">Lütfen bir emoji yazın</string>
|
||||
<string name="sk_enter_emoji_hint">Bir emoji yazın veya arama yapın</string>
|
||||
<string name="sk_mute_label">Süre</string>
|
||||
<string name="sk_duration_indefinite">Belirsiz</string>
|
||||
<string name="sk_duration_minutes_5">5 dakika</string>
|
||||
<string name="sk_duration_minutes_30">30 dakika</string>
|
||||
<string name="sk_duration_hours_1">1 saat</string>
|
||||
<string name="sk_duration_hours_6">6 saat</string>
|
||||
<string name="sk_duration_days_1">1 gün</string>
|
||||
<string name="sk_duration_days_3">3 gün</string>
|
||||
<string name="sk_duration_days_7">7 gün</string>
|
||||
<string name="sk_notification_mention">%s tarafından bahsedildiniz</string>
|
||||
<string name="sk_suicide_search_terms">İntihar</string>
|
||||
<string name="sk_search_suicide_title">Kendinizi kötü hissediyorsanız…</string>
|
||||
<string name="sk_search_suicide_message">İntihar etmemeniz için bir işaret arıyorsanız, işte bu. Sıkıntıdaysanız lütfen yerel bir intihar yardım hattına ulaşmayı düşünün.</string>
|
||||
<string name="sk_search_suicide_hotlines">Bir yardım hattı bulun</string>
|
||||
<string name="sk_do_not_show_again">Bir daha gösterme</string>
|
||||
<string name="sk_suicide_helplines_url">https://findahelpline.com</string>
|
||||
<plurals name="sk_posts_count_label">
|
||||
<item quantity="one">Gönderi</item>
|
||||
<item quantity="other">Gönderiler</item>
|
||||
</plurals>
|
||||
<string name="sk_post_contains_media">Gönderi medya içeriyor</string>
|
||||
<string name="sk_load_missing_posts_above">Daha yeni gönderileri yükle</string>
|
||||
<string name="sk_load_missing_posts_below">Eski gönderileri yükle</string>
|
||||
<plurals name="sk_time_seconds">
|
||||
<item quantity="one">%d saniye</item>
|
||||
<item quantity="other">%d saniye</item>
|
||||
</plurals>
|
||||
<plurals name="sk_time_minutes">
|
||||
<item quantity="one">%d dakika</item>
|
||||
<item quantity="other">%d dakika</item>
|
||||
</plurals>
|
||||
<plurals name="sk_time_hours">
|
||||
<item quantity="one">%d saat</item>
|
||||
<item quantity="other">%d saat</item>
|
||||
</plurals>
|
||||
<plurals name="sk_time_days">
|
||||
<item quantity="one">%d gün</item>
|
||||
<item quantity="other">%d gün</item>
|
||||
</plurals>
|
||||
<string name="sk_muted_accounts">Sessize alınan hesaplar</string>
|
||||
<string name="sk_blocked_accounts">Engellenen hesaplar</string>
|
||||
<string name="sk_settings_like_icon">Kalbi favori simgesi olarak kullan</string>
|
||||
<string name="sk_recently_used">Son kullanılanlar</string>
|
||||
<string name="sk_set_as_default">Varsayılan olarak ayarla</string>
|
||||
<string name="sk_edit_alt_text">Alt metni düzenleme</string>
|
||||
<string name="sk_settings_clear_timeline_cache">Ana zaman tüneli önbelleğini temizleme</string>
|
||||
<string name="sk_timeline_cache_cleared">Ana zaman tüneli önbelleği temizlendi</string>
|
||||
<string name="sk_settings_lock_account">Yeni takipçileri manuel olarak onaylama</string>
|
||||
<string name="sk_settings_default_visibility">Varsayılan gönderi görünürlüğü</string>
|
||||
<string name="sk_button_mutuals">Takipleştiğim kişiler</string>
|
||||
<string name="sk_confirm_changes">Değişiklikleri onaylayın</string>
|
||||
<string name="sk_private_note_confirm_delete">%s hakkındaki kişisel not silinsin mi?</string>
|
||||
<string name="sk_delete_note">Kişisel notu sil</string>
|
||||
<string name="sk_add_note">Kişisel not ekleyin</string>
|
||||
<string name="sk_settings_copy_crash_log">En son çökme günlüğünü kopyala</string>
|
||||
<string name="sk_settings_crash_log_unavailable">Henüz mevcut değil...</string>
|
||||
<string name="sk_crash_log_copied">Çökme günlüğü kopyalandı</string>
|
||||
<string name="sk_post_preview">Önizleme</string>
|
||||
<string name="sk_poll_multiple_choice">Çoklu seçenekler</string>
|
||||
<string name="sk_poll_show_results">Sonuçları göster</string>
|
||||
<string name="sk_poll_hide_results">Sonuçları gizle</string>
|
||||
<string name="sk_settings_local_only_explanation">Bunun işe yaraması için ev örneğinizin yalnızca yerel gönderiyi desteklemesi gerekir. Mastodon\'un çoğu değiştirilmiş sürümü bunu destekler, ancak Mastodon desteklemez.</string>
|
||||
<string name="sk_settings_prefix_reply_cw_with_re">Cevap verirken CW\'nin önüne \"re:\" ekleyin</string>
|
||||
<string name="sk_settings_content_types_explanation">Bir gönderi oluştururken Markdown gibi bir içerik türü ayarlamanıza izin verir. Tüm örneklerin bunu desteklemediğini unutmayın.</string>
|
||||
<string name="sk_error_loading_profile">%s üzerinden profil yükleme başarısız oldu</string>
|
||||
<string name="sk_settings_auto_reveal_author">Aynı kişinin yanıtları</string>
|
||||
<string name="sk_list_exclusive_switch_explanation">Özel bir listenin üyeleri, örneğiniz destekliyorsa, ev zaman çizelgenizde görünmez.</string>
|
||||
<string name="sk_settings_emoji_reactions_explanation">Gönderilere emoji tepkileri gösterir ve sizinkini eklemenize olanak tanır. Çeşitli Fediverse sunucuları bunu destekler, ancak Mastodon desteklemez.</string>
|
||||
<string name="sk_settings_underlined_links">Altı çizili bağlantılar</string>
|
||||
<string name="sk_private_note_hint">Bu profil hakkında kişisel bir not ekleyin</string>
|
||||
<string name="sk_private_note_update_failed">Not kaydedilemedi</string>
|
||||
<string name="sk_open_post_preview">Gönderiyi önizle</string>
|
||||
<string name="sk_settings_hide_fab">Oluştur düğmesini otomatik gizle</string>
|
||||
<string name="sk_settings_allow_remote_loading_explanation">Orijinal örneğinden bilgileri yükleyerek takipçiler, beğeniler ve yeniden paylaş için daha doğru listelemeler getirmeyi deneyin.</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="mo_welcome_text">Щоб розпочати, будь ласка, введіть адресу вашого екземпляру нижче.</string>
|
||||
<string name="mo_welcome_text">Щоб розпочати, будь ласка, введіть адресу вашого екземпляра нижче.</string>
|
||||
<string name="mo_no_image_desc">Зображення не мають опису. Ви можете додати його, щоб люди із вадами зору могли зрозуміти, яке забарвлення в котика.</string>
|
||||
<string name="mo_disable_relocate_publish_button_to_enable_customization">Вимкніть переміщення кнопки «Опублікувати» для кастомізації</string>
|
||||
<string name="mo_color_palette_nord">Nord</string>
|
||||
<string name="mo_disable_dividers">Вимкнути роздільники публікацій</string>
|
||||
<string name="mo_relocate_publish_button">Перемістити кнопку «Опублікувати»</string>
|
||||
<string name="mo_hide_compose_button_while_scrolling_setting">Сховати кнопку «Нова публікація» під час прокручування</string>
|
||||
<string name="mo_hide_compose_button_while_scrolling_setting">Сховати кнопку «Новий допис» під час прокручування</string>
|
||||
<string name="mo_personal_note">Додати нотатку до цього профілю</string>
|
||||
<string name="mo_personal_note_confirm">Підтвердити зміни</string>
|
||||
<string name="mo_personal_note_update_failed">Не вдалося зберегти нотатку</string>
|
||||
@@ -34,7 +34,7 @@
|
||||
<string name="mo_download_latest_nightly_release">Встановити останній нічний реліз</string>
|
||||
<string name="mo_notification_action_replied">Успішно надіслано відповідь на публікацію від %s</string>
|
||||
<string name="mo_change_default_reply_visibility_to_unlisted">За замовчуванням відповідати як «Прихований»</string>
|
||||
<string name="mo_composer_behavior">Поведінка екрану створення публікації</string>
|
||||
<string name="mo_composer_behavior">Поведінка екрана створення публікації</string>
|
||||
<string name="mo_miscellaneous_settings">Інші Налаштування</string>
|
||||
<string name="mo_duration_minutes_5">5 хвилин</string>
|
||||
<string name="mo_disable_double_tap_to_swipe_between_tabs">Вимкнути подвійне тицяння для перемикання між вкладками</string>
|
||||
@@ -103,17 +103,23 @@
|
||||
<string name="mo_error_display_title">Не вдалося відобразити публікацію</string>
|
||||
<string name="mo_error_display_text">Щось пішло не так під час завантаження цього повідомлення. Якщо проблема не зникне, будь ласка, повідомте про неї на нашій сторінці «Issues» (Проблеми), вказавши деталі помилки.</string>
|
||||
<string name="mo_mute_conversation">Заблокувати розмову</string>
|
||||
<string name="mo_confirm_to_mute_conversation">Ви впевнені що хочете заблокувати цю розмову?</string>
|
||||
<string name="mo_confirm_to_mute_conversation">Ви впевнені, що хочете заблокувати цю розмову?</string>
|
||||
<string name="mo_settings_remove_tracking_params_summary">Видаліть інформацію про відстеження з посилань</string>
|
||||
<string name="mo_settings_remove_tracking_params">Приватні посилання</string>
|
||||
<string name="mo_confirm_to_mute_hashtag">Ви впевнені що хочете заблокувати цей хештег?</string>
|
||||
<string name="mo_confirm_to_mute_hashtag">Ви впевнені, що хочете заблокувати цей хештег?</string>
|
||||
<string name="mo_muted_conversation_successfully">Розмову успішно приглушено</string>
|
||||
<string name="mo_unmuted_conversation_successfully">Розмову успішно розблоковано</string>
|
||||
<string name="mo_muting">Приглушення…</string>
|
||||
<string name="mo_unmuting">Розглушення…</string>
|
||||
<string name="mo_unmute_conversation">Розблокувати розмову</string>
|
||||
<string name="mo_confirm_to_unmute_conversation">Ви впевнені що хочете розблокувати цю розмову?</string>
|
||||
<string name="mo_confirm_to_unmute_conversation">Ви впевнені, що хочете розблокувати цю розмову?</string>
|
||||
<string name="mo_mute_hashtag">Заблокувати хештег</string>
|
||||
<string name="mo_unmute_hashtag">Розблокувати хештег</string>
|
||||
<string name="mo_confirm_to_unmute_hashtag">Ви впевнені що хочете розблокувати цей хештег?</string>
|
||||
</resources>
|
||||
<string name="mo_confirm_to_unmute_hashtag">Ви впевнені, що хочете розблокувати цей хештег?</string>
|
||||
<string name="mo_personal_note_saved">Нотатку збережено</string>
|
||||
<string name="mo_settings_enhance_text_size">Збільшити розмір шрифту</string>
|
||||
<string name="mo_settings_enhance_text_size_summary">Збільшити розмір шрифту в додатку</string>
|
||||
<string name="mo_mute_hashtag_explanation_search">Дописи з цим хештегом будуть доступні в інших стрічках або за допомогою пошуку.</string>
|
||||
<string name="mo_mute_hashtag_explanation_muted_home">Ви не будете бачити дописів з цим хештегом у своїй домашній стрічці.</string>
|
||||
<string name="mo_mute_hashtag_explanation_discreet">Інші не знатимуть, що ви заблокували цей хештег.</string>
|
||||
</resources>
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
<string name="sk_settings_show_federated_timeline">Показувати федеративну стрічку</string>
|
||||
<string name="sk_example_domain">example.social</string>
|
||||
<string name="sk_welcome_title">Вітаємо!</string>
|
||||
<string name="sk_welcome_text">Акулка вітає вас! Щоб розпочати, введіть нижче доменне ім’я вашого сервера.</string>
|
||||
<string name="sk_welcome_text">Акулка вітає вас! Щоб розпочати, введіть нижче доменне ім\'я вашого сервера.</string>
|
||||
<string name="sk_settings_profile">Налаштувати профіль</string>
|
||||
<string name="sk_settings_posting">Налаштувати постинг</string>
|
||||
<string name="sk_settings_filters">Налаштувати фільтри</string>
|
||||
@@ -287,7 +287,7 @@
|
||||
<string name="sk_settings_content_types_explanation">Дозволяє налаштувати тип вмісту, наприклад, Markdown, під час написання допису. Зауважте, що не всі сервери підтримують цю функцію.</string>
|
||||
<string name="sk_open_in_app">Відкрити у застосунку</string>
|
||||
<string name="sk_external_share_title">Поділитися через обліковий запис</string>
|
||||
<string name="sk_bubble_timeline_info_banner">Це найновіші дописи з мережі керованої адміністраторами вашого сервера.</string>
|
||||
<string name="sk_bubble_timeline_info_banner">Це найновіші дописи з мережі, керованої адміністраторами вашого сервера.</string>
|
||||
<string name="sk_timeline_bubble">Бульбашка</string>
|
||||
<string name="sk_instance_info_unavailable">Сервер тимчасово недоступний</string>
|
||||
<string name="sk_external_share_or_open_title">Поділитися або відкрити за допомогою облікового запису</string>
|
||||
@@ -366,7 +366,7 @@
|
||||
<item quantity="many">%1$,d користувачів зреагували %2$s</item>
|
||||
<item quantity="other">%1$,d користувачів зреагували %2$s</item>
|
||||
</plurals>
|
||||
<string name="sk_button_react">Реагуйте за допомогою емоджі</string>
|
||||
<string name="sk_button_react">Реагувати за допомогою емоджі</string>
|
||||
<string name="sk_again_for_system_keyboard">Торкніться ще раз, щоб відкрити системну клавіатуру</string>
|
||||
<string name="sk_settings_emoji_reactions">Увімкнути реакції з емоджі</string>
|
||||
<string name="sk_settings_emoji_reactions_explanation">Показує реакції емоджі на дописи та дає змогу додавати свої. Різні сервери Федісвіту підтримують цю функцію, але Mastodon не підтримує.</string>
|
||||
@@ -438,4 +438,4 @@
|
||||
<string name="sk_poll_multiple_choice">Кілька варіантів</string>
|
||||
<string name="sk_poll_show_results">Показати результати</string>
|
||||
<string name="sk_posted">%s опублікував</string>
|
||||
</resources>
|
||||
</resources>
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
<string name="mo_download_latest_nightly_release">下载最新的每日版</string>
|
||||
<string name="mo_load_remote_followers">加载外站账户的关注和粉丝</string>
|
||||
<string name="mo_mention_reblogger_automatically">自动在回复中提及转发帖子的账户</string>
|
||||
<string name="mo_swap_bookmark_with_reblog">交换转贴与收藏的位置</string>
|
||||
<string name="mo_swap_bookmark_with_reblog">交换转帖与收藏的位置</string>
|
||||
<string name="mo_confirm_unfollow_title">取消关注</string>
|
||||
<string name="mo_confirm_unfollow">确认取消关注 %s</string>
|
||||
<string name="mo_instance_admin">管理者</string>
|
||||
@@ -73,7 +73,7 @@
|
||||
<string name="mo_unmute_hashtag">取消禁用话题标签通知</string>
|
||||
<string name="mo_haptic_feedback">震动反馈</string>
|
||||
<string name="mo_show_media_preview">在时间线中显示媒体文件预览</string>
|
||||
<string name="mo_settings_show_posts_without_alt">显示含有缺少 alt 文本的媒体的贴文</string>
|
||||
<string name="mo_settings_show_posts_without_alt">显示含有缺少 alt 文本的媒体的帖文</string>
|
||||
<string name="mo_muted_accounts">已静音的账户</string>
|
||||
<string name="mo_camera_not_available">没有可用的摄像头!</string>
|
||||
<string name="mo_unmuted_conversation_successfully">已成功取消禁用对话通知</string>
|
||||
@@ -81,7 +81,7 @@
|
||||
<string name="mo_confirm_to_unmute_hashtag">您确定要取消禁用此话题标签的通知吗?</string>
|
||||
<string name="mo_blocked_accounts">已屏蔽的账户</string>
|
||||
<string name="mo_color_palette_black_and_white">黑白</string>
|
||||
<string name="mo_settings_show_posts_without_alt_summary">贴文将从所有时间线中隐藏,但可在对话和通知中显示</string>
|
||||
<string name="mo_settings_show_posts_without_alt_summary">帖文将从所有时间线中隐藏,但可在对话和通知中显示</string>
|
||||
<string name="mo_confirm_to_mute_conversation">您确定要禁用此对话的通知吗?</string>
|
||||
<string name="mo_muted_conversation_successfully">已成功禁用对话通知</string>
|
||||
<string name="mo_unmute_conversation">取消禁用对话通知</string>
|
||||
@@ -91,10 +91,35 @@
|
||||
<string name="mo_muting">禁用通知…</string>
|
||||
<string name="mo_unmuting">取消禁用通知…</string>
|
||||
<string name="mo_double_tap_to_search">双击以打开搜索</string>
|
||||
<string name="mo_setting_haptic_feedback_summary">在与贴文交互时震动</string>
|
||||
<string name="mo_setting_haptic_feedback_summary">在与帖文交互时振动</string>
|
||||
<string name="mo_confirm_to_mute_hashtag">您确定要禁用此话题标签的通知吗?</string>
|
||||
<string name="mo_filter_notifications">过滤通知</string>
|
||||
<string name="mo_notification_filter_reset">重置为默认值</string>
|
||||
<string name="mo_instance_view_info">查看服务器信息</string>
|
||||
<string name="mo_mute_notifications">隐藏来自此用户的通知?</string>
|
||||
</resources>
|
||||
<string name="mo_settings_remove_tracking_params_summary">删除链接中的跟踪信息</string>
|
||||
<string name="import_settings_confirm">确认导入设置?</string>
|
||||
<string name="mo_settings_unifiedpush_warning">未启用 UnifiedPush</string>
|
||||
<string name="mo_settings_unifiedpush_warning_no_distributors">未安装 UnifiedPush 分发程序。您将不会收到任何通知。</string>
|
||||
<string name="mo_settings_unifiedpush_warning_disabled">未启用 UnifiedPush。您将不会收到任何通知。</string>
|
||||
<string name="mo_settings_unifiedpush_enable">启用</string>
|
||||
<string name="import_settings_confirm_body">所有当前设置和时间线将被覆盖!此操作无法撤销。</string>
|
||||
<string name="import_settings_failed">导入设置失败</string>
|
||||
<string name="export_settings_share">导出设置</string>
|
||||
<string name="export_settings_fail">导出设置失败</string>
|
||||
<string name="export_settings_title">导出设置</string>
|
||||
<string name="export_settings_summary">导出所有已登录账户的设置和时间线</string>
|
||||
<string name="import_settings_title">导入设置</string>
|
||||
<string name="import_settings_summary">导入先前导出的设置和时间线</string>
|
||||
<string name="mo_error_display_title">显示帖文失败</string>
|
||||
<string name="mo_error_display_text">加载此帖文时出了问题。如果问题仍然存在,请在我们的工单页面上报告,并提供错误详情。</string>
|
||||
<string name="mo_settings_remove_tracking_params">链接隐私保护</string>
|
||||
<string name="mo_error_display_copy_error_details">复制详情</string>
|
||||
<string name="mo_trending_link_read">阅读</string>
|
||||
<string name="mo_personal_note_saved">备注已保存</string>
|
||||
<string name="mo_settings_enhance_text_size">增大文本大小</string>
|
||||
<string name="mo_settings_enhance_text_size_summary">使应用的文本更大</string>
|
||||
<string name="mo_mute_hashtag_explanation_search">您仍然可以在其他时间线上或通过搜索找到带有此话题标签的帖文。</string>
|
||||
<string name="mo_mute_hashtag_explanation_muted_home">您将不会在您的主页时间线中看到提及此话题标签的帖文。</string>
|
||||
<string name="mo_mute_hashtag_explanation_discreet">其他用户不会得知您已经禁用了此话题标签的通知。</string>
|
||||
</resources>
|
||||
|
||||
@@ -289,8 +289,8 @@
|
||||
<string name="sk_settings_content_types">启用嘟文格式</string>
|
||||
<string name="sk_settings_content_types_explanation">允许在创建文章时设置类似Markdown的内容类型。注意,不是所有的实例都支持这个。</string>
|
||||
<string name="sk_settings_default_content_type">默认的内容类型</string>
|
||||
<string name="sk_timeline_bubble">Bubble</string>
|
||||
<string name="sk_icon_feed">Feed</string>
|
||||
<string name="sk_timeline_bubble">气泡</string>
|
||||
<string name="sk_icon_feed">食物</string>
|
||||
<string name="sk_settings_default_content_type_explanation">这可以让你在创建新帖子时预选内容类型,覆盖 \"发帖偏好 \"中设置的值。</string>
|
||||
<string name="sk_instance_info_unavailable">实例信息暂时不可用</string>
|
||||
<string name="sk_open_in_app">在应用程序中打开</string>
|
||||
@@ -427,4 +427,5 @@
|
||||
<string name="sk_poll_multiple_choice">多选</string>
|
||||
<string name="sk_poll_show_results">显示结果</string>
|
||||
<string name="sk_suicide_helplines_url">https://findahelpline.com</string>
|
||||
<string name="sk_posted">%s 发布了</string>
|
||||
</resources>
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
<string name="mo_color_palette_black_and_white">黑白</string>
|
||||
</resources>
|
||||
@@ -24,7 +24,7 @@
|
||||
<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_user_post_notifications_on">為 %s 打開嘟文通知</string>
|
||||
<string name="sk_user_post_notifications_on">開啟 %s 的嘟文通知</string>
|
||||
<string name="sk_user_post_notifications_off">關閉 %s 的嘟文通知</string>
|
||||
<string name="sk_federated_timeline">聯邦時間軸</string>
|
||||
<string name="sk_federated_timeline_info_banner">這些是你的聯邦宇宙中的最新嘟文.</string>
|
||||
@@ -220,4 +220,182 @@
|
||||
<string name="sk_spoiler_show">顯示內容</string>
|
||||
<string name="sk_do_remove_follower">移除</string>
|
||||
<string name="sk_changelog">版本紀錄</string>
|
||||
<string name="sk_settings_continues_playback">音訊疊加</string>
|
||||
<string name="sk_settings_continues_playback_summary">允許正在播放的媒體繼續播放,並疊加新的播放內容</string>
|
||||
<string name="sk_settings_reply_visibility_following">僅我的跟隨者可見</string>
|
||||
<string name="sk_settings_reply_visibility_self">僅自己可見</string>
|
||||
<string name="sk_trending_links_info_banner">這些新聞在聯邦宇宙上被廣泛討論。</string>
|
||||
<string name="sk_settings_filters">過濾器設定</string>
|
||||
<string name="sk_settings_rules">規則</string>
|
||||
<string name="sk_settings_about">關於此應用程式</string>
|
||||
<string name="sk_undo_reblog">取消轉嘟</string>
|
||||
<string name="sk_open_with_account">於其它帳號中開啟</string>
|
||||
<string name="sk_resource_not_found">找不到來源</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_reblog_as">以其它帳號轉嘟</string>
|
||||
<string name="sk_already_favorited">已收藏</string>
|
||||
<string name="sk_already_reblogged">已轉嘟</string>
|
||||
<string name="sk_reblogged_as">已以 %s 轉嘟</string>
|
||||
<string name="sk_confirm_delete_draft">您確定要刪除這個草稿?</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_schedule">排程</string>
|
||||
<string name="sk_compose_scheduled">排定於</string>
|
||||
<string name="sk_post_scheduled">嘟文已預定發布</string>
|
||||
<string name="sk_scheduled_too_soon">排定發布的時間至少需為10分鐘以後。</string>
|
||||
<string name="sk_scheduled_too_soon_title">排定發布的時間太近</string>
|
||||
<string name="sk_schedule_or_draft">排程或草稿</string>
|
||||
<string name="sk_compose_no_schedule">不要排定發布</string>
|
||||
<string name="sk_settings_unifiedpush_choose">自訂通知推送服務</string>
|
||||
<string name="sk_settings_unifiedpush_no_distributor">未找到可用的通知推送服務</string>
|
||||
<string name="sk_list_replies_policy_followed">跟隨的用戶</string>
|
||||
<string name="sk_delete_list_confirm">您確定要刪除 %s 列表?</string>
|
||||
<string name="sk_list_replies_policy">顯示回覆給</string>
|
||||
<string name="sk_list_replies_policy_list">列表成員</string>
|
||||
<string name="sk_list_replies_policy_none">無人</string>
|
||||
<string name="sk_timeline_bubble">氣泡</string>
|
||||
<string name="sk_recent_searches_placeholder">輸入以搜尋</string>
|
||||
<string name="sk_remove_follower">刪除跟隨者</string>
|
||||
<string name="sk_remove_follower_confirm">通過封鎖以及立即解除封鎖,以移除 %s 跟隨者的身份?</string>
|
||||
<string name="sk_remove_follower_success">已成功移除跟隨者</string>
|
||||
<string name="sk_alt_text_missing_title">缺少替代文字</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_timelines">時間軸</string>
|
||||
<string name="sk_timeline_posts">嘟文</string>
|
||||
<string name="sk_timelines_add">新增</string>
|
||||
<string name="sk_timeline">時間軸</string>
|
||||
<string name="sk_hashtag">主題標籤</string>
|
||||
<string name="sk_pin_timeline">釘選時間軸</string>
|
||||
<string name="sk_unpin_timeline">取消釘選時間軸</string>
|
||||
<string name="sk_pinned_timeline">已釘選至首頁</string>
|
||||
<string name="sk_unpinned_timeline">已解除釘選至首頁</string>
|
||||
<string name="sk_remove">移除</string>
|
||||
<string name="sk_edit_timeline_tag_hint">輸入主題標籤……</string>
|
||||
<string name="sk_edit_timeline_tags_hint">輸入主題標籤…</string>
|
||||
<string name="sk_edit_timeline_tag_any">…或者包含其中一個</string>
|
||||
<string name="sk_edit_timeline_tag_main">包含主題標籤的嘟文…</string>
|
||||
<string name="sk_add_timeline_tag_error_empty">主題標籤不能為空</string>
|
||||
<string name="sk_alt_button">ALT</string>
|
||||
<string name="sk_gif_badge">GIF</string>
|
||||
<string name="sk_notification_type_update">已編輯嘟文</string>
|
||||
<string name="sk_notify_update">編輯已轉嘟的嘟文</string>
|
||||
<string name="sk_searching">搜尋中…</string>
|
||||
<string name="sk_no_results">沒有結果</string>
|
||||
<string name="sk_save_draft">儲存草稿?</string>
|
||||
<string name="sk_save_draft_message">您想要儲存變更至草稿或是立即發布嘟文?</string>
|
||||
<string name="sk_no_alt_text">沒有可用的替代文字</string>
|
||||
<string name="sk_inline_local_only">僅此伺服器</string>
|
||||
<string name="sk_inline_direct">僅被提及</string>
|
||||
<string name="sk_separator">·</string>
|
||||
<string name="sk_settings_support_local_only">伺服器支持僅發布嘟文至此伺服器</string>
|
||||
<string name="sk_signed_up">已註冊</string>
|
||||
<string name="sk_reported">已回報</string>
|
||||
<string name="sk_reacted_with">%1$s 回應了 %2$s</string>
|
||||
<string name="sk_reacted">%s 回應了</string>
|
||||
<string name="sk_settings_server_version">伺服器版本:%s</string>
|
||||
<string name="sk_notify_poll_results">投票結果</string>
|
||||
<string name="sk_filtered">已過濾 : %s</string>
|
||||
<string name="sk_collapse">摺疊</string>
|
||||
<string name="sk_unfinished_attachments">正在上傳附件</string>
|
||||
<string name="sk_content_type_plain">純文字</string>
|
||||
<string name="sk_unfinished_attachments_message">一些附件尚未上傳完成。</string>
|
||||
<string name="sk_follow_as">以其它帳號跟隨</string>
|
||||
<string name="sk_followed_as">已以 %s 跟隨</string>
|
||||
<string name="sk_notification_action_replied">已回覆 %s</string>
|
||||
<string name="sk_settings_confirm_before_reblog">在轉嘟前確認</string>
|
||||
<string name="sk_content_type">內容類型</string>
|
||||
<string name="sk_content_type_unspecified">未指定</string>
|
||||
<string name="sk_content_type_html">HTML</string>
|
||||
<string name="sk_content_type_markdown">Markdown</string>
|
||||
<string name="sk_content_type_bbcode">BBCode</string>
|
||||
<string name="sk_content_type_mfm">MFM</string>
|
||||
<string name="sk_settings_content_types">啟用嘟文格式</string>
|
||||
<string name="sk_settings_default_content_type">預設內容類型</string>
|
||||
<string name="sk_open_in_app">在應用程式內開啟</string>
|
||||
<string name="sk_open_in_app_failed">無法在應用程式內開啟</string>
|
||||
<string name="sk_external_share_title">以帳號分享</string>
|
||||
<string name="sk_external_share_or_open_title">以帳號分享或開啟</string>
|
||||
<string name="sk_settings_auto_reveal_nobody">完全不要</string>
|
||||
<string name="sk_settings_auto_reveal_author">同作者的回覆</string>
|
||||
<string name="sk_settings_auto_reveal_anyone">所有人的回覆</string>
|
||||
<string name="sk_settings_auto_reveal_equal_spoilers">在回覆中自動顯示內容警告</string>
|
||||
<string name="sk_advanced_options_show">顯示進階選項</string>
|
||||
<string name="sk_advanced_options_hide">隱藏進階選項</string>
|
||||
<string name="sk_pronouns_label">別名</string>
|
||||
<string name="sk_switch_timeline">切換時間軸</string>
|
||||
<string name="sk_error_loading_profile">載入 %s 的個人資料失敗</string>
|
||||
<string name="sk_settings_display_pronouns_in_timelines">在時間軸中顯示別名</string>
|
||||
<string name="sk_settings_display_pronouns_in_user_listings">在使用者列表中顯示別名</string>
|
||||
<string name="sk_tab_home">首頁</string>
|
||||
<string name="sk_tab_search">搜尋</string>
|
||||
<string name="sk_tab_profile">個人檔案</string>
|
||||
<string name="sk_settings_emoji_reactions">啟用表情符號回應</string>
|
||||
<string name="sk_settings_emoji_reactions_explanation">顯示嘟文的表情符號回應,並允許您新增您自己的。大多數的聯邦宇宙伺服器支持此功能,但 Mastodon 不支援。</string>
|
||||
<string name="sk_settings_show_emoji_reactions">在時間軸中顯示表情符號回應</string>
|
||||
<string name="sk_settings_show_emoji_reactions_hide_empty">隱藏空的表情符號回應</string>
|
||||
<string name="sk_settings_show_emoji_reactions_always">永遠顯示新增按鈕</string>
|
||||
<plurals name="sk_users_reacted_with">
|
||||
<item quantity="other">%1$,d 個使用者回覆了 %2$s</item>
|
||||
</plurals>
|
||||
<string name="sk_button_react">以表情符號回應</string>
|
||||
<string name="sk_enter_emoji_toast">請輸入表情符號</string>
|
||||
<string name="sk_enter_emoji_hint">輸入一個表情符號或搜尋</string>
|
||||
<string name="sk_mute_label">持續時間</string>
|
||||
<string name="sk_duration_indefinite">無期限</string>
|
||||
<string name="sk_duration_minutes_5">5 分鐘</string>
|
||||
<string name="sk_duration_minutes_30">30 分鐘</string>
|
||||
<string name="sk_duration_hours_1">1 小時</string>
|
||||
<string name="sk_duration_hours_6">6 小時</string>
|
||||
<string name="sk_duration_days_1">1 天</string>
|
||||
<string name="sk_duration_days_3">3 天</string>
|
||||
<string name="sk_duration_days_7">7 天</string>
|
||||
<string name="sk_notification_mention">您被 %s 提及了</string>
|
||||
<string name="sk_suicide_search_terms">自殺</string>
|
||||
<string name="sk_search_suicide_title">如果您遇到了困難…</string>
|
||||
<string name="sk_search_suicide_message">如果您在尋找一個不自殺的理由,這就對了。如果您遇到了困難,請考慮撥打當您地的自殺防治專線。</string>
|
||||
<string name="sk_search_suicide_hotlines">尋找幫助專線</string>
|
||||
<string name="sk_do_not_show_again">不要再顯示</string>
|
||||
<string name="sk_suicide_helplines_url">https://dep.mohw.gov.tw/DOMHAOH/cp-4906-54077-107.html (台灣)</string>
|
||||
<string name="sk_load_missing_posts_above">載入較新的嘟文</string>
|
||||
<string name="sk_load_missing_posts_below">載入較舊的嘟文</string>
|
||||
<plurals name="sk_time_seconds">
|
||||
<item quantity="other">%d 秒</item>
|
||||
</plurals>
|
||||
<plurals name="sk_time_minutes">
|
||||
<item quantity="other">%d 分</item>
|
||||
</plurals>
|
||||
<plurals name="sk_time_hours">
|
||||
<item quantity="other">%d 小時</item>
|
||||
</plurals>
|
||||
<plurals name="sk_time_days">
|
||||
<item quantity="other">%d 天</item>
|
||||
</plurals>
|
||||
<string name="sk_recently_used">最近使用</string>
|
||||
<string name="sk_set_as_default">重回預設值</string>
|
||||
<string name="sk_edit_alt_text">編輯替代文字</string>
|
||||
<string name="sk_settings_clear_timeline_cache">清除主頁時間軸快取</string>
|
||||
<string name="sk_timeline_cache_cleared">已清除主頁時間軸快取</string>
|
||||
<string name="sk_settings_default_visibility">預設嘟文可見性</string>
|
||||
<string name="sk_confirm_changes">確認變更</string>
|
||||
<string name="sk_delete_note">刪除個人註記</string>
|
||||
<string name="sk_private_note_confirm_delete">刪除對 %s 的註記?</string>
|
||||
<string name="sk_private_note_update_failed">註記保存失敗</string>
|
||||
<string name="sk_private_note_hint">新增對此個人資料的註記</string>
|
||||
<string name="sk_settings_copy_crash_log">複製最新的崩潰日誌</string>
|
||||
<string name="sk_settings_crash_log_unavailable">尚無可用的崩潰日誌</string>
|
||||
<string name="sk_crash_log_copied">已複製崩潰日誌</string>
|
||||
<string name="sk_open_post_preview">預覽嘟文</string>
|
||||
<string name="sk_post_preview">預覽</string>
|
||||
<string name="sk_poll_multiple_choice">多選</string>
|
||||
<string name="sk_compose_draft">嘟文將儲存為草稿。</string>
|
||||
<string name="sk_reply_as">以其它帳號回覆</string>
|
||||
<string name="sk_forward_report_to">轉嘟給 %s</string>
|
||||
<string name="sk_settings_disable_alt_text_reminder">禁用添加替代文本的提醒</string>
|
||||
</resources>
|
||||
@@ -45,6 +45,9 @@
|
||||
<string name="mo_confirm_to_mute_conversation">Are you sure you want to mute this conversation?</string>
|
||||
<string name="mo_confirm_to_unmute_conversation">Are you sure you want to unmute this conversation?</string>
|
||||
<string name="mo_mute_hashtag">Mute hashtag</string>
|
||||
<string name="mo_mute_hashtag_explanation_muted_home">You won’t see posts mentioning this hashtag in your Home timeline.</string>
|
||||
<string name="mo_mute_hashtag_explanation_discreet">Others won’t know that you’ve muted this hashtag.</string>
|
||||
<string name="mo_mute_hashtag_explanation_search">You can still find posts with this hashtag on other timelines or through search.</string>
|
||||
<string name="mo_unmute_hashtag">Unmute hashtag</string>
|
||||
<string name="mo_confirm_to_mute_hashtag">Are you sure you want to mute this hashtag?</string>
|
||||
<string name="mo_confirm_to_unmute_hashtag">Are you sure you want to unmute this hashtag?</string>
|
||||
@@ -120,6 +123,8 @@
|
||||
<string name="mo_settings_unifiedpush_warning_disabled">UnifiedPush is not enabled. You will not receive any notifications.</string>
|
||||
<string name="mo_settings_unifiedpush_enable">Enable</string>
|
||||
<string name="mo_settings_remove_tracking_params">Private Links</string>
|
||||
<string name="mo_settings_enhance_text_size">Enhance text size</string>
|
||||
<string name="mo_settings_enhance_text_size_summary">Makes the app\'s text bigger</string>
|
||||
|
||||
<!-- Temporary Strings. They exist in strings_sk.xml, but are not available on Megalodon's weblate-->
|
||||
<string name="mo_muted_accounts">Muted accounts</string>
|
||||
|
||||
1
metadata/ast/title.txt
Normal file
1
metadata/ast/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
Moshidon
|
||||
3
metadata/de-DE/changelogs/105.txt
Normal file
3
metadata/de-DE/changelogs/105.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
- vorherige Neuentwicklungen hinzugefügt (2.3.0)
|
||||
- Fernabruf für die Statushistorie hinzugefügt
|
||||
- Eine Reihe von Fehlern behoben
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user