diff --git a/.all-contributorsrc b/.all-contributorsrc
index 3e8bb4a7..34959778 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -91,16 +91,6 @@
"question"
]
},
- {
- "login": "alin-1",
- "name": "ALIN",
- "avatar_url": "https://avatars2.githubusercontent.com/u/13281020?v=4",
- "profile": "https://alin.atwebpages.com/",
- "contributions": [
- "bug",
- "ideas"
- ]
- },
{
"login": "RickyM7",
"name": "Ricardo",
@@ -131,6 +121,15 @@
"translation"
]
},
+ {
+ "login": "avtkal",
+ "name": "avtkal",
+ "avatar_url": "https://avatars.githubusercontent.com/u/63205014?v=4",
+ "profile": "https://github.com/avtkal",
+ "contributions": [
+ "translation"
+ ]
+ },
{
"login": "cizordj",
"name": "Cézar Augusto",
@@ -140,6 +139,15 @@
"translation"
]
},
+ {
+ "login": "dimitrist19",
+ "name": "Dimitris T",
+ "avatar_url": "https://avatars.githubusercontent.com/u/56406468?v=4",
+ "profile": "https://github.com/dimitrist19",
+ "contributions": [
+ "translation"
+ ]
+ },
{
"login": "farzadx",
"name": "farzadx",
@@ -194,6 +202,15 @@
"translation"
]
},
+ {
+ "login": "GenosseFlosse",
+ "name": "GenosseFlosse",
+ "avatar_url": "https://avatars.githubusercontent.com/u/59205524?v=4",
+ "profile": "https://github.com/GenosseFlosse",
+ "contributions": [
+ "translation"
+ ]
+ },
{
"login": "kernoeb",
"name": "kernoeb",
@@ -275,6 +292,15 @@
"translation"
]
},
+ {
+ "login": "sandboiii",
+ "name": "Alexey Peschany",
+ "avatar_url": "https://avatars.githubusercontent.com/u/17468894?v=4",
+ "profile": "https://gitlab.com/sandboiii",
+ "contributions": [
+ "translation"
+ ]
+ },
{
"login": "Still34",
"name": "Still Hsu",
@@ -302,6 +328,15 @@
"translation"
]
},
+ {
+ "login": "wokija",
+ "name": "wokija",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14982166?v=4",
+ "profile": "https://github.com/wokija",
+ "contributions": [
+ "translation"
+ ]
+ },
{
"login": "ysakamoto",
"name": "ysakamoto",
@@ -310,6 +345,15 @@
"contributions": [
"translation"
]
+ },
+ {
+ "login": "ZDVokoun",
+ "name": "ZDVokoun",
+ "avatar_url": "https://avatars.githubusercontent.com/u/76393152?v=4",
+ "profile": "https://github.com/ZDVokoun",
+ "contributions": [
+ "translation"
+ ]
}
],
"contributorsPerLine": 6,
diff --git a/.github/ISSUE_TEMPLATE/questions.md b/.github/ISSUE_TEMPLATE/questions.md
index aff97d3e..c5a9012a 100644
--- a/.github/ISSUE_TEMPLATE/questions.md
+++ b/.github/ISSUE_TEMPLATE/questions.md
@@ -1,19 +1,16 @@
---
name: General questions & feedback
-about: These should be submitted to either one of our chatrooms, or r/barinsta on reddit.
+about: These should be submitted to either one of our chatrooms, the discussions, or r/barinsta on reddit.
title: "[Q]"
labels: question
assignees: ''
---
-
+STOP!!! STOP!!! STOP!!!
diff --git a/README.md b/README.md
index 1fe4a522..77e3e1dc 100755
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-**THERE ARE CURRENTLY NO OFFICIAL GOOGLE PLAY RELEASES. PLEASE REPORT ANY OCCURRENCES TO US.**
+## THERE ARE CURRENTLY NO OFFICIAL GOOGLE PLAY RELEASES. PLEASE REPORT ANY OCCURRENCES TO US.
@@ -9,10 +9,10 @@
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)
[![GPLv3 license](https://img.shields.io/badge/License-GPLv3-blue.svg)](./LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/austinhuang0131/instagrabber.svg?style=social&label=Star)](https://GitHub.com/austinhuang0131/barinsta/stargazers/)
-[![All Contributors](https://img.shields.io/badge/all_contributors-32-orange.svg)](#contributors)
+[![All Contributors](https://img.shields.io/badge/all_contributors-37-orange.svg)](#contributors)
-We're previously known as InstaGrabber.
+Instagram client; previously known as InstaGrabber.
For documentation, visit [Barinsta.AustinHuang.me](https://barinsta.austinhuang.me).
@@ -25,6 +25,8 @@ For documentation, visit [Barinsta.AustinHuang.me](https://barinsta.austinhuang.
Version status: ![F-Droid](https://img.shields.io/f-droid/v/me.austinhuang.instagrabber.svg) vs. ![GitHub](https://img.shields.io/github/release/austinhuang0131/barinsta.svg?logo=github)
+## Screenshots
+
@@ -62,39 +64,46 @@ Prominent contributors are listed here in the [all-contributors](https://allcont
Kevin Thomas 💵 |
Shadowspear123 📝 🐛 🤔 💬 |
- ALIN 🐛 🤔 |
Ricardo 🐛 🌍 |
Airikr 🤔 💬 |
Akrai 🤔 🌍 |
+ avtkal 🌍 |
Cézar Augusto 🌍 |
+ Dimitris T 🌍 |
farzadx 🌍 |
Fatih Aydın 🌍 |
fouze555 🌍 |
Galang23 🌍 |
- Initdebugs 🌍 |
+ Initdebugs 🌍 |
Jakub Janek 🌍 |
+ GenosseFlosse 🌍 |
kernoeb 🌍 |
MoaufmKlo 🌍 |
nalinalini 🌍 |
- peterge1998 🌍 |
- PierreM0 🌍 |
+ peterge1998 🌍 |
+ PierreM0 🌍 |
RAMAR-RAR 🌍 |
rohang02 🌍 |
retiolus 🌍 |
rikishi0071 🌍 |
- Still Hsu 🌍 |
- Ten_Lego 🌍 |
+ Alexey Peschany 🌍 |
+ Still Hsu 🌍 |
+ Ten_Lego 🌍 |
wagnim 🌍 |
+ wokija 🌍 |
ysakamoto 🌍 |
+
+ ZDVokoun 🌍 |
+
@@ -103,7 +112,7 @@ Prominent contributors are listed here in the [all-contributors](https://allcont
## License
-This app's predecessor, InstaGrabber, is originally made by [@AwaisKing](https://github.com/AwaisKing) on [GitLab](https://gitlab.com/AwaisKing/instagrabber).
+This app's predecessor, InstaGrabber, was originally made by [@AwaisKing](https://github.com/AwaisKing) on [GitLab](https://gitlab.com/AwaisKing/instagrabber).
Barinsta
Copyright (C) 2020-2021 Austin Huang
diff --git a/app/src/main/java/awais/instagrabber/InstaGrabberApplication.java b/app/src/main/java/awais/instagrabber/InstaGrabberApplication.java
index 6d3d4f7d..c5cd0d69 100644
--- a/app/src/main/java/awais/instagrabber/InstaGrabberApplication.java
+++ b/app/src/main/java/awais/instagrabber/InstaGrabberApplication.java
@@ -12,13 +12,11 @@ import com.facebook.imagepipeline.core.ImagePipelineConfig;
import java.net.CookieHandler;
import java.text.SimpleDateFormat;
import java.util.UUID;
-import java.util.concurrent.ThreadLocalRandom;
import awais.instagrabber.utils.Constants;
import awais.instagrabber.utils.LocaleUtils;
import awais.instagrabber.utils.SettingsHelper;
import awais.instagrabber.utils.TextUtils;
-import awais.instagrabber.utils.UserAgentUtils;
import awaisomereport.CrashReporter;
import awaisomereport.LogCollector;
@@ -87,15 +85,5 @@ public final class InstaGrabberApplication extends Application {
if (TextUtils.isEmpty(settingsHelper.getString(Constants.DEVICE_UUID))) {
settingsHelper.putString(Constants.DEVICE_UUID, UUID.randomUUID().toString());
}
-
- if (settingsHelper.getInteger(Constants.BROWSER_UA_CODE) == -1) {
- int randomNum = ThreadLocalRandom.current().nextInt(0, UserAgentUtils.browsers.length);
- settingsHelper.putInteger(Constants.BROWSER_UA_CODE, randomNum);
- }
-
- if (settingsHelper.getInteger(Constants.APP_UA_CODE) == -1) {
- int randomNum = ThreadLocalRandom.current().nextInt(0, UserAgentUtils.devices.length);
- settingsHelper.putInteger(Constants.APP_UA_CODE, randomNum);
- }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/awais/instagrabber/adapters/viewholder/FeedGridItemViewHolder.java b/app/src/main/java/awais/instagrabber/adapters/viewholder/FeedGridItemViewHolder.java
index 81e60562..c6e1d571 100644
--- a/app/src/main/java/awais/instagrabber/adapters/viewholder/FeedGridItemViewHolder.java
+++ b/app/src/main/java/awais/instagrabber/adapters/viewholder/FeedGridItemViewHolder.java
@@ -83,6 +83,10 @@ public class FeedGridItemViewHolder extends RecyclerView.ViewHolder {
final Media child = sliderItems.get(0);
if (child != null) {
thumbnailUrl = ResponseBodyUtils.getThumbUrl(child);
+ if (layoutPreferences.getType() == STAGGERED_GRID) {
+ final float childAspectRatio = (float) child.getOriginalWidth() / child.getOriginalHeight();
+ binding.postImage.setAspectRatio(childAspectRatio);
+ }
}
}
typeIconRes = R.drawable.ic_checkbox_multiple_blank_stroke;
diff --git a/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectInboxItemViewHolder.java b/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectInboxItemViewHolder.java
index 6391aa99..df820e8b 100644
--- a/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectInboxItemViewHolder.java
+++ b/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectInboxItemViewHolder.java
@@ -1,5 +1,6 @@
package awais.instagrabber.adapters.viewholder.directmessages;
+import android.content.res.Resources;
import android.graphics.Typeface;
import android.view.View;
@@ -126,13 +127,14 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder {
private void setSubtitle(@NonNull final DirectThread thread) {
// If there is an unopened raven media, give it highest priority
+ final Resources resources = itemView.getResources();
final DirectThreadDirectStory directStory = thread.getDirectStory();
final long viewerId = thread.getViewerId();
if (directStory != null && !directStory.getItems().isEmpty()) {
final DirectItem item = directStory.getItems().get(0);
final MediaItemType mediaType = item.getVisualMedia().getMedia().getMediaType();
- final String username = getUsername(thread.getUsers(), item.getUserId(), viewerId);
- final String subtitle = getMediaSpecificSubtitle(username, mediaType);
+ final String username = getUsername(thread.getUsers(), item.getUserId(), viewerId, resources);
+ final String subtitle = getMediaSpecificSubtitle(username, resources, mediaType);
binding.subtitle.setText(subtitle);
return;
}
@@ -141,10 +143,10 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder {
final long senderId = item.getUserId();
final DirectItemType itemType = item.getItemType();
String subtitle = null;
- final String username = getUsername(thread.getUsers(), senderId, viewerId);
+ final String username = getUsername(thread.getUsers(), senderId, viewerId, resources);
String message = "";
if (itemType == null) {
- message = "Unsupported message";
+ message = resources.getString(R.string.dms_inbox_raven_message_unknown);
} else {
switch (itemType) {
case TEXT:
@@ -160,20 +162,20 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder {
message = item.getPlaceholder().getMessage();
break;
case MEDIA_SHARE:
- subtitle = String.format("%s shared a post", username != null ? username : "");
+ subtitle = resources.getString(R.string.dms_inbox_shared_post, username != null ? username : "", item.getMediaShare().getUser().getUsername());
break;
case ANIMATED_MEDIA:
- subtitle = String.format("%s shared a gif", username != null ? username : "");
+ subtitle = resources.getString(R.string.dms_inbox_shared_gif, username != null ? username : "");
break;
case PROFILE:
- subtitle = String.format("%s shared a profile: @%s", username != null ? username : "", item.getProfile().getUsername());
+ subtitle = resources.getString(R.string.dms_inbox_shared_profile, username != null ? username : "", item.getProfile().getUsername());
break;
case LOCATION:
- subtitle = String.format("%s shared a location: %s", username != null ? username : "", item.getLocation().getName());
+ subtitle = resources.getString(R.string.dms_inbox_shared_location, username != null ? username : "", item.getLocation().getName());
break;
case MEDIA: {
final MediaItemType mediaType = item.getMedia().getMediaType();
- subtitle = getMediaSpecificSubtitle(username, mediaType);
+ subtitle = getMediaSpecificSubtitle(username, resources, mediaType);
break;
}
case STORY_SHARE: {
@@ -181,17 +183,16 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder {
if (reelType == null) {
subtitle = item.getStoryShare().getTitle();
} else {
- String format = "%s shared a story by @%s";
- if (reelType.equals("highlight_reel")) {
- format = "%s shared a story highlight by @%s";
- }
- subtitle = String.format(format, username != null ? username : "",
+ final int format = reelType.equals("highlight_reel")
+ ? R.string.dms_inbox_shared_highlight
+ : R.string.dms_inbox_shared_story;
+ subtitle = resources.getString(format, username != null ? username : "",
item.getStoryShare().getMedia().getUser().getUsername());
}
break;
}
case VOICE_MEDIA:
- subtitle = String.format("%s sent a voice message", username != null ? username : "");
+ subtitle = resources.getString(R.string.dms_inbox_shared_voice, username != null ? username : "");
break;
case ACTION_LOG:
subtitle = item.getActionLog().getDescription();
@@ -200,15 +201,15 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder {
subtitle = item.getVideoCallEvent().getDescription();
break;
case CLIP:
- subtitle = String.format("%s shared a clip by @%s", username != null ? username : "",
- item.getClip().getClip().getUser().getUsername());
+ subtitle = resources.getString(R.string.dms_inbox_shared_clip, username != null ? username : "",
+ item.getClip().getClip().getUser().getUsername());
break;
case FELIX_SHARE:
- subtitle = String.format("%s shared an IGTV video by @%s", username != null ? username : "",
- item.getFelixShare().getVideo().getUser().getUsername());
+ subtitle = resources.getString(R.string.dms_inbox_shared_igtv, username != null ? username : "",
+ item.getFelixShare().getVideo().getUser().getUsername());
break;
case RAVEN_MEDIA:
- subtitle = getRavenMediaSubtitle(item, username);
+ subtitle = getRavenMediaSubtitle(item, resources, username);
break;
case REEL_SHARE:
final DirectItemReelShare reelShare = item.getReelShare();
@@ -220,27 +221,27 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder {
switch (reelType) {
case "reply":
if (viewerId == item.getUserId()) {
- subtitle = String.format("You replied to their story: %s", reelShare.getText());
+ subtitle = resources.getString(R.string.dms_inbox_replied_story_outgoing, reelShare.getText());
} else {
- subtitle = String.format("%s replied to your story: %s", username != null ? username : "", reelShare.getText());
+ subtitle = resources.getString(R.string.dms_inbox_replied_story_incoming, username != null ? username : "", reelShare.getText());
}
break;
case "mention":
if (viewerId == item.getUserId()) {
// You mentioned the other person
final long mentionedUserId = item.getReelShare().getMentionedUserId();
- final String otherUsername = getUsername(thread.getUsers(), mentionedUserId, viewerId);
- subtitle = String.format("You mentioned @%s in your story", otherUsername);
+ final String otherUsername = getUsername(thread.getUsers(), mentionedUserId, viewerId, resources);
+ subtitle = resources.getString(R.string.dms_inbox_mentioned_story_outgoing, otherUsername);
} else {
// They mentioned you
- subtitle = String.format("%s mentioned you in their story", username != null ? username : "");
+ subtitle = resources.getString(R.string.dms_inbox_mentioned_story_incoming, username != null ? username : "");
}
break;
case "reaction":
if (viewerId == item.getUserId()) {
- subtitle = String.format("You reacted to their story: %s", reelShare.getText());
+ subtitle = resources.getString(R.string.dms_inbox_reacted_story_outgoing, reelShare.getText());
} else {
- subtitle = String.format("%s reacted to your story: %s", username != null ? username : "", reelShare.getText());
+ subtitle = resources.getString(R.string.dms_inbox_reacted_story_incoming, username != null ? username : "", reelShare.getText());
}
break;
default:
@@ -249,7 +250,7 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder {
}
break;
default:
- message = "Unsupported message";
+ message = resources.getString(R.string.dms_inbox_raven_message_unknown);
}
}
if (subtitle == null) {
@@ -263,10 +264,10 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder {
binding.subtitle.setText(subtitle != null ? subtitle : "");
}
- private String getMediaSpecificSubtitle(final String username, final MediaItemType mediaType) {
- final String userSharedAnImage = String.format("%s shared an image", username != null ? username : "");
- final String userSharedAVideo = String.format("%s shared a video", username != null ? username : "");
- final String userSentAMessage = String.format("%s sent a message", username != null ? username : "");
+ private String getMediaSpecificSubtitle(final String username, final Resources resources, final MediaItemType mediaType) {
+ final String userSharedAnImage = resources.getString(R.string.dms_inbox_shared_image, username != null ? username : "");
+ final String userSharedAVideo = resources.getString(R.string.dms_inbox_shared_video, username != null ? username : "");
+ final String userSentAMessage = resources.getString(R.string.dms_inbox_shared_message, username != null ? username : "");
String subtitle;
switch (mediaType) {
case MEDIA_TYPE_IMAGE:
@@ -283,6 +284,7 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder {
}
private String getRavenMediaSubtitle(final DirectItem item,
+ final Resources resources,
final String username) {
String subtitle = "↗ ";
final DirectItemVisualMedia visualMedia = item.getVisualMedia();
@@ -325,15 +327,16 @@ public final class DirectInboxItemViewHolder extends RecyclerView.ViewHolder {
return subtitle;
}
final MediaItemType mediaType = visualMedia.getMedia().getMediaType();
- subtitle = getMediaSpecificSubtitle(username, mediaType);
+ subtitle = getMediaSpecificSubtitle(username, resources, mediaType);
return subtitle;
}
private String getUsername(final List users,
final long userId,
- final long viewerId) {
+ final long viewerId,
+ final Resources resources) {
if (userId == viewerId) {
- return "You";
+ return resources.getString(R.string.you);
}
final Optional senderOptional = users.stream()
.filter(Objects::nonNull)
diff --git a/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemRavenMediaViewHolder.java b/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemRavenMediaViewHolder.java
index 090bb689..1b68efa6 100644
--- a/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemRavenMediaViewHolder.java
+++ b/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemRavenMediaViewHolder.java
@@ -10,6 +10,7 @@ import com.facebook.drawee.drawable.ScalingUtils;
import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder;
import com.facebook.drawee.generic.RoundingParams;
+import awais.instagrabber.R;
import awais.instagrabber.adapters.DirectItemsAdapter.DirectItemCallback;
import awais.instagrabber.databinding.LayoutDmBaseBinding;
import awais.instagrabber.databinding.LayoutDmRavenMediaBinding;
@@ -118,28 +119,28 @@ public class DirectItemRavenMediaViewHolder extends DirectItemViewHolder {
if (viewMode != RavenMediaViewMode.PERMANENT) {
final MediaItemType mediaType = media.getMediaType();
final boolean expired = media.getPk() == null;
- final String info;
+ final int info;
switch (mediaType) {
case MEDIA_TYPE_IMAGE:
if (expired) {
- info = "Image has expired";
+ info = R.string.raven_image_expired;
break;
}
- info = "Image will expire when seen";
+ info = R.string.raven_image_info;
break;
case MEDIA_TYPE_VIDEO:
if (expired) {
- info = "Video has expired";
+ info = R.string.raven_video_expired;
break;
}
- info = "Video will expire when seen";
+ info = R.string.raven_video_info;
break;
default:
if (expired) {
- info = "Message has expired";
+ info = R.string.raven_msg_expired;
break;
}
- info = "Message will expire when seen";
+ info = R.string.raven_msg_info;
break;
}
binding.expiryInfo.setVisibility(View.VISIBLE);
diff --git a/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemReelShareViewHolder.java b/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemReelShareViewHolder.java
index 9abcc8a7..7ae6b5d8 100644
--- a/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemReelShareViewHolder.java
+++ b/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemReelShareViewHolder.java
@@ -107,7 +107,7 @@ public class DirectItemReelShareViewHolder extends DirectItemViewHolder {
private void setReply(final MessageDirection messageDirection,
final DirectItemReelShare reelShare,
final boolean isSelf) {
- final String info = isSelf ? "You replied to their story" : "They replied to your story";
+ final int info = isSelf ? R.string.replied_story_outgoing : R.string.replied_story_incoming;
binding.shareInfo.setText(info);
binding.reaction.setVisibility(View.GONE);
final String text = reelShare.getText();
@@ -122,7 +122,7 @@ public class DirectItemReelShareViewHolder extends DirectItemViewHolder {
final DirectItemReelShare reelShare,
final boolean isSelf,
final boolean expired) {
- final String info = isSelf ? "You reacted to their story" : "They reacted to your story";
+ final int info = isSelf ? R.string.reacted_story_outgoing : R.string.reacted_story_incoming;
binding.shareInfo.setText(info);
binding.message.setVisibility(View.GONE);
final String text = reelShare.getText();
@@ -139,7 +139,7 @@ public class DirectItemReelShareViewHolder extends DirectItemViewHolder {
}
private void setMention(final boolean isSelf) {
- final String info = isSelf ? "You mentioned them in your story" : "Mentioned you in their story";
+ final int info = isSelf ? R.string.mentioned_story_outgoing : R.string.mentioned_story_incoming;
binding.shareInfo.setText(info);
binding.message.setVisibility(View.GONE);
binding.reaction.setVisibility(View.GONE);
diff --git a/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemStoryShareViewHolder.java b/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemStoryShareViewHolder.java
index 869e0ca8..c5a81993 100644
--- a/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemStoryShareViewHolder.java
+++ b/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemStoryShareViewHolder.java
@@ -1,5 +1,6 @@
package awais.instagrabber.adapters.viewholder.directmessages;
+import android.content.res.Resources;
import android.view.View;
import android.view.ViewGroup;
@@ -11,6 +12,7 @@ import com.facebook.drawee.drawable.ScalingUtils;
import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder;
import com.facebook.drawee.generic.RoundingParams;
+import awais.instagrabber.R;
import awais.instagrabber.adapters.DirectItemsAdapter.DirectItemCallback;
import awais.instagrabber.databinding.LayoutDmBaseBinding;
import awais.instagrabber.databinding.LayoutDmStoryShareBinding;
@@ -41,17 +43,18 @@ public class DirectItemStoryShareViewHolder extends DirectItemViewHolder {
@Override
public void bindItem(final DirectItem item, final MessageDirection messageDirection) {
- String format = "@%s's story";
+ final Resources resources = itemView.getResources();
+ int format = R.string.story_share;
final String reelType = item.getStoryShare().getReelType();
if (reelType == null || item.getStoryShare().getMedia() == null) {
setExpiredStoryInfo(item);
return;
}
if (reelType.equals("highlight_reel")) {
- format = "@%s's story highlight";
+ format = R.string.story_share_highlight;
}
final User user = item.getStoryShare().getMedia().getUser();
- final String info = String.format(format, user != null ? user.getUsername() : "");
+ final String info = resources.getString(format, user != null ? user.getUsername() : "");
binding.shareInfo.setText(info);
binding.text.setVisibility(View.GONE);
binding.ivMediaPreview.setController(null);
diff --git a/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemViewHolder.java b/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemViewHolder.java
index c1bec7c0..d194d718 100644
--- a/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemViewHolder.java
+++ b/app/src/main/java/awais/instagrabber/adapters/viewholder/directmessages/DirectItemViewHolder.java
@@ -227,6 +227,7 @@ public abstract class DirectItemViewHolder extends RecyclerView.ViewHolder imple
final List users) {
final DirectItem replied = item.getRepliedToMessage();
final DirectItemType itemType = replied.getItemType();
+ final Resources resources = itemView.getResources();
String text = null;
String url = null;
switch (itemType) {
@@ -246,7 +247,7 @@ public abstract class DirectItemViewHolder extends RecyclerView.ViewHolder imple
url = ResponseBodyUtils.getThumbUrl(replied.getVisualMedia().getMedia().getImageVersions2());
break;
case VOICE_MEDIA:
- text = "Voice message";
+ text = resources.getString(R.string.voice_message);
break;
case MEDIA_SHARE:
Media mediaShare = replied.getMediaShare();
@@ -285,7 +286,7 @@ public abstract class DirectItemViewHolder extends RecyclerView.ViewHolder imple
return;
}
setReplyGravity(messageDirection);
- final String info = setReplyInfo(item, replied, users);
+ final String info = setReplyInfo(item, replied, users, resources);
binding.replyInfo.setVisibility(View.VISIBLE);
binding.replyInfo.setText(info);
binding.quoteLine.setVisibility(View.VISIBLE);
@@ -298,7 +299,6 @@ public abstract class DirectItemViewHolder extends RecyclerView.ViewHolder imple
}
binding.replyImage.setVisibility(View.GONE);
final Drawable background = binding.replyText.getBackground().mutate();
- final Resources resources = itemView.getResources();
background.setTint(replied.getUserId() != currentUser.getPk()
? resources.getColor(R.color.grey_600)
: resources.getColor(R.color.deep_purple_400));
@@ -309,30 +309,33 @@ public abstract class DirectItemViewHolder extends RecyclerView.ViewHolder imple
private String setReplyInfo(final DirectItem item,
final DirectItem replied,
- final List users) {
+ final List users,
+ final Resources resources) {
final long repliedToUserId = replied.getUserId();
if (repliedToUserId == item.getUserId() && item.getUserId() == currentUser.getPk()) {
// User replied to own message
- return "You replied to yourself";
+ return resources.getString(R.string.replied_to_yourself);
}
if (repliedToUserId == item.getUserId()) {
// opposite user replied to their own message
- return "Replied to themself";
+ return resources.getString(R.string.replied_to_themself);
}
final User user = getUser(repliedToUserId, users);
final String repliedToUsername = user != null ? user.getUsername() : "";
if (item.getUserId() == currentUser.getPk()) {
- return !thread.isGroup() ? "You replied" : String.format("You replied to %s", repliedToUsername);
+ return thread.isGroup()
+ ? resources.getString(R.string.replied_you_group, repliedToUsername)
+ : resources.getString(R.string.replied_you);
}
if (repliedToUserId == currentUser.getPk()) {
- return "Replied to you";
+ return resources.getString(R.string.replied_to_you);
}
- return String.format("Replied to %s", repliedToUsername);
+ return resources.getString(R.string.replied_group, repliedToUsername);
}
private void setForwardInfo(final MessageDirection direction) {
binding.replyInfo.setVisibility(View.VISIBLE);
- binding.replyInfo.setText(direction == MessageDirection.OUTGOING ? "You forwarded a message" : "Forwarded a message");
+ binding.replyInfo.setText(direction == MessageDirection.OUTGOING ? R.string.forward_outgoing : R.string.forward_incoming);
}
private void setReplyGravity(final MessageDirection messageDirection) {
diff --git a/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedItemViewHolder.java b/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedItemViewHolder.java
index 9184b895..860bd027 100644
--- a/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedItemViewHolder.java
+++ b/app/src/main/java/awais/instagrabber/adapters/viewholder/feed/FeedItemViewHolder.java
@@ -115,19 +115,27 @@ public abstract class FeedItemViewHolder extends RecyclerView.ViewHolder {
private void setupLocation(@NonNull final Media media) {
final Location location = media.getLocation();
- final String locationName = location.getName();
- if (TextUtils.isEmpty(locationName)) {
+ if (location == null) {
topBinding.location.setVisibility(View.GONE);
topBinding.title.setLayoutParams(new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT
));
- } else {
- topBinding.location.setVisibility(View.VISIBLE);
- topBinding.location.setText(locationName);
- topBinding.title.setLayoutParams(new RelativeLayout.LayoutParams(
- RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT
- ));
- topBinding.location.setOnClickListener(v -> feedItemCallback.onLocationClick(media));
+ }
+ else {
+ final String locationName = location.getName();
+ if (TextUtils.isEmpty(locationName)) {
+ topBinding.location.setVisibility(View.GONE);
+ topBinding.title.setLayoutParams(new RelativeLayout.LayoutParams(
+ RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT
+ ));
+ } else {
+ topBinding.location.setVisibility(View.VISIBLE);
+ topBinding.location.setText(locationName);
+ topBinding.title.setLayoutParams(new RelativeLayout.LayoutParams(
+ RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT
+ ));
+ topBinding.location.setOnClickListener(v -> feedItemCallback.onLocationClick(media));
+ }
}
}
diff --git a/app/src/main/java/awais/instagrabber/fragments/CommentsViewerFragment.java b/app/src/main/java/awais/instagrabber/fragments/CommentsViewerFragment.java
index d40f8608..6fa829a1 100644
--- a/app/src/main/java/awais/instagrabber/fragments/CommentsViewerFragment.java
+++ b/app/src/main/java/awais/instagrabber/fragments/CommentsViewerFragment.java
@@ -94,17 +94,12 @@ public final class CommentsViewerFragment extends BottomSheetDialogFragment impl
commentsViewModel.getList().postValue(list);
}
binding.swipeRefreshLayout.setRefreshing(false);
- stopCurrentExecutor();
+ stopCurrentExecutor(null);
}
@Override
public void onFailure(Throwable t) {
- try {
- Toast.makeText(getContext(), t.getMessage(), Toast.LENGTH_SHORT).show();
- binding.swipeRefreshLayout.setRefreshing(false);
- stopCurrentExecutor();
- }
- catch(Throwable e) {}
+ stopCurrentExecutor(t);
}
};
@@ -227,7 +222,7 @@ public final class CommentsViewerFragment extends BottomSheetDialogFragment impl
endCursor = null;
lazyLoader.resetState();
commentsViewModel.getList().postValue(Collections.emptyList());
- stopCurrentExecutor();
+ stopCurrentExecutor(null);
currentlyRunning = new CommentsFetcher(shortCode, "", fetchListener).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
@@ -276,7 +271,7 @@ public final class CommentsViewerFragment extends BottomSheetDialogFragment impl
endCursor = null;
});
binding.rvComments.addOnScrollListener(lazyLoader);
- stopCurrentExecutor();
+ stopCurrentExecutor(null);
onRefresh();
}
@@ -462,7 +457,7 @@ public final class CommentsViewerFragment extends BottomSheetDialogFragment impl
NavHostFragment.findNavController(this).navigate(action);
}
- private void stopCurrentExecutor() {
+ private void stopCurrentExecutor(final Throwable t) {
if (currentlyRunning != null) {
try {
currentlyRunning.cancel(true);
@@ -470,6 +465,13 @@ public final class CommentsViewerFragment extends BottomSheetDialogFragment impl
if (BuildConfig.DEBUG) Log.e(TAG, "", e);
}
}
+ if (t != null) {
+ try {
+ Toast.makeText(getContext(), t.getMessage(), Toast.LENGTH_SHORT).show();
+ binding.swipeRefreshLayout.setRefreshing(false);
+ }
+ catch(Throwable e) {}
+ }
}
@Nullable
diff --git a/app/src/main/java/awais/instagrabber/fragments/FollowViewerFragment.java b/app/src/main/java/awais/instagrabber/fragments/FollowViewerFragment.java
index 8112d497..42fcee57 100644
--- a/app/src/main/java/awais/instagrabber/fragments/FollowViewerFragment.java
+++ b/app/src/main/java/awais/instagrabber/fragments/FollowViewerFragment.java
@@ -348,16 +348,17 @@ public final class FollowViewerFragment extends Fragment implements SwipeRefresh
loading = false;
final ArrayList groups = new ArrayList<>(1);
- if (isCompare) {
+ if (isCompare && followingModels != null && followersModels != null && allFollowing != null) {
if (followingModels != null && followingModels.size() > 0)
groups.add(new ExpandableGroup(resources.getString(R.string.followers_not_following, username), followingModels));
if (followersModels != null && followersModels.size() > 0)
groups.add(new ExpandableGroup(resources.getString(R.string.followers_not_follower, namePost), followersModels));
if (allFollowing != null && allFollowing.size() > 0)
groups.add(new ExpandableGroup(resources.getString(R.string.followers_both_following), allFollowing));
- } else {
+ } else if (followModels != null) {
groups.add(new ExpandableGroup(type, followModels));
}
+ else return;
adapter = new FollowAdapter(clickListener, groups);
adapter.toggleGroup(0);
binding.rvFollow.setAdapter(adapter);
diff --git a/app/src/main/java/awais/instagrabber/fragments/HashTagFragment.java b/app/src/main/java/awais/instagrabber/fragments/HashTagFragment.java
index 845da1c6..12b9b413 100644
--- a/app/src/main/java/awais/instagrabber/fragments/HashTagFragment.java
+++ b/app/src/main/java/awais/instagrabber/fragments/HashTagFragment.java
@@ -91,7 +91,7 @@ public class HashTagFragment extends Fragment implements SwipeRefreshLayout.OnRe
private boolean hasStories = false;
private boolean opening = false;
private String hashtag;
- private HashtagModel hashtagModel;
+ private HashtagModel hashtagModel = null;
private ActionMode actionMode;
private StoriesService storiesService;
private AsyncTask, ?, ?> currentlyExecuting;
@@ -373,22 +373,12 @@ public class HashTagFragment extends Fragment implements SwipeRefreshLayout.OnRe
public void onResult(final HashtagModel result) {
hashtagModel = result;
binding.swipeRefreshLayout.setRefreshing(false);
- final Context context = getContext();
- if (context == null) return;
- if (hashtagModel == null) {
- Toast.makeText(context, R.string.error_loading_hashtag, Toast.LENGTH_SHORT).show();
- binding.swipeRefreshLayout.setEnabled(false);
- return;
- }
- setTitle();
setHashtagDetails();
- setupPosts();
- fetchStories();
}
@Override
public void onFailure(Throwable t) {
- Toast.makeText(getContext(), t.getMessage(), Toast.LENGTH_SHORT).show();
+ setHashtagDetails();
}
}).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
@@ -406,6 +396,17 @@ public class HashTagFragment extends Fragment implements SwipeRefreshLayout.OnRe
}
private void setHashtagDetails() {
+ if (hashtagModel == null) {
+ try {
+ Toast.makeText(getContext(), R.string.error_loading_hashtag, Toast.LENGTH_SHORT).show();
+ binding.swipeRefreshLayout.setEnabled(false);
+ }
+ catch (Exception ignored) {}
+ return;
+ }
+ setTitle();
+ setupPosts();
+ fetchStories();
if (isLoggedIn) {
hashtagDetailsBinding.btnFollowTag.setVisibility(View.VISIBLE);
hashtagDetailsBinding.btnFollowTag.setText(hashtagModel.getFollowing() ? R.string.unfollow : R.string.follow);
diff --git a/app/src/main/java/awais/instagrabber/fragments/StoryListViewerFragment.java b/app/src/main/java/awais/instagrabber/fragments/StoryListViewerFragment.java
index c712c058..880af8f5 100644
--- a/app/src/main/java/awais/instagrabber/fragments/StoryListViewerFragment.java
+++ b/app/src/main/java/awais/instagrabber/fragments/StoryListViewerFragment.java
@@ -87,12 +87,20 @@ public final class StoryListViewerFragment extends Fragment implements SwipeRefr
private final ServiceCallback cb = new ServiceCallback() {
@Override
public void onSuccess(final ArchiveFetchResponse result) {
- endCursor = result.getNextCursor();
- final List models = archivesViewModel.getList().getValue();
- final List modelsCopy = models == null ? new ArrayList<>() : new ArrayList<>(models);
- modelsCopy.addAll(result.getResult());
- archivesViewModel.getList().postValue(modelsCopy);
binding.swipeRefreshLayout.setRefreshing(false);
+ if (result == null) {
+ try {
+ final Context context = getContext();
+ Toast.makeText(context, R.string.empty_list, Toast.LENGTH_SHORT).show();
+ } catch (Exception ignored) {}
+ }
+ else {
+ endCursor = result.getNextCursor();
+ final List models = archivesViewModel.getList().getValue();
+ final List modelsCopy = models == null ? new ArrayList<>() : new ArrayList<>(models);
+ modelsCopy.addAll(result.getResult());
+ archivesViewModel.getList().postValue(modelsCopy);
+ }
}
@Override
diff --git a/app/src/main/java/awais/instagrabber/fragments/StoryViewerFragment.java b/app/src/main/java/awais/instagrabber/fragments/StoryViewerFragment.java
index c7345228..ea38abe8 100644
--- a/app/src/main/java/awais/instagrabber/fragments/StoryViewerFragment.java
+++ b/app/src/main/java/awais/instagrabber/fragments/StoryViewerFragment.java
@@ -490,15 +490,21 @@ public class StoryViewerFragment extends Fragment {
@Override
public void onSuccess(final StoryStickerResponse result) {
sticking = false;
- poll.setMyChoice(w);
- Toast.makeText(context, R.string.votef_story_poll, Toast.LENGTH_SHORT).show();
+ try {
+ poll.setMyChoice(w);
+ Toast.makeText(context, R.string.votef_story_poll, Toast.LENGTH_SHORT).show();
+ }
+ catch (Exception ignored) {}
}
@Override
public void onFailure(final Throwable t) {
sticking = false;
Log.e(TAG, "Error responding", t);
- Toast.makeText(context, R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
+ try {
+ Toast.makeText(context, R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
+ }
+ catch (Exception ignored) {}
}
});
}
@@ -525,14 +531,20 @@ public class StoryViewerFragment extends Fragment {
@Override
public void onSuccess(final StoryStickerResponse result) {
sticking = false;
- Toast.makeText(context, R.string.answered_story, Toast.LENGTH_SHORT).show();
+ try {
+ Toast.makeText(context, R.string.answered_story, Toast.LENGTH_SHORT).show();
+ }
+ catch (Exception ignored) {}
}
@Override
public void onFailure(final Throwable t) {
sticking = false;
Log.e(TAG, "Error responding", t);
- Toast.makeText(context, R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
+ try {
+ Toast.makeText(context, R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
+ }
+ catch (Exception ignored) {}
}
});
})
@@ -565,15 +577,21 @@ public class StoryViewerFragment extends Fragment {
@Override
public void onSuccess(final StoryStickerResponse result) {
sticking = false;
- quiz.setMyChoice(w);
- Toast.makeText(context, R.string.answered_story, Toast.LENGTH_SHORT).show();
- }
+ try {
+ quiz.setMyChoice(w);
+ Toast.makeText(context, R.string.answered_story, Toast.LENGTH_SHORT).show();
+ }
+ catch (Exception ignored) {}
+ }
@Override
public void onFailure(final Throwable t) {
sticking = false;
Log.e(TAG, "Error responding", t);
- Toast.makeText(context, R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
+ try {
+ Toast.makeText(context, R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
+ }
+ catch (Exception ignored) {}
}
});
}
@@ -631,15 +649,21 @@ public class StoryViewerFragment extends Fragment {
@Override
public void onSuccess(final StoryStickerResponse result) {
sticking = false;
- slider.setMyChoice(sliderValue);
- Toast.makeText(context, R.string.answered_story, Toast.LENGTH_SHORT).show();
+ try {
+ slider.setMyChoice(sliderValue);
+ Toast.makeText(context, R.string.answered_story, Toast.LENGTH_SHORT).show();
+ }
+ catch (Exception ignored) {}
}
@Override
public void onFailure(final Throwable t) {
sticking = false;
Log.e(TAG, "Error responding", t);
- Toast.makeText(context, R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
+ try {
+ Toast.makeText(context, R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
+ }
+ catch (Exception ignored) {}
}
});
})
diff --git a/app/src/main/java/awais/instagrabber/fragments/directmessages/DirectMessageThreadFragment.java b/app/src/main/java/awais/instagrabber/fragments/directmessages/DirectMessageThreadFragment.java
index f6b4ab67..ed231e53 100644
--- a/app/src/main/java/awais/instagrabber/fragments/directmessages/DirectMessageThreadFragment.java
+++ b/app/src/main/java/awais/instagrabber/fragments/directmessages/DirectMessageThreadFragment.java
@@ -113,9 +113,6 @@ public class DirectMessageThreadFragment extends Fragment implements DirectReact
private static final int STORAGE_PERM_REQUEST_CODE = 8020;
private static final int AUDIO_RECORD_PERM_REQUEST_CODE = 1000;
private static final int CAMERA_REQUEST_CODE = 200;
- private static final String UPDATING_TITLE = "Updating...";
- private static final String MESSAGE_LABEL = "Message";
- private static final String HOLD_TO_RECORD_AUDIO_LABEL = "Press and hold to record audio";
private static final String TRANSLATION_Y = "translationY";
private DirectItemsAdapter itemsAdapter;
@@ -596,7 +593,7 @@ public class DirectMessageThreadFragment extends Fragment implements DirectReact
}
break;
case LOADING:
- setTitle(UPDATING_TITLE);
+ setTitle(getString(R.string.dms_thread_updating));
break;
}
});
@@ -932,7 +929,7 @@ public class DirectMessageThreadFragment extends Fragment implements DirectReact
if (inputMode != null && inputMode == 1) return;
final Context context = getContext();
if (context == null) return;
- tooltip.setText(HOLD_TO_RECORD_AUDIO_LABEL);
+ tooltip.setText(R.string.dms_thread_audio_hint);
setMicToSendIcon();
binding.recordView.setMinMillis(1000);
binding.recordView.setOnRecordListener(new RecordView.OnRecordListener() {
@@ -981,7 +978,7 @@ public class DirectMessageThreadFragment extends Fragment implements DirectReact
}
});
binding.recordView.setOnBasketAnimationEndListener(() -> {
- binding.input.setHint(MESSAGE_LABEL);
+ binding.input.setHint(R.string.dms_thread_message_hint);
binding.gallery.setVisibility(View.VISIBLE);
binding.camera.setVisibility(View.VISIBLE);
});
diff --git a/app/src/main/java/awais/instagrabber/utils/FlavorTown.java b/app/src/main/java/awais/instagrabber/utils/FlavorTown.java
index d37d1ce9..3200b499 100755
--- a/app/src/main/java/awais/instagrabber/utils/FlavorTown.java
+++ b/app/src/main/java/awais/instagrabber/utils/FlavorTown.java
@@ -20,7 +20,7 @@ import androidx.appcompat.app.AppCompatActivity;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
-import java.util.Locale;
+import java.util.concurrent.ThreadLocalRandom;
import javax.security.cert.CertificateException;
import javax.security.cert.X509Certificate;
@@ -103,10 +103,18 @@ public final class FlavorTown {
public static void changelogCheck(@NonNull final Context context) {
if (settingsHelper.getInteger(Constants.PREV_INSTALL_VERSION) < BuildConfig.VERSION_CODE) {
- final int appUaCode = settingsHelper.getInteger(Constants.APP_UA_CODE);
+ int appUaCode = settingsHelper.getInteger(Constants.APP_UA_CODE);
+ int browserUaCode = settingsHelper.getInteger(Constants.BROWSER_UA_CODE);
+ if (browserUaCode == -1) {
+ browserUaCode = ThreadLocalRandom.current().nextInt(0, UserAgentUtils.browsers.length);
+ settingsHelper.putInteger(Constants.BROWSER_UA_CODE, browserUaCode);
+ }
+ if (appUaCode == -1) {
+ appUaCode = ThreadLocalRandom.current().nextInt(0, UserAgentUtils.devices.length);
+ settingsHelper.putInteger(Constants.APP_UA_CODE, appUaCode);
+ }
final String appUa = UserAgentUtils.generateAppUA(appUaCode, LocaleUtils.getCurrentLocale().getLanguage());
settingsHelper.putString(Constants.APP_UA, appUa);
- final int browserUaCode = settingsHelper.getInteger(Constants.BROWSER_UA_CODE);
final String browserUa = UserAgentUtils.generateBrowserUA(browserUaCode);
settingsHelper.putString(Constants.BROWSER_UA, browserUa);
Toast.makeText(context, R.string.updated, Toast.LENGTH_SHORT).show();
diff --git a/app/src/main/java/awais/instagrabber/utils/LocaleUtils.java b/app/src/main/java/awais/instagrabber/utils/LocaleUtils.java
index b9b25462..960bd8a6 100755
--- a/app/src/main/java/awais/instagrabber/utils/LocaleUtils.java
+++ b/app/src/main/java/awais/instagrabber/utils/LocaleUtils.java
@@ -57,26 +57,30 @@ public final class LocaleUtils {
if (TextUtils.isEmpty(appLanguageSettings)) return null;
final int appLanguageIndex = Integer.parseInt(appLanguageSettings);
- if (appLanguageIndex == 1) return "en";
- if (appLanguageIndex == 2) return "fr";
- if (appLanguageIndex == 3) return "es";
- if (appLanguageIndex == 4) return "zh_CN";
- if (appLanguageIndex == 5) return "in";
- if (appLanguageIndex == 6) return "it";
- if (appLanguageIndex == 7) return "de";
- if (appLanguageIndex == 8) return "pl";
- if (appLanguageIndex == 9) return "tr";
- if (appLanguageIndex == 10) return "pt";
- if (appLanguageIndex == 11) return "fa";
- if (appLanguageIndex == 12) return "mk";
- if (appLanguageIndex == 13) return "vi";
- if (appLanguageIndex == 14) return "zh_TW";
- if (appLanguageIndex == 15) return "ca";
- if (appLanguageIndex == 16) return "ru";
- if (appLanguageIndex == 17) return "hi";
- if (appLanguageIndex == 18) return "nl";
- if (appLanguageIndex == 19) return "sk";
- if (appLanguageIndex == 20) return "ja";
+ switch (appLanguageIndex) {
+ case 1: return "en";
+ case 2: return "fr";
+ case 3: return "es";
+ case 4: return "zh_CN";
+ case 5: return "in";
+ case 6: return "it";
+ case 7: return "de";
+ case 8: return "pl";
+ case 9: return "tr";
+ case 10: return "pt";
+ case 11: return "fa";
+ case 12: return "mk";
+ case 13: return "vi";
+ case 14: return "zh_TW";
+ case 15: return "ca";
+ case 16: return "ru";
+ case 17: return "hi";
+ case 18: return "nl";
+ case 19: return "sk";
+ case 20: return "ja";
+ case 21: return "el";
+ case 22: return "eu";
+ }
return null;
}
diff --git a/app/src/main/java/awais/instagrabber/utils/UserAgentUtils.java b/app/src/main/java/awais/instagrabber/utils/UserAgentUtils.java
index c9397cdc..63c1f0a1 100644
--- a/app/src/main/java/awais/instagrabber/utils/UserAgentUtils.java
+++ b/app/src/main/java/awais/instagrabber/utils/UserAgentUtils.java
@@ -18,8 +18,8 @@ public class UserAgentUtils {
"Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Safari/605.1.15"
};
// use APKpure, assume x86
- private static final String igVersion = "169.3.0.30.135";
- private static final String igVersionCode = "264009054";
+ private static final String igVersion = "175.1.0.25.119";
+ private static final String igVersionCode = "273907115";
// only pick the ones that has width 1440 for maximum download quality
public static final String[] devices = {
// https://github.com/dilame/instagram-private-api/blob/master/src/samples/devices.json
diff --git a/app/src/main/java/awais/instagrabber/webservices/DirectMessagesService.java b/app/src/main/java/awais/instagrabber/webservices/DirectMessagesService.java
index c4db80f2..2b3670c9 100644
--- a/app/src/main/java/awais/instagrabber/webservices/DirectMessagesService.java
+++ b/app/src/main/java/awais/instagrabber/webservices/DirectMessagesService.java
@@ -413,7 +413,7 @@ public class DirectMessagesService extends BaseService {
public Call fetchPendingInbox(final String cursor, final long seqId) {
final ImmutableMap.Builder queryMapBuilder = ImmutableMap.builder()
.put("visual_message_return_type", "unseen")
- .put("thread_message_limit", 10)
+ .put("thread_message_limit", 20)
.put("persistentBadging", true)
.put("limit", 10);
if (!TextUtils.isEmpty(cursor)) {
diff --git a/app/src/main/java/awais/instagrabber/webservices/StoriesService.java b/app/src/main/java/awais/instagrabber/webservices/StoriesService.java
index 6cd3e43e..0a7d561c 100644
--- a/app/src/main/java/awais/instagrabber/webservices/StoriesService.java
+++ b/app/src/main/java/awais/instagrabber/webservices/StoriesService.java
@@ -14,7 +14,6 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.TimeZone;
import java.util.UUID;
import awais.instagrabber.models.FeedStoryModel;
@@ -276,7 +275,6 @@ public class StoriesService extends BaseService {
form.put("include_suggested_highlights", "false");
form.put("is_in_archive_home", "true");
form.put("include_cover", "1");
- form.put("timezone_offset", String.valueOf((float) TimeZone.getDefault().getRawOffset() / 1000));
if (!TextUtils.isEmpty(maxId)) {
form.put("max_id", maxId); // NOT TESTED
}
diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml
index 6b891753..1da11b7a 100644
--- a/app/src/main/res/values-ca/strings.xml
+++ b/app/src/main/res/values-ca/strings.xml
@@ -54,6 +54,7 @@
%s Seguint
Reproduir vídeos automàticament
Silenciar sempre els vídeos
+ Mostrar sempre els subtítols
Seleccionar el que s\'ha de descarregar
Corrent
Àlbum complet
diff --git a/app/src/main/res/values-cs/arrays.xml b/app/src/main/res/values-cs/arrays.xml
index ac397448..7b83c6cb 100644
--- a/app/src/main/res/values-cs/arrays.xml
+++ b/app/src/main/res/values-cs/arrays.xml
@@ -30,15 +30,15 @@
- Světlý
- - Instagram default (Unread then read)
+ - Výchozí chování Instagramu (nepřečteno pak přečteno)
- Od nejnovějších po nejstarší
- Od nejstarších po nejnovější
- Žádný
- \@
- - at
- - on
+ - v
+ - ze dne
- \|
- -
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index e9413f87..bb4cba31 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -23,7 +23,7 @@
Oblíbené
Objevit
Komentáře
- Activity
+ Aktivita
Zvýraznit: %s
Zkontrolovat aktualizace při spuštění
Stáhnout příspěvky do složek s uživatelským jménem
@@ -31,16 +31,16 @@
Autor příběhu bude vědět, že jsi si ho zobrazili
Označovat přímou zprávu po zobrazení jako zobrazenou
Ostatní členové uvidí, že jste si ji ji zobrazili
- Enable activity notifications
- Feed stories sort
- Error loading profile!\nTry logging in and search again.
- Error creating Download folder(s).
+ Povolit oznámení o aktivitě
+ Řazení příběhů feedu
+ Chyba při načítání profilu!\nZkuste se znovu přihlásit a vyhledat znovu.
+ Chyba při vytváření složky(ek) stahování.
Uložit do vlastní složky
Vybrat adresář
Motiv
- Only affects logged-in users:
- Only affects anonymous users:
- Use Instadp for high definition profile pictures
+ Týká se pouze přihlášených uživatelů:
+ Týká se pouze anonymních uživatelů:
+ Použít Instadp pro profilové obrázky s vysokým rozlišením
Importovat/exportovat
Jazyk
@@ -55,12 +55,13 @@
- %s sledujících
- %s sledujících
- %s Following
+ %s sleduje
Videa spouštět automaticky
Vždy ztlumit videa
+ Vždy zobrazovat titulek příspěvku
Vyberte, co stáhnout
- Current
- Whole Album
+ Současné
+ Celé album
Zobrazit příběhy
Žádné další příběhy!
Buďte trpěliví!
@@ -71,65 +72,65 @@
Hlasování úspěšné!
Už jste hlasoval!
Odpovědět
- Answer…
- Answer successful!
+ Odpovědět…
+ Odpověď byla úspěšná!
- - %d response averaging %s
- - %d responses averaging %s
- - %d responses averaging %s
- - %d responses averaging %s
+ - %d odpověď, průměrně %s
+ - %d odpovědí, průměrně %s
+ - %d odpovědí, průměrně %s
+ - %d odpovědí, průměrně %s
- Your answer: %s
- Reply to story
- Reply…
+ Vaše odpověď: %s
+ Odpovědět na příběh
+ Odpovědět…
Kvíz
- Slider
- You have already answered!
+ Posuvník
+ Už jste odpověděli!
Zmínky
Tento účet je soukromý
- You won\'t be able to access posts after unfollowing! Are you sure?
- You can log in via More -> Account on the bottom-right corner or you can view public accounts without login!
- You can swipe left/right for explore/feed, or search something below!
+ Po zrušení sledování nebudete mít přístup k příspěvkům! Jste si jisti?
+ Můžete se přihlásit přes Více -> Účet v pravém dolním rohu nebo můžete zobrazit veřejné účty bez přihlášení!
+ Můžete posunout vlevo/vpravo pro objevit/feed nebo něco hledat níže!
Tento účet nezveřejnil žádné příspěvky
- No Such Posts!
- Current version: v%s
- read more…
+ Žádné takové příspěvky!
+ Aktuální verze: v%s
+ číst více…
Přihlásit se
Odhlásit se
- Browse Instagram anonymously
+ Procházet Instagram anonymně
Odstranit všechny účty
Tato akce odstraní všechny přidané účty z aplikace!\nChcete-li odstranit jen jeden účet, dlouze ho podržte v přepínači účtů.\nChcete stále pokračovat?
- Date format
- Liked
- Saved
- Tagged
- Message
+ Formát data
+ Oblíbené
+ Uložené
+ Označeno
+ Zpráva
To se mi líbí
Už se mi to nelíbí
- Bookmark
- Unbookmark
+ Přidat do záložek
+ Zrušit záložku
Sledovat
- Unfollow
- Favorite
- Unfavorite
+ Přestat sledovat
+ Přidat do oblíbených
+ Odebrat z oblíbených
Zablokovat
Odblokovat
Omezit
Zrušit omezení
- Copy bio
- Translate bio
- Mutual
- Following
- Follower
+ Kopírovat bio
+ Přeložit bio
+ vzájemní
+ Sleduje
+ Sledující
Mapa
Exportovat
Importovat
- Export Logins
+ Exportovat přihlášení
Účty
Nastavení
Oblíbené
Importovat nastavení
- Import Logins
+ Importovat přihlášení
Importovat účty
Importovat oblíbené
Úspěšně importováno!
@@ -139,9 +140,9 @@
Heslo nebylo vyplněno!
Načíst znovu
Získat cookies
- Desktop Mode
- Use custom format
- Separator
+ Režim stolního počítače
+ Použít vlastní formát
+ Oddělovač
Formát času
Formát datumu
Náhled
@@ -152,110 +153,110 @@
Zobrazit příběh
Zobrazit profilovou fotku
Vy
- Shared a link
- Shared a media
- Shared a timed message
- Replied to a story
- Reacted on a story
- Mentioned in a story
+ Sdílel(a) odkaz
+ Sdílel(a) média
+ Sdílel(a) časovanou zprávu
+ Odpověděl(a) na příběh
+ Reagoval(a) na příběh
+ Zmíněn v příběhu
Nepodporovaný typ zprávy
Otevřít odkaz
Zkopírovat text
Stáhnout přílohu
- Like message
- Unlike message
- Unsend message
- View author profile
- Post shared from %s
- Unknown media type
- Media expired!
- Delivered
+ Zpráva se mi líbí
+ Zpráva se mi nelíbí
+ Zrušit odeslání zprávy
+ Zobrazit profil autora
+ Příspěvek sdílený od %s
+ Neznámý typ médií
+ Média vypršela!
+ Doručeno
Odesláno
Otevřeno
Znovu přehráno
Odesílám…
Blokován
- Suggested
- Screenshotted
- Cannot deliver
- Great success!
+ Navrhované
+ Udělán snímek obrazovky
+ Nelze doručit
+ Skvělý úspěch!
Opustit
Chcete opustit tento chat?
Vyhodit
- Left users
- Download directly
- Downloads posts directly to the phone!
- Fetching post(s)
- Please grant permissions and try downloading again!
- Download started
- Download completed
- Downloading post…
- Downloading media
- Downloading profile picture
- File downloaded in Downloads folder!
- Unknown error occurred!!!
- Error creating folder!
- Error downloading file
- You can only download 100 posts at a time. Don\'t be too greedy!
- Copy username
- Copy comment
- View comment likers
- Reply to comment
- Like comment
- Unlike comment
+ Uživatelé, kteří skupinu opustili
+ Stáhnout přímo
+ Stahuje příspěvky přímo do telefonu!
+ Načítání příspěvků
+ Prosím, udělte oprávnění a zkuste znovu stáhnout!
+ Stahování bylo zahájeno
+ Stahování bylo dokončeno
+ Stahování příspěvku…
+ Stahuji média
+ Stahování profilového obrázku
+ Soubor stažen ve složce Stažení!
+ Vyskytla se neznámá chyba!
+ Chyba při vytváření složky!
+ Chyba při stahování souboru
+ Můžete stahovat pouze 100 příspěvků najednou. Nebuďte příliš chamtiví!
+ Kopírovat uživatelské jméno
+ Kopírovat komentář
+ Zobrazit, komu se komentář líbí
+ Odpovědět na komentář
+ Označit komentář lajkem
+ Odebrat lajk z komentáře
Přeložit komentář
Odstranit komentář
- No empty comments!
- Do you want to search the username?
- Do you want to search the hashtag?
- Followers
- Following
- Comparing followers & following
- Both following each other
- not following %s
- %s is not following
+ Žádné prázdné komentáře!
+ Chcete vyhledat uživatelské jméno?
+ Chcete vyhledat hashtag?
+ Sledující
+ Sleduje
+ Porovnávaní sledovaných & sledujících
+ Oba(ě) se navzájem sledují
+ nesleduje %s
+ %s nesleduje
Chyba při načítání souborů cookies
Napsat nový komentář…
Napsat novou zprávu…
- Liked your post
- Commented on your post:
- Started following you
- Mentioned you:
- Tagged you in a post
- Requested following you
- Approve request
- Reject request
- Share this public post to…
- This is a private post! Share to those who can view them!
- This category is somehow empty…
- An update is available! (%s)
- Reminder: If you downloaded from F-Droid, you must update from it! Same applies for GitHub.
- Thank you for updating Barinsta!
+ Líbí se mu Váš příspěvek
+ Okomentoval Váš příspěvek:
+ Vás začal sledovat
+ Zmínil vás:
+ vás označil(a) v příspěvku
+ Požádal(a) o sledování
+ Schválit žádost
+ Zamítnout žádost
+ Sdílejte tento veřejný příspěvek na…
+ Toto je soukromý příspěvek! Sdílejte jej s těmi, kdo jej může vidět!
+ Tato kategorie je nějak prázdná…
+ Je k dispozici aktualizace! (%s)
+ Připomínka: Pokud jste aplikaci stáhli z F-Droidu, musíte ji z něj i aktualizovat! To stejné platí pro GitHub.
+ Děkujeme, že jste aktualizovali Barinstu!
Aplikace spadla
Oops.. aplikace se zhroutila, ale nebojte se, můžete poslat chybové hlášení vývojáři, abyste mu pomohli vyřešit tuto chybu. (:
- Activity
- Story archive
- Suggested users
- Select Picture
- Uploading…
- You have:
- %d follows
- %d comments
- %d comment likes
- %d usertags
- %d likes
- You logged out before clicking this notification?!
+ Aktivita
+ Archiv příběhů
+ Navrhovaní uživatelé
+ Vybrat obrázek
+ Nahrávání…
+ Máte:
+ %d sleduje
+ %d komentářů
+ %d lajků komentáře
+ %d uživatelských štítků
+ %d se líbí
+ Odhlásili jste se před kliknutím na toto oznámení?
Feed
- Profile
- More
+ Profil
+ Více
DM
- %d selected
- Successfully logged out!
+ %d vybráno
+ Odhlášení proběhlo úspěšně!
Informace
- Mark as seen
- Do not show again until next update
+ Označit jako přečtené
+ Do další aktualizace znovu nezobrazovat
Verze
- Start screen
+ Úvodní obrazovka
Obecné
Motiv
Stažené
@@ -263,60 +264,60 @@
Účet
Nejde se vám přihlásit? Prostě přidejte účet znovu.
Přidat účet
- License (English only)
- Visit our website
- Get support, discuss, meet others, and have fun!
- See our source code on GitHub
- Audit, star, report bugs, contribute, and have fun (again)!
- Send feedback by email
- Third-Party Attributions
- The following third-party open-source libraries are used:
- Reminder
- Please use this app responsibly. Downloaded images should only be used for purposes allowed by applicable laws.
- White
- Black
- Light theme
- Dark theme
- Barista
+ Licence (pouze anglicky)
+ Navštivte náš web
+ Získejte podporu, diskutujte, setkávejte se s ostatními a bavte se!
+ Podívejte se na náš zdrojový kód na GitHub
+ Auditujte, označte hvězdou, nahlaste chyby, přispívejte a mějte zábava (znovu)!
+ Poslat zpětnou vazbu e-mailem
+ Atributy třetích stran
+ Následující open-source knihovny třetích stran jsou použity:
+ Upozornění
+ Používejte tuto aplikaci odpovědně. Stažené obrázky by měly být použity pouze pro účely povolené platnými zákony.
+ Bílá
+ Černá
+ Světlý vzhled
+ Tmavý vzhled
+ Kávový
Material Dark
- Added to Favorites
- Favorited
- Favorite
+ Přidáno do oblíbených
+ Oblíbeno
+ Přidat do oblíbených
Účty
Hashtagy
Místa
- Unknown
- Removed from Favourites
- Backup & Restore User Settings
- Back up app settings, account login information, and/or favorites data to a plain text or encrypted backup file for later restoration.
- If you\'re backing up login info, treat the file as confidential: Keep them somewhere safe!
- Create new backup file
- Restore from existing backup file
- File:
+ Neznámý
+ Odebráno z oblíbených
+ Zálohovat & Obnovit uživatelská nastavení
+ Zálohuje nastavení aplikace, přihlašovací údaje a/nebo oblíbená data do prostého textu nebo šifrovaného souboru pro pozdější obnovu.
+ Pokud zálohujete přihlašovací údaje, zacházejte se souborem důvěrně: Uchovejte ho někde v bezpečí!
+ Vytvořit nový soubor zálohy
+ Obnovit z existující zálohy
+ Soubor:
Zadejte heslo
- Select a backup file (.zaai/.backup)
+ Vyberte soubor zálohy (.zaai/.backup)
Použít
Uložit
- Caption
- Edit caption...
- Translate caption...
- Video player timeline
- Liking…
- Like unsuccessful
- Unlike unsuccessful
- Unliking…
- Controls
- Saving…
- Removing…
- Save unsuccessful
- Remove unsuccessful
- Downloading…
- Download item %d of %d
- Delete
- Comment
- Layout
- Feed stories
- Opening post...
+ Titulek
+ Upravit titulek...
+ Přeložit titulek...
+ Časová osa přehrávače videa
+ Označuji jako oblíbené…
+ Lajkování bylo neúspěšné
+ Odstraňování lajku bylo neúspěšné
+ Odstraňuji označení jako oblíbené…
+ Ovládací prvky
+ Ukládání…
+ Odstraňování…
+ Uložení se nezdařilo
+ Odstranění se nezdařilo
+ Stahuji…
+ Stáhnout položku %d z %d
+ Vymazat
+ Komentovat
+ Rozložení
+ Feed příběhů
+ Otevírání příspěvku...
Sdílet
Styl rozložení
Počet sloupců
@@ -329,26 +330,26 @@
Zobrazit mezery v mřížce
Zakázat animace
Počkejte prosím nejdříve na dokončení aktuální úlohy!
- Depending on user counts, this can take a while to load. Please be patient.
- Post not found!
- No app found which opens urls
+ V závislosti na počtu uživatelů to může chvíli trvat. Buďte trpěliví.
+ Příspěvek nebyl nalezen!
+ Nebyla nalezena žádná aplikace, která by otevřela URL
- - %d like
- - %d likes
- - %d likes
- - %d likes
+ - %d se líbí
+ - %d se líbí
+ - %d se líbí
+ - %d se líbí
- - %d comment
- - %d comments
- - %d comments
- - %d comments
+ - %d komentář
+ - %d komentáře
+ - %d komentářů
+ - %d komentářů
- - %s story
- - %s stories
- - %s stories
- - %s stories
+ - %s příběh
+ - %s příběhy
+ - %s příběhů
+ - %s příběhů
Přístup k úložišti nebyl udělen!
diff --git a/app/src/main/res/values-de/arrays.xml b/app/src/main/res/values-de/arrays.xml
index 1e38b7a0..af1a6943 100644
--- a/app/src/main/res/values-de/arrays.xml
+++ b/app/src/main/res/values-de/arrays.xml
@@ -30,7 +30,7 @@
- Hell
- - Instagram default (Unread then read)
+ - Instagram Standard (ungelesen, dann gelesen)
- Vom Neuesten zum Ältesten
- Vom Ältesten zum Neuesten
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index a5bf0edc..8a1a2f81 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -32,7 +32,7 @@
Direktnachrichten nach dem Ansehen als gesehen markieren
Andere Mitglieder werden wissen, dass du sie gesehen hast
Aktivitätsbenachrichtigungen aktivieren
- Feed stories sort
+ Sortierung Storyfeed
Fehler beim Laden des Profils!\nVersuche dich einzuloggen und erneut zu suchen.
Fehler beim Erstellen von Download-Ordner(n).
In benutzerdefiniertem Ordner speichern
@@ -54,6 +54,7 @@
%s Abonniert
Videos automatisch abspielen
Videos immer stummschalten
+ Bildtext immer anzeigen
Datei zum Download auswählen
Aktuell
Gesamtes Album
@@ -112,7 +113,7 @@
Nicht mehr einschränken
Steckbrief kopieren
Steckbrief übersetzen
- Mutual
+ Gegenseitig
Abonniert
Abonnent
Karte
@@ -176,7 +177,7 @@
Verlassen
Chat verlassen?
Entfernen
- Left users
+ Ehemalige Benutzer
Direkt herunterladen
Lade Posts direkt auf das Handy herunter!
Beiträgen abrufen
@@ -193,7 +194,7 @@
Du kannst nur 100 Beiträge gleichzeitig herunterladen. Sei nicht zu gierig!
Benutzername kopieren
Kommentar kopieren
- View comment likers
+ Kommentar-Liker ansehen
Auf Kommentar antworten
Kommentar gefällt mir
Kommentar gefällt mir nicht mehr
@@ -228,8 +229,8 @@
App abgestürzt
Hoppla.. die App ist abgestürzt, aber keine Sorge — du kannst Fehlerberichte an den Entwickler senden, um ihm zu helfen, das Problem zu beheben. (:
Aktivität
- Story archive
- Suggested users
+ Story-Archiv
+ Vorgeschlagene Benutzer
Bild auswählen
Hochladen…
Du hast:
@@ -281,11 +282,11 @@
Standorte
Unbekannt
Aus Favoriten entfernt
- Backup & Restore User Settings
- Back up app settings, account login information, and/or favorites data to a plain text or encrypted backup file for later restoration.
- If you\'re backing up login info, treat the file as confidential: Keep them somewhere safe!
- Create new backup file
- Restore from existing backup file
+ Sichern & Wiederherstellen der Benutzerdaten
+ Sichern Sie App-Einstellungen, Account-Login-Daten und/oder Favoriten in einer Klartextdatei oder verschlüsselten Datei für eine spätere Wiederherstellung.
+ Wenn Sie die Login-Informationen sichern möchten, behandeln Sie die Datei als vertraulich: Speichern Sie sie an einem sicheren Ort!
+ Erstelle neue Sicherungsdatei
+ Wiederherstellen aus existierender Sicherungsdatei
Datei:
Passwort eingeben
Wähle eine Sicherungsdatei (.zaai/.backup)
@@ -309,7 +310,7 @@
Löschen
Kommentar
Layout
- Feed stories
+ Storyfeed
Öffne Beitrag...
Teilen
Layoutstil
@@ -335,8 +336,8 @@
- %d Kommentare
- - %s story
- - %s stories
+ - %s Story
+ - %s Stories
Speicher-Zugriff nicht erteilt!
diff --git a/app/src/main/res/values-el/arrays.xml b/app/src/main/res/values-el/arrays.xml
new file mode 100644
index 00000000..f2aa5e72
--- /dev/null
+++ b/app/src/main/res/values-el/arrays.xml
@@ -0,0 +1,70 @@
+
+
+
+ - Προεπιλογή Συστήματος
+ - English
+ - Français
+ - Español
+ - 简体中文
+ - Bahasa Indonesia
+ - Italiano
+ - Deutsch
+ - Polski
+ - Türkçe
+ - Português (Brasil)
+ - پارسی
+ - Македонски
+ - Tiếng Việt
+ - 繁體中文
+ - Català
+ - Русский
+ - हिन्दी
+ - Nederlands
+ - Slovenčina
+ - 日本語
+
+
+ - Αυτόματα / Ακολούθηση Συστήματος
+ - Αυτόματα / Ακολούθηση Μπαταρίας
+ - Σκούρο
+ - Φωτεινό
+
+
+ - Προεπιλεγμένο του Instagram(Αδιάβαστο και μετά διαβασμένο)
+ - Από το νεότερο στο παλαιότερο
+ - Από το παλαιότερο στο νεότερο
+
+
+ - Κανένα
+ - \@
+ - στο
+ - πάνω
+ - \|
+ - -
+
+
+ - @string/title_dm
+ - @string/feed
+ - @string/profile
+ - @string/title_discover
+ - @string/more
+
+
+ - @string/light_white_theme
+ - @string/light_barinsta_theme
+ - @string/light_bibliogram_theme
+
+
+ - @style/AppTheme.Light.White
+ - @style/AppTheme.Light.Barinsta
+ - @style/AppTheme.Light.Bibliogram
+
+
+ - @string/dark_black_theme
+ - @string/dark_material_dark_theme
+
+
+ - @style/AppTheme.Dark.Black
+ - @style/AppTheme.Dark.MaterialDark
+
+
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
new file mode 100644
index 00000000..30f773db
--- /dev/null
+++ b/app/src/main/res/values-el/strings.xml
@@ -0,0 +1,343 @@
+
+
+ Σχετικά με
+ Απευθείας Μηνύματα
+ Ρυθμίσεις
+ Λήψη
+ Αναζήτηση ονόματος χρήστη...
+ Σύγκριση
+ Σφάλμα κατά την αντιγραφή κειμένου
+ Αντιγράφηκε στο clipboard!
+ Αναφορά
+ Κωδικός Πρόσβασης (Το μέγιστο 32 χαρακτήρες)
+ Ορισμός κωδικού πρόσβασης (Το μέγιστο 32 χαρακτήρες)
+ Κωδικός Πρόσβασης
+ Εντάξει
+ Ναι
+ Ακύρωση
+ Όχι
+ Επιβεβαίωση
+ Πάνω
+ Να μην εμφανιστεί ξανά
+ Τρέχων Κατάλογος
+ Αγαπημένα
+ Ανακαλύψτε
+ Σχόλια
+ Δραστηριότητα
+ Καλύτερες Στιγμές: %s
+ Έλεγχος για ενημερώσεις στο ξεκίνημα
+ Λήψη δημοσίευσης στους φακέλους με ονόματα χρηστών
+ Επισήμανση ιστοριών ως προβληθέντων μετά την προβολή
+ Ο συντάκτης της ιστορίας θα ξέρει ότι την προβάλατε
+ Σήμανση ΠΜ ως αναγνωσμένου μετά την προβολή
+ Άλλα μέλη θα γνωρίζουν πως το προβάλατε
+ Ενεργοποίηση ειδοποιήσεων δραστηριότητας
+ Ταξινόμηση ροής ιστορίων
+ Σφάλμα κατά τη φόρτωση προφίλ!\nΔοκιμάστε να συνδεθείτε και να αναζητήσετε ξανά.
+ Σφάλμα κατά τη δημιουργία φακέλου/ων λήψης.
+ Αποθήκευση σε προσαρμοσμένο φάκελο
+ Επιλογή Φακέλου
+ Θέμα
+ Επηρεάζει μόνο τους συνδεδεμένους χρήστες:
+ Επηρεάζει μόνο ανώνυμους χρήστες:
+ Χρήση Instadp για εικόνες προφίλ υψηλής ευκρίνειας
+ Εισαγωγή/Εξαγωγή
+ Γλώσσα
+
+ - %s Δημοσίευση
+ - %s Δημοσιεύσεις
+
+
+ - %s Ακόλουθος
+ - %s Ακόλουθοι
+
+ %s Ακολουθείται
+ Παίζε αυτόματα τα βίντεο
+ Πάντα βάζε τα βίντεο σε σιγή
+ Να εμφανίζονται πάντα οι λεζάντες δημοσιέυσεων
+ Επιλογή τι να κατεβεί
+ Συγκεκριμένο
+ Ολόκληρο Άλμπουμ
+ Εμφάνιση Ιστοριών
+ Δεν υπάρχουν άλλες ιστορίες!
+ Κάντε υπομονή!
+ Προβολη Δημοσίευσης
+ Προβολή Δημοσίευσης
+ Spotify
+ Ψηφίστε
+ Η ψήφος ήταν επιτυχής!
+ Έχετε ήδη ψηφίσει!
+ Ανταπόκριση
+ Απάντηση…
+ Η απάντηση ήταν επιτυχής!
+
+ - %d απόκριση κατά μέσο όρο%s
+ - %d αποκρίσεις κατά μέσο όρο %s
+
+ Η απάντησή σας: %s
+ Απάντηση στην ιστορία
+ Απάντηση…
+ Κουίζ
+ Slider
+ Έχετε ήδη απαντήσει!
+ Αναφορές
+ Αυτός ο Λογαριασμός είναι Ιδιωτικός
+ Δεν θα έχετε πρόσβαση σε δημοσιεύσεις μετά από την άρση ακολούθησης! Είστε σίγουροι;
+ Μπορείτε να συνδεθείτε μέσω του Περισσότερα-> Λογαριασμός στην κάτω δεξιά γωνία ή μπορείτε να δείτε δημόσιους λογαριασμούς χωρίς σύνδεση!
+ Μπορείτε να σύρετε προς τα αριστερά/δεξιά για εξερεύνηση/τροφοδοσία ή να αναζητήσετε κάτι παρακάτω!
+ Αυτός ο Λογαριασμός δεν έχει Δημοσιεύσεις
+ Δεν Υπάρχουν Τέτοιες Δημοσιεύσεις!
+ Τρέχουσα έκδοση: v%s
+ διαβάστε περισσότερα…
+ Σύνδεση
+ Αποσύνδεση
+ Περιήγηση στο Instagram ανώνυμα
+ Αφαίρεση όλων των λογαριασμών
+ Αυτό θα καταργήσει όλους τους λογαριασμούς που έχουν προστεθέι στην εφαρμογή!\nΓια να καταργήσετε μόνο έναν λογαριασμό, πατήστε παρατεταμένα το λογαριασμό από το διάλογο εναλλαγής λογαριασμού.\nΘέλετε να συνεχίσετε;
+ Μορφή ημερομηνίας
+ Επισημασμένο ως \"Μου αρέσει\"
+ Αποθηκεύτηκε
+ Επισημάνθηκε η ετικέτα
+ Μήνυμα
+ Μου αρέσει
+ Δεν μου αρέσει
+ Αποθήκευση σαν σελιδοδείκτης
+ Διαγραφή σελιδοδείκτη
+ Ακολουθήστε
+ Κατάργηση ακολούθησης
+ Προσθήκη στα αγαπημένα
+ Αφαίρεση από αγαπημένα
+ Αποκλεισμός
+ Άρση αποκλεισμού
+ Περιορισμός
+ Άρση Περιορισμού
+ Αντιγραφή βιογραφικού
+ Μετάφραση βιογραφικού
+ Κοινά
+ Ακολουθείτε
+ Ακόλουθος
+ Χάρτης
+ Εξαγωγή
+ Εισαγωγή
+ Εξεγωγή Συνδέσεων
+ Λογαριασμοί
+ Ρυθμίσεις
+ Αγαπημένα
+ Εισαγωγή ρυθμίσεων
+ Εισαγωγή Συνδέσεων
+ Εισαγωγή λογαριασμών
+ Εισαγωγή Αγαπημένων
+ Η εισαγωγή ήταν επιτυχής!
+ Η εισαγωγή ήταν ανεπιτυχής!
+ Η εξαγωγή ήταν επιτυχής!
+ Η εξαγωγή απέτυχε!
+ Ο κωδικός πρόσβασης είναι κενός!
+ Επαναφόρτωση
+ Λήψη cookies
+ Λειτουργία Επιφάνειας Εργασίας
+ Χρήση προσαρμοσμένης μορφής
+ Διαχωριστικό
+ Μορφή Ώρας
+ Μορφή Ημερομηνίας
+ Προεπισκόπηση
+ Εναλλαγή θέσεων ώρας και ημερομηνίας
+ Αδυναμία διαγραφής λογαριασμού που χρησιμοποιείται αυτή την στιγμή
+ Είστε βέβαιοι ότι θέλετε να διαγράψετε το \'%s\';
+ Άνοιγμα προφίλ
+ Προβολή ιστορίας
+ Προβολή εικόνας προφίλ
+ Εσείς
+ Μοιράστηκε έναν σύνδεσμο
+ Μοιράστηκε πολυμέσο
+ Κοινοποίηθηκε ένα χρονικό μήνυμα
+ Απάντησε σε μια ιστορία
+ Αντέδρασε σε μια ιστορία
+ Αναφερθήκατε σε μια ιστορία
+ Μη υποστηριζόμενος τύπος μηνύματος
+ Άνοιγμα συνδέσμου
+ Αντιγραφή κειμένου
+ Λήψη συνημμένου
+ Μαρκάρισμα μηνύματος ως \'Μου Αρέσει\'
+ Αναίρεση \'Μου Αρέσει\' από το μήνυμα
+ Κατάργηση αποστολής μηνύματος
+ Προβολή προφίλ του συγγραφέα
+ Η ανάρτηση κοινοποιήθηκε από %s
+ Άγνωστος τύπος πολυμέσου
+ Το πολυμέσο έχει λήξει!
+ Παραδόθηκε
+ Έχει σταλεί
+ Ανοίχτηκε
+ Ξαναπαίχτηκε
+ Γίνεται Αποστολή…
+ Αποκλείστηκε
+ Προτεινόμενη
+ Τραβήχθηκε στιγμιότυπο οθόνης
+ Αδυναμία παράδοσης
+ Μεγάλη επιτυχία!
+ Αποχώρηση
+ Αποχώρηση από αυτήν τη συνομιλία;
+ Διώξιμο
+ Χρήστες που αποχώρησαν
+ Απευθείας λήψη
+ Λήψεις δημοσιεύσεων απευθείας στο τηλέφωνο!
+ Ανάκτηση δημοσιεύσης/εων
+ Παρακαλούμε παραχωρήστε τις απαιτούμενες άδειες και ξαναδοκιμάστε να το κατεβάσετε!
+ Η λήψη ξεκίνησε
+ Η λήψη ολοκληρώθηκε
+ Γίνεται λήψη της δημοσίευσης…
+ Γίνεται λήψη πολυμέσων
+ Γίνεται λήψη εικόνας προφίλ
+ Το αρχείο κατέβηκε στον φάκελο Λήψεις!
+ Προέκυψε ένα άγνωστο σφάλμα!!!
+ Σφάλμα κατά την δημιουργία φακέλου!
+ Σφάλμα λήψης αρχείου
+ Μπορείτε να κατεβάσετε μόνο 100 δημοσιεύσεις κάθε φορά. Μην είστε τόσο άπληστοι!
+ Αντιγραφή ονόματος χρήστη
+ Αντιγραφή σχολίου
+ Προβολή αυτών που μάρκαραν το σχόλιο ως \'Μου Αρέσει\'
+ Απάντηση στο σχόλιο
+ Επισήμανση σχολίου ως \'Μου Αρέσει\'
+ Αφαίρεση \'Μου Αρέσει\' από το σχόλιο
+ Μετάφραση σχολίου
+ Διαγραφή σχολίου
+ Δεν υπάρχουν κενά σχόλια!
+ Θέλετε να αναζητήσετε το όνομα χρήστη;
+ Θέλετε να αναζητήσετε το hashtag;
+ Ακόλουθοι
+ Ακολουθείτε
+ Σύγκριση ακολούθων & ακολούθείται
+ Και οι δύο ακολουθιέστε μεταξύ σας
+ δεν ακολουθεί %s
+ %s δεν ακολουθεί
+ Σφάλμα κατά την φόρτωση των cookies
+ Γράψτε νεο σχόλιο…
+ Σύνταξη νέου μηνύματος…
+ Του άρεσε η δημοσίευση σας
+ Σχολιάστηκε στην δημοσίευση σας:
+ Ξεκίνησε να σας ακολουθεί
+ Σας ανέφερε:
+ Πρόσθεσε την ετικέτα σας σε μία δημοσίευση
+ Έκανε αίτημα να σας ακολουθήσει
+ Έγκριση αιτήματος
+ Απόρριψη αιτήματος
+ Μοιραστείτε αυτή τη δημόσια δημοσίευση στο…
+ Αυτή είναι μια ιδιωτική ανάρτηση! Μοιραστείτε την με αυτούς που μπορούν να την δουν!
+ Αυτή η κατηγορία είναι κάπως κενή…
+ Υπάρχει διαθέσιμη ενημέρωση! (%s)
+ Υπενθύμιση: Εάν το έχετε κατεβάσει από το F-Droid, πρέπει να το ενημερώσετε από αυτό! Το ίδιο ισχύει και για το GitHub.
+ Ευχαριστούμε που ενημερώσατε το Barinsta!
+ Η εφαρμογή συνετρίβη
+ Ουπς.. Η εφαρμογή συνετρίβη, αλλά μην ανησυχείτε, μπορείτε να αναφέρετε το σφάλμα στον προγραμματιστή για να τον βοηθήσετε να διορθώσει το πρόβλημα. (:
+ Δραστηριότητα
+ Αρχειοθήκη ιστοριών
+ Προτεινόμενοι χρήστες
+ Επιλέξτε Εικόνα
+ Μεταφόρτωση…
+ Έχετε:
+ %d ακόλουθοι
+ %d σχόλια
+ %d επισημάνσεις \'Μου Αρέσει\' σε σχόλια
+ %d ετικέτες χρήστη
+ %d επισημάνσεις \"Μου αρέσει\"
+ Αποσυνδεθήκατε πριν κάνετε κλικ σε αυτή την ειδοποίηση;!
+ Ροή
+ Προφίλ
+ Περισσότερα
+ ΠΜ
+ %d επιλέχθηκε
+ Η αποσύνδεση ήταν επιτυχής!
+ Πληροφορίες
+ Σήμανση ως αναγνωσμένο
+ Να μην εμφανιστεί ξανά μέχρι την επόμενη ενημέρωση
+ Έκδοση
+ Οθόνη εκκίνησης
+ Γενικά
+ Θέμα
+ Λήψεις
+ Τοποθεσία
+ Λογαριασμός
+ Η συγκεκριμένη σύνδεση δεν λειτουργεί; Απλά ξαναπροσθέστε τον λογαριασμό.
+ Προσθήκη λογαριασμού
+ Άδεια (μόνο στα Αγγλικά)
+ Επισκεφθείτε την ιστοσελίδα μας
+ Λάβετε υποστήριξη, συζητήστε, συναντήστε άλλους, και διασκεδάστε!
+ Δείτε τον πηγαίο κώδικα μας στο GitHub
+ Ελέγχου, μαρκάρισμα με αστέρια, αναφορά σφαλμάτων, συνεισφορές, και διασκέδαση (ξανά)!
+ Αποστολή σχολίων μέσω ηλ. ταχυδρομείου
+ Αποδόσεις Τρίτων
+ Χρησιμοποιούνται οι ακόλουθες τρίτες βιβλιοθήκες ανοιχτού κώδικα:
+ Υπενθύμιση
+ Παρακαλούμε χρησιμοποιήστε αυτήν την εφαρμογή υπεύθυνα. Οι ληφθείσες εικόνες πρέπει να χρησιμοποιούνται μόνο για σκοπούς που επιτρέπονται από τους ισχύοντες νόμους.
+ Άσπρο
+ Μαύρο
+ Φωτείνο θέμα
+ Σκοτεινό θέμα
+ Barista
+ Σκοτεινό Material
+ Προστέθηκε στα Αγαπημένα
+ Μαρκαρισμένο ως \'Αγαπημένο\'
+ Αγαπημένο
+ Λογαριασμοί
+ Hashtags
+ Τοποθεσίες
+ Άγνωστο
+ Αφαιρέθηκε από τα Αγαπημένα
+ Ρυθμίσεις αντιγράφων ασφαλείας & επαναφοράς
+ Δημιουργήστε αντίγραφα ασφαλείας των ρυθμίσεων εφαρμογών, των πληροφοριών σύνδεσης λογαριασμού, ή/και των αγαπημένων σας σε ένα απλό κείμενο ή κρυπτογραφημένο αρχείο αντίγραφου ασφαλείας για μεταγενέστερη επαναφορά.
+ Αν δημιουργείτε αντίγραφα ασφαλείας των πληροφοριών σύνδεσης, αντιμετωπίζετε το αρχείο ως απόρρητο: Κρατήστε το κάπου που είναι ασφαλές!
+ Δημιουργία νέου αρχείου αντιγράφου ασφαλείας
+ Επαναφορά από υπάρχον αρχείο αντιγράφου ασφαλείας
+ Αρχείο:
+ Εισαγωγή κωδικού πρόσβασης
+ Επιλέξτε ένα αρχείο αντιγράφου ασφαλείας (.zaai/.backup)
+ Εφαρμογή
+ Αποθήκευση
+ Λεζάντα
+ Επεξεργασία λεζάντας...
+ Μετάφραση λεζάντας...
+ Χρονοδιάγραμμα αναπαραγωγού βίντεο
+ Μαρκάρισμα ως \'Μου Αρέσει\'…
+ Το μαρκάρισμα ως \'Μου Αρέσει\' ήταν ανεπιτυχές
+ Η κατάργηση \'Μου Αρέσει\' ήταν ανεπιτυχής
+ Κατάργηση \'Μου Αρέσει\'…
+ Στοιχεία ελέγχου
+ Αποθήκευση…
+ Αφαίρεση…
+ Η αποθήκευση ΔΕΝ ήταν επιτυχής
+ Η αφαίρεση ΔΕΝ ήταν επιτυχής
+ Γίνεται λήψη…
+ Λήψη στοιχείου %d από %d
+ Διαγραφή
+ Σχόλιο
+ Διάταξη
+ Ροή ιστοριών
+ Άνοιγμα δημοσίευσης...
+ Κοινοποίηση
+ Στυλ διάταξης
+ Πλήθος στηλών
+ 2
+ 3
+ Εμφάνιση ονομάτων
+ Προβολή άβαταρ
+ Μέγεθος άβαταρ
+ Γωνίες
+ Εμφάνιση διάταξης πλέγματος
+ Απενεργοποίηση των εφέ
+ Παρακαλούμε περιμένετε να ολοκληρωθεί πρώτα η τρέχουσα εργασία!
+ Ανάλογα με τις μετρήσεις του χρήστη, αυτό μπορεί να πάρει λίγο χρόνο για να φορτωθεί. Μείνετε υπομονετικοί.
+ Η δημοσίευση δεν βρέθηκε!
+ Δεν βρέθηκε εφαρμογή που να ανοίγει urls
+
+ - %d επισήμανση \"Μου αρέσει\"
+ - %d επισημάνσεις \"Μου αρέσει\"
+
+
+ - %d σχόλιο
+ - %d σχόλια
+
+
+ - %s ιστορία
+ - %s ιστορίες
+
+ Δεν παραχωρήθηκε άδεια για πρόσβαση στον χώρο αποθήκευσης!
+
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index ff7059a5..a99427cd 100755
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -54,6 +54,7 @@
%s seguidos
Autorreproducir vídeos
Siempre silenciar vídeos
+ Mostrar siempre subtítulos del post
Seleccionar qué descargar
Actual
Todo el álbum
@@ -206,8 +207,8 @@
Siguiendo
Comparando seguidores & seguidos
Ambos se siguen mutuamente
- no está siguiendo %s
- %s no está siguiendo
+ No sigue a %s
+ %s no sigue a
Error al cargar cookies
Escribir un nuevo comentario…
Escribir un mensaje nuevo…
diff --git a/app/src/main/res/values-eu/arrays.xml b/app/src/main/res/values-eu/arrays.xml
new file mode 100644
index 00000000..fa427545
--- /dev/null
+++ b/app/src/main/res/values-eu/arrays.xml
@@ -0,0 +1,70 @@
+
+
+
+ - Sistemaren lehenetsia
+ - English
+ - Français
+ - Español
+ - 简体中文
+ - Bahasa Indonesia
+ - Italiano
+ - Deutsch
+ - Polski
+ - Türkçe
+ - Português (Brasil)
+ - پارسی
+ - Македонски
+ - Tiếng Việt
+ - 繁體中文
+ - Català
+ - Русский
+ - हिन्दी
+ - Nederlands
+ - Slovenčina
+ - 日本語
+
+
+ - Automatikoa / Jarraitu sistema
+ - Automatikoa / Jarraitu bateria
+ - Iluna
+ - Argia
+
+
+ - Instagrameko lehenetsia (Ez irakurrita, gero irakurrita)
+ - Berrienetik zaharrenera
+ - Zaharrenetik berrienera
+
+
+ - Bat ere ez
+ - \@
+ - -
+ - ,
+ - \|
+ - -
+
+
+ - @string/title_dm
+ - @string/feed
+ - @string/profile
+ - @string/title_discover
+ - @string/more
+
+
+ - @string/light_white_theme
+ - @string/light_barinsta_theme
+ - @string/light_bibliogram_theme
+
+
+ - @style/AppTheme.Light.White
+ - @style/AppTheme.Light.Barinsta
+ - @style/AppTheme.Light.Bibliogram
+
+
+ - @string/dark_black_theme
+ - @string/dark_material_dark_theme
+
+
+ - @style/AppTheme.Dark.Black
+ - @style/AppTheme.Dark.MaterialDark
+
+
diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml
new file mode 100644
index 00000000..e2495e57
--- /dev/null
+++ b/app/src/main/res/values-eu/strings.xml
@@ -0,0 +1,343 @@
+
+
+ Honi buruz
+ Mezu zuzenak
+ Ezarpenak
+ Deskargatu
+ Bilatu erabiltzaile-izena…
+ Alderatu
+ Errorea testua kopiatzean
+ Arbelera kopiatu da!
+ Salatu
+ Pasahitza (32 karak. gehienez)
+ Ezarri pasahitza (32 karak. gehienez)
+ Pasahitza
+ Ados
+ Bai
+ Utzi
+ Ez
+ Baieztatu
+ Gora
+ Ez erakutsi berriro
+ Uneko direktorioa
+ Gogokoak
+ Aurkitu
+ Iruzkinak
+ Jarduera
+ Nabarmendua: %s
+ Bilatu eguneratzeak abioan
+ Deskargatu bidalketak erabiltzaile-izena duten karpetetara
+ Markatu istorioak ikusita gisa ikusi ondoren
+ Istorioaren egileak ikusi duzula jakingo du
+ Markatu MZ ikusita gisa ikusi ondoren
+ Beste kideek ikusi duzula jakingo dute
+ Gaitu jarduera-jakinarazpenak
+ Istorioen jarioaren sailkapena
+ Errorea profila kargatzean!\nSaiatu saioa hasten eta bilatu berriro.
+ Errorea deskargen karpeta(k) sortzen.
+ Gorde pertsonalizatutako karpetan
+ Hautatu karpeta
+ Gaia
+ Saioa hasi duten erabiltzaileei soilik eragiten die:
+ Erabiltzaile anonimoei soilik eragiten die:
+ Erabili Instadp bereizmen handiko profil-irudietarako
+ Inportatu/Esportatu
+ Hizkuntza
+
+ - Bidalketa %s
+ - %s bidalketa
+
+
+ - Jarraitzaile %s
+ - %s jarraitzaile
+
+ %s jarraituak
+ Erreproduzitu bideoak automatikoki
+ Mututu bideoak beti
+ Erakutsi argazki-oina beti
+ Hautatu zer deskargatu
+ Unekoa
+ Album osoa
+ Erakutsi istorioak
+ Istorio gehiagorik ez
+ Itxaron
+ Ikusi bidalketa
+ Ikusi bidalketa
+ Spotify
+ Bozkatu
+ Bozka ongi bidali da!
+ Jada bozkatu duzu!
+ Erantzun
+ Erantzun…
+ Erantzuna ongi bidali da!
+
+ - %d response averaging %s
+ - %d responses averaging %s
+
+ Zure erantzuna: %s
+ Erantzun istorioa
+ Erantzun…
+ Lehiaketa
+ Slider
+ Dagoeneko erantzun duzu!
+ Aipamenak
+ Kontu hau pribatua da
+ Ezingo dituzu bidalketak ikusi jarraitzeari utzi ondoren. Ziur zaude?
+ You can log in via More -> Account on the bottom-right corner or you can view public accounts without login!
+ You can swipe left/right for explore/feed, or search something below!
+ Kontu honek bidalketarik ez du
+ Bidalketarik ez!
+ Uneko bertsioa: v%s
+ irakurri gehiago…
+ Hasi saioa
+ Amaitu saioa
+ Nabigatu Instagramen anonimoki
+ Kendu kontu guztiak
+ This will remove all added accounts from the app!\nTo remove just one account, long tap the account from the account switcher dialog.\nDo you want to continue?
+ Data-formatua
+ Atsegiteak
+ Gordeta
+ Etiketatuta
+ Mezua
+ Atsegitea
+ Ez dut atsegin
+ Laster-marka
+ Laster-marka kendu
+ Jarraitu
+ Jarraitzeari utzi
+ Gogokoa
+ Gogokoetatik kendu
+ Blokeatu
+ Desblokeatu
+ Mugatu
+ Muga kendu
+ Kopiatu biografia
+ Itzuli biografia
+ Alde bikoa
+ Jarraituak
+ Jarraitzaile
+ Mapa
+ Esportatu
+ Inportatu
+ Esportatu saio-hasierak
+ Kontuak
+ Ezarpenak
+ Gogokoak
+ Inportatu ezarpenak
+ Inportatu saio-hasierak
+ Inportatu kontuak
+ Inportatu gogokoak
+ Ongi inportatu da!
+ Inportatzeak huts egin du!
+ Ongi esportatu da!
+ Esportatzeak huts egin du!
+ Pasahitza hutsik dago!
+ Freskatu
+ Eskuratu cookieak
+ Mahaigaineko modua
+ Erabili pertsonalizatutako formatua
+ Bereizlea
+ Ordu-formatua
+ Data-formatua
+ Aurrebista
+ Aldatu ordua eta dataren posizioa
+ Ezin da unean erabiltzen ari zaren kontua ezabatu
+ Ziur zaude \"%s\" ezabatu nahi duzula?
+ Ireki profila
+ Ikusi istorioa
+ Ikusi profil-irudia
+ Zu
+ Partekatutako esteka
+ Partekatutako multimedia
+ Denboraz neurtutako mezua partekatu du
+ Erantzundako istorioa
+ Istorio batera erreakzionatu du
+ Istorio batean aipatu zaitu
+ Mezu mota ez da onartzen
+ Ireki esteka
+ Kopiatu testua
+ Deskargatu eranskina
+ Atsegin mezua
+ Atsegina kendu mezuari
+ Ezabatu mezua
+ Ikusi MZren autorearen profila
+ Bidalketa hemendik partekatu da: %s
+ Multimedia mota ezezaguna
+ Multimedia iraungi da!
+ Iritsi da
+ Bidalita
+ Irekita
+ Berriro erreproduzituta
+ Bidaltzen…
+ Blokeatuta
+ Iradokita
+ Pantaila-argazkia aterata
+ Ez da iritsi
+ Behar bezala gauzatu da
+ Utzi
+ Utzi txat hau?
+ Bota
+ Joan diren erabiltzaileak
+ Deskargatu zuzenean
+ Bidalketak telefonora zuzenean deskargatzen ditu
+ Fetching post(s)
+ Baimenak eman eta saiatu berriro deskargatzen
+ Deskarga hasita
+ Deskarga burutu da
+ Bidalketa deskargatzen…
+ Multimedia deskargatzen
+ Profil-irudia deskargatzen
+ Fitxategia deskargak karpetan deskargatu da
+ Errore ezezaguna gertatu da
+ Errorea karpeta sortzean!
+ Errorea fitxategia deskargatzean
+ 100 bidalketa deskargatu ditzakezu une berean. Ez izan gutiziatsu!
+ Kopiatu erabiltzaile-izena
+ Kopiatu iruzkina
+ Ikusi iruzkinen atsegiteak
+ Erantzun iruzkinari
+ Atsegin iruzkina
+ Ez dut atsegin
+ Itzuli iruzkina
+ Ezabatu iruzkina
+ Iruzkin hutsik ez!
+ Erabiltzaile-izena bilatu nahi duzu?
+ Traol-hitza bilatu nahi duzu?
+ Jarraitzaileak
+ Jarraituak
+ Jarraitzaileak eta jarraituak konparatzen
+ Elkarri jarraitzen diozue
+ ez jarraitzen %s
+ %s(e)k ez zaitu jarraitzen
+ Errorea cookieak kargatzean
+ Idatzi iruzkin berria…
+ Idatzi mezu berria…
+ Zure bidalketa atsegin du
+ Zure bidalketan iruzkindu du:
+ Zu jarraitzen hasi da
+ Aipatu zaitu:
+ Bidalketa batean etiketatu zaitu
+ Zu jarraitzeko eskaera egin du
+ Onartu eskaera
+ Baztertu eskaera
+ Partekatu bidalketa publiko hau…
+ Bidalketa pribatua da. Partekatu ikus dezaketen horiekin!
+ Kategoria hau hutsik dago…
+ Eguneratze bat eskuragarri dago (%s)
+ F-Droidetik deskargatu baduzu, bertatik eguneratu behar duzu. GitHubekin ere hori egin behar da.
+ Eskerrik asko Barinsta eguneratzeagatik!
+ Aplikazioa kraskatu da
+ Hara! Aplikazioa kraskatu da, baina ez kezkatu, errore-txostena garatzaileari bidali diezaiokezu arazoa konpondu dezan.
+ Jarduera
+ Istorio-artxiboa
+ Iradokitutako erabiltzaileak
+ Hautatu irudia
+ Igotzen…
+ Duzuna:
+ %d jarraitzaile
+ %d iruzkin
+ %d iruzkin-atsegite
+ %d erabiltzaile-etiketak
+ %d atsegite
+ You logged out before clicking this notification?!
+ Jarioa
+ Profila
+ Gehiago
+ MZ
+ %d hautatua
+ Saioa ongi itxi da!
+ Informazioa
+ Markatu ikusita gisa
+ Ez erakutsi hurrengo eguneratzera arte
+ Bertsioa
+ Hasierako pantaila
+ Orokorra
+ Gaia
+ Deskargak
+ Lokala
+ Kontua
+ Uneko saio-hasiera ez dabil? Gehitu kontua berriro.
+ Gehitu kontua
+ Lizentzia (Ingelesa soilik)
+ Ikusi gure webgunea
+ Get support, discuss, meet others, and have fun!
+ Ikusi iturburu kodea GitHuben
+ Kodea ikusi, parte hartu eta gozatu!
+ Bidali atzeraelikadura eposta bidez
+ Hirugarrenen atribuzioak
+ The following third-party open-source libraries are used:
+ Oroigarria
+ Please use this app responsibly. Downloaded images should only be used for purposes allowed by applicable laws.
+ Zuria
+ Beltza
+ Gai argia
+ Gai iluna
+ Akeita
+ Beltz materiala
+ Gogokoetara gehituta
+ Gogokotua
+ Gogokotu
+ Kontuak
+ Traolak
+ Kokalekuak
+ Ezezaguna
+ Gogokoetatik kenduta
+ Backup & Restore User Settings
+ Back up app settings, account login information, and/or favorites data to a plain text or encrypted backup file for later restoration.
+ If you\'re backing up login info, treat the file as confidential: Keep them somewhere safe!
+ Create new backup file
+ Restore from existing backup file
+ Fitxategia:
+ Sartu pasahitza
+ Select a backup file (.zaai/.backup)
+ Ezarri
+ Gorde
+ Argazki-oina
+ Editatu argazki-oina...
+ Itzuli argazki-oina...
+ Video player timeline
+ Atsegiten…
+ Like unsuccessful
+ Unlike unsuccessful
+ Atsegitea kentzen…
+ Kontrolak
+ Gordetzen…
+ Kentzen…
+ Save unsuccessful
+ Remove unsuccessful
+ Deskargatzen…
+ Download item %d of %d
+ Ezabatu
+ Iruzkina
+ Antolamendua
+ Istorioen jarioa
+ Bidalketa irekitzen...
+ Partekatu
+ Diseinua
+ Zutabe kopurua
+ 2
+ 3
+ Erakutsi izenak
+ Erakutsi avatarrak
+ Avatarraren tamaina
+ Ertzak
+ Erakutsi sareta-tartea
+ Desgaitu animazioa
+ Itxaron uneko zeregina burutu arte!
+ Erabiltzaile kopuruaren arabera, honek kargatzen tardatu dezake. Itxaron.
+ Bidalketa ez da aurkitu!
+ URLak irekiko dituen aplikaziorik ez da aurkitu
+
+ - atsegite %d
+ - %d atsegite
+
+
+ - Iruzkin %d
+ - %d iruzkin
+
+
+ - Istorio %s
+ - %s istorio
+
+ Biltegiratze-baimenik ez da eman!
+
diff --git a/app/src/main/res/values-fa/arrays.xml b/app/src/main/res/values-fa/arrays.xml
index 3f66523c..3c150a28 100644
--- a/app/src/main/res/values-fa/arrays.xml
+++ b/app/src/main/res/values-fa/arrays.xml
@@ -1,7 +1,7 @@
- - پیشگزیده سامانه
+ - پیـشـگزیده سامانه
- English
- Français
- Español
@@ -24,8 +24,8 @@
- 日本語
- - خودکار / پیروی از سامانه
- - خودکار / پیروی از باتری
+ - خودکار / پیرو سامانه
+ - خودکار / پیرو باتری
- تیره
- روشن
@@ -38,7 +38,7 @@
- هیچکدام
- \@
- در
- - روشن
+ - در
- \|
- -
diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml
index cfb7e714..5b8d0afd 100644
--- a/app/src/main/res/values-fa/strings.xml
+++ b/app/src/main/res/values-fa/strings.xml
@@ -44,24 +44,25 @@
وارد کردن/خروجی گرفتن
زبان
- - %s Post
- - %s Posts
+ - %s فرسته
+ - %s فرسته
- - %s Follower
- - %s Followers
+ - %s پیگیر
+ - %s پیگیر
%s Following
پخش خودکار فیلم ها
همیشه فیلم هارو بی صدا کن
+ Always show post captions
انتخاب کن چی دانلود کنی
کنونی
آلبوم کامل
نمایش استوری ها
استوری بیشتری نیست!
صبور باشید!
- نگریستن پیک
- نگریستن پیک
+ دیدن فرسته
+ دیدن فرسته
Spotify
رای دادن
رای با موفقیت بود!
@@ -114,8 +115,8 @@
Copy bio
Translate bio
Mutual
- Following
- Follower
+ پیگیری
+ پیگیر
نقشه
صادر کردن
وارد کردن
@@ -291,7 +292,7 @@
رمز عبور را وارد کنید
یک فایل پشتیبان گیری انتخاب کنید (.zaai/.backup)
گماشتن
- Save
+ اندوختن
Caption
Edit caption...
Translate caption...
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index bcc4529b..38c96bab 100755
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -54,6 +54,7 @@
%s Abonnements
Lecture automatique des vidéos
Toujours couper le son des vidéos
+ Toujours afficher les sous-titres de publication
Sélectionnez ce que vous souhaitez télécharger
Actuel
Album complet
diff --git a/app/src/main/res/values-hi/arrays.xml b/app/src/main/res/values-hi/arrays.xml
index 8b0210c5..458c23f0 100644
--- a/app/src/main/res/values-hi/arrays.xml
+++ b/app/src/main/res/values-hi/arrays.xml
@@ -26,7 +26,7 @@
- सिस्टम के अनुसार
- बैटरी स्तर के अनुसार
- - काला
+ - गहरा
- हल्का
diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml
index e7cfd899..19c6d29b 100644
--- a/app/src/main/res/values-hi/strings.xml
+++ b/app/src/main/res/values-hi/strings.xml
@@ -6,8 +6,8 @@
डाउनलोड करें
ब्यबहारकारीयों के ब्यबहृत नाम ढुंढे...
तुलना करें
- लेखा उतारने में त्रुटि
- क्लिपबोर्ड पर नक़ल किया
+ लेख कॉपी करने में त्रुटि
+ क्लिपबोर्ड में कॉपी हो गया है
रिपोर्ट करें
पासवर्ड (सर्बाधिक ३२ वर्ण)
पासवर्ड तैयार करें (सर्बाधिक ३२ वर्ण)
@@ -18,7 +18,7 @@
नहीं
पुष्टि करें
ऊपर
- फिर से मत दिखाओ
+ दोबारा न दिखाएं
बर्तमान फोल्डर
पसंदीदा
खोजिए
@@ -54,6 +54,7 @@
%s Following
वीडियो ऑटोप्ले करें
सर्बदा वीडियो को शब्दहिन रखें
+ Always show post captions
डाउनलोड करने के लिए चयन करें
वर्तमान
सम्पूर्ण आलबम
@@ -111,7 +112,7 @@
अनब्ल़ॉक करें
प्रतिबंध लगाए
प्रतिबंध न लगाए
- Copy bio
+ विवरण कॉपी करें
Translate bio
Mutual
Following
@@ -119,16 +120,16 @@
नक्शा
निर्यात करें
आयात करें
- लग इनस निर्यात करें
- खाताए
- सेटिंग
+ लोगिन्स निर्यात करें
+ खाते
+ सेटिंग्स
पसंदीदा
सेटिंग्स आयात करें
लॉगिन आयात करें
एकाउॅटस आयात करें
पसंदिदा आयात करें
सफलतापूर्वक इम्पोर्ट किया गया!
- आयात करने में विफल रहा है!
+ आयात करने में विफल रहा!
सफलतापूर्वक निर्यात किया!
निर्यात करने में विफल!
पासवर्ड खाली है!
@@ -155,7 +156,7 @@
स्टोरि पे आपको उल्लेख किया
सन्देश प्रकार असमर्थित है
लिंक खोलो
- पाठ की प्रतिलिपि बनाएं
+ लेख कॉपी करें
अनुलग्नक डाउनलोड करें
सन्देश को पसन्द करें
सन्देश को पसन्द न करें
@@ -172,10 +173,10 @@
अवरोधित
सुझाव
स्क्रीनशॉट किया
- पहुॅचा नहिं जा सकता
- बडा सफलता!
+ पहुॅचा नहीं जा सकता
+ बड़ी सफलता!
छोड़ दें
- इसी बार्तालाप को छोड दें?
+ इस बार्तालाप को छोड दें?
बाहर निकालें
अवशेष ब्यबहारकारी
सीधे डाउनलोड करें
@@ -187,24 +188,24 @@
डाउनलोड जारी है…
मिडीया डाउनलोड हो रहा है
प्रोफाइल चित्र डाउनलोड करें
- फाइल डाउनलोड फोल्डर पे डाउनलोड हो गया!
+ फाइल डाउनलोड फोल्डर में डाउनलोड हो गया!
अज्ञात त्रुटि आई !!!
फोलडर बनाने में त्रुटि!
फ़ाइल डाउनलोड करने में त्रुटि
आप सिर्फ १०० पोस्टस एक बार में डाउनलोड कर सकते हैं. ज्यादा लोभी बनना हानिकारक हैं!
- उपयोगकर्ता नाम की प्रतिलिपि बनाएँ
- टिप्पणी की प्रतिलिपि बनाएँ
+ युज़रनेम कॉपी करें
+ टिप्पणी कॉपी करें
View comment likers
टिप्पणी का जवाब दें
टिप्पणी को पसन्द करें
टिप्पणी को पसन्द न करें
Translate comment
- टिप्पणी हटा दें
+ टिप्पणी हटाएँ
रिक्त टिप्पणी न करें!
- ब्यबहारकारी के नाम ढूंढने चाहते हैं?
- हाजट्याग को ढूंढने चाहते हैं?
+ युज़रनेम को ढूंढ़ना चाहते हैं?
+ हैशटैग को ढूंढ़ना चाहते हैं?
अनुयायी
- फ़ॉलो कर रहे हैं
+ आप फ़ॉलो कर रहे हैं
फलोअर्स & फलोइंग के तुलना
एक दुसरे को फोलो कर रहें हैं
फोलो नहीं कर रहा %s
@@ -223,12 +224,12 @@
इसी सार्वजनिक पोस्ट को भेजें...
यह एक गुप्त पोस्ट है! उन लोगों को बांटना जो उन्हें देख सकते हैं!
यह वर्ग रिक्त है...
- नया अद्यतन उपलब्ध! (%s)
- याद रखें: अगर आप f-droid से डाउनलोड किया है तो उसी से ही अपडेट करें! Github के लिये भी बही।
- बारइनष्टा को अद्दतन करने के लिए धन्यबाद!
+ नया संस्करण उपलब्ध है! (%s)
+ याद रखें: अगर आपने f-droid से डाउनलोड किया है तो उसी से ही अपडेट करें! Github के लिये भी बही।
+ बरिन्स्टा को अपडेट करने के लिए धन्यबाद!
एप में त्रुटि हुयी।
Oops.. the app crashed, but don\'t worry you can send error report to the developer to help him fix the issue. (:
- कार्यकलाप
+ गतिविधि
Story archive
Suggested users
चित्र का चयन करें
@@ -240,7 +241,7 @@
%d usertags
%d likes
You logged out before clicking this notification?!
- Feed
+ फ़ीड
Profile
More
DM
@@ -250,38 +251,38 @@
Mark as seen
Do not show again until next update
संस्करण
- Start screen
- General
- Theme
- Downloads
+ प्रारंभ पृष्ठ
+ सामान्य
+ थीम
+ डाउनलोड
Locale
- Account
+ खाता
Current login not working? Simply add the account again.
- Add account
+ खाता जोड़ें
License (English only)
- Visit our website
+ हमारी वेबसाइट पर जाएं
Get support, discuss, meet others, and have fun!
- See our source code on GitHub
+ Github मे सोर्स कोड देखें
Audit, star, report bugs, contribute, and have fun (again)!
Send feedback by email
Third-Party Attributions
The following third-party open-source libraries are used:
- Reminder
+ रिमाइन्डर
Please use this app responsibly. Downloaded images should only be used for purposes allowed by applicable laws.
- White
- Black
- Light theme
- Dark theme
- Barista
+ सफेद
+ काला
+ हल्के रंग का थीम
+ गहरे रंग की थीम
+ कॉफ़ी
Material Dark
Added to Favorites
Favorited
Favorite
- Accounts
- Hashtags
- Locations
- Unknown
- Removed from Favourites
+ खाते
+ हैशटैग्स
+ स्थान
+ अज्ञात
+ पसंदीदा से हटाया
Backup & Restore User Settings
Back up app settings, account login information, and/or favorites data to a plain text or encrypted backup file for later restoration.
If you\'re backing up login info, treat the file as confidential: Keep them somewhere safe!
@@ -290,11 +291,11 @@
File:
पासवर्ड दर्ज करें
Select a backup file (.zaai/.backup)
- Apply
- Save
- Caption
- Edit caption...
- Translate caption...
+ लागू करें
+ सेव करें
+ कैप्शन
+ कैप्शन का संपादन करें
+ कैप्शन का अनुवाद करें
Video player timeline
Liking…
Like unsuccessful
@@ -305,9 +306,9 @@
Removing…
Save unsuccessful
Remove unsuccessful
- Downloading…
+ डाउनलोड हो रहा है...
Download item %d of %d
- Delete
+ हटाएँ
Comment
Layout
Feed stories
@@ -320,12 +321,12 @@
Show names
Show avatars
Avatar size
- Corners
+ कोने
Show grid gap
Disable animation
Please wait for the current task to complete first!
Depending on user counts, this can take a while to load. Please be patient.
- Post not found!
+ पोस्ट नहीं मिली
No app found which opens urls
- %d like
@@ -339,5 +340,5 @@
- %s story
- %s stories
- Storage permission not granted!
+ स्टोरेज की अनुमति नहीं दी गई
diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml
index 8b3397f0..0d7b5841 100644
--- a/app/src/main/res/values-in/strings.xml
+++ b/app/src/main/res/values-in/strings.xml
@@ -1,10 +1,10 @@
Tentang
- Pesan Langsung
+ Pesan
Pengaturan
Unduh
- Cari Pengguna…
+ Cari pengguna…
Bandingkan
Galat menyalin tulisan
Tersalin!
@@ -52,6 +52,7 @@
%s Diikuti
Otomatis putar video
Selalu bisukan video
+ Always show post captions
Pilih apa yang akan diunduh
Foto ini saja
Semua foto
diff --git a/app/src/main/res/values-it/arrays.xml b/app/src/main/res/values-it/arrays.xml
index 53c9cf9e..5223841d 100755
--- a/app/src/main/res/values-it/arrays.xml
+++ b/app/src/main/res/values-it/arrays.xml
@@ -30,9 +30,9 @@
- Chiaro
- - Instagram default (Unread then read)
- - From newest to oldest
- - From oldest to newest
+ - Instagram predefinito (non letto quindi leggi)
+ - Dal più recente al più vecchio
+ - Dal più vecchio al più recente
- Nessuno
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 54b45f0e..413796e3 100755
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -32,7 +32,7 @@
Segna il DM come visto dopo la visualizzazione
Altri membri sapranno che lo hai visualizzato
Abilita notifiche attività
- Feed stories sort
+ Ordinamento storie feed
Errore caricando il profilo!\nProva ad accedere e cercare ancora.
Errore creando le cartelle di Download.
Salva alla cartella personalizzata
@@ -54,6 +54,7 @@
%s Seguiti
Riproduzione automatica video
Silenzia sempre i video
+ Mostra sempre le didascalie dei post
Seleziona cosa scaricare
Corrente
Album Intero
@@ -228,8 +229,8 @@
L\'app è crashata
Ops... l\'app è crashata, ma non preoccuparti, puoi inviare una segnalazione dell\'errore allo sviluppatore per aiutarlo a risolvere il problema. (:
Attività
- Story archive
- Suggested users
+ Archivio storie
+ Utenti suggeriti
Seleziona Immagine
Caricamento…
Hai:
@@ -281,11 +282,11 @@
Luoghi
Sconosciuto
Rimosso dai Preferiti
- Backup & Restore User Settings
- Back up app settings, account login information, and/or favorites data to a plain text or encrypted backup file for later restoration.
- If you\'re backing up login info, treat the file as confidential: Keep them somewhere safe!
- Create new backup file
- Restore from existing backup file
+ Salva & Ripristina Impostazioni Utente
+ Esegui il salvataggio delle impostazioni dell’app, delle informazioni di accesso dell\'account e/o dei dati preferiti in un semplice testo o in un file di backup crittografato per il ripristino successivo.
+ Se stai effettuando il salvataggio delle informazioni di accesso, tratta il file come confidenziale: Tienilo in qualche posto al sicuro!
+ Crea un nuovo file di salvataggio
+ Ripristina da file di salvataggio esistente
File:
Inserisci password
Selezionare un file di backup (.zaai/.backup)
@@ -309,7 +310,7 @@
Elimina
Commento
Disposizione
- Feed stories
+ Feed storie
Aprendo il post...
Condividi
Stile disposizione
@@ -335,8 +336,8 @@
- %d commenti
- - %s story
- - %s stories
+ - %s storia
+ - %s storie
Permesso di archiviazione non garantito!
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 1c8f4f85..80491b7a 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -52,6 +52,7 @@
%s フォロー中
動画を自動再生する
動画を常にミュートする
+ キャプションを常に表示
ダウンロード対象を選択
この画像
アルバム全体
@@ -112,7 +113,7 @@
相互フォロー
フォロー中
フォロワー
- Map
+ マップ
エクスポート
インポート
ログイン情報をエクスポート
@@ -166,14 +167,14 @@
再生済み
送信中…
ブロック済
- Suggested
+ おすすめ
スクリーンショット撮影済み
配信できません
成功!
退出する
チャットを終了しますか?
キックする
- Left users
+ 退出したユーザー
直接ダウンロードする
投稿を直接ダウンロード!
投稿を取得中
diff --git a/app/src/main/res/values-kn/strings.xml b/app/src/main/res/values-kn/strings.xml
index fa9471c4..76d46845 100644
--- a/app/src/main/res/values-kn/strings.xml
+++ b/app/src/main/res/values-kn/strings.xml
@@ -54,6 +54,7 @@
%s Following
Autoplay videos
Always mute videos
+ Always show post captions
Select what to download
Current
Whole Album
diff --git a/app/src/main/res/values-mk/arrays.xml b/app/src/main/res/values-mk/arrays.xml
index 04217584..8590e3ca 100644
--- a/app/src/main/res/values-mk/arrays.xml
+++ b/app/src/main/res/values-mk/arrays.xml
@@ -32,13 +32,13 @@
- Стандардно (Од непрочитано па прочитано)
- Од најнови до најстари
- - Од најнови до најстари
+ - Од најстари до најнови
- Ништо
- \@
- на
- - уклучи
+ - на
- \|
- -
diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml
index 1c20d80a..78a0491f 100644
--- a/app/src/main/res/values-mk/strings.xml
+++ b/app/src/main/res/values-mk/strings.xml
@@ -1,6 +1,6 @@
- За Проектот
+ За
Директни Пораки
Опции
Превземи
@@ -25,23 +25,23 @@
Коментари
Активности
Важни Приказни: %s
- Провери за надоградба при почеток на апликацијата
- Превземи постови во фолдерот со кориснички имиња
- Означи ги приказните како видени после нивно отварање
+ Провери за ажурирање
+ Превземи објави во папката со кориснички имиња
+ Означи ги приказните како видени
Авторот на приказната ќе знае дека сте ја погледнале приказната
- Означи порака како видена при отварање
- Другите членови ќе знаат дека си ја виделе содржината на пораката
+ Означи порака како видена
+ Другите членови ќе знаат дека сте ја виделе содржината на пораката
Овозможи нотификации
Сортирање на објави
- Фатална Грека при отварање на профилот!\nПробајте повторно да се логирате и да пребарате.
- Фатална Грешка при креирање на фолдер(и).
- Зачувај во сопствена папка
- Одбери фолдер
+ Грешка при отварање на профилот!\nПробајте повторно.
+ Фатална Грешка при креирање на папка(и).
+ Зачувај во друга папка
+ Одбери папка
Тема
- Влијае само на корисниците кои се логирани:
+ Влијае само на корисниците кои се најавени:
Влијае на анонимните корисници:
Користи Instadp за профили со висока резолуција
- Експорт/Импорт
+ Импорт/Експорт
Јазик
- %s Објава
@@ -51,10 +51,11 @@
- %s Следач
- %s Следачи
- %s Следбеници
+ %s Следиш
Autoplay на видеа
Секогаш гледај видеа без звук
- Селектирај што сакаш да превземеш
+ Секогаш прикажувај наслов
+ Одбери што сакаш да превземеш
Тековен
Цел Албум
Прикажи приказни
@@ -70,7 +71,7 @@
Одговор…
Одговарњето беше успешно!
- - %d одговор со просек од %s
+ - %d одговор со просек %s
- %d одговори со просек %s
Твојот одговор: %s
@@ -80,23 +81,23 @@
Лизгач
Вие веќе одговоривте!
Спомнувања
- Овoј корисник има приватен профил
+ Корисникот има приватен профил
Наме да можете да гледате објави и приказни од овој корисник ако го Одследите! Дали сте сигурни?
- Можете да се логирате преку Повеќе -> Акаунт кој се наоѓа долу десно или можете да гледате Отворени акаунти без да се логирате!
+ Можете да се најавите преку Повеќе -> Корисничата сметка која се наоѓа долу десно или само можете да гледате Отворени профили без да се логирате!
Можете да лизгате со прстот лево/десно за да се движите помеѓу опции, или пребарајте некој корисник долу!
Овој корисник нема објави
Не постојат такви објави!
- Инсталирана верзија: v%s
+ Сегашна верзија: v%s
прочитај повеќе…
- Логирај се
- Одлогирај се
+ Најави се
+ Одјави се
Пребарувај инстаграм анонимно
Отстрани ги сите кориснички сметки
Ова ќе ги отстране сите кориснички сметки од апликацијата!\n За да отстраните само една корисничка сметка држете со прстот на сметката\n Дали сакате да продолжите?
Формат на датум
Лајкнато
Зачувано
- Тагнато
+ Означен
Порака
Лајк
Дислајк
@@ -106,32 +107,32 @@
Одследи
Омилен
Одомилен
- Блокни
+ Блокирај
Одблокни
Ограничи
Одограничи
Копирај био
Преведи био
Блиски
- Оние кои ги следиш
+ Следиш
Следач
- Мапа
+ Карта
Експорт
Импорт
- Експортни Логирање
- Акаунт
+ Експортни Најава
+ Корисничка сметка
Подесувања
Омилени
Импортирај Опции
- Импортирај Логирање
- Импортирај Акаунти
+ Импортирај Најава
+ Импортирај кориснички сметки
Импортирај Омилени
Успешно импортирање!
Неуспешно Импортирање!
Успешно експортиање!
Неуспешно експортиање!
Полето за лозинка е празно!
- Рефреширај
+ Обнови
Превземи колачиња
Десктоп изглед
Користи свој формат
@@ -139,8 +140,8 @@
Формат на време
Формат на датум
Преглед
- Премести ги местата на датата и времето
- Неможе да избришите сметка во корист
+ Замени ги местата на датумот и времето
+ Неможе да избришите сметка која се користи
Дали сте сигурни дека сакате да избришите \'%s\'?
Отвори Профил
Погледни приказна
@@ -178,20 +179,20 @@
Кикни
Поранешни корисници
Превземи директно
- Превземи објави од твојот смарт-телефон!
+ Превземи објави во твојот телефон!
Се превземаат објава(ви)
- Ве молиме одобрете ги дозволите и пробајте повторно да превземите!
+ Ве молиме дозволете ги барањата и пробајте повторно да превземите!
Превзмањето започна
- Превземањето е готово
+ Преземањето е завршено
Превземање на Објава…
Се превзема медиум
Се превзема профилната слика
- Фајлот беше превземен во фолдерот Downloads!
+ Фајлот беше превземен во папката Downloads!
Непозната Фатална Грешка!!!
- Фатална грешка при креирање фолдер!
+ Фатална грешка при креирање папка!
Фатална грешка при превзамање фајл
Можете само 100 постови наеднаш да превземите. Не бидете алчни!
- Копирај username
+ Копирај корисничко име
Копирај Коментар
Прегледај лајкови на коментар
Одговори на коментар
@@ -238,26 +239,26 @@
%d лајкови на коментари
%d корисничи тагови
%d лајкови
- Се одлогиравте пред да кликните на нотификацијата?!
+ Се одјавивте пред да притисните на нотификацијата?!
Објави
Профил
Повеќе
Пораки
%d селктирано
- Успешно се одлогиравте!
+ Успешно се одјавивте!
Информации
- Означи како видено(seen)
- Прескокни надоградување
+ Означи како видено
+ Прескокни ажурирање
Верзија
Почетна страна
- Генерално
- Тема
+ Општо
+ Изглед
Превземања
Јазик
Сметка
- Сегашното логирање не работи? Едноставно само релогирајте се.
- Додади сметка
- Лиценца (English only)
+ Сегашното најавување не работи? Пробајте повторно.
+ Додадете сметка
+ Лиценца (само на Англиски)
Посете ја нашата веб-страна
Пронајдете подршка, дискутирајте, запознајте се со други, и забавувајте се!
Погледнете го изворниот код на GitHub
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 8f1b8d04..413f734d 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -54,6 +54,7 @@
%s Volgend
Video\'s automatisch afspelen
Video\'s altijd dempen
+ Always show post captions
Selecteer wat je wil downloaden
Huidige
Volledige Album
diff --git a/app/src/main/res/values-or/strings.xml b/app/src/main/res/values-or/strings.xml
index 12c423a6..1e4c9253 100644
--- a/app/src/main/res/values-or/strings.xml
+++ b/app/src/main/res/values-or/strings.xml
@@ -54,6 +54,7 @@
%s ଅନୁସରଣ କରୁଛନ୍ତି
ଭିଡ଼ିଓ ସ୍ୱତଃ ଚାଲୁ କର
ସର୍ବଦା ଭିଡ଼ିଓକୁ ଶବ୍ଦହୀନ ରଖ
+ Always show post captions
ଡାଉନଲୋଡ଼ କରିବା ପାଇଁ ଚୟନ କରନ୍ତୁ
ସମ୍ପ୍ରତି
ସମସ୍ତ ଆଲବମ
diff --git a/app/src/main/res/values-pl/arrays.xml b/app/src/main/res/values-pl/arrays.xml
index 8eadec1f..b60ed297 100644
--- a/app/src/main/res/values-pl/arrays.xml
+++ b/app/src/main/res/values-pl/arrays.xml
@@ -30,9 +30,9 @@
- Jasny
- - Instagram default (Unread then read)
- - From newest to oldest
- - From oldest to newest
+ - Domyślne ustawienia
+ - Od najnowszych do najstarszych
+ - Od najstarszych do najnowszych
- Brak
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 98731019..ce85a0cb 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -32,7 +32,7 @@
Oznacz wiadomość jako przeczytaną
Inni użytkownicy będą wiedzieli, że to wyświetliłeś
Włącz powiadomienia o aktywności
- Feed stories sort
+ Sortowanie relacji
Błąd ładowania profilu!\nSpróbuj zalogować się i wyszukać ponownie.
Błąd podczas tworzenia folderu(ów) pobierania.
Zapisz w folderze niestandardowym
@@ -58,6 +58,7 @@
%s obserwowanych
Automatyczne odtwarzanie filmów
Zawsze wyciszaj filmy
+ Zawsze pokazuj napisy postów
Wybierz, co chcesz pobrać
Bieżący
Cały album
@@ -234,8 +235,8 @@
Aplikacja uległa awarii
Ups.. aplikacja uległa awarii, ale nie martw się, możesz wysłać raport o błędzie do dewelopera, aby pomóc mu rozwiązać ten problem (:
Aktywność
- Story archive
- Suggested users
+ Archiwum relacji
+ Proponowani użytkownicy
Wybierz obraz
Przesyłanie…
Masz:
@@ -248,7 +249,7 @@
Aktualności
Profil
Więcej
- Wiadomość bezpośrednia
+ PW
%d wybranych
Wylogowano pomyślnie!
Informacje
@@ -315,7 +316,7 @@
Usuń
Komentarz
Układ
- Feed stories
+ Relacje
Otwieranie wpisu...
Udostępnij
Styl układu
@@ -345,10 +346,10 @@
- %d komentarzy
- - %s story
- - %s stories
- - %s stories
- - %s stories
+ - %s relacja
+ - %s relacji
+ - %s relacji
+ - %s relacji
Nie przyznano uprawnień do pamięci!
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index b1110631..37401860 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -54,6 +54,7 @@
%s Seguindo
Reprodução automática de vídeos
Sempre silenciar vídeos
+ Sempre mostrar as legendas das publicações
Selecionar o que baixar
Atual
Álbum Inteiro
@@ -266,7 +267,7 @@
Atribuições de terceiros
São usadas as seguintes bibliotecas de código aberto de terceiros:
Lembrete
- Por favor, use este app com responsabilidade. Imagens baixadas devem ser usadas apenas para fins permitidos pelas leis aplicáveis.
+ Por favor, use este aplicativo de forma responsável. As imagens baixadas só devem ser usadas para fins permitidos pelas leis aplicáveis.
Branco
Preto
Tema claro
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 127c8561..e406aa06 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -58,6 +58,7 @@
%s Последователей
Автовоспроизведение видео
Всегда заглушать видео
+ Всегда отображать подписи к постам
Выберите, что скачивать
Текущая
Целый альбом
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index 15a7eb30..64868a28 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -58,6 +58,7 @@
%s Sleduje
Automaticky prehrávať videá
Vždy stíšiť videá
+ Vždy zobraziť popis príspevku
Vybrať čo stiahnuť
Aktuálne
Celý album
diff --git a/app/src/main/res/values-tr/arrays.xml b/app/src/main/res/values-tr/arrays.xml
index 05352c26..1930ed22 100644
--- a/app/src/main/res/values-tr/arrays.xml
+++ b/app/src/main/res/values-tr/arrays.xml
@@ -30,9 +30,9 @@
- Açık
- - Instagram default (Unread then read)
- - From newest to oldest
- - From oldest to newest
+ - Instagram varsayılanı (önce görülmemişler sonra görülmüşler)
+ - Yeniden eskiye
+ - Eskiden yeniye
- Hiçbiri
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index 9a3abe08..8ec4ea5f 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -32,7 +32,7 @@
DM\'leri gördükten sonra görüldü olarak işaretle
Diğerleri gördüğünüzü bilecek
Hareketler için bildirimleri aktifleştir
- Feed stories sort
+ Hikaye akışını sınıflandır
Profili yüklerken hata oluştu!\nGiriş yapıp tekrar deneyin.
İndirilenler klasörü(leri) oluşturulamadı.
Şu klasöre kaydet:
@@ -54,6 +54,7 @@
%s Takip
Videoları otomatik oynat
Videoları her zaman sustur
+ Gönderi başlıklarını her zaman göster
İndirmek için seçin
Güncel
Tüm Albüm
@@ -228,8 +229,8 @@
Uygulama çöktü
Amanın.. uygulama çöktü, ama telaşlanma. Geliştiriciye hata raporu yollayarak sorunun çözülmesine yardımcı olabilirsin. (:
Hareketler
- Story archive
- Suggested users
+ Hikaye arşivi
+ Önerilen kullanıcılar
Resim Seç
Yükleniyor…
Sahip olduğun:
@@ -309,7 +310,7 @@
Sil
Yorum yap
Yerleşim
- Feed stories
+ Hikaye akışı
Gönderi açılıyor...
Paylaş
Yerleşim biçimi
@@ -335,8 +336,8 @@
- %d yorum
- - %s story
- - %s stories
+ - %s hikaye
+ - %s hikaye
Depolama izni verilmedi!
diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml
index c982d455..12ff297c 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/app/src/main/res/values-vi/strings.xml
@@ -52,6 +52,7 @@
%s Following
Tự động phát video
Luôn luôn tắt âm thanh video
+ Always show post captions
Chọn cái để tải xuống
Hiện tại
Cả album
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 23924d65..877382cd 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -52,6 +52,7 @@
%s 关注
自动播放视频
视频默认静音
+ 总是显示帖子标题
选择要下载的
当前照片
整个图集
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 099c45db..87d35a40 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -52,6 +52,7 @@
%s 追蹤中
自動播放影片
永遠自動靜音影片
+ Always show post captions
選擇要下載的內容
當前照片
整個相簿
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 3b5e8a70..49bcf692 100755
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -22,6 +22,8 @@
- Nederlands
- Slovenčina
- 日本語
+ - Ελληνικά
+ - Euskara
- Auto / Follow System
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index cb7e3632..dd7decc5 100755
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -39,7 +39,7 @@
Error loading profile! Is the username valid? If so, you may be ratelimited.
Error loading profile! Is the username valid? Or did they block you?
Error loading hashtag! Is the name valid?
- Error loading hashtag! Is the URL valid?
+ Error loading location! Is the URL valid?
Error creating Download folder(s).
Save to custom folder
Select folder
@@ -166,7 +166,7 @@
Replied to a story
Reacted on a story
Mentioned in a story
- Unsupported message type
+ Unsupported message type
Open link
Copy text
Download attachment
@@ -174,7 +174,24 @@
Unlike message
Unsend message
View author profile
- Post shared from %s
+ %s shared a post by @%s
+ %s shared an image
+ %s shared a video
+ %s sent a message
+ %s shared a gif
+ %s shared a profile: @%s
+ %s shared a location: %s
+ %s shared a story highlight by @%s
+ %s shared a story by @%s
+ %s sent a voice message
+ %s shared a clip by @%s
+ %s shared an IGTV video by @%s
+ You replied to their story: %s
+ %s replied to your story: %s
+ You reacted to their story: %s
+ %s reacted to your story: %s
+ You mentioned @%s in your story
+ %s mentioned you in their story
Unknown media type
Media expired!
Delivered
@@ -186,6 +203,9 @@
Suggested
Screenshotted
Cannot deliver
+ Message...
+ Press and hold to record audio
+ Updating...
Great success!
Leave chat
Leave this chat?
@@ -410,10 +430,32 @@
Reply
Tap to remove
Forward
+ You forwarded a message
+ Forwarded a message
Add
Send
Replying to yourself
Replying to %s
+ You replied to yourself
+ You replied
+ You replied to %s
+ Replied to %s
+ Replied to you
+ Replied to themself
+ You reacted to their story
+ Reacted to your story
+ You mentioned them in your story
+ Mentioned you in their story
+ You replied to their story
+ Replied to your story
+ Image has expired
+ Image will expire when seen
+ Video has expired
+ Video will expire when seen
+ Message has expired
+ Message will expire when seen
+ @%s\'s story
+ @%s\'s story highlight
Photo
Video
Voice message
@@ -431,5 +473,6 @@
Accept request from %1s (%2s)?
Decline
Accept
+ You
No pending requests