40 Commits

Author SHA1 Message Date
LineageOS Infra
f32205c417 Automatic translation import
Change-Id: I8595564c923636bcc682918835167bf3655e5602
2025-04-01 15:14:04 +00:00
Michael W
0342bb3121 Updater: Fix warnings
* Unused imports
* Unused code
* Unused resources
* Set.isEmpty() instead of .size() == 0
* try-with-resources

Change-Id: Ia9351986c62e8e5f8d4615f6146827b891f55f9e
2025-03-07 19:13:04 +00:00
Michael W
33d63d627d Updater: Use Java 11
This is what AOSP uses since SDK 32

Change-Id: I6401a14cd2a00f8e3b8d0fe8ec3ff9ec215bd9c7
2025-03-07 19:13:04 +00:00
Michael W
9918f7ef91 Updater: Bump minSdk to 32
* We use features that are only available on 31 and up (system colors)
  anyway
* We can use Java 11 instead of 1.8 (which we already can use when not
  using gradle, but that way AS also recognizes it)

Change-Id: Ie2ea1e77b1954bde44f06b63e6c09979d0e91c17
2025-03-07 19:13:04 +00:00
Michael W
fbdb5570a5 Updater: Update gradle plugin to 8.7.3
Following AS recommendations

Change-Id: Ib3ad9be87b21e4b8a98ad3e07d3f0af2aa42cabe
2025-03-07 19:13:04 +00:00
Michael W
e28d157a8c Updater: Update gradle wrapper to 8.9
7.5 is not supported by AS anymore

Change-Id: I961776da6c387a16c092e88fdc4423d97cb4b7c7
2025-03-07 19:13:04 +00:00
Michael W
a9d7673d1d Updater: Add welcome message with instructions
Make it clear for everyone before even clicking anything that updates
are not incremental and old ones can be deleted

Change-Id: Ifcc31958d9324899a267741141ff66b10f62edc1
2025-03-07 19:13:04 +00:00
LineageOS Infra
ec85854518 Automatic translation import
Change-Id: I0c36cb9569beebd8d242e8e57865c9d23df9496c
2025-03-01 17:50:28 +00:00
Nolen Johnson
e92031f1ec !fixup Updater: Allow Updater to handle major upgrades via property
* Missing semicolon in the final PS, but more importantly,
  unreachable statement.

Change-Id: Ie064e750e6c91e2689eb8d3faca459b4c30c1ab3
2025-02-18 05:26:08 +00:00
Nolen Johnson
c9159bf47b Updater: Allow Updater to handle major upgrades via property
* If the user has GMS installed, they'll need to install an updated
  copy, as addon.d won't restore it, and if it did it likely wouldn't
  work. So we can't support this unconditionally.
* If the user has no-GMS, this should be totally fine to do, so the
  user could set the property, upgrade, and go on their merry way.
  This use-case is why I didn't make this an `ro.` property.
* If someone building LineageOS builds GMS into the images, upgrade
  via this method would also be feasible.

Change-Id: If2a6e6767dcb182d3dbd2a95c81a940fdb53547e
2025-02-18 03:18:07 +00:00
Michael W
5ab3076f91 Updater: Show "no items" view after deleting last update
Currently after removing the last update from the list, you end up
with a completely empty list. It should look like when you open the app
again with no updates

Change-Id: I77f025baf2e20385d31b5e897b92ddf24680be99
2025-02-17 01:24:58 +00:00
LineageOS Infra
6fafcc4e7f Automatic translation import
Change-Id: Ib2bf80cfe87b70971a3d678c2e15c3cf330e8b7f
2025-02-15 15:47:30 +00:00
LineageOS Infra
e670f6e8cd Automatic translation import
Change-Id: I8a7d494342485ed3e4ca588dc04388814166eba8
2025-02-01 14:28:44 +00:00
LineageOS Infra
d044ba1dee Automatic translation import
Change-Id: I7bdad186119308897dc891a5b83c8e704e5e3621
2025-01-15 20:54:57 +00:00
Hridaya Prajapati
b551ebc472 Updater: Migrate away from deprecated ProgressDialog
Follow usage of AlertDialog with ProgressBar as documented in AOSP.
https://developer.android.com/reference/android/app/ProgressDialog

Change-Id: Ie410f839cb5495a4b37ce926d991d662861ef398
2025-01-04 12:26:03 +00:00
LineageOS Infra
d8e73e380c Automatic translation import
Change-Id: I65d59303983836bf6832aadbbb5c675f92d90745
2025-01-02 08:11:22 +00:00
Michael Bestas
a2e31f1f2d Revert "Updater: 20 and up are integers!"
This reverts commit 1ec0b8d1de.

Change-Id: I5b5c5bf825405d7a0b3720521cea343a0674fd40
2024-12-26 09:35:38 +00:00
Michael Bestas
b31dd16806 Revert "Updater: Handle NumberFormatException"
This reverts commit bf1646fa93.

Change-Id: I90e2bcbecbf04641e97957d0ad3f8964d9403d2f
2024-12-26 09:35:28 +00:00
LuK1337
a07c2fc48e Updater: Allow 22.X to 22.X+N OTAs
Change-Id: Ic4f5d94d4040bd744a372d3bb5090aba70e0688f
2024-12-24 11:06:17 +01:00
Timi
1d33cc3135 Updater: push-update: unroot on exit if zip exists
Change-Id: I10ccb345d02830337bc8aefa4f3d41e80e42d064
2024-12-17 18:19:02 +00:00
Giovanni Ricca
ed36157049 Updater: Set SYSTEM_UPDATE_SETTINGS priority higher than GMS
For whatever reason, when both SYSTEM_UPDATE_SETTINGS components have
the same priority and the first one is disabled (in this case, the GMS
one), it doesn't seem to fallback to the next enabled one and instead
shows a "No apps can perform this action" message. To avoid that, let's
just set higher priority.

9a6853 com.google.android.gms/.update.SystemUpdateActivity filter b9e590
  Action: "android.settings.SYSTEM_UPDATE_SETTINGS"
  Category: "android.intent.category.DEFAULT"
  mPriority=1, mOrder=0, mHasStaticPartialTypes=false, mHasDynamicPartialTypes=false

Change-Id: I886a714304fe6d1906af7e1702ecaf2238bd8cb0
2024-11-11 10:55:02 +01:00
LineageOS Infra
a72dadf7e3 Automatic translation import
Change-Id: I5740bd6f9c095b3e7d0a8207e7541f7506480931
2024-10-31 17:49:49 +00:00
Salvo Giangreco
3cb130d40a Updater: Fix broken download ETA/progress
Change-Id: I1d7b5ecf7779d08c5d617d8c0950b24fbe7d0733
2024-10-02 16:42:50 +00:00
LineageOS Infra
e6edfaab94 Automatic translation import
Change-Id: I82c651eefb62882cec8bb4ee914ee5d9b56264c9
2024-10-01 20:14:22 +00:00
LineageOS Infra
34535a83fb Automatic translation import
Change-Id: Ia65d6e242fa1cbcbec79755974bc5afd8c4afd0d
2024-09-15 16:02:37 +00:00
LineageOS Infra
8d0b616fec Automatic translation import
Change-Id: I7c5a0601e46bfe371c38b07cb2f432fede1d2647
2024-09-02 23:16:27 +00:00
LineageOS Infra
6ef2ee7a34 Automatic translation import
Change-Id: Ieec62f872ff664b0411247876cdb1fa858f7ccab
2024-08-15 20:24:22 +00:00
Michael W
7c5230326f Updater: Append trailing slash to upgrade url
* It gets appended after calling anyway
* Having the url at the end of a linkified message with a dot after it
  (end of sentence, e.g. russian), the dot is also linkified resulting
  in
  https://wiki.lineageos.org/devices/<device>/upgrade.
  which won't work, while the slash makes it work
  (with the linkified dot)

Fixes: https://gitlab.com/LineageOS/issues/android/-/issues/7248
Change-Id: Iaacd61267ad886c23393e34071a191a2e08d4009
2024-07-19 17:29:23 +00:00
Michael W
0d1c94fe5a Updater: Round dialogs
Change-Id: Icc5ea5a27e48ec74158588ba11a0277b6f0404cf
2024-06-28 20:18:38 +00:00
LineageOS Infra
8b6c6728ac Automatic translation import
Change-Id: Ib7cf69f228616a1e1d5fb4c9d17de6c233bc861a
2024-06-15 18:21:16 +00:00
LuK1337
4a536da4be Updater: Use https:// for wiki URL
Change-Id: I9b18ce7ea75d7248dd04a5603e80139afc8e6e09
2024-06-06 10:33:42 +02:00
LineageOS Infra
a6ce04aefc Automatic translation import
Change-Id: I4f9f0369ecff6df84e4f824f5e016663fcfe0a28
2024-06-01 22:14:29 +00:00
LuK1337
36c5333f2d Updater: Handle ErrorCode::kUpdateAlreadyInstalled more gracefully
If applyPayload() fails with kUpdateAlreadyInstalled, mark update as
already installed. While this is not ideal since this might not be the
update we actually installed, it's still better than outright dying.

Test: install update, unset needs_reboot_id, kill updater, install
      update again.
Change-Id: Iac264896cffd1db522d81fc2050eb71d62ca91bf
2024-05-17 14:33:12 +00:00
LineageOS Infra
93adf96d12 Automatic translation import
Change-Id: If6cce2f888b32a71567597822a39c2638d65cfca
2024-05-15 15:50:39 +00:00
LuK1337
ddbb843309 Updater: Add /mnt/scratch detection
Change-Id: Ie4d408791c24ce0b592882a0e6c5af12bd16addb
2024-05-02 18:58:57 +00:00
LineageOS Infra
d1d28de8e7 Automatic translation import
Change-Id: I52e976d00a3cf32fa248331d3026d844f03d84df
2024-05-01 16:33:52 +00:00
LineageOS Infra
c9eada5848 Automatic translation import
Change-Id: If4758d368b57157a6c5ec1de7a9dad0c9ae05113
2024-02-18 19:38:55 +00:00
LineageOS Infra
76c126c8af Automatic translation import
Change-Id: I855069d4b214900b32f88a6ec73cb7b2abb07b99
2024-02-10 19:04:56 +00:00
Bruno Martins
27af047c21 Updater: Override SystemUpdater
It is the "Local System Updates" seen in Automotive builds.

Change-Id: If81451e65f55445db000a3a92f3badce8f9ed8e2
2024-01-20 02:26:23 +00:00
Bartłomiej Rudecki
7d9b6c0c64 Updater: Define foregroundServiceType
Required since Android 14 [1].

11-16 14:05:45.363 20623 20623 E AndroidRuntime: FATAL EXCEPTION: main
11-16 14:05:45.363 20623 20623 E AndroidRuntime: Process: org.lineageos.updater, PID: 20623
11-16 14:05:45.363 20623 20623 E AndroidRuntime: android.app.MissingForegroundServiceTypeException: Starting FGS without a type  callerApp=ProcessRecord{6d14558 20623:org.lineageos.updater/u0a149} targetSDK=34

[1] https://developer.android.com/about/versions/14/changes/fgs-types-required

Change-Id: Id6217424177b94d37621062fb1a55778f1dabbab
2023-11-16 22:11:39 +01:00
87 changed files with 1226 additions and 324 deletions

View File

