Compare commits

..

30 Commits

Author SHA1 Message Date
semantic-release-bot
b9d7867cee chore: Release v5.4.0-dev.8 [skip ci]
# [5.4.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.4.0-dev.7...v5.4.0-dev.8) (2024-12-11)

### Bug Fixes

* **YouTube Music - Bypass certificate checks:** Add a recommended target version ([#4104](https://github.com/ReVanced/revanced-patches/issues/4104)) ([11216cd](11216cd942))
2024-12-11 20:04:06 +00:00
LisoUseInAIKyrios
11216cd942 fix(YouTube Music - Bypass certificate checks): Add a recommended target version (#4104) 2024-12-11 21:00:32 +01:00
LisoUseInAIKyrios
b163e5f64d chore(YouTube): Simplify strings for translations 2024-12-11 17:54:17 +04:00
semantic-release-bot
5c2bbd0671 chore: Release v5.4.0-dev.7 [skip ci]
# [5.4.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.4.0-dev.6...v5.4.0-dev.7) (2024-12-10)

### Bug Fixes

* **GmsCore support:** Adjust presentation of battery optimization dialog  ([#4091](https://github.com/ReVanced/revanced-patches/issues/4091)) ([2062660](2062660d60))
2024-12-10 21:47:35 +00:00
LisoUseInAIKyrios
2062660d60 fix(GmsCore support): Adjust presentation of battery optimization dialog (#4091)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2024-12-11 01:43:57 +04:00
semantic-release-bot
2d9f08a08e chore: Release v5.4.0-dev.6 [skip ci]
# [5.4.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.4.0-dev.5...v5.4.0-dev.6) (2024-12-10)

### Bug Fixes

* **YouTube Music - Spoof video streams:** Disable stable volume ([#4097](https://github.com/ReVanced/revanced-patches/issues/4097)) ([78c5118](78c51182f2))
2024-12-10 21:08:47 +00:00
LisoUseInAIKyrios
78c51182f2 fix(YouTube Music - Spoof video streams): Disable stable volume (#4097) 2024-12-11 01:04:48 +04:00
semantic-release-bot
feac2ab439 chore: Release v5.4.0-dev.5 [skip ci]
# [5.4.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.4.0-dev.4...v5.4.0-dev.5) (2024-12-10)

### Bug Fixes

* **YouTube - Spoof video streams:** Resolve playback of age restricted videos ([#4096](https://github.com/ReVanced/revanced-patches/issues/4096)) ([32be03c](32be03c28d))
2024-12-10 20:46:59 +00:00
LisoUseInAIKyrios
32be03c28d fix(YouTube - Spoof video streams): Resolve playback of age restricted videos (#4096) 2024-12-11 00:42:56 +04:00
github-actions[bot]
6a345eee37 chore: Sync translations (#4093) 2024-12-10 21:26:57 +04:00
LisoUseInAIKyrios
61be7731e3 refactor(YouTube - Spoof streaming data): Add more debug logging 2024-12-10 21:12:38 +04:00
semantic-release-bot
8295356f88 chore: Release v5.4.0-dev.4 [skip ci]
# [5.4.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.4.0-dev.3...v5.4.0-dev.4) (2024-12-10)

### Bug Fixes

* **YouTube - Spoof video streams:** Fix error toast that is sometimes shown ([#4090](https://github.com/ReVanced/revanced-patches/issues/4090)) ([3ec2577](3ec25778eb))
2024-12-10 16:30:47 +00:00
LisoUseInAIKyrios
3ec25778eb fix(YouTube - Spoof video streams): Fix error toast that is sometimes shown (#4090) 2024-12-10 20:27:22 +04:00
LisoUseInAIKyrios
3faf0ac160 refactor(YouTube Music): Show error toast if GmsCore Support is included with root installation 2024-12-10 15:15:02 +04:00
LisoUseInAIKyrios
3ff559878b refactor(YouTube - Miniplayer): Use 'Default' language to describe unpatched Miniplayer type 2024-12-10 03:13:39 +04:00
LisoUseInAIKyrios
ed9c78da1e chore(YouTube - Spoof video streams): Improve error logging 2024-12-10 02:56:40 +04:00
semantic-release-bot
eefb59020e chore: Release v5.4.0-dev.3 [skip ci]
# [5.4.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.4.0-dev.2...v5.4.0-dev.3) (2024-12-09)

### Bug Fixes

* **TikTok - Settings:** Use correct colors for dark mode ([#4087](https://github.com/ReVanced/revanced-patches/issues/4087)) ([18f1884](18f18849f3))
2024-12-09 20:50:09 +00:00
LisoUseInAIKyrios
18f18849f3 fix(TikTok - Settings): Use correct colors for dark mode (#4087) 2024-12-10 00:46:53 +04:00
semantic-release-bot
b172c38284 chore: Release v5.4.0-dev.2 [skip ci]
# [5.4.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.4.0-dev.1...v5.4.0-dev.2) (2024-12-09)

### Bug Fixes

* **TikTok - SIM Spoof:** Change patch to default off to fix login ([#4084](https://github.com/ReVanced/revanced-patches/issues/4084)) ([3c47bff](3c47bfff1a))

### Features

* Add Internal data documents provider patch ([#3830](https://github.com/ReVanced/revanced-patches/issues/3830)) ([89c45af](89c45afcc6))
2024-12-09 17:52:14 +00:00
github-actions[bot]
5b15602896 chore: Sync translations (#4085) 2024-12-09 21:49:37 +04:00
Tim Schneeberger
89c45afcc6 feat: Add Internal data documents provider patch (#3830)
Co-authored-by: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com>
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2024-12-09 18:46:31 +01:00
LisoUseInAIKyrios
3c47bfff1a fix(TikTok - SIM Spoof): Change patch to default off to fix login (#4084) 2024-12-09 18:45:42 +01:00
semantic-release-bot
6af8e1b625 chore: Release v5.4.0-dev.1 [skip ci]
# [5.4.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.3.0...v5.4.0-dev.1) (2024-12-09)

### Features

* **Change package name:** Add options to change provider and permission package names to handle installation conflicts ([c44a4af](c44a4af406))
2024-12-09 06:55:58 +00:00
1fexd
c44a4af406 feat(Change package name): Add options to change provider and permission package names to handle installation conflicts
Co-authored-by: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com>
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2024-12-09 07:53:05 +01:00
semantic-release-bot
cb857b0fce chore: Release v5.3.0 [skip ci]
# [5.3.0](https://github.com/ReVanced/revanced-patches/compare/v5.2.3...v5.3.0) (2024-12-09)

### Bug Fixes

* **Change package name:** Prevent applying the patch to known incompatible apps ([#3943](https://github.com/ReVanced/revanced-patches/issues/3943)) ([b04a11a](b04a11a885))
* **Reddit:** Fix patches by using correct extension class ([95d56b1](95d56b1529))
* **Sync for Reddit:** Fix patches by using correct extension name ([5ae76f4](5ae76f4df8))
* **Twitter:** Merge correct extension by depending on correct extension patch ([35594d0](35594d0a20))
* **YouTube - Spoof video streams:** Add missing preferred language preference to the settings ([6462fb8](6462fb8cba))
* **YouTube - Spoof video streams:** Enable opus codec by updating iOS client version ([#4063](https://github.com/ReVanced/revanced-patches/issues/4063)) ([d1ae1f1](d1ae1f1da7))
* **YouTube - Spoof video streams:** Update `Force AVC` client data ([#4064](https://github.com/ReVanced/revanced-patches/issues/4064)) ([4a88f65](4a88f650c2))
* **YouTube Music - Permanent shuffle:** Remove obsolete and non functional patch ([#4073](https://github.com/ReVanced/revanced-patches/issues/4073)) ([4983e02](4983e021f9))

### Features

* **Nyx:** Remove broken `Unlock pro` patch ([87fe83a](87fe83aacf))
* **YouTube - Spoof video streams:** Allow picking a default audio language track ([#4050](https://github.com/ReVanced/revanced-patches/issues/4050)) ([538ed6d](538ed6d876))
* **YouTube Music:** Add `Spoof video streams` patch to fix playback ([#4065](https://github.com/ReVanced/revanced-patches/issues/4065)) ([cf4456c](cf4456c2ba))
* **YouTube:** Add `Open videos fullscreen` patch ([#4069](https://github.com/ReVanced/revanced-patches/issues/4069)) ([bee917f](bee917f4ed))
2024-12-09 06:10:59 +00:00
oSumAtrIX
e0322afbf0 chore: Merge branch dev to main (#4060) 2024-12-09 07:06:49 +01:00
semantic-release-bot
5f02f583be chore: Release v5.3.0-dev.7 [skip ci]
# [5.3.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.3.0-dev.6...v5.3.0-dev.7) (2024-12-09)

### Bug Fixes

* **YouTube - Spoof video streams:** Add missing preferred language preference to the settings ([6462fb8](6462fb8cba))
2024-12-09 02:23:18 +00:00
LisoUseInAIKyrios
6462fb8cba fix(YouTube - Spoof video streams): Add missing preferred language preference to the settings 2024-12-09 06:19:49 +04:00
github-actions[bot]
f9dcce927e chore: Sync translations (#4076) 2024-12-09 06:19:26 +04:00
github-actions[bot]
69f9ab8345 chore: Sync translations (#4075) 2024-12-09 05:15:29 +04:00
115 changed files with 3002 additions and 708 deletions

View File

@@ -1,3 +1,93 @@
# [5.4.0-dev.8](https://github.com/ReVanced/revanced-patches/compare/v5.4.0-dev.7...v5.4.0-dev.8) (2024-12-11)
### Bug Fixes
* **YouTube Music - Bypass certificate checks:** Add a recommended target version ([#4104](https://github.com/ReVanced/revanced-patches/issues/4104)) ([17a5a6c](https://github.com/ReVanced/revanced-patches/commit/17a5a6c1691b0c23f601d3355b72f122c2bd5dcb))
# [5.4.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.4.0-dev.6...v5.4.0-dev.7) (2024-12-10)
### Bug Fixes
* **GmsCore support:** Adjust presentation of battery optimization dialog ([#4091](https://github.com/ReVanced/revanced-patches/issues/4091)) ([5d8fc1b](https://github.com/ReVanced/revanced-patches/commit/5d8fc1bcd4e453298cfac086cdbdf279612bfb63))
# [5.4.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.4.0-dev.5...v5.4.0-dev.6) (2024-12-10)
### Bug Fixes
* **YouTube Music - Spoof video streams:** Disable stable volume ([#4097](https://github.com/ReVanced/revanced-patches/issues/4097)) ([16bb9df](https://github.com/ReVanced/revanced-patches/commit/16bb9dfc299612f3922724c136878606987ab132))
# [5.4.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.4.0-dev.4...v5.4.0-dev.5) (2024-12-10)
### Bug Fixes
* **YouTube - Spoof video streams:** Resolve playback of age restricted videos ([#4096](https://github.com/ReVanced/revanced-patches/issues/4096)) ([839a404](https://github.com/ReVanced/revanced-patches/commit/839a4045f1bb1759d89047834e0b7695781e82a3))
# [5.4.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.4.0-dev.3...v5.4.0-dev.4) (2024-12-10)
### Bug Fixes
* **YouTube - Spoof video streams:** Fix error toast that is sometimes shown ([#4090](https://github.com/ReVanced/revanced-patches/issues/4090)) ([4c46cb2](https://github.com/ReVanced/revanced-patches/commit/4c46cb27a02c6f29626cd769b6a8e825645d5b16))
# [5.4.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.4.0-dev.2...v5.4.0-dev.3) (2024-12-09)
### Bug Fixes
* **TikTok - Settings:** Use correct colors for dark mode ([#4087](https://github.com/ReVanced/revanced-patches/issues/4087)) ([6bd22ff](https://github.com/ReVanced/revanced-patches/commit/6bd22ffa7e8af4d8f5d2d3b1711bd92c44b4e4aa))
# [5.4.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.4.0-dev.1...v5.4.0-dev.2) (2024-12-09)
### Bug Fixes
* **TikTok - SIM Spoof:** Change patch to default off to fix login ([#4084](https://github.com/ReVanced/revanced-patches/issues/4084)) ([f4659a3](https://github.com/ReVanced/revanced-patches/commit/f4659a328eaf600e1e5f02a66fa2af4b6d8dc7c1))
### Features
* Add Internal data documents provider patch ([#3830](https://github.com/ReVanced/revanced-patches/issues/3830)) ([cb22f65](https://github.com/ReVanced/revanced-patches/commit/cb22f652ed678d81ffda9ece659b3971225d6931))
# [5.4.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.3.0...v5.4.0-dev.1) (2024-12-09)
### Features
* **Change package name:** Add options to change provider and permission package names to handle installation conflicts ([75c740c](https://github.com/ReVanced/revanced-patches/commit/75c740c6ba2e0c62e567f7dc90cdad368fc4f372))
# [5.3.0](https://github.com/ReVanced/revanced-patches/compare/v5.2.3...v5.3.0) (2024-12-09)
### Bug Fixes
* **Change package name:** Prevent applying the patch to known incompatible apps ([#3943](https://github.com/ReVanced/revanced-patches/issues/3943)) ([44936e7](https://github.com/ReVanced/revanced-patches/commit/44936e71e846f72f7279950232a5dba37765ceb3))
* **Reddit:** Fix patches by using correct extension class ([70bdc68](https://github.com/ReVanced/revanced-patches/commit/70bdc6840d465399625aa1ae0259f49e72711955))
* **Sync for Reddit:** Fix patches by using correct extension name ([030093e](https://github.com/ReVanced/revanced-patches/commit/030093e913aab3fab43935eedbaeba0f6c0491bb))
* **Twitter:** Merge correct extension by depending on correct extension patch ([8281cf6](https://github.com/ReVanced/revanced-patches/commit/8281cf6a3eead8cc25a277371e0b0ab2be982497))
* **YouTube - Spoof video streams:** Add missing preferred language preference to the settings ([630633c](https://github.com/ReVanced/revanced-patches/commit/630633cf57c65c65e5578046413e17670ae336e8))
* **YouTube - Spoof video streams:** Enable opus codec by updating iOS client version ([#4063](https://github.com/ReVanced/revanced-patches/issues/4063)) ([0af156f](https://github.com/ReVanced/revanced-patches/commit/0af156f18972c5f089af4bb69824968d2a47d18f))
* **YouTube - Spoof video streams:** Update `Force AVC` client data ([#4064](https://github.com/ReVanced/revanced-patches/issues/4064)) ([7d537dd](https://github.com/ReVanced/revanced-patches/commit/7d537ddff4bb5421fa320741275131a66ef5c7bb))
* **YouTube Music - Permanent shuffle:** Remove obsolete and non functional patch ([#4073](https://github.com/ReVanced/revanced-patches/issues/4073)) ([fbc6ab6](https://github.com/ReVanced/revanced-patches/commit/fbc6ab6a357b351f02d4d486ddc2072cf53199c3))
### Features
* **Nyx:** Remove broken `Unlock pro` patch ([1fe8b16](https://github.com/ReVanced/revanced-patches/commit/1fe8b164eab0c4fa80ab2da2581977f5111a2858))
* **YouTube - Spoof video streams:** Allow picking a default audio language track ([#4050](https://github.com/ReVanced/revanced-patches/issues/4050)) ([ede666b](https://github.com/ReVanced/revanced-patches/commit/ede666b5cb64fcbaa1334ad8bef79e2634ced113))
* **YouTube Music:** Add `Spoof video streams` patch to fix playback ([#4065](https://github.com/ReVanced/revanced-patches/issues/4065)) ([cf3116a](https://github.com/ReVanced/revanced-patches/commit/cf3116a7583d09c25c798a85687a056f143656f0))
* **YouTube:** Add `Open videos fullscreen` patch ([#4069](https://github.com/ReVanced/revanced-patches/issues/4069)) ([296d63b](https://github.com/ReVanced/revanced-patches/commit/296d63bd42c338a01efbcb2df702e5822d05a5f1))
# [5.3.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.3.0-dev.6...v5.3.0-dev.7) (2024-12-09)
### Bug Fixes
* **YouTube - Spoof video streams:** Add missing preferred language preference to the settings ([630633c](https://github.com/ReVanced/revanced-patches/commit/630633cf57c65c65e5578046413e17670ae336e8))
# [5.3.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.3.0-dev.5...v5.3.0-dev.6) (2024-12-09)

View File

@@ -0,0 +1,3 @@
dependencies {
compileOnly(libs.annotation)
}

View File

@@ -0,0 +1,334 @@
package app.revanced.extension.all.misc.directory.documentsprovider;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.ProviderInfo;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.os.CancellationSignal;
import android.os.ParcelFileDescriptor;
import android.provider.DocumentsContract;
import android.provider.DocumentsProvider;
import android.system.ErrnoException;
import android.system.Os;
import android.system.StructStat;
import android.util.Log;
import android.webkit.MimeTypeMap;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Objects;
/**
* A DocumentsProvider that allows access to the app's internal data directory.
*/
public class InternalDataDocumentsProvider extends DocumentsProvider {
private static final String[] rootColumns =
{"root_id", "mime_types", "flags", "icon", "title", "summary", "document_id"};
private static final String[] directoryColumns =
{"document_id", "mime_type", "_display_name", "last_modified", "flags",
"_size", "full_path", "lstat_info"};
private static final int S_IFLNK = 0x8000;
private String packageName;
private File dataDirectory;
/**
* Recursively delete a file or directory and all its children.
*
* @param root The file or directory to delete.
* @return True if the file or directory and all its children were successfully deleted.
*/
private static boolean deleteRecursively(File root) {
// If root is a directory, delete all children first
if (root.isDirectory()) {
try {
// Only delete recursively if the directory is not a symlink
if ((Os.lstat(root.getPath()).st_mode & S_IFLNK) != S_IFLNK) {
File[] files = root.listFiles();
if (files != null) {
for (File file : files) {
if (!deleteRecursively(file)) {
return false;
}
}
}
}
} catch (ErrnoException e) {
Log.e("InternalDocumentsProvider", "Failed to lstat " + root.getPath(), e);
}
}
// Delete file or empty directory
return root.delete();
}
/**
* Resolve the MIME type of a file based on its extension.
*
* @param file The file to resolve the MIME type for.
* @return The MIME type of the file.
*/
private static String resolveMimeType(File file) {
if (file.isDirectory()) {
return DocumentsContract.Document.MIME_TYPE_DIR;
}
String name = file.getName();
int indexOfExtDot = name.lastIndexOf('.');
if (indexOfExtDot < 0) {
// No extension
return "application/octet-stream";
}
String extension = name.substring(indexOfExtDot + 1).toLowerCase();
String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
return mimeType != null ? mimeType : "application/octet-stream";
}
@Override
public final boolean onCreate() {
return true;
}
@Override
public final void attachInfo(Context context, ProviderInfo providerInfo) {
super.attachInfo(context, providerInfo);
this.packageName = context.getPackageName();
this.dataDirectory = context.getFilesDir().getParentFile();
}
@Override
public final String createDocument(String parentDocumentId, String mimeType, String displayName) throws FileNotFoundException {
File directory = resolveDocumentId(parentDocumentId);
File file = new File(directory, displayName);
// If file already exists, append a number to the name
int i = 2;
while (file.exists()) {
file = new File(directory, displayName + " (" + i + ")");
i++;
}
try {
// Create the file or directory
if (mimeType.equals(DocumentsContract.Document.MIME_TYPE_DIR) ? file.mkdir() : file.createNewFile()) {
// Return the document ID of the new entity
if (!parentDocumentId.endsWith("/")) {
parentDocumentId = parentDocumentId + "/";
}
return parentDocumentId + file.getName();
}
} catch (IOException e) {
// Do nothing. We are throwing a FileNotFoundException later if the file could not be created.
}
throw new FileNotFoundException("Failed to create document in " + parentDocumentId + " with name " + displayName);
}
@Override
public final void deleteDocument(String documentId) throws FileNotFoundException {
File file = resolveDocumentId(documentId);
if (!deleteRecursively(file)) {
throw new FileNotFoundException("Failed to delete document " + documentId);
}
}
@Override
public final String getDocumentType(String documentId) throws FileNotFoundException {
return resolveMimeType(resolveDocumentId(documentId));
}
@Override
public final boolean isChildDocument(String parentDocumentId, String documentId) {
return documentId.startsWith(parentDocumentId);
}
@Override
public final String moveDocument(String sourceDocumentId, String sourceParentDocumentId, String targetParentDocumentId) throws FileNotFoundException {
File source = resolveDocumentId(sourceDocumentId);
File dest = resolveDocumentId(targetParentDocumentId);
File file = new File(dest, source.getName());
if (!file.exists() && source.renameTo(file)) {
// Return the new document ID
if (targetParentDocumentId.endsWith("/")) {
return targetParentDocumentId + file.getName();
}
return targetParentDocumentId + "/" + file.getName();
}
throw new FileNotFoundException("Failed to move document from " + sourceDocumentId + " to " + targetParentDocumentId);
}
@Override
public final ParcelFileDescriptor openDocument(String documentId, String mode, CancellationSignal signal) throws FileNotFoundException {
File file = resolveDocumentId(documentId);
return ParcelFileDescriptor.open(file, ParcelFileDescriptor.parseMode(mode));
}
@Override
public final Cursor queryChildDocuments(String parentDocumentId, String[] projection, String sortOrder) throws FileNotFoundException {
if (parentDocumentId.endsWith("/")) {
parentDocumentId = parentDocumentId.substring(0, parentDocumentId.length() - 1);
}
if (projection == null) {
projection = directoryColumns;
}
MatrixCursor cursor = new MatrixCursor(projection);
File children = resolveDocumentId(parentDocumentId);
// Collect all children
File[] files = children.listFiles();
if (files != null) {
for (File file : files) {
addRowForDocument(cursor, parentDocumentId + "/" + file.getName(), file);
}
}
return cursor;
}
@Override
public final Cursor queryDocument(String documentId, String[] projection) throws FileNotFoundException {
if (projection == null) {
projection = directoryColumns;
}
MatrixCursor cursor = new MatrixCursor(projection);
addRowForDocument(cursor, documentId, null);
return cursor;
}
@Override
public final Cursor queryRoots(String[] projection) {
ApplicationInfo info = Objects.requireNonNull(getContext()).getApplicationInfo();
String appName = info.loadLabel(getContext().getPackageManager()).toString();
if (projection == null) {
projection = rootColumns;
}
MatrixCursor cursor = new MatrixCursor(projection);
MatrixCursor.RowBuilder row = cursor.newRow();
row.add(DocumentsContract.Root.COLUMN_ROOT_ID, this.packageName);
row.add(DocumentsContract.Root.COLUMN_DOCUMENT_ID, this.packageName);
row.add(DocumentsContract.Root.COLUMN_SUMMARY, this.packageName);
row.add(DocumentsContract.Root.COLUMN_FLAGS,
DocumentsContract.Root.FLAG_LOCAL_ONLY |
DocumentsContract.Root.FLAG_SUPPORTS_IS_CHILD);
row.add(DocumentsContract.Root.COLUMN_TITLE, appName);
row.add(DocumentsContract.Root.COLUMN_MIME_TYPES, "*/*");
row.add(DocumentsContract.Root.COLUMN_ICON, info.icon);
return cursor;
}
@Override
public final void removeDocument(String documentId, String parentDocumentId) throws FileNotFoundException {
deleteDocument(documentId);
}
@Override
public final String renameDocument(String documentId, String displayName) throws FileNotFoundException {
File file = resolveDocumentId(documentId);
if (!file.renameTo(new File(file.getParentFile(), displayName))) {
throw new FileNotFoundException("Failed to rename document from " + documentId + " to " + displayName);
}
// Return the new document ID
return documentId.substring(0, documentId.lastIndexOf('/', documentId.length() - 2)) + "/" + displayName;
}
/**
* Resolve a file instance for a given document ID.
*
* @param fullContentPath The document ID to resolve.
* @return File object for the given document ID.
* @throws FileNotFoundException If the document ID is invalid or the file does not exist.
*/
private File resolveDocumentId(String fullContentPath) throws FileNotFoundException {
if (!fullContentPath.startsWith(this.packageName)) {
throw new FileNotFoundException(fullContentPath + " not found");
}
String path = fullContentPath.substring(this.packageName.length());
// Resolve the relative path within /data/data/{PKG}
File file;
if (path.equals("/") || path.isEmpty()) {
file = this.dataDirectory;
} else {
// Remove leading slash
String relativePath = path.substring(1);
file = new File(this.dataDirectory, relativePath);
}
if (!file.exists()) {
throw new FileNotFoundException(fullContentPath + " not found");
}
return file;
}
/**
* Add a row containing all file properties to a MatrixCursor for a given document ID.
*
* @param cursor The cursor to add the row to.
* @param documentId The document ID to add the row for.
* @param file The file to add the row for. If null, the file will be resolved from the document ID.
* @throws FileNotFoundException If the file does not exist.
*/
private void addRowForDocument(MatrixCursor cursor, String documentId, File file) throws FileNotFoundException {
if (file == null) {
file = resolveDocumentId(documentId);
}
int flags = 0;
if (file.isDirectory()) {
// Prefer list view for directories
flags = flags | DocumentsContract.Document.FLAG_DIR_PREFERS_LAST_MODIFIED;
}
if (file.canWrite()) {
if (file.isDirectory()) {
flags = flags | DocumentsContract.Document.FLAG_DIR_SUPPORTS_CREATE;
}
flags = flags | DocumentsContract.Document.FLAG_SUPPORTS_WRITE |
DocumentsContract.Document.FLAG_SUPPORTS_DELETE |
DocumentsContract.Document.FLAG_SUPPORTS_RENAME |
DocumentsContract.Document.FLAG_SUPPORTS_MOVE;
}
MatrixCursor.RowBuilder row = cursor.newRow();
row.add(DocumentsContract.Document.COLUMN_DOCUMENT_ID, documentId);
row.add(DocumentsContract.Document.COLUMN_DISPLAY_NAME, file.getName());
row.add(DocumentsContract.Document.COLUMN_SIZE, file.length());
row.add(DocumentsContract.Document.COLUMN_MIME_TYPE, resolveMimeType(file));
row.add(DocumentsContract.Document.COLUMN_LAST_MODIFIED, file.lastModified());
row.add(DocumentsContract.Document.COLUMN_FLAGS, flags);
// Custom columns
row.add("full_path", file.getAbsolutePath());
// Add lstat column
String path = file.getPath();
try {
StringBuilder sb = new StringBuilder();
StructStat lstat = Os.lstat(path);
sb.append(lstat.st_mode);
sb.append(";");
sb.append(lstat.st_uid);
sb.append(";");
sb.append(lstat.st_gid);
// Append symlink target if it is a symlink
if ((lstat.st_mode & S_IFLNK) == S_IFLNK) {
sb.append(";");
sb.append(Os.readlink(path));
}
row.add("lstat_info", sb.toString());
} catch (Exception ex) {
Log.e("InternalDocumentsProvider", "Failed to get lstat info for " + path, ex);
}
}
}

View File

@@ -24,7 +24,9 @@ import java.net.URL;
* @noinspection unused
*/
public class GmsCoreSupport {
public static final String ORIGINAL_UNPATCHED_PACKAGE_NAME = "com.google.android.youtube";
private static final String PACKAGE_NAME_YOUTUBE = "com.google.android.youtube";
private static final String PACKAGE_NAME_YOUTUBE_MUSIC = "com.google.android.apps.youtube.music";
private static final String GMS_CORE_PACKAGE_NAME
= getGmsCoreVendorGroupId() + ".android.gms";
private static final Uri GMS_CORE_PROVIDER
@@ -52,17 +54,20 @@ public class GmsCoreSupport {
private static void showBatteryOptimizationDialog(Activity context,
String dialogMessageRef,
String positiveButtonStringRef,
String positiveButtonTextRef,
DialogInterface.OnClickListener onPositiveClickListener) {
// Do not set cancelable to false, to allow using back button to skip the action,
// just in case the check can never be satisfied.
var dialog = new AlertDialog.Builder(context)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setTitle(str("gms_core_dialog_title"))
.setMessage(str(dialogMessageRef))
.setPositiveButton(str(positiveButtonStringRef), onPositiveClickListener)
.create();
Utils.showDialog(context, dialog);
// Use a delay to allow the activity to finish initializing.
// Otherwise, if device is in dark mode the dialog is shown with wrong color scheme.
Utils.runOnMainThreadDelayed(() -> {
// Do not set cancelable to false, to allow using back button to skip the action,
// just in case the battery change can never be satisfied.
var dialog = new AlertDialog.Builder(context)
.setTitle(str("gms_core_dialog_title"))
.setMessage(str(dialogMessageRef))
.setPositiveButton(str(positiveButtonTextRef), onPositiveClickListener)
.create();
Utils.showDialog(context, dialog);
}, 100);
}
/**
@@ -74,7 +79,8 @@ public class GmsCoreSupport {
// Verify the user has not included GmsCore for a root installation.
// GmsCore Support changes the package name, but with a mounted installation
// all manifest changes are ignored and the original package name is used.
if (context.getPackageName().equals(ORIGINAL_UNPATCHED_PACKAGE_NAME)) {
String packageName = context.getPackageName();
if (packageName.equals(PACKAGE_NAME_YOUTUBE) || packageName.equals(PACKAGE_NAME_YOUTUBE_MUSIC)) {
Logger.printInfo(() -> "App is mounted with root, but GmsCore patch was included");
// Cannot use localize text here, since the app will load
// resources from the unpatched app and all patch strings are missing.
@@ -99,7 +105,18 @@ public class GmsCoreSupport {
return;
}
// Check if GmsCore is running in the background.
// Check if GmsCore is whitelisted from battery optimizations.
if (batteryOptimizationsEnabled(context)) {
Logger.printInfo(() -> "GmsCore is not whitelisted from battery optimizations");
showBatteryOptimizationDialog(context,
"gms_core_dialog_not_whitelisted_using_battery_optimizations_message",
"gms_core_dialog_continue_text",
(dialog, id) -> openGmsCoreDisableBatteryOptimizationsIntent(context));
return;
}
// Check if GmsCore is currently running in the background.
try (var client = context.getContentResolver().acquireContentProviderClient(GMS_CORE_PROVIDER)) {
if (client == null) {
Logger.printInfo(() -> "GmsCore is not running in the background");
@@ -108,18 +125,8 @@ public class GmsCoreSupport {
"gms_core_dialog_not_whitelisted_not_allowed_in_background_message",
"gms_core_dialog_open_website_text",
(dialog, id) -> open(DONT_KILL_MY_APP_LINK));
return;
}
}
// Check if GmsCore is whitelisted from battery optimizations.
if (batteryOptimizationsEnabled(context)) {
Logger.printInfo(() -> "GmsCore is not whitelisted from battery optimizations");
showBatteryOptimizationDialog(context,
"gms_core_dialog_not_whitelisted_using_battery_optimizations_message",
"gms_core_dialog_continue_text",
(dialog, id) -> openGmsCoreDisableBatteryOptimizationsIntent(context));
}
} catch (Exception ex) {
Logger.printException(() -> "checkGmsCore failure", ex);
}
@@ -143,12 +150,10 @@ public class GmsCoreSupport {
private static String getGmsCoreDownload() {
final var vendorGroupId = getGmsCoreVendorGroupId();
//noinspection SwitchStatementWithTooFewBranches
switch (vendorGroupId) {
case "app.revanced":
return "https://github.com/revanced/gmscore/releases/latest";
default:
return vendorGroupId + ".android.gms";
}
return switch (vendorGroupId) {
case "app.revanced" -> "https://github.com/revanced/gmscore/releases/latest";
default -> vendorGroupId + ".android.gms";
};
}
// Modified by a patch. Do not touch.

View File

@@ -4,8 +4,10 @@ import android.annotation.SuppressLint;
import android.app.*;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.net.ConnectivityManager;
import android.os.Build;
@@ -47,6 +49,7 @@ public class Utils {
private static Context context;
private static String versionName;
private static String applicationLabel;
private Utils() {
} // utility class
@@ -61,28 +64,30 @@ public class Utils {
return ""; // Value is replaced during patching.
}
private static PackageInfo getPackageInfo() throws PackageManager.NameNotFoundException {
final var packageName = Objects.requireNonNull(getContext()).getPackageName();
PackageManager packageManager = context.getPackageManager();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
return packageManager.getPackageInfo(
packageName,
PackageManager.PackageInfoFlags.of(0)
);
}
return packageManager.getPackageInfo(
packageName,
0
);
}
/**
* @return The version name of the app, such as 19.11.43
*/
public static String getAppVersionName() {
if (versionName == null) {
try {
final var packageName = Objects.requireNonNull(getContext()).getPackageName();
PackageManager packageManager = context.getPackageManager();
PackageInfo packageInfo;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
packageInfo = packageManager.getPackageInfo(
packageName,
PackageManager.PackageInfoFlags.of(0)
);
} else {
packageInfo = packageManager.getPackageInfo(
packageName,
0
);
}
versionName = packageInfo.versionName;
versionName = getPackageInfo().versionName;
} catch (Exception ex) {
Logger.printException(() -> "Failed to get package info", ex);
versionName = "Unknown";
@@ -92,6 +97,19 @@ public class Utils {
return versionName;
}
public static String getApplicationName() {
if (applicationLabel == null) {
try {
ApplicationInfo applicationInfo = getPackageInfo().applicationInfo;
applicationLabel = (String) applicationInfo.loadLabel(context.getPackageManager());
} catch (Exception ex) {
Logger.printException(() -> "Failed to get application name", ex);
applicationLabel = "Unknown";
}
}
return applicationLabel;
}
/**
* Hide a view by setting its layout height and width to 1dp.
@@ -325,7 +343,7 @@ public class Utils {
public static void restartApp(@NonNull Context context) {
String packageName = context.getPackageName();
Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);
Intent intent = Objects.requireNonNull(context.getPackageManager().getLaunchIntentForPackage(packageName));
Intent mainIntent = Intent.makeRestartActivityTask(intent.getComponent());
// Required for API 34 and later
// Ref: https://developer.android.com/about/versions/14/behavior-changes-14#safer-intents
@@ -499,6 +517,12 @@ public class Utils {
);
}
public static boolean isDarkModeEnabled(Context context) {
Configuration config = context.getResources().getConfiguration();
final int currentNightMode = config.uiMode & Configuration.UI_MODE_NIGHT_MASK;
return currentNightMode == Configuration.UI_MODE_NIGHT_YES;
}
/**
* Automatically logs any exceptions the runnable throws.
*

View File

@@ -22,7 +22,7 @@ public class BaseSettings {
public static final IntegerSetting CHECK_ENVIRONMENT_WARNINGS_ISSUED = new IntegerSetting("revanced_check_environment_warnings_issued", 0, true, false);
public static final BooleanSetting SPOOF_VIDEO_STREAMS = new BooleanSetting("revanced_spoof_video_streams", TRUE, true, "revanced_spoof_video_streams_user_dialog_message");
public static final EnumSetting<AudioStreamLanguage> SPOOF_VIDEO_STREAMS_LANGUAGE = new EnumSetting<>("revanced_spoof_video_streams_language", AudioStreamLanguage.DEFAULT);
public static final EnumSetting<AudioStreamLanguage> SPOOF_VIDEO_STREAMS_LANGUAGE = new EnumSetting<>("revanced_spoof_video_streams_language", AudioStreamLanguage.DEFAULT, parent(SPOOF_VIDEO_STREAMS));
public static final BooleanSetting SPOOF_VIDEO_STREAMS_IOS_FORCE_AVC = new BooleanSetting("revanced_spoof_video_streams_ios_force_avc", FALSE, true,
"revanced_spoof_video_streams_ios_force_avc_user_dialog_message", new ForceiOSAVCAvailability());
public static final EnumSetting<ClientType> SPOOF_VIDEO_STREAMS_CLIENT_TYPE = new EnumSetting<>("revanced_spoof_video_streams_client", ClientType.ANDROID_VR, true, parent(SPOOF_VIDEO_STREAMS));

View File

@@ -7,7 +7,6 @@ import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.StringRef;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.shared.settings.preference.SharedPrefCategory;
import org.jetbrains.annotations.NotNull;
import org.json.JSONException;
import org.json.JSONObject;
@@ -330,7 +329,7 @@ public abstract class Setting<T> {
return value.equals(defaultValue);
}
@NotNull
@NonNull
@Override
public String toString() {
return key + "=" + get();

View File

@@ -54,9 +54,7 @@ public class ReVancedAboutPreference extends Preference {
}
protected boolean isDarkModeEnabled() {
Configuration config = getContext().getResources().getConfiguration();
final int currentNightMode = config.uiMode & Configuration.UI_MODE_NIGHT_MASK;
return currentNightMode == Configuration.UI_MODE_NIGHT_YES;
return Utils.isDarkModeEnabled(getContext());
}
/**

View File

@@ -10,15 +10,17 @@ public enum ClientType {
// Specific purpose for age restricted, or private videos, because the iOS client is not logged in.
// https://dumps.tadiphone.dev/dumps/oculus/eureka
ANDROID_VR(28,
"ANDROID_VR",
"Quest 3",
"12",
"com.google.android.apps.youtube.vr.oculus/1.56.21 (Linux; U; Android 12; GB) gzip",
"32", // Android 12.1
"1.56.21",
true
),
true,
true),
// Specific for kids videos.
IOS(5,
"IOS",
forceAVC()
? "iPhone12,5" // 11 Pro Max (last device with iOS 13)
: "iPhone16,2", // 15 Pro Max
@@ -37,8 +39,22 @@ public enum ClientType {
// but 17.40 is the last version that supports iOS 13.
? "17.40.5"
: "19.47.7",
false
);
false,
true),
/**
* Android VR with no language code.
* Used for age restricted videos and YouTube Music to disable stable volume.
*/
ANDROID_VR_NO_HL(
ANDROID_VR.id,
ANDROID_VR.clientName,
ANDROID_VR.deviceModel,
ANDROID_VR.osVersion,
ANDROID_VR.userAgent,
ANDROID_VR.androidSdkVersion,
ANDROID_VR.clientVersion,
ANDROID_VR.canLogin,
false);
private static boolean forceAVC() {
return BaseSettings.SPOOF_VIDEO_STREAMS_IOS_FORCE_AVC.get();
@@ -50,6 +66,8 @@ public enum ClientType {
*/
public final int id;
public final String clientName;
/**
* Device model, equivalent to {@link Build#MODEL} (System property: ro.product.model)
*/
@@ -82,20 +100,28 @@ public enum ClientType {
*/
public final boolean canLogin;
/**
* If a language code should be used.
*/
public final boolean useLanguageCode;
ClientType(int id,
String clientName,
String deviceModel,
String osVersion,
String userAgent,
@Nullable String androidSdkVersion,
String clientVersion,
boolean canLogin
) {
boolean canLogin,
boolean useLanguageCode) {
this.id = id;
this.clientName = clientName;
this.deviceModel = deviceModel;
this.osVersion = osVersion;
this.userAgent = userAgent;
this.androidSdkVersion = androidSdkVersion;
this.clientVersion = clientVersion;
this.canLogin = canLogin;
this.useLanguageCode = useLanguageCode;
}
}

View File

@@ -6,7 +6,6 @@ import androidx.annotation.Nullable;
import java.nio.ByteBuffer;
import java.util.Map;
import java.util.Objects;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
@@ -23,6 +22,14 @@ public class SpoofVideoStreamsPatch {
private static final String UNREACHABLE_HOST_URI_STRING = "https://127.0.0.0";
private static final Uri UNREACHABLE_HOST_URI = Uri.parse(UNREACHABLE_HOST_URI_STRING);
/**
* Injection point. Used by YT Music to disable stable volume.
*/
public static void setClientTypeToAndroidVrNoHl() {
Logger.printDebug(() -> "Setting stream spoofing to: " + ClientType.ANDROID_VR_NO_HL);
BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.save(ClientType.ANDROID_VR_NO_HL);
}
/**
* Injection point.
* Blocks /get_watch requests by returning an unreachable URI.
@@ -87,10 +94,19 @@ public class SpoofVideoStreamsPatch {
try {
Uri uri = Uri.parse(url);
String path = uri.getPath();
// 'heartbeat' has no video id and appears to be only after playback has started.
if (path != null && path.contains("player") && !path.contains("heartbeat")) {
String videoId = Objects.requireNonNull(uri.getQueryParameter("id"));
StreamingDataRequest.fetchRequest(videoId, requestHeaders);
// 'refresh' has no video id and appears to happen when waiting for a livestream to start.
if (path != null && path.contains("player") && !path.contains("heartbeat")
&& !path.contains("refresh")) {
String id = uri.getQueryParameter("id");
if (id == null) {
Logger.printException(() -> "Ignoring request that has no video id." +
" Url: " + url + " headers: " + requestHeaders);
return;
}
StreamingDataRequest.fetchRequest(id, requestHeaders);
}
} catch (Exception ex) {
Logger.printException(() -> "buildRequest failure", ex);

View File

@@ -35,8 +35,10 @@ final class PlayerRoutes {
JSONObject context = new JSONObject();
JSONObject client = new JSONObject();
client.put("hl", BaseSettings.SPOOF_VIDEO_STREAMS_LANGUAGE.get().getIso639_1());
client.put("clientName", clientType.name());
if (clientType.useLanguageCode) {
client.put("hl", BaseSettings.SPOOF_VIDEO_STREAMS_LANGUAGE.get().getIso639_1());
}
client.put("clientName", clientType.clientName);
client.put("clientVersion", clientType.clientVersion);
client.put("deviceModel", clientType.deviceModel);
client.put("osVersion", clientType.osVersion);

View File

@@ -115,8 +115,7 @@ public class StreamingDataRequest {
Objects.requireNonNull(playerHeaders);
final long startTime = System.currentTimeMillis();
String clientTypeName = clientType.name();
Logger.printDebug(() -> "Fetching video streams for: " + videoId + " using client: " + clientType.name());
Logger.printDebug(() -> "Fetching video streams for: " + videoId + " using client: " + clientType);
try {
HttpURLConnection connection = PlayerRoutes.getPlayerResponseConnectionFromRoute(GET_STREAMING_DATA, clientType);
@@ -124,12 +123,16 @@ public class StreamingDataRequest {
connection.setReadTimeout(HTTP_TIMEOUT_MILLISECONDS);
for (String key : REQUEST_HEADER_KEYS) {
if (!clientType.canLogin && key.equals(AUTHORIZATION_HEADER)) {
continue;
}
String value = playerHeaders.get(key);
if (value != null) {
if (key.equals(AUTHORIZATION_HEADER)) {
if (!clientType.canLogin) {
Logger.printDebug(() -> "Not including request header: " + key);
continue;
}
}
Logger.printDebug(() -> "Including request header: " + key);
connection.setRequestProperty(key, value);
}
}
@@ -142,8 +145,10 @@ public class StreamingDataRequest {
final int responseCode = connection.getResponseCode();
if (responseCode == 200) return connection;
handleConnectionError(clientTypeName + " not available with response code: "
+ responseCode + " message: " + connection.getResponseMessage(),
// This situation likely means the patches are outdated.
// Use a toast message that suggests updating.
handleConnectionError("Playback error (App is outdated?) " + clientType + ": "
+ responseCode + " response: " + connection.getResponseMessage(),
null, showErrorToasts);
} catch (SocketTimeoutException ex) {
handleConnectionError("Connection timeout", ex, showErrorToasts);
@@ -172,17 +177,19 @@ public class StreamingDataRequest {
try {
// gzip encoding doesn't response with content length (-1),
// but empty response body does.
if (connection.getContentLength() != 0) {
try (InputStream inputStream = new BufferedInputStream(connection.getInputStream())) {
try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
byte[] buffer = new byte[2048];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) >= 0) {
baos.write(buffer, 0, bytesRead);
}
if (connection.getContentLength() == 0) {
Logger.printDebug(() -> "Received empty response for video: " + videoId);
} else {
try (InputStream inputStream = new BufferedInputStream(connection.getInputStream());
ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
return ByteBuffer.wrap(baos.toByteArray());
byte[] buffer = new byte[2048];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) >= 0) {
baos.write(buffer, 0, bytesRead);
}
return ByteBuffer.wrap(baos.toByteArray());
}
}
} catch (IOException ex) {

View File

@@ -1,9 +1,20 @@
package app.revanced.extension.tiktok;
import static app.revanced.extension.shared.Utils.isDarkModeEnabled;
import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.ColorInt;
import app.revanced.extension.shared.settings.StringSetting;
public class Utils {
private static final long[] DEFAULT_MIN_MAX_VALUES = {0L, Long.MAX_VALUE};
// Edit: This could be handled using a custom Setting<Long[]> class
// that saves its value to preferences and JSON using the formatted String created here.
public static long[] parseMinMax(StringSetting setting) {
@@ -20,6 +31,29 @@ public class Utils {
}
setting.save("0-" + Long.MAX_VALUE);
return new long[]{0L, Long.MAX_VALUE};
return DEFAULT_MIN_MAX_VALUES;
}
// Colors picked by hand. These should be replaced with the styled resources TikTok uses.
private static final @ColorInt int TEXT_DARK_MODE_TITLE = Color.WHITE;
private static final @ColorInt int TEXT_DARK_MODE_SUMMARY
= Color.argb(255, 170, 170, 170);
private static final @ColorInt int TEXT_LIGHT_MODE_TITLE = Color.BLACK;
private static final @ColorInt int TEXT_LIGHT_MODE_SUMMARY
= Color.argb(255, 80, 80, 80);
public static void setTitleAndSummaryColor(Context context, View view) {
final boolean darkModeEnabled = isDarkModeEnabled(context);
TextView title = view.findViewById(android.R.id.title);
title.setTextColor(darkModeEnabled
? TEXT_DARK_MODE_TITLE
: TEXT_LIGHT_MODE_TITLE);
TextView summary = view.findViewById(android.R.id.summary);
summary.setTextColor(darkModeEnabled
? TEXT_DARK_MODE_SUMMARY
: TEXT_LIGHT_MODE_SUMMARY);
}
}

View File

@@ -1,17 +1,18 @@
package app.revanced.extension.tiktok.feedfilter;
import app.revanced.extension.tiktok.settings.Settings;
import com.ss.android.ugc.aweme.feed.model.Aweme;
import com.ss.android.ugc.aweme.feed.model.AwemeStatistics;
import static app.revanced.extension.tiktok.Utils.parseMinMax;
import app.revanced.extension.tiktok.Utils;
import app.revanced.extension.tiktok.settings.Settings;
public final class LikeCountFilter implements IFilter {
final long minLike;
final long maxLike;
LikeCountFilter() {
long[] minMax = parseMinMax(Settings.MIN_MAX_LIKES);
long[] minMax = Utils.parseMinMax(Settings.MIN_MAX_LIKES);
minLike = minMax[0];
maxLike = minMax[1];
}

View File

@@ -1,17 +1,17 @@
package app.revanced.extension.tiktok.feedfilter;
import app.revanced.extension.tiktok.Utils;
import app.revanced.extension.tiktok.settings.Settings;
import com.ss.android.ugc.aweme.feed.model.Aweme;
import com.ss.android.ugc.aweme.feed.model.AwemeStatistics;
import static app.revanced.extension.tiktok.Utils.parseMinMax;
public class ViewCountFilter implements IFilter {
final long minView;
final long maxView;
ViewCountFilter() {
long[] minMax = parseMinMax(Settings.MIN_MAX_VIEWS);
long[] minMax = Utils.parseMinMax(Settings.MIN_MAX_VIEWS);
minView = minMax[0];
maxView = minMax[1];
}

View File

@@ -19,7 +19,7 @@ public class Settings extends BaseSettings {
public static final BooleanSetting DOWNLOAD_WATERMARK = new BooleanSetting("down_watermark", TRUE);
public static final BooleanSetting CLEAR_DISPLAY = new BooleanSetting("clear_display", FALSE);
public static final FloatSetting REMEMBERED_SPEED = new FloatSetting("REMEMBERED_SPEED", 1.0f);
public static final BooleanSetting SIM_SPOOF = new BooleanSetting("simspoof", TRUE, true);
public static final BooleanSetting SIM_SPOOF = new BooleanSetting("simspoof", FALSE, true);
public static final StringSetting SIM_SPOOF_ISO = new StringSetting("simspoof_iso", "us");
public static final StringSetting SIMSPOOF_MCCMNC = new StringSetting("simspoof_mccmnc", "310160");
public static final StringSetting SIMSPOOF_OP_NAME = new StringSetting("simspoof_op_name", "T-Mobile");

View File

@@ -16,10 +16,10 @@ import android.widget.RadioButton;
import android.widget.RadioGroup;
import app.revanced.extension.shared.settings.StringSetting;
import app.revanced.extension.tiktok.Utils;
@SuppressWarnings("deprecation")
public class DownloadPathPreference extends DialogPreference {
private final Context context;
private final String[] entryValues = {"DCIM", "Movies", "Pictures"};
private String mValue;
@@ -29,11 +29,10 @@ public class DownloadPathPreference extends DialogPreference {
public DownloadPathPreference(Context context, String title, StringSetting setting) {
super(context);
this.context = context;
this.setTitle(title);
this.setSummary(Environment.getExternalStorageDirectory().getPath() + "/" + setting.get());
this.setKey(setting.key);
this.setValue(setting.get());
setTitle(title);
setSummary(Environment.getExternalStorageDirectory().getPath() + "/" + setting.get());
setKey(setting.key);
setValue(setting.get());
}
public String getValue() {
@@ -59,6 +58,7 @@ public class DownloadPathPreference extends DialogPreference {
childDownloadPath = getValue().substring(getValue().indexOf("/") + 1);
mediaPathIndex = findIndexOf(currentMedia);
Context context = getContext();
LinearLayout dialogView = new LinearLayout(context);
RadioGroup mediaPath = new RadioGroup(context);
mediaPath.setLayoutParams(new RadioGroup.LayoutParams(-1, -2));
@@ -79,12 +79,10 @@ public class DownloadPathPreference extends DialogPreference {
downloadPath.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
@@ -99,6 +97,13 @@ public class DownloadPathPreference extends DialogPreference {
return dialogView;
}
@Override
protected void onBindView(View view) {
super.onBindView(view);
Utils.setTitleAndSummaryColor(getContext(), view);
}
@Override
protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
builder.setTitle("Download Path");

View File

@@ -2,16 +2,26 @@ package app.revanced.extension.tiktok.settings.preference;
import android.content.Context;
import android.preference.EditTextPreference;
import android.view.View;
import app.revanced.extension.shared.settings.StringSetting;
import app.revanced.extension.tiktok.Utils;
@SuppressWarnings("deprecation")
public class InputTextPreference extends EditTextPreference {
public InputTextPreference(Context context, String title, String summary, StringSetting setting) {
super(context);
this.setTitle(title);
this.setSummary(summary);
this.setKey(setting.key);
this.setText(setting.get());
setTitle(title);
setSummary(summary);
setKey(setting.key);
setText(setting.get());
}
@Override
protected void onBindView(View view) {
super.onBindView(view);
Utils.setTitleAndSummaryColor(getContext(), view);
}
}

View File

@@ -1,5 +1,6 @@
package app.revanced.extension.tiktok.settings.preference;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
@@ -14,11 +15,10 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import app.revanced.extension.shared.settings.StringSetting;
import app.revanced.extension.tiktok.Utils;
@SuppressWarnings("deprecation")
public class RangeValuePreference extends DialogPreference {
private final Context context;
private String minValue;
private String maxValue;
@@ -29,7 +29,6 @@ public class RangeValuePreference extends DialogPreference {
public RangeValuePreference(Context context, String title, String summary, StringSetting setting) {
super(context);
this.context = context;
setTitle(title);
setSummary(summary);
setKey(setting.key);
@@ -53,41 +52,52 @@ public class RangeValuePreference extends DialogPreference {
return mValue;
}
@SuppressLint("SetTextI18n")
@Override
protected View onCreateDialogView() {
minValue = getValue().split("-")[0];
maxValue = getValue().split("-")[1];
Context context = getContext();
LinearLayout dialogView = new LinearLayout(context);
dialogView.setOrientation(LinearLayout.VERTICAL);
// Min view
LinearLayout minView = new LinearLayout(context);
minView.setOrientation(LinearLayout.HORIZONTAL);
dialogView.addView(minView);
TextView min = new TextView(context);
min.setText("Min: ");
minView.addView(min);
EditText minEditText = new EditText(context);
minEditText.setInputType(InputType.TYPE_CLASS_NUMBER);
minEditText.setText(minValue);
minView.addView(minEditText);
dialogView.addView(minView);
// Max view
LinearLayout maxView = new LinearLayout(context);
maxView.setOrientation(LinearLayout.HORIZONTAL);
dialogView.addView(maxView);
TextView max = new TextView(context);
max.setText("Max: ");
maxView.addView(max);
EditText maxEditText = new EditText(context);
maxEditText.setInputType(InputType.TYPE_CLASS_NUMBER);
maxEditText.setText(maxValue);
maxView.addView(maxEditText);
dialogView.addView(maxView);
minEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
@@ -98,12 +108,10 @@ public class RangeValuePreference extends DialogPreference {
maxEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
@@ -111,12 +119,21 @@ public class RangeValuePreference extends DialogPreference {
maxValue = editable.toString();
}
});
return dialogView;
}
@Override
protected void onBindView(View view) {
super.onBindView(view);
Utils.setTitleAndSummaryColor(getContext(), view);
}
@Override
protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
builder.setPositiveButton(android.R.string.ok, (dialog, which) -> this.onClick(dialog, DialogInterface.BUTTON_POSITIVE));
builder.setPositiveButton(android.R.string.ok, (dialog, which)
-> this.onClick(dialog, DialogInterface.BUTTON_POSITIVE));
builder.setNegativeButton(android.R.string.cancel, null);
}

View File

@@ -18,14 +18,12 @@ import org.jetbrains.annotations.NotNull;
public class ReVancedPreferenceFragment extends AbstractPreferenceFragment {
@Override
protected void syncSettingWithPreference(@NonNull @NotNull Preference pref,
@NonNull @NotNull Setting<?> setting,
protected void syncSettingWithPreference(@NonNull Preference pref,
@NonNull Setting<?> setting,
boolean applySettingToPreference) {
if (pref instanceof RangeValuePreference) {
RangeValuePreference rangeValuePref = (RangeValuePreference) pref;
if (pref instanceof RangeValuePreference rangeValuePref) {
Setting.privateSetValueFromString(setting, rangeValuePref.getValue());
} else if (pref instanceof DownloadPathPreference) {
DownloadPathPreference downloadPathPref = (DownloadPathPreference) pref;
} else if (pref instanceof DownloadPathPreference downloadPathPref) {
Setting.privateSetValueFromString(setting, downloadPathPref.getValue());
} else {
super.syncSettingWithPreference(pref, setting, applySettingToPreference);

View File

@@ -1,13 +1,15 @@
package app.revanced.extension.tiktok.settings.preference;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import java.util.Map;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.settings.preference.ReVancedAboutPreference;
import app.revanced.extension.tiktok.Utils;
@SuppressWarnings("deprecation")
public class ReVancedTikTokAboutPreference extends ReVancedAboutPreference {
/**
@@ -23,22 +25,11 @@ public class ReVancedTikTokAboutPreference extends ReVancedAboutPreference {
"revanced_settings_about_links_header", "Official links"
);
{
//noinspection deprecation
setTitle("About");
}
public ReVancedTikTokAboutPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
public ReVancedTikTokAboutPreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public ReVancedTikTokAboutPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ReVancedTikTokAboutPreference(Context context) {
super(context);
setTitle("About");
setSummary("About ReVanced");
}
@Override
@@ -52,4 +43,11 @@ public class ReVancedTikTokAboutPreference extends ReVancedAboutPreference {
return String.format(format, args);
}
@Override
protected void onBindView(View view) {
super.onBindView(view);
Utils.setTitleAndSummaryColor(getContext(), view);
}
}

View File

@@ -2,16 +2,26 @@ package app.revanced.extension.tiktok.settings.preference;
import android.content.Context;
import android.preference.SwitchPreference;
import android.view.View;
import app.revanced.extension.shared.settings.BooleanSetting;
import app.revanced.extension.tiktok.Utils;
@SuppressWarnings("deprecation")
public class TogglePreference extends SwitchPreference {
public TogglePreference(Context context, String title, String summary, BooleanSetting setting) {
super(context);
this.setTitle(title);
this.setSummary(summary);
this.setKey(setting.key);
this.setChecked(setting.get());
setTitle(title);
setSummary(summary);
setKey(setting.key);
setChecked(setting.get());
}
@Override
protected void onBindView(View view) {
super.onBindView(view);
Utils.setTitleAndSummaryColor(getContext(), view);
}
}

View File

@@ -18,7 +18,7 @@ public final class ChangeStartPagePatch {
/**
* Unmodified type, and same as un-patched.
*/
ORIGINAL("", null),
DEFAULT("", null),
/**
* Browse id.

View File

@@ -30,7 +30,7 @@ public final class MiniplayerPatch {
*/
DISABLED(false, null),
/** Unmodified type, and same as un-patched. */
ORIGINAL(null, null),
DEFAULT(null, null),
/**
* Exactly the same as MINIMAL and only here for migration of user settings.
* Eventually this should be deleted.
@@ -182,7 +182,7 @@ public final class MiniplayerPatch {
* effectively disabling the miniplayer.
*/
public static boolean getMiniplayerOnCloseHandler(boolean original) {
return CURRENT_TYPE == ORIGINAL
return CURRENT_TYPE == DEFAULT
? original
: CURRENT_TYPE == DISABLED;
}
@@ -201,7 +201,7 @@ public final class MiniplayerPatch {
* Injection point.
*/
public static boolean getModernMiniplayerOverride(boolean original) {
return CURRENT_TYPE == ORIGINAL
return CURRENT_TYPE == DEFAULT
? original
: CURRENT_TYPE.isModern();
}
@@ -229,7 +229,7 @@ public final class MiniplayerPatch {
* Injection point.
*/
public static boolean getModernFeatureFlagsActiveOverride(boolean original) {
if (CURRENT_TYPE == ORIGINAL) {
if (CURRENT_TYPE == DEFAULT) {
return original;
}
@@ -240,7 +240,7 @@ public final class MiniplayerPatch {
* Injection point.
*/
public static boolean enableMiniplayerDoubleTapAction(boolean original) {
if (CURRENT_TYPE == ORIGINAL) {
if (CURRENT_TYPE == DEFAULT) {
return original;
}
@@ -251,7 +251,7 @@ public final class MiniplayerPatch {
* Injection point.
*/
public static boolean enableMiniplayerDragAndDrop(boolean original) {
if (CURRENT_TYPE == ORIGINAL) {
if (CURRENT_TYPE == DEFAULT) {
return original;
}

View File

@@ -142,7 +142,7 @@ public class Settings extends BaseSettings {
public static final IntegerSetting PLAYER_OVERLAY_OPACITY = new IntegerSetting("revanced_player_overlay_opacity", 100, true);
public static final BooleanSetting OPEN_VIDEOS_FULLSCREEN_PORTRAIT = new BooleanSetting("revanced_open_videos_fullscreen_portrait", FALSE);
// Miniplayer
public static final EnumSetting<MiniplayerType> MINIPLAYER_TYPE = new EnumSetting<>("revanced_miniplayer_type", MiniplayerType.ORIGINAL, true);
public static final EnumSetting<MiniplayerType> MINIPLAYER_TYPE = new EnumSetting<>("revanced_miniplayer_type", MiniplayerType.DEFAULT, true);
private static final Availability MINIPLAYER_ANY_MODERN = MINIPLAYER_TYPE.availability(MODERN_1, MODERN_2, MODERN_3, MODERN_4);
public static final BooleanSetting MINIPLAYER_DOUBLE_TAP_ACTION = new BooleanSetting("revanced_miniplayer_double_tap_action", TRUE, true, MINIPLAYER_ANY_MODERN);
public static final BooleanSetting MINIPLAYER_DRAG_AND_DROP = new BooleanSetting("revanced_miniplayer_drag_and_drop", TRUE, true, MINIPLAYER_ANY_MODERN);
@@ -204,7 +204,7 @@ public class Settings extends BaseSettings {
public static final BooleanSetting SPOOF_APP_VERSION = new BooleanSetting("revanced_spoof_app_version", FALSE, true, "revanced_spoof_app_version_user_dialog_message");
public static final BooleanSetting TABLET_LAYOUT = new BooleanSetting("revanced_tablet_layout", FALSE, true, "revanced_tablet_layout_user_dialog_message");
public static final BooleanSetting WIDE_SEARCHBAR = new BooleanSetting("revanced_wide_searchbar", FALSE, true);
public static final EnumSetting<StartPage> CHANGE_START_PAGE = new EnumSetting<>("revanced_change_start_page", StartPage.ORIGINAL, true);
public static final EnumSetting<StartPage> CHANGE_START_PAGE = new EnumSetting<>("revanced_change_start_page", StartPage.DEFAULT, true);
public static final StringSetting SPOOF_APP_VERSION_TARGET = new StringSetting("revanced_spoof_app_version_target", IS_19_17_OR_GREATER ? "19.35.36" : "17.33.42", true, parent(SPOOF_APP_VERSION));
// Custom filter
public static final BooleanSetting CUSTOM_FILTER = new BooleanSetting("revanced_custom_filter", FALSE);

View File

@@ -0,0 +1,85 @@
package app.revanced.extension.youtube.settings.preference;
import static app.revanced.extension.shared.StringRef.str;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.Preference;
import android.preference.PreferenceManager;
import android.util.AttributeSet;
import androidx.annotation.Nullable;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.shared.settings.BaseSettings;
import app.revanced.extension.shared.settings.Setting;
import app.revanced.extension.shared.spoof.ClientType;
@SuppressWarnings({"deprecation", "unused"})
public class SpoofStreamingDataSideEffectsPreference extends Preference {
@Nullable
private ClientType currentClientType;
private final SharedPreferences.OnSharedPreferenceChangeListener listener = (sharedPreferences, str) -> {
// Because this listener may run before the ReVanced settings fragment updates Settings,
// this could show the prior config and not the current.
//
// Push this call to the end of the main run queue,
// so all other listeners are done and Settings is up to date.
Utils.runOnMainThread(this::updateUI);
};
public SpoofStreamingDataSideEffectsPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
public SpoofStreamingDataSideEffectsPreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public SpoofStreamingDataSideEffectsPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SpoofStreamingDataSideEffectsPreference(Context context) {
super(context);
}
private void addChangeListener() {
Setting.preferences.preferences.registerOnSharedPreferenceChangeListener(listener);
}
private void removeChangeListener() {
Setting.preferences.preferences.unregisterOnSharedPreferenceChangeListener(listener);
}
@Override
protected void onAttachedToHierarchy(PreferenceManager preferenceManager) {
super.onAttachedToHierarchy(preferenceManager);
updateUI();
addChangeListener();
}
@Override
protected void onPrepareForRemoval() {
super.onPrepareForRemoval();
removeChangeListener();
}
private void updateUI() {
ClientType clientType = BaseSettings.SPOOF_VIDEO_STREAMS_CLIENT_TYPE.get();
if (currentClientType == clientType) {
return;
}
Logger.printDebug(() -> "Updating spoof stream side effects preference");
setEnabled(BaseSettings.SPOOF_VIDEO_STREAMS.get());
String key = "revanced_spoof_video_streams_about_"
+ clientType.name().toLowerCase();
setTitle(str(key + "_title"));
setSummary(str(key + "_summary"));
}
}

View File

@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
org.gradle.parallel = true
android.useAndroidX = true
kotlin.code.style = official
version = 5.3.0-dev.6
version = 5.4.0-dev.8

View File

@@ -60,6 +60,10 @@ public final class app/revanced/patches/all/misc/directory/ChangeDataDirectoryLo
public static final fun getChangeDataDirectoryLocationPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
}
public final class app/revanced/patches/all/misc/directory/documentsprovider/ExportInternalDataDocumentsProviderPatchKt {
public static final fun getExportInternalDataDocumentsProviderPatch ()Lapp/revanced/patcher/patch/ResourcePatch;
}
public final class app/revanced/patches/all/misc/hex/HexPatchKt {
public static final fun getHexPatch ()Lapp/revanced/patcher/patch/RawResourcePatch;
}

View File

@@ -1,58 +1,19 @@
package app.revanced.patches.all.misc.directory
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patches.all.misc.transformation.transformInstructionsPatch
import app.revanced.util.getReference
import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction35c
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
import com.android.tools.smali.dexlib2.immutable.reference.ImmutableMethodReference
import com.android.tools.smali.dexlib2.util.MethodUtil
import app.revanced.patches.all.misc.directory.documentsprovider.exportInternalDataDocumentsProviderPatch
@Suppress("unused")
@Deprecated(
"Superseded by internalDataDocumentsProviderPatch",
ReplaceWith("internalDataDocumentsProviderPatch"),
)
val changeDataDirectoryLocationPatch = bytecodePatch(
name = "Change data directory location",
// name = "Change data directory location",
description = "Changes the data directory in the application from " +
"the app internal storage directory to /sdcard/android/data accessible by root-less devices." +
"Using this patch can cause unexpected issues with some apps.",
use = false,
) {
dependsOn(
transformInstructionsPatch(
filterMap = filter@{ _, _, instruction, instructionIndex ->
val reference = instruction.getReference<MethodReference>() ?: return@filter null
if (!MethodUtil.methodSignaturesMatch(reference, MethodCall.GetDir.reference)) {
return@filter null
}
return@filter instructionIndex
},
transform = { method, index ->
val getDirInstruction = method.getInstruction<Instruction35c>(index)
val contextRegister = getDirInstruction.registerC
val dataRegister = getDirInstruction.registerD
method.replaceInstruction(
index,
"invoke-virtual { v$contextRegister, v$dataRegister }, " +
"Landroid/content/Context;->getExternalFilesDir(Ljava/lang/String;)Ljava/io/File;",
)
},
),
)
}
private enum class MethodCall(
val reference: MethodReference,
) {
GetDir(
ImmutableMethodReference(
"Landroid/content/Context;",
"getDir",
listOf("Ljava/lang/String;", "I"),
"Ljava/io/File;",
),
),
dependsOn(exportInternalDataDocumentsProviderPatch)
}

View File

@@ -0,0 +1,58 @@
package app.revanced.patches.all.misc.directory.documentsprovider
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.patcher.patch.resourcePatch
import app.revanced.util.asSequence
import app.revanced.util.getNode
@Suppress("unused")
val exportInternalDataDocumentsProviderPatch = resourcePatch(
name = "Export internal data documents provider",
description = "Exports a documents provider that grants access to the internal data directory of this app " +
"to file managers and other apps that support the Storage Access Framework.",
use = false,
) {
dependsOn(
bytecodePatch {
extendWith("extensions/all/misc/directory/export-internal-data-documents-provider.rve")
},
)
execute {
val documentsProviderClass =
"app.revanced.extension.all.misc.directory.documentsprovider.InternalDataDocumentsProvider"
document("AndroidManifest.xml").use { document ->
// Check if the provider is already declared
if (document.getElementsByTagName("provider")
.asSequence()
.any { it.attributes.getNamedItem("android:name")?.nodeValue == documentsProviderClass }
) {
return@execute
}
val authority =
document.getNode("manifest").attributes.getNamedItem("package").let {
// Select a URI authority name that is unique to the current app
"${it.nodeValue}.$documentsProviderClass"
}
// Register the documents provider
with(document.getNode("application")) {
document.createElement("provider").apply {
setAttribute("android:name", documentsProviderClass)
setAttribute("android:authorities", authority)
setAttribute("android:exported", "true")
setAttribute("android:grantUriPermissions", "true")
setAttribute("android:permission", "android.permission.MANAGE_DOCUMENTS")
document.createElement("intent-filter").apply {
document.createElement("action").apply {
setAttribute("android:name", "android.content.action.DOCUMENTS_PROVIDER")
}.let(this::appendChild)
}.let(this::appendChild)
}.let(this::appendChild)
}
}
}
}

View File

@@ -1,8 +1,8 @@
package app.revanced.patches.all.misc.packagename
import app.revanced.patcher.patch.Option
import app.revanced.patcher.patch.resourcePatch
import app.revanced.patcher.patch.stringOption
import app.revanced.patcher.patch.*
import app.revanced.util.asSequence
import app.revanced.util.getNode
import org.w3c.dom.Element
import java.util.logging.Logger
@@ -28,7 +28,8 @@ fun setOrGetFallbackPackageName(fallbackPackageName: String): String {
val changePackageNamePatch = resourcePatch(
name = "Change package name",
description = "Appends \".revanced\" to the package name by default. Changing the package name of the app can lead to unexpected issues.",
description = "Appends \".revanced\" to the package name by default. " +
"Changing the package name of the app can lead to unexpected issues.",
use = false,
) {
packageNameOption = stringOption(
@@ -42,40 +43,81 @@ val changePackageNamePatch = resourcePatch(
it == "Default" || it!!.matches(Regex("^[a-z]\\w*(\\.[a-z]\\w*)+\$"))
}
/**
* Apps that are confirmed to not work correctly with this patch.
* This is not an exhaustive list, and is only the apps with
* ReVanced specific patches and are confirmed incompatible with this patch.
*/
val incompatibleAppPackages = setOf(
// Cannot login, settings menu is broken.
"com.reddit.frontpage",
val updatePermissions by booleanOption(
key = "updatePermissions",
default = false,
title = "Update permissions",
description = "Update compatibility receiver permissions. " +
"Enabling this can fix installation errors, but this can also break features in certain apps.",
)
// Patches and installs but crashes on launch.
"com.duolingo",
"com.twitter.android",
"tv.twitch.android.app",
val updateProviders by booleanOption(
key = "updateProviders",
default = false,
title = "Update providers",
description = "Update provider names declared by the app. " +
"Enabling this can fix installation errors, but this can also break features in certain apps.",
)
finalize {
document("AndroidManifest.xml").use { document ->
val manifest = document.getElementsByTagName("manifest").item(0) as Element
val originalPackageName = manifest.getAttribute("package")
/**
* Apps that are confirmed to not work correctly with this patch.
* This is not an exhaustive list, and is only the apps with
* ReVanced specific patches and are confirmed incompatible with this patch.
*/
val incompatibleAppPackages = setOf(
// Cannot log in, settings menu is broken.
"com.reddit.frontpage",
if (incompatibleAppPackages.contains(originalPackageName)) {
// Patches and installs but crashes on launch.
"com.duolingo",
"com.twitter.android",
"tv.twitch.android.app",
)
document("AndroidManifest.xml").use { document ->
val manifest = document.getNode("manifest") as Element
val packageName = manifest.getAttribute("package")
if (incompatibleAppPackages.contains(packageName)) {
return@finalize Logger.getLogger(this::class.java.name).severe(
"'$originalPackageName' does not work correctly with \"Change package name\"")
"'$packageName' does not work correctly with \"Change package name\"",
)
}
val replacementPackageName = packageNameOption.value
manifest.setAttribute(
"package",
if (replacementPackageName != packageNameOption.default) {
replacementPackageName
} else {
"${originalPackageName}.revanced"
},
)
val newPackageName = if (replacementPackageName != packageNameOption.default) {
replacementPackageName!!
} else {
"$packageName.revanced"
}
manifest.setAttribute("package", newPackageName)
if (updatePermissions == true) {
val permissions = manifest.getElementsByTagName("permission").asSequence()
val usesPermissions = manifest.getElementsByTagName("uses-permission").asSequence()
val receiverNotExported = "DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"
(permissions + usesPermissions)
.map { it as Element }
.filter { it.getAttribute("android:name") == "$packageName.$receiverNotExported" }
.forEach { it.setAttribute("android:name", "$newPackageName.$receiverNotExported") }
}
if (updateProviders == true) {
val providers = manifest.getElementsByTagName("provider").asSequence()
for (node in providers) {
val provider = node as Element
val authorities = provider.getAttribute("android:authorities")
if (!authorities.startsWith("$packageName.")) continue
provider.setAttribute("android:authorities", authorities.replace(packageName, newPackageName))
}
}
}
}
}

View File

@@ -1,22 +1,16 @@
package app.revanced.patches.music.misc.androidauto
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.bytecodePatch
import app.revanced.util.returnEarly
@Suppress("unused")
val bypassCertificateChecksPatch = bytecodePatch(
name = "Bypass certificate checks",
description = "Bypasses certificate checks which prevent YouTube Music from working on Android Auto.",
) {
compatibleWith("com.google.android.apps.youtube.music")
compatibleWith("com.google.android.apps.youtube.music"("7.29.52"))
execute {
checkCertificateFingerprint.method.addInstructions(
0,
"""
const/4 v0, 0x1
return v0
""",
)
checkCertificateFingerprint.method.returnEarly(true)
}
}

View File

@@ -1,7 +1,15 @@
package app.revanced.patches.music.misc.spoof
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patches.music.misc.gms.musicActivityOnCreateFingerprint
import app.revanced.patches.shared.misc.spoof.EXTENSION_CLASS_DESCRIPTOR
import app.revanced.patches.shared.misc.spoof.spoofVideoStreamsPatch
val spoofVideoStreamsPatch = spoofVideoStreamsPatch({
compatibleWith("com.google.android.apps.youtube.music")
})
}, {
musicActivityOnCreateFingerprint.method.addInstruction(
0,
"invoke-static { }, $EXTENSION_CLASS_DESCRIPTOR->setClientTypeToAndroidVrNoHl()V"
)
})

View File

@@ -23,7 +23,7 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference
import com.android.tools.smali.dexlib2.immutable.ImmutableMethod
import com.android.tools.smali.dexlib2.immutable.ImmutableMethodParameter
private const val EXTENSION_CLASS_DESCRIPTOR =
internal const val EXTENSION_CLASS_DESCRIPTOR =
"Lapp/revanced/extension/shared/spoof/SpoofVideoStreamsPatch;"
fun spoofVideoStreamsPatch(

View File

@@ -40,9 +40,16 @@ val spoofVideoStreamsPatch = spoofVideoStreamsPatch({
"revanced_spoof_video_streams_client",
summaryKey = null,
),
ListPreference(
"revanced_spoof_video_streams_language",
summaryKey = null
),
SwitchPreference("revanced_spoof_video_streams_ios_force_avc"),
NonInteractivePreference("revanced_spoof_video_streams_about_android_vr"),
NonInteractivePreference("revanced_spoof_video_streams_about_ios"),
// Preference requires a title but the actual text is chosen at runtime.
NonInteractivePreference(
key = "revanced_spoof_video_streams_about_android_vr",
tag = "app.revanced.extension.youtube.settings.preference.SpoofStreamingDataSideEffectsPreference"
),
),
),
)

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -709,6 +709,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">تم إخفاء لوحات المشغل المنبثقة</string>
<string name="revanced_hide_player_popup_panels_summary_off">يتم عرض لوحات المشغل المنبثقة</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">فتح مقاطع الفيديو في ملء الشاشة</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">الفيديو فتح ملء الشاشة</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">الفيديو لا تفتح ملء الشاشة</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">شفافية تراكب المشغل</string>
<string name="revanced_player_overlay_opacity_summary">قيمة الشفافية بين 0-100، حيث يكون 0 شفاف</string>
@@ -1012,7 +1017,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">تغيير نمط المشغل المصغر داخل التطبيق</string>
<string name="revanced_miniplayer_type_title">نوع المشغل المصغر</string>
<string name="revanced_miniplayer_type_entry_0">معطّل</string>
<string name="revanced_miniplayer_type_entry_1">الأصلي</string>
<string name="revanced_miniplayer_type_entry_1">إفتراضي</string>
<string name="revanced_miniplayer_type_entry_2">الحد الأدنى</string>
<string name="revanced_miniplayer_type_entry_3">الجهاز اللوحي</string>
<string name="revanced_miniplayer_type_entry_4">حديث 1</string>
@@ -1200,14 +1205,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">إيقاف تشغيل هذا الإعداد قد يسبب مشاكل في تشغيل الفيديو.</string>
<string name="revanced_spoof_video_streams_client_title">العميل الافتراضي</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">فرض AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">ترميز الفيديو هو AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">ترميز الفيديو هو VP9 أو AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">لا يحتوي جهازك على فك تشفير الأجهزة VP9، وهذا الإعداد يعمل دائما عند تمكين تزييف العميل</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">قد يؤدي تمكين هذا إلى تحسين عمر البطارية وإصلاح مشكلة تقطيع التشغيل.\n\nيتمتع تنسيق AVC بدقة قصوى تبلغ 1080P، وسيستخدم تشغيل الفيديو المزيد من بيانات الإنترنت مقارنةً بتنسيق VP9 أو AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">كود الفيديو مرغم على AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">يتم تحديد رمز الفيديو تلقائياً</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">تمكين هذا قد يحسّن عمر البطارية وإصلاح تشغيل التشغيل.\n\nAVC لها حد أقصى قدره 1080p، رمز الصوت Opus غير متوفر. وسيستخدم تشغيل الفيديو بيانات إنترنت أكثر من VP9 أو AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">التأثيرات الجانبية لمحاكاة iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• قد لا يتم تشغيل فيديوهات الأطفال الخاصة\n• تبدأ البثوث المباشر من البداية\n• قد تنتهي الفيديوهات قبل النهاية بثانية واحدة\n• لا يوجد ترميز الصوت opus</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• قد لا تشغل مقاطع فيديو الأطفال الخاصون\n• قد لا تشغل مقاطع الفيديو المقيدة العمر\n• تبدأ Livestreams من بداية\n• تنتهي مقاطع الفيديو 1 ثانية في وقت مبكر</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">التأثيرات الجانبية لمحاكاة Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• قد لا يتم تشغيل فيديوهات الأطفال\n• قائمة المقطع الصوتي مفقودة\n• مستوى الصوت الثابت غير متوفر</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• قد لا تشغل مقاطع فيديو الأطفال\n• قد لا تشغل مقاطع الفيديو المقيدة العمر\n• تبدأ Livestreams من بداية\n• تنتهي مقاطع الفيديو 1 ثانية في وقت مبكر</string>
<string name="revanced_spoof_video_streams_language_title">لغة البث الصوتي الافتراضية</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">لغة التطبيق</string>
<string name="revanced_spoof_video_streams_language_AR">العربية</string>
<string name="revanced_spoof_video_streams_language_AZ">الأذربيجانية</string>
<string name="revanced_spoof_video_streams_language_BG">البلغاري</string>
<string name="revanced_spoof_video_streams_language_BN">البنغالي</string>
<string name="revanced_spoof_video_streams_language_CA">الكاتالونية</string>
<string name="revanced_spoof_video_streams_language_CS">التشيكية</string>
<string name="revanced_spoof_video_streams_language_DA">الدانماركية</string>
<string name="revanced_spoof_video_streams_language_DE">الألمانية</string>
<string name="revanced_spoof_video_streams_language_EL">اليونانية</string>
<string name="revanced_spoof_video_streams_language_EN">الإنجليزية</string>
<string name="revanced_spoof_video_streams_language_ES">الإسبانية</string>
<string name="revanced_spoof_video_streams_language_ET">الإستونية</string>
<string name="revanced_spoof_video_streams_language_FA">الفارسية</string>
<string name="revanced_spoof_video_streams_language_FI">الفنلندية</string>
<string name="revanced_spoof_video_streams_language_FR">الفرنسية</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">الهندية</string>
<string name="revanced_spoof_video_streams_language_HR">الكرواتية</string>
<string name="revanced_spoof_video_streams_language_HU">الهنغارية</string>
<string name="revanced_spoof_video_streams_language_ID">الإندونيسية</string>
<string name="revanced_spoof_video_streams_language_IT">الإيطالية</string>
<string name="revanced_spoof_video_streams_language_JA">يابانية</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">الكورية</string>
<string name="revanced_spoof_video_streams_language_LT">ليتوانية</string>
<string name="revanced_spoof_video_streams_language_LV">لاتفيا</string>
<string name="revanced_spoof_video_streams_language_MK">مقدونية</string>
<string name="revanced_spoof_video_streams_language_MN">منغولي</string>
<string name="revanced_spoof_video_streams_language_MR">الماراثي</string>
<string name="revanced_spoof_video_streams_language_MS">الملايو</string>
<string name="revanced_spoof_video_streams_language_MY">Burmese</string>
<string name="revanced_spoof_video_streams_language_NL">الهولندية</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">البولندية</string>
<string name="revanced_spoof_video_streams_language_PT_BR">البرتغالية (البرازيل)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">البرتغالية (البرتغال)</string>
<string name="revanced_spoof_video_streams_language_RO">الرومانية</string>
<string name="revanced_spoof_video_streams_language_RU">الروسية</string>
<string name="revanced_spoof_video_streams_language_SK">السلوفاكية</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">الصربية</string>
<string name="revanced_spoof_video_streams_language_SV">السويدية</string>
<string name="revanced_spoof_video_streams_language_SW">سواحيلية</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">التايلندية</string>
<string name="revanced_spoof_video_streams_language_TR">تركية</string>
<string name="revanced_spoof_video_streams_language_UK">أوكراني</string>
<string name="revanced_spoof_video_streams_language_UR">الأردو</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamese</string>
<string name="revanced_spoof_video_streams_language_ZH">الصينية</string>
</patch>
</app>
<app id="twitch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -709,6 +709,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Oynadıcıılan pəncərə panelləri gizlidir</string>
<string name="revanced_hide_player_popup_panels_summary_off">Oynadıcıılan pəncərə panelləri göstərilir</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Videoları tam ekran təsvirində aç</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videolar tam ekranda açılır</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Videolar tam ekranda açılmır</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Oynadıcı örtüyünün qeyri-şəffaflığı</string>
<string name="revanced_player_overlay_opacity_summary">0-100 arasında qeyri-şəffaflıq dəyəri, burada 0 şəffafdır</string>
@@ -1012,7 +1017,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Tətbiqdə kiçildilən oynadıcı üslubunu dəyişdir</string>
<string name="revanced_miniplayer_type_title">Kiçik oynadıcı növü</string>
<string name="revanced_miniplayer_type_entry_0">Qeyri-aktivdir</string>
<string name="revanced_miniplayer_type_entry_1">Orijinal</string>
<string name="revanced_miniplayer_type_entry_1">İlkin</string>
<string name="revanced_miniplayer_type_entry_2">Ən kiçik</string>
<string name="revanced_miniplayer_type_entry_3">Planşet</string>
<string name="revanced_miniplayer_type_entry_4">Müasir 1</string>
@@ -1200,14 +1205,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Bu seçimi bağlamaq, video oynatma problemlərinə səbəb olar.</string>
<string name="revanced_spoof_video_streams_client_title">İlkin qəbuledici</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Məcburi AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Video kodlaşdırma: AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Video kodlaşdırma / VP9 və ya AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Cihazınızın VP9 hardware decoding\'i yoxdur və bu seçim, \"Qəbuledicini saxtalaşdırma\" aktivləşdikdə həmişəlikdir</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Bunu aktivləşdirmə batareya ömrünü yaxşılaşdıra və oynatma donmasını düzəldə bilər.\n\nAVC maksimum 1080p görüntü imkanına malikdir və video oynadılması VP9 və ya AV1-dən daha çox internet məlumatı istifadə edəcək.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Video kodlama AVC (H.264) -yə məcbur edilir</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Video kodlama birbaşa yoxlanılır</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Bunu aktivləşdirmə batareya ömrün yaxşılaşdıra və oynatma donmasını düzəldə bilər.\n\nAVC maksimum 1080p görüntü imkanına malikdir, Opus səs kodlama əlçatan deyil və video oynatma VP9 və ya AV1-dən daha çox internet resursu işlədəcək.</string>
<string name="revanced_spoof_video_streams_about_ios_title">iOS saxtakarlığı yan təsirləri</string>
<string name="revanced_spoof_video_streams_about_ios_summary">Şəxsi uşaq videoları oynadılmaya bilər\n• Canlı yayımlar başdan başlayır\n• Videolar 1 saniyə tez bitə bilər\n• Opus səs kodlama yoxdur</string>
<string name="revanced_spoof_video_streams_about_ios_summary">Şəxsi uşaq videoları oynadıla bilməz\n• Yaş məhdudiyyətli videolar oynadıla bilməz\n• Canlı yayımlar əvvəldən başlayır\n• Videolar 1 saniyə tez bitir</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR saxtakarlığı yan təsirləri</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">Uşaq videoları oynadılmaya bilər\n• Səs treki menyusu əskikdir\n• Sabit səs həcmi əlçatan deyil</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">Uşaq videoları oynadıla bilməz\n• Yaş məhdudiyyətli videolar oynadıla bilməz\n• Canlı yayımlar əvvəldən başlayır\n• Videolar 1 saniyə tez bitir</string>
<string name="revanced_spoof_video_streams_language_title">İlkin səs yayımı dili</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Tətbiq dili</string>
<string name="revanced_spoof_video_streams_language_AR">Ərəbcə</string>
<string name="revanced_spoof_video_streams_language_AZ">Azərbaycanca</string>
<string name="revanced_spoof_video_streams_language_BG">Bolqarca</string>
<string name="revanced_spoof_video_streams_language_BN">Benqalca</string>
<string name="revanced_spoof_video_streams_language_CA">Katalanca</string>
<string name="revanced_spoof_video_streams_language_CS">Çexcə</string>
<string name="revanced_spoof_video_streams_language_DA">Danimarka dili</string>
<string name="revanced_spoof_video_streams_language_DE">Almanca</string>
<string name="revanced_spoof_video_streams_language_EL">Yunanca</string>
<string name="revanced_spoof_video_streams_language_EN">İngiliscə</string>
<string name="revanced_spoof_video_streams_language_ES">İspanca</string>
<string name="revanced_spoof_video_streams_language_ET">Estonca</string>
<string name="revanced_spoof_video_streams_language_FA">Farsca</string>
<string name="revanced_spoof_video_streams_language_FI">Fincə</string>
<string name="revanced_spoof_video_streams_language_FR">Fransızca</string>
<string name="revanced_spoof_video_streams_language_GU">Qücərat dili</string>
<string name="revanced_spoof_video_streams_language_HI">Hindcə</string>
<string name="revanced_spoof_video_streams_language_HR">Xorvatca</string>
<string name="revanced_spoof_video_streams_language_HU">Macarca</string>
<string name="revanced_spoof_video_streams_language_ID">İndoneziya dili</string>
<string name="revanced_spoof_video_streams_language_IT">İtalyanca</string>
<string name="revanced_spoof_video_streams_language_JA">Yaponca</string>
<string name="revanced_spoof_video_streams_language_KK">Qazaxca</string>
<string name="revanced_spoof_video_streams_language_KO">Koreyaca</string>
<string name="revanced_spoof_video_streams_language_LT">Litvaca</string>
<string name="revanced_spoof_video_streams_language_LV">Letonca</string>
<string name="revanced_spoof_video_streams_language_MK">Makedon Dili</string>
<string name="revanced_spoof_video_streams_language_MN">Monqolca</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi dili</string>
<string name="revanced_spoof_video_streams_language_MS">Malay dili</string>
<string name="revanced_spoof_video_streams_language_MY">Birman dili</string>
<string name="revanced_spoof_video_streams_language_NL">Hollandca</string>
<string name="revanced_spoof_video_streams_language_OR">Oriya dili</string>
<string name="revanced_spoof_video_streams_language_PA">Pəncabca</string>
<string name="revanced_spoof_video_streams_language_PL">Polyak dili</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Portuqalca (Braziliya)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Portuqalca (Portəgiz)</string>
<string name="revanced_spoof_video_streams_language_RO">Rumınca</string>
<string name="revanced_spoof_video_streams_language_RU">Rusca</string>
<string name="revanced_spoof_video_streams_language_SK">Slovak dili</string>
<string name="revanced_spoof_video_streams_language_SL">Sloven dili</string>
<string name="revanced_spoof_video_streams_language_SR">Serbcə</string>
<string name="revanced_spoof_video_streams_language_SV">İsveçcə</string>
<string name="revanced_spoof_video_streams_language_SW">Suahili dili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamilcə</string>
<string name="revanced_spoof_video_streams_language_TE">Teluquca</string>
<string name="revanced_spoof_video_streams_language_TH">Tay dili</string>
<string name="revanced_spoof_video_streams_language_TR">Türkcə</string>
<string name="revanced_spoof_video_streams_language_UK">Ukrayna dili</string>
<string name="revanced_spoof_video_streams_language_UR">Urduca</string>
<string name="revanced_spoof_video_streams_language_VI">Vyetnamca</string>
<string name="revanced_spoof_video_streams_language_ZH">Çincə</string>
</patch>
</app>
<app id="twitch">

View File

@@ -637,6 +637,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Усплывальныя панэлі прайгравальніка схаваныя</string>
<string name="revanced_hide_player_popup_panels_summary_off">Паказваюцца ўсплывальныя панэлі прайгравальніка</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Непразрыстасць накладання прайгравальніка</string>
<string name="revanced_player_overlay_opacity_summary">Значэнне непразрыстасці паміж 0-100, дзе 0 - празрысты</string>
@@ -917,7 +919,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Змяніце стыль мінімізаванага плэера ў праграме</string>
<string name="revanced_miniplayer_type_title">Тып мініплэера</string>
<string name="revanced_miniplayer_type_entry_0">Інваліды</string>
<string name="revanced_miniplayer_type_entry_1">Арыгінал</string>
<string name="revanced_miniplayer_type_entry_1">Па змаўчанні</string>
<string name="revanced_miniplayer_type_entry_3">Планшэт</string>
<string name="revanced_miniplayer_type_entry_4">Сучасны 1</string>
<string name="revanced_miniplayer_type_entry_5">Сучасны 2</string>

View File

@@ -709,6 +709,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Изскачащите панели на плейъра са скрити</string>
<string name="revanced_hide_player_popup_panels_summary_off">Изскачащите панели на плейъра се показват</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Отваряне на видеоклипове в портретен режим на цял екран</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Видеоклиповете се отварят на цял екран</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Видеоклиповете Не се отварят на цял екран</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Прозрачност на настройките в Плеара</string>
<string name="revanced_player_overlay_opacity_summary">Стойност на прозрачност между 0-100, където 0 е прозрачно</string>
@@ -1012,7 +1017,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Променете стила на минимизирания екран за възпроизвеждане</string>
<string name="revanced_miniplayer_type_title">Минимизиран тип екран за гледане</string>
<string name="revanced_miniplayer_type_entry_0">Деактивирано</string>
<string name="revanced_miniplayer_type_entry_1">Оригинал</string>
<string name="revanced_miniplayer_type_entry_1">По подразбиране</string>
<string name="revanced_miniplayer_type_entry_2">Минимално</string>
<string name="revanced_miniplayer_type_entry_3">Таблет</string>
<string name="revanced_miniplayer_type_entry_4">Модерен 1</string>
@@ -1200,14 +1205,13 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Деактивирането на тази настройка ще доведе до проблеми с възпроизвеждането на видео.</string>
<string name="revanced_spoof_video_streams_client_title">Клиент по подразбиране</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Принудително AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Видеокодека е AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Видеокодека е VP9 или AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Вашето устройство няма хардуерно VP9 декодиране и тази настройка винаги е активирана, когато е активно подправяне на клиента</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Активирането на това може да подобри живота на батерията и да коригира прекъсванията при възпроизвеждане.\n\nAVC има максимална разделителна способност от 1080p и възпроизвеждането на видео ще използва повече интернет данни от VP9 или AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Видео кодек по подразбиране AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Видео кодекът се определя автоматично</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Активирането на това може да подобри живота на батерията и да коригира прекъсванията при възпроизвеждане.\n\nAVC има максимална разделителна способност от 1080p, аудиокодек Opus не е наличен и възпроизвеждането на видео ще използва повече интернет данни от VP9 или AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">ранични ефекти от подмяната на iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Платените видеоклипове за деца може да не се възпроизвеждат\n• Потоците на живо започват отначало\n• Видеоклиповете може да завършват 1 секунда по-рано\n• Няма аудиокодек Opus</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Странични ефекти от подправяне на Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Детските видеоклипове може да не се възпроизвеждат\n• Липсва менюто за аудио запис\n• Не е налична стабилна сила на звука</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Език на приложението</string>
<string name="revanced_spoof_video_streams_language_BG">Български</string>
</patch>
</app>
<app id="twitch">

View File

@@ -629,6 +629,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">প্লেয়ার পপআপ প্যানেলগুলো লুকিয়ে রয়েছে</string>
<string name="revanced_hide_player_popup_panels_summary_off">প্লেয়ার পপআপ প্যানেলগুলো প্রদর্শিত হয়েছে</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">প্লেয়ার ওভারলে অস্বচ্ছতা</string>
<string name="revanced_player_overlay_opacity_summary">অসচ্ছতা মান -১০০ এর মধ্যে, যেখানে হল সম্পূর্ণ স্বচ্ছ</string>
@@ -908,7 +910,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">অ্যাপের মধ্যকার মিনিমাইজড প্লেয়ার এর ধরণ পরিবর্তন করুন</string>
<string name="revanced_miniplayer_type_title">মিনিপ্লেয়ার ধরণ</string>
<string name="revanced_miniplayer_type_entry_0">নিষ্ক্রিয় হয়েছে</string>
<string name="revanced_miniplayer_type_entry_1">আসল</string>
<string name="revanced_miniplayer_type_entry_1">পূর্ব-নির্ধারিত</string>
<string name="revanced_miniplayer_type_entry_3">ট্যাবলেট</string>
<string name="revanced_miniplayer_type_entry_4">মর্ডান ১</string>
<string name="revanced_miniplayer_type_entry_5">মর্ডান ২</string>
@@ -1066,8 +1068,6 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">এই সেটিংটি বন্ধ করার ফলে ভিডিও প্লেব্যাক ত্রুটি হতে পারে।</string>
<string name="revanced_spoof_video_streams_client_title">ডিফল্ট ক্লায়েন্ট</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">AVC (H.264) ফোর্স করুন</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">ভিডিও কোডেক AVC (H.264) ব্যবহৃত হচ্ছে</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">ভিডিও কোডেক VP9 বা AV1 ব্যবহৃত হচ্ছে</string>
</patch>
</app>
<app id="twitch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -149,6 +149,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -710,6 +710,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Vyskakovací panely přehrávače jsou skryty</string>
<string name="revanced_hide_player_popup_panels_summary_off">Zobrazí se vyskakovací panely přehrávače</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Otevřít videa na výšku na celou obrazovku</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videa otevřená na celou obrazovku</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Videa neotevírají celou obrazovku</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Neprůhlednost překrytí přehrávače</string>
<string name="revanced_player_overlay_opacity_summary">Neprůhlednost mezi 0-100, kde 0 je průhledná</string>
@@ -1013,7 +1018,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Změnit styl přehrávače minimalizovaného nastavení</string>
<string name="revanced_miniplayer_type_title">Typ minipřehrávače</string>
<string name="revanced_miniplayer_type_entry_0">Vypnuto</string>
<string name="revanced_miniplayer_type_entry_1">Původní</string>
<string name="revanced_miniplayer_type_entry_1">Výchozí</string>
<string name="revanced_miniplayer_type_entry_2">Minimální</string>
<string name="revanced_miniplayer_type_entry_3">Tablet</string>
<string name="revanced_miniplayer_type_entry_4">Moderní 1</string>
@@ -1201,14 +1206,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Vypnutí tohoto nastavení může způsobit problémy při přehrávání videa.</string>
<string name="revanced_spoof_video_streams_client_title">Výchozí klient</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Síla AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Video kodek je AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Video kodek je VP9 nebo AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Vaše zařízení nemá hardwarové dekódování VP9 a toto nastavení je vždy zapnuto, když je aktivní spoofování klienta</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Povolení této funkce může zlepšit životnost baterie a opravit stahování přehrávání.\n\nAVC má maximální rozlišení 1080p a video přehrávání bude používat více dat než VP9 nebo AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Kodek videa je nucen k AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Kodek videa je určen automaticky</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Povolení této funkce může zlepšit životnost baterie a opravit stahování přehrávání.\n\nAVC má maximální rozlišení 1080p, Opus audio kodek není k dispozici, a přehrávání videa bude používat více dat na internetu než VP9 nebo AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Boční efekty iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Soukromá dětská videa nemusí přehrávat\n• Živočišná zvířata začínající od začátku\n• Videa mohou skončit 1 sekundu na začátku\n• Žádný opus zvukový kodek</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Soukromé děti videa nemusí přehrávat\n• Věkově omezená videa nemusí přehrát\n• Živočišné sny začínající od začátku\n• Videa končí 1 sekundu na začátku</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Boční efekty Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Dětská videa nemusí přehrát\n• Menu zvukové stopy chybí\n• Stabilní hlasitost není k dispozici</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Dětská videa nemusí přehrávat\n• Věkově omezená videa nemusí přehrát\n• Životní sny začínající od začátku\n• Videa ukončí 1 sekundu</string>
<string name="revanced_spoof_video_streams_language_title">Výchozí jazyk audio streamu</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Jazyk aplikace</string>
<string name="revanced_spoof_video_streams_language_AR">Arabština</string>
<string name="revanced_spoof_video_streams_language_AZ">Ázerbájdžán</string>
<string name="revanced_spoof_video_streams_language_BG">Bulharština</string>
<string name="revanced_spoof_video_streams_language_BN">bengálština</string>
<string name="revanced_spoof_video_streams_language_CA">Katalánština</string>
<string name="revanced_spoof_video_streams_language_CS">Čeština</string>
<string name="revanced_spoof_video_streams_language_DA">Dánština</string>
<string name="revanced_spoof_video_streams_language_DE">Němčina</string>
<string name="revanced_spoof_video_streams_language_EL">Řečtina</string>
<string name="revanced_spoof_video_streams_language_EN">Angličtina</string>
<string name="revanced_spoof_video_streams_language_ES">Španělština</string>
<string name="revanced_spoof_video_streams_language_ET">Estonština</string>
<string name="revanced_spoof_video_streams_language_FA">Perština</string>
<string name="revanced_spoof_video_streams_language_FI">Finština</string>
<string name="revanced_spoof_video_streams_language_FR">Francouzština</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindština</string>
<string name="revanced_spoof_video_streams_language_HR">Chorvatština</string>
<string name="revanced_spoof_video_streams_language_HU">Maďarština</string>
<string name="revanced_spoof_video_streams_language_ID">Indonéština</string>
<string name="revanced_spoof_video_streams_language_IT">Italština</string>
<string name="revanced_spoof_video_streams_language_JA">Japonština</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">Korejština</string>
<string name="revanced_spoof_video_streams_language_LT">Litevština</string>
<string name="revanced_spoof_video_streams_language_LV">lotyšština</string>
<string name="revanced_spoof_video_streams_language_MK">makedonština</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolština</string>
<string name="revanced_spoof_video_streams_language_MR">Maráthština</string>
<string name="revanced_spoof_video_streams_language_MS">Malajština</string>
<string name="revanced_spoof_video_streams_language_MY">Burmese</string>
<string name="revanced_spoof_video_streams_language_NL">Holandština</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polština</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Portugalština (Brazílie)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Portugalština (Portugalsko)</string>
<string name="revanced_spoof_video_streams_language_RO">Rumunština</string>
<string name="revanced_spoof_video_streams_language_RU">Ruština</string>
<string name="revanced_spoof_video_streams_language_SK">Slovenština</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">Srbština</string>
<string name="revanced_spoof_video_streams_language_SV">Švédština</string>
<string name="revanced_spoof_video_streams_language_SW">Svahilština</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Thajština</string>
<string name="revanced_spoof_video_streams_language_TR">Turecký</string>
<string name="revanced_spoof_video_streams_language_UK">Ukrajinština</string>
<string name="revanced_spoof_video_streams_language_UR">Urdština</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamese</string>
<string name="revanced_spoof_video_streams_language_ZH">Čínština</string>
</patch>
</app>
<app id="twitch">

View File

@@ -699,6 +699,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Spiller popup paneler er skjult</string>
<string name="revanced_hide_player_popup_panels_summary_off">Spiller popup paneler vises</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Åbn videoer i fuldskærm portræt</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videoer åbne fuld skærm</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Videoer åbner ikke fuld skærm</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Spiller overlay gennemsigtighed</string>
<string name="revanced_player_overlay_opacity_summary">Gennemsigtighedsværdi mellem 0-100, hvor 0 er gennemsigtig</string>
@@ -995,7 +1000,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Ændre stilen for den i app minimeret afspiller</string>
<string name="revanced_miniplayer_type_title">Type af miniplayer</string>
<string name="revanced_miniplayer_type_entry_0">Deaktiveret</string>
<string name="revanced_miniplayer_type_entry_1">Oprindelig</string>
<string name="revanced_miniplayer_type_entry_1">Standard</string>
<string name="revanced_miniplayer_type_entry_2">Minimal</string>
<string name="revanced_miniplayer_type_entry_3">Tablet</string>
<string name="revanced_miniplayer_type_entry_4">Moderne 1</string>
@@ -1183,14 +1188,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">At slå denne indstilling fra kan forårsage problemer med videoafspilning.</string>
<string name="revanced_spoof_video_streams_client_title">Standard klient</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Gennemtving AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Video codec er AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Video-codec er VP9 eller AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Din enhed har ikke VP9 hardwareafkodning, og denne indstilling er altid tændt, når Client spoofing er aktiveret</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Aktivering af dette kan forbedre batteriets levetid og rette afspilningsstuttering.\n\nAVC har en maksimal opløsning på 1080p, og videoafspilning vil bruge flere internetdata end VP9 eller AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Video-codec er tvunget til AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Video-codec bestemmes automatisk</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Aktivering af dette kan forbedre batteriets levetid og rette afspilningsstuttering.\n\nAVC har en maksimal opløsning på 1080p, Opus audio codec er ikke tilgængelig, og videoafspilning vil bruge flere internetdata end VP9 eller AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">iOS forfalskning bivirkninger</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Private børn videoer kan ikke afspille\n• Livestreams starter fra begyndelsen\n• Videoer kan ende 1 sekund tidlig\n• Ingen opus audio codec</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Private børn videoer kan ikke afspille\n• Aldersbegrænsede videoer kan ikke afspille\n• Livestreams starter fra begyndelsen\n• Videoer slutter 1 sekund tidlig</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR spoofing bivirkninger</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Kids videoer afspiller muligvis ikke\n• Menuen for lydspor mangler\n• Stabil lydstyrke er ikke tilgængelig</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Kids videoer spiller muligvis ikke\n• Aldersbegrænsede videoer spiller muligvis ikke\n• Livestreams starter fra begyndelsen\n• Videoer slutter 1 sekund tidlig</string>
<string name="revanced_spoof_video_streams_language_title">Standard lyd-stream sprog</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">App sprog</string>
<string name="revanced_spoof_video_streams_language_AR">Arabisk</string>
<string name="revanced_spoof_video_streams_language_AZ">Aserbajdsjansk</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgarsk</string>
<string name="revanced_spoof_video_streams_language_BN">Bengalsk</string>
<string name="revanced_spoof_video_streams_language_CA">Catalansk</string>
<string name="revanced_spoof_video_streams_language_CS">Tjekkisk</string>
<string name="revanced_spoof_video_streams_language_DA">Dansk</string>
<string name="revanced_spoof_video_streams_language_DE">Tysk</string>
<string name="revanced_spoof_video_streams_language_EL">Græsk</string>
<string name="revanced_spoof_video_streams_language_EN">Engelsk</string>
<string name="revanced_spoof_video_streams_language_ES">Spansk</string>
<string name="revanced_spoof_video_streams_language_ET">Estisk</string>
<string name="revanced_spoof_video_streams_language_FA">Persisk</string>
<string name="revanced_spoof_video_streams_language_FI">Finsk</string>
<string name="revanced_spoof_video_streams_language_FR">Fransk</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Kroatisk</string>
<string name="revanced_spoof_video_streams_language_HU">Ungarsk</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesisk</string>
<string name="revanced_spoof_video_streams_language_IT">Italiensk</string>
<string name="revanced_spoof_video_streams_language_JA">Japansk</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">Koreansk</string>
<string name="revanced_spoof_video_streams_language_LT">Litauisk</string>
<string name="revanced_spoof_video_streams_language_LV">Lettisk</string>
<string name="revanced_spoof_video_streams_language_MK">Makedonsk</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolsk</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Malaysisk</string>
<string name="revanced_spoof_video_streams_language_MY">Burmese</string>
<string name="revanced_spoof_video_streams_language_NL">Hollandsk</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polsk</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Portugisisk (Brasilien)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Portugisisk (Portugal)</string>
<string name="revanced_spoof_video_streams_language_RO">Rumænsk</string>
<string name="revanced_spoof_video_streams_language_RU">Russisk</string>
<string name="revanced_spoof_video_streams_language_SK">Slovakisk</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">Serbisk</string>
<string name="revanced_spoof_video_streams_language_SV">Svensk</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Thailandsk</string>
<string name="revanced_spoof_video_streams_language_TR">Tyrkisk</string>
<string name="revanced_spoof_video_streams_language_UK">Ukrainsk</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamese</string>
<string name="revanced_spoof_video_streams_language_ZH">Kinesisk</string>
</patch>
</app>
<app id="twitch">

View File

@@ -710,6 +710,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Player-Popup-Fenster sind ausgeblendet</string>
<string name="revanced_hide_player_popup_panels_summary_off">Player-Popup-Fenster werden angezeigt</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Videos im Vollbild-Hochformat öffnen</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videos im Vollbild öffnen</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Videos öffnen nicht Vollbild</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Spieler-Überlagerung Deckkraft</string>
<string name="revanced_player_overlay_opacity_summary">Deckkraft Wert zwischen 0-100, wobei 0 transparent ist</string>
@@ -1013,7 +1018,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Ändere den Stil des in App minimierten Players</string>
<string name="revanced_miniplayer_type_title">Minispielertyp</string>
<string name="revanced_miniplayer_type_entry_0">Deaktiviert</string>
<string name="revanced_miniplayer_type_entry_1">Original</string>
<string name="revanced_miniplayer_type_entry_1">Standard</string>
<string name="revanced_miniplayer_type_entry_2">Minimal</string>
<string name="revanced_miniplayer_type_entry_3">Tablets</string>
<string name="revanced_miniplayer_type_entry_4">Modern 1</string>
@@ -1201,14 +1206,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Das Deaktivieren dieser Einstellung kann zu Videowiedergabeproblemen führen.</string>
<string name="revanced_spoof_video_streams_client_title">Standard-Client</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">AVC erzwingen (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Video Codec ist AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Video Codec ist VP9 oder AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Ihr Gerät hat keine VP9-Hardware-Dekodierung, und diese Einstellung ist immer aktiviert, wenn Client-Spoofing aktiviert ist</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Das Aktivieren kann die Akkulaufzeit verbessern und die Wiedergabe-Stutting beheben.\n\nAVC hat eine maximale Auflösung von 1080p, und die Videowiedergabe wird mehr Internet-Daten als VP9 oder AV1 verwenden.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Video-Codec ist zu AVC gezwungen (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Video-Codec wird automatisch bestimmt</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Das Aktivieren kann die Akkulaufzeit verbessern und die Wiedergabe-Stutting beheben.\n\nAVC hat eine maximale Auflösung von 1080p, Opus Audio Codec ist nicht verfügbar und Video-Wiedergabe wird mehr Internet-Daten als VP9 oder AV1 verwenden.</string>
<string name="revanced_spoof_video_streams_about_ios_title">iOS Spoofing Nebeneffekte</string>
<string name="revanced_spoof_video_streams_about_ios_summary"> Videos für Privatkinder dürfen nicht\nabspielen • Livestreams beginnen von Anfang an\n• Videos können 1 Sekunde früher\n• Kein opus Audio Codec</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Private Kindervideos dürfen nicht\nabspielen • Altersbeschränkte Videos dürfen nicht\n• Livestreams beginnen von Anfang an\n• Videos enden 1 Sekunde früh</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR Spoofing Nebeneffekte</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Kindervideos dürfen nicht\nabspielen • Audiospurmenü fehlt\n• Stabile Lautstärke ist nicht verfügbar</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Kindervideos dürfen nicht\nabspielen • Altersbeschränkte Videos dürfen nicht\n• Livestreams beginnen von Anfang an\n• Videos enden 1 Sekunde früh</string>
<string name="revanced_spoof_video_streams_language_title">Standard Audio Streamsprache</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">App-Sprache</string>
<string name="revanced_spoof_video_streams_language_AR">Arabisch</string>
<string name="revanced_spoof_video_streams_language_AZ">Aserbaidschan</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgarisch</string>
<string name="revanced_spoof_video_streams_language_BN">Bengalisch</string>
<string name="revanced_spoof_video_streams_language_CA">Katalanisch</string>
<string name="revanced_spoof_video_streams_language_CS">Tschechisch</string>
<string name="revanced_spoof_video_streams_language_DA">Dänisch</string>
<string name="revanced_spoof_video_streams_language_DE">Deutsch</string>
<string name="revanced_spoof_video_streams_language_EL">Griechisch</string>
<string name="revanced_spoof_video_streams_language_EN">Englisch</string>
<string name="revanced_spoof_video_streams_language_ES">Spanisch</string>
<string name="revanced_spoof_video_streams_language_ET">Estnisch</string>
<string name="revanced_spoof_video_streams_language_FA">Persisch</string>
<string name="revanced_spoof_video_streams_language_FI">Finnisch</string>
<string name="revanced_spoof_video_streams_language_FR">Französisch</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hannah</string>
<string name="revanced_spoof_video_streams_language_HR">Kroatisch</string>
<string name="revanced_spoof_video_streams_language_HU">Ungarisch</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesisch</string>
<string name="revanced_spoof_video_streams_language_IT">Italienisch</string>
<string name="revanced_spoof_video_streams_language_JA">Japanisch</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">Koreanisch</string>
<string name="revanced_spoof_video_streams_language_LT">Litauisch</string>
<string name="revanced_spoof_video_streams_language_LV">Lettisch</string>
<string name="revanced_spoof_video_streams_language_MK">Makedonisch</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolisch</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Malaiisch</string>
<string name="revanced_spoof_video_streams_language_MY">Burmese</string>
<string name="revanced_spoof_video_streams_language_NL">Niederländisch</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polnisch</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Portugiesisch (Brasilien)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Portugiesisch (Portugal)</string>
<string name="revanced_spoof_video_streams_language_RO">Rumänisch</string>
<string name="revanced_spoof_video_streams_language_RU">Russisch</string>
<string name="revanced_spoof_video_streams_language_SK">Slowakisch</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">Serbisch</string>
<string name="revanced_spoof_video_streams_language_SV">Schwedisch</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Thailändisch</string>
<string name="revanced_spoof_video_streams_language_TR">Türkisch</string>
<string name="revanced_spoof_video_streams_language_UK">Ukrainische</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamese</string>
<string name="revanced_spoof_video_streams_language_ZH">Chinesisch</string>
</patch>
</app>
<app id="twitch">

View File

@@ -709,6 +709,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Κρυμμένα</string>
<string name="revanced_hide_player_popup_panels_summary_off">Εμφανίζονται</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Άνοιγμα των βίντεο σε πλήρη οθόνη με κατακόρυφη προβολή</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Τα βίντεο ανοίγουν σε λειτουργία πλήρους οθόνης</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Τα βίντεο δεν ανοίγουν σε λειτουργία πλήρους οθόνης</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Αδιαφάνεια φόντου οθόνης αναπαραγωγής</string>
<string name="revanced_player_overlay_opacity_summary">Τιμή αδιαφάνειας μεταξύ 0-100, όπου το 0 είναι διαφανές</string>
@@ -1012,7 +1017,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Αλλάξτε το στυλ της ελαχιστοποιημένης οθόνης αναπαραγωγής</string>
<string name="revanced_miniplayer_type_title">Τύπος ελαχιστοποιημένης οθόνης αναπαραγωγής</string>
<string name="revanced_miniplayer_type_entry_0">Ανενεργή</string>
<string name="revanced_miniplayer_type_entry_1">Αρχικός</string>
<string name="revanced_miniplayer_type_entry_1">Προεπιλογή</string>
<string name="revanced_miniplayer_type_entry_2">Ελάχιστη</string>
<string name="revanced_miniplayer_type_entry_3">Ταμπλετ</string>
<string name="revanced_miniplayer_type_entry_4">Μοντέρνα 1</string>
@@ -1200,14 +1205,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Η απενεργοποίηση αυτής της ρύθμισης ενδέχεται να προκαλέσει προβλήματα αναπαραγωγής βίντεο.</string>
<string name="revanced_spoof_video_streams_client_title">Προεπιλεγμένο πρόγραμμα πελάτη</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Εξαναγκασμός AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Ο κωδικοποιητής βίντεο είναι ο AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Ο κωδικοποιητής βίντεο είναι ο VP9 ή ο AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Η συσκευή σας δεν διαθέτει αποκωδικοποίηση υλικού VP9, και αυτή η ρύθμιση είναι πάντα ενεργή όταν είναι ενεργοποιημένη η παραποίηση προγράμματος πελάτη</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Ενεργοποιώντας αυτόν τον κωδικοποιητή ίσως να βελτιώσει κατανάλωση ενέργειας και ίσως διορθώσει κολλήματα αναπαραγωγής.\n\nΟ AVC έχει μέγιστη ανάλυση 1080p, και καταναλώνει περισσότερα δεδομένα internet από τον VP9 ή τον AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Ο κωδικοποιητής βίντεο έχει οριστεί υποχρεωτικά σε AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Ο κωδικοποιητής βίντεο ορίζεται αυτόματα</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Η ενεργοποίηση αυτού μπορεί να βελτιώσει τη διάρκεια ζωής της μπαταρίας και να διορθώσει κολλήματα αναπαραγωγής.\n\nΟ AVC έχει μέγιστη ανάλυση 1080p, ο κωδικοποιητής ήχου Opus δεν είναι διαθέσιμος και η αναπαραγωγή βίντεο θα καταναλώνει περισσότερα δεδομένα internet από τον VP9 ή τον AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Παρενέργειες παραποίησης σε iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">Ιδιωτικά βίντεο για παιδιά ενδεχομένως να μην αναπαράγονται\n• Οι ζωντανές μεταδόσεις ξεκινούν από την αρχή\n• Τα βίντεο ενδέχεται να λήξουν 1 δευτερόλεπτο νωρίτερα\n• Δεν υπάρχει κωδικοποιητής ήχου opus</string>
<string name="revanced_spoof_video_streams_about_ios_summary">Τα ιδιωτικά βίντεο για παιδιά μπορεί να μην παίζουν\n• Τα βίντεο περιορισμένης ηλικίας μπορεί να μην παίζουν\n• Livestreams ξεκινούν από την αρχή\n• Τα βίντεο λήγουν 1 δευτερόλεπτο νωρίς</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Παρενέργειες παραποίησης σε Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">Τα βίντεο για παιδιά ενδέχεται να μην αναπαράγονται\n• Το μενού «Κομμάτι ήχου» λείπει\n• Η λειτουργία «Σταθερή ένταση» δεν είναι διαθέσιμη</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">Τα βίντεο για παιδιά μπορεί να μην παίζουν\n• Τα βίντεο με περιορισμένη ηλικία δεν μπορούν να παίξουν\n• Livestreams ξεκινούν από την αρχή\n• Τα βίντεο λήγουν 1 δευτερόλεπτο νωρίς</string>
<string name="revanced_spoof_video_streams_language_title">Προεπιλεγμένη γλώσσα ροής ήχου</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Γλώσσα εφαρμογής</string>
<string name="revanced_spoof_video_streams_language_AR">Αραβικά</string>
<string name="revanced_spoof_video_streams_language_AZ">Αζερμπαϊτζανικά</string>
<string name="revanced_spoof_video_streams_language_BG">Βουλγαρικά</string>
<string name="revanced_spoof_video_streams_language_BN">Βεγγαλικά</string>
<string name="revanced_spoof_video_streams_language_CA">Καταλανικά</string>
<string name="revanced_spoof_video_streams_language_CS">Τσέχικα</string>
<string name="revanced_spoof_video_streams_language_DA">Δανέζικα</string>
<string name="revanced_spoof_video_streams_language_DE">Γερμανικά</string>
<string name="revanced_spoof_video_streams_language_EL">Ελληνικά</string>
<string name="revanced_spoof_video_streams_language_EN">Αγγλικά</string>
<string name="revanced_spoof_video_streams_language_ES">Ισπανικά</string>
<string name="revanced_spoof_video_streams_language_ET">Εσθονικά</string>
<string name="revanced_spoof_video_streams_language_FA">Περσικά</string>
<string name="revanced_spoof_video_streams_language_FI">Φινλανδικά</string>
<string name="revanced_spoof_video_streams_language_FR">Γαλλικά</string>
<string name="revanced_spoof_video_streams_language_GU">Γκουτζαρατικά</string>
<string name="revanced_spoof_video_streams_language_HI">Χίντι</string>
<string name="revanced_spoof_video_streams_language_HR">Κροατικά</string>
<string name="revanced_spoof_video_streams_language_HU">Ουγγρικά</string>
<string name="revanced_spoof_video_streams_language_ID">Ινδονησιακά</string>
<string name="revanced_spoof_video_streams_language_IT">Ιταλικά</string>
<string name="revanced_spoof_video_streams_language_JA">Ιαπωνικά</string>
<string name="revanced_spoof_video_streams_language_KK">Καζακικά</string>
<string name="revanced_spoof_video_streams_language_KO">Κορεάτικα</string>
<string name="revanced_spoof_video_streams_language_LT">Λιθουανικά</string>
<string name="revanced_spoof_video_streams_language_LV">Λετονικά</string>
<string name="revanced_spoof_video_streams_language_MK">Μακεδονικά</string>
<string name="revanced_spoof_video_streams_language_MN">Μογγολικά</string>
<string name="revanced_spoof_video_streams_language_MR">Μαράτι</string>
<string name="revanced_spoof_video_streams_language_MS">Μαλαισιανά</string>
<string name="revanced_spoof_video_streams_language_MY">Βιρμανικά</string>
<string name="revanced_spoof_video_streams_language_NL">Ολλανδικά</string>
<string name="revanced_spoof_video_streams_language_OR">Όντια</string>
<string name="revanced_spoof_video_streams_language_PA">Παντζάμπι</string>
<string name="revanced_spoof_video_streams_language_PL">Πολωνικά</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Πορτογαλικά (Βραζιλίας)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Πορτογαλικά (Πορτογαλίας)</string>
<string name="revanced_spoof_video_streams_language_RO">Ρουμανικά</string>
<string name="revanced_spoof_video_streams_language_RU">Ρωσικά</string>
<string name="revanced_spoof_video_streams_language_SK">Σλοβακικά</string>
<string name="revanced_spoof_video_streams_language_SL">Σλοβενικά</string>
<string name="revanced_spoof_video_streams_language_SR">Σερβικά</string>
<string name="revanced_spoof_video_streams_language_SV">Σουηδικά</string>
<string name="revanced_spoof_video_streams_language_SW">Σουαχίλι</string>
<string name="revanced_spoof_video_streams_language_TA">Ταμιλικά</string>
<string name="revanced_spoof_video_streams_language_TE">Τελούγκου</string>
<string name="revanced_spoof_video_streams_language_TH">Ταϊλανδικά</string>
<string name="revanced_spoof_video_streams_language_TR">Τουρκικά</string>
<string name="revanced_spoof_video_streams_language_UK">Ουκρανικά</string>
<string name="revanced_spoof_video_streams_language_UR">Ουρντού</string>
<string name="revanced_spoof_video_streams_language_VI">Βιετναμέζικα</string>
<string name="revanced_spoof_video_streams_language_ZH">Κινέζικα</string>
</patch>
</app>
<app id="twitch">

View File

@@ -709,6 +709,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Los paneles emergentes del jugador están ocultos</string>
<string name="revanced_hide_player_popup_panels_summary_off">Se muestran paneles emergentes del jugador</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Abrir vídeos en el retrato de pantalla completa</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videos abiertos a pantalla completa</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Los videos no se abren en pantalla completa</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Opacidad de superposición del jugador</string>
<string name="revanced_player_overlay_opacity_summary">Valor de potencia entre 0-100, donde 0 es transparente</string>
@@ -1012,7 +1017,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Cambiar el estilo del reproductor minimizado de la aplicación</string>
<string name="revanced_miniplayer_type_title">Tipo de minreproductor</string>
<string name="revanced_miniplayer_type_entry_0">Desactivado</string>
<string name="revanced_miniplayer_type_entry_1">Original</string>
<string name="revanced_miniplayer_type_entry_1">Predeterminado</string>
<string name="revanced_miniplayer_type_entry_2">Mínimo</string>
<string name="revanced_miniplayer_type_entry_3">Tablet</string>
<string name="revanced_miniplayer_type_entry_4">Moderna 1</string>
@@ -1200,14 +1205,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Desactivar esta configuración puede causar problemas de reproducción de vídeo.</string>
<string name="revanced_spoof_video_streams_client_title">Cliente por defecto</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Forzar AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Codec de vídeo AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">El códec de vídeo es VP9 o AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Su dispositivo no tiene decodificación de hardware VP9, y esta configuración siempre está encendida cuando el cliente spoofing está habilitado</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Activar esto puede mejorar la vida de la batería y corregir el retraso en la reproducción.\n\nAVC tiene una resolución máxima de 1080p, y la reproducción de vídeo utilizará más datos de Internet que VP9 o AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Códec de vídeo se ve obligado a AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">El códec de vídeo se determina automáticamente</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Activar esto puede mejorar la vida de la batería y corregir el retraso en la reproducción.\n\nAVC tiene una resolución máxima de 1080p, el código de audio Opus no está disponible. y la reproducción de vídeo utilizará más datos de Internet que VP9 o AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Efectos secundarios para la falsificación de iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Los vídeos de niños privados no pueden reproducir\n• Livestreams comienzan desde el principio\n• Los vídeos pueden terminar 1 segundo antes de\n• No hay código de audio de opus</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Los vídeos de niños privados no pueden reproducir\n• Los vídeos restringidos por edad no pueden reproducir\n• Los Livestreams comienzan desde el principio\n• Los vídeos terminan 1 segundo antes de tiempo</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Efectos secundarios para la falsificación de Android RV</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Los vídeos infantiles no pueden reproducir\n• Falta el menú de pista de audio\n• El volumen estable no está disponible</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Los vídeos infantiles no pueden reproducir\n• Los vídeos restringidos por edad no pueden reproducir\n• Los Livestreams comienzan desde el principio\n• Los vídeos terminan 1 segundo temprano</string>
<string name="revanced_spoof_video_streams_language_title">Idioma de flujo de audio por defecto</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Idioma de la aplicación</string>
<string name="revanced_spoof_video_streams_language_AR">Árabe</string>
<string name="revanced_spoof_video_streams_language_AZ">Бессия</string>
<string name="revanced_spoof_video_streams_language_BG">Búlgaro</string>
<string name="revanced_spoof_video_streams_language_BN">Bengalí</string>
<string name="revanced_spoof_video_streams_language_CA">Catalán</string>
<string name="revanced_spoof_video_streams_language_CS">Checo</string>
<string name="revanced_spoof_video_streams_language_DA">Danés</string>
<string name="revanced_spoof_video_streams_language_DE">Alemán</string>
<string name="revanced_spoof_video_streams_language_EL">Griego</string>
<string name="revanced_spoof_video_streams_language_EN">Inglés</string>
<string name="revanced_spoof_video_streams_language_ES">Español</string>
<string name="revanced_spoof_video_streams_language_ET">Estonio</string>
<string name="revanced_spoof_video_streams_language_FA">Persa</string>
<string name="revanced_spoof_video_streams_language_FI">Finlandés</string>
<string name="revanced_spoof_video_streams_language_FR">Francés</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindú</string>
<string name="revanced_spoof_video_streams_language_HR">Croata</string>
<string name="revanced_spoof_video_streams_language_HU">Húngaro</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesio/a</string>
<string name="revanced_spoof_video_streams_language_IT">Italiano</string>
<string name="revanced_spoof_video_streams_language_JA">Japonés</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">Coreano</string>
<string name="revanced_spoof_video_streams_language_LT">Lituano</string>
<string name="revanced_spoof_video_streams_language_LV">Letón</string>
<string name="revanced_spoof_video_streams_language_MK">Macedonio</string>
<string name="revanced_spoof_video_streams_language_MN">Mongol</string>
<string name="revanced_spoof_video_streams_language_MR">Maratí</string>
<string name="revanced_spoof_video_streams_language_MS">Malayo</string>
<string name="revanced_spoof_video_streams_language_MY">Burmese</string>
<string name="revanced_spoof_video_streams_language_NL">Holandés</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polaco</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Portugués (Brasil)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Portugués (R)</string>
<string name="revanced_spoof_video_streams_language_RO">Rumano</string>
<string name="revanced_spoof_video_streams_language_RU">Ruso</string>
<string name="revanced_spoof_video_streams_language_SK">Eslovaco</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">Serbio</string>
<string name="revanced_spoof_video_streams_language_SV">Sueco</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Tailandés</string>
<string name="revanced_spoof_video_streams_language_TR">Turco</string>
<string name="revanced_spoof_video_streams_language_UK">Ucraniano</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamese</string>
<string name="revanced_spoof_video_streams_language_ZH">Chino</string>
</patch>
</app>
<app id="twitch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
@@ -180,6 +182,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_type_entry_0">Väljas</string>
<string name="revanced_miniplayer_type_entry_1">Vaikimisi</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -711,6 +711,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Soittimen ponnahdusikkunat on piilotettu</string>
<string name="revanced_hide_player_popup_panels_summary_off">Soittimen ponnahdusikkunat näytetään</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Avaa videot koko näytön muotokuvassa</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videot avataan kokoruututilassa</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Videot eivät avaa kokoruututilaa</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Soittimen peittoalueen läpinäkyvyys</string>
<string name="revanced_player_overlay_opacity_summary">Läpinäkyvyysarvo välillä 0100, jossa 0 on läpinäkyvä</string>
@@ -1014,7 +1019,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Muuta sovelluksen tyyliä pienennetyssä soittimessa</string>
<string name="revanced_miniplayer_type_title">Minisoittimen tyyppi</string>
<string name="revanced_miniplayer_type_entry_0">Pois käytöstä</string>
<string name="revanced_miniplayer_type_entry_1">Alkuperäinen</string>
<string name="revanced_miniplayer_type_entry_1">Oletus</string>
<string name="revanced_miniplayer_type_entry_2">Minimaali</string>
<string name="revanced_miniplayer_type_entry_3">Tabletti</string>
<string name="revanced_miniplayer_type_entry_4">Moderni 1</string>
@@ -1202,14 +1207,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Tämän asetuksen poistaminen käytöstä voi aiheuttaa ongelmia videotoistossa.</string>
<string name="revanced_spoof_video_streams_client_title">Oletusasiakasohjelma</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Pakota AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Videokoodekki on AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Videokoodekki on VP9 tai AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Laitteessasi ei ole VP9-laitteiston dekoodausta, ja tämä asetus on aina päällä, kun asiakkaan spoofing on käytössä</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Tämän käyttöönotto voi parantaa akun kestoa ja korjata toistoa stuttering.\n\nAVC on suurin resoluutio 1080p, ja videon toisto käyttää enemmän internet-tietoja kuin VP9 tai AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Videon koodekki pakotetaan AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Videokoodekki määritetään automaattisesti</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Tämän käyttöönotto voi parantaa akun kestoa ja korjata toistoa stuttering.\n\nAVC on enintään 1080p, Opus audio koodekki ei ole käytettävissä, ja videon toisto käyttää enemmän internet-tietoja kuin VP9 tai AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">iOS-naamioinnin haittavaikutukset</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Yksityiset lapset videot eivät välttämättä pelaa\n• Livestreams alusta alkaen\n• Videot saattavat päättyä 1 sekunnin alkupuolella\n• Ei opus-äänikoodekkia</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Yksityiset lapset videot eivät välttämättä pelaa\n• Ikä rajoitettu videoita ei voi pelata\n• Livestreams alkaa alusta\n• Videot päättyy 1 sekunti aikaisin</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR -naamioinnin haittavaikutukset</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Lapset videot eivät välttämättä soita\n• Ääniraidan valikko puuttuu\n• Vakaa äänenvoimakkuus ei ole käytettävissä</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Lapset videot eivät välttämättä pelaa\n• Ikä rajoitettu videot eivät voi pelata\n• Livestreams alkaa alusta\n• Videot päättyy 1 sekunti aikaisin</string>
<string name="revanced_spoof_video_streams_language_title">Äänivirran oletuskieli</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Sovelluksen kieli</string>
<string name="revanced_spoof_video_streams_language_AR">Arabia</string>
<string name="revanced_spoof_video_streams_language_AZ">Azerbaidžan</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgaria</string>
<string name="revanced_spoof_video_streams_language_BN">Bengali</string>
<string name="revanced_spoof_video_streams_language_CA">Katalaani</string>
<string name="revanced_spoof_video_streams_language_CS">Tšekki</string>
<string name="revanced_spoof_video_streams_language_DA">Tanska</string>
<string name="revanced_spoof_video_streams_language_DE">Saksa</string>
<string name="revanced_spoof_video_streams_language_EL">Kreikka</string>
<string name="revanced_spoof_video_streams_language_EN">Englanti</string>
<string name="revanced_spoof_video_streams_language_ES">Espanja</string>
<string name="revanced_spoof_video_streams_language_ET">Viro</string>
<string name="revanced_spoof_video_streams_language_FA">Persia</string>
<string name="revanced_spoof_video_streams_language_FI">Suomi</string>
<string name="revanced_spoof_video_streams_language_FR">Ranska</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Kroatia</string>
<string name="revanced_spoof_video_streams_language_HU">Unkari</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesialainen</string>
<string name="revanced_spoof_video_streams_language_IT">Italia</string>
<string name="revanced_spoof_video_streams_language_JA">Japani</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">Korealainen</string>
<string name="revanced_spoof_video_streams_language_LT">Liettua</string>
<string name="revanced_spoof_video_streams_language_LV">Latvia</string>
<string name="revanced_spoof_video_streams_language_MK">Makedonia</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolia</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Malaiji</string>
<string name="revanced_spoof_video_streams_language_MY">Burmese</string>
<string name="revanced_spoof_video_streams_language_NL">Hollanti</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Puola</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Portugali (Brasilia)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Portugali (Portugali)</string>
<string name="revanced_spoof_video_streams_language_RO">Romania</string>
<string name="revanced_spoof_video_streams_language_RU">Venäjä</string>
<string name="revanced_spoof_video_streams_language_SK">Slovakki</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">Serbia</string>
<string name="revanced_spoof_video_streams_language_SV">Ruotsi</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Thaimaalainen</string>
<string name="revanced_spoof_video_streams_language_TR">Turkki</string>
<string name="revanced_spoof_video_streams_language_UK">Ukraina</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamese</string>
<string name="revanced_spoof_video_streams_language_ZH">Kiina</string>
</patch>
</app>
<app id="twitch">

View File

@@ -640,6 +640,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Nakatago ang mga popup panel ng player</string>
<string name="revanced_hide_player_popup_panels_summary_off">Ipinapakita ang mga popup panel ng player</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Opacity ng overlay ng player</string>
<string name="revanced_player_overlay_opacity_summary">Ang halaga ng opacity sa pagitan ng 0-100, kung saan ang 0 ay transparent</string>
@@ -910,7 +912,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Baguhin ang istilo ng in app minimized na player</string>
<string name="revanced_miniplayer_type_title">Uri ng miniplayer</string>
<string name="revanced_miniplayer_type_entry_0">Hindi</string>
<string name="revanced_miniplayer_type_entry_1">Orihinal</string>
<string name="revanced_miniplayer_type_entry_1">Regular</string>
<string name="revanced_miniplayer_type_entry_3">Tableta</string>
<string name="revanced_miniplayer_type_entry_4">Moderno 1</string>
<string name="revanced_miniplayer_type_entry_5">Moderno 2</string>

View File

@@ -710,6 +710,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Les fenêtres pop-up sont masquées</string>
<string name="revanced_hide_player_popup_panels_summary_off">Les fenêtres pop-up sont affichées</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Ouvrir les vidéos en mode portrait plein écran</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Vidéos ouvertes en plein écran</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Les vidéos ne s\'ouvrent pas en plein écran</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Opacité de l\'overlay du joueur</string>
<string name="revanced_player_overlay_opacity_summary">Valeur d\'opacité entre 0 et 100, où 0 est transparent</string>
@@ -1013,7 +1018,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Changer le style du lecteur réduit dans l\'application</string>
<string name="revanced_miniplayer_type_title">Type de Miniplayer</string>
<string name="revanced_miniplayer_type_entry_0">Désactivé</string>
<string name="revanced_miniplayer_type_entry_1">Original</string>
<string name="revanced_miniplayer_type_entry_1">Par défaut</string>
<string name="revanced_miniplayer_type_entry_2">Minimal</string>
<string name="revanced_miniplayer_type_entry_3">Tablette</string>
<string name="revanced_miniplayer_type_entry_4">Moderne 1</string>
@@ -1201,14 +1206,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Désactiver ce paramètre peut causer des problèmes de lecture vidéo.</string>
<string name="revanced_spoof_video_streams_client_title">Client par défaut</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Forcer AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Le codec vidéo est AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Le codec vidéo est VP9 ou AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Votre appareil ne possède pas de décodage matériel VP9, et ce paramètre est toujours activé lorsque la falsification du client est activée</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Activer ceci peut améliorer la durée de vie de la batterie et corriger les erreurs de lecture.\n\nAVC a une résolution maximale de 1080p, et la lecture vidéo utilisera plus de données internet que VP9 ou AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Le codec vidéo est forcé à AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Le codec vidéo est déterminé automatiquement</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Activer ceci peut améliorer la durée de vie de la batterie et corriger les erreurs de lecture.\n\nAVC a une résolution maximale de 1080p, le codec audio Opus n\'est pas disponible, et la lecture vidéo utilisera plus de données Internet que VP9 ou AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Effets secondaires d\'usurpation iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Les vidéos privées des enfants ne peuvent pas être lues\n• Les live reams commencent à partir de\n• Les vidéos peuvent se terminer 1 seconde tôt\n• Aucun codec audio opus</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Les vidéos privées des enfants peuvent ne pas jouer à\n• Les vidéos à l\'âge restreint peuvent ne pas lire\n• Les vidéos en direct commencent dès le début\n• Les vidéos se terminent 1 seconde plus tôt</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Effets secondaires de l\'usurpation VR Android</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Les vidéos des enfants peuvent ne pas lire\n• Le menu de la piste audio manque\n• Le volume stable n\'est pas disponible</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Les vidéos pour enfants ne peuvent pas lire\n• Les vidéos à l\'âge restreint peuvent ne pas lire\n• Les vidéos en direct commencent dès le début\n• Les vidéos se terminent 1 seconde plus tôt</string>
<string name="revanced_spoof_video_streams_language_title">Langue du flux audio par défaut</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Langue de l\'application</string>
<string name="revanced_spoof_video_streams_language_AR">Arabe</string>
<string name="revanced_spoof_video_streams_language_AZ">Azerbaïdjan</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgare</string>
<string name="revanced_spoof_video_streams_language_BN">Bengalais</string>
<string name="revanced_spoof_video_streams_language_CA">Catalan</string>
<string name="revanced_spoof_video_streams_language_CS">Tchèque</string>
<string name="revanced_spoof_video_streams_language_DA">Danois</string>
<string name="revanced_spoof_video_streams_language_DE">Allemand</string>
<string name="revanced_spoof_video_streams_language_EL">Grecque</string>
<string name="revanced_spoof_video_streams_language_EN">Anglais</string>
<string name="revanced_spoof_video_streams_language_ES">Espagnol</string>
<string name="revanced_spoof_video_streams_language_ET">estonien</string>
<string name="revanced_spoof_video_streams_language_FA">Perse</string>
<string name="revanced_spoof_video_streams_language_FI">Finlandais</string>
<string name="revanced_spoof_video_streams_language_FR">Français</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Croate</string>
<string name="revanced_spoof_video_streams_language_HU">Hongrois</string>
<string name="revanced_spoof_video_streams_language_ID">Indonésien</string>
<string name="revanced_spoof_video_streams_language_IT">Italien</string>
<string name="revanced_spoof_video_streams_language_JA">Japonais</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">Coréen</string>
<string name="revanced_spoof_video_streams_language_LT">lituanien</string>
<string name="revanced_spoof_video_streams_language_LV">Lettonie</string>
<string name="revanced_spoof_video_streams_language_MK">Macédonien</string>
<string name="revanced_spoof_video_streams_language_MN">Mongol</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Malais</string>
<string name="revanced_spoof_video_streams_language_MY">Burmese</string>
<string name="revanced_spoof_video_streams_language_NL">Néerlandais</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polonais</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Portugais (Brésil)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Portugais (Portugal)</string>
<string name="revanced_spoof_video_streams_language_RO">Roumain</string>
<string name="revanced_spoof_video_streams_language_RU">Russe</string>
<string name="revanced_spoof_video_streams_language_SK">Slovaque</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">Serbe</string>
<string name="revanced_spoof_video_streams_language_SV">Suédois</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Thaï</string>
<string name="revanced_spoof_video_streams_language_TR">Turc</string>
<string name="revanced_spoof_video_streams_language_UK">Ukrainien</string>
<string name="revanced_spoof_video_streams_language_UR">Ourdou</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamese</string>
<string name="revanced_spoof_video_streams_language_ZH">Chinois</string>
</patch>
</app>
<app id="twitch">

View File

@@ -709,6 +709,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Tá painéil aníos imreoirí i bhfolach</string>
<string name="revanced_hide_player_popup_panels_summary_off">Taispeántar painéil aníos imreoirí</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Trédhearcacht forleagtha an imreoir</string>
<string name="revanced_player_overlay_opacity_summary">Luach trédhearcachta idir 0-100, áit a bhfuil 0 trédhearcach</string>
@@ -1012,7 +1014,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Athraigh stíl an imreora íoslaghdaithe san aip</string>
<string name="revanced_miniplayer_type_title">Cineál Miniplayer</string>
<string name="revanced_miniplayer_type_entry_0">Díchumasaithe</string>
<string name="revanced_miniplayer_type_entry_1">Bunaidh</string>
<string name="revanced_miniplayer_type_entry_1">Réamhshocraithe</string>
<string name="revanced_miniplayer_type_entry_2">Íosta</string>
<string name="revanced_miniplayer_type_entry_3">Táibléad</string>
<string name="revanced_miniplayer_type_entry_4">Nua-aimseartha 1</string>
@@ -1200,14 +1202,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Seans go mbeidh fadhbanna athsheinm físe ag baint leis an socrú seo a mhúchadh.</string>
<string name="revanced_spoof_video_streams_client_title">Cliant réamhshocraithe</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Fórsa AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Is é AVC (H.264) an codec físeán</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Is é VP9 nó AV1 an codec físeán</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Níl díchódú crua-earraí VP9 ar do ghléas, agus bíonn an socrú seo ar siúl i gcónaí nuair atá spoofing Cliant cumasaithe</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Má dhéantar é seo a chumasú, d\'fhéadfadh sé go bhfeabhsófaí saol na gceallraí agus go n-athshocraigh sé stopáil athsheinm.\n\nTá uas-taifeach 1080p ag AVC, agus úsáidfidh athsheinm físe níos mó sonraí idirlín ná mar a úsáideann VP9 nó AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Fo-iarsmaí spoofing iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Ní cheadaítear físeáin leanaí príobháideacha a sheinm\n• Tosaíonn sruthanna beo ón tús\n• Seans go gcríochnóidh físeáin 1 soicind go luath\n• Gan codec fuaime opus</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Fo-iarsmaí spoofing Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Ní fhéadfaidh físeáin leanaí a sheinm\n• Tá an roghchlár rian fuaime ar iarraidh\n• Níl an toirt cobhsaí ar fáil</string>
</patch>
</app>
<app id="twitch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -149,6 +149,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
@@ -179,6 +181,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_type_entry_0">Onemogućeno</string>
<string name="revanced_miniplayer_type_entry_1">Zadano</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>

View File

@@ -709,6 +709,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">A lejátszó előugró panelei el vannak rejtve</string>
<string name="revanced_hide_player_popup_panels_summary_off">A lejátszó előugró panelei megjelennek</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Nyissa meg a videókat teljes képernyős portréban</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">A videók teljes képernyőn nyílnak meg</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">A videók nem nyílnak meg teljes képernyőn</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Lejátszó fedőrétegének átlátszatlansága</string>
<string name="revanced_player_overlay_opacity_summary">Az átlátszatlanság értéke 0 és 100 között van, ahol a 0 átlátszó</string>
@@ -1012,7 +1017,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Módosítsa az alkalmazáson belüli kisméretű lejátszó stílusát</string>
<string name="revanced_miniplayer_type_title">Minilejátszó típus</string>
<string name="revanced_miniplayer_type_entry_0">Kikapcsolva</string>
<string name="revanced_miniplayer_type_entry_1">Eredeti</string>
<string name="revanced_miniplayer_type_entry_1">Alapértelmezett</string>
<string name="revanced_miniplayer_type_entry_2">Minimális</string>
<string name="revanced_miniplayer_type_entry_3">Tablet</string>
<string name="revanced_miniplayer_type_entry_4">Modern 1</string>
@@ -1200,14 +1205,64 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">A beállítás kikapcsolása videolejátszási problémákat okozhat.</string>
<string name="revanced_spoof_video_streams_client_title">Alapértelmezett kliens</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">AVC (H.264) kényszerítése</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">A videokodek AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">A videokodek VP9 vagy AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Eszközén nincs VP9 hardveres dekódolás, és ez a beállítás mindig be van kapcsolva, ha az ügyfélhamisítás engedélyezve van</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Ennek engedélyezése javíthatja az akkumulátor élettartamát, és kijavíthatja a lejátszás akadozását.\n\nAz AVC maximális felbontása 1080p, és a videolejátszás több internetadatot használ, mint a VP9 vagy az AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">A videokodek AVC-re kényszerítve (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">A videokodek meghatározása automatikusan történik</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Ennek engedélyezése javíthatja az akkumulátor élettartamát, és kijavíthatja a lejátszás akadozását.\n\nAz AVC maximális felbontása 1080p, az Opus audiokodek nem érhető el, és a videolejátszás több internetadatot használ, mint a VP9 vagy az AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">iOS hamisítási mellékhatások</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Előfordulhat, hogy a privát gyerekeknek készült videókat nem lehet lejátszani\n• Az élő közvetítések az elejétől kezdődnek.\n• A videók 1 másodperccel korábban véget érhetnek\n• Nincs opus audiokodek</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR-hamisítási mellékhatások</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Előfordulhat, hogy a gyerekvideókat nem lehet lejátszani\n• Hiányzik a hangsáv menü\n• A stabil hangerő nem érhető el</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Alkalmazás nyelve</string>
<string name="revanced_spoof_video_streams_language_AR">Arab</string>
<string name="revanced_spoof_video_streams_language_AZ">Azerbajdzsáni</string>
<string name="revanced_spoof_video_streams_language_BG">Bolgár</string>
<string name="revanced_spoof_video_streams_language_BN">Bengáli</string>
<string name="revanced_spoof_video_streams_language_CA">Katalán</string>
<string name="revanced_spoof_video_streams_language_CS">Cseh</string>
<string name="revanced_spoof_video_streams_language_DA">Dán</string>
<string name="revanced_spoof_video_streams_language_DE">Német</string>
<string name="revanced_spoof_video_streams_language_EL">Görög</string>
<string name="revanced_spoof_video_streams_language_EN">Angol</string>
<string name="revanced_spoof_video_streams_language_ES">Spanyol</string>
<string name="revanced_spoof_video_streams_language_ET">Észt</string>
<string name="revanced_spoof_video_streams_language_FA">Perzsa</string>
<string name="revanced_spoof_video_streams_language_FI">Finn</string>
<string name="revanced_spoof_video_streams_language_FR">Francia</string>
<string name="revanced_spoof_video_streams_language_GU">Gudzsaráti</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Horvát</string>
<string name="revanced_spoof_video_streams_language_HU">Magyar</string>
<string name="revanced_spoof_video_streams_language_ID">Indonéz</string>
<string name="revanced_spoof_video_streams_language_IT">Olasz</string>
<string name="revanced_spoof_video_streams_language_JA">Japán</string>
<string name="revanced_spoof_video_streams_language_KK">Kazah</string>
<string name="revanced_spoof_video_streams_language_KO">Koreai</string>
<string name="revanced_spoof_video_streams_language_LT">Litván</string>
<string name="revanced_spoof_video_streams_language_LV">Lett</string>
<string name="revanced_spoof_video_streams_language_MK">Macedón</string>
<string name="revanced_spoof_video_streams_language_MN">Mongol</string>
<string name="revanced_spoof_video_streams_language_MR">Maráthi</string>
<string name="revanced_spoof_video_streams_language_MS">Maláj</string>
<string name="revanced_spoof_video_streams_language_MY">Burmai</string>
<string name="revanced_spoof_video_streams_language_NL">Holland</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Pandzsábi</string>
<string name="revanced_spoof_video_streams_language_PL">Lengyel</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Portugál (Brazil)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Portugál (Portugália)</string>
<string name="revanced_spoof_video_streams_language_RO">Román</string>
<string name="revanced_spoof_video_streams_language_RU">Orosz</string>
<string name="revanced_spoof_video_streams_language_SK">Szlovák</string>
<string name="revanced_spoof_video_streams_language_SL">Szlovén</string>
<string name="revanced_spoof_video_streams_language_SR">Szerb</string>
<string name="revanced_spoof_video_streams_language_SV">Svéd</string>
<string name="revanced_spoof_video_streams_language_SW">Szuahéli</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Tháj</string>
<string name="revanced_spoof_video_streams_language_TR">Török</string>
<string name="revanced_spoof_video_streams_language_UK">Ukrán</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnámi</string>
<string name="revanced_spoof_video_streams_language_ZH">Kínai</string>
</patch>
</app>
<app id="twitch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -709,6 +709,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Panel popup pemutar disembunyikan</string>
<string name="revanced_hide_player_popup_panels_summary_off">Panel popup pemutar ditampilkan</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Buka video dalam potret layar penuh</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Video terbuka dalam layar penuh</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Video tidak terbuka dalam layar penuh</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Opasitas hamparan pemutar</string>
<string name="revanced_player_overlay_opacity_summary">Nilai opasitas antara 0-100, dimana 0 adalah transparan</string>
@@ -1012,7 +1017,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Mengubah gaya pemutar aplikasi saat diciuitkan</string>
<string name="revanced_miniplayer_type_title">Jenis pemutar mini</string>
<string name="revanced_miniplayer_type_entry_0">Nonaktif</string>
<string name="revanced_miniplayer_type_entry_1">Asli</string>
<string name="revanced_miniplayer_type_entry_1">Bawaan</string>
<string name="revanced_miniplayer_type_entry_2">Minimal</string>
<string name="revanced_miniplayer_type_entry_3">Tablet</string>
<string name="revanced_miniplayer_type_entry_4">Modern 1</string>
@@ -1200,14 +1205,64 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Mematikan pengaturan ini dapat menyebabkan masalah pemutaran video.</string>
<string name="revanced_spoof_video_streams_client_title">Klien bawaan</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Paksa AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Kodek video adalah AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Kodek video adalah VP9 atau AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Perangkat Anda tidak memiliki dekode perangkat keras VP9, dan pengaturan ini selalu aktif saat pemalsuan Klien diaktifkan</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Menyalakan ini dapat meningkatkan masa pakai baterai dan memperbaiki gangguan pemutaran.\n\nAVC memiliki resolusi maksimum 1080p, dan pemutaran video akan menggunakan lebih banyak data internet daripada VP9 atau AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Kodek video dipaksa ke AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Kodek video ditentukan otomatis</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Mengaktifkan ini dapat meningkatkan daya tahan baterai dan memperbaiki pemutaran yang tersendat-sendat.\n\nAVC memiliki resolusi maksimum 1080p, kodek audio Opus tidak tersedia, dan pemutaran video akan menggunakan lebih banyak data internet daripada VP9 atau AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Efek samping pemalsuan iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Video anak-anak pribadi mungkin tidak dapat diputar\n• Siaran langsung dimulai dari awal\n• Video mungkin berakhir 1 detik lebih awal\n• Tidak ada codec audio opus</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Efek samping pemalsuan Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Video anak-anak mungkin tidak dapat diputar\n• Menu trek audio tidak ada\n• Volume stabil tidak tersedia</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Bahasa aplikasi</string>
<string name="revanced_spoof_video_streams_language_AR">Arab</string>
<string name="revanced_spoof_video_streams_language_AZ">Azerbaijan</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgaria</string>
<string name="revanced_spoof_video_streams_language_BN">Bengali</string>
<string name="revanced_spoof_video_streams_language_CA">Catalan</string>
<string name="revanced_spoof_video_streams_language_CS">Ceko</string>
<string name="revanced_spoof_video_streams_language_DA">Denmark</string>
<string name="revanced_spoof_video_streams_language_DE">Jerman</string>
<string name="revanced_spoof_video_streams_language_EL">Yunani</string>
<string name="revanced_spoof_video_streams_language_EN">Inggris</string>
<string name="revanced_spoof_video_streams_language_ES">Spanyol</string>
<string name="revanced_spoof_video_streams_language_ET">Estonia</string>
<string name="revanced_spoof_video_streams_language_FA">Persia</string>
<string name="revanced_spoof_video_streams_language_FI">Finlandia</string>
<string name="revanced_spoof_video_streams_language_FR">Perancis</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarat</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Kroasia</string>
<string name="revanced_spoof_video_streams_language_HU">Hungaria</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesia</string>
<string name="revanced_spoof_video_streams_language_IT">Italia</string>
<string name="revanced_spoof_video_streams_language_JA">Jepang</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">Korea</string>
<string name="revanced_spoof_video_streams_language_LT">Lithuania</string>
<string name="revanced_spoof_video_streams_language_LV">Latvia</string>
<string name="revanced_spoof_video_streams_language_MK">Makedonia</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolia</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Melayu</string>
<string name="revanced_spoof_video_streams_language_MY">Myanmar</string>
<string name="revanced_spoof_video_streams_language_NL">Belanda</string>
<string name="revanced_spoof_video_streams_language_OR">Oriya</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polandia</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Portugis (Brasil)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Portugis (Portugal)</string>
<string name="revanced_spoof_video_streams_language_RO">Rumania</string>
<string name="revanced_spoof_video_streams_language_RU">Rusia</string>
<string name="revanced_spoof_video_streams_language_SK">Slovakia</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">Serbia</string>
<string name="revanced_spoof_video_streams_language_SV">Swedia</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Thai</string>
<string name="revanced_spoof_video_streams_language_TR">Turki</string>
<string name="revanced_spoof_video_streams_language_UK">Ukraina</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnam</string>
<string name="revanced_spoof_video_streams_language_ZH">China</string>
</patch>
</app>
<app id="twitch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -205,20 +205,20 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_quick_actions_summary_on">Le azioni rapide sono nascoste</string>
<string name="revanced_hide_quick_actions_summary_off">Le azioni rapide sono visibili</string>
<string name="revanced_hide_related_videos_title">Nascondi video correlati nelle azioni rapide</string>
<string name="revanced_hide_related_videos_summary_on">Video correlati nascosti</string>
<string name="revanced_hide_related_videos_summary_on">I video correlati sono nascosti</string>
<string name="revanced_hide_related_videos_summary_off">Video correlati visibili</string>
<string name="revanced_hide_image_shelf_title">Nascondi pubblicità con immagini nei risultati di ricerca</string>
<string name="revanced_hide_image_shelf_summary_on">Le pubblicità con immagini sono nascoste </string>
<string name="revanced_hide_image_shelf_summary_off">Le pubblicità con immagini sono visibili </string>
<string name="revanced_hide_latest_posts_ads_title">Nascondi i post più recenti</string>
<string name="revanced_hide_latest_posts_ads_summary_on">Gli ultimi post sono nascosti</string>
<string name="revanced_hide_latest_posts_ads_summary_off">Gli ultimi post sono mostrati</string>
<string name="revanced_hide_mix_playlists_title">Nascondi playlist mix</string>
<string name="revanced_hide_mix_playlists_summary_on">Le playlist Mix sono nascoste</string>
<string name="revanced_hide_mix_playlists_summary_off">Vengono mostrate playlist di Mix</string>
<string name="revanced_hide_artist_cards_title">Nascondi le carte artista</string>
<string name="revanced_hide_artist_cards_summary_on">Le carte dell\'artista sono nascoste</string>
<string name="revanced_hide_artist_cards_summary_off">Vengono mostrate le carte dell\'artista</string>
<string name="revanced_hide_latest_posts_ads_summary_on">I post più recenti sono nascosti</string>
<string name="revanced_hide_latest_posts_ads_summary_off">I post più recenti sono visibili</string>
<string name="revanced_hide_mix_playlists_title">Nascondi le playlist miste</string>
<string name="revanced_hide_mix_playlists_summary_on">Le playlist miste sono nascoste</string>
<string name="revanced_hide_mix_playlists_summary_off">Le playlist miste sono visibili</string>
<string name="revanced_hide_artist_cards_title">Nascondi le schede artista</string>
<string name="revanced_hide_artist_cards_summary_on">Le schede artista sono nascoste</string>
<string name="revanced_hide_artist_cards_summary_off">Le schede artista sono visibili</string>
<string name="revanced_hide_attributes_section_title">Nascondi la sezione attributi</string>
<string name="revanced_hide_attributes_section_summary_on">Le sezioni \'Luoghi in evidenza\', Giochi e Musica sono nascoste</string>
<string name="revanced_hide_attributes_section_summary_off">Le sezioni \'Luoghi in evidenza\', Giochi e Musica sono visibili</string>
@@ -324,9 +324,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_paid_promotion_label_title">Nascondi etichetta promozione a pagamento</string>
<string name="revanced_hide_paid_promotion_label_summary_on">L\'etichetta della promozione a pagamento è nascosta</string>
<string name="revanced_hide_paid_promotion_label_summary_off">L\'etichetta della promozione a pagamento è visibile</string>
<string name="revanced_hide_self_sponsor_ads_title">Nascondi le carte autosponsorizzate</string>
<string name="revanced_hide_self_sponsor_ads_summary_on">Le carte autosponsorizzate sono nascoste</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">Vengono mostrate le carte autosponsorizzate</string>
<string name="revanced_hide_self_sponsor_ads_title">Nascondi le schede autopromozionali</string>
<string name="revanced_hide_self_sponsor_ads_summary_on">Le schede autopromozionali sono nascoste</string>
<string name="revanced_hide_self_sponsor_ads_summary_off">Le schede autopromozionali sono visibili</string>
<string name="revanced_hide_products_banner_title">Nascondi banner per visualizzare i prodotti</string>
<string name="revanced_hide_products_banner_summary_on">Il banner è nascosto</string>
<string name="revanced_hide_products_banner_summary_off">Il banner è visibile</string>
@@ -709,6 +709,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">I pannelli popup del player sono nascosti</string>
<string name="revanced_hide_player_popup_panels_summary_off">I pannelli popup del player sono visibili</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Apri i video in verticale a schermo intero</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">I video vengono aperti a schermo intero</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">I video non vengono aperti a schermo intero</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Opacità sovrapposizione del player</string>
<string name="revanced_player_overlay_opacity_summary">Il valore dell\'opacità compreso tra 0 e 100, dove 0 è trasparente</string>
@@ -1012,7 +1017,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Cambia lo stile del miniplayer nell\'app</string>
<string name="revanced_miniplayer_type_title">Tipo di Miniplayer</string>
<string name="revanced_miniplayer_type_entry_0">Disattivato</string>
<string name="revanced_miniplayer_type_entry_1">Originale</string>
<string name="revanced_miniplayer_type_entry_1">Predefinito</string>
<string name="revanced_miniplayer_type_entry_2">Minimale</string>
<string name="revanced_miniplayer_type_entry_3">Tablet</string>
<string name="revanced_miniplayer_type_entry_4">Moderno 1</string>
@@ -1200,14 +1205,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Disattivando questa impostazione potrebbe causare problemi di riproduzione video.</string>
<string name="revanced_spoof_video_streams_client_title">Client predefinito</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Forza AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Il codec video è AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Il codec video è VP9 o AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Il tuo dispositivo non ha la decodifica hardware VP9 e questa impostazione è sempre attiva quando la simulazione del client è abilitato</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">L\'attivazione di questa impostazione potrebbe migliorare la durata della batteria e risolvere il problema della riproduzione a scatti.\n\nNota: AVC ha una risoluzione massima di 1080p e la riproduzione userà più dati internet rispetto a VP9 o AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Il codec video è forzato ad AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Il codec video viene determinato automaticamente</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">L\'attivazione di questa impostazione potrebbe migliorare la durata della batteria e risolvere il problema della riproduzione a scatti.\n\nNota: AVC ha una risoluzione massima di 1080p, il codec Opus non è disponibile e la riproduzione userà più dati internet rispetto a VP9 o AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Effetti collaterali simulazione iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• I video privati per bambini potrebbero non essere riprodotti\n• Le dirette iniziano dall\'inizio\n• I video potrebbero terminare 1 secondo prima\n• Nessun codec audio Opus</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• I video privati per bambini potrebbero non riprodurre\n• I video con limitazioni di età potrebbero non riprodurre\n• I Livestreams iniziano dall\'inizio\n• I video terminano 1 secondo presto</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Effetti collaterali simulazione Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• I video per bambini potrebbero non riprodurre\n• Il menu traccia audio è mancante\n• Volume stabile non è disponibile</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• I video per bambini potrebbero non riprodurre\n• È possibile che i video con limitazioni di età non riproducano\n• Livestreams start from the start\n• Video end 1 second early</string>
<string name="revanced_spoof_video_streams_language_title">Lingua predefinita del flusso audio</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Lingua app</string>
<string name="revanced_spoof_video_streams_language_AR">Arabo</string>
<string name="revanced_spoof_video_streams_language_AZ">Azerbaigiano</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgaro</string>
<string name="revanced_spoof_video_streams_language_BN">Bengalese</string>
<string name="revanced_spoof_video_streams_language_CA">Catalano</string>
<string name="revanced_spoof_video_streams_language_CS">Ceco</string>
<string name="revanced_spoof_video_streams_language_DA">Danese</string>
<string name="revanced_spoof_video_streams_language_DE">Tedesco</string>
<string name="revanced_spoof_video_streams_language_EL">Greco</string>
<string name="revanced_spoof_video_streams_language_EN">Inglese</string>
<string name="revanced_spoof_video_streams_language_ES">Spagnolo</string>
<string name="revanced_spoof_video_streams_language_ET">Estone</string>
<string name="revanced_spoof_video_streams_language_FA">Persiano</string>
<string name="revanced_spoof_video_streams_language_FI">Finlandese</string>
<string name="revanced_spoof_video_streams_language_FR">Francese</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Croato</string>
<string name="revanced_spoof_video_streams_language_HU">Ungherese</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesiano</string>
<string name="revanced_spoof_video_streams_language_IT">Italiano</string>
<string name="revanced_spoof_video_streams_language_JA">Giapponese</string>
<string name="revanced_spoof_video_streams_language_KK">Kazako</string>
<string name="revanced_spoof_video_streams_language_KO">Coreano</string>
<string name="revanced_spoof_video_streams_language_LT">Lituano</string>
<string name="revanced_spoof_video_streams_language_LV">Lettone</string>
<string name="revanced_spoof_video_streams_language_MK">Macedone</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolo</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Malese</string>
<string name="revanced_spoof_video_streams_language_MY">Burmese</string>
<string name="revanced_spoof_video_streams_language_NL">Olandese</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polacco</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Portoghese (Brasile)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Portoghese (Portogallo)</string>
<string name="revanced_spoof_video_streams_language_RO">Rumeno</string>
<string name="revanced_spoof_video_streams_language_RU">Russo</string>
<string name="revanced_spoof_video_streams_language_SK">Slovacco</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">Serbo</string>
<string name="revanced_spoof_video_streams_language_SV">Svedese</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Tailandese</string>
<string name="revanced_spoof_video_streams_language_TR">Turco</string>
<string name="revanced_spoof_video_streams_language_UK">Ucraino</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamese</string>
<string name="revanced_spoof_video_streams_language_ZH">Cinese</string>
</patch>
</app>
<app id="twitch">

View File

@@ -35,32 +35,20 @@ This is because Crowdin requires temporarily flattening this file and removing t
<patch id="misc.checks.checkEnvironmentPatch">
</patch>
<patch id="misc.settings.settingsResourcePatch">
<string name="revanced_settings_reset">איפוס</string>
<string name="revanced_settings_restart">הפעלה מחדש</string>
<string name="revanced_settings_import">ייבוא</string>
<string name="revanced_settings_import_copy">העתק</string>
<string name="revanced_settings_import_reset">הגדרות ReVanced אופסו לברירת המחדל</string>
<string name="revanced_pref_import_export_title">יבוא/ ייצוא</string>
<string name="revanced_pref_import_export_summary">יבוא/ ייצוא הגדרות ReVanced</string>
<!-- Settings about dialog. -->
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
<string name="gms_core_dialog_continue_text">המשך</string>
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_screen_00_about_title">אודות</string>
<string name="revanced_settings_screen_11_misc_title">שונות</string>
<string name="revanced_settings_screen_12_video_title">וידאו</string>
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
<string name="revanced_debug_screen_title">איתור באגים</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Join' should be translated using the same localized wording YouTube displays.
@@ -98,7 +86,6 @@ This is because Crowdin requires temporarily flattening this file and removing t
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_lowest_value_enable_auto_brightness_overlay_text">אוטומטי</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
</patch>
@@ -134,8 +121,6 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
</patch>
<patch id="layout.buttons.overlay.hidePlayerOverlayButtonsPatch">
<string name="revanced_hide_cast_button_summary_on">לחצן שידור מסך מוסתר</string>
<string name="revanced_hide_cast_button_summary_off">לחצן שידור מסך מוצג</string>
<!-- This button does not display any text, but 'captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title' -->
</patch>
<patch id="layout.hide.endscreencards.hideEndscreenCardsResourcePatch">
@@ -143,8 +128,6 @@ This is because Crowdin requires temporarily flattening this file and removing t
<patch id="layout.hide.fullscreenambientmode.disableFullscreenAmbientModePatch">
</patch>
<patch id="layout.hide.infocards.hideInfocardsResourcePatch">
<string name="revanced_hide_info_cards_summary_on">כרטיסי המידע מוסתרים</string>
<string name="revanced_hide_info_cards_summary_off">כרטיסי המידע מוצגים</string>
</patch>
<patch id="layout.hide.rollingnumber.disableRollingNumberAnimationPatch">
</patch>
@@ -164,13 +147,14 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button' -->
<string name="revanced_ryd_about">אודות</string>
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
</patch>
<patch id="layout.searchbar.wideSearchbarPatch">

View File

@@ -695,6 +695,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">プレーヤーのポップアップパネルが非表示になります</string>
<string name="revanced_hide_player_popup_panels_summary_off">プレーヤーのポップアップパネルが表示されます</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">全画面表示で動画を開く</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">動画を全画面表示で開く</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">動画が全画面表示されません</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">プレイヤーオーバーレイの透明度</string>
<string name="revanced_player_overlay_opacity_summary">透明度の値は 0〜100 の範囲で、0 が透明です</string>
@@ -992,7 +997,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">アプリの最小化プレイヤーのスタイルを変更する</string>
<string name="revanced_miniplayer_type_title">ミニプレーヤータイプ</string>
<string name="revanced_miniplayer_type_entry_0">無効</string>
<string name="revanced_miniplayer_type_entry_1">オリジナル</string>
<string name="revanced_miniplayer_type_entry_1">既定</string>
<string name="revanced_miniplayer_type_entry_2">最小</string>
<string name="revanced_miniplayer_type_entry_3">タブレット</string>
<string name="revanced_miniplayer_type_entry_4">モダン 1</string>
@@ -1178,12 +1183,65 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">この設定をオフにすると、ビデオ再生の問題が発生する可能性があります。</string>
<string name="revanced_spoof_video_streams_client_title">デフォルトのクライアント</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">強制AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">ビデオコーデックは AVC (H.264) です</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">ビデオコーデックはVP9またはAV1で</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">お使いのデバイスにはVP9ハードウェアデコードがありません。この設定はクライアントのスプーフィングが有効になっているときに常に有効になります</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">これを有効にするとバッテリー寿命と再生の途切れが改善する可能性があります。\n\nAVCの最大解像度は1080pで、ビデオ再生はVP9やAV1よりも多くの通信量を使用します。</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">ビデオコーデックはAVCに強制されました (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">ビデオコーデックが自動的に決定されま</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">これを有効にするとバッテリー寿命が延長され、再生が停止する可能性があります。\n\nAVCの最大解像度は1080pで、Opusオーディオコーデックは利用できません。 動画再生は、VP9やAV1よりも多くのインターネットデータを使用します</string>
<string name="revanced_spoof_video_streams_about_ios_title">iOSのクライアント偽装での副作用</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android-VR クライアント偽装の副作用</string>
<string name="revanced_spoof_video_streams_language_title">デフォルトのオーディオストリーム言語</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">アプリの言語</string>
<string name="revanced_spoof_video_streams_language_AR">アラビア文字</string>
<string name="revanced_spoof_video_streams_language_AZ">アゼルバイジャン語</string>
<string name="revanced_spoof_video_streams_language_BG">ブルガリア語</string>
<string name="revanced_spoof_video_streams_language_BN">ベンガル語</string>
<string name="revanced_spoof_video_streams_language_CA">カタロニア語</string>
<string name="revanced_spoof_video_streams_language_CS">チェコ語</string>
<string name="revanced_spoof_video_streams_language_DA">デンマーク語</string>
<string name="revanced_spoof_video_streams_language_DE">ドイツ語</string>
<string name="revanced_spoof_video_streams_language_EL">ギリシア語</string>
<string name="revanced_spoof_video_streams_language_EN">英語</string>
<string name="revanced_spoof_video_streams_language_ES">スペイン語</string>
<string name="revanced_spoof_video_streams_language_ET">エストニア語</string>
<string name="revanced_spoof_video_streams_language_FA">ペルシャ語</string>
<string name="revanced_spoof_video_streams_language_FI">フィンランド語</string>
<string name="revanced_spoof_video_streams_language_FR">Français</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">ヒンディー語</string>
<string name="revanced_spoof_video_streams_language_HR">クロアチア語</string>
<string name="revanced_spoof_video_streams_language_HU">ハンガリー語</string>
<string name="revanced_spoof_video_streams_language_ID">インドネシア語</string>
<string name="revanced_spoof_video_streams_language_IT">イタリア語</string>
<string name="revanced_spoof_video_streams_language_JA">日本語</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">Korean</string>
<string name="revanced_spoof_video_streams_language_LT">リトアニア語</string>
<string name="revanced_spoof_video_streams_language_LV">ラトビア語</string>
<string name="revanced_spoof_video_streams_language_MK">マケドニア語</string>
<string name="revanced_spoof_video_streams_language_MN">モンゴル語</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">マレー語</string>
<string name="revanced_spoof_video_streams_language_MY">Burmese</string>
<string name="revanced_spoof_video_streams_language_NL">オランダ語</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">ポーランド語</string>
<string name="revanced_spoof_video_streams_language_PT_BR">ポルトガル語 (ブラジル)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">ポルトガル語 (ポルトガル)</string>
<string name="revanced_spoof_video_streams_language_RO">ルーマニア語</string>
<string name="revanced_spoof_video_streams_language_RU">ロシア語</string>
<string name="revanced_spoof_video_streams_language_SK">スロバキア語</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">セルビア語</string>
<string name="revanced_spoof_video_streams_language_SV">スウェーデン語</string>
<string name="revanced_spoof_video_streams_language_SW">スワヒリ語</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">タイ語</string>
<string name="revanced_spoof_video_streams_language_TR">トルコ語</string>
<string name="revanced_spoof_video_streams_language_UK">ウクライナ語</string>
<string name="revanced_spoof_video_streams_language_UR">ウルドゥー語</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamese</string>
<string name="revanced_spoof_video_streams_language_ZH">中国語</string>
</patch>
</app>
<app id="twitch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -221,8 +221,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_artist_cards_summary_on">아티스트 카드가 숨겨집니다</string>
<string name="revanced_hide_artist_cards_summary_off">아티스트 카드가 표시됩니다</string>
<string name="revanced_hide_attributes_section_title">속성 섹션 숨기기</string>
<string name="revanced_hide_attributes_section_summary_on">게임 섹션, 음악 섹션 그리고 동영상 속 장소 섹션이 숨겨집니다</string>
<string name="revanced_hide_attributes_section_summary_off">게임 섹션, 음악 섹션 그리고 동영상 속 장소 섹션이 표시됩니다</string>
<string name="revanced_hide_attributes_section_summary_on">게임, 음악, 동영상 속 장소 그리고 언급된 인물 섹션이 숨겨집니다</string>
<string name="revanced_hide_attributes_section_summary_off">게임, 음악, 동영상 속 장소 그리고 언급된 인물 섹션이 표시됩니다</string>
<string name="revanced_hide_chapters_section_title">챕터 섹션 숨기기</string>
<string name="revanced_hide_chapters_section_summary_on">챕터 섹션이 숨겨집니다</string>
<string name="revanced_hide_chapters_section_summary_off">챕터 섹션이 표시됩니다</string>
@@ -304,7 +304,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_keyword_content_about_summary">홈 / 구독 / 검색 결과가 필터링되어 키워드 구문과 일치하는 콘텐츠가 숨겨집니다\n\n알려진 문제점:\n• 채널 이름으로 Shorts는 숨길 수 없습니다\n• 일부 화면 구성요소는 숨겨지지 않을 수 있습니다\n• 필터링 키워드를 검색하면 검색 결과가 표시되지 않을 수 있습니다</string>
<string name="revanced_hide_keyword_content_about_whole_words_title">전체 단어 일치시키기</string>
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<string name="revanced_hide_keyword_content_about_whole_words_summary">필터링할 키워드 및 구문을 큰따옴표로 묶으면 동영상 제목과 채널 이름이 부분적으로 일치하지 않도록 방지할 수 있습니다&lt;br&gt;&lt;br&gt;예를 들어,&lt;br&gt;&lt;b&gt;\"ai\"&lt;/b&gt;라는 키워드로 &lt;b&gt;AI 커리어 완벽 가이드&lt;/b&gt;라는 제목의 동영상을 숨길 수 있지만, &lt;b&gt;생성형AI가 바꿔놓은 세계&lt;/b&gt; 또는 &lt;b&gt;What does fair use mean?&lt;/b&gt;라는 제목의 동영상은 숨길 수 습니다</string>
<string name="revanced_hide_keyword_content_about_whole_words_summary">필터링할 키워드 및 구문을 큰따옴표로 묶으면 동영상 제목과 채널 이름이 부분적으로 일치하지 않도록 방지할 수 있습니다&lt;br&gt;&lt;br&gt;예를 들어, &lt;b&gt;\"ai\"&lt;/b&gt;라는 키워드로 &lt;b&gt;AI 커리어 완벽 가이드&lt;/b&gt;라는 동영상을 숨길 수 있지만, &lt;b&gt;생성형AI가 바꿔놓은 세계&lt;/b&gt; 또는 &lt;b&gt;What does fair use mean?&lt;/b&gt;라는 동영상은 숨길 수 없습니다&lt;br&gt;• 그리고 구두점을 단어의 경계로 간주하기 때문에 &lt;b&gt;인공지능(AI)의 원리&lt;/b&gt;라는 동영상은 숨길 수 습니다. 큰따옴표는 다른 단어 내부의 하위 문자열만 무시합니다 (예: &lt;b&gt;fair&lt;/b&gt;는 숨길 수 없지만, &lt;b&gt;f(ai)r&lt;/b&gt;는 숨김)</string>
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
<string name="revanced_hide_keyword_toast_invalid_common">키워드를 사용할 수 없습니다: %s</string>
<string name="revanced_hide_keyword_toast_invalid_common_whole_word_required">따옴표를 추가하여 키워드를 사용합니다: %s</string>
@@ -364,11 +364,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_share_copy_url_success">URL을 클립보드에 복사하였습니다</string>
<string name="revanced_share_copy_url_timestamp_success">타임스탬프를 표기한 URL을 클립보드에 복사하였습니다</string>
<string name="revanced_copy_video_url_title">동영상 URL 복사 버튼 표시하기</string>
<string name="revanced_copy_video_url_summary_on">버튼을 표시합니다. 버튼을 눌러서 동영상 URL을 복사할 수 있습니다. 길게 누르면 타임스탬프를 표기한 동영상 URL이 복사됩니다</string>
<string name="revanced_copy_video_url_summary_off">버튼을 표시하지 않습니다</string>
<string name="revanced_copy_video_url_summary_on">버튼을 눌러서 동영상 URL을 복사할 수 있습니다\n길게 누르면 타임스탬프를 표기한 동영상 URL이 복사됩니다</string>
<string name="revanced_copy_video_url_summary_off">버튼을 눌러서 동영상 URL을 복사할 수 있습니다\n길게 누르면 타임스탬프를 표기한 동영상 URL이 복사됩니다</string>
<string name="revanced_copy_video_url_timestamp_title">타임스탬프를 표기한 URL 복사 버튼 표시하기</string>
<string name="revanced_copy_video_url_timestamp_summary_on">버튼을 표시합니다. 버튼을 눌러서 타임스탬프를 표기한 동영상 URL을 복사할 수 있습니다. 길게 누르면 타임스탬프를 표기하지 않은 동영상 URL이 복사됩니다</string>
<string name="revanced_copy_video_url_timestamp_summary_off">버튼을 표시하지 않습니다</string>
<string name="revanced_copy_video_url_timestamp_summary_on">버튼을 눌러서 타임스탬프를 표기한 동영상 URL을 복사할 수 있습니다\n길게 누르면 타임스탬프를 표기하지 않은 동영상 URL이 복사됩니다</string>
<string name="revanced_copy_video_url_timestamp_summary_off">버튼을 눌러서 타임스탬프를 표기한 동영상 URL을 복사할 수 있습니다\n길게 누르면 타임스탬프를 표기하지 않은 동영상 URL이 복사됩니다</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
<string name="revanced_remove_viewer_discretion_dialog_title">시청 경고 다이얼로그 제거하기</string>
@@ -710,6 +710,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">플레이어 팝업 패널이 숨겨집니다\n• 재생목록, 실시간 채팅, etc.</string>
<string name="revanced_hide_player_popup_panels_summary_off">플레이어 팝업 패널이 표시됩니다\n• 재생목록, 실시간 채팅, etc.</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">동영상을 전체 화면 세로 모드로 열기</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">동영상을 전체 화면으로 엽니다</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">동영상을 전체 화면으로 열지 않습니다</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">플레이어 오버레이 불투명도</string>
<string name="revanced_player_overlay_opacity_summary">불투명도 값은 0-100 사이이며, 0은 투명입니다</string>
@@ -963,7 +968,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_app_version_user_dialog_message">앱 버전을 YouTube 이전 앱 버전으로 변경합니다\n\n이 경우 앱 레이아웃과 기능이 변경되지만 알려지지 않은 문제점이 발생할 수 있습니다\n\n나중에 이 설정을 비활성화하면 앱 레이아웃 버그를 방지하기 위해 앱 데이터를 지우는 것이 좋습니다</string>
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">변경할 앱 버전 설정</string>
<string name="revanced_spoof_app_version_target_title">변경할 앱 버전</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - 이전 Shorts 플레이어 아이콘을 복원합니다</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - 시크릿 모드에서 Shorts RYD를 복원합니다</string>
@@ -1011,9 +1016,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">미니 플레이어</string>
<string name="revanced_miniplayer_screen_summary">앱 내에서 최소화된 플레이어의 스타일을 변경할 수 있습니다</string>
<string name="revanced_miniplayer_type_title">미니 플레이어 유형 설정</string>
<string name="revanced_miniplayer_type_title">미니 플레이어 유형</string>
<string name="revanced_miniplayer_type_entry_0">비활성화됨</string>
<string name="revanced_miniplayer_type_entry_1">기기 기본값 사용</string>
<string name="revanced_miniplayer_type_entry_1">홈 (기본값)</string>
<string name="revanced_miniplayer_type_entry_2">최소화</string>
<string name="revanced_miniplayer_type_entry_3">태블릿</string>
<string name="revanced_miniplayer_type_entry_4">최신 스타일 1</string>
@@ -1022,18 +1027,18 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_rounded_corners_title">둥근 모서리 활성화하기</string>
<string name="revanced_miniplayer_rounded_corners_summary_on">모서리를 둥글게 활성화합니다</string>
<string name="revanced_miniplayer_rounded_corners_summary_off">모서리를 각지게 활성화합니다</string>
<string name="revanced_miniplayer_double_tap_action_title">두 번 누르기 및 핀치하여 크기 조정 활성화하기</string>
<string name="revanced_miniplayer_double_tap_action_summary_on">두 번 누르기 동작 및 핀치하여 크기 조정을 활성화합니다\n\n• 두 번 눌러서 미니 플레이어 크기를 확대합니다\n• 다시 두 번 눌러서 원래 크기로 복원니다</string>
<string name="revanced_miniplayer_double_tap_action_summary_off">두 번 누르기 동작 및 핀치하여 크기 조정을 비활성화합니다</string>
<string name="revanced_miniplayer_double_tap_action_title">\'두 번 누르기\'\'핀치하여 크기 조정\' 활성화하기</string>
<string name="revanced_miniplayer_double_tap_action_summary_on">\'두 번 누르기 동작\'\'핀치하여 크기 조정\'을 활성화합니다\n\n• 두 번 눌러서 미니 플레이어 크기를 늘릴 수 있습니다\n• 다시 두 번 누르면 원래 크기로 복원니다</string>
<string name="revanced_miniplayer_double_tap_action_summary_off">\'두 번 누르기 동작\'\'핀치하여 크기 조정\'을 비활성화합니다</string>
<string name="revanced_miniplayer_drag_and_drop_title">드래그 &amp; 드롭 활성화하기</string>
<string name="revanced_miniplayer_drag_and_drop_summary_on">드래그 &amp; 드롭을 활성화합니다\n\n• 미니 플레이어를 화면의 어느 곳이든 드래그할 수 있습니다</string>
<string name="revanced_miniplayer_drag_and_drop_summary_off">드래그 &amp; 드롭을 비활성화합니다</string>
<string name="revanced_miniplayer_horizontal_drag_title">수평 드래그 제스처 활성화하기</string>
<string name="revanced_miniplayer_horizontal_drag_summary_on">수평 드래그 제스처를 활성화합니다\n\n미니 플레이어를 화면에서 왼쪽 또는 오른쪽으로 드래그 수 있습니다</string>
<string name="revanced_miniplayer_horizontal_drag_summary_on">수평 드래그 제스처를 활성화합니다\n\n미니 플레이어 절반 정도를 왼쪽 또는 오른쪽으로 드래그하여 숨길 수 있습니다</string>
<string name="revanced_miniplayer_horizontal_drag_summary_off">수평 드래그 제스처를 비활성화합니다</string>
<string name="revanced_miniplayer_hide_expand_close_title">닫기 버튼 숨기기</string>
<string name="revanced_miniplayer_hide_expand_close_summary_on">닫기 버튼이 숨겨집니다</string>
<string name="revanced_miniplayer_hide_expand_close_summary_off">닫기 버튼이 표시됩니다</string>
<string name="revanced_miniplayer_hide_expand_close_title">\'닫기\' 버튼 숨기기</string>
<string name="revanced_miniplayer_hide_expand_close_summary_on">\'닫기\' 버튼이 숨겨집니다</string>
<string name="revanced_miniplayer_hide_expand_close_summary_off">\'닫기\' 버튼이 표시됩니다</string>
<string name="revanced_miniplayer_hide_expand_close_legacy_title">\'펼치기\' &amp; \'닫기\' 버튼 숨기기</string>
<string name="revanced_miniplayer_hide_expand_close_legacy_summary_on">\'펼치기\' &amp; \'닫기\' 버튼이 숨겨집니다\n\n• 스와이프하여 미니 플레이어를 펼치거나 닫을 수 있습니다</string>
<string name="revanced_miniplayer_hide_expand_close_legacy_summary_off">\'펼치기\' &amp; \'닫기\' 버튼이 표시됩니다</string>
@@ -1059,7 +1064,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_seekbar_custom_color_title">사용자 정의 재생바 색상 활성화하기</string>
<string name="revanced_seekbar_custom_color_summary_on">사용자 정의 재생바 색상을 활성화합니다</string>
<string name="revanced_seekbar_custom_color_summary_off">기본 재생바 색상을 활성화합니다</string>
<string name="revanced_seekbar_custom_color_value_title">사용자 정의 재생바 색상 설정</string>
<string name="revanced_seekbar_custom_color_value_title">사용자 정의 재생바 색상</string>
<string name="revanced_seekbar_custom_color_value_summary">재생바 색상</string>
<string name="revanced_seekbar_custom_color_invalid">잘못된 재생바 색상값입니다</string>
</patch>
@@ -1081,14 +1086,14 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_alt_thumbnail_options_entry_2">DeArrow &amp; 기본 썸네일</string>
<string name="revanced_alt_thumbnail_options_entry_3">DeArrow &amp; 스틸 컷 썸네일</string>
<string name="revanced_alt_thumbnail_options_entry_4">스틸 컷 썸네일</string>
<string name="revanced_alt_thumbnail_dearrow_about_summary">DeArrow는 YouTube 동영상에 크라우드 소싱된 썸네일을 제공합니다. 이러한 썸네일은 YouTube에서 제공하는 썸네일보다 관련성이 높은 경우가 많습니다\n\n이 설정을 활성화하면 동영상 URL이 API 서버로 전송되며 다른 데이터는 전송되지 않습니다. 동영상에 DeArrow 썸네일이 없는 경우에는 기본 썸네일 또는 스틸 컷 썸네일이 표시됩니다\n\nDeArrow에 대해 자세히 알아보려면 여기를 누르세요</string>
<string name="revanced_alt_thumbnail_dearrow_about_summary">DeArrow는 YouTube 동영상에 크라우드 소싱된 썸네일을 제공합니다. 이러한 썸네일은 YouTube에서 제공하는 썸네일보다 관련성이 높은 경우가 많습니다\n\n이 설정을 활성화하면 동영상 URL이 API 서버로 전송되며, 다른 데이터는 전송되지 않습니다. 동영상에 DeArrow 썸네일이 없는 경우에는 기본 썸네일 또는 스틸 컷 썸네일이 표시됩니다\n\nDeArrow에 대해 자세히 알아보려면 여기를 누르세요</string>
<string name="revanced_alt_thumbnail_dearrow_connection_toast_title">API를 사용할 수 없을 때, 팝업 메시지 표시하기</string>
<string name="revanced_alt_thumbnail_dearrow_connection_toast_summary_on">DeArrow를 사용할 수 없을 때, 팝업 메시지를 표시합니다</string>
<string name="revanced_alt_thumbnail_dearrow_connection_toast_summary_off">DeArrow를 사용할 수 없을 때, 팝업 메시지를 표시하지 않습니다</string>
<string name="revanced_alt_thumbnail_dearrow_api_url_title">DeArrow API 엔드포인트</string>
<string name="revanced_alt_thumbnail_dearrow_api_url_summary">DeArrow 썸네일 캐시 엔드포인트 URL입니다. 이것이 무슨 역할을 하는지 모르는 경우에는 이 URL을 변경하지 마세요</string>
<string name="revanced_alt_thumbnail_stills_about_title">스틸 컷 썸네일</string>
<string name="revanced_alt_thumbnail_stills_about_summary">스틸 컷 썸네일은 각 동영상의 시작 / 중간 / 끝 부분에서 캡쳐된 이미지입니다. 이러한 이미지는 YouTube에 내장되어 있으며 외부 API는 사용되지 않습니다</string>
<string name="revanced_alt_thumbnail_stills_about_summary">스틸 컷 썸네일은 각 동영상의 시작 / 중간 / 끝 부분에서 캡쳐된 이미지입니다. 이러한 이미지는 YouTube에 내장되어 있으며, 외부 API는 사용되지 않습니다</string>
<string name="revanced_alt_thumbnail_stills_fast_title">일반화질 스틸 컷 썸네일 표시하기</string>
<string name="revanced_alt_thumbnail_stills_fast_summary_on">일반화질 스틸 컷 썸네일을 표시합니다. 썸네일을 빠르게 불러오지만 실시간 스트림, 비공개, 오래된 동영상에서는 아무것도 표시되지 않은 썸네일이 표시될 수 있습니다</string>
<string name="revanced_alt_thumbnail_stills_fast_summary_off">고화질 스틸 컷 썸네일을 표시합니다</string>
@@ -1120,7 +1125,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="misc.dimensions.spoof.spoofDeviceDimensionsPatch">
<string name="revanced_spoof_device_dimensions_title">기기 크기 정보 변경하기</string>
<string name="revanced_spoof_device_dimensions_summary_on">기기 크기 정보를 변경합니다\n\n이 설정을 활성화하면 더 높은 화질 동영상 값을 잠금 해제할 수 있지만, 동영상 재생이 끊기거나 배터리 수명이 단축될 수 있으며 알려지지 않은 문제점도 발생할 수 있습니다</string>
<string name="revanced_spoof_device_dimensions_summary_on">기기 크기 정보를 변경합니다\n\n이 설정을 활성화하면 더 높은 화질 동영상 값을 잠금 해제할 수 있지만, 동영상 재생이 끊기거나 배터리 수명이 단축될 수 있으며, 알려지지 않은 문제점도 발생할 수 있습니다</string>
<string name="revanced_spoof_device_dimensions_summary_off">기기 크기 정보를 변경하지 않습니다\n\n이 설정을 활성화하면 더 높은 화질 동영상 값을 잠금 해제할 수 있습니다</string>
<string name="revanced_spoof_device_dimensions_user_dialog_message">이 설정을 활성화하면 동영상 재생이 끊기거나 배터리 수명이 단축되고 알려지지 않은 문제점이 발생할 수 있습니다</string>
</patch>
@@ -1201,14 +1206,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">이 설정을 비활성화하면 동영상 재생 문제가 발생할 수 있습니다</string>
<string name="revanced_spoof_video_streams_client_title">기본 클라이언트</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">AVC (H.264) 강제로 활성화하기</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">동영상 코덱을 AVC (H.264)로 활성화합니다\n\n• 일부 VP9 코덱 동영상에서 제거되었던 화질 값들이 표시될 수 있습니다.\n• 최대 화질 값이 1080p이므로 초고화질 동영상을 재생할 수 없습니다.\n• HDR 동영상을 재생할 수 없습니다</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">동영상 코덱을 VP9 또는 AV1으로 활성화합니다\n\n• 예전에 업로드된 동영상을 재생했는데 VP9 코덱 응답을 받았을 경우, 일부 화질 값들이 제거되어 360p와 1080p(Premium 기능)만 선택할 수 있거나 화질 메뉴를 선택할 수 없을 수 있습니다</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">이 기기는 VP9 하드웨어 디코딩을 지원하지 않습니다. 그러므로 \'클라이언트 변경하기\'가 활성화된 경우에는 이 설정은 항상 켜져 있습니다</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">이 설정을 활성화하면 배터리 수명이 향상되고 재생 끊김 현상이 해결될 수 있습니다\n\nAVC의 최대 화질 값은 1080p이며 동영상을 재생하면 VP9 또는 AV1보다 더 많은 모바일 데이터가 사용되오니 주의하세요.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">동영상 코덱을 AVC (H.264)로 강제 활성화합니다</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">동영상 코덱을 자동으로 활성화합니다</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">이 기능을 활성화하면 배터리 수명이 향상되고 재생 끊김 현상이 해결될 수 있습니다\n\nAVC (H.264)의 최대 화질 값은 1080p이며, OPUS 오디오 코덱을 사용할 수 없고, 동영상 재생 시 VP9 또는 AV1보다 더 많은 모바일 데이터가 사용되오니 주의하세요</string>
<string name="revanced_spoof_video_streams_about_ios_title">\'iOS로 변경\'의 알려진 문제점</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• 비공개 Kids 동영상이 재생되지 않을 수 있습니다\n• 일부 실시간 스트림이 처음부터 시작될 수 있습니다\n• 동영상이 1초 일찍 종료될 수 있습니다\n• OPUS 오디오 코덱이 지원되지 않습니다</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• 비공개 Kids 동영상이 재생되지 않을 수 있습니다\n• 연령 제한 동영상이 재생되지 않을 수 있습니다\n• 일부 라이브 스트림이 처음부터 재생될 수 있습니다\n• 동영상이 1초 일찍 종료될 수 있습니다</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">\'Android VR로 변경\'의 알려진 문제점</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Kids 동영상이 재생되지 않을 수 있습니다\n• 오디오 트랙 메뉴가 표시되지 않습니다\n• 안정적인 볼륨 메뉴가 비활성화된 채로 잠겨있습니다</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Kids 동영상이 재생되지 않을 수 있습니다\n• 연령 제한 동영상이 재생되지 않을 수 있습니다\n• 일부 라이브 스트림이 처음부터 재생될 수 있습니다\n• 동영상이 1초 일찍 종료될 수 있습니다</string>
<string name="revanced_spoof_video_streams_language_title">기본 오디오 트랙 언어</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">앱 언어</string>
<string name="revanced_spoof_video_streams_language_AR">아랍어</string>
<string name="revanced_spoof_video_streams_language_AZ">아제르바니잔어</string>
<string name="revanced_spoof_video_streams_language_BG">불가리아어</string>
<string name="revanced_spoof_video_streams_language_BN">뱅골어</string>
<string name="revanced_spoof_video_streams_language_CA">카타로니아어</string>
<string name="revanced_spoof_video_streams_language_CS">체코어</string>
<string name="revanced_spoof_video_streams_language_DA">덴마크어</string>
<string name="revanced_spoof_video_streams_language_DE">독일어</string>
<string name="revanced_spoof_video_streams_language_EL">그리스어</string>
<string name="revanced_spoof_video_streams_language_EN">영어</string>
<string name="revanced_spoof_video_streams_language_ES">스페인어</string>
<string name="revanced_spoof_video_streams_language_ET">에스토니아어</string>
<string name="revanced_spoof_video_streams_language_FA">페르시아어</string>
<string name="revanced_spoof_video_streams_language_FI">핀란드어</string>
<string name="revanced_spoof_video_streams_language_FR">프랑스어</string>
<string name="revanced_spoof_video_streams_language_GU">구자라트어</string>
<string name="revanced_spoof_video_streams_language_HI">힌디어</string>
<string name="revanced_spoof_video_streams_language_HR">크로아티아어</string>
<string name="revanced_spoof_video_streams_language_HU">헝가리어</string>
<string name="revanced_spoof_video_streams_language_ID">인도네시아어</string>
<string name="revanced_spoof_video_streams_language_IT">이틸리아어</string>
<string name="revanced_spoof_video_streams_language_JA">일본어</string>
<string name="revanced_spoof_video_streams_language_KK">키자흐스탄어</string>
<string name="revanced_spoof_video_streams_language_KO">한국어</string>
<string name="revanced_spoof_video_streams_language_LT">리투아니아어</string>
<string name="revanced_spoof_video_streams_language_LV">라트비아어</string>
<string name="revanced_spoof_video_streams_language_MK">마케도니아어</string>
<string name="revanced_spoof_video_streams_language_MN">몽골어</string>
<string name="revanced_spoof_video_streams_language_MR">마라티어</string>
<string name="revanced_spoof_video_streams_language_MS">말레이어</string>
<string name="revanced_spoof_video_streams_language_MY">버마어</string>
<string name="revanced_spoof_video_streams_language_NL">네덜란드어</string>
<string name="revanced_spoof_video_streams_language_OR">오리야어</string>
<string name="revanced_spoof_video_streams_language_PA">펀잡어</string>
<string name="revanced_spoof_video_streams_language_PL">폴란드어</string>
<string name="revanced_spoof_video_streams_language_PT_BR">포르투갈어 (브라질)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">포르투갈어 (포르트갈)</string>
<string name="revanced_spoof_video_streams_language_RO">루마니아어</string>
<string name="revanced_spoof_video_streams_language_RU">러시아어</string>
<string name="revanced_spoof_video_streams_language_SK">슬로바키아어</string>
<string name="revanced_spoof_video_streams_language_SL">슬로베니아어</string>
<string name="revanced_spoof_video_streams_language_SR">세르비아어</string>
<string name="revanced_spoof_video_streams_language_SV">스웨덴어</string>
<string name="revanced_spoof_video_streams_language_SW">스와힐리어</string>
<string name="revanced_spoof_video_streams_language_TA">타밀어</string>
<string name="revanced_spoof_video_streams_language_TE">텔루구어</string>
<string name="revanced_spoof_video_streams_language_TH">태국어</string>
<string name="revanced_spoof_video_streams_language_TR">터키어</string>
<string name="revanced_spoof_video_streams_language_UK">우크라이나어</string>
<string name="revanced_spoof_video_streams_language_UR">우르두어</string>
<string name="revanced_spoof_video_streams_language_VI">베트남어</string>
<string name="revanced_spoof_video_streams_language_ZH">중국어</string>
</patch>
</app>
<app id="twitch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -150,6 +150,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
@@ -183,6 +185,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_type_entry_0">Išjungta</string>
<string name="revanced_miniplayer_type_entry_1">Numatytasis</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
@@ -180,6 +182,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_type_entry_0">Atspējots</string>
<string name="revanced_miniplayer_type_entry_1">Noklusējums</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -697,6 +697,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Spillerens popup-paneler er skjult</string>
<string name="revanced_hide_player_popup_panels_summary_off">Spillerpopup-paneler vises</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Åpne videoer i fullskjerm portrett</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videoer åpnes fullskjerm</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Videoer åpner ikke fullskjerm</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Spiller overlegg ugjennomsiktighet</string>
<string name="revanced_player_overlay_opacity_summary">Gjennomsiktighet mellom 0-100, der 0 er gjennomsiktig</string>
@@ -985,7 +990,6 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Endre stil på appen til den minimerte spilleren</string>
<string name="revanced_miniplayer_type_title">Type Minispiller</string>
<string name="revanced_miniplayer_type_entry_0">Deaktivert</string>
<string name="revanced_miniplayer_type_entry_1">Opprinnelig</string>
<string name="revanced_miniplayer_type_entry_2">Minimalt</string>
<string name="revanced_miniplayer_type_entry_3">Nettbrett</string>
<string name="revanced_miniplayer_type_entry_4">Moderne 1</string>
@@ -1170,14 +1174,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Ved å slå av denne innstillingen kan problemer med videoavspilling.</string>
<string name="revanced_spoof_video_streams_client_title">Standard klient</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Tving AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Videokodek er AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Videokodek er VP9 eller AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Din enhet har ikke VP9, dekotering av maskinvare og denne innstillingen er alltid på når spoofing av klient er aktivert</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Aktivering av dette kan forbedre batterilevetiden og korrigere avspilling med avvik.\n\nAVC har en maksimal oppløsning på 1080p, og videoavspilling vil bruke flere Internettdata enn VP9 eller AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Videokodek tvinges til AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Videokodek bestemmes automatisk</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Aktivering av dette kan forbedre batterilevetiden og korrigere avspilling med avvik.\n\nAVC har en maksimal oppløsning på 1080p, Opus lydkodek er ikke tilgjengelig. og videoavspilling vil bruke flere Internett-data enn VP9 eller AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">iOS med bivirkninger</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Private kids-videoer spiller kanskje ikke\n• Livestreams start fra begynnelsen\n• Videoer kan ende 1 sekund av\n• Ingen opus lydkodek</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Private kids-videoer spiller kanskje ikke\n• Alder begrensede videoer spiller kanskje ikke\n• direktestrømming starter på begynnelsen\n• Videoer slutter 1 sekund tidlig</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR opplever bivirkninger</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Barn kan ikke spille\n• Lydspormeny mangler\n• Stabilt volum er ikke tilgjengelig</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Barn som ikke spiller\n• Alder begrensede videoer kan kanskje ikke spille\n• direktestrømming starter på begynnelsen\n• Videoer slutten 1 sekund tidlig</string>
<string name="revanced_spoof_video_streams_language_title">Standard lydstrømmespråk</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">App språk</string>
<string name="revanced_spoof_video_streams_language_AR">Arabisk</string>
<string name="revanced_spoof_video_streams_language_AZ">Aserbajdsjansk</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgarsk</string>
<string name="revanced_spoof_video_streams_language_BN">Bengalsk</string>
<string name="revanced_spoof_video_streams_language_CA">Katalansk</string>
<string name="revanced_spoof_video_streams_language_CS">Tsjekkisk</string>
<string name="revanced_spoof_video_streams_language_DA">Dansk</string>
<string name="revanced_spoof_video_streams_language_DE">Tysk</string>
<string name="revanced_spoof_video_streams_language_EL">Gresk</string>
<string name="revanced_spoof_video_streams_language_EN">Engelsk</string>
<string name="revanced_spoof_video_streams_language_ES">Spansk</string>
<string name="revanced_spoof_video_streams_language_ET">Estisk</string>
<string name="revanced_spoof_video_streams_language_FA">Persisk</string>
<string name="revanced_spoof_video_streams_language_FI">Finsk</string>
<string name="revanced_spoof_video_streams_language_FR">Fransk</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Kroatisk</string>
<string name="revanced_spoof_video_streams_language_HU">Ungarsk</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesisk</string>
<string name="revanced_spoof_video_streams_language_IT">Italiensk</string>
<string name="revanced_spoof_video_streams_language_JA">Japansk</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">Koreansk</string>
<string name="revanced_spoof_video_streams_language_LT">Litauisk</string>
<string name="revanced_spoof_video_streams_language_LV">Latvisk</string>
<string name="revanced_spoof_video_streams_language_MK">Makedonsk</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolsk</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Malayisk</string>
<string name="revanced_spoof_video_streams_language_MY">Burmese</string>
<string name="revanced_spoof_video_streams_language_NL">Nederlandsk</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polsk</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Portugisisk (Brasil)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Portugisisk (Portugal)</string>
<string name="revanced_spoof_video_streams_language_RO">Rumensk</string>
<string name="revanced_spoof_video_streams_language_RU">Russisk</string>
<string name="revanced_spoof_video_streams_language_SK">Slovakisk</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">Serbisk</string>
<string name="revanced_spoof_video_streams_language_SV">Svensk</string>
<string name="revanced_spoof_video_streams_language_SW">Swahili</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Thailandsk</string>
<string name="revanced_spoof_video_streams_language_TR">Tyrkisk</string>
<string name="revanced_spoof_video_streams_language_UK">Ukrainsk</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamese</string>
<string name="revanced_spoof_video_streams_language_ZH">Kinesisk</string>
</patch>
</app>
<app id="twitch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -701,6 +701,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Speler pop-up panelen zijn verborgen</string>
<string name="revanced_hide_player_popup_panels_summary_off">Speler pop-up panelen worden getoond</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Open video\'s in volledig scherm portret</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Video\'s openen volledig scherm</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Video\'s openen niet volledig scherm</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Doorzichtigheid speler overlay</string>
<string name="revanced_player_overlay_opacity_summary">Transparantiewaarde tussen 0-100, waarbij 0 transparant is</string>
@@ -997,7 +1002,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">De stijl van de in de app geminimaliseerde speler wijzigen</string>
<string name="revanced_miniplayer_type_title">Miniplayer type</string>
<string name="revanced_miniplayer_type_entry_0">Uitgeschakeld</string>
<string name="revanced_miniplayer_type_entry_1">Origineel</string>
<string name="revanced_miniplayer_type_entry_1">Standaard</string>
<string name="revanced_miniplayer_type_entry_2">Minimaal</string>
<string name="revanced_miniplayer_type_entry_3">Telefoon</string>
<string name="revanced_miniplayer_type_entry_4">Moderne 1</string>
@@ -1185,14 +1190,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Het uitschakelen van deze instelling kan problemen met het afspelen van video veroorzaken.</string>
<string name="revanced_spoof_video_streams_client_title">Standaard client</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Forceer AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Videocodec is AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Videocodec is VP9 of AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Je apparaat heeft geen VP9 hardware-decodering en deze instelling is altijd ingeschakeld wanneer \'Client spoofing\' is ingeschakeld</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Het inschakelen hiervan kan de batterijduur verbeteren en het terugspringen corrigeren.\n\nAVC heeft een maximale resolutie van 1080p, en het afspelen van video\'s zal meer internetgegevens gebruiken dan VP9 of AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Videocodec wordt gedwongen naar AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Videocodec wordt automatisch bepaald</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Het inschakelen hiervan kan de batterijduur verbeteren en het terugspringen corrigeren.\n\nAVC heeft een maximale resolutie van 1080p, Opus audiocodec is niet beschikbaar. en afspelen van video\'s zal meer internetgegevens gebruiken dan VP9 of AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">iOS vervalste bijwerkingen</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Privé-kinderen video\'s kunnen mogelijk niet afspelen\n• Livestreams beginnen vanaf het begin\n• Video\'s kunnen 1 seconde vroeg eindigen\n• Geen opus audiocodec</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Privé-kinderen video\'s kunnen mogelijk niet afspelen\n• Leeftijd beperkte video\'s kunnen mogelijk niet afspelen\n• Livestreams starten vanaf het begin\n• Video\'s eindigen 1 seconde eerder</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR vervalste bijeffecten</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Kids video\'s mogen niet afspelen\n• Audio track menu ontbreekt\n• Stabiel volume is niet beschikbaar</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Kids video\'s mogen niet afspelen\n• Leeftijd beperkte video\'s mogen niet afspelen\n• Livestreams beginnen vanaf het begin\n• Video\'s eindigen 1 seconde eerder</string>
<string name="revanced_spoof_video_streams_language_title">Standaard taal audio stream</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">App taal</string>
<string name="revanced_spoof_video_streams_language_AR">Arabisch</string>
<string name="revanced_spoof_video_streams_language_AZ">Azerbeidzjaans</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgaars</string>
<string name="revanced_spoof_video_streams_language_BN">Bengaalse</string>
<string name="revanced_spoof_video_streams_language_CA">Catalaans</string>
<string name="revanced_spoof_video_streams_language_CS">Tsjechisch</string>
<string name="revanced_spoof_video_streams_language_DA">Deens</string>
<string name="revanced_spoof_video_streams_language_DE">Duits</string>
<string name="revanced_spoof_video_streams_language_EL">Grieks</string>
<string name="revanced_spoof_video_streams_language_EN">Engels</string>
<string name="revanced_spoof_video_streams_language_ES">Spaans</string>
<string name="revanced_spoof_video_streams_language_ET">Estlands</string>
<string name="revanced_spoof_video_streams_language_FA">Perzisch</string>
<string name="revanced_spoof_video_streams_language_FI">Fins</string>
<string name="revanced_spoof_video_streams_language_FR">Frans</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindoestani</string>
<string name="revanced_spoof_video_streams_language_HR">Kroatisch</string>
<string name="revanced_spoof_video_streams_language_HU">Hongaars</string>
<string name="revanced_spoof_video_streams_language_ID">Indonesisch</string>
<string name="revanced_spoof_video_streams_language_IT">Italiaans</string>
<string name="revanced_spoof_video_streams_language_JA">Afrikaans</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">Koreaans</string>
<string name="revanced_spoof_video_streams_language_LT">Litouws</string>
<string name="revanced_spoof_video_streams_language_LV">Lets</string>
<string name="revanced_spoof_video_streams_language_MK">Macedonisch</string>
<string name="revanced_spoof_video_streams_language_MN">Mongools</string>
<string name="revanced_spoof_video_streams_language_MR">Marathi</string>
<string name="revanced_spoof_video_streams_language_MS">Maleisisch</string>
<string name="revanced_spoof_video_streams_language_MY">Burmese</string>
<string name="revanced_spoof_video_streams_language_NL">Nederlands</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Pools</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Portugees (Brazilië)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Portugees (Portugal)</string>
<string name="revanced_spoof_video_streams_language_RO">Roemeens</string>
<string name="revanced_spoof_video_streams_language_RU">Russisch</string>
<string name="revanced_spoof_video_streams_language_SK">Slowaaks</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">Servisch</string>
<string name="revanced_spoof_video_streams_language_SV">Zweeds</string>
<string name="revanced_spoof_video_streams_language_SW">Moeilijk</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Thaise</string>
<string name="revanced_spoof_video_streams_language_TR">Turks</string>
<string name="revanced_spoof_video_streams_language_UK">Oekraïens</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamese</string>
<string name="revanced_spoof_video_streams_language_ZH">Chinees</string>
</patch>
</app>
<app id="twitch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -710,6 +710,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Wyskakujące panele odtwarzacza są ukryte</string>
<string name="revanced_hide_player_popup_panels_summary_off">Wyskakujące panele odtwarzacza są widoczne</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Filmy w trybie pełnoekranowym</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Filmy otwierają się w trybie pełnoekranowym</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Filmy nie otwierają się w trybie pełnoekranowym</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Przezroczystość nakładki odtwarzacza</string>
<string name="revanced_player_overlay_opacity_summary">Wartość przezroczystości między 0-100, gdzie 0 jest przezroczysty</string>
@@ -1013,7 +1018,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Zmień styl zminimalizowanego odtwarzacza aplikacji</string>
<string name="revanced_miniplayer_type_title">Typ miniodtwarzacza</string>
<string name="revanced_miniplayer_type_entry_0">Wyłączony</string>
<string name="revanced_miniplayer_type_entry_1">Oryginalny</string>
<string name="revanced_miniplayer_type_entry_1">Domyślny</string>
<string name="revanced_miniplayer_type_entry_2">Minimalny</string>
<string name="revanced_miniplayer_type_entry_3">Tabletowy</string>
<string name="revanced_miniplayer_type_entry_4">Nowoczesny 1</string>
@@ -1201,14 +1206,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Wyłączenie tej opcji może spowodować problemy z odtwarzaniem filmów.</string>
<string name="revanced_spoof_video_streams_client_title">Domyślny klient</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Wymuś AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Kodek wideo to AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Kodek wideo to VP9 / AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Twoje urządzenie nie posiada sprzętowego dekodowania VP9, a ta opcja jest zawsze włączona, gdy spoofing klienta jest aktywny</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Włączenie tej opcji może poprawić żywotność baterii i wyeliminować zacinanie się odtwarzania.\n\nAVC ma maksymalną rozdzielczość 1080p, a odtwarzanie wideo zużywa więcej danych internetowych niż VP9 czy AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Kodek filmu jest wymuszony do AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Kodek filmu jest ustawiany automatycznie</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Włączenie tej opcji może poprawić żywotność baterii i wyeliminować zacinanie się odtwarzania.\n\nAVC ma maksymalną rozdzielczość 1080p, kodek Opus nie jest dostępny, a odtwarzanie wideo zużywa więcej danych internetowych niż VP9 czy AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Efekty uboczne spoofingu iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">Prywatne filmy dla dzieci mogą się nie odtwarzać\n• Transmisje na żywo rozpoczynają się od początku\n• Filmy mogą zakończ się o sekundę wcześniej\n• Kodek opus jest niedostępny</string>
<string name="revanced_spoof_video_streams_about_ios_summary">Filmy prywatne dzieci mogą nie odtwarzać\n• Filmy ograniczone wiekiem mogą nie odtwarzać\n• Livestreams zaczynają się od początku\n• Filmy kończą się 1 sekundą na początku</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Efekty uboczne spoofingu Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Filmy dla dzieci mogą się nie odtwarzać\n• Brakuje menu od ścieżki dźwiękowej\n• Stabilna głośność jest niedostępna</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Filmy dziecięce mogą nie odtwarzać\n• Filmy ograniczone wiekiem mogą nie odtwarzać\n• Livestreams zaczynają się od początku\n• Filmy kończą się 1 sekundą na początku</string>
<string name="revanced_spoof_video_streams_language_title">Domyślny język strumienia dźwięku</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Język aplikacji</string>
<string name="revanced_spoof_video_streams_language_AR">arabski</string>
<string name="revanced_spoof_video_streams_language_AZ">azerbejdżański</string>
<string name="revanced_spoof_video_streams_language_BG">bułgarski</string>
<string name="revanced_spoof_video_streams_language_BN">bengalski</string>
<string name="revanced_spoof_video_streams_language_CA">kataloński</string>
<string name="revanced_spoof_video_streams_language_CS">czeski</string>
<string name="revanced_spoof_video_streams_language_DA">duński</string>
<string name="revanced_spoof_video_streams_language_DE">niemiecki</string>
<string name="revanced_spoof_video_streams_language_EL">grecki</string>
<string name="revanced_spoof_video_streams_language_EN">angielski</string>
<string name="revanced_spoof_video_streams_language_ES">hiszpański</string>
<string name="revanced_spoof_video_streams_language_ET">estoński</string>
<string name="revanced_spoof_video_streams_language_FA">perski</string>
<string name="revanced_spoof_video_streams_language_FI">fiński</string>
<string name="revanced_spoof_video_streams_language_FR">francuski</string>
<string name="revanced_spoof_video_streams_language_GU">gudżaracki</string>
<string name="revanced_spoof_video_streams_language_HI">hinduski</string>
<string name="revanced_spoof_video_streams_language_HR">chorwacki</string>
<string name="revanced_spoof_video_streams_language_HU">węgierski</string>
<string name="revanced_spoof_video_streams_language_ID">indonezyjski</string>
<string name="revanced_spoof_video_streams_language_IT">włoski</string>
<string name="revanced_spoof_video_streams_language_JA">japoński</string>
<string name="revanced_spoof_video_streams_language_KK">kazachski</string>
<string name="revanced_spoof_video_streams_language_KO">koreański</string>
<string name="revanced_spoof_video_streams_language_LT">litewski</string>
<string name="revanced_spoof_video_streams_language_LV">łotewski</string>
<string name="revanced_spoof_video_streams_language_MK">macedoński</string>
<string name="revanced_spoof_video_streams_language_MN">mongolski</string>
<string name="revanced_spoof_video_streams_language_MR">maratyjski</string>
<string name="revanced_spoof_video_streams_language_MS">malajski</string>
<string name="revanced_spoof_video_streams_language_MY">birmański</string>
<string name="revanced_spoof_video_streams_language_NL">holenderski</string>
<string name="revanced_spoof_video_streams_language_OR">Orija</string>
<string name="revanced_spoof_video_streams_language_PA">pendżabski</string>
<string name="revanced_spoof_video_streams_language_PL">polski</string>
<string name="revanced_spoof_video_streams_language_PT_BR">portugalski (Brazylia)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">portugalski (Portugalia)</string>
<string name="revanced_spoof_video_streams_language_RO">rumuński</string>
<string name="revanced_spoof_video_streams_language_RU">rosyjski</string>
<string name="revanced_spoof_video_streams_language_SK">słowacki</string>
<string name="revanced_spoof_video_streams_language_SL">słoweński</string>
<string name="revanced_spoof_video_streams_language_SR">serbski</string>
<string name="revanced_spoof_video_streams_language_SV">szwedzki</string>
<string name="revanced_spoof_video_streams_language_SW">suahilijski</string>
<string name="revanced_spoof_video_streams_language_TA">tamilski</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">tajski</string>
<string name="revanced_spoof_video_streams_language_TR">turecki</string>
<string name="revanced_spoof_video_streams_language_UK">ukraiński</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">wietnamski</string>
<string name="revanced_spoof_video_streams_language_ZH">chiński</string>
</patch>
</app>
<app id="twitch">

View File

@@ -51,7 +51,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_settings_restart">Reiniciar</string>
<string name="revanced_settings_import">Importar</string>
<string name="revanced_settings_import_copy">Copiar</string>
<string name="revanced_settings_import_reset">Configurações ReVanced redefinidas para o padrão</string>
<string name="revanced_settings_import_reset">Configurações do ReVanced redefinidas para o padrão</string>
<string name="revanced_settings_import_success">Configurações %d importadas</string>
<string name="revanced_settings_import_failure_parse">Importação falhou: %s</string>
<string name="revanced_pref_import_export_title">Importar / Exportar</string>
@@ -710,6 +710,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Painel pop-up do reprodutor está oculto</string>
<string name="revanced_hide_player_popup_panels_summary_off">Painel pop-up do reprodutor não está oculto</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Opacidade do reprodutor</string>
<string name="revanced_player_overlay_opacity_summary">Valor de opacidade entre 0-100, onde 0 é transparente</string>
@@ -1013,7 +1015,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Alterar o estilo do player minimizado no aplicativo</string>
<string name="revanced_miniplayer_type_title">Tipo de miniplayer</string>
<string name="revanced_miniplayer_type_entry_0">Desativado</string>
<string name="revanced_miniplayer_type_entry_1">Original</string>
<string name="revanced_miniplayer_type_entry_1">Padrão</string>
<string name="revanced_miniplayer_type_entry_2">Mínimo</string>
<string name="revanced_miniplayer_type_entry_3">Tablet</string>
<string name="revanced_miniplayer_type_entry_4">Moderno 1</string>
@@ -1201,14 +1203,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Desativar esta configuração pode causar problemas de reprodução de vídeo.</string>
<string name="revanced_spoof_video_streams_client_title">Cliente padrão</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Forçar AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Codec de vídeo é AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Codec de vídeo é VP9 ou AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Seu dispositivo não possui decodificação de VP9 por hardware, e esta configuração está sempre ligada quando o spoofing do cliente está ativado</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Ativar isso pode melhorar a duração da bateria e corrigir falhas na reprodução.\n\nO AVC tem uma resolução máxima de 1080p, e a reprodução de vídeo usará mais dados de internet do que o VP9 ou o AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Efeitos colaterais do spoofing de iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Vídeos privados para crianças não podem ser reproduzidos\n• As transmissões ao vivo começam do início\n• Os vídeos podem terminar 1 segundo antes\n• Nenhum codec de áudio opus</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Efeitos colaterais do spoofing de Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Os vídeos infantis podem não ser reproduzidos\n• O menu da faixa de áudio está ausente\n• O volume estável não está disponível</string>
<string name="revanced_spoof_video_streams_language_EN">Inglês</string>
</patch>
</app>
<app id="twitch">

View File

@@ -709,6 +709,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Painéis pop-up do jogador estão escondidos</string>
<string name="revanced_hide_player_popup_panels_summary_off">Painéis pop-up do jogador são visíveis</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Abrir vídeos em retrato em tela cheia</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Vídeos abertos em tela cheia</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Vídeos não abrem tela cheia</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Opacidade do jogador</string>
<string name="revanced_player_overlay_opacity_summary">Valor de opacidade entre 0-100, onde 0 é transparente</string>
@@ -1012,7 +1017,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Alterar o estilo do player minimizado no aplicativo</string>
<string name="revanced_miniplayer_type_title">Tipo de minijogador</string>
<string name="revanced_miniplayer_type_entry_0">Desativado</string>
<string name="revanced_miniplayer_type_entry_1">Original</string>
<string name="revanced_miniplayer_type_entry_1">Padrão</string>
<string name="revanced_miniplayer_type_entry_2">Mínimo</string>
<string name="revanced_miniplayer_type_entry_3">Tábua</string>
<string name="revanced_miniplayer_type_entry_4">Moderno 1</string>
@@ -1200,14 +1205,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Desativar essa configuração pode causar problemas de reprodução de vídeo.</string>
<string name="revanced_spoof_video_streams_client_title">Cliente padrão</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Forçar AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Codec de vídeo é AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Codec de vídeo é VP9 ou AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Seu dispositivo não possui decodificação por hardware VP9, e esta configuração está sempre ligada quando o spoofing do cliente está ativado</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Habilitar isso pode melhorar a duração da bateria e corrigir travamentos na reprodução.\n\nAVC tem uma resolução máxima de 1080p, e a reprodução de vídeo usará mais dados na internet do que VP9 ou AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Codec de vídeo é forçado a AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Codec de vídeo é determinado automaticamente</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Habilitar isso pode melhorar a duração da bateria e corrigir travamentos na reprodução.\n\nAVC tem uma resolução máxima de 1080p, codec de áudio de Opus não está disponível, e a reprodução de vídeo usará mais dados na internet do que VP9 ou AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Efeitos colaterais de iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Crianças privadas podem não reproduzir\n• Livestreams iniciados desde o início\n• Vídeos podem terminar 1 segundo segundo segundo\n• Nenhum codec de áudio de opus</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Crianças privadas podem não reproduzir\n• Vídeos com restrições de idade podem não reproduzir\n• Livestreams começando desde o início\n• Vídeos terminam 1 segundo mais cedo</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Android VR efeito de spoofing side</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• As crianças podem não reproduzir\n• O menu da faixa de áudio está faltando\n• Volume estável não está disponível</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• As crianças podem não reproduzir\n• A idade de vídeos pode não reproduzir\n• Livestreams iniciando desde o início\n• Vídeos terminam 1 segundo mais cedo</string>
<string name="revanced_spoof_video_streams_language_title">Idioma padrão do fluxo de áudio</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Idioma do aplicativo</string>
<string name="revanced_spoof_video_streams_language_AR">Arábico</string>
<string name="revanced_spoof_video_streams_language_AZ">azerbaijano</string>
<string name="revanced_spoof_video_streams_language_BG">búlgaro</string>
<string name="revanced_spoof_video_streams_language_BN">bengali</string>
<string name="revanced_spoof_video_streams_language_CA">catalão</string>
<string name="revanced_spoof_video_streams_language_CS">tcheco</string>
<string name="revanced_spoof_video_streams_language_DA">Dinamarquês</string>
<string name="revanced_spoof_video_streams_language_DE">alemão</string>
<string name="revanced_spoof_video_streams_language_EL">Grego</string>
<string name="revanced_spoof_video_streams_language_EN">Inglês</string>
<string name="revanced_spoof_video_streams_language_ES">espanhol</string>
<string name="revanced_spoof_video_streams_language_ET">Estônio</string>
<string name="revanced_spoof_video_streams_language_FA">persa</string>
<string name="revanced_spoof_video_streams_language_FI">Finlandês</string>
<string name="revanced_spoof_video_streams_language_FR">Francês</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">hindi</string>
<string name="revanced_spoof_video_streams_language_HR">croata</string>
<string name="revanced_spoof_video_streams_language_HU">Húngaro</string>
<string name="revanced_spoof_video_streams_language_ID">indonésio</string>
<string name="revanced_spoof_video_streams_language_IT">italiano</string>
<string name="revanced_spoof_video_streams_language_JA">japonês</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">coreano</string>
<string name="revanced_spoof_video_streams_language_LT">lituano</string>
<string name="revanced_spoof_video_streams_language_LV">Letã</string>
<string name="revanced_spoof_video_streams_language_MK">macedônio</string>
<string name="revanced_spoof_video_streams_language_MN">Mongol</string>
<string name="revanced_spoof_video_streams_language_MR">marata</string>
<string name="revanced_spoof_video_streams_language_MS">malaio</string>
<string name="revanced_spoof_video_streams_language_MY">Burmese</string>
<string name="revanced_spoof_video_streams_language_NL">Neerlandês</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Polonês</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Português (Brasil)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Português (Portugal)</string>
<string name="revanced_spoof_video_streams_language_RO">romeno</string>
<string name="revanced_spoof_video_streams_language_RU">Russo</string>
<string name="revanced_spoof_video_streams_language_SK">Eslovaco</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">Sérvio</string>
<string name="revanced_spoof_video_streams_language_SV">sueco</string>
<string name="revanced_spoof_video_streams_language_SW">Suaíli</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Tailandês</string>
<string name="revanced_spoof_video_streams_language_TR">Turco</string>
<string name="revanced_spoof_video_streams_language_UK">ucraniano</string>
<string name="revanced_spoof_video_streams_language_UR">urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamese</string>
<string name="revanced_spoof_video_streams_language_ZH">chinês</string>
</patch>
</app>
<app id="twitch">

View File

@@ -33,31 +33,30 @@ This is because Crowdin requires temporarily flattening this file and removing t
<resources>
<app id="shared">
<patch id="misc.checks.checkEnvironmentPatch">
<string name="revanced_check_environment_failed_title">Verificările au eșuat</string>
<string name="revanced_check_environment_failed_title">Verificări eșuate</string>
<string name="revanced_check_environment_dialog_open_official_source_button">Deschide site-ul oficial</string>
<string name="revanced_check_environment_dialog_ignore_button">Ignoră</string>
<string name="revanced_check_environment_failed_message">&lt;h5&gt;Se pare că aplicația nu este modificată de dv.&lt;/h5&gt;&lt;br&gt;Este posibil ca aplicația să nu funcționeze corect, &lt;b&gt;să dăuneze dispozitivului sau să prezinte un pericol la utilizare&lt;/b&gt;.&lt;br&gt;&lt;br&gt;Simpla existență a acestor verificări sugerează faptul că aplicația este modificată în prealabil sau obținută de la altcineva: &lt;br&gt;&lt;br&gt;&lt;small&gt;%1$s&lt;/small&gt;&lt;br&gt;Recomandăm cu tărie &lt;b&gt;dezinstalarea și modificarea manuală a acestei aplicații&lt;/b&gt; pentru a vă asigura că aplicația pe care o folosiți este validă și sigură.&lt;p&gt;&lt;br&gt;După ignorare, mesajul nu va mai fi afișat decât o a doua oară.</string>
<string name="revanced_check_environment_not_same_patching_device">Modificată pe un alt dispozitiv</string>
<string name="revanced_check_environment_manager_not_expected_installer">Nu este instalată de ReVanced Manager</string>
<string name="revanced_check_environment_not_near_patch_time">Modificat de mai mult de 10 minute</string>
<string name="revanced_check_environment_not_near_patch_time_days">Modificat cu %s zile în urmă</string>
<string name="revanced_check_environment_not_near_patch_time_invalid">Data de compilare a fișierului APK este coruptă</string>
<string name="revanced_check_environment_not_same_patching_device">Patchat pe un alt dispozitiv</string>
<string name="revanced_check_environment_manager_not_expected_installer">Nu este instalat de ReVanced Manager</string>
<string name="revanced_check_environment_not_near_patch_time">Patchat acum mai mult de 10 minute</string>
<string name="revanced_check_environment_not_near_patch_time_days">Patchat %s zile în urmă</string>
<string name="revanced_check_environment_not_near_patch_time_invalid">Data construcției APK este coruptă</string>
</patch>
<patch id="misc.settings.settingsResourcePatch">
<string name="revanced_settings_title">ReVanced</string>
<string name="revanced_settings_confirm_user_dialog_title">Doriți să continuați?</string>
<string name="revanced_settings_reset">Resetare</string>
<string name="revanced_settings_restart_title">Reîmprospătare și repornire</string>
<string name="revanced_settings_reset">Resetează</string>
<string name="revanced_settings_restart_title">Reîmprospătați și reporniți</string>
<string name="revanced_settings_restart">Repornire</string>
<string name="revanced_settings_import">Importare</string>
<string name="revanced_settings_import_copy">Copiere</string>
<string name="revanced_settings_import_reset">Setările ReVanced vor fi reinițializate</string>
<string name="revanced_settings_import_reset">Setările revizuite se resetează la valorile implicite</string>
<string name="revanced_settings_import_success">Setări %d importate</string>
<string name="revanced_settings_import_failure_parse">Importul a eșuat: %s</string>
<string name="revanced_pref_import_export_title">Importați / Exportați</string>
<string name="revanced_pref_import_export_summary">Importați / Exportați setări ReVanced</string>
<string name="revanced_pref_import_export_title">Importă / Exportă</string>
<string name="revanced_pref_import_export_summary">Setări Import / Export ReVanced</string>
<!-- Settings about dialog. -->
<string name="revanced_settings_about_links_body">Folosiți versiunea &lt;i&gt;%s&lt;/i&gt; a ReVanced Patches</string>
<string name="revanced_settings_about_links_body">Folosiți ReVanced Patch-uri versiunea &lt;i&gt;%s&lt;/i&gt;</string>
<string name="revanced_settings_about_links_dev_header">Notă</string>
<string name="revanced_settings_about_links_dev_body">Această versiune este o pre-lansare și este posibil să întâmpinați probleme neașteptate</string>
<string name="revanced_settings_about_links_header">Link-uri oficiale</string>
@@ -77,10 +76,10 @@ This is because Crowdin requires temporarily flattening this file and removing t
<app id="youtube">
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_screen_00_about_title">Despre</string>
<string name="revanced_settings_screen_01_ads_title">Publicitate</string>
<string name="revanced_settings_screen_01_ads_title">Anunţuri</string>
<string name="revanced_settings_screen_02_alt_thumbnails_title">Miniaturi alternative</string>
<string name="revanced_settings_screen_03_feed_title">Flux</string>
<string name="revanced_settings_screen_04_player_title">Player</string>
<string name="revanced_settings_screen_04_player_title">Jucător</string>
<string name="revanced_settings_screen_05_general_title">Structura generală</string>
<string name="revanced_settings_screen_07_seekbar_title">Bară de căutare</string>
<string name="revanced_settings_screen_08_swipe_controls_title">Controale glisare</string>
@@ -88,9 +87,6 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_settings_screen_12_video_title">Video</string>
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
<string name="revanced_shorts_disable_background_playback_title">Dezactivează redarea în fundal a videoclipurilor Shorts</string>
<string name="revanced_shorts_disable_background_playback_summary_on">Redarea în fundal este dezactivată</string>
<string name="revanced_shorts_disable_background_playback_summary_off">Redarea în fundal este activată</string>
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
<string name="revanced_debug_screen_title">Depanare</string>
@@ -110,9 +106,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_debug_toast_on_error_user_dialog_message">Eroare la dezactivare toasts ascunde toate notificările de eroare ReVanced\n\nNu veți fi notificat de niciun eveniment neașteptat.</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<string name="revanced_disable_like_subscribe_glow_title">Dezactivare strălucire butoane „Apreciez“ și „Abonare“</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Butoanele nu vor străluci când sunt menționate în clip</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Butoanele vor străluci când sunt menționate în clip</string>
<string name="revanced_disable_like_subscribe_glow_summary_on">Butonul Îmi place și abonare nu va străluci când este menționat</string>
<string name="revanced_disable_like_subscribe_glow_summary_off">Butonul de like-uri și abonare va străluci când este menționat</string>
<string name="revanced_hide_album_cards_title">Ascundeți cardurile de album</string>
<string name="revanced_hide_album_cards_summary_on">Cardurile de album sunt ascunse</string>
<string name="revanced_hide_album_cards_summary_off">Cardurile de album sunt afișate</string>
@@ -126,7 +121,6 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_channel_watermark_summary_on">Marcajul este ascuns</string>
<string name="revanced_hide_channel_watermark_summary_off">Se afișează filigran</string>
<string name="revanced_hide_horizontal_shelves_title">Ascunde rafturile orizontale</string>
<string name="revanced_hide_horizontal_shelves_summary_on">Sunt ascunse recomandări, precum:\n• Știri de ultimă oră\n• Continuați urmărirea\n• Explorați mai multe canale\n• Cumpărături\n• Urmăriți din nou</string>
<string name="revanced_hide_horizontal_shelves_summary_off">Se afişează rafturi</string>
<!-- 'Join' should be translated using the same localized wording YouTube displays.
This appears in the video player for certain videos. -->
@@ -143,7 +137,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_notify_me_button_summary_on">Butonul este ascuns</string>
<string name="revanced_hide_notify_me_button_summary_off">Butonul este afișat</string>
<!-- 'People also watch' should be translated using the same localized wording YouTube displays. -->
<string name="revanced_hide_search_result_recommendations_title">Ascundeți recomandările „Specatorii vizionează și acest videoclip“</string>
<string name="revanced_hide_search_result_recommendations_title">Ascunde recomandările \'Oameni urmăriți\'</string>
<string name="revanced_hide_search_result_recommendations_summary_on">Recomandările sunt ascunse</string>
<string name="revanced_hide_search_result_recommendations_summary_off">Recomandările sunt afișate</string>
<!-- 'Show more' should be translated with the same localized wording that YouTube displays.
@@ -154,7 +148,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_timed_reactions_title">Ascunde reacţiile cronizate</string>
<string name="revanced_hide_timed_reactions_summary_on">Reacţiile cronologice sunt ascunse</string>
<string name="revanced_hide_timed_reactions_summary_off">Reacţiile cronologice sunt evidenţiate</string>
<string name="revanced_hide_search_result_shelf_header_title">Hide search result shelf header</string>
<string name="revanced_hide_search_result_shelf_header_title">Ascunde antetul raftului rezultatului căutării</string>
<string name="revanced_hide_search_result_shelf_header_summary_on">Antetul Shelf este ascuns</string>
<string name="revanced_hide_search_result_shelf_header_summary_off">Se afișează antetul Shelf</string>
<string name="revanced_hide_channel_guidelines_title">Ascunde ghidurile canalelor</string>
@@ -163,9 +157,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_chips_shelf_title">Ascunde raftul cipurilor</string>
<string name="revanced_hide_chips_shelf_summary_on">Raftul cipurilor este ascuns</string>
<string name="revanced_hide_chips_shelf_summary_off">Se afișează raftul cipurilor</string>
<string name="revanced_hide_expandable_chip_title">Ascundeți lista capitolelor de sub videoclipuri</string>
<string name="revanced_hide_expandable_chip_summary_on">Lista este ascunsă</string>
<string name="revanced_hide_expandable_chip_summary_off">Lista este afișată</string>
<string name="revanced_hide_expandable_chip_title">Ascunde cipul expandabil sub videoclipuri</string>
<string name="revanced_hide_expandable_chip_summary_on">Cipurile expandabile sunt ascunse</string>
<string name="revanced_hide_expandable_chip_summary_off">Cipurile expandabile sunt afișate</string>
<string name="revanced_hide_community_posts_title">Ascunde postările comunității</string>
<string name="revanced_hide_community_posts_summary_on">Posturile comunitare sunt ascunse</string>
<string name="revanced_hide_community_posts_summary_off">Posturile comunitare sunt afișate</string>
@@ -214,9 +208,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_latest_posts_ads_title">Ascunde cele mai recente postări</string>
<string name="revanced_hide_latest_posts_ads_summary_on">Ultimele postări sunt ascunse</string>
<string name="revanced_hide_latest_posts_ads_summary_off">Ultimele postări sunt afișate</string>
<string name="revanced_hide_mix_playlists_title">Ascundeți mixajele</string>
<string name="revanced_hide_mix_playlists_summary_on">Mixajele sunt ascunse</string>
<string name="revanced_hide_mix_playlists_summary_off">Mixajele sunt afișate</string>
<string name="revanced_hide_mix_playlists_title">Ascunde amestecul playlisturilor</string>
<string name="revanced_hide_mix_playlists_summary_on">Listele de redare mixte sunt ascunse</string>
<string name="revanced_hide_mix_playlists_summary_off">Amestecul listelor de redare este afișat</string>
<string name="revanced_hide_artist_cards_title">Ascunde cărțile artistului</string>
<string name="revanced_hide_artist_cards_summary_on">Cartonaşele artistice sunt ascunse</string>
<string name="revanced_hide_artist_cards_summary_off">Cardurile artistului sunt afișate</string>
@@ -240,22 +234,18 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_transcript_section_summary_off">Secțiunea de Transcriere este afișată</string>
<string name="revanced_hide_description_components_screen_title">Descriere video</string>
<string name="revanced_hide_description_components_screen_summary">Ascunde sau afișează componentele descrierii video</string>
<string name="revanced_hide_filter_bar_screen_title">Bară de filtre</string>
<string name="revanced_hide_filter_bar_screen_summary">Ascunde sau afișează bara de filtre în flux, în rezultatele căutării și în pagina de videoclipuri asociate</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">Ascundeți în flux</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_on">Ascunsă în flux</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">Afișată în flux</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Ascundeți în căutare</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_on">Ascun în căutare</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Afișată în căutare</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_title">Ascundeți în pagina de videoclipuri asociate</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_on">Ascunsă în pagina de videoclipuri asociate</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">Afișată în pagina de videoclipuri asociate</string>
<string name="revanced_hide_filter_bar_screen_title">Bară de filtrare</string>
<string name="revanced_hide_filter_bar_screen_summary">Ascunde sau afișează bara de filtrare în flux, căutare și videoclipuri asociate</string>
<string name="revanced_hide_filter_bar_feed_in_feed_title">Ascunde în feed</string>
<string name="revanced_hide_filter_bar_feed_in_feed_summary_off">Afișat în feed</string>
<string name="revanced_hide_filter_bar_feed_in_search_title">Ascunde în căutare</string>
<string name="revanced_hide_filter_bar_feed_in_search_summary_off">Afișat în căutare</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_title">Ascunde în videoclipurile asociate</string>
<string name="revanced_hide_filter_bar_feed_in_related_videos_summary_off">Afișat în videoclipuri conexe</string>
<string name="revanced_comments_screen_title">Comentarii</string>
<string name="revanced_comments_screen_summary">Ascunde sau afișează componentele secțiunii comentarii</string>
<string name="revanced_hide_comments_by_members_header_title">Ascundeți secțiunea „Comentariile membrilor“</string>
<string name="revanced_hide_comments_by_members_header_summary_on">Secțiunea este ascunsă</string>
<string name="revanced_hide_comments_by_members_header_summary_off">Secțiunea este afișată</string>
<string name="revanced_hide_comments_by_members_header_summary_on">\'Comentarii de la antetul membrilor este ascuns</string>
<string name="revanced_hide_comments_by_members_header_summary_off">\'Comentarii de la antetul membrilor este afișat</string>
<string name="revanced_hide_comments_section_title">Ascunde secțiunea comentarii</string>
<string name="revanced_hide_comments_section_summary_on">Secţiunea de comentarii este ascunsă</string>
<string name="revanced_hide_comments_section_summary_off">Secțiunea comentariilor este afișată</string>
@@ -285,26 +275,24 @@ This is because Crowdin requires temporarily flattening this file and removing t
<!-- 'Component path builder strings' is the technical name for identifying the Litho UI layout items to hide. This is an advanced feature and most users will never use this. -->
<string name="revanced_custom_filter_strings_summary">Lista șirurilor constructorului traiectoriei componentei pentru filtrarea separată de o linie nouă</string>
<string name="revanced_custom_filter_toast_invalid_syntax">Filtru personalizat nevalid: %s</string>
<string name="revanced_hide_keyword_content_screen_title">Ascundere conținut după cuvinte cheie</string>
<string name="revanced_hide_keyword_content_screen_summary">Ascundeți videoclipuri din flux după cuvinte cheie</string>
<string name="revanced_hide_keyword_content_home_title">Ascundeți videoclipuri de pe pagina „Acasă după cuvinte cheie</string>
<string name="revanced_hide_keyword_content_home_summary_on">Videoclipurile de pe pagina „Acasă“ sunt filtrate</string>
<string name="revanced_hide_keyword_content_home_summary_off">Videoclipurile de pe pagina „Acasă“ nu sunt filtrate</string>
<string name="revanced_hide_keyword_content_subscriptions_title">Ascundeți videoclipuri de pe pagina „Abonamente“ după cuvinte cheie</string>
<string name="revanced_hide_keyword_content_subscriptions_summary_on">Videoclipurile de pe pagina „Abonamente sunt filtrate</string>
<string name="revanced_hide_keyword_content_subscriptions_summary_off">Videoclipurile de pe pagina „Abonamente nu sunt filtrate</string>
<string name="revanced_hide_keyword_content_search_title">Ascundeți rezultate ale căutării după cuvinte cheie</string>
<string name="revanced_hide_keyword_content_search_summary_on">Rezultatele sunt filtrate după cuvinte cheie</string>
<string name="revanced_hide_keyword_content_search_summary_off">Rezultatele nu sunt filtrate după cuvinte cheie</string>
<string name="revanced_hide_keyword_content_screen_title">Ascundeți conținutul cuvântului cheie</string>
<string name="revanced_hide_keyword_content_screen_summary">Ascundeți căutarea și hrănirea videoclipurilor folosind filtre de cuvinte cheie</string>
<string name="revanced_hide_keyword_content_home_title">Ascunde videoclipurile de acasă după cuvintele cheie</string>
<string name="revanced_hide_keyword_content_home_summary_on">Videoclipurile din fila principală sunt filtrate de cuvinte cheie</string>
<string name="revanced_hide_keyword_content_home_summary_off">Videoclipurile din fila principală nu sunt filtrate de cuvintele cheie</string>
<string name="revanced_hide_keyword_content_subscriptions_title">Ascunde abonarea videoclipurilor după cuvintele-cheie</string>
<string name="revanced_hide_keyword_content_subscriptions_summary_on">Videoclipurile din fila abonamente sunt filtrate de cuvinte cheie</string>
<string name="revanced_hide_keyword_content_subscriptions_summary_off">Videoclipurile din fila abonamente nu sunt filtrate de cuvinte cheie</string>
<string name="revanced_hide_keyword_content_search_title">Ascunde rezultatele căutării după cuvinte cheie</string>
<string name="revanced_hide_keyword_content_search_summary_on">Rezultatele căutării sunt filtrate după cuvintele cheie</string>
<string name="revanced_hide_keyword_content_search_summary_off">Rezultatele căutării nu sunt filtrate de cuvinte cheie</string>
<string name="revanced_hide_keyword_content_phrases_title">Cuvinte cheie de ascuns</string>
<!-- For localization it is preferred, but not required, if 'LeBlanc' is replaced with a localized name or a familiar word that has upper case letters in the middle of the word.
This is because keywords can be in any language, and showing an example in the localized script helps convey this. -->
<string name="revanced_hide_keyword_content_phrases_summary">Cuvinte cheie și fraze de ascuns, separate prin linii noi\n\nCuvintele cheie pot fi nume de canal sau orice text afișat în titlurile video\n\nCuvinte cu litere mari în mijloc trebuie să fie introduse corespunzător (ex: iPhone, TikTok, LeBlanc)</string>
<string name="revanced_hide_keyword_content_about_title">Despre filtrarea după cuvinte cheie</string>
<string name="revanced_hide_keyword_content_about_summary">Paginile „Acasă“, „Abonamente“ și cea pentru rezultatele căutării sunt filtrate după o serie de fraze sau cuvinte cheie pentru a ascunde conținut.\n\nLimitări:\n• Videoclipurile scurte nu pot fi ascunse după numele canalui\n• Unele componente ale interfeței nu pot fi ascunse\n• Căutări după cuvinte din listă pot să nu returneze niciun rezultat</string>
<string name="revanced_hide_keyword_content_about_whole_words_title">Filtrare după cuvinte întregi</string>
<string name="revanced_hide_keyword_content_phrases_summary">Cuvinte cheie și fraze de ascuns, separate prin linii noi\n\nCuvintele cheie pot fi nume de canal sau orice text afișat în titlurile video\n\nCuvinte cu litere mari în mijloc trebuie să fie introduse cu caseta (ex: iPhone, TikTok, LeBlanc)</string>
<string name="revanced_hide_keyword_content_about_title">Despre filtrarea cuvintelor cheie</string>
<string name="revanced_hide_keyword_content_about_whole_words_title">Potrivește cuvinte întregi</string>
<!-- Translations _must_ use a localized example. For languages that do not use spaces between words (Chinese, Japanese, etc) the English AI example should be used since no localized examples exist. Or if using machine translations, or if nobody wants to think of a localized example, then the English 'ai' example should be left as-is. -->
<string name="revanced_hide_keyword_content_about_whole_words_summary">Încadrarea unui cuvânt în ghilimele va împiedica filtrarea potrivirilor parțiale din cadrul titlurilor clipurilor sau a numelor canalelor&lt;br&gt;&lt;br&gt;Spre exemplu,&lt;br&gt;&lt;b&gt;\"ai\"&lt;/b&gt; va ascunde clipul: &lt;b&gt;How does AI work?&lt;/b&gt;,&lt;br&gt;dar nu va ascunde: &lt;b&gt;What does fair use mean?&lt;/b&gt;.</string>
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
<string name="revanced_hide_keyword_toast_invalid_common">Nu se poate folosi cuvantul cheie: %s</string>
<string name="revanced_hide_keyword_toast_invalid_common_whole_word_required">Adaugă oferte pentru a utiliza cuvântul cheie: %s</string>
@@ -366,9 +354,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_copy_video_url_title">Afișare buton copie URL</string>
<string name="revanced_copy_video_url_summary_on">Butonul este afișat. Atingeți pentru a copia URL-ul video. Atingeți și țineți apăsat pentru a copia URL-ul video cu marcajul de timp</string>
<string name="revanced_copy_video_url_summary_off">Butonul nu este afișat</string>
<string name="revanced_copy_video_url_timestamp_title">Afișați butonul pentru copierea URL-ului cu marcaj de timp</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Butonul este afișat. Apăsați pentru a copia URL-ul cu marcaj de timp. Țineți apăsat pentru a copia URL-ul simplu.</string>
<string name="revanced_copy_video_url_timestamp_summary_off">Butonul este ascuns</string>
<string name="revanced_copy_video_url_timestamp_title">Afișare buton copie marcaj URL</string>
<string name="revanced_copy_video_url_timestamp_summary_on">Butonul este afișat. Atingeți pentru a copia URL-ul video cu marcajul de timp. Atingeți și țineți apăsat pentru a copia videoclipul fără marcaj de timp</string>
<string name="revanced_copy_video_url_timestamp_summary_off">Butonul nu este afișat</string>
</patch>
<patch id="interaction.dialog.removeViewerDiscretionDialogPatch">
<string name="revanced_remove_viewer_discretion_dialog_title">Eliminați dialogul discreționar al vizualizatorului</string>
@@ -430,16 +418,16 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_swipe_threshold_summary">Cantitatea de prag pentru a glisa</string>
</patch>
<patch id="layout.autocaptions.autoCaptionsPatch">
<string name="revanced_auto_captions_title">Dezactivare subtitrări automate</string>
<string name="revanced_auto_captions_summary_on">Subtitrările automate sunt dezactivate</string>
<string name="revanced_auto_captions_summary_off">Subtitrările automate sunt activate</string>
<string name="revanced_auto_captions_title">Dezactivează subtitrările automate</string>
<string name="revanced_auto_captions_summary_on">Legendele automate sunt dezactivate</string>
<string name="revanced_auto_captions_summary_off">Legenda automată este activată</string>
</patch>
<patch id="layout.buttons.action.hideButtonsPatch">
<string name="revanced_hide_buttons_screen_title">Butoane de acţiune</string>
<string name="revanced_hide_buttons_screen_summary">Ascunde sau arată butoanele sub videoclipuri</string>
<string name="revanced_hide_like_dislike_button_title">Ascunde butoanele „Apreciez“ și „Nu apreciez“</string>
<string name="revanced_hide_like_dislike_button_summary_on">Butoanele „Apreciez“ și „Nu apreciez“ sunt ascunse</string>
<string name="revanced_hide_like_dislike_button_summary_off">Butoanele „Apreciez“ și „Nu apreciez“ sunt afișate</string>
<string name="revanced_hide_like_dislike_button_title">Ascunde Like și Dislike</string>
<string name="revanced_hide_like_dislike_button_summary_on">Butoanele Like și Dislike sunt ascunse</string>
<string name="revanced_hide_like_dislike_button_summary_off">Butoanele Like și Dislike sunt afișate</string>
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
<string name="revanced_hide_share_button_title">Ascunde Partajarea</string>
<string name="revanced_hide_share_button_summary_on">Butonul de distribuire este ascuns</string>
@@ -491,7 +479,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_subscriptions_button_summary_off">Butonul Abonamente este afișat</string>
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
<string name="revanced_switch_create_with_notifications_button_title">Comutare creare cu notificări</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">Pozițiile butoanelor „Creează“ și „Notificări” sunt interschimbate\n\nNotă: Această setare ascunde forțat anunțurile video</string>
<string name="revanced_switch_create_with_notifications_button_summary_on">Butonul Creare este comutat cu butonul Notificări\n\nNotă: Activarea acestui buton și ascunderea forțată a anunțurilor video</string>
<string name="revanced_switch_create_with_notifications_button_summary_off">Butonul Creare nu este comutat cu butonul Notificări</string>
<string name="revanced_hide_navigation_button_labels_title">Ascunde etichetele butoanelor de navigare</string>
<string name="revanced_hide_navigation_button_labels_summary_on">Etichetele sunt ascunse</string>
@@ -556,9 +544,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_previous_next_buttons_title">Ascunde butoanele anterioare &amp; următorul video</string>
<string name="revanced_hide_player_previous_next_buttons_summary_on">Butoanele sunt ascunse</string>
<string name="revanced_hide_player_previous_next_buttons_summary_off">Butoanele sunt afișate</string>
<string name="revanced_hide_cast_button_title">Ascunde butonul „Proiectează“</string>
<string name="revanced_hide_cast_button_summary_on">Butonul este ascuns</string>
<string name="revanced_hide_cast_button_summary_off">Butonul este afișat</string>
<string name="revanced_hide_cast_button_title">Ascunde butonul de redare</string>
<string name="revanced_hide_cast_button_summary_on">Butonul de distribuție este ascuns</string>
<string name="revanced_hide_cast_button_summary_off">Butonul de execuție este afișat</string>
<!-- This button does not display any text, but 'captions' should be translated using the same wording used as the translation of 'revanced_hide_player_flyout_captions_title' -->
<string name="revanced_hide_captions_button_title">Ascunde butonul de legendă</string>
<string name="revanced_hide_captions_button_summary_on">Butonul subtitrari este ascuns</string>
@@ -596,7 +584,6 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_seekbar_thumbnail_summary_off">Pictograma bara de căutare este afișată</string>
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<string name="revanced_shorts_player_screen_title">Player pentru videoclipuri scurte</string>
<!-- 'home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_hide_shorts_home_title">Ascunde Short din feed-ul de acasă</string>
<string name="revanced_hide_shorts_home_summary_on">Shorts în fluxul de acasă sunt ascunse</string>
@@ -657,9 +644,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_shorts_like_button_title">Ascunde butonul similar</string>
<string name="revanced_hide_shorts_like_button_summary_on">Butonul Like este ascuns</string>
<string name="revanced_hide_shorts_like_button_summary_off">Butonul Like este afișat</string>
<string name="revanced_hide_shorts_dislike_button_title">Ascunde butonul „Nu apreciez“</string>
<string name="revanced_hide_shorts_dislike_button_summary_on">Butonul „Nu apreciez“ este ascuns</string>
<string name="revanced_hide_shorts_dislike_button_summary_off">Butonul „Nu apreciez“ este afișat</string>
<string name="revanced_hide_shorts_dislike_button_title">Ascunde butonul diferit</string>
<string name="revanced_hide_shorts_dislike_button_summary_on">Butonul nu este ascuns</string>
<string name="revanced_hide_shorts_dislike_button_summary_off">Butonul nu este afișat</string>
<string name="revanced_hide_shorts_comments_button_title">Ascunde butonul de comentarii</string>
<string name="revanced_hide_shorts_comments_button_summary_on">Butonul de comentarii este ascuns</string>
<string name="revanced_hide_shorts_comments_button_summary_off">Butonul pentru comentarii este afișat</string>
@@ -694,8 +681,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_shorts_navigation_bar_summary_off">Bara de navigare este afișată</string>
</patch>
<patch id="layout.hide.suggestedvideoendscreen.disableSuggestedVideoEndScreenResourcePatch">
<string name="revanced_disable_suggested_video_end_screen_title">Dezactivare videoclipuri sugerate din ecranul de final</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">Videoclipurile sugerate vor fi ascunse</string>
<string name="revanced_disable_suggested_video_end_screen_summary_on">Videoclipurile sugerate vor fi dezactivate</string>
<string name="revanced_disable_suggested_video_end_screen_summary_off">Videoclipurile sugerate vor fi afișate</string>
</patch>
<patch id="layout.hide.time.hideTimestampPatch">
@@ -704,9 +690,14 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_timestamp_summary_off">Ora este afișată</string>
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
<string name="revanced_hide_player_popup_panels_title">Ascundeți panourile din player care se deschid automat</string>
<string name="revanced_hide_player_popup_panels_summary_on">Panourile sunt ascunse</string>
<string name="revanced_hide_player_popup_panels_summary_off">Panourile sunt afișate</string>
<string name="revanced_hide_player_popup_panels_title">Ascunde panourile pop-up jucător</string>
<string name="revanced_hide_player_popup_panels_summary_on">Panourile pop-up ale jucătorilor sunt ascunse</string>
<string name="revanced_hide_player_popup_panels_summary_off">Panourile pop-up ale jucătorului sunt afișate</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Deschide videoclipurile în modul ecran complet</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videoclipuri deschide tot ecranul</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Videoclipurile nu deschid tot ecranul</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Opacitate suprapusă jucătorului</string>
@@ -715,28 +706,28 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
<!-- Toast shown if network connection times out. Translations of this should not be longer than the original English or the text can be clipped and not entirely shown. -->
<string name="revanced_ryd_failure_connection_timeout">Neaprecieri temporar indisponibile (API a expirat)</string>
<string name="revanced_ryd_failure_connection_status_code">Neaprecieri indisponibile (stare: %d)</string>
<string name="revanced_ryd_failure_client_rate_limit_requested">Neaprecieri indisponibile (limita API atinsă)</string>
<string name="revanced_ryd_failure_generic">Neaprecieri indisponibile (%s)</string>
<string name="revanced_ryd_failure_connection_timeout">Dislike-uri temporar indisponibile (API a expirat)</string>
<string name="revanced_ryd_failure_connection_status_code">Dislike-uri indisponibile (status %d)</string>
<string name="revanced_ryd_failure_client_rate_limit_requested">Dislike-uri indisponibile (limita API atinsă)</string>
<string name="revanced_ryd_failure_generic">Dislike-uri indisponibile (%s)</string>
<!-- Toast shown if the user enables RYD while a video is opened, and then tries to vote for the video. -->
<string name="revanced_ryd_failure_ryd_enabled_while_playing_video_then_user_voted">Reîncarcă clipul pentru a folosi Return YouTube Dislike</string>
<string name="revanced_ryd_enable_summary_on">Neaprecierile sunt afișate</string>
<string name="revanced_ryd_enable_summary_off">Neaprecierile nu sunt afișate</string>
<string name="revanced_ryd_shorts_title">Afișați neaprecierile pentru videoclipurle scurte</string>
<string name="revanced_ryd_shorts_summary_on">Neaprecierile pentru videoclipurle scurte sunt afișate</string>
<string name="revanced_ryd_shorts_summary_on_disclaimer">Neaprecierile pentru videoclipurile scurte sunt afișate\n\nConsecință: Acestea pot să nu apară în modul incognito</string>
<string name="revanced_ryd_shorts_summary_off">Neaprecierile pentru videoclipurile scurte sunt ascunse</string>
<string name="revanced_ryd_dislike_percentage_title">Afișați neaprecierile sub formă de procentaj</string>
<string name="revanced_ryd_dislike_percentage_summary_on">Neaprecierile sunt afișate sub formă de procentaj</string>
<string name="revanced_ryd_dislike_percentage_summary_off">Neaprecierile sunt afișate sub formă de număr</string>
<string name="revanced_ryd_failure_ryd_enabled_while_playing_video_then_user_voted">Reîncarcă videoclipul pentru a vota folosind Returnare YouTube Dislike</string>
<string name="revanced_ryd_enable_summary_on">Dislike-urile sunt afișate</string>
<string name="revanced_ryd_enable_summary_off">Dislike-urile nu sunt afișate</string>
<string name="revanced_ryd_shorts_title">Arată displace pe scurtmetraje</string>
<string name="revanced_ryd_shorts_summary_on">Dislike-uri afișate pe scurtmetraje</string>
<string name="revanced_ryd_shorts_summary_on_disclaimer">Dislike-uri afișate pe Scurtăturile\n\nLimitare: Este posibil ca displace să nu apară în modul incognito</string>
<string name="revanced_ryd_shorts_summary_off">Displace ascunse pe scurt-metraje</string>
<string name="revanced_ryd_dislike_percentage_title">Displace ca procentaj</string>
<string name="revanced_ryd_dislike_percentage_summary_on">Dislike-uri afișate ca procent</string>
<string name="revanced_ryd_dislike_percentage_summary_off">Dislike-uri afișate ca număr</string>
<!-- Translations should use language similar to 'revanced_sb_enable_compact_skip_button' -->
<string name="revanced_ryd_compact_layout_title">Buton compact ca</string>
<string name="revanced_ryd_compact_layout_summary_on">Buton de stilizat pentru lățime minimă</string>
<string name="revanced_ryd_compact_layout_summary_off">Buton asemănător pentru cel mai bun aspect</string>
<string name="revanced_ryd_toast_on_connection_error_title">Arată un mesaj dacă serverul este indisponibil</string>
<string name="revanced_ryd_toast_on_connection_error_summary_on">Se afișează un mesaj dacă Return YouTube Dislike este indisponibil</string>
<string name="revanced_ryd_toast_on_connection_error_summary_off">Nu se afișează un mesaj dacă Return YouTube Dislike este indisponibil</string>
<string name="revanced_ryd_toast_on_connection_error_title">Arată un toast dacă API-ul nu este disponibil</string>
<string name="revanced_ryd_toast_on_connection_error_summary_on">Toast este afișat dacă Returnarea YouTube Dislike nu este disponibilă</string>
<string name="revanced_ryd_toast_on_connection_error_summary_off">Toast nu este afișat dacă Returnarea YouTube Dislike nu este disponibilă</string>
<string name="revanced_ryd_about">Despre</string>
<string name="revanced_ryd_attribution_summary">Datele sunt furnizate de API-ul Returnare YouTube Dislike. Atinge aici pentru a afla mai multe</string>
<!-- Statistic strings are shown in the settings only when ReVanced debug mode is enabled. Typical users will never see these. -->
@@ -955,14 +946,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_sb_about_api_sum">Datele sunt furnizate de API-ul SponsorBlock. Apasă aici pentru a afla mai multe și a vedea descărcările pentru alte platforme</string>
</patch>
<patch id="layout.spoofappversion.spoofAppVersionPatch">
<string name="revanced_spoof_app_version_title">Simulare versiune</string>
<string name="revanced_spoof_app_version_summary_on">Versiune simulată</string>
<string name="revanced_spoof_app_version_summary_off">Versiune reală</string>
<string name="revanced_spoof_app_version_summary_on">Versiune falsificată</string>
<string name="revanced_spoof_app_version_summary_off">Versiune neafectată</string>
<string name="revanced_spoof_app_version_user_dialog_message">Versiunea aplicației va fi falsificată de o versiune mai veche de YouTube.\n\nAceasta va schimba aspectul şi caracteristicile aplicaţiei, dar pot apărea reacţii adverse necunoscute.\n\nDacă se dezactivează ulterior, se recomandă ștergerea datelor aplicației pentru a preveni erorile de interfață.</string>
<!-- It is ideal, but not required, if the text here appears is alphabetically after the text used for 'revanced_spoof_app_version_title'.
This is because the 'General layout' menu uses alphabetic sorting, and it functionally works better if the spoof target selector appears below the 'Spoof app version' UI switch -->
<string name="revanced_spoof_app_version_target_title">Versiune de simulat</string>
<string name="revanced_spoof_app_version_target_entry_1">19.35.36 - Restabilire pictograme învechite pentru playerul videoclipurilor scurte</string>
<!-- 'RYD' is 'Return YouTube Dislike' -->
<string name="revanced_spoof_app_version_target_legacy_entry_1">18.33.40 - Restaurează RYD în modul incognito Shorts</string>
<string name="revanced_spoof_app_version_target_legacy_entry_2">18.20.39 - Restaurare viteză video mare &amp; meniu calitate</string>
@@ -988,9 +976,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_change_start_page_entry_watch_later">Urmărește mai târziu</string>
</patch>
<patch id="layout.startupshortsreset.disableResumingShortsOnStartupPatch">
<string name="revanced_disable_resuming_shorts_player_title">Nu relua videoclipurile Shorts la deschidere</string>
<string name="revanced_disable_resuming_shorts_player_summary_on">Videoclipurile Shorts nu vor fi reluate la deschiderea aplicației</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Videoclipurile Shorts vor fi reluate la deschiderea aplicației</string>
<string name="revanced_disable_resuming_shorts_player_summary_off">Scurtătura va fi reluată la pornirea aplicației</string>
</patch>
<patch id="layout.shortsautoplay.shortsAutoplayPatch">
</patch>
@@ -1001,11 +987,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_tablet_layout_user_dialog_message">Posturile comunitare nu apar pe tablete</string>
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_screen_title">Miniplayer</string>
<string name="revanced_miniplayer_screen_title">Minijucător</string>
<string name="revanced_miniplayer_screen_summary">Schimbă stilul aplicaţiei minimizat jucătorul</string>
<string name="revanced_miniplayer_type_title">Tip de miniplayer</string>
<string name="revanced_miniplayer_type_title">Tip minijucător</string>
<string name="revanced_miniplayer_type_entry_0">Dezactivat</string>
<string name="revanced_miniplayer_type_entry_1">Originală</string>
<string name="revanced_miniplayer_type_entry_1">Implicit</string>
<string name="revanced_miniplayer_type_entry_2">Minimă</string>
<string name="revanced_miniplayer_type_entry_3">Tabletă</string>
<string name="revanced_miniplayer_type_entry_4">Modern 1</string>
@@ -1062,42 +1048,31 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.thumbnails.alternativeThumbnailsPatch">
<!-- 'Home' should be translated using the same localized wording YouTube displays for the home tab. -->
<string name="revanced_alt_thumbnail_home_title">Fila „Acasă“</string>
<!-- 'Subscription' should be translated using the same localized wording YouTube displays for the subscription tab. -->
<string name="revanced_alt_thumbnail_subscription_title">Fila „Abonamente“</string>
<string name="revanced_alt_thumbnail_subscription_title">Filă abonament</string>
<!-- 'You' should be translated using the same localized wording YouTube displays for the You (library) tab. -->
<string name="revanced_alt_thumbnail_library_title">Fila „Tu“</string>
<string name="revanced_alt_thumbnail_library_title">Fila ta</string>
<string name="revanced_alt_thumbnail_player_title">Liste de redare, recomandări</string>
<string name="revanced_alt_thumbnail_search_title">Rezultatele căutării</string>
<string name="revanced_alt_thumbnail_options_entry_1">Miniaturi originale</string>
<string name="revanced_alt_thumbnail_options_entry_2">DeArrow &amp; Miniaturi originale</string>
<string name="revanced_alt_thumbnail_options_entry_3">Săgeată &amp; Capturi statice</string>
<string name="revanced_alt_thumbnail_options_entry_4">Capturi statice</string>
<string name="revanced_alt_thumbnail_dearrow_about_summary">DeArrow oferă miniaturi sugerate de comunitate. Deseori, acestea sunt mai relevante decât cele furnizate de YouTube\n\nDacă sunt activate, adresele clipurilor video vor fi trimise serverului DeArrow, însă fără alte date. Dacă un videoclip nu are miniaturi DeArrow, sunt afișate cele originale\n\nApăsați aici pentru a afla mai multe despre DeArrow</string>
<string name="revanced_alt_thumbnail_dearrow_connection_toast_title">Afișați un mesaj dacă serverul este indisponibil</string>
<string name="revanced_alt_thumbnail_dearrow_connection_toast_summary_on">Se afișează un mesaj dacă DeArrow este indisponibil</string>
<string name="revanced_alt_thumbnail_dearrow_connection_toast_summary_off">Nu se afișează un mesaj dacă DeArrow este indisponibil</string>
<string name="revanced_alt_thumbnail_dearrow_api_url_title">Punct final al DeArrow API</string>
<string name="revanced_alt_thumbnail_dearrow_api_url_summary">Adresa punctul final DeArrow pentru miniaturi</string>
<string name="revanced_alt_thumbnail_stills_about_title">Capturi statice</string>
<string name="revanced_alt_thumbnail_stills_about_summary">Capturile statice sunt extrase de la începutul / mijlocul / sfârșitul fiecărui videoclip. Funcționalitatea este încorporată în YouTube și nu necesită API extern.</string>
<string name="revanced_alt_thumbnail_stills_fast_title">Utilizați capturi statice rapide</string>
<string name="revanced_alt_thumbnail_stills_fast_summary_on">Se folosesc capturi statice de calitate normală. Miniaturile se vor încărca mai repede, dar fluxurile în direct, videoclipurile nepublicate sau cele foarte vechi pot afișa miniaturi goale</string>
<string name="revanced_alt_thumbnail_stills_fast_summary_off">Se folosesc capturi statice de calitate înaltă</string>
<string name="revanced_alt_thumbnail_stills_time_title">Moment din clip pentru preluarea capturii statice</string>
<string name="revanced_alt_thumbnail_stills_time_entry_1">Început</string>
<string name="revanced_alt_thumbnail_stills_time_entry_2">Mijloc</string>
<string name="revanced_alt_thumbnail_stills_time_entry_3">Sfârșit</string>
<string name="revanced_alt_thumbnail_options_entry_1">Original thumbnails</string>
<string name="revanced_alt_thumbnail_options_entry_2">Săgeată &amp; Miniaturi originale</string>
<string name="revanced_alt_thumbnail_dearrow_connection_toast_title">Arată un toast dacă API-ul nu este disponibil</string>
<string name="revanced_alt_thumbnail_dearrow_connection_toast_summary_on">Toast este afișat dacă DeArrow nu este disponibil</string>
<string name="revanced_alt_thumbnail_dearrow_connection_toast_summary_off">Toast nu este afișat dacă DeArrow nu este disponibil</string>
<string name="revanced_alt_thumbnail_dearrow_api_url_title">DeArrow API endpoint</string>
<string name="revanced_alt_thumbnail_stills_fast_title">Folosește capturi rapide încă</string>
<string name="revanced_alt_thumbnail_stills_fast_summary_off">Folosind calitate înaltă capturează încă</string>
<string name="revanced_alt_thumbnail_stills_time_title">Timp video pentru a face capturi încă din</string>
<string name="revanced_alt_thumbnail_stills_time_entry_1">Începutul videoclipului</string>
<string name="revanced_alt_thumbnail_stills_time_entry_2">Mijloc video</string>
<string name="revanced_alt_thumbnail_stills_time_entry_3">Sfârșitul videoclipului</string>
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
<string name="revanced_alt_thumbnail_dearrow_error">DeArrow indisponibil temporar (stare: %s)</string>
<string name="revanced_alt_thumbnail_dearrow_error_generic">DeArrow indisponibil temporar</string>
</patch>
<patch id="misc.announcements.announcementsPatch">
<string name="revanced_announcements_title">Afișați știri din partea echipei ReVanced la pornire</string>
<string name="revanced_announcements_summary_on">Știrile sunt afișate la pornire</string>
<string name="revanced_announcements_summary_off">Știrile nu sunt afișate la pornire</string>
<string name="revanced_announcements_enabled_summary">Afișați știri din partea echipei ReVanced la pornire</string>
<string name="revanced_announcements_connection_failed">Conectarea la serverul de știri a eșuat</string>
<string name="revanced_announcements_summary_on">Anunțurile sunt afișate la pornire</string>
<string name="revanced_announcements_summary_off">Anunțurile nu sunt afișate la pornire</string>
<string name="revanced_announcements_enabled_summary">Afișare anunțuri la pornire</string>
<string name="revanced_announcements_connection_failed">Conectarea la furnizorul de anunțuri a eșuat</string>
<string name="revanced_announcements_dialog_dismiss">Anulare</string>
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
@@ -1185,33 +1160,84 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_slide_to_seek_summary_off">Slide pentru a căuta nu este activat</string>
</patch>
<patch id="misc.fix.playback.spoofVideoStreamsPatch">
<string name="revanced_spoof_video_streams_screen_title">Simulare flux video</string>
<string name="revanced_spoof_video_streams_screen_summary">Simulează randorul fluxurilor video pentru a preveni probleme de redare</string>
<string name="revanced_spoof_video_streams_title">Simulare fluxuri video</string>
<string name="revanced_spoof_video_streams_summary_on">Fluxurile video sunt simulate</string>
<string name="revanced_spoof_video_streams_summary_off">Fluxurile video nu sunt simulate\n\nEste posibil ca redarea video să nu funcționeze</string>
<string name="revanced_spoof_video_streams_screen_title">Spoof video stream-uri</string>
<string name="revanced_spoof_video_streams_screen_summary">Sporirea canalelor video client pentru a preveni problemele de redare</string>
<string name="revanced_spoof_video_streams_summary_on">Fluxurile video sunt falsificate</string>
<string name="revanced_spoof_video_streams_summary_off">Fluxurile video nu sunt marcate cu\n\nEste posibil ca redarea video să nu funcționeze</string>
<string name="revanced_spoof_video_streams_user_dialog_message">Dezactivarea acestei setări poate cauza probleme de redare video.</string>
<string name="revanced_spoof_video_streams_client_title">Randor implicit</string>
<string name="revanced_spoof_video_streams_client_title">Client implicit</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Forțează AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Codecul video este AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Codecul video este VP9 sau AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Dispozitivul dvs. nu acceptă decodarea VP9 la nivel hardware. Această setare este necesară pentru simularea randorului</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Activarea acestei funcții ar putea îmbunătăți durata de viață a bateriei și repara blocajul de redare.\n\nAVC are o rezoluție maximă de 1080p, iar redarea video va folosi mai multe date internet decât VP9 sau AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Consecințe ale simulării randorului iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Este posibil ca videoclipurile private pentru copii să nu se redea\n• Transmisiunile în direct încep mereu de la început\n• Videoclipurile pot să se încheie mai devreme cu o secundă\n• Codecul audio Opus nu este acceptat</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Consecințe ale simulării randorului Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Videoclipurile pentru copii pot să nu se redea\n• Meniul piesei audio lipsește\n• Volumul stabil nu este disponibil</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Codecul video este forţat să facă AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Codecul video este determinat automat</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Activarea acestei funcții ar putea îmbunătăți durata de viață a bateriei și repara blocajul de redare.\n\nAVC are o rezoluție maximă de 1080p, codec audio Opus nu este disponibil, iar redarea video va utiliza mai multe date internet decât VP9 sau AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Videoclipurile private pentru copii ar putea să nu redea\n• Vârsta limitată a videoclipurilor ar putea să nu redea\n• Livestreams începe de la începutul\n• Videoclipuri sfârșit cu 1 secundă mai devreme</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Reacţii adverse de spoofing Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Este posibil ca videoclipurile cu copii să nu redea\n• Vârsta limitată a videoclipurilor ar putea să nu redea\n• Livestreams începe de la începutul\n• Videoclipuri sfârșit de 1 secundă mai devreme</string>
<string name="revanced_spoof_video_streams_language_title">Limbă implicită flux audio</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Limba aplicației</string>
<string name="revanced_spoof_video_streams_language_AR">Arabă</string>
<string name="revanced_spoof_video_streams_language_AZ">Azerbaidjan</string>
<string name="revanced_spoof_video_streams_language_BG">Bulgară</string>
<string name="revanced_spoof_video_streams_language_BN">Bengaleză</string>
<string name="revanced_spoof_video_streams_language_CA">Catalană</string>
<string name="revanced_spoof_video_streams_language_CS">Cehă</string>
<string name="revanced_spoof_video_streams_language_DA">Daneză</string>
<string name="revanced_spoof_video_streams_language_DE">Germană</string>
<string name="revanced_spoof_video_streams_language_EL">Greacă</string>
<string name="revanced_spoof_video_streams_language_EN">Engleză</string>
<string name="revanced_spoof_video_streams_language_ES">Spaniolă</string>
<string name="revanced_spoof_video_streams_language_ET">Estonă</string>
<string name="revanced_spoof_video_streams_language_FA">persană</string>
<string name="revanced_spoof_video_streams_language_FI">Finlandeză</string>
<string name="revanced_spoof_video_streams_language_FR">Franceză</string>
<string name="revanced_spoof_video_streams_language_GU">Gujarati</string>
<string name="revanced_spoof_video_streams_language_HI">Hindi</string>
<string name="revanced_spoof_video_streams_language_HR">Croată</string>
<string name="revanced_spoof_video_streams_language_HU">Maghiară</string>
<string name="revanced_spoof_video_streams_language_ID">Indoneziană</string>
<string name="revanced_spoof_video_streams_language_IT">Italiană</string>
<string name="revanced_spoof_video_streams_language_JA">Japoneză</string>
<string name="revanced_spoof_video_streams_language_KK">Kazakh</string>
<string name="revanced_spoof_video_streams_language_KO">Coreeană</string>
<string name="revanced_spoof_video_streams_language_LT">Lituaniană</string>
<string name="revanced_spoof_video_streams_language_LV">Letonă</string>
<string name="revanced_spoof_video_streams_language_MK">Macedoneană</string>
<string name="revanced_spoof_video_streams_language_MN">Mongolie</string>
<string name="revanced_spoof_video_streams_language_MR">Marati</string>
<string name="revanced_spoof_video_streams_language_MS">Malaeză</string>
<string name="revanced_spoof_video_streams_language_MY">Burmese</string>
<string name="revanced_spoof_video_streams_language_NL">Olandeză</string>
<string name="revanced_spoof_video_streams_language_OR">Odia</string>
<string name="revanced_spoof_video_streams_language_PA">Punjabi</string>
<string name="revanced_spoof_video_streams_language_PL">Poloneză</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Portugheză (Brazilia)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Portugheză (Portugalia)</string>
<string name="revanced_spoof_video_streams_language_RO">Română</string>
<string name="revanced_spoof_video_streams_language_RU">Rusă</string>
<string name="revanced_spoof_video_streams_language_SK">Slovacă</string>
<string name="revanced_spoof_video_streams_language_SL">Slovene</string>
<string name="revanced_spoof_video_streams_language_SR">Sârbă</string>
<string name="revanced_spoof_video_streams_language_SV">Suedeză</string>
<string name="revanced_spoof_video_streams_language_SW">Asteapta</string>
<string name="revanced_spoof_video_streams_language_TA">Tamil</string>
<string name="revanced_spoof_video_streams_language_TE">Telugu</string>
<string name="revanced_spoof_video_streams_language_TH">Tailandeză</string>
<string name="revanced_spoof_video_streams_language_TR">Turcă</string>
<string name="revanced_spoof_video_streams_language_UK">Ucraineană</string>
<string name="revanced_spoof_video_streams_language_UR">Urdu</string>
<string name="revanced_spoof_video_streams_language_VI">Vietnamese</string>
<string name="revanced_spoof_video_streams_language_ZH">Chineză</string>
</patch>
</app>
<app id="twitch">
<patch id="ad.audio.audioAdsPatch">
<string name="revanced_block_audio_ads_title">Blochează reclamele audio</string>
<string name="revanced_block_audio_ads_summary_on">Anunțurile audio sunt blocate</string>
<string name="revanced_block_audio_ads_summary_off">Anunțurile audio sunt permise</string>
<string name="revanced_block_audio_ads_summary_on">Anunţurile audio sunt blocate</string>
<string name="revanced_block_audio_ads_summary_off">Anunţurile audio sunt deblocate</string>
</patch>
<patch id="ad.embedded.embeddedAdsPatch">
<string name="revanced_embedded_ads_service_unavailable">%s este indisponibil. Reclame pot arata. Incercati sa treceti la un alt serviciu de blocare a reclamelor din setari.</string>
<string name="revanced_embedded_ads_service_failed">Serverul %s a returnat o eroare. E posibil ca anunțurile să apară. Încercați un alt serviciu de blocare a reclamelor.</string>
<string name="revanced_embedded_ads_service_failed">Serverul %s a returnat o eroare. Anunţurile pot apărea. Încearcă să treci la un alt serviciu de blocare a reclamelor din setări.</string>
<string name="revanced_block_embedded_ads_title">Blocare reclame video integrate</string>
<string name="revanced_block_embedded_ads_entry_1">Dezactivat</string>
<string name="revanced_block_embedded_ads_entry_2">Proxy luminos</string>
@@ -1220,7 +1246,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<patch id="ad.video.videoAdsPatch">
<string name="revanced_block_video_ads_title">Blocare reclame video</string>
<string name="revanced_block_video_ads_summary_on">Anunțurile video sunt blocate</string>
<string name="revanced_block_video_ads_summary_off">Anunțurile audio sunt permise</string>
<string name="revanced_block_video_ads_summary_off">Anunţurile video sunt deblocate</string>
</patch>
<patch id="chat.antidelete.showDeletedMessagesPatch">
<string name="revanced_deleted_msg">mesaj șters</string>
@@ -1244,7 +1270,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_settings">Setări ReVanced</string>
<string name="revanced_about_title">Despre</string>
<string name="revanced_about_summary">Despre ReVanced</string>
<string name="revanced_ads_screen_title">Publicitate</string>
<string name="revanced_ads_screen_title">Anunţuri</string>
<string name="revanced_ads_screen_summary">Setări blocare reclame</string>
<string name="revanced_chat_screen_title">Chat</string>
<string name="revanced_chat_screen_summary">Setări chat</string>

View File

@@ -82,7 +82,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_settings_screen_03_feed_title">Лента</string>
<string name="revanced_settings_screen_04_player_title">Плеер</string>
<string name="revanced_settings_screen_05_general_title">Основной интерфейс</string>
<string name="revanced_settings_screen_07_seekbar_title">Прогресс воспроизведения</string>
<string name="revanced_settings_screen_07_seekbar_title">Полоса прогресса</string>
<string name="revanced_settings_screen_08_swipe_controls_title">Управление жестами</string>
<string name="revanced_settings_screen_11_misc_title">Прочие</string>
<string name="revanced_settings_screen_12_video_title">Видео</string>
@@ -275,7 +275,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_doodles_title">YouTube Doodles</string>
<string name="revanced_hide_doodles_summary_on">Doodles на панели поиска скрыты</string>
<string name="revanced_hide_doodles_summary_off">Doodles на панели поиска отображены</string>
<string name="revanced_hide_doodles_user_dialog_message">YouTube Doodles появляются несколько дней в году.\n\nЕсли в Вашем регионе в настоящее время показывается Doodle, и этот параметр скрытия включен, то панель фильтров под панелью поиска будет также скрыта.</string>
<string name="revanced_hide_doodles_user_dialog_message">YouTube Doodles появляются несколько дней в году.\n\nЕсли в Вашем регионе в настоящее время показывается Doodle, и данная опция скрытия активна, то панель фильтров под панелью поиска будет также скрыта.</string>
<string name="revanced_custom_filter_screen_title">Пользовательский фильтр</string>
<string name="revanced_custom_filter_screen_summary">Скрыть компоненты с помощью пользовательских фильтров</string>
<string name="revanced_custom_filter_title">Пользовательский фильтр</string>
@@ -397,8 +397,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="interaction.seekbar.enableSeekbarTappingPatch">
<string name="revanced_seekbar_tapping_title">Перемотка нажатием</string>
<string name="revanced_seekbar_tapping_summary_on">Перемотка нажатием на прогресс воспроизведения включена</string>
<string name="revanced_seekbar_tapping_summary_off">Перемотка нажатием на прогресс воспроизведения отключена</string>
<string name="revanced_seekbar_tapping_summary_on">Перемотка нажатием на полосу прогресса включена</string>
<string name="revanced_seekbar_tapping_summary_off">Перемотка нажатием на полосу прогресса отключена</string>
</patch>
<patch id="interaction.swipecontrols.swipeControlsResourcePatch">
<string name="revanced_swipe_brightness_title">Регулировка яркости жестом</string>
@@ -588,12 +588,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_disable_rolling_number_animations_summary_off">Анимированные счетчики просмотров, лайков и дизлайков включены</string>
</patch>
<patch id="layout.hide.seekbar.hideSeekbarPatch">
<string name="revanced_hide_seekbar_title">Прогресс воспроизведения</string>
<string name="revanced_hide_seekbar_summary_on">Прогресс воспроизведения в плеере скрыт</string>
<string name="revanced_hide_seekbar_summary_off">Прогресс воспроизведения в плеере отображен</string>
<string name="revanced_hide_seekbar_thumbnail_title">Миниатюры</string>
<string name="revanced_hide_seekbar_thumbnail_summary_on">Миниатюры прогресса воспроизведения скрыты</string>
<string name="revanced_hide_seekbar_thumbnail_summary_off">Миниатюры прогресса воспроизведения отображены</string>
<string name="revanced_hide_seekbar_title">Полоса прогресса в плеере</string>
<string name="revanced_hide_seekbar_summary_on">Полоса прогресса в плеере скрыта</string>
<string name="revanced_hide_seekbar_summary_off">Полоса прогресса в плеере отображена</string>
<string name="revanced_hide_seekbar_thumbnail_title">Полоса прогресса в миниатюрах</string>
<string name="revanced_hide_seekbar_thumbnail_summary_on">Полоса прогресса в миниатюрах скрыта</string>
<string name="revanced_hide_seekbar_thumbnail_summary_off">Полоса прогресса в миниатюрах отображена</string>
</patch>
<patch id="layout.hide.shorts.hideShortsComponentsResourcePatch">
<string name="revanced_shorts_player_screen_title">Плеер Shorts</string>
@@ -623,7 +623,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_shorts_shop_button_title">Кнопка \"Магазин\"</string>
<string name="revanced_hide_shorts_shop_button_summary_on">Кнопка \"Магазин\" в Shorts скрыта</string>
<string name="revanced_hide_shorts_shop_button_summary_off">Кнопка \"Магазин\" в Shorts отображена</string>
<string name="revanced_hide_shorts_super_thanks_button_title">Скрыть кнопку \"Супер спасибо\"</string>
<string name="revanced_hide_shorts_super_thanks_button_title">Кнопка \"Супер спасибо\"</string>
<string name="revanced_hide_shorts_super_thanks_button_summary_on">Кнопка \"Супер спасибо\" скрыта</string>
<string name="revanced_hide_shorts_super_thanks_button_summary_off">Кнопка \"Супер спасибо\" показывается</string>
<string name="revanced_hide_shorts_tagged_products_title">Товары с тегом</string>
@@ -710,6 +710,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Автоматически всплывающие панели (плейлист или живой чат) в плеере скрыты</string>
<string name="revanced_hide_player_popup_panels_summary_off">Автоматически всплывающие панели (плейлист или живой чат) в плеере отображены</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Видео в полноэкранном портрете</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Видео открываются в полноэкранном портретном режиме</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Видео не открываются в полноэкранном портретном режиме</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Непрозрачность оверлея плеера</string>
<string name="revanced_player_overlay_opacity_summary">Значение непрозрачности в пределах 0-100, где 0 - это прозрачно</string>
@@ -766,14 +771,14 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.seekbar.seekbarThumbnailsPatch">
<string name="revanced_seekbar_thumbnails_high_quality_title">Миниатюры высокого качества</string>
<string name="revanced_seekbar_thumbnails_high_quality_summary_on">Миниатюры прогресса воспроизведения высокого качества</string>
<string name="revanced_seekbar_thumbnails_high_quality_summary_off">Миниатюры прогресса воспроизведения среднего качества</string>
<string name="revanced_seekbar_thumbnails_high_quality_legacy_summary_on">Полноэкранные миниатюры прогресса воспроизведения высокого качества</string>
<string name="revanced_seekbar_thumbnails_high_quality_legacy_summary_off">Полноэкранные миниатюры прогресса воспроизведения среднего качества</string>
<string name="revanced_seekbar_thumbnails_high_quality_dialog_message">Данная опция также восстановит миниатюры в прямых трансляциях, у которых они отсутствуют в прогрессе воспроизведения.\n\nМиниатюры прогресса воспроизведения будут использовать такое же качество, как и текущее видео.\n\nДанная опция работает лучше с качеством видео 720p или ниже, и при использовании очень быстрого подключения к Интернету.</string>
<string name="revanced_restore_old_seekbar_thumbnails_title">Восстановление старых миниатюр</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_on">Старые миниатюры восстановлены - миниатюры прогресса воспроизведения отображаются над ним</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_off">Миниатюры прогресса воспроизведения отображаются в полноэкранном режиме</string>
<string name="revanced_seekbar_thumbnails_high_quality_summary_on">Миниатюры полосы прогресса высокого качества</string>
<string name="revanced_seekbar_thumbnails_high_quality_summary_off">Миниатюры полосы прогресса среднего качества</string>
<string name="revanced_seekbar_thumbnails_high_quality_legacy_summary_on">Полноэкранные миниатюры полосы прогресса высокого качества</string>
<string name="revanced_seekbar_thumbnails_high_quality_legacy_summary_off">Полноэкранные миниатюры полосы прогресса среднего качества</string>
<string name="revanced_seekbar_thumbnails_high_quality_dialog_message">Данная опция также восстановит миниатюры в прямых трансляциях, которые не имеют миниатюр полосы прогресса.\n\nМиниатюры полосы прогресса будут использовать такое же качество, как и текущее видео.\n\nДанная опция работает лучше с качеством видео 720p или ниже, и при использовании очень быстрого подключения к Интернету.</string>
<string name="revanced_restore_old_seekbar_thumbnails_title">Старые миниатюры</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_on">Миниатюры полосы прогресса отображаются над полосой прогресса</string>
<string name="revanced_restore_old_seekbar_thumbnails_summary_off">Миниатюры полосы прогресса отображаются в полноэкранном режиме</string>
</patch>
<patch id="layout.sponsorblock.sponsorBlockResourcePatch">
<string name="revanced_sb_enable_sb">Включить SponsorBlock</string>
@@ -888,7 +893,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_sb_skip_automatically">Пропускать автоматически</string>
<string name="revanced_sb_skip_automatically_once">Пропускать автоматически один раз</string>
<string name="revanced_sb_skip_showbutton">Кнопка пропуска</string>
<string name="revanced_sb_skip_seekbaronly">Отображать в прогрессе воспроизведения</string>
<string name="revanced_sb_skip_seekbaronly">Отображать в полосе прогресса</string>
<string name="revanced_sb_skip_ignore">Отключить</string>
<string name="revanced_sb_submit_failed_invalid">Не удалось отправить сегмент: %s</string>
<string name="revanced_sb_submit_failed_timeout">SponsorBlock временно не работает</string>
@@ -1013,7 +1018,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Стиль свернутого мини-плеера </string>
<string name="revanced_miniplayer_type_title">Тип мини-плеера</string>
<string name="revanced_miniplayer_type_entry_0">Отключено</string>
<string name="revanced_miniplayer_type_entry_1">Оригинал</string>
<string name="revanced_miniplayer_type_entry_1">По умолчанию</string>
<string name="revanced_miniplayer_type_entry_2">Минимальный</string>
<string name="revanced_miniplayer_type_entry_3">Планшет</string>
<string name="revanced_miniplayer_type_entry_4">Современный 1</string>
@@ -1037,9 +1042,9 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_hide_expand_close_legacy_title">Кнопки \"Развернуть\" и \"Закрыть\"</string>
<string name="revanced_miniplayer_hide_expand_close_legacy_summary_on">Кнопки скрыты\n\nПроведите по мини-плееру для разворачивания или закрытия</string>
<string name="revanced_miniplayer_hide_expand_close_legacy_summary_off">Кнопки разворачивания и закрытия отображены</string>
<string name="revanced_miniplayer_hide_subtext_title">Скрыть подтексты</string>
<string name="revanced_miniplayer_hide_subtext_summary_on">Субтексты скрыты</string>
<string name="revanced_miniplayer_hide_subtext_summary_off">Подтексты показаны</string>
<string name="revanced_miniplayer_hide_subtext_title">Подтексты</string>
<string name="revanced_miniplayer_hide_subtext_summary_on">Подтексты скрыты</string>
<string name="revanced_miniplayer_hide_subtext_summary_off">Подтексты отображены</string>
<string name="revanced_miniplayer_hide_rewind_forward_title">Кнопки перемотки</string>
<string name="revanced_miniplayer_hide_rewind_forward_summary_on">Кнопки перемотки вперед и назад скрыты</string>
<string name="revanced_miniplayer_hide_rewind_forward_summary_off">Кнопки перемотки вперед и назад отображены</string>
@@ -1056,12 +1061,12 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_gradient_loading_screen_summary_off">Экран загрузки имеет сплошной фон</string>
</patch>
<patch id="layout.theme.themeResourcePatch">
<string name="revanced_seekbar_custom_color_title">Цвет прогресса воспроизведения</string>
<string name="revanced_seekbar_custom_color_summary_on">Пользовательский цвет прогресса воспроизведения отображен</string>
<string name="revanced_seekbar_custom_color_summary_off">Оригинальный цвет прогресса воспроизведения отображен</string>
<string name="revanced_seekbar_custom_color_title">Цвет полосы прогресса</string>
<string name="revanced_seekbar_custom_color_summary_on">Пользовательский цвет полосы прогресса отображен</string>
<string name="revanced_seekbar_custom_color_summary_off">Оригинальный цвет полосы прогресса отображен</string>
<string name="revanced_seekbar_custom_color_value_title">Пользовательский цвет</string>
<string name="revanced_seekbar_custom_color_value_summary">Редактировать цвет прогресса воспроизведения</string>
<string name="revanced_seekbar_custom_color_invalid">Неверное значение цвета прогресса воспроизведения</string>
<string name="revanced_seekbar_custom_color_value_summary">Редактировать цвет полосы прогресса</string>
<string name="revanced_seekbar_custom_color_invalid">Неверное значение цвета полосы прогресса</string>
</patch>
<patch id="layout.thumbnails.bypassImageRegionRestrictionsPatch">
<string name="revanced_bypass_image_region_restrictions_title">Обход ограничений региона</string>
@@ -1110,7 +1115,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
<string name="revanced_check_watch_history_domain_name_dialog_title">Внимание</string>
<string name="revanced_check_watch_history_domain_name_dialog_message">Ваша история просмотра не сохраняется.&lt;br&gt;&lt;br&gt;Скорее всего, это из-за блокировщика рекламы DNS или сетевого прокси.&lt;br&gt;&lt;br&gt;Чтобы это исправить, добавьте &lt;b&gt;s.youtube.com&lt;/b&gt; в белый список блокировщика или отключите все блокировщики DNS и прокси.</string>
<string name="revanced_check_watch_history_domain_name_dialog_message">Ваша история просмотра не сохраняется.&lt;br&gt;&lt;br&gt;Вероятнее всего это вызвано DNS блокировщиком рекламы или сетевым прокси.&lt;br&gt;&lt;br&gt;Чтобы это исправить, добавьте &lt;b&gt;s.youtube.com&lt;/b&gt; в белый список блокировщика рекламы или отключите все блокировщики DNS и прокси.</string>
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Не показывать снова</string>
</patch>
<patch id="misc.autorepeat.autoRepeatPatch">
@@ -1201,14 +1206,65 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Отключение этой настройки может вызвать проблемы с воспроизведением видео.</string>
<string name="revanced_spoof_video_streams_client_title">Клиент по умолчанию</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Принудительно AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Видеокодек AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Видеокодек VP9 или AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">На вашем устройстве нет аппаратного декодирования VP9, и эта настройка всегда активна при включенной подмене клиента</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Активация данной опции может улучшить время работы батареи и исправить задержки воспроизведения.\n\nAVC имеет максимальное разрешение 1080p, воспроизведение видео будет использовать больше интернет данных в сравнении с VP9 или AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Видео кодек принудительно установлен на AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Видео кодек определяется автоматически</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Активация данной опции может улучшить время работы батареи и исправить задержки воспроизведения.\n\nAVC имеет максимальное разрешение 1080p, аудио кодек Opus недоступен, и воспроизведение видео будет использовать больше интернет данных в сравнении с VP9 или AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Побочные эффекты подмены на iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Частные детские видео могут не воспроизводиться\n• Прямые трансляции начинаются с самого начала\n• Видео может закончиться на 1 секунду раньше\n• Отсутствует аудиокодек opus</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Побочные эффекты подмены на Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Детские видео могут не воспроизводиться\n• Пункт меню \"Звуковая дорожка\" отсутвтует\n• Пункт меню \"Постоянный уровень громкости\" недоступен</string>
<string name="revanced_spoof_video_streams_language_title">Язык аудио потока по умолчанию</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Язык приложения</string>
<string name="revanced_spoof_video_streams_language_AR">Арабский</string>
<string name="revanced_spoof_video_streams_language_AZ">Азербайджанский</string>
<string name="revanced_spoof_video_streams_language_BG">Болгарский</string>
<string name="revanced_spoof_video_streams_language_BN">Бенгальский</string>
<string name="revanced_spoof_video_streams_language_CA">Каталонский</string>
<string name="revanced_spoof_video_streams_language_CS">Чешский</string>
<string name="revanced_spoof_video_streams_language_DA">Датский</string>
<string name="revanced_spoof_video_streams_language_DE">Немецкий</string>
<string name="revanced_spoof_video_streams_language_EL">Греческий</string>
<string name="revanced_spoof_video_streams_language_EN">Английский</string>
<string name="revanced_spoof_video_streams_language_ES">Испанский</string>
<string name="revanced_spoof_video_streams_language_ET">Эстонский</string>
<string name="revanced_spoof_video_streams_language_FA">Персидский</string>
<string name="revanced_spoof_video_streams_language_FI">Финский</string>
<string name="revanced_spoof_video_streams_language_FR">Французский</string>
<string name="revanced_spoof_video_streams_language_GU">Гуджарати</string>
<string name="revanced_spoof_video_streams_language_HI">Хинди</string>
<string name="revanced_spoof_video_streams_language_HR">Хорватский</string>
<string name="revanced_spoof_video_streams_language_HU">Венгерский</string>
<string name="revanced_spoof_video_streams_language_ID">Индонезийский</string>
<string name="revanced_spoof_video_streams_language_IT">Итальянский</string>
<string name="revanced_spoof_video_streams_language_JA">Японский</string>
<string name="revanced_spoof_video_streams_language_KK">Казахский</string>
<string name="revanced_spoof_video_streams_language_KO">Корейский</string>
<string name="revanced_spoof_video_streams_language_LT">Литовский</string>
<string name="revanced_spoof_video_streams_language_LV">Латышский</string>
<string name="revanced_spoof_video_streams_language_MK">Македонский</string>
<string name="revanced_spoof_video_streams_language_MN">Монгольский</string>
<string name="revanced_spoof_video_streams_language_MR">Маратхи</string>
<string name="revanced_spoof_video_streams_language_MS">Малайский</string>
<string name="revanced_spoof_video_streams_language_MY">Бирманский</string>
<string name="revanced_spoof_video_streams_language_NL">Голландский</string>
<string name="revanced_spoof_video_streams_language_OR">Одиа</string>
<string name="revanced_spoof_video_streams_language_PA">Панджаби</string>
<string name="revanced_spoof_video_streams_language_PL">Польский</string>
<string name="revanced_spoof_video_streams_language_PT_BR">Португальский (Бразилия)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">Португальский (Португалия)</string>
<string name="revanced_spoof_video_streams_language_RO">Румынский</string>
<string name="revanced_spoof_video_streams_language_RU">Русский</string>
<string name="revanced_spoof_video_streams_language_SK">Словацкий</string>
<string name="revanced_spoof_video_streams_language_SL">Словенский</string>
<string name="revanced_spoof_video_streams_language_SR">Сербский</string>
<string name="revanced_spoof_video_streams_language_SV">Шведский</string>
<string name="revanced_spoof_video_streams_language_SW">Суахили</string>
<string name="revanced_spoof_video_streams_language_TA">Тамильский</string>
<string name="revanced_spoof_video_streams_language_TE">Телугу</string>
<string name="revanced_spoof_video_streams_language_TH">Тайский</string>
<string name="revanced_spoof_video_streams_language_TR">Турецкий</string>
<string name="revanced_spoof_video_streams_language_UK">Украинский</string>
<string name="revanced_spoof_video_streams_language_UR">Урду</string>
<string name="revanced_spoof_video_streams_language_VI">Вьетнамский</string>
<string name="revanced_spoof_video_streams_language_ZH">Китайский</string>
</patch>
</app>
<app id="twitch">

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -642,6 +642,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Vyskakovacie panely prehrávača sú skryté</string>
<string name="revanced_hide_player_popup_panels_summary_off">Zobrazia sa vyskakovacie panely prehrávača</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Nepriehľadnosť prekrytia prehrávača</string>
<string name="revanced_player_overlay_opacity_summary">Hodnota nepriehľadnosti medzi 0-100, kde 0 je transparentné</string>
@@ -921,7 +923,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Zmeňte štýl minimalizovaného prehrávača v aplikácii</string>
<string name="revanced_miniplayer_type_title">Typ miniprehrávača</string>
<string name="revanced_miniplayer_type_entry_0">Vypnuté</string>
<string name="revanced_miniplayer_type_entry_1">Originál</string>
<string name="revanced_miniplayer_type_entry_1">Predvolené</string>
<string name="revanced_miniplayer_type_entry_4">Moderné 1</string>
<string name="revanced_miniplayer_type_entry_5">Moderné 2</string>
<string name="revanced_miniplayer_type_entry_6">Moderné 3</string>

View File

@@ -40,22 +40,53 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_settings_restart_title">Osvežitev in ponovni zagon</string>
<string name="revanced_settings_restart">Ponovni zagon</string>
<string name="revanced_settings_import">Uvoz</string>
<string name="revanced_pref_import_export_title">Uvoz in izvoz</string>
<string name="revanced_pref_import_export_summary">Uvoz oz. izvoz nastavitev za ReVanced</string>
<!-- Settings about dialog. -->
<string name="revanced_settings_about_links_body">Uporabljate verzijo &lt;i&gt;%s&lt;/i&gt; ReVanced popravkov</string>
<string name="revanced_settings_about_links_dev_header">Opomba</string>
<string name="revanced_settings_about_links_dev_body">Ta verzija je predrazličica, posledično vas lahko doletijo nepričakovane težave</string>
<string name="revanced_settings_about_links_header">Uradne povezave</string>
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
and changes made here must also be made there. -->
</patch>
<patch id="misc.gms.gmsCoreSupportResourcePatch">
<!-- Translations of this should not be longer than the original English text, otherwise the text can be clipped and not entirely shown. -->
<string name="gms_core_toast_not_installed_message">MicroG GmsCore ni nameščen. Namestite ga.</string>
<string name="gms_core_dialog_title">Ukrepanje je potrebno</string>
<string name="gms_core_dialog_not_whitelisted_not_allowed_in_background_message">MicroG GmsCore nima dovoljenj za poganjanje v ozadju.\n\nSledite navodilom \"Don\'t kill my app\" za vaš telefon in jih opravite za vašo MicroG namestitev.\n\nTo je zahtevano za večino aplikacij, da lahko delujejo.</string>
<string name="gms_core_dialog_open_website_text">Odprite spletno stran</string>
<string name="gms_core_dialog_not_whitelisted_using_battery_optimizations_message">Optimizacije baterije za MicroG GmsCore morajo biti izklopljene, da se prepreči težave.\n\nKliknite na gumb za nadaljevanje in izklopite optimizacije baterije.</string>
<string name="gms_core_dialog_continue_text">Naprej</string>
</patch>
</app>
<app id="youtube">
<patch id="misc.settings.settingsPatch">
<string name="revanced_settings_screen_00_about_title">O programu</string>
<string name="revanced_settings_screen_01_ads_title">Oglasi</string>
<string name="revanced_settings_screen_02_alt_thumbnails_title">Alternativne sličice</string>
<string name="revanced_settings_screen_03_feed_title">Pregled</string>
<string name="revanced_settings_screen_04_player_title">Predvajalnik</string>
<string name="revanced_settings_screen_05_general_title">Splošna postavitev</string>
<string name="revanced_settings_screen_07_seekbar_title">Časovna vrstica</string>
<string name="revanced_settings_screen_08_swipe_controls_title">Nastavitve drsanja</string>
<string name="revanced_settings_screen_11_misc_title">Razno</string>
<string name="revanced_settings_screen_12_video_title">Video</string>
</patch>
<patch id="misc.backgroundplayback.backgroundPlaybackPatch">
<string name="revanced_shorts_disable_background_playback_title">Izključite predvajanje Shortsev v ozadju</string>
<string name="revanced_shorts_disable_background_playback_summary_on">Predvajanje Shortsev v ozadju je izključeno</string>
<string name="revanced_shorts_disable_background_playback_summary_off">Predvajanje Shortsev v ozadju je vključeno</string>
</patch>
<patch id="misc.debugging.enableDebuggingPatch">
<string name="revanced_debug_screen_title">Razhroščevanje</string>
<string name="revanced_debug_screen_summary">Vključite oz. izključite razvijalske možnosti</string>
<string name="revanced_debug_title">Razhroščevalno beleženje</string>
<string name="revanced_debug_summary_on">Razhroščevalno beleženje je vključeno</string>
<string name="revanced_debug_summary_off">Razhroščevalno beleženje je izključeno</string>
<string name="revanced_debug_protobuffer_title">Beleženje protocol bufferjev</string>
<string name="revanced_debug_protobuffer_summary_on">Razhroščevalne beležnice vključujejo protocol bufferje</string>
<string name="revanced_debug_protobuffer_summary_off">Razhroščevalne beležnice ne vključujejo protocol bufferjev</string>
</patch>
<patch id="layout.hide.general.hideLayoutComponentsPatch">
<!-- 'Join' should be translated using the same localized wording YouTube displays.
@@ -154,6 +185,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">
@@ -192,6 +225,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.miniplayer.miniplayerPatch">
<string name="revanced_miniplayer_type_entry_0">Onemogočeno</string>
<string name="revanced_miniplayer_type_entry_1">Privzeto</string>
</patch>
<patch id="layout.theme.themePatch">
</patch>

View File

@@ -147,6 +147,8 @@ This is because Crowdin requires temporarily flattening this file and removing t
</patch>
<patch id="layout.panels.popup.playerPopupPanelsPatch">
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
</patch>
<patch id="layout.returnyoutubedislike.returnYouTubeDislikePatch">

View File

@@ -710,6 +710,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Iskačuće table u plejeru su skrivene</string>
<string name="revanced_hide_player_popup_panels_summary_off">Iskačuće table u plejeru su prikazane</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Otvori videe preko celog ekrana uspravno</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Videi se otvaraju preko celog ekrana uspravno</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Videi se ne otvaraju preko celog ekrana uspravno</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Neprozirnost preklopa plejera</string>
<string name="revanced_player_overlay_opacity_summary">Vrednost neprozirnosti između 0 i 100, gde je 0 prozirno</string>
@@ -1013,7 +1018,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Promenite stil minimiziranog plejera u aplikaciji</string>
<string name="revanced_miniplayer_type_title">Tip mini-plejera</string>
<string name="revanced_miniplayer_type_entry_0">Onemogućeno</string>
<string name="revanced_miniplayer_type_entry_1">Originalni</string>
<string name="revanced_miniplayer_type_entry_1">Podrazumevana</string>
<string name="revanced_miniplayer_type_entry_2">Minimalan</string>
<string name="revanced_miniplayer_type_entry_3">Tablet</string>
<string name="revanced_miniplayer_type_entry_4">Moderan 1</string>
@@ -1201,14 +1206,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Isključivanje ove opcije će možda izazvati probleme sa reprodukcijom videa.</string>
<string name="revanced_spoof_video_streams_client_title">Podrazumevani klijent</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Prisili AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Video kodek je AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Video kodek je VP9 ili AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Vaš uređaj nema VP9 hardversko dekodiranje, i ova opcija je uvek uključena kada je omogućeno lažiranje klijenta</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Ako ovo omogućite, možda će se produžiti trajanje baterije i popraviti zastoj pri reprodukciji.\n\nAVC ima maksimalnu rezoluciju od 1080p, a reprodukcija videa će koristiti više internet podataka nego VP9 ili AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Video kodek je prisilno podešen na AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Video kodek je određen automatski</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Ako ovo omogućite, možda će se produžiti trajanje baterije i popraviti zastoj pri reprodukciji.\n\nAVC ima maksimalnu rezoluciju od 1080p, audio kodek Opus nije dostupan i reprodukcija videa će koristiti više internet podataka nego VP9 ili AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Neželjeni efekti lažiranja na iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Privatni dečji videi se možda neće puštati\n• Strimovi uživo počinju od početka\n• Videi će se možda završiti 1 sekundu ranije\n• Nema audio kodeka opus</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Privatni dečji videi se možda neće puštati\n• Starosno ograničeni videi se možda neće puštati\n• Strimovi uživo počinju od početka\n• Videi će se završiti 1 sekundu ranije</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Neželjeni efekti lažiranja na Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Dečji videi se možda neće puštati\n• Meni „Audio snimak” nedostaje\n• Ujednačena jačina zvuka nije dostupna</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Dečji videi se možda neće puštati\n• Starosno ograničeni videi se možda neće puštati\n• Strimovi uživo počinju od početka\n• Videi će se završiti 1 sekundu ranije</string>
<string name="revanced_spoof_video_streams_language_title">Podrazumevani jezik audio strima</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Jezik aplikacije</string>
<string name="revanced_spoof_video_streams_language_AR">arapski</string>
<string name="revanced_spoof_video_streams_language_AZ">azerbejdžanski</string>
<string name="revanced_spoof_video_streams_language_BG">bugarski</string>
<string name="revanced_spoof_video_streams_language_BN">bengalski</string>
<string name="revanced_spoof_video_streams_language_CA">katalonski</string>
<string name="revanced_spoof_video_streams_language_CS">češki</string>
<string name="revanced_spoof_video_streams_language_DA">danski</string>
<string name="revanced_spoof_video_streams_language_DE">nemački</string>
<string name="revanced_spoof_video_streams_language_EL">grčki</string>
<string name="revanced_spoof_video_streams_language_EN">engleski</string>
<string name="revanced_spoof_video_streams_language_ES">španski</string>
<string name="revanced_spoof_video_streams_language_ET">estonski</string>
<string name="revanced_spoof_video_streams_language_FA">persijski</string>
<string name="revanced_spoof_video_streams_language_FI">finski</string>
<string name="revanced_spoof_video_streams_language_FR">francuski</string>
<string name="revanced_spoof_video_streams_language_GU">gudžarati</string>
<string name="revanced_spoof_video_streams_language_HI">hindi</string>
<string name="revanced_spoof_video_streams_language_HR">hrvatski</string>
<string name="revanced_spoof_video_streams_language_HU">mađarski</string>
<string name="revanced_spoof_video_streams_language_ID">indonežanski</string>
<string name="revanced_spoof_video_streams_language_IT">italijanski</string>
<string name="revanced_spoof_video_streams_language_JA">japanski</string>
<string name="revanced_spoof_video_streams_language_KK">kazaški</string>
<string name="revanced_spoof_video_streams_language_KO">korejski</string>
<string name="revanced_spoof_video_streams_language_LT">litvanski</string>
<string name="revanced_spoof_video_streams_language_LV">letonski</string>
<string name="revanced_spoof_video_streams_language_MK">makedonski</string>
<string name="revanced_spoof_video_streams_language_MN">mongolski</string>
<string name="revanced_spoof_video_streams_language_MR">marati</string>
<string name="revanced_spoof_video_streams_language_MS">malajski</string>
<string name="revanced_spoof_video_streams_language_MY">burmanski</string>
<string name="revanced_spoof_video_streams_language_NL">holandski</string>
<string name="revanced_spoof_video_streams_language_OR">odija</string>
<string name="revanced_spoof_video_streams_language_PA">pandžapski</string>
<string name="revanced_spoof_video_streams_language_PL">poljski</string>
<string name="revanced_spoof_video_streams_language_PT_BR">portugalski (Brazil)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">portugalski (Portugalija)</string>
<string name="revanced_spoof_video_streams_language_RO">rumunski</string>
<string name="revanced_spoof_video_streams_language_RU">ruski</string>
<string name="revanced_spoof_video_streams_language_SK">slovački</string>
<string name="revanced_spoof_video_streams_language_SL">slovenački</string>
<string name="revanced_spoof_video_streams_language_SR">srpski</string>
<string name="revanced_spoof_video_streams_language_SV">švedski</string>
<string name="revanced_spoof_video_streams_language_SW">svahili</string>
<string name="revanced_spoof_video_streams_language_TA">tamilski</string>
<string name="revanced_spoof_video_streams_language_TE">telugu</string>
<string name="revanced_spoof_video_streams_language_TH">tajski</string>
<string name="revanced_spoof_video_streams_language_TR">turski</string>
<string name="revanced_spoof_video_streams_language_UK">ukrajinski</string>
<string name="revanced_spoof_video_streams_language_UR">urdu</string>
<string name="revanced_spoof_video_streams_language_VI">vijetnamski</string>
<string name="revanced_spoof_video_streams_language_ZH">kineski</string>
</patch>
</app>
<app id="twitch">

View File

@@ -710,6 +710,11 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_hide_player_popup_panels_summary_on">Искачуће табле у плејеру су скривене</string>
<string name="revanced_hide_player_popup_panels_summary_off">Искачуће табле у плејеру су приказане</string>
</patch>
<patch id="layout.player.fullscreen.openVideosFullscreen">
<string name="revanced_open_videos_fullscreen_portrait_title">Отвори видее преко целог екрана усправно</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_on">Видеи се отварају преко целог екрана усправно</string>
<string name="revanced_open_videos_fullscreen_portrait_summary_off">Видеи се не отварају преко целог екрана усправно</string>
</patch>
<patch id="layout.player.overlay.customPlayerOverlayOpacityResourcePatch">
<string name="revanced_player_overlay_opacity_title">Непрозирност преклопа плејера</string>
<string name="revanced_player_overlay_opacity_summary">Вредност непрозирности између 0 и 100, где је 0 прозирно</string>
@@ -1013,7 +1018,7 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_miniplayer_screen_summary">Промените стил минимизираног плејера у апликацији</string>
<string name="revanced_miniplayer_type_title">Тип мини-плејера</string>
<string name="revanced_miniplayer_type_entry_0">Онемогућено</string>
<string name="revanced_miniplayer_type_entry_1">Оригинални</string>
<string name="revanced_miniplayer_type_entry_1">Подразумевана</string>
<string name="revanced_miniplayer_type_entry_2">Минималан</string>
<string name="revanced_miniplayer_type_entry_3">Таблет</string>
<string name="revanced_miniplayer_type_entry_4">Модеран 1</string>
@@ -1201,14 +1206,67 @@ This is because Crowdin requires temporarily flattening this file and removing t
<string name="revanced_spoof_video_streams_user_dialog_message">Искључивање ове опције ће можда изазвати проблеме са репродукцијом видеа.</string>
<string name="revanced_spoof_video_streams_client_title">Подразумевани клијент</string>
<string name="revanced_spoof_video_streams_ios_force_avc_title">Присили AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Видео кодек је AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Видео кодек је VP9 или AV1</string>
<string name="revanced_spoof_video_streams_ios_force_avc_no_hardware_vp9_summary_on">Ваш уређај нема VP9 хардверско декодирање, и ова опција је увек укључена када је омогућено лажирање клијента</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Ако ово омогућите, можда ће се продужити трајање батерије и поправити застој при репродукцији.\n\nAVC има максималну резолуцију од 1080p, а репродукција видеа ће користити више интернет података него VP9 или AV1.</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_on">Видео кодек је присилно подешен на AVC (H.264)</string>
<string name="revanced_spoof_video_streams_ios_force_avc_summary_off">Видео кодек је одређен аутоматски</string>
<string name="revanced_spoof_video_streams_ios_force_avc_user_dialog_message">Ако ово омогућите, можда ће се продужити трајање батерије и поправити застој при репродукцији.\n\nAVC има максималну резолуцију од 1080p, аудио кодек Opus није доступан и репродукција видеа ће користити више интернет података него VP9 или AV1.</string>
<string name="revanced_spoof_video_streams_about_ios_title">Нежељени ефекти лажирања на iOS</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Приватни дечји видеи се можда неће пуштати\n• Стримови уживо почињу од почетка\n• Видеи ће се можда завршити 1 секунду раније\n• Нема аудио кодека opus</string>
<string name="revanced_spoof_video_streams_about_ios_summary">• Приватни дечји видеи се можда неће пуштати\n• Старосно ограничени видеи се можда неће пуштати\n• Стримови уживо почињу од почетка\n• Видеи ће се завршити 1 секунду раније</string>
<string name="revanced_spoof_video_streams_about_android_vr_title">Нежељени ефекти лажирања на Android VR</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Дечји видеи се можда неће пуштати\n• Мени „Аудио снимак” недостаје\n• Уједначена јачина звука није доступна</string>
<string name="revanced_spoof_video_streams_about_android_vr_summary">• Дечји видеи се можда неће пуштати\n• Старосно ограничени видеи се можда неће пуштати\n• Стримови уживо почињу од почетка\n• Видеи ће се завршити 1 секунду раније</string>
<string name="revanced_spoof_video_streams_language_title">Подразумевани језик аудио стрима</string>
<string name="revanced_spoof_video_streams_language_DEFAULT">Језик апликације</string>
<string name="revanced_spoof_video_streams_language_AR">арапски</string>
<string name="revanced_spoof_video_streams_language_AZ">азербејџански</string>
<string name="revanced_spoof_video_streams_language_BG">бугарски</string>
<string name="revanced_spoof_video_streams_language_BN">бенгалски</string>
<string name="revanced_spoof_video_streams_language_CA">каталонски</string>
<string name="revanced_spoof_video_streams_language_CS">чешки</string>
<string name="revanced_spoof_video_streams_language_DA">дански</string>
<string name="revanced_spoof_video_streams_language_DE">немачки</string>
<string name="revanced_spoof_video_streams_language_EL">грчки</string>
<string name="revanced_spoof_video_streams_language_EN">енглески</string>
<string name="revanced_spoof_video_streams_language_ES">шпански</string>
<string name="revanced_spoof_video_streams_language_ET">естонски</string>
<string name="revanced_spoof_video_streams_language_FA">персијски</string>
<string name="revanced_spoof_video_streams_language_FI">фински</string>
<string name="revanced_spoof_video_streams_language_FR">француски</string>
<string name="revanced_spoof_video_streams_language_GU">гуџарати</string>
<string name="revanced_spoof_video_streams_language_HI">хинди</string>
<string name="revanced_spoof_video_streams_language_HR">хрватски</string>
<string name="revanced_spoof_video_streams_language_HU">мађарски</string>
<string name="revanced_spoof_video_streams_language_ID">индонежански</string>
<string name="revanced_spoof_video_streams_language_IT">италијански</string>
<string name="revanced_spoof_video_streams_language_JA">јапански</string>
<string name="revanced_spoof_video_streams_language_KK">казашки</string>
<string name="revanced_spoof_video_streams_language_KO">корејски</string>
<string name="revanced_spoof_video_streams_language_LT">литвански</string>
<string name="revanced_spoof_video_streams_language_LV">летонски</string>
<string name="revanced_spoof_video_streams_language_MK">македонски</string>
<string name="revanced_spoof_video_streams_language_MN">монголски</string>
<string name="revanced_spoof_video_streams_language_MR">марати</string>
<string name="revanced_spoof_video_streams_language_MS">малајски</string>
<string name="revanced_spoof_video_streams_language_MY">бурмански</string>
<string name="revanced_spoof_video_streams_language_NL">холандски</string>
<string name="revanced_spoof_video_streams_language_OR">одија</string>
<string name="revanced_spoof_video_streams_language_PA">панџапски</string>
<string name="revanced_spoof_video_streams_language_PL">пољски</string>
<string name="revanced_spoof_video_streams_language_PT_BR">португалски (Бразил)</string>
<string name="revanced_spoof_video_streams_language_PT_PT">португалски (Португалија)</string>
<string name="revanced_spoof_video_streams_language_RO">румунски</string>
<string name="revanced_spoof_video_streams_language_RU">руски</string>
<string name="revanced_spoof_video_streams_language_SK">словачки</string>
<string name="revanced_spoof_video_streams_language_SL">словеначки</string>
<string name="revanced_spoof_video_streams_language_SR">српски</string>
<string name="revanced_spoof_video_streams_language_SV">шведски</string>
<string name="revanced_spoof_video_streams_language_SW">свахили</string>
<string name="revanced_spoof_video_streams_language_TA">тамилски</string>
<string name="revanced_spoof_video_streams_language_TE">телугу</string>
<string name="revanced_spoof_video_streams_language_TH">тајски</string>
<string name="revanced_spoof_video_streams_language_TR">турски</string>
<string name="revanced_spoof_video_streams_language_UK">украјински</string>
<string name="revanced_spoof_video_streams_language_UR">урду</string>
<string name="revanced_spoof_video_streams_language_VI">вијетнамски</string>
<string name="revanced_spoof_video_streams_language_ZH">кинески</string>
</patch>
</app>
<app id="twitch">

Some files were not shown because too many files have changed in this diff Show More