";
}
@Override
@@ -307,13 +309,13 @@ public class MessagesDownloader{
}
String chatAction = (message.chat_action != null) ? getHtmlForChatAction(message.chat_action) : "";
- String attaches = (message.attachments.size() > 0) ? "
Вложения: " + getHtmlForAttach(message.attachments) + "
" : "";
+ String attaches = (message.attachments.size() > 0) ? "
" + getString("attachments") + ": " + getHtmlForAttach(message.attachments) + "
" : "";
String reply = (message.reply_message != null) ? provideReply(message.reply_message) : "";
String fwdMessages = (message.fwd_messages.size() > 0) ? provideForwardMessages(message.fwd_messages) : "";
String userLink = (user.isGroup ? "club" : "id") + user.id;
return "
" +
- "
от " + user.firstName + " " + user.lastName + " " + formatTime(message.date) + "
" + // TODO photo100
+ "
" + getString("from_lower") + " " + user.firstName + " " + user.lastName + " " + formatTime(message.date) + "
" + // TODO photo100
"
" + mentionsReplace(message.text) + "
" +
geoPosition +
chatAction +
@@ -336,12 +338,12 @@ public class MessagesDownloader{
if (fwdMessages != null) {
var length = fwdMessages.length();
if (length > 0) text = length + " " + pluralMsg(length);
- } else text = "Вложение";
+ } else text = getString("attachment"); // Вложение
}
return "
" +
"" +
- "" +
+ "" +
"
" + user.firstName + " " + user.lastName + ": " + text + "
" +
"
" +
"";
@@ -382,7 +384,7 @@ public class MessagesDownloader{
JSONObject reply_message = fwd_message.optJSONObject("reply_message");
- var attachesHtml = (attaches.size() > 0) ? "Вложения: " + getHtmlForAttach(attaches) : "";
+ var attachesHtml = (attaches.size() > 0) ? getString("attachments") + ": " + getHtmlForAttach(attaches) : "";
var replyHtml = (reply_message != null) ? provideReply(reply_message) : "";
var fwdsHtml = (fwdsMsg.size() > 0) ? provideForwardMessages(fwdsMsg) : ""; // recursion XD :>
@@ -405,7 +407,7 @@ public class MessagesDownloader{
}
private String pluralMsg(int count) {
- String[] plurals = {"сообщение", "сообщения", "сообщений"};
+ String[] plurals = getArray("msg_plurals");
var hundredModulo = count % 100;
var tenModulo = count % 10;
@@ -424,22 +426,22 @@ public class MessagesDownloader{
switch(type) {
case "chat_photo_update":
- htmlAction.append("Обновил фотографию беседы");
+ htmlAction.append(getString("chat_export_avatar_update"));
break;
case "chat_photo_remove":
- htmlAction.append("Удалил фотографию беседы");
+ htmlAction.append(getString("chat_export_avatar_remove"));
break;
case "chat_create":
var name = action.optString("text");
- htmlAction.append("Создал беседу").append((!name.isEmpty()) ? " с названием \"" + name + "\"" : "");
+ htmlAction.append(getString("chat_export_chat_created")).append((!name.isEmpty()) ? " \"" + name + "\"" : "");
break;
case "chat_title_update":
var newName = action.optString("text");
- htmlAction.append("Сменил название беседы").append((!newName.isEmpty()) ? " на \"" + newName : "\"");
+ htmlAction.append(getString("chat_export_name_changed")).append((!newName.isEmpty()) ? (" " + getString("chat_export_to") + " \"" + newName + "\"") : "");
break;
case "chat_invite_user":
var newUserId = action.optInt("member_id");
- htmlAction.append("Добавил ").append((newUserId > 0) ? "пользователя" : "группу");
+ htmlAction.append(getString("chat_export_user_added") + " ").append((newUserId > 0) ? getString("chat_export_type_user") : getString("chat_export_type_group"));
if (newUserId != 0) {
var userLink = ((newUserId < 0) ? "club" : "id") + Math.abs(newUserId);
htmlAction.append("
@").append(userLink).append("");
@@ -447,7 +449,7 @@ public class MessagesDownloader{
break;
case "chat_kick_user":
var removedUserId = action.optInt("member_id");
- htmlAction.append("Исключил ").append((removedUserId > 0) ? "пользователя" : "группу");
+ htmlAction.append(getString("chat_export_user_kicked") + " ").append((removedUserId > 0) ? getString("chat_export_type_user") : getString("chat_export_type_group"));
if (removedUserId != 0) {
var userLink = ((removedUserId < 0) ? "club" : "id") + Math.abs(removedUserId);
htmlAction.append("
@").append(userLink).append("");
@@ -455,22 +457,22 @@ public class MessagesDownloader{
break;
case "chat_pin_message":
var message = action.optString("message");
- htmlAction.append("Закрепил сообщение").append((!message.isEmpty()) ? (" с текстом: \"" + message + "\"") : "");
+ htmlAction.append(getString("chat_export_msg_pinned")).append((!message.isEmpty()) ? (" \"" + message + "\"") : "");
break;
case "chat_unpin_message":
- htmlAction.append("Открепил сообщение");
+ htmlAction.append(getString("chat_export_msg_unpinned"));
break;
case "chat_invite_user_by_link":
- htmlAction.append("Вступил в беседу по ссылке");
+ htmlAction.append(getString("chat_export_join_by_link"));
break;
case "chat_screenshot":
- htmlAction.append("Сделал скриншот беседы");
+ htmlAction.append(getString("chat_export_chat_screenshot"));
break;
case "custom":
htmlAction.append(action.optString("message"));
break;
default:
- htmlAction.append("Действие не поддерживается (").append(type).append(")");
+ htmlAction.append(getString("vkim_msg_unsupported") + " (").append(type).append(")");
break;
}
@@ -489,40 +491,40 @@ public class MessagesDownloader{
switch(type) { // market_album is not supported
case "photo":
var sizes = item.getJSONArray("sizes");
- rs.append("
фотография");
+ rs.append("
").append(getString("chat_export_type_photo")).append("");
break;
case "doc":
- rs.append("
документ");
+ rs.append("
").append(getString("chat_export_type_doc")).append("");
break;
case "link":
- rs.append("
ссылка");
+ rs.append("
").append(getString("chat_export_type_link")).append("");
break;
case "wall":
- rs.append("
запись на стене");
+ rs.append("
").append(getString("chat_export_type_wallpost")).append("");
break;
case "sticker":
rs.append("
.append(item.getJSONArray("images").getJSONObject(1).getString("url")).append("\"/)
");
break;
case "audio_message":
- rs.append("
голосовое сообщение");
+ rs.append("
").append(getString("chat_export_type_audiomsg")).append("");
break;
case "audio":
- rs.append("аудиозапись (").append(item.optString("artist")).append(" — ").append(item.optString("title")).append(")");
+ rs.append(getString("chat_export_type_audio")).append(" (").append(item.optString("artist")).append(" — ").append(item.optString("title")).append(")");
break;
case "video":
- rs.append("видеозапись ( ").append(getVideoHtml(item.optJSONObject("files"))).append(")");
+ rs.append(getString("chat_export_type_video")).append(" (").append(getVideoHtml(item.optJSONObject("files"))).append(")");
break;
case "wall_reply":
var link = "https://" + VK_DOMAIN + "/wall" + item.optString("owner_id") + "_" + item.optString("post_id") + "?reply=" + item.optString("id");
- rs.append("
комментарий на стене");
+ rs.append("
").append(getString("chat_export_type_wallreply")).append("");
break;
case "story":
var story_link = "https://" + VK_DOMAIN + "/story" + item.optString("owner_id") + "_" + item.optString("id");
- rs.append("
история");
+ rs.append("
").append(getString("chat_export_type_story")).append("");
break;
case "podcast":
var podcast_link = "https://" + VK_DOMAIN + "/podcast" + item.optString("owner_id") + "_" + item.optString("id");
- rs.append("
подкаст");
+ rs.append("
").append(getString("chat_export_type_podcast")).append("");
break;
case "gift":
rs.append("
.append(item.optString("thumb_96")).append("\"/)
");
@@ -532,25 +534,25 @@ public class MessagesDownloader{
if (app != null) {
var miniapp_link = "https://" + VK_DOMAIN + "/app" + app.optString("id");
- rs.append("
мини-приложение");
+ rs.append("
").append(getString("chat_export_type_miniapp")).append("");
break;
}
- rs.append("ошибка");
+ rs.append(getString("chat_export_error"));
break;
case "audio_playlist":
var playlist_link = "https://" + VK_DOMAIN + "/music/album/" + item.optString("owner_id") + "_" + item.optString("id") + "_" + item.optString("access_key");
- rs.append("
плейлист (").append(item.optString("title")).append(")");
+ rs.append("
").append(getString("chat_export_type_playlist")).append(" (").append(item.optString("title")).append(")");
break;
case "poll":
- rs.append((item.optBoolean("anonymous") ? "анонимный" : "публичный")).append(" опрос ").append(getPollHtml(item));
+ rs.append(getString(item.optBoolean("anonymous") ? "chat_export_poll_anon" : "chat_export_poll_publ")).append(" ").append(getString("chat_export_type_poll")).append(" ").append(getPollHtml(item));
break;
case "market":
var market_item_link = "https://" + VK_DOMAIN + "/market" + item.optString("owner_id") + "_" + item.optString("id");
- rs.append("
товар");
+ rs.append("
").append(getString("chat_export_type_market")).append("");
break;
default:
- rs.append("не поддерживается (").append(type).append(")");
+ rs.append(getString("vkim_msg_unsupported")).append(" (").append(type).append(")");
break;
}
@@ -575,13 +577,13 @@ public class MessagesDownloader{
pollHtml.append("
").append(jsonObject.optString("text")).append(" · ").append(jsonObject.optString("votes")).append(" (").append(jsonObject.optString("rate")).append("%)
");
}
- pollHtml.append("
Проголосовало ").append(poll.optString("votes")).append(" чел.
");
+ pollHtml.append("
").append(getString("chat_export_poll_voted")).append(" ").append(poll.optString("votes")).append(" ").append(getString("chat_export_users_name")).append("
");
return pollHtml.append("
").toString();
}
private static String getVideoHtml(JSONObject files) throws JSONException {
- if (files == null) return "ссылки отсутствуют";
+ if (files == null) return getString("chat_export_video_nolinks");
Iterator< ? > keys = files.keys();
StringBuilder videoHtml = new StringBuilder();
diff --git a/app/src/main/java/ru/vtosters/lite/music/Scrobbler.java b/app/src/main/java/ru/vtosters/lite/music/Scrobbler.java
index fc9b94711..44337e43f 100644
--- a/app/src/main/java/ru/vtosters/lite/music/Scrobbler.java
+++ b/app/src/main/java/ru/vtosters/lite/music/Scrobbler.java
@@ -120,7 +120,7 @@ public class Scrobbler {
@Override
public void onFailure(NetCall call, IOException e) {
Log.d("Scrobbler", "Auth failed", e);
- sendToast(AndroidUtils.getString("lastfm_auth_error"));
+ sendToast(AndroidUtils.getString("auth_error_vtl"));
}
@Override
diff --git a/app/src/main/java/ru/vtosters/lite/ui/dialogs/ThemeChanging.java b/app/src/main/java/ru/vtosters/lite/ui/dialogs/ThemeChanging.java
index 6889428e5..c22ff6f36 100644
--- a/app/src/main/java/ru/vtosters/lite/ui/dialogs/ThemeChanging.java
+++ b/app/src/main/java/ru/vtosters/lite/ui/dialogs/ThemeChanging.java
@@ -1,5 +1,6 @@
package ru.vtosters.lite.ui.dialogs;
import static ru.vtosters.lite.utils.AndroidUtils.edit;
+import static ru.vtosters.lite.utils.AndroidUtils.getString;
import static ru.vtosters.lite.utils.Preferences.getBoolValue;
import android.app.Activity;
@@ -13,17 +14,15 @@ public class ThemeChanging{
public static void changeTheme(Activity activity, float[] f){
if (getBoolValue("systemtheme", true)) {
new VkAlertDialog.Builder(activity)
- .setTitle("Внимание!")
- .setMessage("У вас включена системная тема \n" +
- "При переключении темы системная тема будет отключена \n\n" +
- "Вы действительно хотите отключить её?")
+ .setTitle(getString("warning"))
+ .setMessage(getString("system_theme_warning"))
.setCancelable(false)
- .setPositiveButton("Отключить", (dialogInterface, i) -> {
+ .setPositiveButton(getString("proxy_disable"), (dialogInterface, i) -> { // Отключить
edit().putBoolean("systemtheme", false).commit();
VKThemeHelper.b(activity, f);
VKUIHook.clearWebCache();
})
- .setNeutralButton("Отмена", null)
+ .setNeutralButton(getString("cancel"), null)
.show();
} else {
VKThemeHelper.b(activity, f);
diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java
index 796e8f0f4..945552bd7 100644
--- a/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java
+++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/MediaFragment.java
@@ -210,7 +210,7 @@ public class MediaFragment extends MaterialPreferenceToolbarFragment {
private void deleteVideoHistoryDialog(Context context){
VkAlertDialog.Builder builder = new VkAlertDialog.Builder(context);
builder.setTitle(AndroidUtils.getString("warning"));
- builder.setMessage("Вы действительно хотите очистить историю видео?");
+ builder.setMessage(AndroidUtils.getString("delete_video_history_confirm"));
builder.setCancelable(false);
builder.setPositiveButton(AndroidUtils.getString("yes"), (dialogInterface, i) -> {
deleteVideoHistory();
diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java
index 44a694476..4d5acb444 100644
--- a/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java
+++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/OtherFragment.java
@@ -309,7 +309,7 @@ public class OtherFragment extends MaterialPreferenceToolbarFragment {
private void delprefs(Context context) {
VkAlertDialog.Builder builder = new VkAlertDialog.Builder(context);
builder.setTitle(AndroidUtils.getString("warning"));
- builder.setMessage("Вы действительно хотите сбросить настройки?");
+ builder.setMessage(AndroidUtils.getString("settings_reset_confirm"));
builder.setCancelable(false);
builder.setPositiveButton(AndroidUtils.getString("yes"), (dialogInterface, i) -> {
deletePrefs();
diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java
index 67baf6d71..d015b0986 100644
--- a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java
+++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java
@@ -179,19 +179,17 @@ public class VTSettings extends MaterialPreferenceToolbarFragment {
if (Preferences.systemtheme()) {
new VkAlertDialog.Builder(requireActivity())
- .setTitle("Внимание!")
- .setMessage("У вас включена системная тема \n" +
- "При переключении темы системная тема будет отключена \n\n" +
- "Вы действительно хотите отключить её?")
+ .setTitle(AndroidUtils.getString("warning"))
+ .setMessage(AndroidUtils.getString("system_theme_warning"))
.setCancelable(false)
- .setPositiveButton("Отключить", (dialogInterface, i) -> {
+ .setPositiveButton(AndroidUtils.getString("proxy_disable"), (dialogInterface, i) -> { // Отключить
switchPreference.setChecked(isDarkTheme);
((MaterialSwitchPreference) findPreference("systemtheme")).setChecked(false);
requireActivity().runOnUiThread(() -> {
switchTheme(isDarkTheme);
});
})
- .setNeutralButton("Отмена", null)
+ .setNeutralButton(AndroidUtils.getString("cancel"), null)
.show();
return false;
}
diff --git a/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperMenuFragment.java b/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperMenuFragment.java
index bc87313a0..6ff64c0b1 100644
--- a/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperMenuFragment.java
+++ b/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpaperMenuFragment.java
@@ -157,7 +157,7 @@ public class WallpaperMenuFragment extends MaterialPreferenceToolbarFragment{
});
}
- PreferencesUtil.addMaterialSwitchPreference(this, "compresswp", "Сжимать обои", "Значительно ускоряет открытие чатов", null, true, (preference, o) -> {
+ PreferencesUtil.addMaterialSwitchPreference(this, "compresswp", AndroidUtils.getString("compress_wallpaper_title"), AndroidUtils.getString("compress_wallpaper_summ"), null, true, (preference, o) -> {
boolean value = (boolean) o;
edit().putBoolean("compresswp", value).commit();
requestUpdateWallpaper();
diff --git a/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpapersHooks.java b/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpapersHooks.java
index 9c5839214..249b10e82 100644
--- a/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpapersHooks.java
+++ b/app/src/main/java/ru/vtosters/lite/ui/wallpapers/WallpapersHooks.java
@@ -4,6 +4,7 @@ import static com.vk.im.engine.h.im_bg_chat;
import static ru.vtosters.lite.ui.wallpapers.ImageFilters.getFilteredDrawable;
import static ru.vtosters.lite.utils.AndroidUtils.getGlobalContext;
import static ru.vtosters.lite.utils.AndroidUtils.getPreferences;
+import static ru.vtosters.lite.utils.AndroidUtils.getString;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import static ru.vtosters.lite.utils.Preferences.getBoolValue;
@@ -71,7 +72,7 @@ public class WallpapersHooks{
private static Boolean eligibleWallpaperFile(File file){
if (file.length() >= 6291456) {
- sendToast("Размер файла превышает лимит 6 MB");
+ sendToast(getString("wallpaper_size_limit"));
removeWallpaper();
return false;
} else {
@@ -131,13 +132,13 @@ public class WallpapersHooks{
String radius = getPreferences().getString("msg_blur_radius", "disabled");
switch(radius) {
case "low":
- return AndroidUtils.getString("wallpapers_low");
+ return getString("wallpapers_low");
case "med":
- return AndroidUtils.getString("wallpapers_med");
+ return getString("wallpapers_med");
case "high":
- return AndroidUtils.getString("wallpapers_high");
+ return getString("wallpapers_high");
default:
- return AndroidUtils.getString("wallpapers_disabled");
+ return getString("wallpapers_disabled");
}
}
@@ -145,11 +146,11 @@ public class WallpapersHooks{
String radius = getPreferences().getString("msg_dim", "disabled");
switch(radius) {
case "dim_black":
- return AndroidUtils.getString("wallpapers_dim_black");
+ return getString("wallpapers_dim_black");
case "dim_white":
- return AndroidUtils.getString("wallpapers_dim_white");
+ return getString("wallpapers_dim_white");
default:
- return AndroidUtils.getString("wallpapers_disabled");
+ return getString("wallpapers_disabled");
}
}
@@ -157,13 +158,13 @@ public class WallpapersHooks{
String radius = getPreferences().getString("msg_mosaic", "disabled");
switch(radius) {
case "low":
- return AndroidUtils.getString("wallpapers_low");
+ return getString("wallpapers_low");
case "med":
- return AndroidUtils.getString("wallpapers_med");
+ return getString("wallpapers_med");
case "high":
- return AndroidUtils.getString("wallpapers_high");
+ return getString("wallpapers_high");
default:
- return AndroidUtils.getString("wallpapers_disabled");
+ return getString("wallpapers_disabled");
}
}
diff --git a/app/src/main/java/ru/vtosters/lite/utils/ContactsUtils.java b/app/src/main/java/ru/vtosters/lite/utils/ContactsUtils.java
index 1ab2472a5..8e028a677 100644
--- a/app/src/main/java/ru/vtosters/lite/utils/ContactsUtils.java
+++ b/app/src/main/java/ru/vtosters/lite/utils/ContactsUtils.java
@@ -4,6 +4,7 @@ import static androidx.core.app.ActivityCompat.requestPermissions;
import static ru.vtosters.lite.net.Request.makeRequest;
import static ru.vtosters.lite.proxy.ProxyUtils.getApi;
import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken;
+import static ru.vtosters.lite.utils.AndroidUtils.getString;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import android.Manifest;
@@ -39,7 +40,7 @@ public class ContactsUtils{
Log.d("ContactsUtils", "Result: " + mainJson + ", enabled sync: " + enabled);
} catch (JSONException e) {
Log.d("ContactsUtils", e.getMessage());
- sendToast("Ошибка установки контактов");
+ sendToast(getString("contact_sync_error"));
}
});
}
@@ -47,7 +48,7 @@ public class ContactsUtils{
public static void uploadContacts(Context ctx){
try {
if (ContextCompat.checkSelfPermission(ctx, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
- sendToast("Для работы данной функции необходимо выдать право на чтение контактов");
+ sendToast(getString("contact_permission_toast"));
requestPermissions(LifecycleUtils.getCurrentActivity(), new String[] {Manifest.permission.READ_CONTACTS}, 11111);
} else {
var account = VKAuthUtils.a.a(VKAccountManager.d().Z());
@@ -60,7 +61,7 @@ public class ContactsUtils{
public static void getContactsStatus(Context ctx){
final ProgressDialog progressDialog = new ProgressDialog(ctx);
- progressDialog.setMessage("Загрузка данных о контактах...");
+ progressDialog.setMessage(getString("contact_info_loading"));
progressDialog.show();
var request = new okhttp3.Request.a()
@@ -80,10 +81,10 @@ public class ContactsUtils{
boolean enabledsync = resp.equals("contact");
VkAlertDialog.Builder builder = new VkAlertDialog.Builder(ctx);
- builder.setTitle("Синхронизация контактов");
- builder.setMessage("Статус синхронизации: " + (enabledsync ? "Включена" : "Отключена"));
+ builder.setTitle(getString("contact_sync_title"));
+ builder.setMessage(getString("contact_sync_state") + ": " + getString(enabledsync ? "contact_sync_enabled" : "contact_sync_disabled"));
builder.setCancelable(true);
- builder.setPositiveButton((!enabledsync ? "Включить" : "Отключить"), (dialog, which) -> {
+ builder.setPositiveButton((!enabledsync ? getString("enable") : getString("proxy_disable")), (dialog, which) -> {
setContactsSync(!enabledsync);
});
// builder.setNegativeButton("Импортировать контакты", (dialog, which) -> {
diff --git a/app/src/main/java/ru/vtosters/lite/utils/VKMeHandler.java b/app/src/main/java/ru/vtosters/lite/utils/VKMeHandler.java
index 20f57b731..26facc56f 100644
--- a/app/src/main/java/ru/vtosters/lite/utils/VKMeHandler.java
+++ b/app/src/main/java/ru/vtosters/lite/utils/VKMeHandler.java
@@ -5,6 +5,7 @@ import static ru.vtosters.lite.proxy.ProxyUtils.getOauth;
import static ru.vtosters.lite.utils.AccountManagerUtils.getUserToken;
import static ru.vtosters.lite.utils.AndroidUtils.edit;
import static ru.vtosters.lite.utils.AndroidUtils.getPrefsValue;
+import static ru.vtosters.lite.utils.AndroidUtils.getString;
import static ru.vtosters.lite.utils.AndroidUtils.sendToast;
import android.util.Log;
@@ -33,7 +34,7 @@ public class VKMeHandler{
setToken(mainJson.getString("access_token"));
} else if (mainJson.has("error_description")){
Log.d("VKMeHandler", mainJson.getString("error_description"));
- sendToast("Ошибка входа: " + mainJson.getString("error_description"));
+ sendToast(getString("auth_error_vtl") + ": " + mainJson.getString("error_description"));
}
} catch (JSONException e) {
diff --git a/smali/res/values-ru/arrays.xml b/smali/res/values-ru/arrays.xml
index 70487b68a..f459cf146 100644
--- a/smali/res/values-ru/arrays.xml
+++ b/smali/res/values-ru/arrays.xml
@@ -559,8 +559,6 @@
- Fade
- AndroidX
- Слайд
-
- Системный
-
- Системный (task)
- Системный
@@ -676,4 +674,9 @@
- Затемнить
- Осветлить
+
+ - сообщение
+ - сообщения
+ - сообщений
+
diff --git a/smali/res/values-ru/strings.xml b/smali/res/values-ru/strings.xml
index dcc8259e2..64d9c9f79 100644
--- a/smali/res/values-ru/strings.xml
+++ b/smali/res/values-ru/strings.xml
@@ -5518,7 +5518,7 @@
Отключение значительно улучшит качество загружаемых фотографий
Отключение значительно улучшит качество загружаемых видео
Аккаунт
-
Ошибка входа
+
Ошибка входа
Вы не вошли в аккаунт
Вы успешно вышли из учетной записи
Включить скробблинг
@@ -6185,4 +6185,70 @@
Скачать диалог
Произошла ошибка при попытке скачать диалог
+
+
Сохранено как
+
Вы действительно хотите сбросить настройки?
+
У вас включена системная тема \nПри переключении темы системная тема будет отключена \n\nВы действительно хотите отключить её?
+
+
Сжимать обои
+
Значительно ускоряет открытие чатов
+
+
от
+
ошибка
+
+
Экспорт из VTLite
+
Экспорт истории чата
+
Обновил фотографию беседы
+
Удалил фотографию беседы
+
Создал беседу
+
Сменил название беседы
+
на
+
Добавил
+
Исключил
+
группу
+
пользователя
+
Закрепил сообщение
+
Открепил сообщение
+
Вступил в беседу по ссылке
+
Сделал скриншот беседы
+
+
фотография
+
документ
+
ссылка
+
запись на стене
+
голосовое сообщение
+
аудиозапись
+
видеозапись
+
комментарий на стене
+
история
+
подкаст
+
мини-приложение
+
плейлист
+
анонимный
+
публичный
+
опрос
+
товар
+
+
Проголосовало
+
чел.
+
+
ссылки отсутствуют
+
+
Вы действительно хотите очистить историю видео?
+
+
Размер файла превышает лимит 6 MB
+
+
Ошибка установки контактов
+
Для работы данной функции необходимо выдать разрешение на чтение контактов
+
Загрузка данных о контактах...
+
Синхронизация контактов
+
Статус синхронизации
+
Включена
+
Отключена
+
+
Не пытаться получать рекламу
+
Не запрашивать рекламу и рекомендации\n\nМогут быть проблемы
+
+
Не отправлять информацию о батарее
+
Включение этой функции скроет информацию о состоянии вашего устройства в режиме экономии батареи и ВКонтакте будет отправлять вам медиаконтент без сильного сжатия и блюра
\ No newline at end of file
diff --git a/smali/res/values/arrays.xml b/smali/res/values/arrays.xml
index 139aef502..32f59254c 100644
--- a/smali/res/values/arrays.xml
+++ b/smali/res/values/arrays.xml
@@ -656,8 +656,6 @@
- Fade
- AndroidX
- Slide
-
- System
-
- System task
- noanim
@@ -665,8 +663,6 @@
- frag_fade
- frag_enter
- slide
- - system
- - system_task
- No Animation
@@ -878,4 +874,9 @@
- Dim
- Lighten
+
+ - message
+ - messages
+ - messages
+
diff --git a/smali/res/values/strings.xml b/smali/res/values/strings.xml
index 789e6e17b..34ba4624c 100644
--- a/smali/res/values/strings.xml
+++ b/smali/res/values/strings.xml
@@ -5652,7 +5652,7 @@ Expand text..."
Disabling will significantly improve the quality of uploaded photos
Disabling will significantly improve the quality of uploaded videos
Account
-
Login failed
+
Login failed
You are not logged in
You have successfully logged out
Enable scrobbling
@@ -6323,4 +6323,70 @@ May look like a fake leaving the online"
Download dialog
An error occurred while trying to download the dialog
+
+
Saved as
+
Are you sure you want to reset your settings?
+
You have the system theme enabled \nWhen you switch the theme, the system theme will be disabled \n\nAre you sure you want to disable it?
+
+
Compress wallpaper
+
Greatly speeds up opening chats
+
+
from
+
error
+
+
Export from VTLite
+
Export chat history
+
Updated the chat photo
+
Removed the chat photo
+
Created a chat
+
Changed the name of the conversation
+
to
+
Added
+
Kicked
+
group
+
user
+
Pinned message
+
Unpinned message
+
Joined a chat by link
+
Took a screenshot of the conversation
+
+
photo
+
document
+
link
+
wall post
+
voice message
+
audio
+
video
+
wall reply
+
story
+
podcast
+
miniapp
+
playlist
+
anonymous
+
public
+
poll
+
product
+
+
Voted
+
user(s)
+
+
no links
+
+
Are you sure you want to clear your video history?
+
+
File size exceeds 6 MB limit
+
+
Error syncing contacts
+
For this function to work, you must grant permission to read contacts
+
Loading contact data...
+
Sync contacts
+
Sync status
+
Enabled
+
Disabled
+
+
Don\'t try to get ads
+
Don\'t request ads and recommendations\n\nMay cause problems
+
+
Don\'t send battery information
+
Enabling this feature will hide information about the state of your device in battery saving mode and VK will send you media content without strong compression and blur
diff --git a/smali/res/xml/preferences_feed.xml b/smali/res/xml/preferences_feed.xml
index 57d107451..e23ad864c 100644
--- a/smali/res/xml/preferences_feed.xml
+++ b/smali/res/xml/preferences_feed.xml
@@ -134,12 +134,12 @@
+ android:summary="@string/donotgetads_summ"
+ android:title="@string/donotgetads_title" />
+ android:summary="@string/force_disable_psm_summ"
+ android:title="@string/force_disable_psm_title" />
diff --git a/smali/res/xml/preferences_other.xml b/smali/res/xml/preferences_other.xml
index 9aaf45c0c..2d207b430 100644
--- a/smali/res/xml/preferences_other.xml
+++ b/smali/res/xml/preferences_other.xml
@@ -1,9 +1,9 @@
-
+
+ android:title="@string/contact_sync_title" />