@@ -1,5 +1,5 @@
// //
// Copyright (C) 2022-2023 The LineageOS Project // Copyright (C) 2022-2024 The LineageOS Project
// //
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// //
@@ -19,6 +19,10 @@ android_app {
certificate: "platform", certificate: "platform",
system_ext_specific: true, system_ext_specific: true,
overrides: [
"SystemUpdater",
],
static_libs: [ static_libs: [
// DO NOT EDIT THIS SECTION MANUALLY // DO NOT EDIT THIS SECTION MANUALLY
"androidx.core_core-ktx", "androidx.core_core-ktx",

View File

@@ -34,7 +34,7 @@ android {
defaultConfig { defaultConfig {
applicationId = "org.lineageos.updater" applicationId = "org.lineageos.updater"
minSdk = 30 minSdk = 32
targetSdk = 33 targetSdk = 33
versionCode = 1 versionCode = 1
versionName = "1.0" versionName = "1.0"
@@ -57,12 +57,12 @@ android {
} }
compileOptions { compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_11
} }
kotlinOptions { kotlinOptions {
jvmTarget = "1.8" jvmTarget = "11"
} }
signingConfigs { signingConfigs {
@@ -81,6 +81,7 @@ android {
} }
} }
} }
namespace = "org.lineageos.updater"
} }
dependencies { dependencies {

View File

@@ -5,6 +5,7 @@
<uses-permission android:name="android.permission.ACCESS_CACHE_FILESYSTEM" /> <uses-permission android:name="android.permission.ACCESS_CACHE_FILESYSTEM" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.REBOOT" /> <uses-permission android:name="android.permission.REBOOT" />
@@ -29,7 +30,7 @@
android:exported="true" android:exported="true"
android:theme="@style/AppTheme.NoActionBar" android:theme="@style/AppTheme.NoActionBar"
android:launchMode="singleTop"> android:launchMode="singleTop">
<intent-filter android:priority="1"> <intent-filter android:priority="2">
<action android:name="android.settings.SYSTEM_UPDATE_SETTINGS" /> <action android:name="android.settings.SYSTEM_UPDATE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
@@ -43,8 +44,18 @@
</intent-filter> </intent-filter>
</activity> </activity>
<service android:name=".controller.UpdaterService" /> <service
<service android:name=".ExportUpdateService" /> android:name=".controller.UpdaterService"
android:foregroundServiceType="specialUse">
<property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
android:value="updater"/>
</service>
<service
android:name=".ExportUpdateService"
android:foregroundServiceType="specialUse">
<property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
android:value="updater"/>
</service>
<receiver android:name=".UpdaterReceiver" android:exported="false"> <receiver android:name=".UpdaterReceiver" android:exported="false">
<intent-filter> <intent-filter>

View File

@@ -20,6 +20,7 @@ import android.app.NotificationManager;
import android.app.Service; import android.app.Service;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ServiceInfo;
import android.net.Uri; import android.net.Uri;
import android.os.IBinder; import android.os.IBinder;
import android.os.SystemClock; import android.os.SystemClock;
@@ -156,7 +157,8 @@ public class ExportUpdateService extends Service {
} }
}; };
startForeground(NOTIFICATION_ID, notificationBuilder.build()); startForeground(NOTIFICATION_ID, notificationBuilder.build(),
ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE);
notificationManager.notify(NOTIFICATION_ID, notificationBuilder.build()); notificationManager.notify(NOTIFICATION_ID, notificationBuilder.build());
Runnable runnableComplete = () -> { Runnable runnableComplete = () -> {

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2017-2022 The LineageOS Project * Copyright (C) 2017-2025 The LineageOS Project
* Copyright (C) 2020-2022 SHIFT GmbH * Copyright (C) 2020-2022 SHIFT GmbH
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,13 +23,10 @@ import android.net.Uri;
import android.os.ParcelFileDescriptor; import android.os.ParcelFileDescriptor;
import android.util.Log; import android.util.Log;
import org.json.JSONException;
import org.lineageos.updater.controller.UpdaterController; import org.lineageos.updater.controller.UpdaterController;
import org.lineageos.updater.controller.UpdaterService;
import org.lineageos.updater.misc.StringGenerator; import org.lineageos.updater.misc.StringGenerator;
import org.lineageos.updater.misc.Utils; import org.lineageos.updater.misc.Utils;
import org.lineageos.updater.model.Update; import org.lineageos.updater.model.Update;
import org.lineageos.updater.model.UpdateInfo;
import org.lineageos.updater.model.UpdateStatus; import org.lineageos.updater.model.UpdateStatus;
import java.io.File; import java.io.File;
@@ -41,7 +38,6 @@ import java.io.InputStream;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.text.DateFormat; import java.text.DateFormat;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.List;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipFile; import java.util.zip.ZipFile;

View File

@@ -31,7 +31,6 @@ import androidx.preference.PreferenceManager;
import org.lineageos.updater.misc.BuildInfoUtils; import org.lineageos.updater.misc.BuildInfoUtils;
import org.lineageos.updater.misc.Constants; import org.lineageos.updater.misc.Constants;
import org.lineageos.updater.misc.StringGenerator; import org.lineageos.updater.misc.StringGenerator;
import org.lineageos.updater.misc.Utils;
import java.text.DateFormat; import java.text.DateFormat;
@@ -62,7 +61,7 @@ public class UpdaterReceiver extends BroadcastReceiver {
String buildDate = StringGenerator.getDateLocalizedUTC(context, String buildDate = StringGenerator.getDateLocalizedUTC(context,
DateFormat.MEDIUM, preferences.getLong(Constants.PREF_INSTALL_NEW_TIMESTAMP, 0)); DateFormat.MEDIUM, preferences.getLong(Constants.PREF_INSTALL_NEW_TIMESTAMP, 0));
String buildInfo = context.getString(R.string.list_build_version_date, String buildInfo = context.getString(R.string.list_build_version_date,
Utils.getDisplayVersion(BuildInfoUtils.getBuildVersion()), buildDate); BuildInfoUtils.getBuildVersion(), buildDate);
Intent notificationIntent = new Intent(context, UpdatesActivity.class); Intent notificationIntent = new Intent(context, UpdatesActivity.class);
PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent,

View File

@@ -17,7 +17,6 @@ package org.lineageos.updater;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.app.ProgressDialog;
import android.app.UiModeManager; import android.app.UiModeManager;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.ComponentName; import android.content.ComponentName;
@@ -110,8 +109,7 @@ public class UpdatesActivity extends UpdatesListActivity implements UpdateImport
}); });
private UpdateImporter mUpdateImporter; private UpdateImporter mUpdateImporter;
@SuppressWarnings("deprecation") private AlertDialog importDialog;
private ProgressDialog importDialog;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@@ -147,6 +145,12 @@ public class UpdatesActivity extends UpdatesListActivity implements UpdateImport
} else if (UpdaterController.ACTION_UPDATE_REMOVED.equals(intent.getAction())) { } else if (UpdaterController.ACTION_UPDATE_REMOVED.equals(intent.getAction())) {
String downloadId = intent.getStringExtra(UpdaterController.EXTRA_DOWNLOAD_ID); String downloadId = intent.getStringExtra(UpdaterController.EXTRA_DOWNLOAD_ID);
mAdapter.removeItem(downloadId); mAdapter.removeItem(downloadId);
List<UpdateInfo> sortedUpdates =
mUpdaterService.getUpdaterController().getUpdates();
if (sortedUpdates.isEmpty()) {
findViewById(R.id.no_new_updates_view).setVisibility(View.VISIBLE);
findViewById(R.id.recycler_view).setVisibility(View.GONE);
}
} }
} }
}; };
@@ -181,7 +185,7 @@ public class UpdatesActivity extends UpdatesListActivity implements UpdateImport
TextView headerTitle = findViewById(R.id.header_title); TextView headerTitle = findViewById(R.id.header_title);
headerTitle.setText(getString(R.string.header_title_text, headerTitle.setText(getString(R.string.header_title_text,
Utils.getDisplayVersion(BuildInfoUtils.getBuildVersion()))); BuildInfoUtils.getBuildVersion()));
updateLastCheckedString(); updateLastCheckedString();
@@ -226,6 +230,8 @@ public class UpdatesActivity extends UpdatesListActivity implements UpdateImport
findViewById(R.id.refresh).setOnClickListener(v -> downloadUpdatesList(true)); findViewById(R.id.refresh).setOnClickListener(v -> downloadUpdatesList(true));
findViewById(R.id.preferences).setOnClickListener(v -> showPreferencesDialog()); findViewById(R.id.preferences).setOnClickListener(v -> showPreferencesDialog());
} }
maybeShowWelcomeMessage();
} }
@Override @Override
@@ -304,14 +310,18 @@ public class UpdatesActivity extends UpdatesListActivity implements UpdateImport
} }
@Override @Override
@SuppressWarnings("deprecation")
public void onImportStarted() { public void onImportStarted() {
if (importDialog != null && importDialog.isShowing()) { if (importDialog != null && importDialog.isShowing()) {
importDialog.dismiss(); importDialog.dismiss();
} }
importDialog = ProgressDialog.show(this, getString(R.string.local_update_import), importDialog = new AlertDialog.Builder(this)
getString(R.string.local_update_import_progress), true, false); .setTitle(R.string.local_update_import)
.setView(R.layout.progress_dialog)
.setCancelable(false)
.create();
importDialog.show();
} }
@Override @Override
@@ -657,4 +667,19 @@ public class UpdatesActivity extends UpdatesListActivity implements UpdateImport
}) })
.show(); .show();
} }
private void maybeShowWelcomeMessage() {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean alreadySeen = preferences.getBoolean(Constants.HAS_SEEN_WELCOME_MESSAGE, false);
if (alreadySeen) {
return;
}
new AlertDialog.Builder(this)
.setTitle(R.string.welcome_title)
.setMessage(R.string.welcome_message)
.setPositiveButton(R.string.info_dialog_ok, (dialog, which) -> preferences.edit()
.putBoolean(Constants.HAS_SEEN_WELCOME_MESSAGE, true)
.apply())
.show();
}
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2017-2023 The LineageOS Project * Copyright (C) 2017-2025 The LineageOS Project
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -15,12 +15,10 @@
*/ */
package org.lineageos.updater; package org.lineageos.updater;
import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.res.Resources; import android.content.res.Resources;
import android.net.Uri;
import android.os.BatteryManager; import android.os.BatteryManager;
import android.os.PowerManager; import android.os.PowerManager;
import android.text.SpannableString; import android.text.SpannableString;
@@ -40,8 +38,6 @@ import android.widget.LinearLayout;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.view.ContextThemeWrapper; import androidx.appcompat.view.ContextThemeWrapper;
@@ -55,7 +51,6 @@ import com.google.android.material.snackbar.Snackbar;
import org.lineageos.updater.controller.UpdaterController; import org.lineageos.updater.controller.UpdaterController;
import org.lineageos.updater.controller.UpdaterService; import org.lineageos.updater.controller.UpdaterService;
import org.lineageos.updater.misc.BuildInfoUtils;
import org.lineageos.updater.misc.Constants; import org.lineageos.updater.misc.Constants;
import org.lineageos.updater.misc.StringGenerator; import org.lineageos.updater.misc.StringGenerator;
import org.lineageos.updater.misc.Utils; import org.lineageos.updater.misc.Utils;
@@ -63,10 +58,13 @@ import org.lineageos.updater.model.UpdateInfo;
import org.lineageos.updater.model.UpdateStatus; import org.lineageos.updater.model.UpdateStatus;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Stream;
public class UpdatesListAdapter extends RecyclerView.Adapter<UpdatesListAdapter.ViewHolder> { public class UpdatesListAdapter extends RecyclerView.Adapter<UpdatesListAdapter.ViewHolder> {
@@ -277,7 +275,7 @@ public class UpdatesListAdapter extends RecyclerView.Adapter<UpdatesListAdapter.
String buildDate = StringGenerator.getDateLocalizedUTC(mActivity, String buildDate = StringGenerator.getDateLocalizedUTC(mActivity,
DateFormat.LONG, update.getTimestamp()); DateFormat.LONG, update.getTimestamp());
String buildVersion = mActivity.getString(R.string.list_build_version, String buildVersion = mActivity.getString(R.string.list_build_version,
Utils.getDisplayVersion(update.getVersion())); update.getVersion());
viewHolder.mBuildDate.setText(buildDate); viewHolder.mBuildDate.setText(buildDate);
viewHolder.mBuildVersion.setText(buildVersion); viewHolder.mBuildVersion.setText(buildVersion);
viewHolder.mBuildVersion.setCompoundDrawables(null, null, null, null); viewHolder.mBuildVersion.setCompoundDrawables(null, null, null, null);
@@ -475,6 +473,12 @@ public class UpdatesListAdapter extends RecyclerView.Adapter<UpdatesListAdapter.
.setMessage(message) .setMessage(message)
.setPositiveButton(android.R.string.ok, null); .setPositiveButton(android.R.string.ok, null);
} }
if (isScratchMounted()) {
return new AlertDialog.Builder(mActivity)
.setTitle(R.string.dialog_scratch_mounted_title)
.setMessage(R.string.dialog_scratch_mounted_message)
.setPositiveButton(android.R.string.ok, null);
}
UpdateInfo update = mUpdaterController.getUpdate(downloadId); UpdateInfo update = mUpdaterController.getUpdate(downloadId);
int resId; int resId;
try { try {
@@ -598,7 +602,7 @@ public class UpdatesListAdapter extends RecyclerView.Adapter<UpdatesListAdapter.
private boolean isBatteryLevelOk() { private boolean isBatteryLevelOk() {
Intent intent = mActivity.registerReceiver(null, Intent intent = mActivity.registerReceiver(null,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
if (!intent.getBooleanExtra(BatteryManager.EXTRA_PRESENT, false)) { if (intent == null || !intent.getBooleanExtra(BatteryManager.EXTRA_PRESENT, false)) {
return true; return true;
} }
int percent = Math.round(100.f * intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 100) / int percent = Math.round(100.f * intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 100) /
@@ -609,4 +613,12 @@ public class UpdatesListAdapter extends RecyclerView.Adapter<UpdatesListAdapter.
mActivity.getResources().getInteger(R.integer.battery_ok_percentage_discharging); mActivity.getResources().getInteger(R.integer.battery_ok_percentage_discharging);
return percent >= required; return percent >= required;
} }
private static boolean isScratchMounted() {
try (Stream<String> lines = Files.lines(Path.of("/proc/mounts"))) {
return lines.anyMatch(x -> x.split(" ")[1].equals("/mnt/scratch"));
} catch (IOException e) {
return false;
}
}
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2017-2022 The LineageOS Project * Copyright (C) 2017-2024 The LineageOS Project
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@ package org.lineageos.updater.controller;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.ServiceSpecificException;
import android.os.UpdateEngine; import android.os.UpdateEngine;
import android.os.UpdateEngineCallback; import android.os.UpdateEngineCallback;
import android.text.TextUtils; import android.text.TextUtils;
@@ -212,7 +213,17 @@ class ABUpdateInstaller {
mUpdateEngine.setPerformanceMode(enableABPerfMode); mUpdateEngine.setPerformanceMode(enableABPerfMode);
String zipFileUri = "file://" + file.getAbsolutePath(); String zipFileUri = "file://" + file.getAbsolutePath();
try {
mUpdateEngine.applyPayload(zipFileUri, offset, 0, headerKeyValuePairs); mUpdateEngine.applyPayload(zipFileUri, offset, 0, headerKeyValuePairs);
} catch (ServiceSpecificException e) {
if (e.errorCode == 66 /* kUpdateAlreadyInstalled */) {
installationDone(true);
mUpdaterController.getActualUpdate(mDownloadId).setStatus(UpdateStatus.INSTALLED);
mUpdaterController.notifyUpdateChange(mDownloadId);
return;
}
throw e;
}
mUpdaterController.getActualUpdate(mDownloadId).setStatus(UpdateStatus.INSTALLING); mUpdaterController.getActualUpdate(mDownloadId).setStatus(UpdateStatus.INSTALLING);
mUpdaterController.notifyUpdateChange(mDownloadId); mUpdaterController.notifyUpdateChange(mDownloadId);
@@ -245,8 +256,7 @@ class ABUpdateInstaller {
} }
private void installationDone(boolean needsReboot) { private void installationDone(boolean needsReboot) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext); String id = needsReboot ? mDownloadId : null;
String id = needsReboot ? prefs.getString(PREF_INSTALLING_AB_ID, null) : null;
PreferenceManager.getDefaultSharedPreferences(mContext).edit() PreferenceManager.getDefaultSharedPreferences(mContext).edit()
.putString(Constants.PREF_NEEDS_REBOOT_ID, id) .putString(Constants.PREF_NEEDS_REBOOT_ID, id)
.remove(PREF_INSTALLING_AB_ID) .remove(PREF_INSTALLING_AB_ID)

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2017-2022 The LineageOS Project * Copyright (C) 2017-2025 The LineageOS Project
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -522,7 +522,7 @@ public class UpdaterController {
} }
public boolean isVerifyingUpdate() { public boolean isVerifyingUpdate() {
return mVerifyingUpdates.size() > 0; return !mVerifyingUpdates.isEmpty();
} }
public boolean isVerifyingUpdate(String downloadId) { public boolean isVerifyingUpdate(String downloadId) {

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2017-2022 The LineageOS Project * Copyright (C) 2017-2025 The LineageOS Project
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -24,6 +24,7 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.pm.ServiceInfo;
import android.os.Binder; import android.os.Binder;
import android.os.Bundle; import android.os.Bundle;
import android.os.IBinder; import android.os.IBinder;
@@ -37,7 +38,6 @@ import androidx.preference.PreferenceManager;
import org.lineageos.updater.R; import org.lineageos.updater.R;
import org.lineageos.updater.UpdaterReceiver; import org.lineageos.updater.UpdaterReceiver;
import org.lineageos.updater.UpdatesActivity; import org.lineageos.updater.UpdatesActivity;
import org.lineageos.updater.misc.BuildInfoUtils;
import org.lineageos.updater.misc.Constants; import org.lineageos.updater.misc.Constants;
import org.lineageos.updater.misc.StringGenerator; import org.lineageos.updater.misc.StringGenerator;
import org.lineageos.updater.misc.Utils; import org.lineageos.updater.misc.Utils;
@@ -45,7 +45,6 @@ import org.lineageos.updater.model.Update;
import org.lineageos.updater.model.UpdateInfo; import org.lineageos.updater.model.UpdateInfo;
import org.lineageos.updater.model.UpdateStatus; import org.lineageos.updater.model.UpdateStatus;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.NumberFormat; import java.text.NumberFormat;
@@ -126,7 +125,7 @@ public class UpdaterService extends Service {
} else if (UpdaterController.ACTION_UPDATE_REMOVED.equals(intent.getAction())) { } else if (UpdaterController.ACTION_UPDATE_REMOVED.equals(intent.getAction())) {
final boolean isLocalUpdate = Update.LOCAL_ID.equals(downloadId); final boolean isLocalUpdate = Update.LOCAL_ID.equals(downloadId);
Bundle extras = mNotificationBuilder.getExtras(); Bundle extras = mNotificationBuilder.getExtras();
if (extras != null && !isLocalUpdate && downloadId.equals( if (!isLocalUpdate && downloadId != null && downloadId.equals(
extras.getString(UpdaterController.EXTRA_DOWNLOAD_ID))) { extras.getString(UpdaterController.EXTRA_DOWNLOAD_ID))) {
mNotificationBuilder.setExtras(null); mNotificationBuilder.setExtras(null);
UpdateInfo update = mUpdaterController.getUpdate(downloadId); UpdateInfo update = mUpdaterController.getUpdate(downloadId);
@@ -275,7 +274,8 @@ public class UpdaterService extends Service {
mNotificationBuilder.setTicker(text); mNotificationBuilder.setTicker(text);
mNotificationBuilder.setOngoing(true); mNotificationBuilder.setOngoing(true);
mNotificationBuilder.setAutoCancel(false); mNotificationBuilder.setAutoCancel(false);
startForeground(NOTIFICATION_ID, mNotificationBuilder.build()); startForeground(NOTIFICATION_ID, mNotificationBuilder.build(),
ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE);
mNotificationManager.notify(NOTIFICATION_ID, mNotificationBuilder.build()); mNotificationManager.notify(NOTIFICATION_ID, mNotificationBuilder.build());
break; break;
} }
@@ -390,7 +390,8 @@ public class UpdaterService extends Service {
mNotificationBuilder.setTicker(text); mNotificationBuilder.setTicker(text);
mNotificationBuilder.setOngoing(true); mNotificationBuilder.setOngoing(true);
mNotificationBuilder.setAutoCancel(false); mNotificationBuilder.setAutoCancel(false);
startForeground(NOTIFICATION_ID, mNotificationBuilder.build()); startForeground(NOTIFICATION_ID, mNotificationBuilder.build(),
ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE);
mNotificationManager.notify(NOTIFICATION_ID, mNotificationBuilder.build()); mNotificationManager.notify(NOTIFICATION_ID, mNotificationBuilder.build());
break; break;
} }

View File

@@ -282,7 +282,7 @@ public class HttpURLConnectionClient implements DownloadClient {
InputStream inputStream = mClient.getInputStream(); InputStream inputStream = mClient.getInputStream();
OutputStream outputStream = new FileOutputStream(mDestination, mResume) OutputStream outputStream = new FileOutputStream(mDestination, mResume)
) { ) {
mTotalBytes = mClient.getContentLength() + mTotalBytesRead; mTotalBytes = mClient.getContentLengthLong() + mTotalBytesRead;
byte[] b = new byte[8192]; byte[] b = new byte[8192];
int count; int count;
while (!isInterrupted() && (count = inputStream.read(b)) > 0) { while (!isInterrupted() && (count = inputStream.read(b)) > 0) {

View File

@@ -39,6 +39,7 @@ public final class Constants {
public static final String UNCRYPT_FILE_EXT = ".uncrypt"; public static final String UNCRYPT_FILE_EXT = ".uncrypt";
public static final String PROP_AB_DEVICE = "ro.build.ab_update"; public static final String PROP_AB_DEVICE = "ro.build.ab_update";
public static final String PROP_ALLOW_MAJOR_UPGRADES = "lineage.updater.allow_major_upgrades";
public static final String PROP_BUILD_DATE = "ro.build.date.utc"; public static final String PROP_BUILD_DATE = "ro.build.date.utc";
public static final String PROP_BUILD_VERSION = "ro.lineage.build.version"; public static final String PROP_BUILD_VERSION = "ro.lineage.build.version";
public static final String PROP_BUILD_VERSION_INCREMENTAL = "ro.build.version.incremental"; public static final String PROP_BUILD_VERSION_INCREMENTAL = "ro.build.version.incremental";
@@ -58,4 +59,5 @@ public final class Constants {
public static final String UPDATE_RECOVERY_PROPERTY = "persist.vendor.recovery_update"; public static final String UPDATE_RECOVERY_PROPERTY = "persist.vendor.recovery_update";
public static final String HAS_SEEN_INFO_DIALOG = "has_seen_info_dialog"; public static final String HAS_SEEN_INFO_DIALOG = "has_seen_info_dialog";
public static final String HAS_SEEN_WELCOME_MESSAGE = "has_seen_welcome_message";
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2017-2023 The LineageOS Project * Copyright (C) 2017-2025 The LineageOS Project
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -66,17 +66,6 @@ public class Utils {
return new File(context.getString(R.string.download_path)); return new File(context.getString(R.string.download_path));
} }
public static File getExportPath(Context context) {
File dir = new File(context.getExternalFilesDir(null),
context.getString(R.string.export_path));
if (!dir.isDirectory()) {
if (dir.exists() || !dir.mkdirs()) {
throw new RuntimeException("Could not create directory");
}
}
return dir;
}
public static File getCachedUpdateList(Context context) { public static File getCachedUpdateList(Context context) {
return new File(context.getCacheDir(), "updates.json"); return new File(context.getCacheDir(), "updates.json");
} }
@@ -112,11 +101,32 @@ public class Utils {
return true; return true;
} }
private static boolean compareVersions(String a, String b, boolean allowMajorUpgrades) {
try {
int majorA = Integer.parseInt(a.split("\\.")[0]);
int minorA = Integer.parseInt(a.split("\\.")[1]);
int majorB = Integer.parseInt(b.split("\\.")[0]);
int minorB = Integer.parseInt(b.split("\\.")[1]);
// Return early and allow if we allow major version upgrades
return (allowMajorUpgrades && majorA > majorB)
|| (majorA == majorB && minorA >= minorB);
} catch (ArrayIndexOutOfBoundsException | NumberFormatException e) {
return false;
}
}
public static boolean canInstall(UpdateBaseInfo update) { public static boolean canInstall(UpdateBaseInfo update) {
boolean allowMajorUpgrades = SystemProperties.getBoolean(
Constants.PROP_ALLOW_MAJOR_UPGRADES, false);
return (SystemProperties.getBoolean(Constants.PROP_UPDATER_ALLOW_DOWNGRADING, false) || return (SystemProperties.getBoolean(Constants.PROP_UPDATER_ALLOW_DOWNGRADING, false) ||
update.getTimestamp() > SystemProperties.getLong(Constants.PROP_BUILD_DATE, 0)) && update.getTimestamp() > SystemProperties.getLong(Constants.PROP_BUILD_DATE, 0)) &&
update.getVersion().equalsIgnoreCase( compareVersions(
SystemProperties.get(Constants.PROP_BUILD_VERSION)); update.getVersion(),
SystemProperties.get(Constants.PROP_BUILD_VERSION),
allowMajorUpgrades);
} }
public static List<UpdateInfo> parseJson(File file, boolean compatibleOnly) public static List<UpdateInfo> parseJson(File file, boolean compatibleOnly)
@@ -317,11 +327,12 @@ public class Utils {
} }
// Ideally the database is empty when we get here // Ideally the database is empty when we get here
UpdatesDbHelper dbHelper = new UpdatesDbHelper(context);
List<String> knownPaths = new ArrayList<>(); List<String> knownPaths = new ArrayList<>();
try (UpdatesDbHelper dbHelper = new UpdatesDbHelper(context)) {
for (UpdateInfo update : dbHelper.getUpdates()) { for (UpdateInfo update : dbHelper.getUpdates()) {
knownPaths.add(update.getFile().getAbsolutePath()); knownPaths.add(update.getFile().getAbsolutePath());
} }
}
for (File file : files) { for (File file : files) {
if (!knownPaths.contains(file.getAbsolutePath())) { if (!knownPaths.contains(file.getAbsolutePath())) {
Log.d(TAG, "Deleting " + file.getAbsolutePath()); Log.d(TAG, "Deleting " + file.getAbsolutePath());
@@ -413,15 +424,4 @@ public class Utils {
public static boolean isRecoveryUpdateExecPresent() { public static boolean isRecoveryUpdateExecPresent() {
return new File(Constants.UPDATE_RECOVERY_EXEC).exists(); return new File(Constants.UPDATE_RECOVERY_EXEC).exists();
} }
public static String getDisplayVersion(String version) {
float floatVersion = 0;
try {
floatVersion = Float.parseFloat(version);
} catch (NumberFormatException ignored) {
// ignore
}
// Lineage 20 and up should only be integer values (we don't have minor versions anymore)
return (floatVersion >= 20) ? String.valueOf((int)floatVersion) : version;
}
} }

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2025 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:padding="24dp">
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
app:indicatorColor="?android:attr/colorAccent"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="16dp"
android:text="@string/local_update_import_progress"
android:textColor="?android:attr/textColorPrimary"
android:textSize="16sp" />
</LinearLayout>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,13 +39,19 @@
<string name="dialog_prepare_zip_message">Tresnáu preliminar del anovamientu</string> <string name="dialog_prepare_zip_message">Tresnáu preliminar del anovamientu</string>
<string name="dialog_battery_low_title">Queda poca batería</string> <string name="dialog_battery_low_title">Queda poca batería</string>
<string name="dialog_battery_low_message_pct">El nivel de batería ye perbaxu, tien d\'haber polo menos un <xliff:g id="percent_discharging">%1$d</xliff:g>%% de batería pa siguir, <xliff:g id="percent_charging">%2$d</xliff:g>%% si ta en carga.</string> <string name="dialog_battery_low_message_pct">El nivel de batería ye perbaxu, tien d\'haber polo menos un <xliff:g id="percent_discharging">%1$d</xliff:g>%% de batería pa siguir, <xliff:g id="percent_charging">%2$d</xliff:g>%% si ta en carga.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Executa los comandos siguientes y volvi probar l\'anovamientu:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Nun se pue instalar l\'anovamientu con OverlayFS montáu</string>
<string name="reboot">Reaniciar</string> <string name="reboot">Reaniciar</string>
<string name="menu_refresh">Anovar</string> <string name="menu_refresh">Anovar</string>
<string name="menu_preferences">Preferencies</string> <string name="menu_preferences">Preferencies</string>
<string name="menu_auto_updates_check">Comprobación d\'anovamientos</string> <string name="menu_auto_updates_check">Busca d\'anovamientos</string>
<string name="menu_auto_updates_check_interval_daily">Caldía</string> <string name="menu_auto_updates_check_interval_daily">Diaria</string>
<string name="menu_auto_updates_check_interval_weekly">Selmanalmente</string> <string name="menu_auto_updates_check_interval_weekly">Selmanal</string>
<string name="menu_auto_updates_check_interval_monthly">Mensualmente</string> <string name="menu_auto_updates_check_interval_monthly">Mensual</string>
<string name="menu_auto_updates_check_interval_never">Enxamás</string> <string name="menu_auto_updates_check_interval_never">Enxamás</string>
<string name="menu_auto_delete_updates">Desaniciar los anovamientos al instalalos</string> <string name="menu_auto_delete_updates">Desaniciar los anovamientos al instalalos</string>
<string name="menu_delete_update">Desaniciar</string> <string name="menu_delete_update">Desaniciar</string>
@@ -106,7 +112,7 @@
<string name="update_over_metered_network_title">Alvertencia</string> <string name="update_over_metered_network_title">Alvertencia</string>
<string name="update_over_metered_network_message">Tas a piques de baxar un paquete d\'anovamientu pente una rede midida, lo que probablemente vaiga xenerar un usu altu de datos. ¿Quies siguir?</string> <string name="update_over_metered_network_message">Tas a piques de baxar un paquete d\'anovamientu pente una rede midida, lo que probablemente vaiga xenerar un usu altu de datos. ¿Quies siguir?</string>
<string name="checkbox_metered_network_warning">Nun volver amosar</string> <string name="checkbox_metered_network_warning">Nun volver amosar</string>
<string name="menu_metered_network_warning">Alvertencia pa redes midíes</string> <string name="menu_metered_network_warning">Alvertir al tar nuna rede midida</string>
<string name="blocked_update_dialog_title">Bloquióse l\'anovamientu</string> <string name="blocked_update_dialog_title">Bloquióse l\'anovamientu</string>
<string name="blocked_update_dialog_message">Esti anovamientu nun se pue instalar con «Anovador». Llei <xliff:g id="info_url">%1$s</xliff:g> pa consiguir más información.</string> <string name="blocked_update_dialog_message">Esti anovamientu nun se pue instalar con «Anovador». Llei <xliff:g id="info_url">%1$s</xliff:g> pa consiguir más información.</string>
<string name="export_channel_title">Esportación completada</string> <string name="export_channel_title">Esportación completada</string>
@@ -114,11 +120,14 @@
<string name="ongoing_channel_title">Descargues en cursu</string> <string name="ongoing_channel_title">Descargues en cursu</string>
<string name="update_failed_channel_title">Anovamientu fallíu</string> <string name="update_failed_channel_title">Anovamientu fallíu</string>
<string name="info_dialog_title">¿Sabíeslo?</string> <string name="info_dialog_title">¿Sabíeslo?</string>
<string name="info_dialog_message">Los anovamientos de LineageOS son paquetes d\'instalación completos. Esto significa que siempres pues instalar l\'últimu anovamientu, ¡magar que saltares dalgún intermediu!</string> <string name="info_dialog_message">Los anovamientos de LineageOS son paquetes d\'instalación completos. Esto significa que siempre pues instalar l\'últimu anovamientu, ¡magar que saltares dalgún intermediu!</string>
<string name="info_dialog_ok">¡Gracies!</string> <string name="info_dialog_ok">¡Gracies!</string>
<string name="local_update_import">Anovamientu llocal</string> <string name="local_update_import">Anovamientu llocal</string>
<string name="local_update_import_progress">Importando l\'anovamientu llocal\u2026</string> <string name="local_update_import_progress">Importando l\'anovamientu llocal\u2026</string>
<string name="local_update_import_success">Importóse «%1$s». ¿Quies instalar l\'anovamientu?</string> <string name="local_update_import_success">Importóse «%1$s». ¿Quies instalar l\'anovamientu?</string>
<string name="local_update_import_failure">Hebo un fallu al importar l\'anovamientu llocal</string>
<string name="local_update_import_install">Instalar</string> <string name="local_update_import_install">Instalar</string>
<string name="local_update_name">Anovamientu llocal</string> <string name="local_update_name">Anovamientu llocal</string>
<string name="welcome_title">Afáyate</string>
<string name="welcome_message">Decátate que cuando hai múltiples anovamientos disponibles nun ye necesario instalalos unu a unu, siempre pues instalar l\'últimu direutamente y desaniciar los antiguos pa lliberar espaciu d\'almacenamientu.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -38,7 +38,13 @@
<string name="preparing_ota_first_boot">İlk yükləmə üçün hazırlanır</string> <string name="preparing_ota_first_boot">İlk yükləmə üçün hazırlanır</string>
<string name="dialog_prepare_zip_message">Güncəlləməyə ilkin hazırlıq</string> <string name="dialog_prepare_zip_message">Güncəlləməyə ilkin hazırlıq</string>
<string name="dialog_battery_low_title">Zəif batareya</string> <string name="dialog_battery_low_title">Zəif batareya</string>
<string name="dialog_battery_low_message_pct">Batereya səviyyəsi çox aşağıdır, davam etmək üçün ən az batereya səviyyəsi <xliff:g id="percent_discharging">%1$d</xliff:g>%% olmalıdır, <xliff:g id="percent_charging">%2$d</xliff:g>%% enerji yığır.</string> <string name="dialog_battery_low_message_pct">Batareya səviyyəsi çox aşağıdır, davam etmək üçün ən az <xliff:g id="percent_discharging">%1$d</xliff:g>%% olmalıdır, <xliff:g id="percent_charging">%2$d</xliff:g>%% dolur.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Lütfən aşağıdakı əmrləri işə salın və yenidən güncəlləməyə çalışın:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">OverlayFS taxılı ikən güncəlləmə quraşdırıla bilmir</string>
<string name="reboot">Yenidən başlat</string> <string name="reboot">Yenidən başlat</string>
<string name="menu_refresh">Təzələ</string> <string name="menu_refresh">Təzələ</string>
<string name="menu_preferences">Tərcihlər</string> <string name="menu_preferences">Tərcihlər</string>
@@ -81,7 +87,7 @@
<string name="confirm_delete_dialog_title">Faylı sil</string> <string name="confirm_delete_dialog_title">Faylı sil</string>
<string name="confirm_delete_dialog_message">Seçilmiş güncəlləmə faylı silinsin?</string> <string name="confirm_delete_dialog_message">Seçilmiş güncəlləmə faylı silinsin?</string>
<string name="apply_update_dialog_title">Güncəlləməni tətbiq et</string> <string name="apply_update_dialog_title">Güncəlləməni tətbiq et</string>
<string name="apply_update_dialog_message"><xliff:g id="update_name">%1$s</xliff:g> quraşdırırsınız.\n\n<xliff:g id="ok">%2$s</xliff:g> bassanız, cihaz yeniləməni quraşdırmaq üçün geri qaytarma rejimində yenidən başlayacaq.\n\nQeyd: Bu özəlliyin uyğun bir Geri qaytarma mühitinə ehtiyacı var və ya yeniləmələr əllə quraşdırılmalıdır.</string> <string name="apply_update_dialog_message"><xliff:g id="update_name">%1$s</xliff:g> quraşdırırsınız.\n\n<xliff:g id="ok">%2$s</xliff:g> bassanız, cihaz güncəlləməni quraşdırmaq üçün geri qaytarma rejimində yenidən başlayacaq.\n\nQeyd: Bu özəlliyin uyumlu bir Geri qaytarma mühitinə ehtiyacı var və ya güncəlləmələr əllə quraşdırılmalıdır.</string>
<string name="apply_update_dialog_message_ab"><xliff:g id="update_name">%1$s</xliff:g> quraşdırırsınız.\n\n<xliff:g id="ok">%2$s</xliff:g> düyməsinə bassanız, cihaz arxaplanda quraşdırılmağa başlıyacaq.\n\nƏməliyyat bitəndə, yenidən başladılmalıdır.</string> <string name="apply_update_dialog_message_ab"><xliff:g id="update_name">%1$s</xliff:g> quraşdırırsınız.\n\n<xliff:g id="ok">%2$s</xliff:g> düyməsinə bassanız, cihaz arxaplanda quraşdırılmağa başlıyacaq.\n\nƏməliyyat bitəndə, yenidən başladılmalıdır.</string>
<string name="cancel_installation_dialog_message">Quraşdırmadan imtina edilsin?</string> <string name="cancel_installation_dialog_message">Quraşdırmadan imtina edilsin?</string>
<string name="label_download_url">Endirmə bağlantısı</string> <string name="label_download_url">Endirmə bağlantısı</string>
@@ -114,7 +120,7 @@
<string name="ongoing_channel_title">Davam edən endirmələr</string> <string name="ongoing_channel_title">Davam edən endirmələr</string>
<string name="update_failed_channel_title">Güncəlləmə uğursuz oldu</string> <string name="update_failed_channel_title">Güncəlləmə uğursuz oldu</string>
<string name="info_dialog_title">Bilirdiniz?</string> <string name="info_dialog_title">Bilirdiniz?</string>
<string name="info_dialog_message">LineageOS yeniləmələri tam quraşdırma paketləridir. Yəni, yeniləməni ötürsəniz belə, hər zaman yalnız son yeniləməni quraşdıra bilərsiniz!</string> <string name="info_dialog_message">LineageOS güncəlləmələri tam quraşdırma paketləridir. Yəni, güncəlləməni ötürsəniz belə, hər zaman yalnız son güncəlləməni quraşdıra bilərsiniz!</string>
<string name="info_dialog_ok">Məlumat üçün təşəkkürlər!</string> <string name="info_dialog_ok">Məlumat üçün təşəkkürlər!</string>
<string name="local_update_import">Yerli güncəlləmə</string> <string name="local_update_import">Yerli güncəlləmə</string>
<string name="local_update_import_progress">Yerli güncəlləmə daxilə köçürülür\u2026</string> <string name="local_update_import_progress">Yerli güncəlləmə daxilə köçürülür\u2026</string>
@@ -122,4 +128,6 @@
<string name="local_update_import_failure">Yerli güncəlləmə daxilə köçürülmədi</string> <string name="local_update_import_failure">Yerli güncəlləmə daxilə köçürülmədi</string>
<string name="local_update_import_install">Quraşdır</string> <string name="local_update_import_install">Quraşdır</string>
<string name="local_update_name">Yerli güncəlləmə</string> <string name="local_update_name">Yerli güncəlləmə</string>
<string name="welcome_title">Xoş gəlmisiniz</string>
<string name="welcome_message">Lütfən yadda saxlayın ki, bir neçə güncəlləmə mövcud olduqda, bunları tək-tək güncəlləməyə ehtiyac yoxdur. Həmişə birbaşa ən son versiyanı quraşdıra, daha sonra anbar sahəsini boşaltmaq üçün köhnə güncəlləmələri əminliklə silə bilərsiniz.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -24,13 +24,13 @@
<string name="download_paused_error_notification">Грешка при изтегляне</string> <string name="download_paused_error_notification">Грешка при изтегляне</string>
<string name="download_completed_notification">Изтеглянето приключи</string> <string name="download_completed_notification">Изтеглянето приключи</string>
<string name="download_starting_notification">Започни сваляне</string> <string name="download_starting_notification">Започни сваляне</string>
<string name="update_failed_notification">Актуализацията прекратена</string> <string name="update_failed_notification">Актуализацията е неуспешна</string>
<string name="installation_suspended_notification">Инсталацията е прекратена</string> <string name="installation_suspended_notification">Инсталацията е прекратена</string>
<string name="new_updates_found_title">Нови актуализации</string> <string name="new_updates_found_title">Нови актуализации</string>
<string name="text_download_speed">%1$s, %2$s/s</string> <string name="text_download_speed">%1$s, %2$s/s</string>
<string name="pause_button">Пауза</string> <string name="pause_button">Пауза</string>
<string name="resume_button">Възобнови</string> <string name="resume_button">Възобнови</string>
<string name="suspend_button">Прекратено</string> <string name="suspend_button">Прекрати</string>
<string name="installing_update">Инсталиране на пакета за актуализация</string> <string name="installing_update">Инсталиране на пакета за актуализация</string>
<string name="installing_update_error">Грешка при инсталиране</string> <string name="installing_update_error">Грешка при инсталиране</string>
<string name="installing_update_finished">Актуализацията е инсталирана</string> <string name="installing_update_finished">Актуализацията е инсталирана</string>
@@ -42,7 +42,7 @@
<string name="reboot">Рестартиране</string> <string name="reboot">Рестартиране</string>
<string name="menu_refresh">Опресняване</string> <string name="menu_refresh">Опресняване</string>
<string name="menu_preferences">Настройки</string> <string name="menu_preferences">Настройки</string>
<string name="menu_auto_updates_check">Автоматична проверка за актуализациите</string> <string name="menu_auto_updates_check">Автоматична проверка за актуализации</string>
<string name="menu_auto_updates_check_interval_daily">Ежедневно</string> <string name="menu_auto_updates_check_interval_daily">Ежедневно</string>
<string name="menu_auto_updates_check_interval_weekly">Ежеседмично</string> <string name="menu_auto_updates_check_interval_weekly">Ежеседмично</string>
<string name="menu_auto_updates_check_interval_monthly">Ежемесечно</string> <string name="menu_auto_updates_check_interval_monthly">Ежемесечно</string>
@@ -106,4 +106,6 @@
<string name="new_updates_channel_title">Нови актуализации</string> <string name="new_updates_channel_title">Нови актуализации</string>
<string name="ongoing_channel_title">Текущи изтегляния</string> <string name="ongoing_channel_title">Текущи изтегляния</string>
<string name="update_failed_channel_title">Актуализацията прекратена</string> <string name="update_failed_channel_title">Актуализацията прекратена</string>
<string name="welcome_title">Добре дошли</string>
<string name="welcome_message">Моля, имайте предвид, че когато са налични множество актуализации, няма нужда да инсталирате всяка една, а само най-скорошната и след това да можете да триете стари актуализации, за да пестите място</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Preparació preliminar de l\'actualització</string> <string name="dialog_prepare_zip_message">Preparació preliminar de l\'actualització</string>
<string name="dialog_battery_low_title">Bateria baixa</string> <string name="dialog_battery_low_title">Bateria baixa</string>
<string name="dialog_battery_low_message_pct">El nivell de la bateria és massa baix, necessiteu com a mínim <xliff:g id="percent_discharging">%1$d</xliff:g>%% de bateria per continuar, <xliff:g id="percent_charging">%2$d</xliff:g>%% si el dispositiu s\'està carregant.</string> <string name="dialog_battery_low_message_pct">El nivell de la bateria és massa baix, necessiteu com a mínim <xliff:g id="percent_discharging">%1$d</xliff:g>%% de bateria per continuar, <xliff:g id="percent_charging">%2$d</xliff:g>%% si el dispositiu s\'està carregant.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Executeu les ordres següents i torneu a provar l\'actualització:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">No es pot instal·lar l\'actualització amb l\'OverlayFS muntat</string>
<string name="reboot">Reinicia</string> <string name="reboot">Reinicia</string>
<string name="menu_refresh">Recarrega</string> <string name="menu_refresh">Recarrega</string>
<string name="menu_preferences">Preferències</string> <string name="menu_preferences">Preferències</string>
@@ -122,4 +128,6 @@
<string name="local_update_import_failure">No s\'ha pogut importar l\'actualització local</string> <string name="local_update_import_failure">No s\'ha pogut importar l\'actualització local</string>
<string name="local_update_import_install">Instal·la</string> <string name="local_update_import_install">Instal·la</string>
<string name="local_update_name">Actualització local</string> <string name="local_update_name">Actualització local</string>
<string name="welcome_title">Us donem la benvinguda</string>
<string name="welcome_message">Tingueu en compte que quan hi ha diverses actualitzacions disponibles, no cal instal·lar actualització a actualització, sempre podeu instal·lar l\'última directament i a continuació, suprimir les actualitzacions antigues de manera segura per alliberar espai.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Update wird vorbereitet</string> <string name="dialog_prepare_zip_message">Update wird vorbereitet</string>
<string name="dialog_battery_low_title">Niedriger Akkustand</string> <string name="dialog_battery_low_title">Niedriger Akkustand</string>
<string name="dialog_battery_low_message_pct">Dein Akkustand ist zu niedrig. Es werden mindestens <xliff:g id="percent_discharging">%1$d</xliff:g>%% Restkapazität (oder <xliff:g id="percent_charging">%2$d</xliff:g>%% mit angeschlossenem Ladegerät) benötigt, um fortzufahren.</string> <string name="dialog_battery_low_message_pct">Dein Akkustand ist zu niedrig. Es werden mindestens <xliff:g id="percent_discharging">%1$d</xliff:g>%% Restkapazität (oder <xliff:g id="percent_charging">%2$d</xliff:g>%% mit angeschlossenem Ladegerät) benötigt, um fortzufahren.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Bitte führe die folgenden Befehle aus und versuche anschließend das Update erneut durchzuführen:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Update kann nicht installiert werden, wenn OverlayFS eingebunden ist</string>
<string name="reboot">Neustart</string> <string name="reboot">Neustart</string>
<string name="menu_refresh">Aktualisieren</string> <string name="menu_refresh">Aktualisieren</string>
<string name="menu_preferences">Einstellungen</string> <string name="menu_preferences">Einstellungen</string>
@@ -106,7 +112,7 @@
<string name="update_over_metered_network_title">Achtung</string> <string name="update_over_metered_network_title">Achtung</string>
<string name="update_over_metered_network_message">Du bist dabei ein Software-Update über ein getaktetes Netzwerk herunterzuladen, was zu einem hohen Datenverbrauch führen kann. Möchtest du fortfahren?</string> <string name="update_over_metered_network_message">Du bist dabei ein Software-Update über ein getaktetes Netzwerk herunterzuladen, was zu einem hohen Datenverbrauch führen kann. Möchtest du fortfahren?</string>
<string name="checkbox_metered_network_warning">Nicht wieder anzeigen</string> <string name="checkbox_metered_network_warning">Nicht wieder anzeigen</string>
<string name="menu_metered_network_warning">Achtung getaktetes Netzwerk</string> <string name="menu_metered_network_warning">Warnen bei getakteter Verbindung</string>
<string name="blocked_update_dialog_title">Update blockiert</string> <string name="blocked_update_dialog_title">Update blockiert</string>
<string name="blocked_update_dialog_message">Dieses Update kann mit der Updater-App nicht installiert werden. Für weitere Informationen lies bitte <xliff:g id="info_url">%1$s </xliff:g>.</string> <string name="blocked_update_dialog_message">Dieses Update kann mit der Updater-App nicht installiert werden. Für weitere Informationen lies bitte <xliff:g id="info_url">%1$s </xliff:g>.</string>
<string name="export_channel_title">Export abgeschlossen</string> <string name="export_channel_title">Export abgeschlossen</string>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Προκαταρκτική προετοιμασία ενημέρωσης</string> <string name="dialog_prepare_zip_message">Προκαταρκτική προετοιμασία ενημέρωσης</string>
<string name="dialog_battery_low_title">Χαμηλή μπαταρία</string> <string name="dialog_battery_low_title">Χαμηλή μπαταρία</string>
<string name="dialog_battery_low_message_pct">Η στάθμη της μπαταρίας είναι πολύ χαμηλή, χρειάζεστε τουλάχιστον <xliff:g id="percent_discharging">%1$d</xliff:g>%% της μπαταρίας για να συνεχίσετε ή <xliff:g id="percent_charging">%2$d</xliff:g>%% κατά την φόρτιση.</string> <string name="dialog_battery_low_message_pct">Η στάθμη της μπαταρίας είναι πολύ χαμηλή, χρειάζεστε τουλάχιστον <xliff:g id="percent_discharging">%1$d</xliff:g>%% της μπαταρίας για να συνεχίσετε ή <xliff:g id="percent_charging">%2$d</xliff:g>%% κατά την φόρτιση.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Παρακαλώ εκτελέστε τις ακόλουθες εντολές και δοκιμάστε ξανά την ενημέρωση:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Αδυναμία εγκατάστασης ενημέρωσης με το OverlayFS προσαρτημένο</string>
<string name="reboot">Επανεκκίνηση</string> <string name="reboot">Επανεκκίνηση</string>
<string name="menu_refresh">Ανανέωση</string> <string name="menu_refresh">Ανανέωση</string>
<string name="menu_preferences">Προτιμήσεις</string> <string name="menu_preferences">Προτιμήσεις</string>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Preliminary update preparation</string> <string name="dialog_prepare_zip_message">Preliminary update preparation</string>
<string name="dialog_battery_low_title">Low battery</string> <string name="dialog_battery_low_title">Low battery</string>
<string name="dialog_battery_low_message_pct">The battery level is too low, you need at least <xliff:g id="percent_discharging">%1$d</xliff:g>%% of the battery to continue, <xliff:g id="percent_charging">%2$d</xliff:g>%% if charging.</string> <string name="dialog_battery_low_message_pct">The battery level is too low, you need at least <xliff:g id="percent_discharging">%1$d</xliff:g>%% of the battery to continue, <xliff:g id="percent_charging">%2$d</xliff:g>%% if charging.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Please run the following commands and retry the update:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Cannot install update with OverlayFS mounted</string>
<string name="reboot">Reboot</string> <string name="reboot">Reboot</string>
<string name="menu_refresh">Refresh</string> <string name="menu_refresh">Refresh</string>
<string name="menu_preferences">Preferences</string> <string name="menu_preferences">Preferences</string>
@@ -122,4 +128,6 @@
<string name="local_update_import_failure">Failed to import local update</string> <string name="local_update_import_failure">Failed to import local update</string>
<string name="local_update_import_install">Install</string> <string name="local_update_import_install">Install</string>
<string name="local_update_name">Local update</string> <string name="local_update_name">Local update</string>
<string name="welcome_title">Welcome</string>
<string name="welcome_message">Please note that when multiple updates are available, there is no need to go update-by-update, you can always install the latest one directly, and then safely delete old updates to free up storage space.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Preliminary update preparation</string> <string name="dialog_prepare_zip_message">Preliminary update preparation</string>
<string name="dialog_battery_low_title">Low battery</string> <string name="dialog_battery_low_title">Low battery</string>
<string name="dialog_battery_low_message_pct">The battery level is too low, you need at least <xliff:g id="percent_discharging">%1$d</xliff:g>%% of the battery to continue, <xliff:g id="percent_charging">%2$d</xliff:g>%% if charging.</string> <string name="dialog_battery_low_message_pct">The battery level is too low, you need at least <xliff:g id="percent_discharging">%1$d</xliff:g>%% of the battery to continue, <xliff:g id="percent_charging">%2$d</xliff:g>%% if charging.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Please run the following commands and retry the update:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Cannot install update with OverlayFS mounted</string>
<string name="reboot">Reboot</string> <string name="reboot">Reboot</string>
<string name="menu_refresh">Refresh</string> <string name="menu_refresh">Refresh</string>
<string name="menu_preferences">Preferences</string> <string name="menu_preferences">Preferences</string>
@@ -122,4 +128,6 @@
<string name="local_update_import_failure">Failed to import local update</string> <string name="local_update_import_failure">Failed to import local update</string>
<string name="local_update_import_install">Install</string> <string name="local_update_import_install">Install</string>
<string name="local_update_name">Local update</string> <string name="local_update_name">Local update</string>
<string name="welcome_title">Welcome</string>
<string name="welcome_message">Please note that when multiple updates are available, there is no need to go update-by-update, you can always install the latest one directly, and then safely delete old updates to free up storage space.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Preliminary update preparation</string> <string name="dialog_prepare_zip_message">Preliminary update preparation</string>
<string name="dialog_battery_low_title">Low battery</string> <string name="dialog_battery_low_title">Low battery</string>
<string name="dialog_battery_low_message_pct">The battery level is too low, you need at least <xliff:g id="percent_discharging">%1$d</xliff:g>%% of the battery to continue, <xliff:g id="percent_charging">%2$d</xliff:g>%% if charging.</string> <string name="dialog_battery_low_message_pct">The battery level is too low, you need at least <xliff:g id="percent_discharging">%1$d</xliff:g>%% of the battery to continue, <xliff:g id="percent_charging">%2$d</xliff:g>%% if charging.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Please run the following commands and retry the update:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Cannot install update with OverlayFS mounted</string>
<string name="reboot">Reboot</string> <string name="reboot">Reboot</string>
<string name="menu_refresh">Refresh</string> <string name="menu_refresh">Refresh</string>
<string name="menu_preferences">Preferences</string> <string name="menu_preferences">Preferences</string>
@@ -122,4 +128,6 @@
<string name="local_update_import_failure">Failed to import local update</string> <string name="local_update_import_failure">Failed to import local update</string>
<string name="local_update_import_install">Install</string> <string name="local_update_import_install">Install</string>
<string name="local_update_name">Local update</string> <string name="local_update_name">Local update</string>
<string name="welcome_title">Welcome</string>
<string name="welcome_message">Please note that when multiple updates are available, there is no need to go update-by-update, you can always install the latest one directly, and then safely delete old updates to free up storage space.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Preliminary update preparation</string> <string name="dialog_prepare_zip_message">Preliminary update preparation</string>
<string name="dialog_battery_low_title">Low battery</string> <string name="dialog_battery_low_title">Low battery</string>
<string name="dialog_battery_low_message_pct">The battery level is too low, you need at least <xliff:g id="percent_discharging">%1$d</xliff:g>%% of the battery to continue, <xliff:g id="percent_charging">%2$d</xliff:g>%% if charging.</string> <string name="dialog_battery_low_message_pct">The battery level is too low, you need at least <xliff:g id="percent_discharging">%1$d</xliff:g>%% of the battery to continue, <xliff:g id="percent_charging">%2$d</xliff:g>%% if charging.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Please run the following commands and retry the update:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Cannot install update with OverlayFS mounted</string>
<string name="reboot">Reboot</string> <string name="reboot">Reboot</string>
<string name="menu_refresh">Refresh</string> <string name="menu_refresh">Refresh</string>
<string name="menu_preferences">Preferences</string> <string name="menu_preferences">Preferences</string>
@@ -122,4 +128,6 @@
<string name="local_update_import_failure">Failed to import local update</string> <string name="local_update_import_failure">Failed to import local update</string>
<string name="local_update_import_install">Install</string> <string name="local_update_import_install">Install</string>
<string name="local_update_name">Local update</string> <string name="local_update_name">Local update</string>
<string name="welcome_title">Welcome</string>
<string name="welcome_message">Please note that when multiple updates are available, there is no need to go update-by-update, you can always install the latest one directly, and then safely delete old updates to free up storage space.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -24,10 +24,13 @@
<string name="download_paused_error_notification">Error de descarga</string> <string name="download_paused_error_notification">Error de descarga</string>
<string name="download_completed_notification">Descarga completada</string> <string name="download_completed_notification">Descarga completada</string>
<string name="download_starting_notification">Iniciando descarga</string> <string name="download_starting_notification">Iniciando descarga</string>
<string name="update_failed_notification">Se produjo un error en la actualización</string>
<string name="installation_suspended_notification">Instalación suspendida</string>
<string name="new_updates_found_title">Nuevas actualizaciones</string> <string name="new_updates_found_title">Nuevas actualizaciones</string>
<string name="text_download_speed">%1$s, %2$s/s</string> <string name="text_download_speed">%1$s, %2$s/s</string>
<string name="pause_button">Pausar</string> <string name="pause_button">Pausar</string>
<string name="resume_button">Reanudar</string> <string name="resume_button">Reanudar</string>
<string name="suspend_button">Suspender</string>
<string name="installing_update">Instalando paquete de actualización</string> <string name="installing_update">Instalando paquete de actualización</string>
<string name="installing_update_error">Error de instalación</string> <string name="installing_update_error">Error de instalación</string>
<string name="installing_update_finished">Actualización instalada</string> <string name="installing_update_finished">Actualización instalada</string>
@@ -35,28 +38,43 @@
<string name="preparing_ota_first_boot">Preparando para el primer arranque</string> <string name="preparing_ota_first_boot">Preparando para el primer arranque</string>
<string name="dialog_prepare_zip_message">Preparación preliminar de la actualización</string> <string name="dialog_prepare_zip_message">Preparación preliminar de la actualización</string>
<string name="dialog_battery_low_title">Batería baja</string> <string name="dialog_battery_low_title">Batería baja</string>
<string name="dialog_battery_low_message_pct">El nivel de la batería es demasiado bajo, se necesita al menos <xliff:g id="percent_discharging">%1$d</xliff:g>%% de batería para continuar, <xliff:g id="percent_charging">%2$d</xliff:g>%% si el dispositivo se está cargando.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Por favor, ejecuta los siguientes comandos y vuelve a intentar la actualización:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">No se puede instalar la actualización con OverlayFS montado</string>
<string name="reboot">Reiniciar</string> <string name="reboot">Reiniciar</string>
<string name="menu_refresh">Actualizar</string> <string name="menu_refresh">Actualizar</string>
<string name="menu_preferences">Preferencias</string> <string name="menu_preferences">Preferencias</string>
<string name="menu_auto_updates_check">Comprobación de actualizaciones automática</string> <string name="menu_auto_updates_check">Comprobación automática de actualizaciones</string>
<string name="menu_auto_delete_updates">Borrar actualizaciones luego de instalar</string> <string name="menu_auto_updates_check_interval_daily">Diaria</string>
<string name="menu_auto_updates_check_interval_weekly">Semanal</string>
<string name="menu_auto_updates_check_interval_monthly">Mensual</string>
<string name="menu_auto_updates_check_interval_never">Nunca</string>
<string name="menu_auto_delete_updates">Borrar las actualizaciones una vez instaladas</string>
<string name="menu_delete_update">Borrar</string> <string name="menu_delete_update">Borrar</string>
<string name="menu_copy_url">Copiar URL</string> <string name="menu_copy_url">Copiar URL</string>
<string name="menu_export_update">Exportar actualización</string> <string name="menu_export_update">Exportar actualización</string>
<string name="menu_show_changelog">Mostrar registro de cambios</string> <string name="menu_show_changelog">Mostrar registro de cambios</string>
<string name="toast_forced_update_recovery">Es imposible desactivar en este dispositivo las actualizaciones del Modo de Recuperación («Recovery») de Lineage.</string> <string name="menu_ab_perf_mode">Priorizar el proceso de actualización</string>
<string name="menu_update_recovery">Actualizar partición de recuperación (recovery)</string>
<string name="toast_forced_update_recovery">Es imposible desactivar las actualizaciones del modo de recuperación («Recovery») de Lineage en este dispositivo.</string>
<string name="snack_updates_found">Se encontraron nuevas actualizaciones</string> <string name="snack_updates_found">Se encontraron nuevas actualizaciones</string>
<string name="snack_no_updates_found">No se encontraron nuevas actualizaciones</string> <string name="snack_no_updates_found">No se encontraron nuevas actualizaciones</string>
<string name="snack_updates_check_failed">Error en la comprobación de actualizaciones. Por favor, verifique la conexión a Internet e inténtalo nuevamente.</string> <string name="snack_updates_check_failed">Error en la comprobación de actualizaciones. Por favor, verifica la conexión a Internet e inténtalo más tarde.</string>
<string name="snack_download_failed">Descarga fallida. Compruebe la conexión a Internet e inténtelo nuevamente.</string> <string name="snack_download_failed">Descarga fallida. Compruebe la conexión a Internet e inténtelo nuevamente.</string>
<string name="snack_download_verification_failed">La verificación de la actualización falló.</string> <string name="snack_download_verification_failed">Ha fallado la verificación de la actualización.</string>
<string name="snack_download_verified">Descarga completada.</string> <string name="snack_download_verified">Descarga completada.</string>
<string name="snack_update_not_installable">Esta actualización no puede instalarse encima de la versión actual.</string> <string name="snack_update_not_installable">Esta actualización no puede instalarse sobre la versión actual.</string>
<string name="header_title_text">LineageOS\n%1$s</string> <string name="header_title_text">LineageOS\n%1$s</string>
<string name="header_android_version">Android <xliff:g id="version" example="7.1.2">%1$s</xliff:g></string> <string name="header_android_version">Android <xliff:g id="version" example="7.1.2">%1$s</xliff:g></string>
<string name="header_last_updates_check">Última comprobación: <xliff:g id="date" example="1 January 1970">%1$s</xliff:g> (<xliff:g id="time" example="01:23">%2$s</xliff:g>)</string> <string name="header_last_updates_check">Última comprobación: <xliff:g id="date" example="1 January 1970">%1$s</xliff:g> (<xliff:g id="time" example="01:23">%2$s</xliff:g>)</string>
<string name="list_build_version">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g></string> <string name="list_build_version">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g></string>
<string name="list_build_version_date">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g> - <xliff:g id="date" example="July 11, 2017">%2$s</xliff:g></string> <string name="list_build_version_date">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g> - <xliff:g id="date" example="July 11, 2017">%2$s</xliff:g></string>
<string name="list_download_progress_newer"><xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g> de <xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g></string>
<string name="list_download_progress_eta_newer"><xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g> de <xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g> (<xliff:g id="eta" example="3 minutes left">%3$s</xliff:g>)</string>
<string name="list_verifying_update">Verificando actualización</string> <string name="list_verifying_update">Verificando actualización</string>
<string name="list_no_updates">Sin nuevas actualizaciones disponibles. Para comprobar manualmente, pulsa el botón «Actualizar».</string> <string name="list_no_updates">Sin nuevas actualizaciones disponibles. Para comprobar manualmente, pulsa el botón «Actualizar».</string>
<string name="action_download">Descargar</string> <string name="action_download">Descargar</string>
@@ -69,6 +87,8 @@
<string name="confirm_delete_dialog_title">Borrar archivo</string> <string name="confirm_delete_dialog_title">Borrar archivo</string>
<string name="confirm_delete_dialog_message">¿Borrar el archivo de actualización seleccionado?</string> <string name="confirm_delete_dialog_message">¿Borrar el archivo de actualización seleccionado?</string>
<string name="apply_update_dialog_title">Aplicar actualización</string> <string name="apply_update_dialog_title">Aplicar actualización</string>
<string name="apply_update_dialog_message">Estás a punto de instalar <xliff:g id="update_name">%1$s</xliff:g>.\n\nSi pulsas <xliff:g id="ok">%2$s</xliff:g>, el dispositivo se reiniciará en modo de recuperación para instalar la actualización.\n\nNota: esta característica requiere una partición de recuperación compatible o las actualizaciones tendrán que ser instaladas manualmente.</string>
<string name="apply_update_dialog_message_ab">Actualizarás a <xliff:g id="filename">%1$s</xliff:g>.\n\nAl pulsar en <xliff:g id="ok">%2$s</xliff:g>, el dispositivo comenzará a instalar en segundo plano.\n\nUna vez terminado el proceso, se te pedirá que reinicies.</string>
<string name="cancel_installation_dialog_message">¿Cancelar la instalación?</string> <string name="cancel_installation_dialog_message">¿Cancelar la instalación?</string>
<string name="label_download_url">URL de descarga</string> <string name="label_download_url">URL de descarga</string>
<string name="toast_download_url_copied">URL copiada</string> <string name="toast_download_url_copied">URL copiada</string>
@@ -76,19 +96,38 @@
<string name="notification_export_success">Actualización exportada</string> <string name="notification_export_success">Actualización exportada</string>
<string name="notification_export_fail">Error de exportación</string> <string name="notification_export_fail">Error de exportación</string>
<string name="toast_already_exporting">Ya se está exportando una actualización</string> <string name="toast_already_exporting">Ya se está exportando una actualización</string>
<string name="toast_export_started">Exportación iniciada</string>
<plurals name="eta_seconds"> <plurals name="eta_seconds">
<item quantity="one">Falta 1 segundo</item> <item quantity="one">Queda 1 segundo</item>
<item quantity="other">Faltan <xliff:g id="count">%d</xliff:g> segundos</item> <item quantity="other">Quedan <xliff:g id="count">%d</xliff:g> segundos</item>
</plurals> </plurals>
<plurals name="eta_minutes"> <plurals name="eta_minutes">
<item quantity="one">Falta 1 minuto</item> <item quantity="one">Queda 1 minuto</item>
<item quantity="other">Faltan <xliff:g id="count">%d</xliff:g> minutos</item> <item quantity="other">Quedan <xliff:g id="count">%d</xliff:g> minutos</item>
</plurals>
<plurals name="eta_hours">
<item quantity="one">Queda 1 hora</item>
<item quantity="other"><xliff:g id="count">%d</xliff:g> horas restantes</item>
</plurals> </plurals>
<string name="update_over_metered_network_title">Advertencia</string> <string name="update_over_metered_network_title">Advertencia</string>
<string name="update_over_metered_network_message">Estás a punto de descargar un paquete de actualización utilizando datos móviles, lo que probablemente va a causar un alto consumo de datos. ¿Deseas continuar?</string>
<string name="checkbox_metered_network_warning">No mostrar de nuevo</string> <string name="checkbox_metered_network_warning">No mostrar de nuevo</string>
<string name="menu_metered_network_warning">Aviso de consumo de datos</string>
<string name="blocked_update_dialog_title">Actualización bloqueada</string> <string name="blocked_update_dialog_title">Actualización bloqueada</string>
<string name="blocked_update_dialog_message">Esta actualización no puede instalarse usando la aplicación «Actualizador». Lea <xliff:g id="info_url">%1$s</xliff:g> para más información.</string> <string name="blocked_update_dialog_message">Esta actualización no puede instalarse usando la aplicación «Actualizador». Lee <xliff:g id="info_url">%1$s</xliff:g> para más información.</string>
<string name="export_channel_title">Exportación finalizada</string> <string name="export_channel_title">Exportación finalizada</string>
<string name="new_updates_channel_title">Nuevas actualizaciones</string> <string name="new_updates_channel_title">Nuevas actualizaciones</string>
<string name="ongoing_channel_title">Descargas en curso</string> <string name="ongoing_channel_title">Descargas en curso</string>
<string name="update_failed_channel_title">Se produjo un error en la actualización</string>
<string name="info_dialog_title">¿Sabías que...</string>
<string name="info_dialog_message">Las actualizaciones de LineageOS son paquetes de instalación completos, lo que significa que siempre puedes instalar la última actualización, ¡incluso si has saltado algunas de las intermedias!</string>
<string name="info_dialog_ok">¡Gracias por la información!</string>
<string name="local_update_import">Actualización local</string>
<string name="local_update_import_progress">Importando actualización local\u2026</string>
<string name="local_update_import_success">%1$s ha sido importado. ¿Deseas instalarlo?</string>
<string name="local_update_import_failure">Error al importar actualización local</string>
<string name="local_update_import_install">Instalar</string>
<string name="local_update_name">Actualización local</string>
<string name="welcome_title">Te damos la bienvenida</string>
<string name="welcome_message">Ten en cuenta que cuando hay varias actualizaciones disponibles, no es necesario actualizar una tras otra, siempre puedes instalar la más reciente directamente y luego eliminar de forma segura las actualizaciones antiguas para liberar espacio de almacenamiento.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -18,6 +18,7 @@
<string name="app_name">Uuendaja</string> <string name="app_name">Uuendaja</string>
<string name="display_name">Uuendaja</string> <string name="display_name">Uuendaja</string>
<string name="installation_suspended_notification">Installimine peatati</string> <string name="installation_suspended_notification">Installimine peatati</string>
<string name="text_download_speed">%1$s, %2$s/s</string>
<string name="suspend_button">Peata</string> <string name="suspend_button">Peata</string>
<string name="dialog_battery_low_title">Madal akutase</string> <string name="dialog_battery_low_title">Madal akutase</string>
<string name="dialog_battery_low_message_pct">Akutase on liiga madal, jätkamiseks on vaja akut vähemalt <xliff:g id="percent_discharging">%1$d</xliff:g>%%, laadimise korral <xliff:g id="percent_charging">%2$d</xliff:g>%%.</string> <string name="dialog_battery_low_message_pct">Akutase on liiga madal, jätkamiseks on vaja akut vähemalt <xliff:g id="percent_discharging">%1$d</xliff:g>%%, laadimise korral <xliff:g id="percent_charging">%2$d</xliff:g>%%.</string>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -0,0 +1,133 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name">به‌روز کننده</string>
<string name="display_name">به‌روز کننده</string>
<string name="verification_failed_notification">تایید با خطا مواجه شد</string>
<string name="verifying_download_notification">در حال تایید به‌روزرسانی</string>
<string name="downloading_notification">در حال بارگیری</string>
<string name="download_paused_notification">بارگیری متوقف شد</string>
<string name="download_paused_error_notification">خطای بارگیری</string>
<string name="download_completed_notification">بارگیری کامل شد</string>
<string name="download_starting_notification">در حال آغاز بارگیری</string>
<string name="update_failed_notification">به‌روز رسانی شکست خورد</string>
<string name="installation_suspended_notification">فرآیند نصب متوقف شد</string>
<string name="new_updates_found_title">به‌روز رسانی جدید</string>
<string name="text_download_speed">%1$s، %2$s/ث</string>
<string name="pause_button">مکث</string>
<string name="resume_button">ادامه</string>
<string name="suspend_button">معلق</string>
<string name="installing_update">در حال نصب بسته به روز</string>
<string name="installing_update_error">خطا در نصب</string>
<string name="installing_update_finished">به‌روزرسانی نصب شد</string>
<string name="finalizing_package">در حال نهایی شدن نصب بسته</string>
<string name="preparing_ota_first_boot">آماده‌سازی برای روشن شدن اولیه</string>
<string name="dialog_prepare_zip_message">آماده‌سازی اولیه به روز رسانی</string>
<string name="dialog_battery_low_title">باتری کم</string>
<string name="dialog_battery_low_message_pct">سطح باتری بسیار کم است، شما نیاز به حداقل <xliff:g id="percent_discharging">%1$d</xliff:g>%% باتری برای ادامه دارید و <xliff:g id="percent_charging">%2$d</xliff:g>%% اگر در حال شارژ است.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ لطفاً دستورات زیر را اجرا کنید و دوباره به‌روز رسانی را امتحان کنید:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">با نصب OverlayFS نمی توان به‌روز رسانی را نصب کرد</string>
<string name="reboot">راه‌اندازی مجدد</string>
<string name="menu_refresh">تازه سازی</string>
<string name="menu_preferences">ترجیحات</string>
<string name="menu_auto_updates_check">بررسی خودکار نسخه های به روز</string>
<string name="menu_auto_updates_check_interval_daily">روزانه</string>
<string name="menu_auto_updates_check_interval_weekly">هفتگی</string>
<string name="menu_auto_updates_check_interval_monthly">ماهانه</string>
<string name="menu_auto_updates_check_interval_never">هرگز</string>
<string name="menu_auto_delete_updates">حذف نسخه به روز وقتی نصب شد</string>
<string name="menu_delete_update">حذف</string>
<string name="menu_copy_url">کپی آدرس</string>
<string name="menu_export_update">صادر کردن نسخه‌ی بروز</string>
<string name="menu_show_changelog">نمایش تغییرات</string>
<string name="menu_ab_perf_mode">به روز رسانی با اولویت بالا</string>
<string name="menu_update_recovery">به‌روز رسانی ریکاوری</string>
<string name="toast_forced_update_recovery">غیرفعال کردن به روزرسانی های ریکاوری Lineage در این دستگاه غیرممکن است.</string>
<string name="snack_updates_found">نسخه های جدید یافت شد</string>
<string name="snack_no_updates_found">به‌روزرسانی جدیدی یافت نشد</string>
<string name="snack_updates_check_failed">بررسی نسخه به روز انجام نشد. اتصال اینترنت خود را بررسی و دوباره سعی کنید.</string>
<string name="snack_download_failed">بارگیری انجام نشد. اتصال اینترنت خود را بررسی و دوباره تلاش کنید.</string>
<string name="snack_download_verification_failed">تأیید به‌روزرسانی با خطا روبه‌رو شد.</string>
<string name="snack_download_verified">بارگیری کامل شد.</string>
<string name="snack_update_not_installable">این نسخه جدید را نمی توان بر روی نسخه کنونی نصب کرد.</string>
<string name="header_title_text">LineageOS\n%1$s</string>
<string name="header_android_version">اندروید <xliff:g id="version" example="7.1.2">%1$s</xliff:g></string>
<string name="header_last_updates_check">آخرین بررسی: <xliff:g id="date" example="1 January 1970">%1$s</xliff:g> (<xliff:g id="time" example="01:23">%2$s</xliff:g>)</string>
<string name="list_build_version">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g></string>
<string name="list_build_version_date">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g> - <xliff:g id="date" example="July 11, 2017">%2$s</xliff:g></string>
<string name="list_download_progress_newer"><xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g> از <xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g></string>
<string name="list_download_progress_eta_newer"><xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g> از <xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g> (<xliff:g id="eta" example="3 minutes left">%3$s</xliff:g>)</string>
<string name="list_verifying_update">در حال تایید به‌روزرسانی</string>
<string name="list_no_updates">هیچ به‌روز رسانی جدیدی پیدا نشد. برای بررسی دستی به‌روز رسانی‌ها، از دکمهٔ تازه‌سازی استفاده کنید.</string>
<string name="action_download">بارگیری</string>
<string name="action_pause">مکث</string>
<string name="action_resume">ادامه</string>
<string name="action_install">نصب</string>
<string name="action_info">اطلاعات</string>
<string name="action_delete">حذف</string>
<string name="action_cancel">لغو</string>
<string name="confirm_delete_dialog_title">حذف فایل</string>
<string name="confirm_delete_dialog_message">آیا فایل نسخه به روز حذف شود؟</string>
<string name="apply_update_dialog_title">انجام به‌روزرسانی</string>
<string name="apply_update_dialog_message">شما در حال نصب &lt;xliff:g id="update_name"&gt;%1$s&lt;/xliff:g&gt; هستید.\n\nاگر &lt;xliff:g id="ok"&gt;%2$s&lt;/xliff را فشار دهید: g&gt;، دستگاه برای نصب به‌روزرسانی، خود را در حالت بازیابی مجدد راه‌اندازی می‌کند.\n\nتوجه: این ویژگی به یک بازیابی سازگار نیاز دارد یا به‌روزرسانی‌ها باید به صورت دستی نصب شوند.</string>
<string name="apply_update_dialog_message_ab">شما در حال نصب &lt;xliff:g id="update_name"&gt;%1$s&lt;/xliff:g&gt; هستید.\n\nاگر &lt;xliff:g id="ok"&gt;%2$s&lt;/xliff را فشار دهید: g&gt;، دستگاه شروع به نصب در پس‌زمینه می‌کند.\n\nپس از تکمیل، از شما خواسته می‌شود راه‌اندازی مجدد کنید.</string>
<string name="cancel_installation_dialog_message">لغو نصب می‌کنید؟</string>
<string name="label_download_url">نشانی بارگیری</string>
<string name="toast_download_url_copied">نشانی رونوشت شد</string>
<string name="dialog_export_title">صادر کردن نسخه به‌روز</string>
<string name="notification_export_success">نسخه به‌روز صادر شد</string>
<string name="notification_export_fail">خطا در صادر کردن</string>
<string name="toast_already_exporting">قبلا به‌روزرسانی صادر شده</string>
<string name="toast_export_started">صادرات آغاز شد</string>
<plurals name="eta_seconds">
<item quantity="one">۱ ثانیه مانده</item>
<item quantity="other"><xliff:g id="count">%d</xliff:g> ثانیه مانده</item>
</plurals>
<plurals name="eta_minutes">
<item quantity="one">1 دقیقه مانده است</item>
<item quantity="other"><xliff:g id="count">%d</xliff:g> دقیقه مانده</item>
</plurals>
<plurals name="eta_hours">
<item quantity="one">۱ ساعت مانده</item>
<item quantity="other"><xliff:g id="count">%d</xliff:g> ساعت مانده</item>
</plurals>
<string name="update_over_metered_network_title">هشدار</string>
<string name="update_over_metered_network_message">شما در حال بارگیری یک بسته بروز رسانی بر روی یک شبکه محدود شده یا سیم کارت هستید که احتمالا ممکن است باعث مصرف داده زیاد می شود. آیا می خواهید ادامه بدهید؟</string>
<string name="checkbox_metered_network_warning">دوباره نشان داده نشود</string>
<string name="menu_metered_network_warning">هشدار شبکه محدود شده</string>
<string name="blocked_update_dialog_title">بروز رسانی مسدود شد</string>
<string name="blocked_update_dialog_message">این به‌روزرسانی با استفاده از برنامه بروز کننده قابل نصب نیست. لطفاً برای اطلاعات بیشتر <xliff:g id="info_url">%1$s</xliff:g> را بخوانید.</string>
<string name="export_channel_title">تکمیل صادرات</string>
<string name="new_updates_channel_title">به‌‎روزرسانی‎‌های تازه</string>
<string name="ongoing_channel_title">بارگیری های جاری</string>
<string name="update_failed_channel_title">به‌روز رسانی شکست خورد</string>
<string name="info_dialog_title">آیا می‌دانستید؟</string>
<string name="info_dialog_message">به روز رسانی های LineageOS بسته های نصب کامل هستند. این بدان معناست که همیشه می‌توانید فقط آخرین به‌روزرسانی را نصب کنید، حتی اگر برخی از آن‌ها را در این بین رد کرده باشید!</string>
<string name="info_dialog_ok">از اطلاعات شما سپاسگذاریم!</string>
<string name="local_update_import">به‌روزرسانی داخلی</string>
<string name="local_update_import_progress">وارد کردن به‌روزرسانی محلی\u2026</string>
<string name="local_update_import_success">%1$s وارد شد. آیا مایل به نصب هستید؟</string>
<string name="local_update_import_failure">به‌روزرسانی داخلی با شکست مواجه شد</string>
<string name="local_update_import_install">نصب</string>
<string name="local_update_name">به‌روزرسانی داخلی</string>
<string name="welcome_title">خوش آمدید</string>
<string name="welcome_message">لطفاً توجه داشته باشید که وقتی چندین به‌روزرسانی موجود است، نیازی به نصب تک‌به‌تک آنها نیست. شما می‌توانید به‌طور مستقیم جدیدترین به‌روزرسانی را نصب کنید و سپس با خیال راحت، به‌روزرسانی‌های قدیمی‌تر را حذف کنید تا فضای ذخیره‌سازی آزاد شود.</string>
</resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Préparation de la mise à jour préliminaire</string> <string name="dialog_prepare_zip_message">Préparation de la mise à jour préliminaire</string>
<string name="dialog_battery_low_title">Batterie faible</string> <string name="dialog_battery_low_title">Batterie faible</string>
<string name="dialog_battery_low_message_pct">Le niveau de batterie est trop faible. Pour continuer, vous devez avoir au moins <xliff:g id="percent_discharging">%1$d</xliff:g> %% de batterie restante, ou <xliff:g id="percent_charging">%2$d</xliff:g> %% si l\'appareil est en charge.</string> <string name="dialog_battery_low_message_pct">Le niveau de batterie est trop faible. Pour continuer, vous devez avoir au moins <xliff:g id="percent_discharging">%1$d</xliff:g> %% de batterie restante, ou <xliff:g id="percent_charging">%2$d</xliff:g> %% si l\'appareil est en charge.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Merci d\'exécuter les commandes suivantes et de retenter la mise à jour :\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Impossible d\'installer la mise à jour avec OverlayFS monté</string>
<string name="reboot">Redémarrer</string> <string name="reboot">Redémarrer</string>
<string name="menu_refresh">Actualiser</string> <string name="menu_refresh">Actualiser</string>
<string name="menu_preferences">Préférences</string> <string name="menu_preferences">Préférences</string>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Preparazion dal inzornament preliminâr</string> <string name="dialog_prepare_zip_message">Preparazion dal inzornament preliminâr</string>
<string name="dialog_battery_low_title">Batarie basse</string> <string name="dialog_battery_low_title">Batarie basse</string>
<string name="dialog_battery_low_message_pct">Il nivel de batarie al è masse bas, tu scugnis vê almancul il <xliff:g id="percent_discharging">%1$d</xliff:g>%% par continuâ, <xliff:g id="percent_charging">%2$d</xliff:g>%% se e je in cjame.</string> <string name="dialog_battery_low_message_pct">Il nivel de batarie al è masse bas, tu scugnis vê almancul il <xliff:g id="percent_discharging">%1$d</xliff:g>%% par continuâ, <xliff:g id="percent_charging">%2$d</xliff:g>%% se e je in cjame.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Eseguìs chescj comants e torne prove l\'inzornament:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Impussibil instalâ l\'inzornament cun OverlayFS montât</string>
<string name="reboot">Torne invie</string> <string name="reboot">Torne invie</string>
<string name="menu_refresh">Torne cjame</string> <string name="menu_refresh">Torne cjame</string>
<string name="menu_preferences">Preferencis</string> <string name="menu_preferences">Preferencis</string>
@@ -67,7 +73,7 @@
<string name="header_last_updates_check">Ultime verifiche: <xliff:g id="date" example="2 di Zenâr dal 1970">%1$s</xliff:g> (<xliff:g id="time" example="01:23">%2$s</xliff:g>)</string> <string name="header_last_updates_check">Ultime verifiche: <xliff:g id="date" example="2 di Zenâr dal 1970">%1$s</xliff:g> (<xliff:g id="time" example="01:23">%2$s</xliff:g>)</string>
<string name="list_build_version">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g></string> <string name="list_build_version">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g></string>
<string name="list_build_version_date">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g> - <xliff:g id="date" example="Lui 11, 2017">%2$s</xliff:g></string> <string name="list_build_version_date">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g> - <xliff:g id="date" example="Lui 11, 2017">%2$s</xliff:g></string>
<string name="list_download_progress_newer"><xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g> di <xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g><xliff:g id="percentage" example="56">%3$s</xliff:g></string> <string name="list_download_progress_newer"><xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g> di <xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g></string>
<string name="list_download_progress_eta_newer"><xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g> di <xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g> (<xliff:g id="eta" example="3 minutes left">%3$s</xliff:g>)</string> <string name="list_download_progress_eta_newer"><xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g> di <xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g> (<xliff:g id="eta" example="3 minutes left">%3$s</xliff:g>)</string>
<string name="list_verifying_update">Verifiche inzornament</string> <string name="list_verifying_update">Verifiche inzornament</string>
<string name="list_no_updates">Nissun gnûf inzornament cjatât. Par controlâ a man i gnûfs inzornaments, tocje il boton Inzorne.</string> <string name="list_no_updates">Nissun gnûf inzornament cjatât. Par controlâ a man i gnûfs inzornaments, tocje il boton Inzorne.</string>
@@ -122,4 +128,6 @@
<string name="local_update_import_failure">Importazion inzornament locâl falide</string> <string name="local_update_import_failure">Importazion inzornament locâl falide</string>
<string name="local_update_import_install">Instale</string> <string name="local_update_import_install">Instale</string>
<string name="local_update_name">Inzornament locâl</string> <string name="local_update_name">Inzornament locâl</string>
<string name="welcome_title">Benvignûts</string>
<string name="welcome_message">Fâs câs che cuant che a son disponibii plui inzornaments, no covente inzornâ in progression l\'un dal un, tu puedis simpri instalâ daurman l\'ultin e dopo eliminâ in sigurece i inzornaments vieris par liberâ spazi di archiviazion.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name">Nuashonróir</string>
<string name="display_name">Nuashonróir</string>
<string name="verification_failed_notification">Theip ar an bhfíorú</string>
<string name="verifying_download_notification">Nuashonrú á fhíorú</string>
<string name="downloading_notification">Ag íosluchtú</string>
<string name="download_paused_notification">Íoslódáil ar sos</string>
<string name="download_paused_error_notification">Earráid íoslódáil</string>
<string name="download_completed_notification">Íoslódáil críochnaithe</string>
<string name="download_starting_notification">Ag tosú íoslódáil</string>
<string name="update_failed_notification">Theip ar an nuashonrú</string>
<string name="installation_suspended_notification">Suiteáil ar fionraí</string>
<string name="new_updates_found_title">Nuashonruithe nua</string>
<string name="text_download_speed">%1$s, %2$s/s</string>
<string name="pause_button">Sos</string>
<string name="resume_button">Tosaigh arís</string>
<string name="suspend_button">Fionraí</string>
<string name="installing_update">Ag suiteáil pacáiste nuashonraithe</string>
<string name="installing_update_error">Earráid a shuiteáil</string>
<string name="installing_update_finished">Nuashonrú suiteáilte</string>
<string name="finalizing_package">Ag suiteáil pacáiste a thabhairt chun críche</string>
<string name="preparing_ota_first_boot">Ag ullmhú don chéad tosaithe</string>
<string name="dialog_prepare_zip_message">Réamh-ullmhúchán nuashonraithe</string>
<string name="dialog_battery_low_title">Ceallraí íseal</string>
<string name="dialog_battery_low_message_pct">Tá leibhéal an cheallraí ró-íseal, ní mór duit ar a laghad <xliff:g id="percent_discharging">%1$d</xliff:g> %% den cheallraí chun leanúint ar aghaidh, <xliff:g id="percent_charging">%2$d</xliff:g>%% má tá tú ag muirearú.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[Rith na horduithe seo a leanas agus bain triail eile as an nuashonrú:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Ní féidir an nuashonrú a shuiteáil le OverlayFS suite</string>
<string name="reboot">Atosaigh</string>
<string name="menu_refresh">Athnuaigh</string>
<string name="menu_preferences">Roghanna</string>
<string name="menu_auto_updates_check">Seiceáil nuashonruithe uathoibríoch</string>
<string name="menu_auto_updates_check_interval_daily">Uair sa lá</string>
<string name="menu_auto_updates_check_interval_weekly">Uair sa tseachtain</string>
<string name="menu_auto_updates_check_interval_monthly">Uair sa mhí</string>
<string name="menu_auto_updates_check_interval_never">Riamh</string>
<string name="menu_auto_delete_updates">Scrios nuashonruithe nuair a shuiteáiltear iad</string>
<string name="menu_delete_update">Scrios</string>
<string name="menu_copy_url">Cóipeáil URL</string>
<string name="menu_export_update">Easpórtáil nuashonrú</string>
<string name="menu_show_changelog">Taispeáin loga na n-athruithe</string>
<string name="menu_ab_perf_mode">Tabhair tosaíocht don phróiseas nuashonraithe</string>
<string name="menu_update_recovery">Nuashonraigh aisghabháil</string>
<string name="toast_forced_update_recovery">Tá sé dodhéanta nuashonruithe Lineage Recovery a dhíchumasú ar an ngléas seo.</string>
<string name="snack_updates_found">Nuashonruithe nua aimsithe</string>
<string name="snack_no_updates_found">Níor aimsíodh aon nuashonruithe nua</string>
<string name="snack_updates_check_failed">Theip ar an tseiceáil nuashonraithe. Seiceáil do cheangal idirlín agus bain triail eile as ar ball.</string>
<string name="snack_download_failed">Theip ar an íoslódáil. Seiceáil do cheangal idirlín agus bain triail eile as ar ball.</string>
<string name="snack_download_verification_failed">Theip ar fhíorú an nuashonraithe.</string>
<string name="snack_download_verified">Íoslódáil críochnaithe.</string>
<string name="snack_update_not_installable">Ní féidir an nuashonrú seo a shuiteáil ar bharr an leagan reatha.</string>
<string name="header_title_text">LineageOS\n%1$s</string>
<string name="header_android_version">Android <xliff:g id="version" sampla="7.1.2">%1$s</xliff:g></string>
<string name="header_last_updates_check">Seiceáladh seo caite: <xliff:g id="date" example="1 Eanáir 1970">%1$s</xliff:g> (<xliff:g id="time" sampla="01:23">%2$s</xliff:g>)</string>
<string name="list_build_version">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g></string>
<string name="list_build_version_date">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g> - <xliff:g id="date" example="July 11, 2017">%2$s</xliff:g></string>
<string name="list_download_progress_newer"><xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g> of <xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g></string>
<string name="list_download_progress_eta_newer"><xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g> of <xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g> (<xliff:g id="eta" example="3 minutes left">%3$s</xliff:g>)</string>
<string name="list_verifying_update">Nuashonrú á fhíorú</string>
<string name="list_no_updates">Níor aimsíodh aon nuashonruithe nua. Chun seiceáil de láimh le haghaidh nuashonruithe nua, úsáid an cnaipe Athnuaigh.</string>
<string name="action_download">Íosluchtaigh</string>
<string name="action_pause">Sos</string>
<string name="action_resume">Tosaigh arís</string>
<string name="action_install">Suiteáil</string>
<string name="action_info">Eolas</string>
<string name="action_delete">Scrios</string>
<string name="action_cancel">Cealaigh</string>
<string name="confirm_delete_dialog_title">Scrios an comhad</string>
<string name="confirm_delete_dialog_message">Scrios comhad uasdátaigh ?</string>
<string name="apply_update_dialog_title">Cuir nuashonrú</string>
<string name="apply_update_dialog_message">Tá tú ar tí &lt;xliff:g id="update_name"&gt;%1$s&lt;/xliff:g&gt; a shuiteáil.\n\nMá bhrúíonn tú &lt;xliff:g id="ok"&gt;%2$s&lt;/xliff: g&gt;, atosóidh an gléas é féin sa mhodh athshlánaithe chun an nuashonrú a shuiteáil.\n\nNóta: Teastaíonn Aisghabháil comhoiriúnach don ghné seo nó beidh gá le nuashonruithe a shuiteáil de láimh.</string>
<string name="apply_update_dialog_message_ab">Tá tú ar tí &lt;xliff:g id="update_name"&gt;%1$s&lt;/xliff:g&gt; a shuiteáil.\n\nMá bhrúíonn tú &lt;xliff:g id="ok"&gt;%2$s&lt;/xliff: g&gt;, cuirfear tús leis an ngléas a shuiteáil sa chúlra.\n\nNuair a bheidh sé críochnaithe, tabharfar leid duit é a atosú.</string>
<string name="cancel_installation_dialog_message">Cealaigh an tsuiteáil?</string>
<string name="label_download_url">Íoslódáil URL</string>
<string name="toast_download_url_copied">URL Chóipeáil</string>
<string name="dialog_export_title">Nuashonrú easpórtála</string>
<string name="notification_export_success">Easpórtáil an nuashonrú</string>
<string name="notification_export_fail">Earráid easpórtála</string>
<string name="toast_already_exporting">Ag easpórtáil nuashonrú cheana féin</string>
<string name="toast_export_started">Thosaigh easpórtáil</string>
<plurals name="eta_seconds">
<item quantity="one">1 soicind fágtha</item>
<item quantity="two"><xliff:g id="count">%d</xliff:g> soicind fágtha</item>
<item quantity="few"><xliff:g id="count">%d</xliff:g> soicind fágtha</item>
<item quantity="many"><xliff:g id="count">%d</xliff:g> soicind fágtha</item>
<item quantity="other"><xliff:g id="count">%d</xliff:g> soicind fágtha</item>
</plurals>
<plurals name="eta_minutes">
<item quantity="one">1 nóiméad fágtha</item>
<item quantity="two"><xliff:g id="count">%d</xliff:g> nóiméad fágtha</item>
<item quantity="few"><xliff:g id="count">%d</xliff:g> nóiméad fágtha</item>
<item quantity="many"><xliff:g id="count">%d</xliff:g> nóiméad fágtha</item>
<item quantity="other"><xliff:g id="count">%d</xliff:g> nóiméad fágtha</item>
</plurals>
<plurals name="eta_hours">
<item quantity="one">1 uair fágtha</item>
<item quantity="two"><xliff:g id="count">%d</xliff:g> uair fágtha</item>
<item quantity="few"><xliff:g id="count">%d</xliff:g> uair fágtha</item>
<item quantity="many"><xliff:g id="count">%d</xliff:g> uair fágtha</item>
<item quantity="other"><xliff:g id="count">%d</xliff:g> uair fágtha</item>
</plurals>
<string name="update_over_metered_network_title">Rabhadh</string>
<string name="update_over_metered_network_message">Tá tú ar tí pacáiste nuashonraithe a íoslódáil thar líonra méadraithe agus is dócha go mbeidh sé ina chúis le húsáid ard sonraí. Ar mhaith leat dul ar aghaidh?</string>
<string name="checkbox_metered_network_warning">Ná taispeáin arís</string>
<string name="menu_metered_network_warning">Rabhadh líonra méadraithe</string>
<string name="blocked_update_dialog_title">Nuashonrú bactha</string>
<string name="blocked_update_dialog_message">Ní féidir an nuashonrú seo a shuiteáil leis an aip nuashonraithe. Léigh <xliff:g id="info_url">%1$s</xliff:g> le haghaidh tuilleadh eolais.</string>
<string name="export_channel_title">Críochnú onnmhairithe</string>
<string name="new_updates_channel_title">Nuashonruithe nua</string>
<string name="ongoing_channel_title">Íoslódálacha leanúnacha</string>
<string name="update_failed_channel_title">Theip ar an nuashonrú</string>
<string name="info_dialog_title">An raibh a fhios agat?</string>
<string name="info_dialog_message">Is pacáistí suiteála iomlána iad nuashonruithe LineageOS. Ciallaíonn sé sin nach féidir leat ach an nuashonrú is déanaí a shuiteáil i gcónaí, fiú mura ndearna tú roinnt eatarthu!</string>
<string name="info_dialog_ok">Go raibh maith agat as an eolas!</string>
<string name="local_update_import">Nuashonrú áitiúil</string>
<string name="local_update_import_progress">Nuashonrú logánta á iompórtáil\u2026</string>
<string name="local_update_import_success">Iompórtáladh %1$s. Ar mhaith leat é a shuiteáil?</string>
<string name="local_update_import_failure">Theip ar iompórtáil an nuashonrú áitiúil</string>
<string name="local_update_import_install">Suiteáil</string>
<string name="local_update_name">Nuashonrú áitiúil</string>
<string name="welcome_title">Fáilte</string>
<string name="welcome_message">Tabhair faoi deara le do thoil, nuair a bhíonn nuashonruithe iolracha ar fáil, níl aon ghá le nuashonrú ar nuashonrú, is féidir leat an ceann is déanaí a shuiteáil go díreach i gcónaí, agus ansin sean-nuashonruithe a scriosadh go sábháilte chun spás stórála a shaoradh.</string>
</resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -40,6 +40,12 @@
<string name="dialog_battery_low_title">Alacsony akkumulátorszint</string> <string name="dialog_battery_low_title">Alacsony akkumulátorszint</string>
<string name="dialog_battery_low_message_pct">Az akkumulátortöltöttség túl alacsony, szüksége van legalább <xliff:g id="percent_discharging">%1$d</xliff:g>%% töltöttségre a folytatáshoz, <string name="dialog_battery_low_message_pct">Az akkumulátortöltöttség túl alacsony, szüksége van legalább <xliff:g id="percent_discharging">%1$d</xliff:g>%% töltöttségre a folytatáshoz,
illetve, ha éppen tölt, akkor még <xliff:g id="percent_charging">%2$d</xliff:g>%% töltés szükséges.</string> illetve, ha éppen tölt, akkor még <xliff:g id="percent_charging">%2$d</xliff:g>%% töltés szükséges.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Futtassa az alábbi parancsokat, majd próbálja újra a frissítést:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Nem telepíthet frissítést a felcsatlakoztatott OverlayFS miatt</string>
<string name="reboot">Újraindítás</string> <string name="reboot">Újraindítás</string>
<string name="menu_refresh">Frissítés</string> <string name="menu_refresh">Frissítés</string>
<string name="menu_preferences">Testreszabás</string> <string name="menu_preferences">Testreszabás</string>
@@ -105,7 +111,9 @@ illetve, ha éppen tölt, akkor még <xliff:g id="percent_charging">%2$d</xliff:
<item quantity="other"><xliff:g id="count">%d</xliff:g> óra van hátra</item> <item quantity="other"><xliff:g id="count">%d</xliff:g> óra van hátra</item>
</plurals> </plurals>
<string name="update_over_metered_network_title">Figyelmeztetés</string> <string name="update_over_metered_network_title">Figyelmeztetés</string>
<string name="update_over_metered_network_message">Úgy tűnik mobiladat-forgalmat használva kíván letölteni egy nagyméretű frissítési csomagot, ami nagy költséggel járhat. Biztos benne hogy engedélyezi ezt?</string>
<string name="checkbox_metered_network_warning">Ne jelenjen meg többet</string> <string name="checkbox_metered_network_warning">Ne jelenjen meg többet</string>
<string name="menu_metered_network_warning">Mobiladat-költség figyelmeztetés</string>
<string name="blocked_update_dialog_title">A frissítés blokkolva</string> <string name="blocked_update_dialog_title">A frissítés blokkolva</string>
<string name="blocked_update_dialog_message">Ez a frissítés nem telepíthető a Frissítés alkalmazással. További információért olvassa el a következőt: <xliff:g id="info_url">%1$s</xliff:g></string> <string name="blocked_update_dialog_message">Ez a frissítés nem telepíthető a Frissítés alkalmazással. További információért olvassa el a következőt: <xliff:g id="info_url">%1$s</xliff:g></string>
<string name="export_channel_title">Exportálás-véglegesítés</string> <string name="export_channel_title">Exportálás-véglegesítés</string>
@@ -115,4 +123,12 @@ illetve, ha éppen tölt, akkor még <xliff:g id="percent_charging">%2$d</xliff:
<string name="info_dialog_title">Tudta Ön?</string> <string name="info_dialog_title">Tudta Ön?</string>
<string name="info_dialog_message">A LineageOS frissítései teljes telepítőcsomagok. Ez azt jelenti, hogy mindig elég a legfrissebb csomagot telepítenie, nem baj ha korábban kihagyott párat!</string> <string name="info_dialog_message">A LineageOS frissítései teljes telepítőcsomagok. Ez azt jelenti, hogy mindig elég a legfrissebb csomagot telepítenie, nem baj ha korábban kihagyott párat!</string>
<string name="info_dialog_ok">Köszönet az információért!</string> <string name="info_dialog_ok">Köszönet az információért!</string>
<string name="local_update_import">Helyi frissítés</string>
<string name="local_update_import_progress">Helyi frissítés importálása\u2026</string>
<string name="local_update_import_success">%1$s importálva lett. Kívánja telepíteni?</string>
<string name="local_update_import_failure">Nem sikerült importálni a helyi frissítést</string>
<string name="local_update_import_install">Telepítés</string>
<string name="local_update_name">Helyi frissítés</string>
<string name="welcome_title">Üdvözöljük</string>
<string name="welcome_message">Vegye figyelembe, hogy ha több frissítés is elérhető, nem szükséges mindet telepítenie, csak kizárólag a legfrissebbet, majd biztonságosan törölheti a régi frissítéseket, hogy tárhelyet szabadítson fel.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -101,7 +101,9 @@
<item quantity="other"><xliff:g id="count">%d</xliff:g> jam tersisa</item> <item quantity="other"><xliff:g id="count">%d</xliff:g> jam tersisa</item>
</plurals> </plurals>
<string name="update_over_metered_network_title">Peringatan</string> <string name="update_over_metered_network_title">Peringatan</string>
<string name="update_over_metered_network_message">Anda akan mengunduh paket pembaruan melalui jaringan terukur yang kemungkinan besar akan menyebabkan penggunaan data yang tinggi. Apakah Anda ingin melanjutkan?</string>
<string name="checkbox_metered_network_warning">Jangan tampilkan lagi</string> <string name="checkbox_metered_network_warning">Jangan tampilkan lagi</string>
<string name="menu_metered_network_warning">Peringatan jaringan terukur</string>
<string name="blocked_update_dialog_title">Pembaruan diblokir</string> <string name="blocked_update_dialog_title">Pembaruan diblokir</string>
<string name="blocked_update_dialog_message">Pembaruan ini tidak dapat dipasang menggunakan aplikasi pembaruan. Baca <xliff:g id="info_url">%1$s</xliff:g> untuk informasi lebih lanjut.</string> <string name="blocked_update_dialog_message">Pembaruan ini tidak dapat dipasang menggunakan aplikasi pembaruan. Baca <xliff:g id="info_url">%1$s</xliff:g> untuk informasi lebih lanjut.</string>
<string name="export_channel_title">Penyelesaian ekspor</string> <string name="export_channel_title">Penyelesaian ekspor</string>
@@ -111,4 +113,10 @@
<string name="info_dialog_title">Tahukah Anda?</string> <string name="info_dialog_title">Tahukah Anda?</string>
<string name="info_dialog_message">Pembaruan LineageOS adalah paket instalasi lengkap. Itu berarti Anda selalu dapat menginstal hanya pembaruan terbaru, bahkan jika Anda melewatkan beberapa di antaranya!</string> <string name="info_dialog_message">Pembaruan LineageOS adalah paket instalasi lengkap. Itu berarti Anda selalu dapat menginstal hanya pembaruan terbaru, bahkan jika Anda melewatkan beberapa di antaranya!</string>
<string name="info_dialog_ok">Terima kasih atas infonya!</string> <string name="info_dialog_ok">Terima kasih atas infonya!</string>
<string name="local_update_import">Pembaruan lokal</string>
<string name="local_update_import_progress">Mengimpor pembaruan lokal\u2026</string>
<string name="local_update_import_success">%1$s telah diimpor. Apakah Anda ingin menginstalnya?</string>
<string name="local_update_import_failure">Gagal mengimpor pembaruan lokal</string>
<string name="local_update_import_install">Instal</string>
<string name="local_update_name">Pembaruan lokal</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Preparazione preliminare dell\'aggiornamento</string> <string name="dialog_prepare_zip_message">Preparazione preliminare dell\'aggiornamento</string>
<string name="dialog_battery_low_title">Batteria scarica</string> <string name="dialog_battery_low_title">Batteria scarica</string>
<string name="dialog_battery_low_message_pct">Il livello della batteria è troppo basso, è necessario almeno il <xliff:g id="percent_discharging">%1$d</xliff:g>%% di batteria per continuare, oppure il <xliff:g id="percent_charging">%2$d</xliff:g>%% se il dispositivo è in carica.</string> <string name="dialog_battery_low_message_pct">Il livello della batteria è troppo basso, è necessario almeno il <xliff:g id="percent_discharging">%1$d</xliff:g>%% di batteria per continuare, oppure il <xliff:g id="percent_charging">%2$d</xliff:g>%% se il dispositivo è in carica.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Esegui i seguenti comandi e ritenta l\'aggiornamento:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Impossibile installare l\'aggiornamento con OverlayFS montato</string>
<string name="reboot">Riavvia</string> <string name="reboot">Riavvia</string>
<string name="menu_refresh">Ricarica</string> <string name="menu_refresh">Ricarica</string>
<string name="menu_preferences">Preferenze</string> <string name="menu_preferences">Preferenze</string>
@@ -122,4 +128,6 @@
<string name="local_update_import_failure">Importazione aggiornamento locale fallita</string> <string name="local_update_import_failure">Importazione aggiornamento locale fallita</string>
<string name="local_update_import_install">Installa</string> <string name="local_update_import_install">Installa</string>
<string name="local_update_name">Aggiornamento locale</string> <string name="local_update_name">Aggiornamento locale</string>
<string name="welcome_title">Benvenuto</string>
<string name="welcome_message">Quando sono disponibili più aggiornamenti, non c\'è bisogno di installarli tutti: è sempre possibile installare direttamente quello più recente, e quindi eliminare in modo sicuro i vecchi aggiornamenti per liberare spazio di archiviazione.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">予備のアップデート準備</string> <string name="dialog_prepare_zip_message">予備のアップデート準備</string>
<string name="dialog_battery_low_title">バッテリー残量少</string> <string name="dialog_battery_low_title">バッテリー残量少</string>
<string name="dialog_battery_low_message_pct">バッテリー残量が不足しています。続行するには<xliff:g id="percent_discharging">%1$d</xliff:g>%%、充電時は<xliff:g id="percent_charging">%2$d</xliff:g>%%のバッテリー残量が必要です。</string> <string name="dialog_battery_low_message_pct">バッテリー残量が不足しています。続行するには<xliff:g id="percent_discharging">%1$d</xliff:g>%%、充電時は<xliff:g id="percent_charging">%2$d</xliff:g>%%のバッテリー残量が必要です。</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ 以下のコマンドを実行し、アップデートを再試行してください:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">OverlayFS マウント済みの場合アップデートはインストールできません</string>
<string name="reboot">再起動</string> <string name="reboot">再起動</string>
<string name="menu_refresh">再読み込み</string> <string name="menu_refresh">再読み込み</string>
<string name="menu_preferences">設定</string> <string name="menu_preferences">設定</string>
@@ -119,4 +125,6 @@
<string name="local_update_import_failure">ローカルアップデートのインポートに失敗しました</string> <string name="local_update_import_failure">ローカルアップデートのインポートに失敗しました</string>
<string name="local_update_import_install">インストール</string> <string name="local_update_import_install">インストール</string>
<string name="local_update_name">ローカルアップデート</string> <string name="local_update_name">ローカルアップデート</string>
<string name="welcome_title">ようこそ</string>
<string name="welcome_message">複数のアップデートが利用可能な場合、順番にアップデートする必要はありません。 古いアップデートは削除してストレージ容量を空けて、最新のアップデートだけをインストールしてください。</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -38,7 +38,7 @@
<string name="preparing_ota_first_boot">მზადდება პირველი ჩატვირთვისთვის</string> <string name="preparing_ota_first_boot">მზადდება პირველი ჩატვირთვისთვის</string>
<string name="dialog_prepare_zip_message">წინასწარი მომზადება განახლებისთვის</string> <string name="dialog_prepare_zip_message">წინასწარი მომზადება განახლებისთვის</string>
<string name="dialog_battery_low_title">ბატარეა ჯდება</string> <string name="dialog_battery_low_title">ბატარეა ჯდება</string>
<string name="dialog_battery_low_message_pct">ელემენტის მუხტი მეტად მცირეა, გასაგრძელებლად საჭიროა დამუხტული იყოს სულ მცირე <xliff:g id="percent_discharging">%1$d</xliff:g>%% ან <xliff:g id="percent_charging">%2$d</xliff:g>%% თუ იმუხტება.</string> <string name="dialog_battery_low_message_pct">მუხტის დონე მეტად მცირეა, საჭიროა დამუხტული იყოს არანაკლებ <xliff:g id="percent_discharging">%1$d</xliff:g>%% ან <xliff:g id="percent_charging">%2$d</xliff:g>%% შეერთდეს სატენზე.</string>
<string name="reboot">გადატვირთვა</string> <string name="reboot">გადატვირთვა</string>
<string name="menu_refresh">განახლება</string> <string name="menu_refresh">განახლება</string>
<string name="menu_preferences">პარამეტრები</string> <string name="menu_preferences">პარამეტრები</string>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">예비 업데이트 준비</string> <string name="dialog_prepare_zip_message">예비 업데이트 준비</string>
<string name="dialog_battery_low_title">배터리 부족</string> <string name="dialog_battery_low_title">배터리 부족</string>
<string name="dialog_battery_low_message_pct">배터리 수준이 너무 낮습니다. 계속하려면 방전 중일 경우 <xliff:g id="percent_discharging">%1$d</xliff:g>%% 이상, 충전 중일 경우 <xliff:g id="percent_charging">%2$d</xliff:g>%% 이상의 배터리 수준이 필요합니다.</string> <string name="dialog_battery_low_message_pct">배터리 수준이 너무 낮습니다. 계속하려면 방전 중일 경우 <xliff:g id="percent_discharging">%1$d</xliff:g>%% 이상, 충전 중일 경우 <xliff:g id="percent_charging">%2$d</xliff:g>%% 이상의 배터리 수준이 필요합니다.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ 다음 명령어를 실행한 뒤 업데이트를 다시 시도해 주세요:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">OverlayFS 마운트 상태에서는 업데이트를 설치할 수 없음</string>
<string name="reboot">다시 시작</string> <string name="reboot">다시 시작</string>
<string name="menu_refresh">새로고침</string> <string name="menu_refresh">새로고침</string>
<string name="menu_preferences">설정</string> <string name="menu_preferences">설정</string>
@@ -119,4 +125,6 @@
<string name="local_update_import_failure">로컬 업데이트를 가져오지 못했습니다.</string> <string name="local_update_import_failure">로컬 업데이트를 가져오지 못했습니다.</string>
<string name="local_update_import_install">설치</string> <string name="local_update_import_install">설치</string>
<string name="local_update_name">로컬 업데이트</string> <string name="local_update_name">로컬 업데이트</string>
<string name="welcome_title">환영합니다</string>
<string name="welcome_message">여러 버전의 업데이트가 있을 때, 모든 업데이트를 하나하나 설치할 필요는 없습니다. 가장 마지막 업데이트만 설치한 다음 오래된 업데이트 파일은 삭제하여 저장소 공간을 확보할 수 있습니다.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,11 @@
<string name="dialog_prepare_zip_message">Update voorbereiden</string> <string name="dialog_prepare_zip_message">Update voorbereiden</string>
<string name="dialog_battery_low_title">Batterij bijna leeg</string> <string name="dialog_battery_low_title">Batterij bijna leeg</string>
<string name="dialog_battery_low_message_pct">Uw batterijniveau is te laag, u moet op zijn minst <xliff:g id="percent_discharging">%1$d</xliff:g>%% batterijcapaciteit hebben om door te gaan of <xliff:g id="percent_charging">%2$d</xliff:g>%% tijdens het opladen.</string> <string name="dialog_battery_low_message_pct">Uw batterijniveau is te laag, u moet op zijn minst <xliff:g id="percent_discharging">%1$d</xliff:g>%% batterijcapaciteit hebben om door te gaan of <xliff:g id="percent_charging">%2$d</xliff:g>%% tijdens het opladen.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[Voer deze opdrachten uit en probeer opnieuw te updaten:\n
• adb root\n
• adb enable-verity\n
• adb reboot]]></string>
<string name="dialog_scratch_mounted_title">Kan update niet installeren met OverlayFS gekoppeld</string>
<string name="reboot">Herstarten</string> <string name="reboot">Herstarten</string>
<string name="menu_refresh">Vernieuwen</string> <string name="menu_refresh">Vernieuwen</string>
<string name="menu_preferences">Instellingen</string> <string name="menu_preferences">Instellingen</string>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Przygotowanie wstępne aktualizacji</string> <string name="dialog_prepare_zip_message">Przygotowanie wstępne aktualizacji</string>
<string name="dialog_battery_low_title">Niskim poziom baterii</string> <string name="dialog_battery_low_title">Niskim poziom baterii</string>
<string name="dialog_battery_low_message_pct">Poziom naładowania baterii jest zbyt niski, musisz mieć co najmniej <xliff:g id="percent_discharging">%1$d</xliff:g>%% baterii lub <xliff:g id="percent_charging">%2$d</xliff:g>%% w trakcie ładowania.</string> <string name="dialog_battery_low_message_pct">Poziom naładowania baterii jest zbyt niski, musisz mieć co najmniej <xliff:g id="percent_discharging">%1$d</xliff:g>%% baterii lub <xliff:g id="percent_charging">%2$d</xliff:g>%% w trakcie ładowania.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Uruchom następujące polecenia i dokonaj ponownej aktualizacji:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Nie można zainstalować aktualizacji z zamontowanym \"OverlayFS\"</string>
<string name="reboot">Uruchom ponownie</string> <string name="reboot">Uruchom ponownie</string>
<string name="menu_refresh">Odśwież</string> <string name="menu_refresh">Odśwież</string>
<string name="menu_preferences">Ustawienia</string> <string name="menu_preferences">Ustawienia</string>
@@ -74,7 +80,7 @@
<string name="action_download">Pobierz</string> <string name="action_download">Pobierz</string>
<string name="action_pause">Wstrzymaj</string> <string name="action_pause">Wstrzymaj</string>
<string name="action_resume">Wznów</string> <string name="action_resume">Wznów</string>
<string name="action_install">Instaluj</string> <string name="action_install">Zainstaluj</string>
<string name="action_info">Informacje</string> <string name="action_info">Informacje</string>
<string name="action_delete">Usuń</string> <string name="action_delete">Usuń</string>
<string name="action_cancel">Anuluj</string> <string name="action_cancel">Anuluj</string>
@@ -114,7 +120,7 @@
<string name="checkbox_metered_network_warning">Nie pokazuj ponownie</string> <string name="checkbox_metered_network_warning">Nie pokazuj ponownie</string>
<string name="menu_metered_network_warning">Ostrzeżenie o sieci z pomiarem</string> <string name="menu_metered_network_warning">Ostrzeżenie o sieci z pomiarem</string>
<string name="blocked_update_dialog_title">Aktualizacja zablokowana</string> <string name="blocked_update_dialog_title">Aktualizacja zablokowana</string>
<string name="blocked_update_dialog_message">Tej aktualizacji nie można zainstalować przy użyciu aplikacji aktualizacji. Zapoznaj się z <xliff:g id="info_url">%1$s </xliff:g> aby uzyskać więcej informacji.</string> <string name="blocked_update_dialog_message">Tej aktualizacji nie można zainstalować przy użyciu aplikacji \"Aktualizator\". Zapoznaj się z <xliff:g id="info_url">%1$s </xliff:g>, aby uzyskać więcej informacji.</string>
<string name="export_channel_title">Eksport zakończony</string> <string name="export_channel_title">Eksport zakończony</string>
<string name="new_updates_channel_title">Nowe aktualizacje</string> <string name="new_updates_channel_title">Nowe aktualizacje</string>
<string name="ongoing_channel_title">Trwające pobieranie</string> <string name="ongoing_channel_title">Trwające pobieranie</string>
@@ -126,6 +132,8 @@
<string name="local_update_import_progress">Importowanie aktualizacji lokalnej\u2026</string> <string name="local_update_import_progress">Importowanie aktualizacji lokalnej\u2026</string>
<string name="local_update_import_success">Zaimportowano %1$s. Czy chcesz to zainstalować?</string> <string name="local_update_import_success">Zaimportowano %1$s. Czy chcesz to zainstalować?</string>
<string name="local_update_import_failure">Nie udało się zaimportować aktualizacji lokalnej</string> <string name="local_update_import_failure">Nie udało się zaimportować aktualizacji lokalnej</string>
<string name="local_update_import_install">Instaluj</string> <string name="local_update_import_install">Zainstaluj</string>
<string name="local_update_name">Aktualizacja lokalna</string> <string name="local_update_name">Aktualizacja lokalna</string>
<string name="welcome_title">Witaj</string>
<string name="welcome_message">Pamiętaj, że gdy dostępne są wielokrotne aktualizacje, nie ma potrzeby aktualizować po aktualizacji, zawsze możesz zainstalować najnowszą wersję bezpośrednio, a następnie bezpiecznie usuwać stare aktualizacje, aby zwolnić miejsce w pamięci.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -19,17 +19,17 @@
<string name="display_name">Atualizador</string> <string name="display_name">Atualizador</string>
<string name="verification_failed_notification">Falha na verificação</string> <string name="verification_failed_notification">Falha na verificação</string>
<string name="verifying_download_notification">Verificando atualização</string> <string name="verifying_download_notification">Verificando atualização</string>
<string name="downloading_notification">Baixando</string> <string name="downloading_notification">Download</string>
<string name="download_paused_notification">Download pausado</string> <string name="download_paused_notification">Download pausado</string>
<string name="download_paused_error_notification">Erro ao baixar</string> <string name="download_paused_error_notification">Erro ao baixar</string>
<string name="download_completed_notification">Download concluído</string> <string name="download_completed_notification">Download concluído</string>
<string name="download_starting_notification">Iniciando download</string> <string name="download_starting_notification">Iniciando download</string>
<string name="update_failed_notification">Falha ao atualizar</string> <string name="update_failed_notification">Falha na atualização</string>
<string name="installation_suspended_notification">Instalação suspensa</string> <string name="installation_suspended_notification">Instalação suspensa</string>
<string name="new_updates_found_title">Novas atualizações</string> <string name="new_updates_found_title">Novas atualizações</string>
<string name="text_download_speed">%1$s, %2$s/s</string> <string name="text_download_speed">%1$s, %2$s/s</string>
<string name="pause_button">Pausar</string> <string name="pause_button">Pausar</string>
<string name="resume_button">Continuar</string> <string name="resume_button">Retomar</string>
<string name="suspend_button">Suspender</string> <string name="suspend_button">Suspender</string>
<string name="installing_update">Instalando o pacote de atualização</string> <string name="installing_update">Instalando o pacote de atualização</string>
<string name="installing_update_error">Erro de instalação</string> <string name="installing_update_error">Erro de instalação</string>
@@ -38,38 +38,48 @@
<string name="preparing_ota_first_boot">Preparando-se para a primeira inicialização</string> <string name="preparing_ota_first_boot">Preparando-se para a primeira inicialização</string>
<string name="dialog_prepare_zip_message">Preparação preliminar de atualização</string> <string name="dialog_prepare_zip_message">Preparação preliminar de atualização</string>
<string name="dialog_battery_low_title">Bateria fraca</string> <string name="dialog_battery_low_title">Bateria fraca</string>
<string name="dialog_battery_low_message_pct">O nível da bateria está muito baixo, precisando de, pelo menos, <xliff:g id="percent_discharging">%1$d</xliff:g>%% de bateria para continuar, ou <xliff:g id="percent_charging">%2$d</xliff:g>%% se estiver carregando.</string> <string name="dialog_battery_low_message_pct">O nível da bateria está muito baixo, é preciso de pelo menos <xliff:g id="percent_discharging">%1$d</xliff:g>%% de bateria para continuar, ou <xliff:g id="percent_charging">%2$d</xliff:g>%% se estiver carregando.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Execute os seguintes comandos e tente atualizar novamente:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Não é possível instalar a atualização com o OverlayFS montado</string>
<string name="reboot">Reiniciar</string> <string name="reboot">Reiniciar</string>
<string name="menu_refresh">Atualizar</string> <string name="menu_refresh">Atualizar</string>
<string name="menu_preferences">Preferências</string> <string name="menu_preferences">Preferências</string>
<string name="menu_auto_updates_check">Autoverificar por atualizações</string> <string name="menu_auto_updates_check">Automaticamente buscar atualizações</string>
<string name="menu_auto_updates_check_interval_daily">Diariamente</string> <string name="menu_auto_updates_check_interval_daily">Diariamente</string>
<string name="menu_auto_updates_check_interval_weekly">Semanalmente</string> <string name="menu_auto_updates_check_interval_weekly">Semanalmente</string>
<string name="menu_auto_updates_check_interval_monthly">Mensalmente</string> <string name="menu_auto_updates_check_interval_monthly">Mensalmente</string>
<string name="menu_auto_updates_check_interval_never">Nunca</string> <string name="menu_auto_updates_check_interval_never">Nunca</string>
<string name="menu_auto_delete_updates">Excluir pacotes instalados</string> <string name="menu_auto_delete_updates">Excluir pacotes instalados</string>
<string name="menu_delete_update">Excluir</string> <string name="menu_delete_update">Excluir</string>
<string name="menu_copy_url">Copiar URL</string> <string name="menu_copy_url">Copiar URL</string>
<string name="menu_export_update">Exportar atualização</string> <string name="menu_export_update">Exportar atualização</string>
<string name="menu_show_changelog">Mostrar alterações</string> <string name="menu_show_changelog">Mostrar alterações</string>
<string name="menu_ab_perf_mode">Priorizar o processo de atualização</string> <string name="menu_ab_perf_mode">Priorizar o processo de atualização</string>
<string name="snack_updates_found">Nova atualização disponível</string> <string name="menu_update_recovery">Atualizar recuperação</string>
<string name="toast_forced_update_recovery">Não é possível desativar as atualizações do Lineage Recovery neste dispositivo.</string>
<string name="snack_updates_found">Novas atualizações disponíveis</string>
<string name="snack_no_updates_found">Não foram encontradas novas atualizações</string> <string name="snack_no_updates_found">Não foram encontradas novas atualizações</string>
<string name="snack_updates_check_failed">Falha ao procurar por atualizações. Verifique sua conexão com a internet e tente novamente.</string> <string name="snack_updates_check_failed">Falha ao buscar atualizações. Verifique sua conexão com a internet e tente novamente.</string>
<string name="snack_download_failed">Falha ao baixar a atualização. Verifique sua conexão com a internet e tente novamente.</string> <string name="snack_download_failed">Falha ao baixar a atualização. Verifique sua conexão com a internet e tente novamente.</string>
<string name="snack_download_verification_failed">Falha na verificação da atualização.</string> <string name="snack_download_verification_failed">Falha na verificação da atualização.</string>
<string name="snack_download_verified">Download concluído.</string> <string name="snack_download_verified">Download concluído.</string>
<string name="snack_update_not_installable">Esta atualização não pode ser instalada por cima da versão atual.</string> <string name="snack_update_not_installable">Esta atualização não pode ser instalada por cima da versão atual.</string>
<string name="header_title_text">LineageOS\n%1$s</string> <string name="header_title_text">LineageOS\n%1$s</string>
<string name="header_android_version">Android <xliff:g id="version" example="7.1.2">%1$s</xliff:g></string> <string name="header_android_version">Android <xliff:g id="version" example="7.1.2">%1$s</xliff:g></string>
<string name="header_last_updates_check">Última verificação: <xliff:g id="date" example="1 January 1970">%1$s</xliff:g> às <xliff:g id="time" example="01:23">%2$s</xliff:g></string> <string name="header_last_updates_check">Última busca: <xliff:g id="date" example="1 January 1970">%1$s</xliff:g> às <xliff:g id="time" example="01:23">%2$s</xliff:g></string>
<string name="list_build_version">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g></string> <string name="list_build_version">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g></string>
<string name="list_build_version_date">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g> - <xliff:g id="date" example="July 11, 2017">%2$s</xliff:g></string> <string name="list_build_version_date">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g> - <xliff:g id="date" example="July 11, 2017">%2$s</xliff:g></string>
<string name="list_download_progress_newer"><xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g> de <xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g></string>
<string name="list_download_progress_eta_newer"><xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g> de <xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g> (<xliff:g id="eta" example="3 minutes left">%3$s</xliff:g>)</string>
<string name="list_verifying_update">Verificando atualização</string> <string name="list_verifying_update">Verificando atualização</string>
<string name="list_no_updates">Não foram encontradas novas atualizações. Use o botão Atualizar para buscar por novas atualizações manualmente.</string> <string name="list_no_updates">Não foram encontradas novas atualizações. Use o botão Atualizar para buscar por novas atualizações manualmente.</string>
<string name="action_download">Baixar</string> <string name="action_download">Baixar</string>
<string name="action_pause">Pausar</string> <string name="action_pause">Pausar</string>
<string name="action_resume">Continuar</string> <string name="action_resume">Retomar</string>
<string name="action_install">Instalar</string> <string name="action_install">Instalar</string>
<string name="action_info">Informações</string> <string name="action_info">Informações</string>
<string name="action_delete">Excluir</string> <string name="action_delete">Excluir</string>
@@ -77,13 +87,16 @@
<string name="confirm_delete_dialog_title">Excluir arquivo</string> <string name="confirm_delete_dialog_title">Excluir arquivo</string>
<string name="confirm_delete_dialog_message">Excluir o arquivo de atualização selecionado?</string> <string name="confirm_delete_dialog_message">Excluir o arquivo de atualização selecionado?</string>
<string name="apply_update_dialog_title">Instalar atualização</string> <string name="apply_update_dialog_title">Instalar atualização</string>
<string name="apply_update_dialog_message">Você está prestes a instalar <xliff:g id="update_name">%1$s</xliff:g>.\n\nSe você pressionar <xliff:g id="ok">%2$s</xliff:g>, o dispositivo será reiniciado no modo de recuperação para instalar a atualização.\n\nObservação: Esse recurso requer uma recuperação compatível ou as atualizações precisarão ser instaladas manualmente.</string>
<string name="apply_update_dialog_message_ab">Você está prestes a instalar <xliff:g id="update_name">%1$s</xliff:g>.\n\nSe você pressionar <xliff:g id="ok">%2$s</xliff:g>, a instalação do dispositivo começará em segundo plano.\n\nDepois de concluído, você será solicitado a reiniciar o dispositivo.</string>
<string name="cancel_installation_dialog_message">Deseja cancelar a instalação?</string> <string name="cancel_installation_dialog_message">Deseja cancelar a instalação?</string>
<string name="label_download_url">URL de Download</string> <string name="label_download_url">URL de download </string>
<string name="toast_download_url_copied">URL copiado</string> <string name="toast_download_url_copied">URL copiada</string>
<string name="dialog_export_title">Exportando atualização</string> <string name="dialog_export_title">Exportando atualização</string>
<string name="notification_export_success">Atualização exportada</string> <string name="notification_export_success">Atualização exportada</string>
<string name="notification_export_fail">Falha ao exportar</string> <string name="notification_export_fail">Falha ao exportar</string>
<string name="toast_already_exporting">Uma atualização já está sendo exportada</string> <string name="toast_already_exporting">Uma atualização já está sendo exportada</string>
<string name="toast_export_started">Exportação iniciada</string>
<plurals name="eta_seconds"> <plurals name="eta_seconds">
<item quantity="one">1 segundo restante</item> <item quantity="one">1 segundo restante</item>
<item quantity="other"><xliff:g id="count">%d</xliff:g> segundos restantes</item> <item quantity="other"><xliff:g id="count">%d</xliff:g> segundos restantes</item>
@@ -96,15 +109,25 @@
<item quantity="one">1 hora restante</item> <item quantity="one">1 hora restante</item>
<item quantity="other"><xliff:g id="count">%d</xliff:g> horas restantes</item> <item quantity="other"><xliff:g id="count">%d</xliff:g> horas restantes</item>
</plurals> </plurals>
<string name="update_over_metered_network_title">Aviso</string> <string name="update_over_metered_network_title">Alerta</string>
<string name="update_over_metered_network_message">Você está prestes a baixar um pacote de atualização em uma rede medida, o que provavelmente causará um alto consumo de dados. Deseja continuar?</string>
<string name="checkbox_metered_network_warning">Não mostrar novamente</string> <string name="checkbox_metered_network_warning">Não mostrar novamente</string>
<string name="menu_metered_network_warning">Aviso de rede limitada</string> <string name="menu_metered_network_warning">Alerta de rede limitada</string>
<string name="blocked_update_dialog_title">Atualização bloqueada</string> <string name="blocked_update_dialog_title">Atualização bloqueada</string>
<string name="blocked_update_dialog_message">Esta atualização não pode ser instalada pelo Atualizador. Leia <xliff:g id="info_url">%1$s</xliff:g> para obter mais informações.</string> <string name="blocked_update_dialog_message">Esta atualização não pode ser instalada pelo app Atualizador. Leia <xliff:g id="info_url">%1$s</xliff:g> para mais informações.</string>
<string name="export_channel_title">Exportação concluída</string> <string name="export_channel_title">Exportação concluída</string>
<string name="new_updates_channel_title">Novas atualizações</string> <string name="new_updates_channel_title">Novas atualizações</string>
<string name="ongoing_channel_title">Downloads em andamento</string> <string name="ongoing_channel_title">Downloads em andamento</string>
<string name="update_failed_channel_title">Falha ao atualizar</string> <string name="update_failed_channel_title">Falha ao atualizar</string>
<string name="info_dialog_title">Você sabia?</string> <string name="info_dialog_title">Você sabia?</string>
<string name="info_dialog_ok">Agradecemos o seu comentário!</string> <string name="info_dialog_message">As atualizações do LineageOS são pacotes de instalação completos. Isso significa que você sempre pode instalar apenas a atualização mais recente, mesmo que você tenha ignorado versões anteriores!</string>
<string name="info_dialog_ok">Obrigado pela dica!</string>
<string name="local_update_import">Atualização local</string>
<string name="local_update_import_progress">Importando atualização local\u2026</string>
<string name="local_update_import_success">%1$s foi importado. Você quer instalá-lo?</string>
<string name="local_update_import_failure">Falha ao importar a atualização local</string>
<string name="local_update_import_install">Instalar</string>
<string name="local_update_name">Atualização local</string>
<string name="welcome_title">Boas vindas</string>
<string name="welcome_message">Observe que quando há várias atualizações disponíveis, não há necessidade de instalar todas, você sempre pode instalar a mais recente e então excluir atualizações antigas para liberar espaço de armazenamento.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Preparação preliminar de atualização</string> <string name="dialog_prepare_zip_message">Preparação preliminar de atualização</string>
<string name="dialog_battery_low_title">Bateria fraca</string> <string name="dialog_battery_low_title">Bateria fraca</string>
<string name="dialog_battery_low_message_pct">O nível da bateria está demasiado baixo. Precisa de, pelo menos, <xliff:g id="percent_discharging">%1$d</xliff:g>%% de bateria para continuar, <xliff:g id="percent_charging">%2$d</xliff:g>%% se estiver a carregar.</string> <string name="dialog_battery_low_message_pct">O nível da bateria está demasiado baixo. Precisa de, pelo menos, <xliff:g id="percent_discharging">%1$d</xliff:g>%% de bateria para continuar, <xliff:g id="percent_charging">%2$d</xliff:g>%% se estiver a carregar.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Por favor, execute os seguintes comandos e tente novamente a atualização:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Não é possível instalar a atualização com OverlayFS montado</string>
<string name="reboot">Reiniciar</string> <string name="reboot">Reiniciar</string>
<string name="menu_refresh">Atualizar</string> <string name="menu_refresh">Atualizar</string>
<string name="menu_preferences">Preferências</string> <string name="menu_preferences">Preferências</string>
@@ -104,7 +110,9 @@
<item quantity="other"><xliff:g id="count">%d</xliff:g> horas restantes</item> <item quantity="other"><xliff:g id="count">%d</xliff:g> horas restantes</item>
</plurals> </plurals>
<string name="update_over_metered_network_title">Aviso</string> <string name="update_over_metered_network_title">Aviso</string>
<string name="update_over_metered_network_message">Está prestes a transferir uma atualização através de uma rede de acesso limitado, o que provavelmente irá resultar num elevado consumo de dados. Pretende continuar?</string>
<string name="checkbox_metered_network_warning">Não mostrar novamente</string> <string name="checkbox_metered_network_warning">Não mostrar novamente</string>
<string name="menu_metered_network_warning">Aviso de rede de acesso limitado</string>
<string name="blocked_update_dialog_title">Atualização bloqueada</string> <string name="blocked_update_dialog_title">Atualização bloqueada</string>
<string name="blocked_update_dialog_message">Esta atualização não pode ser instalada usando a aplicação do atualizador. Por favor, leia <xliff:g id="info_url">%1$s </xliff:g> para mais informações.</string> <string name="blocked_update_dialog_message">Esta atualização não pode ser instalada usando a aplicação do atualizador. Por favor, leia <xliff:g id="info_url">%1$s </xliff:g> para mais informações.</string>
<string name="export_channel_title">Conclusão da exportação</string> <string name="export_channel_title">Conclusão da exportação</string>
@@ -114,4 +122,12 @@
<string name="info_dialog_title">Sabias que?</string> <string name="info_dialog_title">Sabias que?</string>
<string name="info_dialog_message">As atualizações do LineageOS são pacotes de instalação completa. Isso significa que podes instalar apenas a última atualização, mesmo que tenhas ignorado alguns deles!</string> <string name="info_dialog_message">As atualizações do LineageOS são pacotes de instalação completa. Isso significa que podes instalar apenas a última atualização, mesmo que tenhas ignorado alguns deles!</string>
<string name="info_dialog_ok">Obrigado pela informação!</string> <string name="info_dialog_ok">Obrigado pela informação!</string>
<string name="local_update_import">Atualização local</string>
<string name="local_update_import_progress">A importar a atualização local\u2026</string>
<string name="local_update_import_success">%1$s foi importada. Pretende instalar?</string>
<string name="local_update_import_failure">Falha ao importar a atualização local</string>
<string name="local_update_import_install">Instalar</string>
<string name="local_update_name">Atualização local</string>
<string name="welcome_title">Bem-vindo</string>
<string name="welcome_message">Note que, quando há várias atualizações disponíveis, não há necessidade de instalá-las uma a uma. Pode sempre instalar a mais recente e eliminar as atualizações antigas para libertar espaço de armazenamento.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Pregătire preliminară pentru actualizare</string> <string name="dialog_prepare_zip_message">Pregătire preliminară pentru actualizare</string>
<string name="dialog_battery_low_title">Baterie slabă</string> <string name="dialog_battery_low_title">Baterie slabă</string>
<string name="dialog_battery_low_message_pct">Nivelul bateriei este prea scăzut. Aveți nevoie de cel puțin<xliff:g id="percent_discharging">%1$d</xliff:g>%% pentru a continua, <xliff:g id="percent_charging">%2$d</xliff:g>%% dacă telefonul este la încărcat.</string> <string name="dialog_battery_low_message_pct">Nivelul bateriei este prea scăzut. Aveți nevoie de cel puțin<xliff:g id="percent_discharging">%1$d</xliff:g>%% pentru a continua, <xliff:g id="percent_charging">%2$d</xliff:g>%% dacă telefonul este la încărcat.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Vă rugăm să rulați următoarele și să reîncărcați actualizarea:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Nu se poate instala actualizarea cu OverlayFS montat</string>
<string name="reboot">Repornire</string> <string name="reboot">Repornire</string>
<string name="menu_refresh">Reîmprospătare</string> <string name="menu_refresh">Reîmprospătare</string>
<string name="menu_preferences">Preferințe</string> <string name="menu_preferences">Preferințe</string>
@@ -125,4 +131,6 @@
<string name="local_update_import_failure">Eroare la importarea actualizării locale</string> <string name="local_update_import_failure">Eroare la importarea actualizării locale</string>
<string name="local_update_import_install">Instalați</string> <string name="local_update_import_install">Instalați</string>
<string name="local_update_name">Actualizare locală</string> <string name="local_update_name">Actualizare locală</string>
<string name="welcome_title">Bun venit</string>
<string name="welcome_message">Vă rugăm să rețineți că, atunci când sunt disponibile mai multe actualizări, nu este nevoie să treceți prin fiecare dintre ele, ci puteți instala întotdeauna cea mai recentă în mod direct și apoi să ștergeți în siguranță actualizările vechi pentru a elibera spațiul de stocare.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Подготовка обновления</string> <string name="dialog_prepare_zip_message">Подготовка обновления</string>
<string name="dialog_battery_low_title">Низкий заряд батареи</string> <string name="dialog_battery_low_title">Низкий заряд батареи</string>
<string name="dialog_battery_low_message_pct">Заряд батареи слишком мал. Для продолжения требуется не менее <xliff:g id="percent_discharging">%1$d</xliff:g>%% или более <xliff:g id="percent_charging">%2$d</xliff:g>%% при подключенном зарядном устройстве.</string> <string name="dialog_battery_low_message_pct">Заряд батареи слишком мал. Для продолжения требуется не менее <xliff:g id="percent_discharging">%1$d</xliff:g>%% или более <xliff:g id="percent_charging">%2$d</xliff:g>%% при подключенном зарядном устройстве.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Выполните следующие команды и повторите попытку обновления:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Невозможно установить обновление при примонтированной OverlayFS</string>
<string name="reboot">Перезапуск</string> <string name="reboot">Перезапуск</string>
<string name="menu_refresh">Обновить</string> <string name="menu_refresh">Обновить</string>
<string name="menu_preferences">Настройки</string> <string name="menu_preferences">Настройки</string>
@@ -128,4 +134,6 @@
<string name="local_update_import_failure">Не удалось импортировать локальное обновление</string> <string name="local_update_import_failure">Не удалось импортировать локальное обновление</string>
<string name="local_update_import_install">Установить</string> <string name="local_update_import_install">Установить</string>
<string name="local_update_name">Локальное обновление</string> <string name="local_update_name">Локальное обновление</string>
<string name="welcome_title">Добро пожаловать!</string>
<string name="welcome_message">Пожалуйста, обратите внимание, что при наличии нескольких обновлений нет необходимости переходить от одного обновления к другому. Вы всегда можете установить последнее, а затем безопасно удалить старые обновления, чтобы освободить место.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -20,6 +20,12 @@
<string name="pause_button">Pàusa</string> <string name="pause_button">Pàusa</string>
<string name="resume_button">Sighi</string> <string name="resume_button">Sighi</string>
<string name="installing_update_finished">Agiornamentu installadu</string> <string name="installing_update_finished">Agiornamentu installadu</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Esecuta is cumandos imbenientes e torra a atualizare:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Impossìbile installare s\'atualizatzione cun su OverlayFS montadu</string>
<string name="reboot">Torra a allùghere</string> <string name="reboot">Torra a allùghere</string>
<string name="menu_preferences">Preferèntzias</string> <string name="menu_preferences">Preferèntzias</string>
<string name="menu_delete_update">Iscantzella</string> <string name="menu_delete_update">Iscantzella</string>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Predhodna priprava posodobitve</string> <string name="dialog_prepare_zip_message">Predhodna priprava posodobitve</string>
<string name="dialog_battery_low_title">Nizko stanje baterije</string> <string name="dialog_battery_low_title">Nizko stanje baterije</string>
<string name="dialog_battery_low_message_pct">Raven napolnjenosti baterije je prenizka, potrebnih je vsaj <xliff:g id="percent_discharging">%1$d</xliff:g>%% baterije za nadaljevanje, <xliff:g id="percent_charging">%2$d</xliff:g>%% med polnjenjem.</string> <string name="dialog_battery_low_message_pct">Raven napolnjenosti baterije je prenizka, potrebnih je vsaj <xliff:g id="percent_discharging">%1$d</xliff:g>%% baterije za nadaljevanje, <xliff:g id="percent_charging">%2$d</xliff:g>%% med polnjenjem.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Izvedite naslednje ukaze in poskusite ponovno posodobiti:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Posodobitve ni mogoče namestiti s priklopljenim OverlayFS</string>
<string name="reboot">Vnovično zaženi</string> <string name="reboot">Vnovično zaženi</string>
<string name="menu_refresh">Osveži</string> <string name="menu_refresh">Osveži</string>
<string name="menu_preferences">Nastavitve</string> <string name="menu_preferences">Nastavitve</string>
@@ -81,7 +87,7 @@
<string name="confirm_delete_dialog_title">Izbriši datoteko</string> <string name="confirm_delete_dialog_title">Izbriši datoteko</string>
<string name="confirm_delete_dialog_message">Izbriši izbrano posodobitveno datoteko?</string> <string name="confirm_delete_dialog_message">Izbriši izbrano posodobitveno datoteko?</string>
<string name="apply_update_dialog_title">Uveljavi posodobitev</string> <string name="apply_update_dialog_title">Uveljavi posodobitev</string>
<string name="apply_update_dialog_message">Ste pred namestitvijo <xliff:g id="update_name">%1$s</xliff:g>.\n\nČe pritisnete <xliff:g id="ok">%2$s</xliff:g>, se bo naprava vnovično zagnala v obnovitveni način, da namesti posodobitev.\n\nOpomba: Ta značilnost zahteva združljivo Obnovitev ali pa bodo morale posodobitve biti nameščene ročno.</string> <string name="apply_update_dialog_message">Ste pred namestitvijo <xliff:g id="update_name">%1$s</xliff:g>.\n\nČe pritisnete <xliff:g id="ok">%2$s</xliff:g>, se bo naprava vnovično zagnala v obnovitveni način, da namesti posodobitev.\n\nOpomba: Ta funkcija zahteva združljivo Obnovitev ali pa bodo morale posodobitve biti nameščene ročno.</string>
<string name="apply_update_dialog_message_ab">Ste pred namestitvijo <xliff:g id="update_name">%1$s</xliff:g>.\n\nČe pritisnete <xliff:g id="ok">%2$s</xliff:g>, bo naprava začela nameščanje v ozadju.\n\nOb zaključku boste pozvani k vnovičnemu zagonu.</string> <string name="apply_update_dialog_message_ab">Ste pred namestitvijo <xliff:g id="update_name">%1$s</xliff:g>.\n\nČe pritisnete <xliff:g id="ok">%2$s</xliff:g>, bo naprava začela nameščanje v ozadju.\n\nOb zaključku boste pozvani k vnovičnemu zagonu.</string>
<string name="cancel_installation_dialog_message">Prekliči nameščanje?</string> <string name="cancel_installation_dialog_message">Prekliči nameščanje?</string>
<string name="label_download_url">URL prenosa</string> <string name="label_download_url">URL prenosa</string>
@@ -128,4 +134,6 @@
<string name="local_update_import_failure">Uvoz lokalne posodobitve je spodletel</string> <string name="local_update_import_failure">Uvoz lokalne posodobitve je spodletel</string>
<string name="local_update_import_install">Namesti</string> <string name="local_update_import_install">Namesti</string>
<string name="local_update_name">Lokalna posodobitev</string> <string name="local_update_name">Lokalna posodobitev</string>
<string name="welcome_title">Dobrodošli</string>
<string name="welcome_message">Vedite, da, ko je na voljo več posodobitev, ni potrebno namestiti vsake, vedno lahko neposredno namestite zadnjo in nato varno izbrišete stare posodobitve, da sprostite prostor na pomnilniku.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -28,7 +28,7 @@
<string name="installation_suspended_notification">Instalimi u pezullua</string> <string name="installation_suspended_notification">Instalimi u pezullua</string>
<string name="new_updates_found_title">Përditësime të reja</string> <string name="new_updates_found_title">Përditësime të reja</string>
<string name="text_download_speed">%1$s, %2$s/s</string> <string name="text_download_speed">%1$s, %2$s/s</string>
<string name="pause_button">Pusho</string> <string name="pause_button">Ndalo</string>
<string name="resume_button">Rinis</string> <string name="resume_button">Rinis</string>
<string name="suspend_button">Pezullu</string> <string name="suspend_button">Pezullu</string>
<string name="installing_update">Duke instaluar paketën e përditësimit</string> <string name="installing_update">Duke instaluar paketën e përditësimit</string>
@@ -39,6 +39,11 @@
<string name="dialog_prepare_zip_message">Parapërgatitje për përditësimin</string> <string name="dialog_prepare_zip_message">Parapërgatitje për përditësimin</string>
<string name="dialog_battery_low_title">Bateria e ulët</string> <string name="dialog_battery_low_title">Bateria e ulët</string>
<string name="dialog_battery_low_message_pct">Niveli i baterië është shumë i ulët, për të vazhduar duhet të jetë të paktën <xliff:g id="percent_discharging">%1$d</xliff:g>%% e baterisë, ose <xliff:g id="percent_charging">%2$d</xliff:g>%% nëse po karikohet.</string> <string name="dialog_battery_low_message_pct">Niveli i baterië është shumë i ulët, për të vazhduar duhet të jetë të paktën <xliff:g id="percent_discharging">%1$d</xliff:g>%% e baterisë, ose <xliff:g id="percent_charging">%2$d</xliff:g>%% nëse po karikohet.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[Ju lutemi ekzekutoni komandat e mëposhtme dhe riprovoni përditësimin:\n
• rrënjë adb\n
• adb enable-verity\n
• rindezje adb]]></string>
<string name="dialog_scratch_mounted_title">Përditësimi nuk mund të instalohet me OverlayFS të montuar</string>
<string name="reboot">Rindiz</string> <string name="reboot">Rindiz</string>
<string name="menu_refresh">Rifresko</string> <string name="menu_refresh">Rifresko</string>
<string name="menu_preferences">Preferencat</string> <string name="menu_preferences">Preferencat</string>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -15,6 +15,8 @@
limitations under the License. limitations under the License.
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name">Uppdaterare</string>
<string name="display_name">Uppdaterare</string>
<string name="verification_failed_notification">Verifieringen misslyckades</string> <string name="verification_failed_notification">Verifieringen misslyckades</string>
<string name="verifying_download_notification">Verifierar uppdateringen</string> <string name="verifying_download_notification">Verifierar uppdateringen</string>
<string name="downloading_notification">Laddar ner</string> <string name="downloading_notification">Laddar ner</string>
@@ -22,6 +24,7 @@
<string name="download_paused_error_notification">Nedladdningsfel</string> <string name="download_paused_error_notification">Nedladdningsfel</string>
<string name="download_completed_notification">Nedladdning slutförd</string> <string name="download_completed_notification">Nedladdning slutförd</string>
<string name="download_starting_notification">Påbörjar nedladdning</string> <string name="download_starting_notification">Påbörjar nedladdning</string>
<string name="update_failed_notification">Uppdateringen misslyckades</string>
<string name="new_updates_found_title">Nya uppdateringar</string> <string name="new_updates_found_title">Nya uppdateringar</string>
<string name="text_download_speed">%1$s, %2$s/s</string> <string name="text_download_speed">%1$s, %2$s/s</string>
<string name="pause_button">Pausa</string> <string name="pause_button">Pausa</string>
@@ -32,6 +35,7 @@
<string name="dialog_battery_low_title">Låg batterinivå</string> <string name="dialog_battery_low_title">Låg batterinivå</string>
<string name="reboot">Starta om</string> <string name="reboot">Starta om</string>
<string name="menu_refresh">Uppdatera</string> <string name="menu_refresh">Uppdatera</string>
<string name="menu_preferences">Egenskaper</string>
<string name="menu_auto_updates_check">Sök efter uppdateringar automatiskt</string> <string name="menu_auto_updates_check">Sök efter uppdateringar automatiskt</string>
<string name="menu_auto_updates_check_interval_daily">En gång om dagen</string> <string name="menu_auto_updates_check_interval_daily">En gång om dagen</string>
<string name="menu_auto_updates_check_interval_weekly">En gång i veckan</string> <string name="menu_auto_updates_check_interval_weekly">En gång i veckan</string>
@@ -67,10 +71,23 @@
<string name="notification_export_success">Uppdatering exporterad</string> <string name="notification_export_success">Uppdatering exporterad</string>
<string name="notification_export_fail">Exporteringsfel</string> <string name="notification_export_fail">Exporteringsfel</string>
<string name="toast_export_started">Exportering startad</string> <string name="toast_export_started">Exportering startad</string>
<plurals name="eta_seconds">
<item quantity="one">1 sekund kvar</item>
<item quantity="other"><xliff:g id="count">%d</xliff:g> sekunder kvar</item>
</plurals>
<plurals name="eta_minutes">
<item quantity="one">1 minut kvar</item>
<item quantity="other"><xliff:g id="count">%d</xliff:g> minuter kvar</item>
</plurals>
<plurals name="eta_hours">
<item quantity="one">1 timme kvar</item>
<item quantity="other"><xliff:g id="count">%d</xliff:g> timmar kvar</item>
</plurals>
<string name="update_over_metered_network_title">Varning</string> <string name="update_over_metered_network_title">Varning</string>
<string name="update_over_metered_network_message">Du är på väg att ladda ner en uppdatering över mobilnätet vilket troligtvis kommer att orsaka hög dataanvändning. Vill du fortsätta?</string> <string name="update_over_metered_network_message">Du är på väg att ladda ner en uppdatering över mobilnätet vilket troligtvis kommer att orsaka hög dataanvändning. Vill du fortsätta?</string>
<string name="checkbox_metered_network_warning">Visa inte igen</string> <string name="checkbox_metered_network_warning">Visa inte igen</string>
<string name="menu_metered_network_warning">Mobildatavarning</string> <string name="menu_metered_network_warning">Mobildatavarning</string>
<string name="blocked_update_dialog_title">Uppdateringen blockerades</string>
<string name="export_channel_title">Export slutförd</string> <string name="export_channel_title">Export slutförd</string>
<string name="new_updates_channel_title">Nya uppdateringar</string> <string name="new_updates_channel_title">Nya uppdateringar</string>
<string name="ongoing_channel_title">Pågående nedladdningar</string> <string name="ongoing_channel_title">Pågående nedladdningar</string>

View File

@@ -0,0 +1,133 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name">இற்றைநர்</string>
<string name="display_name">இற்றைநர்</string>
<string name="verification_failed_notification">சரிபார்த்தல் தோல்வியுற்றது</string>
<string name="verifying_download_notification">இற்றையைச் சரிபார்க்கிறது</string>
<string name="downloading_notification">பதிவிறக்குகிறது</string>
<string name="download_paused_notification">பதிவிறக்கம் இடைநிறுத்தப்பட்டது</string>
<string name="download_paused_error_notification">பதிவிறக்கப் பிழை</string>
<string name="download_completed_notification">பதிவிறக்கம் முடிவுற்றது</string>
<string name="download_starting_notification">பதிவிறக்கம் தொடங்குகிறது</string>
<string name="update_failed_notification">இற்றை தோல்வியுற்றது</string>
<string name="installation_suspended_notification">நிறுவல் இடைநீக்கப்பட்டது</string>
<string name="new_updates_found_title">புதிய இற்றைகள்</string>
<string name="text_download_speed">%1$s, %2$s/s</string>
<string name="pause_button">இடைநிறுத்துக</string>
<string name="resume_button">மீண்டுந்தொடர்க</string>
<string name="suspend_button">இடைநீக்குக</string>
<string name="installing_update">இற்றைத் தொகுப்பு நிறுவுகிறது</string>
<string name="installing_update_error">நிறுவு பிழை</string>
<string name="installing_update_finished">இற்றை நிறுவப்பட்டது</string>
<string name="finalizing_package">தொகுப்பு நிறுவலை இறுதிப்படுத்துகிறது</string>
<string name="preparing_ota_first_boot">முதற்தொடக்கத்திற்கு ஏற்படுத்துகிறது</string>
<string name="dialog_prepare_zip_message">முதற்நிலை இற்றை ஏற்படுத்துதல்</string>
<string name="dialog_battery_low_title">குறைந்த மின்கலம்</string>
<string name="dialog_battery_low_message_pct">மின்கல நிலை மிகக்குறைவு; தொடர குறைந்தது <xliff:g id="percent_discharging">%1$d</xliff:g>%% மின்கலமாவது தேவை, மின்னூட்டலெனில், <xliff:g id="percent_charging">%2$d</xliff:g>%% மின்கலம் தேவை.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ பின்வரும் கட்டளைகளை இயக்கிய அப்புறம், இற்றையை மீண்டும் முயலவும்:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">OverlayFS ஏற்றப்பட்ட இற்றையை நிறுவ முடியாது</string>
<string name="reboot">மறு இயக்கம்</string>
<string name="menu_refresh">புதுக்குக</string>
<string name="menu_preferences">முன்விருப்பம்</string>
<string name="menu_auto_updates_check">தன்னியக்க இற்றைச் சரிபார்ப்பு</string>
<string name="menu_auto_updates_check_interval_daily">நாள் ஒரு முறை</string>
<string name="menu_auto_updates_check_interval_weekly">கிழமை ஒரு முறை</string>
<string name="menu_auto_updates_check_interval_monthly">திங்கள் ஒரு முறை</string>
<string name="menu_auto_updates_check_interval_never">என்றுமில்லை</string>
<string name="menu_auto_delete_updates">நிறுவப்பட்டபோது இற்றைகளை நீக்குக</string>
<string name="menu_delete_update">நீக்குக</string>
<string name="menu_copy_url">உரலியை நகலெடுக்க</string>
<string name="menu_export_update">இற்றையை ஏற்றுமதி செய்க</string>
<string name="menu_show_changelog">மாற்றுக்குறிப்பைக் காட்டுக</string>
<string name="menu_ab_perf_mode">இற்றைச் செயற்முறையை முன்னுரிமைப்படுத்துக</string>
<string name="menu_update_recovery">மீட்டெடுப்பை இற்றைப்படுத்துக</string>
<string name="toast_forced_update_recovery">Lineage மீட்டெடுப்பு இற்றைகளை முடக்குவது, இக்கருவியில் இயலாது.</string>
<string name="snack_updates_found">புதிய இற்றைகள் கிடைத்தன</string>
<string name="snack_no_updates_found">புதிய இற்றைகள் எவையும் கிடைக்கவில்லை</string>
<string name="snack_updates_check_failed">இற்றைச் சோதனை தோல்வியுற்றது; உங்கள் இணைய இணைப்பைச் சரிபார்த்த பிறகு, மீண்டும் முயற்சி செய்யவும்.</string>
<string name="snack_download_failed">பதிவிறக்கம் தோல்வியுற்றது; உங்கள் இணைய இணைப்பைச் சரிபார்த்த பிறகு, மீண்டும் முயற்சி செய்யவும்.</string>
<string name="snack_download_verification_failed">இற்றை சரிபார்ப்பு தோல்வியுற்றது.</string>
<string name="snack_download_verified">பதிவிறக்கம் முடிவுற்றது.</string>
<string name="snack_update_not_installable">தற்போதைய கட்டமைப்பின் மீது, இந்த இற்றையை நிறுவ முடியாது.</string>
<string name="header_title_text">LineageOS\n%1$s</string>
<string name="header_android_version">Android <xliff:g id="version" example="7.1.2">%1$s</xliff:g></string>
<string name="header_last_updates_check">கடைசியாகச் சரிபார்க்கப்பட்டது: <xliff:g id="date" example="1 January 1970">%1$s</xliff:g> (<xliff:g id="time" example="01:23">%2$s</xliff:g>)</string>
<string name="list_build_version">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g></string>
<string name="list_build_version_date">LineageOS <xliff:g id="version" example="14.1">%1$s</xliff:g> - <xliff:g id="date" example="July 11, 2017">%2$s</xliff:g></string>
<string name="list_download_progress_newer"><xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g> இல் <xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g></string>
<string name="list_download_progress_eta_newer"><xliff:g id="filesize_without_unit" example="310 MB">%2$s</xliff:g> இல் <xliff:g id="filesize_without_unit" example="12.2">%1$s</xliff:g> (<xliff:g id="eta" example="3 minutes left">%3$s</xliff:g>)</string>
<string name="list_verifying_update">இற்றையைச் சரிபார்க்கிறது</string>
<string name="list_no_updates">புதிய இற்றைகள் எவையும் கிடைக்கவில்லை; அவற்றைக் கைமுறையாகச் சரிபார்க்க, புதுப்பிப்பு விசையைப் பயன்படுத்துக.</string>
<string name="action_download">பதிவிறக்குக</string>
<string name="action_pause">இடைநிறுத்துக</string>
<string name="action_resume">மீண்டுந்தொடர்க</string>
<string name="action_install">நிறுவுக</string>
<string name="action_info">செய்தி</string>
<string name="action_delete">அழிக்க</string>
<string name="action_cancel">விலக்குக</string>
<string name="confirm_delete_dialog_title">கோப்பை நீக்குக</string>
<string name="confirm_delete_dialog_message">தேர்ந்தெடுக்கப்பட்ட இற்றைக் கோப்பை நீக்கவா?</string>
<string name="apply_update_dialog_title">இற்றையைச் செயற்படுத்துக</string>
<string name="apply_update_dialog_message"> <xliff:g id="update_name">%1$s</xliff:g>, என்பதை நீங்கள் நிறுவ உள்ளீர்; \n\nநீங்கள் <xliff:g id="ok">%2$s</xliff:g> என்பதை அழுத்தினால், இற்றையை நிறுவ கருவியானது தானாகவே மீட்டெடுப்பு முறையில் மறுதொடங்கும்.\n\nகுறிப்பு: இப்பண்புக்கூறுக்கு இணக்கமான மீட்டெடுப்பு தேவை; இல்லையெனில், இற்றைகளை கைமுறையாக நிறுவ வேண்டும்.</string>
<string name="apply_update_dialog_message_ab"><xliff:g id="update_name">%1$s</xliff:g>, என்பதை நீங்கள் நிறுவ உள்ளீர்; \n\nநீங்கள் <xliff:g id="ok">%2$s</xliff:g> என்பதை அழுத்தினால், பின்னணியில் கருவியானது நிறுவலைத் தொடங்கும்.\n\nமுடிந்ததும், மறு இயக்கம் செய்யும்படித் தூண்டப்படுவீர்.</string>
<string name="cancel_installation_dialog_message">நிறுவலை விலக்கவா?</string>
<string name="label_download_url">பதிவிறக்க உரலி</string>
<string name="toast_download_url_copied">உரலி நகலெடுக்கப்பட்டது</string>
<string name="dialog_export_title">இற்றை ஏற்றுமதி செய்தல்</string>
<string name="notification_export_success">இற்றை ஏற்றுமதி செய்யப்பட்டது</string>
<string name="notification_export_fail">ஏற்றுமதிப் பிழை</string>
<string name="toast_already_exporting">ஏற்கெனவே, ஒர் இற்றையை ஏற்றுமதி செய்கிறது</string>
<string name="toast_export_started">ஏற்றுமதி தொடங்கியது</string>
<plurals name="eta_seconds">
<item quantity="one">இன்னும் ஒரு நொடி</item>
<item quantity="other">இன்னும் <xliff:g id="count">%d</xliff:g> நொடி</item>
</plurals>
<plurals name="eta_minutes">
<item quantity="one">இன்னும் ஒரு நுணுத்தம்</item>
<item quantity="other">இன்னும் <xliff:g id="count">%d</xliff:g> நுணுத்தம்</item>
</plurals>
<plurals name="eta_hours">
<item quantity="one">இன்னும் ஒரு மணிநேரம்</item>
<item quantity="other">இன்னும் <xliff:g id="count">%d</xliff:g> மணிநேரம்</item>
</plurals>
<string name="update_over_metered_network_title">எச்சரிக்கை</string>
<string name="update_over_metered_network_message">வரம்பிட்ட பிணையத்தில் இற்றைத் தொகுப்பைப் பதிவிறக்க உள்ளீர்; இஃது உயர்ந்த தரவுப் பயன்பாட்டை ஏற்படுத்தக்கூடும்; நீங்கள் தொடர விரும்புகிறீரா?</string>
<string name="checkbox_metered_network_warning">மீண்டும் காட்ட வேண்டாம்</string>
<string name="menu_metered_network_warning">வரம்பிட்ட பிணைய எச்சரிக்கை</string>
<string name="blocked_update_dialog_title">இற்றை தடுக்கப்பட்டது</string>
<string name="blocked_update_dialog_message">இற்றைநர் செயலியைப் பயன்படுத்தி இவ்விற்றையை நிறுவ முடியாது. மேலும், தெரிவிப்புக்கு <xliff:g id="info_url">%1$s</xliff:g> இதைப் படிக்கவும்.</string>
<string name="export_channel_title">ஏற்றுமதி நிறைவுறல்</string>
<string name="new_updates_channel_title">புதிய இற்றைகள்</string>
<string name="ongoing_channel_title">நடப்புப் பதிவிறக்கங்கள்</string>
<string name="update_failed_channel_title">இற்றை தோல்வியுற்றது</string>
<string name="info_dialog_title">நீங்கள், அறிந்தீரா?</string>
<string name="info_dialog_message">LineageOS இற்றைகள் முழு நிறுவல் தொகுப்புகளாகும். அஃதாவது, நீங்கள் இடையில் சிலவற்றைத் தவிர்த்தாலும், எப்போதும் அண்மை இற்றையை மட்டுமே நிறுவ முடியும்!</string>
<string name="info_dialog_ok">தெரிவித்தலுக்கு நன்றி!</string>
<string name="local_update_import">உற்றிட இற்றை</string>
<string name="local_update_import_progress">உற்றிட இற்றையை இறக்குதல் \u2026</string>
<string name="local_update_import_success">%1$s என்பது இறக்கப்பட்டது; அதை நிறுவ வேண்டுமா?</string>
<string name="local_update_import_failure">உற்றிட இற்றை இறக்கல் தோல்வியுற்றது</string>
<string name="local_update_import_install">நிறுவுக</string>
<string name="local_update_name">உற்றிட இற்றை</string>
<string name="welcome_title">நல்வரவு</string>
<string name="welcome_message">இற்றைகள் பல கிடைக்கும்போது, ​​ஒவ்வொன்றாகச் செல்ல வேண்டியதில்லை என்பதை நினைவில் கொள்ளவும், நீர் எப்போதும் மிகப்பிந்தியதை நேரடியாக நிறுவலாம், பிறகு சேமிப்பிடத்தை விடுவிக்கப் பழைய இற்றைகளைப் பாதுகாப்பாக நீக்கலாம்.</string>
</resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -104,7 +104,9 @@
<item quantity="other"><xliff:g id="count">%d</xliff:g> saat kaldı</item> <item quantity="other"><xliff:g id="count">%d</xliff:g> saat kaldı</item>
</plurals> </plurals>
<string name="update_over_metered_network_title">Uyarı</string> <string name="update_over_metered_network_title">Uyarı</string>
<string name="update_over_metered_network_message">Mobil veri kullanarak, büyük olasılıkla yüksek veri kullanımına yol açacak bir güncelleme paketi indirmek üzeresiniz. Devam etmek ister misiniz?</string>
<string name="checkbox_metered_network_warning">Tekrar gösterme</string> <string name="checkbox_metered_network_warning">Tekrar gösterme</string>
<string name="menu_metered_network_warning">Mobil veri uyarısı</string>
<string name="blocked_update_dialog_title">Güncelleme engellendi</string> <string name="blocked_update_dialog_title">Güncelleme engellendi</string>
<string name="blocked_update_dialog_message">Bu güncelleme, güncelleyici uygulaması kullanılarak kurulamaz. Daha fazla bilgi için lütfen <xliff:g id="info_url">%1$s</xliff:g> adresini okuyun.</string> <string name="blocked_update_dialog_message">Bu güncelleme, güncelleyici uygulaması kullanılarak kurulamaz. Daha fazla bilgi için lütfen <xliff:g id="info_url">%1$s</xliff:g> adresini okuyun.</string>
<string name="export_channel_title">Dışa aktarma tamamlandı</string> <string name="export_channel_title">Dışa aktarma tamamlandı</string>
@@ -114,4 +116,10 @@
<string name="info_dialog_title">Biliyor musun?</string> <string name="info_dialog_title">Biliyor musun?</string>
<string name="info_dialog_message">LineageOS güncellemeleri tam yükleme paketleridir. Bu demektir ki güncelleme atlamış olsanız bile her zaman sadece son güncellemeyi kurabilirsiniz!</string> <string name="info_dialog_message">LineageOS güncellemeleri tam yükleme paketleridir. Bu demektir ki güncelleme atlamış olsanız bile her zaman sadece son güncellemeyi kurabilirsiniz!</string>
<string name="info_dialog_ok">Bilgi için teşekkürler!</string> <string name="info_dialog_ok">Bilgi için teşekkürler!</string>
<string name="local_update_import">Yerel güncelleme</string>
<string name="local_update_import_progress">Yerel güncelleme içe aktarılıyor</string>
<string name="local_update_import_success">%1$s içe aktarıldı. Yüklemek istiyor musunuz?</string>
<string name="local_update_import_failure">Yerel güncelleme içe aktarılamadı</string>
<string name="local_update_import_install">Yükle</string>
<string name="local_update_name">Yerel güncelleme</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">Chuẩn bị cập nhật sơ bộ</string> <string name="dialog_prepare_zip_message">Chuẩn bị cập nhật sơ bộ</string>
<string name="dialog_battery_low_title">Pin yếu</string> <string name="dialog_battery_low_title">Pin yếu</string>
<string name="dialog_battery_low_message_pct">Mức pin quá thấp, bạn cần tối thiểu <xliff:g id="percent_discharging">%1$d</xliff:g>%% pin để tiếp tục, <xliff:g id="percent_charging">%2$d</xliff:g>%% nếu đang sạc.</string> <string name="dialog_battery_low_message_pct">Mức pin quá thấp, bạn cần tối thiểu <xliff:g id="percent_discharging">%1$d</xliff:g>%% pin để tiếp tục, <xliff:g id="percent_charging">%2$d</xliff:g>%% nếu đang sạc.</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ Vui lòng chạy các lệnh sau và thử cập nhật lại:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">Không thể cài đặt cập nhật khi OverlayFS được gắn kết</string>
<string name="reboot">Khởi động lại</string> <string name="reboot">Khởi động lại</string>
<string name="menu_refresh">Làm mới</string> <string name="menu_refresh">Làm mới</string>
<string name="menu_preferences">Tùy chỉnh</string> <string name="menu_preferences">Tùy chỉnh</string>
@@ -119,4 +125,6 @@
<string name="local_update_import_failure">Không nhập được bản cập nhật cục bộ</string> <string name="local_update_import_failure">Không nhập được bản cập nhật cục bộ</string>
<string name="local_update_import_install">Cài đặt</string> <string name="local_update_import_install">Cài đặt</string>
<string name="local_update_name">Cập nhật cục bộ</string> <string name="local_update_name">Cập nhật cục bộ</string>
<string name="welcome_title">Chào mừng</string>
<string name="welcome_message">Xin lưu ý rằng khi có nhiều bản cập nhật khả dụng, bạn không cần phải cập nhật từng bản một. Bạn có thể cài đặt trực tiếp bản cập nhật mới nhất rồi xóa an toàn các bản cập nhật cũ hơn để giải phóng dung lượng lưu trữ.</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">预备更新准备</string> <string name="dialog_prepare_zip_message">预备更新准备</string>
<string name="dialog_battery_low_title">低电量</string> <string name="dialog_battery_low_title">低电量</string>
<string name="dialog_battery_low_message_pct">电量过低,您需要至少 <xliff:g id="percent_discharging">%1$d</xliff:g>%% 的电量才能继续;如果正在充电,则需要 <xliff:g id="percent_charging">%2$d</xliff:g>%% 的电量才能继续。</string> <string name="dialog_battery_low_message_pct">电量过低,您需要至少 <xliff:g id="percent_discharging">%1$d</xliff:g>%% 的电量才能继续;如果正在充电,则需要 <xliff:g id="percent_charging">%2$d</xliff:g>%% 的电量才能继续。</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ 请运行以下命令来重新安装更新:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">无法在使用OverlayFS挂载的情况下安装更新</string>
<string name="reboot">重新启动</string> <string name="reboot">重新启动</string>
<string name="menu_refresh">刷新</string> <string name="menu_refresh">刷新</string>
<string name="menu_preferences">首选项</string> <string name="menu_preferences">首选项</string>
@@ -119,4 +125,6 @@
<string name="local_update_import_failure">导入本地更新失败</string> <string name="local_update_import_failure">导入本地更新失败</string>
<string name="local_update_import_install">安装</string> <string name="local_update_import_install">安装</string>
<string name="local_update_name">本地更新</string> <string name="local_update_name">本地更新</string>
<string name="welcome_title">欢迎</string>
<string name="welcome_message">请注意,当有多个更新可用时,无需逐个更新,可以直接安装最新的更新,然后安全地删除旧的更新以释放存储空间。</string>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -39,6 +39,12 @@
<string name="dialog_prepare_zip_message">正在準備更新</string> <string name="dialog_prepare_zip_message">正在準備更新</string>
<string name="dialog_battery_low_title">電量不足</string> <string name="dialog_battery_low_title">電量不足</string>
<string name="dialog_battery_low_message_pct">電池電量過低,您需要至少 <xliff:g id="percent_discharging">%1$d</xliff:g>%% 的電量才能繼續;如果正在充電,則需要 <xliff:g id="percent_charging">%2$d</xliff:g>%% 的電量才能繼續。</string> <string name="dialog_battery_low_message_pct">電池電量過低,您需要至少 <xliff:g id="percent_discharging">%1$d</xliff:g>%% 的電量才能繼續;如果正在充電,則需要 <xliff:g id="percent_charging">%2$d</xliff:g>%% 的電量才能繼續。</string>
<string name="dialog_scratch_mounted_message"><![CDATA[ 請執行以下指令,然後重試更新:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]></string>
<string name="dialog_scratch_mounted_title">無法在掛載 OverlayFS 的情況下安裝更新</string>
<string name="reboot">重新啟動</string> <string name="reboot">重新啟動</string>
<string name="menu_refresh">重新整理</string> <string name="menu_refresh">重新整理</string>
<string name="menu_preferences">使用偏好</string> <string name="menu_preferences">使用偏好</string>

View File

@@ -9,5 +9,4 @@
<color name="tv_card_background">#222222</color> <color name="tv_card_background">#222222</color>
<color name="inverted">#212121</color> <color name="inverted">#212121</color>
<color name="ic_background">#333333</color>
</resources> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright (C) 2017-2023 The LineageOS Project Copyright (C) 2017-2024 The LineageOS Project
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@@ -60,6 +60,15 @@
<string name="dialog_prepare_zip_message">Preliminary update preparation</string> <string name="dialog_prepare_zip_message">Preliminary update preparation</string>
<string name="dialog_battery_low_title">Low battery</string> <string name="dialog_battery_low_title">Low battery</string>
<string name="dialog_battery_low_message_pct">The battery level is too low, you need at least <xliff:g id="percent_discharging">%1$d</xliff:g>%% of the battery to continue, <xliff:g id="percent_charging">%2$d</xliff:g>%% if charging.</string> <string name="dialog_battery_low_message_pct">The battery level is too low, you need at least <xliff:g id="percent_discharging">%1$d</xliff:g>%% of the battery to continue, <xliff:g id="percent_charging">%2$d</xliff:g>%% if charging.</string>
<string name="dialog_scratch_mounted_message">
<![CDATA[
Please run the following commands and retry the update:\n
• adb root\n
• adb enable-verity\n
• adb reboot
]]>
</string>
<string name="dialog_scratch_mounted_title">Cannot install update with OverlayFS mounted</string>
<string name="reboot">Reboot</string> <string name="reboot">Reboot</string>
@@ -147,7 +156,7 @@
<string name="blocked_update_dialog_title">Update blocked</string> <string name="blocked_update_dialog_title">Update blocked</string>
<string name="blocked_update_dialog_message">This update cannot be installed using the updater app. Please read <xliff:g id="info_url">%1$s</xliff:g> for more information.</string> <string name="blocked_update_dialog_message">This update cannot be installed using the updater app. Please read <xliff:g id="info_url">%1$s</xliff:g> for more information.</string>
<string name="blocked_update_info_url" translatable="false">http://wiki.lineageos.org/devices/<xliff:g id="device_name">%1$s</xliff:g>/upgrade</string> <string name="blocked_update_info_url" translatable="false">https://wiki.lineageos.org/devices/<xliff:g id="device_name">%1$s</xliff:g>/upgrade/</string>
<string name="export_channel_title">Export completion</string> <string name="export_channel_title">Export completion</string>
<string name="new_updates_channel_title">New updates</string> <string name="new_updates_channel_title">New updates</string>
@@ -164,4 +173,7 @@
<string name="local_update_import_failure">Failed to import local update</string> <string name="local_update_import_failure">Failed to import local update</string>
<string name="local_update_import_install">Install</string> <string name="local_update_import_install">Install</string>
<string name="local_update_name">Local update</string> <string name="local_update_name">Local update</string>
<string name="welcome_title">Welcome</string>
<string name="welcome_message">Please note that when multiple updates are available, there is no need to go update-by-update, you can always install the latest one directly, and then safely delete old updates to free up storage space.</string>
</resources> </resources>

View File

@@ -8,6 +8,7 @@
<item name="android:windowLightStatusBar">@bool/theme_is_light</item> <item name="android:windowLightStatusBar">@bool/theme_is_light</item>
<item name="android:windowLightNavigationBar">@bool/theme_is_light</item> <item name="android:windowLightNavigationBar">@bool/theme_is_light</item>
<item name="android:windowBackground">@color/background</item> <item name="android:windowBackground">@color/background</item>
<item name="alertDialogTheme">@style/AppTheme.AlertDialogTheme</item>
</style> </style>
<style name="AppTheme.NoActionBar"> <style name="AppTheme.NoActionBar">
@@ -18,18 +19,13 @@
<item name="android:navigationBarColor">@android:color/transparent</item> <item name="android:navigationBarColor">@android:color/transparent</item>
</style> </style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.ActionBar" />
<style name="TextAppearanceInverted" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/inverted</item>
</style>
<style name="TextAppearanceTransparent" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@android:color/transparent</item>
</style>
<style name="AppTheme.PopupMenuOverlapAnchor"> <style name="AppTheme.PopupMenuOverlapAnchor">
<item name="android:overlapAnchor">true</item> <item name="android:overlapAnchor">true</item>
<item name="android:dropDownVerticalOffset">8dp</item> <item name="android:dropDownVerticalOffset">8dp</item>
<item name="android:dropDownHorizontalOffset">-16dp</item> <item name="android:dropDownHorizontalOffset">-16dp</item>
</style> </style>
<style name="AppTheme.AlertDialogTheme" parent="Theme.AppCompat.DayNight.Dialog.Alert">
<item name="dialogCornerRadius">16dp</item>
</style>
</resources> </resources>

View File

@@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins { plugins {
id("com.android.application") version "7.4.1" apply false id("com.android.application") version "8.7.3" apply false
id("com.android.library") version "7.4.1" apply false id("com.android.library") version "8.7.3" apply false
id("org.jetbrains.kotlin.android") version "1.7.10" apply false id("org.jetbrains.kotlin.android") version "1.7.10" apply false
} }

View File

@@ -21,3 +21,5 @@ kotlin.code.style=official
# resources declared in the library itself and none from the library's dependencies, # resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library # thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true android.nonTransitiveRClass=true
android.defaults.buildfeatures.buildconfig=true
android.nonFinalResIds=false

Binary file not shown.

View File

@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

297
gradlew vendored
View File

@@ -1,7 +1,7 @@
#!/usr/bin/env sh #!/bin/sh
# #
# Copyright 2015 the original author or authors. # Copyright © 2015-2021 the original authors.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@@ -15,69 +15,104 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
# #
# SPDX-License-Identifier: Apache-2.0
#
############################################################################## ##############################################################################
## #
## Gradle start up script for UN*X # Gradle start up script for POSIX generated by Gradle.
## #
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
############################################################################## ##############################################################################
# Attempt to set APP_HOME # Attempt to set APP_HOME
# Resolve links: $0 may be a link # Resolve links: $0 may be a link
PRG="$0" app_path=$0
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do # Need this for daisy-chained symlinks.
ls=`ls -ld "$PRG"` while
link=`expr "$ls" : '.*-> \(.*\)$'` APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
if expr "$link" : '/.*' > /dev/null; then [ -h "$app_path" ]
PRG="$link" do
else ls=$( ls -ld "$app_path" )
PRG=`dirname "$PRG"`"/$link" link=${ls#*' -> '}
fi case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle" # This is normally unused
APP_BASE_NAME=`basename "$0"` # shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value. # Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum" MAX_FD=maximum
warn () { warn () {
echo "$*" echo "$*"
} } >&2
die () { die () {
echo echo
echo "$*" echo "$*"
echo echo
exit 1 exit 1
} } >&2
# OS specific support (must be 'true' or 'false'). # OS specific support (must be 'true' or 'false').
cygwin=false cygwin=false
msys=false msys=false
darwin=false darwin=false
nonstop=false nonstop=false
case "`uname`" in case "$( uname )" in #(
CYGWIN* ) CYGWIN* ) cygwin=true ;; #(
cygwin=true Darwin* ) darwin=true ;; #(
;; MSYS* | MINGW* ) msys=true ;; #(
Darwin* ) NONSTOP* ) nonstop=true ;;
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
@@ -87,9 +122,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
if [ -n "$JAVA_HOME" ] ; then if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables # IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java" JAVACMD=$JAVA_HOME/jre/sh/java
else else
JAVACMD="$JAVA_HOME/bin/java" JAVACMD=$JAVA_HOME/bin/java
fi fi
if [ ! -x "$JAVACMD" ] ; then if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
@@ -98,88 +133,120 @@ Please set the JAVA_HOME variable in your environment to match the
location of your Java installation." location of your Java installation."
fi fi
else else
JAVACMD="java" JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the Please set the JAVA_HOME variable in your environment to match the
location of your Java installation." location of your Java installation."
fi
fi fi
# Increase the maximum file descriptors if we can. # Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
MAX_FD_LIMIT=`ulimit -H -n` case $MAX_FD in #(
if [ $? -eq 0 ] ; then max*)
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
MAX_FD="$MAX_FD_LIMIT" # shellcheck disable=SC2039,SC3045
fi MAX_FD=$( ulimit -H -n ) ||
ulimit -n $MAX_FD warn "Could not query maximum file descriptor limit"
if [ $? -ne 0 ] ; then esac
warn "Could not set maximum file descriptor limit: $MAX_FD" case $MAX_FD in #(
fi '' | soft) :;; #(
else *)
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
fi # shellcheck disable=SC2039,SC3045
fi ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac esac
fi fi
# Escape application args # Collect all arguments for the java command, stacking in reverse order:
save () { # * args from the command line
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done # * the main class name
echo " " # * -classpath
} # * -D...appname settings
APP_ARGS=`save "$@"` # * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# Collect all arguments for the java command, following the shell quoting and substitution rules # For Cygwin or MSYS, switch paths to Windows format before running java
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done
fi
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@" exec "$JAVACMD" "$@"

37
gradlew.bat vendored
View File

@@ -13,8 +13,10 @@
@rem See the License for the specific language governing permissions and @rem See the License for the specific language governing permissions and
@rem limitations under the License. @rem limitations under the License.
@rem @rem
@rem SPDX-License-Identifier: Apache-2.0
@rem
@if "%DEBUG%" == "" @echo off @if "%DEBUG%"=="" @echo off
@rem ########################################################################## @rem ##########################################################################
@rem @rem
@rem Gradle startup script for Windows @rem Gradle startup script for Windows
@@ -25,7 +27,8 @@
if "%OS%"=="Windows_NT" setlocal if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0 set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=. if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0 set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME% set APP_HOME=%DIRNAME%
@@ -40,13 +43,13 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1 %JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute if %ERRORLEVEL% equ 0 goto execute
echo. echo. 1>&2
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
echo. echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. echo location of your Java installation. 1>&2
goto fail goto fail
@@ -56,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute if exist "%JAVA_EXE%" goto execute
echo. echo. 1>&2
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
echo. echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. echo location of your Java installation. 1>&2
goto fail goto fail
@@ -75,13 +78,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
:end :end
@rem End local scope for the variables with windows NT shell @rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd if %ERRORLEVEL% equ 0 goto mainEnd
:fail :fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code! rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 set EXIT_CODE=%ERRORLEVEL%
exit /b 1 if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd :mainEnd
if "%OS%"=="Windows_NT" endlocal if "%OS%"=="Windows_NT" endlocal

View File

@@ -24,6 +24,7 @@ fi
zip_path_device=$updates_dir/`basename "$zip_path"` zip_path_device=$updates_dir/`basename "$zip_path"`
if adb shell test -f "$zip_path_device"; then if adb shell test -f "$zip_path_device"; then
echo "$zip_path_device exists already" echo "$zip_path_device exists already"
adb unroot
exit 1 exit 1
fi fi