diff --git a/apex/jobscheduler/framework/java/android/app/AlarmManager.java b/apex/jobscheduler/framework/java/android/app/AlarmManager.java
index 7393bcde13b62940c9e6f165946c913bf1222286..21ed1eb6bef8e8a309f8e5affbef3117f7c6d957 100644
--- a/apex/jobscheduler/framework/java/android/app/AlarmManager.java
+++ b/apex/jobscheduler/framework/java/android/app/AlarmManager.java
@@ -37,7 +37,9 @@ import android.os.Handler;
import android.os.HandlerExecutor;
import android.os.Parcel;
import android.os.Parcelable;
+import android.os.Process;
import android.os.RemoteException;
+import android.os.UserHandle;
import android.os.WorkSource;
import android.text.TextUtils;
import android.util.Log;
@@ -91,6 +93,14 @@ import java.util.concurrent.Executor;
public class AlarmManager {
private static final String TAG = "AlarmManager";
+ /**
+ * Prefix used by {{@link #makeTag(long, WorkSource)}} to make a tag on behalf of the caller
+ * when the {@link #set(int, long, long, long, OnAlarmListener, Handler, WorkSource)} API is
+ * used. This prefix is a unique sequence of characters to differentiate with other tags that
+ * apps may provide to other APIs that accept a listener callback.
+ */
+ private static final String GENERATED_TAG_PREFIX = "$android.alarm.generated";
+
/** @hide */
@IntDef(prefix = { "RTC", "ELAPSED" }, value = {
RTC_WAKEUP,
@@ -860,6 +870,24 @@ public class AlarmManager {
targetHandler, workSource, null);
}
+ /**
+ * This is only used to make an identifying tag for the deprecated
+ * {@link #set(int, long, long, long, OnAlarmListener, Handler, WorkSource)} API which doesn't
+ * accept a tag. For all other APIs, the tag provided by the app is used, even if it is
+ * {@code null}.
+ */
+ private static String makeTag(long triggerMillis, WorkSource ws) {
+ final StringBuilder tagBuilder = new StringBuilder(GENERATED_TAG_PREFIX);
+
+ tagBuilder.append(":");
+ final int attributionUid =
+ (ws == null || ws.isEmpty()) ? Process.myUid() : ws.getAttributionUid();
+ tagBuilder.append(UserHandle.formatUid(attributionUid));
+ tagBuilder.append(":");
+ tagBuilder.append(triggerMillis);
+ return tagBuilder.toString();
+ }
+
/**
* Direct callback version of {@link #set(int, long, long, long, PendingIntent, WorkSource)}.
* Note that repeating alarms must use the PendingIntent variant, not an OnAlarmListener.
@@ -875,8 +903,8 @@ public class AlarmManager {
public void set(@AlarmType int type, long triggerAtMillis, long windowMillis,
long intervalMillis, OnAlarmListener listener, Handler targetHandler,
WorkSource workSource) {
- setImpl(type, triggerAtMillis, windowMillis, intervalMillis, 0, null, listener, null,
- targetHandler, workSource, null);
+ setImpl(type, triggerAtMillis, windowMillis, intervalMillis, 0, null, listener,
+ makeTag(triggerAtMillis, workSource), targetHandler, workSource, null);
}
/**
diff --git a/apex/jobscheduler/framework/java/com/android/server/usage/AppStandbyInternal.java b/apex/jobscheduler/framework/java/com/android/server/usage/AppStandbyInternal.java
index 9b64edf53d8cf3660541f1cd75d11d0aaaca8381..f50a9024803000b6b544c81eb591eaea86db704d 100644
--- a/apex/jobscheduler/framework/java/com/android/server/usage/AppStandbyInternal.java
+++ b/apex/jobscheduler/framework/java/com/android/server/usage/AppStandbyInternal.java
@@ -225,6 +225,8 @@ public interface AppStandbyInternal {
void setActiveAdminApps(Set adminPkgs, int userId);
+ void setAdminProtectedPackages(Set packageNames, int userId);
+
/**
* @return {@code true} if the given package is an active device admin app.
*/
diff --git a/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java b/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java
index 37ce0d29d0e1012828fa175c8d53e16703ab1c32..f1a39310e2f833cfb3028637602de9ea12836b78 100644
--- a/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java
+++ b/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java
@@ -4739,8 +4739,14 @@ public class AlarmManagerService extends SystemService {
}
final ArraySet> triggerPackages =
new ArraySet<>();
+ final SparseIntArray countsPerUid = new SparseIntArray();
+ final SparseIntArray wakeupCountsPerUid = new SparseIntArray();
for (int i = 0; i < triggerList.size(); i++) {
final Alarm a = triggerList.get(i);
+ increment(countsPerUid, a.uid);
+ if (a.wakeup) {
+ increment(wakeupCountsPerUid, a.uid);
+ }
if (mConstants.USE_TARE_POLICY) {
if (!isExemptFromTare(a)) {
triggerPackages.add(Pair.create(
@@ -4761,7 +4767,8 @@ public class AlarmManagerService extends SystemService {
}
rescheduleKernelAlarmsLocked();
updateNextAlarmClockLocked();
- MetricsHelper.pushAlarmBatchDelivered(triggerList.size(), wakeUps);
+ logAlarmBatchDelivered(
+ triggerList.size(), wakeUps, countsPerUid, wakeupCountsPerUid);
}
}
@@ -4776,6 +4783,32 @@ public class AlarmManagerService extends SystemService {
}
}
+ private static void increment(SparseIntArray array, int key) {
+ final int index = array.indexOfKey(key);
+ if (index >= 0) {
+ array.setValueAt(index, array.valueAt(index) + 1);
+ } else {
+ array.put(key, 1);
+ }
+ }
+
+ private void logAlarmBatchDelivered(
+ int alarms,
+ int wakeups,
+ SparseIntArray countsPerUid,
+ SparseIntArray wakeupCountsPerUid) {
+ final int[] uids = new int[countsPerUid.size()];
+ final int[] countsArray = new int[countsPerUid.size()];
+ final int[] wakeupCountsArray = new int[countsPerUid.size()];
+ for (int i = 0; i < countsPerUid.size(); i++) {
+ uids[i] = countsPerUid.keyAt(i);
+ countsArray[i] = countsPerUid.valueAt(i);
+ wakeupCountsArray[i] = wakeupCountsPerUid.get(uids[i], 0);
+ }
+ MetricsHelper.pushAlarmBatchDelivered(
+ alarms, wakeups, uids, countsArray, wakeupCountsArray);
+ }
+
/**
* Attribute blame for a WakeLock.
*
@@ -5695,12 +5728,7 @@ public class AlarmManagerService extends SystemService {
}
private void incrementAlarmCount(int uid) {
- final int uidIndex = mAlarmsPerUid.indexOfKey(uid);
- if (uidIndex >= 0) {
- mAlarmsPerUid.setValueAt(uidIndex, mAlarmsPerUid.valueAt(uidIndex) + 1);
- } else {
- mAlarmsPerUid.put(uid, 1);
- }
+ increment(mAlarmsPerUid, uid);
}
/**
diff --git a/apex/jobscheduler/service/java/com/android/server/alarm/MetricsHelper.java b/apex/jobscheduler/service/java/com/android/server/alarm/MetricsHelper.java
index 75ed616e2d96467009f6da9aacb051d78cc36c7f..2923cfd8e22cc2b6055f0193fd27011f9a4ab641 100644
--- a/apex/jobscheduler/service/java/com/android/server/alarm/MetricsHelper.java
+++ b/apex/jobscheduler/service/java/com/android/server/alarm/MetricsHelper.java
@@ -111,10 +111,14 @@ class MetricsHelper {
ActivityManager.processStateAmToProto(callerProcState));
}
- static void pushAlarmBatchDelivered(int numAlarms, int wakeups) {
+ static void pushAlarmBatchDelivered(
+ int numAlarms, int wakeups, int[] uids, int[] alarmsPerUid, int[] wakeupAlarmsPerUid) {
FrameworkStatsLog.write(
FrameworkStatsLog.ALARM_BATCH_DELIVERED,
numAlarms,
- wakeups);
+ wakeups,
+ uids,
+ alarmsPerUid,
+ wakeupAlarmsPerUid);
}
}
diff --git a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java
index a6f47d4e4908180fb7164bb795b13af605333064..b27ff411dd584b6abd68f2a6d65f29cc8cd74157 100644
--- a/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java
+++ b/apex/jobscheduler/service/java/com/android/server/usage/AppStandbyController.java
@@ -264,6 +264,10 @@ public class AppStandbyController
@GuardedBy("mActiveAdminApps")
private final SparseArray> mActiveAdminApps = new SparseArray<>();
+ /** List of admin protected packages. Can contain {@link android.os.UserHandle#USER_ALL}. */
+ @GuardedBy("mAdminProtectedPackages")
+ private final SparseArray> mAdminProtectedPackages = new SparseArray<>();
+
/**
* Set of system apps that are headless (don't have any "front door" activities, enabled or
* disabled). Presence in this map indicates that the app is a headless system app.
@@ -1335,6 +1339,9 @@ public class AppStandbyController
synchronized (mActiveAdminApps) {
mActiveAdminApps.remove(userId);
}
+ synchronized (mAdminProtectedPackages) {
+ mAdminProtectedPackages.remove(userId);
+ }
}
}
@@ -1424,6 +1431,10 @@ public class AppStandbyController
return STANDBY_BUCKET_EXEMPTED;
}
+ if (isAdminProtectedPackages(packageName, userId)) {
+ return STANDBY_BUCKET_EXEMPTED;
+ }
+
if (isActiveNetworkScorer(packageName)) {
return STANDBY_BUCKET_EXEMPTED;
}
@@ -1871,6 +1882,17 @@ public class AppStandbyController
}
}
+ private boolean isAdminProtectedPackages(String packageName, int userId) {
+ synchronized (mAdminProtectedPackages) {
+ if (mAdminProtectedPackages.contains(UserHandle.USER_ALL)
+ && mAdminProtectedPackages.get(UserHandle.USER_ALL).contains(packageName)) {
+ return true;
+ }
+ return mAdminProtectedPackages.contains(userId)
+ && mAdminProtectedPackages.get(userId).contains(packageName);
+ }
+ }
+
@Override
public void addActiveDeviceAdmin(String adminPkg, int userId) {
synchronized (mActiveAdminApps) {
@@ -1894,6 +1916,17 @@ public class AppStandbyController
}
}
+ @Override
+ public void setAdminProtectedPackages(Set packageNames, int userId) {
+ synchronized (mAdminProtectedPackages) {
+ if (packageNames == null || packageNames.isEmpty()) {
+ mAdminProtectedPackages.remove(userId);
+ } else {
+ mAdminProtectedPackages.put(userId, packageNames);
+ }
+ }
+ }
+
@Override
public void onAdminDataAvailable() {
mAdminDataAvailableLatch.countDown();
@@ -1916,6 +1949,13 @@ public class AppStandbyController
}
}
+ @VisibleForTesting
+ Set getAdminProtectedPackagesForTest(int userId) {
+ synchronized (mAdminProtectedPackages) {
+ return mAdminProtectedPackages.get(userId);
+ }
+ }
+
/**
* Returns {@code true} if the supplied package is the device provisioning app. Otherwise,
* returns {@code false}.
diff --git a/config/preloaded-classes b/config/preloaded-classes
index a6c0c3d7eb15fbcc0d165fb79dce933e754aac44..6de1461cc0df9c185f1a7b1edc5d6ab5367eac33 100644
--- a/config/preloaded-classes
+++ b/config/preloaded-classes
@@ -14414,6 +14414,7 @@ java.util.ImmutableCollections$Set0
java.util.ImmutableCollections$Set1
java.util.ImmutableCollections$Set2
java.util.ImmutableCollections$SetN
+java.util.ImmutableCollections
java.util.InputMismatchException
java.util.Iterator
java.util.JumboEnumSet$EnumSetIterator
diff --git a/core/api/test-current.txt b/core/api/test-current.txt
index 6a5ef3a674886c8d9ea140b29a7dba96e6b4fd7c..3e28330e823dadec3526c3601a0859692698c295 100644
--- a/core/api/test-current.txt
+++ b/core/api/test-current.txt
@@ -800,6 +800,7 @@ package android.content.pm {
field public static final long OVERRIDE_MIN_ASPECT_RATIO_MEDIUM = 180326845L; // 0xabf91bdL
field public static final float OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE = 1.5f;
field public static final long OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY = 203647190L; // 0xc2368d6L
+ field public static final long OVERRIDE_SANDBOX_VIEW_BOUNDS_APIS = 237531167L; // 0xe28701fL
field public static final int RESIZE_MODE_RESIZEABLE = 2; // 0x2
}
@@ -1142,7 +1143,6 @@ package android.hardware.camera2 {
public final class CameraManager {
method public String[] getCameraIdListNoLazy() throws android.hardware.camera2.CameraAccessException;
method @RequiresPermission(allOf={android.Manifest.permission.SYSTEM_CAMERA, android.Manifest.permission.CAMERA}) public void openCamera(@NonNull String, int, @NonNull java.util.concurrent.Executor, @NonNull android.hardware.camera2.CameraDevice.StateCallback) throws android.hardware.camera2.CameraAccessException;
- field public static final long OVERRIDE_FRONT_CAMERA_APP_COMPAT = 250678880L; // 0xef10e60L
}
public abstract static class CameraManager.AvailabilityCallback {
@@ -2429,6 +2429,7 @@ package android.service.dreams {
public abstract class DreamOverlayService extends android.app.Service {
ctor public DreamOverlayService();
method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent);
+ method public void onEndDream();
method public abstract void onStartDream(@NonNull android.view.WindowManager.LayoutParams);
method public final void requestExit();
method public final boolean shouldShowComplications();
@@ -2934,7 +2935,9 @@ package android.view {
}
@UiThread public class View implements android.view.accessibility.AccessibilityEventSource android.graphics.drawable.Drawable.Callback android.view.KeyEvent.Callback {
+ method public void getBoundsOnScreen(@NonNull android.graphics.Rect, boolean);
method public android.view.View getTooltipView();
+ method public void getWindowDisplayFrame(@NonNull android.graphics.Rect);
method public boolean isAutofilled();
method public static boolean isDefaultFocusHighlightEnabled();
method public boolean isDefaultFocusHighlightNeeded(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable);
@@ -3469,7 +3472,7 @@ package android.window {
public class WindowOrganizer {
ctor public WindowOrganizer();
- method @RequiresPermission(value=android.Manifest.permission.MANAGE_ACTIVITY_TASKS, conditional=true) public int applySyncTransaction(@NonNull android.window.WindowContainerTransaction, @NonNull android.window.WindowContainerTransactionCallback);
+ method @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS) public int applySyncTransaction(@NonNull android.window.WindowContainerTransaction, @NonNull android.window.WindowContainerTransactionCallback);
method @RequiresPermission(value=android.Manifest.permission.MANAGE_ACTIVITY_TASKS, conditional=true) public void applyTransaction(@NonNull android.window.WindowContainerTransaction);
}
diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java
index c17fbf19516b709d8870e8d47d355572a0572461..dd955406e69093f0f886618a707df4b91866bb4c 100644
--- a/core/java/android/accessibilityservice/AccessibilityService.java
+++ b/core/java/android/accessibilityservice/AccessibilityService.java
@@ -2523,6 +2523,10 @@ public abstract class AccessibilityService extends Service {
IAccessibilityServiceConnection connection =
AccessibilityInteractionClient.getInstance(this).getConnection(mConnectionId);
if (mInfo != null && connection != null) {
+ if (!mInfo.isWithinParcelableSize()) {
+ throw new IllegalStateException(
+ "Cannot update service info: size is larger than safe parcelable limits.");
+ }
try {
connection.setServiceInfo(mInfo);
mInfo = null;
diff --git a/core/java/android/accessibilityservice/AccessibilityServiceInfo.java b/core/java/android/accessibilityservice/AccessibilityServiceInfo.java
index 530de0f3af6b079fc52ec6432586050ea35708b2..0cbcdb5a2b62c10d80ac3b59244ec72a395935b5 100644
--- a/core/java/android/accessibilityservice/AccessibilityServiceInfo.java
+++ b/core/java/android/accessibilityservice/AccessibilityServiceInfo.java
@@ -40,6 +40,7 @@ import android.content.res.XmlResourceParser;
import android.graphics.drawable.Drawable;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Build;
+import android.os.IBinder;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.RemoteException;
@@ -1128,6 +1129,15 @@ public class AccessibilityServiceInfo implements Parcelable {
return 0;
}
+ /** @hide */
+ public final boolean isWithinParcelableSize() {
+ final Parcel parcel = Parcel.obtain();
+ writeToParcel(parcel, 0);
+ final boolean result = parcel.dataSize() <= IBinder.MAX_IPC_SIZE;
+ parcel.recycle();
+ return result;
+ }
+
public void writeToParcel(Parcel parcel, int flagz) {
parcel.writeInt(eventTypes);
parcel.writeStringArray(packageNames);
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index d24b677b1d72824e1e9be778a6e4870b9d0810a1..03a97ba1d9778db9317ab9354952ca4b6197e75e 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -997,6 +997,8 @@ public class Activity extends ContextThemeWrapper
private ComponentCallbacksController mCallbacksController;
+ @Nullable private IVoiceInteractionManagerService mVoiceInteractionManagerService;
+
private final WindowControllerCallback mWindowControllerCallback =
new WindowControllerCallback() {
/**
@@ -1606,18 +1608,17 @@ public class Activity extends ContextThemeWrapper
private void notifyVoiceInteractionManagerServiceActivityEvent(
@VoiceInteractionSession.VoiceInteractionActivityEventType int type) {
-
- final IVoiceInteractionManagerService service =
- IVoiceInteractionManagerService.Stub.asInterface(
- ServiceManager.getService(Context.VOICE_INTERACTION_MANAGER_SERVICE));
- if (service == null) {
- Log.w(TAG, "notifyVoiceInteractionManagerServiceActivityEvent: Can not get "
- + "VoiceInteractionManagerService");
- return;
+ if (mVoiceInteractionManagerService == null) {
+ mVoiceInteractionManagerService = IVoiceInteractionManagerService.Stub.asInterface(
+ ServiceManager.getService(Context.VOICE_INTERACTION_MANAGER_SERVICE));
+ if (mVoiceInteractionManagerService == null) {
+ Log.w(TAG, "notifyVoiceInteractionManagerServiceActivityEvent: Can not get "
+ + "VoiceInteractionManagerService");
+ return;
+ }
}
-
try {
- service.notifyActivityEventChanged(mToken, type);
+ mVoiceInteractionManagerService.notifyActivityEventChanged(mToken, type);
} catch (RemoteException e) {
// Empty
}
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index d328b34a2a8f14f2a937bdf32a7a3f4e2ccdba94..391d34d8b912b90959dffdd3d18fcf4c58886901 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -3953,6 +3953,9 @@ public class ActivityManager {
* processes to reclaim memory; the system will take care of restarting
* these processes in the future as needed.
*
+ *
Third party applications can only use this API to kill their own processes.
+ *
+ *
* @param packageName The name of the package whose processes are to
* be killed.
*/
diff --git a/core/java/android/app/ActivityOptions.java b/core/java/android/app/ActivityOptions.java
index e00329385ca554b56c20f0729eb1f7746d2e0a32..53e0a05b27b1ca7ecf33703a0d1183b39acb173b 100644
--- a/core/java/android/app/ActivityOptions.java
+++ b/core/java/android/app/ActivityOptions.java
@@ -326,6 +326,20 @@ public class ActivityOptions extends ComponentOptions {
private static final String KEY_APPLY_ACTIVITY_FLAGS_FOR_BUBBLES =
"android:activity.applyActivityFlagsForBubbles";
+ /**
+ * Indicates to apply {@link Intent#FLAG_ACTIVITY_MULTIPLE_TASK} to the launching shortcut.
+ * @hide
+ */
+ private static final String KEY_APPLY_MULTIPLE_TASK_FLAG_FOR_SHORTCUT =
+ "android:activity.applyMultipleTaskFlagForShortcut";
+
+ /**
+ * Indicates to apply {@link Intent#FLAG_ACTIVITY_NO_USER_ACTION} to the launching shortcut.
+ * @hide
+ */
+ private static final String KEY_APPLY_NO_USER_ACTION_FLAG_FOR_SHORTCUT =
+ "android:activity.applyNoUserActionFlagForShortcut";
+
/**
* For Activity transitions, the calling Activity's TransitionListener used to
* notify the called Activity when the shared element and the exit transitions
@@ -459,6 +473,8 @@ public class ActivityOptions extends ComponentOptions {
private boolean mLockTaskMode = false;
private boolean mDisallowEnterPictureInPictureWhileLaunching;
private boolean mApplyActivityFlagsForBubbles;
+ private boolean mApplyMultipleTaskFlagForShortcut;
+ private boolean mApplyNoUserActionFlagForShortcut;
private boolean mTaskAlwaysOnTop;
private boolean mTaskOverlay;
private boolean mTaskOverlayCanResume;
@@ -1258,6 +1274,10 @@ public class ActivityOptions extends ComponentOptions {
KEY_DISALLOW_ENTER_PICTURE_IN_PICTURE_WHILE_LAUNCHING, false);
mApplyActivityFlagsForBubbles = opts.getBoolean(
KEY_APPLY_ACTIVITY_FLAGS_FOR_BUBBLES, false);
+ mApplyMultipleTaskFlagForShortcut = opts.getBoolean(
+ KEY_APPLY_MULTIPLE_TASK_FLAG_FOR_SHORTCUT, false);
+ mApplyNoUserActionFlagForShortcut = opts.getBoolean(
+ KEY_APPLY_NO_USER_ACTION_FLAG_FOR_SHORTCUT, false);
if (opts.containsKey(KEY_ANIM_SPECS)) {
Parcelable[] specs = opts.getParcelableArray(KEY_ANIM_SPECS);
mAnimSpecs = new AppTransitionAnimationSpec[specs.length];
@@ -1844,6 +1864,26 @@ public class ActivityOptions extends ComponentOptions {
return mApplyActivityFlagsForBubbles;
}
+ /** @hide */
+ public void setApplyMultipleTaskFlagForShortcut(boolean apply) {
+ mApplyMultipleTaskFlagForShortcut = apply;
+ }
+
+ /** @hide */
+ public boolean isApplyMultipleTaskFlagForShortcut() {
+ return mApplyMultipleTaskFlagForShortcut;
+ }
+
+ /** @hide */
+ public void setApplyNoUserActionFlagForShortcut(boolean apply) {
+ mApplyNoUserActionFlagForShortcut = apply;
+ }
+
+ /** @hide */
+ public boolean isApplyNoUserActionFlagForShortcut() {
+ return mApplyNoUserActionFlagForShortcut;
+ }
+
/**
* Sets a launch cookie that can be used to track the activity and task that are launch as a
* result of this option. If the launched activity is a trampoline that starts another activity
@@ -2175,6 +2215,13 @@ public class ActivityOptions extends ComponentOptions {
if (mApplyActivityFlagsForBubbles) {
b.putBoolean(KEY_APPLY_ACTIVITY_FLAGS_FOR_BUBBLES, mApplyActivityFlagsForBubbles);
}
+ if (mApplyMultipleTaskFlagForShortcut) {
+ b.putBoolean(KEY_APPLY_MULTIPLE_TASK_FLAG_FOR_SHORTCUT,
+ mApplyMultipleTaskFlagForShortcut);
+ }
+ if (mApplyNoUserActionFlagForShortcut) {
+ b.putBoolean(KEY_APPLY_NO_USER_ACTION_FLAG_FOR_SHORTCUT, true);
+ }
if (mAnimSpecs != null) {
b.putParcelableArray(KEY_ANIM_SPECS, mAnimSpecs);
}
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 5ba7a4cb4f541d932ed332ea374cc8940d7ca8c8..18028bf51776dae88a07eea33a190d8de4c2ec21 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -29,6 +29,8 @@ import static android.app.servertransaction.ActivityLifecycleItem.ON_STOP;
import static android.app.servertransaction.ActivityLifecycleItem.PRE_ON_CREATE;
import static android.content.ContentResolver.DEPRECATE_DATA_COLUMNS;
import static android.content.ContentResolver.DEPRECATE_DATA_PREFIX;
+import static android.content.res.Configuration.UI_MODE_TYPE_DESK;
+import static android.content.res.Configuration.UI_MODE_TYPE_MASK;
import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.Display.INVALID_DISPLAY;
import static android.window.ConfigurationHelper.freeTextLayoutCachesIfNeeded;
@@ -198,6 +200,7 @@ import android.window.SplashScreen;
import android.window.SplashScreenView;
import android.window.WindowProviderService;
+import com.android.internal.R;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.IVoiceInteractor;
@@ -5910,9 +5913,21 @@ public final class ActivityThread extends ClientTransactionHandler
final boolean shouldUpdateResources = hasPublicResConfigChange
|| shouldUpdateResources(activityToken, currentResConfig, newConfig,
amOverrideConfig, movedToDifferentDisplay, hasPublicResConfigChange);
+
+ // TODO(b/266924897): temporary workaround, remove for U.
+ boolean skipActivityRelaunchWhenDocking = activity.getResources().getBoolean(
+ R.bool.config_skipActivityRelaunchWhenDocking);
+ int handledConfigChanges = activity.mActivityInfo.getRealConfigChanged();
+ if (skipActivityRelaunchWhenDocking && onlyDeskInUiModeChanged(activity.mCurrentConfig,
+ newConfig)) {
+ // If we're not relaunching this activity when docking, we should send the configuration
+ // changed event. Pretend as if the activity is handling uiMode config changes in its
+ // manifest so that we'll report any dock changes.
+ handledConfigChanges |= ActivityInfo.CONFIG_UI_MODE;
+ }
+
final boolean shouldReportChange = shouldReportChange(activity.mCurrentConfig, newConfig,
- r != null ? r.mSizeConfigurations : null,
- activity.mActivityInfo.getRealConfigChanged());
+ r != null ? r.mSizeConfigurations : null, handledConfigChanges);
// Nothing significant, don't proceed with updating and reporting.
if (!shouldUpdateResources && !shouldReportChange) {
return null;
@@ -5958,6 +5973,25 @@ public final class ActivityThread extends ClientTransactionHandler
return configToReport;
}
+ /**
+ * Returns true if the uiMode configuration changed, and desk mode
+ * ({@link android.content.res.Configuration#UI_MODE_TYPE_DESK}) was the only change to uiMode.
+ */
+ private boolean onlyDeskInUiModeChanged(Configuration oldConfig, Configuration newConfig) {
+ boolean deskModeChanged = isInDeskUiMode(oldConfig) != isInDeskUiMode(newConfig);
+
+ // UI mode contains fields other than the UI mode type, so determine if any other fields
+ // changed.
+ boolean uiModeOtherFieldsChanged =
+ (oldConfig.uiMode & ~UI_MODE_TYPE_MASK) != (newConfig.uiMode & ~UI_MODE_TYPE_MASK);
+
+ return deskModeChanged && !uiModeOtherFieldsChanged;
+ }
+
+ private static boolean isInDeskUiMode(Configuration config) {
+ return (config.uiMode & UI_MODE_TYPE_MASK) == UI_MODE_TYPE_DESK;
+ }
+
/**
* Returns {@code true} if {@link Activity#onConfigurationChanged(Configuration)} should be
* dispatched.
diff --git a/core/java/android/app/IWallpaperManager.aidl b/core/java/android/app/IWallpaperManager.aidl
index 28c273ec50a6eb1f2c2cc957d160877907b9b947..f6056bd39005d15ffe1cccd42a099f0ba2ecbaa7 100644
--- a/core/java/android/app/IWallpaperManager.aidl
+++ b/core/java/android/app/IWallpaperManager.aidl
@@ -205,6 +205,20 @@ interface IWallpaperManager {
*/
void notifyGoingToSleep(int x, int y, in Bundle extras);
+ /**
+ * Called when the screen has been fully turned on and is visible.
+ *
+ * @hide
+ */
+ void notifyScreenTurnedOn(int displayId);
+
+ /**
+ * Called when the screen starts turning on.
+ *
+ * @hide
+ */
+ void notifyScreenTurningOn(int displayId);
+
/**
* Sets the wallpaper dim amount between [0f, 1f] which would be blended with the system default
* dimming. 0f doesn't add any additional dimming and 1f makes the wallpaper fully black.
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index 7f4af8b3dc78f686563a80546251071b0408aef4..90e3e9d1a9c33a2687143ce7e090b37a2c2e38f7 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -6189,10 +6189,8 @@ public class Notification implements Parcelable
private RemoteViews generateActionButton(Action action, boolean emphasizedMode,
StandardTemplateParams p) {
final boolean tombstone = (action.actionIntent == null);
- RemoteViews button = new BuilderRemoteViews(mContext.getApplicationInfo(),
- emphasizedMode ? getEmphasizedActionLayoutResource()
- : tombstone ? getActionTombstoneLayoutResource()
- : getActionLayoutResource());
+ final RemoteViews button = new BuilderRemoteViews(mContext.getApplicationInfo(),
+ getActionButtonLayoutResource(emphasizedMode, tombstone));
if (!tombstone) {
button.setOnClickPendingIntent(R.id.action0, action.actionIntent);
}
@@ -6204,6 +6202,12 @@ public class Notification implements Parcelable
// change the background bgColor
CharSequence title = action.title;
int buttonFillColor = getColors(p).getSecondaryAccentColor();
+ if (tombstone) {
+ buttonFillColor = setAlphaComponentByFloatDimen(mContext,
+ ContrastColorUtil.resolveSecondaryColor(
+ mContext, getColors(p).getBackgroundColor(), mInNightMode),
+ R.dimen.notification_action_disabled_container_alpha);
+ }
if (isLegacy()) {
title = ContrastColorUtil.clearColorSpans(title);
} else {
@@ -6219,8 +6223,14 @@ public class Notification implements Parcelable
title = ensureColorSpanContrast(title, buttonFillColor);
}
button.setTextViewText(R.id.action0, processTextSpans(title));
- final int textColor = ContrastColorUtil.resolvePrimaryColor(mContext,
+ int textColor = ContrastColorUtil.resolvePrimaryColor(mContext,
buttonFillColor, mInNightMode);
+ if (tombstone) {
+ textColor = setAlphaComponentByFloatDimen(mContext,
+ ContrastColorUtil.resolveSecondaryColor(
+ mContext, getColors(p).getBackgroundColor(), mInNightMode),
+ R.dimen.notification_action_disabled_content_alpha);
+ }
button.setTextColor(R.id.action0, textColor);
// We only want about 20% alpha for the ripple
final int rippleColor = (textColor & 0x00ffffff) | 0x33000000;
@@ -6250,6 +6260,26 @@ public class Notification implements Parcelable
return button;
}
+ private int getActionButtonLayoutResource(boolean emphasizedMode, boolean tombstone) {
+ if (emphasizedMode) {
+ return tombstone ? getEmphasizedTombstoneActionLayoutResource()
+ : getEmphasizedActionLayoutResource();
+ } else {
+ return tombstone ? getActionTombstoneLayoutResource()
+ : getActionLayoutResource();
+ }
+ }
+
+ /**
+ * Set the alpha component of {@code color} to be {@code alphaDimenResId}.
+ */
+ private static int setAlphaComponentByFloatDimen(Context context, @ColorInt int color,
+ @DimenRes int alphaDimenResId) {
+ final TypedValue alphaValue = new TypedValue();
+ context.getResources().getValue(alphaDimenResId, alphaValue, true);
+ return ColorUtils.setAlphaComponent(color, Math.round(alphaValue.getFloat() * 255));
+ }
+
/**
* Extract the color from a full-length span from the text.
*
@@ -6729,6 +6759,10 @@ public class Notification implements Parcelable
return R.layout.notification_material_action_emphasized;
}
+ private int getEmphasizedTombstoneActionLayoutResource() {
+ return R.layout.notification_material_action_emphasized_tombstone;
+ }
+
private int getActionTombstoneLayoutResource() {
return R.layout.notification_material_action_tombstone;
}
@@ -6935,8 +6969,10 @@ public class Notification implements Parcelable
/**
* Returns whether an app can colorize due to the android.permission.USE_COLORIZED_NOTIFICATIONS
* permission. The permission is checked when a notification is enqueued.
+ *
+ * @hide
*/
- private boolean hasColorizedPermission() {
+ public boolean hasColorizedPermission() {
return (flags & Notification.FLAG_CAN_COLORIZE) != 0;
}
@@ -7948,8 +7984,6 @@ public class Notification implements Parcelable
* @hide
*/
public MessagingStyle setShortcutIcon(@Nullable Icon conversationIcon) {
- // TODO(b/228941516): This icon should be downscaled to avoid using too much memory,
- // see reduceImageSizes.
mShortcutIcon = conversationIcon;
return this;
}
diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java
index f6d27ad08b00980495c43eae8982ba8f934bff8d..37a90de8d6001f333bc2d4224a5c5c5bfd332a7d 100644
--- a/core/java/android/app/NotificationManager.java
+++ b/core/java/android/app/NotificationManager.java
@@ -317,7 +317,10 @@ public class NotificationManager {
/**
* Intent that is broadcast when the state of {@link #getEffectsSuppressor()} changes.
- * This broadcast is only sent to registered receivers.
+ *
+ *
This broadcast is only sent to registered receivers and (starting from
+ * {@link Build.VERSION_CODES#Q}) receivers in packages that have been granted Do Not
+ * Disturb access (see {@link #isNotificationPolicyAccessGranted()}).
*
* @hide
*/
@@ -337,7 +340,10 @@ public class NotificationManager {
/**
* Intent that is broadcast when the state of getNotificationPolicy() changes.
- * This broadcast is only sent to registered receivers.
+ *
+ *
This broadcast is only sent to registered receivers and (starting from
+ * {@link Build.VERSION_CODES#Q}) receivers in packages that have been granted Do Not
+ * Disturb access (see {@link #isNotificationPolicyAccessGranted()}).
*/
@SdkConstant(SdkConstant.SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_NOTIFICATION_POLICY_CHANGED
@@ -345,7 +351,10 @@ public class NotificationManager {
/**
* Intent that is broadcast when the state of getCurrentInterruptionFilter() changes.
- * This broadcast is only sent to registered receivers.
+ *
+ *
This broadcast is only sent to registered receivers and (starting from
+ * {@link Build.VERSION_CODES#Q}) receivers in packages that have been granted Do Not
+ * Disturb access (see {@link #isNotificationPolicyAccessGranted()}).
*/
@SdkConstant(SdkConstant.SdkConstantType.BROADCAST_INTENT_ACTION)
public static final String ACTION_INTERRUPTION_FILTER_CHANGED
diff --git a/core/java/android/app/PropertyInvalidatedCache.java b/core/java/android/app/PropertyInvalidatedCache.java
index a51b9d3956df247a9f50a2e687b748ee305dccf0..27f9f54d95229aef5958fb9f9b56b6752694cac3 100644
--- a/core/java/android/app/PropertyInvalidatedCache.java
+++ b/core/java/android/app/PropertyInvalidatedCache.java
@@ -1405,6 +1405,17 @@ public class PropertyInvalidatedCache {
return isDisabled();
}
+ /**
+ * Return the number of entries in the cache. This is used for testing and has package-only
+ * visibility.
+ * @hide
+ */
+ public int size() {
+ synchronized (mLock) {
+ return mCache.size();
+ }
+ }
+
/**
* Returns a list of caches alive at the current time.
*/
@@ -1612,8 +1623,12 @@ public class PropertyInvalidatedCache {
* @hide
*/
public static void onTrimMemory() {
- for (PropertyInvalidatedCache pic : getActiveCaches()) {
- pic.clear();
+ ArrayList activeCaches;
+ synchronized (sGlobalLock) {
+ activeCaches = getActiveCaches();
+ }
+ for (int i = 0; i < activeCaches.size(); i++) {
+ activeCaches.get(i).clear();
}
}
}
diff --git a/core/java/android/app/TaskInfo.java b/core/java/android/app/TaskInfo.java
index 3bf3067f8410d2fdeb90557022f9d1408115087a..1551ce9a91912bcd60460fcb16a46928d7319dd0 100644
--- a/core/java/android/app/TaskInfo.java
+++ b/core/java/android/app/TaskInfo.java
@@ -48,6 +48,12 @@ import java.util.Objects;
public class TaskInfo {
private static final String TAG = "TaskInfo";
+ /**
+ * The value to use when the property has not a specific value.
+ * @hide
+ */
+ public static final int PROPERTY_VALUE_UNSET = -1;
+
/**
* The id of the user the task was running as if this is a leaf task. The id of the current
* running user of the system otherwise.
@@ -187,6 +193,14 @@ public class TaskInfo {
*/
public int launchIntoPipHostTaskId;
+ /**
+ * The task id of the parent Task of the launch-into-pip Activity, i.e., if task have more than
+ * one activity it will create new task for this activity, this id is the origin task id and
+ * the pip activity will be reparent to origin task when it exit pip mode.
+ * @hide
+ */
+ public int lastParentTaskIdBeforePip;
+
/**
* The {@link Rect} copied from {@link DisplayCutout#getSafeInsets()} if the cutout is not of
* (LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES, LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS),
@@ -221,6 +235,46 @@ public class TaskInfo {
*/
public boolean topActivityEligibleForLetterboxEducation;
+ /**
+ * Whether the double tap is enabled
+ * @hide
+ */
+ public boolean isLetterboxDoubleTapEnabled;
+
+ /**
+ * Whether the update comes from a letterbox double-tap action from the user or not.
+ * @hide
+ */
+ public boolean isFromLetterboxDoubleTap;
+
+ /**
+ * If {@link isLetterboxDoubleTapEnabled} it contains the current letterbox vertical position or
+ * {@link TaskInfo.PROPERTY_VALUE_UNSET} otherwise.
+ * @hide
+ */
+ public int topActivityLetterboxVerticalPosition;
+
+ /**
+ * If {@link isLetterboxDoubleTapEnabled} it contains the current letterbox vertical position or
+ * {@link TaskInfo.PROPERTY_VALUE_UNSET} otherwise.
+ * @hide
+ */
+ public int topActivityLetterboxHorizontalPosition;
+
+ /**
+ * If {@link isLetterboxDoubleTapEnabled} it contains the current width of the letterboxed
+ * activity or {@link TaskInfo.PROPERTY_VALUE_UNSET} otherwise
+ * @hide
+ */
+ public int topActivityLetterboxWidth;
+
+ /**
+ * If {@link isLetterboxDoubleTapEnabled} it contains the current height of the letterboxed
+ * activity or {@link TaskInfo.PROPERTY_VALUE_UNSET} otherwise
+ * @hide
+ */
+ public int topActivityLetterboxHeight;
+
/**
* Whether this task is resizable. Unlike {@link #resizeMode} (which is what the top activity
* supports), this is what the system actually uses for resizability based on other policy and
@@ -399,7 +453,8 @@ public class TaskInfo {
/** @hide */
public boolean hasCompatUI() {
return hasCameraCompatControl() || topActivityInSizeCompat
- || topActivityEligibleForLetterboxEducation;
+ || topActivityEligibleForLetterboxEducation
+ || isLetterboxDoubleTapEnabled;
}
/**
@@ -439,11 +494,18 @@ public class TaskInfo {
&& isResizeable == that.isResizeable
&& supportsMultiWindow == that.supportsMultiWindow
&& displayAreaFeatureId == that.displayAreaFeatureId
+ && isFromLetterboxDoubleTap == that.isFromLetterboxDoubleTap
+ && topActivityLetterboxVerticalPosition == that.topActivityLetterboxVerticalPosition
+ && topActivityLetterboxWidth == that.topActivityLetterboxWidth
+ && topActivityLetterboxHeight == that.topActivityLetterboxHeight
+ && topActivityLetterboxHorizontalPosition
+ == that.topActivityLetterboxHorizontalPosition
&& Objects.equals(positionInParent, that.positionInParent)
&& Objects.equals(pictureInPictureParams, that.pictureInPictureParams)
&& Objects.equals(shouldDockBigOverlays, that.shouldDockBigOverlays)
&& Objects.equals(displayCutoutInsets, that.displayCutoutInsets)
&& getWindowingMode() == that.getWindowingMode()
+ && configuration.uiMode == that.configuration.uiMode
&& Objects.equals(taskDescription, that.taskDescription)
&& isFocused == that.isFocused
&& isVisible == that.isVisible
@@ -464,14 +526,21 @@ public class TaskInfo {
return displayId == that.displayId
&& taskId == that.taskId
&& topActivityInSizeCompat == that.topActivityInSizeCompat
+ && isFromLetterboxDoubleTap == that.isFromLetterboxDoubleTap
&& topActivityEligibleForLetterboxEducation
== that.topActivityEligibleForLetterboxEducation
+ && topActivityLetterboxVerticalPosition == that.topActivityLetterboxVerticalPosition
+ && topActivityLetterboxHorizontalPosition
+ == that.topActivityLetterboxHorizontalPosition
+ && topActivityLetterboxWidth == that.topActivityLetterboxWidth
+ && topActivityLetterboxHeight == that.topActivityLetterboxHeight
&& cameraCompatControlState == that.cameraCompatControlState
// Bounds are important if top activity has compat controls.
&& (!hasCompatUI() || configuration.windowConfiguration.getBounds()
.equals(that.configuration.windowConfiguration.getBounds()))
&& (!hasCompatUI() || configuration.getLayoutDirection()
== that.configuration.getLayoutDirection())
+ && (!hasCompatUI() || configuration.uiMode == that.configuration.uiMode)
&& (!hasCompatUI() || isVisible == that.isVisible);
}
@@ -501,6 +570,7 @@ public class TaskInfo {
pictureInPictureParams = source.readTypedObject(PictureInPictureParams.CREATOR);
shouldDockBigOverlays = source.readBoolean();
launchIntoPipHostTaskId = source.readInt();
+ lastParentTaskIdBeforePip = source.readInt();
displayCutoutInsets = source.readTypedObject(Rect.CREATOR);
topActivityInfo = source.readTypedObject(ActivityInfo.CREATOR);
isResizeable = source.readBoolean();
@@ -518,6 +588,12 @@ public class TaskInfo {
mTopActivityLocusId = source.readTypedObject(LocusId.CREATOR);
displayAreaFeatureId = source.readInt();
cameraCompatControlState = source.readInt();
+ isLetterboxDoubleTapEnabled = source.readBoolean();
+ isFromLetterboxDoubleTap = source.readBoolean();
+ topActivityLetterboxVerticalPosition = source.readInt();
+ topActivityLetterboxHorizontalPosition = source.readInt();
+ topActivityLetterboxWidth = source.readInt();
+ topActivityLetterboxHeight = source.readInt();
}
/**
@@ -547,6 +623,7 @@ public class TaskInfo {
dest.writeTypedObject(pictureInPictureParams, flags);
dest.writeBoolean(shouldDockBigOverlays);
dest.writeInt(launchIntoPipHostTaskId);
+ dest.writeInt(lastParentTaskIdBeforePip);
dest.writeTypedObject(displayCutoutInsets, flags);
dest.writeTypedObject(topActivityInfo, flags);
dest.writeBoolean(isResizeable);
@@ -564,6 +641,12 @@ public class TaskInfo {
dest.writeTypedObject(mTopActivityLocusId, flags);
dest.writeInt(displayAreaFeatureId);
dest.writeInt(cameraCompatControlState);
+ dest.writeBoolean(isLetterboxDoubleTapEnabled);
+ dest.writeBoolean(isFromLetterboxDoubleTap);
+ dest.writeInt(topActivityLetterboxVerticalPosition);
+ dest.writeInt(topActivityLetterboxHorizontalPosition);
+ dest.writeInt(topActivityLetterboxWidth);
+ dest.writeInt(topActivityLetterboxHeight);
}
@Override
@@ -587,6 +670,7 @@ public class TaskInfo {
+ " pictureInPictureParams=" + pictureInPictureParams
+ " shouldDockBigOverlays=" + shouldDockBigOverlays
+ " launchIntoPipHostTaskId=" + launchIntoPipHostTaskId
+ + " lastParentTaskIdBeforePip=" + lastParentTaskIdBeforePip
+ " displayCutoutSafeInsets=" + displayCutoutInsets
+ " topActivityInfo=" + topActivityInfo
+ " launchCookies=" + launchCookies
@@ -598,6 +682,13 @@ public class TaskInfo {
+ " topActivityInSizeCompat=" + topActivityInSizeCompat
+ " topActivityEligibleForLetterboxEducation= "
+ topActivityEligibleForLetterboxEducation
+ + " topActivityLetterboxed= " + isLetterboxDoubleTapEnabled
+ + " isFromDoubleTap= " + isFromLetterboxDoubleTap
+ + " topActivityLetterboxVerticalPosition= " + topActivityLetterboxVerticalPosition
+ + " topActivityLetterboxHorizontalPosition= "
+ + topActivityLetterboxHorizontalPosition
+ + " topActivityLetterboxWidth=" + topActivityLetterboxWidth
+ + " topActivityLetterboxHeight=" + topActivityLetterboxHeight
+ " locusId=" + mTopActivityLocusId
+ " displayAreaFeatureId=" + displayAreaFeatureId
+ " cameraCompatControlState="
diff --git a/core/java/android/app/WallpaperColors.java b/core/java/android/app/WallpaperColors.java
index 067a4c3c047ea348adea44def2f1a15946ff90f0..a34a50c4b7b07bc49ad6ecf5bcd28eb84af06cb9 100644
--- a/core/java/android/app/WallpaperColors.java
+++ b/core/java/android/app/WallpaperColors.java
@@ -27,6 +27,7 @@ import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Parcel;
import android.os.Parcelable;
+import android.os.SystemProperties;
import android.util.Log;
import android.util.MathUtils;
import android.util.Size;
@@ -101,11 +102,13 @@ public final class WallpaperColors implements Parcelable {
// Decides when dark theme is optimal for this wallpaper
private static final float DARK_THEME_MEAN_LUMINANCE = 0.3f;
// Minimum mean luminosity that an image needs to have to support dark text
- private static final float BRIGHT_IMAGE_MEAN_LUMINANCE = 0.7f;
+ private static final float BRIGHT_IMAGE_MEAN_LUMINANCE = SystemProperties.getInt(
+ "persist.wallpapercolors.threshold", 70) / 100f;
// We also check if the image has dark pixels in it,
// to avoid bright images with some dark spots.
private static final float DARK_PIXEL_CONTRAST = 5.5f;
- private static final float MAX_DARK_AREA = 0.05f;
+ private static final float MAX_DARK_AREA = SystemProperties.getInt(
+ "persist.wallpapercolors.max_dark_area", 5) / 100f;
private final List mMainColors;
private final Map mAllColors;
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index 67d51481830f0792a4011b41c83cc39ba1a834df..d99e4575ea4246a2485b0e866eab53e57d75adbb 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -6639,6 +6639,13 @@ public class DevicePolicyManager {
*/
public static final int KEYGUARD_DISABLE_IRIS = 1 << 8;
+ /**
+ * Disable all keyguard shortcuts.
+ *
+ * @hide
+ */
+ public static final int KEYGUARD_DISABLE_SHORTCUTS_ALL = 1 << 9;
+
/**
* NOTE: Please remember to update the DevicePolicyManagerTest's testKeyguardDisabledFeatures
* CTS test when adding to the list above.
@@ -6682,7 +6689,8 @@ public class DevicePolicyManager {
*/
public static final int ORG_OWNED_PROFILE_KEYGUARD_FEATURES_PARENT_ONLY =
DevicePolicyManager.KEYGUARD_DISABLE_SECURE_CAMERA
- | DevicePolicyManager.KEYGUARD_DISABLE_SECURE_NOTIFICATIONS;
+ | DevicePolicyManager.KEYGUARD_DISABLE_SECURE_NOTIFICATIONS
+ | DevicePolicyManager.KEYGUARD_DISABLE_SHORTCUTS_ALL;
/**
* Keyguard features that when set on a normal or organization-owned managed profile, have
@@ -6789,6 +6797,8 @@ public class DevicePolicyManager {
* {@link #ENCRYPTION_STATUS_UNSUPPORTED}, {@link #ENCRYPTION_STATUS_INACTIVE},
* {@link #ENCRYPTION_STATUS_ACTIVATING}, {@link #ENCRYPTION_STATUS_ACTIVE_DEFAULT_KEY},
* {@link #ENCRYPTION_STATUS_ACTIVE}, or {@link #ENCRYPTION_STATUS_ACTIVE_PER_USER}.
+ *
+ * @throws SecurityException if called on a parent instance.
*/
public int getStorageEncryptionStatus() {
throwIfParentInstance("getStorageEncryptionStatus");
@@ -9180,7 +9190,8 @@ public class DevicePolicyManager {
* @see #isProfileOwnerApp
* @see #isDeviceOwnerApp
* @param admin Which {@link DeviceAdminReceiver} this request is associate with.
- * @param profileName The name of the profile.
+ * @param profileName The name of the profile. If the name is longer than 200 characters
+ * it will be truncated.
* @throws SecurityException if {@code admin} is not a device or profile owner.
*/
public void setProfileName(@NonNull ComponentName admin, String profileName) {
@@ -14627,7 +14638,8 @@ public class DevicePolicyManager {
/**
* Called by a device owner or a profile owner to disable user control over apps. User will not
* be able to clear app data or force-stop packages. When called by a device owner, applies to
- * all users on the device.
+ * all users on the device. Packages with user control disabled are exempted from
+ * App Standby Buckets.
*
* @param admin which {@link DeviceAdminReceiver} this request is associated with
* @param packages The package names for the apps.
diff --git a/core/java/android/appwidget/AppWidgetHostView.java b/core/java/android/appwidget/AppWidgetHostView.java
index fe10b7f8b3f4e4818daa277da45303f1dcd7400d..27f6a266597cd4a502a918a3b4fd3b8b509fef9c 100644
--- a/core/java/android/appwidget/AppWidgetHostView.java
+++ b/core/java/android/appwidget/AppWidgetHostView.java
@@ -31,6 +31,7 @@ import android.content.pm.LauncherActivityInfo;
import android.content.pm.LauncherApps;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
+import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.PointF;
import android.graphics.Rect;
@@ -311,19 +312,26 @@ public class AppWidgetHostView extends FrameLayout implements AppWidgetHost.AppW
super.onLayout(changed, left, top, right, bottom);
} catch (final RuntimeException e) {
Log.e(TAG, "Remote provider threw runtime exception, using error view instead.", e);
- removeViewInLayout(mView);
- View child = getErrorView();
- prepareView(child);
- addViewInLayout(child, 0, child.getLayoutParams());
- measureChild(child, MeasureSpec.makeMeasureSpec(getMeasuredWidth(), MeasureSpec.EXACTLY),
- MeasureSpec.makeMeasureSpec(getMeasuredHeight(), MeasureSpec.EXACTLY));
- child.layout(0, 0, child.getMeasuredWidth() + mPaddingLeft + mPaddingRight,
- child.getMeasuredHeight() + mPaddingTop + mPaddingBottom);
- mView = child;
- mViewMode = VIEW_MODE_ERROR;
+ handleViewError();
}
}
+ /**
+ * Remove bad view and replace with error message view
+ */
+ private void handleViewError() {
+ removeViewInLayout(mView);
+ View child = getErrorView();
+ prepareView(child);
+ addViewInLayout(child, 0, child.getLayoutParams());
+ measureChild(child, MeasureSpec.makeMeasureSpec(getMeasuredWidth(), MeasureSpec.EXACTLY),
+ MeasureSpec.makeMeasureSpec(getMeasuredHeight(), MeasureSpec.EXACTLY));
+ child.layout(0, 0, child.getMeasuredWidth() + mPaddingLeft + mPaddingRight,
+ child.getMeasuredHeight() + mPaddingTop + mPaddingBottom);
+ mView = child;
+ mViewMode = VIEW_MODE_ERROR;
+ }
+
/**
* Provide guidance about the size of this widget to the AppWidgetManager. The widths and
* heights should correspond to the full area the AppWidgetHostView is given. Padding added by
@@ -953,4 +961,15 @@ public class AppWidgetHostView extends FrameLayout implements AppWidgetHost.AppW
reapplyLastRemoteViews();
}
}
+
+ @Override
+ protected void dispatchDraw(@NonNull Canvas canvas) {
+ try {
+ super.dispatchDraw(canvas);
+ } catch (Exception e) {
+ // Catch draw exceptions that may be caused by RemoteViews
+ Log.e(TAG, "Drawing view failed: " + e);
+ post(this::handleViewError);
+ }
+ }
}
diff --git a/core/java/android/content/ContentCaptureOptions.java b/core/java/android/content/ContentCaptureOptions.java
index 77072890a1eb0b40485f3a68825139e24dad1ab6..856bde870bcfef5f711269d3f5afa4aa7376b949 100644
--- a/core/java/android/content/ContentCaptureOptions.java
+++ b/core/java/android/content/ContentCaptureOptions.java
@@ -69,6 +69,12 @@ public final class ContentCaptureOptions implements Parcelable {
*/
public final int logHistorySize;
+ /**
+ * Disable flush when receiving a VIEW_TREE_APPEARING event.
+ * @hide
+ */
+ public final boolean disableFlushForViewTreeAppearing;
+
/**
* List of activities explicitly allowlisted for content capture (or {@code null} if allowlisted
* for all acitivites in the package).
@@ -90,7 +96,8 @@ public final class ContentCaptureOptions implements Parcelable {
public ContentCaptureOptions(int loggingLevel) {
this(/* lite= */ true, loggingLevel, /* maxBufferSize= */ 0,
/* idleFlushingFrequencyMs= */ 0, /* textChangeFlushingFrequencyMs= */ 0,
- /* logHistorySize= */ 0, /* whitelistedComponents= */ null);
+ /* logHistorySize= */ 0, /* disableFlushForViewTreeAppearing= */ false,
+ /* whitelistedComponents= */ null);
}
/**
@@ -98,10 +105,23 @@ public final class ContentCaptureOptions implements Parcelable {
*/
public ContentCaptureOptions(int loggingLevel, int maxBufferSize, int idleFlushingFrequencyMs,
int textChangeFlushingFrequencyMs, int logHistorySize,
- @SuppressLint("NullableCollection")
+ @SuppressLint({"ConcreteCollection", "NullableCollection"})
+ @Nullable ArraySet whitelistedComponents) {
+ this(/* lite= */ false, loggingLevel, maxBufferSize, idleFlushingFrequencyMs,
+ textChangeFlushingFrequencyMs, logHistorySize,
+ ContentCaptureManager.DEFAULT_DISABLE_FLUSH_FOR_VIEW_TREE_APPEARING,
+ whitelistedComponents);
+ }
+
+ /** @hide */
+ public ContentCaptureOptions(int loggingLevel, int maxBufferSize, int idleFlushingFrequencyMs,
+ int textChangeFlushingFrequencyMs, int logHistorySize,
+ boolean disableFlushForViewTreeAppearing,
+ @SuppressLint({"ConcreteCollection", "NullableCollection"})
@Nullable ArraySet whitelistedComponents) {
this(/* lite= */ false, loggingLevel, maxBufferSize, idleFlushingFrequencyMs,
- textChangeFlushingFrequencyMs, logHistorySize, whitelistedComponents);
+ textChangeFlushingFrequencyMs, logHistorySize, disableFlushForViewTreeAppearing,
+ whitelistedComponents);
}
/** @hide */
@@ -111,11 +131,14 @@ public final class ContentCaptureOptions implements Parcelable {
ContentCaptureManager.DEFAULT_MAX_BUFFER_SIZE,
ContentCaptureManager.DEFAULT_IDLE_FLUSHING_FREQUENCY_MS,
ContentCaptureManager.DEFAULT_TEXT_CHANGE_FLUSHING_FREQUENCY_MS,
- ContentCaptureManager.DEFAULT_LOG_HISTORY_SIZE, whitelistedComponents);
+ ContentCaptureManager.DEFAULT_LOG_HISTORY_SIZE,
+ ContentCaptureManager.DEFAULT_DISABLE_FLUSH_FOR_VIEW_TREE_APPEARING,
+ whitelistedComponents);
}
private ContentCaptureOptions(boolean lite, int loggingLevel, int maxBufferSize,
int idleFlushingFrequencyMs, int textChangeFlushingFrequencyMs, int logHistorySize,
+ boolean disableFlushForViewTreeAppearing,
@Nullable ArraySet whitelistedComponents) {
this.lite = lite;
this.loggingLevel = loggingLevel;
@@ -123,6 +146,7 @@ public final class ContentCaptureOptions implements Parcelable {
this.idleFlushingFrequencyMs = idleFlushingFrequencyMs;
this.textChangeFlushingFrequencyMs = textChangeFlushingFrequencyMs;
this.logHistorySize = logHistorySize;
+ this.disableFlushForViewTreeAppearing = disableFlushForViewTreeAppearing;
this.whitelistedComponents = whitelistedComponents;
}
@@ -171,7 +195,8 @@ public final class ContentCaptureOptions implements Parcelable {
.append(", maxBufferSize=").append(maxBufferSize)
.append(", idleFlushingFrequencyMs=").append(idleFlushingFrequencyMs)
.append(", textChangeFlushingFrequencyMs=").append(textChangeFlushingFrequencyMs)
- .append(", logHistorySize=").append(logHistorySize);
+ .append(", logHistorySize=").append(logHistorySize)
+ .append(", disableFlushForViewTreeAppearing=").append(disableFlushForViewTreeAppearing);
if (whitelistedComponents != null) {
string.append(", whitelisted=").append(whitelistedComponents);
}
@@ -189,6 +214,7 @@ public final class ContentCaptureOptions implements Parcelable {
pw.print(", idle="); pw.print(idleFlushingFrequencyMs);
pw.print(", textIdle="); pw.print(textChangeFlushingFrequencyMs);
pw.print(", logSize="); pw.print(logHistorySize);
+ pw.print(", disableFlushForViewTreeAppearing="); pw.print(disableFlushForViewTreeAppearing);
if (whitelistedComponents != null) {
pw.print(", whitelisted="); pw.print(whitelistedComponents);
}
@@ -209,6 +235,7 @@ public final class ContentCaptureOptions implements Parcelable {
parcel.writeInt(idleFlushingFrequencyMs);
parcel.writeInt(textChangeFlushingFrequencyMs);
parcel.writeInt(logHistorySize);
+ parcel.writeBoolean(disableFlushForViewTreeAppearing);
parcel.writeArraySet(whitelistedComponents);
}
@@ -226,12 +253,13 @@ public final class ContentCaptureOptions implements Parcelable {
final int idleFlushingFrequencyMs = parcel.readInt();
final int textChangeFlushingFrequencyMs = parcel.readInt();
final int logHistorySize = parcel.readInt();
+ final boolean disableFlushForViewTreeAppearing = parcel.readBoolean();
@SuppressWarnings("unchecked")
final ArraySet whitelistedComponents =
(ArraySet) parcel.readArraySet(null);
return new ContentCaptureOptions(loggingLevel, maxBufferSize,
idleFlushingFrequencyMs, textChangeFlushingFrequencyMs, logHistorySize,
- whitelistedComponents);
+ disableFlushForViewTreeAppearing, whitelistedComponents);
}
@Override
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index a320f1e9509c40fd7a575dd6660d8a3e48b5149a..809dc3c411887cdcf2bd4127c2a808af158292eb 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -5737,18 +5737,17 @@ public class Intent implements Parcelable, Cloneable {
* @hide
*/
public static final String EXTRA_CHOOSER_CUSTOM_ACTIONS =
- "android.intent.extra.EXTRA_CHOOSER_CUSTOM_ACTIONS";
+ "android.intent.extra.CHOOSER_CUSTOM_ACTIONS";
/**
* Optional argument to be used with {@link #ACTION_CHOOSER}.
- * A {@link android.app.PendingIntent} to be sent when the user wants to do payload reselection
- * in the sharesheet.
- * A reselection action allows the user to return to the source app to change the content being
- * shared.
+ * A {@link android.app.PendingIntent} to be sent when the user wants to modify the content that
+ * they're sharing. This can be used to allow the user to return to the source app to, for
+ * example, select different media.
* @hide
*/
- public static final String EXTRA_CHOOSER_PAYLOAD_RESELECTION_ACTION =
- "android.intent.extra.EXTRA_CHOOSER_PAYLOAD_RESELECTION_ACTION";
+ public static final String EXTRA_CHOOSER_MODIFY_SHARE_ACTION =
+ "android.intent.extra.CHOOSER_MODIFY_SHARE_ACTION";
/**
* An {@code ArrayList} of {@code String} annotations describing content for
diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java
index 9e5e8deda84b26a27419d4a73abb8e2246d643d9..319f1298a87fb674e3d71924b5f3c741a25092f2 100644
--- a/core/java/android/content/pm/ActivityInfo.java
+++ b/core/java/android/content/pm/ActivityInfo.java
@@ -1034,6 +1034,20 @@ public class ActivityInfo extends ComponentInfo implements Parcelable {
public static final long OVERRIDE_ENABLE_COMPAT_IGNORE_REQUESTED_ORIENTATION =
254631730L; // buganizer id
+ /**
+ * This change id enables compat policy that ignores app requested orientation in
+ * response to an app calling {@link android.app.Activity#setRequestedOrientation} more
+ * than twice in one second if an activity is not letterboxed for fixed orientation.
+ * See com.android.server.wm.LetterboxUiController#shouldIgnoreRequestedOrientation
+ * for details.
+ * @hide
+ */
+ @ChangeId
+ @Overridable
+ @Disabled
+ public static final long OVERRIDE_ENABLE_COMPAT_IGNORE_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED =
+ 273509367L; // buganizer id
+
/**
* This change id forces the packages it is applied to never have Display API sandboxing
* applied for a letterbox or SCM activity. The Display APIs will continue to provide
@@ -1057,6 +1071,80 @@ public class ActivityInfo extends ComponentInfo implements Parcelable {
@TestApi
public static final long ALWAYS_SANDBOX_DISPLAY_APIS = 185004937L; // buganizer id
+ /**
+ * This change id excludes the packages it is applied to from ignoreOrientationRequest behaviour
+ * that can be enabled by the device manufacturers for the com.android.server.wm.DisplayArea
+ * or for the whole display.
+ * @hide
+ */
+ @ChangeId
+ @Overridable
+ @Disabled
+ public static final long OVERRIDE_RESPECT_REQUESTED_ORIENTATION = 236283604L; // buganizer id
+
+ /**
+ * This change id excludes the packages it is applied to from the camera compat force rotation
+ * treatment. See com.android.server.wm.DisplayRotationCompatPolicy for context.
+ * @hide
+ */
+ @ChangeId
+ @Overridable
+ @Disabled
+ public static final long OVERRIDE_CAMERA_COMPAT_DISABLE_FORCE_ROTATION =
+ 263959004L; // buganizer id
+
+ /**
+ * This change id excludes the packages it is applied to from activity refresh after camera
+ * compat force rotation treatment. See com.android.server.wm.DisplayRotationCompatPolicy for
+ * context.
+ * @hide
+ */
+ @ChangeId
+ @Overridable
+ @Disabled
+ public static final long OVERRIDE_CAMERA_COMPAT_DISABLE_REFRESH = 264304459L; // buganizer id
+
+ /**
+ * This change id makes the packages it is applied to do activity refresh after camera compat
+ * force rotation treatment using "resumed -> paused -> resumed" cycle rather than "resumed ->
+ * ... -> stopped -> ... -> resumed" cycle. See
+ * com.android.server.wm.DisplayRotationCompatPolicy for context.
+ * @hide
+ */
+ @ChangeId
+ @Overridable
+ @Disabled
+ public static final long OVERRIDE_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE =
+ 264301586L; // buganizer id
+
+ /**
+ * This change id forces the packages it is applied to sandbox {@link android.view.View} API to
+ * an activity bounds for:
+ *
+ *
For {@link android.view.View#getWindowVisibleDisplayFrame} and
+ * {@link android.view.View}#getWindowDisplayFrame this sandboxing is happening indirectly
+ * through
+ * {@link android.view.ViewRootImpl}#getWindowVisibleDisplayFrame,
+ * {@link android.view.ViewRootImpl}#getDisplayFrame respectively.
+ *
+ *
Some applications assume that they occupy the whole screen and therefore use the display
+ * coordinates in their calculations as if an activity is positioned in the top-left corner of
+ * the screen, with left coordinate equal to 0. This may not be the case of applications in
+ * multi-window and in letterbox modes. This can lead to shifted or out of bounds UI elements in
+ * case the activity is Letterboxed or is in multi-window mode.
+ * @hide
+ */
+ @ChangeId
+ @Overridable
+ @Disabled
+ @TestApi
+ public static final long OVERRIDE_SANDBOX_VIEW_BOUNDS_APIS = 237531167L; // buganizer id
+
/**
* This change id is the gatekeeper for all treatments that force a given min aspect ratio.
* Enabling this change will allow the following min aspect ratio treatments to be applied:
@@ -1152,6 +1240,91 @@ public class ActivityInfo extends ComponentInfo implements Parcelable {
@Overridable
public static final long OVERRIDE_ENABLE_COMPAT_FAKE_FOCUS = 263259275L;
+ // Compat framework that per-app overrides rely on only supports booleans. That's why we have
+ // multiple OVERRIDE_*_ORIENTATION_* change ids below instead of just one override with
+ // the integer value.
+
+ /**
+ * Enables {@link #SCREEN_ORIENTATION_PORTRAIT}. Unless OVERRIDE_ANY_ORIENTATION
+ * is enabled, this override is used only when no other fixed orientation was specified by the
+ * activity.
+ * @hide
+ */
+ @ChangeId
+ @Disabled
+ @Overridable
+ public static final long OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT = 265452344L;
+
+ /**
+ * Enables {@link #SCREEN_ORIENTATION_NOSENSOR}. Unless OVERRIDE_ANY_ORIENTATION
+ * is enabled, this override is used only when no other fixed orientation was specified by the
+ * activity.
+ * @hide
+ */
+ @ChangeId
+ @Disabled
+ @Overridable
+ public static final long OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR = 265451093L;
+
+ /**
+ * Enables {@link #SCREEN_ORIENTATION_REVERSE_LANDSCAPE}. Unless OVERRIDE_ANY_ORIENTATION
+ * is enabled, this override is used only when activity specify landscape orientation.
+ * This can help apps that assume that landscape display orientation corresponds to {@link
+ * android.view.Surface#ROTATION_90}, while on some devices it can be {@link
+ * android.view.Surface#ROTATION_270}.
+ * @hide
+ */
+ @ChangeId
+ @Disabled
+ @Overridable
+ public static final long OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE = 266124927L;
+
+ /**
+ * When enabled, allows OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE,
+ * OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR and OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT
+ * to override any orientation requested by the activity.
+ * @hide
+ */
+ @ChangeId
+ @Disabled
+ @Overridable
+ public static final long OVERRIDE_ANY_ORIENTATION = 265464455L;
+
+ /**
+ * When enabled, activates OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE,
+ * OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR and OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT
+ * only when an app is connected to the camera. See
+ * com.android.server.wm.DisplayRotationCompatPolicy for more context.
+ * @hide
+ */
+ @ChangeId
+ @Disabled
+ @Overridable
+ public static final long OVERRIDE_ORIENTATION_ONLY_FOR_CAMERA = 265456536L;
+
+ /**
+ * This override fixes display orientation to landscape natural orientation when a task is
+ * fullscreen. While display rotation is fixed to landscape, the orientation requested by the
+ * activity will be still respected by bounds resolution logic. For instance, if an activity
+ * requests portrait orientation and this override is set, then activity will appear in the
+ * letterbox mode for fixed orientation with the display rotated to the lanscape natural
+ * orientation.
+ *
+ *
This override is applicable only when natural orientation of the device is
+ * landscape and display ignores orientation requestes.
+ *
+ *
Main use case for this override are camera-using activities that are portrait-only and
+ * assume alignment with natural device orientation. Such activities can automatically be
+ * rotated with com.android.server.wm.DisplayRotationCompatPolicy but not all of them can
+ * handle dynamic rotation and thus can benefit from this override.
+ *
+ * @hide
+ */
+ @ChangeId
+ @Disabled
+ @Overridable
+ public static final long OVERRIDE_USE_DISPLAY_LANDSCAPE_NATURAL_ORIENTATION = 255940284L;
+
/**
* Compares activity window layout min width/height with require space for multi window to
* determine if it can be put into multi window mode.
@@ -1370,8 +1543,19 @@ public class ActivityInfo extends ComponentInfo implements Parcelable {
* @hide
*/
public boolean isFixedOrientation() {
- return isFixedOrientationLandscape() || isFixedOrientationPortrait()
- || screenOrientation == SCREEN_ORIENTATION_LOCKED;
+ return isFixedOrientation(screenOrientation);
+ }
+
+ /**
+ * Returns true if the passed activity's orientation is fixed.
+ * @hide
+ */
+ public static boolean isFixedOrientation(@ScreenOrientation int orientation) {
+ return orientation == SCREEN_ORIENTATION_LOCKED
+ // Orientation is fixed to natural display orientation
+ || orientation == SCREEN_ORIENTATION_NOSENSOR
+ || isFixedOrientationLandscape(orientation)
+ || isFixedOrientationPortrait(orientation);
}
/**
diff --git a/core/java/android/content/res/AssetManager.java b/core/java/android/content/res/AssetManager.java
index c8bbb0c1994d6cdf8c7fcf8d305029b693e4a4bb..6f09e79bdba9659668f7ebf68b8eb166faf45586 100644
--- a/core/java/android/content/res/AssetManager.java
+++ b/core/java/android/content/res/AssetManager.java
@@ -1452,6 +1452,16 @@ public final class AssetManager implements AutoCloseable {
}
}
+ /**
+ * @hide
+ */
+ Configuration[] getSizeAndUiModeConfigurations() {
+ synchronized (this) {
+ ensureValidLocked();
+ return nativeGetSizeAndUiModeConfigurations(mObject);
+ }
+ }
+
/**
* Change the configuration used when retrieving resources. Not for use by
* applications.
@@ -1603,6 +1613,7 @@ public final class AssetManager implements AutoCloseable {
private static native @Nullable String nativeGetResourceEntryName(long ptr, @AnyRes int resid);
private static native @Nullable String[] nativeGetLocales(long ptr, boolean excludeSystem);
private static native @Nullable Configuration[] nativeGetSizeConfigurations(long ptr);
+ private static native @Nullable Configuration[] nativeGetSizeAndUiModeConfigurations(long ptr);
private static native void nativeSetResourceResolutionLoggingEnabled(long ptr, boolean enabled);
private static native @Nullable String nativeGetLastResourceResolution(long ptr);
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java
index a03286d3ec6f67842108b1bd851495feb109d2c3..9b169499b41fc889a68eb6e1be246f504f74a111 100644
--- a/core/java/android/content/res/Resources.java
+++ b/core/java/android/content/res/Resources.java
@@ -2207,6 +2207,11 @@ public class Resources {
return mResourcesImpl.getSizeConfigurations();
}
+ /** @hide */
+ public Configuration[] getSizeAndUiModeConfigurations() {
+ return mResourcesImpl.getSizeAndUiModeConfigurations();
+ }
+
/**
* Return the compatibility mode information for the application.
* The returned object should be treated as read-only.
diff --git a/core/java/android/content/res/ResourcesImpl.java b/core/java/android/content/res/ResourcesImpl.java
index ff072916292be1046b5c724946f443e4c327d04c..3bb237ac12287c63f825595014fee309d1e17ab1 100644
--- a/core/java/android/content/res/ResourcesImpl.java
+++ b/core/java/android/content/res/ResourcesImpl.java
@@ -203,6 +203,10 @@ public class ResourcesImpl {
return mAssets.getSizeConfigurations();
}
+ Configuration[] getSizeAndUiModeConfigurations() {
+ return mAssets.getSizeAndUiModeConfigurations();
+ }
+
CompatibilityInfo getCompatibilityInfo() {
return mDisplayAdjustments.getCompatibilityInfo();
}
diff --git a/core/java/android/database/sqlite/SQLiteBindOrColumnIndexOutOfRangeException.java b/core/java/android/database/sqlite/SQLiteBindOrColumnIndexOutOfRangeException.java
index 41f2f9c28349690a735cb0a2c57d94793b5605d6..b86b97c76740dde20d31e0740b423359f96477c4 100644
--- a/core/java/android/database/sqlite/SQLiteBindOrColumnIndexOutOfRangeException.java
+++ b/core/java/android/database/sqlite/SQLiteBindOrColumnIndexOutOfRangeException.java
@@ -17,7 +17,7 @@
package android.database.sqlite;
/**
- * Thrown if the the bind or column parameter index is out of range
+ * Thrown if the bind or column parameter index is out of range.
*/
public class SQLiteBindOrColumnIndexOutOfRangeException extends SQLiteException {
public SQLiteBindOrColumnIndexOutOfRangeException() {}
diff --git a/core/java/android/database/sqlite/SQLiteDiskIOException.java b/core/java/android/database/sqlite/SQLiteDiskIOException.java
index 01b2069c23db37c7884f845765e24a650e389714..152d90a76ba6b4cea785574ace6133defbea69e1 100644
--- a/core/java/android/database/sqlite/SQLiteDiskIOException.java
+++ b/core/java/android/database/sqlite/SQLiteDiskIOException.java
@@ -17,7 +17,7 @@
package android.database.sqlite;
/**
- * An exception that indicates that an IO error occured while accessing the
+ * Indicates that an IO error occurred while accessing the
* SQLite database file.
*/
public class SQLiteDiskIOException extends SQLiteException {
diff --git a/core/java/android/hardware/Camera.java b/core/java/android/hardware/Camera.java
index 5291d2b7389184ef9f6e57ac1defefb55bdc4400..ccc39b6080d7b4198f60b8f6ad9e9be5725654f3 100644
--- a/core/java/android/hardware/Camera.java
+++ b/core/java/android/hardware/Camera.java
@@ -17,19 +17,13 @@
package android.hardware;
import static android.system.OsConstants.EACCES;
-import static android.system.OsConstants.EBUSY;
-import static android.system.OsConstants.EINVAL;
import static android.system.OsConstants.ENODEV;
-import static android.system.OsConstants.ENOSYS;
-import static android.system.OsConstants.EOPNOTSUPP;
-import static android.system.OsConstants.EUSERS;
import android.annotation.Nullable;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.app.ActivityThread;
import android.app.AppOpsManager;
-import android.app.compat.CompatChanges;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.graphics.ImageFormat;
@@ -47,7 +41,6 @@ import android.os.Message;
import android.os.Process;
import android.os.RemoteException;
import android.os.ServiceManager;
-import android.os.SystemProperties;
import android.renderscript.Allocation;
import android.renderscript.Element;
import android.renderscript.RSIllegalArgumentException;
@@ -58,6 +51,7 @@ import android.util.Log;
import android.view.Surface;
import android.view.SurfaceHolder;
+import com.android.internal.R;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.app.IAppOpsCallback;
import com.android.internal.app.IAppOpsService;
@@ -284,14 +278,6 @@ public class Camera {
*/
public native static int getNumberOfCameras();
- private static final boolean sLandscapeToPortrait =
- SystemProperties.getBoolean(CameraManager.LANDSCAPE_TO_PORTRAIT_PROP, false);
-
- private static boolean shouldOverrideToPortrait() {
- return CompatChanges.isChangeEnabled(CameraManager.OVERRIDE_FRONT_CAMERA_APP_COMPAT)
- && sLandscapeToPortrait;
- }
-
/**
* Returns the information about a particular camera.
* If {@link #getNumberOfCameras()} returns N, the valid id is 0 to N-1.
@@ -301,7 +287,8 @@ public class Camera {
* low-level failure).
*/
public static void getCameraInfo(int cameraId, CameraInfo cameraInfo) {
- boolean overrideToPortrait = shouldOverrideToPortrait();
+ boolean overrideToPortrait = CameraManager.shouldOverrideToPortrait(
+ ActivityThread.currentApplication().getApplicationContext());
_getCameraInfo(cameraId, overrideToPortrait, cameraInfo);
IBinder b = ServiceManager.getService(Context.AUDIO_SERVICE);
@@ -498,9 +485,24 @@ public class Camera {
mEventHandler = null;
}
- boolean overrideToPortrait = shouldOverrideToPortrait();
+ boolean overrideToPortrait = CameraManager.shouldOverrideToPortrait(
+ ActivityThread.currentApplication().getApplicationContext());
+ boolean forceSlowJpegMode = shouldForceSlowJpegMode();
return native_setup(new WeakReference(this), cameraId,
- ActivityThread.currentOpPackageName(), overrideToPortrait);
+ ActivityThread.currentOpPackageName(), overrideToPortrait, forceSlowJpegMode);
+ }
+
+ private boolean shouldForceSlowJpegMode() {
+ Context applicationContext = ActivityThread.currentApplication().getApplicationContext();
+ String[] slowJpegPackageNames = applicationContext.getResources().getStringArray(
+ R.array.config_forceSlowJpegModeList);
+ String callingPackageName = applicationContext.getPackageName();
+ for (String packageName : slowJpegPackageNames) {
+ if (TextUtils.equals(packageName, callingPackageName)) {
+ return true;
+ }
+ }
+ return false;
}
/** used by Camera#open, Camera#open(int) */
@@ -571,7 +573,7 @@ public class Camera {
@UnsupportedAppUsage
private native int native_setup(Object cameraThis, int cameraId, String packageName,
- boolean overrideToPortrait);
+ boolean overrideToPortrait, boolean forceSlowJpegMode);
private native final void native_release();
diff --git a/core/java/android/hardware/camera2/CameraDevice.java b/core/java/android/hardware/camera2/CameraDevice.java
index 10a7538cf4880ec23232474ded4ddf4ba3394fb1..2f81e0c118d8b85c6be01b50aad49f18b2253de5 100644
--- a/core/java/android/hardware/camera2/CameraDevice.java
+++ b/core/java/android/hardware/camera2/CameraDevice.java
@@ -880,8 +880,8 @@ public abstract class CameraDevice implements AutoCloseable {
*
{@code PRIV}
{@code PREVIEW}
{@code PREVIEW}
{@code YUV / PRIV}
{@code s1440p}
{@code VIDEO_CALL}
Preview with video call
*
{@code YUV / PRIV}
{@code s1440p}
{@code PREVIEW_VIDEO_STILL}
{@code YUV / JPEG}
{@code MAXIMUM}
{@code STILL_CAPTURE}
Multi-purpose stream with JPEG or YUV still capture
*
{@code YUV}
{@code PREVIEW}
{@code STILL_CAPTURE}
{@code JPEG}
{@code MAXIMUM}
{@code STILL_CAPTURE}
YUV and JPEG concurrent still image capture (for testing)
- *
{@code PRIV}
{@code PREVIEW}
{@code PREVIEW}
{@code YUV / PRIV}
{@code RECORD}
{@code VIDEO_RECORD}
{@code YUV / JPEG}
{@code RECORD}
{@code STILL_CAPTURE}
Preview, video record and JPEG or YUV video snapshot
- *
{@code PRIV}
{@code PREVIEW}
{@code PREVIEW}
{@code YUV}
{@code PREVIEW}
{@code PREVIEW}
{@code YUV / JPEG}
{@code MAXIMUM}
{@code STILL_CAPTURE}
Preview, in-application image processing, and JPEG or YUV still image capture
+ *
{@code PRIV}
{@code PREVIEW}
{@code PREVIEW}
{@code YUV / PRIV}
{@code RECORD}
{@code VIDEO_RECORD}
{@code JPEG}
{@code RECORD}
{@code STILL_CAPTURE}
Preview, video record and JPEG video snapshot
+ *
{@code PRIV}
{@code PREVIEW}
{@code PREVIEW}
{@code YUV}
{@code PREVIEW}
{@code PREVIEW}
{@code JPEG}
{@code MAXIMUM}
{@code STILL_CAPTURE}
Preview, in-application image processing, and JPEG still image capture
*
*
*
diff --git a/core/java/android/hardware/camera2/CameraManager.java b/core/java/android/hardware/camera2/CameraManager.java
index ed1e9e5f62285e369e693bfa18cc72fee34a7bd5..3b2dd5ebdfc67e4885c48cccd2a806105672cab8 100644
--- a/core/java/android/hardware/camera2/CameraManager.java
+++ b/core/java/android/hardware/camera2/CameraManager.java
@@ -115,8 +115,14 @@ public final class CameraManager {
@ChangeId
@Overridable
@EnabledSince(targetSdkVersion = android.os.Build.VERSION_CODES.BASE)
- @TestApi
- public static final long OVERRIDE_FRONT_CAMERA_APP_COMPAT = 250678880L;
+ public static final long OVERRIDE_CAMERA_LANDSCAPE_TO_PORTRAIT = 250678880L;
+
+ /**
+ * Package-level opt in/out for the above.
+ * @hide
+ */
+ public static final String PROPERTY_COMPAT_OVERRIDE_LANDSCAPE_TO_PORTRAIT =
+ "android.camera.PROPERTY_COMPAT_OVERRIDE_LANDSCAPE_TO_PORTRAIT";
/**
* System property for allowing the above
@@ -392,6 +398,23 @@ public final class CameraManager {
* except that it uses {@link java.util.concurrent.Executor} as an argument
* instead of {@link android.os.Handler}.
*
+ *
Note: If the order between some availability callbacks matters, the implementation of the
+ * executor should handle those callbacks in the same thread to maintain the callbacks' order.
+ * Some examples are:
+ *
+ *
+ *
+ *
{@link AvailabilityCallback#onCameraAvailable} and
+ * {@link AvailabilityCallback#onCameraUnavailable} of the same camera ID.
+ *
+ *
{@link AvailabilityCallback#onCameraAvailable} or
+ * {@link AvailabilityCallback#onCameraUnavailable} of a logical multi-camera, and {@link
+ * AvailabilityCallback#onPhysicalCameraUnavailable} or
+ * {@link AvailabilityCallback#onPhysicalCameraAvailable} of its physical
+ * cameras.
+ *
+ *
+ *
* @param executor The executor which will be used to invoke the callback.
* @param callback the new callback to send camera availability notices to
*
@@ -608,7 +631,7 @@ public final class CameraManager {
try {
Size displaySize = getDisplaySize();
- boolean overrideToPortrait = shouldOverrideToPortrait();
+ boolean overrideToPortrait = shouldOverrideToPortrait(mContext);
CameraMetadataNative info = cameraService.getCameraCharacteristics(cameraId,
mContext.getApplicationInfo().targetSdkVersion, overrideToPortrait);
try {
@@ -728,7 +751,7 @@ public final class CameraManager {
"Camera service is currently unavailable");
}
- boolean overrideToPortrait = shouldOverrideToPortrait();
+ boolean overrideToPortrait = shouldOverrideToPortrait(mContext);
cameraUser = cameraService.connectDevice(callbacks, cameraId,
mContext.getOpPackageName(), mContext.getAttributionTag(), uid,
oomScoreOffset, mContext.getApplicationInfo().targetSdkVersion,
@@ -1160,9 +1183,26 @@ public final class CameraManager {
return CameraManagerGlobal.get().getTorchStrengthLevel(cameraId);
}
- private static boolean shouldOverrideToPortrait() {
- return CompatChanges.isChangeEnabled(OVERRIDE_FRONT_CAMERA_APP_COMPAT)
- && CameraManagerGlobal.sLandscapeToPortrait;
+ /**
+ * @hide
+ */
+ public static boolean shouldOverrideToPortrait(@Nullable Context context) {
+ if (!CameraManagerGlobal.sLandscapeToPortrait) {
+ return false;
+ }
+
+ if (context != null) {
+ PackageManager packageManager = context.getPackageManager();
+
+ try {
+ return packageManager.getProperty(PROPERTY_COMPAT_OVERRIDE_LANDSCAPE_TO_PORTRAIT,
+ context.getOpPackageName()).getBoolean();
+ } catch (PackageManager.NameNotFoundException e) {
+ // No such property
+ }
+ }
+
+ return CompatChanges.isChangeEnabled(OVERRIDE_CAMERA_LANDSCAPE_TO_PORTRAIT);
}
/**
@@ -2319,6 +2359,15 @@ public final class CameraManager {
final AvailabilityCallback callback = mCallbackMap.keyAt(i);
postSingleUpdate(callback, executor, id, null /*physicalId*/, status);
+
+ // Send the NOT_PRESENT state for unavailable physical cameras
+ if (isAvailable(status) && mUnavailablePhysicalDevices.containsKey(id)) {
+ ArrayList unavailableIds = mUnavailablePhysicalDevices.get(id);
+ for (String unavailableId : unavailableIds) {
+ postSingleUpdate(callback, executor, id, unavailableId,
+ ICameraServiceListener.STATUS_NOT_PRESENT);
+ }
+ }
}
} // onStatusChangedLocked
@@ -2338,9 +2387,8 @@ public final class CameraManager {
}
//TODO: Do we need to treat this as error?
- if (!mDeviceStatus.containsKey(id) || !isAvailable(mDeviceStatus.get(id))
- || !mUnavailablePhysicalDevices.containsKey(id)) {
- Log.e(TAG, String.format("Camera %s is not available. Ignore physical camera "
+ if (!mDeviceStatus.containsKey(id) || !mUnavailablePhysicalDevices.containsKey(id)) {
+ Log.e(TAG, String.format("Camera %s is not present. Ignore physical camera "
+ "status change", id));
return;
}
@@ -2365,6 +2413,12 @@ public final class CameraManager {
return;
}
+ if (!isAvailable(mDeviceStatus.get(id))) {
+ Log.i(TAG, String.format("Camera %s is not available. Ignore physical camera "
+ + "status change callback(s)", id));
+ return;
+ }
+
final int callbackCount = mCallbackMap.size();
for (int i = 0; i < callbackCount; i++) {
Executor executor = mCallbackMap.valueAt(i);
diff --git a/core/java/android/hardware/camera2/extension/CameraOutputConfig.aidl b/core/java/android/hardware/camera2/extension/CameraOutputConfig.aidl
index 34d016adbc0654b050478370c13ae70b2cb2d475..7c54a9b01ddedea7bc0516bff0b60a3fe39eadad 100644
--- a/core/java/android/hardware/camera2/extension/CameraOutputConfig.aidl
+++ b/core/java/android/hardware/camera2/extension/CameraOutputConfig.aidl
@@ -36,4 +36,5 @@ parcelable CameraOutputConfig
int surfaceGroupId;
String physicalCameraId;
List sharedSurfaceConfigs;
+ boolean isMultiResolutionOutput;
}
diff --git a/core/java/android/hardware/camera2/impl/CameraAdvancedExtensionSessionImpl.java b/core/java/android/hardware/camera2/impl/CameraAdvancedExtensionSessionImpl.java
index 41370e37f0924650e23b90362c5c22975605932b..02e7f6036b3431db24af67c60ab2c291f8918acd 100644
--- a/core/java/android/hardware/camera2/impl/CameraAdvancedExtensionSessionImpl.java
+++ b/core/java/android/hardware/camera2/impl/CameraAdvancedExtensionSessionImpl.java
@@ -228,6 +228,9 @@ public final class CameraAdvancedExtensionSessionImpl extends CameraExtensionSes
OutputConfiguration cameraOutput = new OutputConfiguration(output.surfaceGroupId,
outputSurface);
+ if (output.isMultiResolutionOutput) {
+ cameraOutput.setMultiResolutionOutput();
+ }
if ((output.sharedSurfaceConfigs != null) && !output.sharedSurfaceConfigs.isEmpty()) {
cameraOutput.enableSurfaceSharing();
for (CameraOutputConfig sharedOutputConfig : output.sharedSurfaceConfigs) {
diff --git a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
index a6c79b3a289f8f33caca28fb1335d89645387b0b..0c2468e655772688a18f2ba49da1856a438c418c 100644
--- a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
+++ b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
@@ -87,6 +87,7 @@ public class CameraDeviceImpl extends CameraDevice
// TODO: guard every function with if (!mRemoteDevice) check (if it was closed)
private ICameraDeviceUserWrapper mRemoteDevice;
+ private boolean mRemoteDeviceInit = false;
// Lock to synchronize cross-thread access to device public interface
final Object mInterfaceLock = new Object(); // access from this class and Session only!
@@ -338,6 +339,8 @@ public class CameraDeviceImpl extends CameraDevice
mDeviceExecutor.execute(mCallOnOpened);
mDeviceExecutor.execute(mCallOnUnconfigured);
+
+ mRemoteDeviceInit = true;
}
}
@@ -1754,8 +1757,8 @@ public class CameraDeviceImpl extends CameraDevice
}
synchronized(mInterfaceLock) {
- if (mRemoteDevice == null) {
- return; // Camera already closed
+ if (mRemoteDevice == null && mRemoteDeviceInit) {
+ return; // Camera already closed, user is not interested in errors anymore.
}
// Redirect device callback to the offline session in case we are in the middle
diff --git a/core/java/android/hardware/camera2/params/MandatoryStreamCombination.java b/core/java/android/hardware/camera2/params/MandatoryStreamCombination.java
index 956a474401bae346b5d49f6ded0a12d14ce932cc..d64009c734017ed6644ef40800152d8807f4d1cf 100644
--- a/core/java/android/hardware/camera2/params/MandatoryStreamCombination.java
+++ b/core/java/android/hardware/camera2/params/MandatoryStreamCombination.java
@@ -1220,14 +1220,6 @@ public final class MandatoryStreamCombination {
new StreamTemplate(ImageFormat.JPEG, SizeThreshold.RECORD,
STREAM_USE_CASE_STILL_CAPTURE)},
"Preview, video record and JPEG video snapshot"),
- new StreamCombinationTemplate(new StreamTemplate [] {
- new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.PREVIEW,
- STREAM_USE_CASE_PREVIEW),
- new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.RECORD,
- STREAM_USE_CASE_RECORD),
- new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.RECORD,
- STREAM_USE_CASE_STILL_CAPTURE)},
- "Preview, video record and YUV video snapshot"),
new StreamCombinationTemplate(new StreamTemplate [] {
new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.PREVIEW,
STREAM_USE_CASE_PREVIEW),
@@ -1236,14 +1228,6 @@ public final class MandatoryStreamCombination {
new StreamTemplate(ImageFormat.JPEG, SizeThreshold.RECORD,
STREAM_USE_CASE_STILL_CAPTURE)},
"Preview, in-application video processing and JPEG video snapshot"),
- new StreamCombinationTemplate(new StreamTemplate [] {
- new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.PREVIEW,
- STREAM_USE_CASE_PREVIEW),
- new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.RECORD,
- STREAM_USE_CASE_RECORD),
- new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.RECORD,
- STREAM_USE_CASE_STILL_CAPTURE)},
- "Preview, in-application video processing and YUV video snapshot"),
new StreamCombinationTemplate(new StreamTemplate [] {
new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.PREVIEW,
STREAM_USE_CASE_PREVIEW),
@@ -1252,14 +1236,6 @@ public final class MandatoryStreamCombination {
new StreamTemplate(ImageFormat.JPEG, SizeThreshold.MAXIMUM,
STREAM_USE_CASE_STILL_CAPTURE)},
"Preview, in-application image processing, and JPEG still image capture"),
- new StreamCombinationTemplate(new StreamTemplate [] {
- new StreamTemplate(ImageFormat.PRIVATE, SizeThreshold.PREVIEW,
- STREAM_USE_CASE_PREVIEW),
- new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.PREVIEW,
- STREAM_USE_CASE_PREVIEW),
- new StreamTemplate(ImageFormat.YUV_420_888, SizeThreshold.MAXIMUM,
- STREAM_USE_CASE_STILL_CAPTURE)},
- "Preview, in-application image processing, and YUV still image capture"),
};
private static StreamCombinationTemplate sPreviewStabilizedStreamCombinations[] = {
diff --git a/core/java/android/hardware/camera2/params/OutputConfiguration.java b/core/java/android/hardware/camera2/params/OutputConfiguration.java
index 558bb6335dd3d61d4239577fcefe355f8c3b7938..e3d650248ff8a6d46a569b6c2b68e37c54305a3a 100644
--- a/core/java/android/hardware/camera2/params/OutputConfiguration.java
+++ b/core/java/android/hardware/camera2/params/OutputConfiguration.java
@@ -421,7 +421,7 @@ public final class OutputConfiguration implements Parcelable {
* call, or no non-negative group ID has been set.
* @hide
*/
- void setMultiResolutionOutput() {
+ public void setMultiResolutionOutput() {
if (mIsShared) {
throw new IllegalStateException("Multi-resolution output flag must not be set for " +
"configuration with surface sharing");
diff --git a/core/java/android/hardware/devicestate/DeviceStateManager.java b/core/java/android/hardware/devicestate/DeviceStateManager.java
index dba1a5e8dfc616135e2b85aab27c349a802c53fb..6a667fe39974d16e0b1322be865a2fbde2b382b1 100644
--- a/core/java/android/hardware/devicestate/DeviceStateManager.java
+++ b/core/java/android/hardware/devicestate/DeviceStateManager.java
@@ -251,6 +251,10 @@ public final class DeviceStateManager {
@Nullable
private Boolean lastResult;
+ public FoldStateListener(Context context) {
+ this(context, folded -> {});
+ }
+
public FoldStateListener(Context context, Consumer listener) {
mFoldedDeviceStates = context.getResources().getIntArray(
com.android.internal.R.array.config_foldedDeviceStates);
@@ -266,5 +270,10 @@ public final class DeviceStateManager {
mDelegate.accept(folded);
}
}
+
+ @Nullable
+ public Boolean getFolded() {
+ return lastResult;
+ }
}
}
diff --git a/core/java/android/hardware/display/DisplayManagerGlobal.java b/core/java/android/hardware/display/DisplayManagerGlobal.java
index 63dc7c7ed661516eccb659982aca3aee94483b30..aef2ae26747d2420a71ccbc5bc9d8803e14ac69c 100644
--- a/core/java/android/hardware/display/DisplayManagerGlobal.java
+++ b/core/java/android/hardware/display/DisplayManagerGlobal.java
@@ -40,6 +40,7 @@ import android.os.Looper;
import android.os.Message;
import android.os.RemoteException;
import android.os.ServiceManager;
+import android.os.Trace;
import android.util.Log;
import android.util.Pair;
import android.util.SparseArray;
@@ -1006,7 +1007,8 @@ public final class DisplayManagerGlobal {
@Override
public void onDisplayEvent(int displayId, @DisplayEvent int event) {
if (DEBUG) {
- Log.d(TAG, "onDisplayEvent: displayId=" + displayId + ", event=" + event);
+ Log.d(TAG, "onDisplayEvent: displayId=" + displayId + ", event=" + eventToString(
+ event));
}
handleDisplayEvent(displayId, event);
}
@@ -1040,6 +1042,12 @@ public final class DisplayManagerGlobal {
@Override
public void handleMessage(Message msg) {
+ if (DEBUG) {
+ Trace.beginSection(
+ "DisplayListenerDelegate(" + eventToString(msg.what)
+ + ", display=" + msg.arg1
+ + ", listener=" + mListener.getClass() + ")");
+ }
switch (msg.what) {
case EVENT_DISPLAY_ADDED:
if ((mEventsMask & DisplayManager.EVENT_FLAG_DISPLAY_ADDED) != 0) {
@@ -1066,6 +1074,9 @@ public final class DisplayManagerGlobal {
}
break;
}
+ if (DEBUG) {
+ Trace.endSection();
+ }
}
}
@@ -1172,4 +1183,18 @@ public final class DisplayManagerGlobal {
updateCallbackIfNeededLocked();
}
}
+
+ private static String eventToString(@DisplayEvent int event) {
+ switch (event) {
+ case EVENT_DISPLAY_ADDED:
+ return "ADDED";
+ case EVENT_DISPLAY_CHANGED:
+ return "CHANGED";
+ case EVENT_DISPLAY_REMOVED:
+ return "REMOVED";
+ case EVENT_DISPLAY_BRIGHTNESS_CHANGED:
+ return "BRIGHTNESS_CHANGED";
+ }
+ return "UNKNOWN";
+ }
}
diff --git a/core/java/android/hardware/fingerprint/IUdfpsHbmListener.aidl b/core/java/android/hardware/fingerprint/IUdfpsHbmListener.aidl
index 9c2aa66993347f591c2de0f9eaf805c3b3a69fda..a36ccf6150bae83ee6f6f9c7dac11814f4c0b59e 100644
--- a/core/java/android/hardware/fingerprint/IUdfpsHbmListener.aidl
+++ b/core/java/android/hardware/fingerprint/IUdfpsHbmListener.aidl
@@ -39,5 +39,15 @@ oneway interface IUdfpsHbmListener {
* {@link android.view.Display#getDisplayId()}.
*/
void onHbmDisabled(int displayId);
+
+ /**
+ * To avoid delay in switching refresh rate when activating LHBM, allow screens to request
+ * higher refersh rate if auth is possible on particular screen
+ *
+ * @param displayId The displayId for which the refresh rate should be unset. See
+ * {@link android.view.Display#getDisplayId()}.
+ * @param isPossible If authentication is possible on particualr screen
+ */
+ void onAuthenticationPossible(int displayId, boolean isPossible);
}
diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java
index baf8836c5af584ec241ec998d5ecb9f02ab947c4..b6cd06ea8b5cf423ecfc3b1054aef8217a13ef4f 100644
--- a/core/java/android/hardware/input/InputManager.java
+++ b/core/java/android/hardware/input/InputManager.java
@@ -168,7 +168,7 @@ public final class InputManager {
* The android:label attribute specifies a human-readable descriptive
* label to describe the keyboard layout in the user interface, such as "English (US)".
* The android:keyboardLayout attribute refers to a
- *
+ *
* key character map resource that defines the keyboard layout.
*
*/
diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java
index 3d5c34c384314327793894d66bc4bf2340c60490..4f49f12691d0b1508a7361e9bd97ef6f1f2c7320 100644
--- a/core/java/android/os/BatteryStats.java
+++ b/core/java/android/os/BatteryStats.java
@@ -649,8 +649,11 @@ public abstract class BatteryStats implements Parcelable {
return Uid.PROCESS_STATE_NONEXISTENT;
} else if (procState == ActivityManager.PROCESS_STATE_TOP) {
return Uid.PROCESS_STATE_TOP;
- } else if (ActivityManager.isForegroundService(procState)) {
- // State when app has put itself in the foreground.
+ } else if (procState == ActivityManager.PROCESS_STATE_BOUND_TOP) {
+ return Uid.PROCESS_STATE_BACKGROUND;
+ } else if (procState == ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE) {
+ return Uid.PROCESS_STATE_FOREGROUND_SERVICE;
+ } else if (procState == ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE) {
return Uid.PROCESS_STATE_FOREGROUND_SERVICE;
} else if (procState <= ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND) {
// Persistent and other foreground states go here.
@@ -2804,6 +2807,15 @@ public abstract class BatteryStats implements Parcelable {
*/
public abstract long getMobileRadioMeasuredBatteryConsumptionUC();
+ /**
+ * Returns the battery consumption (in microcoulombs) of the phone calls, derived from on device
+ * power measurement data.
+ * Will return {@link #POWER_DATA_UNAVAILABLE} if data is unavailable.
+ *
+ * {@hide}
+ */
+ public abstract long getPhoneEnergyConsumptionUC();
+
/**
* Returns the battery consumption (in microcoulombs) of the screen while on, derived from on
* device power measurement data.
diff --git a/core/java/android/os/IUserManager.aidl b/core/java/android/os/IUserManager.aidl
index e1d15defad3812c378f568c123aa71900af486f6..125bdaf07b9083957684d7576e1952884f46ab10 100644
--- a/core/java/android/os/IUserManager.aidl
+++ b/core/java/android/os/IUserManager.aidl
@@ -74,6 +74,7 @@ interface IUserManager {
String getUserAccount(int userId);
void setUserAccount(int userId, String accountName);
long getUserCreationTime(int userId);
+ int getUserSwitchability(int userId);
boolean isUserSwitcherEnabled(int mUserId);
boolean isRestricted(int userId);
boolean canHaveRestrictedProfile(int userId);
diff --git a/core/java/android/os/Trace.java b/core/java/android/os/Trace.java
index 320b02c2a0b415415df8920643e5250b37f21c8b..bc65061ba244f4baed5bd5f7b557af97f3c5ac23 100644
--- a/core/java/android/os/Trace.java
+++ b/core/java/android/os/Trace.java
@@ -110,7 +110,8 @@ public final class Trace {
public static final long TRACE_TAG_THERMAL = 1L << 27;
private static final long TRACE_TAG_NOT_READY = 1L << 63;
- private static final int MAX_SECTION_NAME_LEN = 127;
+ /** @hide **/
+ public static final int MAX_SECTION_NAME_LEN = 127;
// Must be volatile to avoid word tearing.
// This is only kept in case any apps get this by reflection but do not
diff --git a/core/java/android/os/UidBatteryConsumer.java b/core/java/android/os/UidBatteryConsumer.java
index 91d231eb1c398c8808a45c970b063f8c07d507bc..787b609ab2c14bbaf9710a1916523476784a57d1 100644
--- a/core/java/android/os/UidBatteryConsumer.java
+++ b/core/java/android/os/UidBatteryConsumer.java
@@ -51,8 +51,7 @@ public final class UidBatteryConsumer extends BatteryConsumer {
}
/**
- * The state of an application when it is either running a foreground (top) activity
- * or a foreground service.
+ * The state of an application when it is either running a foreground (top) activity.
*/
public static final int STATE_FOREGROUND = 0;
@@ -64,7 +63,8 @@ public final class UidBatteryConsumer extends BatteryConsumer {
* {@link android.app.ActivityManager#PROCESS_STATE_TRANSIENT_BACKGROUND},
* {@link android.app.ActivityManager#PROCESS_STATE_BACKUP},
* {@link android.app.ActivityManager#PROCESS_STATE_SERVICE},
- * {@link android.app.ActivityManager#PROCESS_STATE_RECEIVER}.
+ * {@link android.app.ActivityManager#PROCESS_STATE_RECEIVER},
+ * {@link android.app.ActivityManager#PROCESS_STATE_FOREGROUND_SERVICE}.
*/
public static final int STATE_BACKGROUND = 1;
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index e5b8472be9397d0e1e6e79e5a9b8caf57691a49f..df82a546b219c4021e09cc88113a6987cb655e29 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -58,7 +58,6 @@ import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.location.LocationManager;
import android.provider.Settings;
-import android.telephony.TelephonyManager;
import android.util.AndroidException;
import android.util.ArraySet;
import android.util.Log;
@@ -595,8 +594,11 @@ public class UserManager {
/**
* Specifies if a user is disallowed from transferring files over USB.
*
- *
This restriction can only be set by a device owner, a profile owner on the primary
- * user or a profile owner of an organization-owned managed profile on the parent profile.
+ *
This restriction can only be set by a
+ * device owner or a
+ * profile owner on the primary user's profile or a profile owner of an organization-owned
+ *
+ * managed profile on the parent profile.
* When it is set by a device owner, it applies globally. When it is set by a profile owner
* on the primary user or by a profile owner of an organization-owned managed profile on
* the parent profile, it disables the primary user from transferring files over USB. No other
@@ -1687,7 +1689,7 @@ public class UserManager {
public static final int SWITCHABILITY_STATUS_SYSTEM_USER_LOCKED = 1 << 2;
/**
- * Result returned in {@link #getUserSwitchability()} indicating user swichability.
+ * Result returned in {@link #getUserSwitchability()} indicating user switchability.
* @hide
*/
@Retention(RetentionPolicy.SOURCE)
@@ -2054,25 +2056,16 @@ public class UserManager {
* @hide
*/
@Deprecated
- @RequiresPermission(allOf = {
- Manifest.permission.READ_PHONE_STATE,
- Manifest.permission.MANAGE_USERS}, // Can be INTERACT_ACROSS_USERS instead.
- conditional = true)
+ @RequiresPermission(anyOf = {android.Manifest.permission.MANAGE_USERS,
+ android.Manifest.permission.INTERACT_ACROSS_USERS})
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
@UserHandleAware
public boolean canSwitchUsers() {
- boolean allowUserSwitchingWhenSystemUserLocked = Settings.Global.getInt(
- mContext.getContentResolver(),
- Settings.Global.ALLOW_USER_SWITCHING_WHEN_SYSTEM_USER_LOCKED, 0) != 0;
- boolean isSystemUserUnlocked = isUserUnlocked(UserHandle.SYSTEM);
- boolean inCall = false;
- TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class);
- if (telephonyManager != null) {
- inCall = telephonyManager.getCallState() != TelephonyManager.CALL_STATE_IDLE;
+ try {
+ return mService.getUserSwitchability(mUserId) == SWITCHABILITY_STATUS_OK;
+ } catch (RemoteException re) {
+ throw re.rethrowFromSystemServer();
}
- boolean isUserSwitchDisallowed = hasUserRestrictionForUser(DISALLOW_USER_SWITCH, mUserId);
- return (allowUserSwitchingWhenSystemUserLocked || isSystemUserUnlocked) && !inCall
- && !isUserSwitchDisallowed;
}
/**
@@ -2106,34 +2099,14 @@ public class UserManager {
* @return A {@link UserSwitchabilityResult} flag indicating if the user is switchable.
* @hide
*/
- @RequiresPermission(allOf = {Manifest.permission.READ_PHONE_STATE,
- android.Manifest.permission.MANAGE_USERS,
- android.Manifest.permission.INTERACT_ACROSS_USERS}, conditional = true)
+ @RequiresPermission(anyOf = {android.Manifest.permission.MANAGE_USERS,
+ android.Manifest.permission.INTERACT_ACROSS_USERS})
public @UserSwitchabilityResult int getUserSwitchability(UserHandle userHandle) {
- final TelephonyManager tm =
- (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
-
- int flags = SWITCHABILITY_STATUS_OK;
- if (tm.getCallState() != TelephonyManager.CALL_STATE_IDLE) {
- flags |= SWITCHABILITY_STATUS_USER_IN_CALL;
- }
- if (hasUserRestrictionForUser(DISALLOW_USER_SWITCH, userHandle)) {
- flags |= SWITCHABILITY_STATUS_USER_SWITCH_DISALLOWED;
- }
-
- // System User is always unlocked in Headless System User Mode, so ignore this flag
- if (!isHeadlessSystemUserMode()) {
- final boolean allowUserSwitchingWhenSystemUserLocked = Settings.Global.getInt(
- mContext.getContentResolver(),
- Settings.Global.ALLOW_USER_SWITCHING_WHEN_SYSTEM_USER_LOCKED, 0) != 0;
- final boolean systemUserUnlocked = isUserUnlocked(UserHandle.SYSTEM);
-
- if (!allowUserSwitchingWhenSystemUserLocked && !systemUserUnlocked) {
- flags |= SWITCHABILITY_STATUS_SYSTEM_USER_LOCKED;
- }
+ try {
+ return mService.getUserSwitchability(userHandle.getIdentifier());
+ } catch (RemoteException re) {
+ throw re.rethrowFromSystemServer();
}
-
- return flags;
}
/**
diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java
index 08de87ebe2e61c4cd3407f13d3e33da224813dee..0d9f500cb1028ac6d20f9ca1ac8d0fde11d1ad40 100644
--- a/core/java/android/os/storage/StorageManager.java
+++ b/core/java/android/os/storage/StorageManager.java
@@ -2552,6 +2552,8 @@ public class StorageManager {
* This API doesn't require any special permissions, though typical implementations
* will require being called from an SELinux domain that allows setting file attributes
* related to quota (eg the GID or project ID).
+ * If the calling user has MANAGE_EXTERNAL_STORAGE permissions, quota for shared profile's
+ * volumes is also updated.
*
* The default platform user of this API is the MediaProvider process, which is
* responsible for managing all of external storage.
@@ -2572,7 +2574,14 @@ public class StorageManager {
@QuotaType int quotaType) throws IOException {
long projectId;
final String filePath = path.getCanonicalPath();
- final StorageVolume volume = getStorageVolume(path);
+ int volFlags = FLAG_REAL_STATE | FLAG_INCLUDE_INVISIBLE;
+ // If caller has MANAGE_EXTERNAL_STORAGE permission, results from User Profile(s) are also
+ // returned by enabling FLAG_INCLUDE_SHARED_PROFILE.
+ if (mContext.checkSelfPermission(MANAGE_EXTERNAL_STORAGE) == PERMISSION_GRANTED) {
+ volFlags |= FLAG_INCLUDE_SHARED_PROFILE;
+ }
+ final StorageVolume[] availableVolumes = getVolumeList(mContext.getUserId(), volFlags);
+ final StorageVolume volume = getStorageVolume(availableVolumes, path);
if (volume == null) {
Log.w(TAG, "Failed to update quota type for " + filePath);
return;
diff --git a/core/java/android/preference/SeekBarVolumizer.java b/core/java/android/preference/SeekBarVolumizer.java
index 3bf9ca04414179efeb46980c40885ae92a18af7c..6f2a915cee46df8829c14bcb7dc2f138560d23f2 100644
--- a/core/java/android/preference/SeekBarVolumizer.java
+++ b/core/java/android/preference/SeekBarVolumizer.java
@@ -16,7 +16,9 @@
package android.preference;
+import android.Manifest;
import android.annotation.NonNull;
+import android.annotation.RequiresPermission;
import android.app.NotificationManager;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.BroadcastReceiver;
@@ -35,6 +37,7 @@ import android.os.Handler;
import android.os.HandlerThread;
import android.os.Message;
import android.preference.VolumePreference.VolumeStore;
+import android.provider.DeviceConfig;
import android.provider.Settings;
import android.provider.Settings.Global;
import android.provider.Settings.System;
@@ -44,6 +47,7 @@ import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import com.android.internal.annotations.GuardedBy;
+import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
import com.android.internal.os.SomeArgs;
import java.util.concurrent.TimeUnit;
@@ -115,7 +119,6 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
private final int mMaxStreamVolume;
private boolean mAffectedByRingerMode;
private boolean mNotificationOrRing;
- private final boolean mNotifAliasRing;
private final Receiver mReceiver = new Receiver();
private Handler mHandler;
@@ -138,12 +141,15 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
private int mRingerMode;
private int mZenMode;
private boolean mPlaySample;
+ private final boolean mDeviceHasProductStrategies;
private static final int MSG_SET_STREAM_VOLUME = 0;
private static final int MSG_START_SAMPLE = 1;
private static final int MSG_STOP_SAMPLE = 2;
private static final int MSG_INIT_SAMPLE = 3;
+ private static final int MSG_UPDATE_SLIDER_MAYBE_LATER = 4;
private static final int CHECK_RINGTONE_PLAYBACK_DELAY_MS = 1000;
+ private static final int CHECK_UPDATE_SLIDER_LATER_MS = 500;
private static final long SET_STREAM_VOLUME_DELAY_MS = TimeUnit.MILLISECONDS.toMillis(500);
private static final long START_SAMPLE_DELAY_MS = TimeUnit.MILLISECONDS.toMillis(500);
private static final long DURATION_TO_START_DELAYING = TimeUnit.MILLISECONDS.toMillis(2000);
@@ -158,6 +164,7 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
this(context, streamType, defaultUri, callback, true /* playSample */);
}
+ @RequiresPermission(Manifest.permission.READ_DEVICE_CONFIG)
public SeekBarVolumizer(
Context context,
int streamType,
@@ -166,6 +173,7 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
boolean playSample) {
mContext = context;
mAudioManager = context.getSystemService(AudioManager.class);
+ mDeviceHasProductStrategies = hasAudioProductStrategies();
mNotificationManager = context.getSystemService(NotificationManager.class);
mNotificationPolicy = mNotificationManager.getConsolidatedNotificationPolicy();
mAllowAlarms = (mNotificationPolicy.priorityCategories & NotificationManager.Policy
@@ -180,11 +188,9 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
if (mNotificationOrRing) {
mRingerMode = mAudioManager.getRingerModeInternal();
}
- mNotifAliasRing = mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_alias_ring_notif_stream_types);
mZenMode = mNotificationManager.getZenMode();
- if (hasAudioProductStrategies()) {
+ if (mDeviceHasProductStrategies) {
mVolumeGroupId = getVolumeGroupIdForLegacyStreamType(mStreamType);
mAttributes = getAudioAttributesForLegacyStreamType(
mStreamType);
@@ -211,6 +217,12 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
mDefaultUri = defaultUri;
}
+ /**
+ * DO NOT CALL every time this is needed, use once in constructor,
+ * read mDeviceHasProductStrategies instead
+ * @return true if stream types are used for volume management, false if volume groups are
+ * used for volume management
+ */
private boolean hasAudioProductStrategies() {
return AudioManager.getAudioProductStrategies().size() > 0;
}
@@ -288,7 +300,9 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
* so that when user attempts to slide the notification seekbar out of vibrate the
* seekbar doesn't wrongly snap back to 0 when the streams aren't aliased
*/
- if (mNotifAliasRing || mStreamType == AudioManager.STREAM_RING
+ if (!DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SYSTEMUI,
+ SystemUiDeviceConfigFlags.VOLUME_SEPARATE_NOTIFICATION, false)
+ || mStreamType == AudioManager.STREAM_RING
|| (mStreamType == AudioManager.STREAM_NOTIFICATION && mMuted)) {
mSeekBar.setProgress(0, true);
}
@@ -326,6 +340,9 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
onInitSample();
}
break;
+ case MSG_UPDATE_SLIDER_MAYBE_LATER:
+ onUpdateSliderMaybeLater();
+ break;
default:
Log.e(TAG, "invalid SeekBarVolumizer message: "+msg.what);
}
@@ -349,6 +366,21 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
: isDelay() ? START_SAMPLE_DELAY_MS : 0);
}
+ private void onUpdateSliderMaybeLater() {
+ if (isDelay()) {
+ postUpdateSliderMaybeLater();
+ return;
+ }
+ updateSlider();
+ }
+
+ private void postUpdateSliderMaybeLater() {
+ if (mHandler == null) return;
+ mHandler.removeMessages(MSG_UPDATE_SLIDER_MAYBE_LATER);
+ mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_UPDATE_SLIDER_MAYBE_LATER),
+ CHECK_UPDATE_SLIDER_LATER_MS);
+ }
+
// After stop volume it needs to add a small delay when playing volume or set stream.
// It is because the call volume is from the earpiece and the alarm/ring/media
// is from the speaker. If play the alarm volume or set alarm stream right after stop
@@ -365,7 +397,9 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
// set the time of stop volume
if ((mStreamType == AudioManager.STREAM_VOICE_CALL
|| mStreamType == AudioManager.STREAM_RING
- || (!mNotifAliasRing && mStreamType == AudioManager.STREAM_NOTIFICATION)
+ || (DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SYSTEMUI,
+ SystemUiDeviceConfigFlags.VOLUME_SEPARATE_NOTIFICATION, false)
+ && mStreamType == AudioManager.STREAM_NOTIFICATION)
|| mStreamType == AudioManager.STREAM_ALARM)) {
sStopVolumeTime = java.lang.System.currentTimeMillis();
}
@@ -416,7 +450,7 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
postStopSample();
mContext.getContentResolver().unregisterContentObserver(mVolumeObserver);
mReceiver.setListening(false);
- if (hasAudioProductStrategies()) {
+ if (mDeviceHasProductStrategies) {
unregisterVolumeGroupCb();
}
mSeekBar.setOnSeekBarChangeListener(null);
@@ -436,7 +470,7 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
System.getUriFor(System.VOLUME_SETTINGS_INT[mStreamType]),
false, mVolumeObserver);
mReceiver.setListening(true);
- if (hasAudioProductStrategies()) {
+ if (mDeviceHasProductStrategies) {
registerVolumeGroupCb();
}
}
@@ -460,6 +494,7 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
mLastProgress = progress;
mHandler.removeMessages(MSG_SET_STREAM_VOLUME);
mHandler.removeMessages(MSG_START_SAMPLE);
+ mHandler.removeMessages(MSG_UPDATE_SLIDER_MAYBE_LATER);
mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_SET_STREAM_VOLUME),
isDelay() ? SET_STREAM_VOLUME_DELAY_MS : 0);
}
@@ -603,7 +638,7 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
if (AudioManager.VOLUME_CHANGED_ACTION.equals(action)) {
int streamType = intent.getIntExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE, -1);
int streamValue = intent.getIntExtra(AudioManager.EXTRA_VOLUME_STREAM_VALUE, -1);
- if (hasAudioProductStrategies() && !isDelay()) {
+ if (mDeviceHasProductStrategies && !isDelay()) {
updateVolumeSlider(streamType, streamValue);
}
} else if (AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION.equals(action)) {
@@ -615,9 +650,16 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
}
} else if (AudioManager.STREAM_DEVICES_CHANGED_ACTION.equals(action)) {
int streamType = intent.getIntExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE, -1);
- if (hasAudioProductStrategies() && !isDelay()) {
- int streamVolume = mAudioManager.getStreamVolume(streamType);
- updateVolumeSlider(streamType, streamVolume);
+
+ if (mDeviceHasProductStrategies) {
+ if (isDelay()) {
+ // not the right time to update the sliders, try again later
+ postUpdateSliderMaybeLater();
+ } else {
+ int streamVolume = mAudioManager.getStreamVolume(streamType);
+ updateVolumeSlider(streamType, streamVolume);
+ }
+
} else {
int volumeGroup = getVolumeGroupIdForLegacyStreamType(streamType);
if (volumeGroup != AudioVolumeGroup.DEFAULT_VOLUME_GROUP
@@ -644,8 +686,10 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
}
private void updateVolumeSlider(int streamType, int streamValue) {
- final boolean streamMatch = mNotifAliasRing && mNotificationOrRing
- ? isNotificationOrRing(streamType) : streamType == mStreamType;
+ final boolean streamMatch = !DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SYSTEMUI,
+ SystemUiDeviceConfigFlags.VOLUME_SEPARATE_NOTIFICATION, false)
+ && mNotificationOrRing ? isNotificationOrRing(streamType) :
+ streamType == mStreamType;
if (mSeekBar != null && streamMatch && streamValue != -1) {
final boolean muted = mAudioManager.isStreamMute(mStreamType)
|| streamValue == 0;
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index fe0c1dd65befe03473e185b532ef23985ab0d534..c58dbdc9a077a31fc359fb8b2a00cea2eb75fbf3 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -7999,6 +7999,15 @@ public final class Settings {
public static final String ACCESSIBILITY_DISPLAY_INVERSION_ENABLED =
"accessibility_display_inversion_enabled";
+ /**
+ * Flag that specifies whether font size has been changed. The flag will
+ * be set when users change the scaled value of font size for the first time.
+ * @hide
+ */
+ @Readable
+ public static final String ACCESSIBILITY_FONT_SCALING_HAS_BEEN_CHANGED =
+ "accessibility_font_scaling_has_been_changed";
+
/**
* Setting that specifies whether display color space adjustment is
* enabled.
@@ -9199,6 +9208,14 @@ public final class Settings {
public static final String SCREENSAVER_COMPLICATIONS_ENABLED =
"screensaver_complications_enabled";
+ /**
+ * Whether home controls are enabled to be shown over the screensaver by the user.
+ *
+ * @hide
+ */
+ public static final String SCREENSAVER_HOME_CONTROLS_ENABLED =
+ "screensaver_home_controls_enabled";
+
/**
* Default, indicates that the user has not yet started the dock setup flow.
@@ -9231,6 +9248,14 @@ public final class Settings {
*/
public static final int DOCK_SETUP_PROMPTED = 3;
+ /**
+ * Indicates that the user has started dock setup but never finished it.
+ * One of the possible states for {@link #DOCK_SETUP_STATE}.
+ *
+ * @hide
+ */
+ public static final int DOCK_SETUP_INCOMPLETE = 4;
+
/**
* Indicates that the user has completed dock setup.
* One of the possible states for {@link #DOCK_SETUP_STATE}.
@@ -9239,6 +9264,14 @@ public final class Settings {
*/
public static final int DOCK_SETUP_COMPLETED = 10;
+ /**
+ * Indicates that dock setup timed out before the user could complete it.
+ * One of the possible states for {@link #DOCK_SETUP_STATE}.
+ *
+ * @hide
+ */
+ public static final int DOCK_SETUP_TIMED_OUT = 11;
+
/** @hide */
@Retention(RetentionPolicy.SOURCE)
@IntDef({
@@ -9246,7 +9279,9 @@ public final class Settings {
DOCK_SETUP_STARTED,
DOCK_SETUP_PAUSED,
DOCK_SETUP_PROMPTED,
- DOCK_SETUP_COMPLETED
+ DOCK_SETUP_INCOMPLETE,
+ DOCK_SETUP_COMPLETED,
+ DOCK_SETUP_TIMED_OUT
})
public @interface DockSetupState {
}
@@ -9515,7 +9550,7 @@ public final class Settings {
/**
* Indicates whether "seen" notifications should be suppressed from the lockscreen.
*
- * Type: int (0 for false, 1 for true)
+ * Type: int (0 for unset, 1 for true, 2 for false)
*
* @hide
*/
@@ -9818,11 +9853,12 @@ public final class Settings {
"fingerprint_side_fps_auth_downtime";
/**
- * Whether or not a SFPS device is required to be interactive for auth to unlock the device.
+ * Whether or not a SFPS device is enabling the performant auth setting.
+ * The "_V2" suffix was added to re-introduce the default behavior for
+ * users. See b/265264294 fore more details.
* @hide
*/
- public static final String SFPS_REQUIRE_SCREEN_ON_TO_AUTH_ENABLED =
- "sfps_require_screen_on_to_auth_enabled";
+ public static final String SFPS_PERFORMANT_AUTH_ENABLED = "sfps_performant_auth_enabled_v2";
/**
* Whether or not debugging is enabled.
@@ -9900,6 +9936,28 @@ public final class Settings {
public static final String ACTIVE_UNLOCK_ON_UNLOCK_INTENT_WHEN_BIOMETRIC_ENROLLED =
"active_unlock_on_unlock_intent_when_biometric_enrolled";
+ /**
+ * If active unlock triggers on unlock intents, then also request active unlock on
+ * these wake-up reasons. See {@link PowerManager.WakeReason} for value mappings.
+ * WakeReasons should be separated by a pipe. For example: "0|3" or "0". If this
+ * setting should be disabled, then this should be set to an empty string. A null value
+ * will use the system default value (WAKE_REASON_UNFOLD_DEVICE).
+ * @hide
+ */
+ public static final String ACTIVE_UNLOCK_WAKEUPS_CONSIDERED_UNLOCK_INTENTS =
+ "active_unlock_wakeups_considered_unlock_intents";
+
+ /**
+ * If active unlock triggers and succeeds on these wakeups, force dismiss keyguard on
+ * these wake reasons. See {@link PowerManager#WakeReason} for value mappings.
+ * WakeReasons should be separated by a pipe. For example: "0|3" or "0". If this
+ * setting should be disabled, then this should be set to an empty string. A null value
+ * will use the system default value (WAKE_REASON_UNFOLD_DEVICE).
+ * @hide
+ */
+ public static final String ACTIVE_UNLOCK_WAKEUPS_TO_FORCE_DISMISS_KEYGUARD =
+ "active_unlock_wakeups_to_force_dismiss_keyguard";
+
/**
* Whether the assist gesture should be enabled.
*
@@ -10938,21 +10996,46 @@ public final class Settings {
public @interface DeviceStateRotationLockSetting {
}
+ /** @hide */
+ public static final int DEVICE_STATE_ROTATION_KEY_UNKNOWN = -1;
+ /** @hide */
+ public static final int DEVICE_STATE_ROTATION_KEY_FOLDED = 0;
+ /** @hide */
+ public static final int DEVICE_STATE_ROTATION_KEY_HALF_FOLDED = 1;
+ /** @hide */
+ public static final int DEVICE_STATE_ROTATION_KEY_UNFOLDED = 2;
+
+ /**
+ * The different postures that can be used as keys with
+ * {@link #DEVICE_STATE_ROTATION_LOCK}.
+ * @hide
+ */
+ @IntDef(prefix = {"DEVICE_STATE_ROTATION_KEY_"}, value = {
+ DEVICE_STATE_ROTATION_KEY_UNKNOWN,
+ DEVICE_STATE_ROTATION_KEY_FOLDED,
+ DEVICE_STATE_ROTATION_KEY_HALF_FOLDED,
+ DEVICE_STATE_ROTATION_KEY_UNFOLDED,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface DeviceStateRotationLockKey {
+ }
+
/**
* Rotation lock setting keyed on device state.
*
- * This holds a serialized map using int keys that represent Device States and value of
+ * This holds a serialized map using int keys that represent postures in
+ * {@link DeviceStateRotationLockKey} and value of
* {@link DeviceStateRotationLockSetting} representing the rotation lock setting for that
- * device state.
+ * posture.
*
* Serialized as key0:value0:key1:value1:...:keyN:valueN.
*
* Example: "0:1:1:2:2:1"
* This example represents a map of:
*
*
* @hide
@@ -11015,6 +11098,13 @@ public final class Settings {
public static final String EXTRA_AUTOMATIC_POWER_SAVE_MODE =
"extra_automatic_power_save_mode";
+ /**
+ * Whether lockscreen weather is enabled.
+ *
+ * @hide
+ */
+ public static final String LOCK_SCREEN_WEATHER_ENABLED = "lockscreen_weather_enabled";
+
/**
* These entries are considered common between the personal and the managed profile,
* since the managed profile doesn't get to change them.
diff --git a/core/java/android/service/appprediction/AppPredictionService.java b/core/java/android/service/appprediction/AppPredictionService.java
index 4f37cd91b11fd015c46586a2960262c72e30e313..a2ffa5d34219f7a95553ffe69f726a7dc8b628b7 100644
--- a/core/java/android/service/appprediction/AppPredictionService.java
+++ b/core/java/android/service/appprediction/AppPredictionService.java
@@ -328,7 +328,7 @@ public abstract class AppPredictionService extends Service {
Slog.e(TAG, "Callback is null, likely the binder has died.");
return false;
}
- return mCallback.equals(callback);
+ return mCallback.asBinder().equals(callback.asBinder());
}
public void destroy() {
diff --git a/core/java/android/service/autofill/FillEventHistory.java b/core/java/android/service/autofill/FillEventHistory.java
index 0fb9f57f5f574380e3b180167a435317328ab735..b0e847cd53f94b9c7a81043420d059364c7000ae 100644
--- a/core/java/android/service/autofill/FillEventHistory.java
+++ b/core/java/android/service/autofill/FillEventHistory.java
@@ -166,7 +166,7 @@ public final class FillEventHistory implements Parcelable {
}
/**
- * Description of an event that occured after the latest call to
+ * Description of an event that occurred after the latest call to
* {@link FillCallback#onSuccess(FillResponse)}.
*/
public static final class Event {
diff --git a/core/java/android/service/chooser/ChooserAction.java b/core/java/android/service/chooser/ChooserAction.java
index 3010049633d41f37edf9310f51bd8f22d2cdee8b..a61b781b6bca20b8f67319e123d80d523256024d 100644
--- a/core/java/android/service/chooser/ChooserAction.java
+++ b/core/java/android/service/chooser/ChooserAction.java
@@ -27,10 +27,9 @@ import java.util.Objects;
/**
* A ChooserAction is an app-defined action that can be provided to the Android Sharesheet to
- * be shown to the user when {@link android.content.Intent.ACTION_CHOOSER} is invoked.
+ * be shown to the user when {@link android.content.Intent#ACTION_CHOOSER} is invoked.
*
- * @see android.content.Intent.EXTRA_CHOOSER_CUSTOM_ACTIONS
- * @see android.content.Intent.EXTRA_CHOOSER_PAYLOAD_RESELECTION_ACTION
+ * @see android.content.Intent#EXTRA_CHOOSER_CUSTOM_ACTIONS
* @hide
*/
public final class ChooserAction implements Parcelable {
@@ -88,6 +87,7 @@ public final class ChooserAction implements Parcelable {
return "ChooserAction {" + "label=" + mLabel + ", intent=" + mAction + "}";
}
+ @NonNull
public static final Parcelable.Creator CREATOR =
new Creator() {
@Override
@@ -137,6 +137,7 @@ public final class ChooserAction implements Parcelable {
* object.
* @return the built action
*/
+ @NonNull
public ChooserAction build() {
return new ChooserAction(mIcon, mLabel, mAction);
}
diff --git a/core/java/android/service/dreams/DreamActivity.java b/core/java/android/service/dreams/DreamActivity.java
index a2fa1392b0796dddc82a1a758b6bf24402134a38..a3892238f1e6a789ebdc0397b5d9f94709a39198 100644
--- a/core/java/android/service/dreams/DreamActivity.java
+++ b/core/java/android/service/dreams/DreamActivity.java
@@ -58,11 +58,13 @@ public class DreamActivity extends Activity {
setTitle(title);
}
- final Bundle extras = getIntent().getExtras();
- mCallback = (DreamService.DreamActivityCallbacks) extras.getBinder(EXTRA_CALLBACK);
-
- if (mCallback != null) {
+ final Object callback = getIntent().getExtras().getBinder(EXTRA_CALLBACK);
+ if (callback instanceof DreamService.DreamActivityCallbacks) {
+ mCallback = (DreamService.DreamActivityCallbacks) callback;
mCallback.onActivityCreated(this);
+ } else {
+ mCallback = null;
+ finishAndRemoveTask();
}
}
diff --git a/core/java/android/service/dreams/DreamOverlayConnectionHandler.java b/core/java/android/service/dreams/DreamOverlayConnectionHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..cafe02ad86580962feab13ef1e85d5aee2ab3fbb
--- /dev/null
+++ b/core/java/android/service/dreams/DreamOverlayConnectionHandler.java
@@ -0,0 +1,242 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package android.service.dreams;
+
+import android.annotation.NonNull;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.os.RemoteException;
+import android.util.Log;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.ObservableServiceConnection;
+import com.android.internal.util.PersistentServiceConnection;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.Executor;
+import java.util.function.Consumer;
+
+/**
+ * Handles the service connection to {@link IDreamOverlay}
+ *
+ * @hide
+ */
+@VisibleForTesting
+public final class DreamOverlayConnectionHandler {
+ private static final String TAG = "DreamOverlayConnection";
+
+ private static final int MSG_ADD_CONSUMER = 1;
+ private static final int MSG_REMOVE_CONSUMER = 2;
+ private static final int MSG_OVERLAY_CLIENT_READY = 3;
+
+ private final Handler mHandler;
+ private final PersistentServiceConnection mConnection;
+ // Retrieved Client
+ private IDreamOverlayClient mClient;
+ // A list of pending requests to execute on the overlay.
+ private final List> mConsumers = new ArrayList<>();
+ private final OverlayConnectionCallback mCallback;
+
+ DreamOverlayConnectionHandler(
+ Context context,
+ Looper looper,
+ Intent serviceIntent,
+ int minConnectionDurationMs,
+ int maxReconnectAttempts,
+ int baseReconnectDelayMs) {
+ this(context, looper, serviceIntent, minConnectionDurationMs, maxReconnectAttempts,
+ baseReconnectDelayMs, new Injector());
+ }
+
+ @VisibleForTesting
+ public DreamOverlayConnectionHandler(
+ Context context,
+ Looper looper,
+ Intent serviceIntent,
+ int minConnectionDurationMs,
+ int maxReconnectAttempts,
+ int baseReconnectDelayMs,
+ Injector injector) {
+ mCallback = new OverlayConnectionCallback();
+ mHandler = new Handler(looper, new OverlayHandlerCallback());
+ mConnection = injector.buildConnection(
+ context,
+ mHandler,
+ serviceIntent,
+ minConnectionDurationMs,
+ maxReconnectAttempts,
+ baseReconnectDelayMs
+ );
+ }
+
+ /**
+ * Bind to the overlay service. If binding fails, we automatically call unbind to clean
+ * up resources.
+ *
+ * @return true if binding was successful, false otherwise.
+ */
+ public boolean bind() {
+ mConnection.addCallback(mCallback);
+ final boolean success = mConnection.bind();
+ if (!success) {
+ unbind();
+ }
+ return success;
+ }
+
+ /**
+ * Unbind from the overlay service, clearing any pending callbacks.
+ */
+ public void unbind() {
+ mConnection.removeCallback(mCallback);
+ // Remove any pending messages.
+ mHandler.removeCallbacksAndMessages(null);
+ mClient = null;
+ mConsumers.clear();
+ mConnection.unbind();
+ }
+
+ /**
+ * Adds a consumer to run once the overlay service has connected. If the overlay service
+ * disconnects (eg binding dies) and then reconnects, this consumer will be re-run unless
+ * removed.
+ *
+ * @param consumer The consumer to run. This consumer is always executed asynchronously.
+ */
+ public void addConsumer(Consumer consumer) {
+ final Message msg = mHandler.obtainMessage(MSG_ADD_CONSUMER, consumer);
+ mHandler.sendMessage(msg);
+ }
+
+ /**
+ * Removes the consumer, preventing this consumer from being called again.
+ *
+ * @param consumer The consumer to remove.
+ */
+ public void removeConsumer(Consumer consumer) {
+ final Message msg = mHandler.obtainMessage(MSG_REMOVE_CONSUMER, consumer);
+ mHandler.sendMessage(msg);
+ // Clear any pending messages to add this consumer
+ mHandler.removeMessages(MSG_ADD_CONSUMER, consumer);
+ }
+
+ private final class OverlayHandlerCallback implements Handler.Callback {
+ @Override
+ public boolean handleMessage(@NonNull Message msg) {
+ switch (msg.what) {
+ case MSG_OVERLAY_CLIENT_READY:
+ onOverlayClientReady((IDreamOverlayClient) msg.obj);
+ break;
+ case MSG_ADD_CONSUMER:
+ onAddConsumer((Consumer) msg.obj);
+ break;
+ case MSG_REMOVE_CONSUMER:
+ onRemoveConsumer((Consumer) msg.obj);
+ break;
+ }
+ return true;
+ }
+ }
+
+ private void onOverlayClientReady(IDreamOverlayClient client) {
+ mClient = client;
+ for (Consumer consumer : mConsumers) {
+ consumer.accept(mClient);
+ }
+ }
+
+ private void onAddConsumer(Consumer consumer) {
+ if (mClient != null) {
+ consumer.accept(mClient);
+ }
+ mConsumers.add(consumer);
+ }
+
+ private void onRemoveConsumer(Consumer consumer) {
+ mConsumers.remove(consumer);
+ }
+
+ private final class OverlayConnectionCallback implements
+ ObservableServiceConnection.Callback {
+
+ private final IDreamOverlayClientCallback mClientCallback =
+ new IDreamOverlayClientCallback.Stub() {
+ @Override
+ public void onDreamOverlayClient(IDreamOverlayClient client) {
+ final Message msg =
+ mHandler.obtainMessage(MSG_OVERLAY_CLIENT_READY, client);
+ mHandler.sendMessage(msg);
+ }
+ };
+
+ @Override
+ public void onConnected(
+ ObservableServiceConnection connection,
+ IDreamOverlay service) {
+ try {
+ service.getClient(mClientCallback);
+ } catch (RemoteException e) {
+ Log.e(TAG, "could not get DreamOverlayClient", e);
+ }
+ }
+
+ @Override
+ public void onDisconnected(ObservableServiceConnection connection,
+ int reason) {
+ mClient = null;
+ // Cancel any pending messages about the overlay being ready, since it is no
+ // longer ready.
+ mHandler.removeMessages(MSG_OVERLAY_CLIENT_READY);
+ }
+ }
+
+ /**
+ * Injector for testing
+ */
+ @VisibleForTesting
+ public static class Injector {
+ /**
+ * Returns milliseconds since boot, not counting time spent in deep sleep. Can be overridden
+ * in tests with a fake clock.
+ */
+ public PersistentServiceConnection buildConnection(
+ Context context,
+ Handler handler,
+ Intent serviceIntent,
+ int minConnectionDurationMs,
+ int maxReconnectAttempts,
+ int baseReconnectDelayMs) {
+ final Executor executor = handler::post;
+ final int flags = Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE;
+ return new PersistentServiceConnection<>(
+ context,
+ executor,
+ handler,
+ IDreamOverlay.Stub::asInterface,
+ serviceIntent,
+ flags,
+ minConnectionDurationMs,
+ maxReconnectAttempts,
+ baseReconnectDelayMs
+ );
+ }
+ }
+}
diff --git a/core/java/android/service/dreams/DreamOverlayService.java b/core/java/android/service/dreams/DreamOverlayService.java
index 6e8198ba0cd1a460c9cb4dfa0c63ed764f8c1911..5469916bea4e03480767141ae45584aeea114a87 100644
--- a/core/java/android/service/dreams/DreamOverlayService.java
+++ b/core/java/android/service/dreams/DreamOverlayService.java
@@ -27,6 +27,8 @@ import android.os.RemoteException;
import android.util.Log;
import android.view.WindowManager;
+import java.util.concurrent.Executor;
+
/**
* Basic implementation of for {@link IDreamOverlay} for testing.
@@ -36,37 +38,138 @@ import android.view.WindowManager;
public abstract class DreamOverlayService extends Service {
private static final String TAG = "DreamOverlayService";
private static final boolean DEBUG = false;
- private boolean mShowComplications;
- private ComponentName mDreamComponent;
- private IDreamOverlay mDreamOverlay = new IDreamOverlay.Stub() {
+ // The last client that started dreaming and hasn't ended
+ private OverlayClient mCurrentClient;
+
+ /**
+ * Executor used to run callbacks that subclasses will implement. Any calls coming over Binder
+ * from {@link OverlayClient} should perform the work they need to do on this executor.
+ */
+ private Executor mExecutor;
+
+ // An {@link IDreamOverlayClient} implementation that identifies itself when forwarding
+ // requests to the {@link DreamOverlayService}
+ private static class OverlayClient extends IDreamOverlayClient.Stub {
+ private final DreamOverlayService mService;
+ private boolean mShowComplications;
+ private ComponentName mDreamComponent;
+ IDreamOverlayCallback mDreamOverlayCallback;
+
+ OverlayClient(DreamOverlayService service) {
+ mService = service;
+ }
+
@Override
- public void startDream(WindowManager.LayoutParams layoutParams,
- IDreamOverlayCallback callback, String dreamComponent,
- boolean shouldShowComplications) {
- mDreamOverlayCallback = callback;
+ public void startDream(WindowManager.LayoutParams params, IDreamOverlayCallback callback,
+ String dreamComponent, boolean shouldShowComplications) throws RemoteException {
mDreamComponent = ComponentName.unflattenFromString(dreamComponent);
mShowComplications = shouldShowComplications;
- onStartDream(layoutParams);
+ mDreamOverlayCallback = callback;
+ mService.startDream(this, params);
}
@Override
public void wakeUp() {
- onWakeUp(() -> {
+ mService.wakeUp(this, () -> {
try {
mDreamOverlayCallback.onWakeUpComplete();
} catch (RemoteException e) {
- Log.e(TAG, "Could not notify dream of wakeUp:" + e);
+ Log.e(TAG, "Could not notify dream of wakeUp", e);
}
});
}
- };
- IDreamOverlayCallback mDreamOverlayCallback;
+ @Override
+ public void endDream() {
+ mService.endDream(this);
+ }
+
+ private void onExitRequested() {
+ try {
+ mDreamOverlayCallback.onExitRequested();
+ } catch (RemoteException e) {
+ Log.e(TAG, "Could not request exit:" + e);
+ }
+ }
+
+ private boolean shouldShowComplications() {
+ return mShowComplications;
+ }
+
+ private ComponentName getComponent() {
+ return mDreamComponent;
+ }
+ }
+
+ private void startDream(OverlayClient client, WindowManager.LayoutParams params) {
+ // Run on executor as this is a binder call from OverlayClient.
+ mExecutor.execute(() -> {
+ endDreamInternal(mCurrentClient);
+ mCurrentClient = client;
+ onStartDream(params);
+ });
+ }
+
+ private void endDream(OverlayClient client) {
+ // Run on executor as this is a binder call from OverlayClient.
+ mExecutor.execute(() -> endDreamInternal(client));
+ }
+
+ private void endDreamInternal(OverlayClient client) {
+ if (client == null || client != mCurrentClient) {
+ return;
+ }
+
+ onEndDream();
+ mCurrentClient = null;
+ }
+
+ private void wakeUp(OverlayClient client, Runnable callback) {
+ // Run on executor as this is a binder call from OverlayClient.
+ mExecutor.execute(() -> {
+ if (mCurrentClient != client) {
+ return;
+ }
+
+ onWakeUp(callback);
+ });
+ }
+
+ private IDreamOverlay mDreamOverlay = new IDreamOverlay.Stub() {
+ @Override
+ public void getClient(IDreamOverlayClientCallback callback) {
+ try {
+ callback.onDreamOverlayClient(
+ new OverlayClient(DreamOverlayService.this));
+ } catch (RemoteException e) {
+ Log.e(TAG, "could not send client to callback", e);
+ }
+ }
+ };
public DreamOverlayService() {
}
+ /**
+ * This constructor allows providing an executor to run callbacks on.
+ *
+ * @hide
+ */
+ public DreamOverlayService(@NonNull Executor executor) {
+ mExecutor = executor;
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ if (mExecutor == null) {
+ // If no executor was provided, use the main executor. onCreate is the earliest time
+ // getMainExecutor is available.
+ mExecutor = getMainExecutor();
+ }
+ }
+
@Nullable
@Override
public final IBinder onBind(@NonNull Intent intent) {
@@ -76,6 +179,10 @@ public abstract class DreamOverlayService extends Service {
/**
* This method is overridden by implementations to handle when the dream has started and the
* window is ready to be interacted with.
+ *
+ * This callback will be run on the {@link Executor} provided in the constructor if provided, or
+ * on the main executor if none was provided.
+ *
* @param layoutParams The {@link android.view.WindowManager.LayoutParams} associated with the
* dream window.
*/
@@ -83,31 +190,51 @@ public abstract class DreamOverlayService extends Service {
/**
* This method is overridden by implementations to handle when the dream has been requested
- * to wakeup. This allows any overlay animations to run.
+ * to wakeup. This allows any overlay animations to run. By default, the method will invoke
+ * the callback immediately.
+ *
+ * This callback will be run on the {@link Executor} provided in the constructor if provided, or
+ * on the main executor if none was provided.
*
* @param onCompleteCallback The callback to trigger to notify the dream service that the
* overlay has completed waking up.
* @hide
*/
public void onWakeUp(@NonNull Runnable onCompleteCallback) {
+ onCompleteCallback.run();
+ }
+
+ /**
+ * This method is overridden by implementations to handle when the dream has ended. There may
+ * be earlier signals leading up to this step, such as @{@link #onWakeUp(Runnable)}.
+ *
+ * This callback will be run on the {@link Executor} provided in the constructor if provided, or
+ * on the main executor if none was provided.
+ */
+ public void onEndDream() {
}
/**
* This method is invoked to request the dream exit.
*/
public final void requestExit() {
- try {
- mDreamOverlayCallback.onExitRequested();
- } catch (RemoteException e) {
- Log.e(TAG, "Could not request exit:" + e);
+ if (mCurrentClient == null) {
+ throw new IllegalStateException("requested exit with no dream present");
}
+
+ mCurrentClient.onExitRequested();
}
/**
* Returns whether to show complications on the dream overlay.
*/
public final boolean shouldShowComplications() {
- return mShowComplications;
+ if (mCurrentClient == null) {
+ throw new IllegalStateException(
+ "requested if should show complication when no dream active");
+ }
+
+ return mCurrentClient.shouldShowComplications();
}
/**
@@ -115,6 +242,10 @@ public abstract class DreamOverlayService extends Service {
* @hide
*/
public final ComponentName getDreamComponent() {
- return mDreamComponent;
+ if (mCurrentClient == null) {
+ throw new IllegalStateException("requested dream component when no dream active");
+ }
+
+ return mCurrentClient.getComponent();
}
}
diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java
index 8b9852a8f1b7963a94b957944a2f13a0ab114c0e..9107c5f4bbdbeba374521ebe6aea0c6ca4243bb0 100644
--- a/core/java/android/service/dreams/DreamService.java
+++ b/core/java/android/service/dreams/DreamService.java
@@ -68,8 +68,6 @@ import android.view.accessibility.AccessibilityEvent;
import com.android.internal.R;
import com.android.internal.util.DumpUtils;
-import com.android.internal.util.ObservableServiceConnection;
-import com.android.internal.util.PersistentServiceConnection;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -77,8 +75,6 @@ import org.xmlpull.v1.XmlPullParserException;
import java.io.FileDescriptor;
import java.io.IOException;
import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.concurrent.Executor;
import java.util.function.Consumer;
/**
@@ -245,68 +241,7 @@ public class DreamService extends Service implements Window.Callback {
private DreamServiceWrapper mDreamServiceWrapper;
private Runnable mDispatchAfterOnAttachedToWindow;
- private OverlayConnection mOverlayConnection;
-
- private static class OverlayConnection extends PersistentServiceConnection {
- // Overlay set during onBind.
- private IDreamOverlay mOverlay;
- // A list of pending requests to execute on the overlay.
- private final ArrayList> mConsumers = new ArrayList<>();
-
- private final Callback mCallback = new Callback() {
- @Override
- public void onConnected(ObservableServiceConnection connection,
- IDreamOverlay service) {
- mOverlay = service;
- for (Consumer consumer : mConsumers) {
- consumer.accept(mOverlay);
- }
- }
-
- @Override
- public void onDisconnected(ObservableServiceConnection connection,
- int reason) {
- mOverlay = null;
- }
- };
-
- OverlayConnection(Context context,
- Executor executor,
- Handler handler,
- ServiceTransformer transformer,
- Intent serviceIntent,
- int flags,
- int minConnectionDurationMs,
- int maxReconnectAttempts,
- int baseReconnectDelayMs) {
- super(context, executor, handler, transformer, serviceIntent, flags,
- minConnectionDurationMs,
- maxReconnectAttempts, baseReconnectDelayMs);
- }
-
- @Override
- public boolean bind() {
- addCallback(mCallback);
- return super.bind();
- }
-
- @Override
- public void unbind() {
- removeCallback(mCallback);
- super.unbind();
- }
-
- public void addConsumer(Consumer consumer) {
- mConsumers.add(consumer);
- if (mOverlay != null) {
- consumer.accept(mOverlay);
- }
- }
-
- public void removeConsumer(Consumer consumer) {
- mConsumers.remove(consumer);
- }
- }
+ private DreamOverlayConnectionHandler mOverlayConnection;
private final IDreamOverlayCallback mOverlayCallback = new IDreamOverlayCallback.Stub() {
@Override
@@ -1009,18 +944,18 @@ public class DreamService extends Service implements Window.Callback {
final Resources resources = getResources();
final Intent overlayIntent = new Intent().setComponent(overlayComponent);
- mOverlayConnection = new OverlayConnection(
+ mOverlayConnection = new DreamOverlayConnectionHandler(
/* context= */ this,
- getMainExecutor(),
- mHandler,
- IDreamOverlay.Stub::asInterface,
+ Looper.getMainLooper(),
overlayIntent,
- /* flags= */ Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE,
resources.getInteger(R.integer.config_minDreamOverlayDurationMs),
resources.getInteger(R.integer.config_dreamOverlayMaxReconnectAttempts),
resources.getInteger(R.integer.config_dreamOverlayReconnectTimeoutMs));
- mOverlayConnection.bind();
+ if (!mOverlayConnection.bind()) {
+ // Binding failed.
+ mOverlayConnection = null;
+ }
}
return mDreamServiceWrapper;
@@ -1031,6 +966,7 @@ public class DreamService extends Service implements Window.Callback {
// We must unbind from any overlay connection if we are unbound before finishing.
if (mOverlayConnection != null) {
mOverlayConnection.unbind();
+ mOverlayConnection = null;
}
return super.onUnbind(intent);
@@ -1044,6 +980,23 @@ public class DreamService extends Service implements Window.Callback {
*
*/
public final void finish() {
+ // If there is an active overlay connection, signal that the dream is ending before
+ // continuing. Note that the overlay cannot rely on the unbound state, since another dream
+ // might have bound to it in the meantime.
+ if (mOverlayConnection != null) {
+ mOverlayConnection.addConsumer(overlay -> {
+ try {
+ overlay.endDream();
+ mOverlayConnection.unbind();
+ mOverlayConnection = null;
+ finish();
+ } catch (RemoteException e) {
+ Log.e(mTag, "could not inform overlay of dream end:" + e);
+ }
+ });
+ return;
+ }
+
if (mDebug) Slog.v(mTag, "finish(): mFinished=" + mFinished);
Activity activity = mActivity;
@@ -1060,10 +1013,6 @@ public class DreamService extends Service implements Window.Callback {
}
mFinished = true;
- if (mOverlayConnection != null) {
- mOverlayConnection.unbind();
- }
-
if (mDreamToken == null) {
if (mDebug) Slog.v(mTag, "finish() called when not attached.");
stopSelf();
@@ -1266,9 +1215,10 @@ public class DreamService extends Service implements Window.Callback {
* Must run on mHandler.
*
* @param dreamToken Token for this dream service.
- * @param started A callback that will be invoked once onDreamingStarted has completed.
+ * @param started A callback that will be invoked once onDreamingStarted has completed.
*/
- private void attach(IBinder dreamToken, boolean canDoze, IRemoteCallback started) {
+ private void attach(IBinder dreamToken, boolean canDoze, boolean isPreviewMode,
+ IRemoteCallback started) {
if (mDreamToken != null) {
Slog.e(mTag, "attach() called when dream with token=" + mDreamToken
+ " already attached");
@@ -1316,12 +1266,18 @@ public class DreamService extends Service implements Window.Callback {
i.putExtra(DreamActivity.EXTRA_CALLBACK, new DreamActivityCallbacks(mDreamToken));
final ServiceInfo serviceInfo = fetchServiceInfo(this,
new ComponentName(this, getClass()));
- i.putExtra(DreamActivity.EXTRA_DREAM_TITLE, fetchDreamLabel(this, serviceInfo));
+ i.putExtra(DreamActivity.EXTRA_DREAM_TITLE,
+ fetchDreamLabel(this, serviceInfo, isPreviewMode));
try {
if (!ActivityTaskManager.getService().startDreamActivity(i)) {
detach();
}
+ } catch (SecurityException e) {
+ Log.w(mTag,
+ "Received SecurityException trying to start DreamActivity. "
+ + "Aborting dream start.");
+ detach();
} catch (RemoteException e) {
Log.w(mTag, "Could not connect to activity task manager to start dream activity");
e.rethrowFromSystemServer();
@@ -1359,7 +1315,7 @@ public class DreamService extends Service implements Window.Callback {
mWindow.getDecorView().addOnAttachStateChangeListener(
new View.OnAttachStateChangeListener() {
- private Consumer mDreamStartOverlayConsumer;
+ private Consumer mDreamStartOverlayConsumer;
@Override
public void onViewAttachedToWindow(View v) {
@@ -1369,6 +1325,10 @@ public class DreamService extends Service implements Window.Callback {
// Request the DreamOverlay be told to dream with dream's window
// parameters once the window has been attached.
mDreamStartOverlayConsumer = overlay -> {
+ if (mWindow == null) {
+ Slog.d(TAG, "mWindow is null");
+ return;
+ }
try {
overlay.startDream(mWindow.getAttributes(), mOverlayCallback,
mDreamComponent.flattenToString(),
@@ -1391,6 +1351,7 @@ public class DreamService extends Service implements Window.Callback {
mActivity = null;
finish();
}
+
if (mOverlayConnection != null && mDreamStartOverlayConsumer != null) {
mOverlayConnection.removeConsumer(mDreamStartOverlayConsumer);
}
@@ -1431,10 +1392,18 @@ public class DreamService extends Service implements Window.Callback {
@Nullable
private static CharSequence fetchDreamLabel(Context context,
- @Nullable ServiceInfo serviceInfo) {
- if (serviceInfo == null) return null;
+ @Nullable ServiceInfo serviceInfo,
+ boolean isPreviewMode) {
+ if (serviceInfo == null) {
+ return null;
+ }
final PackageManager pm = context.getPackageManager();
- return serviceInfo.loadLabel(pm);
+ final CharSequence dreamLabel = serviceInfo.loadLabel(pm);
+ if (!isPreviewMode || dreamLabel == null) {
+ return dreamLabel;
+ }
+ // When in preview mode, return a special label indicating the dream is in preview.
+ return context.getResources().getString(R.string.dream_preview_title, dreamLabel);
}
@Nullable
@@ -1490,8 +1459,9 @@ public class DreamService extends Service implements Window.Callback {
final class DreamServiceWrapper extends IDreamService.Stub {
@Override
public void attach(final IBinder dreamToken, final boolean canDoze,
- IRemoteCallback started) {
- mHandler.post(() -> DreamService.this.attach(dreamToken, canDoze, started));
+ final boolean isPreviewMode, IRemoteCallback started) {
+ mHandler.post(
+ () -> DreamService.this.attach(dreamToken, canDoze, isPreviewMode, started));
}
@Override
diff --git a/core/java/android/service/dreams/IDreamOverlay.aidl b/core/java/android/service/dreams/IDreamOverlay.aidl
index 7aeceb2ce5380990b22fb281c4fb446b203b8e5a..7ec75a50ed00affddde67321f58f8a202a941d96 100644
--- a/core/java/android/service/dreams/IDreamOverlay.aidl
+++ b/core/java/android/service/dreams/IDreamOverlay.aidl
@@ -16,8 +16,7 @@
package android.service.dreams;
-import android.service.dreams.IDreamOverlayCallback;
-import android.view.WindowManager.LayoutParams;
+import android.service.dreams.IDreamOverlayClientCallback;
/**
* {@link IDreamOverlay} provides a way for a component to annotate a dream with additional view
@@ -28,17 +27,7 @@ import android.view.WindowManager.LayoutParams;
*/
interface IDreamOverlay {
/**
- * @param params The {@link LayoutParams} for the associated DreamWindow, including the window
- token of the Dream Activity.
- * @param callback The {@link IDreamOverlayCallback} for requesting actions such as exiting the
- * dream.
- * @param dreamComponent The component name of the dream service requesting overlay.
- * @param shouldShowComplications Whether the dream overlay should show complications, e.g. clock
- * and weather.
+ * Retrieves a client the caller can use to interact with the dream overlay.
*/
- void startDream(in LayoutParams params, in IDreamOverlayCallback callback,
- in String dreamComponent, in boolean shouldShowComplications);
-
- /** Called when the dream is waking, to do any exit animations */
- void wakeUp();
+ void getClient(in IDreamOverlayClientCallback callback);
}
diff --git a/core/java/android/service/dreams/IDreamOverlayClient.aidl b/core/java/android/service/dreams/IDreamOverlayClient.aidl
new file mode 100644
index 0000000000000000000000000000000000000000..78b7280ae652ec11e745616442392678c7602ffb
--- /dev/null
+++ b/core/java/android/service/dreams/IDreamOverlayClient.aidl
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2023, The Android Open Source 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.
+ */
+
+package android.service.dreams;
+
+import android.service.dreams.IDreamOverlayCallback;
+import android.view.WindowManager.LayoutParams;
+
+/**
+* {@link IDreamOverlayClient} allows {@link DreamService} instances to act upon the dream overlay.
+*
+* @hide
+*/
+interface IDreamOverlayClient {
+ /**
+ * @param params The {@link LayoutParams} for the associated DreamWindow, including the window
+ token of the Dream Activity.
+ * @param callback The {@link IDreamOverlayCallback} for requesting actions such as exiting the
+ * dream.
+ * @param dreamComponent The component name of the dream service requesting overlay.
+ * @param shouldShowComplications Whether the dream overlay should show complications, e.g. clock
+ * and weather.
+ */
+ void startDream(in LayoutParams params, in IDreamOverlayCallback callback,
+ in String dreamComponent, in boolean shouldShowComplications);
+
+ /** Called when the dream is waking, to do any exit animations */
+ void wakeUp();
+
+ /** Called when the dream has ended. */
+ void endDream();
+}
diff --git a/core/java/android/service/dreams/IDreamOverlayClientCallback.aidl b/core/java/android/service/dreams/IDreamOverlayClientCallback.aidl
new file mode 100644
index 0000000000000000000000000000000000000000..244d999c623bd605127d550f7196dace3ec99020
--- /dev/null
+++ b/core/java/android/service/dreams/IDreamOverlayClientCallback.aidl
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2023, The Android Open Source 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.
+ */
+
+package android.service.dreams;
+
+import android.service.dreams.IDreamOverlayClient;
+
+/**
+* {@link IDreamOverlayClientCallback} allows receiving a requested {@link IDreamOverlayClient}.
+* @hide
+*/
+interface IDreamOverlayClientCallback {
+ /**
+ * Called with a unique {@link IDreamOverlayClient}.
+ */
+ void onDreamOverlayClient(in IDreamOverlayClient client);
+}
diff --git a/core/java/android/service/dreams/IDreamService.aidl b/core/java/android/service/dreams/IDreamService.aidl
index ce04354989179e46cc49fc29ea4f7b071bc57ebd..8b5d8754647c2a56fdfe43e87c8c6a3d94d8d6eb 100644
--- a/core/java/android/service/dreams/IDreamService.aidl
+++ b/core/java/android/service/dreams/IDreamService.aidl
@@ -22,7 +22,7 @@ import android.os.IRemoteCallback;
* @hide
*/
oneway interface IDreamService {
- void attach(IBinder windowToken, boolean canDoze, IRemoteCallback started);
+ void attach(IBinder windowToken, boolean canDoze, boolean isPreviewMode, IRemoteCallback started);
void detach();
void wakeUp();
}
diff --git a/core/java/android/service/notification/Adjustment.java b/core/java/android/service/notification/Adjustment.java
index 4b25c8832068f6bd78d1f0386d556e7a608b8c11..182a49758892af3b6277addf2bc0a1e56720bd4f 100644
--- a/core/java/android/service/notification/Adjustment.java
+++ b/core/java/android/service/notification/Adjustment.java
@@ -52,7 +52,7 @@ public final class Adjustment implements Parcelable {
/** @hide */
@StringDef (prefix = { "KEY_" }, value = {
KEY_CONTEXTUAL_ACTIONS, KEY_GROUP_KEY, KEY_IMPORTANCE, KEY_PEOPLE, KEY_SNOOZE_CRITERIA,
- KEY_TEXT_REPLIES, KEY_USER_SENTIMENT
+ KEY_TEXT_REPLIES, KEY_USER_SENTIMENT, KEY_IMPORTANCE_PROPOSAL
})
@Retention(RetentionPolicy.SOURCE)
public @interface Keys {}
@@ -121,6 +121,19 @@ public final class Adjustment implements Parcelable {
*/
public static final String KEY_IMPORTANCE = "key_importance";
+ /**
+ * Weaker than {@link #KEY_IMPORTANCE}, this adjustment suggests an importance rather than
+ * mandates an importance change.
+ *
+ * A notification listener can interpet this suggestion to show the user a prompt to change
+ * notification importance for the notification (or type, or app) moving forward.
+ *
+ * Data type: int, one of importance values e.g.
+ * {@link android.app.NotificationManager#IMPORTANCE_MIN}.
+ * @hide
+ */
+ public static final String KEY_IMPORTANCE_PROPOSAL = "key_importance_proposal";
+
/**
* Data type: float, a ranking score from 0 (lowest) to 1 (highest).
* Used to rank notifications inside that fall under the same classification (i.e. alerting,
diff --git a/core/java/android/service/notification/NotificationListenerService.java b/core/java/android/service/notification/NotificationListenerService.java
index ad2e9d5109987c46e0eca8011e7e700db4df9d24..dc4cb9f0983501c7be62aa38c3747b006bccd028 100644
--- a/core/java/android/service/notification/NotificationListenerService.java
+++ b/core/java/android/service/notification/NotificationListenerService.java
@@ -1711,6 +1711,8 @@ public abstract class NotificationListenerService extends Service {
private ShortcutInfo mShortcutInfo;
private @RankingAdjustment int mRankingAdjustment;
private boolean mIsBubble;
+ // Notification assistant importance suggestion
+ private int mProposedImportance;
private static final int PARCEL_VERSION = 2;
@@ -1748,6 +1750,7 @@ public abstract class NotificationListenerService extends Service {
out.writeParcelable(mShortcutInfo, flags);
out.writeInt(mRankingAdjustment);
out.writeBoolean(mIsBubble);
+ out.writeInt(mProposedImportance);
}
/** @hide */
@@ -1786,6 +1789,7 @@ public abstract class NotificationListenerService extends Service {
mShortcutInfo = in.readParcelable(cl, android.content.pm.ShortcutInfo.class);
mRankingAdjustment = in.readInt();
mIsBubble = in.readBoolean();
+ mProposedImportance = in.readInt();
}
@@ -1877,6 +1881,22 @@ public abstract class NotificationListenerService extends Service {
return mRankingScore;
}
+ /**
+ * Returns the proposed importance provided by the {@link NotificationAssistantService}.
+ *
+ * This can be used to suggest that the user change the importance of this type of
+ * notification moving forward. A value of
+ * {@link NotificationManager#IMPORTANCE_UNSPECIFIED} means that the NAS has not recommended
+ * a change to the importance, and no UI should be shown to the user. See
+ * {@link Adjustment#KEY_IMPORTANCE_PROPOSAL}.
+ *
+ * @return the importance of the notification
+ * @hide
+ */
+ public @NotificationManager.Importance int getProposedImportance() {
+ return mProposedImportance;
+ }
+
/**
* If the system has overridden the group key, then this will be non-null, and this
* key should be used to bundle notifications.
@@ -2041,7 +2061,7 @@ public abstract class NotificationListenerService extends Service {
boolean noisy, ArrayList smartActions,
ArrayList smartReplies, boolean canBubble,
boolean isTextChanged, boolean isConversation, ShortcutInfo shortcutInfo,
- int rankingAdjustment, boolean isBubble) {
+ int rankingAdjustment, boolean isBubble, int proposedImportance) {
mKey = key;
mRank = rank;
mIsAmbient = importance < NotificationManager.IMPORTANCE_LOW;
@@ -2067,6 +2087,7 @@ public abstract class NotificationListenerService extends Service {
mShortcutInfo = shortcutInfo;
mRankingAdjustment = rankingAdjustment;
mIsBubble = isBubble;
+ mProposedImportance = proposedImportance;
}
/**
@@ -2107,7 +2128,8 @@ public abstract class NotificationListenerService extends Service {
other.mIsConversation,
other.mShortcutInfo,
other.mRankingAdjustment,
- other.mIsBubble);
+ other.mIsBubble,
+ other.mProposedImportance);
}
/**
@@ -2166,7 +2188,8 @@ public abstract class NotificationListenerService extends Service {
&& Objects.equals((mShortcutInfo == null ? 0 : mShortcutInfo.getId()),
(other.mShortcutInfo == null ? 0 : other.mShortcutInfo.getId()))
&& Objects.equals(mRankingAdjustment, other.mRankingAdjustment)
- && Objects.equals(mIsBubble, other.mIsBubble);
+ && Objects.equals(mIsBubble, other.mIsBubble)
+ && Objects.equals(mProposedImportance, other.mProposedImportance);
}
}
diff --git a/core/java/android/service/notification/ZenModeConfig.java b/core/java/android/service/notification/ZenModeConfig.java
index e285b1c771221508868927814e295ed06ba7abac..29b0d444e514a19884fcf14da8b95ad88b90adb7 100644
--- a/core/java/android/service/notification/ZenModeConfig.java
+++ b/core/java/android/service/notification/ZenModeConfig.java
@@ -953,7 +953,7 @@ public class ZenModeConfig implements Parcelable {
private static Uri safeUri(TypedXmlPullParser parser, String att) {
final String val = parser.getAttributeValue(null, att);
- if (TextUtils.isEmpty(val)) return null;
+ if (val == null) return null;
return Uri.parse(val);
}
@@ -1008,9 +1008,8 @@ public class ZenModeConfig implements Parcelable {
.allowAlarms(allowAlarms)
.allowMedia(allowMedia)
.allowSystem(allowSystem)
- .allowConversations(allowConversations
- ? ZenModeConfig.getZenPolicySenders(allowConversationsFrom)
- : ZenPolicy.PEOPLE_TYPE_NONE);
+ .allowConversations(allowConversations ? allowConversationsFrom
+ : ZenPolicy.CONVERSATION_SENDERS_NONE);
if (suppressedVisualEffects == 0) {
builder.showAllVisualEffects();
} else {
diff --git a/core/java/android/service/quickaccesswallet/WalletCard.java b/core/java/android/service/quickaccesswallet/WalletCard.java
index b09d2e9e7f139b85628f7da435402fff01b7a31b..e234755b2b13df3a5736301511a28f3fd4a2b625 100644
--- a/core/java/android/service/quickaccesswallet/WalletCard.java
+++ b/core/java/android/service/quickaccesswallet/WalletCard.java
@@ -16,6 +16,7 @@
package android.service.quickaccesswallet;
+import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.PendingIntent;
@@ -24,28 +25,73 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
+import com.android.internal.util.Preconditions;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+
/**
* A {@link WalletCard} can represent anything that a user might carry in their wallet -- a credit
* card, library card, transit pass, etc. Cards are identified by a String identifier and contain a
- * card image, card image content description, and a {@link PendingIntent} to be used if the user
- * clicks on the card. Cards may be displayed with an icon and label, though these are optional.
+ * card type, card image, card image content description, and a {@link PendingIntent} to be used if
+ * the user clicks on the card. Cards may be displayed with an icon and label, though these are
+ * optional. Non-payment cards will also have a second image that will be displayed when the card is
+ * tapped.
*/
+
public final class WalletCard implements Parcelable {
+ /**
+ * Unknown cards refer to cards whose types are unspecified.
+ * @hide
+ */
+ public static final int CARD_TYPE_UNKNOWN = 0;
+
+ /**
+ * Payment cards refer to credit cards, debit cards or any other cards in the wallet used to
+ * make cash-equivalent payments.
+ * @hide
+ */
+ public static final int CARD_TYPE_PAYMENT = 1;
+
+ /**
+ * Non-payment cards refer to any cards that are not used for cash-equivalent payment, including
+ * event tickets, flights, offers, loyalty cards, gift cards and transit tickets.
+ * @hide
+ */
+ public static final int CARD_TYPE_NON_PAYMENT = 2;
+
private final String mCardId;
+ private final int mCardType;
private final Icon mCardImage;
private final CharSequence mContentDescription;
private final PendingIntent mPendingIntent;
private final Icon mCardIcon;
private final CharSequence mCardLabel;
+ private final Icon mNonPaymentCardSecondaryImage;
private WalletCard(Builder builder) {
this.mCardId = builder.mCardId;
+ this.mCardType = builder.mCardType;
this.mCardImage = builder.mCardImage;
this.mContentDescription = builder.mContentDescription;
this.mPendingIntent = builder.mPendingIntent;
this.mCardIcon = builder.mCardIcon;
this.mCardLabel = builder.mCardLabel;
+ this.mNonPaymentCardSecondaryImage = builder.mNonPaymentCardSecondaryImage;
+ }
+
+ /**
+ * @hide
+ */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef(prefix = {"CARD_TYPE_"}, value = {
+ CARD_TYPE_UNKNOWN,
+ CARD_TYPE_PAYMENT,
+ CARD_TYPE_NON_PAYMENT
+ })
+ public @interface CardType {
}
@Override
@@ -56,29 +102,44 @@ public final class WalletCard implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeString(mCardId);
+ dest.writeInt(mCardType);
mCardImage.writeToParcel(dest, flags);
TextUtils.writeToParcel(mContentDescription, dest, flags);
PendingIntent.writePendingIntentOrNullToParcel(mPendingIntent, dest);
- if (mCardIcon == null) {
+ writeIconIfNonNull(mCardIcon, dest, flags);
+ TextUtils.writeToParcel(mCardLabel, dest, flags);
+ writeIconIfNonNull(mNonPaymentCardSecondaryImage, dest, flags);
+
+ }
+
+ /** Utility function called by writeToParcel
+ */
+ private void writeIconIfNonNull(Icon icon, Parcel dest, int flags) {
+ if (icon == null) {
dest.writeByte((byte) 0);
} else {
dest.writeByte((byte) 1);
- mCardIcon.writeToParcel(dest, flags);
+ icon.writeToParcel(dest, flags);
}
- TextUtils.writeToParcel(mCardLabel, dest, flags);
}
private static WalletCard readFromParcel(Parcel source) {
String cardId = source.readString();
+ int cardType = source.readInt();
Icon cardImage = Icon.CREATOR.createFromParcel(source);
CharSequence contentDesc = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(source);
PendingIntent pendingIntent = PendingIntent.readPendingIntentOrNullFromParcel(source);
Icon cardIcon = source.readByte() == 0 ? null : Icon.CREATOR.createFromParcel(source);
CharSequence cardLabel = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(source);
- return new Builder(cardId, cardImage, contentDesc, pendingIntent)
+ Icon nonPaymentCardSecondaryImage = source.readByte() == 0 ? null :
+ Icon.CREATOR.createFromParcel(source);
+ Builder builder = new Builder(cardId, cardType, cardImage, contentDesc, pendingIntent)
.setCardIcon(cardIcon)
- .setCardLabel(cardLabel)
- .build();
+ .setCardLabel(cardLabel);
+
+ return cardType == CARD_TYPE_NON_PAYMENT
+ ? builder.setNonPaymentCardSecondaryImage(nonPaymentCardSecondaryImage).build() :
+ builder.build();
}
@NonNull
@@ -103,6 +164,16 @@ public final class WalletCard implements Parcelable {
return mCardId;
}
+ /**
+ * Returns the card type.
+ * @hide
+ */
+ @NonNull
+ @CardType
+ public int getCardType() {
+ return mCardType;
+ }
+
/**
* The visual representation of the card. If the card image Icon is a bitmap, it should have a
* width of {@link GetWalletCardsRequest#getCardWidthPx()} and a height of {@link
@@ -158,23 +229,37 @@ public final class WalletCard implements Parcelable {
}
/**
- * Builder for {@link WalletCard} objects. You must to provide cardId, cardImage,
+ * Visual representation of the card when it is tapped. May include additional information
+ * unique to the card, such as a barcode or number. Only valid for CARD_TYPE_NON_PAYMENT.
+ * @hide
+ */
+ @Nullable
+ public Icon getNonPaymentCardSecondaryImage() {
+ return mNonPaymentCardSecondaryImage;
+ }
+
+ /**
+ * Builder for {@link WalletCard} objects. You must provide cardId, cardImage,
* contentDescription, and pendingIntent. If the card is opaque and should be shown with
* elevation, set hasShadow to true. cardIcon and cardLabel are optional.
*/
public static final class Builder {
private String mCardId;
+ private int mCardType;
private Icon mCardImage;
private CharSequence mContentDescription;
private PendingIntent mPendingIntent;
private Icon mCardIcon;
private CharSequence mCardLabel;
+ private Icon mNonPaymentCardSecondaryImage;
/**
* @param cardId The card id must be non-null and unique within the list of
* cards returned. Note:
* this card ID should not contain PII (Personally
* Identifiable Information, such as username or email address).
+ * @param cardType Integer representing the card type. The card type must be
+ * non-null.
* @param cardImage The visual representation of the card. If the card image Icon
* is a bitmap, it should have a width of {@link
* GetWalletCardsRequest#getCardWidthPx()} and a height of {@link
@@ -193,17 +278,32 @@ public final class WalletCard implements Parcelable {
* request device unlock before sending the pending intent. It is
* recommended that the pending intent be immutable (use {@link
* PendingIntent#FLAG_IMMUTABLE}).
+ * @hide
*/
public Builder(@NonNull String cardId,
+ @NonNull @CardType int cardType,
@NonNull Icon cardImage,
@NonNull CharSequence contentDescription,
- @NonNull PendingIntent pendingIntent) {
+ @NonNull PendingIntent pendingIntent
+ ) {
mCardId = cardId;
+ mCardType = cardType;
mCardImage = cardImage;
mContentDescription = contentDescription;
mPendingIntent = pendingIntent;
}
+ /**
+ * Called when a card type is not provided, in which case it defaults to CARD_TYPE_UNKNOWN.
+ */
+ public Builder(@NonNull String cardId,
+ @NonNull Icon cardImage,
+ @NonNull CharSequence contentDescription,
+ @NonNull PendingIntent pendingIntent) {
+ this(cardId, WalletCard.CARD_TYPE_UNKNOWN, cardImage, contentDescription,
+ pendingIntent);
+ }
+
/**
* An icon may be shown alongside the card image to convey information about how the card
* can be used, or if some other action must be taken before using the card. For example, an
@@ -235,6 +335,20 @@ public final class WalletCard implements Parcelable {
return this;
}
+ /**
+ * Visual representation of the card when it is tapped. May include additional information
+ * unique to the card, such as a barcode or number. Only valid for CARD_TYPE_NON_PAYMENT.
+ * @hide
+ */
+ @NonNull
+ public Builder
+ setNonPaymentCardSecondaryImage(@Nullable Icon nonPaymentCardSecondaryImage) {
+ Preconditions.checkState(mCardType == CARD_TYPE_NON_PAYMENT,
+ "This field can only be set on non-payment cards");
+ mNonPaymentCardSecondaryImage = nonPaymentCardSecondaryImage;
+ return this;
+ }
+
/**
* Builds a new {@link WalletCard} instance.
*
diff --git a/core/java/android/service/quicksettings/TileService.java b/core/java/android/service/quicksettings/TileService.java
index 506b3b81eb9ad0524c6d0b4d9650dd9932e94824..81c5796374af3d810c47cb2890403300aae3a7ff 100644
--- a/core/java/android/service/quicksettings/TileService.java
+++ b/core/java/android/service/quicksettings/TileService.java
@@ -506,7 +506,7 @@ public class TileService extends Service {
* the calling package or if the calling user cannot act on behalf of the user from the
* {@code context}.
*
{@link IllegalArgumentException} if the user of the {@code context} is not the
- * current user.
+ * current user. Only thrown for apps targeting {@link Build.VERSION_CODES#TIRAMISU}
*
*/
public static final void requestListeningState(Context context, ComponentName component) {
diff --git a/core/java/android/service/smartspace/SmartspaceService.java b/core/java/android/service/smartspace/SmartspaceService.java
index 3a148dffe6d6996c5f7f631d6ea238483452bd52..b13a069116af088d3a790a1af43123b6dd4c5050 100644
--- a/core/java/android/service/smartspace/SmartspaceService.java
+++ b/core/java/android/service/smartspace/SmartspaceService.java
@@ -302,7 +302,7 @@ public abstract class SmartspaceService extends Service {
Slog.e(TAG, "Callback is null, likely the binder has died.");
return false;
}
- return mCallback.equals(callback);
+ return mCallback.asBinder().equals(callback.asBinder());
}
@Override
diff --git a/core/java/android/service/wallpaper/IWallpaperEngine.aidl b/core/java/android/service/wallpaper/IWallpaperEngine.aidl
index 1a00acf475e3db905a9af91ef03c39c7f40ecea0..15a8502a2e7ff5999dcd4372b7dc57645fa54165 100644
--- a/core/java/android/service/wallpaper/IWallpaperEngine.aidl
+++ b/core/java/android/service/wallpaper/IWallpaperEngine.aidl
@@ -32,6 +32,8 @@ interface IWallpaperEngine {
oneway void setDisplayPadding(in Rect padding);
@UnsupportedAppUsage
oneway void setVisibility(boolean visible);
+ oneway void onScreenTurningOn();
+ oneway void onScreenTurnedOn();
oneway void setInAmbientMode(boolean inAmbientDisplay, long animationDuration);
@UnsupportedAppUsage
oneway void dispatchPointer(in MotionEvent event);
diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java
index 2d1a41e92a99a8d0ebf04badd02d41f5b6459aac..8f1fc1b9348e7fdbab4b4bce77adf8f0336762e2 100644
--- a/core/java/android/service/wallpaper/WallpaperService.java
+++ b/core/java/android/service/wallpaper/WallpaperService.java
@@ -61,6 +61,7 @@ import android.hardware.display.DisplayManager.DisplayListener;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
+import android.os.HandlerThread;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
@@ -96,6 +97,7 @@ import android.view.WindowManager;
import android.view.WindowManagerGlobal;
import android.window.ClientWindowFrames;
+import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.os.HandlerCaller;
import com.android.internal.view.BaseIWindow;
@@ -104,9 +106,10 @@ import com.android.internal.view.BaseSurfaceHolder;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.ArrayList;
-import java.util.Arrays;
+import java.util.HashSet;
import java.util.List;
import java.util.Objects;
+import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Supplier;
@@ -165,12 +168,15 @@ public abstract class WallpaperService extends Service {
private static final int MSG_ZOOM = 10100;
private static final int MSG_RESIZE_PREVIEW = 10110;
private static final int MSG_REPORT_SHOWN = 10150;
+ private static final int MSG_UPDATE_SCREEN_TURNING_ON = 10170;
private static final int MSG_UPDATE_DIMMING = 10200;
- private static final List PROHIBITED_STEPS = Arrays.asList(0f, Float.POSITIVE_INFINITY,
- Float.NEGATIVE_INFINITY);
+ /** limit calls to {@link Engine#onComputeColors} to at most once per second */
private static final int NOTIFY_COLORS_RATE_LIMIT_MS = 1000;
+ /** limit calls to {@link Engine#processLocalColorsInternal} to at most once per 2 seconds */
+ private static final int PROCESS_LOCAL_COLORS_INTERVAL_MS = 2000;
+
private static final boolean ENABLE_WALLPAPER_DIMMING =
SystemProperties.getBoolean("persist.debug.enable_wallpaper_dimming", true);
@@ -179,6 +185,9 @@ public abstract class WallpaperService extends Service {
private final ArrayList mActiveEngines
= new ArrayList();
+ private Handler mBackgroundHandler;
+ private HandlerThread mBackgroundThread;
+
static final class WallpaperCommand {
String action;
int x;
@@ -197,14 +206,6 @@ public abstract class WallpaperService extends Service {
*/
public class Engine {
IWallpaperEngineWrapper mIWallpaperEngine;
- final ArraySet mLocalColorAreas = new ArraySet<>(4);
- final ArraySet mLocalColorsToAdd = new ArraySet<>(4);
-
- // 2D matrix [x][y] to represent a page of a portion of a window
- EngineWindowPage[] mWindowPages = new EngineWindowPage[0];
- Bitmap mLastScreenshot;
- int mLastWindowPage = -1;
- private boolean mResetWindowPages;
// Copies from mIWallpaperEngine.
HandlerCaller mCaller;
@@ -213,6 +214,16 @@ public abstract class WallpaperService extends Service {
boolean mInitializing = true;
boolean mVisible;
+ /**
+ * Whether the screen is turning on.
+ * After the display is powered on, brightness is initially off. It is turned on only after
+ * all windows have been drawn, and sysui notifies that it's ready (See
+ * {@link com.android.internal.policy.IKeyguardDrawnCallback}).
+ * As some wallpapers use visibility as a signal to start animations, this makes sure
+ * {@link Engine#onVisibilityChanged} is invoked only when the display is both on and
+ * visible (with brightness on).
+ */
+ private boolean mIsScreenTurningOn;
boolean mReportedVisible;
boolean mDestroyed;
// Set to true after receiving WallpaperManager#COMMAND_FREEZE. It's reset back to false
@@ -266,21 +277,44 @@ public abstract class WallpaperService extends Service {
final Object mLock = new Object();
boolean mOffsetMessageEnqueued;
+
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
- float mPendingXOffset;
- float mPendingYOffset;
- float mPendingXOffsetStep;
- float mPendingYOffsetStep;
+ @GuardedBy("mLock")
+ private float mPendingXOffset;
+ @GuardedBy("mLock")
+ private float mPendingYOffset;
+ @GuardedBy("mLock")
+ private float mPendingXOffsetStep;
+ @GuardedBy("mLock")
+ private float mPendingYOffsetStep;
+
+ /**
+ * local color extraction related fields. When a user calls `addLocalColorAreas`
+ */
+ @GuardedBy("mLock")
+ private final ArraySet mLocalColorAreas = new ArraySet<>(4);
+
+ @GuardedBy("mLock")
+ private final ArraySet mLocalColorsToAdd = new ArraySet<>(4);
+ private long mLastProcessLocalColorsTimestamp;
+ private AtomicBoolean mProcessLocalColorsPending = new AtomicBoolean(false);
+ private int mPixelCopyCount = 0;
+ // 2D matrix [x][y] to represent a page of a portion of a window
+ @GuardedBy("mLock")
+ private EngineWindowPage[] mWindowPages = new EngineWindowPage[0];
+ private Bitmap mLastScreenshot;
+ private boolean mResetWindowPages;
+
boolean mPendingSync;
MotionEvent mPendingMove;
boolean mIsInAmbientMode;
- // Needed for throttling onComputeColors.
+ // used to throttle onComputeColors
private long mLastColorInvalidation;
private final Runnable mNotifyColorsChanged = this::notifyColorsChanged;
+
private final Supplier mClockFunction;
private final Handler mHandler;
-
private Display mDisplay;
private Context mDisplayContext;
private int mDisplayState;
@@ -820,7 +854,7 @@ public abstract class WallpaperService extends Service {
+ "was not established.");
}
mResetWindowPages = true;
- processLocalColors(mPendingXOffset, mPendingXOffsetStep);
+ processLocalColors();
} catch (RemoteException e) {
Log.w(TAG, "Can't notify system because wallpaper connection was lost.", e);
}
@@ -965,6 +999,7 @@ public abstract class WallpaperService extends Service {
out.print(" mDestroyed="); out.println(mDestroyed);
out.print(prefix); out.print("mVisible="); out.print(mVisible);
out.print(" mReportedVisible="); out.println(mReportedVisible);
+ out.print(" mIsScreenTurningOn="); out.println(mIsScreenTurningOn);
out.print(prefix); out.print("mDisplay="); out.println(mDisplay);
out.print(prefix); out.print("mCreated="); out.print(mCreated);
out.print(" mSurfaceCreated="); out.print(mSurfaceCreated);
@@ -1356,10 +1391,9 @@ public abstract class WallpaperService extends Service {
mIsCreating = false;
mSurfaceCreated = true;
if (redrawNeeded) {
- resetWindowPages();
mSession.finishDrawing(mWindow, null /* postDrawTransaction */,
Integer.MAX_VALUE);
- processLocalColors(mPendingXOffset, mPendingXOffsetStep);
+ processLocalColors();
}
reposition();
reportEngineShown(shouldWaitForEngineShown());
@@ -1425,7 +1459,7 @@ public abstract class WallpaperService extends Service {
com.android.internal.R.dimen.config_wallpaperDimAmount);
mWallpaperDimAmount = mDefaultDimAmount;
mPreviousWallpaperDimAmount = mWallpaperDimAmount;
- mDisplayState = mDisplay.getState();
+ mDisplayState = mDisplay.getCommittedState();
mDisplayInstallOrientation = mDisplay.getInstallOrientation();
if (DEBUG) Log.v(TAG, "onCreate(): " + this);
@@ -1500,11 +1534,18 @@ public abstract class WallpaperService extends Service {
}
}
+ void onScreenTurningOnChanged(boolean isScreenTurningOn) {
+ if (!mDestroyed) {
+ mIsScreenTurningOn = isScreenTurningOn;
+ reportVisibility();
+ }
+ }
+
void doVisibilityChanged(boolean visible) {
if (!mDestroyed) {
mVisible = visible;
reportVisibility();
- if (mReportedVisible) processLocalColors(mPendingXOffset, mPendingXOffsetStep);
+ if (mReportedVisible) processLocalColors();
} else {
AnimationHandler.requestAnimatorsEnabled(visible, this);
}
@@ -1516,8 +1557,10 @@ public abstract class WallpaperService extends Service {
return;
}
if (!mDestroyed) {
- mDisplayState = mDisplay == null ? Display.STATE_UNKNOWN : mDisplay.getState();
- boolean visible = mVisible && mDisplayState != Display.STATE_OFF;
+ mDisplayState =
+ mDisplay == null ? Display.STATE_UNKNOWN : mDisplay.getCommittedState();
+ boolean displayVisible = Display.isOnState(mDisplayState) && !mIsScreenTurningOn;
+ boolean visible = mVisible && displayVisible;
if (mReportedVisible != visible) {
mReportedVisible = visible;
if (DEBUG) Log.v(TAG, "onVisibilityChanged(" + visible
@@ -1588,48 +1631,83 @@ public abstract class WallpaperService extends Service {
}
// setup local color extraction data
- processLocalColors(xOffset, xOffsetStep);
+ processLocalColors();
}
- private void processLocalColors(float xOffset, float xOffsetStep) {
- // implemented by the wallpaper
- if (supportsLocalColorExtraction()) return;
- if (DEBUG) {
- Log.d(TAG, "processLocalColors " + xOffset + " of step "
- + xOffsetStep);
+ /**
+ * Thread-safe util to call {@link #processLocalColorsInternal} with a minimum interval of
+ * {@link #PROCESS_LOCAL_COLORS_INTERVAL_MS} between two calls.
+ */
+ private void processLocalColors() {
+ if (mProcessLocalColorsPending.compareAndSet(false, true)) {
+ final long now = mClockFunction.get();
+ final long timeSinceLastColorProcess = now - mLastProcessLocalColorsTimestamp;
+ final long timeToWait = Math.max(0,
+ PROCESS_LOCAL_COLORS_INTERVAL_MS - timeSinceLastColorProcess);
+
+ mHandler.postDelayed(() -> {
+ mLastProcessLocalColorsTimestamp = now + timeToWait;
+ mProcessLocalColorsPending.set(false);
+ processLocalColorsInternal();
+ }, timeToWait);
}
- //below is the default implementation
- if (xOffset % xOffsetStep > MIN_PAGE_ALLOWED_MARGIN
- || !mSurfaceHolder.getSurface().isValid()) return;
- int xCurrentPage;
+ }
+
+ /**
+ * Default implementation of the local color extraction.
+ * This will take a screenshot of the whole wallpaper on the main thread.
+ * Then, in a background thread, for each launcher page, for each area that needs color
+ * extraction in this page, creates a sub-bitmap and call {@link WallpaperColors#fromBitmap}
+ * to extract the colors. Every time a launcher page has been processed, call
+ * {@link #notifyLocalColorsChanged} with the color and areas of this page.
+ */
+ private void processLocalColorsInternal() {
+ if (supportsLocalColorExtraction()) return;
+ float xOffset;
+ float xOffsetStep;
+ float wallpaperDimAmount;
+ int xPage;
int xPages;
- if (!validStep(xOffsetStep)) {
+ Set areas;
+ EngineWindowPage current;
+
+ synchronized (mLock) {
+ xOffset = mPendingXOffset;
+ xOffsetStep = mPendingXOffsetStep;
+ wallpaperDimAmount = mWallpaperDimAmount;
+
if (DEBUG) {
- Log.w(TAG, "invalid offset step " + xOffsetStep);
+ Log.d(TAG, "processLocalColors " + xOffset + " of step "
+ + xOffsetStep);
}
- xOffset = 0;
- xOffsetStep = 1;
- xCurrentPage = 0;
- xPages = 1;
- } else {
- xPages = Math.round(1 / xOffsetStep) + 1;
- xOffsetStep = (float) 1 / (float) xPages;
- float shrink = (float) (xPages - 1) / (float) xPages;
- xOffset *= shrink;
- xCurrentPage = Math.round(xOffset / xOffsetStep);
- }
- if (DEBUG) {
- Log.d(TAG, "xPages " + xPages + " xPage " + xCurrentPage);
- Log.d(TAG, "xOffsetStep " + xOffsetStep + " xOffset " + xOffset);
- }
+ if (xOffset % xOffsetStep > MIN_PAGE_ALLOWED_MARGIN
+ || !mSurfaceHolder.getSurface().isValid()) return;
+ int xCurrentPage;
+ if (!validStep(xOffsetStep)) {
+ if (DEBUG) {
+ Log.w(TAG, "invalid offset step " + xOffsetStep);
+ }
+ xOffset = 0;
+ xOffsetStep = 1;
+ xCurrentPage = 0;
+ xPages = 1;
+ } else {
+ xPages = Math.round(1 / xOffsetStep) + 1;
+ xOffsetStep = (float) 1 / (float) xPages;
+ float shrink = (float) (xPages - 1) / (float) xPages;
+ xOffset *= shrink;
+ xCurrentPage = Math.round(xOffset / xOffsetStep);
+ }
+ if (DEBUG) {
+ Log.d(TAG, "xPages " + xPages + " xPage " + xCurrentPage);
+ Log.d(TAG, "xOffsetStep " + xOffsetStep + " xOffset " + xOffset);
+ }
+
+ float finalXOffsetStep = xOffsetStep;
+ float finalXOffset = xOffset;
- float finalXOffsetStep = xOffsetStep;
- float finalXOffset = xOffset;
- mHandler.post(() -> {
- Trace.beginSection("WallpaperService#processLocalColors");
resetWindowPages();
- int xPage = xCurrentPage;
- EngineWindowPage current;
+ xPage = xCurrentPage;
if (mWindowPages.length == 0 || (mWindowPages.length != xPages)) {
mWindowPages = new EngineWindowPage[xPages];
initWindowPages(mWindowPages, finalXOffsetStep);
@@ -1656,11 +1734,12 @@ public abstract class WallpaperService extends Service {
xPage = mWindowPages.length - 1;
}
current = mWindowPages[xPage];
- updatePage(current, xPage, xPages, finalXOffsetStep);
- Trace.endSection();
- });
+ areas = new HashSet<>(current.getAreas());
+ }
+ updatePage(current, areas, xPage, xPages, wallpaperDimAmount);
}
+ @GuardedBy("mLock")
private void initWindowPages(EngineWindowPage[] windowPages, float step) {
for (int i = 0; i < windowPages.length; i++) {
windowPages[i] = new EngineWindowPage();
@@ -1677,16 +1756,16 @@ public abstract class WallpaperService extends Service {
}
}
- void updatePage(EngineWindowPage currentPage, int pageIndx, int numPages,
- float xOffsetStep) {
+ void updatePage(EngineWindowPage currentPage, Set areas, int pageIndx, int numPages,
+ float wallpaperDimAmount) {
+
// in case the clock is zero, we start with negative time
long current = SystemClock.elapsedRealtime() - DEFAULT_UPDATE_SCREENSHOT_DURATION;
long lapsed = current - currentPage.getLastUpdateTime();
// Always update the page when the last update time is <= 0
// This is important especially when the device first boots
- if (lapsed < DEFAULT_UPDATE_SCREENSHOT_DURATION) {
- return;
- }
+ if (lapsed < DEFAULT_UPDATE_SCREENSHOT_DURATION) return;
+
Surface surface = mSurfaceHolder.getSurface();
if (!surface.isValid()) return;
boolean widthIsLarger = mSurfaceSize.x > mSurfaceSize.y;
@@ -1699,43 +1778,59 @@ public abstract class WallpaperService extends Service {
Log.e(TAG, "wrong width and height values of bitmap " + width + " " + height);
return;
}
+ final String pixelCopySectionName = "WallpaperService#pixelCopy";
+ final int pixelCopyCount = mPixelCopyCount++;
+ Trace.beginAsyncSection(pixelCopySectionName, pixelCopyCount);
Bitmap screenShot = Bitmap.createBitmap(width, height,
Bitmap.Config.ARGB_8888);
final Bitmap finalScreenShot = screenShot;
- Trace.beginSection("WallpaperService#pixelCopy");
- PixelCopy.request(surface, screenShot, (res) -> {
- Trace.endSection();
- if (DEBUG) Log.d(TAG, "result of pixel copy is " + res);
- if (res != PixelCopy.SUCCESS) {
- Bitmap lastBitmap = currentPage.getBitmap();
- // assign the last bitmap taken for now
- currentPage.setBitmap(mLastScreenshot);
- Bitmap lastScreenshot = mLastScreenshot;
- if (lastScreenshot != null && !lastScreenshot.isRecycled()
- && !Objects.equals(lastBitmap, lastScreenshot)) {
- updatePageColors(currentPage, pageIndx, numPages, xOffsetStep);
+ try {
+ // TODO(b/274427458) check if this can be done in the background.
+ PixelCopy.request(surface, screenShot, (res) -> {
+ Trace.endAsyncSection(pixelCopySectionName, pixelCopyCount);
+ if (DEBUG) {
+ Log.d(TAG, "result of pixel copy is: "
+ + (res == PixelCopy.SUCCESS ? "SUCCESS" : "FAILURE"));
}
- } else {
- mLastScreenshot = finalScreenShot;
- // going to hold this lock for a while
- currentPage.setBitmap(finalScreenShot);
- currentPage.setLastUpdateTime(current);
- updatePageColors(currentPage, pageIndx, numPages, xOffsetStep);
- }
- }, mHandler);
-
+ if (res != PixelCopy.SUCCESS) {
+ Bitmap lastBitmap = currentPage.getBitmap();
+ // assign the last bitmap taken for now
+ currentPage.setBitmap(mLastScreenshot);
+ Bitmap lastScreenshot = mLastScreenshot;
+ if (lastScreenshot != null && !Objects.equals(lastBitmap, lastScreenshot)) {
+ updatePageColors(
+ currentPage, areas, pageIndx, numPages, wallpaperDimAmount);
+ }
+ } else {
+ mLastScreenshot = finalScreenShot;
+ currentPage.setBitmap(finalScreenShot);
+ currentPage.setLastUpdateTime(current);
+ updatePageColors(
+ currentPage, areas, pageIndx, numPages, wallpaperDimAmount);
+ }
+ }, mBackgroundHandler);
+ } catch (IllegalArgumentException e) {
+ // this can potentially happen if the surface is invalidated right between the
+ // surface.isValid() check and the PixelCopy operation.
+ // in this case, stop: we'll compute colors on the next processLocalColors call.
+ Log.w(TAG, "Cancelling processLocalColors: exception caught during PixelCopy");
+ }
}
// locked by the passed page
- private void updatePageColors(EngineWindowPage page, int pageIndx, int numPages,
- float xOffsetStep) {
+ private void updatePageColors(EngineWindowPage page, Set areas,
+ int pageIndx, int numPages, float wallpaperDimAmount) {
if (page.getBitmap() == null) return;
+ if (!mBackgroundHandler.getLooper().isCurrentThread()) {
+ throw new IllegalStateException(
+ "ProcessLocalColors should be called from the background thread");
+ }
Trace.beginSection("WallpaperService#updatePageColors");
if (DEBUG) {
Log.d(TAG, "updatePageColorsLocked for page " + pageIndx + " with areas "
+ page.getAreas().size() + " and bitmap size of "
+ page.getBitmap().getWidth() + " x " + page.getBitmap().getHeight());
}
- for (RectF area: page.getAreas()) {
+ for (RectF area: areas) {
if (area == null) continue;
RectF subArea = generateSubRect(area, pageIndx, numPages);
Bitmap b = page.getBitmap();
@@ -1745,12 +1840,12 @@ public abstract class WallpaperService extends Service {
int height = Math.round(b.getHeight() * subArea.height());
Bitmap target;
try {
- target = Bitmap.createBitmap(page.getBitmap(), x, y, width, height);
+ target = Bitmap.createBitmap(b, x, y, width, height);
} catch (Exception e) {
Log.e(TAG, "Error creating page local color bitmap", e);
continue;
}
- WallpaperColors color = WallpaperColors.fromBitmap(target, mWallpaperDimAmount);
+ WallpaperColors color = WallpaperColors.fromBitmap(target, wallpaperDimAmount);
target.recycle();
WallpaperColors currentColor = page.getColors(area);
@@ -1767,12 +1862,14 @@ public abstract class WallpaperService extends Service {
+ " local color callback for area" + area + " for page " + pageIndx
+ " of " + numPages);
}
- try {
- mConnection.onLocalWallpaperColorsChanged(area, color,
- mDisplayContext.getDisplayId());
- } catch (RemoteException e) {
- Log.e(TAG, "Error calling Connection.onLocalWallpaperColorsChanged", e);
- }
+ mHandler.post(() -> {
+ try {
+ mConnection.onLocalWallpaperColorsChanged(area, color,
+ mDisplayContext.getDisplayId());
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error calling Connection.onLocalWallpaperColorsChanged", e);
+ }
+ });
}
}
Trace.endSection();
@@ -1798,16 +1895,17 @@ public abstract class WallpaperService extends Service {
return new RectF(left, in.top, right, in.bottom);
}
+ @GuardedBy("mLock")
private void resetWindowPages() {
if (supportsLocalColorExtraction()) return;
if (!mResetWindowPages) return;
mResetWindowPages = false;
- mLastWindowPage = -1;
for (int i = 0; i < mWindowPages.length; i++) {
mWindowPages[i].setLastUpdateTime(0L);
}
}
+ @GuardedBy("mLock")
private int getRectFPage(RectF area, float step) {
if (!isValid(area)) return 0;
if (!validStep(step)) return 0;
@@ -1828,12 +1926,12 @@ public abstract class WallpaperService extends Service {
if (DEBUG) {
Log.d(TAG, "addLocalColorsAreas adding local color areas " + regions);
}
- mHandler.post(() -> {
- mLocalColorsToAdd.addAll(regions);
- processLocalColors(mPendingXOffset, mPendingYOffset);
+ mBackgroundHandler.post(() -> {
+ synchronized (mLock) {
+ mLocalColorsToAdd.addAll(regions);
+ }
+ processLocalColors();
});
-
-
}
/**
@@ -1843,16 +1941,18 @@ public abstract class WallpaperService extends Service {
*/
public void removeLocalColorsAreas(@NonNull List regions) {
if (supportsLocalColorExtraction()) return;
- mHandler.post(() -> {
- float step = mPendingXOffsetStep;
- mLocalColorsToAdd.removeAll(regions);
- mLocalColorAreas.removeAll(regions);
- if (!validStep(step)) {
- return;
- }
- for (int i = 0; i < mWindowPages.length; i++) {
- for (int j = 0; j < regions.size(); j++) {
- mWindowPages[i].removeArea(regions.get(j));
+ mBackgroundHandler.post(() -> {
+ synchronized (mLock) {
+ float step = mPendingXOffsetStep;
+ mLocalColorsToAdd.removeAll(regions);
+ mLocalColorAreas.removeAll(regions);
+ if (!validStep(step)) {
+ return;
+ }
+ for (int i = 0; i < mWindowPages.length; i++) {
+ for (int j = 0; j < regions.size(); j++) {
+ mWindowPages[i].removeArea(regions.get(j));
+ }
}
}
});
@@ -1870,7 +1970,7 @@ public abstract class WallpaperService extends Service {
}
private boolean validStep(float step) {
- return !PROHIBITED_STEPS.contains(step) && step > 0. && step <= 1.;
+ return !Float.isNaN(step) && step > 0f && step <= 1f;
}
void doCommand(WallpaperCommand cmd) {
@@ -2334,6 +2434,20 @@ public abstract class WallpaperService extends Service {
}
}
+ public void updateScreenTurningOn(boolean isScreenTurningOn) {
+ Message msg = mCaller.obtainMessageBO(MSG_UPDATE_SCREEN_TURNING_ON, isScreenTurningOn,
+ null);
+ mCaller.sendMessage(msg);
+ }
+
+ public void onScreenTurningOn() throws RemoteException {
+ updateScreenTurningOn(true);
+ }
+
+ public void onScreenTurnedOn() throws RemoteException {
+ updateScreenTurningOn(false);
+ }
+
@Override
public void executeMessage(Message message) {
if (mDetached.get()) {
@@ -2384,6 +2498,13 @@ public abstract class WallpaperService extends Service {
+ ": " + message.arg1);
mEngine.doVisibilityChanged(message.arg1 != 0);
break;
+ case MSG_UPDATE_SCREEN_TURNING_ON:
+ if (DEBUG) {
+ Log.v(TAG,
+ message.arg1 != 0 ? "Screen turning on" : "Screen turned on");
+ }
+ mEngine.onScreenTurningOnChanged(/* isScreenTurningOn= */ message.arg1 != 0);
+ break;
case MSG_WALLPAPER_OFFSETS: {
mEngine.doOffsetsChanged(true);
} break;
@@ -2474,6 +2595,9 @@ public abstract class WallpaperService extends Service {
@Override
public void onCreate() {
Trace.beginSection("WPMS.onCreate");
+ mBackgroundThread = new HandlerThread("DefaultWallpaperLocalColorExtractor");
+ mBackgroundThread.start();
+ mBackgroundHandler = new Handler(mBackgroundThread.getLooper());
super.onCreate();
Trace.endSection();
}
@@ -2486,6 +2610,7 @@ public abstract class WallpaperService extends Service {
mActiveEngines.get(i).detach();
}
mActiveEngines.clear();
+ mBackgroundThread.quitSafely();
Trace.endSection();
}
diff --git a/core/java/android/text/TextShaper.java b/core/java/android/text/TextShaper.java
index a1d6cc8e283a15934671d28c51d89c125b747882..6da0b63dbc1f3124721eb73990111eadbf109ab7 100644
--- a/core/java/android/text/TextShaper.java
+++ b/core/java/android/text/TextShaper.java
@@ -173,7 +173,7 @@ public class TextShaper {
private TextShaper() {}
/**
- * An consumer interface for accepting text shape result.
+ * A consumer interface for accepting text shape result.
*/
public interface GlyphsConsumer {
/**
diff --git a/core/java/android/util/SparseSetArray.java b/core/java/android/util/SparseSetArray.java
index b7873b73cb28ace5a5689b08d23b12ed139ee6ee..61f29a40ff501c49bb2948c2df4804c2f316a01d 100644
--- a/core/java/android/util/SparseSetArray.java
+++ b/core/java/android/util/SparseSetArray.java
@@ -139,4 +139,9 @@ public class SparseSetArray {
public T valueAt(int intIndex, int valueIndex) {
return mData.valueAt(intIndex).valueAt(valueIndex);
}
+
+ /** @return The set of values for key at position {@code intIndex}. */
+ public ArraySet valuesAt(int intIndex) {
+ return mData.valueAt(intIndex);
+ }
}
diff --git a/core/java/android/util/apk/ApkSignatureSchemeV2Verifier.java b/core/java/android/util/apk/ApkSignatureSchemeV2Verifier.java
index eb467e0dcc38b138cd95f9c0b7d5db2de7aa86cb..992a5861e07707dc06a6fb1a550dbabd90005328 100644
--- a/core/java/android/util/apk/ApkSignatureSchemeV2Verifier.java
+++ b/core/java/android/util/apk/ApkSignatureSchemeV2Verifier.java
@@ -74,6 +74,11 @@ public class ApkSignatureSchemeV2Verifier {
private static final int APK_SIGNATURE_SCHEME_V2_BLOCK_ID = 0x7109871a;
+ /**
+ * The maximum number of signers supported by the v2 APK signature scheme.
+ */
+ private static final int MAX_V2_SIGNERS = 10;
+
/**
* Returns {@code true} if the provided APK contains an APK Signature Scheme V2 signature.
*
@@ -183,6 +188,11 @@ public class ApkSignatureSchemeV2Verifier {
}
while (signers.hasRemaining()) {
signerCount++;
+ if (signerCount > MAX_V2_SIGNERS) {
+ throw new SecurityException(
+ "APK Signature Scheme v2 only supports a maximum of " + MAX_V2_SIGNERS
+ + " signers");
+ }
try {
ByteBuffer signer = getLengthPrefixedSlice(signers);
X509Certificate[] certs = verifySigner(signer, contentDigests, certFactory);
diff --git a/core/java/android/util/jar/StrictJarVerifier.java b/core/java/android/util/jar/StrictJarVerifier.java
index 45254908c5c967400cfeb77b3f3f873f72ae9571..a6aca330d323ebf85f74d6aaa59ccc1894fbb91f 100644
--- a/core/java/android/util/jar/StrictJarVerifier.java
+++ b/core/java/android/util/jar/StrictJarVerifier.java
@@ -78,6 +78,11 @@ class StrictJarVerifier {
"SHA1",
};
+ /**
+ * The maximum number of signers supported by the JAR signature scheme.
+ */
+ private static final int MAX_JAR_SIGNERS = 10;
+
private final String jarName;
private final StrictJarManifest manifest;
private final HashMap metaEntries;
@@ -293,10 +298,16 @@ class StrictJarVerifier {
return false;
}
+ int signerCount = 0;
Iterator it = metaEntries.keySet().iterator();
while (it.hasNext()) {
String key = it.next();
if (key.endsWith(".DSA") || key.endsWith(".RSA") || key.endsWith(".EC")) {
+ if (++signerCount > MAX_JAR_SIGNERS) {
+ throw new SecurityException(
+ "APK Signature Scheme v1 only supports a maximum of " + MAX_JAR_SIGNERS
+ + " signers");
+ }
verifyCertificate(key);
it.remove();
}
diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java
index 52d222b19b6ac1f6a0b72315041ca73cf3ea891d..f85f9067e347676a3137207187d927cff27ff2a4 100644
--- a/core/java/android/view/Display.java
+++ b/core/java/android/view/Display.java
@@ -1599,6 +1599,21 @@ public final class Display {
}
}
+ /**
+ * Returns the committed state of the display.
+ *
+ * @return The latest committed display state, such as {@link #STATE_ON}. The display state
+ * {@link Display#getState()} is set as committed only after power state changes finish.
+ *
+ * @hide
+ */
+ public int getCommittedState() {
+ synchronized (mLock) {
+ updateDisplayInfoLocked();
+ return mIsValid ? mDisplayInfo.committedState : STATE_UNKNOWN;
+ }
+ }
+
/**
* Returns true if the specified UID has access to this display.
* @hide
diff --git a/core/java/android/view/DisplayInfo.java b/core/java/android/view/DisplayInfo.java
index 12ce8ee5e0ad0e81f6acc3bb53eca27531f568e5..f65a69a8e2bc182870339de8991ce1bb23ff7db5 100644
--- a/core/java/android/view/DisplayInfo.java
+++ b/core/java/android/view/DisplayInfo.java
@@ -252,6 +252,12 @@ public final class DisplayInfo implements Parcelable {
*/
public int state;
+ /**
+ * The current committed state of the display. For example, this becomes
+ * {@link android.view.Display#STATE_ON} only after the power state ON is fully committed.
+ */
+ public int committedState;
+
/**
* The UID of the application that owns this display, or zero if it is owned by the system.
*
@@ -380,6 +386,7 @@ public final class DisplayInfo implements Parcelable {
&& appVsyncOffsetNanos == other.appVsyncOffsetNanos
&& presentationDeadlineNanos == other.presentationDeadlineNanos
&& state == other.state
+ && committedState == other.committedState
&& ownerUid == other.ownerUid
&& Objects.equals(ownerPackageName, other.ownerPackageName)
&& removeMode == other.removeMode
@@ -431,6 +438,7 @@ public final class DisplayInfo implements Parcelable {
appVsyncOffsetNanos = other.appVsyncOffsetNanos;
presentationDeadlineNanos = other.presentationDeadlineNanos;
state = other.state;
+ committedState = other.committedState;
ownerUid = other.ownerUid;
ownerPackageName = other.ownerPackageName;
removeMode = other.removeMode;
@@ -482,6 +490,7 @@ public final class DisplayInfo implements Parcelable {
appVsyncOffsetNanos = source.readLong();
presentationDeadlineNanos = source.readLong();
state = source.readInt();
+ committedState = source.readInt();
ownerUid = source.readInt();
ownerPackageName = source.readString8();
uniqueId = source.readString8();
@@ -538,6 +547,7 @@ public final class DisplayInfo implements Parcelable {
dest.writeLong(appVsyncOffsetNanos);
dest.writeLong(presentationDeadlineNanos);
dest.writeInt(state);
+ dest.writeInt(committedState);
dest.writeInt(ownerUid);
dest.writeString8(ownerPackageName);
dest.writeString8(uniqueId);
@@ -761,6 +771,8 @@ public final class DisplayInfo implements Parcelable {
sb.append(rotation);
sb.append(", state ");
sb.append(Display.stateToString(state));
+ sb.append(", committedState ");
+ sb.append(Display.stateToString(committedState));
if (Process.myUid() != Process.SYSTEM_UID) {
sb.append("}");
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index b1008919a1253ba71b03eb23a860071b6772d1d2..4da7921b42e8cef7699ac149a171c00d70f6293d 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -17,6 +17,7 @@
package android.view;
import static android.content.res.Resources.ID_NULL;
+import static android.os.Trace.TRACE_TAG_APP;
import static android.view.ContentInfo.SOURCE_DRAG_AND_DROP;
import static android.view.accessibility.AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED;
import static android.view.displayhash.DisplayHashResultCallback.DISPLAY_HASH_ERROR_INVALID_BOUNDS;
@@ -984,6 +985,22 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
*/
private static boolean sAcceptZeroSizeDragShadow;
+ /**
+ * When true, measure and layout passes of all the newly attached views will be logged with
+ * {@link Trace}, so we can better debug jank due to complex view hierarchies.
+ */
+ private static boolean sTraceLayoutSteps;
+
+ /**
+ * When not null, emits a {@link Trace} instant event and the stacktrace every time a relayout
+ * of a class having this name happens.
+ */
+ private static String sTraceRequestLayoutClass;
+
+ /** Used to avoid computing the full strings each time when layout tracing is enabled. */
+ @Nullable
+ private ViewTraversalTracingStrings mTracingStrings;
+
/**
* Prior to R, {@link #dispatchApplyWindowInsets} had an issue:
*
The modified insets changed by {@link #onApplyWindowInsets} were passed to the
@@ -3532,6 +3549,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
* 1 PFLAG4_HAS_TRANSLATION_TRANSIENT_STATE
* 1 PFLAG4_DRAG_A11Y_STARTED
* 1 PFLAG4_AUTO_HANDWRITING_INITIATION_ENABLED
+ * 1 PFLAG4_TRAVERSAL_TRACING_ENABLED
+ * 1 PFLAG4_RELAYOUT_TRACING_ENABLED
* |-------|-------|-------|-------|
*/
@@ -3612,6 +3631,19 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
* Indicates that the view enables auto handwriting initiation.
*/
private static final int PFLAG4_AUTO_HANDWRITING_ENABLED = 0x000010000;
+
+ /**
+ * When set, measure and layout passes of this view will be logged with {@link Trace}, so we
+ * can better debug jank due to complex view hierarchies.
+ */
+ private static final int PFLAG4_TRAVERSAL_TRACING_ENABLED = 0x000040000;
+
+ /**
+ * When set, emits a {@link Trace} instant event and stacktrace every time a requestLayout of
+ * this class happens.
+ */
+ private static final int PFLAG4_RELAYOUT_TRACING_ENABLED = 0x000080000;
+
/* End of masks for mPrivateFlags4 */
/** @hide */
@@ -6537,6 +6569,15 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
out.append(mRight);
out.append(',');
out.append(mBottom);
+ appendId(out);
+ if (mAutofillId != null) {
+ out.append(" aid="); out.append(mAutofillId);
+ }
+ out.append("}");
+ return out.toString();
+ }
+
+ void appendId(StringBuilder out) {
final int id = getId();
if (id != NO_ID) {
out.append(" #");
@@ -6568,11 +6609,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
}
}
- if (mAutofillId != null) {
- out.append(" aid="); out.append(mAutofillId);
- }
- out.append("}");
- return out.toString();
}
/**
@@ -8738,7 +8774,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
* @hide
*/
@UnsupportedAppUsage
- public void getBoundsOnScreen(Rect outRect, boolean clipToParent) {
+ @TestApi
+ public void getBoundsOnScreen(@NonNull Rect outRect, boolean clipToParent) {
if (mAttachInfo == null) {
return;
}
@@ -8746,6 +8783,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
getBoundsToScreenInternal(position, clipToParent);
outRect.set(Math.round(position.left), Math.round(position.top),
Math.round(position.right), Math.round(position.bottom));
+ // If "Sandboxing View Bounds APIs" override is enabled, applyViewBoundsSandboxingIfNeeded
+ // will sandbox outRect within window bounds.
+ mAttachInfo.mViewRootImpl.applyViewBoundsSandboxingIfNeeded(outRect);
}
/**
@@ -15554,7 +15594,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
* @hide
*/
@UnsupportedAppUsage
- public void getWindowDisplayFrame(Rect outRect) {
+ @TestApi
+ public void getWindowDisplayFrame(@NonNull Rect outRect) {
if (mAttachInfo != null) {
mAttachInfo.mViewRootImpl.getDisplayFrame(outRect);
return;
@@ -20771,6 +20812,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
if (isFocused()) {
notifyFocusChangeToImeFocusController(true /* hasFocus */);
}
+
+ if (sTraceLayoutSteps) {
+ setTraversalTracingEnabled(true);
+ }
+ if (sTraceRequestLayoutClass != null
+ && sTraceRequestLayoutClass.equals(getClass().getSimpleName())) {
+ setRelayoutTracingEnabled(true);
+ }
}
/**
@@ -23670,6 +23719,30 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
return o instanceof ViewGroup && ((ViewGroup) o).isLayoutModeOptical();
}
+ /**
+ * Enable measure/layout debugging on traces.
+ *
+ * @see Trace
+ * @hide
+ */
+ public static void setTraceLayoutSteps(boolean traceLayoutSteps) {
+ sTraceLayoutSteps = traceLayoutSteps;
+ }
+
+ /**
+ * Enable request layout tracing classes with {@code s} simple name.
+ *
+ * When set, a {@link Trace} instant event and a log with the stacktrace is emitted every
+ * time a requestLayout of a class matching {@code s} name happens.
+ * This applies only to views attached from this point onwards.
+ *
+ * @see Trace#instant(long, String)
+ * @hide
+ */
+ public static void setTracedRequestLayoutClassClass(String s) {
+ sTraceRequestLayoutClass = s;
+ }
+
private boolean setOpticalFrame(int left, int top, int right, int bottom) {
Insets parentInsets = mParent instanceof View ?
((View) mParent).getOpticalInsets() : Insets.NONE;
@@ -23704,7 +23777,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
@SuppressWarnings({"unchecked"})
public void layout(int l, int t, int r, int b) {
if ((mPrivateFlags3 & PFLAG3_MEASURE_NEEDED_BEFORE_LAYOUT) != 0) {
+ if (isTraversalTracingEnabled()) {
+ Trace.beginSection(mTracingStrings.onMeasureBeforeLayout);
+ }
onMeasure(mOldWidthMeasureSpec, mOldHeightMeasureSpec);
+ if (isTraversalTracingEnabled()) {
+ Trace.endSection();
+ }
mPrivateFlags3 &= ~PFLAG3_MEASURE_NEEDED_BEFORE_LAYOUT;
}
@@ -23717,7 +23796,13 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
setOpticalFrame(l, t, r, b) : setFrame(l, t, r, b);
if (changed || (mPrivateFlags & PFLAG_LAYOUT_REQUIRED) == PFLAG_LAYOUT_REQUIRED) {
+ if (isTraversalTracingEnabled()) {
+ Trace.beginSection(mTracingStrings.onLayout);
+ }
onLayout(changed, l, t, r, b);
+ if (isTraversalTracingEnabled()) {
+ Trace.endSection();
+ }
if (shouldDrawRoundScrollbar()) {
if(mRoundScrollbarRenderer == null) {
@@ -25710,6 +25795,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
if (info != null) {
outLocation[0] += info.mWindowLeft;
outLocation[1] += info.mWindowTop;
+ // If OVERRIDE_SANDBOX_VIEW_BOUNDS_APIS override is enabled,
+ // applyViewLocationSandboxingIfNeeded sandboxes outLocation within window bounds.
+ info.mViewRootImpl.applyViewLocationSandboxingIfNeeded(outLocation);
}
}
@@ -26274,6 +26362,25 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
return (viewRoot != null && viewRoot.isInLayout());
}
+ /** To be used only for debugging purposes. */
+ private void printStackStrace(String name) {
+ Log.d(VIEW_LOG_TAG, "---- ST:" + name);
+
+ StringBuilder sb = new StringBuilder();
+ StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
+ int startIndex = 1;
+ int endIndex = Math.min(stackTraceElements.length, startIndex + 20); // max 20 entries.
+ for (int i = startIndex; i < endIndex; i++) {
+ StackTraceElement s = stackTraceElements[i];
+ sb.append(s.getMethodName())
+ .append("(")
+ .append(s.getFileName())
+ .append(":")
+ .append(s.getLineNumber())
+ .append(") <- ");
+ }
+ Log.d(VIEW_LOG_TAG, name + ": " + sb);
+ }
/**
* Call this when something has changed which has invalidated the
* layout of this view. This will schedule a layout pass of the view
@@ -26287,6 +26394,12 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
*/
@CallSuper
public void requestLayout() {
+ if (isRelayoutTracingEnabled()) {
+ Trace.instantForTrack(TRACE_TAG_APP, "requestLayoutTracing",
+ mTracingStrings.classSimpleName);
+ printStackStrace(mTracingStrings.requestLayoutStacktracePrefix);
+ }
+
if (mMeasureCache != null) mMeasureCache.clear();
if (mAttachInfo != null && mAttachInfo.mViewRequestingLayout == null) {
@@ -26380,8 +26493,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
int cacheIndex = forceLayout ? -1 : mMeasureCache.indexOfKey(key);
if (cacheIndex < 0 || sIgnoreMeasureCache) {
+ if (isTraversalTracingEnabled()) {
+ Trace.beginSection(mTracingStrings.onMeasure);
+ }
// measure ourselves, this should set the measured dimension flag back
onMeasure(widthMeasureSpec, heightMeasureSpec);
+ if (isTraversalTracingEnabled()) {
+ Trace.endSection();
+ }
mPrivateFlags3 &= ~PFLAG3_MEASURE_NEEDED_BEFORE_LAYOUT;
} else {
long value = mMeasureCache.valueAt(cacheIndex);
@@ -31551,6 +31670,38 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
== PFLAG4_AUTO_HANDWRITING_ENABLED;
}
+ private void setTraversalTracingEnabled(boolean enabled) {
+ if (enabled) {
+ if (mTracingStrings == null) {
+ mTracingStrings = new ViewTraversalTracingStrings(this);
+ }
+ mPrivateFlags4 |= PFLAG4_TRAVERSAL_TRACING_ENABLED;
+ } else {
+ mPrivateFlags4 &= ~PFLAG4_TRAVERSAL_TRACING_ENABLED;
+ }
+ }
+
+ private boolean isTraversalTracingEnabled() {
+ return (mPrivateFlags4 & PFLAG4_TRAVERSAL_TRACING_ENABLED)
+ == PFLAG4_TRAVERSAL_TRACING_ENABLED;
+ }
+
+ private void setRelayoutTracingEnabled(boolean enabled) {
+ if (enabled) {
+ if (mTracingStrings == null) {
+ mTracingStrings = new ViewTraversalTracingStrings(this);
+ }
+ mPrivateFlags4 |= PFLAG4_RELAYOUT_TRACING_ENABLED;
+ } else {
+ mPrivateFlags4 &= ~PFLAG4_RELAYOUT_TRACING_ENABLED;
+ }
+ }
+
+ private boolean isRelayoutTracingEnabled() {
+ return (mPrivateFlags4 & PFLAG4_RELAYOUT_TRACING_ENABLED)
+ == PFLAG4_RELAYOUT_TRACING_ENABLED;
+ }
+
/**
* Collects a {@link ViewTranslationRequest} which represents the content to be translated in
* the view.
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 5f04d5846977194d7b45a7df3fc1a83d79bb4373..6feb899745dcaeaa70812d97efc55a631de4a8e0 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -16,6 +16,7 @@
package android.view;
+import static android.content.pm.ActivityInfo.OVERRIDE_SANDBOX_VIEW_BOUNDS_APIS;
import static android.graphics.HardwareRenderer.SYNC_CONTEXT_IS_STOPPED;
import static android.graphics.HardwareRenderer.SYNC_LOST_SURFACE_REWARD_IF_FOUND;
import static android.os.IInputConstants.INVALID_INPUT_EVENT_ID;
@@ -73,15 +74,16 @@ import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_FIT_INSETS_CO
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_DECOR_VIEW_VISIBILITY;
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_INSET_PARENT_FRAME_BY_IME;
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_LAYOUT_SIZE_EXTENDED_BY_CUTOUT;
+import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_OPTIMIZE_MEASURE;
import static android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
import static android.view.WindowManager.LayoutParams.SOFT_INPUT_MASK_ADJUST;
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD;
-import static android.view.WindowManager.LayoutParams.TYPE_NOTIFICATION_SHADE;
import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_ADDITIONAL;
import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
import static android.view.WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY;
+import static android.view.WindowManager.PROPERTY_COMPAT_ALLOW_SANDBOXING_VIEW_BOUNDS_APIS;
import static android.view.WindowManagerGlobal.RELAYOUT_RES_CANCEL_AND_REDRAW;
import static android.view.WindowManagerGlobal.RELAYOUT_RES_CONSUME_ALWAYS_SYSTEM_BARS;
import static android.view.WindowManagerGlobal.RELAYOUT_RES_SURFACE_CHANGED;
@@ -94,12 +96,14 @@ import android.animation.LayoutTransition;
import android.annotation.AnyThread;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.Size;
import android.annotation.UiContext;
import android.app.ActivityManager;
import android.app.ActivityThread;
import android.app.ICompatCameraControlCallback;
import android.app.ResourcesManager;
import android.app.WindowConfiguration;
+import android.app.compat.CompatChanges;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.ClipData;
import android.content.ClipDescription;
@@ -711,6 +715,7 @@ public final class ViewRootImpl implements ViewParent,
// These are accessed by multiple threads.
final Rect mWinFrame; // frame given by window manager.
+ private final Rect mLastLayoutFrame;
Rect mOverrideInsetsFrame;
final Rect mPendingBackDropFrame = new Rect();
@@ -870,6 +875,15 @@ public final class ViewRootImpl implements ViewParent,
private boolean mRelayoutRequested;
+ /**
+ * Whether sandboxing of {@link android.view.View#getBoundsOnScreen},
+ * {@link android.view.View#getLocationOnScreen(int[])},
+ * {@link android.view.View#getWindowDisplayFrame} and
+ * {@link android.view.View#getWindowVisibleDisplayFrame}
+ * within Activity bounds is enabled for the current application.
+ */
+ private final boolean mViewBoundsSandboxingEnabled;
+
private int mLastTransformHint = Integer.MIN_VALUE;
/**
@@ -931,6 +945,7 @@ public final class ViewRootImpl implements ViewParent,
mHeight = -1;
mDirty = new Rect();
mWinFrame = new Rect();
+ mLastLayoutFrame = new Rect();
mWindow = new W(this);
mLeashToken = new Binder();
mTargetSdkVersion = context.getApplicationInfo().targetSdkVersion;
@@ -956,6 +971,8 @@ public final class ViewRootImpl implements ViewParent,
mHandwritingInitiator = new HandwritingInitiator(mViewConfiguration,
mContext.getSystemService(InputMethodManager.class));
+ mViewBoundsSandboxingEnabled = getViewBoundsSandboxingEnabled();
+
String processorOverrideName = context.getResources().getString(
R.string.config_inputEventCompatProcessorOverrideClassName);
if (processorOverrideName.isEmpty()) {
@@ -1112,6 +1129,8 @@ public final class ViewRootImpl implements ViewParent,
// Update the last resource config in case the resource configuration was changed while
// activity relaunched.
updateLastConfigurationFromResources(getConfiguration());
+ // Make sure to report the completion of draw for relaunch with preserved window.
+ reportNextDraw("rebuilt");
}
private Configuration getConfiguration() {
@@ -1273,7 +1292,7 @@ public final class ViewRootImpl implements ViewParent,
mTmpFrames.attachedFrame = attachedFrame;
mTmpFrames.compatScale = compatScale[0];
mInvCompatScale = 1f / compatScale[0];
- } catch (RemoteException e) {
+ } catch (RemoteException | RuntimeException e) {
mAdded = false;
mView = null;
mAttachInfo.mRootView = null;
@@ -1301,7 +1320,7 @@ public final class ViewRootImpl implements ViewParent,
UNSPECIFIED_LENGTH, UNSPECIFIED_LENGTH,
mInsetsController.getRequestedVisibilities(), 1f /* compactScale */,
mTmpFrames);
- setFrame(mTmpFrames.frame);
+ setFrame(mTmpFrames.frame, true /* withinRelayout */);
registerBackCallbackOnWindow();
if (!WindowOnBackInvokedDispatcher.isOnBackInvokedCallbackEnabled(mContext)) {
// For apps requesting legacy back behavior, we add a compat callback that
@@ -1389,6 +1408,8 @@ public final class ViewRootImpl implements ViewParent,
listener, listener.data, mHandler, true /*waitForPresentTime*/);
mAttachInfo.mThreadedRenderer.addObserver(mHardwareRendererObserver);
}
+ // Update unbuffered request when set the root view.
+ mUnbufferedInputSource = mView.mUnbufferedInputSource;
}
view.assignParent(this);
@@ -1825,7 +1846,7 @@ public final class ViewRootImpl implements ViewParent,
onMovedToDisplay(displayId, mLastConfigurationFromResources);
}
- setFrame(frame);
+ setFrame(frame, false /* withinRelayout */);
mTmpFrames.displayFrame.set(displayFrame);
if (mTmpFrames.attachedFrame != null && attachedFrame != null) {
mTmpFrames.attachedFrame.set(attachedFrame);
@@ -2768,7 +2789,7 @@ public final class ViewRootImpl implements ViewParent,
* TODO(b/260382739): Apply this to all windows.
*/
private static boolean shouldOptimizeMeasure(final WindowManager.LayoutParams lp) {
- return lp.type == TYPE_NOTIFICATION_SHADE;
+ return (lp.privateFlags & PRIVATE_FLAG_OPTIMIZE_MEASURE) != 0;
}
private Rect getWindowBoundsInsetSystemBars() {
@@ -5741,7 +5762,7 @@ public final class ViewRootImpl implements ViewParent,
mTmpFrames.frame.right = l + w;
mTmpFrames.frame.top = t;
mTmpFrames.frame.bottom = t + h;
- setFrame(mTmpFrames.frame);
+ setFrame(mTmpFrames.frame, false /* withinRelayout */);
maybeHandleWindowMove(mWinFrame);
}
break;
@@ -8211,7 +8232,7 @@ public final class ViewRootImpl implements ViewParent,
// If the position and the size of the frame are both changed, it will trigger a BLAST
// sync, and we still need to call relayout to obtain the syncSeqId. Otherwise, we just
// need to send attributes via relayoutAsync.
- final Rect oldFrame = mWinFrame;
+ final Rect oldFrame = mLastLayoutFrame;
final Rect newFrame = mTmpFrames.frame;
final boolean positionChanged =
newFrame.top != oldFrame.top || newFrame.left != oldFrame.left;
@@ -8341,7 +8362,7 @@ public final class ViewRootImpl implements ViewParent,
params.restore();
}
- setFrame(mTmpFrames.frame);
+ setFrame(mTmpFrames.frame, true /* withinRelayout */);
return relayoutResult;
}
@@ -8376,8 +8397,18 @@ public final class ViewRootImpl implements ViewParent,
mIsSurfaceOpaque = opaque;
}
- private void setFrame(Rect frame) {
+ /**
+ * Set the mWinFrame of this window.
+ * @param frame the new frame of this window.
+ * @param withinRelayout {@code true} if this setting is within the relayout, or is the initial
+ * setting. That will make sure in the relayout process, we always compare
+ * the window frame with the last processed window frame.
+ */
+ private void setFrame(Rect frame, boolean withinRelayout) {
mWinFrame.set(frame);
+ if (withinRelayout) {
+ mLastLayoutFrame.set(frame);
+ }
final WindowConfiguration winConfig = getCompatWindowConfiguration();
mPendingBackDropFrame.set(mPendingDragResizing && !winConfig.useWindowFrameForBackdrop()
@@ -8412,6 +8443,9 @@ public final class ViewRootImpl implements ViewParent,
*/
void getDisplayFrame(Rect outFrame) {
outFrame.set(mTmpFrames.displayFrame);
+ // Apply sandboxing here (in getter) due to possible layout updates on the client after
+ // mTmpFrames.displayFrame is received from the server.
+ applyViewBoundsSandboxingIfNeeded(outFrame);
}
/**
@@ -8428,6 +8462,69 @@ public final class ViewRootImpl implements ViewParent,
outFrame.top += insets.top;
outFrame.right -= insets.right;
outFrame.bottom -= insets.bottom;
+ // Apply sandboxing here (in getter) due to possible layout updates on the client after
+ // mTmpFrames.displayFrame is received from the server.
+ applyViewBoundsSandboxingIfNeeded(outFrame);
+ }
+
+ /**
+ * Offset outRect to make it sandboxed within Window's bounds.
+ *
+ *
This is used by {@link android.view.View#getBoundsOnScreen},
+ * {@link android.view.ViewRootImpl#getDisplayFrame} and
+ * {@link android.view.ViewRootImpl#getWindowVisibleDisplayFrame}, which are invoked by
+ * {@link android.view.View#getWindowDisplayFrame} and
+ * {@link android.view.View#getWindowVisibleDisplayFrame}, as well as
+ * {@link android.view.ViewDebug#captureLayers} for debugging.
+ */
+ void applyViewBoundsSandboxingIfNeeded(final Rect inOutRect) {
+ if (mViewBoundsSandboxingEnabled) {
+ final Rect bounds = getConfiguration().windowConfiguration.getBounds();
+ inOutRect.offset(-bounds.left, -bounds.top);
+ }
+ }
+
+ /**
+ * Offset outLocation to make it sandboxed within Window's bounds.
+ *
+ *
This is used by {@link android.view.View#getLocationOnScreen(int[])}
+ */
+ public void applyViewLocationSandboxingIfNeeded(@Size(2) int[] outLocation) {
+ if (mViewBoundsSandboxingEnabled) {
+ final Rect bounds = getConfiguration().windowConfiguration.getBounds();
+ outLocation[0] -= bounds.left;
+ outLocation[1] -= bounds.top;
+ }
+ }
+
+ private boolean getViewBoundsSandboxingEnabled() {
+ // System dialogs (e.g. ANR) can be created within System process, so handleBindApplication
+ // may be never called. This results into all app compat changes being enabled
+ // (see b/268007823) because AppCompatCallbacks.install() is never called with non-empty
+ // array.
+ // With ActivityThread.isSystem we verify that it is not the system process,
+ // then this CompatChange can take effect.
+ if (ActivityThread.isSystem()
+ || !CompatChanges.isChangeEnabled(OVERRIDE_SANDBOX_VIEW_BOUNDS_APIS)) {
+ // It is a system process or OVERRIDE_SANDBOX_VIEW_BOUNDS_APIS change-id is disabled.
+ return false;
+ }
+
+ // OVERRIDE_SANDBOX_VIEW_BOUNDS_APIS is enabled by the device manufacturer.
+ try {
+ final List properties = mContext.getPackageManager()
+ .queryApplicationProperty(PROPERTY_COMPAT_ALLOW_SANDBOXING_VIEW_BOUNDS_APIS);
+
+ final boolean isOptedOut = !properties.isEmpty() && !properties.get(0).getBoolean();
+ if (isOptedOut) {
+ // PROPERTY_COMPAT_ALLOW_SANDBOXING_VIEW_BOUNDS_APIS is disabled by the app devs.
+ return false;
+ }
+ } catch (RuntimeException e) {
+ // remote exception.
+ }
+
+ return true;
}
/**
@@ -8618,6 +8715,8 @@ public final class ViewRootImpl implements ViewParent,
mInsetsController.dump(prefix, writer);
+ mOnBackInvokedDispatcher.dump(prefix, writer);
+
writer.println(prefix + "View Hierarchy:");
dumpViewHierarchy(innerPrefix, writer, mView);
}
@@ -8749,6 +8848,10 @@ public final class ViewRootImpl implements ViewParent,
mAdded = false;
AnimationHandler.removeRequestor(this);
}
+ if (mSyncBufferCallback != null) {
+ mSyncBufferCallback.onBufferReady(null);
+ mSyncBufferCallback = null;
+ }
WindowManagerGlobal.getInstance().doRemoveView(this);
}
@@ -9863,9 +9966,12 @@ public final class ViewRootImpl implements ViewParent,
}
void checkThread() {
- if (mThread != Thread.currentThread()) {
+ Thread current = Thread.currentThread();
+ if (mThread != current) {
throw new CalledFromWrongThreadException(
- "Only the original thread that created a view hierarchy can touch its views.");
+ "Only the original thread that created a view hierarchy can touch its views."
+ + " Expected: " + mThread.getName()
+ + " Calling: " + current.getName());
}
}
diff --git a/core/java/android/view/ViewTraversalTracingStrings.java b/core/java/android/view/ViewTraversalTracingStrings.java
new file mode 100644
index 0000000000000000000000000000000000000000..7dde87bad26e38983ae6dd9805522935cb443d06
--- /dev/null
+++ b/core/java/android/view/ViewTraversalTracingStrings.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package android.view;
+
+import android.os.Trace;
+
+/**
+ * Keeps and caches strings used to trace {@link View} traversals.
+ *
+ * This is done to avoid expensive computations of them every time, which can improve performance.
+ */
+class ViewTraversalTracingStrings {
+
+ /** {@link Trace} tag used to mark {@link View#onMeasure(int, int)}. */
+ public final String onMeasure;
+
+ /** {@link Trace} tag used to mark {@link View#onLayout(boolean, int, int, int, int)}. */
+ public final String onLayout;
+
+ /** Caches the view simple name to avoid re-computations. */
+ public final String classSimpleName;
+
+ /** Prefix for request layout stacktraces output in logs. */
+ public final String requestLayoutStacktracePrefix;
+
+ /** {@link Trace} tag used to mark {@link View#onMeasure(int, int)} happening before layout. */
+ public final String onMeasureBeforeLayout;
+
+ /**
+ * @param v {@link View} from where to get the class name.
+ */
+ ViewTraversalTracingStrings(View v) {
+ String className = v.getClass().getSimpleName();
+ classSimpleName = className;
+ onMeasureBeforeLayout = getTraceName("onMeasureBeforeLayout", className, v);
+ onMeasure = getTraceName("onMeasure", className, v);
+ onLayout = getTraceName("onLayout", className, v);
+ requestLayoutStacktracePrefix = "requestLayout " + className;
+ }
+
+ private String getTraceName(String sectionName, String className, View v) {
+ StringBuilder out = new StringBuilder();
+ out.append(sectionName);
+ out.append(" ");
+ out.append(className);
+ v.appendId(out);
+ return out.substring(0, Math.min(out.length() - 1, Trace.MAX_SECTION_NAME_LEN - 1));
+ }
+}
diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java
index 02027e4a39693280de3cfa8f608217ae3d03db9b..293f9082670d7cf33163822657164e8466e2d570 100644
--- a/core/java/android/view/Window.java
+++ b/core/java/android/view/Window.java
@@ -823,6 +823,11 @@ public abstract class Window {
/** @hide */
public final void destroy() {
mDestroyed = true;
+ onDestroy();
+ }
+
+ /** @hide */
+ protected void onDestroy() {
}
/** @hide */
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index ed9cb00db290d447eb1c35d3cd11d0f3d24d7b4b..033f7263bfc6e2d4063bcdd20aaa4bec10bbd9ad 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -814,8 +814,8 @@ public interface WindowManager extends ViewManager {
}
/**
- * Activity level {@link android.content.pm.PackageManager.Property PackageManager
- * .Property} for an app to inform the system that the activity can be opted-in or opted-out
+ * Application level {@link android.content.pm.PackageManager.Property PackageManager
+ * .Property} for an app to inform the system that the app can be opted-in or opted-out
* from the compatibility treatment that avoids {@link
* android.app.Activity#setRequestedOrientation} loops. The loop can be trigerred by
* ignoreRequestedOrientation display setting enabled on the device or by the landscape natural
@@ -833,17 +833,17 @@ public interface WindowManager extends ViewManager {
*
Camera compatibility force rotation treatment is active for the package.
*
*
- *
Setting this property to {@code false} informs the system that the activity must be
+ *
Setting this property to {@code false} informs the system that the app must be
* opted-out from the compatibility treatment even if the device manufacturer has opted the app
* into the treatment.
*
*
*
* @hide
@@ -852,6 +852,323 @@ public interface WindowManager extends ViewManager {
String PROPERTY_COMPAT_IGNORE_REQUESTED_ORIENTATION =
"android.window.PROPERTY_COMPAT_IGNORE_REQUESTED_ORIENTATION";
+ /**
+ * Application level {@link android.content.pm.PackageManager.Property PackageManager.Property}
+ * for an app to inform the system that the app can be opted-out from the compatibility
+ * treatment that avoids {@link android.app.Activity#setRequestedOrientation} loops. The loop
+ * can be trigerred by ignoreRequestedOrientation display setting enabled on the device or
+ * by the landscape natural orientation of the device.
+ *
+ *
The system could ignore {@link android.app.Activity#setRequestedOrientation}
+ * call from an app if both of the following conditions are true:
+ *
+ *
Activity has requested orientation more than 2 times within 1-second timer
+ *
Activity is not letterboxed for fixed orientation
+ *
+ *
+ *
Setting this property to {@code false} informs the system that the app must be
+ * opted-out from the compatibility treatment even if the device manufacturer has opted the app
+ * into the treatment.
+ *
+ *
Not setting this property at all, or setting this property to {@code true} has no effect.
+ *
+ *
+ *
+ * @hide
+ */
+ // TODO(b/274924641): Make this public API.
+ String PROPERTY_COMPAT_IGNORE_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED =
+ "android.window.PROPERTY_COMPAT_IGNORE_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED";
+
+ /**
+ * Application level {@link android.content.pm.PackageManager.Property PackageManager
+ * .Property} for an app to inform the system that it needs to be opted-out from the
+ * compatibility treatment that sandboxes {@link android.view.View} API.
+ *
+ *
The treatment can be enabled by device manufacturers for applications which misuse
+ * {@link android.view.View} APIs by expecting that
+ * {@link android.view.View#getLocationOnScreen},
+ * {@link android.view.View#getBoundsOnScreen},
+ * {@link android.view.View#getWindowVisibleDisplayFrame},
+ * {@link android.view.View#getWindowDisplayFrame}
+ * return coordinates as if an activity is positioned in the top-left corner of the screen, with
+ * left coordinate equal to 0. This may not be the case for applications in multi-window and in
+ * letterbox modes.
+ *
+ *
Setting this property to {@code false} informs the system that the application must be
+ * opted-out from the "Sandbox {@link android.view.View} API to Activity bounds" treatment even
+ * if the device manufacturer has opted the app into the treatment.
+ *
+ *
Not setting this property at all, or setting this property to {@code true} has no effect.
+ *
+ *
+ *
+ * @hide
+ */
+ // TODO(b/263984287): Make this public API.
+ String PROPERTY_COMPAT_ALLOW_SANDBOXING_VIEW_BOUNDS_APIS =
+ "android.window.PROPERTY_COMPAT_ALLOW_SANDBOXING_VIEW_BOUNDS_APIS";
+
+ /**
+ * Application level {@link android.content.pm.PackageManager.Property PackageManager
+ * .Property} for an app to inform the system that the application can be opted-in or opted-out
+ * from the compatibility treatment that enables sending a fake focus event for unfocused
+ * resumed split screen activities. This is needed because some game engines wait to get
+ * focus before drawing the content of the app which isn't guaranteed by default in multi-window
+ * modes.
+ *
+ *
Device manufacturers can enable this treatment using their discretion on a per-device
+ * basis to improve display compatibility. The treatment also needs to be specifically enabled
+ * on a per-app basis afterwards. This can either be done by device manufacturers or developers.
+ *
+ *
With this property set to {@code true}, the system will apply the treatment only if the
+ * device manufacturer had previously enabled it on the device. A fake focus event will be sent
+ * to the app after it is resumed only if the app is in split-screen.
+ *
+ *
Setting this property to {@code false} informs the system that the activity must be
+ * opted-out from the compatibility treatment even if the device manufacturer has opted the app
+ * into the treatment.
+ *
+ *
If the property remains unset the system will apply the treatment only if it had
+ * previously been enabled both at the device and app level by the device manufacturer.
+ *
+ *
+ *
+ * @hide
+ */
+ // TODO(b/263984287): Make this public API.
+ String PROPERTY_COMPAT_ENABLE_FAKE_FOCUS = "android.window.PROPERTY_COMPAT_ENABLE_FAKE_FOCUS";
+
+ /**
+ * Application level {@link android.content.pm.PackageManager.Property PackageManager
+ * .Property} for an app to inform the system that the app should be excluded from the
+ * camera compatibility force rotation treatment.
+ *
+ *
The camera compatibility treatment aligns orientations of portrait app window and natural
+ * orientation of the device and set opposite to natural orientation for a landscape app
+ * window. Mismatch between them can lead to camera issues like sideways or stretched
+ * viewfinder since this is one of the strongest assumptions that apps make when they implement
+ * camera previews. Since app and natural display orientations aren't guaranteed to match, the
+ * rotation can cause letterboxing. The forced rotation is triggered as soon as app opens to
+ * camera and is removed once camera is closed.
+ *
+ *
The camera compatibility can be enabled by device manufacturers on the displays that have
+ * ignoreOrientationRequest display setting enabled (enables compatibility mode for fixed
+ * orientation, see Enhanced letterboxing
+ * for more details).
+ *
+ *
With this property set to {@code true} or unset, the system may apply the force rotation
+ * treatment to fixed orientation activities. Device manufacturers can exclude packages from the
+ * treatment using their discretion to improve display compatibility.
+ *
+ *
With this property set to {@code false}, the system will not apply the force rotation
+ * treatment.
+ *
+ *
+ *
+ * @hide
+ */
+ // TODO(b/263984287): Make this public API.
+ String PROPERTY_CAMERA_COMPAT_ALLOW_FORCE_ROTATION =
+ "android.window.PROPERTY_CAMERA_COMPAT_ALLOW_FORCE_ROTATION";
+
+ /**
+ * Application level {@link android.content.pm.PackageManager.Property PackageManager
+ * .Property} for an app to inform the system that the app should be excluded
+ * from the activity "refresh" after the camera compatibility force rotation treatment.
+ *
+ *
The camera compatibility treatment aligns orientations of portrait app window and natural
+ * orientation of the device and set opposite to natural orientation for a landscape app
+ * window. Mismatch between them can lead to camera issues like sideways or stretched
+ * viewfinder since this is one of the strongest assumptions that apps make when they implement
+ * camera previews. Since app and natural display orientations aren't guaranteed to match, the
+ * rotation can cause letterboxing. The forced rotation is triggered as soon as app opens to
+ * camera and is removed once camera is closed.
+ *
+ *
Force rotation is followed by the "Refresh" of the activity by going through "resumed ->
+ * ... -> stopped -> ... -> resumed" cycle (by default) or "resumed -> paused -> resumed" cycle
+ * (if overridden, see {@link #PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE} for context).
+ * This allows to clear cached values in apps (e.g. display or camera rotation) that influence
+ * camera preview and can lead to sideways or stretching issues persisting even after force
+ * rotation.
+ *
+ *
The camera compatibility can be enabled by device manufacturers on the displays that have
+ * ignoreOrientationRequest display setting enabled (enables compatibility mode for fixed
+ * orientation, see Enhanced letterboxing
+ * for more details).
+ *
+ *
With this property set to {@code true} or unset, the system may "refresh" activity after
+ * the force rotation treatment. Device manufacturers can exclude packages from the "refresh"
+ * using their discretion to improve display compatibility.
+ *
+ *
With this property set to {@code false}, the system will not "refresh" activity after the
+ * force rotation treatment.
+ *
+ *
+ *
+ * @hide
+ */
+ // TODO(b/263984287): Make this public API.
+ String PROPERTY_CAMERA_COMPAT_ALLOW_REFRESH =
+ "android.window.PROPERTY_CAMERA_COMPAT_ALLOW_REFRESH";
+
+ /**
+ * Application level {@link android.content.pm.PackageManager.Property PackageManager
+ * .Property} for an app to inform the system that the activity should be or shouldn't be
+ * "refreshed" after the camera compatibility force rotation treatment using "paused ->
+ * resumed" cycle rather than "stopped -> resumed".
+ *
+ *
The camera compatibility treatment aligns orientations of portrait app window and natural
+ * orientation of the device and set opposite to natural orientation for a landscape app
+ * window. Mismatch between them can lead to camera issues like sideways or stretched
+ * viewfinder since this is one of the strongest assumptions that apps make when they implement
+ * camera previews. Since app and natural display orientations aren't guaranteed to match, the
+ * rotation can cause letterboxing. The forced rotation is triggered as soon as app opens to
+ * camera and is removed once camera is closed.
+ *
+ *
Force rotation is followed by the "Refresh" of the activity by going through "resumed ->
+ * ... -> stopped -> ... -> resumed" cycle (by default) or "resumed -> paused -> resumed" cycle
+ * (if overridden by device manufacturers or using this property). This allows to clear cached
+ * values in apps (e.g., display or camera rotation) that influence camera preview and can lead
+ * to sideways or stretching issues persisting even after force rotation.
+ *
+ *
The camera compatibility can be enabled by device manufacturers on the displays that have
+ * ignoreOrientationRequest display setting enabled (enables compatibility mode for fixed
+ * orientation, see Enhanced letterboxing
+ * for more details).
+ *
+ *
Device manufacturers can override packages to "refresh" via "resumed -> paused -> resumed"
+ * cycle using their discretion to improve display compatibility.
+ *
+ *
With this property set to {@code true}, the system will "refresh" activity after the
+ * force rotation treatment using "resumed -> paused -> resumed" cycle.
+ *
+ *
With this property set to {@code false}, the system will not "refresh" activity after the
+ * force rotation treatment using "resumed -> paused -> resumed" cycle even if the device
+ * manufacturer adds the corresponding override.
+ *
+ *
+ *
+ * @hide
+ */
+ // TODO(b/263984287): Make this public API.
+ String PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE =
+ "android.window.PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE";
+
+ /**
+ * Application level {@link android.content.pm.PackageManager.Property PackageManager
+ * .Property} for an app to inform the system that the app should be excluded from the
+ * compatibility override for orientation set by the device manufacturer.
+ *
+ *
With this property set to {@code true} or unset, device manufacturers can override
+ * orientation for the app using their discretion to improve display compatibility.
+ *
+ *
With this property set to {@code false}, device manufactured per-app override for
+ * orientation won't be applied.
+ *
+ *
+ *
+ * @hide
+ */
+ // TODO(b/263984287): Make this public API.
+ String PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE =
+ "android.window.PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE";
+
+ /**
+ * Application level {@link android.content.pm.PackageManager.Property PackageManager
+ * .Property} for an app to inform the system that the app should be opted-out from the
+ * compatibility override that fixes display orientation to landscape natural orientation when
+ * an activity is fullscreen.
+ *
+ *
When this compat override is enabled and while display is fixed to the landscape natural
+ * orientation, the orientation requested by the activity will be still respected by bounds
+ * resolution logic. For instance, if an activity requests portrait orientation, then activity
+ * will appear in the letterbox mode for fixed orientation with the display rotated to the
+ * lanscape natural orientation.
+ *
+ *
The treatment is disabled by default but device manufacturers can enable the treatment
+ * using their discretion to improve display compatibility on the displays that have
+ * ignoreOrientationRequest display setting enabled (enables compatibility mode for fixed
+ * orientation, see Enhanced letterboxing
+ * for more details).
+ *
+ *
With this property set to {@code true} or unset, the system wiil use landscape display
+ * orientation when the following conditions are met:
+ *
+ *
Natural orientation of the display is landscape
+ *
ignoreOrientationRequest display setting is enabled
+ *
Activity is fullscreen.
+ *
Device manufacturer enabled the treatment.
+ *
+ *
+ *
With this property set to {@code false}, device manufactured per-app override for
+ * display orientation won't be applied.
+ *
+ *
+ *
+ * @hide
+ */
+ // TODO(b/263984287): Make this public API.
+ String PROPERTY_COMPAT_ALLOW_DISPLAY_ORIENTATION_OVERRIDE =
+ "android.window.PROPERTY_COMPAT_ALLOW_DISPLAY_ORIENTATION_OVERRIDE";
+
/**
* @hide
*/
@@ -2442,6 +2759,15 @@ public interface WindowManager extends ViewManager {
* {@hide} */
public static final int PRIVATE_FLAG_SYSTEM_ERROR = 0x00000100;
+ /**
+ * Flag to indicate that the view hierarchy of the window can only be measured when
+ * necessary. If a window size can be known by the LayoutParams, we can use the size to
+ * relayout window, and we don't have to measure the view hierarchy before laying out the
+ * views. This reduces the chances to perform measure.
+ * {@hide}
+ */
+ public static final int PRIVATE_FLAG_OPTIMIZE_MEASURE = 0x00000200;
+
/**
* Flag that prevents the wallpaper behind the current window from receiving touch events.
*
@@ -2644,6 +2970,7 @@ public interface WindowManager extends ViewManager {
PRIVATE_FLAG_NO_MOVE_ANIMATION,
PRIVATE_FLAG_COMPATIBLE_WINDOW,
PRIVATE_FLAG_SYSTEM_ERROR,
+ PRIVATE_FLAG_OPTIMIZE_MEASURE,
PRIVATE_FLAG_DISABLE_WALLPAPER_TOUCH_EVENTS,
PRIVATE_FLAG_FORCE_SHOW_STATUS_BAR,
PRIVATE_FLAG_LAYOUT_SIZE_EXTENDED_BY_CUTOUT,
@@ -2703,6 +3030,10 @@ public interface WindowManager extends ViewManager {
mask = PRIVATE_FLAG_SYSTEM_ERROR,
equals = PRIVATE_FLAG_SYSTEM_ERROR,
name = "SYSTEM_ERROR"),
+ @ViewDebug.FlagToString(
+ mask = PRIVATE_FLAG_OPTIMIZE_MEASURE,
+ equals = PRIVATE_FLAG_OPTIMIZE_MEASURE,
+ name = "OPTIMIZE_MEASURE"),
@ViewDebug.FlagToString(
mask = PRIVATE_FLAG_DISABLE_WALLPAPER_TOUCH_EVENTS,
equals = PRIVATE_FLAG_DISABLE_WALLPAPER_TOUCH_EVENTS,
diff --git a/core/java/android/view/contentcapture/ContentCaptureContext.java b/core/java/android/view/contentcapture/ContentCaptureContext.java
index 59b5286f6fc54998af960977312052991c98fe83..34c7b8b9889f5e9306afd9c7c92f890b4a422e41 100644
--- a/core/java/android/view/contentcapture/ContentCaptureContext.java
+++ b/core/java/android/view/contentcapture/ContentCaptureContext.java
@@ -82,11 +82,19 @@ public final class ContentCaptureContext implements Parcelable {
@SystemApi
public static final int FLAG_RECONNECTED = 0x4;
+ /**
+ * Flag used to disable flush when receiving a VIEW_TREE_APPEARING event.
+ *
+ * @hide
+ */
+ public static final int FLAG_DISABLED_FLUSH_FOR_VIEW_TREE_APPEARING = 1 << 3;
+
/** @hide */
@IntDef(flag = true, prefix = { "FLAG_" }, value = {
FLAG_DISABLED_BY_APP,
FLAG_DISABLED_BY_FLAG_SECURE,
- FLAG_RECONNECTED
+ FLAG_RECONNECTED,
+ FLAG_DISABLED_FLUSH_FOR_VIEW_TREE_APPEARING
})
@Retention(RetentionPolicy.SOURCE)
@interface ContextCreationFlags{}
@@ -252,7 +260,8 @@ public final class ContentCaptureContext implements Parcelable {
* Gets the flags associated with this context.
*
* @return any combination of {@link #FLAG_DISABLED_BY_FLAG_SECURE},
- * {@link #FLAG_DISABLED_BY_APP} and {@link #FLAG_RECONNECTED}.
+ * {@link #FLAG_DISABLED_BY_APP}, {@link #FLAG_RECONNECTED} and {@link
+ * #FLAG_DISABLED_FLUSH_FOR_VIEW_TREE_APPEARING}.
*
* @hide
*/
diff --git a/core/java/android/view/contentcapture/ContentCaptureManager.java b/core/java/android/view/contentcapture/ContentCaptureManager.java
index d067d4bc366b1ccf0b70ec5d25dfa85df272cf00..668351b949c1b5def308c1287f7fcf00f0eebf4e 100644
--- a/core/java/android/view/contentcapture/ContentCaptureManager.java
+++ b/core/java/android/view/contentcapture/ContentCaptureManager.java
@@ -51,6 +51,7 @@ import android.view.WindowManager;
import android.view.contentcapture.ContentCaptureSession.FlushReason;
import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.SyncResultReceiver;
import java.io.PrintWriter;
@@ -66,8 +67,7 @@ import java.util.concurrent.Executor;
import java.util.function.Consumer;
/**
- *
The {@link ContentCaptureManager} provides additional ways for for apps to
- * integrate with the content capture subsystem.
+ *
Provides additional ways for apps to integrate with the content capture subsystem.
*
*
Content capture provides real-time, continuous capture of application activity, display and
* events to an intelligence service that is provided by the Android system. The intelligence
@@ -344,6 +344,14 @@ public final class ContentCaptureManager {
*/
public static final String DEVICE_CONFIG_PROPERTY_IDLE_UNBIND_TIMEOUT = "idle_unbind_timeout";
+ /**
+ * Sets to disable flush when receiving a VIEW_TREE_APPEARING event.
+ *
+ * @hide
+ */
+ public static final String DEVICE_CONFIG_PROPERTY_DISABLE_FLUSH_FOR_VIEW_TREE_APPEARING =
+ "disable_flush_for_view_tree_appearing";
+
/** @hide */
@TestApi
public static final int LOGGING_LEVEL_OFF = 0;
@@ -374,6 +382,8 @@ public final class ContentCaptureManager {
public static final int DEFAULT_TEXT_CHANGE_FLUSHING_FREQUENCY_MS = 1_000;
/** @hide */
public static final int DEFAULT_LOG_HISTORY_SIZE = 10;
+ /** @hide */
+ public static final boolean DEFAULT_DISABLE_FLUSH_FOR_VIEW_TREE_APPEARING = false;
private final Object mLock = new Object();
@@ -449,6 +459,7 @@ public final class ContentCaptureManager {
mOptions = Objects.requireNonNull(options, "options cannot be null");
ContentCaptureHelper.setLoggingLevel(mOptions.loggingLevel);
+ setFlushViewTreeAppearingEventDisabled(mOptions.disableFlushForViewTreeAppearing);
if (sVerbose) Log.v(TAG, "Constructor for " + context.getPackageName());
@@ -687,6 +698,38 @@ public final class ContentCaptureManager {
}
}
+ /**
+ * Explicitly sets enable or disable flush for view tree appearing event.
+ *
+ * @hide
+ */
+ @VisibleForTesting
+ public void setFlushViewTreeAppearingEventDisabled(boolean disabled) {
+ if (sDebug) {
+ Log.d(TAG, "setFlushViewTreeAppearingEventDisabled(): setting to " + disabled);
+ }
+
+ synchronized (mLock) {
+ if (disabled) {
+ mFlags |= ContentCaptureContext.FLAG_DISABLED_FLUSH_FOR_VIEW_TREE_APPEARING;
+ } else {
+ mFlags &= ~ContentCaptureContext.FLAG_DISABLED_FLUSH_FOR_VIEW_TREE_APPEARING;
+ }
+ }
+ }
+
+ /**
+ * Gets whether content capture is needed to flush for view tree appearing event.
+ *
+ * @hide
+ */
+ public boolean getFlushViewTreeAppearingEventDisabled() {
+ synchronized (mLock) {
+ return (mFlags & ContentCaptureContext.FLAG_DISABLED_FLUSH_FOR_VIEW_TREE_APPEARING)
+ != 0;
+ }
+ }
+
/**
* Gets whether content capture is enabled for the given user.
*
diff --git a/core/java/android/view/contentcapture/ContentCaptureSession.java b/core/java/android/view/contentcapture/ContentCaptureSession.java
index 2134d819943e31c744c8811eff8b886272601d99..bdec1970eda9f86058765762733326c6697db9e9 100644
--- a/core/java/android/view/contentcapture/ContentCaptureSession.java
+++ b/core/java/android/view/contentcapture/ContentCaptureSession.java
@@ -170,6 +170,12 @@ public abstract class ContentCaptureSession implements AutoCloseable {
public static final int FLUSH_REASON_TEXT_CHANGE_TIMEOUT = 6;
/** @hide */
public static final int FLUSH_REASON_SESSION_CONNECTED = 7;
+ /** @hide */
+ public static final int FLUSH_REASON_FORCE_FLUSH = 8;
+ /** @hide */
+ public static final int FLUSH_REASON_VIEW_TREE_APPEARING = 9;
+ /** @hide */
+ public static final int FLUSH_REASON_VIEW_TREE_APPEARED = 10;
/** @hide */
@IntDef(prefix = { "FLUSH_REASON_" }, value = {
@@ -179,7 +185,10 @@ public abstract class ContentCaptureSession implements AutoCloseable {
FLUSH_REASON_SESSION_FINISHED,
FLUSH_REASON_IDLE_TIMEOUT,
FLUSH_REASON_TEXT_CHANGE_TIMEOUT,
- FLUSH_REASON_SESSION_CONNECTED
+ FLUSH_REASON_SESSION_CONNECTED,
+ FLUSH_REASON_FORCE_FLUSH,
+ FLUSH_REASON_VIEW_TREE_APPEARING,
+ FLUSH_REASON_VIEW_TREE_APPEARED
})
@Retention(RetentionPolicy.SOURCE)
public @interface FlushReason{}
@@ -614,6 +623,12 @@ public abstract class ContentCaptureSession implements AutoCloseable {
return "TEXT_CHANGE";
case FLUSH_REASON_SESSION_CONNECTED:
return "CONNECTED";
+ case FLUSH_REASON_FORCE_FLUSH:
+ return "FORCE_FLUSH";
+ case FLUSH_REASON_VIEW_TREE_APPEARING:
+ return "VIEW_TREE_APPEARING";
+ case FLUSH_REASON_VIEW_TREE_APPEARED:
+ return "VIEW_TREE_APPEARED";
default:
return "UNKOWN-" + reason;
}
diff --git a/core/java/android/view/contentcapture/MainContentCaptureSession.java b/core/java/android/view/contentcapture/MainContentCaptureSession.java
index 1f5e462d71fd81291d1fb5453d495963285eac59..9848acd8dfcc57409dce3e1bcc4b9a696e9050e5 100644
--- a/core/java/android/view/contentcapture/MainContentCaptureSession.java
+++ b/core/java/android/view/contentcapture/MainContentCaptureSession.java
@@ -458,6 +458,12 @@ public final class MainContentCaptureSession extends ContentCaptureSession {
case ContentCaptureEvent.TYPE_SESSION_FINISHED:
flushReason = FLUSH_REASON_SESSION_FINISHED;
break;
+ case ContentCaptureEvent.TYPE_VIEW_TREE_APPEARING:
+ flushReason = FLUSH_REASON_VIEW_TREE_APPEARING;
+ break;
+ case ContentCaptureEvent.TYPE_VIEW_TREE_APPEARED:
+ flushReason = FLUSH_REASON_VIEW_TREE_APPEARED;
+ break;
default:
flushReason = FLUSH_REASON_FULL;
}
@@ -764,7 +770,11 @@ public final class MainContentCaptureSession extends ContentCaptureSession {
/** Public because is also used by ViewRootImpl */
public void notifyViewTreeEvent(int sessionId, boolean started) {
final int type = started ? TYPE_VIEW_TREE_APPEARING : TYPE_VIEW_TREE_APPEARED;
- mHandler.post(() -> sendEvent(new ContentCaptureEvent(sessionId, type), FORCE_FLUSH));
+ final boolean disableFlush = mManager.getFlushViewTreeAppearingEventDisabled();
+
+ mHandler.post(() -> sendEvent(
+ new ContentCaptureEvent(sessionId, type),
+ disableFlush ? !started : FORCE_FLUSH));
}
void notifySessionResumed(int sessionId) {
diff --git a/core/java/android/webkit/WebResourceError.java b/core/java/android/webkit/WebResourceError.java
index 11f1b6f175669b6f2336b97b15d67621495c7d42..4c874892d57633d97a5187d3982474c6347566ae 100644
--- a/core/java/android/webkit/WebResourceError.java
+++ b/core/java/android/webkit/WebResourceError.java
@@ -19,7 +19,7 @@ package android.webkit;
import android.annotation.SystemApi;
/**
- * Encapsulates information about errors occured during loading of web resources. See
+ * Encapsulates information about errors that occurred during loading of web resources. See
* {@link WebViewClient#onReceivedError(WebView, WebResourceRequest, WebResourceError) WebViewClient.onReceivedError(WebView, WebResourceRequest, WebResourceError)}
*/
public abstract class WebResourceError {
diff --git a/core/java/android/window/BackEvent.java b/core/java/android/window/BackEvent.java
index 1024e2e50c3e2f5e106fd68a8aa2c1c82b8074bc..940b133eb16963912f0559e16b7a178f1373126f 100644
--- a/core/java/android/window/BackEvent.java
+++ b/core/java/android/window/BackEvent.java
@@ -18,10 +18,8 @@ package android.window;
import android.annotation.IntDef;
import android.annotation.NonNull;
-import android.annotation.Nullable;
import android.os.Parcel;
import android.os.Parcelable;
-import android.view.RemoteAnimationTarget;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -52,8 +50,6 @@ public class BackEvent implements Parcelable {
@SwipeEdge
private final int mSwipeEdge;
- @Nullable
- private final RemoteAnimationTarget mDepartingAnimationTarget;
/**
* Creates a new {@link BackEvent} instance.
@@ -62,16 +58,12 @@ public class BackEvent implements Parcelable {
* @param touchY Absolute Y location of the touch point of this event.
* @param progress Value between 0 and 1 on how far along the back gesture is.
* @param swipeEdge Indicates which edge the swipe starts from.
- * @param departingAnimationTarget The remote animation target of the departing application
- * window.
*/
- public BackEvent(float touchX, float touchY, float progress, @SwipeEdge int swipeEdge,
- @Nullable RemoteAnimationTarget departingAnimationTarget) {
+ public BackEvent(float touchX, float touchY, float progress, @SwipeEdge int swipeEdge) {
mTouchX = touchX;
mTouchY = touchY;
mProgress = progress;
mSwipeEdge = swipeEdge;
- mDepartingAnimationTarget = departingAnimationTarget;
}
private BackEvent(@NonNull Parcel in) {
@@ -79,7 +71,6 @@ public class BackEvent implements Parcelable {
mTouchY = in.readFloat();
mProgress = in.readFloat();
mSwipeEdge = in.readInt();
- mDepartingAnimationTarget = in.readTypedObject(RemoteAnimationTarget.CREATOR);
}
public static final Creator CREATOR = new Creator() {
@@ -105,11 +96,24 @@ public class BackEvent implements Parcelable {
dest.writeFloat(mTouchY);
dest.writeFloat(mProgress);
dest.writeInt(mSwipeEdge);
- dest.writeTypedObject(mDepartingAnimationTarget, flags);
}
/**
- * Returns a value between 0 and 1 on how far along the back gesture is.
+ * Returns a value between 0 and 1 on how far along the back gesture is. This value is
+ * driven by the horizontal location of the touch point, and should be used as the fraction to
+ * seek the predictive back animation with. Specifically,
+ *
+ *
The progress is 0 when the touch is at the starting edge of the screen (left or right),
+ * and animation should seek to its start state.
+ *
The progress is approximately 1 when the touch is at the opposite side of the screen,
+ * and animation should seek to its end state. Exact end value may vary depending on
+ * screen size.
+ *
+ *
After the gesture finishes in cancel state, this method keeps getting invoked until the
+ * progress value animates back to 0.
+ *
+ * In-between locations are linearly interpolated based on horizontal distance from the starting
+ * edge and smooth clamped to 1 when the distance exceeds a system-wide threshold.
*/
public float getProgress() {
return mProgress;
@@ -136,16 +140,6 @@ public class BackEvent implements Parcelable {
return mSwipeEdge;
}
- /**
- * Returns the {@link RemoteAnimationTarget} of the top departing application window,
- * or {@code null} if the top window should not be moved for the current type of back
- * destination.
- */
- @Nullable
- public RemoteAnimationTarget getDepartingAnimationTarget() {
- return mDepartingAnimationTarget;
- }
-
@Override
public String toString() {
return "BackEvent{"
@@ -153,7 +147,6 @@ public class BackEvent implements Parcelable {
+ ", mTouchY=" + mTouchY
+ ", mProgress=" + mProgress
+ ", mSwipeEdge" + mSwipeEdge
- + ", mDepartingAnimationTarget" + mDepartingAnimationTarget
+ "}";
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/AnimationParams.kt b/core/java/android/window/BackMotionEvent.aidl
similarity index 66%
rename from packages/SystemUI/src/com/android/systemui/keyguard/shared/model/AnimationParams.kt
rename to core/java/android/window/BackMotionEvent.aidl
index 67733e90526837fb9b32200637d14704b583ff80..7c675c35c073ed2c2ff9f3df53d80ac1f1e433df 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/AnimationParams.kt
+++ b/core/java/android/window/BackMotionEvent.aidl
@@ -11,15 +11,12 @@
* 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
+ * limitations under the License.
*/
-package com.android.systemui.keyguard.shared.model
-import kotlin.time.Duration
-import kotlin.time.Duration.Companion.milliseconds
+package android.window;
-/** Animation parameters */
-data class AnimationParams(
- val startTime: Duration = 0.milliseconds,
- val duration: Duration,
-)
+/**
+ * @hide
+ */
+parcelable BackMotionEvent;
diff --git a/core/java/android/window/BackMotionEvent.java b/core/java/android/window/BackMotionEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..8012a1c26bacaf5ffcd71ac70209b505e16272ff
--- /dev/null
+++ b/core/java/android/window/BackMotionEvent.java
@@ -0,0 +1,150 @@
+/*
+ * Copyright (C) 2022 The Android Open Source 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.
+ */
+
+package android.window;
+
+import android.annotation.FloatRange;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.view.RemoteAnimationTarget;
+
+/**
+ * Object used to report back gesture progress. Holds information about a {@link BackEvent} plus
+ * any {@link RemoteAnimationTarget} the gesture manipulates.
+ *
+ * @see BackEvent
+ * @hide
+ */
+public final class BackMotionEvent implements Parcelable {
+ private final float mTouchX;
+ private final float mTouchY;
+ private final float mProgress;
+
+ @BackEvent.SwipeEdge
+ private final int mSwipeEdge;
+ @Nullable
+ private final RemoteAnimationTarget mDepartingAnimationTarget;
+
+ /**
+ * Creates a new {@link BackMotionEvent} instance.
+ *
+ * @param touchX Absolute X location of the touch point of this event.
+ * @param touchY Absolute Y location of the touch point of this event.
+ * @param progress Value between 0 and 1 on how far along the back gesture is.
+ * @param swipeEdge Indicates which edge the swipe starts from.
+ * @param departingAnimationTarget The remote animation target of the departing
+ * application window.
+ */
+ public BackMotionEvent(float touchX, float touchY, float progress,
+ @BackEvent.SwipeEdge int swipeEdge,
+ @Nullable RemoteAnimationTarget departingAnimationTarget) {
+ mTouchX = touchX;
+ mTouchY = touchY;
+ mProgress = progress;
+ mSwipeEdge = swipeEdge;
+ mDepartingAnimationTarget = departingAnimationTarget;
+ }
+
+ private BackMotionEvent(@NonNull Parcel in) {
+ mTouchX = in.readFloat();
+ mTouchY = in.readFloat();
+ mProgress = in.readFloat();
+ mSwipeEdge = in.readInt();
+ mDepartingAnimationTarget = in.readTypedObject(RemoteAnimationTarget.CREATOR);
+ }
+
+ @NonNull
+ public static final Creator CREATOR = new Creator() {
+ @Override
+ public BackMotionEvent createFromParcel(Parcel in) {
+ return new BackMotionEvent(in);
+ }
+
+ @Override
+ public BackMotionEvent[] newArray(int size) {
+ return new BackMotionEvent[size];
+ }
+ };
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(@NonNull Parcel dest, int flags) {
+ dest.writeFloat(mTouchX);
+ dest.writeFloat(mTouchY);
+ dest.writeFloat(mProgress);
+ dest.writeInt(mSwipeEdge);
+ dest.writeTypedObject(mDepartingAnimationTarget, flags);
+ }
+
+ /**
+ * Returns the progress of a {@link BackEvent}.
+ *
+ * @see BackEvent#getProgress()
+ */
+ @FloatRange(from = 0, to = 1)
+ public float getProgress() {
+ return mProgress;
+ }
+
+ /**
+ * Returns the absolute X location of the touch point.
+ */
+ public float getTouchX() {
+ return mTouchX;
+ }
+
+ /**
+ * Returns the absolute Y location of the touch point.
+ */
+ public float getTouchY() {
+ return mTouchY;
+ }
+
+ /**
+ * Returns the screen edge that the swipe starts from.
+ */
+ @BackEvent.SwipeEdge
+ public int getSwipeEdge() {
+ return mSwipeEdge;
+ }
+
+ /**
+ * Returns the {@link RemoteAnimationTarget} of the top departing application window,
+ * or {@code null} if the top window should not be moved for the current type of back
+ * destination.
+ */
+ @Nullable
+ public RemoteAnimationTarget getDepartingAnimationTarget() {
+ return mDepartingAnimationTarget;
+ }
+
+ @Override
+ public String toString() {
+ return "BackMotionEvent{"
+ + "mTouchX=" + mTouchX
+ + ", mTouchY=" + mTouchY
+ + ", mProgress=" + mProgress
+ + ", mSwipeEdge" + mSwipeEdge
+ + ", mDepartingAnimationTarget" + mDepartingAnimationTarget
+ + "}";
+ }
+}
diff --git a/core/java/android/window/BackProgressAnimator.java b/core/java/android/window/BackProgressAnimator.java
index dd4385c8f50c3c8827a0e15f0496dbbe1b1fe869..b22f967e9e2a9eb19d39fe64d7945bea8acabfbc 100644
--- a/core/java/android/window/BackProgressAnimator.java
+++ b/core/java/android/window/BackProgressAnimator.java
@@ -16,8 +16,10 @@
package android.window;
+import android.annotation.NonNull;
import android.util.FloatProperty;
+import com.android.internal.dynamicanimation.animation.DynamicAnimation;
import com.android.internal.dynamicanimation.animation.SpringAnimation;
import com.android.internal.dynamicanimation.animation.SpringForce;
@@ -40,7 +42,7 @@ public class BackProgressAnimator {
private final SpringAnimation mSpring;
private ProgressCallback mCallback;
private float mProgress = 0;
- private BackEvent mLastBackEvent;
+ private BackMotionEvent mLastBackEvent;
private boolean mStarted = false;
private void setProgress(float progress) {
@@ -82,9 +84,9 @@ public class BackProgressAnimator {
/**
* Sets a new target position for the back progress.
*
- * @param event the {@link BackEvent} containing the latest target progress.
+ * @param event the {@link BackMotionEvent} containing the latest target progress.
*/
- public void onBackProgressed(BackEvent event) {
+ public void onBackProgressed(BackMotionEvent event) {
if (!mStarted) {
return;
}
@@ -95,11 +97,11 @@ public class BackProgressAnimator {
/**
* Starts the back progress animation.
*
- * @param event the {@link BackEvent} that started the gesture.
+ * @param event the {@link BackMotionEvent} that started the gesture.
* @param callback the back callback to invoke for the gesture. It will receive back progress
* dispatches as the progress animation updates.
*/
- public void onBackStarted(BackEvent event, ProgressCallback callback) {
+ public void onBackStarted(BackMotionEvent event, ProgressCallback callback) {
reset();
mLastBackEvent = event;
mCallback = callback;
@@ -123,14 +125,34 @@ public class BackProgressAnimator {
mProgress = 0;
}
+ /**
+ * Animate the back progress animation from current progress to start position.
+ * This should be called when back is cancelled.
+ *
+ * @param finishCallback the callback to be invoked when the progress is reach to 0.
+ */
+ public void onBackCancelled(@NonNull Runnable finishCallback) {
+ final DynamicAnimation.OnAnimationEndListener listener =
+ new DynamicAnimation.OnAnimationEndListener() {
+ @Override
+ public void onAnimationEnd(DynamicAnimation animation, boolean canceled, float value,
+ float velocity) {
+ mSpring.removeEndListener(this);
+ finishCallback.run();
+ reset();
+ }
+ };
+ mSpring.addEndListener(listener);
+ mSpring.animateToFinalPosition(0);
+ }
+
private void updateProgressValue(float progress) {
if (mLastBackEvent == null || mCallback == null || !mStarted) {
return;
}
mCallback.onProgressUpdate(
new BackEvent(mLastBackEvent.getTouchX(), mLastBackEvent.getTouchY(),
- progress / SCALE_FACTOR, mLastBackEvent.getSwipeEdge(),
- mLastBackEvent.getDepartingAnimationTarget()));
+ progress / SCALE_FACTOR, mLastBackEvent.getSwipeEdge()));
}
}
diff --git a/core/java/android/window/IOnBackInvokedCallback.aidl b/core/java/android/window/IOnBackInvokedCallback.aidl
index 6af8ddda3a62e30ca24d4aa301c05a8e4cc16279..159c0e8afed00b4378528fcd10a8655e67295a33 100644
--- a/core/java/android/window/IOnBackInvokedCallback.aidl
+++ b/core/java/android/window/IOnBackInvokedCallback.aidl
@@ -17,7 +17,7 @@
package android.window;
-import android.window.BackEvent;
+import android.window.BackMotionEvent;
/**
* Interface that wraps a {@link OnBackInvokedCallback} object, to be stored in window manager
@@ -30,18 +30,19 @@ oneway interface IOnBackInvokedCallback {
* Called when a back gesture has been started, or back button has been pressed down.
* Wraps {@link OnBackInvokedCallback#onBackStarted(BackEvent)}.
*
- * @param backEvent The {@link BackEvent} containing information about the touch or button press.
+ * @param backMotionEvent The {@link BackMotionEvent} containing information about the touch
+ * or button press.
*/
- void onBackStarted(in BackEvent backEvent);
+ void onBackStarted(in BackMotionEvent backMotionEvent);
/**
* Called on back gesture progress.
* Wraps {@link OnBackInvokedCallback#onBackProgressed(BackEvent)}.
*
- * @param backEvent The {@link BackEvent} containing information about the latest touch point
- * and the progress that the back animation should seek to.
+ * @param backMotionEvent The {@link BackMotionEvent} containing information about the latest
+ * touch point and the progress that the back animation should seek to.
*/
- void onBackProgressed(in BackEvent backEvent);
+ void onBackProgressed(in BackMotionEvent backMotionEvent);
/**
* Called when a back gesture or back button press has been cancelled.
diff --git a/core/java/android/window/ITaskOrganizerController.aidl b/core/java/android/window/ITaskOrganizerController.aidl
index e6bb1f64ad861b09eca164fa7a5c9d7f746422ee..e10f7c838c744241e13adb5b677c5d5e9f3485e3 100644
--- a/core/java/android/window/ITaskOrganizerController.aidl
+++ b/core/java/android/window/ITaskOrganizerController.aidl
@@ -40,7 +40,8 @@ interface ITaskOrganizerController {
void unregisterTaskOrganizer(ITaskOrganizer organizer);
/** Creates a persistent root task in WM for a particular windowing-mode. */
- void createRootTask(int displayId, int windowingMode, IBinder launchCookie);
+ void createRootTask(int displayId, int windowingMode, IBinder launchCookie,
+ boolean removeWithTaskOrganizer);
/** Deletes a persistent root task in WM */
boolean deleteRootTask(in WindowContainerToken task);
@@ -72,11 +73,17 @@ interface ITaskOrganizerController {
/**
* Controls whether ignore orientation request logic in {@link
- * com.android.server.wm.DisplayArea} is disabled at runtime.
+ * com.android.server.wm.DisplayArea} is disabled at runtime and how to optionally map some
+ * requested orientations to others.
*
* @param isDisabled when {@code true}, the system always ignores the value of {@link
* com.android.server.wm.DisplayArea#getIgnoreOrientationRequest} and app
* requested orientation is respected.
+ * @param fromOrientations The orientations we want to map to the correspondent orientations
+ * in toOrientation.
+ * @param toOrientations The orientations we map to the ones in fromOrientations at the same
+ * index
*/
- void setIsIgnoreOrientationRequestDisabled(boolean isDisabled);
+ void setOrientationRequestPolicy(boolean isIgnoreOrientationRequestDisabled,
+ in int[] fromOrientations, in int[] toOrientations);
}
diff --git a/core/java/android/window/ImeOnBackInvokedDispatcher.java b/core/java/android/window/ImeOnBackInvokedDispatcher.java
index a0bd7f70ca585747482e5c80be62631e2eeec44e..34b75a4788c40c9746df7e869d2c6f44ede00776 100644
--- a/core/java/android/window/ImeOnBackInvokedDispatcher.java
+++ b/core/java/android/window/ImeOnBackInvokedDispatcher.java
@@ -211,6 +211,12 @@ public class ImeOnBackInvokedDispatcher implements OnBackInvokedDispatcher, Parc
IOnBackInvokedCallback getIOnBackInvokedCallback() {
return mIOnBackInvokedCallback;
}
+
+ @Override
+ public String toString() {
+ return "ImeCallback=ImeOnBackInvokedCallback@" + mId
+ + " Callback=" + mIOnBackInvokedCallback;
+ }
}
/**
diff --git a/core/java/android/window/ProxyOnBackInvokedDispatcher.java b/core/java/android/window/ProxyOnBackInvokedDispatcher.java
index 49acde9dc2953201d20bfa552a91852bebb28ba7..eb3bcaec003a380410c416363a9b813f97759fd1 100644
--- a/core/java/android/window/ProxyOnBackInvokedDispatcher.java
+++ b/core/java/android/window/ProxyOnBackInvokedDispatcher.java
@@ -179,16 +179,7 @@ public class ProxyOnBackInvokedDispatcher implements OnBackInvokedDispatcher {
return;
}
clearCallbacksOnDispatcher();
- if (actualDispatcher instanceof ProxyOnBackInvokedDispatcher) {
- // We don't want to nest ProxyDispatchers, so if we are given on, we unwrap its
- // actual dispatcher.
- // This can happen when an Activity is recreated but the Window is preserved (e.g.
- // when going from split-screen back to single screen)
- mActualDispatcher =
- ((ProxyOnBackInvokedDispatcher) actualDispatcher).mActualDispatcher;
- } else {
- mActualDispatcher = actualDispatcher;
- }
+ mActualDispatcher = actualDispatcher;
transferCallbacksToDispatcher();
}
}
diff --git a/core/java/android/window/TaskFragmentAnimationParams.java b/core/java/android/window/TaskFragmentAnimationParams.java
index 12ad914986264d38f55cebd58c6cbec0a436122a..c8f632707966b03cefe6c163f646d77c6cd2a38c 100644
--- a/core/java/android/window/TaskFragmentAnimationParams.java
+++ b/core/java/android/window/TaskFragmentAnimationParams.java
@@ -33,6 +33,13 @@ public final class TaskFragmentAnimationParams implements Parcelable {
public static final TaskFragmentAnimationParams DEFAULT =
new TaskFragmentAnimationParams.Builder().build();
+ /**
+ * The default value for animation background color, which means to use the theme window
+ * background color.
+ */
+ @ColorInt
+ public static final int DEFAULT_ANIMATION_BACKGROUND_COLOR = 0;
+
@ColorInt
private final int mAnimationBackgroundColor;
@@ -104,12 +111,13 @@ public final class TaskFragmentAnimationParams implements Parcelable {
public static final class Builder {
@ColorInt
- private int mAnimationBackgroundColor = 0;
+ private int mAnimationBackgroundColor = DEFAULT_ANIMATION_BACKGROUND_COLOR;
/**
* Sets the {@link ColorInt} to use for the background during the animation with this
* TaskFragment if the animation requires a background. The default value is
- * {@code 0}, which is to use the theme window background.
+ * {@link #DEFAULT_ANIMATION_BACKGROUND_COLOR}, which is to use the theme window background
+ * color.
*
* @param color a packed color int, {@code AARRGGBB}, for the animation background color.
* @return this {@link Builder}.
diff --git a/core/java/android/window/TaskFragmentCreationParams.java b/core/java/android/window/TaskFragmentCreationParams.java
index c9ddf92d37407cbc90dd0e7a8536bd1d03e8ca3e..203d79aad7a37327b83893d9610064387133557e 100644
--- a/core/java/android/window/TaskFragmentCreationParams.java
+++ b/core/java/android/window/TaskFragmentCreationParams.java
@@ -71,20 +71,42 @@ public final class TaskFragmentCreationParams implements Parcelable {
*
* This is needed in case we need to launch a placeholder Activity to split below a transparent
* always-expand Activity.
+ *
+ * This should not be used with {@link #mPairedActivityToken}.
*/
@Nullable
private final IBinder mPairedPrimaryFragmentToken;
+ /**
+ * The Activity token to place the new TaskFragment on top of.
+ * When it is set, the new TaskFragment will be positioned right above the target Activity.
+ * Otherwise, the new TaskFragment will be positioned on the top of the Task by default.
+ *
+ * This is needed in case we need to place an Activity into TaskFragment to launch placeholder
+ * below a transparent always-expand Activity, or when there is another Intent being started in
+ * a TaskFragment above.
+ *
+ * This should not be used with {@link #mPairedPrimaryFragmentToken}.
+ */
+ @Nullable
+ private final IBinder mPairedActivityToken;
+
private TaskFragmentCreationParams(
@NonNull TaskFragmentOrganizerToken organizer, @NonNull IBinder fragmentToken,
@NonNull IBinder ownerToken, @NonNull Rect initialBounds,
- @WindowingMode int windowingMode, @Nullable IBinder pairedPrimaryFragmentToken) {
+ @WindowingMode int windowingMode, @Nullable IBinder pairedPrimaryFragmentToken,
+ @Nullable IBinder pairedActivityToken) {
+ if (pairedPrimaryFragmentToken != null && pairedActivityToken != null) {
+ throw new IllegalArgumentException("pairedPrimaryFragmentToken and"
+ + " pairedActivityToken should not be set at the same time.");
+ }
mOrganizer = organizer;
mFragmentToken = fragmentToken;
mOwnerToken = ownerToken;
mInitialBounds.set(initialBounds);
mWindowingMode = windowingMode;
mPairedPrimaryFragmentToken = pairedPrimaryFragmentToken;
+ mPairedActivityToken = pairedActivityToken;
}
@NonNull
@@ -121,6 +143,15 @@ public final class TaskFragmentCreationParams implements Parcelable {
return mPairedPrimaryFragmentToken;
}
+ /**
+ * TODO(b/232476698): remove the hide with adding CTS for this in next release.
+ * @hide
+ */
+ @Nullable
+ public IBinder getPairedActivityToken() {
+ return mPairedActivityToken;
+ }
+
private TaskFragmentCreationParams(Parcel in) {
mOrganizer = TaskFragmentOrganizerToken.CREATOR.createFromParcel(in);
mFragmentToken = in.readStrongBinder();
@@ -128,6 +159,7 @@ public final class TaskFragmentCreationParams implements Parcelable {
mInitialBounds.readFromParcel(in);
mWindowingMode = in.readInt();
mPairedPrimaryFragmentToken = in.readStrongBinder();
+ mPairedActivityToken = in.readStrongBinder();
}
/** @hide */
@@ -139,6 +171,7 @@ public final class TaskFragmentCreationParams implements Parcelable {
mInitialBounds.writeToParcel(dest, flags);
dest.writeInt(mWindowingMode);
dest.writeStrongBinder(mPairedPrimaryFragmentToken);
+ dest.writeStrongBinder(mPairedActivityToken);
}
@NonNull
@@ -164,6 +197,7 @@ public final class TaskFragmentCreationParams implements Parcelable {
+ " initialBounds=" + mInitialBounds
+ " windowingMode=" + mWindowingMode
+ " pairedFragmentToken=" + mPairedPrimaryFragmentToken
+ + " pairedActivityToken=" + mPairedActivityToken
+ "}";
}
@@ -194,6 +228,9 @@ public final class TaskFragmentCreationParams implements Parcelable {
@Nullable
private IBinder mPairedPrimaryFragmentToken;
+ @Nullable
+ private IBinder mPairedActivityToken;
+
public Builder(@NonNull TaskFragmentOrganizerToken organizer,
@NonNull IBinder fragmentToken, @NonNull IBinder ownerToken) {
mOrganizer = organizer;
@@ -224,6 +261,8 @@ public final class TaskFragmentCreationParams implements Parcelable {
* This is needed in case we need to launch a placeholder Activity to split below a
* transparent always-expand Activity.
*
+ * This should not be used with {@link #setPairedActivityToken}.
+ *
* TODO(b/232476698): remove the hide with adding CTS for this in next release.
* @hide
*/
@@ -233,11 +272,32 @@ public final class TaskFragmentCreationParams implements Parcelable {
return this;
}
+ /**
+ * Sets the Activity token to place the new TaskFragment on top of.
+ * When it is set, the new TaskFragment will be positioned right above the target Activity.
+ * Otherwise, the new TaskFragment will be positioned on the top of the Task by default.
+ *
+ * This is needed in case we need to place an Activity into TaskFragment to launch
+ * placeholder below a transparent always-expand Activity, or when there is another Intent
+ * being started in a TaskFragment above.
+ *
+ * This should not be used with {@link #setPairedPrimaryFragmentToken}.
+ *
+ * TODO(b/232476698): remove the hide with adding CTS for this in next release.
+ * @hide
+ */
+ @NonNull
+ public Builder setPairedActivityToken(@Nullable IBinder activityToken) {
+ mPairedActivityToken = activityToken;
+ return this;
+ }
+
/** Constructs the options to create TaskFragment with. */
@NonNull
public TaskFragmentCreationParams build() {
return new TaskFragmentCreationParams(mOrganizer, mFragmentToken, mOwnerToken,
- mInitialBounds, mWindowingMode, mPairedPrimaryFragmentToken);
+ mInitialBounds, mWindowingMode, mPairedPrimaryFragmentToken,
+ mPairedActivityToken);
}
}
}
diff --git a/core/java/android/window/TaskOrganizer.java b/core/java/android/window/TaskOrganizer.java
index bffd4e437dfac18f8deca7c87e28da867d2784c1..3aa9941d24b79f895948ce7a06f20e2a7586074f 100644
--- a/core/java/android/window/TaskOrganizer.java
+++ b/core/java/android/window/TaskOrganizer.java
@@ -152,17 +152,33 @@ public class TaskOrganizer extends WindowOrganizer {
* @param windowingMode Windowing mode to put the root task in.
* @param launchCookie Launch cookie to associate with the task so that is can be identified
* when the {@link ITaskOrganizer#onTaskAppeared} callback is called.
+ * @param removeWithTaskOrganizer True if this task should be removed when organizer destroyed.
+ * @hide
*/
@RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS)
- @Nullable
- public void createRootTask(int displayId, int windowingMode, @Nullable IBinder launchCookie) {
+ public void createRootTask(int displayId, int windowingMode, @Nullable IBinder launchCookie,
+ boolean removeWithTaskOrganizer) {
try {
- mTaskOrganizerController.createRootTask(displayId, windowingMode, launchCookie);
+ mTaskOrganizerController.createRootTask(displayId, windowingMode, launchCookie,
+ removeWithTaskOrganizer);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
}
+ /**
+ * Creates a persistent root task in WM for a particular windowing-mode.
+ * @param displayId The display to create the root task on.
+ * @param windowingMode Windowing mode to put the root task in.
+ * @param launchCookie Launch cookie to associate with the task so that is can be identified
+ * when the {@link ITaskOrganizer#onTaskAppeared} callback is called.
+ */
+ @RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS)
+ @Nullable
+ public void createRootTask(int displayId, int windowingMode, @Nullable IBinder launchCookie) {
+ createRootTask(displayId, windowingMode, launchCookie, false /* removeWithTaskOrganizer */);
+ }
+
/** Deletes a persistent root task in WM */
@RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS)
public boolean deleteRootTask(@NonNull WindowContainerToken task) {
@@ -254,17 +270,24 @@ public class TaskOrganizer extends WindowOrganizer {
/**
* Controls whether ignore orientation request logic in {@link
- * com.android.server.wm.DisplayArea} is disabled at runtime.
+ * com.android.server.wm.DisplayArea} is disabled at runtime and how to optionally map some
+ * requested orientation to others.
*
- * @param isDisabled when {@code true}, the system always ignores the value of {@link
- * com.android.server.wm.DisplayArea#getIgnoreOrientationRequest} and app
- * requested orientation is respected.
+ * @param isIgnoreOrientationRequestDisabled when {@code true}, the system always ignores the
+ * value of {@link com.android.server.wm.DisplayArea#getIgnoreOrientationRequest}
+ * and app requested orientation is respected.
+ * @param fromOrientations The orientations we want to map to the correspondent orientations
+ * in toOrientation.
+ * @param toOrientations The orientations we map to the ones in fromOrientations at the same
+ * index
* @hide
*/
@RequiresPermission(android.Manifest.permission.MANAGE_ACTIVITY_TASKS)
- public void setIsIgnoreOrientationRequestDisabled(boolean isDisabled) {
+ public void setOrientationRequestPolicy(boolean isIgnoreOrientationRequestDisabled,
+ @Nullable int[] fromOrientations, @Nullable int[] toOrientations) {
try {
- mTaskOrganizerController.setIsIgnoreOrientationRequestDisabled(isDisabled);
+ mTaskOrganizerController.setOrientationRequestPolicy(isIgnoreOrientationRequestDisabled,
+ fromOrientations, toOrientations);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
diff --git a/core/java/android/window/WindowContainerTransaction.java b/core/java/android/window/WindowContainerTransaction.java
index 9aba5a49129575d354ffa7c59281e07fd39b81ea..257c225e3386e232e8739350b8c0c0c08df3c869 100644
--- a/core/java/android/window/WindowContainerTransaction.java
+++ b/core/java/android/window/WindowContainerTransaction.java
@@ -121,6 +121,19 @@ public final class WindowContainerTransaction implements Parcelable {
return this;
}
+ /**
+ * Sets the densityDpi value in the configuration for the given container.
+ * @hide
+ */
+ @NonNull
+ public WindowContainerTransaction setDensityDpi(@NonNull WindowContainerToken container,
+ int densityDpi) {
+ Change chg = getOrCreateChange(container.asBinder());
+ chg.mConfiguration.densityDpi = densityDpi;
+ chg.mConfigSetMask |= ActivityInfo.CONFIG_DENSITY;
+ return this;
+ }
+
/**
* Notify {@link com.android.server.wm.PinnedTaskController} that the picture-in-picture task
* has finished the enter animation with the given bounds.
diff --git a/core/java/android/window/WindowOnBackInvokedDispatcher.java b/core/java/android/window/WindowOnBackInvokedDispatcher.java
index fda39c14dac74c4af23c9d5825456a80af8517aa..caec4bca9469b1d76e9de995b0852b3e33577ba0 100644
--- a/core/java/android/window/WindowOnBackInvokedDispatcher.java
+++ b/core/java/android/window/WindowOnBackInvokedDispatcher.java
@@ -27,6 +27,7 @@ import android.util.Log;
import android.view.IWindow;
import android.view.IWindowSession;
+import java.io.PrintWriter;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.HashMap;
@@ -221,6 +222,26 @@ public class WindowOnBackInvokedDispatcher implements OnBackInvokedDispatcher {
@NonNull
private static final BackProgressAnimator mProgressAnimator = new BackProgressAnimator();
+ /**
+ * Dump information about this WindowOnBackInvokedDispatcher
+ * @param prefix the prefix that will be prepended to each line of the produced output
+ * @param writer the writer that will receive the resulting text
+ */
+ public void dump(String prefix, PrintWriter writer) {
+ String innerPrefix = prefix + " ";
+ writer.println(prefix + "WindowOnBackDispatcher:");
+ if (mAllCallbacks.isEmpty()) {
+ writer.println(prefix + "");
+ return;
+ }
+
+ writer.println(innerPrefix + "Top Callback: " + getTopCallback());
+ writer.println(innerPrefix + "Callbacks: ");
+ mAllCallbacks.forEach((callback, priority) -> {
+ writer.println(innerPrefix + " Callback: " + callback + " Priority=" + priority);
+ });
+ }
+
static class OnBackInvokedCallbackWrapper extends IOnBackInvokedCallback.Stub {
private final WeakReference mCallback;
@@ -229,19 +250,21 @@ public class WindowOnBackInvokedDispatcher implements OnBackInvokedDispatcher {
}
@Override
- public void onBackStarted(BackEvent backEvent) {
+ public void onBackStarted(BackMotionEvent backEvent) {
Handler.getMain().post(() -> {
final OnBackAnimationCallback callback = getBackAnimationCallback();
if (callback != null) {
mProgressAnimator.onBackStarted(backEvent, event ->
callback.onBackProgressed(event));
- callback.onBackStarted(backEvent);
+ callback.onBackStarted(new BackEvent(
+ backEvent.getTouchX(), backEvent.getTouchY(),
+ backEvent.getProgress(), backEvent.getSwipeEdge()));
}
});
}
@Override
- public void onBackProgressed(BackEvent backEvent) {
+ public void onBackProgressed(BackMotionEvent backEvent) {
Handler.getMain().post(() -> {
final OnBackAnimationCallback callback = getBackAnimationCallback();
if (callback != null) {
@@ -253,11 +276,12 @@ public class WindowOnBackInvokedDispatcher implements OnBackInvokedDispatcher {
@Override
public void onBackCancelled() {
Handler.getMain().post(() -> {
- mProgressAnimator.reset();
- final OnBackAnimationCallback callback = getBackAnimationCallback();
- if (callback != null) {
- callback.onBackCancelled();
- }
+ mProgressAnimator.onBackCancelled(() -> {
+ final OnBackAnimationCallback callback = getBackAnimationCallback();
+ if (callback != null) {
+ callback.onBackCancelled();
+ }
+ });
});
}
@@ -267,6 +291,7 @@ public class WindowOnBackInvokedDispatcher implements OnBackInvokedDispatcher {
mProgressAnimator.reset();
final OnBackInvokedCallback callback = mCallback.get();
if (callback == null) {
+ Log.d(TAG, "Trying to call onBackInvoked() on a null callback reference.");
return;
}
callback.onBackInvoked();
diff --git a/core/java/android/window/WindowOrganizer.java b/core/java/android/window/WindowOrganizer.java
index 2a80d021abd69a99f10ee7330ce587c3493dbdd0..740fbacbbfcc3215912cf09604923a5446521375 100644
--- a/core/java/android/window/WindowOrganizer.java
+++ b/core/java/android/window/WindowOrganizer.java
@@ -61,9 +61,7 @@ public class WindowOrganizer {
* Apply multiple WindowContainer operations at once.
*
* Note that using this API requires the caller to hold
- * {@link android.Manifest.permission#MANAGE_ACTIVITY_TASKS}, unless the caller is using
- * {@link TaskFragmentOrganizer}, in which case it is allowed to change TaskFragment that is
- * created by itself.
+ * {@link android.Manifest.permission#MANAGE_ACTIVITY_TASKS}.
*
* @param t The transaction to apply.
* @param callback This transaction will use the synchronization scheme described in
@@ -72,8 +70,7 @@ public class WindowOrganizer {
* @return An ID for the sync operation which will later be passed to transactionReady callback.
* This lets the caller differentiate overlapping sync operations.
*/
- @RequiresPermission(value = android.Manifest.permission.MANAGE_ACTIVITY_TASKS,
- conditional = true)
+ @RequiresPermission(value = android.Manifest.permission.MANAGE_ACTIVITY_TASKS)
public int applySyncTransaction(@NonNull WindowContainerTransaction t,
@NonNull WindowContainerTransactionCallback callback) {
try {
diff --git a/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java b/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java
index 43be0312245e8abfd52e00f661938a92d6f7a78e..1b901f5fd09c5d8a0d62fc88ea31723170c81fca 100644
--- a/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java
+++ b/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java
@@ -21,6 +21,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG;
import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;
import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.getTargets;
+import static com.android.internal.os.RoSystemProperties.SUPPORT_ONE_HANDED_MODE;
import static com.android.internal.util.ArrayUtils.convertToLongArray;
import android.accessibilityservice.AccessibilityServiceInfo;
@@ -147,11 +148,13 @@ public class AccessibilityShortcutController {
Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED,
"1" /* Value to enable */, "0" /* Value to disable */,
R.string.color_correction_feature_name));
- featuresMap.put(ONE_HANDED_COMPONENT_NAME,
- new ToggleableFrameworkFeatureInfo(
- Settings.Secure.ONE_HANDED_MODE_ACTIVATED,
- "1" /* Value to enable */, "0" /* Value to disable */,
- R.string.one_handed_mode_feature_name));
+ if (SUPPORT_ONE_HANDED_MODE) {
+ featuresMap.put(ONE_HANDED_COMPONENT_NAME,
+ new ToggleableFrameworkFeatureInfo(
+ Settings.Secure.ONE_HANDED_MODE_ACTIVATED,
+ "1" /* Value to enable */, "0" /* Value to disable */,
+ R.string.one_handed_mode_feature_name));
+ }
featuresMap.put(REDUCE_BRIGHT_COLORS_COMPONENT_NAME,
new ToggleableFrameworkFeatureInfo(
Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED,
diff --git a/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java b/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java
index fc2c8cca9796bc2d53c55567e84038df16f1a135..2d87745fcadc7277c8194284561cbb54f75cd849 100644
--- a/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java
+++ b/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java
@@ -25,6 +25,7 @@ import static com.android.internal.accessibility.AccessibilityShortcutController
import static com.android.internal.accessibility.AccessibilityShortcutController.REDUCE_BRIGHT_COLORS_COMPONENT_NAME;
import static com.android.internal.accessibility.util.AccessibilityUtils.getAccessibilityServiceFragmentType;
import static com.android.internal.accessibility.util.ShortcutUtils.isShortcutContained;
+import static com.android.internal.os.RoSystemProperties.SUPPORT_ONE_HANDED_MODE;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.accessibilityservice.AccessibilityShortcutInfo;
@@ -209,6 +210,7 @@ public final class AccessibilityTargetHelper {
context.getString(R.string.accessibility_magnification_chooser_text),
context.getDrawable(R.drawable.ic_accessibility_magnification),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED);
+ targets.add(magnification);
final ToggleAllowListingFeatureTarget daltonizer =
new ToggleAllowListingFeatureTarget(context,
@@ -219,6 +221,7 @@ public final class AccessibilityTargetHelper {
context.getString(R.string.color_correction_feature_name),
context.getDrawable(R.drawable.ic_accessibility_color_correction),
Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED);
+ targets.add(daltonizer);
final ToggleAllowListingFeatureTarget colorInversion =
new ToggleAllowListingFeatureTarget(context,
@@ -229,16 +232,20 @@ public final class AccessibilityTargetHelper {
context.getString(R.string.color_inversion_feature_name),
context.getDrawable(R.drawable.ic_accessibility_color_inversion),
Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED);
+ targets.add(colorInversion);
- final ToggleAllowListingFeatureTarget oneHandedMode =
- new ToggleAllowListingFeatureTarget(context,
- shortcutType,
- isShortcutContained(context, shortcutType,
- ONE_HANDED_COMPONENT_NAME.flattenToString()),
- ONE_HANDED_COMPONENT_NAME.flattenToString(),
- context.getString(R.string.one_handed_mode_feature_name),
- context.getDrawable(R.drawable.ic_accessibility_one_handed),
- Settings.Secure.ONE_HANDED_MODE_ACTIVATED);
+ if (SUPPORT_ONE_HANDED_MODE) {
+ final ToggleAllowListingFeatureTarget oneHandedMode =
+ new ToggleAllowListingFeatureTarget(context,
+ shortcutType,
+ isShortcutContained(context, shortcutType,
+ ONE_HANDED_COMPONENT_NAME.flattenToString()),
+ ONE_HANDED_COMPONENT_NAME.flattenToString(),
+ context.getString(R.string.one_handed_mode_feature_name),
+ context.getDrawable(R.drawable.ic_accessibility_one_handed),
+ Settings.Secure.ONE_HANDED_MODE_ACTIVATED);
+ targets.add(oneHandedMode);
+ }
final ToggleAllowListingFeatureTarget reduceBrightColors =
new ToggleAllowListingFeatureTarget(context,
@@ -249,11 +256,6 @@ public final class AccessibilityTargetHelper {
context.getString(R.string.reduce_bright_colors_feature_name),
context.getDrawable(R.drawable.ic_accessibility_reduce_bright_colors),
Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED);
-
- targets.add(magnification);
- targets.add(daltonizer);
- targets.add(colorInversion);
- targets.add(oneHandedMode);
targets.add(reduceBrightColors);
return targets;
diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java
index 1fcfe7dd5b6fdb9e26962147382a896f159a9aa2..0a778a6538c34d8bbe97fe452048a9d3f149c0ac 100644
--- a/core/java/com/android/internal/app/ChooserActivity.java
+++ b/core/java/com/android/internal/app/ChooserActivity.java
@@ -21,6 +21,7 @@ import static android.app.admin.DevicePolicyResources.Strings.Core.RESOLVER_CANT
import static android.app.admin.DevicePolicyResources.Strings.Core.RESOLVER_CANT_SHARE_WITH_PERSONAL;
import static android.app.admin.DevicePolicyResources.Strings.Core.RESOLVER_CANT_SHARE_WITH_WORK;
import static android.app.admin.DevicePolicyResources.Strings.Core.RESOLVER_CROSS_PROFILE_BLOCKED_TITLE;
+import static android.content.ContentProvider.getUserIdFromUri;
import static android.stats.devicepolicy.DevicePolicyEnums.RESOLVER_EMPTY_STATE_NO_SHARING_TO_PERSONAL;
import static android.stats.devicepolicy.DevicePolicyEnums.RESOLVER_EMPTY_STATE_NO_SHARING_TO_WORK;
@@ -161,6 +162,7 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.function.Supplier;
+import java.util.stream.Collectors;
/**
* The Chooser Activity handles intent resolution specifically for sharing intents -
@@ -1395,7 +1397,7 @@ public class ChooserActivity extends ResolverActivity implements
ImageView previewThumbnailView = contentPreviewLayout.findViewById(
R.id.content_preview_thumbnail);
- if (previewThumbnail == null) {
+ if (!validForContentPreview(previewThumbnail)) {
previewThumbnailView.setVisibility(View.GONE);
} else {
mPreviewCoord = new ContentPreviewCoordinator(contentPreviewLayout, false);
@@ -1425,6 +1427,10 @@ public class ChooserActivity extends ResolverActivity implements
String action = targetIntent.getAction();
if (Intent.ACTION_SEND.equals(action)) {
Uri uri = targetIntent.getParcelableExtra(Intent.EXTRA_STREAM);
+ if (!validForContentPreview(uri)) {
+ contentPreviewLayout.setVisibility(View.GONE);
+ return contentPreviewLayout;
+ }
imagePreview.findViewById(R.id.content_preview_image_1_large)
.setTransitionName(ChooserActivity.FIRST_IMAGE_PREVIEW_TRANSITION_NAME);
mPreviewCoord.loadUriIntoView(R.id.content_preview_image_1_large, uri, 0);
@@ -1434,7 +1440,7 @@ public class ChooserActivity extends ResolverActivity implements
List uris = targetIntent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
List imageUris = new ArrayList<>();
for (Uri uri : uris) {
- if (isImageType(resolver.getType(uri))) {
+ if (validForContentPreview(uri) && isImageType(resolver.getType(uri))) {
imageUris.add(uri);
}
}
@@ -1544,9 +1550,16 @@ public class ChooserActivity extends ResolverActivity implements
String action = targetIntent.getAction();
if (Intent.ACTION_SEND.equals(action)) {
Uri uri = targetIntent.getParcelableExtra(Intent.EXTRA_STREAM);
+ if (!validForContentPreview(uri)) {
+ contentPreviewLayout.setVisibility(View.GONE);
+ return contentPreviewLayout;
+ }
loadFileUriIntoView(uri, contentPreviewLayout);
} else {
List uris = targetIntent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
+ uris = uris.stream()
+ .filter(ChooserActivity::validForContentPreview)
+ .collect(Collectors.toList());
int uriCount = uris.size();
if (uriCount == 0) {
@@ -1605,6 +1618,24 @@ public class ChooserActivity extends ResolverActivity implements
}
}
+ /**
+ * Indicate if the incoming content URI should be allowed.
+ *
+ * @param uri the uri to test
+ * @return true if the URI is allowed for content preview
+ */
+ private static boolean validForContentPreview(Uri uri) throws SecurityException {
+ if (uri == null) {
+ return false;
+ }
+ int userId = getUserIdFromUri(uri, UserHandle.USER_CURRENT);
+ if (userId != UserHandle.USER_CURRENT && userId != UserHandle.myUserId()) {
+ Log.e(TAG, "dropped invalid content URI belonging to user " + userId);
+ return false;
+ }
+ return true;
+ }
+
@VisibleForTesting
protected boolean isImageType(String mimeType) {
return mimeType != null && mimeType.startsWith("image/");
@@ -2953,11 +2984,23 @@ public class ChooserActivity extends ResolverActivity implements
private boolean shouldShowStickyContentPreviewNoOrientationCheck() {
return shouldShowTabs()
- && mMultiProfilePagerAdapter.getListAdapterForUserHandle(
- UserHandle.of(UserHandle.myUserId())).getCount() > 0
+ && (mMultiProfilePagerAdapter.getListAdapterForUserHandle(
+ UserHandle.of(UserHandle.myUserId())).getCount() > 0
+ || shouldShowContentPreviewWhenEmpty())
&& shouldShowContentPreview();
}
+ /**
+ * This method could be used to override the default behavior when we hide the preview area
+ * when the current tab doesn't have any items.
+ *
+ * @return true if we want to show the content preview area even if the tab for the current
+ * user is empty
+ */
+ protected boolean shouldShowContentPreviewWhenEmpty() {
+ return false;
+ }
+
/**
* @return true if we want to show the content preview area
*/
diff --git a/core/java/com/android/internal/app/ChooserActivityLoggerImpl.java b/core/java/com/android/internal/app/ChooserActivityLoggerImpl.java
index e3cc4f12fcc670a34c627e5f53dfa72de2159886..d0b581158614de10219b30ccfa5db3a2ef7d797d 100644
--- a/core/java/com/android/internal/app/ChooserActivityLoggerImpl.java
+++ b/core/java/com/android/internal/app/ChooserActivityLoggerImpl.java
@@ -47,7 +47,9 @@ public class ChooserActivityLoggerImpl implements ChooserActivityLogger {
/* num_app_provided_app_targets = 6 */ appProvidedApp,
/* is_workprofile = 7 */ isWorkprofile,
/* previewType = 8 */ typeFromPreviewInt(previewType),
- /* intentType = 9 */ typeFromIntentString(intent));
+ /* intentType = 9 */ typeFromIntentString(intent),
+ /* num_provided_custom_actions = 10 */ 0,
+ /* reselection_action_provided = 11 */ false);
}
@Override
diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java
index f8b764be582bc6226afbf828c71dc39ea45e137e..19e4ba405feb85ab06f256b35162515f59218df1 100644
--- a/core/java/com/android/internal/app/ResolverActivity.java
+++ b/core/java/com/android/internal/app/ResolverActivity.java
@@ -209,7 +209,7 @@ public class ResolverActivity extends Activity implements
*
Can only be used if there is a work profile.
*
Possible values can be either {@link #PROFILE_PERSONAL} or {@link #PROFILE_WORK}.
*/
- static final String EXTRA_SELECTED_PROFILE =
+ protected static final String EXTRA_SELECTED_PROFILE =
"com.android.internal.app.ResolverActivity.EXTRA_SELECTED_PROFILE";
/**
@@ -224,8 +224,8 @@ public class ResolverActivity extends Activity implements
static final String EXTRA_CALLING_USER =
"com.android.internal.app.ResolverActivity.EXTRA_CALLING_USER";
- static final int PROFILE_PERSONAL = AbstractMultiProfilePagerAdapter.PROFILE_PERSONAL;
- static final int PROFILE_WORK = AbstractMultiProfilePagerAdapter.PROFILE_WORK;
+ protected static final int PROFILE_PERSONAL = AbstractMultiProfilePagerAdapter.PROFILE_PERSONAL;
+ protected static final int PROFILE_WORK = AbstractMultiProfilePagerAdapter.PROFILE_WORK;
private BroadcastReceiver mWorkProfileStateReceiver;
private UserHandle mHeaderCreatorUser;
diff --git a/core/java/com/android/internal/app/procstats/DumpUtils.java b/core/java/com/android/internal/app/procstats/DumpUtils.java
index bce0d6076d24a79f72eca89892d791831c7c116c..f6bcc4661fd6e19577554a139119e91749e5037f 100644
--- a/core/java/com/android/internal/app/procstats/DumpUtils.java
+++ b/core/java/com/android/internal/app/procstats/DumpUtils.java
@@ -27,12 +27,12 @@ import static com.android.internal.app.procstats.ProcessStats.ADJ_SCREEN_MOD;
import static com.android.internal.app.procstats.ProcessStats.ADJ_SCREEN_OFF;
import static com.android.internal.app.procstats.ProcessStats.ADJ_SCREEN_ON;
import static com.android.internal.app.procstats.ProcessStats.STATE_BACKUP;
-import static com.android.internal.app.procstats.ProcessStats.STATE_BOUND_TOP_OR_FGS;
-import static com.android.internal.app.procstats.ProcessStats.STATE_CACHED_ACTIVITY;
-import static com.android.internal.app.procstats.ProcessStats.STATE_CACHED_ACTIVITY_CLIENT;
-import static com.android.internal.app.procstats.ProcessStats.STATE_CACHED_EMPTY;
+import static com.android.internal.app.procstats.ProcessStats.STATE_BOUND_FGS;
+import static com.android.internal.app.procstats.ProcessStats.STATE_BOUND_TOP;
+import static com.android.internal.app.procstats.ProcessStats.STATE_CACHED;
import static com.android.internal.app.procstats.ProcessStats.STATE_COUNT;
import static com.android.internal.app.procstats.ProcessStats.STATE_FGS;
+import static com.android.internal.app.procstats.ProcessStats.STATE_FROZEN;
import static com.android.internal.app.procstats.ProcessStats.STATE_HEAVY_WEIGHT;
import static com.android.internal.app.procstats.ProcessStats.STATE_HOME;
import static com.android.internal.app.procstats.ProcessStats.STATE_IMPORTANT_BACKGROUND;
@@ -72,7 +72,8 @@ public final class DumpUtils {
STATE_NAMES = new String[STATE_COUNT];
STATE_NAMES[STATE_PERSISTENT] = "Persist";
STATE_NAMES[STATE_TOP] = "Top";
- STATE_NAMES[STATE_BOUND_TOP_OR_FGS] = "BTopFgs";
+ STATE_NAMES[STATE_BOUND_FGS] = "BFgs";
+ STATE_NAMES[STATE_BOUND_TOP] = "BTop";
STATE_NAMES[STATE_FGS] = "Fgs";
STATE_NAMES[STATE_IMPORTANT_FOREGROUND] = "ImpFg";
STATE_NAMES[STATE_IMPORTANT_BACKGROUND] = "ImpBg";
@@ -83,14 +84,14 @@ public final class DumpUtils {
STATE_NAMES[STATE_HEAVY_WEIGHT] = "HeavyWt";
STATE_NAMES[STATE_HOME] = "Home";
STATE_NAMES[STATE_LAST_ACTIVITY] = "LastAct";
- STATE_NAMES[STATE_CACHED_ACTIVITY] = "CchAct";
- STATE_NAMES[STATE_CACHED_ACTIVITY_CLIENT] = "CchCAct";
- STATE_NAMES[STATE_CACHED_EMPTY] = "CchEmty";
+ STATE_NAMES[STATE_CACHED] = "Cached";
+ STATE_NAMES[STATE_FROZEN] = "Frozen";
STATE_LABELS = new String[STATE_COUNT];
STATE_LABELS[STATE_PERSISTENT] = "Persistent";
STATE_LABELS[STATE_TOP] = " Top";
- STATE_LABELS[STATE_BOUND_TOP_OR_FGS] = "Bnd TopFgs";
+ STATE_LABELS[STATE_BOUND_FGS] = " Bnd Fgs";
+ STATE_LABELS[STATE_BOUND_TOP] = " Bnd Top";
STATE_LABELS[STATE_FGS] = " Fgs";
STATE_LABELS[STATE_IMPORTANT_FOREGROUND] = " Imp Fg";
STATE_LABELS[STATE_IMPORTANT_BACKGROUND] = " Imp Bg";
@@ -101,16 +102,16 @@ public final class DumpUtils {
STATE_LABELS[STATE_HEAVY_WEIGHT] = " Heavy Wgt";
STATE_LABELS[STATE_HOME] = " (Home)";
STATE_LABELS[STATE_LAST_ACTIVITY] = "(Last Act)";
- STATE_LABELS[STATE_CACHED_ACTIVITY] = " (Cch Act)";
- STATE_LABELS[STATE_CACHED_ACTIVITY_CLIENT] = "(Cch CAct)";
- STATE_LABELS[STATE_CACHED_EMPTY] = "(Cch Emty)";
+ STATE_LABELS[STATE_CACHED] = " (Cached)";
+ STATE_LABELS[STATE_FROZEN] = " Frozen";
STATE_LABEL_CACHED = " (Cached)";
STATE_LABEL_TOTAL = " TOTAL";
STATE_NAMES_CSV = new String[STATE_COUNT];
STATE_NAMES_CSV[STATE_PERSISTENT] = "pers";
STATE_NAMES_CSV[STATE_TOP] = "top";
- STATE_NAMES_CSV[STATE_BOUND_TOP_OR_FGS] = "btopfgs";
+ STATE_NAMES_CSV[STATE_BOUND_FGS] = "bfgs";
+ STATE_NAMES_CSV[STATE_BOUND_TOP] = "btop";
STATE_NAMES_CSV[STATE_FGS] = "fgs";
STATE_NAMES_CSV[STATE_IMPORTANT_FOREGROUND] = "impfg";
STATE_NAMES_CSV[STATE_IMPORTANT_BACKGROUND] = "impbg";
@@ -121,14 +122,14 @@ public final class DumpUtils {
STATE_NAMES_CSV[STATE_HEAVY_WEIGHT] = "heavy";
STATE_NAMES_CSV[STATE_HOME] = "home";
STATE_NAMES_CSV[STATE_LAST_ACTIVITY] = "lastact";
- STATE_NAMES_CSV[STATE_CACHED_ACTIVITY] = "cch-activity";
- STATE_NAMES_CSV[STATE_CACHED_ACTIVITY_CLIENT] = "cch-aclient";
- STATE_NAMES_CSV[STATE_CACHED_EMPTY] = "cch-empty";
+ STATE_NAMES_CSV[STATE_CACHED] = "cached";
+ STATE_NAMES_CSV[STATE_FROZEN] = "frzn";
STATE_TAGS = new String[STATE_COUNT];
STATE_TAGS[STATE_PERSISTENT] = "p";
STATE_TAGS[STATE_TOP] = "t";
- STATE_TAGS[STATE_BOUND_TOP_OR_FGS] = "d";
+ STATE_TAGS[STATE_BOUND_FGS] = "y";
+ STATE_TAGS[STATE_BOUND_TOP] = "z";
STATE_TAGS[STATE_FGS] = "g";
STATE_TAGS[STATE_IMPORTANT_FOREGROUND] = "f";
STATE_TAGS[STATE_IMPORTANT_BACKGROUND] = "b";
@@ -139,15 +140,14 @@ public final class DumpUtils {
STATE_TAGS[STATE_HEAVY_WEIGHT] = "w";
STATE_TAGS[STATE_HOME] = "h";
STATE_TAGS[STATE_LAST_ACTIVITY] = "l";
- STATE_TAGS[STATE_CACHED_ACTIVITY] = "a";
- STATE_TAGS[STATE_CACHED_ACTIVITY_CLIENT] = "c";
- STATE_TAGS[STATE_CACHED_EMPTY] = "e";
+ STATE_TAGS[STATE_CACHED] = "a";
+ STATE_TAGS[STATE_FROZEN] = "e";
STATE_PROTO_ENUMS = new int[STATE_COUNT];
STATE_PROTO_ENUMS[STATE_PERSISTENT] = ProcessStatsEnums.PROCESS_STATE_PERSISTENT;
STATE_PROTO_ENUMS[STATE_TOP] = ProcessStatsEnums.PROCESS_STATE_TOP;
- STATE_PROTO_ENUMS[STATE_BOUND_TOP_OR_FGS] =
- ProcessStatsEnums.PROCESS_STATE_BOUND_TOP_OR_FGS;
+ STATE_PROTO_ENUMS[STATE_BOUND_FGS] = ProcessStatsEnums.PROCESS_STATE_BOUND_FGS;
+ STATE_PROTO_ENUMS[STATE_BOUND_TOP] = ProcessStatsEnums.PROCESS_STATE_BOUND_TOP;
STATE_PROTO_ENUMS[STATE_FGS] = ProcessStatsEnums.PROCESS_STATE_FGS;
STATE_PROTO_ENUMS[STATE_IMPORTANT_FOREGROUND] =
ProcessStatsEnums.PROCESS_STATE_IMPORTANT_FOREGROUND;
@@ -161,10 +161,8 @@ public final class DumpUtils {
STATE_PROTO_ENUMS[STATE_HEAVY_WEIGHT] = ProcessStatsEnums.PROCESS_STATE_HEAVY_WEIGHT;
STATE_PROTO_ENUMS[STATE_HOME] = ProcessStatsEnums.PROCESS_STATE_HOME;
STATE_PROTO_ENUMS[STATE_LAST_ACTIVITY] = ProcessStatsEnums.PROCESS_STATE_LAST_ACTIVITY;
- STATE_PROTO_ENUMS[STATE_CACHED_ACTIVITY] = ProcessStatsEnums.PROCESS_STATE_CACHED_ACTIVITY;
- STATE_PROTO_ENUMS[STATE_CACHED_ACTIVITY_CLIENT] =
- ProcessStatsEnums.PROCESS_STATE_CACHED_ACTIVITY_CLIENT;
- STATE_PROTO_ENUMS[STATE_CACHED_EMPTY] = ProcessStatsEnums.PROCESS_STATE_CACHED_EMPTY;
+ STATE_PROTO_ENUMS[STATE_CACHED] = ProcessStatsEnums.PROCESS_STATE_CACHED_ACTIVITY;
+ STATE_PROTO_ENUMS[STATE_FROZEN] = ProcessStatsEnums.PROCESS_STATE_FROZEN;
// Remap states, as defined by ProcessStats.java, to a reduced subset of states for data
// aggregation / size reduction purposes.
@@ -173,7 +171,9 @@ public final class DumpUtils {
ProcessStatsEnums.AGGREGATED_PROCESS_STATE_PERSISTENT;
PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_TOP] =
ProcessStatsEnums.AGGREGATED_PROCESS_STATE_TOP;
- PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_BOUND_TOP_OR_FGS] =
+ PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_BOUND_FGS] =
+ ProcessStatsEnums.AGGREGATED_PROCESS_STATE_BOUND_TOP_OR_FGS;
+ PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_BOUND_TOP] =
ProcessStatsEnums.AGGREGATED_PROCESS_STATE_BOUND_TOP_OR_FGS;
PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_FGS] =
ProcessStatsEnums.AGGREGATED_PROCESS_STATE_FGS;
@@ -196,11 +196,9 @@ public final class DumpUtils {
ProcessStatsEnums.AGGREGATED_PROCESS_STATE_CACHED;
PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_LAST_ACTIVITY] =
ProcessStatsEnums.AGGREGATED_PROCESS_STATE_CACHED;
- PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_CACHED_ACTIVITY] =
- ProcessStatsEnums.AGGREGATED_PROCESS_STATE_CACHED;
- PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_CACHED_ACTIVITY_CLIENT] =
+ PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_CACHED] =
ProcessStatsEnums.AGGREGATED_PROCESS_STATE_CACHED;
- PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_CACHED_EMPTY] =
+ PROCESS_STATS_STATE_TO_AGGREGATED_STATE[STATE_FROZEN] =
ProcessStatsEnums.AGGREGATED_PROCESS_STATE_CACHED;
}
diff --git a/core/java/com/android/internal/app/procstats/ProcessState.java b/core/java/com/android/internal/app/procstats/ProcessState.java
index 72b9cd272d02667772ebeb7676bc4f3ecc28a792..fff778c616eeca10eca4ce9fd08b4ae2af93f23b 100644
--- a/core/java/com/android/internal/app/procstats/ProcessState.java
+++ b/core/java/com/android/internal/app/procstats/ProcessState.java
@@ -28,10 +28,9 @@ import static com.android.internal.app.procstats.ProcessStats.PSS_USS_AVERAGE;
import static com.android.internal.app.procstats.ProcessStats.PSS_USS_MAXIMUM;
import static com.android.internal.app.procstats.ProcessStats.PSS_USS_MINIMUM;
import static com.android.internal.app.procstats.ProcessStats.STATE_BACKUP;
-import static com.android.internal.app.procstats.ProcessStats.STATE_BOUND_TOP_OR_FGS;
-import static com.android.internal.app.procstats.ProcessStats.STATE_CACHED_ACTIVITY;
-import static com.android.internal.app.procstats.ProcessStats.STATE_CACHED_ACTIVITY_CLIENT;
-import static com.android.internal.app.procstats.ProcessStats.STATE_CACHED_EMPTY;
+import static com.android.internal.app.procstats.ProcessStats.STATE_BOUND_FGS;
+import static com.android.internal.app.procstats.ProcessStats.STATE_BOUND_TOP;
+import static com.android.internal.app.procstats.ProcessStats.STATE_CACHED;
import static com.android.internal.app.procstats.ProcessStats.STATE_COUNT;
import static com.android.internal.app.procstats.ProcessStats.STATE_FGS;
import static com.android.internal.app.procstats.ProcessStats.STATE_HEAVY_WEIGHT;
@@ -73,6 +72,7 @@ import com.android.internal.app.procstats.ProcessStats.TotalMemoryUseCollection;
import java.io.PrintWriter;
import java.util.Comparator;
+import java.util.concurrent.TimeUnit;
public final class ProcessState {
private static final String TAG = "ProcessStats";
@@ -84,9 +84,9 @@ public final class ProcessState {
STATE_PERSISTENT, // ActivityManager.PROCESS_STATE_PERSISTENT
STATE_PERSISTENT, // ActivityManager.PROCESS_STATE_PERSISTENT_UI
STATE_TOP, // ActivityManager.PROCESS_STATE_TOP
- STATE_BOUND_TOP_OR_FGS, // ActivityManager.PROCESS_STATE_BOUND_TOP
+ STATE_BOUND_TOP, // ActivityManager.PROCESS_STATE_BOUND_TOP
STATE_FGS, // ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE
- STATE_BOUND_TOP_OR_FGS, // ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE
+ STATE_BOUND_FGS, // ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE
STATE_IMPORTANT_FOREGROUND, // ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND
STATE_IMPORTANT_BACKGROUND, // ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND
STATE_IMPORTANT_BACKGROUND, // ActivityManager.PROCESS_STATE_TRANSIENT_BACKGROUND
@@ -97,10 +97,10 @@ public final class ProcessState {
STATE_HEAVY_WEIGHT, // ActivityManager.PROCESS_STATE_HEAVY_WEIGHT
STATE_HOME, // ActivityManager.PROCESS_STATE_HOME
STATE_LAST_ACTIVITY, // ActivityManager.PROCESS_STATE_LAST_ACTIVITY
- STATE_CACHED_ACTIVITY, // ActivityManager.PROCESS_STATE_CACHED_ACTIVITY
- STATE_CACHED_ACTIVITY_CLIENT, // ActivityManager.PROCESS_STATE_CACHED_ACTIVITY_CLIENT
- STATE_CACHED_ACTIVITY, // ActivityManager.PROCESS_STATE_CACHED_RECENT
- STATE_CACHED_EMPTY, // ActivityManager.PROCESS_STATE_CACHED_EMPTY
+ STATE_CACHED, // ActivityManager.PROCESS_STATE_CACHED_ACTIVITY
+ STATE_CACHED, // ActivityManager.PROCESS_STATE_CACHED_ACTIVITY_CLIENT
+ STATE_CACHED, // ActivityManager.PROCESS_STATE_CACHED_RECENT
+ STATE_CACHED, // ActivityManager.PROCESS_STATE_CACHED_EMPTY
};
public static final Comparator COMPARATOR = new Comparator() {
@@ -925,8 +925,11 @@ public final class ProcessState {
screenStates, memStates, new int[] { STATE_PERSISTENT }, now, totalTime, true);
dumpProcessSummaryDetails(pw, prefix, DumpUtils.STATE_LABELS[STATE_TOP],
screenStates, memStates, new int[] {STATE_TOP}, now, totalTime, true);
- dumpProcessSummaryDetails(pw, prefix, DumpUtils.STATE_LABELS[STATE_BOUND_TOP_OR_FGS],
- screenStates, memStates, new int[] { STATE_BOUND_TOP_OR_FGS}, now, totalTime,
+ dumpProcessSummaryDetails(pw, prefix, DumpUtils.STATE_LABELS[STATE_BOUND_TOP],
+ screenStates, memStates, new int[] { STATE_BOUND_TOP }, now, totalTime,
+ true);
+ dumpProcessSummaryDetails(pw, prefix, DumpUtils.STATE_LABELS[STATE_BOUND_FGS],
+ screenStates, memStates, new int[] { STATE_BOUND_FGS }, now, totalTime,
true);
dumpProcessSummaryDetails(pw, prefix, DumpUtils.STATE_LABELS[STATE_FGS],
screenStates, memStates, new int[] { STATE_FGS}, now, totalTime,
@@ -952,9 +955,6 @@ public final class ProcessState {
screenStates, memStates, new int[] {STATE_HOME}, now, totalTime, true);
dumpProcessSummaryDetails(pw, prefix, DumpUtils.STATE_LABELS[STATE_LAST_ACTIVITY],
screenStates, memStates, new int[] {STATE_LAST_ACTIVITY}, now, totalTime, true);
- dumpProcessSummaryDetails(pw, prefix, DumpUtils.STATE_LABEL_CACHED,
- screenStates, memStates, new int[] {STATE_CACHED_ACTIVITY,
- STATE_CACHED_ACTIVITY_CLIENT, STATE_CACHED_EMPTY}, now, totalTime, true);
}
public void dumpProcessState(PrintWriter pw, String prefix,
@@ -1542,6 +1542,75 @@ public final class ProcessState {
proto.write(fieldId, procName);
}
+ /** Dumps the duration of each state to statsEventOutput. */
+ public void dumpStateDurationToStatsd(
+ int atomTag, ProcessStats processStats, StatsEventOutput statsEventOutput) {
+ long topMs = 0;
+ long fgsMs = 0;
+ long boundTopMs = 0;
+ long boundFgsMs = 0;
+ long importantForegroundMs = 0;
+ long cachedMs = 0;
+ long frozenMs = 0;
+ long otherMs = 0;
+ for (int i = 0, size = mDurations.getKeyCount(); i < size; i++) {
+ final int key = mDurations.getKeyAt(i);
+ final int type = SparseMappingTable.getIdFromKey(key);
+ int procStateIndex = type % STATE_COUNT;
+ long duration = mDurations.getValue(key);
+ switch (procStateIndex) {
+ case STATE_TOP:
+ topMs += duration;
+ break;
+ case STATE_BOUND_FGS:
+ boundFgsMs += duration;
+ break;
+ case STATE_BOUND_TOP:
+ boundTopMs += duration;
+ break;
+ case STATE_FGS:
+ fgsMs += duration;
+ break;
+ case STATE_IMPORTANT_FOREGROUND:
+ case STATE_IMPORTANT_BACKGROUND:
+ importantForegroundMs += duration;
+ break;
+ case STATE_BACKUP:
+ case STATE_SERVICE:
+ case STATE_SERVICE_RESTARTING:
+ case STATE_RECEIVER:
+ case STATE_HEAVY_WEIGHT:
+ case STATE_HOME:
+ case STATE_LAST_ACTIVITY:
+ case STATE_PERSISTENT:
+ otherMs += duration;
+ break;
+ case STATE_CACHED:
+ cachedMs += duration;
+ break;
+ // TODO (b/261910877) Add support for tracking frozenMs.
+ }
+ }
+ statsEventOutput.write(
+ atomTag,
+ getUid(),
+ getName(),
+ (int) TimeUnit.MILLISECONDS.toSeconds(processStats.mTimePeriodStartUptime),
+ (int) TimeUnit.MILLISECONDS.toSeconds(processStats.mTimePeriodEndUptime),
+ (int)
+ TimeUnit.MILLISECONDS.toSeconds(
+ processStats.mTimePeriodEndUptime
+ - processStats.mTimePeriodStartUptime),
+ (int) TimeUnit.MILLISECONDS.toSeconds(topMs),
+ (int) TimeUnit.MILLISECONDS.toSeconds(fgsMs),
+ (int) TimeUnit.MILLISECONDS.toSeconds(boundTopMs),
+ (int) TimeUnit.MILLISECONDS.toSeconds(boundFgsMs),
+ (int) TimeUnit.MILLISECONDS.toSeconds(importantForegroundMs),
+ (int) TimeUnit.MILLISECONDS.toSeconds(cachedMs),
+ (int) TimeUnit.MILLISECONDS.toSeconds(frozenMs),
+ (int) TimeUnit.MILLISECONDS.toSeconds(otherMs));
+ }
+
/** Similar to {@code #dumpDebug}, but with a reduced/aggregated subset of states. */
public void dumpAggregatedProtoForStatsd(ProtoOutputStream proto, long fieldId,
String procName, int uid, long now,
diff --git a/core/java/com/android/internal/app/procstats/ProcessStats.java b/core/java/com/android/internal/app/procstats/ProcessStats.java
index d2b2f0a2b8947426784ae04e7d48bd5d385f2666..3ce234b4167b305884bb9bb3fb038260563681de 100644
--- a/core/java/com/android/internal/app/procstats/ProcessStats.java
+++ b/core/java/com/android/internal/app/procstats/ProcessStats.java
@@ -43,6 +43,7 @@ import android.util.proto.ProtoOutputStream;
import com.android.internal.app.ProcessMap;
import com.android.internal.app.procstats.AssociationState.SourceKey;
import com.android.internal.app.procstats.AssociationState.SourceState;
+import com.android.internal.util.function.QuintConsumer;
import dalvik.system.VMRuntime;
@@ -56,6 +57,8 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Consumer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -78,21 +81,21 @@ public final class ProcessStats implements Parcelable {
public static final int STATE_NOTHING = -1;
public static final int STATE_PERSISTENT = 0;
public static final int STATE_TOP = 1;
- public static final int STATE_BOUND_TOP_OR_FGS = 2;
+ public static final int STATE_BOUND_TOP = 2;
public static final int STATE_FGS = 3;
- public static final int STATE_IMPORTANT_FOREGROUND = 4;
- public static final int STATE_IMPORTANT_BACKGROUND = 5;
- public static final int STATE_BACKUP = 6;
- public static final int STATE_SERVICE = 7;
- public static final int STATE_SERVICE_RESTARTING = 8;
- public static final int STATE_RECEIVER = 9;
- public static final int STATE_HEAVY_WEIGHT = 10;
- public static final int STATE_HOME = 11;
- public static final int STATE_LAST_ACTIVITY = 12;
- public static final int STATE_CACHED_ACTIVITY = 13;
- public static final int STATE_CACHED_ACTIVITY_CLIENT = 14;
- public static final int STATE_CACHED_EMPTY = 15;
- public static final int STATE_COUNT = STATE_CACHED_EMPTY+1;
+ public static final int STATE_BOUND_FGS = 4;
+ public static final int STATE_IMPORTANT_FOREGROUND = 5;
+ public static final int STATE_IMPORTANT_BACKGROUND = 6;
+ public static final int STATE_BACKUP = 7;
+ public static final int STATE_SERVICE = 8;
+ public static final int STATE_SERVICE_RESTARTING = 9;
+ public static final int STATE_RECEIVER = 10;
+ public static final int STATE_HEAVY_WEIGHT = 11;
+ public static final int STATE_HOME = 12;
+ public static final int STATE_LAST_ACTIVITY = 13;
+ public static final int STATE_CACHED = 14;
+ public static final int STATE_FROZEN = 15;
+ public static final int STATE_COUNT = STATE_FROZEN + 1;
public static final int PSS_SAMPLE_COUNT = 0;
public static final int PSS_MINIMUM = 1;
@@ -151,9 +154,10 @@ public final class ProcessStats implements Parcelable {
public static final int[] ALL_SCREEN_ADJ = new int[] { ADJ_SCREEN_OFF, ADJ_SCREEN_ON };
public static final int[] NON_CACHED_PROC_STATES = new int[] {
- STATE_PERSISTENT, STATE_TOP, STATE_BOUND_TOP_OR_FGS, STATE_FGS,
+ STATE_PERSISTENT, STATE_TOP, STATE_FGS,
STATE_IMPORTANT_FOREGROUND, STATE_IMPORTANT_BACKGROUND, STATE_BACKUP,
- STATE_SERVICE, STATE_SERVICE_RESTARTING, STATE_RECEIVER, STATE_HEAVY_WEIGHT
+ STATE_SERVICE, STATE_SERVICE_RESTARTING, STATE_RECEIVER, STATE_HEAVY_WEIGHT,
+ STATE_BOUND_TOP, STATE_BOUND_FGS
};
public static final int[] BACKGROUND_PROC_STATES = new int[] {
@@ -162,11 +166,11 @@ public final class ProcessStats implements Parcelable {
};
public static final int[] ALL_PROC_STATES = new int[] { STATE_PERSISTENT,
- STATE_TOP, STATE_BOUND_TOP_OR_FGS, STATE_FGS, STATE_IMPORTANT_FOREGROUND,
+ STATE_TOP, STATE_FGS, STATE_IMPORTANT_FOREGROUND,
STATE_IMPORTANT_BACKGROUND, STATE_BACKUP,
STATE_SERVICE, STATE_SERVICE_RESTARTING, STATE_RECEIVER,
- STATE_HEAVY_WEIGHT, STATE_HOME, STATE_LAST_ACTIVITY, STATE_CACHED_ACTIVITY,
- STATE_CACHED_ACTIVITY_CLIENT, STATE_CACHED_EMPTY
+ STATE_HEAVY_WEIGHT, STATE_HOME, STATE_LAST_ACTIVITY, STATE_CACHED,
+ STATE_BOUND_TOP, STATE_BOUND_FGS, STATE_FROZEN
};
// Should report process stats.
@@ -2389,6 +2393,79 @@ public final class ProcessStats implements Parcelable {
}
}
+ void forEachProcess(Consumer consumer) {
+ final ArrayMap> procMap = mProcesses.getMap();
+ for (int ip = 0, size = procMap.size(); ip < size; ip++) {
+ final SparseArray uids = procMap.valueAt(ip);
+ for (int iu = 0, uidsSize = uids.size(); iu < uidsSize; iu++) {
+ final ProcessState processState = uids.valueAt(iu);
+ consumer.accept(processState);
+ }
+ }
+ }
+
+ void forEachAssociation(
+ QuintConsumer consumer) {
+ final ArrayMap>> pkgMap =
+ mPackages.getMap();
+ for (int ip = 0, size = pkgMap.size(); ip < size; ip++) {
+ final SparseArray> uids = pkgMap.valueAt(ip);
+ for (int iu = 0, uidsSize = uids.size(); iu < uidsSize; iu++) {
+ final int uid = uids.keyAt(iu);
+ final LongSparseArray versions = uids.valueAt(iu);
+ for (int iv = 0, versionsSize = versions.size(); iv < versionsSize; iv++) {
+ final PackageState state = versions.valueAt(iv);
+ for (int iasc = 0, ascSize = state.mAssociations.size();
+ iasc < ascSize;
+ iasc++) {
+ final String serviceName = state.mAssociations.keyAt(iasc);
+ final AssociationState asc = state.mAssociations.valueAt(iasc);
+ for (int is = 0, sourcesSize = asc.mSources.size();
+ is < sourcesSize;
+ is++) {
+ final SourceState src = asc.mSources.valueAt(is);
+ final SourceKey key = asc.mSources.keyAt(is);
+ consumer.accept(asc, uid, serviceName, key, src);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /** Dumps the stats of all processes to statsEventOutput. */
+ public void dumpProcessState(int atomTag, StatsEventOutput statsEventOutput) {
+ forEachProcess(
+ (processState) -> {
+ if (processState.isMultiPackage()
+ && processState.getCommonProcess() != processState) {
+ return;
+ }
+ processState.dumpStateDurationToStatsd(atomTag, this, statsEventOutput);
+ });
+ }
+
+ /** Dumps all process association data to statsEventOutput. */
+ public void dumpProcessAssociation(int atomTag, StatsEventOutput statsEventOutput) {
+ forEachAssociation(
+ (asc, serviceUid, serviceName, key, src) -> {
+ statsEventOutput.write(
+ atomTag,
+ key.mUid,
+ key.mProcess,
+ serviceUid,
+ serviceName,
+ (int) TimeUnit.MILLISECONDS.toSeconds(mTimePeriodStartUptime),
+ (int) TimeUnit.MILLISECONDS.toSeconds(mTimePeriodEndUptime),
+ (int)
+ TimeUnit.MILLISECONDS.toSeconds(
+ mTimePeriodEndUptime - mTimePeriodStartUptime),
+ (int) TimeUnit.MILLISECONDS.toSeconds(src.mDuration),
+ src.mActiveCount,
+ asc.getProcessName());
+ });
+ }
+
private void dumpProtoPreamble(ProtoOutputStream proto) {
proto.write(ProcessStatsSectionProto.START_REALTIME_MS, mTimePeriodStartRealtime);
proto.write(ProcessStatsSectionProto.END_REALTIME_MS,
diff --git a/core/java/com/android/internal/app/procstats/StatsEventOutput.java b/core/java/com/android/internal/app/procstats/StatsEventOutput.java
new file mode 100644
index 0000000000000000000000000000000000000000..b2e405475a4e4a3fa56478a553c212bd7a04e5fa
--- /dev/null
+++ b/core/java/com/android/internal/app/procstats/StatsEventOutput.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.internal.app.procstats;
+
+import android.util.StatsEvent;
+
+import com.android.internal.util.FrameworkStatsLog;
+
+import java.util.List;
+
+/**
+ * A simple wrapper of FrameworkStatsLog.buildStatsEvent. This allows unit tests to mock out the
+ * dependency.
+ */
+public class StatsEventOutput {
+
+ List mOutput;
+
+ public StatsEventOutput(List output) {
+ mOutput = output;
+ }
+
+ /** Writes the data to the output. */
+ public void write(
+ int atomTag,
+ int uid,
+ String processName,
+ int measurementStartUptimeSecs,
+ int measurementEndUptimeSecs,
+ int measurementDurationUptimeSecs,
+ int topSeconds,
+ int fgsSeconds,
+ int boundTopSeconds,
+ int boundFgsSeconds,
+ int importantForegroundSeconds,
+ int cachedSeconds,
+ int frozenSeconds,
+ int otherSeconds) {
+ mOutput.add(
+ FrameworkStatsLog.buildStatsEvent(
+ atomTag,
+ uid,
+ processName,
+ measurementStartUptimeSecs,
+ measurementEndUptimeSecs,
+ measurementDurationUptimeSecs,
+ topSeconds,
+ fgsSeconds,
+ boundTopSeconds,
+ boundFgsSeconds,
+ importantForegroundSeconds,
+ cachedSeconds,
+ frozenSeconds,
+ otherSeconds));
+ }
+
+ /** Writes the data to the output. */
+ public void write(
+ int atomTag,
+ int clientUid,
+ String processName,
+ int serviceUid,
+ String serviceName,
+ int measurementStartUptimeSecs,
+ int measurementEndUptimeSecs,
+ int measurementDurationUptimeSecs,
+ int activeDurationUptimeSecs,
+ int activeCount,
+ String serviceProcessName) {
+ mOutput.add(
+ FrameworkStatsLog.buildStatsEvent(
+ atomTag,
+ clientUid,
+ processName,
+ serviceUid,
+ serviceName,
+ measurementStartUptimeSecs,
+ measurementEndUptimeSecs,
+ measurementDurationUptimeSecs,
+ activeDurationUptimeSecs,
+ activeCount,
+ serviceProcessName));
+ }
+}
diff --git a/core/java/com/android/internal/app/procstats/UidState.java b/core/java/com/android/internal/app/procstats/UidState.java
index 8761b7470cd33aceff67910bfe9397201adbb645..49113465c26afcf5e1d42a8c37996a831cd821c2 100644
--- a/core/java/com/android/internal/app/procstats/UidState.java
+++ b/core/java/com/android/internal/app/procstats/UidState.java
@@ -150,6 +150,7 @@ public final class UidState {
public void resetSafely(long now) {
mDurations.resetTable();
mStartTime = now;
+ mProcesses.removeIf(p -> !p.isInUse());
}
/**
diff --git a/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java b/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java
index b916878ff461274af0b1ae2dcc494d0b47ef399a..3303c0e73e076538275da685fdcd14f5ccd83c67 100644
--- a/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java
+++ b/core/java/com/android/internal/config/sysui/SystemUiDeviceConfigFlags.java
@@ -562,9 +562,9 @@ public final class SystemUiDeviceConfigFlags {
"task_manager_show_user_visible_jobs";
/**
- * (boolean) Whether the clipboard overlay is enabled.
+ * (boolean) Whether to show notification volume control slider separate from ring.
*/
- public static final String CLIPBOARD_OVERLAY_ENABLED = "clipboard_overlay_enabled";
+ public static final String VOLUME_SEPARATE_NOTIFICATION = "volume_separate_notification";
/**
* (boolean) Whether widget provider info would be saved to / loaded from system persistence
@@ -572,13 +572,6 @@ public final class SystemUiDeviceConfigFlags {
*/
public static final String PERSISTS_WIDGET_PROVIDER_INFO = "persists_widget_provider_info";
- /**
- * (boolean) Whether the clipboard overlay shows an edit button (as opposed to requiring tapping
- * the preview to send an edit intent).
- */
- public static final String CLIPBOARD_OVERLAY_SHOW_EDIT_BUTTON =
- "clipboard_overlay_show_edit_button";
-
/**
* (boolean) Whether to show smart chips (based on TextClassifier) in the clipboard overlay.
*/
diff --git a/core/java/com/android/internal/config/sysui/SystemUiSystemPropertiesFlags.java b/core/java/com/android/internal/config/sysui/SystemUiSystemPropertiesFlags.java
new file mode 100644
index 0000000000000000000000000000000000000000..c946db1dbda97fdf5493495f8ab2664aac595ada
--- /dev/null
+++ b/core/java/com/android/internal/config/sysui/SystemUiSystemPropertiesFlags.java
@@ -0,0 +1,188 @@
+/**
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.internal.config.sysui;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.os.Build;
+import android.os.SystemProperties;
+import android.util.Log;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+/**
+ * Provides a central definition of debug SystemUI's SystemProperties flags, and their defaults.
+ *
+ * The main feature of this class is that it encodes a system-wide default for each flag which can
+ * be updated by engineers with a single-line CL.
+ *
+ * NOTE: Because flag values returned by this class are not cached, it is important that developers
+ * understand the intricacies of changing values and how that applies to their own code.
+ * Generally, the best practice is to set the property, and then restart the device so that any
+ * processes with stale state can be updated. However, if your code has no state derived from the
+ * flag value and queries it any time behavior is relevant, then it may be safe to change the flag
+ * and not immediately reboot.
+ *
+ * To enable flags in debuggable builds, use the following commands:
+ *
+ * $ adb shell setprop persist.sysui.whatever_the_flag true
+ * $ adb reboot
+ *
+ * @hide
+ */
+public class SystemUiSystemPropertiesFlags {
+
+ /** The teamfood flag allows multiple features to be opted into at once. */
+ public static final Flag TEAMFOOD = devFlag("persist.sysui.teamfood");
+
+ /**
+ * Flags related to notification features
+ */
+ public static final class NotificationFlags {
+
+ /**
+ * FOR DEVELOPMENT / TESTING ONLY!!!
+ * Forcibly demote *ALL* FSI notifications as if no apps have the app op permission.
+ * NOTE: enabling this implies SHOW_STICKY_HUN_FOR_DENIED_FSI in SystemUI
+ */
+ public static final Flag FSI_FORCE_DEMOTE =
+ devFlag("persist.sysui.notification.fsi_force_demote");
+
+ /** Gating the feature which shows FSI-denied notifications as Sticky HUNs */
+ public static final Flag SHOW_STICKY_HUN_FOR_DENIED_FSI =
+ devFlag("persist.sysui.notification.show_sticky_hun_for_denied_fsi");
+
+ /** Gating the ability for users to dismiss ongoing event notifications */
+ public static final Flag ALLOW_DISMISS_ONGOING =
+ devFlag("persist.sysui.notification.ongoing_dismissal");
+
+ /** Gating the redaction of OTP notifications on the lockscreen */
+ public static final Flag OTP_REDACTION =
+ devFlag("persist.sysui.notification.otp_redaction");
+
+ }
+
+ //// == End of flags. Everything below this line is the implementation. == ////
+
+ /** The interface used for resolving SystemUI SystemProperties Flags to booleans. */
+ public interface FlagResolver {
+ /** Is the flag enabled? */
+ boolean isEnabled(Flag flag);
+ }
+
+ /** The primary, immutable resolver returned by getResolver() */
+ private static final FlagResolver
+ MAIN_RESOLVER =
+ Build.IS_DEBUGGABLE ? new DebugResolver() : new ProdResolver();
+
+ /**
+ * On debuggable builds, this can be set to override the resolver returned by getResolver().
+ * This can be useful to override flags when testing components that do not allow injecting the
+ * SystemUiPropertiesFlags resolver they use.
+ * Always set this to null when tests tear down.
+ */
+ @VisibleForTesting
+ public static FlagResolver TEST_RESOLVER = null;
+
+ /** Get the resolver for this device configuration. */
+ public static FlagResolver getResolver() {
+ if (Build.IS_DEBUGGABLE && TEST_RESOLVER != null) {
+ Log.i("SystemUiSystemPropertiesFlags", "Returning debug resolver " + TEST_RESOLVER);
+ return TEST_RESOLVER;
+ }
+ return MAIN_RESOLVER;
+ }
+
+ /**
+ * Creates a flag that is enabled by default in debuggable builds.
+ * It can be enabled by setting this flag's SystemProperty to 1.
+ *
+ * This flag is ALWAYS disabled in release builds.
+ */
+ @VisibleForTesting
+ public static Flag devFlag(String name) {
+ return new Flag(name, false, null);
+ }
+
+ /**
+ * Creates a flag that is disabled by default in debuggable builds.
+ * It can be enabled or force-disabled by setting this flag's SystemProperty to 1 or 0.
+ * If this flag's SystemProperty is not set, the flag can be enabled by setting the
+ * TEAMFOOD flag's SystemProperty to 1.
+ *
+ * This flag is ALWAYS disabled in release builds.
+ */
+ @VisibleForTesting
+ public static Flag teamfoodFlag(String name) {
+ return new Flag(name, false, TEAMFOOD);
+ }
+
+ /**
+ * Creates a flag that is enabled by default in debuggable builds.
+ * It can be enabled by setting this flag's SystemProperty to 0.
+ *
+ * This flag is ALWAYS enabled in release builds.
+ */
+ @VisibleForTesting
+ public static Flag releasedFlag(String name) {
+ return new Flag(name, true, null);
+ }
+
+ /** Represents a developer-switchable gate for a feature. */
+ public static final class Flag {
+ public final String mSysPropKey;
+ public final boolean mDefaultValue;
+ @Nullable
+ public final Flag mDebugDefault;
+
+ /** constructs a new flag. only visible for testing the class */
+ @VisibleForTesting
+ public Flag(@NonNull String sysPropKey, boolean defaultValue, @Nullable Flag debugDefault) {
+ mSysPropKey = sysPropKey;
+ mDefaultValue = defaultValue;
+ mDebugDefault = debugDefault;
+ }
+ }
+
+ /** Implementation of the interface used in release builds. */
+ @VisibleForTesting
+ public static final class ProdResolver implements
+ FlagResolver {
+ @Override
+ public boolean isEnabled(Flag flag) {
+ return flag.mDefaultValue;
+ }
+ }
+
+ /** Implementation of the interface used in debuggable builds. */
+ @VisibleForTesting
+ public static class DebugResolver implements FlagResolver {
+ @Override
+ public final boolean isEnabled(Flag flag) {
+ if (flag.mDebugDefault == null) {
+ return getBoolean(flag.mSysPropKey, flag.mDefaultValue);
+ }
+ return getBoolean(flag.mSysPropKey, isEnabled(flag.mDebugDefault));
+ }
+
+ /** Look up the value; overridable for tests to avoid needing to set SystemProperties */
+ @VisibleForTesting
+ public boolean getBoolean(String key, boolean defaultValue) {
+ return SystemProperties.getBoolean(key, defaultValue);
+ }
+ }
+}
diff --git a/core/java/com/android/internal/jank/InteractionJankMonitor.java b/core/java/com/android/internal/jank/InteractionJankMonitor.java
index d8afe50d3af3f12e8f8fd4ed352c421050e90037..475f7fd2bdae1c22221fb3185b056dbeb649155b 100644
--- a/core/java/com/android/internal/jank/InteractionJankMonitor.java
+++ b/core/java/com/android/internal/jank/InteractionJankMonitor.java
@@ -16,6 +16,10 @@
package com.android.internal.jank;
+import static android.Manifest.permission.READ_DEVICE_CONFIG;
+import static android.content.pm.PackageManager.PERMISSION_GRANTED;
+import static android.provider.DeviceConfig.NAMESPACE_INTERACTION_JANK_MONITOR;
+
import static com.android.internal.jank.FrameTracker.REASON_CANCEL_NORMAL;
import static com.android.internal.jank.FrameTracker.REASON_CANCEL_TIMEOUT;
import static com.android.internal.jank.FrameTracker.REASON_END_NORMAL;
@@ -33,6 +37,7 @@ import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_IN
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_OPEN_ALL_APPS;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_QUICK_SWITCH;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_UNLOCK_ENTRANCE_ANIMATION;
+import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LOCKSCREEN_CLOCK_MOVE_ANIMATION;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LOCKSCREEN_LAUNCH_CAMERA;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LOCKSCREEN_OCCLUSION;
import static com.android.internal.util.FrameworkStatsLog.UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LOCKSCREEN_PASSWORD_APPEAR;
@@ -93,6 +98,7 @@ import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.UiThread;
import android.annotation.WorkerThread;
+import android.app.ActivityThread;
import android.content.Context;
import android.os.Build;
import android.os.Handler;
@@ -231,6 +237,7 @@ public class InteractionJankMonitor {
public static final int CUJ_LAUNCHER_APP_SWIPE_TO_RECENTS = 66;
public static final int CUJ_LAUNCHER_CLOSE_ALL_APPS_SWIPE = 67;
public static final int CUJ_LAUNCHER_CLOSE_ALL_APPS_TO_HOME = 68;
+ public static final int CUJ_LOCKSCREEN_CLOCK_MOVE_ANIMATION = 70;
private static final int NO_STATSD_LOGGING = -1;
@@ -308,6 +315,8 @@ public class InteractionJankMonitor {
UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_APP_SWIPE_TO_RECENTS,
UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_CLOSE_ALL_APPS_SWIPE,
UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LAUNCHER_CLOSE_ALL_APPS_TO_HOME,
+ NO_STATSD_LOGGING,
+ UIINTERACTION_FRAME_INFO_REPORTED__INTERACTION_TYPE__LOCKSCREEN_CLOCK_MOVE_ANIMATION,
};
private static volatile InteractionJankMonitor sInstance;
@@ -396,7 +405,8 @@ public class InteractionJankMonitor {
CUJ_RECENTS_SCROLLING,
CUJ_LAUNCHER_APP_SWIPE_TO_RECENTS,
CUJ_LAUNCHER_CLOSE_ALL_APPS_SWIPE,
- CUJ_LAUNCHER_CLOSE_ALL_APPS_TO_HOME
+ CUJ_LAUNCHER_CLOSE_ALL_APPS_TO_HOME,
+ CUJ_LOCKSCREEN_CLOCK_MOVE_ANIMATION
})
@Retention(RetentionPolicy.SOURCE)
public @interface CujType {
@@ -431,18 +441,37 @@ public class InteractionJankMonitor {
mWorker = worker;
mWorker.start();
mSamplingInterval = DEFAULT_SAMPLING_INTERVAL;
+ mEnabled = DEFAULT_ENABLED;
+
+ final Context context = ActivityThread.currentApplication();
+ if (context.checkCallingOrSelfPermission(READ_DEVICE_CONFIG) != PERMISSION_GRANTED) {
+ if (DEBUG) {
+ Log.d(TAG, "Initialized the InteractionJankMonitor."
+ + " (No READ_DEVICE_CONFIG permission to change configs)"
+ + " enabled=" + mEnabled + ", interval=" + mSamplingInterval
+ + ", missedFrameThreshold=" + mTraceThresholdMissedFrames
+ + ", frameTimeThreshold=" + mTraceThresholdFrameTimeMillis
+ + ", package=" + context.getPackageName());
+ }
+ return;
+ }
- // Post initialization to the background in case we're running on the main
- // thread.
+ // Post initialization to the background in case we're running on the main thread.
mWorker.getThreadHandler().post(
- () -> mPropertiesChangedListener.onPropertiesChanged(
- DeviceConfig.getProperties(
- DeviceConfig.NAMESPACE_INTERACTION_JANK_MONITOR)));
- DeviceConfig.addOnPropertiesChangedListener(
- DeviceConfig.NAMESPACE_INTERACTION_JANK_MONITOR,
- new HandlerExecutor(mWorker.getThreadHandler()),
- mPropertiesChangedListener);
- mEnabled = DEFAULT_ENABLED;
+ () -> {
+ try {
+ mPropertiesChangedListener.onPropertiesChanged(
+ DeviceConfig.getProperties(NAMESPACE_INTERACTION_JANK_MONITOR));
+ DeviceConfig.addOnPropertiesChangedListener(
+ NAMESPACE_INTERACTION_JANK_MONITOR,
+ new HandlerExecutor(mWorker.getThreadHandler()),
+ mPropertiesChangedListener);
+ } catch (SecurityException ex) {
+ Log.d(TAG, "Can't get properties: READ_DEVICE_CONFIG granted="
+ + context.checkCallingOrSelfPermission(READ_DEVICE_CONFIG)
+ + ", package=" + context.getPackageName());
+ }
+ });
}
/**
@@ -917,6 +946,8 @@ public class InteractionJankMonitor {
return "LAUNCHER_CLOSE_ALL_APPS_SWIPE";
case CUJ_LAUNCHER_CLOSE_ALL_APPS_TO_HOME:
return "LAUNCHER_CLOSE_ALL_APPS_TO_HOME";
+ case CUJ_LOCKSCREEN_CLOCK_MOVE_ANIMATION:
+ return "LOCKSCREEN_CLOCK_MOVE_ANIMATION";
}
return "UNKNOWN";
}
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index 05c6842784278bed71c7f5f902c102e765318d30..852cfe32cc902cc899ea3385fe28fa6a5d0eb730 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -167,7 +167,7 @@ public class BatteryStatsImpl extends BatteryStats {
private static final int MAGIC = 0xBA757475; // 'BATSTATS'
// Current on-disk Parcel version. Must be updated when the format of the parcelable changes
- public static final int VERSION = 210;
+ public static final int VERSION = 211;
// The maximum number of names wakelocks we will keep track of
// per uid; once the limit is reached, we batch the remaining wakelocks
@@ -6514,6 +6514,9 @@ public class BatteryStatsImpl extends BatteryStats {
addHistoryRecordLocked(elapsedRealtimeMs, uptimeMs);
mPhoneOn = true;
mPhoneOnTimer.startRunningLocked(elapsedRealtimeMs);
+ if (mConstants.PHONE_ON_EXTERNAL_STATS_COLLECTION) {
+ scheduleSyncExternalStatsLocked("phone-on", ExternalStatsSync.UPDATE_RADIO);
+ }
}
}
@@ -6532,6 +6535,7 @@ public class BatteryStatsImpl extends BatteryStats {
addHistoryRecordLocked(elapsedRealtimeMs, uptimeMs);
mPhoneOn = false;
mPhoneOnTimer.stopRunningLocked(elapsedRealtimeMs);
+ scheduleSyncExternalStatsLocked("phone-off", ExternalStatsSync.UPDATE_RADIO);
}
}
@@ -8507,6 +8511,12 @@ public class BatteryStatsImpl extends BatteryStats {
return getPowerBucketConsumptionUC(MeasuredEnergyStats.POWER_BUCKET_MOBILE_RADIO);
}
+ @GuardedBy("this")
+ @Override
+ public long getPhoneEnergyConsumptionUC() {
+ return getPowerBucketConsumptionUC(MeasuredEnergyStats.POWER_BUCKET_PHONE);
+ }
+
@GuardedBy("this")
@Override
public long getScreenOnMeasuredBatteryConsumptionUC() {
@@ -13751,18 +13761,36 @@ public class BatteryStatsImpl extends BatteryStats {
}
synchronized (this) {
+ final long totalRadioDurationMs =
+ mMobileRadioActiveTimer.getTimeSinceMarkLocked(
+ elapsedRealtimeMs * 1000) / 1000;
+ mMobileRadioActiveTimer.setMark(elapsedRealtimeMs);
+ final long phoneOnDurationMs = Math.min(totalRadioDurationMs,
+ mPhoneOnTimer.getTimeSinceMarkLocked(elapsedRealtimeMs * 1000) / 1000);
+ mPhoneOnTimer.setMark(elapsedRealtimeMs);
+
if (!mOnBatteryInternal || mIgnoreNextExternalStats) {
return;
}
final SparseDoubleArray uidEstimatedConsumptionMah;
+ final long dataConsumedChargeUC;
if (consumedChargeUC > 0 && mMobileRadioPowerCalculator != null
&& mGlobalMeasuredEnergyStats != null) {
+ // Crudely attribute power consumption. Added (totalRadioDurationMs / 2) to the
+ // numerator for long rounding.
+ final long phoneConsumedChargeUC =
+ (consumedChargeUC * phoneOnDurationMs + totalRadioDurationMs / 2)
+ / totalRadioDurationMs;
+ dataConsumedChargeUC = consumedChargeUC - phoneConsumedChargeUC;
mGlobalMeasuredEnergyStats.updateStandardBucket(
- MeasuredEnergyStats.POWER_BUCKET_MOBILE_RADIO, consumedChargeUC);
+ MeasuredEnergyStats.POWER_BUCKET_PHONE, phoneConsumedChargeUC);
+ mGlobalMeasuredEnergyStats.updateStandardBucket(
+ MeasuredEnergyStats.POWER_BUCKET_MOBILE_RADIO, dataConsumedChargeUC);
uidEstimatedConsumptionMah = new SparseDoubleArray();
} else {
uidEstimatedConsumptionMah = null;
+ dataConsumedChargeUC = POWER_DATA_UNAVAILABLE;
}
if (deltaInfo != null) {
@@ -13922,14 +13950,9 @@ public class BatteryStatsImpl extends BatteryStats {
// Update the MeasuredEnergyStats information.
if (uidEstimatedConsumptionMah != null) {
double totalEstimatedConsumptionMah = 0.0;
-
- // Estimate total active radio power consumption since last mark.
- final long totalRadioTimeMs = mMobileRadioActiveTimer.getTimeSinceMarkLocked(
- elapsedRealtimeMs * 1000) / 1000;
- mMobileRadioActiveTimer.setMark(elapsedRealtimeMs);
totalEstimatedConsumptionMah +=
mMobileRadioPowerCalculator.calcPowerFromRadioActiveDurationMah(
- totalRadioTimeMs);
+ totalRadioDurationMs);
// Estimate idle power consumption at each signal strength level
final int numSignalStrengthLevels = mPhoneSignalStrengthsTimer.length;
@@ -13953,7 +13976,7 @@ public class BatteryStatsImpl extends BatteryStats {
mMobileRadioPowerCalculator.calcScanTimePowerMah(scanTimeMs);
distributeEnergyToUidsLocked(MeasuredEnergyStats.POWER_BUCKET_MOBILE_RADIO,
- consumedChargeUC, uidEstimatedConsumptionMah,
+ dataConsumedChargeUC, uidEstimatedConsumptionMah,
totalEstimatedConsumptionMah, elapsedRealtimeMs);
}
@@ -16685,6 +16708,8 @@ public class BatteryStatsImpl extends BatteryStats {
public static final String KEY_MAX_HISTORY_BUFFER_KB = "max_history_buffer_kb";
public static final String KEY_BATTERY_CHARGED_DELAY_MS =
"battery_charged_delay_ms";
+ public static final String KEY_PHONE_ON_EXTERNAL_STATS_COLLECTION =
+ "phone_on_external_stats_collection";
private static final boolean DEFAULT_TRACK_CPU_ACTIVE_CLUSTER_TIME = true;
private static final long DEFAULT_KERNEL_UID_READERS_THROTTLE_TIME = 1_000;
@@ -16697,6 +16722,7 @@ public class BatteryStatsImpl extends BatteryStats {
private static final int DEFAULT_MAX_HISTORY_FILES_LOW_RAM_DEVICE = 64;
private static final int DEFAULT_MAX_HISTORY_BUFFER_LOW_RAM_DEVICE_KB = 64; /*Kilo Bytes*/
private static final int DEFAULT_BATTERY_CHARGED_DELAY_MS = 900000; /* 15 min */
+ private static final boolean DEFAULT_PHONE_ON_EXTERNAL_STATS_COLLECTION = true;
public boolean TRACK_CPU_ACTIVE_CLUSTER_TIME = DEFAULT_TRACK_CPU_ACTIVE_CLUSTER_TIME;
/* Do not set default value for KERNEL_UID_READERS_THROTTLE_TIME. Need to trigger an
@@ -16712,6 +16738,8 @@ public class BatteryStatsImpl extends BatteryStats {
public int MAX_HISTORY_FILES;
public int MAX_HISTORY_BUFFER; /*Bytes*/
public int BATTERY_CHARGED_DELAY_MS = DEFAULT_BATTERY_CHARGED_DELAY_MS;
+ public boolean PHONE_ON_EXTERNAL_STATS_COLLECTION =
+ DEFAULT_PHONE_ON_EXTERNAL_STATS_COLLECTION;
private ContentResolver mResolver;
private final KeyValueListParser mParser = new KeyValueListParser(',');
@@ -16788,6 +16816,11 @@ public class BatteryStatsImpl extends BatteryStats {
DEFAULT_MAX_HISTORY_BUFFER_LOW_RAM_DEVICE_KB
: DEFAULT_MAX_HISTORY_BUFFER_KB)
* 1024;
+
+ PHONE_ON_EXTERNAL_STATS_COLLECTION = mParser.getBoolean(
+ KEY_PHONE_ON_EXTERNAL_STATS_COLLECTION,
+ DEFAULT_PHONE_ON_EXTERNAL_STATS_COLLECTION);
+
updateBatteryChargedDelayMsLocked();
}
}
@@ -16842,6 +16875,8 @@ public class BatteryStatsImpl extends BatteryStats {
pw.println(MAX_HISTORY_BUFFER/1024);
pw.print(KEY_BATTERY_CHARGED_DELAY_MS); pw.print("=");
pw.println(BATTERY_CHARGED_DELAY_MS);
+ pw.print(KEY_PHONE_ON_EXTERNAL_STATS_COLLECTION); pw.print("=");
+ pw.println(PHONE_ON_EXTERNAL_STATS_COLLECTION);
}
}
diff --git a/core/java/com/android/internal/os/BatteryUsageStatsProvider.java b/core/java/com/android/internal/os/BatteryUsageStatsProvider.java
index 09e409bd934ef6bf3a58af8a85e9a7f489b26247..ac4976f2a46a4af815ce63986df2acd02286292d 100644
--- a/core/java/com/android/internal/os/BatteryUsageStatsProvider.java
+++ b/core/java/com/android/internal/os/BatteryUsageStatsProvider.java
@@ -298,18 +298,16 @@ public class BatteryUsageStatsProvider {
BatteryStats.Uid.PROCESS_STATE_FOREGROUND, realtimeUs,
BatteryStats.STATS_SINCE_CHARGED);
- totalForegroundDurationUs += uid.getProcessStateTime(
- BatteryStats.Uid.PROCESS_STATE_FOREGROUND_SERVICE, realtimeUs,
- BatteryStats.STATS_SINCE_CHARGED);
-
return totalForegroundDurationUs / 1000;
}
private long getProcessBackgroundTimeMs(BatteryStats.Uid uid, long realtimeUs) {
- return uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_BACKGROUND, realtimeUs,
- BatteryStats.STATS_SINCE_CHARGED) / 1000;
+ return (uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_BACKGROUND,
+ realtimeUs, BatteryStats.STATS_SINCE_CHARGED)
+ + uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_FOREGROUND_SERVICE,
+ realtimeUs, BatteryStats.STATS_SINCE_CHARGED))
+ / 1000;
}
-
private BatteryUsageStats getAggregatedBatteryUsageStats(BatteryUsageStatsQuery query) {
final boolean includePowerModels = (query.getFlags()
& BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_INCLUDE_POWER_MODELS) != 0;
diff --git a/core/java/com/android/internal/os/PhonePowerCalculator.java b/core/java/com/android/internal/os/PhonePowerCalculator.java
index cb893defab14238611223db79322e6533661d484..f1c4ffe077883967dd30ba5568406c4c5bb5344c 100644
--- a/core/java/com/android/internal/os/PhonePowerCalculator.java
+++ b/core/java/com/android/internal/os/PhonePowerCalculator.java
@@ -40,14 +40,27 @@ public class PhonePowerCalculator extends PowerCalculator {
@Override
public void calculate(BatteryUsageStats.Builder builder, BatteryStats batteryStats,
long rawRealtimeUs, long rawUptimeUs, BatteryUsageStatsQuery query) {
+ final long energyConsumerUC = batteryStats.getPhoneEnergyConsumptionUC();
+ final int powerModel = getPowerModel(energyConsumerUC, query);
+
final long phoneOnTimeMs = batteryStats.getPhoneOnTime(rawRealtimeUs,
BatteryStats.STATS_SINCE_CHARGED) / 1000;
- final double phoneOnPower = mPowerEstimator.calculatePower(phoneOnTimeMs);
- if (phoneOnPower != 0) {
- builder.getAggregateBatteryConsumerBuilder(
- BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_DEVICE)
- .setConsumedPower(BatteryConsumer.POWER_COMPONENT_PHONE, phoneOnPower)
- .setUsageDurationMillis(BatteryConsumer.POWER_COMPONENT_PHONE, phoneOnTimeMs);
+ final double phoneOnPower;
+ switch (powerModel) {
+ case BatteryConsumer.POWER_MODEL_MEASURED_ENERGY:
+ phoneOnPower = uCtoMah(energyConsumerUC);
+ break;
+ case BatteryConsumer.POWER_MODEL_POWER_PROFILE:
+ default:
+ phoneOnPower = mPowerEstimator.calculatePower(phoneOnTimeMs);
}
+
+ if (phoneOnPower == 0.0) return;
+
+ builder.getAggregateBatteryConsumerBuilder(
+ BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_DEVICE)
+ .setConsumedPower(BatteryConsumer.POWER_COMPONENT_PHONE, phoneOnPower, powerModel)
+ .setUsageDurationMillis(BatteryConsumer.POWER_COMPONENT_PHONE, phoneOnTimeMs);
+
}
}
diff --git a/core/java/com/android/internal/os/RoSystemProperties.java b/core/java/com/android/internal/os/RoSystemProperties.java
index 98d81c9598b8fa8c92dedebfa53d22b7c6aed4c8..cccd80e824209019c4a022e27ac8e722a0f07503 100644
--- a/core/java/com/android/internal/os/RoSystemProperties.java
+++ b/core/java/com/android/internal/os/RoSystemProperties.java
@@ -31,6 +31,8 @@ public class RoSystemProperties {
SystemProperties.getInt("ro.factorytest", 0);
public static final String CONTROL_PRIVAPP_PERMISSIONS =
SystemProperties.get("ro.control_privapp_permissions");
+ public static final boolean SUPPORT_ONE_HANDED_MODE =
+ SystemProperties.getBoolean("ro.support_one_handed_mode", /* def= */ false);
// ------ ro.hdmi.* -------- //
/**
diff --git a/core/java/com/android/internal/policy/GestureNavigationSettingsObserver.java b/core/java/com/android/internal/policy/GestureNavigationSettingsObserver.java
index 205c5fd735eac795225373acb63da57f4672dc6a..f1ed3bed5d8921d808b0908cbba421335f478349 100644
--- a/core/java/com/android/internal/policy/GestureNavigationSettingsObserver.java
+++ b/core/java/com/android/internal/policy/GestureNavigationSettingsObserver.java
@@ -56,6 +56,9 @@ public class GestureNavigationSettingsObserver extends ContentObserver {
}
};
+ /**
+ * Registers the observer for all users.
+ */
public void register() {
ContentResolver r = mContext.getContentResolver();
r.registerContentObserver(
@@ -73,6 +76,26 @@ public class GestureNavigationSettingsObserver extends ContentObserver {
mOnPropertiesChangedListener);
}
+ /**
+ * Registers the observer for the calling user.
+ */
+ public void registerForCallingUser() {
+ ContentResolver r = mContext.getContentResolver();
+ r.registerContentObserver(
+ Settings.Secure.getUriFor(Settings.Secure.BACK_GESTURE_INSET_SCALE_LEFT),
+ false, this);
+ r.registerContentObserver(
+ Settings.Secure.getUriFor(Settings.Secure.BACK_GESTURE_INSET_SCALE_RIGHT),
+ false, this);
+ r.registerContentObserver(
+ Settings.Secure.getUriFor(Settings.Secure.USER_SETUP_COMPLETE),
+ false, this);
+ DeviceConfig.addOnPropertiesChangedListener(
+ DeviceConfig.NAMESPACE_SYSTEMUI,
+ runnable -> mMainHandler.post(runnable),
+ mOnPropertiesChangedListener);
+ }
+
public void unregister() {
mContext.getContentResolver().unregisterContentObserver(this);
DeviceConfig.removeOnPropertiesChangedListener(mOnPropertiesChangedListener);
@@ -86,12 +109,46 @@ public class GestureNavigationSettingsObserver extends ContentObserver {
}
}
+ /**
+ * Returns the left sensitivity for the current user. To be used in code that runs primarily
+ * in one user's process.
+ */
public int getLeftSensitivity(Resources userRes) {
- return getSensitivity(userRes, Settings.Secure.BACK_GESTURE_INSET_SCALE_LEFT);
+ final float scale = Settings.Secure.getFloatForUser(mContext.getContentResolver(),
+ Settings.Secure.BACK_GESTURE_INSET_SCALE_LEFT, 1.0f, UserHandle.USER_CURRENT);
+ return (int) (getUnscaledInset(userRes) * scale);
}
+ /**
+ * Returns the left sensitivity for the calling user. To be used in code that runs in a
+ * per-user process.
+ */
+ @SuppressWarnings("NonUserGetterCalled")
+ public int getLeftSensitivityForCallingUser(Resources userRes) {
+ final float scale = Settings.Secure.getFloat(mContext.getContentResolver(),
+ Settings.Secure.BACK_GESTURE_INSET_SCALE_LEFT, 1.0f);
+ return (int) (getUnscaledInset(userRes) * scale);
+ }
+
+ /**
+ * Returns the right sensitivity for the current user. To be used in code that runs primarily
+ * in one user's process.
+ */
public int getRightSensitivity(Resources userRes) {
- return getSensitivity(userRes, Settings.Secure.BACK_GESTURE_INSET_SCALE_RIGHT);
+ final float scale = Settings.Secure.getFloatForUser(mContext.getContentResolver(),
+ Settings.Secure.BACK_GESTURE_INSET_SCALE_RIGHT, 1.0f, UserHandle.USER_CURRENT);
+ return (int) (getUnscaledInset(userRes) * scale);
+ }
+
+ /**
+ * Returns the right sensitivity for the calling user. To be used in code that runs in a
+ * per-user process.
+ */
+ @SuppressWarnings("NonUserGetterCalled")
+ public int getRightSensitivityForCallingUser(Resources userRes) {
+ final float scale = Settings.Secure.getFloat(mContext.getContentResolver(),
+ Settings.Secure.BACK_GESTURE_INSET_SCALE_RIGHT, 1.0f);
+ return (int) (getUnscaledInset(userRes) * scale);
}
public boolean areNavigationButtonForcedVisible() {
@@ -99,7 +156,7 @@ public class GestureNavigationSettingsObserver extends ContentObserver {
Settings.Secure.USER_SETUP_COMPLETE, 0, UserHandle.USER_CURRENT) == 0;
}
- private int getSensitivity(Resources userRes, String side) {
+ private float getUnscaledInset(Resources userRes) {
final DisplayMetrics dm = userRes.getDisplayMetrics();
final float defaultInset = userRes.getDimension(
com.android.internal.R.dimen.config_backGestureInset) / dm.density;
@@ -110,8 +167,6 @@ public class GestureNavigationSettingsObserver extends ContentObserver {
: defaultInset;
final float inset = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, backGestureInset,
dm);
- final float scale = Settings.Secure.getFloatForUser(
- mContext.getContentResolver(), side, 1.0f, UserHandle.USER_CURRENT);
- return (int) (inset * scale);
+ return inset;
}
}
diff --git a/core/java/com/android/internal/policy/PhoneWindow.java b/core/java/com/android/internal/policy/PhoneWindow.java
index fb38bba8ee16700438350c306210de9a95ac690f..e603e2ed57f1aef4c648562e595fc7473134e059 100644
--- a/core/java/com/android/internal/policy/PhoneWindow.java
+++ b/core/java/com/android/internal/policy/PhoneWindow.java
@@ -295,6 +295,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
private boolean mClosingActionMenu;
private int mVolumeControlStreamType = AudioManager.USE_DEFAULT_STREAM_TYPE;
+ private int mAudioMode = AudioManager.MODE_NORMAL;
private MediaController mMediaController;
private AudioManager mAudioManager;
@@ -317,6 +318,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
}
};
+ private AudioManager.OnModeChangedListener mOnModeChangedListener;
+
private Transition mEnterTransition = null;
private Transition mReturnTransition = USE_DEFAULT_TRANSITION;
private Transition mExitTransition = null;
@@ -379,8 +382,12 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
// window, as we'll be skipping the addView in handleResumeActivity(), and
// the token will not be updated as for a new window.
getAttributes().token = preservedWindow.getAttributes().token;
- mProxyOnBackInvokedDispatcher.setActualDispatcher(
- preservedWindow.getOnBackInvokedDispatcher());
+ final ViewRootImpl viewRoot = mDecor.getViewRootImpl();
+ if (viewRoot != null) {
+ // Clear the old callbacks and attach to the new window.
+ viewRoot.getOnBackInvokedDispatcher().clear();
+ onViewRootImplSet(viewRoot);
+ }
}
// Even though the device doesn't support picture-in-picture mode,
// an user can force using it through developer options.
@@ -1946,9 +1953,9 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
case KeyEvent.KEYCODE_VOLUME_UP:
case KeyEvent.KEYCODE_VOLUME_DOWN:
case KeyEvent.KEYCODE_VOLUME_MUTE: {
- // If we have a session send it the volume command, otherwise
- // use the suggested stream.
- if (mMediaController != null) {
+ // If we have a session and no active phone call send it the volume command,
+ // otherwise use the suggested stream.
+ if (mMediaController != null && !isActivePhoneCallOngoing()) {
getMediaSessionManager().dispatchVolumeKeyEventToSessionAsSystemService(event,
mMediaController.getSessionToken());
} else {
@@ -1999,6 +2006,11 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
return false;
}
+ private boolean isActivePhoneCallOngoing() {
+ return mAudioMode == AudioManager.MODE_IN_CALL
+ || mAudioMode == AudioManager.MODE_IN_COMMUNICATION;
+ }
+
private KeyguardManager getKeyguardManager() {
if (mKeyguardManager == null) {
mKeyguardManager = (KeyguardManager) getContext().getSystemService(
@@ -2322,6 +2334,14 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
}
}
+ @Override
+ protected void onDestroy() {
+ if (mOnModeChangedListener != null) {
+ getAudioManager().removeOnModeChangedListener(mOnModeChangedListener);
+ mOnModeChangedListener = null;
+ }
+ }
+
private class PanelMenuPresenterCallback implements MenuPresenter.Callback {
@Override
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) {
@@ -3204,6 +3224,15 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
@Override
public void setMediaController(MediaController controller) {
mMediaController = controller;
+ if (controller != null && mOnModeChangedListener == null) {
+ mAudioMode = getAudioManager().getMode();
+ mOnModeChangedListener = mode -> mAudioMode = mode;
+ getAudioManager().addOnModeChangedListener(getContext().getMainExecutor(),
+ mOnModeChangedListener);
+ } else if (mOnModeChangedListener != null) {
+ getAudioManager().removeOnModeChangedListener(mOnModeChangedListener);
+ mOnModeChangedListener = null;
+ }
}
@Override
diff --git a/core/java/com/android/internal/power/MeasuredEnergyStats.java b/core/java/com/android/internal/power/MeasuredEnergyStats.java
index 7fb8696a217d2f58fd0248d28f2781e2d97f7ee2..5bfdd62592c8b957a5c445274438cedc4eab11fe 100644
--- a/core/java/com/android/internal/power/MeasuredEnergyStats.java
+++ b/core/java/com/android/internal/power/MeasuredEnergyStats.java
@@ -59,7 +59,9 @@ public class MeasuredEnergyStats {
public static final int POWER_BUCKET_BLUETOOTH = 5;
public static final int POWER_BUCKET_GNSS = 6;
public static final int POWER_BUCKET_MOBILE_RADIO = 7;
- public static final int NUMBER_STANDARD_POWER_BUCKETS = 8; // Buckets above this are custom.
+ public static final int POWER_BUCKET_CAMERA = 8;
+ public static final int POWER_BUCKET_PHONE = 9;
+ public static final int NUMBER_STANDARD_POWER_BUCKETS = 10; // Buckets above this are custom.
@IntDef(prefix = {"POWER_BUCKET_"}, value = {
POWER_BUCKET_UNKNOWN,
diff --git a/core/java/com/android/internal/statusbar/IStatusBar.aidl b/core/java/com/android/internal/statusbar/IStatusBar.aidl
index 017bf3f3dd6c5b3b448509138067f2a5b8ca6326..04fc4a6fd81dea3f1e1c81839ddbfc1911edeb99 100644
--- a/core/java/com/android/internal/statusbar/IStatusBar.aidl
+++ b/core/java/com/android/internal/statusbar/IStatusBar.aidl
@@ -338,4 +338,11 @@ oneway interface IStatusBar
* @param leftOrTop indicates where the stage split is.
*/
void enterStageSplitFromRunningApp(boolean leftOrTop);
+
+ /**
+ * Shows the media output switcher dialog.
+ *
+ * @param packageName of the session for which the output switcher is shown.
+ */
+ void showMediaOutputSwitcher(String packageName);
}
diff --git a/core/java/com/android/internal/util/LatencyTracker.java b/core/java/com/android/internal/util/LatencyTracker.java
index afb526aeea6fb2843cbe9a320c6e2877787da078..c8a8b586590b2e507fa79a04178084b6c05e4f01 100644
--- a/core/java/com/android/internal/util/LatencyTracker.java
+++ b/core/java/com/android/internal/util/LatencyTracker.java
@@ -24,12 +24,15 @@ import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPOR
import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_FOLD_TO_AOD;
import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_LOAD_SHARE_SHEET;
import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_LOCKSCREEN_UNLOCK;
+import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_REQUEST_IME_HIDDEN;
+import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_REQUEST_IME_SHOWN;
import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_ROTATE_SCREEN;
import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_ROTATE_SCREEN_CAMERA_CHECK;
import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_ROTATE_SCREEN_SENSOR;
import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_SHOW_BACK_ARROW;
import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_SHOW_SELECTION_TOOLBAR;
import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_SHOW_VOICE_INTERACTION;
+import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_SMARTSPACE_DOORBELL;
import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_START_RECENTS_ANIMATION;
import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_SWITCH_DISPLAY_UNFOLD;
import static com.android.internal.util.FrameworkStatsLog.UIACTION_LATENCY_REPORTED__ACTION__ACTION_TOGGLE_RECENTS;
@@ -187,6 +190,25 @@ public class LatencyTracker {
*/
public static final int ACTION_SHOW_VOICE_INTERACTION = 19;
+ /**
+ * Time it takes to request IME shown animation.
+ */
+ public static final int ACTION_REQUEST_IME_SHOWN = 20;
+
+ /**
+ * Time it takes to request IME hidden animation.
+ */
+ public static final int ACTION_REQUEST_IME_HIDDEN = 21;
+
+ /**
+ * Time it takes to load the animation frames in smart space doorbell card.
+ * It measures the duration from the images uris are passed into the view
+ * to all the frames are loaded.
+ *
+ * A long latency makes the doorbell animation looks janky until all the frames are loaded.
+ */
+ public static final int ACTION_SMARTSPACE_DOORBELL = 22;
+
private static final int[] ACTIONS_ALL = {
ACTION_EXPAND_PANEL,
ACTION_TOGGLE_RECENTS,
@@ -208,6 +230,9 @@ public class LatencyTracker {
ACTION_SHOW_SELECTION_TOOLBAR,
ACTION_FOLD_TO_AOD,
ACTION_SHOW_VOICE_INTERACTION,
+ ACTION_REQUEST_IME_SHOWN,
+ ACTION_REQUEST_IME_HIDDEN,
+ ACTION_SMARTSPACE_DOORBELL,
};
/** @hide */
@@ -232,6 +257,9 @@ public class LatencyTracker {
ACTION_SHOW_SELECTION_TOOLBAR,
ACTION_FOLD_TO_AOD,
ACTION_SHOW_VOICE_INTERACTION,
+ ACTION_REQUEST_IME_SHOWN,
+ ACTION_REQUEST_IME_HIDDEN,
+ ACTION_SMARTSPACE_DOORBELL,
})
@Retention(RetentionPolicy.SOURCE)
public @interface Action {
@@ -259,6 +287,9 @@ public class LatencyTracker {
UIACTION_LATENCY_REPORTED__ACTION__ACTION_SHOW_SELECTION_TOOLBAR,
UIACTION_LATENCY_REPORTED__ACTION__ACTION_FOLD_TO_AOD,
UIACTION_LATENCY_REPORTED__ACTION__ACTION_SHOW_VOICE_INTERACTION,
+ UIACTION_LATENCY_REPORTED__ACTION__ACTION_REQUEST_IME_SHOWN,
+ UIACTION_LATENCY_REPORTED__ACTION__ACTION_REQUEST_IME_HIDDEN,
+ UIACTION_LATENCY_REPORTED__ACTION__ACTION_SMARTSPACE_DOORBELL,
};
private static LatencyTracker sLatencyTracker;
@@ -368,6 +399,12 @@ public class LatencyTracker {
return "ACTION_FOLD_TO_AOD";
case UIACTION_LATENCY_REPORTED__ACTION__ACTION_SHOW_VOICE_INTERACTION:
return "ACTION_SHOW_VOICE_INTERACTION";
+ case UIACTION_LATENCY_REPORTED__ACTION__ACTION_REQUEST_IME_SHOWN:
+ return "ACTION_REQUEST_IME_SHOWN";
+ case UIACTION_LATENCY_REPORTED__ACTION__ACTION_REQUEST_IME_HIDDEN:
+ return "ACTION_REQUEST_IME_HIDDEN";
+ case UIACTION_LATENCY_REPORTED__ACTION__ACTION_SMARTSPACE_DOORBELL:
+ return "ACTION_SMARTSPACE_DOORBELL";
default:
throw new IllegalArgumentException("Invalid action");
}
@@ -434,7 +471,7 @@ public class LatencyTracker {
*/
public void onActionStart(@Action int action, String tag) {
synchronized (mLock) {
- if (!isEnabled()) {
+ if (!isEnabled(action)) {
return;
}
// skip if the action is already instrumenting.
@@ -458,7 +495,7 @@ public class LatencyTracker {
*/
public void onActionEnd(@Action int action) {
synchronized (mLock) {
- if (!isEnabled()) {
+ if (!isEnabled(action)) {
return;
}
Session session = mSessions.get(action);
@@ -568,23 +605,27 @@ public class LatencyTracker {
void begin(@NonNull Runnable timeoutAction) {
mStartRtc = SystemClock.elapsedRealtime();
- Trace.asyncTraceBegin(TRACE_TAG_APP, traceName(), 0);
+ Trace.asyncTraceForTrackBegin(TRACE_TAG_APP, traceName(), traceName(), 0);
// start counting timeout.
- mTimeoutRunnable = timeoutAction;
+ mTimeoutRunnable = () -> {
+ Trace.instantForTrack(TRACE_TAG_APP, traceName(), "timeout");
+ timeoutAction.run();
+ };
BackgroundThread.getHandler()
.postDelayed(mTimeoutRunnable, TimeUnit.SECONDS.toMillis(15));
}
void end() {
mEndRtc = SystemClock.elapsedRealtime();
- Trace.asyncTraceEnd(TRACE_TAG_APP, traceName(), 0);
+ Trace.asyncTraceForTrackEnd(TRACE_TAG_APP, traceName(), "end", 0);
BackgroundThread.getHandler().removeCallbacks(mTimeoutRunnable);
mTimeoutRunnable = null;
}
void cancel() {
- Trace.asyncTraceEnd(TRACE_TAG_APP, traceName(), 0);
+ Trace.instantForTrack(TRACE_TAG_APP, traceName(), "cancel");
+ Trace.asyncTraceForTrackEnd(TRACE_TAG_APP, traceName(), "cancel", 0);
BackgroundThread.getHandler().removeCallbacks(mTimeoutRunnable);
mTimeoutRunnable = null;
}
diff --git a/core/java/com/android/internal/util/ObservableServiceConnection.java b/core/java/com/android/internal/util/ObservableServiceConnection.java
index 3165d293bd91e831718e8cc3e3f5e6958edf4b81..45256fd26cba69904e5d0a9d70e472cb2b379d0a 100644
--- a/core/java/com/android/internal/util/ObservableServiceConnection.java
+++ b/core/java/com/android/internal/util/ObservableServiceConnection.java
@@ -164,6 +164,13 @@ public class ObservableServiceConnection implements ServiceConnection {
mFlags = flags;
}
+ /**
+ * Executes code on the executor specified at construction.
+ */
+ public void execute(Runnable runnable) {
+ mExecutor.execute(runnable);
+ }
+
/**
* Initiate binding to the service.
*
diff --git a/core/java/com/android/internal/util/ScreenshotHelper.java b/core/java/com/android/internal/util/ScreenshotHelper.java
index 79c519645a24dd92e608cdde3e0e546c42b5a2c4..3a393b689717538100faab167d499cf35b6530e3 100644
--- a/core/java/com/android/internal/util/ScreenshotHelper.java
+++ b/core/java/com/android/internal/util/ScreenshotHelper.java
@@ -1,7 +1,7 @@
package com.android.internal.util;
import static android.content.Intent.ACTION_USER_SWITCHED;
-import static android.view.WindowManager.TAKE_SCREENSHOT_PROVIDED_IMAGE;
+import static android.view.WindowManager.TAKE_SCREENSHOT_FULLSCREEN;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -11,29 +11,18 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
-import android.graphics.Bitmap;
-import android.graphics.ColorSpace;
-import android.graphics.Insets;
-import android.graphics.ParcelableColorSpace;
-import android.graphics.Rect;
-import android.hardware.HardwareBuffer;
import android.net.Uri;
-import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.Messenger;
-import android.os.Parcel;
-import android.os.Parcelable;
import android.os.RemoteException;
import android.os.UserHandle;
import android.util.Log;
import android.view.WindowManager.ScreenshotSource;
-import android.view.WindowManager.ScreenshotType;
import com.android.internal.annotations.VisibleForTesting;
-import java.util.Objects;
import java.util.function.Consumer;
public class ScreenshotHelper {
@@ -41,212 +30,6 @@ public class ScreenshotHelper {
public static final int SCREENSHOT_MSG_URI = 1;
public static final int SCREENSHOT_MSG_PROCESS_COMPLETE = 2;
- /**
- * Describes a screenshot request.
- */
- public static class ScreenshotRequest implements Parcelable {
- @ScreenshotType
- private final int mType;
-
- @ScreenshotSource
- private final int mSource;
-
- private final Bundle mBitmapBundle;
- private final Rect mBoundsInScreen;
- private final Insets mInsets;
- private final int mTaskId;
- private final int mUserId;
- private final ComponentName mTopComponent;
-
-
- public ScreenshotRequest(@ScreenshotType int type, @ScreenshotSource int source) {
- this(type, source, /* topComponent */ null);
- }
-
- public ScreenshotRequest(@ScreenshotType int type, @ScreenshotSource int source,
- ComponentName topComponent) {
- this(type,
- source,
- /* bitmapBundle*/ null,
- /* boundsInScreen */ null,
- /* insets */ null,
- /* taskId */ -1,
- /* userId */ -1,
- topComponent);
- }
-
- public ScreenshotRequest(@ScreenshotType int type, @ScreenshotSource int source,
- Bundle bitmapBundle, Rect boundsInScreen, Insets insets, int taskId, int userId,
- ComponentName topComponent) {
- mType = type;
- mSource = source;
- mBitmapBundle = bitmapBundle;
- mBoundsInScreen = boundsInScreen;
- mInsets = insets;
- mTaskId = taskId;
- mUserId = userId;
- mTopComponent = topComponent;
- }
-
- ScreenshotRequest(Parcel in) {
- mType = in.readInt();
- mSource = in.readInt();
- if (in.readInt() == 1) {
- mBitmapBundle = in.readBundle(getClass().getClassLoader());
- mBoundsInScreen = in.readParcelable(Rect.class.getClassLoader(), Rect.class);
- mInsets = in.readParcelable(Insets.class.getClassLoader(), Insets.class);
- mTaskId = in.readInt();
- mUserId = in.readInt();
- mTopComponent = in.readParcelable(ComponentName.class.getClassLoader(),
- ComponentName.class);
- } else {
- mBitmapBundle = null;
- mBoundsInScreen = null;
- mInsets = null;
- mTaskId = -1;
- mUserId = -1;
- mTopComponent = null;
- }
- }
-
- @ScreenshotType
- public int getType() {
- return mType;
- }
-
- @ScreenshotSource
- public int getSource() {
- return mSource;
- }
-
- public Bundle getBitmapBundle() {
- return mBitmapBundle;
- }
-
- public Rect getBoundsInScreen() {
- return mBoundsInScreen;
- }
-
- public Insets getInsets() {
- return mInsets;
- }
-
- public int getTaskId() {
- return mTaskId;
- }
-
- public int getUserId() {
- return mUserId;
- }
-
- public ComponentName getTopComponent() {
- return mTopComponent;
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeInt(mType);
- dest.writeInt(mSource);
- if (mBitmapBundle == null) {
- dest.writeInt(0);
- } else {
- dest.writeInt(1);
- dest.writeBundle(mBitmapBundle);
- dest.writeParcelable(mBoundsInScreen, 0);
- dest.writeParcelable(mInsets, 0);
- dest.writeInt(mTaskId);
- dest.writeInt(mUserId);
- dest.writeParcelable(mTopComponent, 0);
- }
- }
-
- @NonNull
- public static final Parcelable.Creator CREATOR =
- new Parcelable.Creator() {
-
- @Override
- public ScreenshotRequest createFromParcel(Parcel source) {
- return new ScreenshotRequest(source);
- }
-
- @Override
- public ScreenshotRequest[] newArray(int size) {
- return new ScreenshotRequest[size];
- }
- };
- }
-
- /**
- * Bundler used to convert between a hardware bitmap and a bundle without copying the internal
- * content. This is expected to be used together with {@link #provideScreenshot} to handle a
- * hardware bitmap as a screenshot.
- */
- public static final class HardwareBitmapBundler {
- private static final String KEY_BUFFER = "bitmap_util_buffer";
- private static final String KEY_COLOR_SPACE = "bitmap_util_color_space";
-
- private HardwareBitmapBundler() {
- }
-
- /**
- * Creates a Bundle that represents the given Bitmap.
- *
The Bundle will contain a wrapped version of the Bitmaps HardwareBuffer, so will avoid
- * copies when passing across processes, only pass to processes you trust.
- *
- *
Returns a new Bundle rather than modifying an exiting one to avoid key collisions, the
- * returned Bundle should be treated as a standalone object.
- *
- * @param bitmap to convert to bundle
- * @return a Bundle representing the bitmap, should only be parsed by
- * {@link #bundleToHardwareBitmap(Bundle)}
- */
- public static Bundle hardwareBitmapToBundle(Bitmap bitmap) {
- if (bitmap.getConfig() != Bitmap.Config.HARDWARE) {
- throw new IllegalArgumentException(
- "Passed bitmap must have hardware config, found: " + bitmap.getConfig());
- }
-
- // Bitmap assumes SRGB for null color space
- ParcelableColorSpace colorSpace =
- bitmap.getColorSpace() == null
- ? new ParcelableColorSpace(ColorSpace.get(ColorSpace.Named.SRGB))
- : new ParcelableColorSpace(bitmap.getColorSpace());
-
- Bundle bundle = new Bundle();
- bundle.putParcelable(KEY_BUFFER, bitmap.getHardwareBuffer());
- bundle.putParcelable(KEY_COLOR_SPACE, colorSpace);
-
- return bundle;
- }
-
- /**
- * Extracts the Bitmap added to a Bundle with {@link #hardwareBitmapToBundle(Bitmap)} .}
- *
- *
This Bitmap contains the HardwareBuffer from the original caller, be careful passing
- * this Bitmap on to any other source.
- *
- * @param bundle containing the bitmap
- * @return a hardware Bitmap
- */
- public static Bitmap bundleToHardwareBitmap(Bundle bundle) {
- if (!bundle.containsKey(KEY_BUFFER) || !bundle.containsKey(KEY_COLOR_SPACE)) {
- throw new IllegalArgumentException("Bundle does not contain a hardware bitmap");
- }
-
- HardwareBuffer buffer = bundle.getParcelable(KEY_BUFFER, HardwareBuffer.class);
- ParcelableColorSpace colorSpace = bundle.getParcelable(KEY_COLOR_SPACE,
- ParcelableColorSpace.class);
-
- return Bitmap.wrapHardwareBuffer(Objects.requireNonNull(buffer),
- colorSpace.getColorSpace());
- }
- }
-
private static final String TAG = "ScreenshotHelper";
// Time until we give up on the screenshot & show an error instead.
@@ -277,68 +60,53 @@ public class ScreenshotHelper {
/**
* Request a screenshot be taken.
*
- * Added to support reducing unit test duration; the method variant without a timeout argument
- * is recommended for general use.
+ * Convenience method for taking a full screenshot with provided source.
*
- * @param type The type of screenshot, defined by {@link ScreenshotType}
- * @param source The source of the screenshot request, defined by {@link ScreenshotSource}
- * @param handler used to process messages received from the screenshot service
+ * @param source source of the screenshot request, defined by {@link
+ * ScreenshotSource}
+ * @param handler used to process messages received from the screenshot service
* @param completionConsumer receives the URI of the captured screenshot, once saved or
- * null if no screenshot was saved
+ * null if no screenshot was saved
*/
- public void takeScreenshot(@ScreenshotType int type, @ScreenshotSource int source,
- @NonNull Handler handler, @Nullable Consumer completionConsumer) {
- ScreenshotRequest screenshotRequest = new ScreenshotRequest(type, source);
- takeScreenshot(handler, screenshotRequest, SCREENSHOT_TIMEOUT_MS,
- completionConsumer);
+ public void takeScreenshot(@ScreenshotSource int source, @NonNull Handler handler,
+ @Nullable Consumer completionConsumer) {
+ ScreenshotRequest request =
+ new ScreenshotRequest.Builder(TAKE_SCREENSHOT_FULLSCREEN, source).build();
+ takeScreenshot(request, handler, completionConsumer);
}
/**
* Request a screenshot be taken.
*
- * Added to support reducing unit test duration; the method variant without a timeout argument
- * is recommended for general use.
*
- * @param type The type of screenshot, defined by {@link ScreenshotType}
- * @param source The source of the screenshot request, defined by {@link ScreenshotSource}
- * @param handler used to process messages received from the screenshot service
- * @param timeoutMs time limit for processing, intended only for testing
+ * @param request description of the screenshot request, either for taking a
+ * screenshot or
+ * providing a bitmap
+ * @param handler used to process messages received from the screenshot service
* @param completionConsumer receives the URI of the captured screenshot, once saved or
- * null if no screenshot was saved
+ * null if no screenshot was saved
*/
- @VisibleForTesting
- public void takeScreenshot(@ScreenshotType int type, @ScreenshotSource int source,
- @NonNull Handler handler, long timeoutMs, @Nullable Consumer completionConsumer) {
- ScreenshotRequest screenshotRequest = new ScreenshotRequest(type, source);
- takeScreenshot(handler, screenshotRequest, timeoutMs, completionConsumer);
+ public void takeScreenshot(ScreenshotRequest request, @NonNull Handler handler,
+ @Nullable Consumer completionConsumer) {
+ takeScreenshotInternal(request, handler, completionConsumer, SCREENSHOT_TIMEOUT_MS);
}
/**
- * Request that provided image be handled as if it was a screenshot.
+ * Request a screenshot be taken.
+ *
+ * Added to support reducing unit test duration; the method variant without a timeout argument
+ * is recommended for general use.
*
- * @param screenshotBundle Bundle containing the buffer and color space of the screenshot.
- * @param boundsInScreen The bounds in screen coordinates that the bitmap originated from.
- * @param insets The insets that the image was shown with, inside the screen bounds.
- * @param taskId The taskId of the task that the screen shot was taken of.
- * @param userId The userId of user running the task provided in taskId.
- * @param topComponent The component name of the top component running in the task.
- * @param source The source of the screenshot request, defined by {@link ScreenshotSource}
- * @param handler A handler used in case the screenshot times out
+ * @param request description of the screenshot request, either for taking a
+ * screenshot or providing a bitmap
+ * @param handler used to process messages received from the screenshot service
+ * @param timeoutMs time limit for processing, intended only for testing
* @param completionConsumer receives the URI of the captured screenshot, once saved or
- * null if no screenshot was saved
+ * null if no screenshot was saved
*/
- public void provideScreenshot(@NonNull Bundle screenshotBundle, @NonNull Rect boundsInScreen,
- @NonNull Insets insets, int taskId, int userId, ComponentName topComponent,
- @ScreenshotSource int source, @NonNull Handler handler,
- @Nullable Consumer completionConsumer) {
- ScreenshotRequest screenshotRequest = new ScreenshotRequest(TAKE_SCREENSHOT_PROVIDED_IMAGE,
- source, screenshotBundle, boundsInScreen, insets, taskId, userId, topComponent);
- takeScreenshot(handler, screenshotRequest, SCREENSHOT_TIMEOUT_MS, completionConsumer);
- }
-
- private void takeScreenshot(@NonNull Handler handler,
- ScreenshotRequest screenshotRequest, long timeoutMs,
- @Nullable Consumer completionConsumer) {
+ @VisibleForTesting
+ public void takeScreenshotInternal(ScreenshotRequest request, @NonNull Handler handler,
+ @Nullable Consumer completionConsumer, long timeoutMs) {
synchronized (mScreenshotLock) {
final Runnable mScreenshotTimeout = () -> {
@@ -354,7 +122,7 @@ public class ScreenshotHelper {
}
};
- Message msg = Message.obtain(null, 0, screenshotRequest);
+ Message msg = Message.obtain(null, 0, request);
Handler h = new Handler(handler.getLooper()) {
@Override
@@ -471,5 +239,4 @@ public class ScreenshotHelper {
Intent.FLAG_RECEIVER_FOREGROUND);
mContext.sendBroadcastAsUser(errorIntent, UserHandle.CURRENT);
}
-
}
diff --git a/core/java/com/android/internal/util/ScreenshotRequest.aidl b/core/java/com/android/internal/util/ScreenshotRequest.aidl
new file mode 100644
index 0000000000000000000000000000000000000000..b08905dd0c9a5b69e6f576d649ad64dabb18a500
--- /dev/null
+++ b/core/java/com/android/internal/util/ScreenshotRequest.aidl
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.internal.util;
+
+parcelable ScreenshotRequest;
\ No newline at end of file
diff --git a/core/java/com/android/internal/util/ScreenshotRequest.java b/core/java/com/android/internal/util/ScreenshotRequest.java
new file mode 100644
index 0000000000000000000000000000000000000000..c8b7defb5276e84003e3a5f079c4e7d5b15d35f9
--- /dev/null
+++ b/core/java/com/android/internal/util/ScreenshotRequest.java
@@ -0,0 +1,335 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.internal.util;
+
+import static android.app.ActivityTaskManager.INVALID_TASK_ID;
+import static android.os.UserHandle.USER_NULL;
+import static android.view.WindowManager.TAKE_SCREENSHOT_FULLSCREEN;
+import static android.view.WindowManager.TAKE_SCREENSHOT_PROVIDED_IMAGE;
+
+import android.annotation.NonNull;
+import android.content.ComponentName;
+import android.graphics.Bitmap;
+import android.graphics.ColorSpace;
+import android.graphics.Insets;
+import android.graphics.ParcelableColorSpace;
+import android.graphics.Rect;
+import android.hardware.HardwareBuffer;
+import android.os.Bundle;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.util.Log;
+import android.view.WindowManager;
+
+import java.util.Objects;
+
+/**
+ * Describes a screenshot request.
+ */
+public class ScreenshotRequest implements Parcelable {
+ private static final String TAG = "ScreenshotRequest";
+
+ @WindowManager.ScreenshotType
+ private final int mType;
+ @WindowManager.ScreenshotSource
+ private final int mSource;
+ private final ComponentName mTopComponent;
+ private final int mTaskId;
+ private final int mUserId;
+ private final Bitmap mBitmap;
+ private final Rect mBoundsInScreen;
+ private final Insets mInsets;
+
+ private ScreenshotRequest(
+ @WindowManager.ScreenshotType int type, @WindowManager.ScreenshotSource int source,
+ ComponentName topComponent, int taskId, int userId,
+ Bitmap bitmap, Rect boundsInScreen, Insets insets) {
+ mType = type;
+ mSource = source;
+ mTopComponent = topComponent;
+ mTaskId = taskId;
+ mUserId = userId;
+ mBitmap = bitmap;
+ mBoundsInScreen = boundsInScreen;
+ mInsets = insets;
+ }
+
+ ScreenshotRequest(Parcel in) {
+ mType = in.readInt();
+ mSource = in.readInt();
+ mTopComponent = in.readTypedObject(ComponentName.CREATOR);
+ mTaskId = in.readInt();
+ mUserId = in.readInt();
+ mBitmap = HardwareBitmapBundler.bundleToHardwareBitmap(in.readTypedObject(Bundle.CREATOR));
+ mBoundsInScreen = in.readTypedObject(Rect.CREATOR);
+ mInsets = in.readTypedObject(Insets.CREATOR);
+ }
+
+ @WindowManager.ScreenshotType
+ public int getType() {
+ return mType;
+ }
+
+ @WindowManager.ScreenshotSource
+ public int getSource() {
+ return mSource;
+ }
+
+ public Bitmap getBitmap() {
+ return mBitmap;
+ }
+
+ public Rect getBoundsInScreen() {
+ return mBoundsInScreen;
+ }
+
+ public Insets getInsets() {
+ return mInsets;
+ }
+
+ public int getTaskId() {
+ return mTaskId;
+ }
+
+ public int getUserId() {
+ return mUserId;
+ }
+
+ public ComponentName getTopComponent() {
+ return mTopComponent;
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeInt(mType);
+ dest.writeInt(mSource);
+ dest.writeTypedObject(mTopComponent, 0);
+ dest.writeInt(mTaskId);
+ dest.writeInt(mUserId);
+ dest.writeTypedObject(HardwareBitmapBundler.hardwareBitmapToBundle(mBitmap), 0);
+ dest.writeTypedObject(mBoundsInScreen, 0);
+ dest.writeTypedObject(mInsets, 0);
+ }
+
+ @NonNull
+ public static final Parcelable.Creator CREATOR =
+ new Parcelable.Creator() {
+
+ @Override
+ public ScreenshotRequest createFromParcel(Parcel source) {
+ return new ScreenshotRequest(source);
+ }
+
+ @Override
+ public ScreenshotRequest[] newArray(int size) {
+ return new ScreenshotRequest[size];
+ }
+ };
+
+ /**
+ * Builder class for {@link ScreenshotRequest} objects.
+ */
+ public static class Builder {
+ @WindowManager.ScreenshotType
+ private final int mType;
+
+ @WindowManager.ScreenshotSource
+ private final int mSource;
+
+ private Bitmap mBitmap;
+ private Rect mBoundsInScreen;
+ private Insets mInsets = Insets.NONE;
+ private int mTaskId = INVALID_TASK_ID;
+ private int mUserId = USER_NULL;
+ private ComponentName mTopComponent;
+
+ /**
+ * Begin building a ScreenshotRequest.
+ *
+ * @param type The type of the screenshot request, defined by {@link
+ * WindowManager.ScreenshotType}
+ * @param source The source of the screenshot request, defined by {@link
+ * WindowManager.ScreenshotSource}
+ */
+ public Builder(
+ @WindowManager.ScreenshotType int type,
+ @WindowManager.ScreenshotSource int source) {
+ if (type != TAKE_SCREENSHOT_FULLSCREEN && type != TAKE_SCREENSHOT_PROVIDED_IMAGE) {
+ throw new IllegalArgumentException("Invalid screenshot type requested!");
+ }
+ mType = type;
+ mSource = source;
+ }
+
+ /**
+ * Construct a new {@link ScreenshotRequest} with the set parameters.
+ */
+ public ScreenshotRequest build() {
+ if (mType == TAKE_SCREENSHOT_FULLSCREEN && mBitmap != null) {
+ Log.w(TAG, "Bitmap provided, but request is fullscreen. Bitmap will be ignored.");
+ }
+ if (mType == TAKE_SCREENSHOT_PROVIDED_IMAGE && mBitmap == null) {
+ throw new IllegalStateException(
+ "Request is PROVIDED_IMAGE, but no bitmap is provided!");
+ }
+
+ return new ScreenshotRequest(mType, mSource, mTopComponent, mTaskId, mUserId, mBitmap,
+ mBoundsInScreen, mInsets);
+ }
+
+ /**
+ * Set the top component associated with this request.
+ *
+ * @param topComponent The component name of the top component running in the task.
+ */
+ public Builder setTopComponent(ComponentName topComponent) {
+ mTopComponent = topComponent;
+ return this;
+ }
+
+ /**
+ * Set the task id associated with this request.
+ *
+ * @param taskId The taskId of the task that the screenshot was taken of.
+ */
+ public Builder setTaskId(int taskId) {
+ mTaskId = taskId;
+ return this;
+ }
+
+ /**
+ * Set the user id associated with this request.
+ *
+ * @param userId The userId of user running the task provided in taskId.
+ */
+ public Builder setUserId(int userId) {
+ mUserId = userId;
+ return this;
+ }
+
+ /**
+ * Set the bitmap associated with this request.
+ *
+ * @param bitmap The provided screenshot.
+ */
+ public Builder setBitmap(Bitmap bitmap) {
+ mBitmap = bitmap;
+ return this;
+ }
+
+ /**
+ * Set the bounds for the provided bitmap.
+ *
+ * @param bounds The bounds in screen coordinates that the bitmap originated from.
+ */
+ public Builder setBoundsOnScreen(Rect bounds) {
+ mBoundsInScreen = bounds;
+ return this;
+ }
+
+ /**
+ * Set the insets for the provided bitmap.
+ *
+ * @param insets The insets that the image was shown with, inside the screen bounds.
+ */
+ public Builder setInsets(@NonNull Insets insets) {
+ mInsets = insets;
+ return this;
+ }
+ }
+
+ /**
+ * Bundler used to convert between a hardware bitmap and a bundle without copying the internal
+ * content. This is used together with a fully-defined ScreenshotRequest to handle a hardware
+ * bitmap as a screenshot.
+ */
+ private static final class HardwareBitmapBundler {
+ private static final String KEY_BUFFER = "bitmap_util_buffer";
+ private static final String KEY_COLOR_SPACE = "bitmap_util_color_space";
+
+ private HardwareBitmapBundler() {
+ }
+
+ /**
+ * Creates a Bundle that represents the given Bitmap.
+ *
The Bundle will contain a wrapped version of the Bitmaps HardwareBuffer, so will
+ * avoid
+ * copies when passing across processes, only pass to processes you trust.
+ *
+ *
Returns a new Bundle rather than modifying an exiting one to avoid key collisions,
+ * the
+ * returned Bundle should be treated as a standalone object.
+ *
+ * @param bitmap to convert to bundle
+ * @return a Bundle representing the bitmap, should only be parsed by
+ * {@link #bundleToHardwareBitmap(Bundle)}
+ */
+ private static Bundle hardwareBitmapToBundle(Bitmap bitmap) {
+ if (bitmap == null) {
+ return null;
+ }
+ if (bitmap.getConfig() != Bitmap.Config.HARDWARE) {
+ throw new IllegalArgumentException(
+ "Passed bitmap must have hardware config, found: "
+ + bitmap.getConfig());
+ }
+
+ // Bitmap assumes SRGB for null color space
+ ParcelableColorSpace colorSpace =
+ bitmap.getColorSpace() == null
+ ? new ParcelableColorSpace(ColorSpace.get(ColorSpace.Named.SRGB))
+ : new ParcelableColorSpace(bitmap.getColorSpace());
+
+ Bundle bundle = new Bundle();
+ bundle.putParcelable(KEY_BUFFER, bitmap.getHardwareBuffer());
+ bundle.putParcelable(KEY_COLOR_SPACE, colorSpace);
+
+ return bundle;
+ }
+
+ /**
+ * Extracts the Bitmap added to a Bundle with {@link #hardwareBitmapToBundle(Bitmap)}.
+ *
+ *
This Bitmap contains the HardwareBuffer from the original caller, be careful
+ * passing
+ * this Bitmap on to any other source.
+ *
+ * @param bundle containing the bitmap
+ * @return a hardware Bitmap
+ */
+ private static Bitmap bundleToHardwareBitmap(Bundle bundle) {
+ if (bundle == null) {
+ return null;
+ }
+ if (!bundle.containsKey(KEY_BUFFER) || !bundle.containsKey(KEY_COLOR_SPACE)) {
+ throw new IllegalArgumentException("Bundle does not contain a hardware bitmap");
+ }
+
+ HardwareBuffer buffer = bundle.getParcelable(KEY_BUFFER, HardwareBuffer.class);
+ ParcelableColorSpace colorSpace = bundle.getParcelable(KEY_COLOR_SPACE,
+ ParcelableColorSpace.class);
+
+ return Bitmap.wrapHardwareBuffer(Objects.requireNonNull(buffer),
+ colorSpace.getColorSpace());
+ }
+ }
+}
diff --git a/core/java/com/android/internal/view/RotationPolicy.java b/core/java/com/android/internal/view/RotationPolicy.java
index 869da1ffcb6ee00295962ce3c32721241cb6e4b5..058c6ec4d13c7b63ab0859e3cce75145b14a8fc9 100644
--- a/core/java/com/android/internal/view/RotationPolicy.java
+++ b/core/java/com/android/internal/view/RotationPolicy.java
@@ -106,7 +106,9 @@ public final class RotationPolicy {
* Enables or disables rotation lock from the system UI toggle.
*/
public static void setRotationLock(Context context, final boolean enabled) {
- final int rotation = areAllRotationsAllowed(context) ? CURRENT_ROTATION : NATURAL_ROTATION;
+ final int rotation = areAllRotationsAllowed(context)
+ || useCurrentRotationOnRotationLockChange(context) ? CURRENT_ROTATION
+ : NATURAL_ROTATION;
setRotationLockAtAngle(context, enabled, rotation);
}
@@ -139,6 +141,11 @@ public final class RotationPolicy {
return context.getResources().getBoolean(R.bool.config_allowAllRotations);
}
+ private static boolean useCurrentRotationOnRotationLockChange(Context context) {
+ return context.getResources().getBoolean(
+ R.bool.config_useCurrentRotationOnRotationLockChange);
+ }
+
private static void setRotationLock(final boolean enabled, final int rotation) {
AsyncTask.execute(new Runnable() {
@Override
diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java
index 2dfe89397ea5e5ec3f0cf588a6259b1f199ce5b8..5b2c441f95c9c982153fdf1f6b1b16cf934ac539 100644
--- a/core/java/com/android/internal/widget/LockPatternUtils.java
+++ b/core/java/com/android/internal/widget/LockPatternUtils.java
@@ -170,6 +170,8 @@ public class LockPatternUtils {
private static final String LOCK_SCREEN_OWNER_INFO_ENABLED =
Settings.Secure.LOCK_SCREEN_OWNER_INFO_ENABLED;
+ private static final String LOCK_PIN_ENHANCED_PRIVACY = "pin_enhanced_privacy";
+
private static final String LOCK_SCREEN_DEVICE_OWNER_INFO = "lockscreen.device_owner_info";
private static final String ENABLED_TRUST_AGENTS = "lockscreen.enabledtrustagents";
@@ -998,6 +1000,27 @@ public class LockPatternUtils {
return getString(Settings.Secure.LOCK_PATTERN_VISIBLE, userId) != null;
}
+ /**
+ * @return Whether enhanced pin privacy is enabled.
+ */
+ public boolean isPinEnhancedPrivacyEnabled(int userId) {
+ return getBoolean(LOCK_PIN_ENHANCED_PRIVACY, false, userId);
+ }
+
+ /**
+ * Set whether enhanced pin privacy is enabled.
+ */
+ public void setPinEnhancedPrivacyEnabled(boolean enabled, int userId) {
+ setBoolean(LOCK_PIN_ENHANCED_PRIVACY, enabled, userId);
+ }
+
+ /**
+ * @return Whether enhanced pin privacy was ever chosen.
+ */
+ public boolean isPinEnhancedPrivacyEverChosen(int userId) {
+ return getString(LOCK_PIN_ENHANCED_PRIVACY, userId) != null;
+ }
+
/**
* Set whether the visible password is enabled for cryptkeeper screen.
*/
diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp
index a8abe50a97554ded682f189de4506014ae1b7560..2a670e865cedbf498076dd567e016243b2227d73 100644
--- a/core/jni/android_hardware_Camera.cpp
+++ b/core/jni/android_hardware_Camera.cpp
@@ -556,7 +556,8 @@ static void android_hardware_Camera_getCameraInfo(JNIEnv *env, jobject thiz, jin
// connect to camera service
static jint android_hardware_Camera_native_setup(JNIEnv *env, jobject thiz, jobject weak_this,
jint cameraId, jstring clientPackageName,
- jboolean overrideToPortrait) {
+ jboolean overrideToPortrait,
+ jboolean forceSlowJpegMode) {
// Convert jstring to String16
const char16_t *rawClientName = reinterpret_cast(
env->GetStringChars(clientPackageName, NULL));
@@ -568,7 +569,7 @@ static jint android_hardware_Camera_native_setup(JNIEnv *env, jobject thiz, jobj
int targetSdkVersion = android_get_application_target_sdk_version();
sp camera =
Camera::connect(cameraId, clientName, Camera::USE_CALLING_UID, Camera::USE_CALLING_PID,
- targetSdkVersion, overrideToPortrait);
+ targetSdkVersion, overrideToPortrait, forceSlowJpegMode);
if (camera == NULL) {
return -EACCES;
}
@@ -1054,7 +1055,7 @@ static const JNINativeMethod camMethods[] = {
{"getNumberOfCameras", "()I", (void *)android_hardware_Camera_getNumberOfCameras},
{"_getCameraInfo", "(IZLandroid/hardware/Camera$CameraInfo;)V",
(void *)android_hardware_Camera_getCameraInfo},
- {"native_setup", "(Ljava/lang/Object;ILjava/lang/String;Z)I",
+ {"native_setup", "(Ljava/lang/Object;ILjava/lang/String;ZZ)I",
(void *)android_hardware_Camera_native_setup},
{"native_release", "()V", (void *)android_hardware_Camera_release},
{"setPreviewSurface", "(Landroid/view/Surface;)V",
diff --git a/core/jni/android_util_AssetManager.cpp b/core/jni/android_util_AssetManager.cpp
index 8c23b214b8fe074d70b746ff2347dfa0267ad7dc..206ad17e3c4b9f6af8522e181fac48c9cae9f25c 100644
--- a/core/jni/android_util_AssetManager.cpp
+++ b/core/jni/android_util_AssetManager.cpp
@@ -93,6 +93,7 @@ static struct configuration_offsets_t {
jfieldID mScreenWidthDpOffset;
jfieldID mScreenHeightDpOffset;
jfieldID mScreenLayoutOffset;
+ jfieldID mUiMode;
} gConfigurationOffsets;
static struct arraymap_offsets_t {
@@ -1027,10 +1028,11 @@ static jobject ConstructConfigurationObject(JNIEnv* env, const ResTable_config&
env->SetIntField(result, gConfigurationOffsets.mScreenWidthDpOffset, config.screenWidthDp);
env->SetIntField(result, gConfigurationOffsets.mScreenHeightDpOffset, config.screenHeightDp);
env->SetIntField(result, gConfigurationOffsets.mScreenLayoutOffset, config.screenLayout);
+ env->SetIntField(result, gConfigurationOffsets.mUiMode, config.uiMode);
return result;
}
-static jobjectArray NativeGetSizeConfigurations(JNIEnv* env, jclass /*clazz*/, jlong ptr) {
+static jobjectArray GetSizeAndUiModeConfigurations(JNIEnv* env, jlong ptr) {
ScopedLock assetmanager(AssetManagerFromLong(ptr));
auto configurations = assetmanager->GetResourceConfigurations(true /*exclude_system*/,
false /*exclude_mipmap*/);
@@ -1057,6 +1059,14 @@ static jobjectArray NativeGetSizeConfigurations(JNIEnv* env, jclass /*clazz*/, j
return array;
}
+static jobjectArray NativeGetSizeConfigurations(JNIEnv* env, jclass /*clazz*/, jlong ptr) {
+ return GetSizeAndUiModeConfigurations(env, ptr);
+}
+
+static jobjectArray NativeGetSizeAndUiModeConfigurations(JNIEnv* env, jclass /*clazz*/, jlong ptr) {
+ return GetSizeAndUiModeConfigurations(env, ptr);
+}
+
static jintArray NativeAttributeResolutionStack(
JNIEnv* env, jclass /*clazz*/, jlong ptr,
jlong theme_ptr, jint xml_style_res,
@@ -1487,6 +1497,8 @@ static const JNINativeMethod gAssetManagerMethods[] = {
{"nativeGetLocales", "(JZ)[Ljava/lang/String;", (void*)NativeGetLocales},
{"nativeGetSizeConfigurations", "(J)[Landroid/content/res/Configuration;",
(void*)NativeGetSizeConfigurations},
+ {"nativeGetSizeAndUiModeConfigurations", "(J)[Landroid/content/res/Configuration;",
+ (void*)NativeGetSizeAndUiModeConfigurations},
// Style attribute related methods.
{"nativeAttributeResolutionStack", "(JJIII)[I", (void*)NativeAttributeResolutionStack},
@@ -1565,6 +1577,7 @@ int register_android_content_AssetManager(JNIEnv* env) {
GetFieldIDOrDie(env, configurationClass, "screenHeightDp", "I");
gConfigurationOffsets.mScreenLayoutOffset =
GetFieldIDOrDie(env, configurationClass, "screenLayout", "I");
+ gConfigurationOffsets.mUiMode = GetFieldIDOrDie(env, configurationClass, "uiMode", "I");
jclass arrayMapClass = FindClassOrDie(env, "android/util/ArrayMap");
gArrayMapOffsets.classObject = MakeGlobalRefOrDie(env, arrayMapClass);
diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp
index b1610d790222592246a65bc499349ce83e873999..8952f37b14693b1a10313637932009e2f3042af9 100644
--- a/core/jni/android_view_SurfaceControl.cpp
+++ b/core/jni/android_view_SurfaceControl.cpp
@@ -428,7 +428,7 @@ static jlong nativeCreate(JNIEnv* env, jclass clazz, jobject sessionObj,
jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
return 0;
} else if (err != NO_ERROR) {
- jniThrowException(env, OutOfResourcesException, NULL);
+ jniThrowException(env, OutOfResourcesException, statusToString(err).c_str());
return 0;
}
diff --git a/core/proto/android/providers/settings/secure.proto b/core/proto/android/providers/settings/secure.proto
index 556636ddd210694a73c3bd71f9cbe7ef48702fe1..d443270575d3b67a4d0625a3aba50d68eea5a78a 100644
--- a/core/proto/android/providers/settings/secure.proto
+++ b/core/proto/android/providers/settings/secure.proto
@@ -89,6 +89,8 @@ message SecureSettingsProto {
// Setting for accessibility magnification for following typing.
optional SettingProto accessibility_magnification_follow_typing_enabled = 43 [ (android.privacy).dest = DEST_AUTOMATIC ];
optional SettingProto contrast_level = 44 [ (android.privacy).dest = DEST_AUTOMATIC ];
+ // Settings for font scaling
+ optional SettingProto accessibility_font_scaling_has_been_changed = 51 [ (android.privacy).dest = DEST_AUTOMATIC ];
}
optional Accessibility accessibility = 2;
diff --git a/core/proto/android/service/notification.proto b/core/proto/android/service/notification.proto
index 8e4006aa6861498ce70a069b31e1b19ad9133b2e..e029af4f9819c82b527fc74ba007e0fdecf17229 100644
--- a/core/proto/android/service/notification.proto
+++ b/core/proto/android/service/notification.proto
@@ -110,11 +110,20 @@ message ManagedServicesProto {
// All of this type/caption enabled for current profiles.
repeated android.content.ComponentNameProto enabled = 3;
-
repeated ManagedServiceInfoProto live_services = 4;
+ // Was: repeated ComponentNameProto, when snoozed services were not per-user-id.
+ reserved 5;
+
+ message SnoozedServices {
+ option (android.msg_privacy).dest = DEST_AUTOMATIC;
+
+ optional int32 user_id = 1;
+ repeated android.content.ComponentNameProto snoozed = 2;
+ }
+
// Snoozed for current profiles.
- repeated android.content.ComponentNameProto snoozed = 5;
+ repeated SnoozedServices snoozed = 6;
}
message RankingHelperProto {
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 277bdf3881888e9bfaae8193999364b75b1a08f2..8b7343928ffa2231beb49280d80c7f010dafc969 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -315,6 +315,7 @@
+
@@ -3154,7 +3155,11 @@
android:protectionLevel="normal" />
Should only be requested by the System, should be required by
TileService declarations.-->
+ android:protectionLevel="signature|recents" />
+
+
diff --git a/core/res/res/layout/resolve_grid_item.xml b/core/res/res/layout/resolve_grid_item.xml
index 50e6f33f628a48169c8332c35acec027c708a3d1..a5ff4706c085900ee637a1119abd5d490443de1d 100644
--- a/core/res/res/layout/resolve_grid_item.xml
+++ b/core/res/res/layout/resolve_grid_item.xml
@@ -17,6 +17,7 @@
*/
-->
"B"
+ "KB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Titelloos>""(Geen foonnommer)"
@@ -28,7 +33,6 @@
"Stemboodskap""MSISDN1""Verbindingsprobleem of ongeldige MMI-kode."
- "Kenmerk word nie gesteun nie.""Bewerking is beperk tot belbeperking-nommers.""Kan oproep-aanstuurinstellings nie van jou foon af verander tewyl jy swerf nie.""Diens is geaktiveer."
@@ -43,8 +47,8 @@
"Die PIN\'e wat jy ingevoer het, pas nie by mekaar nie.""Sleutel \'n PIN wat 4 to 8 nommers lank is, in.""Voer \'n PUK van 8 syfers of langer in."
- "Jou SIM is PUK-gesluit. Voer die PUK-kode in om dit te ontsluit."
- "Tik PUK2 in om SIM te deblokkeer."
+ "Jou SIM-kaart is PUK-gesluit. Voer die PUK-kode in om dit te ontsluit."
+ "Sleutel PUK2 in om SIM-kaart oop te sluit.""Onsuksesvol, aktiveer SIM-/RUIM-slot."Jy het %d pogings oor voordat SIM gesluit word.
@@ -301,12 +305,12 @@
"by jou kalender in te gaan""SMS""SMS-boodskappe te stuur en te bekyk"
- "Lêers"
- "kry toegang tot lêers op jou toestel"
- "Musiek en oudio"
- "kry toegang tot musiek en oudio op jou toestel"
- "Foto\'s en video\'s"
- "kry toegang tot foto\'s en video\'s op jou toestel"
+ "Lêers en dokumente"
+ "kry toegang tot lêers en dokumente op jou toestel"
+ "Musiek en ander oudio"
+ "kry toegang tot oudiolêers op jou toestel"
+ "Foto\'s en video\'s"
+ "kry toegang tot prente en videolêers op jou toestel""Mikrofoon""oudio op te neem""Fisieke aktiwiteit"
@@ -325,11 +329,11 @@
"wys kennisgewings""Venster-inhoud ophaal""Die inhoud ondersoek van \'n venster waarmee jy interaksie het."
- "Verken-met-raak aanskakel"
+ "Verken deur raak aanskakel""Items waarop getik word, sal hardop gesê word en die skerm kan met behulp van gebare verken word."
- "Neem teks wat jy tik waar"
+ "Teks wat jy tik waarneem""Dit sluit persoonlike data soos kredietkaartnommers en wagwoorde in."
- "Beheer vertoonskerm-vergroting"
+ "Vertoonskermvergroting beheer""Die vertoonskerm se zoemvlak en posisionering beheer.""Voer gebare uit""Kan tik, swiep, knyp en ander gebare uitvoer."
@@ -582,14 +586,13 @@
"Gebruik skermslot""Voer jou skermslot in om voort te gaan""Druk ferm op die sensor"
- "Kan nie vingerafdruk herken nie. Probeer weer."
+ "Kon nie vingerafdruk verwerk nie. Probeer asseblief weer.""Maak vingerafdruksensor skoon en probeer weer""Maak sensor skoon en probeer weer""Druk ferm op sensor""Vinger is te stadig beweer. Probeer asseblief weer.""Probeer \'n ander vingerafdruk""Te helder"
- "Druk van aan/af-skakelaar bespeur""Probeer om dit te verstel""Verander elke keer die posisie van jou vinger so effens"
@@ -601,17 +604,16 @@
"Gesig is gestaaf; druk asseblief bevestig""Vingerafdrukhardeware is nie beskikbaar nie.""Kan nie vingerafdruk opstel nie"
- "Vingerafdrukopstelling het uitgetel. Probeer weer."
+ "Vingerafdrukuittelling is bereik. Probeer weer.""Vingerafdrukhandeling is gekanselleer.""Vingerafdrukhandeling is deur gebruiker gekanselleer."
- "Te veel pogings. Gebruik eerder skermslot."
- "Te veel pogings. Gebruik eerder skermslot."
- "Kan nie vingerafdruk verwerk nie. Probeer weer."
+ "Te veel pogings. Probeer later weer."
+ "Te veel pogings. Vingerafdruksensor is gedeaktiveer."
+ "Probeer weer.""Geen vingerafdrukke is geregistreer nie.""Hierdie toetstel het nie \'n vingerafdruksensor nie.""Sensor is tydelik gedeaktiveer.""Kan nie vingerafdruksensor gebruik nie. Besoek \'n verskaffer wat herstelwerk doen"
- "Aan/af-skakelaar is gedruk""Vinger %d""Gebruik vingerafdruk""Gebruik vingerafdruk of skermslot"
@@ -632,33 +634,26 @@
"Vingerafdrukslot""Kan nie vingerafdruksensor gebruik nie""Besoek \'n verskaffer wat herstelwerk doen."
- "Kan nie jou gesigmodel skep nie. Probeer weer."
+ "Kon nie gesigdata akkuraat vasvang nie. Probeer weer.""Te helder. Probeer sagter beligting."
- "Nie genoeg lig nie"
- "Beweeg foon verder weg"
- "Beweeg foon nader"
- "Beweeg foon hoër op"
- "Beweeg foon laer af"
- "Beweeg foon na jou linkerkant"
- "Beweeg foon na jou regterkant"
+ "Te donker. Probeer helderder beligting."
+ "Beweeg foon verder weg"
+ "Beweeg foon nader."
+ "Beweeg foon hoër op."
+ "Beweeg foon laer af."
+ "Beweeg foon na links."
+ "Beweeg foon na regs.""Kyk asseblief meer reguit na jou toestel."
- "Kan nie jou gesig sien nie. Hou jou foon op oogvlak."
+ "Posisioneer jou gesig direk voor die foon.""Te veel beweging. Hou foon stil.""Skryf jou gesig asseblief weer in."
- "Kan nie gesig herken nie. Probeer weer."
- "Verander die posisie van jou kop effens"
- "Kyk meer reguit na jou foon"
- "Kyk meer reguit na jou foon"
- "Kyk meer reguit na jou foon"
+ "Kan nie meer gesig herken nie. Probeer weer."
+ "Te eenders. Verander asseblief jou pose."
+ "Draai jou kop \'n bietjie minder."
+ "Kantel jou kop \'n bietjie minder."
+ "Draai jou kop \'n bietjie minder.""Verwyder enigiets wat jou gesig versteek.""Maak die bokant van jou skerm skoon, insluitend die swart balk"
-
-
-
-
- "Kan nie jou gesigmodel skep nie. Probeer weer."
- "Donkerbril bespeur. Jou gesig moet heeltemal sigbaar wees."
- "Gesigbedekking bespeur. Jou gesig moet heeltemal sigbaar wees.""Kan nie gesig verifieer nie. Hardeware nie beskikbaar nie."
@@ -924,14 +919,14 @@
"Probeer weer""Ontsluit vir alle kenmerke en data""Maksimum Gesigslot-pogings oorskry"
- "Geen SIM nie"
- "Geen SIM in tablet nie."
- "Geen SIM in jou Android TV-toestel nie."
- "Geen SIM in foon nie."
- "Voeg ’n SIM by."
- "Die SIM is weg of nie leesbaar nie. Voeg ’n SIM by."
- "Onbruikbare SIM."
- "Jou SIM is permanent gedeaktiveer.\n Kontak jou draadlose diensverskaffer vir ’n ander SIM."
+ "Geen SIM-kaart nie"
+ "Geen SIM-kaart in tablet nie."
+ "Geen SIM-kaart in jou Android TV-toestel nie."
+ "Geen SIM-kaart in foon nie."
+ "Steek \'n SIM-kaart in."
+ "Die SIM-kaart is weg of nie leesbaar nie. Steek \'n SIM-kaart in."
+ "Onbruikbare SIM-kaart."
+ "Jou SIM-kaart is permanent gedeaktiveer.\n Kontak jou draadlose diensverskaffer vir \'n ander SIM-kaart.""Vorige snit""Volgende snit""Wag"
@@ -941,10 +936,10 @@
"Vinnig vorentoe""Net noodoproepe""Netwerk gesluit"
- "SIM is PUK-gesluit."
+ "SIM-kaart is PUK-geslote.""Sien die handleiding of kontak kliëntediens."
- "SIM is gesluit."
- "Ontsluit tans SIM …"
+ "SIM-kaart is gesluit."
+ "Ontsluit tans SIM-kaart…""Jy het jou ontsluitpatroon %1$d keer verkeerd geteken. \n\nProbeer weer oor %2$d sekondes.""Jy het jou wagwoord %1$d keer verkeerd ingevoer. \n\nProbeer weer oor %2$d sekondes.""Jy het jou wagwoord %1$d keer verkeerd ingevoer. \n\nProbeer weer oor %2$d sekondes."
@@ -1246,9 +1241,10 @@
"Berei tans %1$s voor.""Begin programme.""Voltooi herlaai."
+ "Gaan voort met opstelling?""Jy het die aan/af-skakelaar gedruk – dit skakel gewoonlik die skerm af.\n\nProbeer liggies tik terwyl jy jou vingerafdruk opstel."
- "Skakel skerm af om opstelling te stop"
- "Skakel af"
+ "Skakel skerm af"
+ "Doen opstelling""Gaan voort met vingerafdrukverifiëring?""Jy het die aan/af-skakelaar gedruk – dit skakel gewoonlik die skerm af.\n\nProbeer liggies tik om jou vingerafdruk te verifieer.""Skakel skerm af"
@@ -1327,10 +1323,10 @@
"Jy kan dit later verander in Instellings > Programme""Laat altyd toe""Moet nooit toelaat nie"
- "SIM is verwyder"
- "Die selnetwerk sal nie beskikbaar wees nie totdat jy weer begin met ’n geldige SIM."
+ "SIM-kaart verwyder"
+ "Die mobielnetwerk sal nie beskikbaar wees nie totdat jy weer begin met \'n geldige SIM-kaart.""Klaar"
- "SIM is bygevoeg"
+ "SIM-kaart bygevoeg""Herbegin jou toestel om toegang tot die mobiele netwerk te kry.""Herbegin""Aktiveer mobiele diens"
@@ -1401,16 +1397,16 @@
"Tik om op te stel""Kies om op te stel""Jy sal dalk die toestel moet herformateer. Tik om uit te skiet."
- "Om foto\'s, video\'s, musiek en meer te berg"
+ "Om foto\'s en media oor te dra""Blaai deur medialêers""Kwessie met %s""%s werk nie""Tik om reg te stel""%s is korrup. Kies om reg te stel.""Jy sal dalk die toestel moet herformateer. Tik om uit te skiet."
- "%s is bespeur"
+ "Niegesteunde %s""%s werk nie"
- "Tik om op te stel ."
+ "Hierdie toestel steun nie hierdie %s nie. Tik om in \'n gesteunde formaat op te stel.""Kies om %s in \'n gesteunde formaat op te stel.""Jy sal dalk die toestel moet herformateer""%s is onverwags verwyder"
@@ -1609,7 +1605,7 @@
"TV""Foon""Dokluidsprekers"
- "Eksterne toestel"
+ "HDMI""Oorfone""USB""Stelsel"
@@ -1642,7 +1638,7 @@
"SIM is nou gedeaktiveer. Voer PUK-kode in om voort te gaan. Kontak diensverskaffer vir details.""Voer die gewenste PIN-kode in""Bevestig gewenste PIN-kode"
- "Ontsluit tans SIM …"
+ "Ontsluit tans SIM-kaart…""Verkeerde PIN-kode.""Tik \'n PIN in wat 4 tot 8 syfers lank is.""PUK-kode moet 8 syfers wees."
@@ -1923,7 +1919,6 @@
"Streekvoorkeur""Voer taalnaam in""Voorgestel"
- "Voorgestel""Alle tale""Allle streke""Soek"
@@ -1941,19 +1936,18 @@
"Kamera is nie beskikbaar nie""Gaan voort op foon""Mikrofoon is nie beskikbaar nie"
- "Play Winkel is nie beskikbaar nie""Android TV-instellings is nie beskikbaar nie""Tabletinstellings is nie beskikbaar nie""Fooninstellings is nie beskikbaar nie"
- "Jy kan nie nou toegang hiertoe op jou %1$s kry nie. Probeer eerder op jou Android TV-toestel."
- "Jy kan nie nou toegang hiertoe op jou %1$s kry nie. Probeer eerder op jou tablet."
- "Jy kan nie nou toegang hiertoe op jou %1$s kry nie. Probeer eerder op jou foon."
+ "Jou %1$s kan nie toegang hiertoe kry nie. Probeer eerder op jou Android TV-toestel."
+ "Jou %1$s kan nie toegang hiertoe kry nie. Probeer eerder op jou tablet."
+ "Jou %1$s kan nie toegang hiertoe kry nie. Probeer eerder op jou foon."
+ "Jy kan nie nou toegang hiertoe op jou %1$s kry nie. Probeer eerder op jou Android TV-toestel."
+ "Jy kan nie nou toegang hiertoe op jou %1$s kry nie. Probeer eerder op jou tablet."
+ "Jy kan nie nou toegang hiertoe op jou %1$s kry nie. Probeer eerder op jou foon.""Hierdie program versoek tans bykomende sekuriteit. Probeer eerder op jou Android TV-toestel.""Hierdie program versoek tans bykomende sekuriteit. Probeer eerder op jou tablet.""Hierdie program versoek tans bykomende sekuriteit. Probeer eerder op jou foon."
- "Jy kan nie op jou %1$s toegang hiertoe kry nie. Probeer eerder op jou Android TV-toestel."
- "Jy kan nie op jou %1$s toegang hiertoe kry nie. Probeer eerder op jou tablet."
- "Jy kan nie op jou %1$s toegang hiertoe kry nie. Probeer eerder op jou foon.""Hierdie program is vir \'n ouer weergawe van Android gebou en sal dalk nie behoorlik werk nie. Probeer kyk vir opdaterings, of kontak die ontwikkelaar.""Kyk vir opdatering""Jy het nuwe boodskappe"
@@ -2046,8 +2040,7 @@
"Gee %s toegang tot alle toestelloglêers?""Gee eenmalige toegang""Moenie toelaat nie"
- "Toestelloglêers teken aan wat op jou toestel gebeur. Programme kan hierdie loglêers gebruik om kwessies op te spoor en reg te stel.\n\nSommige loglêers bevat dalk sensitiewe inligting en daarom moet jy toegang tot alle toestelloglêers net gee aan programme wat jy vertrou. \n\nAs jy nie vir hierdie program toegang tot alle toestelloglêers gee nie, het die program steeds toegang tot eie loglêers. Jou toestelvervaardiger het dalk steeds toegang tot sommige loglêers of inligting op jou toestel."
- "Toestelloglêers teken aan wat op jou toestel gebeur. Programme kan hierdie loglêers gebruik om kwessies op te spoor en reg te stel.\n\nSommige loglêers bevat dalk sensitiewe inligting, en daarom moet jy toegang tot alle toestelloglêers net gee aan programme wat jy vertrou. \n\nHierdie program het steeds toegang tot eie loglêers as jy nie vir hierdie program toegang tot alle toestelloglêers gee nie. Jou toestelvervaardiger het dalk steeds toegang tot sommige loglêers of inligting op jou toestel.\n\nKom meer te wete by g.co/android/devicelogs."
+ "Toestelloglêers teken aan wat op jou toestel gebeur. Programme kan hierdie loglêers gebruik om kwessies op te spoor en reg te stel.\n\nSommige loglêers bevat dalk sensitiewe inligting en daarom moet jy toegang tot alle toestelloglêers net gee aan programme wat jy vertrou. \n\nAs jy nie vir hierdie program toegang tot alle toestelloglêers gee nie, het dit steeds toegang tot sy eie loglêers. Jou toestelvervaardiger het dalk steeds toegang tot sommige loglêers of inligting op jou toestel. Kom meer te wete""Moenie weer wys nie""%1$s wil %2$s-skyfies wys""Wysig"
@@ -2060,7 +2053,8 @@
"Moenie Steur Nie het verander""Tik om te kyk wat geblokkeer word.""Gaan kennisgewinginstellings na"
- "Vanaf Android 13 het programme wat jy installeer jou toestemming nodig om kennisgewings te stuur. Tik om hierdie toestemming vir bestaande programme te verander."
+
+ "Herinner my later""Maak toe""Stelsel"
@@ -2288,6 +2282,5 @@
"Gaan aktiewe programme na""Kan nie toegang tot die foon se kamera op jou %1$s kry nie""Kan nie toegang tot die tablet se kamera op jou %1$s kry nie"
- "Jy kan nie toegang hiertoe kry terwyl daar gestroom word nie. Probeer eerder op jou foon."
- "Stelselverstek"
+ "Stelseltaal"
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index f718efe8d2a6a8ed4b0378d7ba5c4b7af64d133b..aa49f9e61607f82001a4895fe5030bb482418b16 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -21,6 +21,11 @@
"ባ"
+ "ኪባ"
+ "ሜባ"
+ "ጊባ"
+ "ቴባ"
+ "ፔባ""%1$s%2$s""<ርዕስ አልባ>""(ምንም ስልክ ቁጥር የለም)"
@@ -28,7 +33,6 @@
"የድምፅ መልዕክት""MSISDN1""የተያያዥ ችግር ወይም ትክከል ያልሆነየMMI ኮድ ባህሪ።"
- "ባህሪ አይደገፍም።""ክዋኔ ለቋሚ መደወያ ቁጥሮች ብቻ ተገድቧል።""Can not change call forwarding settings from your phone while you are roaming.""አገልግሎት ነቅቶ ነበር።"
@@ -43,8 +47,8 @@
"ያስገባሃቸው ፒኖች አይዛመዱም""ከ4 እስከ 8 ቁጥሮች የያዘ ፒን ተይብ""8 ወይም ከዛ በላይ የሆኑ ቁጥሮችንPUK ተይብ።"
- "ሲምዎ በPUK-የተቆለፈ ነው። ለመክፈት የPUK ኮዱን ይተይቡ።"
- "የሲም እገዳን ለማንሳት PUK2ን ይተይቡ።"
+ "SIM ካርድዎ PUK-የተቆለፈ ነው።የPUK ኮዱን በመተየብ ይክፈቱት።"
+ " SIM ለመክፈት PUK2 ተይብ።""አልተሳካም፣ የሲም/RUIM ቁልፍን አንቃ።"ሲምዎ ከመቆለፉ በፊት %d ሙከራዎች ይቀሩዎታል።
@@ -107,8 +111,8 @@
"በዝውውር ላይ አመላካች በርቷል""በዝውውር ላይ አመልካች ጠፍቷል""በዝውውር ላይ አመልካች ብልጭ ብልጭ ይላል"
- "ከጎረቤት ውጭ"
- "ከህንፃ ውጭ"
+ "ከጎረቤት ውጪ"
+ "ከህንፃ ውጪ""የዝውውር- ተመራጭ ስርዓት""ዝውውር- ዝግጁ የሆነ ስርዓት"" የዝውውር- አጋር ስምምነት"
@@ -174,7 +178,7 @@
"በጣም ብዙ %s ለመሰረዝ ተሞክሯል።""የጡባዊ ተኮ ማከማቻ ሙሉ ነው! ቦታ ነፃ ለማድረግ አንዳንድ ፋይሎች ሰርዝ።""የእጅ ሰዓት ማከማቻ ሙሉ ነው። ቦታ ለማስለቀቅ አንዳንድ ፋይሎችን ይሰርዙ።"
- "Android TV መሣሪያ ማከማቻ ሙሉ ነው። ባዶ ቦታን ነፃ ለማድረግ አንዳንድ ፋይሎችን ይሰርዙ።"
+ "Android TV መሣሪያ ማከማቻ ሙሉ ነው። ባዶ ቦታን ነጻ ለማድረግ አንዳንድ ፋይሎችን ይሰርዙ።""የስልክ ማከማቻ ሙሉ ነው! ቦታ ነፃ ለማድረግ አንዳንድ ፋይሎች ሰርዝ።""{count,plural, =1{የእውቅና ማረጋገጫ ባለስልጣን ተጭኗል}one{የእውቅና ማረጋገጫ ባለስልጣናት ተጭነዋል}other{የእውቅና ማረጋገጫ ባለስልጣናት ተጭነዋል}}""ባልታወቀ ሶስተኛ ወገን"
@@ -301,12 +305,12 @@
"የእርስዎን ቀን መቁጠሪያ ይድረሱበት""ኤስኤምኤስ""የኤስኤምኤስ መልዕክቶችን ይላኩና ይመልከቱ"
- "ፋይሎች"
- "በመሣሪያዎ ላይ የሚገኙ ፋይሎች መዳረሻ"
- "ሙዚቃ እና ኦዲዮ"
- "በመሣሪያዎ ላይ ሙዚቃን እና ኦዲዮን መድረስ"
- "ፎቶዎች እና ቪዲዮዎች"
- "በመሣሪያዎ ላይ ፎቶዎችን እና ቪዲዮዎችን መድረስ"
+ "ፋይሎች እና ሰነዶች"
+ "ፋይሎች እና ሰነዶች ዘንድ በመሳሪያዎ ላይ ይድረሱ"
+ "ሙዚቃ እና ሌላ ኦዲዮ"
+ "በመሳሪያዎ ላይ የድምጽ ፋይሎችን ይድረሱ"
+ "ፎቶዎች እና ቪዲዮዎች"
+ "በመሣሪያዎ ላይ ምስሎችን እና የቪዲዮ ፋይሎችን ይድረሱ""ማይክሮፎን""ኦዲዮ ይቅዱ""አካላዊ እንቅስቃሴ"
@@ -327,7 +331,7 @@
"መስተጋበር የሚፈጥሩት የመስኮት ይዘት ይመርምሩ።""በመንካት ያስሱን ያብሩ""መታ የተደረጉ ንጥሎች ጮክ ተብለው ይነገሩና የጣት ምልክቶችን በመጠቀም ማያ ገጹ ሊታሰስ ይችላል።"
- "የሚተይቡት ጽሁፍ ይመልከቱ"
+ "የሚተይቡት ጽሑፍ ይመልከቱ""እንደ የክሬዲት ካርድ ቁጥሮች እና የይለፍ ቃላት ያሉ የግል ውሂብ ያካትታል።""የመቆጣጠሪያ ማሳያ እንዲጎላ አደራረግ""የማሳያውን የማጉያ ደረጃ እና አቀማመጥ ይቆጣጠሩ።"
@@ -368,9 +372,9 @@
"የኤስኤምኤስ መልዕክቶችን ይላኩና ይመልከቱ""መተግበሪያው የኤስ.ኤም.ኤስ. መልዕክቶችን እንዲልክ ይፈቅድለታል። ይህ ያልተጠበቁ ወጪዎችን ሊያስከትል ይችላል። ተንኮል አዘል መተግበሪያዎች ያላንተ ማረጋገጫ መልዕክቶችን በመላክ ገንዘብ ሊያስወጡህ ይችላሉ።""የጽሑፍ መልዕክቶችዎን ያንብቡ (ኤስ.ኤም.ኤስ. ወይም ኤም.ኤም.ኤስ.)"
- "ይህ መተግበሪያ በእርስዎ ጡባዊ ላይ የተከማቹ ሁሉንም አጭር የስልክ መልዕክት (ጽሁፍ) መልእክቶን ማንበብ ይችላል።"
- "ይህ መተግበሪያ በእርስዎ Android TV መሣሪያ ላይ ያሉትን ሁሉንም ኤስኤምኤስ (ጽሁፍ) መልዕክቶችን ማንበብ ይችላል።"
- "ይህ መተግበሪያ በእርስዎ ስልክ ላይ የተከማቹ ሁሉንም አጭር የስልክ መልዕክት (ጽሁፍ) መልእክቶን ማንበብ ይችላል።"
+ "ይህ መተግበሪያ በእርስዎ ጡባዊ ላይ የተከማቹ ሁሉንም አጭር የስልክ መልዕክት (ጽሑፍ) መልእክቶን ማንበብ ይችላል።"
+ "ይህ መተግበሪያ በእርስዎ Android TV መሣሪያ ላይ ያሉትን ሁሉንም ኤስኤምኤስ (ጽሑፍ) መልዕክቶችን ማንበብ ይችላል።"
+ "ይህ መተግበሪያ በእርስዎ ስልክ ላይ የተከማቹ ሁሉንም አጭር የስልክ መልዕክት (ጽሑፍ) መልእክቶን ማንበብ ይችላል።""የፅሁፍ መልዕክቶችን ተቀበል (WAP)""መተግበሪያው የWAP መልዕክቶችን እንዲያነብ እና እንዲያካሂድ ይፈቅዳል። ይህ ፈቃድ የተላኩልዎን መልዕክቶች ለእርስዎ ሳያሳይዎ የመቆጣጠር ወይም የመሰረዝ ብቃትን ያጠቃልላል።""አሂድ መተግበሪያዎችን ሰርስረው ያውጡ"
@@ -417,7 +421,7 @@
"መተግበሪያው በእርስዎ ስልክ ላይ ስለተከማቹ እውቂያዎችዎ ያለ ውሂብን እንዲቀይር ያስችለዋል። ይህ ፈቃድ መተግበሪያዎች የእውቂያ ውሂብን እንዲሰርዙ ያስችላቸዋል።""የጥሪ ምዝግብ ማስታወሻን ያንብቡ""ይህ መተግበሪያ የእርስዎን የጥሪ ታሪክ ማንበብ ይችላል።"
- "የጥሪ ምዝግብ ማስታወሻን ጻፍ"
+ "የጥሪ ምዝግብ ማስታወሻን ፃፍ""ስለ ገቢ እና ወጪ ጥሪዎችን ውሂብ ጨምሮ፣ የጡባዊተኮህን ምዝግብ ማስታወሻ ለመቀየር ለመተግበሪያው ይፈቅዳል። ይሄንን ተንኮል አዘል መተግበሪያዎች የስልክህን ምዝግብ ማስታወሻ ለመሰረዝ ወይም ለመለወጥ ሊጠቀሙበት ይችላሉ።""መተግበሪያው ስለገቢ እና ወጪ ጥሪዎች ያለ ውሂብም ጨምሮ የእርስዎ Android TV መሣሪያ ምዝግብ ማስታወሻ እንዲቀይር ያስችለዋል። ተንኮል-አዘል መተግበሪያዎች ይህን ተጠቅመው የስልክዎን ምዝግብ ማስታወሻ ሊደመስሱ ወይም ሊቀይሩ ይችላሉ።""ስለ ገቢ እና ወጪ ጥሪዎችን ውሂብ ጨምሮ፣ የስልክህን ምዝግብ ማስታወሻ ለመቀየር ለመተግበሪያው ይፈቅዳል። ይሄንን ተንኮል አዘል መተግበሪያዎች የስልክህን ምዝግብ ማስታወሻ ለመሰረዝ ወይም ለመለወጥ ሊጠቀሙበት ይችላሉ።"
@@ -429,7 +433,7 @@
"ይህ መተግበሪያ ሁሉንም በእርስዎ ጡባዊ ላይ የተከማቹ የቀን መቁጠሪያ ክስተቶችን ማንበብ ወይም የእርስዎን የቀን መቁጠሪያ ውሂብ ማስቀመጥ ይችላል።""ይህ መተግበሪያ ሁሉንም በእርስዎ Android TV መሣሪያ ላይ የተከማቹ የቀን መቁጠሪያ ክስተቶችን ማንበብ ወይም የእርስዎን የቀን መቁጠሪያ ውሂብ ማስቀመጥ ይችላል።""ይህ መተግበሪያ ሁሉንም በእርስዎ ስልክ ላይ የተከማቹ የቀን መቁጠሪያ ክስተቶችን ማንበብ ወይም የእርስዎን የቀን መቁጠሪያ ውሂብ ማስቀመጥ ይችላል።"
- "የቀን መቁጠሪያ ክስተቶችን ቀይር ወይም አክል እና ለእንግዶች ከባለቤቱ ዕውቅና ውጭ ላክ።"
+ "የቀን መቁጠሪያ ክስተቶችን ቀይር ወይም አክል እና ለእንግዶች ከባለቤቱ ዕውቅና ውጪ ላክ።""ይህ መተግበሪያ በእርስዎ ጡባዊ ላይ የቀን መቁጠሪያ ክስተቶችን ሊያክል፣ ሊያስወግድ ወይም ሊለውጥ ይችላል። ይህ መተግበሪያ ከቀን መቁጠሪያ የመጡ መስለው የሚታዩ መልእክቶችን ሊልክ ወይም ባለቤቶቹን ሳያሳውቅ ክስተቶችን ሊለውጥ ይችላል።""ይህ መተግበሪያ በእርስዎ Android TV መሣሪያ ላይ የቀን መቁጠሪያ ክስተቶችን ሊያክል፣ ሊያስወግድ ወይም ሊለውጥ ይችላል። ይህ መተግበሪያ ከቀን መቁጠሪያ የመጡ መስለው የሚታዩ መልእክቶችን ሊልክ ወይም ባለቤቶቹን ሳያሳውቅ ክስተቶችን ሊለውጥ ይችላል።""ይህ መተግበሪያ በእርስዎ ስልክ ላይ የቀን መቁጠሪያ ክስተቶችን ሊያክል፣ ሊያስወግድ ወይም ሊለውጥ ይችላል። ይህ መተግበሪያ ከቀን መቁጠሪያ የመጡ መስለው የሚታዩ መልእክቶችን ሊልክ ወይም ባለቤቶቹን ሳያሳውቅ ክስተቶችን ሊለውጥ ይችላል።"
@@ -551,7 +555,7 @@
"የማያ ገጽዎን መቆለፊያ ያሰናክሉ""መተግበሪያው መቆለፊያውና ማንኛውም የተጎዳኘ የይለፍ ቃል ደህንነት እንዲያሰናክል ይፈቅድለታል። ለምሳሌ ስልኩ ገቢ የስልክ ጥሪ በሚቀበልበት ጊዜ መቆለፊያውን ያሰናክልና ከዚያም ጥሪው ሲጠናቀቅ መቆለፊያውን በድጋሚ ያነቃዋል።""የማያ ገጽ መቆለፊያ ውስብስብነትን ጠይቅ"
- "መተግበሪያው የማያ ገጽ መቆለፊያው ውስብስብነት ደረጃ (ከፍተኛ፣ መካከለኛ፣ ዝቅተኛ ወይም ምንም) እንዲያውቅ ያስችለዋል፣ ይህም ሊሆኑ የሚችለው የማያ ገጽ መቆለፊያው ርዝመት እና ዓይነት ክልል ያመለክታል። መተግበሪያው እንዲሁም ለተጠቃሚዎች የማያ ገጽ መቆለፊያውን ወደተወሰነ ደረጃ እንዲያዘምኑት ሊጠቁማቸው ይችላል። የማያ ገጽ መቆለፊያው በስነጣ አልባ ጽሁፍ እንደማይከማች ልብ ይበሉ፣ በዚህም መተግበሪያው ትክክለኛውን የይለፍ ቃል አያውቅም።"
+ "መተግበሪያው የማያ ገጽ መቆለፊያው ውስብስብነት ደረጃ (ከፍተኛ፣ መካከለኛ፣ ዝቅተኛ ወይም ምንም) እንዲያውቅ ያስችለዋል፣ ይህም ሊሆኑ የሚችለው የማያ ገጽ መቆለፊያው ርዝመት እና ዓይነት ክልል ያመለክታል። መተግበሪያው እንዲሁም ለተጠቃሚዎች የማያ ገጽ መቆለፊያውን ወደተወሰነ ደረጃ እንዲያዘምኑት ሊጠቁማቸው ይችላል። የማያ ገጽ መቆለፊያው በስነጣ አልባ ጽሑፍ እንደማይከማች ልብ ይበሉ፣ በዚህም መተግበሪያው ትክክለኛውን የይለፍ ቃል አያውቅም።""ማሳወቂያዎች አሳይ""መተግበሪያው ማሳወቂያዎችን እንዲያሳይ ያስችለዋል""ባዮሜትራዊ ሃርድዌርን መጠቀም"
@@ -582,14 +586,13 @@
"የማያ ገጽ መቆለፊን ይጠቀሙ""ለመቀጠል የማያ ገጽ ቁልፍዎን ያስገቡ""ዳሳሹን በደንብ ይጫኑት"
- "የጣት አሻራን መለየት አልተቻለም። እንደገና ይሞክሩ።"
+ "ጣት አሻራን መስራት አልተቻለም። እባክዎ እንደገና ይሞክሩ።""የጣት አሻራ ዳሳሽን ያጽዱ እና እንደገና ይሞክሩ""ዳሳሹን ያጽዱ እና እንደገና ይሞክሩ""ዳሳሹን ጠበቅ አድርገው ይጫኑት""ጣት ከልክ በላይ ተንቀራፎ ተንቀሳቅሷል። እባክዎ እንደገና ይሞክሩ።""ሌላ የጣት አሻራ ይሞክሩ""በጣም ብርሃናማ"
- "በኃይል መጫን እንዳለ ታውቋል""ለማስተካከል ይሞክሩ""በእያንዳንዱ ጊዜ የጣትዎን ቦታ በትንሹ ይለዋውጡ"
@@ -601,17 +604,16 @@
"ፊት ተረጋግጧል፣ እባክዎ አረጋግጥን ይጫኑ""የጣት አሻራ ሃርድዌር አይገኝም።""የጣት አሻራን ማዋቀር አልተቻለም"
- "የጣት አሻራ ውቅረት ጊዜው አብቅቷል። እንደገና ይሞክሩ።"
+ "የጣት አሻራ ማብቂያ ጊዜ ደርሷል። እንደገና ይሞክሩ።""የጣት አሻራ ስርዓተ ክወና ተትቷል።""የጣት አሻራ ክወና በተጠቃሚ ተሰርዟል።"
- "በጣም ብዙ ሙከራዎች። በምትኩ የማያ ገጽ መቆለፊያን ይጠቀሙ።"
- "በጣም ብዙ ሙከራዎች። በምትኩ የማያ ገጽ መቆለፊያን ይጠቀሙ።"
- "የጣት አሻራን ማሰናዳት አልተቻለም። እንደገና ይሞክሩ።"
+ "ከልክ በላይ ብዙ ሙከራዎች። በኋላ ላይ እንደገና ይሞክሩ።"
+ "በጣም ብዙ ሙከራዎች። የጣት አሻራ ዳሳሽ ተሰናክሏል።"
+ "እንደገና ይሞክሩ።""ምንም የጣት አሻራዎች አልተመዘገቡም።""ይህ መሣሪያ የጣት አሻራ ዳሳሽ የለውም።""ዳሳሽ ለጊዜው ተሰናክሏል።""የጣት አሻራ ዳሳሽን መጠቀም አይቻልም። የጥገና አገልግሎት ሰጪን ይጎብኙ"
- "የኃይል አዝራር ተጭኗል""ጣት %d""የጣት አሻራ ይጠቀሙ""የጣት አሻራ ወይም የማያ ገጽ መቆለፊያ ይጠቀሙ"
@@ -632,33 +634,26 @@
"በጣት አሻራ መክፈቻ""የጣት አሻራ ዳሳሽን መጠቀም አይቻልም""የጥገና አገልግሎት ሰጪን ይጎብኙ።"
- "የመልክዎን ሞዴል መፍጠር አልተቻለም። እንደገና ይሞክሩ።"
+ "ትክክለኛ የፊት ውሂብ ማንሳት አልተቻለም። እንደገና ይሞክሩ።""ከልክ በላይ ፈካ ያለ። ይበልጥ ረጋ ያለ ብርሃን አጠቃቀምን ይሞክሩ።"
- "በቂ ብርሃን የለም"
- "ስልኩን ያርቁት"
- "ስልኩን ያቅርቡት"
- "ስልኩን ከፍ ወዳለ ቦታ ይውሰዱት"
- "ስልኩን ወደ ታች ዝቅ ያድርጉ"
- "ስልክዎን ወደ በስተግራዎ ይውሰዱት"
- "ስልኩን ወደ በስተቀኝዎ ይውሰዱት"
+ "ከልክ በላይ ጨለማ ነው። ከዚህ ፈካ ያለ ብርሃን አጠቃቀምን ይሞክሩ።"
+ "ስልክን ይበልጥ አርቀው ያንቀሳቅሱት።"
+ "ስልክን ወደ ቅርብ ቦታ ያንቀሳቅሱ።"
+ "ስልኩን ከፍ ወዳለ ቦታ ያንቀሳቅሱት።"
+ "ስልክን ወደ ታች ዝቅ ያድርጉ።"
+ "ስልክን ወደ ግራ ያንቀሳቅሱ።"
+ "ስልክን ወደ ቀኝ ያንቀሳቅሱ።""እባክዎ መሣሪያዎን ይበልጥ በቀጥታ ይመልከቱ።"
- "የእርስዎን መልክ ማየት አይችልም። ስልክዎን በዓይን ትክክል ይያዙ።"
+ "መልክዎን በቀጥታ ከስልኩ ፊት ያድርጉት።""ከልክ በላይ ብዙ እንቅስቃሴ። ስልኩን ቀጥ አድርገው ይያዙት።""እባክዎ ፊትዎን እንደገና ያስመዝግቡ"
- "መልክን መለየት አልተቻለም። እንደገና ይሞክሩ።"
- "የጭንቅላትዎን ቦታ በትንሹ ይለዋውጡ"
- "ስልክዎን ይበልጥ በቀጥታ ይመልከቱ"
- "ስልክዎን ይበልጥ በቀጥታ ይመልከቱ"
- "ስልክዎን ይበልጥ በቀጥታ ይመልከቱ"
+ "ከእንግዲህ ፊትን ለይቶ ማወቅ አይችልም። እንደገና ይሞክሩ።"
+ "በጣም ይመሳሰላል፣ እባክዎ የእርስዎን ፎቶ አነሳስ ይለውጡ"
+ "ጭንቅላትዎን ትንሽ ብቻ ያዙሩት።"
+ "ጭንቅላትዎን ትንሽ ብቻ ያጋድሉት።"
+ "ጭንቅላትዎን ትንሽ ብቻ ያዙሩት።""የእርስዎን ፊት የሚደብቀውን ሁሉንም ነገር በማስወገድ ላይ""የማያ ገጽዎን አናት ያጽዱት፣ ጥቁር አሞሌውን ጨምሮ"
-
-
-
-
- "የመልክዎን ሞዴል መፍጠር አልተቻለም። እንደገና ይሞክሩ።"
- "ጠቆር ያሉ መነጽሮች ተገኝተዋል። መልክዎ ሙሉ በሙሉ መታየት አለበት።"
- "የመልክ መሸፈኛ ተገኝቷል። መልክዎ ሙሉ በሙሉ መታየት አለበት።""መልክን ማረጋገጥ አይቻልም። ሃርድዌር የለም።"
@@ -924,14 +919,14 @@
"እንደገና ሞክር""ለሁሉም ባህሪያት እና ውሂብ ያስከፍቱ""የመጨረሻውን በመልክ መክፈት ሙከራዎችን አልፏል"
- "ምንም SIM የለም"
- "በጡባዊ ውስጥ ምንም ሲም የለም።"
- "በእርስዎ የAndroid TV መሣሪያ ውስጥ ምንም ሲም የለም።"
- "በስልክ ውስጥ ምንም ሲም የለም።"
- "ሲም ያክሉ።"
- "ሲሙ ጠፍቷል ወይም አይነበብም። ሲም ያክሉ።"
- "ጥቅም ላይ የማይውል ሲም።"
- "ሲምዎ በቋሚነት ቦዝኗል።\n ለሌላ ሲም የእርስዎን አገልግሎት ሰጪ ያግኙ።"
+ "ምንም ሲም ካርድ የለም"
+ "በጡባዊ ውስጥ ምንም SIM ካርድ የለም።"
+ "በእርስዎ Android TV መሣሪያ ላይ ምንም ሲም ካርድ የለም።"
+ "በስልክ ውስጥ ምንም SIM ካርድ የለም።"
+ "ሲም ካርድ አስገባ፡፡"
+ "SIM ካርዱ ጠፍቷል ወይም መነበብ አይችልም።እባክህ SIM ካርድ አስገባ።"
+ "የማይሰራ ሲም ካርድ።"
+ "SIM ካርድህ በቋሚነት ቦዝኗል።\n ለሌላ SIM ካርድ የገመድ አልባ አገልግሎት አቅራቢህ ጋር ተገናኝ።""ቀዳሚ ትራክ""ቀጣይ ትራክ""ለአፍታ አቁም"
@@ -941,10 +936,10 @@
"በፍጥነት አሳልፍ""የአደጋ ጊዜ ጥሪ ብቻ""አውታረመረብ ተሸንጉሯል"
- "ሲም በPUK የተቆለፈ ነው።"
+ "SIM ካርድበPUK ተዘግቷል።""እባክህ የተጠቃሚ መመሪያን ተመልከት ወይም የደንበኞች አገልግሎትአግኝ።"
- "ሲም ተቆልፏል።"
- "ሲምን በመክፈት ላይ…"
+ "SIM ካርድ ተዘግቷል።"
+ "የSIM ካርድ በመክፈት ላይ...""የመክፈቻ ስርዓተ ጥለቱን %1$dጊዜ በስህተት ስለውታል።\n\nእባክህ እንደገና ከ%2$dሰከንዶች በኋላ ሞክር።""%1$dጊዚያቶች የይለፍ ቃልህን በስህተት ተይበኻል፡፡በ%2$d ሰኮንዶች ውስጥ \n\nእንደገና ሞክር፡፡""%1$dጊዚያቶች ፒንህን በስህተት ተይበኻል፡፡በ\nሰኮንዶች ውስጥ \n%2$dእንደገና ሞክር፡፡"
@@ -1055,10 +1050,10 @@
"አስታውስ""በፍፁም""ይህን ገጽ ለመክፈት ፈቃድ የለህም።"
- "ጽሁፍ ወደ ቅንጥብ ሰሌዳ ተገልብጧል።"
+ "ፅሁፍ ወደ ቅንጥብ ሰሌዳ ተገልብጧል።""%1$s ከ %2$s ተለጥፏል""%1$s ከእርስዎ ቅንጥብ ሰሌዳ ተለጥፏል"
- "%1$s እርስዎ የቀዱትን ጽሁፍ ለጥፏል"
+ "%1$s እርስዎ የቀዱትን ጽሑፍ ለጥፏል""%1$s እርስዎ የቀዱትን ምስል ለጥፏል""%1$s እርስዎ የቀዱትን ይዘት ለጥፏል""ተጨማሪ"
@@ -1139,7 +1134,7 @@
"ተካ...""ሰርዝ""የURL ቅጂ"
- "ጽሁፍ ምረጥ"
+ "ፅሁፍ ምረጥ""ቀልብስ""ድገም""ራስ-ሙላ"
@@ -1152,7 +1147,7 @@
"የግቤት ስልትን ቀይር""የማከማቻ ቦታ እያለቀ ነው""አንዳንድ የስርዓት ተግባራት ላይሰሩ ይችላሉ"
- "ለስርዓቱ የሚሆን በቂ ቦታ የለም። 250 ሜባ ነፃ ቦታ እንዳለዎት ያረጋግጡና ዳግም ያስጀምሩ።"
+ "ለስርዓቱ የሚሆን በቂ ቦታ የለም። 250 ሜባ ነጻ ቦታ እንዳለዎት ያረጋግጡና ዳግም ያስጀምሩ።""%1$s እያሄደ ነው""ተጨማሪ መረጃ ለማግኘት ወይም መተግበሪያውን ለማቆም መታ ያድርጉ።""እሺ"
@@ -1162,7 +1157,7 @@
"ትኩረት""በመጫን ላይ…""በ"
- "ውጭ"
+ "ውጪ""ምልክት ተደርጎበታል""ምልክት አልተደረገበትም""ተመርጧል"
@@ -1198,7 +1193,7 @@
"የተለየ መተግበሪያ ይጠቀሙ""ነባሪ አጽዳ በስርዓት ቅንብሮች ውስጥ > Apps >፤ወርዷል፡፡""ድርጊት ምረጥ"
- "ለUSB መሣሪያ መተግበሪያ ምረጥ"
+ "ለUSB መሳሪያ መተግበሪያ ምረጥ""ምንም መተግበሪያዎች ይህን ድርጊት ማከናወን አይችሉም።""%1$s አቁሟል""%1$s ቆሟል"
@@ -1207,7 +1202,7 @@
"መተግበሪያውን እንደገና ክፈት""ግብረመልስ ይላኩ""ዝጋ"
- "መሣሪያ ዳግም እስኪጀመር ድረስ ድምፅ ያጥፉ"
+ "መሣሪያ ዳግም እስኪጀመር ድረስ ድምጽ ያጥፉ""ጠብቅ""መተግበሪያን ዝጋ"
@@ -1246,9 +1241,10 @@
"%1$sን ማዘጋጀት።""መተግበሪያዎችን በማስጀመር ላይ፡፡""አጨራረስ ማስነሻ፡፡"
+ "ማዋቀር ይቀጥሉ?""የማብሪያ/ማጥፊያ ቁልፉን ተጭነዋል — ይህ ብዙውን ጊዜ ማያ ገጹን ያጠፋል።\n\nየጣት አሻራዎን በሚያዋቅሩበት ጊዜ በትንሹ መታ ለማድረግ ይሞክሩ።"
- "ውቅረትን ለመጨረስ ማያ ገጽን ያጥፉ"
- "አጥፋ"
+ "ማያ ገጽን አጥፋ"
+ "ማዋቀር ቀጥል""የጣት አሻራዎን ማረጋገጥ ይቀጥሉ?""የማብሪያ/ማጥፊያ ቁልፉን ተጭነዋል - ይህ ብዙውን ጊዜ ማያ ገጹን ያጠፋል። \n\n የጣት አሻራዎን ለማረጋገጥ በትንሹ መታ ለማድረግ ይሞክሩ።""ማያ ገጽን አጥፋ"
@@ -1269,7 +1265,7 @@
"የ%1$s ሂደት ተራጋፊ ክምር ለማጋራት ለእርስዎ ይገኛል። ይጠንቀቁ፦ ይህ ተራጋፊ ክምር ሂደቱ ሊደርስባቸው የሚችለው ማንኛውም የግል መረጃ ሊኖረው ይችላል፣ ይህ እርስዎ የተየቧቸውን ነገሮች ሊያካትት ይችላል።""ለፅሁፍ ድርጊት ምረጥ""የስልክ ጥሪ ድምፅ"
- "የማህደረ መረጃ ድምፅ መጠን"
+ "የማህደረ መረጃ ድምጽ መጠን""በብሉቱዝ በኩል ማጫወት""የፀጥታ የስልክ የደውል ድምፅ ተዘጋጅቷል""የጥሪ ላይ ድም ፅ መጨመሪያ/መቀነሻ"
@@ -1280,7 +1276,7 @@
"የብሉቱዝ ድምፅ መጠን""የስልክ ጥሪ ድምፅ መጠን""የስልክ ጥሪ ድምፅ መጠን"
- "የማህደረ መረጃ ድምፅ መጠን"
+ "የማህደረ መረጃ ድምጽ መጠን""የማሳወቂያ ክፍልፍል""ነባሪ የስልክ ላይ ጥሪ""ነባሪ (%1$s)"
@@ -1327,10 +1323,10 @@
"ይሄንን በኋላ ላይ በቅንብሮች > መተግበሪያዎች ውስጥ ሊቀይሩት ይችላሉ""ሁልጊዜ ፍቀድ""በጭራሽ አትፍቀድ"
- "ሲም ተወግዷል"
- "በትክክለኛ ሲም እንደገና እስከሚያስጀምሩ ድረስ የተንቀሳቃሽ ስልክ አውታረ መረቡ አይገኝም።"
+ "SIM ካርድ ተወግዷል"
+ "በትክክል የገባ SIM ካርድ ድጋሚ እስኪያስጀምሩ የተንቀሳቃሽ ስልክ አውታረመረብ አይገኝም።""ተከናውኗል"
- "ሲም ታክሏል"
+ "SIM ካርድ አክል""የተንቀሳቃሽ አውታረ መረብን ለመድረስ መሣሪያህን ድጋሚ አስነሳ።""ዳግም ጀምር""የሞባይል አገልግሎትን አግብር"
@@ -1401,16 +1397,16 @@
"ለማዋቀር መታ ያድርጉ""ለማቀናበር ይምረጡ""መሣሪያውን ዳግም ቅርጸት መሥራት ሳያስፈልገዎት አይቀርም። ለማስወጣት መታ ያድርጉ።"
- "ፎቶዎችን፣ ቪድዮችን፣ ሙዚቃን እና ሌሎችንም ለማከማቸት"
+ "ፎቶዎችን እና ማህደረመረጃን ለማስተላለፍ""የሚዲያ ፋይሎችን ያስሱ""ከ%s ጋር ችግር""%s እየሠራ አይደለም""ለማስተካከል መታ ያድርጉ""%s የተበላሸ ነው። ለማስተካከል ይምረጡ።""መሣሪያውን ዳግም ቅርጸት መሥራት ሳያስፈልገዎት አይቀርም። ለማስወጣት መታ ያድርጉ።"
- "%s ተገኝቷል"
+ "ያልተደገፈ %s""%s እየሠራ አይደለም"
- "ለማዋቀር መታ ያድርጉ።"
+ "ይህ መሣሪያ ይህን %s አይደግፍም። በሚደገፍ ቅርጸት ለማዘጋጀት መታ ያድርጉ።""%sን በሚደገፍ ቅርጸት ለማዋቀር ይምረጡ።""መሣሪያውን ዳግም ቅርጸት መሥራት ሳያስፈልገዎት አይቀርም""%s ሳይታሰብ ተወግዷል"
@@ -1444,7 +1440,7 @@
"አልገባም""ምንም ተመሳሳይ እንቅስቃሴዎች አልተገኙም።""የሚዲያ ውፅዓት ማዛወር"
- "አንድ መተግበሪያ የሚዲያ ውፅአትን ወደ ሌላ ውጫዊ መሣሪያ እንዲመራ ይፈቅድለታል።"
+ "አንድ መተግበሪያ የሚዲያ ውፅአትን ወደ ሌላ ውጫዊ መሳሪያ እንዲመራ ይፈቅድለታል።""የመጫን ክፍለ ጊዜዎችን ማንበብ""መተግበሪያው የመጫን ክፍለ ጊዜዎችን እንዲያነብ ይፈቅድለታል። ይህም ስለ ገቢር የጥቅል ጭነቶች ዝርዝር መረጃን እንዲያይ ይፈቅድለታል።""የጭነት ጥቅሎችን መጠየቅ"
@@ -1474,7 +1470,7 @@
"ፈቃድ ተጠይቋል"\n" ለ%s መለያ ፈቃድ ተጠይቋል""ለመለያ %2$s\nበ%1$s የተጠየቀ ፈቃድ።"
- "ከስራ መገለጫዎ ውጭ ሆነው መተግበሪያ እየተጠቀሙ ነው"
+ "ከስራ መገለጫዎ ውጪ ሆነው መተግበሪያ እየተጠቀሙ ነው""ይህን መተግበሪያ በእርስዎ የስራ መገለጫ ላይ እየተጠቀሙበት ነው""ግቤት ስልት""አስምር"
@@ -1609,11 +1605,11 @@
"ቴሌቪዥን""ስልክ""የትከል ድምፅ ማጉያዎች"
- "የውጪ መሣሪያ"
+ "ኤችዲኤምአይ""የጆሮ ማዳመጫዎች""ዩ ኤስ ቢ""ስርዓት"
- "የብሉቱዝ ድምፅ"
+ "የብሉቱዝ ድምጽ""ገመድ አልባ ማሳያ""Cast""ከመሳሪያ ጋር ያገናኙ"
@@ -1642,7 +1638,7 @@
"ሲም አሁን ተሰናክሏል። ለመቀጠል የPUK ኮድ ያስገቡ። ለዝርዝር ድምጸ ተያያዥ ሞደምን ያግኙ።""የተፈለገውን የፒን ኮድ ያስገቡ""የተፈለገውን የፒን ኮድ ያረጋግጡ"
- "ሲምን በመክፈት ላይ…"
+ "ሲም ካርዱን በመክፈት ላይ…""ትክክል ያልሆነ ፒን ኮድ።""ከ4 እስከ 8 ቁጥሮች የያዘ ፒን ይተይቡ።""የPUK ኮድ 8 ቁጥሮች ነው መሆን ያለበት።"
@@ -1670,7 +1666,7 @@
"የመክፈቻ ስርዓተ ጥለቱን %1$d ጊዜ በትክክል አልሳሉትም። ከ%2$d ተጨማሪ ያልተሳኩ ሙከራዎች በኋላ የኢሜይል መለያ ተጠቅመው ስልክዎን እንዲከፍቱ ይጠየቃሉ።\n\nእባክዎ ከ%3$d ሰከንዶች በኋላ እንደገና ይሞክሩ።"" — ""አስወግድ"
- "ድምጹ ከሚመከረው መጠን በላይ ከፍ ይበል?\n\nበከፍተኛ ድምፅ ለረጅም ጊዜ ማዳመጥ ጆሮዎን ሊጎዳው ይችላል።"
+ "ድምጹ ከሚመከረው መጠን በላይ ከፍ ይበል?\n\nበከፍተኛ ድምጽ ለረጅም ጊዜ ማዳመጥ ጆሮዎን ሊጎዳው ይችላል።""የተደራሽነት አቋራጭ ጥቅም ላይ ይዋል?""አቋራጩ ሲበራ ሁለቱንም የድምጽ አዝራሮች ለ3 ሰከንዶች ተጭኖ መቆየት የተደራሽነት ባህሪን ያስጀምረዋል።""የተደራሽነት ባህሪዎች አቋራጭ ይብራ?"
@@ -1830,7 +1826,7 @@
"አዲስ ፒን ያረጋግጡ""ገደቦችን ለመቀየር ፒን ይፍጠሩ""ፒኖች አይዛመዱም። እንደገና ይሞክሩ።"
- "ፒን በጣም አጭር ነው። ቢያንስ 4 አሃዝ መሆን አለበት።"
+ "ፒን በጣም አጭር ነው። ቢያንስ 4 አኃዝ መሆን አለበት።""ቆይተው እንደገና ይሞክሩ""ሙሉ ገጽ በማሳየት ላይ""ለመውጣት፣ ከላይ ወደታች ጠረግ ያድርጉ።"
@@ -1923,7 +1919,6 @@
"የክልል ምርጫ""የቋንቋ ስም ይተይቡ""የተጠቆሙ"
- "በአስተያየት የተጠቆሙ""ሁሉም ቋንቋዎች""ሁሉም ክልሎች""ፈልግ"
@@ -1941,19 +1936,18 @@
"ካሜራ አይገኝም""በስልክ ላይ ይቀጥሉ""ማይክሮፎን አይገኝም"
- "Play መደብር አይገኝም""የAndroid TV ቅንጅቶች አይገኙም""የጡባዊ ቅንብሮች አይገኝም""የስልክ ቅንብሮች አይገኙም"
- "ይህ በዚህ ጊዜ በእርስዎ %1$s ላይ ሊደረስበት አይችልም። በምትኩ በAndroid TV መሣሪያዎ ላይ ይሞክሩ።"
- "ይህ በዚህ ጊዜ በእርስዎ %1$s ላይ ሊደረስበት አይችልም። በምትኩ በጡባዊዎ ላይ ይሞክሩ።"
- "ይህ በዚህ ጊዜ በእርስዎ %1$s ላይ ሊደረስበት አይችልም። በምትኩ በስልክዎ ላይ ይሞክሩ።"
+ "ይህ በእርስዎ %1$s ላይ ሊደረስበት አይችልም። በምትኩ በAndroid TV መሣሪያዎ ላይ ይሞክሩ።"
+ "ይህ በእርስዎ %1$s ላይ ሊደረስበት አይችልም። በምትኩ በጡባዊዎ ላይ ይሞክሩ።"
+ "ይህ በእርስዎ %1$s ላይ ሊደረስበት አይችልም። በምትኩ በስልክዎ ላይ ይሞክሩ።"
+ "ይህ በዚህ ጊዜ በእርስዎ %1$s ላይ ሊደረስበት አይችልም። በምትኩ በAndroid TV መሣሪያዎ ላይ ይሞክሩ።"
+ "ይህ በዚህ ጊዜ በእርስዎ %1$s ላይ ሊደረስበት አይችልም። በምትኩ በጡባዊዎ ላይ ይሞክሩ።"
+ "ይህ በዚህ ጊዜ በእርስዎ %1$s ላይ ሊደረስበት አይችልም። በምትኩ በስልክዎ ላይ ይሞክሩ።""ይህ መተግበሪያ ተጨማሪ ደህንነትን እየጠየቀ ነው። በምትኩ በAndroid TV መሣሪያዎ ላይ ይሞክሩ።""ይህ መተግበሪያ ተጨማሪ ደህንነትን እየጠየቀ ነው። በምትኩ በጡባዊዎ ላይ ይሞክሩ።""ይህ መተግበሪያ ተጨማሪ ደህንነትን እየጠየቀ ነው። በምትኩ በስልክዎ ላይ ይሞክሩ።"
- "ይህ በእርስዎ %1$s ላይ ሊደረስበት አይችልም። በምትኩ በAndroid TV መሣሪያዎ ላይ ይሞክሩ።"
- "ይህ በእርስዎ %1$s ላይ ሊደረስበት አይችልም። በምትኩ በጡባዊዎ ላይ ይሞክሩ።"
- "ይህ በእርስዎ %1$s ላይ ሊደረስበት አይችልም። በምትኩ በስልክዎ ላይ ይሞክሩ።""ይህ መተግበሪያ ለቆየ የAndroid ስሪት ነው የተገነባው፣ እና በአግባቡ ላይሰራ ይችላል። ዝማኔዎች ካሉ ለመመልከት ይሞክሩ፣ ወይም ደግሞ ገንቢውን ያነጋግሩ።""ዝማኔ ካለ አረጋግጥ""አዲስ መልዕክቶች አለዎት"
@@ -2046,8 +2040,7 @@
"%s ሁሉንም የመሣሪያ ምዝግብ ማስታወሻዎች እንዲደርስ ይፈቀድለት?""የአንድ ጊዜ መዳረሻን ፍቀድ""አትፍቀድ"
- "የመሣሪያ ምዝግብ ማስታወሻዎች በመሣሪያዎ ላይ ምን እንደሚከሰት ይመዘግባሉ። መተግበሪያዎች ችግሮችን ለማግኘት እና ለማስተካከል እነዚህን ምዝግብ ማስታወሻዎች መጠቀም ይችላሉ።\n\nአንዳንድ ምዝግብ ማስታወሻዎች ሚስጥራዊነት ያለው መረጃ ሊይዙ ይችላሉ፣ ስለዚህ የሚያምኗቸውን መተግበሪያዎች ብቻ ሁሉንም የመሣሪያ ምዝግብ ማስታወሻዎች እንዲደርሱ ይፍቀዱላቸው። \n\nይህ መተግበሪያ ሁሉንም የመሣሪያ ምዝግብ ማስታወሻዎች እንዲደርስ ካልፈቀዱለት አሁንም የራሱን ምዝግብ ማስታወሻዎች መድረስ ይችላል። የእርስዎ መሣሪያ አምራች አሁንም አንዳንድ ምዝግብ ማስታወሻዎችን ወይም መረጃዎችን በመሣሪያዎ ላይ ሊደርስ ይችላል።"
- "የመሣሪያ ምዝግብ ማስታወሻዎች በመሣሪያዎ ላይ ምን እንደሚከሰት ይመዘግባሉ። መተግበሪያዎች ችግሮችን ለማግኘት እና ለማስተካከል እነዚህን ምዝግብ ማስታወሻዎች መጠቀም ይችላሉ።\n\nአንዳንድ ምዝግብ ማስታወሻዎች ሚስጥራዊነት ያለው መረጃ ሊይዙ ይችላሉ፣ ስለዚህ የሚያምኗቸው መተግበሪያዎች ብቻ ሁሉንም የመሣሪያ ምዝግብ ማስታወሻዎች እንዲደርሱ ይፍቀዱላቸው። \n\nይህ መተግበሪያ ሁሉንም የመሣሪያ ምዝግብ ማስታወሻዎች እንዲደርስ ካልፈቀዱለት አሁንም የራሱን ምዝግብ ማስታወሻዎች መድረስ ይችላል። የመሣሪያዎ አምራች አሁንም አንዳንድ ምዝግብ ማስታወሻዎችን ወይም መረጃዎችን በመሣሪያዎ ላይ ሊደርስ ይችላል።\n\ng.co/android/devicelogs ላይ የበለጠ ይወቁ።"
+ "የመሣሪያ ምዝግብ ማስታወሻዎች በመሣሪያዎ ላይ ምን እንደሚከሰት ይመዘግባሉ። መተግበሪያዎች ችግሮችን ለማግኘት እና ለማስተካከል እነዚህን ምዝግብ ማስታወሻዎች መጠቀም ይችላሉ።\n\nአንዳንድ ምዝግብ ማስታወሻዎች ሚስጥራዊነት ያለው መረጃ ሊይዙ ይችላሉ፣ ስለዚህ የሚያምኗቸውን መተግበሪያዎች ብቻ ሁሉንም የመሣሪያ ምዝግብ ማስታወሻዎች እንዲደርሱ ይፍቀዱላቸው። \n\nይህ መተግበሪያ ሁሉንም የመሣሪያ ምዝግብ ማስታወሻዎች እንዲደርስ ካልፈቀዱለት አሁንም የራሱን ምዝግብ ማስታወሻዎች መድረስ ይችላል። የእርስዎ መሣሪያ አምራች አሁንም አንዳንድ ምዝግብ ማስታወሻዎችን ወይም መረጃን በመሣሪያዎ ላይ ሊደርስ ይችላል። የበለጠ ለመረዳት""ዳግም አታሳይ""%1$s የ%2$s ቁራጮችን ማሳየት ይፈልጋል""አርትዕ"
@@ -2060,7 +2053,8 @@
"አትረብሽ ተቀይሯል""ምን እንደታገደ ለመፈተሽ መታ ያድርጉ።""የማሳወቂያ ቅንብሮችን ይገምግሙ"
- "ከAndroid 13 ጀምረው የሚጭኗቸው መተግበሪያዎች ማሳወቂያዎችን ለመላክ የእርስዎ ፈቃድ ያስፈልጋቸዋል። ይህን ፈቃድ ለነባር መተግበሪያዎች ለመቀየር መታ ያድርጉ።"
+
+ "በኋላ አስታውሰኝ""አሰናብት""ሥርዓት"
@@ -2129,7 +2123,7 @@
"ከDpad በስተግራ""ከDpad በስተቀኝ""የDpad ማዕከል"
- "የ%1$s የሥዕል ገላጭ ጽሁፍ አሞሌ።"
+ "የ%1$s የሥዕል ገላጭ ጽሑፍ አሞሌ።""%1$s ወደ የRESTRICTED ባልዲ ተከትቷል""%1$s፦""አንድ ምስል ልከዋል"
@@ -2288,6 +2282,5 @@
"ንቁ መተግበሪያዎችን ይፈትሹ""የስልኩን ካሜራ ከእርስዎ %1$s መድረስ አይቻልም""ጡባዊውን ካሜራ ከእርስዎ %1$s መድረስ አይቻልም"
- "ዥረት በመልቀቅ ላይ ሳለ ይህ ሊደረስበት አይችልም። በምትኩ በስልክዎ ላይ ይሞክሩ።"
- "የሥርዓት ነባሪ"
+ "የስርዓት ቋንቋ"
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 7c1f8a8a659c9bab264724d54276a1eb745c16c0..006170cb255b15788dde454d255dc81b4bbe7184 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -21,6 +21,11 @@
"بايت"
+ "كيلوبايت"
+ "ميغابايت"
+ "غيغابايت"
+ "تيرابايت"
+ "بيتابايت""%1$s%2$s""<بلا عنوان>""(ليس هناك رقم هاتف)"
@@ -28,7 +33,6 @@
"البريد الصوتي""MSISDN1""حدثت مشكلة في الاتصال أو أن رمز MMI غير صحيح."
- "الميزة غير متاحة.""تم تقييد التشغيل لأرقام الاتصال الثابت فقط.""يتعذر تغيير إعدادات إعادة توجيه المكالمات من هاتفك أثناء التجوال.""تم تفعيل الخدمة."
@@ -43,8 +47,8 @@
"أرقام التعريف الشخصية التي كتبتها غير مطابقة.""ادخل رقم تعريف شخصي مكون من ٤ إلى ٨ أرقام.""اكتب رمز PUK مكونًا من ٨ أرقام أو أكثر."
- "شريحة SIM مُقفَلة برمز PUK. اكتب رمز PUK لإلغاء قفلها."
- "اكتب رمز PUK2 لإلغاء قفل شريحة SIM."
+ "شريحة SIM مؤمّنة برمز PUK. اكتب رمز PUK لإلغاء تأمينها."
+ "اكتب PUK2 لإلغاء تأمين شريحة SIM.""محاولة غير ناجحة، فعّل قفل SIM/RUIM."لم يتبق لديك أي محاولات (%d) يتم بعدها قفل شريحة SIM.
@@ -217,7 +221,7 @@
"تفعيل اللاسلكي""إيقاف الشبكة اللاسلكية""قفل الشاشة"
- "إطفاء"
+ "إيقاف التشغيل""إيقاف الرنين""اهتزاز الرنين""تشغيل الرنين"
@@ -241,7 +245,7 @@
"خيارات Android TV""خيارات الهاتف""قفل الشاشة"
- "إطفاء"
+ "إيقاف التشغيل""التشغيل""إعادة التشغيل""الطوارئ"
@@ -305,12 +309,12 @@
"الوصول إلى تقويمك""SMS""إرسال رسائل قصيرة SMS وعرضها"
- "الملفات"
- "الوصول إلى الملفات على جهازك"
- "الموسيقى والمقاطع الصوتية"
- "تسمح فئة أذونات التطبيق هذه بالوصول إلى الموسيقى والمقاطع الصوتية على جهازك."
- "الصور والفيديوهات"
- "تسمح فئة أذونات التطبيق هذه بالوصول إلى الصور والفيديوهات على جهازك."
+ "الملفات والمستندات"
+ "الوصول إلى الملفات والمستندات على جهازك"
+ "الموسيقى والملفات الصوتية الأخرى"
+ "الوصول إلى الملفات الصوتية على جهازك"
+ "الصور والفيديوهات"
+ "الوصول إلى الصور وملفات الفيديو على جهازك""الميكروفون""تسجيل الصوت""النشاط البدني"
@@ -350,7 +354,7 @@
"عرض الإشعارات كأنشطة بملء الشاشة على الأجهزة المُقفَلة""السماح للتطبيق بعرض الإشعارات كأنشطة بملء الشاشة على الأجهزة المُقفَلة""تثبيت اختصارات"
- "السماح لتطبيق بإضافة اختصارات على الشاشة الرئيسية بدون تدخل المستخدم."
+ "للسماح لتطبيق بإضافة اختصارات على الشاشة الرئيسية بدون تدخل المستخدم.""إزالة الاختصارات""للسماح للتطبيق بإزالة اختصارات من الشاشة الرئيسية بدون تدخل المستخدم.""إعادة توجيه المكالمات الصادرة"
@@ -510,7 +514,7 @@
"للسماح للتطبيق بالحصول على قائمة بالحسابات التي يعرفها الهاتف. وقد يتضمن ذلك أي حسابات تم إنشاؤها بواسطة التطبيقات التي ثبتها.""عرض اتصالات الشبكة""للسماح للتطبيق بعرض معلومات حول اتصالات الشبكة كعرض معلومات عن الشبكات المتوفرة والشبكات المتصلة."
- "الإذن بالوصول الكامل إلى الشبكة"
+ "حق الوصول الكامل إلى الشبكة""للسماح للتطبيق بإنشاء مقابس شبكات واستخدام بروتوكولات شبكات مخصصة. ويوفر المتصفح وتطبيقات أخرى طرقًا لإرسال البيانات إلى الإنترنت، ولذلك لا يعد هذا الإذن مطلوبًا لإرسال البيانات إلى الإنترنت.""تغيير اتصال الشبكة""للسماح للتطبيق بتغيير حالة اتصال الشبكة."
@@ -585,15 +589,14 @@
"خطأ في المصادقة""استخدام قفل الشاشة""أدخِل قفل الشاشة للمتابعة"
- "اضغط بقوة على المستشعر"
- "يتعذّر التعرّف على بصمة الإصبع. يُرجى إعادة المحاولة."
+ "اضغط بقوة على المستشعر."
+ "تعذرت معالجة بصمة الإصبع. يُرجى إعادة المحاولة.""يُرجى تنظيف مستشعر بصمات الإصبع ثم إعادة المحاولة.""تنظيف المستشعر ثم إعادة المحاولة"
- "اضغط بقوة على المستشعر"
+ "اضغط بقوة على المستشعر.""تم تحريك الإصبع ببطء شديد. يُرجى إعادة المحاولة.""يمكنك تجربة بصمة إصبع أخرى.""الصورة ساطعة للغاية."
- "تم رصد الضغط على زر التشغيل.""حاوِل تعديل بصمة الإصبع.""غيِّر موضع إصبعك قليلاً في كل مرة."
@@ -605,17 +608,16 @@
"تمّت مصادقة الوجه، يُرجى الضغط على \"تأكيد\".""جهاز بصمة الإصبع غير متاح.""يتعذّر إعداد بصمة الإصبع."
- "انتهت مهلة إعداد بصمة الإصبع. يُرجى إعادة المحاولة."
+ "تم بلوغ مهلة إدخال بصمة الإصبع. أعد المحاولة.""تم إلغاء تشغيل بصمة الإصبع.""تم إلغاء تشغيل بصمة الإصبع بواسطة المستخدم."
- "تم إجراء عدد كبير جدًا من المحاولات. عليك استخدام قفل الشاشة بدلاً من ذلك."
- "تم إجراء عدد كبير جدًا من المحاولات. عليك استخدام قفل الشاشة بدلاً من ذلك."
- "تتعذّر معالجة بصمة الإصبع. يُرجى إعادة المحاولة."
+ "تم إجراء عدد كبير من المحاولات. أعد المحاولة لاحقًا."
+ "تم إجراء عدد كبير جدًا من المحاولات. لذا تم إيقاف جهاز استشعار بصمات الإصبع."
+ "أعد المحاولة.""ليست هناك بصمات إصبع مسجَّلة.""لا يحتوي هذا الجهاز على مستشعِر بصمات إصبع.""تم إيقاف جهاز الاستشعار مؤقتًا."
- "لا يمكن استخدام أداة استشعار بصمة الإصبع. يُرجى التواصل مع مقدِّم خدمات إصلاح."
- "تم الضغط على زر التشغيل"
+ "لا يمكن استخدام مستشعر بصمات الإصبع. يُرجى التواصل مع مقدِّم خدمات إصلاح.""الإصبع %d""استخدام بصمة الإصبع""استخدام بصمة الإصبع أو قفل الشاشة"
@@ -636,33 +638,26 @@
"فتح الجهاز ببصمة الإصبع""لا يمكن استخدام مستشعر بصمات الإصبع""يُرجى التواصل مع مقدِّم خدمات إصلاح."
- "يتعذّر إنشاء نموذج الوجه. يُرجى إعادة المحاولة."
+ "تعذّر تسجيل بيانات دقيقة للوجه. حاول مرة أخرى.""ساطع للغاية. تجربة مستوى سطوع أقلّ."
- "الإضاءة غير كافية."
- "يُرجى إبعاد الهاتف عنك."
- "يُرجى تقريب الهاتف منك."
- "يُرجى رفع الهاتف للأعلى."
- "يُرجى خفض الهاتف للأسفل."
- "يُرجى تحريك الهاتف جهة اليسار."
- "يُرجى تحريك الهاتف جهة اليمين."
+ "الصورة معتمة للغاية. يُرجى زيادة السطوع."
+ "يُرجى نقل الهاتف مسافة أبعد."
+ "انقل الهاتف إلى مكان قريب."
+ "يُرجى رفع الهاتف للأعلى."
+ "يُرجى خفض الهاتف للأسفل."
+ "يُرجى نقل الهاتف إلى اليمين."
+ "يُرجى نقل الهاتف إلى اليسار.""يُرجى النظر إلى جهازك مباشرة أكثر."
- "تتعذّر رؤية وجهك. ارفع هاتفك إلى مستوى العينَين."
+ "ضع وجهك أمام الهاتف مباشرة.""حركة أكثر من اللازم يُرجى حمل بدون حركة.""يُرجى إعادة تسجيل وجهك."
- "يتعذّر التعرّف على الوجه. يُرجى إعادة المحاولة."
- "غيِّر موضع رأسك قليلاً."
- "يُرجى النظر إلى هاتفك مباشرةً."
- "يُرجى النظر إلى هاتفك مباشرةً."
- "يُرجى النظر إلى هاتفك مباشرةً."
+ "لم يعُد يمكن التعرّف على الوجه. حاول مرة أخرى."
+ "الوجه مشابه جدًا، يُرجى تغيير وضعيتك."
+ "حرّك رأسك قليلاً نحو الأمام مباشرة."
+ "يُرجى إمالة رأسك أقل قليلاً."
+ "حرّك رأسك قليلاً نحو الوسط.""عليك بإزالة أي شيء يُخفي وجهك.""يُرجى تنظيف الجزء العلوي من الشاشة، بما في ذلك الشريط الأسود."
-
-
-
-
- "يتعذّر إنشاء نموذج الوجه. يُرجى إعادة المحاولة."
- "تمّ رصد نظارة شمسية. يجب أن يكون وجهك ظاهرًا بالكامل."
- "تمّ رصد قناع على الوجه. يجب أن يكون وجهك ظاهرًا بالكامل.""يتعذّر التحقُّق من الوجه. الجهاز غير مُتاح."
@@ -928,14 +923,14 @@
"أعد المحاولة""فتح قفل جميع الميزات والبيانات""تم تجاوز الحد الأقصى لعدد محاولات فتح الجهاز بالتعرف على الوجه"
- "لا تتوفر شريحة SIM."
- "لا تتوفر شريحة SIM في الجهاز اللوحي."
- "لا تتوفر شريحة SIM في جهاز Android TV."
- "لا تتوفر شريحة SIM في الهاتف."
- "يجب إضافة شريحة SIM."
- "شريحة SIM مفقودة أو غير قابلة للقراءة. يجب إضافة شريحة SIM."
- "شريحة SIM غير قابلة للاستخدام."
- "تم إيقاف شريحة SIM نهائيًا.\n عليك التواصل مع مقدم خدمة اللاسلكي للحصول على شريحة SIM أخرى."
+ "ليست هناك شريحة SIM"
+ "ليس هناك شريحة SIM في الجهاز اللوحي."
+ "لا تتوفر شريحة SIM في جهاز Android TV."
+ "ليس هناك شريحة SIM في الهاتف."
+ "أدخل شريحة SIM."
+ "شريحة SIM مفقودة أو غير قابلة للقراءة. أدخل شريحة SIM."
+ "شريحة SIM غير قابلة للاستخدام."
+ "تم إيقاف شريحة SIM بشكل دائم.\n اتصل بمقدم خدمة اللاسلكي للحصول على شريحة SIM أخرى.""المقطع الصوتي السابق""المقطع الصوتي التالي""إيقاف مؤقت"
@@ -945,10 +940,10 @@
"تقديم سريع""مكالمات الطوارئ فقط""الشبكة مؤمّنة"
- "شريحة SIM مُقفَلة برمز PUK."
+ "شريحة SIM مؤمّنة بكود PUK.""راجع دليل المستخدم أو اتصل بخدمة العملاء."
- "شريحة SIM مُقفَلة."
- "جارٍ إلغاء قفل شريحة SIM…"
+ "شريحة SIM مؤمّنة."
+ "جارٍ فتح قفل شريحة SIM…""لقد رسمت نقش فتح القفل بطريقة غير صحيحة %1$d مرة.\n\nيُرجى إعادة المحاولة خلال %2$d ثانية.""لقد كتبت كلمة المرور %1$d مرة بشكل غير صحيح. \n\nأعد المحاولة خلال %2$d ثانية.""لقد كتبت رمز PIN %1$d مرة بشكل غير صحيح. \n\nأعد المحاولة خلال %2$d ثانية."
@@ -1250,9 +1245,10 @@
"جارٍ تحضير %1$s.""بدء التطبيقات.""جارٍ إعادة التشغيل."
+ "هل تريد مواصلة عملية الإعداد؟""ضغطت على زر التشغيل، يؤدي هذا عادةً إلى إيقاف الشاشة.\n\nجرِّب النقر بخفة أثناء إعداد بصمتك."
- "لإنهاء عملية الإعداد، أوقِف الشاشة."
- "إيقاف"
+ "إيقاف الشاشة"
+ "مواصلة عملية الإعداد""هل تريد مواصلة تأكيد بصمة إصبعك؟""ضغطت على زر التشغيل، يؤدي هذا عادةً إلى إيقاف الشاشة.\n\nجرِّب النقر بخفة لتأكيد بصمة إصبعك.""إيقاف الشاشة"
@@ -1268,7 +1264,7 @@
"نَسْخ الذاكرة %1$s جاهز""تم جمع مقدار كبير من بيانات الذاكرة. انقر للمشاركة.""هل تريد مشاركة نَسْخ الذاكرة؟"
- "تجاوزت عملية %1$s حد الذاكرة المخصص لها وقدره %2$s، ويتوفر نَسْخ للذاكرة لمشاركته مع مطور برامج العملية ولكن توخ الحذر حيث قد يحتوي نَسْخ الذاكرة هذا على معلومات شخصية يملك التطبيق الإذن بالوصول إليها."
+ "تجاوزت عملية %1$s حد الذاكرة المخصص لها وقدره %2$s، ويتوفر نَسْخ للذاكرة لمشاركته مع مطور برامج العملية ولكن توخ الحذر حيث قد يحتوي نَسْخ الذاكرة هذا على معلومات شخصية يملك التطبيق حق الوصول إليها.""تجاوزت عملية %1$s القيد المفروض على الذاكرة الذي يبلغ %2$s. ويتوفّر نَسْخ ذاكرة يمكنك مشاركته. تحذير: قد يحتوي نَسْخ الذاكرة هذا على معلومات شخصية حسّاسة يمكن للعملية الوصول إليها، وقد يتضمن معلومات سبق لك كتابتها.""يتوفّر نَسْخ ذاكرة من عملية %1$s حتى تتمكّن من مشاركته. تحذير: قد يحتوي نَسْخ الذاكرة هذا على معلومات شخصية حسّاسة يمكن للعملية الوصول إليها، وقد يتضمن معلومات سبق لك كتابتها.""اختيار إجراء للنص"
@@ -1331,10 +1327,10 @@
"يمكنك تغيير ذلك لاحقًا من إعدادات > تطبيقات""السماح دومًا""عدم السماح مطلقًا"
- "تمت إزالة شريحة SIM"
- "لن تتوفّر شبكة الجوال إلى أن تتم إعادة تشغيل الهاتف باستخدام شريحة SIM صالحة."
+ "تمت إزالة شريحة SIM"
+ "لن تكون شبكة الجوال متاحة حتى تتم إعادة التشغيل وإدخال شريحة SIM صالحة.""تم"
- "تمت إضافة شريحة SIM"
+ "تمت إضافة شريحة SIM""أعد تشغيل جهازك للدخول إلى شبكة الجوال.""إعادة التشغيل""تفعيل خدمة الجوّال"
@@ -1405,16 +1401,16 @@
"انقر للإعداد.""اختيار الوسائط لإعدادها""قد تحتاج إلى إعادة تنسيق الجهاز. انقر على إخراج."
- "لتخزين الصور والفيديوهات والموسيقى وغير ذلك."
+ "لنقل الصور والوسائط""تصفّح ملفات الوسائط""هناك مشكلة في %s.""%s لا يعمل.""انقر للإصلاح""%s تالف، ويمكنك اختيار إصلاحه.""قد تحتاج إلى إعادة تنسيق الجهاز. انقر على إخراج."
- "تم رصد %s."
+ "%s غير متوافق""%s لا يعمل."
- "انقر لبدء عملية إعداد الوسائط الخارجية."
+ "هذا الجهاز غير متوافق مع %s هذا. انقر للإعداد بتنسيق متوافق.""عليك الاختيار لإعداد \"%s\" بتنسيق متوافق.""قد تحتاج إلى إعادة تنسيق الجهاز.""تمت إزالة %s بشكل غير متوقع"
@@ -1424,7 +1420,7 @@
"جارٍ إخراج %s""عدم الإزالة""إعداد"
- "إخراج"
+ "إلغاء""استكشاف""تبديل جهاز إخراج الصوت""%s مفقود"
@@ -1613,7 +1609,7 @@
"التلفزيون""الهاتف""مكبرات صوت للإرساء"
- "جهاز خارجي"
+ "HDMI""سماعات رأس""USB""النظام"
@@ -1636,7 +1632,7 @@
"%1$s: %2$dx%3$d، %4$d نقطة لكل بوصة""آمن""نسيت النقش"
- "النقش غير صحيح."
+ "النقش غير صحيح""كلمة مرور خاطئة""رقم تعريف شخصي خاطئ""ارسم نقشك"
@@ -1646,7 +1642,7 @@
"شريحة SIM غير مفعّلة الآن. أدخل رمز PUK للمتابعة. اتصل بمشغل شبكة الجوال للاطلاع على التفاصيل.""إدخال رمز رمز PIN المراد""تأكيد رمز رمز PIN المراد"
- "جارٍ إلغاء قفل شريحة SIM…"
+ "جارٍ فتح قفل شريحة SIM…""رمز PIN غير صحيح.""اكتب رقم التعريف الشخصي المكون من ٤ إلى ٨ أرقام.""يجب أن يتكون رمز PUK من ۸ أرقام."
@@ -1689,9 +1685,9 @@
"هل تريد السماح لخدمة %1$s بالتحكّم الكامل في جهازك؟""إنّ التحكّم الكامل ليس ملائمًا لمعظم التطبيقات، باستثناء التطبيقات المعنية بسهولة الاستخدام.""قراءة محتوى الشاشة والتحكم به"
- "يمكنها قراءة كل المحتوى على الشاشة وعرض المحتوى فوق تطبيقات أخرى."
+ "يمكنها قراءة كل المحتوى على الشاشة وعرض المحتوى عبر تطبيقات أخرى.""عرض الإجراءات وتنفيذها"
- "يمكنها تتبّع تفاعلاتك مع تطبيق أو جهاز استشعار والتفاعل مع التطبيقات نيابةً عنك."
+ "يمكنها تتبّع تعاملاتك مع تطبيق أو جهاز استشعار والتفاعل مع التطبيقات نيابةً عنك.""سماح""رفض""انقر على ميزة لبدء استخدامها:"
@@ -1852,7 +1848,7 @@
"العمل الثالث %1$s""طلب إدخال رقم التعريف الشخصي قبل إزالة التثبيت""طلب إدخال النقش الخاص بإلغاء القفل قبل إزالة التثبيت"
- "طلب إدخال كلمة المرور قبل إزالة التثبيت"
+ "المطالبة بكلمة المرور قبل إزالة التثبيت""تم التثبيت بواسطة المشرف""تم التحديث بواسطة المشرف""تم الحذف بواسطة المشرف"
@@ -1926,8 +1922,7 @@
"إضافة لغة""تفضيل المنطقة""اكتب اسم اللغة"
- "اللغات المقترَحة"
- "الاقتراحات"
+ "المناطق المقترحة""جميع اللغات""كل المناطق""البحث"
@@ -1945,19 +1940,18 @@
"الكاميرا غير متاحة""الاستمرار على الهاتف""الميكروفون غير متاح"
- "متجر Play غير متوفّر""إعدادات Android TV غير متاحة""إعدادات الجهاز اللوحي غير متاحة""إعدادات الهاتف غير متاحة"
- "لا يمكن الوصول إلى هذا التطبيق على %1$s في الوقت الحالي. حاوِل الوصول إليه على جهاز Android TV بدلاً من ذلك."
- "لا يمكن الوصول إلى هذا التطبيق على %1$s في الوقت الحالي. حاوِل الوصول إليه على جهازك اللوحي بدلاً من ذلك."
- "لا يمكن الوصول إلى هذا التطبيق على %1$s في الوقت الحالي. حاوِل الوصول إليه على هاتفك بدلاً من ذلك."
+ "لا يمكن الوصول إلى هذا التطبيق على %1$s. بدلاً من ذلك، جرِّب استخدام Android TV."
+ "لا يمكن الوصول إلى هذا التطبيق على %1$s. بدلاً من ذلك، جرِّب استخدام جهازك اللوحي."
+ "لا يمكن الوصول إلى هذا التطبيق على %1$s. بدلاً من ذلك، جرِّب استخدام هاتفك."
+ "لا يمكن الوصول إلى هذا التطبيق على %1$s في الوقت الحالي. بدلاً من ذلك، جرِّب استخدام Android TV."
+ "لا يمكن الوصول إلى هذا التطبيق على %1$s في الوقت الحالي. بدلاً من ذلك، جرِّب استخدام جهازك اللوحي."
+ "لا يمكن الوصول إلى هذا التطبيق على %1$s في الوقت الحالي. بدلاً من ذلك، جرِّب استخدام هاتفك.""يطلب هذا التطبيق الحصول على ميزات أمان إضافية. بدلاً من ذلك، جرِّب استخدام Android TV.""يطلب هذا التطبيق الحصول على ميزات أمان إضافية. بدلاً من ذلك، جرِّب استخدام جهازك اللوحي.""يطلب هذا التطبيق الحصول على ميزات أمان إضافية. بدلاً من ذلك، جرِّب استخدام هاتفك."
- "لا يمكن الوصول إلى هذه الإعدادات على %1$s. بدلاً من ذلك، جرِّب استخدام جهاز Android TV."
- "لا يمكن الوصول إلى هذه الإعدادات على %1$s. بدلاً من ذلك، جرِّب استخدام جهازك اللوحي."
- "لا يمكن الوصول إلى هذه الإعدادات على %1$s. بدلاً من ذلك، جرِّب استخدام هاتفك.""تمّ إنشاء هذا التطبيق لإصدار قديم من Android وقد لا يعمل بشكل صحيح. جرِّب البحث عن تحديثات أو الاتصال بمطوّر البرامج.""البحث عن تحديث""لديك رسائل جديدة"
@@ -2050,8 +2044,7 @@
"هل تريد السماح لتطبيق %s بالوصول إلى جميع سجلّات الجهاز؟""السماح بالوصول إلى السجلّ لمرة واحدة""عدم السماح"
- "ترصد سجلّات الجهاز ما يحدث على جهازك. يمكن أن تستخدم التطبيقات هذه السجلّات لتحديد المشاكل وحلها.\n\nقد تحتوي بعض السجلّات على معلومات حساسة، ولذلك يجب عدم السماح بالوصول إلى جميع سجلّات الجهاز إلا للتطبيقات التي تثق بها. \n\nإذا لم تسمح بوصول هذا التطبيق إلى جميع سجلّات الجهاز، يظل بإمكان التطبيق الوصول إلى سجلّاته. ويظل بإمكان الشركة المصنِّعة لجهازك الوصول إلى بعض السجلّات أو المعلومات المتوفّرة على جهازك."
- "ترصد سجلّات الجهاز ما يحدث على جهازك. يمكن أن تستخدم التطبيقات هذه السجلّات لتحديد المشاكل وحلّها.\n\nقد تحتوي بعض السجلّات على معلومات حساسة، ولذلك يجب عدم السماح بالوصول إلى جميع سجلّات الجهاز إلا للتطبيقات التي تثق بها. \n\nإذا لم تسمح بوصول هذا التطبيق إلى جميع سجلّات الجهاز، يظل بإمكان التطبيق الوصول إلى سجلّاته. وقد يظل بإمكان الشركة المصنِّعة لجهازك الوصول إلى بعض السجلّات أو المعلومات المتوفّرة على جهازك.\n\nتعرَّف على مزيد من المعلومات على الرابط g.co/android/devicelogs."
+ "ترصد سجلّات الجهاز ما يحدث على جهازك. يمكن أن تستخدم التطبيقات هذه السجلّات لتحديد المشاكل وحلها.\n\nقد تحتوي بعض السجلّات على معلومات حساسة، ولذلك يجب عدم السماح بالوصول إلى جميع سجلّات الجهاز إلا للتطبيقات التي تثق بها. \n\nإذا لم تسمح بوصول هذا التطبيق إلى جميع سجلّات الجهاز، يظل بإمكان التطبيق الوصول إلى سجلّاته. ويظل بإمكان الشركة المصنّعة لجهازك الوصول إلى بعض السجلّات أو المعلومات المتوفّرة على جهازك. مزيد من المعلومات""عدم الإظهار مرة أخرى""يريد تطبيق %1$s عرض شرائح تطبيق %2$s.""تعديل"
@@ -2064,7 +2057,8 @@
"تم تغيير ميزة \"عدم الإزعاج\"""انقر للاطّلاع على ما تم حظره.""مراجعة إعدادات الإشعارات"
- "بدءً من نظام التشغيل Android 13، يجب أن تحصل التطبيقات التي تُثبِّتها على إذن لإرسال الإشعارات. انقر لتغيير هذا الإذن للتطبيقات الحالية."
+
+ "تذكيري لاحقًا""إغلاق""النظام"
@@ -2112,7 +2106,7 @@
"سيظل البلوتوث مفعَّلاً أثناء استخدام \"وضع الطيران\".""جارٍ التحميل""{count,plural, =1{{file_name} + ملف واحد}zero{{file_name} + # ملف}two{{file_name} + ملفان}few{{file_name} + # ملفات}many{{file_name} + # ملفًا}other{{file_name} + # ملف}}"
- "ما مِن أشخاص مقترحين للمشاركة معهم."
+ "ليس هناك أشخاص مقترحون للمشاركة معهم.""قائمة التطبيقات""لم يتم منح هذا التطبيق إذن تسجيل، ولكن يمكنه تسجيل الصوت من خلال جهاز USB هذا.""الشاشة الرئيسية"
@@ -2292,6 +2286,5 @@
"التحقّق من التطبيقات النشطة""يتعذّر الوصول إلى كاميرا الهاتف من على جهاز %1$s.""يتعذّر الوصول إلى كاميرا الجهاز اللوحي من على جهاز %1$s."
- "لا يمكن الوصول إلى هذا المحتوى أثناء البث. بدلاً من ذلك، جرِّب استخدام هاتفك."
- "الإعداد التلقائي للنظام"
+ "لغة النظام"
diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml
index 38580eb1bf5046c73662329c2e7a4e63bd5553cc..df71dfa4aabde310e456a6181b7d4ddd70a1b780 100644
--- a/core/res/res/values-as/strings.xml
+++ b/core/res/res/values-as/strings.xml
@@ -21,6 +21,11 @@
"বা."
+ "কে. বি."
+ "এম. বি."
+ "জি. বি."
+ "টি. বি."
+ "পি. বি.""%1$s%2$s""<শিৰোনামবিহীন>""(কোনো ফ\'ন নম্বৰ নাই)"
@@ -28,7 +33,6 @@
"ভইচমেইল""MSISDN1""সংযোগৰ সমস্যা বা MMI ক\'ড মান্য নহয়।"
- "সুবিধাটো সমৰ্থিত নহয়।""কেৱল ফিক্সড ডায়েলিং নম্বৰৰ বাবে কার্য সীমাবদ্ধ কৰা হৈছে।""আপুনি ৰ\'মিঙত থকাৰ সময়ত কল ফৰৱাৰ্ডিঙৰ ছেটিং সলনি কৰিব নোৱাৰি।""সেৱা সক্ষম কৰা হ’ল।"
@@ -43,8 +47,8 @@
"আপুনি লিখা পিনবিলাক মিলা নাই।""৪টাৰ পৰা ৮টা সংখ্যাযুক্ত এটা পিন লিখক।""৮টা সংখ্যা বা তাতকৈ বেছি সংখ্যাৰ এটা PUK লিখক।"
- "আপোনাৰ ছিমখন PUKৰ দ্বাৰা লক হৈ আছে। এইখন আনলক কৰিবলৈ PUK ক’ডটো টাইপ কৰক।"
- "ছিম অৱৰোধৰ পৰা আঁতৰাবলৈ PUK2 টাইপ কৰক।"
+ "আপোনাৰ ছিমটো PUK ক\'ডেৰে লক কৰা আছে। PUK ক\'ড লিখি ইয়াক আনলক কৰক।"
+ "ছিম কার্ড আনলক কৰিবলৈ PUK2 দিয়ক৷""অসফল, ছিম/RUIM লক সক্ষম কৰক।"ছিম লক হোৱাৰ পূৰ্বে আপোনাৰ %dটা প্ৰয়াস বাকী আছে।
@@ -167,7 +171,7 @@
"অমান্য URLৰ বাবে পৃষ্ঠাটো খুলিব পৰা নগ\'ল।""ফাইলত খুলিব পৰা নগ\'ল।""অনুৰোধ কৰা ফাইলটো বিচাৰি পোৱা নগ\'ল।"
- "বহুত বেছি অনুৰোধৰ প্ৰক্ৰিয়া চলি আছে৷ অনুগ্ৰহ কৰি পাছত আকৌ চেষ্টা কৰক৷"
+ "বহুত বেছি অনুৰোধৰ প্ৰক্ৰিয়া চলি আছে৷ অনুগ্ৰহ কৰি পিছত আকৌ চেষ্টা কৰক৷""%1$sত ছাইন ইন কৰাত আসোঁৱাহ""ছিংক ত্ৰুটি""ছিংক কৰিব নোৱাৰি"
@@ -199,7 +203,7 @@
"ডিভাইচৰ নীতিৰ পৰিচালক সেৱা""সংগীত চিনাক্তকৰণ পৰিচালক সেৱা""আপোনাৰ ডিভাইচৰ ডেটা মচা হ\'ব"
- "এই প্ৰশাসক এপ্টো ব্যৱহাৰ কৰিব নোৱাৰি। এতিয়া আপোনাৰ ডিভাইচটোৰ ডেটা মচা হ\'ব।\n\nআপোনাৰ কিবা প্ৰশ্ন থাকিলে আপোনাৰ প্ৰতিষ্ঠানৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।"
+ "এই প্ৰশাসক এপটো ব্যৱহাৰ কৰিব নোৱাৰি। এতিয়া আপোনাৰ ডিভাইচটোৰ ডেটা মচা হ\'ব।\n\nআপোনাৰ কিবা প্ৰশ্ন থাকিলে আপোনাৰ প্ৰতিষ্ঠানৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।""প্ৰিণ্ট কৰা কাৰ্য %sএ অক্ষম কৰি ৰাখিছে।""কৰ্মস্থানৰ প্ৰ’ফাইলটো অন কৰক""আপুনি নিজৰ কৰ্মস্থানৰ প্ৰ’ফাইলটো অন নকৰালৈকে আপোনাৰ ব্যক্তিগত এপ্সমূহ অৱৰোধ কৰা থাকে"
@@ -301,12 +305,12 @@
"আপোনাৰ কেলেণ্ডাৰ ব্যৱহাৰ কৰিব পাৰে""এছএমএছ""এছএমএছ বার্তা পঠিয়াব আৰু চাব পাৰে"
- "ফাইল"
- "আপোনাৰ ডিভাইচত থকা ফাইল এক্সেছ কৰা"
- "সংগীত আৰু অডিঅ’"
- "আপোনাৰ ডিভাইচত সংগীত আৰু অডিঅ’ এক্সেছ কৰক"
- "ফট’ আৰু ভিডিঅ’"
- "আপোনাৰ ডিভাইচত ফট’ আৰু ভিডিঅ’ এক্সেছ কৰক"
+ "ফাইল আৰু নথি"
+ "আপোনাৰ ডিভাইচত থকা ফাইল আৰু নথি এক্সেছ কৰে"
+ "সংগীত আৰু অন্যান্য অডিঅ’"
+ "আপোনাৰ ডিভাইচত অডিঅ’ ফাইলসমূহ এক্সেছ কৰক"
+ "ফট’ আৰু ভিডিঅ’"
+ "আপোনাৰ ডিভাইচত থকা প্ৰতিচ্ছবি আৰু ভিডিঅ’ ফাইলসমূহ এক্সেছ কৰক""মাইক্ৰ\'ফ\'ন""অডিঅ\' ৰেকর্ড কৰিব পাৰে""শাৰীৰিক কাৰ্যকলাপ"
@@ -338,23 +342,23 @@
"স্ক্ৰীনশ্বট লওক""ডিছপ্লে’খনৰ এটা স্ক্ৰীনশ্বট ল\'ব পাৰে।""স্থিতি দণ্ড অক্ষম কৰক বা সলনি কৰক"
- "স্থিতি দণ্ড অক্ষম কৰিবলৈ বা ছিষ্টেম আইকন আঁতৰাবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "স্থিতি দণ্ড অক্ষম কৰিবলৈ বা ছিষ্টেম আইকন আঁতৰাবলৈ এপটোক অনুমতি দিয়ে।""স্থিতি দণ্ড হ\'ব পাৰে"
- "নিজকে স্থিতি দণ্ডৰূপে দেখুওৱাবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "নিজকে স্থিতি দণ্ডৰূপে দেখুওৱাবলৈ এপটোক অনুমতি দিয়ে।""স্থিতি দণ্ড সম্প্ৰসাৰিত বা সংকোচিত কৰক"
- "স্থিতি দণ্ড বিস্তাৰিত বা সংকুচিত কৰিবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "স্থিতি দণ্ড বিস্তাৰিত বা সংকুচিত কৰিবলৈ এপটোক অনুমতি দিয়ে।""কোনো লক কৰি ৰখা ডিভাইচত জাননী পূৰ্ণ স্ক্ৰীনৰ কাৰ্যকলাপ হিচাপে প্ৰদৰ্শন কৰক""এপ্টোক কোনো লক কৰি ৰখা ডিভাইচত জাননী পূৰ্ণ স্ক্ৰীনৰ কাৰ্যকলাপ হিচাপে প্ৰদৰ্শন কৰিবলৈ অনুমতি দিয়ে""শ্বৰ্টকাট ইনষ্টল কৰিব পাৰে"
- "এটা এপ্লিকেশ্বনক ব্যৱহাৰকাৰীৰ হস্তক্ষেপৰ অবিহনে গৃহ স্ক্ৰীন শ্বৰ্টকাট যোগ কৰিবলৈ অনুমতি দিয়ে।"
+ "এটা এপ্লিকেশ্বনক ব্যৱহাৰকাৰীৰ হস্তক্ষেপৰ অবিহনে গৃহ স্ক্ৰীণ শ্বৰ্টকাট যোগ কৰিবলৈ অনুমতি দিয়ে।""শ্বৰ্টকাট আনইনষ্টল কৰিব পাৰে"
- "ব্যৱহাৰকাৰীৰ হস্তক্ষেপৰ অবিহনে গৃহ স্ক্ৰীনৰ শ্বৰ্টকাটসমূহ আঁতৰাবলৈ এপ্লিকেশ্বনক অনুমতি দিয়ে।"
+ "ব্যৱহাৰকাৰীৰ হস্তক্ষেপৰ অবিহনে গৃহ স্ক্ৰীণৰ শ্বৰ্টকাটসমূহ আঁতৰাবলৈ এপ্লিকেশ্বনক অনুমতি দিয়ে।""বহিৰ্গামী কলসমূহ অন্য ক\'ৰবালৈ পঠিয়াওক""এটা বৰ্হিগামী কল কৰি থকাৰ সময়ত ডায়েল কৰা নম্বৰ চাবলৈ আৰু লগতে এটা পৃথক নম্বৰলৈ কল সংযোগ কৰিবলৈ বা সকলোকে একেলগে বন্ধ কৰিবলৈ এপক অনুমতি দিয়ে।""ফ\'ন কলৰ উত্তৰ দিব পাৰে"
- "এপ্টোক অন্তৰ্গামী ফ\'ন কলৰ উত্তৰ দিবলৈ অনুমতি দিয়ে।"
+ "এপটোক অন্তৰ্গামী ফ\'ন কলৰ উত্তৰ দিবলৈ অনুমতি দিয়ে।""পাঠ বার্তা (এছএমএছ) বোৰ লাভ কৰক"
- "এপ্টোক এছএমএছ বাৰ্তাবোৰ পাবলৈ আৰু প্ৰক্ৰিয়া সম্পন্ন কৰিবলৈ অনুমতি দিয়ে৷ ইয়াৰ অৰ্থ এইটোৱেই যে এপটোৱে আপোনাক বাৰ্তাবোৰ নেদেখুৱাকৈয়ে আপোনাৰ ডিভাইচলৈ পঠিওৱা বাৰ্তাবোৰ নিৰীক্ষণ কৰিব বা মচিব পাৰে৷"
+ "এপটোক এছএমএছ বাৰ্তাবোৰ পাবলৈ আৰু প্ৰক্ৰিয়া সম্পন্ন কৰিবলৈ অনুমতি দিয়ে৷ ইয়াৰ অৰ্থ এইটোৱেই যে এপটোৱে আপোনাক বাৰ্তাবোৰ নেদেখুৱাকৈয়ে আপোনাৰ ডিভাইচলৈ পঠিওৱা বাৰ্তাবোৰ নিৰীক্ষণ কৰিব বা মচিব পাৰে৷""পাঠ বার্তা (এমএমএছ) বোৰ লাভ কৰক""এমএমএছ বার্তাবোৰ লাভ আৰু ইয়াৰ প্ৰক্ৰিয়া সম্পন্ন কৰিবলৈ এপক অনুমতি দিয়ে। ইয়াৰ অৰ্থ হৈছে এই এপে আপোনাৰ ডিভাইচলৈ প্ৰেৰণ কৰা বার্তাসমূহ আপোনাক নেদেখুৱাকৈয়ে পৰ্যবেক্ষণ আৰু মচিব পাৰে।""চেল সম্প্ৰচাৰ বাৰ্তাসমূহ ফৰৱাৰ্ড কৰক"
@@ -364,26 +368,26 @@
"চেল সম্প্ৰচাৰৰ বার্তাবোৰ পঢ়ক""আপোনাৰ ডিভাইচে লাভ কৰা চেল সম্প্ৰচাৰৰ বার্তাবোৰ পঢ়িবলৈ এপক অনুমতি দিয়ে। আপোনাক জৰুৰীকালীন পৰিস্থিতিবোৰত সর্তক কৰিবলৈ চেল সম্প্ৰচাৰৰ বার্তাবোৰ প্ৰেৰণ কৰা হয়। জৰুৰীকালীন চেল সম্প্ৰচাৰ লাভ কৰাৰ সময়ত আপোনাৰ ডিভাইচৰ কাৰ্যদক্ষতা বা কাৰ্যপ্ৰণালীত ক্ষতিকাৰক এপবোৰে হস্তক্ষেপ কৰিব পাৰে।""আপুনি সদস্যভুক্ত হোৱা ফীডসমূহ পঢ়ক"
- "বৰ্তমান ছিংক কৰা ফীডৰ সবিশেষ লাভ কৰিবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "বৰ্তমান ছিংক কৰা ফীডৰ সবিশেষ লাভ কৰিবলৈ এপটোক অনুমতি দিয়ে।""এছএমএছ ৰ বার্তাবোৰ প্ৰেৰণ কৰিব আৰু চাব পাৰে"
- "এপ্টোক এছএমএছ বাৰ্তা পঠিয়াবলৈ অনুমতি দিয়ে৷ ইয়াৰ ফলত অপ্ৰত্যাশিত মাচুল ভৰিবলগা হ\'ব পাৰে৷ ক্ষতিকাৰক এপসমূহে আপোনাৰ অনুমতি নোলোৱাকৈয়ে বাৰ্তা পঠিয়াই আপোনাৰ পৰা মাচুল কাটিব পাৰে৷"
+ "এপটোক এছএমএছ বাৰ্তা পঠিয়াবলৈ অনুমতি দিয়ে৷ ইয়াৰ ফলত অপ্ৰত্যাশিত মাচুল ভৰিবলগা হ\'ব পাৰে৷ ক্ষতিকাৰক এপসমূহে আপোনাৰ অনুমতি নোলোৱাকৈয়ে বাৰ্তা পঠিয়াই আপোনাৰ পৰা মাচুল কাটিব পাৰে৷""আপোনাৰ পাঠ বার্তাবোৰ পঢ়ক (এছএমএছ বা এমএমএছ)""এই এপ্টোৱে আপোনাৰ টেবলেটটোত সংৰক্ষিত আটাইবোৰ এছএমএছ (পাঠ) বাৰ্তা পঢ়িব পাৰে।""এই এপ্টোৱে আপোনাৰ Android TV ডিভাইচত ষ্ট’ৰ কৰি ৰখা আটাইবোৰ এছএমএছ (পাঠ) বাৰ্তা পঢ়িব পাৰে।""এই এপ্টোৱে আপোনাৰ ফ\'নত সংৰক্ষিত আটাইবোৰ এছএমএছ (পাঠ) বাৰ্তা পঢ়িব পাৰে।""পাঠ বার্তা (WAP) বোৰ লাভ কৰক"
- "এপ্টোক WAP বাৰ্তাবোৰ পাবলৈ আৰু প্ৰক্ৰিয়া সম্পন্ন কৰিবলৈ অনুমতি দিয়ে৷ এই অনুমতিত আপোনালৈ পঠিওৱা বাৰ্তাবোৰ আপোনাক নেদেখুৱাকৈয়ে নিৰীক্ষণ বা মচাৰ সক্ষমতা অন্তৰ্ভুক্ত থাকে৷"
+ "এপটোক WAP বাৰ্তাবোৰ পাবলৈ আৰু প্ৰক্ৰিয়া সম্পন্ন কৰিবলৈ অনুমতি দিয়ে৷ এই অনুমতিত আপোনালৈ পঠিওৱা বাৰ্তাবোৰ আপোনাক নেদেখুৱাকৈয়ে নিৰীক্ষণ বা মচাৰ সক্ষমতা অন্তৰ্ভুক্ত থাকে৷""চলি থকা এপসমূহ বিচাৰি উলিয়াওক"
- "এপ্টোক বৰ্তমানে আৰু শেহতীয়াভাৱে চলি থকা কাৰ্যসমূহৰ বিষয়ে তথ্য পুনৰুদ্ধাৰ কৰিবলৈ অনুমতি দিয়ে৷ এইটোৱে এপ্টোক ডিভাইচটোত কোনবোৰ এপ্লিকেশ্বন ব্যৱহাৰ হৈ আছে তাৰ বিষয়ে তথ্য বিচাৰি উলিয়াবলৈ অনুমতি দিব পাৰে৷"
+ "এপটোক বৰ্তমানে আৰু শেহতীয়াভাৱে চলি থকা কাৰ্যসমূহৰ বিষয়ে তথ্য পুনৰুদ্ধাৰ কৰিবলৈ অনুমতি দিয়ে৷ এইটোৱে এপটোক ডিভাইচটোত কোনবোৰ এপ্লিকেশ্বন ব্যৱহাৰ হৈ আছে তাৰ বিষয়ে তথ্য বিচাৰি উলিয়াবলৈ অনুমতি দিব পাৰে৷""প্ৰ\'ফাইল আৰু ডিভাইচৰ গৰাকীসকলক পৰিচালনা কৰিব পাৰে"
- "প্ৰ\'ফাইলৰ গৰাকী আৰু ডিভাইচৰ গৰাকী ছেট কৰিবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "প্ৰ\'ফাইলৰ গৰাকী আৰু ডিভাইচৰ গৰাকী ছেট কৰিবলৈ এপটোক অনুমতি দিয়ে।""চলি থকা এপসমূহক পুনৰাই ক্ৰমবদ্ধ কৰক""গতিবিধিক অগ্ৰভাগ আৰু নেপথ্যলৈ নিবলৈ এপক অনুমতি দিয়ে। এপে এই কার্য আপোনাৰ ইনপুট অবিহনেই কৰিব পাৰে।""গাড়ীৰ ম\'ড সক্ষম কৰক"
- "গাড়ী ম\'ড সক্ষম কৰিবলৈ এপ্টোক অনুমতি দিয়ে৷"
+ "গাড়ী ম\'ড সক্ষম কৰিবলৈ এপটোক অনুমতি দিয়ে৷""অন্য এপবোৰ বন্ধ কৰক"
- "এপ্টোক অন্য এপসমূহৰ নেপথ্যৰ প্ৰক্ৰিয়াসমূহ শেষ কৰিবলৈ অনুমতি দিয়ে৷ এই কার্যৰ বাবে অন্য এপসমূহ চলাটো বন্ধ হ\'ব পাৰে৷"
- "এই এপ্টো অইন এপৰ ওপৰত প্ৰদৰ্শিত হ\'ব পাৰে"
+ "এপটোক অন্য এপসমূহৰ নেপথ্যৰ প্ৰক্ৰিয়াসমূহ শেষ কৰিবলৈ অনুমতি দিয়ে৷ এই কার্যৰ বাবে অন্য এপসমূহ চলাটো বন্ধ হ\'ব পাৰে৷"
+ "এই এপটো অইন এপৰ ওপৰত প্ৰদৰ্শিত হ\'ব পাৰে""এই এপ্টো অন্য এপৰ ওপৰত বা স্ক্ৰীনৰ অন্য অংশত প্ৰদৰ্শিত হ\'ব পাৰে। এই কাৰ্যই এপৰ স্বাভাৱিক ব্যৱহাৰত ব্যাঘাত জন্মাব পাৰে আৰু অন্য এপ্সমূহক স্ক্ৰীনত কেনেকৈ দেখা পোৱা যায় সেইটো সলনি কৰিব পাৰে।""নেপথ্যত চলিব পাৰে""এই এপ্টো নেপথ্যত চলিব পাৰে। ইয়াৰ ফলত বেটাৰী সোনকালে শেষ হ’ব পাৰে।"
@@ -394,15 +398,15 @@
"এপ্টোক মেম’ৰীত নিজৰ বাবে প্ৰয়োজনীয় ঠাই পৃথক কৰিবলৈ অনুমতি দিয়ে। এই কার্যই আপোনাৰ Android TV ডিভাইচটোক লেহেমীয়া কৰি অন্য এপ্সমূহৰ বাবে উপলব্ধ মেম’ৰীক সীমাবদ্ধ কৰিব পাৰে।""মেম\'ৰিত নিজৰ বাবে প্ৰয়োজনীয় ঠাই পৃথক কৰিবলৈ এপক অনুমতি দিয়ে। এই কার্যই ফ\'নৰ কার্যক লেহেমীয়া কৰি অন্য এপবোৰৰ বাবে উপলব্ধ মেম\'ৰিক সীমাবদ্ধ কৰে।""অগ্ৰভূমিৰ সেৱা চলাব পাৰে"
- "এপ্টোক অগ্ৰভূমি সেৱাসমূহ ব্যৱহাৰ কৰিবলৈ অনুমতি দিয়ে।"
+ "এপটোক অগ্ৰভূমি সেৱাসমূহ ব্যৱহাৰ কৰিবলৈ অনুমতি দিয়ে।""এপৰ ষ্ট’ৰেজৰ খালী ঠাই হিচাপ কৰক"
- "এপ্টোক ইয়াৰ ক\'ড, ডেটা আৰু কেশ্বৰ আকাৰ বিচাৰি উলিয়াবলৈ অনুমতি দিয়ে"
+ "এপটোক ইয়াৰ ক\'ড, ডেটা আৰু কেশ্বৰ আকাৰ বিচাৰি উলিয়াবলৈ অনুমতি দিয়ে""ছিষ্টেম ছেটিংহ সংশোধন কৰক""এপ্টোক ছিষ্টেমৰ ছেটিঙৰ ডেটা সংশোধন কৰিবলৈ অনুমতি দিয়ে৷ ক্ষতিকাৰক এপ্সমূহে আপোনাৰ ছিষ্টেম কনফিগাৰেশ্বনক ক্ষতিগ্ৰস্ত কৰিব পাৰে৷""আৰম্ভ হোৱাৰ সময়ত চলাওক"
- "ছিষ্টেমে বুট কৰা কাৰ্য সমাপ্ত কৰাৰ লগে লগে এপ্টোক নিজে নিজে আৰম্ভ হ\'বলৈ অনুমতি দিয়ে। ইয়াৰ ফলত ফ\'নটো ষ্টাৰ্ট হওতে বেছি সময়ৰ প্ৰয়োজন হ\'ব পাৰে, আৰু এপ্টো সদায় চলি থকাৰ কাৰণে ফ\'নটো সামগ্ৰিকভাৱে লেহেমীয়া হ\'ব পাৰে।"
+ "ছিষ্টেমে বুট কৰা কাৰ্য সমাপ্ত কৰাৰ লগে লগে এপটোক নিজে নিজে আৰম্ভ হ\'বলৈ অনুমতি দিয়ে। ইয়াৰ ফলত ফ\'নটো ষ্টাৰ্ট হওতে বেছি সময়ৰ প্ৰয়োজন হ\'ব পাৰে, আৰু এপটো সদায় চলি থকাৰ কাৰণে ফ\'নটো সামগ্ৰিকভাৱে লেহেমীয়া হ\'ব পাৰে।""ছিষ্টেমে বুটিং সমাপ্ত কৰাৰ লগে লগে এই এপ্টোক নিজে নিজে আৰম্ভ হ’বলৈ অনুমতি দিয়ে। এই কাৰ্যৰ বাবে আপোনাৰ Android TV ডিভাইচটো আৰম্ভ হ’বলৈ দীঘলীয়া সময়ৰ প্ৰয়োজন হ’ব পাৰে আৰু সকলো সময়তে চলি থাকি এপ্টোক সামগ্ৰিকভাৱে ডিভাইচটো লেহেমীয়া কৰিবলৈ দিয়ে।"
- "ছিষ্টেমে বুট কৰা কাৰ্য সমাপ্ত কৰাৰ লগে লগে এপ্টোক নিজে নিজে আৰম্ভ হ\'বলৈ অনুমতি দিয়ে। ইয়াৰ ফলত ফ\'নটো ষ্টাৰ্ট হওতে বেছি সময়ৰ প্ৰয়োজন হ\'ব পাৰে, আৰু এপ্টো সদায় চলি থকাৰ কাৰণে ফ\'নটো সামগ্ৰিকভাৱে লেহেমীয়া হ\'ব পাৰে।"
+ "ছিষ্টেমে বুট কৰা কাৰ্য সমাপ্ত কৰাৰ লগে লগে এপটোক নিজে নিজে আৰম্ভ হ\'বলৈ অনুমতি দিয়ে। ইয়াৰ ফলত ফ\'নটো ষ্টাৰ্ট হওতে বেছি সময়ৰ প্ৰয়োজন হ\'ব পাৰে, আৰু এপটো সদায় চলি থকাৰ কাৰণে ফ\'নটো সামগ্ৰিকভাৱে লেহেমীয়া হ\'ব পাৰে।""ষ্টিকী ব্ৰ\'ডকাষ্ট পঠিয়াওক""সম্প্ৰচাৰৰ শেষত বাকী ৰোৱা ষ্টিকী ব্ৰ\'ডকাষ্টবোৰ প্ৰেৰণ কৰিবলৈ এপক অনুমতি দিয়ে। ইয়াক অত্য়ধিক ব্যৱহাৰ কৰাৰ ফলত মেম\'ৰি অধিক খৰচ হোৱাৰ বাবে টেবলেট লেহেমীয়া বা অস্থিৰ হৈ পৰে।""এপ্টোক ব্ৰ’ডকাষ্ট শেষ হোৱাৰ পাছত বাকী থকা ষ্টিকী ব্ৰ’ডকাষ্টবোৰ পঠিয়াবলৈ অনুমতি দিয়ে। ইয়াক অত্যধিক ব্যৱহাৰ কৰিলে আপোনাৰ Android TV ডিভাইচটোক অতি বেছি পৰিমাণৰ মেম’ৰী খৰচ কৰাই লেহেমীয়া অথবা অস্থিৰ কৰিব পাৰে।"
@@ -433,8 +437,8 @@
"এই এপটোৱে আপোনাৰ টেবলেটত কেলেণ্ডাৰ কাৰ্যক্ৰম যোগ কৰিব, আঁতৰাব বা সলনি কৰিব পাৰে। ই এনে বাৰ্তা পঠিয়াব পাৰে যিবোৰ কেলেণ্ডাৰৰ গৰাকীৰ পৰা অহা যেন লাগিব বা ই গৰাকীক নজনোৱাকৈ কাৰ্যক্ৰম সলনি কৰিব পাৰে৷""এই এপ্টোৱে আপোনাৰ Android TV ডিভাইচত কেলেণ্ডাৰ অনুষ্ঠানবোৰ যোগ দিব, আঁতৰাব অথবা সলনি কৰিব পাৰে। এই এপ্টোৱে এনে বাৰ্তা পঠিয়াব পাৰে যিবোৰ কেলেণ্ডাৰৰ গৰাকীৰ পৰা অহা বুলি প্ৰদর্শিত হ’ব পাৰে অথবা এইটোৱে গৰাকীসকলক নজনোৱাকৈ অনুষ্ঠানবোৰ সলনি কৰিব পাৰে।""এই এপে আপোনাৰ ফ\'নৰ কেলেণ্ডাৰত কার্যক্ৰম যোগ দিব, আঁতৰাব বা সলনি কৰিব পাৰে। ই এনে বাৰ্তা পঠিয়াব পাৰে যিবোৰ কেলেণ্ডাৰৰ গৰাকীৰ পৰা অহা যেন লাগে বা ই গৰাকীক নজনোৱাকৈ কাৰ্যক্ৰম সলনি কৰিব পাৰে৷"
- "অতিৰিক্ত অৱস্থান প্ৰদানকাৰী নির্দেশসমূহ এক্সেছ কৰে"
- "অৱস্থানৰ অতিৰিক্ত নির্দেশনাসমূহ এক্সেছ কৰিবলৈ এপক অনুমতি দিয়ে। ই এপ্টোক জিপিএছ বা অন্য অৱস্থান উৎসসমূহৰ কাৰ্যকলাপত হস্তক্ষেপ কৰাৰ সুযোগ দিব পাৰে।"
+ "অতিৰিক্ত অৱস্থান দেখুওৱা নির্দেশত প্ৰৱেশ কৰক"
+ "অৱস্থানৰ অতিৰিক্ত নির্দেশনাসমূহত প্ৰৱেশ কৰিবলৈ এপক অনুমতি দিয়ে। ইয়ে এপটোক জিপিএছ বা অন্য অৱস্থান উৎসসমূহৰ কাৰ্যকলাপত হস্তক্ষেপ কৰাৰ সুযোগ দিব পাৰে।""কেৱল অগ্ৰভূমিত অৱস্থানৰ সঠিক তথ্য পাওক""এই এপ্টো ব্যৱহাৰ হৈ থকা অৱস্থাত ই অৱস্থান সেৱাসমূহৰ পৰা আপোনাৰ সঠিক অৱস্থান লাভ কৰিব পাৰে। এপ্টোৱে অৱস্থান লাভ কৰিবলৈ হ’লে আপোনাৰ ডিভাইচৰ অৱস্থান সেৱাসমূহ অন কৰি ৰাখিবই লাগিব। ইয়াৰ ফলত বেটাৰীৰ ব্যৱহাৰ বাঢ়িব পাৰে।""কেৱল অগ্ৰভূমিত আনুমানিক অৱস্থান এক্সেছ কৰক"
@@ -460,62 +464,62 @@
"কোনো এপ্লিকেশ্বন অথবা সেৱাক কেমেৰা ডিভাইচসমূহ খোলা অথবা বন্ধ কৰাৰ বিষয়ে কলবেকসমূহ গ্ৰহণ কৰিবলৈ অনুমতি দিয়ক।""যিকোনো কেমেৰা ডিভাইচ খুলি থকা অথবা বন্ধ কৰি থকাৰ সময়ত (কোনো এপ্লিকেশ্বনৰ দ্বাৰা) এই এপ্টোৱে কলবেক গ্ৰহণ কৰিব পাৰে।""কম্পন নিয়ন্ত্ৰণ কৰক"
- "ভাইব্ৰেটৰ নিয়ন্ত্ৰণ কৰিবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "ভাইব্ৰেটৰ নিয়ন্ত্ৰণ কৰিবলৈ এপটোক অনুমতি দিয়ে।""এপ্টোক কম্পন স্থিতিটো এক্সেছ কৰিবলৈ অনুমতি দিয়ে।""পোনপটীয়াকৈ ফ\'ন নম্বৰলৈ কল কৰক"
- "আপোনাৰ কোনো ব্যাঘাত নোহোৱাকৈ ফ\'ন নম্বৰবোৰত কল কৰিবলৈ এপক অনুমতি দিয়ে৷ ইয়াৰ ফলত অপ্ৰত্যাশিত মাচুল ভৰিবলগা বা কলবোৰ কৰা হ\'ব পাৰে৷ মনত ৰাখিব যে ই এপ্টোক জৰুৰীকালীন নম্বৰবোৰত কল কৰিবলৈ অনুমতি নিদিয়ে৷ ক্ষতিকাৰক এপসমূহে আপোনাৰ অনুমতি নোলোৱাকৈয়ে কল কৰি আপোনাক টকা খৰছ কৰাব পাৰে৷"
+ "আপোনাৰ কোনো ব্যাঘাত নোহোৱাকৈ ফ\'ন নম্বৰবোৰত কল কৰিবলৈ এপক অনুমতি দিয়ে৷ ইয়াৰ ফলত অপ্ৰত্যাশিত মাচুল ভৰিবলগা বা কলবোৰ কৰা হ\'ব পাৰে৷ মনত ৰাখিব যে ই এপটোক জৰুৰীকালীন নম্বৰবোৰত কল কৰিবলৈ অনুমতি নিদিয়ে৷ ক্ষতিকাৰক এপসমূহে আপোনাৰ অনুমতি নোলোৱাকৈয়ে কল কৰি আপোনাক টকা খৰছ কৰাব পাৰে৷""আইএমএছ কল সেৱা ব্যৱহাৰ কৰিব পাৰে""আপোনাৰ হস্তক্ষেপৰ অবিহনে আইএমএছ সেৱা ব্যৱহাৰ কৰি কল কৰিবলৈ এপক অনুমতি দিয়ে।""ফ\'নৰ স্থিতি আৰু পৰিচয় পঢ়ক"
- "ডিভাইচত থকা ফ\'নৰ সুবিধাসমূহ ব্যৱহাৰ কৰিবলৈ এপ্টোক অনুমতি দিয়ে৷ এই অনুমতিয়ে কোনো কল সক্ৰিয় হৈ থাককেই বা নাথাকক আৰু দূৰবৰ্তী নম্বৰটো কলৰ দ্বাৰা সংযোজিত হওকেই বা নহওক এপ্টোক ফ\'ন নম্বৰ আৰু ডিভাইচৰ পৰিচয় নিৰ্ধাৰণ কৰিবলৈ অনুমতি দিয়ে৷"
+ "ডিভাইচত থকা ফ\'নৰ সুবিধাসমূহ ব্যৱহাৰ কৰিবলৈ এপটোক অনুমতি দিয়ে৷ এই অনুমতিয়ে কোনো কল সক্ৰিয় হৈ থাককেই বা নাথাকক আৰু দূৰবৰ্তী নম্বৰটো কলৰ দ্বাৰা সংযোজিত হওকেই বা নহওক এপটোক ফ\'ন নম্বৰ আৰু ডিভাইচৰ পৰিচয় নিৰ্ধাৰণ কৰিবলৈ অনুমতি দিয়ে৷""প্ৰাথমিক টেলিফ\'নী স্থিতি আৰু পৰিচয় পঢ়ক""এপ্টোক ডিভাইচটোৰ প্ৰাথমিক টেলিফ’নী সুবিধাসমূহ এক্সেছ কৰাৰ অনুমতি দিয়ে।""ছিষ্টেমৰ জৰিয়তে কল কৰিব পাৰে"
- "কল কৰাৰ অভিজ্ঞতাক উন্নত কৰিবলৈ এপ্টোক ছিষ্টেমৰ জৰিয়তে কলসমূহ কৰিবলৈ দিয়ে।"
+ "কল কৰাৰ অভিজ্ঞতাক উন্নত কৰিবলৈ এপটোক ছিষ্টেমৰ জৰিয়তে কলসমূহ কৰিবলৈ দিয়ে।""ছিষ্টেমৰ জৰিয়তে কলবোৰ চোৱা আৰু নিয়ন্ত্ৰণ কৰা।"
- "এপ্টোক ডিভাইচত চলি থকা কল চাবলৈ আৰু নিয়ন্ত্ৰণ কৰিবলৈ অনুমতি দিয়ে। কলৰ সংখ্যা আৰু কলবোৰৰ স্থিতি ইয়াত অন্তৰ্ভুক্ত হয়।"
+ "এপটোক ডিভাইচত চলি থকা কল চাবলৈ আৰু নিয়ন্ত্ৰণ কৰিবলৈ অনুমতি দিয়ে। কলৰ সংখ্যা আৰু কলবোৰৰ স্থিতি ইয়াত অন্তৰ্ভুক্ত হয়।""অডিঅ’ ৰেকৰ্ড কৰাৰ প্ৰতিবন্ধকতাসমূহৰ পৰা ৰেহাই দিয়ক""অডিঅ’ ৰেকৰ্ড কৰাৰ প্ৰতিবন্ধকতাসমূহৰ পৰা এপ্টোক ৰেহাই দিয়ক।""অইন এটা এপত আৰম্ভ হোৱা কল এটা অব্যাহত ৰাখিব পাৰে"
- "এপ্টোক এনে কল কৰিবলৈ দিয়ে যিটোৰ আৰম্ভণি অইন এটা এপত হৈছিল।"
+ "এপটোক এনে কল কৰিবলৈ দিয়ে যিটোৰ আৰম্ভণি অইন এটা এপত হৈছিল।""ফ\'ন নম্বৰসমূহ পঢ়ে"
- "এপ্টোক ডিভাইচটোৰ ফ\'ন নম্বৰসমূহ চাবলৈ অনুমতি দিয়ে।"
+ "এপটোক ডিভাইচটোৰ ফ\'ন নম্বৰসমূহ চাবলৈ অনুমতি দিয়ে।""গাড়ীৰ স্ক্রীনখন অন কৰি ৰখা""টে\'বলেট সুপ্ত অৱস্থালৈ যোৱাত বাধা দিয়ক""আপোনাৰ Android TV ডিভাইচটো সুপ্ত অৱস্থালৈ যোৱাত বাধা দিয়ক""ফ\'ন সুপ্ত অৱস্থালৈ যোৱাত বাধা দিয়ক""এপ্টোক গাড়ীৰ স্ক্রীনখন অন কৰি ৰাখিবলৈ অনুমতি দিয়ে।"
- "টে\'বলেট সুপ্ত অৱস্থালৈ যোৱাৰ পৰা প্ৰতিৰোধ কৰিবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "টে\'বলেট সুপ্ত অৱস্থালৈ যোৱাৰ পৰা প্ৰতিৰোধ কৰিবলৈ এপটোক অনুমতি দিয়ে।""এপ্টোক আপোনাৰ Android TV ডিভাইচটো সুপ্ত অৱস্থালৈ যোৱাত বাধা দিবলৈ অনুমতি দিয়ে।"
- "ফ\'ন সুপ্ত অৱস্থালৈ যোৱাৰ পৰা প্ৰতিৰোধ কৰিবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "ফ\'ন সুপ্ত অৱস্থালৈ যোৱাৰ পৰা প্ৰতিৰোধ কৰিবলৈ এপটোক অনুমতি দিয়ে।""ইনফ্ৰাৰেড ট্ৰান্সমিট কৰিব পাৰে""টে\'বলেটৰ ইনফ্ৰাৰেড ট্ৰান্সমিটাৰ ব্যৱহাৰ কৰিবলৈ এপক অনুমতি দিয়ে।""এপ্টোক আপোনাৰ Android TV ডিভাইচৰ ইনফ্ৰাৰেড ট্ৰান্সমিটাৰ ব্যৱহাৰ কৰিবলৈ অনুমতি দিয়ে।""ফ\'নৰ ইনফ্ৰাৰেড ট্ৰান্সমিটাৰ ব্যৱহাৰ কৰিবলৈ এপক অনুমতি দিয়ে।""ৱালপেপাৰ ছেট কৰক"
- "ছিষ্টেমৰ ৱালপেপাৰ ছেট কৰিবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "ছিষ্টেমৰ ৱালপেপাৰ ছেট কৰিবলৈ এপটোক অনুমতি দিয়ে।""আপোনাৰ ৱালপেপাৰৰ আকাৰ মিলাওক"
- "ছিষ্টেমৰ ৱালপেপাৰৰ আকাৰ হিণ্ট ছেট কৰিবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "ছিষ্টেমৰ ৱালপেপাৰৰ আকাৰ হিণ্ট ছেট কৰিবলৈ এপটোক অনুমতি দিয়ে।""সময় মণ্ডল ছেট কৰক"
- "টে\'বলেটৰ সময় মণ্ডল সলনি কৰিবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "টে\'বলেটৰ সময় মণ্ডল সলনি কৰিবলৈ এপটোক অনুমতি দিয়ে।""এপ্টোক আপোনাৰ Android TV ডিভাইচটোৰ সময় মণ্ডল সলনি কৰিবলৈ অনুমতি দিয়ে।"
- "ফ\'নৰ সময় মণ্ডল সলনি কৰিবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "ফ\'নৰ সময় মণ্ডল সলনি কৰিবলৈ এপটোক অনুমতি দিয়ে।""ডিভাইচত একাউণ্টবোৰ বিচাৰক"
- "এপ্টোক টেবলেটটোৰ জ্ঞাত একাউণ্টসমূহৰ সূচীখন পাবলৈ অনুমতি দিয়ে৷ এইটোৱে আপুনি ইনষ্টল কৰি ৰখা এপ্লিকেশ্বনসমূহে সৃষ্টি কৰা যিকোনো একাউণ্টক অন্তৰ্ভুক্ত কৰিব পাৰে৷"
+ "এপটোক টেবলেটটোৰ জ্ঞাত একাউণ্টসমূহৰ সূচীখন পাবলৈ অনুমতি দিয়ে৷ এইটোৱে আপুনি ইনষ্টল কৰি ৰখা এপ্লিকেশ্বনসমূহে সৃষ্টি কৰা যিকোনো একাউণ্টক অন্তৰ্ভুক্ত কৰিব পাৰে৷""আপোনাৰ Android TV ডিভাইচটোৰ পৰিচিত একাউণ্টসমূহৰ সূচীখন পাবলৈ অনুমতি দিয়ে। আপুনি ইনষ্টল কৰি ৰখা এপ্লিকেশ্বনসমূহে সৃষ্টি কৰা যিকোনো একাউণ্ট অন্তৰ্ভুক্ত হ’ব পাৰে।"
- "এপ্টোক ফ\'নটোৰ জ্ঞাত একাউণ্টসমূহৰ সূচীখন পাবলৈ অনুমতি দিয়ে৷ এইটোৱে আপুনি ইনষ্টল কৰি ৰখা এপ্লিকেশ্বনসমূহে সৃষ্টি কৰা যিকোনো একাউণ্টক অন্তৰ্ভুক্ত কৰিব পাৰে৷"
+ "এপটোক ফ\'নটোৰ জ্ঞাত একাউণ্টসমূহৰ সূচীখন পাবলৈ অনুমতি দিয়ে৷ এইটোৱে আপুনি ইনষ্টল কৰি ৰখা এপ্লিকেশ্বনসমূহে সৃষ্টি কৰা যিকোনো একাউণ্টক অন্তৰ্ভুক্ত কৰিব পাৰে৷""নেটৱৰ্কৰ সংযোগবোৰ চাওক"
- "মজুত থকা আৰু সংযোগ হৈ থকা নেটৱৰ্ক সংযোগসমূহৰ বিষয়ে তথ্য চাবলৈ এপ্টোক অনুমতি দিয়ে৷"
+ "মজুত থকা আৰু সংযোগ হৈ থকা নেটৱৰ্ক সংযোগসমূহৰ বিষয়ে তথ্য চাবলৈ এপটোক অনুমতি দিয়ে৷""সম্পূর্ণ নেটৱর্কৰ সুবিধা লাভ কৰিব পাৰে"
- "এপ্টোক নেটৱৰ্ক ছ\'কেটবোৰ সৃষ্টি কৰিবলৈ আৰু কাষ্টম নেটৱৰ্ক প্ৰ\'ট\'কল ব্যৱহাৰ কৰিবলৈ অনুমতি দিয়ে৷ ব্ৰাউজাৰ আৰু অন্য এপ্লিকেশ্বনসমূহে ইণ্টাৰনেটলৈ ডেটা পঠিওৱা মাধ্য়ম প্ৰদান কৰে, গতিকে ইণ্টাৰনেটলৈ ডেটা পঠিয়াবলৈ এই অনুমতিৰ প্ৰয়োজন নাই৷"
+ "এপটোক নেটৱৰ্ক ছ\'কেটবোৰ সৃষ্টি কৰিবলৈ আৰু কাষ্টম নেটৱৰ্ক প্ৰ\'ট\'কল ব্যৱহাৰ কৰিবলৈ অনুমতি দিয়ে৷ ব্ৰাউজাৰ আৰু অন্য এপ্লিকেশ্বনসমূহে ইণ্টাৰনেটলৈ ডেটা পঠিওৱা মাধ্য়ম প্ৰদান কৰে, গতিকে ইণ্টাৰনেটলৈ ডেটা পঠিয়াবলৈ এই অনুমতিৰ প্ৰয়োজন নাই৷""নেটৱৰ্কৰ সংযোগ সলনি কৰক"
- "নেটৱৰ্ক সংযোগৰ অৱস্থাটো সলনি কৰিবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "নেটৱৰ্ক সংযোগৰ অৱস্থাটো সলনি কৰিবলৈ এপটোক অনুমতি দিয়ে।""টেডাৰিং সংযোগ সলনি কৰক"
- "টেডাৰ হৈ থকা ইণ্টাৰনেট সংযোগৰ অৱস্থা সলনি কৰিবলৈ এপ্টোক অনুমতি দিয়ে৷"
+ "টেডাৰ হৈ থকা ইণ্টাৰনেট সংযোগৰ অৱস্থা সলনি কৰিবলৈ এপটোক অনুমতি দিয়ে৷""ৱাই-ফাইৰ সংযোগবোৰ চাওক""ৱাই-ফাই সক্ষম কৰা হ’ল নে নাই আৰু সংযোগ হৈ থকা ৱাই-ফাই ডিভাইচসমূহৰ নামবোৰৰ দৰে ৱাই-ফাইৰ ইণ্টাৰনেট সম্পর্কীয় তথ্য চাবলৈ এপক অনুমতি দিয়ে।""ৱাই-ফাই সংযোগ কৰক আৰু ইয়াৰ সংযোগ বিচ্ছিন্ন কৰক"
- "এপ্টোক ৱাই-ফাই এক্সেছ পইণ্টলৈ সংযোগ কৰিবলৈ আৰু তাৰ সংযোগ বিচ্ছিন্ন কৰিবলৈ আৰু ৱাই-ফাই নেটৱৰ্কসমূহৰ বাবে ডিভাইচ কনফিগাৰেশ্বনত সাল-সলনি কৰিবলৈ অনুমতি দিয়ে৷"
+ "এপটোক ৱাই-ফাই এক্সেছ পইণ্টলৈ সংযোগ কৰিবলৈ আৰু তাৰ সংযোগ বিচ্ছিন্ন কৰিবলৈ আৰু ৱাই-ফাই নেটৱৰ্কসমূহৰ বাবে ডিভাইচ কনফিগাৰেশ্বনত সাল-সলনি কৰিবলৈ অনুমতি দিয়ে৷""ৱাই-ফাই মাল্টিকাষ্ট প্ৰচাৰৰ অনুমতি দিয়ক""কেৱল আপোনাৰ টেবলেটটোৱেই নহয়, মাল্টিকাষ্ট ঠিকনা ব্যৱহাৰ কৰি এটা ৱাই-ফাই নেটৱর্কত থকা আটাইবোৰ ডিভাইচলৈ পঠিওৱা পেকেট লাভ কৰিবলৈ এপ্টোক অনুমতি দিয়ে। এই কার্যই নন মাল্টিকাষ্ট ম\'ডতকৈ অধিক বেটাৰী ব্যৱহাৰ কৰে।""কেৱল আপোনাৰ Android TV ডিভাইচটোৱেই নহয়, মাল্টিকাষ্ট ঠিকনাবোৰ ব্যৱহাৰ কৰি এটা ৱাই-ফাই নেটৱর্কত থকা আটাইবোৰ ডিভাইচলৈ পঠিওৱা পেকেট লাভ কৰিবলৈ এপ্টোক অনুমতি দিয়ে। এই কার্যই নন-মাল্টিকাষ্ট ম’ডতকৈ অধিক পাৱাৰ ব্যৱহাৰ কৰে।"
@@ -525,15 +529,15 @@
"এপ্টোক আপোনাৰ Android TV ডিভাইচটোত ব্লুটুথ কনফিগাৰ কৰিবলৈ আৰু ৰিম’ট ডিভাইচসমূহ বিচাৰি উলিয়াবলৈ আৰু পেয়াৰ কৰিবলৈ অনুমতি দিয়ে।""স্থানীয় ব্লুটুথ ফ’ন কনফিগাৰ কৰিবলৈ আৰু দূৰৱৰ্তী ডিভাইচসমূহৰ সৈতে পেয়াৰ কৰিবলৈ আৰু বিচাৰি উলিয়াবলৈ এপ্টোক অনুমতি দিয়ে।""WiMAXৰ লগত সংযোগ কৰক আৰু ইয়াৰ পৰা সংযোগ বিচ্ছিন্ন কৰক"
- "WiMAX সক্ষম হৈ আছেনে নাই আৰু সংযোজিত যিকোনো WiMAX নেটৱৰ্কৰ বিষয়ে তথ্য নিৰ্ধাৰণ কৰিবলৈ এপ্টোক অনুমতি দিয়ে৷"
+ "WiMAX সক্ষম হৈ আছেনে নাই আৰু সংযোজিত যিকোনো WiMAX নেটৱৰ্কৰ বিষয়ে তথ্য নিৰ্ধাৰণ কৰিবলৈ এপটোক অনুমতি দিয়ে৷""WiMAXৰ স্থিতি সলনি কৰক"
- "এপ্টোক টেবলেটলৈ সংযোগ কৰিবলৈ আৰু WiMAX নেটৱৰ্কসমূহৰ পৰা টেবলেটৰ সংযোগ বিচ্ছিন্ন কৰিবলৈ অনুমতি দিয়ে৷"
+ "এপটোক টেবলেটলৈ সংযোগ কৰিবলৈ আৰু WiMAX নেটৱৰ্কসমূহৰ পৰা টেবলেটৰ সংযোগ বিচ্ছিন্ন কৰিবলৈ অনুমতি দিয়ে৷""এপ্টোক আপোনাৰ Android TV ডিভাইচৰ সৈতে সংযোগ কৰিবলৈ আৰু WiMAX নেটৱৰ্কসমূহৰ পৰা আপোনাৰ Android TV ডিভাইচৰ সংযোগ বিচ্ছিন্ন কৰিবলৈ অনুমতি দিয়ে।"
- "এপ্টোক ফ\'নলৈ সংযোগ কৰিবলৈ আৰু WiMAX নেটৱৰ্কসমূহৰ পৰা ফ\'নৰ সংযোগ বিচ্ছিন্ন কৰিবলৈ অনুমতি দিয়ে৷"
+ "এপটোক ফ\'নলৈ সংযোগ কৰিবলৈ আৰু WiMAX নেটৱৰ্কসমূহৰ পৰা ফ\'নৰ সংযোগ বিচ্ছিন্ন কৰিবলৈ অনুমতি দিয়ে৷""ব্লুটুথ ডিভাইচবোৰৰ সৈতে পেয়াৰ কৰক"
- "টেবলেটত ব্লুটুথৰ কনফিগাৰেশ্বন চাবলৈ আৰু যোৰা লগোৱা ডিভাইচসমূহৰ জৰিয়তে সংযোগ কৰিবলৈ আৰু সংযোগৰ অনুৰোধ স্বীকাৰ কৰিবলৈ এপ্টোক অনুমতি দিয়ে৷"
+ "টেবলেটত ব্লুটুথৰ কনফিগাৰেশ্বন চাবলৈ আৰু যোৰা লগোৱা ডিভাইচসমূহৰ জৰিয়তে সংযোগ কৰিবলৈ আৰু সংযোগৰ অনুৰোধ স্বীকাৰ কৰিবলৈ এপটোক অনুমতি দিয়ে৷""এপ্টোক আপোনাৰ Android TV ডিভাইচটোত ব্লুটুথৰ কনফিগাৰেশ্বন চাবলৈ আৰু পেয়াৰ কৰি থোৱা ডিভাইচসমূহৰ সৈতে সংযোগ কৰিবলৈ আৰু গ্ৰহণ কৰিবলৈ অনুমতি দিয়ে।"
- "ফ\'নটোত ব্লুটুথৰ কনফিগাৰেশ্বন চাবলৈ আৰু যোৰা লগোৱা ডিভাইচসমূহৰ জৰিয়তে সংযোগ কৰিবলৈ আৰু সংযোগৰ অনুৰোধ স্বীকাৰ কৰিবলৈ এপ্টোক অনুমতি দিয়ে৷"
+ "ফ\'নটোত ব্লুটুথৰ কনফিগাৰেশ্বন চাবলৈ আৰু যোৰা লগোৱা ডিভাইচসমূহৰ জৰিয়তে সংযোগ কৰিবলৈ আৰু সংযোগৰ অনুৰোধ স্বীকাৰ কৰিবলৈ এপটোক অনুমতি দিয়ে৷""নিকটৱৰ্তী ব্লুটুথ ডিভাইচ বিচাৰক আৰু তাৰ সৈতে পেয়াৰ কৰক""এপ্টোক নিকটৱৰ্তী ব্লুটুথ ডিভাইচ বিচাৰি উলিয়াবলৈ আৰু সেইসমূহৰ সৈতে পেয়াৰ কৰিবলৈ অনুমতি দিয়ে""পেয়াৰ কৰা ব্লুটুথ ডিভাইচৰ সৈতে সংযোগ কৰক"
@@ -547,9 +551,9 @@
"অগ্ৰাধিকাৰ দিয়া NFC পৰিশোধ সেৱাৰ তথ্য""এপ্টোক অগ্ৰাধিকাৰ দিয়া nfc পৰিশোধ সেৱাৰ পঞ্জীকৃত সহায়কসমূহ আৰু পৰিশোধ কৰিব লগা লক্ষ্যস্থান দৰে তথ্য পাবলৈ অনুমতি দিয়ে।""নিয়েৰ ফিল্ড কমিউনিকেশ্বন নিয়ন্ত্ৰণ কৰক"
- "এপ্টোক নিয়েৰ ফিল্ড কমিউনিকেশ্বন (NFC) টেগ, কাৰ্ড আৰু ৰিডাৰসমূহৰ সৈতে যোগাযোগ কৰিবলৈ অনুমতি দিয়ে।"
+ "এপটোক নিয়েৰ ফিল্ড কমিউনিকেশ্বন (NFC) টেগ, কাৰ্ড আৰু ৰিডাৰসমূহৰ সৈতে যোগাযোগ কৰিবলৈ অনুমতি দিয়ে।""আপোনাৰ স্ক্ৰীন লক অক্ষম কৰক"
- "এপ্টোক কী ল\'ক আৰু জড়িত হোৱা যিকোনো পাছৱৰ্ডৰ সুৰক্ষা অক্ষম কৰিব দিয়ে৷ উদাহৰণস্বৰূপে, কোনো অন্তৰ্গামী ফ\'ন কল উঠোৱাৰ সময়ত ফ\'নটোৱে কী-লকটো অক্ষম কৰে, তাৰ পাছত কল শেষ হ\'লেই কী লকটো পুনৰ সক্ষম কৰে৷"
+ "এপটোক কী ল\'ক আৰু জড়িত হোৱা যিকোনো পাছৱৰ্ডৰ সুৰক্ষা অক্ষম কৰিব দিয়ে৷ উদাহৰণস্বৰূপে, কোনো অন্তৰ্গামী ফ\'ন কল উঠোৱাৰ সময়ত ফ\'নটোৱে কী-লকটো অক্ষম কৰে, তাৰ পিছত কল শেষ হ\'লেই কী লকটো পুনৰ সক্ষম কৰে৷""স্ক্ৰীন লকৰ জটিলতাৰ অনুৰোধ""এপ্টোক স্ক্ৰীন লকৰ জটিলতাৰ স্তৰ (উচ্চ, মধ্যম, নিম্ন বা একেবাৰে নাই)ৰ বিষয়ে জানিবলৈ অনুমতি দিয়ে, যিয়ে স্ক্ৰীন লকৰ সম্ভাব্য দৈৰ্ঘ্য বা স্ক্ৰীন লকৰ প্ৰকাৰ দৰ্শায়। লগতে এপ্টোৱে ব্যৱহাৰকাৰীক স্ক্ৰীন লকটো এটা নিৰ্দিষ্ট স্তৰলৈ আপডে’ট কৰিবলৈ পৰামৰ্শ দিব পাৰে যিটো ব্যৱহাৰকাৰীয়ে অৱজ্ঞা কৰি পৰৱর্তী পৃষ্ঠালৈ যাব পাৰে। মনত ৰাখিব যে স্ক্ৰীন লকটো সাধাৰণ পাঠ হিচাপে ষ্ট\'ৰ কৰা নহয়; সেয়েহে, এপ্টোৱে সঠিক পাছৱৰ্ডটো জানিব নোৱাৰে।""জাননী দেখুৱাওক"
@@ -557,9 +561,9 @@
"বায়োমেট্ৰিক হাৰ্ডৱেৰ ব্যৱহাৰ কৰক""বিশ্বাসযোগ্য়তা প্ৰমাণীকৰণৰ বাবে এপক বায়োমেট্ৰিক হাৰ্ডৱেৰ ব্যৱহাৰ কৰিবলৈ অনুমতি দিয়ে""ফিংগাৰপ্ৰিণ্ট হাৰ্ডৱেৰ পৰিচালনা কৰিব পাৰে"
- "ফিংগাৰপ্ৰিণ্ট টেম্প্লেটসমূহ যোগ কৰা বা মচাৰ পদ্ধতিসমূহ কামত লগাবলৈ নিৰ্দেশ দিবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "ফিংগাৰপ্ৰিণ্ট টেম্প্লেটসমূহ যোগ কৰা বা মচাৰ পদ্ধতিসমূহ কামত লগাবলৈ নিৰ্দেশ দিবলৈ এপটোক অনুমতি দিয়ে।""ফিংগাৰপ্ৰিণ্ট হাৰ্ডৱেৰ ব্যৱহাৰ কৰিব পাৰে"
- "প্ৰমাণীকৰণৰ বাবে ফিংগাৰপ্ৰিণ্ট হাৰ্ডৱেৰ ব্যৱহাৰ কৰিবলৈ এপ্টোক অনুমতি দিয়ে"
+ "প্ৰমাণীকৰণৰ বাবে ফিংগাৰপ্ৰিণ্ট হাৰ্ডৱেৰ ব্যৱহাৰ কৰিবলৈ এপটোক অনুমতি দিয়ে""আপোনাৰ সংগীত সংগ্ৰহ সালসলনি কৰিবলৈ""এপক আপোনাৰ সংগীত সংগ্ৰহ সালসলনি কৰিবলৈ দিয়ে।""আপোনাৰ ভিডিঅ’ সংগ্ৰহ সালসলনি কৰিবলৈ"
@@ -582,14 +586,13 @@
"স্ক্ৰীন ল\'ক ব্যৱহাৰ কৰক""অব্যাহত ৰাখিবলৈ আপোনাৰ স্ক্ৰীন লক দিয়ক""ছেন্সৰটোত ভালকৈ টিপক"
- "ফিংগাৰপ্ৰিণ্ট চিনাক্ত কৰিব পৰা নাই। পুনৰ চেষ্টা কৰক।"
+ "ফিগাৰপ্ৰিণ্টৰ প্ৰক্ৰিয়া সম্পাদন কৰিবপৰা নগ\'ল। অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক৷""ফিংগাৰপ্ৰিণ্ট ছেন্সৰটো মচি পুনৰ চেষ্টা কৰক""ছেন্সৰটো মচি পুনৰ চেষ্টা কৰক""ছেন্সৰটোত ভালকৈ টিপক""আঙুলিৰ গতি অতি মন্থৰ আছিল। অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক৷""অন্য এটা ফিংগাৰপ্ৰিণ্ট ব্যৱহাৰ কৰি চাওক""অতি উজ্জ্বল"
- "পাৱাৰ বুটাম টিপাটো চিনাক্ত কৰা হৈছে""মিলাই চাওক""প্ৰতিবাৰতে আপোনাৰ আঙুলিটোৰ স্থান সামান্য সলনি কৰক"
@@ -601,17 +604,16 @@
"মুখমণ্ডলৰ বিশ্বাসযোগ্যতা প্ৰমাণীকৰণ কৰা হ’ল, অনুগ্ৰহ কৰি ‘নিশ্চিত কৰক’ বুটামটো টিপক""ফিংগাৰপ্ৰিণ্ট হাৰ্ডৱেৰ নাই।""ফিংগাৰপ্ৰিণ্ট ছেট আপ কৰিব নোৱাৰি"
- "ফিংগাৰপ্ৰিণ্ট ছেটআপ কৰাৰ সময় উকলি গৈছে। পুনৰ চেষ্টা কৰক।"
+ "ফিংগাৰপ্ৰিণ্ট গ্ৰহণৰ সময়সীমা উকলি গৈছে। আকৌ চেষ্টা কৰক।""ফিংগাৰপ্ৰিণ্ট কাৰ্য বাতিল কৰা হ’ল।""ব্যৱহাৰকাৰীয়ে ফিংগাৰপ্ৰিণ্ট ক্ৰিয়া বাতিল কৰিছে।"
- "অতি বেছিসংখ্যক প্ৰয়াস। ইয়াৰ সলনি স্ক্ৰীন লক ব্যৱহাৰ কৰক।"
- "অতি বেছিসংখ্যক প্ৰয়াস। ইয়াৰ সলনি স্ক্ৰীন লক ব্যৱহাৰ কৰক।"
- "ফিংগাৰপ্ৰিণ্ট চিনাক্তকৰণ প্ৰক্ৰিয়া কৰিব পৰা নাই। পুনৰ চেষ্টা কৰক।"
+ "অত্যধিক ভুল প্ৰয়াস। কিছুসময়ৰ পাছত আকৌ চেষ্টা কৰক।"
+ "অত্যধিক প্ৰয়াস। ফিংগাৰপ্ৰিণ্ট ছেন্সৰ অক্ষম কৰা হ’ল।"
+ "আকৌ চেষ্টা কৰক।""কোনো ফিংগাৰপ্ৰিণ্ট যোগ কৰা নহ\'ল।""এই ডিভাইচটোত ফিংগাৰপ্ৰিণ্ট ছেন্সৰ নাই।""ছেন্সৰটো সাময়িকভাৱে অক্ষম হৈ আছে।""ফিংগাৰপ্ৰিণ্ট ছেন্সৰ ব্যৱহাৰ কৰিব নোৱাৰি। মেৰামতি সেৱা প্ৰদানকাৰী কোনো প্ৰতিষ্ঠানলৈ যাওক"
- "পাৱাৰ বুটাম টিপা হৈছে""%d আঙুলি""ফিংগাৰপ্ৰিণ্ট ব্যৱহাৰ কৰক""ফিংগাৰপ্ৰিণ্ট অথবা স্ক্ৰীন লক ব্যৱহাৰ কৰক"
@@ -632,33 +634,26 @@
"ফিংগাৰপ্ৰিন্ট আনলক""ফিংগাৰপ্ৰিণ্ট ছেন্সৰ ব্যৱহাৰ কৰিব নোৱাৰি""মেৰামতি সেৱা প্ৰদানকাৰী কোনো প্ৰতিষ্ঠানলৈ যাওক।"
- "মুখাৱয়বৰ মডেল সৃষ্টি কৰিব নোৱাৰি। পুনৰ চেষ্টা কৰক।"
+ "সঠিক মুখমণ্ডলৰ ডেটা কেপচাৰ নহ’ল। আকৌ চেষ্টা কৰক।""অতি উজ্জ্বল। ইয়াতকৈ কম পোহৰৰ উৎস ব্যৱহাৰ কৰক।"
- "পৰ্যাপ্ত পোহৰ নাই"
- "ফ’নটো আৰু আঁতৰলৈ নিয়ক"
- "ফ’নটো ওচৰলৈ আনক"
- "ফ’নটো ওপৰলৈ নিয়ক"
- "ফ’নটো তললৈ নিয়ক"
- "ফ’নটো আপোনাৰ বাওঁফাললৈ নিয়ক"
- "ফ’নটো আপোনাৰ সোঁফাললৈ নিয়ক"
+ "অতি আন্ধাৰ। উজ্জ্বল লাইট ব্যৱহাৰ কৰক।"
+ "ফ’নটো আৰু আঁতৰলৈ নিয়ক।"
+ "ফ’নটো ওচৰলৈ আনক।"
+ "ফ’নটো ওপৰলৈ নিয়ক।"
+ "ফ’নটো তললৈ নিয়ক"
+ "ফ’নটো বাওঁফালে নিয়ক।"
+ "ফ’নটো সোঁফালে নিয়ক।""আপোনাৰ ডিভাইচটোলৈ অধিক পোনে পোনে চাওক।"
- "আপোনাৰ মুখাৱয়ব দেখা নাই। আপোনাৰ ফ’নটো চকুৰ স্তৰত ধৰি ৰাখক।"
+ "আপোনাৰ মুখখন পোনপটীয়াকৈ ফ’নটোৰ সন্মুখত ৰাখক।""বেছি লৰচৰ কৰি আছে। ফ’নটো স্থিৰকৈ ধৰক।""আপোনাৰ মুখমণ্ডল পুনৰ পঞ্জীয়ন কৰক।"
- "মুখাৱয়ব চিনিব নোৱাৰি। পুনৰ চেষ্টা কৰক।"
- "আপোনাৰ মূৰটোৰ স্থান সামান্য সলনি কৰক"
- "আপোনাৰ ফ’নটোলৈ আৰু পোনপটীয়াকৈ চাওক"
- "আপোনাৰ ফ’নটোলৈ আৰু পোনপটীয়াকৈ চাওক"
- "আপোনাৰ ফ’নটোলৈ আৰু পোনপটীয়াকৈ চাওক"
+ "মুখমণ্ডল আৰু চিনাক্ত কৰিব নোৱাৰি। আকৌ চেষ্টা কৰক।"
+ "একে ধৰণৰ হৈছে, অনুগ্ৰহ কৰি আপোনাৰ প’জটো সলনি কৰক।"
+ "আপোনাৰ মূৰটো সামান্য কমকৈ ঘূৰাওক।"
+ "আপোনাৰ মূৰটো অলপ কমকৈ হেলনীয়া কৰক।"
+ "আপোনাৰ মূৰটো সামান্য কমকৈ ঘূৰাওক।""আপোনাৰ মুখখন ঢাকি ৰখা বস্তুবোৰ আঁতৰাওক।""ক’লা বাৰডালকে ধৰি আপোনাৰ স্ক্রীনৰ ওপৰৰ অংশ চাফা কৰক"
-
-
-
-
- "মুখাৱয়বৰ মডেল সৃষ্টি কৰিব নোৱাৰি। পুনৰ চেষ্টা কৰক।"
- "ডাঠ ৰঙৰ চশমা চিনাক্ত কৰা হৈছে। আপোনাৰ মুখাৱয়ব সম্পূৰ্ণৰূপে দেখা পোৱা হৈ থাকিবই লাগিব।"
- "মুখাৱয়বত আৱৰণ চিনাক্ত কৰা হৈছে। আপোনাৰ মুখাৱয়ব সম্পূৰ্ণৰূপে দেখা পোৱা হৈ থাকিবই লাগিব।""মুখমণ্ডল সত্যাপন কৰিব পৰা নগ’ল। হাৰ্ডৱেৰ নাই।"
@@ -685,7 +680,7 @@
"ছিংকৰ ছেটিং পঢ়ক""একাউণ্টৰ ছিংক ছেটিংবোৰ পঢ়িবলৈ এপক অনুমতি দিয়ে। যেনে, People এপ্টো কোনো একাউণ্টৰ সৈতে ছিংক কৰা হৈছে নে নাই সেয়া নির্ধাৰণ কৰিব পাৰে।""ছিংকক অন আৰু অফ ট\'গল কৰক"
- "এপ্টোক কোনো একাউণ্টৰ ছিংক সম্পৰ্কীয় ছেটিংসমূহ সংশোধন কৰিবলৈ অনুমতি দিয়ে৷ উদাহৰণস্বৰূপে, এই কাৰ্যক কোনো একাউণ্টৰ জৰিয়তে People এপ্টোৰ ছিংক সক্ষম কৰিবলৈ ব্যৱহাৰ কৰিব পাৰি৷"
+ "এপটোক কোনো একাউণ্টৰ ছিংক সম্পৰ্কীয় ছেটিংসমূহ সংশোধন কৰিবলৈ অনুমতি দিয়ে৷ উদাহৰণস্বৰূপে, এই কাৰ্যক কোনো একাউণ্টৰ জৰিয়তে People এপটোৰ ছিংক সক্ষম কৰিবলৈ ব্যৱহাৰ কৰিব পাৰি৷""ছিংকৰ পৰিসংখ্যা পঢ়ক""ছিংকৰ কাৰ্যক্ৰমসমূহৰ ইতিহাস আৰু ছিংক কৰা ডেটাৰ পৰিমাণসহ কোনো একাউণ্টৰ ছিংকৰ তথ্য পঢ়িবলৈ এপক অনুমতি দিয়ে।""আপোনাৰ শ্বেয়াৰ কৰি ৰখা ষ্ট’ৰেজৰ সমল পঢ়িব পাৰে"
@@ -699,26 +694,26 @@
"আপোনাৰ শ্বেয়াৰ কৰি ৰখা ষ্ট’ৰেজৰ সমল সংশোধন কৰিব বা মচিব পাৰে""আপোনাৰ শ্বেয়াৰ কৰি ৰখা ষ্ট’ৰেজৰ সমল লিখিবলৈ এপ্টোক অনুমতি দিয়ে।""SIP কল কৰা/পোৱা"
- "এপ্টোক SIP কলসমূহ কৰিবলৈ আৰু পাবলৈ অনুমতি দিয়ে।"
+ "এপটোক SIP কলসমূহ কৰিবলৈ আৰু পাবলৈ অনুমতি দিয়ে।""নতুন টেলিকম ছিম সংযোগসমূহ পঞ্জীয়ন কৰা"
- "এপ্টোক নতুন টেলিকম সংযোগ পঞ্জীয়ন কৰিবলৈ অনুমতি দিয়ে।"
+ "এপটোক নতুন টেলিকম সংযোগ পঞ্জীয়ন কৰিবলৈ অনুমতি দিয়ে।""নতুন টেলিকম সংযোগসমূহ পঞ্জীয়ন কৰা"
- "এপ্টোক নতুন টেলিকম সংযোগ পঞ্জীয়ন কৰিবলৈ অনুমতি দিয়ে।"
+ "এপটোক নতুন টেলিকম সংযোগ পঞ্জীয়ন কৰিবলৈ অনুমতি দিয়ে।""টেলিকম সংযোগ পৰিচালনা কৰা"
- "এপ্টোক টেলিকম সংযোগ পৰিচালনা কৰিবলৈ অনুমতি দিয়ে।"
+ "এপটোক টেলিকম সংযোগ পৰিচালনা কৰিবলৈ অনুমতি দিয়ে।""ইন-কল স্ক্ৰীনৰ সৈতে সংযোগ স্থাপন""ব্যৱহাৰকাৰীগৰাকীয়ে কেতিয়া আৰু কেনেদৰে ইন-কল-স্ক্ৰীন চায় সেয়া নিয়ন্ত্ৰণ কৰিবলৈ এপ্টোক অনুমতি দিয়ে।""টেলিফ\'নী সেৱাসমূহৰ সৈতে সংযোগ স্থাপন""কল কৰিবলৈ/লাভ কৰিবলৈ টেলিফ\'নী সেৱাসমূহৰ সৈতে এপক সংযোগ স্থাপনৰ বাবে অনুমতি দিয়ে।""ইন-কল ব্যৱহাৰকাৰীৰ অভিজ্ঞতা প্ৰদান কৰা"
- "এপ্টোক ইন-কল ব্যৱহাৰকাৰীৰ অভিজ্ঞতা প্ৰদান কৰিবলৈ অনুমতি দিয়ে।"
+ "এপটোক ইন-কল ব্যৱহাৰকাৰীৰ অভিজ্ঞতা প্ৰদান কৰিবলৈ অনুমতি দিয়ে।""নেটৱর্কৰ পূৰ্বতে হোৱা ব্যৱহাৰৰ বিষয়ে পঢ়ক"
- "এপ্টোক বিশেষ নেটৱৰ্কবিলাকৰ আৰু এপ্সমূহৰ নেটৱৰ্ক ব্যৱহাৰৰ ইতিহাস পঢ়িবলৈ অনুমতি দিয়ে।"
+ "এপটোক বিশেষ নেটৱৰ্কবিলাকৰ আৰু এপ্সমূহৰ নেটৱৰ্ক ব্যৱহাৰৰ ইতিহাস পঢ়িবলৈ অনুমতি দিয়ে।""নেটৱর্কৰ নীতি পৰিচালনা কৰক"
- "এপ্টোক নেটৱৰ্ক সংযোগৰ নীতিসমূহ পৰিচালনা কৰিবলৈ আৰু এপ্-বিশেষ নিয়ম সংজ্ঞাবদ্ধ কৰিবলৈ অনুমতি দিয়ে।"
+ "এপটোক নেটৱৰ্ক সংযোগৰ নীতিসমূহ পৰিচালনা কৰিবলৈ আৰু এপ্-বিশেষ নিয়ম সংজ্ঞাবদ্ধ কৰিবলৈ অনুমতি দিয়ে।""নেটৱর্ক ব্যৱহাৰৰ হিচাপ সলনি কৰক""এপ অনুসুৰি নেটৱর্কৰ ব্যৱহাৰৰ হিচাপ সংশোধন কৰিবলৈ এপক অনুমতি দিয়ে। এয়া সাধাৰণ এপবোৰৰ ব্যৱহাৰৰ বাবে নহয়।"
- "জাননীসমূহ এক্সেছ কৰে"
+ "প্ৰৱেশ জাননীসমূহ""অন্য এপসমূহৰদ্বাৰা প\'ষ্ট কৰা জাননীসমূহকে ধৰি জাননী বিচাৰি উলিয়াবলৈ, পৰীক্ষা কৰিবলৈ আৰু মচিবলৈ অনুমতি দিয়ে।""এটা জাননী শুনা সেৱাৰ লগত সংযুক্ত হ\'ব পাৰে""এটা জাননী শ্ৰৱণ সেৱা প্ৰদানকাৰীৰ শীৰ্ষ স্তৰৰ ইণ্টাৰফেইচৰ লগত সংযুক্ত হ\'বলৈ ধাৰকক অনুমতি দিয়ে। সাধাৰণ এপসমূহৰ বাবে সাধাৰণতে প্ৰয়োজন নহয়।"
@@ -732,7 +727,7 @@
"এটা এপ্লিকেশ্বনক নেটৱৰ্ক অৱস্থাসমূহত নিৰীক্ষণৰ বাবে শুনিবলৈ অনুমতি দিয়ে। সাধাৰণ এপসমূহৰ বাবে সাধাৰণতে প্ৰয়োজন নহয়।""ইনপুট ডিভাইচ কেলিব্ৰেশ্বন সলনি কৰিব পাৰে""টাচ্চ স্ক্ৰীনৰ কেলিব্ৰেশ্বন পেৰামিটাৰ সংশোধন কৰিবলৈ এপক অনুমতি দিয়ে। সাধাৰণ এপসমূহৰ বাবে কেতিয়াও প্ৰয়োজন হোৱা উচিত নহয়।"
- "DRM প্ৰমাণপত্ৰসমূহ এক্সেছ কৰে"
+ "DRM প্ৰমাণপত্ৰসমূহলৈ প্ৰৱেশ""এটা এপ্লিকেশ্বনক DRM প্ৰমাণপত্ৰ গোটাবলৈ আৰু ব্যৱহাৰ কৰিবলৈ অনুমতি দিয়ে। সাধাৰণ এপসমূহৰ বাবে সাধাৰণতে প্ৰয়োজন নহয়।""Android বীম স্থানান্তৰণৰ স্থিতি লাভ কৰিব পাৰে""বৰ্তমানৰ Android Beam স্থানান্তৰণসমূহৰ বিষয়ে তথ্য পাবলৈ এই এপ্লিকেশ্বনক অনুমতি দিয়ে"
@@ -743,7 +738,7 @@
"বাহক সেৱাসমূহৰ সৈতে সংযুক্ত হ\'ব পাৰে""বাহক সেৱাৰ সৈতে সংযুক্ত হ\'বলৈ ধাৰকক অনুমতি দিয়ে। সাধাৰণ এপসমূহৰ বাবে সাধাৰণতে প্ৰয়োজন হ\'ব নালাগে।""অসুবিধা নিদিব চাব পাৰে"
- "অসুবিধা নিদিবৰ কনফিগাৰেশ্বনক পঢ়িবলৈ আৰু সালসলনি কৰিবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "অসুবিধা নিদিবৰ কনফিগাৰেশ্বনক পঢ়িবলৈ আৰু সালসলনি কৰিবলৈ এপটোক অনুমতি দিয়ে।""চোৱাৰ অনুমতিৰ ব্যৱহাৰ আৰম্ভ কৰক""ধাৰকক কোনো এপৰ বাবে অনুমতিৰ ব্যৱহাৰ আৰম্ভ কৰিবলৈ দিয়ে। সাধাৰণ এপ্সমূহৰ বাবে কেতিয়াও প্ৰয়োজন হ’ব নালাগে।""অনুমতিৰ সিদ্ধান্তসমূহ চোৱা আৰম্ভ কৰক"
@@ -783,7 +778,7 @@
"স্ক্ৰীন লক পাছৱৰ্ডৰ ম্যাদ ওকলাৰ দিন ছেট কৰক""স্ক্ৰীন লকৰ পাছৱৰ্ড, পিন বা আর্হি কিমান ঘনাই সলনি কৰিব লাগিব তাক সলনি কৰক।""ষ্ট’ৰেজৰ এনক্ৰিপশ্বন ছেট কৰক"
- "ষ্ট’ৰ কৰি ৰখা এপৰ ডেটাক এনক্ৰিপ্ট কৰাৰ প্ৰয়োজন।"
+ "সঞ্চয় কৰি ৰখা ডেটাক এনক্ৰিপ্ট কৰাৰ প্ৰয়োজন।""কেমেৰাবোৰ অক্ষম কৰক""আটাইবোৰ ডিভাইচৰ কেমেৰা ব্যৱহাৰ কৰাত বাধা দিয়ক।""স্ক্ৰীন লকৰ কিছুমান সুবিধা অক্ষম কৰক"
@@ -910,7 +905,7 @@
"আনলক কৰিবলৈ পাছৱৰ্ড লিখক""আনলক কৰিবলৈ পিন লিখক""ভুল পিন ক\'ড।"
- "আনলক কৰিবলৈ মেনু টিপাৰ পাছত ০ টিপক।"
+ "আনলক কৰিবলৈ মেনু টিপাৰ পিছত ০ টিপক।""জৰুৰীকালীন নম্বৰ""কোনো সেৱা নাই""স্ক্ৰীন লক কৰা হ’ল।"
@@ -924,14 +919,14 @@
"আকৌ চেষ্টা কৰক""আটাইবোৰ সুবিধা আৰু ডেটাৰ বাবে আনলক কৰক""গৰাকীৰ ফেচ আনলক কৰা সৰ্বাধিক সীমা অতিক্ৰম কৰা হ’ল"
- "কোনো ছিম নাই"
- "টেবলেটত কোনো ছিম নাই।"
- "আপোনাৰ Android TV ডিভাইচটোত কোনো ছিম নাই।"
- "ফ’নত কোনো ছিম নাই।"
- "এখন ছিম যোগ দিয়ক।"
- "ছিম নাই অথবা সেইখন পঢ়িব নোৱাৰি। এখন ছিম যোগ দিয়ক।"
- "ব্যৱহাৰ কৰিব নোৱৰা ছিম।"
- "আপোনাৰ ছিমখন স্থায়ীভাৱে নিষ্ক্ৰিয় কৰা হৈছে।\n অন্য এখন ছিমৰ বাবে আপোনাৰ ৱায়াৰলেছ সেৱা প্ৰদানকাৰীৰ সৈতে যোগাযোগ কৰক।"
+ "কোনো ছিম কাৰ্ড নাই"
+ "টে\'বলেটত ছিম কার্ড নাই।"
+ "আপোনাৰ Android TV ডিভাইচটোত কোনো ছিম কার্ড নাই।"
+ "ফ\'নত ছিম কার্ড নাই।"
+ "এখন ছিম কাৰ্ড ভৰাওক।"
+ "ছিম কাৰ্ডখন নাই বা পঢ়িব পৰা নগ\'ল। এখন ছিম কাৰ্ড ভৰাওক।"
+ "ব্যৱহাৰৰ অযোগ্য ছিম কাৰ্ড।"
+ "আপোনাৰ ছিম কাৰ্ডখন স্থায়ীভাৱে অক্ষম হৈছে।\n অন্য এখন ছিমৰ বাবে আপোনাৰ ৱায়াৰলেছ সেৱা প্ৰদানকাৰীৰ সৈতে যোগাযোগ কৰক।""পূৰ্বৱৰ্তী ট্ৰেক""পৰৱৰ্তী ট্ৰেক""পজ কৰক"
@@ -941,16 +936,16 @@
"ফাষ্ট ফৰৱাৰ্ড""জৰুৰীকালীন কল মাত্ৰ""নেটৱর্ক অৱৰোধিত"
- "ছিমখন PUKৰ দ্বাৰা লক হৈ আছে।"
+ "PUKৰ দ্বাৰা লক কৰা ছিম কার্ড।""ব্যৱহাৰকাৰীৰ নিৰ্দেশনা চাওক বা গ্ৰাহক সেৱা কেন্দ্ৰৰ সৈতে যোগাযোগ কৰক।"
- "ছিমখন লক হৈ আছে।"
- "ছিম আনলক কৰি থকা হৈছে…"
- "আপুনি অশুদ্ধভাৱে আপোনাৰ আনলক আৰ্হি %1$d বাৰ আঁকিছে। \n\n %2$d ছেকেণ্ডৰ পাছত পুনৰ চেষ্টা কৰক।"
- "আপুনি অশুদ্ধভাৱে আপোনাৰ পাছৱৰ্ড %1$d বাৰ লিখিছে। \n\n%2$d ছেকেণ্ডৰ পাছত পুনৰ চেষ্টা কৰক।"
- "আপুনি অশুদ্ধভাৱে আপোনাৰ পিন %1$d বাৰ লিখিছে। \n\n%2$d ছেকেণ্ডৰ পাছত পুনৰ চেষ্টা কৰক।"
- "আপুনি অশুদ্ধভাৱে আপোনাৰ লক খোলাৰ আৰ্হিটো %1$d বাৰ আঁকিলে৷ %2$d তকৈ অধিকবাৰ অসফলভাৱে কৰা প্ৰয়াসৰ পাছত, আপোনাৰ ফ\'নটো আনলক কৰিবৰ বাবে Google ছাইন ইনৰ জৰিয়তে কাৰ্যটো কৰিবলৈ কোৱা হ\'ব৷\n\n %3$d ছেকেণ্ডৰ পাছত পুনৰ চেষ্টা কৰক৷"
+ "ছিম কাৰ্ড লক কৰা হৈছে।"
+ "ছিম কার্ড আনলক কৰি থকা হৈছে…"
+ "আপুনি অশুদ্ধভাৱে আপোনাৰ আনলক আৰ্হি %1$d বাৰ আঁকিছে। \n\n %2$d ছেকেণ্ডৰ পিছত পুনৰ চেষ্টা কৰক।"
+ "আপুনি অশুদ্ধভাৱে আপোনাৰ পাছৱৰ্ড %1$d বাৰ লিখিছে। \n\n%2$d ছেকেণ্ডৰ পিছত পুনৰ চেষ্টা কৰক।"
+ "আপুনি অশুদ্ধভাৱে আপোনাৰ পিন %1$d বাৰ লিখিছে। \n\n%2$d ছেকেণ্ডৰ পিছত পুনৰ চেষ্টা কৰক।"
+ "আপুনি অশুদ্ধভাৱে আপোনাৰ লক খোলাৰ আৰ্হিটো %1$d বাৰ আঁকিলে৷ %2$d তকৈ অধিকবাৰ অসফলভাৱে কৰা প্ৰয়াসৰ পিছত, আপোনাৰ ফ\'নটো আনলক কৰিবৰ বাবে Google ছাইন ইনৰ জৰিয়তে কাৰ্যটো কৰিবলৈ কোৱা হ\'ব৷\n\n %3$d ছেকেণ্ডৰ পিছত পুনৰ চেষ্টা কৰক৷""আপুনি নিজৰ আনলক আৰ্হিটো %1$dবাৰ ভুলকৈ দিলে। আকৌ %2$dবাৰ ভুলকৈ প্ৰয়াস কৰাৰ পাছত আপোনাক নিজৰ Google ছাইন ইন ব্যৱহাৰ কৰি আপোনাৰ Android TV ডিভাইচটো আনলক কৰিবলৈ কোৱা হ’ব।\n\n %3$dছেকেণ্ডৰ পাছত পুনৰ চেষ্টা কৰক।"
- "আপুনি অশুদ্ধভাৱে আপোনাৰ লক খোলাৰ আৰ্হিটো %1$d বাৰ আঁকিলে৷ %2$d তকৈ অধিকবাৰ অসফলভাৱে কৰা প্ৰয়াসৰ পাছত, আপোনাৰ ফ\'নটো আনলক কৰিবৰ বাবে Google ছাইন ইনৰ জৰিয়তে কাৰ্যটো কৰিবলৈ কোৱা হ\'ব৷\n\n %3$d ছেকেণ্ডৰ পাছত পুনৰ চেষ্টা কৰক৷"
+ "আপুনি অশুদ্ধভাৱে আপোনাৰ লক খোলাৰ আৰ্হিটো %1$d বাৰ আঁকিলে৷ %2$d তকৈ অধিকবাৰ অসফলভাৱে কৰা প্ৰয়াসৰ পিছত, আপোনাৰ ফ\'নটো আনলক কৰিবৰ বাবে Google ছাইন ইনৰ জৰিয়তে কাৰ্যটো কৰিবলৈ কোৱা হ\'ব৷\n\n %3$d ছেকেণ্ডৰ পিছত পুনৰ চেষ্টা কৰক৷""আপুনি টে\'বলেটটো %1$d বাৰ ভুলকৈ আনলক কৰিবলৈ প্ৰয়াস কৰিছে। %2$d বাৰতকৈ বেছি প্ৰয়াস কৰিলে টে\'বলেটটো ফেক্টৰী ডিফ\'ল্টলৈ ৰিছেট কৰা হ\'ব আৰু আটাইবোৰ ব্যৱহাৰকাৰী ডেটা হেৰুৱাব।""আপুনি নিজৰ Android TV ডিভাইচটো আনলক কৰিবলৈ %1$dবাৰ ভুলকৈ প্ৰয়াস কৰিছে। %2$dতকৈ বেছি বাৰ ভুলকৈ প্ৰয়াস কৰাৰ পাছত আপোনাৰ Android TV ডিভাইচটো ফেক্টৰী ডিফ’ল্টলৈ ৰিছেট কৰা হ’ব আৰু ব্যৱহাৰকাৰীৰ সকলো ডেটা হেৰুৱাব।""আপুনি ফ\'নটো %1$d বাৰ ভুলকৈ আনলক কৰিবলৈ প্ৰয়াস কৰিছে। %2$d বাৰতকৈ বেছি প্ৰয়াস কৰিলে ফ\'নটো ফেক্টৰী ডিফ\'ল্টলৈ ৰিছেট কৰা হ\'ব আৰু আটাইবোৰ ব্যৱহাৰকাৰী ডেটা হেৰুৱাব।"
@@ -1041,15 +1036,15 @@
"আপোনাৰ ৱেব বুকমার্কবোৰ আৰু ইতিহাস পঢ়ক""ব্ৰাউজাৰৰ বুকমার্ক আৰু ব্ৰাউজাৰে ব্যৱহাৰ কৰা আটাইবোৰ URLৰ ইতিহাস পঢ়িবলৈ এপক অনুমতি দিয়ে। টোকা: এই অনুমতি তৃতীয় পক্ষৰ ব্ৰাউজাৰবোৰ বা ৱেব ব্ৰাউজিং কৰিব পৰা অন্য এপ্লিকেশ্বনবোৰৰ দ্বাৰা বলৱৎ নহ\'বও পাৰে।""আপোনাৰ ৱেব বুকমার্কবোৰ আৰু ইতিহাস লিখক"
- "আপোনাৰ টেবলেটত ষ্ট’ৰ কৰি ৰখা ব্ৰাউজাৰৰ বুকমার্ক আৰু ব্ৰাউজাৰৰ ইতিহাস সংশোধন কৰিবলৈ এপক অনুমতি দিয়ে। টোকা: এই অনুমতি তৃতীয় পক্ষৰ ব্ৰাউজাৰবোৰ বা ৱেব ব্ৰাউজিং কৰিব পৰা অন্য এপ্লিকেশ্বনবোৰৰ দ্বাৰা বলৱৎ নহ\'বও পাৰে।"
+ "আপোনাৰ টেবলেটত সঞ্চয় কৰি ৰখা ব্ৰাউজাৰৰ বুকমার্ক আৰু ব্ৰাউজাৰৰ ইতিহাস সংশোধন কৰিবলৈ এপক অনুমতি দিয়ে। টোকা: এই অনুমতি তৃতীয় পক্ষৰ ব্ৰাউজাৰবোৰ বা ৱেব ব্ৰাউজিং কৰিব পৰা অন্য এপ্লিকেশ্বনবোৰৰ দ্বাৰা বলৱৎ নহ\'বও পাৰে।""এপ্টোক আপোনাৰ Android TV ডিভাইচত ষ্ট’ৰ কৰি ৰখা ব্ৰাউজাৰৰ ইতিহাস আৰু বুকমার্কবোৰ সংশোধন কৰিবলৈ অনুমতি দিয়ে। ব্ৰাউজাৰ ডেটা মোহাৰিবলৈ অথবা সংশোধন কৰিবলৈ ই এপ্টোক অনুমতি দিব পাৰে। টোকা: এই অনুমতি তৃতীয় পক্ষৰ ব্ৰাউজাৰবোৰ অথবা ৱেব ব্ৰাউজিঙৰ ক্ষমতা থকা অন্য এপ্লিকেশ্বনবোৰৰ দ্বাৰা বলৱৎ কৰা নহ’বও পাৰে।"
- "আপোনাৰ ফ\'নত ষ্ট’ৰ কৰি ৰখা ব্ৰাউজাৰৰ বুকমার্ক আৰু ব্ৰাউজাৰৰ ইতিহাস সংশোধন কৰিবলৈ এপক অনুমতি দিয়ে। টোকা: এই অনুমতি তৃতীয় পক্ষৰ ব্ৰাউজাৰবোৰ বা ৱেব ব্ৰাউজিং কৰিব পৰা অন্য এপ্লিকেশ্বনবোৰৰ দ্বাৰা বলৱৎ নহ\'বও পাৰে।"
+ "আপোনাৰ ফ\'নত সঞ্চয় কৰি ৰখা ব্ৰাউজাৰৰ বুকমার্ক আৰু ব্ৰাউজাৰৰ ইতিহাস সংশোধন কৰিবলৈ এপক অনুমতি দিয়ে। টোকা: এই অনুমতি তৃতীয় পক্ষৰ ব্ৰাউজাৰবোৰ বা ৱেব ব্ৰাউজিং কৰিব পৰা অন্য এপ্লিকেশ্বনবোৰৰ দ্বাৰা বলৱৎ নহ\'বও পাৰে।""এলাৰ্ম ছেট কৰক"
- "এপ্টোক ইনষ্টল হৈ থকা এলাৰ্ম ক্লক এপত এলাৰ্ম ছেট কৰিবলৈ অনুমতি দিয়ে। কিছুমান এলাৰ্ম ক্লক এপত এই সুবিধাটো প্ৰযোজ্য নহ’ব পাৰে।"
+ "এপটোক ইনষ্টল হৈ থকা এলাৰ্ম ক্লক এপত এলাৰ্ম ছেট কৰিবলৈ অনুমতি দিয়ে। কিছুমান এলাৰ্ম ক্লক এপত এই সুবিধাটো প্ৰযোজ্য নহ’ব পাৰে।""ভইচমেইল যোগ কৰক"
- "আপোনাৰ ভইচমেইল ইনবক্সত বাৰ্তাবোৰ যোগ কৰিবলৈ এপ্টোক অনুমতি দিয়ক।"
+ "আপোনাৰ ভইচমেইল ইনবক্সত বাৰ্তাবোৰ যোগ কৰিবলৈ এপটোক অনুমতি দিয়ক।""ব্ৰাউজাৰৰ জিঅ\'লোকেশ্বনৰ অনুমতিসমূহ সংশোধন কৰক"
- "ব্ৰাউজাৰৰ জিঅ\'লোকেশ্বন বিষয়ক অনুমতিসমূহ সংশোধন কৰিবলৈ এপ্টোক অনুমতি দিয়ে৷ ক্ষতিকাৰক এপবোৰে একপক্ষীয় ৱেবছাইটসমূহলৈ অৱস্থান সেৱাৰ তথ্য পঠিয়াবলৈ ইয়াক ব্যৱহাৰ কৰিব পাৰে৷"
+ "ব্ৰাউজাৰৰ জিঅ\'লোকেশ্বন বিষয়ক অনুমতিসমূহ সংশোধন কৰিবলৈ এপটোক অনুমতি দিয়ে৷ ক্ষতিকাৰক এপবোৰে একপক্ষীয় ৱেবছাইটসমূহলৈ অৱস্থান সেৱাৰ তথ্য পঠিয়াবলৈ ইয়াক ব্যৱহাৰ কৰিব পাৰে৷""ব্ৰাউজাৰে এই পাছৱর্ডটো মনত ৰখাটো বিচাৰেনে?""এতিয়াই নহয়""মনত ৰাখিব"
@@ -1204,12 +1199,12 @@
"%1$s বন্ধ হ’ল""%1$s বাৰে বাৰে বন্ধ হৈ গৈছে""%1$s বাৰে বাৰে বন্ধ হৈ গৈছে"
- "আকৌ এপ্টো খোলক"
+ "আকৌ এপটো খোলক""আপোনাৰ প্ৰতিক্ৰিয়া পঠিয়াওক""বন্ধ কৰক""ডিভাইচ ৰিষ্টাৰ্ট নোহোৱালৈ মিউট কৰক""অপেক্ষা কৰক"
- "এপ্টো বন্ধ কৰক"
+ "এপটো বন্ধ কৰক""%2$sয়ে সঁহাৰি দিয়া নাই""%1$sয়ে সঁহাৰি দিয়া নাই"
@@ -1227,7 +1222,7 @@
"ছিষ্টেমৰ ছেটিং > এপ্ > ডাউনল’ড কৰা সমল-লৈ গৈ ইয়াক আকৌ সক্ষম কৰক।""%1$sএ বর্তমানৰ ডিছপ্লে’ৰ আকাৰ ছেটিং ব্যৱহাৰ কৰিব নোৱাৰে আৰু ই সঠিকভাৱে নচলিবও পাৰে।""সদায় দেখুৱাওক"
- "%1$sক এটা খাপ নোখোৱা Android OS সংস্কৰণৰ বাবে তৈয়াৰ কৰা হৈছিল, যাৰ ফলত ই অস্বাভাৱিকধৰণে আচৰণ কৰিব পাৰে। এপ্টোৰ শেহতীয়া সংস্কৰণ উপলব্ধ হ\'ব পাৰে।"
+ "%1$sক এটা খাপ নোখোৱা Android OS সংস্কৰণৰ বাবে তৈয়াৰ কৰা হৈছিল, যাৰ ফলত ই অস্বাভাৱিকধৰণে আচৰণ কৰিব পাৰে। এপটোৰ শেহতীয়া সংস্কৰণ উপলব্ধ হ\'ব পাৰে।""সদায় দেখুৱাওক""আপডে’ট আছে নেকি চাওক""এপটোৱে %1$s (প্ৰক্ৰিয়াটোৱে %2$s) নিজে বলবৎ কৰা StrictMode নীতি ভংগ কৰিলে।"
@@ -1246,9 +1241,10 @@
"%1$sসাজু কৰি থকা হৈছে।""আৰম্ভ হৈ থকা এপসমূহ।""বুট কাৰ্য সমাপ্ত কৰিছে।"
+ "ছেট আপ অব্যাহত ৰাখিবনে?""আপুনি পাৱাৰ বুটামটো টিপিছে — এইটোৱে সাধাৰণতে স্ক্ৰীনখন অফ কৰে।\n\nআপোনাৰ ফিংগাৰপ্ৰিণ্টটো ছেট আপ কৰাৰ সময়ত লাহেকৈ টিপি চাওক।"
- "ছেটআপ সমাপ্ত কৰিবলৈ স্ক্ৰীন অফ কৰক"
- "অফ কৰক"
+ "স্ক্ৰীন অফ কৰক"
+ "ছেট আপ অব্যাহত ৰাখক""ফিংগাৰপ্ৰিণ্ট সত্যাপন কৰা জাৰি ৰাখিবনে?""আপুনি পাৱাৰ বুটামটো টিপিছে — এইটোৱে সাধাৰণতে স্ক্ৰীনখন অফ কৰে।\n\nআপোনাৰ ফিংগাৰপ্ৰিণ্টটো সত্যাপন কৰিবলৈ লাহেকৈ টিপি চাওক।""স্ক্ৰীন অফ কৰক"
@@ -1324,18 +1320,18 @@
"পঠিয়াওক""বাতিল কৰক""মোৰ পচন্দ মনত ৰাখিব"
- "আপুনি ইয়াক পাছত ছেটিং > এপত সলনি কৰিব পাৰে"
+ "আপুনি ইয়াক পিছত ছেটিং > এপত সলনি কৰিব পাৰে""যিকোনো সময়ত অনুমতি দিয়ক""কেতিয়াও অনুমতি নিদিব"
- "ছিম আঁতৰোৱা হৈছে"
- "আপুনি এখন মান্য ছিম ভৰাই ৰিষ্টাৰ্ট নকৰা পৰ্যন্ত ম’বাইলৰ নেটৱৰ্ক উপলব্ধ নহয়।"
+ "ছিম কাৰ্ড আঁতৰোৱা হ’ল"
+ "এখন মান্য ছিম কার্ড ব্যৱহাৰ কৰি ৰিষ্টার্ট নকৰা পর্যন্ত ম\'বাইলৰ নেটৱর্ক উপলব্ধ নহয়।""সম্পন্ন হ’ল"
- "ছিম যোগ দিয়া হৈছে"
+ "ছিম কাৰ্ড যোগ কৰা হ’ল""ম\'বাইলৰ নেটৱর্ক ব্যৱহাৰ কৰিবলৈ আপোনাৰ ডিভাইচটো ৰিষ্টার্ট কৰক।""ৰিষ্টাৰ্ট কৰক""ম’বাইল সেৱা সক্ৰিয় কৰক"
- "আপোনাৰ নতুন ছিমখন সক্ৰিয় কৰিবলৈ বাহকৰ এপ্টো ডাউনল’ড কৰক"
- "আপোনাৰ নতুন ছিমখন সক্ৰিয় কৰিবলৈ %1$s এপ্টো ডাউনল’ড কৰক"
+ "আপোনাৰ নতুন ছিমখন সক্ৰিয় কৰিবলৈ বাহকৰ এপটো ডাউনল’ড কৰক"
+ "আপোনাৰ নতুন ছিমখন সক্ৰিয় কৰিবলৈ %1$s এপটো ডাউনল’ড কৰক""এপ্ ডাউনল’ড কৰক""নতুন ছিম ভৰোৱা হৈছে""ছেট আপ কৰিবলৈ টিপক"
@@ -1401,16 +1397,16 @@
"ছেট আপ কৰিবলৈ টিপক""ছেট আপ কৰিবলৈ বাছনি কৰক""আপুনি ডিভাইচটো পুনৰ ফৰ্মেট কৰিবলগীয়া হ’ব পাৰে। বাহিৰলৈ উলিয়াবলৈ টিপক।"
- "ফট’ ভিডিঅ’, সংগীত আৰু বহুতো ষ্ট’ৰ কৰাৰ বাবে"
+ "ফট\' আৰু মিডিয়া স্থানান্তৰণৰ বাবে""মিডিয়া ফাইল ব্ৰাউজ কৰক""%sত কিবা সমস্যা আছে""%sএ কাম কৰা নাই""সমাধান কৰিবলৈ টিপক""%s ব্যৱহাৰযোগ্য হৈ থকা নাই। ঠিক কৰিবলৈ বাছনি কৰক।""আপুনি ডিভাইচটো পুনৰ ফৰ্মেট কৰিবলগীয়া হ’ব পাৰে। বাহিৰলৈ উলিয়াবলৈ টিপক।"
- "%s চিনাক্ত কৰা হৈছে"
+ "%sক ব্যৱহাৰ কৰিব নোৱাৰি""%sএ কাম কৰা নাই"
- "ছেট আপ কৰিবলৈ টিপক।"
+ "এই ডিভাইচটোৱে %sক ব্যৱহাৰ কৰিব নোৱাৰে। ব্যৱহাৰ কৰিব পৰা ফৰ্মেটত ছেট আপ কৰিবলৈ টিপক।""এটা সমৰ্থিত ফৰ্মেটত %s ছেট আপ কৰিবলৈ বাছনি কৰক।""আপুনি ডিভাইচটো পুনৰ ফৰ্মেট কৰিবলগীয়া হ’ব পাৰে""%s অপ্ৰত্য়াশিতভাৱে আঁতৰোৱা হ’ল"
@@ -1448,9 +1444,9 @@
"ইনষ্টল কৰা ছেশ্বনসমূহ পঢ়িব পাৰে""এটা এপ্লিকেশ্বনক ইনষ্টল কৰা ছেশ্বনসমূহ পঢ়িবলৈ অনুমতি দিয়ে। এই কাৰ্যই সক্ৰিয় পেকেজ ইনষ্টলেশ্বনৰ বিষয়ে চাবলৈ অনুমতি দিয়ে।""পেকেজ ইনষ্টলৰ বাবে অনুৰোধ কৰিব পাৰে"
- "পেকেজ ইনষ্টল কৰাৰ অনুৰোধ প্ৰেৰণ কৰিবলৈ এপ্টোক অনুমতি দিয়ে।"
+ "পেকেজ ইনষ্টল কৰাৰ অনুৰোধ প্ৰেৰণ কৰিবলৈ এপটোক অনুমতি দিয়ে।""পেকেজ মচাৰ অনুৰোধ কৰিব পাৰে"
- "এপ্টোক পেকেজবোৰ মচাৰ অনুৰোধ কৰিবলৈ দিয়ে।"
+ "এপটোক পেকেজবোৰ মচাৰ অনুৰোধ কৰিবলৈ দিয়ে।""বেটাৰী অপ্টিমাইজেশ্বন উপেক্ষা কৰিবলৈ বিচাৰক""কোনো এপক সেই এপ্টোৰ বাবে বেটাৰী অপ্টিমাইজেশ্বন উপেক্ষা কৰিবলৈ অনুমতি বিচাৰিবলৈ দিয়ে।""আটাইবোৰ পেকেজত প্ৰশ্ন সোধক"
@@ -1466,7 +1462,7 @@
"কার্য কৰক""%s ব্যৱহাৰ কৰি \n নম্বৰটো ডায়েল কৰক""%s ব্যৱহাৰ কৰি সম্পৰ্ক \n সৃষ্টি কৰক"
- "তলৰ এটা বা একাধিক এপে বৰ্তমান আৰু ভৱিষ্যতে আপোনাৰ একাউণ্ট এক্সেছ কৰিবলৈ অনুমতি বিচাৰি অনুৰোধ কৰিছে৷"
+ "বৰ্তমান আৰু ভৱিষ্যতে আপোনাৰ একাউণ্টত প্ৰৱেশ কৰিবলৈ তলৰ এটা বা অধিক এপে অনুমতি লাভৰ বাবে অনুৰোধ কৰিছে৷""আপুনি এই অনুৰোধক সন্মতি দিব বিচাৰেনে?""ব্যৱহাৰ কৰাৰ অনুমতি বিচাৰি কৰা অনুৰোধ""অনুমতি দিয়ক"
@@ -1474,8 +1470,8 @@
"অনুমতি বিচাৰি অনুৰোধ কৰা হৈছে""%s একাউণ্টৰ বাবে\nঅনুমতি বিচাৰি অনুৰোধ কৰা হৈছে।""%1$sএ %2$s একাউণ্টটো এক্সেছৰ \nঅনুমতি বিচাৰি অনুৰোধ জনাইছে।"
- "আপুনি আপোনাৰ কৰ্মস্থানৰ প্ৰ\'ফাইলৰ বাহিৰত এই এপ্টো ব্যৱহাৰ কৰি আছে"
- "আপুনি আপোনাৰ কৰ্মস্থানৰ প্ৰ\'ফাইলৰ ভিতৰত এই এপ্টো ব্যৱহাৰ কৰি আছে"
+ "আপুনি আপোনাৰ কৰ্মস্থানৰ প্ৰ\'ফাইলৰ বাহিৰত এই এপটো ব্যৱহাৰ কৰি আছে"
+ "আপুনি আপোনাৰ কৰ্মস্থানৰ প্ৰ\'ফাইলৰ ভিতৰত এই এপটো ব্যৱহাৰ কৰি আছে""ইনপুট পদ্ধতি""ছিংক""সাধ্য সুবিধাসমূহ"
@@ -1556,7 +1552,7 @@
"ইয়াৰ জৰিয়তে শ্বেয়াৰ কৰক""%sৰ জৰিয়তে শ্বেয়াৰ কৰক""শ্লাইড কৰা হেণ্ডেল৷ স্পৰ্শ কৰক আৰু ধৰি ৰাখক৷"
- "স্ক্ৰীন আনলক কৰিবলৈ ছোৱাইপ কৰক৷"
+ "স্ক্ৰীণ আনলক কৰিবলৈ ছোৱাইপ কৰক৷""গৃহ পৃষ্ঠালৈ যাওক""ওপৰলৈ যাওক""অধিক বিকল্প"
@@ -1609,7 +1605,7 @@
"টিভি""ফ\'ন""ড\'ক স্পীকাৰসমূহ"
- "বাহ্যিক ডিভাইচ"
+ "HDMI""হেডফ\'নবোৰ""ইউএছবি""ছিষ্টেম"
@@ -1642,7 +1638,7 @@
"ছিমখন বর্তমান অক্ষম অৱস্থাত আছে। অব্যাহত ৰাখিবলৈ PUK ক\'ড লিখক। সবিশেষ জানিবলৈ বাহকৰ সৈতে যোগাযোগ কৰক।""ইচ্ছা কৰা পিন ক\'ড লিখক""ইচ্ছা কৰা পিন ক\'ড নিশ্চিত কৰক"
- "ছিম আনলক কৰি থকা হৈছে…"
+ "ছিম কার্ড আনলক কৰি থকা হৈছে…""ভুল পিন ক\'ড।""৪ ৰ পৰা ৮ টা লৈকে সংখ্য়া সন্নিবিষ্ট হোৱা পিন লিখক।""PUK ক\'ড ৮টা সংখ্যাৰ হ\'ব লাগিব।"
@@ -1656,18 +1652,18 @@
"ব্যৱহাৰকাৰীৰ অমান্য নাম বা পাছৱর্ড।""নিজৰ ব্যৱহাৰকাৰী নাম আৰু পাছৱর্ড পাহৰিলেনে?\n""google.com/accounts/recovery"" লৈ যাওক।""একাউণ্ট পৰীক্ষা কৰি থকা হৈছে…"
- "আপুনি আপোনাৰ পিন %1$dবাৰ ভুলকৈ লিখিছে। \n\n%2$dছেকেণ্ডৰ পাছত আকৌ চেষ্টা কৰক।"
- "আপুনি আপোনাৰ পাছৱৰ্ড %1$dবাৰ ভুলকৈ লিখিছে। \n\n%2$d ছেকেণ্ডৰ পাছত আকৌ চেষ্টা কৰক।"
- "আপুনি আপোনাৰ ল\'ক খোলাৰ আৰ্হি %1$dবাৰ ভুলকৈ আঁকিছে। \n\n%2$dছেকেণ্ডৰ পাছত আকৌ চেষ্টা কৰক।"
+ "আপুনি আপোনাৰ পিন %1$dবাৰ ভুলকৈ লিখিছে। \n\n%2$dছেকেণ্ডৰ পিছত আকৌ চেষ্টা কৰক।"
+ "আপুনি আপোনাৰ পাছৱৰ্ড %1$dবাৰ ভুলকৈ লিখিছে। \n\n%2$d ছেকেণ্ডৰ পিছত আকৌ চেষ্টা কৰক।"
+ "আপুনি আপোনাৰ ল\'ক খোলাৰ আৰ্হি %1$dবাৰ ভুলকৈ আঁকিছে। \n\n%2$dছেকেণ্ডৰ পিছত আকৌ চেষ্টা কৰক।""আপুনি %1$dবাৰ ভুলকৈ টেবলেটৰ ল\'ক খোলাৰ প্ৰয়াস কৰিছে। %2$dতকৈ বেছি বাৰ ভুল প্ৰয়াস কৰিলে টেবলেটটো ফেক্টৰী ডিফ\'ল্টলৈ ৰিছেট কৰা হ\'ব আৰু আটাইবোৰ ব্যৱহাৰকাৰীৰ ডেটা হেৰুৱাব।""আপুনি নিজৰ Android TV ডিভাইচটো আনলক কৰিবলৈ %1$dবাৰ ভুলকৈ প্ৰয়াস কৰিছে। %2$dতকৈ বেছি বাৰ ভুলকৈ প্ৰয়াস কৰাৰ পাছত আপোনাৰ Android TV ডিভাইচটো ফেক্টৰী ডিফ’ল্টলৈ ৰিছেট কৰা হ’ব আৰু ব্যৱহাৰকাৰীৰ আটাইবোৰ ডেটা হেৰুৱাব।""আপুনি %1$dবাৰ ভুলকৈ ফ\'নৰ ল\'ক খোলাৰ প্ৰয়াস কৰিছে। %2$dতকৈ বেছি বাৰ ভুল প্ৰয়াস কৰিলে ফ\'নটো ফেক্টৰী ডিফ\'ল্টলৈ ৰিছেট কৰা হ\'ব আৰু ব্যৱহাৰকাৰীৰ আটাইবোৰ ডেটা হেৰুৱাব।""আপুনি %dবাৰ ভুলকৈ টেবলেটৰ ল\'ক খোলাৰ প্ৰয়াস কৰিছে। টেবলেটটো এতিয়া ফেক্টৰী ডিফ\'ল্টলৈ ৰিছেট কৰা হ\'ব।""আপুনি নিজৰ Android TV ডিভাইচটো আনলক কৰিবলৈ %dবাৰ ভুলকৈ প্ৰয়াস কৰিছে। আপোনাৰ Android TV ডিভাইচটো এতিয়া ফেক্টৰী ডিফ’ল্টলৈ ৰিছেট কৰা হ’ব।""আপুনি %dবাৰ ভুলকৈ ফ\'নৰ ল\'ক খোলাৰ প্ৰয়াস কৰিছে। ফ\'নটো এতিয়া ফেক্টৰী ডিফ\'ল্টলৈ ৰিছেট কৰা হ\'ব।"
- "আপুনি আপোনাৰ ল\'ক খোলাৰ আৰ্হিটো %1$dবাৰ ভুলকৈ আঁকিছে। %2$dতকৈ বেছি বাৰ ভুল আৰ্হি আঁকিলে আপোনাৰ টেবলেটটো কোনো একাউণ্টৰ জৰিয়তে আনলক কৰিবলৈ কোৱা হ\'ব।\n\n %3$d ছেকেণ্ডৰ পাছত আকৌ চেষ্টা কৰক।"
+ "আপুনি আপোনাৰ ল\'ক খোলাৰ আৰ্হিটো %1$dবাৰ ভুলকৈ আঁকিছে। %2$dতকৈ বেছি বাৰ ভুল আৰ্হি আঁকিলে আপোনাৰ টেবলেটটো কোনো একাউণ্টৰ জৰিয়তে আনলক কৰিবলৈ কোৱা হ\'ব।\n\n %3$d ছেকেণ্ডৰ পিছত আকৌ চেষ্টা কৰক।""আপুনি নিজৰ আনলক আর্হিটো %1$dবাৰ ভুলকৈ দিয়ে। আকৌ %2$dবাৰ ভুলকৈ প্ৰয়াস কৰাৰ পাছত আপোনাক এটা ইমেইল একাউণ্ট ব্যৱহাৰ কৰি নিজৰ Android TV ডিভাইচটো আনলক কৰিবলৈ কোৱা হ’ব।\n\n %3$dছেকেণ্ডৰ পাছত পুনৰ চেষ্টা কৰক।"
- "আপুনি আপোনাৰ ল\'ক খোলাৰ আৰ্হিটো %1$dবাৰ ভুলকৈ আঁকিছে। %2$dতকৈ বেছি বাৰ ভুল আৰ্হি আঁকিলে আপোনাৰ ফ\'নটো কোনো একাউণ্টৰ জৰিয়তে আনলক কৰিবলৈ কোৱা হ\'ব।\n\n %3$d ছেকেণ্ডৰ পাছত আকৌ চেষ্টা কৰক।"
+ "আপুনি আপোনাৰ ল\'ক খোলাৰ আৰ্হিটো %1$dবাৰ ভুলকৈ আঁকিছে। %2$dতকৈ বেছি বাৰ ভুল আৰ্হি আঁকিলে আপোনাৰ ফ\'নটো কোনো একাউণ্টৰ জৰিয়তে আনলক কৰিবলৈ কোৱা হ\'ব।\n\n %3$d ছেকেণ্ডৰ পিছত আকৌ চেষ্টা কৰক।"" — ""আঁতৰাওক""অনুমোদিত স্তৰতকৈ ওপৰলৈ ভলিউম বঢ়াব নেকি?\n\nদীৰ্ঘ সময়ৰ বাবে উচ্চ ভলিউমত শুনাৰ ফলত শ্ৰৱণ ক্ষমতাৰ ক্ষতি হ\'ব পাৰে।"
@@ -1831,7 +1827,7 @@
"সীমাবদ্ধতা সংশোধন কৰিবলৈ এটা পিন সৃষ্টি কৰক""পিনবোৰ মিলা নাই। আকৌ চেষ্টা কৰক।""পিনটো অতি চুটি। কমেও ৪টা সংখ্যাৰ হ\'ব লাগিব।"
- "পাছত আকৌ চেষ্টা কৰক"
+ "পিছত আকৌ চেষ্টা কৰক""স্ক্ৰীন পূৰ্ণৰূপত চাই আছে""বাহিৰ হ\'বলৈ ওপৰৰপৰা তললৈ ছোৱাইপ কৰক।""বুজি পালোঁ"
@@ -1923,11 +1919,10 @@
"অঞ্চলৰ অগ্ৰাধিকাৰ""ভাষাৰ নাম লিখক""প্ৰস্তাৱিত"
- "পৰামৰ্শিত""সকলো ভাষা""আটাইবোৰ অঞ্চল""সন্ধান কৰক"
- "এপ্টো নাই"
+ "এপটো নাই""এই মুহূৰ্তত %1$s উপলব্ধ নহয়। ইয়াক %2$sএ পৰিচালনা কৰে।""অধিক জানক""এপ্ আনপজ কৰক"
@@ -1941,20 +1936,19 @@
"কেমেৰা উপলব্ধ নহয়""ফ’নতে অব্যাহত ৰাখক""মাইক্ৰ’ফ’ন উপলব্ধ নহয়"
- "Play Store উপলব্ধ নহয়""Android TVৰ ছেটিং উপলব্ধ নহয়""টেবলেটৰ ছেটিং উপলব্ধ নহয়""ফ’নৰ ছেটিং উপলব্ধ নহয়"
- "এইটো এতিয়া আপোনাৰ %1$sত এক্সেছ কৰিব পৰা নাযায়। তাৰ পৰিৱৰ্তে আপোনাৰ Android TVত চেষ্টা কৰি চাওক।"
- "এইটো এতিয়া আপোনাৰ %1$sত এক্সেছ কৰিব পৰা নাযায়। তাৰ পৰিৱৰ্তে আপোনাৰ টেবলেটটোত চেষ্টা কৰি চাওক।"
- "এইটো এতিয়া আপোনাৰ %1$sত এক্সেছ কৰিব পৰা নাযায়। তাৰ পৰিৱৰ্তে আপোনাৰ ফ’নত চেষ্টা কৰি চাওক।"
+ "এইটো আপোনাৰ %1$sত এক্সেছ কৰিব নোৱৰি। তাৰ পৰিৱৰ্তে আপোনাৰ Android TV ডিভাইচত চেষ্টা কৰি চাওক।"
+ "এইটো আপোনাৰ %1$sত এক্সেছ কৰিব নোৱৰি। তাৰ পৰিৱৰ্তে আপোনাৰ টেবলেটত চেষ্টা কৰি চাওক।"
+ "এইটো আপোনাৰ %1$sত এক্সেছ কৰিব নোৱৰি। তাৰ পৰিৱৰ্তে আপোনাৰ ফ’নত চেষ্টা কৰি চাওক।"
+ "এইটো এই মুহূৰ্তত আপোনাৰ %1$sত এক্সেছ কৰিব নোৱাৰি। তাৰ পৰিৱৰ্তে আপোনাৰ Android TV ডিভাইচত চেষ্টা কৰি চাওক।"
+ "এইটো এই মুহূৰ্তত আপোনাৰ %1$sত এক্সেছ কৰিব নোৱাৰি। তাৰ পৰিৱৰ্তে আপোনাৰ টেবলেটত চেষ্টা কৰি চাওক।"
+ "এইটো এই মুহূৰ্তত আপোনাৰ %1$sত এক্সেছ কৰিব নোৱাৰি। তাৰ পৰিৱৰ্তে আপোনাৰ ফ’নত চেষ্টা কৰি চাওক।""এই এপ্টোৱে অতিৰিক্ত সুৰক্ষাৰ বাবে অনুৰোধ কৰিছে। তাৰ পৰিৱৰ্তে আপোনাৰ Android TV ডিভাইচত চেষ্টা কৰি চাওক।""এই এপ্টোৱে অতিৰিক্ত সুৰক্ষাৰ বাবে অনুৰোধ কৰিছে। তাৰ পৰিৱৰ্তে আপোনাৰ টেবলেটত চেষ্টা কৰি চাওক।""এই এপ্টোৱে অতিৰিক্ত সুৰক্ষাৰ বাবে অনুৰোধ কৰিছে। তাৰ পৰিৱৰ্তে আপোনাৰ ফ’নত চেষ্টা কৰি চাওক।"
- "এইটো আপোনাৰ %1$sত এক্সেছ কৰিব নোৱাৰি। তাৰ পৰিৱৰ্তে আপোনাৰ Android TV ডিভাইচত চেষ্টা কৰি চাওক।"
- "এইটো আপোনাৰ %1$sত এক্সেছ কৰিব নোৱাৰি। তাৰ পৰিৱৰ্তে আপোনাৰ টেবলেটত চেষ্টা কৰি চাওক।"
- "এইটো আপোনাৰ %1$sত এক্সেছ কৰিব নোৱাৰি। তাৰ পৰিৱৰ্তে আপোনাৰ ফ’নত চেষ্টা কৰি চাওক।"
- "এই এপ্টো Androidৰ এটা পুৰণা সংস্কৰণৰ বাবে প্ৰস্তুত কৰা হৈছিল, আৰু ই বিচৰাধৰণে কাম নকৰিবও পাৰে। ইয়াৰ আপডে’ট আছে নেকি চাওক, বা বিকাশকৰ্তাৰ সৈতে যোগাযোগ কৰক।"
+ "এই এপটো Androidৰ এটা পুৰণা সংস্কৰণৰ বাবে প্ৰস্তুত কৰা হৈছিল, আৰু ই বিচৰাধৰণে কাম নকৰিবও পাৰে। ইয়াৰ আপডে’ট আছে নেকি চাওক, বা বিকাশকৰ্তাৰ সৈতে যোগাযোগ কৰক।""আপডে’ট আছে নেকি চাওক""আপুনি নতুন বার্তা লাভ কৰিছে""চাবলৈ এছএমএছ এপ্ খোলক"
@@ -1993,7 +1987,7 @@
"সময়ৰ ইনপুটৰ বাবে পাঠৰ ইনপুট ম\'ডলৈ যাওক।""সময়ৰ ইনপুটৰ বাবে ঘড়ী ম\'ডলৈ যাওক।""স্বয়ংপূৰ্তিৰ বিকল্পসমূহ"
- "পাছত স্বয়ংপূৰ্তি কৰিবলৈ ছেভ কৰক"
+ "পিছত স্বয়ংপূৰ্তি কৰিবলৈ ছেভ কৰক""সমলসমূহ স্বয়ংপূৰ্তি কৰিব নোৱাৰি""কোনো স্বয়ংপূৰ্তি পৰামৰ্শ নাই""{count,plural, =1{এটা স্বয়ংপূৰ্তি পৰামৰ্শ}one{# টা স্বয়ংপূৰ্তি পৰামৰ্শ}other{# টা স্বয়ংপূৰ্তি পৰামৰ্শ}}"
@@ -2036,7 +2030,7 @@
"পপআপ ৱিণ্ড\'""+ %1$d""এপৰ সংস্কৰণ অৱনমিত কৰা হৈছে, বা ই এই শ্বৰ্টকাটটোৰ লগত খাপ নাখায়"
- "এপ্টোত বেকআপ আৰু পুনঃস্থাপন সুবিধা নথকাৰ বাবে শ্বৰ্টকাট পুনঃস্থাপন কৰিবপৰা নগ\'ল"
+ "এপটোত বেকআপ আৰু পুনঃস্থাপন সুবিধা নথকাৰ বাবে শ্বৰ্টকাট পুনঃস্থাপন কৰিবপৰা নগ\'ল""এপৰ স্বাক্ষৰৰ অমিল হোৱাৰ বাবে শ্বৰ্টকাট পুনঃস্থাপন কৰিবপৰা নগ\'ল""শ্বৰ্টকাট পুনঃস্থাপন কৰিবপৰা নগ\'ল""শ্বৰ্টকাট অক্ষম কৰি থোৱা হৈছে"
@@ -2046,8 +2040,7 @@
"%sক আটাইবোৰ ডিভাইচৰ লগ এক্সেছ কৰাৰ অনুমতি প্ৰদান কৰিবনে?""কেৱল এবাৰ এক্সেছ কৰাৰ অনুমতি দিয়ক""অনুমতি নিদিব"
- "আপোনাৰ ডিভাইচত কি কি ঘটে সেয়া ডিভাইচ লগে ৰেকৰ্ড কৰে। এপ্সমূহে সমস্যা বিচাৰিবলৈ আৰু সমাধান কৰিবলৈ এই লগসমূহ ব্যৱহাৰ কৰিব পাৰে।\n\nকিছুমান লগত সংবেদনশীল তথ্য থাকিব পাৰে, গতিকে কেৱল আপুনি বিশ্বাস কৰা এপকহে আটাইবোৰ ডিভাইচ লগ এক্সেছ কৰাৰ অনুমতি দিয়ক। \n\nআপুনি যদি এই এপ্টোক আটাইবোৰ ডিভাইচ লগ এক্সেছ কৰাৰ অনুমতি নিদিয়ে, তথাপিও ই নিজৰ লগসমূহ এক্সেছ কৰিব পাৰিব। আপোনাৰ ডিভাইচৰ নিৰ্মাতাই তথাপিও হয়তো আপোনাৰ ডিভাইচটোত থকা কিছু লগ অথবা তথ্য এক্সেছ কৰিব পাৰিব।"
- "আপোনাৰ ডিভাইচত কি কি ঘটে সেয়া ডিভাইচ লগে ৰেকৰ্ড কৰে। এপ্সমূহে সমস্যা বিচাৰিবলৈ আৰু সমাধান কৰিবলৈ এই লগসমূহ ব্যৱহাৰ কৰিব পাৰে।\n\nকিছুমান লগত সংবেদনশীল তথ্য থাকিব পাৰে, গতিকে কেৱল আপুনি বিশ্বাস কৰা এপকহে আটাইবোৰ ডিভাইচ লগ এক্সেছ কৰাৰ অনুমতি দিয়ক। \n\nআপুনি যদি এই এপ্টোক আটাইবোৰ ডিভাইচ লগ এক্সেছ কৰাৰ অনুমতি নিদিয়ে, তথাপিও ই নিজৰ লগসমূহ এক্সেছ কৰিব পাৰিব। আপোনাৰ ডিভাইচৰ নিৰ্মাতাই তথাপিও হয়তো আপোনাৰ ডিভাইচটোত থকা কিছু লগ অথবা তথ্য এক্সেছ কৰিব পাৰিব।\n\ng.co/android/devicelogsত অধিক জানক।"
+ "আপোনাৰ ডিভাইচত কি কি ঘটে সেয়া ডিভাইচ লগে ৰেকৰ্ড কৰে। এপ্সমূহে সমস্যা বিচাৰিবলৈ আৰু সমাধান কৰিবলৈ এই লগসমূহ ব্যৱহাৰ কৰিব পাৰে।\n\nকিছুমান লগত সংবেদনশীল তথ্য থাকিব পাৰে, গতিকে কেৱল আপুনি বিশ্বাস কৰা এপকহে আটাইবোৰ ডিভাইচ লগ এক্সেছ কৰাৰ অনুমতি দিয়ক। \n\nআপুনি যদি এই এপ্টোক আটাইবোৰ ডিভাইচ লগ এক্সেছ কৰাৰ অনুমতি নিদিয়ে, তথাপিও ই নিজৰ লগসমূহ এক্সেছ কৰিব পাৰিব। আপোনাৰ ডিভাইচৰ নিৰ্মাতাই তথাপিও হয়তো আপোনাৰ ডিভাইচটোত থকা কিছু লগ অথবা তথ্য এক্সেছ কৰিব পাৰিব। অধিক জানক""পুনৰ নেদেখুৱাব""%1$sএ %2$sৰ অংশ দেখুওৱাব খুজিছে""সম্পাদনা কৰক"
@@ -2060,7 +2053,8 @@
"অসুবিধা নিদিব সলনি হৈছে""কি কি অৱৰোধ কৰা হৈছে জানিবলৈ টিপক।""জাননীৰ ছেটিং পৰ্যালোচনা কৰক"
- "Android 13ৰ পৰা, আপুনি ইনষ্টল কৰা এপক জাননী পঠিয়াবলৈ আপোনাৰ অনুমতিৰ প্ৰয়োজন। আগৰে পৰা থকা এপৰ বাবে এই অনুমতিটো সলনি কৰিবলৈ টিপক।"
+
+ "পাছত মনত পেলাই দিব""অগ্ৰাহ্য কৰক""ছিষ্টেম"
@@ -2288,6 +2282,5 @@
"সক্ৰিয় এপ্সমূহ পৰীক্ষা কৰক""আপোনাৰ %1$sৰ পৰা ফ’নটোৰ কেমেৰা এক্সেছ কৰিব নোৱাৰি""আপোনাৰ %1$sৰ পৰা টেবলেটটোৰ কেমেৰা এক্সেছ কৰিব নোৱাৰি"
- "ষ্ট্ৰীম কৰি থকাৰ সময়ত এইটো এক্সেছ কৰিব নোৱাৰি। তাৰ পৰিৱৰ্তে আপোনাৰ ফ’নত চেষ্টা কৰি চাওক।"
- "ছিষ্টেম ডিফ’ল্ট"
+ "ছিষ্টেমৰ ভাষা"
diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml
index 233965732b85aab19386ebc89c7e7516549c9e1b..03169608c21c4b8a80c73136468b7f248e933b9d 100644
--- a/core/res/res/values-az/strings.xml
+++ b/core/res/res/values-az/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""Başlıqsız""(Telefon nömrəsi yoxdur)"
@@ -28,7 +33,6 @@
"Səsli poçt""MSISDN1""Bağlantı problemi və ya yalnış MM kodu."
- "Funksiya dəstəklənmir.""Əməliyyat yalnız sabit nömrələrə yığımla məhdudlaşıb.""Roaminqdə olarkən zəng yönləndirmə ayarlarını telefonunuzdan dəyişə bilməz.""Servis işə salındı."
@@ -43,8 +47,8 @@
"Daxil etdiyiniz PİN kodlar uyğun gəlmir.""4-dən 8-ə qədər rəqəmi olan PIN yazın.""8 və daha çox rəqəmi olan PUK yazın."
- "Sizin SIM kart PUK ilə kilidlənib. Onu açmaq üçün PUK kodu yazın."
- "SIM kartı blokdan çıxarmaq üçün PUK2 daxil edin."
+ "Sizin SİM kart PUK ilə kilidlənib. Onu açmaq üçün PUK kodu yazın."
+ "SIM kartın kilidini açmaq üçün PUK2 yazın""Alınmadı, SIM/RUIM Kilidini aktiv edin."SIM kartınızın kilidlənməsindən öncə %d cəhdiniz qalır.
@@ -301,12 +305,12 @@
"təqvimə daxil olun""SMS""göndərin və SMS mesajlarına baxın"
- "Fayllar"
- "cihazınızda fayllara giriş"
- "Musiqi və audio"
- "cihazınızdakı musiqi və audioya giriş"
- "Foto və videolar"
- "cihazınızdakı foto və videolara giriş"
+ "Fayllar & sənədlər"
+ "cihazınızda fayllara və sənədlərə giriş"
+ "Musiqi və digər audio"
+ "cihazınızdakı audio fayllarına giriş"
+ "Foto və videolar"
+ "cihazınızdakı şəkil və video fayllarına giriş""Mikrofon""səsi qeydə alın""Fiziki fəaliyyət"
@@ -582,14 +586,13 @@
"Ekran kilidindən istifadə edin""Davam etmək üçün ekran kilidinizi daxil edin""Sensora basıb saxlayın"
- "Barmaq izini tanımaq olmur. Yenidən cəhd edin."
+ "Barmaq izi tanınmadı. Lütfən, yenidən cəhd edin.""Barmaq izi sensorunu silib yenidən cəhd edin""Sensoru silib yenidən cəhd edin""Sensora basıb saxlayın""Barmağınızı çox yavaş hərəkət etdirdiniz. Lütfən, yenidən cəhd edin.""Başqa bir barmaq izini sınayın""Çox işıqlıdır"
- "Qidalanma düyməsi basılıb""Tənzimləməyə çalışın""Hər dəfə barmağınızın yerini bir az dəyişdirin"
@@ -601,17 +604,16 @@
"Üz təsdiq edildi, təsdiq düyməsinə basın""Barmaq izi üçün avadanlıq yoxdur.""Barmaq izini ayarlamaq mümkün deyil"
- "Barmaq izi ayarlama vaxtı bitib. Yenidən cəhd edin."
+ "Barmaq izinin vaxtı başa çatdı. Yenidən cəhd edin.""Barmaq izi əməliyyatı ləğv edildi.""Barmaq izi əməliyyatı istifadəçi tərəfindən ləğv edildi."
- "Həddindən çox cəhd edilib. Əvəzində ekran kilidindən istifadə edin."
- "Həddindən çox cəhd edilib. Əvəzində ekran kilidindən istifadə edin."
- "Barmaq izini emal etmək mümkün deyil. Yenidən cəhd edin."
+ "Cəhdlər çox oldu. Sonraya saxlayın."
+ "Həddindən çox cəhd. Barmaq izi sensoru deaktiv edilib."
+ "Yenidən cəhd edin.""Barmaq izi qeydə alınmayıb.""Bu cihazda barmaq izi sensoru yoxdur.""Sensor müvəqqəti deaktivdir.""Barmaq izi sensorundan istifadə etmək mümkün deyil. Təmir provayderini ziyarət edin"
- "Qidalanma düyməsi basılıb""Barmaq %d""Barmaq izini istifadə edin""Barmaq izi və ya ekran kilidindən istifadə edin"
@@ -632,33 +634,26 @@
"Barmaq izi ilə kiliddən çıxarma""Barmaq izi sensorundan istifadə etmək mümkün deyil""Təmir provayderini ziyarət edin."
- "Üz modelinizi yaratmaq olmur. Yenə cəhd edin."
+ "Dəqiq üz datası əldə edilmədi. Yenidən cəhd edin.""Çox işıqlıdır. Daha az işıqlı şəkli sınayın."
- "Kifayət qədər İşıq yoxdur"
- "Telefonu uzaq tutun"
- "Telefonu yaxına tutun"
- "Telefonu yuxarı tutun"
- "Telefonu aşağı tutun"
- "Telefonu sola tutun"
- "Telefonu sağa tutun"
+ "Çox qaranlıqdır. Parlaq işıqdan istifadə edin."
+ "Telefonu uzaq tutun."
+ "Telefonu yaxına tutun."
+ "Telefonu yuxarı tutun."
+ "Telefonu aşağı tutun."
+ "Telefonu sola hərəkət etdirin."
+ "Telefonu sağa hərəkət etdirin.""Birbaşa cihaza baxın."
- "Üzünüz görünmür. Telefonunuzu göz səviyyəsində saxlayın."
+ "Üzünüzü telefonun qarşısında sabit saxlayın.""Cihaz stabil deyil. Telefonu tərpətməyin.""Üzünüzü yenidən qeydiyyatdan keçirin."
- "Üzü tanımaq olmur. Yenə cəhd edin."
- "Başınızın yerini bir az dəyişdirin"
- "Telefonunuza düz baxın"
- "Telefonunuza düz baxın"
- "Telefonunuza düz baxın"
+ "Üzü artıq tanımaq olmur. Yenidən cəhd edin."
+ "Digəri ilə oxşardır, pozanızı dəyişin."
+ "Başınızı bir az döndərin."
+ "Başınızı azca əyin."
+ "Başınızı bir az döndərin.""Üzünüzü gizlədən maneələri kənarlaşdırın.""Qara panel daxil olmaqla, ekranın yuxarısını təmizləyin"
-
-
-
-
- "Üz modelinizi yaratmaq olmur. Yenə cəhd edin."
- "Tünd eynək aşkar edildi. Üzünüz tam görünməlidir."
- "Üz örtüyü aşkar edildi. Üzünüz tam görünməlidir.""Üz doğrulanmadı. Avadanlıq əlçatan deyil."
@@ -924,14 +919,14 @@
"Bir daha cəhd et""Bütün funksiyalar və data üçün kiliddən çıxarın""Üz ilə Kiliddən Açma cəhdləriniz bitdi"
- "SIM yoxdur"
- "Planşetdə SIM kart yoxdur."
- "Android TV cihazında SIM kart yoxdur."
- "Telefonda SIM kart yoxdur."
- "SIM əlavə edin."
- "SIM kart yoxdur və ya oxuna bilinmir. SIM əlavə edin."
- "İstifadəyə yararsız SIM."
- "SIM kartınız həmişəlik deaktiv edilib.\n Başqa SIM kart üçün simsiz xidmət provayderinizə müraciət edin."
+ "SIM kart yoxdur."
+ "Planşetdə SIM kart yoxdur."
+ "Android TV cihazında SIM kart yoxdur."
+ "Telefonda SİM kart yoxdur."
+ "SİM kart daxil edin."
+ "SİM kart yoxdur və ya oxuna bilinmir. SİM kart daxil edin."
+ "Yararsız SIM kart."
+ "Sizin SİM kartınız daimi olaraq deaktivləşib.\n Başqa SİM kart üçün simsiz xidmət provayderinizə müraciət edin.""Öncəki trek""Növbəti trek""Pauza"
@@ -941,10 +936,10 @@
"Sürətlə irəli""Yalnız təcili zənglər""Şəbəkə kilidlidir"
- "SIM kart PUK ilə kilidlənib."
+ "SIM kart PUK ilə kilidlənib.""İstifadəçi Təlimatlarına baxın və ya Müştəri Xidmətlərinə müraciət edin."
- "SIM kilidlənib."
- "SIM kiliddən çıxarılır…"
+ "SIM kart kilidlənib."
+ "SİM kartın kilidi açılır...""Siz kilid modelini %1$d dəfə yanlış çəkdiniz. \n\n %2$d saniyə içində yenidən sınayın.""Şifrənizi %1$d dəfə yanlış daxil etdiniz.\n\n %2$d saniyə ərzində yenidən yoxlayın""Siz PIN nömrənizi %1$d dəfə yanlış daxil etdiniz. \n \n %2$d saniyə içində təkrar sınayın."
@@ -1246,9 +1241,10 @@
"%1$s proqramının hazırlanması.""Tətbiqlər başladılır.""Yükləmə başa çatır."
+ "Ayarlamağa davam edilsin?""Qidalanma düyməsini basdınız — adətən bu, ekranı söndürür.\n\nBarmaq izini ayarlayarkən yüngülcə toxunmağa çalışın."
- "Ayarlamanı bitirmək üçün ekranı söndürün"
- "Söndürün"
+ "Ekranı söndürün"
+ "Ayarlamağa davam edin""Barmaq izini doğrulamağa davam edilsin?""Qidalanma düyməsini basdınız — adətən bu, ekranı söndürür.\n\nBarmaq izini doğrulamaq üçün yüngülcə toxunmağa çalışın.""Ekranı söndürün"
@@ -1327,10 +1323,10 @@
"Bunu sonra Ayarlarda dəyişə bilərsiniz > Tətbiqlər""Həmişə icazə ver""Heç vaxt icazə verməyin"
- "SIM çıxarılıb"
- "Cihazınızı etibarlı SIM kart ilə başladana kimi mobil şəbəkə əlçatmaz olacaq."
+ "SIM kart çıxarıldı"
+ "Cihazınızı etibarlı SIM kart ilə başladana kimi mobil şəbəkə əlçatmaz olacaq.""Bitdi"
- "SIM əlavə edilib"
+ "SİM kart əlavə edildi""Mobil şəbəkəyə qoşulmaq üçün cihazınızı yenidən başladın.""Yenidən başlat""Mobil xidməti aktiv edin"
@@ -1401,16 +1397,16 @@
"Quraşdırmaq üçün klikləyin""Ayarlamaq üçün seçin""Cihazı yenidən formatlamaq tələb oluna bilər. Çıxarmaq üçün toxunun."
- "Fotoları, videoları, musiqiləri və s. saxlamaq üçün"
+ "Fotoların və medianın köçürülməsi üçün""Media fayllarına nəzər salın""%s ilə bağlı problem""%s işləmir""Həll etmək üçün klikləyin""%s zədələnib. Düzəltmək üçün seçin.""Cihazı yenidən formatlamaq tələb oluna bilər. Çıxarmaq üçün toxunun."
- "%s aşkarlandı"
+ "Dəstəklənməyən %s""%s işləmir"
- "Ayarlamaq üçün toxunun."
+ "%s bu cihaz tərəfindən dəstəklənmir. Dəstəklənən formatda ayarlamaq üçün tıklayın.""%s elementinin dəstəklənən formatda ayarlanmasını seçin.""Cihazı yenidən formatlamaq tələb oluna bilər""%s gözlənilmədən çıxarıldı"
@@ -1609,7 +1605,7 @@
"TV""Telefon""Dok spikerlər"
- "Xarici Cihaz"
+ "HDMI""Qulaqlıq""USB""Sistem"
@@ -1642,7 +1638,7 @@
"SIM indi deaktivdir. Davam etmək üçün PUK kodu daxil edin. Əlavə məlumat üçün operatora müraciət edin.""İstədiyiniz PİN kodu daxil edin""İstədiyiniz PIN kodu təsdiqləyin"
- "SIM kiliddən çıxarılır…"
+ "SİM kartın kilidi açılır...""Yanlış PİN kod.""4-dən 8-ə qədər rəqəmi olan PIN yazın.""PUK kod 8 rəqəmli olmalıdır."
@@ -1923,7 +1919,6 @@
"Region seçimi""Dil adını daxil edin""Təklif edilmiş"
- "Təklif edilib""Bütün dillər""Bütün bölgələr""Axtarın"
@@ -1941,19 +1936,18 @@
"Kamera əlçatan deyil""Telefonda davam edin""Mikrofon əlçatan deyil"
- "Play Market əlçatmazdır""Android TV ayarları əlçatan deyil""Planşet ayarları əlçatan deyil""Telefon ayarları əlçatan deyil"
- "Hazırda %1$s cihazınızda buna giriş mümkün deyil. Android TV cihazınızda sınayın."
- "Hazırda %1$s cihazınızda buna giriş mümkün deyil. Planşetinizdə sınayın."
- "Hazırda %1$s cihazınızda buna giriş mümkün deyil. Telefonunuzda sınayın."
+ "%1$s cihazınızda buna giriş mümkün deyil. Android TV cihazınızda sınayın."
+ "%1$s cihazınızda buna giriş mümkün deyil. Planşetinizdə sınayın."
+ "%1$s cihazınızda buna giriş mümkün deyil. Telefonunuzda sınayın."
+ "Hazırda %1$s cihazınızda buna giriş mümkün deyil. Android TV cihazınızda sınayın."
+ "Hazırda %1$s cihazınızda buna giriş mümkün deyil. Planşetinizdə sınayın."
+ "Hazırda %1$s cihazınızda buna giriş mümkün deyil. Telefonunuzda sınayın.""Bu tətbiq əlavə təhlükəsizlik tələb edir. Android TV cihazınızda sınayın.""Bu tətbiq əlavə təhlükəsizlik tələb edir. Planşetinizdə sınayın.""Bu tətbiq əlavə təhlükəsizlik tələb edir. Telefonunuzda sınayın."
- "%1$s cihazınızda buna giriş mümkün deyil. Android TV cihazınızda sınayın."
- "%1$s cihazınızda buna giriş mümkün deyil. Planşetinizdə sınayın."
- "%1$s cihazınızda buna giriş mümkün deyil. Telefonunuzda sınayın.""Bu tətbiq köhnə Android versiyası üçün hazırlanıb və düzgün işləməyə bilər. Güncəlləməni yoxlayın və ya developer ilə əlaqə saxlayın.""Güncəllənmə olmasını yoxlayın""Yeni mesajlarınız var"
@@ -2046,8 +2040,7 @@
"%s tətbiqinin bütün cihaz qeydlərinə girişinə icazə verilsin?""Birdəfəlik girişə icazə verin""İcazə verməyin"
- "Cihaz qeydləri cihazınızda baş verənləri qeyd edir. Tətbiqlər problemləri tapmaq və həll etmək üçün bu qeydlərdən istifadə edə bilər.\n\nBəzi qeydlərdə həssas məlumatlar ola bilər, ona görə də yalnız etibar etdiyiniz tətbiqlərin bütün cihaz qeydlərinə giriş etməsinə icazə verin. \n\nBu tətbiqin bütün cihaz qeydlərinə girişinə icazə verməsəniz, o, hələ də öz qeydlərinə giriş edə bilər. Cihaz istehsalçınız hələ də cihazınızda bəzi qeydlərə və ya məlumatlara giriş edə bilər."
- "Cihaz qeydləri cihazınızda baş verənləri qeyd edir. Tətbiqlər problemləri tapmaq və həll etmək üçün bu qeydlərdən istifadə edə bilər.\n\nBəzi qeydlərdə həssas məlumatlar ola bilər, ona görə də yalnız etibar etdiyiniz tətbiqlərin bütün cihaz qeydlərinə giriş etməsinə icazə verin. \n\nBu tətbiqin bütün cihaz qeydlərinə girişinə icazə verməsəniz, o, hələ də öz qeydlərinə giriş edə bilər. Cihaz istehsalçınız hələ də cihazınızda bəzi qeydlərə və ya məlumatlara giriş edə bilər.\n\nƏtraflı məlumat: g.co/android/devicelogs."
+ "Cihaz qeydləri cihazınızda baş verənləri qeyd edir. Tətbiqlər problemləri tapmaq və həll etmək üçün bu qeydlərdən istifadə edə bilər.\n\nBəzi qeydlərdə həssas məlumatlar ola bilər, ona görə də yalnız etibar etdiyiniz tətbiqlərin bütün cihaz qeydlərinə giriş etməsinə icazə verin. \n\nBu tətbiqin bütün cihaz qeydlərinə girişinə icazə verməsəniz, o, hələ də öz qeydlərinə giriş edə bilər. Cihaz istehsalçınız hələ də cihazınızda bəzi qeydlərə və ya məlumatlara giriş edə bilər. Ətraflı məlumat""Daha göstərməyin""%1$s%2$s tətbiqindən bölmələr göstərmək istəyir""Redaktə edin"
@@ -2060,7 +2053,8 @@
"\"Narahat Etməyin\" rejimi dəyişdirildi""Nəyin blok edildiyini yoxlamaq üçün klikləyin.""Bildiriş ayarlarını nəzərdən keçirin"
- "Android 13-dən başlayaraq quraşdırdığınız tətbiqlər bildiriş göndərmək üçün icazənizi tələb edir. Mövcud tətbiqlər üçün bu icazəni dəyişmək üçün toxunun."
+
+ "Sonra xatırladın""Qapadın""Sistem"
@@ -2288,6 +2282,5 @@
"Aktiv tətbiqləri yoxlayın""%1$s cihazınızdan telefonun kamerasına giriş etmək olmur""%1$s cihazınızdan planşetin kamerasına giriş etmək olmur"
- "Yayım zamanı buna giriş mümkün deyil. Telefonunuzda sınayın."
- "Sistem defoltu"
+ "Sistem dili"
diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml
index 55ba2c46372d396131137071d1ffa5af5115e00a..9e50ccf8cd9dda2ab3a5c6d3446b3ff22c41385d 100644
--- a/core/res/res/values-b+sr+Latn/strings.xml
+++ b/core/res/res/values-b+sr+Latn/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Bez imena>""(Nema broja telefona)"
@@ -28,7 +33,6 @@
"Glasovna pošta""MSISDN1""Problemi sa vezom ili nevažeći MMI kôd."
- "Funkcija nije podržana.""Rad je ograničen samo na brojeve fiksnog biranja.""Ne možete da promenite podešavanja preusmeravanja poziva sa telefona dok ste u romingu.""Usluga je omogućena."
@@ -43,8 +47,8 @@
"PIN kodovi koje ste uneli se ne podudaraju.""Otkucajte PIN koji ima od 4 do 8 brojeva.""Unesite PUK koji se sastoji od 8 cifara ili više."
- "SIM je zaključan PUK-om. Unesite PUK da biste ga otključali."
- "Unesite PUK2 da biste odblokirali SIM."
+ "SIM kartica je zaključana PUK kodom. Unesite PUK kôd da biste je otključali."
+ "Unesite PUK2 da biste odblokirali SIM karticu.""Nije uspelo. Omogućite zaključavanje SIM/RUIM kartice."Imate još %d pokušaj pre nego što se SIM kartica zaključa.
@@ -302,12 +306,12 @@
"pristupi kalendaru""SMS""šalje i pregleda SMS poruke"
- "Fajlovi"
- "pristup fajlovima na uređaju"
- "Muzika i zvuk"
- "pristup muzici i audio sadržaju na uređaju"
- "Slike i video snimci"
- "pristup slikama i video snimcima na uređaju"
+ "Fajlovi i dokumenti"
+ "pristupanje fajlovima i dokumentima na uređaju"
+ "Muzika i drugi audio sadržaj"
+ "pristup audio fajlovima na uređaju"
+ "Slike i video snimci"
+ "pristup slikama i video fajlovima na uređaju""Mikrofon""snima zvuk""Fizičke aktivnosti"
@@ -347,7 +351,7 @@
"prikazuje obaveštenja kao aktivnosti preko celog ekrana na zaključanom uređaju""Omogućava aplikaciji da na zaključanom uređaju prikazuje obaveštenja kao aktivnosti preko celog ekrana.""Instaliranje prečica"
- "da dodaju prečice na početni ekran bez intervencije korisnika."
+ "Omogućava aplikaciji da dodaje prečice na početni ekran bez intervencije korisnika.""deinstaliranje prečica""Omogućava aplikaciji da uklanja prečice sa početnog ekrana bez intervencije korisnika.""preusmeravanje odlaznih poziva"
@@ -583,16 +587,15 @@
"Koristite zaključavanje ekrana""Upotrebite zaključavanje ekrana da biste nastavili""Jako pritisnite senzor"
- "Prepoznavanje otiska prsta nije uspelo. Probajte ponovo."
+ "Nije uspela obrada otiska prsta. Probajte ponovo.""Obrišite senzor za otisak prsta i probajte ponovo""Obrišite senzor i probajte ponovo""Jako pritisnite senzor""Previše sporo ste pomerili prst. Probajte ponovo.""Probajte sa drugim otiskom prsta""Previše je svetlo"
- "Otkriven je pritisak dugmeta za uključivanje""Probajte da prilagodite"
- "Svaki put pomalo promenite položaj prsta"
+ "Svaki put lagano promenite položaj prsta""Otisak prsta nije prepoznat"
@@ -602,17 +605,16 @@
"Lice je potvrđeno. Pritisnite Potvrdi""Hardver za otiske prstiju nije dostupan.""Podešavanje otiska prsta nije uspelo"
- "Vreme za podešavanje otiska prsta je isteklo. Probajte ponovo."
+ "Vremensko ograničenje za otisak prsta je isteklo. Probajte ponovo.""Radnja sa otiskom prsta je otkazana.""Korisnik je otkazao radnju sa otiskom prsta."
- "Previše pokušaja. Koristite zaključavanje ekrana umesto toga."
- "Previše pokušaja. Koristite zaključavanje ekrana umesto toga."
- "Obrađivanje otiska prsta nije uspelo. Probajte ponovo."
+ "Previše pokušaja. Probajte ponovo kasnije."
+ "Previše pokušaja. Senzor za otisak prsta je onemogućen."
+ "Probajte ponovo.""Nije registrovan nijedan otisak prsta.""Ovaj uređaj nema senzor za otisak prsta.""Senzor je privremeno onemogućen.""Ne možete da koristite senzor za otisak prsta. Posetite dobavljača za popravke"
- "Pritisnuto je dugme za uključivanje""Prst %d""Koristite otisak prsta""Koristite otisak prsta ili zaključavanje ekrana"
@@ -633,33 +635,26 @@
"Otključavanje otiskom prsta""Ne možete da koristite senzor za otisak prsta""Posetite dobavljača za popravke."
- "Pravljenje modela lica nije uspelo. Probajte ponovo."
+ "Snimanje lica nije uspelo. Probajte ponovo.""Previše je svetlo. Probajte sa slabijim osvetljenjem."
- "Nema dovoljno svetla"
- "Udaljite telefon"
- "Približite telefon"
- "Pomerite telefon nagore"
- "Pomerite telefon nadole"
- "Pomerite telefon ulevo"
- "Pomerite telefon udesno"
+ "Pretamno je. Probajte sa jačim osvetljenjem."
+ "Udaljite telefon."
+ "Približite telefon."
+ "Pomerite telefon nagore."
+ "Pomerite telefon nadole."
+ "Pomerite telefon ulevo."
+ "Pomerite telefon udesno.""Gledajte pravo u uređaj."
- "Ne vidi se lice. Držite telefon u visini očiju."
+ "Postavite lice direktno ispred telefona""Mnogo se pomerate. Držite telefon mirno.""Ponovo registrujte lice."
- "Lice nije prepoznato. Probajte ponovo."
- "Malo pomerite glavu"
- "Gledajte pravo u telefon"
- "Gledajte pravo u telefon"
- "Gledajte pravo u telefon"
+ "Više ne može da se prepozna lice. Probajte ponovo."
+ "Previše je slično, promenite pozu."
+ "Malo manje pomerite glavu."
+ "Malo manje nagnite glavu."
+ "Malo manje pomerite glavu.""Uklonite sve što vam zaklanja lice.""Očistite gornji deo ekrana, uključujući crnu traku"
-
-
-
-
- "Pravljenje modela lica nije uspelo. Probajte ponovo."
- "Otkrivene su tamne naočari. Lice mora da bude potpuno vidljivo."
- "Otkriveno je prekrivanje lica. Lice mora da bude potpuno vidljivo.""Provera lica nije uspela. Hardver nije dostupan."
@@ -925,14 +920,14 @@
"Probajte ponovo""Otključaj za sve funkcije i podatke""Premašen je najveći dozvoljeni broj pokušaja Otključavanja licem"
- "Nema SIM-a"
- "Nema SIM-a u tabletu."
- "Nema SIM-a u Android TV uređaju."
- "Nema SIM-a u telefonu."
- "Dodajte SIM."
- "SIM nedostaje ili ne može da se pročita. Dodajte SIM."
- "Neupotrebljiv SIM."
- "SIM je trajno deaktiviran.\n Obratite se dobavljaču usluge bežične telefonije da biste dobili drugi SIM."
+ "Nema SIM kartice"
+ "U tabletu nema SIM kartice."
+ "Nema SIM kartice u Android TV uređaju."
+ "U telefon nije umetnuta SIM kartica."
+ "Umetnite SIM karticu."
+ "SIM nedostaje ili ne može da se pročita. Umetnite SIM karticu."
+ "SIM kartica je neupotrebljiva."
+ "SIM kartica je trajno onemogućena.\n Obratite se dobavljaču usluge bežične mreže da biste dobili drugu SIM karticu.""Prethodna pesma""Sledeća pesma""Pauza"
@@ -942,10 +937,10 @@
"Premotaj unapred""Samo hitni pozivi""Mreža je zaključana"
- "SIM je zaključan PUK-om."
+ "SIM kartica je zaključana PUK kodom.""Pogledajte Korisnički vodič ili kontaktirajte Korisničku podršku."
- "SIM je zaključan."
- "Otključava se SIM…"
+ "SIM kartica je zaključana."
+ "Otključavanje SIM kartice…""%1$d puta ste nepravilno nacrtali šablon za otključavanje. \n\nProbajte ponovo za %2$d sekunde/i.""%1$d puta ste pogrešno uneli lozinku. \n\nProbajte ponovo za %2$d sekunde/i.""%1$d puta ste pogrešno uneli PIN. \n\nProbajte ponovo za %2$d sekunde/i."
@@ -1247,9 +1242,10 @@
"Priprema se %1$s.""Pokretanje aplikacija.""Završavanje pokretanja."
+ "Želite li da nastavite sa podešavanjem?""Pritisnuli ste dugme za uključivanje – time obično isključujete ekran.\n\nProbajte lagano da dodirnete dok podešavate otisak prsta."
- "Završite podešavanje isključivanjem ekrana"
- "Isključi"
+ "Isključi ekran"
+ "Nastavi podešavanje""Nastavljate verifikaciju otiska prsta?""Pritisnuli ste dugme za uključivanje – time obično isključujete ekran.\n\nProbajte lagano da dodirnete da biste verifikovali otisak prsta.""Isključi ekran"
@@ -1328,10 +1324,10 @@
"Ovo možete da promenite kasnije u Podešavanja > Aplikacije""Uvek dozvoli""Nikada ne dozvoli"
- "SIM je uklonjen"
- "Mobilna mreža neće biti dostupna dok ne restartujete uz važeći SIM."
+ "SIM kartica je uklonjena"
+ "Mobilna mreža neće biti dostupna dok ne pokrenete sistem ponovo uz umetanje važeće SIM kartice.""Gotovo"
- "SIM je dodat"
+ "SIM kartica je dodata""Restartujte uređaj da biste mogli da pristupite mobilnoj mreži.""Restartuj""Aktivirajte mobilnu uslugu"
@@ -1360,8 +1356,8 @@
"Povezani uređaj se puni. Dodirnite za još opcija.""Otkrivena je analogna dodatna oprema za audio sadržaj""Priključeni uređaj nije kompatibilan sa ovim telefonom. Dodirnite da biste saznali više."
- "Povezano je otklanjanje grešaka sa USB-a"
- "Dodirnite da biste ga isključili"
+ "Otklanjanje grešaka sa USB-a je omogućeno"
+ "Dodirnite da biste isključili otklanjanje grešaka sa USB-a""Izaberite da biste onemogućili otklanjanja grešaka sa USB-a.""Bežično otklanjanje grešaka je povezano""Dodirnite da biste isključili bežično otklanjanje grešaka"
@@ -1402,16 +1398,16 @@
"Dodirnite da biste podesili""Izaberite da biste podesili""Možda morate da reformatirate uređaj. Dodirnite da biste izbacili."
- "Za čuvanje slika, video snimaka, muzike i drugog sadržaja"
+ "Za prenos slika i medija""Pregledajte medijske fajlove""Problem sa: %s""%s ne radi""Dodirnite da biste ispravili""Medij %s je oštećen. Izaberite da ga popravite.""Možda morate da reformatirate uređaj. Dodirnite da biste izbacili."
- "Otkriveno: %s"
+ "Uređaj %s nije podržan""%s ne radi"
- "Dodirnite da biste podesili."
+ "Ovaj uređaj ne podržava ovaj uređaj %s. Dodirnite da biste podesili podržani format.""Izaberite da biste podesili uređaj %s u podržanom formatu.""Možda morate da reformatirate uređaj""Uređaj %s je neočekivano uklonjen"
@@ -1610,7 +1606,7 @@
"TV""Telefon""Zvučnici bazne stanice"
- "Spoljni uređaj"
+ "HDMI""Slušalice""USB""Sistem"
@@ -1643,7 +1639,7 @@
"SIM kartica je sada onemogućena. Unesite PUK kôd da biste nastavili. Za detalje kontaktirajte operatera.""Unesite željeni PIN kôd""Potvrdite željeni PIN kôd"
- "Otključava se SIM…"
+ "Otključavanje SIM kartice…""PIN kôd je netačan.""Unesite PIN koji ima od 4 do 8 brojeva.""PUK kôd treba da ima 8 brojeva."
@@ -1924,7 +1920,6 @@
"Podešavanje regiona""Unesite naziv jezika""Predloženi"
- "Predloženo""Svi jezici""Svi regioni""Pretraži"
@@ -1942,19 +1937,18 @@
"Kamera nije dostupna""Nastavite na telefonu""Mikrofon je nedostupan"
- "Play prodavnica nije dostupna""Podešavanja Android TV-a su nedostupna""Podešavanja tableta su nedostupna""Podešavanja telefona su nedostupna"
- "Ovoj aplikaciji trenutno ne može da se pristupi sa uređaja %1$s. Probajte na Android TV uređaju."
- "Ovoj aplikaciji trenutno ne može da se pristupi sa uređaja %1$s. Probajte na tabletu."
- "Ovoj aplikaciji trenutno ne može da se pristupi sa uređaja %1$s. Probajte na telefonu."
+ "Ovoj aplikaciji ne može da se pristupi sa uređaja %1$s. Probajte na Android TV uređaju."
+ "Ovoj aplikaciji ne može da se pristupi sa uređaja %1$s. Probajte na tabletu."
+ "Ovoj aplikaciji ne može da se pristupi sa uređaja %1$s. Probajte na telefonu."
+ "Ovoj aplikaciji trenutno ne može da se pristupi sa uređaja %1$s. Probajte na Android TV uređaju."
+ "Ovoj aplikaciji trenutno ne može da se pristupi sa uređaja %1$s. Probajte na tabletu."
+ "Ovoj aplikaciji trenutno ne može da se pristupi sa uređaja %1$s. Probajte na telefonu.""Ova aplikacija zahteva dodatnu bezbednost. Probajte na Android TV uređaju.""Ova aplikacija zahteva dodatnu bezbednost. Probajte na tabletu.""Ova aplikacija zahteva dodatnu bezbednost. Probajte na telefonu."
- "Ovoj aplikaciji ne može da se pristupi sa uređaja %1$s. Probajte na Android TV uređaju."
- "Ovoj aplikaciji ne može da se pristupi sa uređaja %1$s. Probajte na tabletu."
- "Ovoj aplikaciji ne može da se pristupi sa uređaja %1$s. Probajte na telefonu.""Ova aplikacija je napravljena za stariju verziju Android-a, pa možda neće raditi ispravno. Potražite ažuriranja ili kontaktirajte programera.""Potraži ažuriranje""Imate nove poruke"
@@ -2047,8 +2041,7 @@
"Želite da dozvolite aplikaciji %s da pristupa svim evidencijama uređaja?""Dozvoli jednokratan pristup""Ne dozvoli"
- "Evidencije uređaja registruju šta se dešava na uređaju. Aplikacije mogu da koriste te evidencije da bi pronašle i rešile probleme.\n\nNeke evidencije mogu da sadrže osetljive informacije, pa pristup svim evidencijama uređaja treba da dozvoljavate samo aplikacijama u koje imate poverenja. \n\nAko ne dozvolite ovoj aplikaciji da pristupa svim evidencijama uređaja, ona i dalje može da pristupa sopstvenim evidencijama. Proizvođač uređaja će možda i dalje moći da pristupa nekim evidencijama ili informacijama na uređaju."
- "Evidencije uređaja registruju šta se dešava na uređaju. Aplikacije mogu da koriste te evidencije da bi pronašle i rešile probleme.\n\nNeke evidencije mogu da sadrže osetljive informacije, pa pristup svim evidencijama uređaja treba da dozvoljavate samo aplikacijama u koje imate poverenja. \n\nAko ne dozvolite ovoj aplikaciji da pristupa svim evidencijama uređaja, ona i dalje može da pristupa sopstvenim evidencijama. Proizvođač uređaja će možda i dalje moći da pristupa nekim evidencijama ili informacijama na uređaju.\n\nSaznajte više na g.co/android/devicelogs."
+ "Evidencije uređaja registruju šta se dešava na uređaju. Aplikacije mogu da koriste te evidencije da bi pronašle i rešile probleme.\n\nNeke evidencije mogu da sadrže osetljive informacije, pa pristup svim evidencijama uređaja treba da dozvoljavate samo aplikacijama u koje imate poverenja. \n\nAko ne dozvolite ovoj aplikaciji da pristupa svim evidencijama uređaja, ona i dalje može da pristupa sopstvenim evidencijama. Proizvođač uređaja će možda i dalje moći da pristupa nekim evidencijama ili informacijama na uređaju. Saznajte više""Ne prikazuj ponovo""Aplikacija %1$s želi da prikazuje isečke iz aplikacije %2$s""Izmeni"
@@ -2061,7 +2054,8 @@
"Režim Ne uznemiravaj je promenjen""Dodirnite da biste proverili šta je blokirano.""Pregledajte podešavanja obaveštenja"
- "Od Android-a 13 aplikacije koje instalirate moraju da imaju dozvolu za slanje obaveštenja. Dodirnite da biste promenili ovu dozvolu za postojeće aplikacije."
+
+ "Podseti me kasnije""Odbaci""Sistem"
@@ -2289,6 +2283,5 @@
"Proverite aktivne aplikacije""Ne može da se pristupi kameri telefona sa %1$s uređaja""Ne može da se pristupi kameri tableta sa %1$s uređaja"
- "Ovom ne možete da pristupate tokom strimovanja. Probajte na telefonu."
- "Podrazumevani sistemski"
+ "Jezik sistema"
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 87cffbfbcca74cf0e9cd5e64d74643b18925281f..f1b36e8fb23b886d513bcf1c42828fe0aab8ef1c 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -21,6 +21,11 @@
"Б"
+ "КБ"
+ "МБ"
+ "ГБ"
+ "Тб"
+ "Пб""%1$s%2$s""<Без назвы>""(Няма нумара тэлефона)"
@@ -28,7 +33,6 @@
"Галасавая пошта""MSISDN1""Праблема падлучэння ці няправільны код MMI."
- "Функцыя не падтрымліваецца.""Выкарыстанне абмежаванае толькі дазволенымі нумарамі.""Немагчыма змяніць налады пераадрасацыі выклікаў з тэлефона, пакуль вы знаходзіцеся ў роўмінгу.""Служба была ўключана."
@@ -43,8 +47,8 @@
"Уведзеныя PIN-коды не супадаюць.""Увядзіце PIN-код, які змяшчае ад 4 да 8 лічбаў.""Увядзіце PUK з 8 лічбаў ці больш."
- "Ваша SIM-карта заблакіравана PUK-кодам. Каб разблакіраваць яе, увядзіце PUK-код."
- "Каб разблакіраваць SIM-карту, увядзіце PUK2."
+ "Ваша SIM-карта заблакавана PUK-кодам. Увядзіце PUK, каб разблакаваць карту."
+ "Увядзіце PUK2 для разблакавання SIM-карты.""Не атрымалася, уключыце блакіроўку SIM/RUIM."У вас засталася %d спроба перад тым, як SIM-карта будзе заблакіравана.
@@ -191,7 +195,7 @@
"Ваша арганізацыя кіруе гэтай прыладай і можа сачыць за сеткавым трафікам. Дакраніцеся для атрымання дадатковай інфармацыі.""Праграмы могуць атрымліваць даныя пра ваша месцазнаходжанне""Каб даведацца больш, звярніцеся да ІТ-адміністратара"
- "Сэрвіс геазаніравання"
+ "Служба вызначэння геаперыметра""Дэтэктар краіны""Служба геалакацыі""Служба GNSS"
@@ -303,12 +307,12 @@
"атрымліваць доступ да вашага календара""SMS""адпраўляць і праглядаць SMS-паведамленні"
- "Файлы"
- "доступ да файлаў на вашай прыладзе"
- "Музыка і аўдыя"
- "доступ да музыкі і аўдыя на вашай прыладзе"
- "Фота і відэа"
- "доступ да фота і відэа на вашай прыладзе"
+ "Файлы і дакументы"
+ "доступ да файлаў і дакументаў на вашай прыладзе"
+ "Музыка і іншае аўдыя"
+ "доступ да аўдыяфайлаў на вашай прыладзе"
+ "Фота і відэа"
+ "доступ да відарысаў і відэафайлаў на вашай прыладзе""Мікрафон""запісваць аўдыя""Фізічная актыўнасць"
@@ -584,14 +588,13 @@
"Ужываць блакіроўку экрана""Каб працягнуць, скарыстайце свой сродак блакіроўкі экрана""Моцна націсніце на сканер"
- "Не ўдалося распазнаць адбітак пальца. Паўтарыце спробу."
+ "Не атрымалася апрацаваць адбітак пальца. Паспрабуйце яшчэ раз.""Ачысціце сканер адбіткаў пальцаў і паўтарыце спробу""Ачысціце сканер і паўтарыце спробу""Моцна націсніце на сканер""Палец рухаўся занадта павольна. Паспрабуйце яшчэ раз.""Паспрабуйце іншы адбітак пальца""Занадта светла"
- "Выяўлена моцнае націсканне""Паспрабуйце наладзіць""Кожны раз крыху мяняйце пазіцыю пальца"
@@ -603,17 +606,16 @@
"Твар распазнаны. Націсніце, каб пацвердзіць""Апаратныя сродкі адбіткаў пальцаў недаступныя.""Не ўдалося захаваць адбітак пальца"
- "Наладжванне адбітка пальца не завершана. Паўтарыце спробу."
+ "Час чакання выйшаў. Паспрабуйце яшчэ раз.""Аперацыя з адбіткамі пальцаў скасавана.""Аўтэнтыфікацыя па адбітках пальцаў скасавана карыстальнікам."
- "Занадта шмат спроб. Скарыстайце блакіроўку экрана."
- "Занадта шмат спроб. Скарыстайце блакіроўку экрана."
- "Не ўдалося апрацаваць адбітак пальца. Паўтарыце спробу."
+ "Занадта шмат спроб. Паспрабуйце яшчэ раз пазней."
+ "Занадта шмат спроб. Сканер адбіткаў пальцаў выключаны."
+ "Паўтарыце спробу.""Адбіткі пальцаў не зарэгістраваны.""На гэтай прыладзе няма сканера адбіткаў пальцаў.""Датчык часова выключаны.""Не ўдалося скарыстаць сканер адбіткаў пальцаў. Звярніцеся ў сэрвісны цэнтр."
- "Націснута кнопка сілкавання""Палец %d""Выкарыстоўваць адбітак пальца""Выкарыстоўваць адбітак пальца ці блакіроўку экрана"
@@ -634,33 +636,26 @@
"Разблакіраванне адбіткам пальца""Не ўдалося скарыстаць сканер адбіткаў пальцаў""Звярніцеся ў сэрвісны цэнтр."
- "Не ўдалося стварыць мадэль твару. Паўтарыце."
+ "Не атрымалася распазнаць твар. Паўтарыце спробу.""Занадта светла. Прыглушыце асвятленне."
- "Недастаткова святла"
- "Перамясціце тэлефон далей"
- "Перамясціце тэлефон бліжэй"
- "Перамясціце тэлефон вышэй"
- "Перамясціце тэлефон ніжэй"
- "Перамясціце тэлефон улева"
- "Перамясціце тэлефон управа"
+ "Занадта цёмна. Павялічце асвятленне."
+ "Перамясціце тэлефон далей."
+ "Перамясціце тэлефон бліжэй."
+ "Перамясціце тэлефон вышэй."
+ "Перамясціце тэлефон ніжэй."
+ "Перамясціце тэлефон улева."
+ "Перамясціце тэлефон управа.""Глядзіце прама на экран прылады."
- "Не відаць твару. Трымайце тэлефон на ўзроўні вачэй."
+ "Трымайце тэлефон прама перад тварам.""Трымайце прыладу нерухома. Трымайце тэлефон роўна.""Паўтарыце рэгістрацыю твару."
- "Твар не распазнаны. Паўтарыце спробу."
- "Крыху змяніце паставу галавы"
- "Глядзіце прама на экран тэлефона"
- "Глядзіце прама на экран тэлефона"
- "Глядзіце прама на экран тэлефона"
+ "Не ўдаецца распазнаць твар. Паўтарыце спробу."
+ "Не бачна розніцы. Памяняйце позу."
+ "Вы занадта моцна павярнулі галаву."
+ "Трымайце галаву прама."
+ "Вы занадта моцна павярнулі галаву.""Прыміце ўсё, што закрывае ваш твар.""Ачысціце ад бруду верхнюю частку экрана, у тым ліку чорную панэль"
-
-
-
-
- "Не ўдалося стварыць мадэль твару. Паўтарыце спробу."
- "Выяўлены цёмныя акуляры. Твар павінен быць цалкам бачным."
- "Нешта засланяе твар. Твар павінен быць цалкам бачным.""Твар не спраўджаны. Абсталяванне недаступнае."
@@ -926,14 +921,14 @@
"Паўтарыце спробу""Разблакіраваць для ўсіх функцый і даных""Перавышана максімальная колькасць спроб разблакоўкі праз распазнаванне твару"
- "Няма SIM-карты"
- "У планшэце няма SIM-карты."
- "У вашай прыладзе Android TV няма SIM-карты."
- "У тэлефоне няма SIM-карты."
- "Дадайце SIM-карту."
- "SIM-карта адсутнічае ці не чытаецца. Дадайце SIM-карту."
- "Непрыдатная для выкарыстання SIM-карта."
- "Ваша SIM-карта адключана назаўсёды.\n Звяжыцеся з аператарам бесправадной сувязі, каб атрымаць іншую SIM-карту."
+ "Няма SIM-карты"
+ "Няма SIM-карты ў планшэце."
+ "У вашай прыладзе Android TV няма SIM-карты."
+ "У тэлефоне няма SIM-карты."
+ "Усталюйце SIM-карту."
+ "SIM-карта адсутнічае ці не чытаецца. Устаўце SIM-карту."
+ "SIM-карту немагчыма выкарыстоўваць"
+ "Ваша SIM-карта была адключана назаўсёды.\n Звяжыцеся з аператарам бесправадной сувязі, каб атрымаць іншую SIM-карту.""Папярэдні трэк""Наступны трэк""Прыпыніць"
@@ -943,10 +938,10 @@
"Перамотка ўперад""Толькі экстранныя выклікі""Сетка заблакаваная"
- "SIM-карта заблакіравана PUK-кодам."
+ "SIM-карта заблакавана PUK-кодам.""Глядзіце \"Інструкцыю для карыстальніка\" або звяжыцеся са службай тэхнiчнай падтрымкі."
- "SIM-карта заблакіравана."
- "Разблакіраванне SIM-карты…"
+ "SIM-карта заблакаваная."
+ "Разблакаванне SIM-карты...""Вы няправільна ўвялі графічны ключ разблакавання пэўную колькасць разоў: %1$d. \n\nПаўтарыце спробу праз наступную колькасць секунд: %2$d.""Вы няправільна ўвялі пароль пэўную колькасць разоў: %1$d. \n\nПаўтарыце спробу праз наступную колькасць секунд: %2$d.""Вы няправільна ўвялі PIN-код пэўную колькасць разоў: %1$d. \n\nПаўтарыце спробу праз наступную колькасць секунд: %2$d."
@@ -1231,7 +1226,7 @@
"Заўсёды паказваць""Праграма %1$s была створана для несумяшчальнай версии АС Android і можа паводзіць сябе неспадзявана. Можа быць даступна абноўленая версія праграмы.""Заўсёды паказваць"
- "Праверыць наяўнасць абнаўленняў"
+ "Праверыць на наяўнасць абнаўленняў""Прыкладанне %1$s (працэс %2$s) парушыла ўласную палітыку StrictMode.""Працэс %1$s парушыў уласную палітыку StrictMode.""Абнаўленне тэлефона…"
@@ -1248,9 +1243,10 @@
"Падрыхтоўка %1$s.""Запуск прыкладанняў.""Завяршэнне загрузкі."
+ "Працягнуць наладжванне?""Вы націснулі кнопку сілкавання. Звычайна ў выніку гэтага дзеяння выключаецца экран.\n\nПадчас наладжвання адбітка пальца злёгку дакраніцеся да кнопкі."
- "Каб завяршыць наладку, выключыце экран"
- "Выключыць"
+ "Выключыць экран"
+ "Працягнуць наладку""Працягнуць спраўджанне адбітка пальца?""Вы націснулі кнопку сілкавання. Звычайна ў выніку гэтага дзеяння выключаецца экран.\n\nКаб спраўдзіць адбітак пальца, злёгку дакраніцеся да кнопкі.""Выключыць экран"
@@ -1329,10 +1325,10 @@
"Пазней гэта можна змянiць у раздзеле \"Налады > Прыкладаннi\"""Заўсёды дазваляць""Ніколі не дазваляць"
- "SIM-карта выдалена"
- "Мабільная сетка будзе недаступная, пакуль вы не ўключыце яе для дзеючай SIM-карты."
+ "SIM-карта выдаленая"
+ "Мабільная сетка будзе недаступная да перазагрузкі з дзеючай SIM-картай.""Гатова"
- "SIM-карта дададзена"
+ "SIM-карта дадазеная""Перазагрузіце прыладу, каб атрымаць доступ да мабільнай сеткі.""Перазапусціць""Уключыць мабільную сувязь"
@@ -1403,16 +1399,16 @@
"Дакраніцеся, каб наладзіць""Выберыце, каб наладзіць""Магчыма, вам спатрэбіцца перафармаціраваць прыладу. Націсніце, каб выняць."
- "Для захоўвання фота, відэа, музыкі і іншага змесціва"
+ "Для перадачы фатаграфій і медыяфайлаў""Пошук медыяфайлаў""Праблема з носьбітам (%s)""%s не працуе""Націсніце, каб выправіць""Носьбіт %s пашкоджаны. Выберыце, каб выправіць.""Магчыма, вам спатрэбіцца перафармаціраваць прыладу. Націсніце, каб выняць."
- "Выяўлены носьбіт \"%s\""
+ "%s не падтрымліваецца""%s не працуе"
- "Дакраніцеся, каб наладзіць ."
+ "Гэта прылада не падтрымлівае носьбіт %s. Дакраніцеся, каб наладзіць яго ў фармаце, які падтрымліваецца.""Выберыце, каб задаць для носьбіта \"%s\" фармат, які падтрымліваецца.""Магчыма, вам спатрэбіцца перафармаціраваць прыладу""Носьбіт %s нечакана выняты"
@@ -1611,7 +1607,7 @@
"ТБ""Тэлефон""Дынамікі станцыi"
- "Знешняя прылада"
+ "HDMI""Навушнікі""USB""Сістэма"
@@ -1644,7 +1640,7 @@
"SIM-карта зараз адключана. Увядзіце PUK-код, каб працягнуць. Звяжыцеся са сваiм аператарам, каб атрымаць дадатковую iнфармацыю.""Увядзіце жаданы PIN-код""Пацвердзіце жадан PIN-код"
- "Разблакіраванне SIM-карты…"
+ "Разблакiроўка SIM-карты...""Няправільны PIN-код.""Увядзіце PIN-код, які змяшчае ад 4 да 8 лічбаў.""PUK-код павінен змяшчаць 8 лічбаў."
@@ -1925,7 +1921,6 @@
"Параметры рэгіёна""Увядзіце назву мовы""Прапанаваныя"
- "Прапанавана""Усе мовы""Усе рэгіёны""Шукаць"
@@ -1943,21 +1938,20 @@
"Камера недаступная""Працягніце на тэлефоне""Мікрафон недаступны"
- "Крама Play недаступная""Налады Android TV недаступныя""Налады планшэта недаступныя""Налады тэлефона недаступныя"
- "Не ўдаецца атрымаць доступ з вашай прылады \"%1$s\". Паспрабуйце скарыстаць прыладу Android TV."
- "Не ўдаецца атрымаць доступ з вашай прылады \"%1$s\". Паспрабуйце скарыстаць планшэт."
- "Не ўдаецца атрымаць доступ з вашай прылады \"%1$s\". Паспрабуйце скарыстаць тэлефон."
+ "Не ўдаецца атрымаць доступ з прылады \"%1$s\". Паспрабуйце скарыстаць прыладу Android TV."
+ "Не ўдаецца атрымаць доступ з прылады \"%1$s\". Паспрабуйце скарыстаць планшэт."
+ "Не ўдаецца атрымаць доступ з прылады \"%1$s\". Паспрабуйце скарыстаць тэлефон."
+ "Не ўдаецца атрымаць доступ з прылады \"%1$s\". Паспрабуйце скарыстаць прыладу Android TV."
+ "Не ўдаецца атрымаць доступ з прылады \"%1$s\". Паспрабуйце скарыстаць планшэт."
+ "Не ўдаецца атрымаць доступ з прылады \"%1$s\". Паспрабуйце скарыстаць тэлефон.""Гэтай праграме патрабуецца дадатковая бяспека. Паспрабуйце скарыстаць прыладу Android TV.""Гэтай праграме патрабуецца дадатковая бяспека. Паспрабуйце скарыстаць планшэт.""Гэтай праграме патрабуецца дадатковая бяспека. Паспрабуйце скарыстаць тэлефон."
- "Не ўдаецца атрымаць доступ з прылады \"%1$s\". Паспрабуйце скарыстаць прыладу Android TV."
- "Не ўдаецца атрымаць доступ з прылады \"%1$s\". Паспрабуйце скарыстаць планшэт."
- "Не ўдаецца атрымаць доступ з прылады \"%1$s\". Паспрабуйце скарыстаць тэлефон.""Гэта праграма была створана для больш старой версіі Android і можа не працаваць належным чынам. Праверце наяўнасць абнаўленняў або звярніцеся да распрацоўшчыка."
- "Праверыць наяўнасць абнаўленняў"
+ "Праверыць на наяўнасць абнаўленняў""У вас ёсць новыя паведамленні""Праглядзець праз праграму для SMS""Функцыі могуць быць абмежаваныя"
@@ -1969,7 +1963,7 @@
"Замацаваць праграму \"%1$s\"""Адмацаваць""Адмацаваць праграму \"%1$s\""
- "Звесткі аб праграме"
+ "Інфармацыя пра праграму""−%1$s""Ідзе запуск дэманстрацыі…""Ідзе скід налад прылады…"
@@ -2048,8 +2042,7 @@
"Дазволіць праграме \"%s\" мець доступ да ўсіх журналаў прылады?""Дазволіць аднаразовы доступ""Не дазваляць"
- "Журналы прылад запісваюць усё, што адбываецца на вашай прыладзе. Праграмы выкарыстоўваюць гэтыя журналы для пошуку і выпраўлення памылак.\n\nУ некаторых журналах можа ўтрымлівацца канфідэнцыяльная інфармацыя, таму давайце доступ да ўсіх журналаў прылады толькі тым праграмам, якім вы давяраеце. \n\nКалі вы не дасце гэтай праграме доступу да ўсіх журналаў прылад, у яе ўсё роўна застанецца доступ да ўласных журналаў. Для вытворцы вашай прылады будуць даступнымі некаторыя журналы і інфармацыя на вашай прыладзе."
- "Журналы прылад запісваюць усё, што адбываецца на вашай прыладзе. Праграмы выкарыстоўваюць гэтыя журналы для пошуку і выпраўлення памылак.\n\nУ некаторых журналах можа ўтрымлівацца канфідэнцыяльная інфармацыя, таму давайце доступ да ўсіх журналаў прылады толькі тым праграмам, якім вы давяраеце. \n\nКалі вы не дасце гэтай праграме доступу да ўсіх журналаў прылад, у яе ўсё роўна застанецца доступ да ўласных журналаў. Для вытворцы вашай прылады будуць даступнымі некаторыя журналы і інфармацыя на вашай прыладзе.\n\nДаведайцеся больш на старонцы g.co/android/devicelogs."
+ "Журналы прылад запісваюць усё, што адбываецца на вашай прыладзе. Праграмы выкарыстоўваюць гэтыя журналы для пошуку і выпраўлення памылак.\n\nУ некаторых журналах можа ўтрымлівацца канфідэнцыяльная інфармацыя, таму давайце доступ да ўсіх журналаў прылады толькі тым праграмам, якім вы давяраеце. \n\nКалі вы не дасце гэтай праграме доступу да ўсіх журналаў прылад, у яе ўсё роўна застанецца доступ да ўласных журналаў. Для вытворцы вашай прылады будуць даступнымі некаторыя журналы і інфармацыя на вашай прыладзе. Даведацца больш""Больш не паказваць""Праграма %1$s запытвае дазвол на паказ зрэзаў праграмы %2$s""Рэдагаваць"
@@ -2062,7 +2055,8 @@
"Зменены налады рэжыму \"Не турбаваць\"""Націсніце, каб паглядзець заблакіраванае.""Праверце налады апавяшчэнняў"
- "Пачынаючы з версіі Android 13 усталяваным вамі праграмам неабходна даваць дазвол на адпраўку апавяшчэнняў. Націсніце, каб змяніць дазвол для існуючых праграм."
+
+ "Нагадаць пазней""Закрыць""Сістэма"
@@ -2290,6 +2284,5 @@
"Праверце актыўныя праграмы""Не ўдалося атрымаць доступ да камеры тэлефона з прылады \"%1$s\"""Не ўдалося атрымаць доступ да камеры планшэта з прылады \"%1$s\""
- "Не ўдаецца атрымаць доступ у час перадачы плынню. Паспрабуйце скарыстаць тэлефон."
- "Стандартная сістэмная налада"
+ "Сістэмная мова"
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index ab415f833f16f9ceb6634324cb3d99ea078d0e74..5beba9700f591d291e377675e090c8e1170e0cfa 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -21,6 +21,11 @@
"Б"
+ "КБ"
+ "МБ"
+ "ГБ"
+ "ТБ"
+ "ПБ""%1$s%2$s""<Без заглавие>""(Няма телефонен номер)"
@@ -28,7 +33,6 @@
"Гласова поща""MSISDN1""Има проблем с връзката или MMI кодът е невалиден."
- "Функцията не се поддържа.""Операцията е ограничена само до фиксираните номера за набиране.""Докато сте в режим на роуминг, настройките за пренасочване на обажданията не могат да се променят от телефона ви.""Услугата бе активирана."
@@ -43,8 +47,8 @@
"Въведените от вас ПИН кодове не са идентични.""Въведете PIN с четири до осем цифри.""Въведете PUK код с поне осем цифри."
- "SIM картата ви е заключена с PUK. Въведете PUK кода, за да я отключите."
- "Въведете PUK2, за да отблокирате SIM картата."
+ "SIM картата ви е заключена с PUK. Въведете PUK кода, за да я отключите."
+ "Въведете PUK2, за да отблокирате SIM картата.""Неуспешно – активирайте заключването на SIM/RUIM картата."Остават ви %d опита, преди SIM картата да бъде заключена.
@@ -301,12 +305,12 @@
"има достъп до календара ви""SMS""да изпраща и преглежда SMS съобщения"
- "Файлове"
- "достъп до файловете на устройството ви"
- "Музика и аудио"
- "достъп до музиката и аудиото на устройството ви"
- "Снимки и видеоклипове"
- "достъп до снимките и видеоклиповете на устройството ви"
+ "Файлове и документи"
+ "достъп до файловете и документите на устройството ви"
+ "Музика и друго аудиосъдържание"
+ "да има достъп до аудиофайловете на устройството ви"
+ "Снимки и видеоклипове"
+ "да има достъп до графичните и видеофайловете на устройството ви""Микрофон""записва звук""Физическа активност"
@@ -323,17 +327,17 @@
"достъп до сензорните данни за жизнените ви показатели""Известия""показване на известията"
- "Извлича съдържанието от прозореца"
- "Инспектира съдържанието на прозорец, с който взаимодействате."
- "Включи изследването чрез докосване"
+ "Извличане на съдържанието от прозореца"
+ "Инспектиране на съдържанието на прозорец, с който взаимодействате."
+ "Включване на изследването чрез докосване""Докосваните елементи ще бъдат изговаряни на глас и екранът може да бъде изследван посредством жестове."
- "Наблюдава въвеждания от вас текст"
+ "Наблюдение на въвеждания от вас текст""Включва лични данни, като например номера на кредитни карти и пароли."
- "Управлява увеличението на дисплея"
- "Управлява нивото на мащаба и позиционирането на дисплея."
+ "Управление на увеличението на дисплея"
+ "Управление на нивото на мащаба и позиционирането на дисплея.""Извършване на жестове""Можете да докосвате, да прекарвате пръст, да събирате пръсти и да извършвате други жестове."
- "Улавя жестове за отпечатък"
+ "Жестове за отпечатък""Може да улавя жестовете, извършени върху сензора за отпечатъци на устройството.""Създаване на екранна снимка""Може да създава екранни снимки."
@@ -582,14 +586,13 @@
"Ползване на заключв. на екрана""Въведете опцията си за заключване на екрана, за да продължите""Натиснете добре върху сензора"
- "Отпечатъкът не може да бъде разпознат. Опитайте отново."
+ "Отпечатъкът не бе обработен. Моля, опитайте отново.""Почистете сензора за отпечатъци и опитайте отново""Почистете сензора и опитайте отново""Натиснете добре върху сензора""Преместихте пръста си твърде бавно. Моля, опитайте отново.""Опитайте с друг отпечатък""Твърде светло е"
- "Установено е натискане на бутона за захранване""Опитайте да коригирате""Всеки път променяйте леко позицията на пръста си"
@@ -601,17 +604,16 @@
"Лицето е удостоверено. Моля, натиснете „Потвърждаване“""Хардуерът за отпечатъци не е налице.""Не може да се настрои отпечатък"
- "Настройването на отпечатък не завърши навреме. Опитайте отново."
+ "Времето за изчакване за отпечатък изтече. Опитайте отново.""Операцията за отпечатък е анулирана.""Операцията за удостоверяване чрез отпечатък бе анулирана от потребителя."
- "Твърде много опити. Вместо това използвайте опция за заключване на екрана."
- "Твърде много опити. Вместо това използвайте опция за заключване на екрана."
- "Отпечатъкът не може да бъде обработен. Опитайте отново."
+ "Твърде много опити. Пробвайте отново по-късно."
+ "Твърде много опити. Сензорът за отпечатъци е деактивиран."
+ "Опитайте отново.""Няма регистрирани отпечатъци.""Това устройство няма сензор за отпечатъци.""Сензорът е временно деактивиран.""Сензорът за отпечатъци не може да се използва. Посетете оторизиран сервиз."
- "Бутонът за захранване е натиснат""Пръст %d""Използване на отпечатък""Използване на отпечатък или опцията за заключване на екрана"
@@ -632,33 +634,26 @@
"Отключване с отпечатък""Сензорът за отпечатъци не може да се използва""Посетете оторизиран сервиз."
- "Моделът на лицето ви не бе създаден. Опитайте пак."
+ "Лицето не бе заснето точно. Опитайте отново.""Твърде светло е. Опитайте при по-слабо осветление."
- "Няма достатъчно светлина"
- "Отдалечете телефона"
- "Доближете телефона"
- "Преместете телефона по-високо"
- "Преместете телефона по-ниско"
- "Преместете телефона наляво"
- "Преместете телефона надясно"
+ "Твърде тъмно е. Опитайте при по-силно осветление."
+ "Отдалечете телефона."
+ "Доближете телефона."
+ "Преместете телефона по-високо."
+ "Преместете телефона по-ниско."
+ "Преместете телефона наляво."
+ "Преместете телефона надясно.""Моля, гледайте точно към устройството си."
- "Лицето ви не се вижда. Дръжте телефона на нивото на очите си."
+ "Позиционирайте лицето си директно пред телефона.""Твърде много движение. Дръжте телефона неподвижно.""Моля, регистрирайте лицето си отново."
- "Лицето не е разпознато. Опитайте отново."
- "Леко променете позицията на главата си"
- "Гледайте директно към телефона си"
- "Гледайте директно към телефона си"
- "Гледайте директно към телефона си"
+ "Лицето не бе разпознато. Опитайте отново."
+ "Позата ви е сходна с предишна. Моля, променете я."
+ "Не завъртайте главата си толкова много."
+ "Не накланяйте главата си толкова много."
+ "Не завъртайте главата си толкова много.""Премахнете всичко, което закрива лицето ви.""Почистете горната част на екрана си, включително черната лента"
-
-
-
-
- "Моделът на лицето ви не бе създаден. Опитайте отново."
- "Изглежда, че носите тъмни очила. То трябва да е напълно видимо."
- "Изглежда, че лицето ви е покрито. То трябва да е напълно видимо.""Лицето не може да се потвърди. Хардуерът не е налице."
@@ -924,14 +919,14 @@
"Опитайте отново""Отключете за достъп до всички функции и данни""Максималният брой опити за отключване с лице е надвишен"
- "Няма SIM карта"
- "В таблета няма SIM карта."
- "В устройството ви с Android TV няма SIM карта."
- "В телефона няма SIM карта."
- "Добавете SIM карта."
- "SIM картата липсва или е нечетлива. Добавете SIM карта."
- "Неизползваема SIM карта."
- "SIM картата ви е деактивирана за постоянно.\nЗа да получите друга, се свържете с доставчика си на безжична услуга."
+ "Няма SIM карта"
+ "В таблета няма SIM карта."
+ "В устройството ви с Android TV няма SIM карта."
+ "В телефона няма SIM карта."
+ "Поставете SIM карта."
+ "SIM картата липсва или е нечетлива. Поставете SIM карта."
+ "Неизползваема SIM карта."
+ "SIM картата ви е деактивирана за постоянно.\nСвържете се с оператора на безжичната си връзка, за да получите друга.""Предишен запис""Следващ запис""Пауза"
@@ -941,10 +936,10 @@
"Превъртане напред""Само спешни обаждания""Мрежата е заключена"
- "SIM картата е заключена с PUK."
+ "SIM картата е заключена с PUK.""Вижте ръководството за потребителя или се свържете с отдела за поддръжка на клиенти."
- "SIM картата е заключена."
- "SIM картата се отключва…"
+ "SIM картата е заключена."
+ "SIM картата се отключва...""Начертахте неправилно фигурата си за отключване %1$d пъти. \n\nОпитайте отново след %2$d секунди.""Въведохте неправилно паролата си %1$d пъти. \n\nОпитайте отново след %2$d секунди.""Въведохте неправилно ПИН кода си %1$d пъти. \n\nОпитайте отново след %2$d секунди."
@@ -1246,9 +1241,10 @@
"%1$s се подготвя.""Приложенията се стартират.""Зареждането завършва."
+ "Искате ли да продължите с настройването?""Натиснахте бутона за включване/изключване – това обикновено изключва екрана.\n\nОпитайте да докоснете леко, докато настройвате отпечатъка си."
- "Изключете екрана за изход от настройката"
- "Изключване"
+ "Изключване на екрана"
+ "Напред с настройв.""Напред с потвърждаването на отпечатъка?""Натиснахте бутона за включване/изключване – това обикновено изключва екрана.\n\nОпитайте да докоснете леко, за да потвърдите отпечатъка си.""Изключване на екрана"
@@ -1327,10 +1323,10 @@
"Можете да промените това по-късно в „Настройки“ > „Приложения“""Винаги да се разрешава""Никога да не се разрешава"
- "SIM картата е премахната"
- "Няма да имате достъп до мобилната мрежа, докато не рестартирате с добавена валидна SIM карта."
+ "SIM картата е премахната"
+ "Няма да имате достъп до мобилната мрежа, докато не рестартирате с поставена валидна SIM карта.""Готово"
- "SIM картата е добавена"
+ "SIM картата е добавена""Рестартирайте устройството си, за да осъществите достъп до мобилната мрежа.""Рестартиране""Активиране на мобилната услуга"
@@ -1401,16 +1397,16 @@
"Докоснете, за да настроите""Изберете, за да настроите""Може да е необходимо да форматирате отново устройството. Докоснете, за да извадите."
- "За съхраняване на снимки, видеоклипове, музика и др."
+ "За прехвърляне на снимки и мултимедия""Преглед на мултимедийните файлове""Проблем с хранилището (%s)""%s не работи""Докоснете за коригиране""Носителят (%s) е повреден. Изберете, за да отстраните проблема.""Може да е необходимо да форматирате отново устройството. Докоснете, за да извадите."
- "Разпознато хранилище (%s)"
+ "%s: Не се поддържа""%s не работи"
- "Докоснете, за да настроите."
+ "Устройството не поддържа този носител (%s). Докоснете, за да настроите в поддържан формат.""Изберете, за да настроите %s в поддържан формат.""Може да е необходимо да форматирате отново устройството""%s: Неочаквано премахване"
@@ -1609,7 +1605,7 @@
"Телевизор""Телефон""Докинг станц.: Високогов."
- "Външно устройство"
+ "HDMI""Слушалки""USB""Система"
@@ -1642,7 +1638,7 @@
"SIM картата вече е деактивирана. Въведете PUK кода, за да продължите. Свържете се с оператора за подробности.""Въведете желания ПИН код""Потвърдете желания ПИН код"
- "SIM картата се отключва…"
+ "SIM картата се отключва…""Неправилен ПИН код.""Въведете ПИН код с четири до осем цифри.""PUK кодът трябва да е с осем цифри."
@@ -1700,8 +1696,8 @@
"Използване на пряк път""Инвертиране на цветовете""Коригиране на цветовете"
- "Работа с една ръка"
- "Доп. затъмн."
+ "Режим за работа с една ръка"
+ "Допълнително затъмняване""Задържахте бутоните за силата на звука. Услугата %1$s е включена.""Задържахте бутоните за силата на звука. Услугата %1$s е изключена.""За да използвате %1$s, натиснете двата бутона за силата на звука и ги задръжте за 3 секунди"
@@ -1923,7 +1919,6 @@
"Предпочитание за региона""Въведете име на език""Предложени"
- "Предложени""Всички езици""Всички региони""Търсене"
@@ -1941,19 +1936,18 @@
"Няма достъп до камерата""Продължете на телефона""Микрофонът не е достъпен"
- "Няма достъп до Google Play Магазин""Настройките за Android TV не са достъпни""Настройките за таблета не са достъпни""Настройките за телефона не са достъпни"
- "Понастоящем не може да се осъществи достъп от устройството ви %1$s. Вместо това опитайте от устройството си с Android TV."
- "Понастоящем не може да се осъществи достъп от устройството ви %1$s. Вместо това опитайте от таблета си."
- "Понастоящем не може да се осъществи достъп от устройството ви %1$s. Вместо това опитайте от телефона си."
+ "Не може да се осъществи достъп от устройството ви %1$s. Вместо това опитайте от устройството си с Android TV."
+ "Не може да се осъществи достъп от устройството ви %1$s. Вместо това опитайте от таблета си."
+ "Не може да се осъществи достъп от устройството ви %1$s. Вместо това опитайте от телефона си."
+ "Понастоящем не може да се осъществи достъп от устройството ви %1$s. Вместо това опитайте от устройството си с Android TV."
+ "Понастоящем не може да се осъществи достъп от устройството ви %1$s. Вместо това опитайте от таблета си."
+ "Понастоящем не може да се осъществи достъп от устройството ви %1$s. Вместо това опитайте от телефона си.""Това приложение изисква допълнителна стъпка за сигурност. Вместо това опитайте от устройството си с Android TV.""Това приложение изисква допълнителна стъпка за сигурност. Вместо това опитайте от таблета си.""Това приложение изисква допълнителна стъпка за сигурност. Вместо това опитайте от телефона си."
- "Не може да се осъществи достъп от устройството ви %1$s. Вместо това опитайте от устройството си с Android TV."
- "Не може да се осъществи достъп от устройството ви %1$s. Вместо това опитайте от таблета си."
- "Не може да се осъществи достъп от устройството ви %1$s. Вместо това опитайте от телефона си.""Това приложение бе създадено за по-стара версия на Android и може да не работи правилно. Опитайте да проверите за актуализации или се свържете с програмиста.""Проверка за актуализация""Имате нови съобщения"
@@ -2046,8 +2040,7 @@
"Да се разреши ли на %s достъп до всички регистрационни файлове за устройството?""Разрешаване на еднократен достъп""Забраняване"
- "В регистрационните файлове за устройството се записва какво се извършва на него. Приложенията могат да използват тези регистрационни файлове, за да откриват и отстраняват проблеми.\n\nНякои регистрационни файлове за устройството може да съдържат поверителна информация, затова разрешавайте достъп до всички тях само на приложения, на които имате доверие. \n\nАко не разрешите на това приложение достъп до всички регистрационни файлове за устройството, то пак може да осъществява достъп до собствените си регистрационни файлове. Производителят на устройството пак може да има достъп до някои регистрационни файлове или информация на устройството ви."
- "В регистрационните файлове за устройството се записва какво се извършва на него. Приложенията могат да използват тези регистрационни файлове, за да откриват и отстраняват проблеми.\n\nНякои регистрационни файлове за устройството може да съдържат поверителна информация, затова разрешавайте достъп до всички тях само на приложения, на които имате доверие. \n\nАко не разрешите на това приложение достъп до всички регистрационни файлове за устройството, то пак може да осъществява достъп до собствените си регистрационни файлове. Производителят на устройството може да има достъп до някои регистрационни файлове или информация на устройството ви.\n\nНаучете повече на адрес g.co/android/devicelogs."
+ "В регистрационните файлове за устройството се записва какво се извършва на него. Приложенията могат да използват тези регистрационни файлове, за да откриват и отстраняват проблеми.\n\nНякои регистрационни файлове за устройството може да съдържат поверителна информация, затова разрешавайте достъп до всички тях само на приложения, на които имате доверие. \n\nАко не разрешите на това приложение достъп до всички регистрационни файлове за устройството, то пак може да осъществява достъп до собствените си регистрационни файлове. Производителят на устройството пак може да има достъп до някои регистрационни файлове или информация на устройството ви. Научете повече""Да не се показва пак""%1$s иска да показва части от %2$s""Редактиране"
@@ -2060,7 +2053,8 @@
"Настройките за „Не безпокойте“ са променени""Докоснете, за да проверите какво е блокирано.""Преглед на настройките за известия"
- "От Android 13 инсталираните от вас приложения трябва да получат разрешението ви, за да изпращат известия. Докоснете, за да промените това разрешение за съществуващите приложения."
+
+ "Напомняне по-късно""Отхвърляне""Система"
@@ -2288,6 +2282,5 @@
"Проверете активните приложения""Няма достъп до камерата на телефона от вашия %1$s""Няма достъп до камерата на таблета от вашия %1$s"
- "До това съдържание не може да се осъществи достъп при поточно предаване. Вместо това опитайте от телефона си."
- "Стандартно за системата"
+ "Системен език"
diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml
index 5e9b2044281894b5638296392f54032a29d84118..8c7dc09f8b73b145bb81702e01b337001907275c 100644
--- a/core/res/res/values-bn/strings.xml
+++ b/core/res/res/values-bn/strings.xml
@@ -21,6 +21,11 @@
"বাইট"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<শিরোনামহীন>""(কোনো ফোন নম্বর নেই)"
@@ -28,7 +33,6 @@
"ভয়েসমেল""MSISDN1""সংযোগ সমস্যা বা অবৈধ MMI কোড৷"
- "ফিচার কাজ করে না।""নির্দিষ্ট নম্বরে ডায়ালযোগ্য হিসেবে প্রক্রিয়াটি সীমিত করা হয়েছে৷""আপনি রোমিংয়ে থাকাকালীন আপনার ফোন থেকে \'কল ফরওয়ার্ড করার সেটিংস\' পরিবর্তন করা যাবে না৷""পরিষেবা সক্ষম করা ছিল৷"
@@ -43,8 +47,8 @@
"আপনার টাইপ করা PINগুলি মিলছে না৷""একটি পিন লিখুন যাতে ৪ থেকে ৮ নম্বর রয়েছে৷""৮ বা তার থেকে বেশি নম্বরেরে একটি PUK লিখুন৷"
- "আপনার সিম PUK লক করা হয়েছে। এটি আনলক করতে PUK কোড টাইপ করুন।"
- "সিম আনব্লক করতে PUK2 টাইপ করুন।"
+ "আপনার সিম কার্ডটি PUK-কোড দিয়ে লক করা রয়েছে৷ এটিকে আনলক করতে PUK কোডটি লিখুন৷"
+ "সিম কার্ড অবরোধ মুক্ত করতে PUK2 লিখুন৷""অসফল, সিম/RUIM লক সক্ষম করুন৷"আপনার কাছে আর %dটি প্রচেষ্টা বাকি রয়েছে এটির পরেই আপনার সিম লক হয়ে যাবে৷
@@ -301,12 +305,12 @@
"আপনার ক্যালেন্ডারে অ্যাক্সেস""SMS""এসএমএসগুলি পাঠাতে এবং দেখতে"
- "ফাইল"
- "আপনার ডিভাইসে ফাইল অ্যাক্সেস করবে"
- "মিউজিক এবং অডিও"
- "আপনার ডিভাইসে মিউজিক এবং অডিও অ্যাক্সেস করুন"
- "ফটো এবং ভিডিও"
- "আপনার ডিভাইসে ফটো এবং ভিডিও অ্যাক্সেস করুন"
+ "ফাইল ও ডকুমেন্ট"
+ "আপনার ডিভাইসে ফাইল ও ডকুমেন্ট অ্যাক্সেস করুন"
+ "মিউজিক ও অন্যান্য অডিও"
+ "আপনার ডিভাইসে অডিও ফাইল অ্যাক্সেস করুন"
+ "ফটো ও ভিডিও"
+ "আপনার ডিভাইসে ছবি ও ভিডিও ফাইল অ্যাক্সেস করুন""মাইক্রোফোন""অডিও রেকর্ড""শারীরিক অ্যাক্টিভিটি"
@@ -323,13 +327,13 @@
"আপনার অত্যাবশ্যক লক্ষণগুলির সম্পর্কে সেন্সর ডেটা অ্যাক্সেস করে""বিজ্ঞপ্তি""বিজ্ঞপ্তি দেখুন"
- "উইন্ডোর কন্টেন্ট ফিরিয়ে আনুন"
- "ব্যবহার করছেন এমন একটি উইন্ডোর কন্টেন্ট পরীক্ষা করে৷"
+ "উইন্ডোর কন্টেন্ট পুনরুদ্ধার করে"
+ "ব্যবহার করছেন এমন একটি উইন্ডোর কন্টেন্ট নিরীক্ষণ করে৷""স্পর্শের মাধ্যমে অন্বেষণ করা চালু করুন"
- "যে আইটেমগুলিতে ট্যাপ করেছেন সেগুলি জোরে বলবে এবং ইঙ্গিতগুলি ব্যবহার করে স্ক্রিন অন্বেষণ করা যাবে৷"
+ "যে আইটেমগুলিতে আলতো চেপেছেন সেগুলি সশব্দে বলবে এবং ইঙ্গিতগুলি ব্যবহার করে স্ক্রিন অন্বেষণ করা যাবে৷""আপনার লেখা পাঠ্যকে নিরীক্ষণ করে""ক্রেডিট কার্ডের নম্বর ও পাসওয়ার্ডগুলির মতো ব্যক্তিগত তথ্য অন্তর্ভুক্ত করে৷"
- "ডিসপ্লে বড়কার ব্যবস্থা নিয়ন্ত্রণ করুন"
+ "প্রদর্শনের বৃহত্তরীকরণ ব্যবস্থা নিয়ন্ত্রণ করুন""প্রদর্শনের জুমের স্তর এবং লোকেশন নির্ধারন নিয়ন্ত্রণ করুন৷""অঙ্গভঙ্গির কাজগুলি সম্পাদন""আলতো চাপ দেওয়া, সোয়াইপ, পিঞ্চ করা এবং অন্যান্য ইঙ্গিতের কাজগুলি সম্পাদন করতে পারবেন৷"
@@ -345,7 +349,7 @@
"অ্যাপ্লিকেশনটিকে স্ট্যাটাস বার প্রসারিত বা সঙ্কুচিত করতে দেয়৷""লক করা ডিভাইসে ফুল স্ক্রিন অ্যাক্টিভিটি হিসাবে বিজ্ঞপ্তি দেখায়""এই অ্যাপকে লক করা ডিভাইসে ফুল স্ক্রিন অ্যাক্টিভিটি হিসাবে বিজ্ঞপ্তি দেখানোর অনুমতি দেয়"
- "শর্টকাট ইনস্টল করা"
+ "শর্টকাটগুলি ইনস্টল করে""একটি অ্যাপ্লিকেশানকে ব্যবহারকারীর হস্তক্ষেপ ছাড়াই হোমস্ক্রীণে শর্টকাটগুলি যোগ করার অনুমতি দেয়৷""শর্টকাটগুলি আনইনস্টল করে""অ্যাপ্লিকেশানটিকে ব্যবহারকারীর হস্তক্ষেপ ছাড়াই হোমস্ক্রীণের শর্টকাটগুলি সরানোর অনুমতি দেয়৷"
@@ -582,14 +586,13 @@
"স্ক্রিন লক ব্যবহার করুন""চালিয়ে যেতে আপনার স্ক্রিন লক ব্যবহার করুন""সেন্সর জোরে প্রেস করুন"
- "ফিঙ্গারপ্রিন্ট শনাক্ত করা যায়নি। আবার চেষ্টা করুন।"
+ "আঙ্গুলের ছাপ প্রক্রিয়া করা যায়নি৷ অনুগ্রহ করে আবার চেষ্টা করুন৷""আঙ্গুলের ছাপের সেন্সর পরিষ্কার করে আবার চেষ্টা করুন""সেন্সর পরিষ্কার করে আবার চেষ্টা করুন""সেন্সর জোরে প্রেস করুন""আঙ্গুল খুব ধীরে সরানো হয়েছে৷ অনুগ্রহ করে আবার চেষ্টা করুন৷""অন্য আঙ্গুলের ছাপ দিয়ে চেষ্টা করুন""অত্যন্ত উজ্জ্বল"
- "পাওয়ার বোতাম প্রেস করার বিষয়টি শনাক্ত করা হয়েছে""অ্যাডজাস্ট করার চেষ্টা করুন""প্রতিবার আঙ্গুলের ছাপ সেটআপ করার সময় আপনার আঙ্গুলের অবস্থান সামান্য পরিবর্তন করুন"
@@ -601,17 +604,16 @@
"ফেস যাচাই করা হয়েছে, \'কনফার্ম করুন\' বোতাম প্রেস করুন""আঙ্গুলের ছাপ নেওয়ার হার্ডওয়্যার অনুপলব্ধ৷""আঙ্গুলের ছাপ সেট-আপ করতে পারছি না"
- "ফিঙ্গারপ্রিন্ট সেট-আপ করার সময় সীমা পেরিয়ে গেছে। আবার চেষ্টা করুন।"
+ "আঙ্গুলের ছাপ নেওয়ার সময়সীমা শেষ হযেছে৷ আবার চেষ্টা করুন৷""আঙ্গুলের ছাপ অপারেশন বাতিল করা হয়েছে৷""ব্যবহারকারী আঙ্গুলের ছাপের অপারেশনটি বাতিল করেছেন।"
- "অনেকবার চেষ্টা করেছেন। পরিবর্তে স্ক্রিন লক ব্যবহার করুন।"
- "অনেকবার চেষ্টা করেছেন। পরিবর্তে স্ক্রিন লক ব্যবহার করুন।"
- "ফিঙ্গারপ্রিন্ট প্রসেস করা যায়নি। আবার চেষ্টা করুন।"
+ "অনেকবার প্রচেষ্টা করা হয়েছে৷ পরে আবার চেষ্টা করুন৷"
+ "বহুবার চেষ্টা করেছেন। আঙ্গুলের ছাপ নেওয়ার সেন্সর অক্ষম করা হয়েছে।"
+ "আবার চেষ্টা করুন৷""কোনও আঙ্গুলের ছাপ নথিভুক্ত করা হয়নি।""এই ডিভাইসে আঙ্গুলের ছাপ নেওয়ার সেন্সর নেই।""সেন্সর অস্থায়ীভাবে বন্ধ করা আছে।""আঙ্গুলের ছাপের সেন্সর ব্যবহার করা যাচ্ছে না। একজন মেরামতি মিস্ত্রির কাছে যান"
- "পাওয়ার বোতাম প্রেস করা হয়েছে""আঙ্গুল %d""আঙ্গুলের ছাপ ব্যবহার করুন""আঙ্গুলের ছাপ অথবা স্ক্রিন লক ব্যবহার করুন"
@@ -632,33 +634,26 @@
"ফিঙ্গারপ্রিন্ট আনলক""আঙ্গুলের ছাপের সেন্সর ব্যবহার করা যাচ্ছে না""একজন মেরামতি মিস্ত্রির কাছে যান।"
- "ফেস মডেল তৈরি করা যাচ্ছে না। আবার চেষ্টা করুন।"
+ "মুখের সঠিক ডেটা পাওয়া যায়নি। আবার চেষ্টা করুন।""খুব উজ্জ্বল। আলো কমিয়ে চেষ্টা করে দেখুন।"
- "পর্যাপ্ত আলো নেই"
- "ফোন আরও দূরে নিয়ে যান"
- "ফোন আরও কাছে নিয়ে আসুন"
- "ফোন আরও উঁচুতে তুলুন"
- "ফোন নিচে নামান"
- "ফোন আপনার বাঁদিকে সরান"
- "ফোন আপনার ডানদিকে সরান"
+ "খুব অন্ধকার। আরও উজ্জ্বল আলো ব্যবহার করে দেখুন।"
+ "ফোনটি আরও দূরে নিয়ে যান।"
+ "ফোনটি আরও কাছে নিয়ে আসুন।"
+ "ফোন উঁচুতে তুলুন।"
+ "ফোন নিচে নামান।"
+ "ফোনটি বাঁদিকে সরান।"
+ "ফোনটি ডানদিকে সরান।""সরাসরি ডিভাইসের দিকে তাকান।"
- "আপনার মুখ দেখা যাচ্ছে না। ফোন আপনার চোখের সোজাসুজি ধরুন।"
+ "আপনার মুখ সরাসরি ফোনের সামনে রাখুন।""খুব বেশি নড়ছে। ফোনটি যাতে না কাঁপে সেইভাবে ধরুন।""আপনার মুখের ছবি আবার নথিভুক্ত করুন।"
- "মুখ শনাক্ত করা যাচ্ছে না। আবার চেষ্টা করুন।"
- "আপনার মাথার পজিশন সামান্য পরিবর্তন করুন"
- "আপনার ফোনের দিকে আরও সরাসরি তাকান"
- "আপনার ফোনের দিকে আরও সরাসরি তাকান"
- "আপনার ফোনের দিকে আরও সরাসরি তাকান"
- "আপনার মুখকে আড়াল করে এমন সব কিছু সরিয়ে দিন।"
+ "আর মুখ চিনতে পারবেন না। আবার চেষ্টা করুন।"
+ "একই ধরনের দেখতে, একটু অন্যদিকে ঘুরে দাঁড়ান।"
+ "আপনার মাথাটি নিচের দিকে সামান্য নামান।"
+ "আপনার মাথা একটু কম ঝোঁকান।"
+ "আপনার মাথাটি সামান্য ঘোরান।"
+ "আপনার ফেসকে আড়াল করে এমন সব কিছু সরিয়ে দিন।""ব্ল্যাক বার সহ আপনার স্ক্রিনের উপরের অংশ মুছে ফেলুন"
-
-
-
-
- "ফেস মডেল তৈরি করা যাচ্ছে না। আবার চেষ্টা করুন।"
- "কালো চশমা শনাক্ত করা হয়েছে। আপনার মুখ পুরোপুরি দৃশ্যমান হতে হবে।"
- "মুখে মাস্ক শনাক্ত করা হয়েছে। আপনার মুখ পুরোপুরি দৃশ্যমান হতে হবে।""ফেস যাচাই করা যায়নি। হার্ডওয়্যার উপলভ্য নেই।"
@@ -924,14 +919,14 @@
"আবার চেষ্টা করুন""সমস্ত বৈশিষ্ট্য এবং ডেটার জন্য আনলক করুন""ফেস আনলক ফিচারের সাহায্যে আনলকের চেষ্টা সর্বোচ্চ সীমা পেরিয়ে গেছে"
- "কোনও সিম নেই"
- "ট্যাবলেটে কোনও সিম নেই।"
- "আপনার Android TV ডিভাইসে কোনও সিম নেই।"
- "ফোনে কোনও সিম নেই।"
- "সিম যোগ করুন।"
- "সিম নেই অথবা সেটি রিড করা যাচ্ছে না। সিম যোগ করুন।"
- "ব্যবহারযোগ্য নয় এমন সিম।"
- "আপনার সিম স্থায়ীভাবে বন্ধ করে দেওয়া হয়েছে।\n অন্য একটি সিমের জন্য আপনার ওয়্যারলেস পরিষেবা প্রদানকারীর সাথে যোগাযোগ করুন।"
+ "কোনো সিম কার্ড নেই"
+ "ট্যাবলেটের মধ্যে কোনো সিম কার্ড নেই৷"
+ "আপনার Android TV ডিভাইসে কোনও সিম কার্ড নেই।"
+ "ফোনের মধ্যে কোনো সিম কার্ড নেই৷"
+ "একটি সিম কার্ড ঢোকান৷"
+ "সিম কার্ডটি অনুপস্থিত বা পাঠযোগ্য নয়৷ একটি সিম কার্ড ঢোকান৷"
+ "ব্যবহার করার অযোগ্য সিম কার্ড৷"
+ "আপনার সিম কার্ড স্থায়ীভাবে অক্ষম করা হয়েছে৷\n অন্য একটি সিম কার্ড পেতে আপনার ওয়্যারলেস পরিষেবা প্রদানকারীর সাথে যোগাযোগ করুন৷""পূর্ববর্তী ট্র্যাক""পরবর্তী ট্র্যাক""বিরাম দিন"
@@ -941,10 +936,10 @@
"দ্রুত সামনে এগোন""শুধুমাত্র জরুরি কল""নেটওয়ার্ক লক হয়েছে"
- "সিম PUK লক করা হয়েছে।"
+ "সিম কার্ডটি PUK কোড দিয়ে লক করা আছে৷""ব্যবহারকারীর নির্দেশিকা দেখুন বা গ্রাহক পরিষেবা কেন্দ্রে যোগাযোগ করুন৷"
- "সিম লক করা হয়েছে।"
- "সিম আনলক করা হচ্ছে…"
+ "সিম কার্ড লক করা আছে৷"
+ "সিম কার্ড আনলক করা হচ্ছে…""আপনি আপনার আনলকের প্যাটার্ন আঁকার ক্ষেত্রে %1$d বার ভুল করেছেন৷ \n\n%2$d সেকেন্ডের মধ্যে আবার চেষ্টা করুন৷""আপনি আপনার পাসওয়ার্ড %1$d বার ভুল টাইপ করেছেন৷ \n\n%2$d সেকেন্ডের মধ্যে আবার চেষ্টা করুন৷""আপনি আপনার পিন টাইপ করতে %1$d বার ভুল করেছেন৷ \n\n%2$d সেকেন্ডের মধ্যে আবার চেষ্টা করুন৷"
@@ -1069,7 +1064,7 @@
"Shift+""Sym+""Function+"
- "space"
+ "স্পেস""enter""মুছুন""সার্চ"
@@ -1246,9 +1241,10 @@
"%1$s প্রস্তুত করা হচ্ছে৷""অ্যাপ্লিকেশানগুলি শুরু করা হচ্ছে৷""চালু করা সম্পূর্ণ হচ্ছে৷"
+ "সেট-আপ করা চালিয়ে যাবেন?""আপনি \'পাওয়ার\' বোতাম প্রেস করেছেন — এর ফলে সাধারণত স্ক্রিন বন্ধ হয়ে যায়।\n\nআঙ্গুলের ছাপ সেট-আপ করার সময় হালকাভাবে ট্যাপ করে দেখুন।"
- "সেট-আপ সম্পূর্ণ করতে, স্ক্রিন বন্ধ করুন"
- "বন্ধ করুন"
+ "স্ক্রিন বন্ধ করুন"
+ "সেট-আপ চালিয়ে যান""আঙ্গুলের ছাপ যাচাই করা চালিয়ে যাবেন?""আপনি \'পাওয়ার\' বোতাম প্রেস করেছেন — এর ফলে সাধারণত স্ক্রিন বন্ধ হয়ে যায়।\n\nআঙ্গুলের ছাপ যাচাই করতে হালকাভাবে ট্যাপ করে দেখুন।""স্ক্রিন বন্ধ করুন"
@@ -1327,10 +1323,10 @@
"আপনি সেটিংস > অ্যাপ্লিকেশানে এটি পরে পরিবর্তন করতে পারেন""সর্বদা অনুমতি দিন""কখনো অনুমতি দেবেন না"
- "সিম সরানো হয়েছে"
- "আপনি সঠিক সিম লাগিয়ে ডিভাইস রিস্টার্ট না করলে মোবাইল নেটওয়ার্ক উপলভ্য হবে না।"
+ "সিম কার্ড সরানো হয়েছে"
+ "আপনি যতক্ষণ না পর্যন্ত একটি বৈধ সিম ঢুকিয়ে পুনর্সূচনা করছেন ততক্ষণ মোবাইল নেটওয়ার্ক অনুপলব্ধ থাকবে৷""সম্পন্ন হয়েছে"
- "সিম যোগ করা হয়েছে"
+ "সিম কার্ড যোগ করা হয়েছে""মোবাইল নেটওয়ার্ক অ্যাক্সেস করতে আপনার ডিভাইসটি পুনর্সূচনা করুন৷""রিস্টার্ট করুন""মোবাইল পরিষেবা চালু করুন"
@@ -1401,16 +1397,16 @@
"সেট-আপ করতে ট্যাপ করুন""সেটআপ করতে বেছে নিন""আপনাকে ডিভাইসটি আবার ফর্ম্যাট করতে হতে পারে। বের করে নিতে ট্যাপ করুন।"
- "ফটো, ভিডিও, মিউজিক ও আরও অনেক কিছু সেভ করার জন্য"
+ "ফটো এবং মিডিয়া ট্রান্সফার""মিডিয়া ফাইল ব্রাউজ করুন""%s নিয়ে সমস্যা আছে""%s কাজ করছে না""ঠিক করতে ট্যাপ করুন""%s ত্রুটিপূর্ণ। মেরামত করতে বেছে নিন।""আপনাকে ডিভাইসটি আবার ফর্ম্যাট করতে হতে পারে। বের করে নিতে ট্যাপ করুন।"
- "%s শনাক্ত করা হয়েছে"
+ "%s অসমর্থিত""%s কাজ করছে না"
- "সেট-আপ করতে ট্যাপ করুন ।"
+ "এই ডিভাইসটি %s সমর্থন করে না। কোনো সমর্থিত ফর্ম্যাটে সেট-আপ করতে আলতো চাপুন।""%s সঠিক ফর্ম্যাটে সেটআপ করতে বেছে নিন।""আপনাকে ডিভাইসটি আবার ফর্ম্যাট করতে হতে পারে""%s অপ্রত্যাশিতভাবে মুছে ফেলা হয়েছে"
@@ -1609,7 +1605,7 @@
"টিভি""ফোন""ডক স্পিকার"
- "এক্সটার্নাল ডিভাইস"
+ "HDMI""হেডফোন""USB""সিস্টেম"
@@ -1642,7 +1638,7 @@
"সিম এখন অক্ষম করা হয়েছে৷ অবিরত থাকতে PUK কোডটি লিখুন৷ বিশদ বিবরণের জন্য ক্যারিয়ারের সাথে যোগাযোগ করুন৷""কাঙ্ক্ষিত পিন কোড লিখুন""কাঙ্ক্ষিত পিন কোড নিশ্চিত করুন"
- "সিম আনলক করা হচ্ছে…"
+ "সিম কার্ড আনলক করা হচ্ছে…""ভুল পিন কোড৷""৪ থেকে ৮টি সংখ্যার একটি পিন লিখুন৷""PUK কোডকে ৮ সংখ্যার হতে হবে৷"
@@ -1923,7 +1919,6 @@
"পছন্দের অঞ্চল""ভাষার নাম লিখুন""প্রস্তাবিত"
- "সাজেস্ট করা অঞ্চল""সকল ভাষা""সমস্ত অঞ্চল""সার্চ"
@@ -1941,19 +1936,18 @@
"ক্যামেরা উপলভ্য নেই""ফোনে চালিয়ে যান""মাইক্রোফোন উপলভ্য নেই"
- "Play Store উপলভ্য নেই""Android TV-এর সেটিংস উপলভ্য নেই""ট্যাবলেটের সেটিংস উপলভ্য নেই""ফোনের সেটিংস উপলভ্য নেই"
- "এই সময়ে আপনার %1$s-এ এটি অ্যাক্সেস করা যাবে না। পরিবর্তে আপনার Android TV ডিভাইস ব্যবহার করে দেখুন।"
- "এই সময়ে আপনার %1$s-এ এটি অ্যাক্সেস করা যাবে না। পরিবর্তে আপনার ট্যাবলেটে ব্যবহার করে দেখুন।"
- "এই সময়ে আপনার %1$s-এ এটি অ্যাক্সেস করা যাবে না। পরিবর্তে আপনার ফোনে ব্যবহার করে দেখুন।"
+ "এটি আপনার %1$s-এ অ্যাক্সেস করা যাবে না। পরিবর্তে আপনার Android TV ডিভাইস ব্যবহার করে দেখুন।"
+ "এটি আপনার %1$s-এ অ্যাক্সেস করা যাবে না। পরিবর্তে আপনার ট্যাবলেটে ব্যবহার করে দেখুন।"
+ "এটি আপনার %1$s-এ অ্যাক্সেস করা যাবে না। পরিবর্তে আপনার ফোনে ব্যবহার করে দেখুন।"
+ "এই সময়ে আপনার %1$s-এ এটি অ্যাক্সেস করা যাবে না। পরিবর্তে আপনার Android TV ডিভাইস ব্যবহার করে দেখুন।"
+ "এই সময়ে আপনার %1$s-এ এটি অ্যাক্সেস করা যাবে না। পরিবর্তে আপনার ট্যাবলেটে ব্যবহার করে দেখুন।"
+ "এই সময়ে আপনার %1$s-এ এটি অ্যাক্সেস করা যাবে না। পরিবর্তে আপনার ফোনে ব্যবহার করে দেখুন।""এই অ্যাপ অতিরিক্ত নিরাপত্তার জন্য অনুরোধ করছে। পরিবর্তে আপনার Android TV ডিভাইস ব্যবহার করে দেখুন।""এই অ্যাপ অতিরিক্ত নিরাপত্তার জন্য অনুরোধ করছে। পরিবর্তে আপনার ট্যাবলেটে ব্যবহার করে দেখুন।""এই অ্যাপ অতিরিক্ত নিরাপত্তার জন্য অনুরোধ করছে। পরিবর্তে আপনার ফোনে ব্যবহার করে দেখুন।"
- "আপনার %1$s-এ এটি অ্যাক্সেস করা যাবে না। পরিবর্তে আপনার Android TV ডিভাইসে ব্যবহার করে দেখুন।"
- "আপনার %1$s-এ এটি অ্যাক্সেস করা যাবে না। পরিবর্তে আপনার ট্যাবলেটে ব্যবহার করে দেখুন।"
- "আপনার %1$s-এ এটি অ্যাক্সেস করা যাবে না। পরিবর্তে আপনার ফোনে ব্যবহার করে দেখুন।""এই অ্যাপটি Android এর একটি পুরনো ভার্সনের জন্য তৈরি করা হয়েছিল, তাই এখানে সেটি ঠিকমতো কাজ নাও করতে পারে। আপডেট পাওয়া যাচ্ছে কিনা দেখুন বা ডেভেলপারের সাথে যোগাযোগ করুন।""আপডেট পাওয়া যাচ্ছে কিনা দেখুন""আপনার নতুন মেসেজ আছে"
@@ -2046,8 +2040,7 @@
"%s অ্যাপকে ডিভাইসের সব লগ অ্যাক্সেসের অনুমতি দিতে চান?""এককালীন অ্যাক্সেসের অনুমতি দিন""অনুমতি দেবেন না"
- "ডিভাইস লগে আপনার ডিভাইসে করা অ্যাক্টিভিটি রেকর্ড করা হয়। অ্যাপ সমস্যা খুঁজে তা সমাধান করতে এইসব লগ ব্যবহার করতে পারে।\n\nকিছু লগে সংবেদনশীল তথ্য থাকতে পারে, তাই বিশ্বাস করেন শুধুমাত্র এমন অ্যাপকেই সব ডিভাইসের লগ অ্যাক্সেসের অনুমতি দিন। \n\nআপনি এই অ্যাপকে ডিভাইসের সব লগ অ্যাক্সেস করার অনুমতি না দিলেও, এটি নিজের লগ অ্যাক্সেস করতে পারবে। ডিভাইস প্রস্তুতকারকও আপনার ডিভাইসের কিছু লগ বা তথ্য হয়ত অ্যাক্সেস করতে পারবে।"
- "ডিভাইস লগে আপনার ডিভাইসে করা অ্যাক্টিভিটি রেকর্ড করা হয়। অ্যাপ, সমস্যা খুঁজে তা সমাধান করতে এইসব লগ ব্যবহার করতে পারে।\n\nকিছু লগে সংবেদনশীল তথ্য থাকতে পারে, তাই বিশ্বাস করেন শুধুমাত্র এমন অ্যাপকেই ডিভাইসের সব লগ অ্যাক্সেসের অনুমতি দিন। \n\nআপনি এই অ্যাপকে ডিভাইসের সব লগ অ্যাক্সেস করার অনুমতি না দিলেও, এটি নিজের লগ অ্যাক্সেস করতে পারবে। ডিভাইস প্রস্তুতকারক এখনও আপনার ডিভাইসের কিছু লগ বা তথ্য হয়ত অ্যাক্সেস করতে পারবে।\n\ng.co/android/devicelogs লিঙ্ক থেকে আরও জানুন।"
+ "ডিভাইস লগে আপনার ডিভাইসে করা অ্যাক্টিভিটি রেকর্ড করা হয়। বিভিন্ন সমস্যা খুঁজে তা সমাধান করতে, অ্যাপ এইসব লগ ব্যবহার করতে পারে।\n\nকিছু লগে সংবেদনশীল তথ্য থাকতে পারে, তাই বিশ্বাস করেন শুধুমাত্র এমন অ্যাপকেই সব ডিভাইসের লগ অ্যাক্সেসের অনুমতি দিন। \n\nআপনি এই অ্যাপকে ডিভাইসের সব লগ অ্যাক্সেস করার অনুমতি না দিলেও, এটি নিজে লগ অ্যাক্সেস করতে পারবে। ডিভাইস প্রস্তুতকারকও আপনার ডিভাইসের কিছু লগ বা তথ্য হয়ত অ্যাক্সেস করতে পারবে। আরও জানুন""আর দেখতে চাই না""%1$s অ্যাপটি %2$s এর অংশ দেখাতে চায়""এডিট করুন"
@@ -2060,7 +2053,8 @@
"\'বিরক্ত করবে না\' মোডের সেটিং বদলে গেছে""কী কী ব্লক করা আছে তা দেখতে ট্যাপ করুন।""বিজ্ঞপ্তির সেটিংস পর্যালোচনা করুন"
- "Android 13 থেকে শুরু করে, বিজ্ঞপ্তি পাঠানোর জন্য আপনার ইনস্টল করা অ্যাপকে অনুমতি নিতে হবে। বর্তমান অ্যাপের জন্য এই অনুমতি পরিবর্তন করতে ট্যাপ করুন।"
+
+ "পরে মনে করিয়ে দিও""বাতিল করুন""সিস্টেম"
@@ -2288,6 +2282,5 @@
"অ্যাক্টিভ অ্যাপ চেক করুন""আপনার %1$s থেকে ফোনের ক্যামেরা অ্যাক্সেস করা যাচ্ছে না""আপনার %1$s থেকে ট্যাবলেটের ক্যামেরা অ্যাক্সেস করা যাচ্ছে না"
- "স্ট্রিমিংয়ের সময় এটি অ্যাক্সেস করা যাবে না। পরিবর্তে আপনার ফোনে ব্যবহার করে দেখুন।"
- "সিস্টেম ডিফল্ট"
+ "সিস্টেমের ভাষা"
diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml
index 0a103a22d272c855b9cd2fe346f2e83517502ae5..cc96e81889431e46418a4787e06695c4d94ad0d2 100644
--- a/core/res/res/values-bs/strings.xml
+++ b/core/res/res/values-bs/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Bez naslova>""(Nema broja telefona)"
@@ -28,7 +33,6 @@
"Govorna pošta""MSISDN1""Problem sa povezivanjem ili nevažeći MMI kôd."
- "Funkcija nije podržana.""Operacija je ograničena samo na brojeve fiksnog biranja.""Nije moguće promijeniti postavke prosljeđivanja poziva s vašeg telefona dok ste u romingu.""Usluga je omogućena."
@@ -43,8 +47,8 @@
"PIN-ovi koje ste unijeli se ne podudaraju.""Unesite PIN koji sadrži 4 do 8 brojeva.""Unesite PUK koji sadrži 8 ili više brojeva."
- "SIM je zaključan PUK-om. Unesite PUK kôd da ga otključate."
- "Upišite PUK2 da deblokirate SIM."
+ "SIM kartica je zaključana PUK-om. Unesite PUK kôd za otključavanje kartice."
+ "Unesite PUK2 kako biste deblokirali SIM karticu.""Nije uspjelo. Prvo omogućite SIM/RUIM zaključavanje."Imate još %d pokušaj prije nego se SIM kartica zaključa.
@@ -231,7 +235,7 @@
"Telefon će se isključiti.""Želite li ugasiti telefon?""Ponovo pokreni uređaj u sigurnom načinu rada"
- "Želite li ponovo pokrenuti uređaj u sigurnom načinu rada? To će onemogućiti sve aplikacije trećih strana koje ste instalirali. Obnovit će se kada još jednom ponovo pokrenete uređaj."
+ "Želite li pokrenuti uređaj u sigurnom načinu rada? To će onemogućiti sve aplikacije trećih strana koje ste instalirali. One će biti obnovljene kada ponovo pokrenete uređaj.""Nedavni zadaci""Nema nedavno pokrenutih aplikacija.""Opcije tableta"
@@ -302,12 +306,12 @@
"pristupa vašem kalendaru""SMS""šalje i pregleda SMS poruke"
- "Fajlovi"
- "pristup fajlovima na vašem uređaju"
- "Muzika i audio"
- "pristupanje muzici i zvuku na vašem uređaju"
- "Fotografije i videozapisi"
- "pristupanje fotografijama i videozapisima na vašem uređaju"
+ "Fajlovi i dokumenti"
+ "pristup datotekama i dokumentima na vašem uređaju"
+ "Muzika i drugi zvučni zapisi"
+ "pristup audio fajlovima na vašem uređaju"
+ "Fotografije i videozapisi"
+ "pristup fajlovima slika i videozapisa na vašem uređaju""Mikrofon""snima zvuk""Fizička aktivnost"
@@ -324,20 +328,20 @@
"pristupa podacima senzora o vašim vitalnim funkcijama""Obavještenja""prikaz obavještenja"
- "preuzimati sadržaj prozora"
+ "preuzima sadržaj prozora""Pregleda sadržaj prozora koji trenutno koristite."
- "uključiti Istraživanje dodirom"
- "Stavke koje dodirnete će se izgovarati naglas i moći ćete istraživati ekran pomoću pokreta."
- "pratiti tekst koji unosite"
+ "uključi opciju Istraživanje dodirom"
+ "Stavke koje dodirnete bit će izgovorene naglas, a ekran možete istraživati koristeći pokrete."
+ "prati tekst koji unosite""Obuhvata lične podatke kao što su brojevi kreditnih kartica i lozinke."
- "kontrolirati uvećavanje prikaza na ekranu"
- "Kontrolira nivo i položaj zumiranja na ekranu."
- "izvoditi pokrete"
+ "kontrolira uvećavanje prikaza na ekranu"
+ "Kontrolira stepen uvećanja prikaza na ekranu i podešavanje položaja."
+ "izvodi pokrete""Može dodirivati, prevlačiti, hvatati prstima i praviti druge pokrete."
- "prepoznavati pokrete otiska prsta"
- "Može zabilježiti pokrete na senzoru za otisak prsta uređaja."
- "praviti snimke ekrana"
- "Može napraviti snimak ekrana."
+ "prepoznaje pokrete za otisak prsta"
+ "Moguće je zabilježiti pokrete na senzoru za otisak prsta uređaja."
+ "pravi snimke ekrana"
+ "Moguće je snimiti ekran.""onemogućavanje ili mijenjanje statusne trake""Dozvoljava aplikaciji onemogućavanje statusne trake ili dodavanje i uklanjanje sistemskih ikona.""funkcioniranje u vidu statusne trake"
@@ -583,16 +587,15 @@
"Koristi zaključavanje ekrana""Unesite zaključavanje ekrana da nastavite""Čvrsto pritisnite senzor"
- "Nije moguće prepoznati otisak prsta. Pokušajte ponovo."
+ "Obrada otiska prsta nije uspjela. Pokušajte ponovo.""Očistite senzor za otisak prsta i pokušajte ponovo""Očistite senzor i pokušajte ponovo""Čvrsto pritisnite senzor""Presporo ste pomjerili prst. Pokušajte ponovo.""Pokušajte s drugim otiskom prsta""Presvijetlo"
- "Otkriveno je pritiskanje dugmeta za uključivanje""Pokušajte podesiti"
- "Svaki put pomalo promijenite položaj prsta"
+ "Svaki put blago promijenite položaj prsta""Otisak prsta nije prepoznat"
@@ -602,17 +605,16 @@
"Lice je provjereno, pritisnite dugme za potvrdu""Hardver za otisak prsta nije dostupan.""Nije moguće postaviti otisak prsta"
- "Vrijeme za postavljanje otiska prsta je isteklo. Pokušajte ponovo."
+ "Vrijeme za prepoznavanje otiska prsta je isteklo. Pokušajte ponovo.""Radnja s otiskom prsta je otkazana.""Korisnik je otkazao radnju s otiskom prsta."
- "Previše pokušaja. Umjesto toga koristite zaključavanje ekrana."
- "Previše pokušaja. Umjesto toga koristite zaključavanje ekrana."
- "Nije moguće obraditi otisak prsta. Pokušajte ponovo."
+ "Previše pokušaja. Pokušajte ponovo kasnije."
+ "Previše pokušaja. Senzor za otisak prsta je onemogućen."
+ "Pokušajte ponovo.""Nije prijavljen nijedan otisak prsta.""Ovaj uređaj nema senzor za otisak prsta.""Senzor je privremeno onemogućen.""Nije moguće koristiti senzor za otisak prsta. Posjetite pružaoca usluga za popravke"
- "Dugme za uključivanje je pritisnuto""Prst %d""Koristi otisak prsta""Koristi otisak prsta ili zaključavanje ekrana"
@@ -633,33 +635,26 @@
"Otključavanje otiskom prsta""Nije moguće koristiti senzor za otisak prsta""Posjetite pružaoca usluga za popravke."
- "Nije moguće kreirati model lica. Pokušajte ponovo."
+ "Lice nije snimljeno precizno. Pokušajte ponovo.""Previše svijetlo. Probajte s blažim osvjetljenjem."
- "Nema dovoljno svjetlosti"
- "Odmaknite telefon"
- "Primaknite telefon"
- "Pomjerite telefon naviše"
- "Pomjerite telefon naniže"
- "Pomjerite telefon ulijevo"
- "Pomjerite telefon udesno"
+ "Previše je tamno. Pokušajte s jačim osvjetljenjem."
+ "Odmaknite telefon."
+ "Primaknite telefon."
+ "Podignite telefon."
+ "Spustite telefon."
+ "Pomjerite telefon ulijevo."
+ "Pomjerite telefon udesno.""Gledajte direktno u uređaj."
- "Ne vidi se lice. Držite telefon u visini očiju."
+ "Postavite lice direktno ispred telefona""Previše pokreta. Držite telefon mirno.""Ponovo registrirajte lice."
- "Nije moguće prepoznati lice. Pokušajte ponovo."
- "Malo pomjerite glavu"
- "Gledajte direktno u telefon"
- "Gledajte direktno u telefon"
- "Gledajte direktno u telefon"
- "Uklonite sve što vam zaklanja lice."
+ "Više nije moguće prepoznati lice. Pokušajte opet."
+ "Previše slično, promijenite položaj."
+ "Malo manje zakrenite glavu."
+ "Malo manje nagnite glavu."
+ "Malo manje zakrenite glavu."
+ "Uklonite prepreke koje blokiraju vaše lice.""Očistite vrh ekrana, uključujući crnu traku"
-
-
-
-
- "Nije moguće kreirati model lica. Pokušajte ponovo."
- "Otkrivene su tamne naočale. Lice se mora u potpunosti vidjeti."
- "Otkriveno je pokrivalo preko lica. Lice se mora u potpunosti vidjeti.""Nije moguće potvrditi lice. Hardver nije dostupan."
@@ -925,14 +920,14 @@
"Pokušajte ponovo""Otključajte uređaj za sve funkcije i podatke""Premašen maksimalni broj pokušaja otključavanja licem"
- "Nema SIM-a"
- "U tabletu nema SIM-a."
- "U Android TV uređaju nema SIM-a."
- "U telefonu nema SIM-a."
- "Dodajte SIM."
- "SIM nedostaje ili se ne može čitati. Dodajte SIM."
- "Neupotrebljiv SIM."
- "SIM je trajno deaktiviran.\n Kontaktirajte pružaoca bežičnih usluga za drugi SIM"
+ "Nema SIM kartice"
+ "Nema SIM kartice u tabletu."
+ "U vašem Android TV uređaju nema SIM kartice."
+ "Nema SIM kartice u telefonu."
+ "Umetnite SIM karticu."
+ "SIM kartica nije umetnuta ili je uređaj ne može očitati. Umetnite SIM karticu."
+ "Neupotrebljiva SIM kartica."
+ "Vaša SIM kartica je trajno onemogućena.\nKako biste dobili drugu SIM karticu, obratite se svom pružaocu bežičnih usluga.""Prethodna numera""Sljedeća numera""Pauziraj"
@@ -942,10 +937,10 @@
"Ubrzaj""Samo hitni pozivi""Mreža zaključana"
- "SIM je zaključan PUK-om."
+ "SIM kartica je zaključana PUK-om.""Pogledajte Priručnik za korištenje ili kontaktirajte odjel za brigu o kupcima."
- "SIM je zaključan."
- "Otključavanje SIM-a…"
+ "SIM kartica je zaključana."
+ "Otključavanje SIM kartice...""Pogrešno ste nacrtali svoj uzorak za otključavanje %1$d puta. \n\nBroj sekundi do sljedećeg pokušaja: %2$d""Pogrešno ste unijeli svoju lozinku %1$d puta. \n\nBroj sekundi do sljedećeg pokušaja: %2$d""Pogrešno ste unijeli svoj PIN %1$d puta. \n\nBroj sekundi do sljedećeg pokušaja: %2$d"
@@ -1011,7 +1006,7 @@
"Fabrički test nije uspio""Akcija FACTORY_TEST podržana je samo za pakete instalirane u facsikli /system/app.""Nije pronađen paket koji omogućava akciju FACTORY_TEST."
- "Ponovo pokreni"
+ "Ponovno pokretanje""Stranica na \"%s\" kaže:""JavaScript""Potvrdite navigaciju"
@@ -1247,9 +1242,10 @@
"Pripremanje aplikacije %1$s.""Pokretanje aplikacija.""Pokretanje pri kraju."
+ "Nastaviti postavljanje?""Pritisnuli ste dugme za uključivanje. Tako se obično isključuje ekran.\n\nPokušajte ga lagano dodirnuti dok postavljate otisak prsta."
- "Da završite postavljanje, isključite ekran"
- "Isključi"
+ "Isključi ekran"
+ "Nastavi postavljanje""Nastaviti s potvrđivanjem otiska prsta?""Pritisnuli ste dugme za uključivanje. Tako se obično isključuje ekran.\n\nPokušajte ga lagano dodirnuti da potvrdite otisak prsta.""Isključi ekran"
@@ -1328,10 +1324,10 @@
"Ovo možete kasnije promijeniti u meniju Postavke > Aplikacije""Uvijek dozvoli""Nikada ne dozvoli"
- "SIM je uklonjen"
- "Mobilna mreža neće biti dostupna dok ponovo ne pokrenete uređaj s važećim SIM-om."
+ "SIM kartica uklonjena"
+ "Mobilna mreža neće biti dostupna dok ponovo ne pokrenete uređaj s umetnutom važećom SIM karticom.""Gotovo"
- "SIM je dodan"
+ "SIM kartica dodana""Ponovo pokrenite uređaj da pristupite mobilnoj mreži.""Ponovo pokreni""Aktivirajte uslugu mobilne mreže"
@@ -1371,7 +1367,7 @@
"Serijska konzola omogućena""Performanse su smanjene. Da onemogućite, provjerite program za učitavanje operativnog sistema.""Eksperimentalni MTE je omogućen"
- "To može uticati na performanse i stabilnost. Ponovo pokrenite da onemogućite. Ako je omogućeno pomoću arm64.memtag.bootctl, prvo postavite na \"Ništa\"."
+ "Moguće da će to uticati na performanse i stabilnost. Ponovo pokrenite da onemogućite. Ako je omogućeno pomoću arm64.memtag.bootctl, unaprijed ga postavite na \"Ništa\".""Tečnost ili nečistoće u USB priključku""USB priključak je automatski onemogućen. Dodirnite da saznate više.""USB priključak je sada sigurno koristiti"
@@ -1385,7 +1381,7 @@
"Odaberite način unosa""Prikaži na ekranu dok je fizička tastatura aktivna""Prikaz virtuelne tastature"
- "Konfigurirajte fizičku tastaturu"
+ "Konfiguriraj fizičku tastaturu""Dodirnite za odabir jezika i rasporeda"" ABCDEFGHIJKLMNOPQRSTUVWXYZ"" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
@@ -1402,16 +1398,16 @@
"Dodirnite za postavke""Odaberite da postavite""Možda ćete morati ponovo formatirati uređaj. Dodirnite da izbacite."
- "Za pohranjivanje fotografija, videozapisa, muzike i još mnogo toga"
+ "Za prebacivanje slika i medijskih fajlova""Pregledajte medijske fajlove""Problem s medijem %s""%s ne funkcionira""Dodirnite da popravite""Uređaj %s je oštećen. Odaberite za popravak.""Možda ćete morati ponovo formatirati uređaj. Dodirnite da izbacite."
- "Otkriven je medij %s"
+ "Uređaj %s nije podržan""%s ne funkcionira"
- "Dodirnite da postavite ."
+ "Ovaj uređaj ne podržava uređaj %s. Dodirnite da biste ga postavili u podržanom formatu.""Odaberite da postavite medij (%s) u podržanom formatu.""Možda ćete morati ponovo formatirati uređaj""Neočekivano uklonjen uređaj %s"
@@ -1425,7 +1421,7 @@
"Istraži""Prebacite izlaz""%s nedostaje"
- "Ponovo umetnite uređaj"
+ "Ponovo ubacite uređaj""Premješta se %s""Premještanje podataka""Prijenos sadržaja je završen"
@@ -1525,7 +1521,7 @@
"Poništiti brisanje""Ne radi ništa za sada""Odaberite račun"
- "Dodajte račun"
+ "Dodaj račun""Dodajte račun""Povećaj""Smanji"
@@ -1610,7 +1606,7 @@
"TV""Telefon""Zvučnici priključne stanice"
- "Vanjski uređaj"
+ "HDMI""Slušalice""USB""Sistem"
@@ -1643,7 +1639,7 @@
"SIM je sada onemogućen. Unesite PUK kôd da nastavite. Za više informacija obratite se operateru.""Unesite željeni PIN""Potvrdi željeni PIN"
- "Otključavanje SIM-a…"
+ "Otključavanje SIM kartice…""Pogrešan PIN.""Unesite PIN koji sadrži od 4 do 8 brojeva.""PUK kôd bi trebao imati 8 brojeva."
@@ -1686,7 +1682,7 @@
"Dozvoliti da usluga %1$s ima punu kontrolu nad vašim uređajem?""Puna kontrola je prikladna za aplikacije koje vam pomažu kod potreba pristupačnosti, ali nije za većinu aplikacija.""Prikaz i kontrola ekrana"
- "Može čitati sav sadržaj na ekranu i prikazivati sadržaj preko drugih aplikacija."
+ "Može čitati sav sadržaj na ekranu i prikazivati sadržaj u drugim aplikacijama.""Prikaz i izvršavanje radnji""Može pratiti vaše interakcije s aplikacijom ili hardverskim senzorom te ostvariti interakciju s aplikacijama umjesto vas.""Dozvoli"
@@ -1924,7 +1920,6 @@
"Izbor regije""Upišite ime jezika""Predloženo"
- "Predloženo""Svi jezici""Sve regije""Pretraga"
@@ -1942,19 +1937,18 @@
"Kamera nije dostupna""Nastavite na telefonu""Mikrofon nije dostupan"
- "Play trgovina nije dostupna""Postavke Android TV-a nisu dostupne""Postavke tableta nisu dostupne""Postavke telefona nisu dostupne"
- "Trenutno ne možete pristupiti ovoj aplikaciji na uređaju %1$s. Umjesto toga pokušajte na uređaju Android TV."
- "Trenutno ne možete pristupiti ovoj aplikaciji na uređaju %1$s. Umjesto toga pokušajte na tabletu."
- "Trenutno ne možete pristupiti ovoj aplikaciji na uređaju %1$s. Umjesto toga pokušajte na telefonu."
+ "Ne možete pristupiti ovoj aplikaciji na uređaju %1$s. Umjesto toga pokušajte na uređaju Android TV."
+ "Ne možete pristupiti ovoj aplikaciji na uređaju %1$s. Umjesto toga pokušajte na tabletu."
+ "Ne možete pristupiti ovoj aplikaciji na uređaju %1$s. Umjesto toga pokušajte na telefonu."
+ "Trenutno ne možete pristupiti ovoj aplikaciji na uređaju %1$s. Umjesto toga pokušajte na uređaju Android TV."
+ "Trenutno ne možete pristupiti ovoj aplikaciji na uređaju %1$s. Umjesto toga pokušajte na tabletu."
+ "Trenutno ne možete pristupiti ovoj aplikaciji na uređaju %1$s. Umjesto toga pokušajte na telefonu.""Ova aplikacija zahtijeva dodatnu sigurnost. Umjesto toga pokušajte na uređaju Android TV.""Ova aplikacija zahtijeva dodatnu sigurnost. Umjesto toga pokušajte na tabletu.""Ova aplikacija zahtijeva dodatnu sigurnost. Umjesto toga pokušajte na telefonu."
- "Ne možete pristupiti ovoj aplikaciji na uređaju %1$s. Umjesto toga pokušajte na uređaju Android TV."
- "Ne možete pristupiti ovoj aplikaciji na uređaju %1$s. Umjesto toga pokušajte na tabletu."
- "Ne možete pristupiti ovoj aplikaciji na uređaju %1$s. Umjesto toga pokušajte na telefonu.""Ova aplikacija je pravljena za stariju verziju Androida i možda neće ispravno raditi. Provjerite jesu li dostupna ažuriranja ili kontaktirajte programera.""Provjeri je li dostupno ažuriranje""Imate nove poruke"
@@ -2045,10 +2039,9 @@
"IPAK OTVORI""Otkrivena je štetna aplikacija""Dozvoliti aplikaciji %s da pristupa svim zapisnicima uređaja?"
- "Dozvoli jednokratni pristup"
+ "Dozvoli jednokratan pristup""Nemoj dozvoliti"
- "Zapisnici uređaja bilježe šta se dešava na uređaju. Aplikacije mogu koristiti te zapisnike pronađu i riješe probleme.\n\nNeki zapisnici mogu sadržavati osjetljive podatke, zato pristup svim zapisnicima uređaja dozvolite samo aplikacijama kojima vjerujete. \n\nAko ne dozvolite ovoj aplikaciji da pristupa svim zapisnicima uređaja, ona i dalje može pristupati svojim zapisnicima. Proizvođač uređaja će možda i dalje biti u stanju pristupiti nekim zapisnicima ili podacima na uređaju."
- "Zapisnici uređaja bilježe šta se dešava na uređaju. Aplikacije mogu koristiti te zapisnike da pronađu i riješe probleme.\n\nNeki zapisnici mogu sadržavati osjetljive podatke. Zbog toga pristup svim zapisnicima uređaja dozvolite samo aplikacijama koje smatrate pouzdanima. \n\nAko ne dozvolite ovoj aplikaciji da pristupa svim zapisnicima uređaja, ona i dalje može pristupati svojim zapisnicima. Proizvođač uređaja će možda i dalje moći pristupiti nekim zapisnicima ili podacima na uređaju.\n\nSaznajte više na g.co/android/devicelogs."
+ "Zapisnici uređaja bilježe šta se dešava na uređaju. Aplikacije mogu koristiti te zapisnike da pronađu i isprave probleme.\n\nNeki zapisnici mogu sadržavati osjetljive podatke. Zato pristup svim zapisnicima uređaja dozvolite samo aplikacijama kojima vjerujete. \n\nAko ne dozvolite ovoj aplikaciji da pristupa svim zapisnicima uređaja, ona i dalje može pristupati svojim zapisnicima. Proizvođač uređaja će možda i dalje biti u stanju pristupiti nekim zapisnicima ili podacima na uređaju. Saznajte više""Ne prikazuj ponovo""Aplikacija %1$s želi prikazati isječke aplikacije %2$s""Uredi"
@@ -2061,7 +2054,8 @@
"Način rada Ne ometaj je promijenjen""Dodirnite da provjerite šta je blokirano.""Pregledajte postavke obavještenja"
- "Počevši od Androida 13, aplikacije koje instalirate trebaju odobrenje da šalju obavještenja. Dodirnite da promijenite ovo odobrenje za postojeće aplikacije."
+
+ "Podsjeti me kasnije""Odbaci""Sistem"
@@ -2109,7 +2103,7 @@
"Bluetooth će ostati uključen tokom načina rada u avionu""Učitavanje""{count,plural, =1{{file_name} i # fajl}one{{file_name} i # fajl}few{{file_name} i # fajla}other{{file_name} i # fajlova}}"
- "Nema preporučenih osoba s kojima biste dijelili"
+ "Nema preporučenih osoba za dijeljenje""Lista aplikacija""Ovoj aplikaciji nije dato odobrenje za snimanje, ali može snimati zvuk putem ovog USB uređaja.""Početna stranica"
@@ -2289,6 +2283,5 @@
"Provjerite aktivne aplikacije""Nije moguće pristupiti kameri telefona s uređaja %1$s""Nije moguće pristupiti kameri tableta s uređaja %1$s"
- "Ovom ne možete pristupiti tokom prijenosa. Umjesto toga pokušajte na telefonu."
- "Sistemski zadano"
+ "Jezik sistema"
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index ab3d59b8213fc390fe4d96ea1f25cca0f6ba4175..00de6bde7ad02f61a65594940453147dafa15a2b 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Sense títol>""(Sense número de telèfon)"
@@ -28,7 +33,6 @@
"Bústia de veu""MSISDN1""Problema de connexió o codi MMI no vàlid."
- "La funció no s\'admet.""L\'operació està restringida a números de marcatge fixos.""No es pot canviar la configuració de desviació de trucades del telèfon quan estàs en itinerància.""El servei s\'ha activat."
@@ -43,11 +47,10 @@
"Els PIN que has introduït no coincideixen.""Escriviu un PIN que tingui de 4 a 8 números.""Introdueix un PUK compost com a mínim de 8 nombres."
- "La SIM està bloquejada pel PUK. Escriu el codi PUK per desbloquejar-la."
- "Escriu el PUK2 per desbloquejar la SIM."
+ "La targeta SIM està bloquejada pel PUK. Escriviu el codi PUK per desbloquejar-la."
+ "Escriviu el PUK2 per desbloquejar la targeta SIM.""No és correcte; activa el bloqueig de RUIM/SIM."
- Et queden %d intents; si no l\'encertes, la SIM es bloquejarà.Et queden %d intents; si no l\'encertes, la SIM es bloquejarà.Et queda %d intent; si no l\'encertes, la SIM es bloquejarà.
@@ -177,7 +180,7 @@
"L\'emmagatzematge del rellotge està ple. Suprimeix uns quants fitxers per alliberar espai.""L\'espai d\'emmagatzematge del dispositiu Android TV és ple. Suprimeix alguns fitxers per alliberar espai.""L\'emmagatzematge del telèfon és ple. Suprimeix uns quants fitxers per alliberar espai."
- "{count,plural, =1{L\'autoritat de certificació s\'ha instal·lat}many{Les autoritats de certificació s\'han instal·lat}other{Les autoritats de certificació s\'han instal·lat}}"
+ "{count,plural, =1{L\'autoritat de certificació s\'ha instal·lat}other{Les autoritats de certificació s\'han instal·lat}}""Per un tercer desconegut""Per l\'administrador del teu perfil de treball""Per %s"
@@ -251,7 +254,7 @@
"Utilitza aquesta opció en la majoria de circumstàncies. Et permet fer un seguiment del progrés de l\'informe, introduir més dades sobre el problema i fer captures de pantalla. És possible que ometi seccions poc utilitzades que requereixen molt de temps.""Informe complet""Utilitza aquesta opció perquè la interferència en el sistema sigui mínima si el dispositiu no respon o va massa lent, o bé si necessites totes les seccions de l\'informe. No et permet introduir més dades ni fer més captures de pantalla."
- "{count,plural, =1{Es farà una captura de pantalla de l\'informe d\'errors d\'aquí a # segon.}many{Es farà una captura de pantalla de l\'informe d\'errors d\'aquí a # segons.}other{Es farà una captura de pantalla de l\'informe d\'errors d\'aquí a # segons.}}"
+ "{count,plural, =1{Es farà una captura de pantalla de l\'informe d\'errors d\'aquí a # segon.}other{Es farà una captura de pantalla de l\'informe d\'errors d\'aquí a # segons.}}""S\'ha fet la captura de pantalla amb l\'informe d\'errors""No s\'ha pogut fer la captura de pantalla amb l\'informe d\'errors""Mode silenciós"
@@ -302,12 +305,12 @@
"accedir al calendari""SMS""enviar i llegir missatges SMS"
- "Fitxers"
- "accedir als fitxers del dispositiu"
- "Música i àudio"
- "accedir a la música i l\'àudio del dispositiu"
- "Fotos i vídeos"
- "accedir a les fotos i els vídeos del dispositiu"
+ "Fitxers i documents"
+ "accedir als fitxers i documents del dispositiu"
+ "Música i altres fitxers d\'àudio"
+ "accedir a fitxers d\'àudio del dispositiu"
+ "Fotos i vídeos"
+ "accedir a fitxers d\'imatge i de vídeo del dispositiu""Micròfon""gravar àudio""Activitat física"
@@ -325,19 +328,19 @@
"Notificacions""mostra notificacions""Recuperar el contingut de la finestra"
- "Inspeccionar el contingut d\'una finestra amb què estàs interaccionant."
+ "Inspecciona el contingut d\'una finestra amb què estàs interaccionant.""Activar Exploració tàctil"
- "Els elements que toquis s\'enunciaran en veu alta, i la pantalla es pot explorar amb gestos."
+ "Els elements que toquis es diran en veu alta, i podràs explorar la pantalla amb gestos.""Observar el text que escrius""Inclou dades personals com ara números de targetes de crèdit i contrasenyes.""Controlar l\'ampliació de la pantalla"
- "Controlar el nivell i la posició del zoom de la pantalla."
+ "Controla el nivell i la posició del zoom de la pantalla.""Fer gestos""Permet tocar, lliscar, pinçar i fer altres gestos.""Gestos d\'empremtes digitals"
- "Pot capturar els gestos fets en el sensor d\'empremtes digitals del dispositiu."
- "Fer una captura de pantalla"
- "Pot fer una captura de la pantalla."
+ "Captura gestos realitzats en el sensor d\'empremtes digitals del dispositiu."
+ "Fes una captura de pantalla"
+ "Pots fer una captura de la pantalla.""desactivar o modificar la barra d\'estat""Permet que l\'aplicació desactivi la barra d\'estat o afegeixi i elimini icones del sistema.""aparèixer a la barra d\'estat"
@@ -583,14 +586,13 @@
"Utilitza el bloqueig de pantalla""Introdueix el teu bloqueig de pantalla per continuar""Prem el sensor de manera ferma"
- "No es pot reconèixer l\'empremta digital. Torna-ho a provar."
+ "No s\'ha pogut processar l\'empremta digital. Torna-ho a provar.""Neteja el sensor d\'empremtes digitals i torna-ho a provar""Neteja el sensor i torna-ho a provar""Prem el sensor de manera ferma""El dit s\'ha mogut massa lentament. Torna-ho a provar.""Prova una altra empremta digital""Hi ha massa llum"
- "S\'ha premut el botó d\'engegada""Prova d\'ajustar l\'empremta digital""Canvia lleugerament la posició del dit en cada intent"
@@ -602,17 +604,16 @@
"Cara autenticada; prem el botó per confirmar""El maquinari d\'empremtes digitals no està disponible.""No es pot configurar l\'empremta digital"
- "Temps d\'espera esgotat per configurar l\'empremta digital. Torna-ho a provar."
+ "S\'ha esgotat el temps d\'espera per a l\'empremta digital. Torna-ho a provar.""S\'ha cancel·lat l\'operació d\'empremta digital.""L\'usuari ha cancel·lat l\'operació d\'empremta digital."
- "Massa intents. Utilitza el bloqueig de pantalla."
- "Massa intents. Utilitza el bloqueig de pantalla."
- "No es pot processar l\'empremta digital. Torna-ho a provar."
+ "S\'han produït massa intents. Torna-ho a provar més tard."
+ "S\'han fet massa intents. S\'ha desactivat el sensor d\'empremtes digitals."
+ "Torna-ho a provar.""No s\'ha registrat cap empremta digital.""Aquest dispositiu no té sensor d\'empremtes digitals.""El sensor està desactivat temporalment.""No es pot utilitzar el sensor d\'empremtes digitals. Visita un proveïdor de reparacions."
- "S\'ha premut el botó d\'engegada""Dit %d""Utilitza l\'empremta digital""Utilitza l\'empremta digital o el bloqueig de pantalla"
@@ -633,33 +634,26 @@
"Desbloqueig amb empremta digital""No es pot utilitzar el sensor d\'empremtes digitals""Visita un proveïdor de reparacions."
- "No es pot crear el model facial. Torna-ho a provar."
+ "No es reconeix la teva cara. Torna-ho a provar.""Massa brillant Prova una il·luminació més suau."
- "No hi ha prou llum"
- "Allunya\'t del telèfon"
- "Apropa el telèfon"
- "Mou el telèfon més amunt"
- "Mou el telèfon més avall"
- "Mou el telèfon cap a l\'esquerra"
- "Mou el telèfon cap a la dreta"
+ "Massa fosc. Prova una il·luminació més brillant."
+ "Allunya\'t del telèfon."
+ "Apropa el telèfon."
+ "Mou el telèfon més amunt."
+ "Mou el telèfon més avall."
+ "Mou el telèfon cap a l\'esquerra."
+ "Mou el telèfon cap a la dreta.""Mira més directament cap al dispositiu."
- "No se\'t veu la cara. Mantén el telèfon a l\'altura dels ulls."
+ "Posa la cara directament davant del telèfon.""Massa moviment. Subjecta bé el telèfon.""Torna a registrar la teva cara."
- "No podem reconèixer la cara. Torna-ho a provar."
- "Canvia lleugerament la posició del cap"
- "Mira més directament al telèfon"
- "Mira més directament al telèfon"
- "Mira més directament al telèfon"
- "Treu qualsevol cosa que amagui la teva cara."
+ "Ja no es reconeix la teva cara. Torna-ho a provar."
+ "És massa semblant; canvia de postura."
+ "No giris tant el cap."
+ "No inclinis tant el cap."
+ "No giris tant el cap."
+ "Suprimeix qualsevol cosa que amagui la teva cara.""Neteja la part superior de la pantalla, inclosa la barra negra"
-
-
-
-
- "No es pot crear el model facial. Torna-ho a provar."
- "S\'han detectat ulleres fosques. La cara ha de ser completament visible."
- "S\'ha detectat una mascareta. La cara ha de ser completament visible.""No es pot verificar la cara. Maquinari no disponible."
@@ -925,14 +919,14 @@
"Torna-ho a provar""Desbl. per accedir a totes les funcions i dades""S\'ha superat el nombre màxim d\'intents de Desbloqueig facial"
- "No hi ha cap SIM"
- "No hi ha cap SIM a la tauleta."
- "No hi ha cap SIM al dispositiu Android TV."
- "No hi ha cap SIM al telèfon."
- "Afegeix una SIM."
- "Falta la SIM o no es pot llegir. Afegeix una SIM."
- "La SIM no es pot utilitzar."
- "La SIM s\'ha desactivat permanentment.\n Contacta amb el proveïdor de serveis sense fil per obtenir-ne una altra."
+ "No hi ha cap SIM"
+ "No hi ha cap SIM a la tauleta."
+ "No hi ha cap targeta SIM al dispositiu Android TV."
+ "No hi ha cap SIM al telèfon."
+ "Insereix una targeta SIM."
+ "Falta la targeta SIM o no es pot llegir. Insereix-ne una."
+ "Targeta SIM no utilitzable."
+ "La targeta SIM està desactivada permanentment.\n Contacta amb el teu proveïdor de serveis sense fil per obtenir-ne una altra.""Pista anterior""Pista següent""Posa en pausa"
@@ -942,10 +936,10 @@
"Avança ràpidament""Només trucades d\'emergència""Xarxa bloquejada"
- "La SIM està bloquejada pel PUK."
+ "La targeta SIM està bloquejada pel PUK.""Consulta la guia d\'usuari o posa\'t en contacte amb el servei d\'atenció al client."
- "La SIM està bloquejada."
- "S\'està desbloquejant la targeta SIM…"
+ "La targeta SIM està bloquejada."
+ "S\'està desbloquejant la targeta SIM...""Has dibuixat el patró de desbloqueig de manera incorrecta %1$d vegades. \n\nTorna-ho a provar d\'aquí a %2$d segons.""Has escrit malament la contrasenya %1$d vegades. \n\nTorna-ho a provar d\'aquí a %2$d segons.""Has escrit malament la contrasenya %1$d vegades. \n\nTorna-ho a provar d\'aquí a %2$d segons."
@@ -1085,7 +1079,7 @@
"%1$s vol activar l\'exploració tàctil. Quan l\'exploració per tàctil està activada, pots escoltar o veure les descripcions del contingut seleccionat o utilitzar gestos per interaccionar amb el telèfon.""Fa 1 mes""Fa més d\'1 mes"
- "{count,plural, =1{Darrer dia (#)}many{# darrers dies}other{# darrers dies}}"
+ "{count,plural, =1{Darrer dia (#)}other{# darrers dies}}""Darrer mes""Més antigues""el %s"
@@ -1112,14 +1106,14 @@
"d\'aquí a %d h""d\'aquí a %d d""d\'aquí a %d a"
- "{count,plural, =1{Fa # minut}many{Fa # minuts}other{Fa # minuts}}"
- "{count,plural, =1{Fa # hora}many{Fa # hores}other{Fa # hores}}"
- "{count,plural, =1{Fa # dia}many{Fa # dies}other{Fa # dies}}"
- "{count,plural, =1{Fa # any}many{Fa # anys}other{Fa # anys}}"
- "{count,plural, =1{# minut}many{# minuts}other{# minuts}}"
- "{count,plural, =1{# hora}many{# hores}other{# hores}}"
- "{count,plural, =1{# dia}many{# dies}other{# dies}}"
- "{count,plural, =1{# any}many{# anys}other{# anys}}"
+ "{count,plural, =1{Fa # minut}other{Fa # minuts}}"
+ "{count,plural, =1{Fa # hora}other{Fa # hores}}"
+ "{count,plural, =1{Fa # dia}other{Fa # dies}}"
+ "{count,plural, =1{Fa # any}other{Fa # anys}}"
+ "{count,plural, =1{# minut}other{# minuts}}"
+ "{count,plural, =1{# hora}other{# hores}}"
+ "{count,plural, =1{# dia}other{# dies}}"
+ "{count,plural, =1{# any}other{# anys}}""Problema amb el vídeo""Aquest vídeo no és vàlid per a la reproducció en aquest dispositiu.""No es pot reproduir aquest vídeo."
@@ -1162,8 +1156,8 @@
"Cancel·la""Atenció""S\'està carregant…"
- "ACTIVAT"
- "DESACTIVAT"
+ "SÍ"
+ "NO""seleccionat""no seleccionat""seleccionat"
@@ -1247,9 +1241,10 @@
"S\'està preparant %1$s.""S\'estan iniciant les aplicacions.""S\'està finalitzant l\'actualització."
+ "Vols continuar amb la configuració?""Has premut el botó d\'engegada, fet que sol apagar la pantalla.\n\nProva de tocar-lo lleugerament en configurar l\'empremta digital."
- "Per finalitzar, apaga la pantalla"
- "Desactiva"
+ "Apaga la pantalla"
+ "Continua configurant""Vols continuar verificant l\'empremta?""Has premut el botó d\'engegada, fet que sol apagar la pantalla.\n\nProva de tocar-lo lleugerament per verificar l\'empremta digital.""Apaga la pantalla"
@@ -1328,10 +1323,10 @@
"Pots canviar aquesta opció més endavant a Configuració > Aplicacions""Permet sempre""No permetis mai"
- "La SIM s\'ha suprimit"
- "La xarxa mòbil no estarà disponible fins que no reiniciïs amb una SIM vàlida."
+ "Extracció de la targeta SIM"
+ "La xarxa mòbil no estarà disponible fins que no reiniciïs amb una targeta SIM vàlida inserida.""Fet"
- "La SIM s\'ha afegit"
+ "Addició de la targeta SIM""Reinicia el dispositiu per accedir a la xarxa mòbil.""Reinicia""Activa el servei mòbil"
@@ -1402,16 +1397,16 @@
"Toca per configurar""Selecciona per configurar""És possible que hagis de reformatar el dispositiu. Toca per expulsar."
- "Per desar fotos, vídeos, música i més"
+ "Per transferir fotos i fitxers multimèdia""Cerca fitxers multimèdia""Problema amb el suport (%s)""%s no funciona""Toca per solucionar el problema""La unitat següent està malmesa: %s. Selecciona-la per solucionar-ho.""És possible que hagis de reformatar el dispositiu. Toca per expulsar."
- "S\'ha detectat %s"
+ "%s no és compatible""%s no funciona"
- "Toca per configurar."
+ "El dispositiu no admet %s. Toca per configurar-la en un format compatible.""Selecciona per configurar %s en un format compatible.""És possible que hagis de reformatar el dispositiu""S\'ha extret %s de manera inesperada"
@@ -1506,7 +1501,7 @@
"Omet""No s\'ha trobat cap coincidència""Troba-ho a la pàgina"
- "{count,plural, =1{# coincidència}many{# de {total}}other{# de {total}}}"
+ "{count,plural, =1{# coincidència}other{# de {total}}}""Fet""S\'està esborrant l\'emmagatzematge compartit…""Comparteix"
@@ -1610,7 +1605,7 @@
"Televisor""Telèfon""Altaveus de la base"
- "Dispositiu extern"
+ "HDMI""Auriculars""USB""Sistema"
@@ -1643,7 +1638,7 @@
"La SIM està desactivada. Introdueix el codi PUK per continuar. Contacta amb l\'operador de telefonia mòbil per obtenir detalls.""Introdueix el codi PIN""Confirma el codi PIN"
- "S\'està desbloquejant la targeta SIM…"
+ "S\'està desbloquejant la targeta SIM...""Codi PIN incorrecte.""Escriu un PIN que tingui de 4 a 8 números.""El codi PUK ha de tenir 8 números."
@@ -1856,17 +1851,17 @@
"D\'acord""Estalvi de bateria activa el tema fosc i limita o desactiva l\'activitat en segon pla, alguns efectes visuals, determinades funcions i algunes connexions a la xarxa.""Estalvi de bateria activa el tema fosc i limita o desactiva l\'activitat en segon pla, alguns efectes visuals, determinades funcions i algunes connexions a la xarxa."
- "Per reduir l\'ús de dades, la funció Estalvi de dades evita que determinades aplicacions enviïn o rebin dades en segon pla. L\'aplicació que estiguis fent servir podrà accedir a les dades, però menys sovint. Això vol dir, per exemple, que les imatges no es mostraran fins que no les toquis."
- "Vols activar l\'Estalvi de dades?"
+ "Per reduir l\'ús de dades, la funció Economitzador de dades evita que determinades aplicacions enviïn o rebin dades en segon pla. L\'aplicació que estiguis fent servir podrà accedir a les dades, però menys sovint. Això vol dir, per exemple, que les imatges no es mostraran fins que no les toquis."
+ "Vols activar l\'Economitzador de dades?""Activa"
- "{count,plural, =1{Durant 1 minut (fins a les {formattedTime})}many{Durant # minuts (fins a les {formattedTime})}other{Durant # minuts (fins a les {formattedTime})}}"
- "{count,plural, =1{Durant 1 min (fins a les {formattedTime})}many{Durant # min (fins a les {formattedTime})}other{Durant # min (fins a les {formattedTime})}}"
- "{count,plural, =1{Durant 1 hora (fins a les {formattedTime})}many{Durant # hores (fins a les {formattedTime})}other{Durant # hores (fins a les {formattedTime})}}"
- "{count,plural, =1{Durant 1 h (fins a les {formattedTime})}many{Durant # h (fins a les {formattedTime})}other{Durant # h (fins a les {formattedTime})}}"
- "{count,plural, =1{Durant 1 minut}many{Durant # minuts}other{Durant # minuts}}"
- "{count,plural, =1{Durant 1 min}many{Durant # min}other{Durant # min}}"
- "{count,plural, =1{Durant 1 hora}many{Durant # hores}other{Durant # hores}}"
- "{count,plural, =1{Durant 1 h}many{Durant # h}other{Durant # h}}"
+ "{count,plural, =1{Durant 1 minut (fins a les {formattedTime})}other{Durant # minuts (fins a les {formattedTime})}}"
+ "{count,plural, =1{Durant 1 min (fins a les {formattedTime})}other{Durant # min (fins a les {formattedTime})}}"
+ "{count,plural, =1{Durant 1 hora (fins a les {formattedTime})}other{Durant # hores (fins a les {formattedTime})}}"
+ "{count,plural, =1{Durant 1 h (fins a les {formattedTime})}other{Durant # h (fins a les {formattedTime})}}"
+ "{count,plural, =1{Durant 1 minut}other{Durant # minuts}}"
+ "{count,plural, =1{Durant 1 min}other{Durant # min}}"
+ "{count,plural, =1{Durant 1 hora}other{Durant # hores}}"
+ "{count,plural, =1{Durant 1 h}other{Durant # h}}""Finalitza: %1$s""Fins a les %1$s""Fins a les %1$s (propera alarma)"
@@ -1924,7 +1919,6 @@
"Preferència de regió""Escriu el nom de l\'idioma""Suggerits"
- "Recomanades""Tots els idiomes""Totes les regions""Cerca"
@@ -1942,19 +1936,18 @@
"La càmera no està disponible""Continua al telèfon""El micròfon no està disponible"
- "Play Store no està disponible""La configuració d\'Android TV no està disponible""La configuració de la tauleta no està disponible"
- "Configuració del telèfon no disponible"
- "En aquests moments, No s\'hi pot accedir des del teu %1$s. Prova-ho al dispositiu Android TV."
- "En aquests moments, No s\'hi pot accedir des del teu %1$s. Prova-ho a la tauleta."
- "No s\'hi pot accedir des del teu %1$s. Prova-ho al telèfon."
+ "La configuració del telèfon no està disponible"
+ "No es pot accedir a aquesta aplicació al dispositiu %1$s. Prova-ho al dispositiu Android TV."
+ "No es pot accedir a aquesta aplicació al dispositiu %1$s. Prova-ho a la tauleta."
+ "No es pot accedir a aquesta aplicació al dispositiu %1$s. Prova-ho al telèfon."
+ "En aquests moments, no es pot accedir a aquesta aplicació al dispositiu %1$s. Prova-ho al dispositiu Android TV."
+ "En aquests moments, no es pot accedir a aquesta aplicació al dispositiu %1$s. Prova-ho a la tauleta."
+ "En aquests moments, no es pot accedir a aquesta aplicació al dispositiu %1$s. Prova-ho al telèfon.""Aquesta aplicació sol·licita seguretat addicional. Prova-ho al dispositiu Android TV.""Aquesta aplicació sol·licita seguretat addicional. Prova-ho a la tauleta.""Aquesta aplicació sol·licita seguretat addicional. Prova-ho al telèfon."
- "No s\'hi pot accedir des del teu %1$s. Prova-ho al dispositiu Android TV."
- "No s\'hi pot accedir des del teu %1$s. Prova-ho a la tauleta."
- "No s\'hi pot accedir des del teu %1$s. Prova-ho al telèfon.""Aquesta aplicació es va crear per a una versió antiga d\'Android i pot ser que no funcioni correctament. Prova de cercar actualitzacions o contacta amb el desenvolupador.""Cerca actualitzacions""Tens missatges nous"
@@ -1997,7 +1990,7 @@
"Desa per a emplenament automàtic""El contingut no es pot emplenar automàticament""Cap suggeriment d\'emplenament automàtic"
- "{count,plural, =1{1 suggeriment d\'emplenament automàtic}many{# suggeriments d\'emplenament automàtic}other{# suggeriments d\'emplenament automàtic}}"
+ "{count,plural, =1{1 suggeriment d\'emplenament automàtic}other{# suggeriments d\'emplenament automàtic}}""Vols desar-ho a ""%1$s""?""Vols desar %1$s a ""%2$s""?""Vols desar %1$s i %2$s a ""%3$s""?"
@@ -2047,8 +2040,7 @@
"Vols permetre que %s accedeixi a tots els registres del dispositiu?""Permet l\'accés únic""No permetis"
- "Els registres del dispositiu inclouen informació sobre tot allò que passa al teu dispositiu. Les aplicacions poden utilitzar aquests registres per detectar i corregir problemes.\n\nCom que és possible que alguns registres continguin informació sensible, et recomanem que només hi permetis l\'accés a les aplicacions de confiança. \n\nEncara que no permetis que aquesta aplicació accedeixi a tots els registres del dispositiu, podrà accedir als seus propis registres. És possible que el fabricant del dispositiu també tingui accés a alguns registres o a informació del teu dispositiu."
- "Els registres del dispositiu inclouen informació sobre tot allò que passa al teu dispositiu. Les aplicacions poden utilitzar aquests registres per detectar i corregir problemes.\n\nCom que és possible que alguns registres continguin informació sensible, et recomanem que només hi permetis l\'accés a les aplicacions de confiança. \n\nEncara que no permetis que aquesta aplicació accedeixi a tots els registres del dispositiu, podrà accedir als seus propis registres. És possible que el fabricant del dispositiu també tingui accés a alguns registres o a informació del teu dispositiu.\n\nObtén més informació a g.co/android/devicelogs."
+ "Els registres del dispositiu inclouen informació sobre tot allò que passa al teu dispositiu. Les aplicacions poden utilitzar aquests registres per detectar i corregir problemes.\n\nÉs possible que alguns registres continguin informació sensible; per això només has de donar-hi accés a les aplicacions de confiança. \n\nEncara que no permetis que aquesta aplicació pugui accedir a tots els registres del dispositiu, podrà accedir als seus propis registres. És possible que el fabricant del dispositiu també tingui accés a alguns registres o a informació del teu dispositiu. Més informació""No tornis a mostrar""%1$s vol mostrar porcions de l\'aplicació %2$s""Edita"
@@ -2061,7 +2053,8 @@
"S\'ha canviat el mode No molestis""Toca per consultar què s\'ha bloquejat.""Consulta la configuració de notificacions"
- "A partir de la versió Android 13, les aplicacions que instal·les necessiten el teu permís per enviar notificacions. Toca per canviar aquest permís per a les aplicacions existents."
+
+ "Recorda-m\'ho més tard""Ignora""Sistema"
@@ -2108,7 +2101,7 @@
"Presentació %1$s""El Bluetooth es mantindrà activat durant el mode d\'avió""S\'està carregant"
- "{count,plural, =1{{file_name} i # fitxer}many{{file_name} i # fitxers}other{{file_name} i # fitxers}}"
+ "{count,plural, =1{{file_name} i # fitxer}other{{file_name} i # fitxers}}""No hi ha cap suggeriment de persones amb qui compartir""Llista d\'aplicacions""Aquesta aplicació no té permís de gravació, però pot capturar àudio a través d\'aquest dispositiu USB."
@@ -2289,6 +2282,5 @@
"Consulta les aplicacions actives""No es pot accedir a la càmera del telèfon des del teu %1$s""No es pot accedir a la càmera de la tauleta des del teu %1$s"
- "No s\'hi pot accedir mentre s\'està reproduint en continu. Prova-ho al telèfon."
- "Valor predeterminat del sistema"
+ "Idioma del sistema"
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 0e9f280613e3477dd542d50ea3a7beb6ffce8cbc..9295a22a20c685bf29428a319e5e2bbadcc61cbc 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Bez názvu>""(žádné telefonní číslo)"
@@ -28,7 +33,6 @@
"Hlasová schránka""MSISDN1""Problém s připojením nebo neplatný kód MMI."
- "Funkce není podporována.""Operace je omezena pouze na povolená telefonní čísla.""Když je aktivní roaming, nastavení přesměrování hovorů z telefonu nelze změnit.""Služba byla zapnuta."
@@ -43,8 +47,8 @@
"Zadané kódy PIN se neshodují.""Zadejte kód PIN o délce 4-8 číslic.""Zadejte osmimístný nebo delší kód PUK."
- "SIM karta je blokována pomocí kódu PUK. Odblokujete ji zadáním kódu PUK."
- "SIM kartu odblokujete zadáním kódu PUK2."
+ "SIM karta je blokována pomocí kódu PUK. Odblokujete ji zadáním kódu PUK."
+ "Chcete-li odblokovat SIM kartu, zadejte kód PUK2.""Operace nebyla úspěšná, povolte zámek SIM/RUIM karty."Máte ještě %d pokusy. Poté bude SIM karta uzamčena.
@@ -303,12 +307,12 @@
"přístup ke kalendáři""SMS""odesílání a zobrazování zpráv SMS"
- "Soubory"
- "přístup k souborům v zařízení"
- "Hudba a zvuk"
- "přístup k hudbě a zvuku v zařízení"
- "Fotky a videa"
- "přísutp k fotkám a videím v zařízení"
+ "Soubory a dokumenty"
+ "přístup k souborům a dokumentům v zařízení"
+ "Hudba a ostatní zvuk"
+ "přístup ke zvukovým souborům v zařízení"
+ "Fotky a videa"
+ "přístup k obrázkům a videosouborům v zařízení""Mikrofon""nahrávání zvuku""Fyzická aktivita"
@@ -322,7 +326,7 @@
"Telefon""uskutečňování a spravování telefonních hovorů""Tělesné senzory"
- "přístup k datům ze senzorů vašich životních funkcí"
+ "přístup k datům ze snímačů vašich životních funkcí""Oznámení""zobrazovat oznámení""Načítat obsah oken"
@@ -584,14 +588,13 @@
"Použít zámek obrazovky""Pokračujte zadáním zámku obrazovky""Pevně zatlačte na senzor"
- "Otisk prstu se nepodařilo rozpoznat. Zkuste to znovu."
+ "Zpracování otisku prstu se nezdařilo. Zkuste to znovu.""Vyčistěte snímač otisků prstů a zkuste to znovu""Vyčistěte senzor a zkuste to znovu"
- "Zatlačte silně na senzor"
+ "Pevně zatlačte na senzor""Pohyb prstem byl příliš pomalý. Zkuste to znovu.""Zkuste jiný otisk prstu""Je příliš světlo"
- "Bylo zjištěno stisknutí vypínače""Zkuste provést úpravu""Pokaždé lehce změňte polohu prstu"
@@ -603,17 +606,16 @@
"Obličej byl ověřen, stiskněte tlačítko pro potvrzení""Není k dispozici hardware ke snímání otisků prstů.""Otisk prstu se nepodařilo nastavit"
- "Časový limit nastavení otisku prstu vypršel. Zkuste to znovu."
+ "Časový limit sejmutí otisku prstu vypršel. Zkuste to znovu.""Operace otisku prstu byla zrušena.""Uživatel operaci s otiskem prstu zrušil."
- "Příliš mnoho pokusů. Použijte zámek obrazovky."
- "Příliš mnoho pokusů. Použijte zámek obrazovky."
- "Otisk prstu nelze zpracovat. Zkuste to znovu."
+ "Příliš mnoho pokusů. Zkuste to později."
+ "Příliš mnoho pokusů. Snímač otisků prstů byl deaktivován."
+ "Zkuste to znovu.""Nejsou zaregistrovány žádné otisky prstů.""Toto zařízení nemá snímač otisků prstů.""Senzor je dočasně deaktivován.""Snímač otisků prstů nelze použít. Navštivte servis"
- "Bylo stisknut vypínač""Prst %d""Použít otisk prstu""Použít otisk prstu nebo zámek obrazovky"
@@ -634,33 +636,26 @@
"Odemknutí otiskem prstu""Snímač otisků prstů nelze použít""Navštivte servis"
- "Model se nepodařilo vytvořit. Zkuste to znovu."
+ "Obličej se nepodařilo zachytit. Zkuste to znovu.""Je příliš světlo. Zmírněte osvětlení."
- "Nedostatečné osvětlení"
- "Umístěte telefon dál"
- "Umístěte telefon blíž"
- "Umístěte telefon výš"
- "Umístěte telefon níž"
- "Umístěte telefon víc doleva"
- "Umístěte telefon víc doprava"
+ "Je moc velká tma. Přejděte na světlo."
+ "Umístěte telefon dál."
+ "Umístěte telefon blíž."
+ "Umístěte telefon výš."
+ "Umístěte telefon níž."
+ "Přesuňte telefon vlevo."
+ "Přesuňte telefon vpravo.""Dívejte se přímo na zařízení."
- "Obličej není vidět. Držte telefon na úrovni očí."
+ "Umístěte obličej přímo před telefon.""Příliš mnoho pohybu. Držte telefon nehybně.""Zaznamenejte obličej znovu."
- "Obličej se nepodařilo rozpoznat. Zkuste to znovu."
- "Mírně pohněte hlavou"
- "Dívejte se přímo na telefon"
- "Dívejte se přímo na telefon"
- "Dívejte se přímo na telefon"
+ "Obličej už nelze rozpoznat. Zkuste to znovu."
+ "Příliš podobné, změňte výraz."
+ "Natočte hlavu o něco méně."
+ "Nakloňte hlavu trochu méně."
+ "Natočte hlavu o něco méně.""Odstraňte vše, co vám zakrývá obličej.""Očistěte horní část obrazovky včetně černé části"
-
-
-
-
- "Model se nepodařilo vytvořit. Zkuste to znovu."
- "Byly zjištěny tmavé brýle. Obličej musí být plně viditelný."
- "Byl zjištěn zakrytý obličej. Obličej musí být plně viditelný.""Obličej nelze ověřit. Hardware není dostupný."
@@ -926,14 +921,14 @@
"Zkusit znovu""Funkce a data jsou k dispozici po odemčení""Překročili jste maximální povolený počet pokusů o odemknutí obličejem."
- "Žádná SIM karta"
- "V tabletu není SIM karta."
- "V zařízení Android TV není SIM karta."
- "V telefonu není SIM karta."
- "Přidejte SIM kartu."
- "SIM karta chybí nebo je nečitelná. Přidejte SIM kartu."
- "SIM kartu nelze použít."
- "SIM karta byla natrvalo deaktivována.\n Požádejte svého poskytovatele bezdrátových služeb o další SIM kartu."
+ "Chybí SIM karta"
+ "V tabletu není SIM karta."
+ "V zařízení Android TV není SIM karta."
+ "V telefonu není žádná SIM karta."
+ "Vložte SIM kartu."
+ "SIM karta chybí nebo je nečitelná. Vložte SIM kartu."
+ "Nepoužitelná SIM karta."
+ "Vaše SIM karta byla natrvalo zablokována.\n Požádejte svého poskytovatele bezdrátových služeb o další SIM kartu.""Předchozí skladba""Další skladba""Pozastavit"
@@ -943,10 +938,10 @@
"Přetočit vpřed""Pouze tísňová volání""Síť je blokována"
- "SIM karta je blokována pomocí kódu PUK."
+ "SIM karta je zablokována pomocí kódu PUK.""Další informace najdete v uživatelské příručce; nebo kontaktujte zákaznickou podporu."
- "SIM karta je zablokována."
- "Odblokování SIM karty…"
+ "SIM karta je zablokována."
+ "Odblokování SIM karty...""Již %1$dkrát jste použili nesprávné bezpečnostní gesto. \n\nZkuste to znovu za %2$d s.""Již %1$dkrát jste nesprávně zadali heslo. \n\nZkuste to znovu za %2$d s.""Již %1$dkrát jste nesprávně zadali kód PIN. \n\nZkuste to znovu za %2$d s."
@@ -1248,9 +1243,10 @@
"Příprava aplikace %1$s.""Spouštění aplikací.""Dokončování inicializace."
+ "Pokračovat v nastavování?""Stiskli jste vypínač – tím se obvykle vypíná obrazovka.\n\nPři nastavování otisku prstu je třeba klepat lehce."
- "K dokončení nastavení je nutné vypnout obrazovku"
- "Vypnout"
+ "Vypnout obrazovku"
+ "Pokračovat v nastavení""Pokračovat v ověřování otisku prstu?""Stiskli jste vypínač – tím se obvykle vypíná obrazovka.\n\nZkuste lehkým klepnutím ověřit svůj otisk prstu.""Vypnout obrazovku"
@@ -1329,10 +1325,10 @@
"Svoji volbu můžete později změnit v nabídce Nastavení > Aplikace.""Povolit vždy""Nepovolit nikdy"
- "SIM karta byla odebrána"
- "Mobilní síť bude dostupná až poté, co vložíte platnou SIM kartu a restartujete zařízení."
+ "SIM karta odebrána"
+ "Mobilní síť bude dostupná až poté, co vložíte platnou SIM kartu a restartujete zařízení.""Hotovo"
- "SIM karta byla přidána"
+ "SIM karta přidána.""Mobilní síť bude přístupná po restartu zařízení.""Restartovat""Aktivovat mobilní službu"
@@ -1403,16 +1399,16 @@
"Klepnutím médium nastavíte""Vyberte, pokud chcete nastavit""Zařízení možná bude nutné znovu naformátovat. Klepnutím ho vyjmete."
- "Pro ukládání fotek, videí, hudby a dalšího obsahu"
+ "K přenosu fotek a médií""Procházet soubory na médiu""Problém s médiem %s""Médium %s nefunguje""Problém odstraníte klepnutím""Úložiště %s je poškozeno. Vyberte ho a zahajte opravu.""Zařízení možná bude nutné znovu naformátovat. Klepnutím ho vyjmete."
- "Zjištěno zařízení %s"
+ "Úložiště %s není podporováno""Médium %s nefunguje"
- "Nastavíte klepnutím."
+ "Úložiště %s není v tomto zařízení podporováno. Klepnutím zahájíte nastavení v podporovaném formátu.""Vyberte, pokud chcete %s nastavit v podporovaném formátu.""Zařízení možná bude nutné znovu naformátovat""Úložiště %s neočekávaně odpojeno"
@@ -1426,7 +1422,7 @@
"Otevřít""Přepnout výstup""%s chybí"
- "Vložte zařízení znovu"
+ "Znovu vložte zařízení""Přesouvání aplikace %s""Probíhá přesun dat""Přenos obsahu je dokončen"
@@ -1565,7 +1561,7 @@
"%1$s – %2$s""%1$s, %2$s – %3$s""Interní sdílené úložiště"
- "SD karta"
+ "Karta SD""SD karta %s""Jednotka USB""Jednotka USB %s"
@@ -1611,7 +1607,7 @@
"Televize""Telefon""Reproduktory doku"
- "Externí zařízení"
+ "HDMI""Sluchátka""USB""Systém"
@@ -1644,7 +1640,7 @@
"SIM karta byla deaktivována. Chcete-li pokračovat, je třeba zadat kód PUK. Podrobné informace získáte od operátora.""Zadejte požadovaný kód PIN.""Potvrďte požadovaný kód PIN."
- "Odblokování SIM karty…"
+ "Odblokování SIM karty...""Nesprávný kód PIN.""Zadejte kód PIN o délce 4–8 číslic.""Kód PUK by měl obsahovat 8 číslic."
@@ -1850,7 +1846,7 @@
"3. %1$s do práce""Před uvolněním požádat o PIN""Před uvolněním požádat o bezpečnostní gesto"
- "Před odepnutím požádat o heslo"
+ "Před uvolněním požádat o heslo""Nainstalováno administrátorem""Aktualizováno administrátorem""Smazáno administrátorem"
@@ -1925,7 +1921,6 @@
"Preferovaná oblast""Zadejte název jazyka""Navrhované"
- "Navrženo""Všechny jazyky""Všechny oblasti""Vyhledávání"
@@ -1943,19 +1938,18 @@
"Kamera není k dispozici""Pokračujte na telefonu""Mikrofon není k dispozici"
- "Obchod Play není dostupný""Nastavení Android TV není k dispozici""Nastavení tabletu není k dispozici""Nastavení telefonu není k dispozici"
- "Tato položka na vašem zařízení %1$s v tuto chvíli není k dispozici. Zkuste to na zařízení Android TV."
- "Tato položka na vašem zařízení %1$s v tuto chvíli není k dispozici. Zkuste to na tabletu."
- "Tato položka na vašem zařízení %1$s v tuto chvíli není k dispozici. Zkuste to na telefonu."
+ "Tato položka na vašem zařízení %1$s není k dispozici. Zkuste to na zařízení Android TV."
+ "Tato položka na vašem zařízení %1$s není k dispozici. Zkuste to na tabletu."
+ "Tato položka na vašem zařízení %1$s není k dispozici. Zkuste to na telefonu."
+ "Tato položka na vašem zařízení %1$s v tuto chvíli není k dispozici. Zkuste to na zařízení Android TV."
+ "Tato položka na vašem zařízení %1$s v tuto chvíli není k dispozici. Zkuste to na tabletu."
+ "Tato položka na vašem zařízení %1$s v tuto chvíli není k dispozici. Zkuste to na telefonu.""Tato aplikace požaduje další zabezpečení. Zkuste to na zařízení Android TV.""Tato aplikace požaduje další zabezpečení. Zkuste to na tabletu.""Tato aplikace požaduje další zabezpečení. Zkuste to na telefonu."
- "Tato položka na vašem zařízení %1$s není k dispozici. Zkuste to na zařízení Android TV."
- "Tato položka na vašem zařízení %1$s není k dispozici. Zkuste to na tabletu."
- "Tato položka na vašem zařízení %1$s není k dispozici. Zkuste to na telefonu.""Tato aplikace byla vytvořena pro starší verzi systému Android a nemusí fungovat správně. Zkuste vyhledat aktualizace, případně kontaktujte vývojáře.""Zkontrolovat aktualizace""Máte nové zprávy"
@@ -2048,8 +2042,7 @@
"Povolit aplikaci %s přístup ke všem protokolům zařízení?""Povolit jednorázový přístup""Nepovolovat"
- "Do protokolů zařízení se zaznamenává, co se na zařízení děje. Aplikace tyto protokoly mohou používat k vyhledání a odstranění problémů.\n\nNěkteré protokoly mohou zahrnovat citlivé údaje. Přístup k protokolům zařízení proto povolte pouze aplikacím, kterým důvěřujete. \n\nPokud této aplikaci nepovolíte přístup ke všem protokolům zařízení, bude mít stále přístup ke svým vlastním protokolům. Výrobce zařízení může mít stále přístup k některým protokolům nebo informacím na vašem zařízení."
- "Do protokolů zařízení se zaznamenává, co se na zařízení děje. Aplikace tyto protokoly mohou používat k vyhledání a odstranění problémů.\n\nNěkteré protokoly mohou zahrnovat citlivé údaje. Přístup k protokolům zařízení proto povolte pouze aplikacím, kterým důvěřujete. \n\nPokud této aplikaci nepovolíte přístup ke všem protokolům zařízení, bude mít stále přístup ke svým vlastním protokolům. Výrobce zařízení může mít stále přístup k některým protokolům nebo informacím na vašem zařízení.\n\nDalší informace najdete na stránce g.co/android/devicelogs."
+ "Do protokolů zařízení se zaznamenává, co se na zařízení děje. Aplikace tyto protokoly mohou používat k vyhledání a odstranění problémů.\n\nNěkteré protokoly mohou zahrnovat citlivé údaje. Přístup k protokolům zařízení proto povolte pouze aplikacím, kterým důvěřujete. \n\nPokud této aplikaci nepovolíte přístup ke všem protokolům zařízení, bude mít stále přístup ke svým vlastním protokolům. Výrobce zařízení může mít stále přístup k některým protokolům nebo informacím na vašem zařízení. Další informace""Příště nezobrazovat""Aplikace %1$s chce zobrazovat ukázky z aplikace %2$s""Upravit"
@@ -2062,7 +2055,8 @@
"Nastavení režimu Nerušit se změnilo""Klepnutím zkontrolujete, co je blokováno.""Zkontrolujte nastavení oznámení"
- "Počínaje systémem Android 13 od vás nainstalované aplikace potřebují oprávnění k odesílání oznámení. Klepnutím toto oprávnění změníte pro stávající aplikace."
+
+ "Připomenout později""Zavřít""Systém"
@@ -2290,6 +2284,5 @@
"Zkontrolujte aktivní aplikace""Ze zařízení %1$s nelze získat přístup k fotoaparátu telefonu""Ze zařízení %1$s nelze získat přístup k fotoaparátu tabletu"
- "Tento obsah při streamování nelze zobrazit. Zkuste to na telefonu."
- "Výchozí nastavení systému"
+ "Jazyk systému"
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index 3d278eb38f7bcd78448ce1494bec52fc22ed4000..be6a842fbef94fd5e2080e2c3a75326094bca598 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -21,6 +21,11 @@
"b"
+ "kB"
+ "MB"
+ "GB"
+ "Tb"
+ "Pb""%1$s%2$s""<Uden titel>""(Intet telefonnummer)"
@@ -28,7 +33,6 @@
"Telefonsvarer""MSISDN1""Forbindelsesproblemer eller ugyldigt MMI-nummer."
- "Funktionen understøttes ikke.""Du kan kun foretage handlinger med dine numre til begrænset opkald.""Det er ikke muligt at ændre indstillingerne for viderestilling af opkald fra din telefon, mens du bruger roaming.""Tjenesten blev aktiveret."
@@ -43,8 +47,8 @@
"De indtastede pinkoder er ikke ens""Angiv en pinkode på mellem 4 og 8 tal.""Angiv en PUK-kode på 8 eller flere cifre."
- "Dit SIM-kort er låst med PUK-koden. Angiv PUK-koden for at låse det op."
- "Angiv PUK2-koden for at fjerne blokeringen fra SIM-kortet."
+ "Dit SIM-kort er låst med PUK-koden. Angiv PUK-koden for at låse den op."
+ "Angiv PUK2-koden for at låse op for SIM-kortet.""Mislykkedes. Aktivér SIM-/RUIM-lås."Du har %d forsøg tilbage, før SIM-kortet bliver låst.
@@ -212,7 +216,7 @@
"Lydløs""Slå trådløs til""Slå trådløs fra"
- "Skærmlås"
+ "Skærmlås""Sluk""Ringeren er deaktiveret""Ringervibrering"
@@ -236,7 +240,7 @@
"Valgmuligheder for tabletcomputeren""Valgmuligheder for Android TV""Indstillinger for telefon"
- "Skærmlås"
+ "Skærmlås""Sluk""Afbryderknap""Genstart"
@@ -301,12 +305,12 @@
"have adgang til din kalender""Sms""sende og se sms-beskeder"
- "Filer"
- "få adgang til filer på din enhed"
- "Musik og lyd"
- "adgang til musik og lyd på din enhed"
- "Billeder og videoer"
- "adgang til billeder og videoer på din enhed"
+ "Filer og dokumenter"
+ "få adgang til filer og dokumenter på din enhed"
+ "Musik og anden lyd"
+ "Få adgang til lydfiler på din enhed"
+ "Billeder og videoer"
+ "Få adgang til videofiler på din enhed""Mikrofon""optage lyd""Fysisk aktivitet"
@@ -334,7 +338,7 @@
"Udføre bevægelser""Kan trykke, stryge, knibe sammen og udføre andre bevægelser.""Fingeraftryksbevægelser"
- "Kan registrere bevægelser, der foretages på enhedens fingeraftrykssensor."
+ "Kan registrere bevægelser, der foretages på enhedens fingeraftrykslæser.""Tag screenshot""Kan tage et screenshot af skærmen.""deaktivere eller redigere statuslinje"
@@ -581,15 +585,14 @@
"Der opstod fejl i forbindelse med godkendelse""Brug skærmlås""Angiv din skærmlås for at fortsætte"
- "Hold fingeren på sensoren"
- "Fingeraftrykket kan ikke genkendes. Prøv igen."
- "Rengør fingeraftrykssensoren, og prøv igen"
- "Rengør sensoren, og prøv igen"
- "Hold fingeren på sensoren"
+ "Hold fingeren nede på læseren"
+ "Fingeraftrykket kunne ikke behandles. Prøv igen."
+ "Rengør fingeraftrykslæseren, og prøv igen"
+ "Rengør læseren, og prøv igen"
+ "Hold fingeren nede på læseren""Du bevægede fingeren for langsomt. Prøv igen.""Prøv med et andet fingeraftryk""Der er for lyst"
- "Et tryk på afbryderknappen er blevet registreret""Prøv at justere den""Flyt fingeren en smule hver gang"
@@ -601,17 +604,16 @@
"Ansigtet er godkendt. Tryk på Bekræft.""Hardwaren til fingeraftryk er ikke tilgængelig.""Fingeraftrykket kan ikke gemmes"
- "Konfigurationen af fingeraftryk fik timeout. Prøv igen."
+ "Registrering af fingeraftryk fik timeout. Prøv igen.""Fingeraftrykshandlingen blev annulleret.""Fingeraftrykshandlingen blev annulleret af brugeren."
- "Du har brugt for mange forsøg. Brug skærmlåsen i stedet."
- "Du har brugt for mange forsøg. Brug skærmlåsen i stedet."
- "Fingeraftrykket kan ikke behandles. Prøv igen."
+ "Du har prøvet for mange gange. Prøv igen senere."
+ "Du har brugt for mange forsøg. Fingeraftrykslæseren er deaktiveret."
+ "Prøv igen.""Der er ikke registreret nogen fingeraftryk."
- "Denne enhed har ingen fingeraftrykssensor."
+ "Denne enhed har ingen fingeraftrykslæser.""Sensoren er midlertidigt deaktiveret."
- "Fingeraftrykssensoren kan ikke bruges. Få den repareret"
- "Der blev trykket på afbryderknappen"
+ "Fingeraftrykslæseren kan ikke bruges. Få den repareret""Fingeraftryk %d""Brug fingeraftryk""Brug fingeraftryk eller skærmlås"
@@ -630,35 +632,28 @@
"Konfigurer flere måder at låse op på""Tryk for at tilføje et fingeraftryk""Oplåsning med fingeraftryk"
- "Fingeraftrykssensoren kan ikke bruges"
+ "Fingeraftrykslæseren kan ikke bruges""Få den repareret."
- "Din ansigtsmodel kan ikke oprettes. Prøv igen."
+ "Der blev ikke registreret ansigtsdata. Prøv igen.""Der er for lyst. Prøv en mere dæmpet belysning."
- "Der er ikke nok lys"
- "Flyt telefonen længere væk"
- "Flyt telefonen tættere på"
- "Løft telefonen højere op"
- "Sænk telefonen"
- "Flyt telefonen længere til venstre for dig"
- "Flyt telefonen længere til højre for dig"
+ "For mørkt. Prøv med mere belysning."
+ "Flyt telefonen længere væk."
+ "Flyt telefonen tættere på."
+ "Løft telefonen højere op."
+ "Sænk telefonen."
+ "Flyt telefonen til venstre."
+ "Flyt telefonen til højre.""Kig mere direkte på din enhed."
- "Dit ansigt kan ikke registreres. Hold din telefon i øjenhøjde."
+ "Sørg for, at dit ansigt er direkte foran telefonen.""Der er for meget bevægelse. Hold telefonen stille.""Registrer dit ansigt igen."
- "Ansigtet kan ikke genkendes. Prøv igen."
- "Flyt dit hoved en smule"
- "Kig mere direkte på din telefon"
- "Kig mere direkte på din telefon"
- "Kig mere direkte på din telefon"
+ "Ansigtet kan ikke længere genkendes. Prøv igen."
+ "Det minder for meget om et andet. Skift stilling."
+ "Du skal ikke dreje hovedet så meget."
+ "Ret dit hoved lidt op."
+ "Du skal ikke dreje hovedet så meget.""Hvis noget skjuler dit ansigt, skal du fjerne det.""Rengør toppen af din skærm, inkl. den sorte bjælke"
-
-
-
-
- "Din ansigtsmodel kan ikke oprettes. Prøv igen."
- "Mørke briller er registreret. Dit ansigt skal være helt synligt."
- "Ansigtsdækning er registreret. Dit ansigt skal være helt synligt.""Ansigt ikke bekræftet. Hardware ikke tilgængelig."
@@ -924,14 +919,14 @@
"Prøv igen""Lås op for at se alle funktioner og data""Det maksimale antal forsøg på at bruge ansigtslås er overskredet"
- "Intet SIM-kort"
- "Intet SIM-kort i tabletten."
- "Intet SIM-kort i din Android TV-enhed."
- "Intet SIM-kort i telefonen."
- "Tilføj et SIM-kort."
- "SIM-kortet mangler eller kan ikke læses. Tilføj et SIM-kort."
- "Deaktiveret SIM-kort."
- "Dit SIM-kort er permanent deaktiveret.\n Kontakt din tjenesteudbyder for at få et nyt SIM-kort."
+ "Intet SIM-kort"
+ "Der er ikke noget SIM-kort i tabletcomputeren."
+ "Der er intet SIM-kort i din Android TV-enhed."
+ "Der er ikke noget SIM-kort i telefonen."
+ "Indsæt et SIM-kort."
+ "SIM-kortet mangler eller kan ikke læses. Indsæt et SIM-kort."
+ "Ubrugeligt SIM-kort."
+ "Dit SIM-kort er blevet permanent deaktiveret.\nKontakt din tjenesteudbyder for at få et nyt SIM-kort.""Forrige nummer""Næste nummer""Pause"
@@ -941,10 +936,10 @@
"Spol frem""Kun nødopkald""Netværket er låst"
- "SIM-kortet er låst med PUK-koden."
+ "SIM-kortet er låst med PUK-koden.""Se brugervejledningen, eller kontakt kundeservice."
- "SIM-kortet er låst."
- "SIM-kortet låses op…"
+ "SIM-kortet er låst."
+ "Låser SIM-kortet op ...""Du har tegnet dit oplåsningsmønster forkert %1$d gange. \n\nPrøv igen om %2$d sekunder.""Du har indtastet din adgangskode forkert %1$d gange. \n\nPrøv igen om %2$d sekunder.""Du har indtastet en forkert pinkode %1$d gange. \n\nPrøv igen om %2$d sekunder."
@@ -1246,9 +1241,10 @@
"Forbereder %1$s.""Åbner dine apps.""Gennemfører start."
+ "Vil du fortsætte konfigurationen?""Du har trykket på afbryderknappen, hvilket som regel slukker skærmen.\n\nPrøv at trykke let på knappen, mens du konfigurerer dit fingeraftryk."
- "Sluk skærmen for at afslutte konfigurationen"
- "Deaktiver"
+ "Sluk skærm"
+ "Fortsæt""Vil du bekræfte dit fingeraftryk?""Du har trykket på afbryderknappen, hvilket som regel slukker skærmen.\n\nPrøv at trykke let på knappen for at bekræfte dit fingeraftryk.""Sluk skærm"
@@ -1327,10 +1323,10 @@
"Du kan altid ændre dette i Indstillinger > Apps""Tillad altid""Tillad aldrig"
- "SIM-kortet er fjernet"
- "Det mobile netværk er utilgængeligt, indtil du genstarter med et gyldigt SIM-kort."
+ "SIM-kort blev fjernet"
+ "Det mobile netværk er utilgængeligt, indtil du genstarter med et gyldigt SIM-kort.""Afslut"
- "SIM-kortet er tilføjet"
+ "SIM-kort blev tilføjet""Genstart din enhed for at få adgang til mobilnetværket.""Genstart""Aktivér mobilselskab"
@@ -1401,16 +1397,16 @@
"Tryk for at konfigurere""Vælg for at konfigurere""Du skal muligvis formatere enheden igen. Tryk for at skubbe den ud."
- "Til opbevaring af billeder, videoer, musik m.m."
+ "Til overførsel af billeder og medier""Gennemse mediefiler""Problem med %s""%s fungerer ikke""Tryk for at løse problemet""%s er beskadiget. Vælg for at rette.""Du skal muligvis formatere enheden igen. Tryk for at skubbe den ud."
- "%s er registreret"
+ "%s understøttes ikke""%s fungerer ikke"
- "Tryk for at konfigurere ."
+ "Denne enhed understøtter ikke dette %s. Tryk for at konfigurere det til et understøttet format.""Vælg for at konfigurere %s i et understøttet format.""Du skal muligvis formatere enheden igen""%s blev fjernet uventet"
@@ -1564,7 +1560,7 @@
"%1$s, %2$s, %3$s""Intern delt lagerplads""SD-kort"
- "SD-kort (%s)"
+ "SD-kort fra %s""USB-drev""USB-drev fra %s""USB-lager"
@@ -1609,7 +1605,7 @@
"Tv""Telefon""Dockstationens højttalere"
- "Ekstern enhed"
+ "HDMI""Hovedtelefoner""USB""System"
@@ -1642,7 +1638,7 @@
"SIM-kortet er nu deaktiveret. Angiv PUK-koden for at fortsætte. Kontakt mobilselskabet for at få flere oplysninger.""Angiv den ønskede pinkode""Bekræft den ønskede pinkode"
- "SIM-kortet låses op…"
+ "SIM-kortet låses op…""Forkert pinkode.""Angiv en pinkode på mellem 4 og 8 tal.""PUK-koden skal være på 8 tal."
@@ -1684,14 +1680,14 @@
"FRA""Vil du give %1$s fuld kontrol over din enhed?""Fuld kontrol er velegnet til apps, der hjælper dig med hjælpefunktioner, men ikke de fleste apps."
- "Se og styre skærmen"
+ "Se og styre skærm""Den kan læse alt indhold på skærmen og vise indhold oven på andre apps.""Se og udføre handlinger""Den kan spore dine interaktioner med en app eller en hardwaresensor og interagere med apps på dine vegne.""Tillad""Afvis""Tryk på en funktion for at bruge den:"
- "Vælg, hvilke funktioner du vil bruge med knappen til hjælpefunktioner"
+ "Vælg, hvilke funktioner du vil bruge med knappen Hjælpefunktioner""Vælg de funktioner, du vil bruge via lydstyrkeknapperne""%s er blevet deaktiveret""Rediger genveje"
@@ -1705,10 +1701,10 @@
"Lydstyrkeknapperne blev holdt nede. %1$s er aktiveret.""Lydstyrkeknapperne blev holdt nede. %1$s er deaktiveret.""Hold begge lydstyrkeknapper nede i tre sekunder for at bruge %1$s"
- "Vælg, hvilken funktion du vil bruge, når du trykker på knappen til hjælpefunktioner:"
+ "Vælg, hvilken funktion du vil bruge, når du trykker på knappen Hjælpefunktioner:""Vælg, hvilken funktion du vil bruge, når du laver bevægelsen for hjælpefunktioner (stryger opad fra bunden af skærmen med to fingre):""Vælg, hvilken funktion du vil bruge, når du laver bevægelsen for hjælpefunktioner (stryger opad fra bunden af skærmen med tre fingre):"
- "Du kan skifte mellem funktioner ved at holde knappen til hjælpefunktioner nede."
+ "Du kan skifte mellem funktioner ved at holde knappen Hjælpefunktioner nede.""Du kan skifte mellem funktioner ved at stryge opad med to fingre og holde dem nede.""Du kan skifte mellem funktioner ved at stryge opad med tre fingre og holde dem nede.""Forstørrelse"
@@ -1923,7 +1919,6 @@
"Områdeindstilling""Angiv sprog""Foreslået"
- "Forslag""Alle sprog""Alle områder""Søg"
@@ -1941,19 +1936,18 @@
"Kameraet er ikke tilgængeligt""Fortsæt på telefonen""Mikrofonen er ikke tilgængelig"
- "Play Butik er ikke tilgængelig""Android TV-indstillingerne er ikke tilgængelige""Tabletindstillingerne er ikke tilgængelige""Telefonindstillingerne er ikke tilgængelige"
- "Dette er ikke tilgængeligt på din %1$s på nuværende tidspunkt. Prøv på din Android TV-enhed i stedet."
- "Dette er ikke tilgængeligt på din %1$s på nuværende tidspunkt. Prøv på din tablet i stedet."
- "Dette er ikke tilgængeligt på din %1$s på nuværende tidspunkt. Prøv på din telefon i stedet."
+ "Du har ikke adgang til denne app på din %1$s. Prøv på din Android TV-enhed i stedet."
+ "Du har ikke adgang til denne app på din %1$s. Prøv på din tablet i stedet."
+ "Du har ikke adgang til denne app på din %1$s. Prøv på din telefon i stedet."
+ "Du har ikke adgang til denne app på din %1$s på nuværende tidspunkt. Prøv på din Android TV-enhed i stedet."
+ "Du har ikke adgang til denne app på din %1$s på nuværende tidspunkt. Prøv på din tablet i stedet."
+ "Du har ikke adgang til denne app på din %1$s på nuværende tidspunkt. Prøv på din telefon i stedet.""Denne app anmoder om yderligere sikkerhed. Prøv på din Android TV-enhed i stedet.""Denne app anmoder om yderligere sikkerhed. Prøv på din tablet i stedet.""Denne app anmoder om yderligere sikkerhed. Prøv på din telefon i stedet."
- "Du kan ikke gøre dette på din %1$s. Prøv på din Android TV-enhed i stedet."
- "Du kan ikke gøre dette på din %1$s. Prøv på din tablet i stedet."
- "Du kan ikke gøre dette på din %1$s. Prøv på din telefon i stedet.""Denne app er lavet til en ældre version af Android og fungerer muligvis ikke korrekt. Prøv at søge efter opdateringer, eller kontakt udvikleren.""Søg efter opdatering""Du har nye beskeder"
@@ -2046,8 +2040,7 @@
"Vil du give %s adgang til alle enhedslogs?""Tillad engangsadgang""Tillad ikke"
- "Enhedslogs registrerer, hvad der sker på din enhed. Apps kan bruge disse logs til at finde og løse problemer.\n\nNogle logs kan indeholde følsomme oplysninger, så giv kun apps, du har tillid til, adgang til alle enhedslogs. \n\nSelvom du ikke giver denne app adgang til alle enhedslogs, kan den stadig tilgå sine egne logs. Producenten af din enhed kan muligvis fortsat tilgå visse logs eller oplysninger på din enhed."
- "Enhedslogs registrerer, hvad der sker på din enhed. Apps kan bruge disse logs til at finde og løse problemer.\n\nNogle logs kan indeholde følsomme oplysninger, så giv kun apps, du har tillid til, adgang til alle enhedslogs. \n\nSelvom du ikke giver denne app adgang til alle enhedslogs, kan den stadig tilgå sine egne logs. Producenten af din enhed kan muligvis fortsat tilgå visse logs eller oplysninger på din enhed.\n\nFå flere oplysninger på g.co/android/devicelogs."
+ "Enhedslogs registrerer, hvad der sker på din enhed. Apps kan bruge disse logs til at finde og løse problemer.\n\nNogle logs kan indeholde følsomme oplysninger, så giv kun apps, du har tillid til, adgang til alle enhedslogs. \n\nSelvom du ikke giver denne app adgang til alle enhedslogs, kan den stadig tilgå sine egne logs. Producenten af din enhed kan muligvis fortsat tilgå visse logs eller oplysninger på din enhed. Få flere oplysninger""Vis ikke igen""%1$s anmoder om tilladelse til at vise eksempler fra %2$s""Rediger"
@@ -2060,7 +2053,8 @@
"Tilstanden Forstyr ikke blev ændret""Tryk for at se, hvad der er blokeret.""Gennemgå indstillinger for notifikationer"
- "Fra og med Android 13 skal de apps, som du installerer, have din tilladelse til at sende notifikationer. Tryk for at ændre denne indstilling for eksisterende apps."
+
+ "Påmind mig senere""Luk""System"
@@ -2288,6 +2282,5 @@
"Tjek aktive apps""Kameraet på din telefon kan ikke tilgås via din %1$s""Kameraet på din tablet kan ikke tilgås via din %1$s"
- "Der er ikke adgang til dette indhold under streaming. Prøv på din telefon i stedet."
- "Systemstandard"
+ "Systemsprog"
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 55fe6041c1b7f5154cca40146689b3fbc9687a1d..5967b4477d4d0aa8f55eaf0e97fed96f486acb84 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "KB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Unbenannt>""(Keine Telefonnummer)"
@@ -28,7 +33,6 @@
"Mailbox""MSISDN1""Verbindungsproblem oder ungültiger MMI-Code."
- "Funktion nicht unterstützt.""Der Vorgang ist nur für deine zugelassenen Rufnummern möglich.""Die Einstellungen für die Anrufweiterleitung von deinem Smartphone können während des Roamings nicht geändert werden.""Dienst wurde aktiviert."
@@ -43,8 +47,8 @@
"Die von dir eingegebenen PIN-Nummern stimmen nicht überein.""Gib eine PIN ein, die 4 bis 8 Zahlen enthält.""Gib eine mindestens achtstellige PUK ein."
- "Deine SIM-Karte ist mit einem PUK gesperrt. Gib zum Entsperren den PUK-Code ein."
- "Gib den PUK2-Code ein, um die SIM-Karte zu entsperren."
+ "Deine SIM-Karte ist mit einem PUK gesperrt. Gib zum Entsperren den PUK-Code ein."
+ "Gib zum Entsperren der SIM-Karte den PUK2 ein.""Fehler. SIM-/RUIM-Sperre aktivieren."Du hast noch %d Versuche, bevor deine SIM-Karte gesperrt wird.
@@ -291,7 +295,7 @@
"%1$s, %2$s""Abgesicherter Modus""Android-System"
- "Zum privaten Profil wechseln"
+ "Zum persönlichen Profil wechseln""Zum Arbeitsprofil wechseln""Kontakte""auf deine Kontakte zugreifen"
@@ -301,12 +305,12 @@
"auf deinen Kalender zugreifen""SMS""SMS senden und abrufen"
- "Dateien"
- "auf Dateien auf deinem Gerät zugreifen"
- "Musik und Audio"
- "Zugriff auf Musik und Audio auf deinem Gerät"
- "Fotos und Videos"
- "Zugriff auf Fotos und Videos auf deinem Gerät"
+ "Dateien und Dokumente"
+ "Auf Dateien und Dokumente auf deinem Gerät zugreifen"
+ "Musik & andere Audiodateien"
+ "Zugriff auf Audiodateien auf deinem Gerät"
+ "Fotos & Videos"
+ "Zugriff auf Bild- und Videodateien auf deinem Gerät""Mikrofon""Audio aufnehmen""Körperliche Aktivität"
@@ -582,16 +586,15 @@
"Displaysperre verwenden""Displaysperre eingeben, um fortzufahren""Drücke fest auf den Sensor"
- "Fingerabdruck wurde nicht erkannt. Versuch es noch einmal."
+ "Fingerabdruck konnte nicht verarbeitet werden. Bitte versuche es noch einmal.""Reinige den Fingerabdrucksensor und versuch es noch einmal""Reinige den Sensor und versuche es noch einmal""Drücke fest auf den Sensor""Finger zu langsam bewegt. Bitte versuche es noch einmal.""Anderen Fingerabdruck verwenden""Zu hell"
- "Drücken der Ein-/Aus-Taste erkannt""Versuche, den Finger anders aufzulegen"
- "Ändere jedes Mal leicht die Position deines Fingers"
+ "Ändere jedes Mal die Position deines Fingers""Fingerabdruck nicht erkannt"
@@ -601,17 +604,16 @@
"Gesicht authentifiziert, bitte bestätigen""Fingerabdruckhardware nicht verfügbar""Fingerabdruck konnte nicht eingerichtet werden"
- "Zeitüberschreitung bei Fingerabdruckeinrichtung. Versuch es noch einmal."
+ "Zeitüberschreitung bei Fingerabdruck. Bitte versuche es noch einmal.""Fingerabdruckvorgang abgebrochen""Vorgang der Fingerabdruckauthentifizierung vom Nutzer abgebrochen."
- "Zu viele Versuche. Verwende stattdessen die Displaysperre."
- "Zu viele Versuche. Verwende stattdessen die Displaysperre."
- "Fingerabdruck kann nicht verarbeitet werden. Versuch es noch einmal."
+ "Zu viele Versuche, bitte später noch einmal versuchen"
+ "Zu viele Versuche. Der Fingerabdrucksensor wurde deaktiviert."
+ "Bitte versuche es noch einmal.""Keine Fingerabdrücke erfasst.""Dieses Gerät hat keinen Fingerabdrucksensor.""Der Sensor ist vorübergehend deaktiviert.""Der Fingerabdrucksensor kann nicht verwendet werden. Suche einen Reparaturdienstleister auf."
- "Ein-/Aus-Taste wurde gedrückt""Finger %d""Fingerabdruck verwenden""Fingerabdruck oder Displaysperre verwenden"
@@ -632,33 +634,26 @@
"Entsperrung per Fingerabdruck""Der Fingerabdrucksensor kann nicht verwendet werden""Suche einen Reparaturdienstleister auf."
- "Kein Gesichtsmodell möglich. Versuche es erneut."
+ "Gesichtsdaten nicht gut erfasst. Erneut versuchen.""Zu hell. Schwächere Beleuchtung ausprobieren."
- "Nicht genug Licht"
- "Bewege das Smartphone weiter weg"
- "Bewege das Smartphone näher heran"
- "Bewege das Smartphone nach oben"
- "Bewege das Smartphone nach unten"
- "Bewege das Smartphone nach links"
- "Bewege das Smartphone nach rechts"
+ "Zu dunkel. Probier eine hellere Beleuchtung aus."
+ "Beweg das Telefon weiter weg."
+ "Beweg das Telefon näher heran."
+ "Halte das Smartphone höher."
+ "Beweg das Smartphone nach unten."
+ "Beweg das Smartphone nach links."
+ "Beweg das Smartphone nach rechts.""Bitte sieh direkt auf dein Gerät."
- "Dein Gesicht wurde nicht erkannt. Halte dein Smartphone auf Augenhöhe."
+ "Halte dein Gesicht direkt vor dein Smartphone.""Zu viel Unruhe. Halte das Smartphone ruhig.""Bitte registriere dein Gesicht noch einmal."
- "Gesicht nicht erkannt. Versuche es noch einmal."
- "Ändere die Position deines Kopfes leicht"
- "Sieh direkt auf dein Smartphone"
- "Sieh direkt auf dein Smartphone"
- "Sieh direkt auf dein Smartphone"
+ "Gesicht wird nicht mehr erkannt. Erneut versuchen."
+ "Zu ähnlich. Bitte dreh deinen Kopf etwas."
+ "Dreh den Kopf etwas weniger zur Seite."
+ "Neig den Kopf etwas weniger stark."
+ "Neig den Kopf etwas weniger stark.""Entferne alles, was dein Gesicht verdeckt.""Reinige den oberen Teil deines Bildschirms, einschließlich der schwarzen Leiste"
-
-
-
-
- "Dein Gesichtsmodell kann nicht erstellt werden. Versuche es noch einmal."
- "Dunkle Brille erkannt. Dein Gesicht muss vollständig sichtbar sein."
- "Dein Gesicht ist bedeckt. Es muss vollständig sichtbar sein.""Gesicht nicht erkannt. Hardware nicht verfügbar."
@@ -924,14 +919,14 @@
"Erneut versuchen""Entsperren, um alle Funktionen und Daten zu nutzen""Die maximal zulässige Anzahl an Versuchen zur Entsperrung per Gesichtserkennung wurde überschritten."
- "Keine SIM-Karte"
- "Keine SIM-Karte im Tablet."
- "Keine SIM-Karte in deinem Android TV-Gerät."
- "Keine SIM-Karte im Smartphone."
- "Lege eine SIM-Karte ein."
- "SIM-Karte fehlt oder ist nicht lesbar. Lege eine SIM-Karte ein."
- "SIM-Karte ist nicht nutzbar."
- "Deine SIM-Karte wurde dauerhaft deaktiviert.\n Wende dich an deinen Mobilfunkanbieter, um eine andere SIM-Karte zu erhalten."
+ "Keine SIM-Karte"
+ "Keine SIM-Karte im Tablet"
+ "Keine SIM-Karte in deinem Android TV-Gerät."
+ "Keine SIM-Karte im Telefon"
+ "Lege eine SIM-Karte ein."
+ "SIM-Karte fehlt oder ist nicht lesbar. Bitte lege eine SIM-Karte ein."
+ "SIM-Karte unbrauchbar"
+ "Deine SIM-Karte wurde dauerhaft deaktiviert.\n Wende dich an deinen Mobilfunkanbieter, um eine andere SIM-Karte zu erhalten.""Vorheriger Titel""Nächster Titel""Pausieren"
@@ -941,10 +936,10 @@
"Vorspulen""Nur Notrufe""Netzwerk gesperrt"
- "SIM-Karte ist mit einem PUK gesperrt."
+ "PUK-Sperre auf SIM""Weitere Informationen erhältst du im Nutzerhandbuch oder beim Kundendienst."
- "SIM-Karte ist gesperrt."
- "SIM-Karte wird entsperrt…"
+ "PIN eingeben"
+ "SIM-Karte wird entsperrt...""Du hast dein Entsperrungsmuster %1$d-mal falsch gezeichnet. \n\nBitte versuche es in %2$d Sekunden noch einmal.""Du hast dein Passwort %1$d-mal falsch eingegeben.\n\nBitte versuche es in %2$d Sekunden noch einmal.""Du hast dein Passwort %1$d-mal falsch eingegeben.\n\nBitte versuche es in %2$d Sekunden noch einmal."
@@ -1019,9 +1014,9 @@
"%s\n\nMöchtest du diese Seite wirklich verlassen?""Bestätigen""Tipp: Zum Vergrößern und Verkleinern doppeltippen"
- "Autofill"
- "Autofill einrichten"
- "Autofill mit %1$s"
+ "Automatisches Ausfüllen"
+ "Autom.Ausfüll.konf."
+ "Mit %1$s automatisch ausfüllen"" ""$1$2$3"", "
@@ -1142,7 +1137,7 @@
"Text auswählen""Rückgängig machen""Wiederholen"
- "Autofill"
+ "Automatisches Ausfüllen""Textauswahl""Zum Wörterbuch hinzufügen""Löschen"
@@ -1246,9 +1241,10 @@
"%1$s wird vorbereitet""Apps werden gestartet...""Start wird abgeschlossen..."
+ "Einrichtung fortsetzen?""Du hast die Ein-/Aus-Taste gedrückt — damit wird der Bildschirm ausgeschaltet.\n\nTippe die Taste leicht an, um deinen Fingerabdruck einzurichten."
- "Zum Beenden der Einrichtung Bildschirm deaktivieren"
- "Deaktivieren"
+ "Ausschalten"
+ "Weiter einrichten""Mit der Fingerabdruckprüfung fortfahren?""Du hast die Ein-/Aus-Taste gedrückt — damit wird der Bildschirm ausgeschaltet.\n\nTippe die Taste leicht an, um mit deinem Fingerabdruck deine Identität zu bestätigen.""Ausschalten"
@@ -1327,10 +1323,10 @@
"Du kannst dies unter \"Einstellungen > Apps\" ändern.""Immer zulassen""Nie zulassen"
- "SIM-Karte wurde entfernt"
- "Das Mobilfunknetz ist erst wieder verfügbar, wenn du einen Neustart mit einer gültigen SIM-Karte durchführst."
+ "SIM-Karte entfernt"
+ "Das Mobilfunknetz ist erst wieder verfügbar, wenn du einen Neustart mit einer gültigen SIM-Karte durchführst.""Fertig"
- "SIM-Karte wurde hinzugefügt"
+ "SIM-Karte hinzugefügt""Starte zur Nutzung des Mobilfunknetzes dein Gerät neu.""Neu starten""Mobilfunkdienst aktivieren"
@@ -1401,16 +1397,16 @@
"Zum Einrichten tippen""Zum Einrichten auswählen""Eventuell musst du das Gerät neu formatieren. Zum Auswerfen tippen."
- "Zum Speichern von Fotos, Videos, Musik und mehr"
+ "Zum Übertragen von Fotos und Medien""In Mediendateien stöbern""Problem mit %s""%s funktioniert nicht""Tippen, um das Problem zu beheben""%s ist beschädigt. Zur Problembehebung auswählen.""Eventuell musst du das Gerät neu formatieren. Zum Auswerfen tippen."
- "„%s“ erkannt"
+ "%s nicht unterstützt""%s funktioniert nicht"
- "Zum Einrichten tippen"
+ "%s wird von diesem Gerät nicht unterstützt. Zum Einrichten in einem unterstützten Format tippen.""Wähle %s aus, um das Medium in einem unterstützten Format einzurichten.""Eventuell musst du das Gerät neu formatieren""%s wurde unerwartet entfernt"
@@ -1609,7 +1605,7 @@
"TV""Telefon""Dock-Lautsprecher"
- "Externes Gerät"
+ "HDMI""Kopfhörer""USB""System"
@@ -1629,7 +1625,7 @@
"Integrierter Bildschirm""HDMI-Bildschirm""Overlay-Nr. %1$d"
- "%1$s: %2$d × %3$d, %4$d dpi"
+ "%1$s: %2$d x %3$d, %4$d dpi"", sicher""Muster vergessen""Falsches Muster"
@@ -1642,7 +1638,7 @@
"Die SIM-Karte ist jetzt deaktiviert. Gib den PUK-Code ein, um fortzufahren. Weitere Informationen erhältst du von deinem Mobilfunkanbieter.""Gewünschten PIN-Code eingeben""Gewünschten PIN-Code bestätigen"
- "SIM-Karte wird entsperrt…"
+ "SIM-Karte wird entsperrt…""Falscher PIN-Code""Gib eine 4- bis 8-stellige PIN ein.""Der PUK-Code muss 8 Ziffern aufweisen."
@@ -1676,13 +1672,13 @@
"Verknüpfung für Bedienungshilfen aktivieren?""Wenn du beide Lautstärketasten einige Sekunden lang gedrückt hältst, aktivierst du die Bedienungshilfen. Dadurch kann sich die Funktionsweise deines Geräts ändern.\n\nAktuelle Funktionen:\n%1$s\nDu kannst ausgewählte Funktionen unter \"Einstellungen\" > \"Bedienungshilfen\" ändern."" • %1$s\n"
- "Kurzbefehl für %1$s aktivieren?"
+ "Verknüpfung für %1$s aktivieren?""Wenn du beide Lautstärketasten einige Sekunden lang gedrückt hältst, aktivierst du die Bedienungshilfe \"%1$s\". Dadurch kann sich die Funktionsweise deines Geräts ändern.\n\nUnter \"Einstellungen > \"Bedienungshilfen\" kannst du dieser Verknüpfung eine andere Funktion zuweisen.""Aktivieren""Nicht aktivieren""AN""AUS"
- "„%1$s“ die vollständige Kontrolle über dein Gerät geben?"
+ "%1$s die vollständige Kontrolle über dein Gerät geben?""Die vollständige Kontrolle sollte nur für Apps aktiviert werden, die dir Zugang zu App-Funktionen erleichtern. Das ist in der Regel nur ein kleiner Teil der Apps.""Bildschirm aufrufen und steuern""Die Funktion kann alle Inhalte auf dem Bildschirm lesen und diese Inhalte über andere Apps anzeigen."
@@ -1694,7 +1690,7 @@
"Funktionen auswählen, die du mit der Schaltfläche \"Bedienungshilfen\" verwenden möchtest""Funktionen für Verknüpfung mit Lautstärketaste auswählen""%s wurde deaktiviert"
- "Kurzbefehle bearbeiten"
+ "Verknüpfungen bearbeiten""Fertig""Verknüpfung deaktivieren""Verknüpfung verwenden"
@@ -1854,7 +1850,7 @@
"Von deinem Administrator gelöscht""OK""Der Energiesparmodus aktiviert das dunkle Design. Hintergrundaktivitäten, einige Funktionen und optische Effekte und manche Netzwerkverbindungen werden eingeschränkt oder deaktiviert."
- "Der Energiesparmodus aktiviert das dunkle Design. Hintergrundaktivitäten, einige Funktionen und optische Effekte sowie manche Netzwerkverbindungen werden eingeschränkt oder deaktiviert."
+ "Der Energiesparmodus aktiviert das dunkle Design. Hintergrundaktivitäten, einige Funktionen und optische Effekte und manche Netzwerkverbindungen werden eingeschränkt oder deaktiviert.""Der Datensparmodus verhindert, dass manche Apps im Hintergrund Daten senden oder empfangen, sodass weniger Daten verbraucht werden. Auch werden die Datenzugriffe der gerade aktiven App eingeschränkt, was z. B. dazu führen kann, dass Bilder erst angetippt werden müssen, bevor sie sichtbar werden.""Datensparmodus aktivieren?""Aktivieren"
@@ -1923,7 +1919,6 @@
"Region auswählen""Sprache eingeben""Vorschläge"
- "Vorschläge""Alle Sprachen""Alle Regionen""Suche"
@@ -1941,19 +1936,18 @@
"Kamera nicht verfügbar""Weiter auf Smartphone""Mikrofon nicht verfügbar"
- "Play Store nicht verfügbar""Android TV-Einstellungen nicht verfügbar""Tablet-Einstellungen nicht verfügbar""Smartphone-Einstellungen nicht verfügbar"
- "Auf deinem %1$s ist derzeit kein Zugriff möglich. Versuche es stattdessen auf deinem Android TV-Gerät."
- "Auf deinem %1$s ist derzeit kein Zugriff möglich. Versuche es stattdessen auf deinem Tablet."
- "Auf deinem %1$s ist derzeit kein Zugriff möglich. Versuche es stattdessen auf deinem Smartphone."
+ "Auf deinem %1$s ist kein Zugriff möglich. Versuch es stattdessen auf deinem Android TV-Gerät."
+ "Auf deinem %1$s ist kein Zugriff möglich. Versuch es stattdessen auf deinem Tablet."
+ "Auf deinem %1$s ist kein Zugriff möglich. Versuch es stattdessen auf deinem Smartphone."
+ "Auf deinem %1$s ist derzeit kein Zugriff möglich. Versuch es stattdessen auf deinem Android TV-Gerät."
+ "Auf deinem %1$s ist derzeit kein Zugriff möglich. Versuch es stattdessen auf deinem Tablet."
+ "Auf deinem %1$s ist derzeit kein Zugriff möglich. Versuch es stattdessen auf deinem Smartphone.""Diese App fordert zusätzliche Sicherheit an. Versuch es stattdessen auf deinem Android TV-Gerät.""Diese App fordert zusätzliche Sicherheit an. Versuch es stattdessen auf deinem Tablet.""Diese App fordert zusätzliche Sicherheit an. Versuch es stattdessen auf deinem Smartphone."
- "Auf deinem %1$s ist kein Zugriff möglich. Versuch es stattdessen auf deinem Android TV-Gerät."
- "Auf deinem %1$s ist kein Zugriff möglich. Versuch es stattdessen auf deinem Tablet."
- "Auf deinem %1$s ist kein Zugriff möglich. Versuch es stattdessen auf deinem Smartphone.""Diese App wurde für eine ältere Android-Version entwickelt und funktioniert möglicherweise nicht mehr richtig. Prüfe, ob Updates verfügbar sind oder kontaktiere den Entwickler.""Auf Updates prüfen""Du hast neue Nachrichten"
@@ -1992,11 +1986,11 @@
"Uhrzeit eingeben""In den Texteingabemodus wechseln, um die Uhrzeit einzugeben.""In den Uhrzeitmodus wechseln, um die Uhrzeit einzugeben."
- "Autofill-Optionen"
- "Für Autofill speichern"
+ "Optionen für automatisches Ausfüllen"
+ "Für „Automatisches Ausfüllen“ speichern""Inhalte können nicht automatisch ausgefüllt werden"
- "Keine Autofill-Vorschläge"
- "{count,plural, =1{1 Autofill-Vorschlag}other{# Autofill-Vorschläge}}"
+ "Keine Vorschläge für automatisches Ausfüllen"
+ "{count,plural, =1{Ein Vorschlag für automatisches Ausfüllen}other{# Vorschläge für automatisches Ausfüllen}}""In ""%1$s"" speichern?""%1$s in ""%2$s"" speichern?""%1$s und %2$s in ""%3$s"" speichern?"
@@ -2046,8 +2040,7 @@
"%s den Zugriff auf alle Geräteprotokolle erlauben?""Einmaligen Zugriff zulassen""Nicht zulassen"
- "In Geräteprotokollen wird aufgezeichnet, welche Aktionen auf deinem Gerät ausgeführt werden. Apps können diese Protokolle verwenden, um Probleme zu finden und zu beheben.\n\nEinige Protokolle enthalten unter Umständen vertrauliche Informationen, daher solltest du nur vertrauenswürdigen Apps den Zugriff auf alle Geräteprotokolle erlauben. \n\nWenn du dieser App keinen Zugriff auf alle Geräteprotokolle gewährst, kann sie trotzdem auf ihre eigenen Protokolle zugreifen. Dein Gerätehersteller hat möglicherweise auch Zugriff auf einige Protokolle oder Informationen auf deinem Gerät."
- "In Geräteprotokollen wird aufgezeichnet, welche Aktionen auf deinem Gerät ausgeführt werden. Apps können diese Protokolle verwenden, um Probleme zu finden und zu beheben.\n\nEinige Protokolle enthalten unter Umständen vertrauliche Informationen. Daher solltest du nur vertrauenswürdigen Apps den Zugriff auf alle Geräteprotokolle erlauben. \n\nWenn du dieser App keinen Zugriff auf alle Geräteprotokolle gewährst, kann sie trotzdem auf ihre eigenen Protokolle zugreifen. Dein Gerätehersteller hat möglicherweise auch Zugang zu einigen Protokollen oder Informationen auf deinem Gerät.\n\nWeitere Informationen findest du unter g.co/android/devicelogs."
+ "In Geräteprotokollen wird aufgezeichnet, welche Aktionen auf deinem Gerät ausgeführt werden. Apps können sie verwenden, um Probleme zu finden und zu beheben.\n\nEinige Protokolle enthalten unter Umständen vertrauliche Informationen, daher solltest du nur vertrauenswürdigen Apps den Zugriff auf alle Geräteprotokolle erlauben. \n\nWenn du dieser App keinen Zugriff auf alle Geräteprotokolle gewährst, kann sie trotzdem auf ihre eigenen Protokolle zugreifen. Dein Gerätehersteller hat möglicherweise auch Zugriff auf einige Protokolle oder Informationen auf deinem Gerät. Weitere Informationen""Nicht mehr anzeigen""%1$s möchte Teile von %2$s anzeigen""Bearbeiten"
@@ -2060,7 +2053,8 @@
"„Bitte nicht stören“ wurde geändert""Tippe, um zu überprüfen, welche Inhalte blockiert werden.""Benachrichtigungseinstellungen überprüfen"
- "Ab Android 13 benötigen Apps, die du installierst, die Berechtigung zum Senden von Benachrichtigungen. Wenn du diese Berechtigung für bereits installierte Apps ändern möchtest, tippe hier."
+
+ "Später erinnern""Schließen""System"
@@ -2288,6 +2282,5 @@
"Aktive Apps prüfen""Zugriff auf die Kamera des Smartphones über dein Gerät (%1$s) nicht möglich""Zugriff auf die Kamera des Tablets über dein Gerät (%1$s) nicht möglich"
- "Während des Streamings ist kein Zugriff möglich. Versuch es stattdessen auf deinem Smartphone."
- "Standardeinstellung des Systems"
+ "Systemsprache"
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index e70915aa9e1edc9d9cb8e30aa133b17c231fce4d..5b3f15ab0b478686d8f0d75bc9e9c278f059a981 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Χωρίς τίτλο>""(Δεν υπάρχει τηλεφωνικός αριθμός)"
@@ -28,7 +33,6 @@
"Αυτ/τος τηλεφωνητής""MSISDN1""Πρόβλημα σύνδεσης ή μη έγκυρος κώδικας MMI."
- "Η λειτουργία δεν υποστηρίζεται.""Η λειτουργία περιορίζεται μόνο σε προκαθορισμένους αριθμούς κλήσης.""Δεν είναι δυνατή η αλλαγή των ρυθμίσεων προώθησης κλήσεων από το τηλέφωνό σας κατά τη διάρκεια της περιαγωγής.""Η υπηρεσία ενεργοποιήθηκε."
@@ -43,8 +47,8 @@
"Οι αριθμοί PIN που πληκτρολογήσατε δεν ταιριάζουν.""Πληκτρολογήστε έναν αριθμό PIN μεγέθους 4 έως 8 αριθμών.""Πληκτρολογήστε έναν κωδικό PUK με 8 αριθμούς ή περισσότερους."
- "Η SIM έχει κλειδωθεί με κωδικό PUK. Πληκτρολογήστε τον κωδικό PUK για να την ξεκλειδώσετε."
- "Πληκτρολογήστε PUK2 για να ξεκλειδώσετε τη SIM."
+ "Η κάρτα SIM έχει κλειδωθεί με κωδικό PUK. Πληκτρολογήστε τον κωδικό PUK για να την ξεκλειδώσετε."
+ "Πληκτρολογήστε τον κωδικό PUK2 για την κατάργηση αποκλεισμού της κάρτας SIM.""Ανεπιτυχής προσπάθεια. Ενεργοποιήστε το Κλείδωμα SIM/RUIM."Απομένουν άλλες %d προσπάθειες προτού κλειδωθεί η κάρτα SIM.
@@ -300,15 +304,15 @@
"Ημερολόγιο""έχει πρόσβαση στο ημερολόγιό σας""SMS"
- "στέλνει και διαβάζει μηνύματα SMS"
- "Αρχεία"
- "πρόσβαση στα αρχεία της συσκευής σας"
- "Μουσική και ήχος"
- "πρόσβαση στη μουσική και σε αρχεία ήχου στη συσκευή σας"
- "Φωτογραφίες και βίντεο"
- "πρόσβαση στις φωτογραφίες και τα βίντεο στη συσκευή σας"
+ "στέλνει και να διαβάζει μηνύματα SMS"
+ "Αρχεία και έγγραφα"
+ "πρόσβαση σε αρχεία και έγγραφα στη συσκευή σας"
+ "Μουσική και άλλο ηχητικό περιεχόμενο"
+ "πρόσβαση σε αρχεία ήχου στη συσκευή σας"
+ "Φωτογραφίες και βίντεο"
+ "πρόσβαση σε αρχεία εικόνας και βίντεο στη συσκευή σας""Μικρόφωνο"
- "ηχογράφηση"
+ "ηχογραφεί""Σωματική δραστ/τητα""πρόσβαση στη σωματική σας δραστηριότητα""Κάμερα"
@@ -318,7 +322,7 @@
"Αρχεία καταγρ. κλήσ.""ανάγνωση και εγγραφή αρχείου καταγραφής τηλεφωνικών κλήσεων""Τηλέφωνο"
- "πραγματοποιεί και διαχειρίζεται τηλ/κές κλήσεις"
+ "πραγματοποιεί και να διαχειρίζεται τηλ/κές κλήσεις""Αισθητήρες σώματος""πρόσβαση στα δεδομένα αισθητήρα σχετικά με τις ζωτικές ενδείξεις σας""Ειδοποιήσεις"
@@ -365,7 +369,7 @@
"Επιτρέπει στην εφαρμογή την ανάγνωση μηνυμάτων που έχουν μεταδοθεί μέσω κινητού τηλεφώνου και έχουν ληφθεί από τη συσκευή σας. Ειδοποιήσεις που μεταδίδονται μέσω κινητού παραδίδονται σε ορισμένες τοποθεσίες για να σας προειδοποιήσουν για καταστάσεις έκτακτης ανάγκης. Κακόβουλες εφαρμογές ενδέχεται να παρεμποδίσουν την απόδοση ή τη λειτουργία της συσκευής σας κατά τη λήψη μετάδοσης μέσω κινητού σχετικά με μια επείγουσα κατάσταση.""διαβάζει ροές δεδομένων στις οποίες έχετε εγγραφεί""Επιτρέπει στην εφαρμογή τη λήψη λεπτομερειών σχετικά με τις τρέχουσες συγχρονισμένες ροές δεδομένων."
- "στέλνει και διαβάζει μηνύματα SMS"
+ "στέλνει και να διαβάζει μηνύματα SMS""Επιτρέπει στην εφαρμογή των αποστολή μηνυμάτων SMS. Αυτό μπορεί να προκαλέσει μη αναμενόμενες χρεώσεις. Οι κακόβουλες εφαρμογές ενδέχεται να σας κοστίσουν χρήματα, αποστέλλοντας μηνύματα χωρίς την έγκρισή σας.""διαβάζει τα μηνύματα κειμένου (SMS ή MMS)""Αυτή η εφαρμογή μπορεί να διαβάσει όλα τα μηνύματα SMS (κειμένου) που είναι αποθηκευμένα στο tablet που χρησιμοποιείτε."
@@ -582,14 +586,13 @@
"Χρήση κλειδώματος οθόνης""Χρησιμοποιήστε το κλείδωμα οθόνης για να συνεχίσετε""Πιέστε σταθερά τον αισθητήρα"
- "Δεν είναι δυνατή η αναγνώριση του δακτυλικού αποτυπώματος. Δοκιμάστε ξανά."
+ "Δεν ήταν δυνατή η επεξεργασία του δακτυλικού αποτυπώματος. Δοκιμάστε ξανά.""Καθαρίστε τον αισθητήρα δακτυλικών αποτυπωμάτων και δοκιμάστε ξανά""Καθαρίστε τον αισθητήρα και δοκιμάστε ξανά""Πιέστε σταθερά τον αισθητήρα""Πολύ αργή κίνηση δαχτύλου. Δοκιμάστε ξανά.""Δοκιμάστε άλλο δακτυλικό αποτύπωμα""Υπερβολικά έντονος φωτισμός"
- "Εντοπίστηκε πάτημα του κουμπιού λειτουργίας""Δοκιμάστε να το προσαρμόσετε""Αλλάζετε ελαφρώς τη θέση του δακτύλου σας κάθε φορά."
@@ -601,17 +604,16 @@
"Έγινε έλεγχος ταυτότητας προσώπου, πατήστε \"Επιβεβαίωση\"""Ο εξοπλισμός δακτυλικού αποτυπώματος δεν είναι διαθέσιμος.""Δεν είναι δυνατή η ρύθμιση του δακτυλικού αποτυπώματος"
- "Λήξη χρονικού ορίου ρύθμισης δακτυλικού αποτυπώματος. Δοκιμάστε ξανά."
+ "Λήξη χρονικού ορίου δακτυλικού αποτυπώματος. Δοκιμάστε ξανά.""Η λειτουργία δακτυλικού αποτυπώματος ακυρώθηκε.""Η λειτουργία δακτυλικού αποτυπώματος ακυρώθηκε από τον χρήστη."
- "Υπερβολικά πολλές προσπάθειες. Χρησιμοποιήστε εναλλακτικά το κλείδωμα οθόνης."
- "Υπερβολικά πολλές προσπάθειες. Χρησιμοποιήστε εναλλακτικά το κλείδωμα οθόνης."
- "Δεν είναι δυνατή η επεξεργασία του δακτυλικού αποτυπώματος. Δοκιμάστε ξανά."
+ "Πάρα πολλές προσπάθειες. Δοκιμάστε ξανά αργότερα."
+ "Πάρα πολλές προσπάθειες. Ο αισθητήρας δακτυλικών αποτυπωμάτων απενεργοποιήθηκε."
+ "Δοκιμάστε ξανά.""Δεν έχουν καταχωριστεί δακτυλικά αποτυπώματα.""Αυτή η συσκευή δεν διαθέτει αισθητήρα δακτυλικού αποτυπώματος.""Ο αισθητήρας απενεργοποιήθηκε προσωρινά.""Δεν είναι δυνατή η χρήση του αισθητήρα δακτυλικών αποτυπωμάτων. Επισκεφτείτε έναν πάροχο υπηρεσιών επισκευής."
- "Το κουμπί λειτουργίας πατήθηκε""Δάχτυλο %d""Χρήση δακτυλικού αποτυπώματος""Χρήση δακτυλικού αποτυπώματος ή κλειδώματος οθόνης"
@@ -632,33 +634,26 @@
"Ξεκλείδωμα με δακτυλικό αποτύπωμα""Δεν είναι δυνατή η χρήση του αισθητήρα δακτυλικών αποτυπωμάτων""Επισκεφτείτε έναν πάροχο υπηρεσιών επισκευής."
- "Αδύν. η δημιουρ. του μοντ. προσώπ. Δοκιμάστε ξανά."
+ "Αδύνατη λήψη ακριβών δεδομ. προσώπου. Επανάληψη.""Υπερβολικά έντονος φωτισμός. Δοκιμάστε πιο ήπιο."
- "Δεν υπάρχει αρκετό φως"
- "Απομακρύνετε περισσότερο το τηλέφωνο"
- "Φέρτε πιο κοντά το τηλέφωνό σας"
- "Μετακινήστε το τηλέφωνο πιο ψηλά"
- "Μετακινήστε πιο χαμηλά το τηλέφωνο"
- "Μετακινήστε το τηλέφωνο προς τα αριστερά"
- "Μετακινήστε το τηλέφωνο προς τα δεξιά"
+ "Πολύ σκοτεινό περιβάλλον. Φροντίστε τον φωτισμό."
+ "Απομακρύνετε περισσότερο το τηλέφωνο."
+ "Πλησιάστε περισσότερο το τηλέφωνο."
+ "Μετακινήστε το τηλέφωνο πιο ψηλά."
+ "Μετακινήστε πιο χαμηλά το τηλέφωνο."
+ "Μετακινήστε το τηλέφωνο στα αριστερά."
+ "Μετακινήστε το τηλέφωνο στα δεξιά.""Κοιτάξτε απευθείας τη συσκευή σας."
- "Δεν εντοπίστηκε το πρόσωπό σας. Κρατήστε το τηλέφωνο στο ύψος των ματιών."
+ "Στρέψτε το πρόσωπό σάς απευθείας στο τηλέφωνο.""Πάρα πολλή κίνηση. Κρατήστε σταθερό το τηλέφωνο.""Καταχωρίστε ξανά το πρόσωπό σας."
- "Το πρόσωπο δεν αναγνωρίζεται. Δοκιμάστε ξανά."
- "Αλλάξτε ελαφρώς τη θέση του κεφαλιού σας"
- "Κοιτάξτε απευθείας το τηλέφωνό σας"
- "Κοιτάξτε απευθείας το τηλέφωνό σας"
- "Κοιτάξτε απευθείας το τηλέφωνό σας"
+ "Αδύνατη η αναγνώριση του προσώπου. Επανάληψη."
+ "Πολύ παρόμοιο, αλλάξτε την πόζα σας."
+ "Στρέψτε λιγότερο το κεφάλι σας."
+ "Γείρετε λιγότερο το κεφάλι σας."
+ "Στρέψτε λιγότερο το κεφάλι σας.""Απομακρύνετε οτιδήποτε κρύβει το πρόσωπό σας.""Καθαρίστε το επάνω μέρος της οθόνης σας, συμπεριλαμβανομένης της μαύρης γραμμής"
-
-
-
-
- "Αδύνατη η δημιουργία του μοντέλου προσώπου. Δοκιμάστε ξανά."
- "Ανιχνεύτηκαν σκούρα γυαλιά. Το πρόσωπό σας πρέπει να φαίνεται πλήρως."
- "Ανιχνεύτηκε κάλυμμα προσώπου. Το πρόσωπό σας πρέπει να φαίνεται πλήρως.""Αδύν. επαλήθ. προσώπου. Μη διαθέσιμος εξοπλισμός."
@@ -924,14 +919,14 @@
"Προσπαθήστε ξανά""Ξεκλείδωμα για όλες τις λειτουργίες και δεδομένα""Έγινε υπέρβαση του μέγιστου αριθμού προσπαθειών για Ξεκλείδωμα με το πρόσωπο"
- "Δεν υπάρχει SIM"
- "Δεν υπάρχει SIM στο tablet."
- "Δεν υπάρχει SIM στη συσκευή σας Android TV."
- "Δεν υπάρχει SIM στο τηλέφωνο."
- "Προσθέστε μια SIM."
- "Η SIM λείπει ή δεν είναι δυνατή η ανάγνωσή της. Προσθέστε μια SIM."
- "Η SIM δεν μπορεί να χρησιμοποιηθεί."
- "Η SIM απενεργοποιήθηκε οριστικά.\n Επικοινωνήστε με τον πάροχο υπηρεσιών ασύρματου δικτύου για μια νέα SIM."
+ "Δεν υπάρχει κάρτα SIM"
+ "Δεν υπάρχει κάρτα SIM στο tablet."
+ "Δεν υπάρχει κάρτα SIM στη συσκευή σας Android TV."
+ "Δεν υπάρχει κάρτα SIM στο τηλέφωνο."
+ "Τοποθετήστε μια κάρτα SIM."
+ "Η κάρτα SIM δεν υπάρχει ή δεν είναι δυνατή η ανάγνωσή της. Τοποθετήστε μια κάρτα SIM."
+ "Η κάρτα SIM δεν μπορεί να χρησιμοποιηθεί."
+ "Η κάρτα SIM έχει απενεργοποιηθεί οριστικά.\n Επικοινωνήστε με τον πάροχο υπηρεσιών ασύρματου δικτύου για να λάβετε μια νέα κάρτα SIM.""Προηγούμενο κομμάτι""Επόμενο κομμάτι""Παύση"
@@ -941,10 +936,10 @@
"Γρήγορη προώθηση""Μόνο κλήσεις έκτακτης ανάγκης""Το δίκτυο κλειδώθηκε"
- "Η SIM έχει κλειδωθεί με κωδικό PUK."
+ "Η κάρτα SIM είναι κλειδωμένη με κωδικό PUK.""Ανατρέξτε στον Οδηγό χρήσης ή επικοινωνήστε με την Εξυπηρέτηση πελατών."
- "Η SIM είναι κλειδωμένη."
- "Ξεκλείδωμα SIM…"
+ "Η κάρτα SIM είναι κλειδωμένη."
+ "Ξεκλείδωμα κάρτας SIM...""Σχεδιάσατε εσφαλμένα το μοτίβο ξεκλειδώματος%1$d φορές. \n\nΠροσπαθήστε ξανά σε %2$d δευτερόλεπτα.""Έχετε πληκτρολογήσει τον κωδικό πρόσβασης εσφαλμένα %1$d φορές. \n\nΠροσπαθήστε ξανά σε %2$d δευτερόλεπτα.""Έχετε πληκτρολογήσει τον αριθμό σας PIN εσφαλμένα %1$d φορές. \n\nΠροσπαθήστε ξανά σε %2$d δευτερόλεπτα."
@@ -1246,9 +1241,10 @@
"Προετοιμασία %1$s.""Έναρξη εφαρμογών.""Ολοκλήρωση εκκίνησης."
+ "Συνέχιση ρύθμισης;""Πατήσατε το κουμπί λειτουργίας. Αυτό συνήθως απενεργοποιεί την οθόνη.\n\nΔοκιμάστε να πατήσετε απαλά κατά τη ρύθμιση του δακτυλικού σας αποτυπώματος."
- "Απενεργ. την οθόνη για ολοκλήρ. ρύθμισης"
- "Απενεργοποίηση"
+ "Απενεργοπ. οθόνης"
+ "Συνέχιση ρύθμισης""Συνέχιση επαλήθευσης δακτ. αποτυπώματος;""Πατήσατε το κουμπί λειτουργίας. Αυτό συνήθως απενεργοποιεί την οθόνη.\n\nΔοκιμάστε να πατήστε απαλά για να επαληθεύσετε το δακτυλικό σας αποτύπωμα.""Απενεργοπ. οθόνης"
@@ -1327,10 +1323,10 @@
"Μπορ.να το αλλάξ.αργ.στις Ρυθ. > Εφ.""Να επιτρέπεται πάντα""Να μην επιτρέπεται ποτέ"
- "Η SIM αφαιρέθηκε"
- "Το δίκτυο κινητής τηλεφωνίας δεν θα είναι διαθέσιμο μέχρι να κάνετε επανεκκίνηση με μια έγκυρη SIM."
+ "Η κάρτα SIM αφαιρέθηκε"
+ "Το δίκτυο κινητής τηλεφωνίας δεν θα είναι διαθέσιμο μέχρι να κάνετε επανεκκίνηση αφού τοποθετήσετε μια έγκυρη κάρτα SIM.""Τέλος"
- "Η SIM προστέθηκε"
+ "Προστέθηκε κάρτα SIM""Επανεκκινήστε τη συσκευή σας για να αποκτήσετε πρόσβαση στο δίκτυο κινητής τηλεφωνίας.""Επανεκκίνηση""Ενεργοποίηση υπηρεσίας κινητής τηλεφωνίας"
@@ -1401,16 +1397,16 @@
"Πατήστε για ρύθμιση""Επιλέξτε για ρύθμιση""Μπορεί να χρειαστεί να διαμορφώσετε ξανά τη συσκευή. Πατήστε για κατάργηση."
- "Για αποθήκευση φωτογραφιών, βίντεο, μουσικής και άλλου περιεχομένου"
+ "Για μεταφορά φωτ./πολυμέσων""Περιήγηση στα αρχεία μέσων""Πρόβλημα με %s""Η συσκευή %s δεν λειτουργεί.""Πατήστε για επιδιόρθωση""Το μέσο %s έχει καταστραφεί. Επιλέξτε να γίνει επιδιόρθωση.""Μπορεί να χρειαστεί να διαμορφώσετε ξανά τη συσκευή. Πατήστε για κατάργηση."
- "Ανιχνεύθηκε %s"
+ "Η κάρτα %s δεν υποστηρίζεται""Η συσκευή %s δεν λειτουργεί."
- "Πατήστε για ρύθμιση ."
+ "Αυτή η συσκευή δεν υποστηρίζει αυτό το μέσο %s. Πατήστε για ρύθμιση σε μια υποστηριζόμενη μορφή.""Επιλέξτε για να ρυθμίσετε το μέσο %s σε μια υποστηριζόμενη μορφή.""Μπορεί να χρειαστεί να διαμορφώσετε ξανά τη συσκευή.""Μη αναμενόμενη αφαίρεση %s"
@@ -1609,7 +1605,7 @@
"Τηλεόραση""Τηλέφωνο""Ηχεία βάσης σύνδεσης"
- "Εξωτερική συσκευή"
+ "HDMI""Ακουστικά""USB""Σύστημα"
@@ -1642,7 +1638,7 @@
"Η κάρτα SIM είναι απενεργοποιημένη αυτή τη στιγμή. Εισαγάγετε τον κωδικό PUK για να συνεχίσετε. Επικοινωνήστε με την εταιρεία κινητής τηλεφωνίας σας για λεπτομέρειες.""Εισαγάγετε τον απαιτούμενο κωδικό PIN""Επιβεβαιώστε τον απαιτούμενο κωδικό PIN"
- "Ξεκλείδωμα SIM…"
+ "Ξεκλείδωμα κάρτας SIM...""Λανθασμένος κωδικός PIN.""Πληκτρολογήστε έναν αριθμό PIN που να αποτελείται από 4 έως 8 αριθμούς.""Ο κωδικός PUK θα πρέπει να αποτελείται από 8 αριθμούς."
@@ -1923,7 +1919,6 @@
"Προτίμηση περιοχής""Εισαγ. όνομα γλώσσας""Προτεινόμενες"
- "Προτεινόμενα""Όλες οι γλώσσες""Όλες οι περιοχές""Αναζήτηση"
@@ -1941,19 +1936,18 @@
"Η κάμερα δεν είναι διαθέσιμη""Συνέχεια στο τηλέφωνο""Το μικρόφωνο δεν είναι διαθέσιμο"
- "Το Play Store δεν είναι διαθέσιμο""Οι ρυθμίσεις του Android TV δεν είναι διαθέσιμες""Οι ρυθμίσεις του tablet δεν είναι διαθέσιμες""Οι ρυθμίσεις του τηλεφώνου δεν είναι διαθέσιμες"
- "Δεν είναι δυνατή η πρόσβαση στη συγκεκριμένη εφαρμογή από τη συσκευή %1$s αυτήν τη στιγμή. Δοκιμάστε στη συσκευή Android TV."
- "Δεν είναι δυνατή η πρόσβαση στη συγκεκριμένη εφαρμογή από τη συσκευή %1$s αυτήν τη στιγμή. Δοκιμάστε στο tablet σας."
- "Δεν είναι δυνατή η πρόσβαση στη συγκεκριμένη εφαρμογή από τη συσκευή %1$s αυτήν τη στιγμή. Δοκιμάστε στο τηλέφωνό σας."
+ "Δεν είναι δυνατή η πρόσβαση στη συγκεκριμένη εφαρμογή από τη συσκευή %1$s. Δοκιμάστε στη συσκευή Android TV."
+ "Δεν είναι δυνατή η πρόσβαση στη συγκεκριμένη εφαρμογή από τη συσκευή %1$s. Δοκιμάστε στο tablet σας."
+ "Δεν είναι δυνατή η πρόσβαση στη συγκεκριμένη εφαρμογή από τη συσκευή %1$s. Δοκιμάστε στο τηλέφωνό σας."
+ "Δεν είναι δυνατή η πρόσβαση στη συγκεκριμένη εφαρμογή από τη συσκευή %1$s αυτήν τη στιγμή. Δοκιμάστε στη συσκευή Android TV."
+ "Δεν είναι δυνατή η πρόσβαση στη συγκεκριμένη εφαρμογή από τη συσκευή %1$s αυτήν τη στιγμή. Δοκιμάστε στο tablet σας."
+ "Δεν είναι δυνατή η πρόσβαση στη συγκεκριμένη εφαρμογή από τη συσκευή %1$s αυτήν τη στιγμή. Δοκιμάστε στο τηλέφωνό σας.""Αυτή η εφαρμογή ζητά πρόσθετη ασφάλεια. Δοκιμάστε στη συσκευή Android TV.""Αυτή η εφαρμογή ζητά πρόσθετη ασφάλεια. Δοκιμάστε στο tablet σας.""Αυτή η εφαρμογή ζητά πρόσθετη ασφάλεια. Δοκιμάστε στο τηλέφωνό σας."
- "Δεν είναι δυνατή η πρόσβαση σε αυτό το στοιχείο από τη συσκευή %1$s. Δοκιμάστε στη συσκευή Android TV."
- "Δεν είναι δυνατή η πρόσβαση σε αυτό το στοιχείο από τη συσκευή %1$s. Δοκιμάστε στο tablet σας."
- "Δεν είναι δυνατή η πρόσβαση σε αυτό το στοιχείο από τη συσκευή %1$s. Δοκιμάστε στο τηλέφωνό σας.""Αυτή η εφαρμογή δημιουργήθηκε για παλαιότερη έκδοση του Android και μπορεί να μην λειτουργεί σωστά. Δοκιμάστε να ελέγξετε εάν υπάρχουν ενημερώσεις ή επικοινωνήστε με τον προγραμματιστή.""Έλεγχος για ενημέρωση""Έχετε νέα μηνύματα"
@@ -2046,8 +2040,7 @@
"Να επιτρέπεται στο %s η πρόσβαση σε όλα τα αρχεία καταγραφής συσκευής;""Να επιτρέπεται η πρόσβαση για μία φορά""Να μην επιτραπεί"
- "Τα αρχεία καταγραφής συσκευής καταγράφουν ό,τι συμβαίνει στη συσκευή σας. Οι εφαρμογές μπορούν να χρησιμοποιούν αυτά τα αρχεία καταγραφής για να εντοπίζουν και να διορθώνουν ζητήματα.\n\nΟρισμένα αρχεία καταγραφής ενδέχεται να περιέχουν ευαίσθητες πληροφορίες. Ως εκ τούτου, επιτρέψτε την πρόσβαση σε όλα τα αρχεία καταγραφής συσκευής μόνο στις εφαρμογές που εμπιστεύεστε. \n\nΕάν δεν επιτρέψετε σε αυτήν την εφαρμογή την πρόσβαση σε όλα τα αρχεία καταγραφής συσκευής, η εφαρμογή εξακολουθεί να έχει πρόσβαση στα δικά της αρχεία καταγραφής. Ο κατασκευαστής της συσκευής σας ενδέχεται να εξακολουθεί να έχει πρόσβαση σε ορισμένα αρχεία καταγραφής ή ορισμένες πληροφορίες στη συσκευή σας."
- "Τα αρχεία καταγραφής συσκευής καταγράφουν ό,τι συμβαίνει στη συσκευή σας. Οι εφαρμογές μπορούν να χρησιμοποιούν αυτά τα αρχεία καταγραφής για να εντοπίζουν και να διορθώνουν ζητήματα.\n\nΟρισμένα αρχεία καταγραφής ενδέχεται να περιέχουν ευαίσθητες πληροφορίες. Ως εκ τούτου, επιτρέψτε την πρόσβαση σε όλα τα αρχεία καταγραφής συσκευής μόνο στις εφαρμογές που εμπιστεύεστε. \n\nΕάν δεν επιτρέψετε σε αυτήν την εφαρμογή την πρόσβαση σε όλα τα αρχεία καταγραφής συσκευής, η εφαρμογή εξακολουθεί να έχει πρόσβαση στα δικά της αρχεία καταγραφής. Ο κατασκευαστής της συσκευής σας ενδέχεται να εξακολουθεί να έχει πρόσβαση σε ορισμένα αρχεία καταγραφής ή σε πληροφορίες στη συσκευή σας.\n\nΜάθετε περισσότερα στη διεύθυνση g.co/android/devicelogs."
+ "Τα αρχεία καταγραφής συσκευής καταγράφουν ό,τι συμβαίνει στη συσκευή σας. Οι εφαρμογές μπορούν να χρησιμοποιούν αυτά τα αρχεία καταγραφής για να εντοπίζουν και να διορθώνουν ζητήματα.\n\nΟρισμένα αρχεία καταγραφής ενδέχεται να περιέχουν ευαίσθητες πληροφορίες. Ως εκ τούτου, επιτρέψτε την πρόσβαση σε όλα τα αρχεία καταγραφής συσκευής μόνο στις εφαρμογές που εμπιστεύεστε. \n\nΕάν δεν επιτρέψετε σε αυτήν την εφαρμογή την πρόσβαση σε όλα τα αρχεία καταγραφής συσκευής, η εφαρμογή εξακολουθεί να έχει πρόσβαση στα δικά της αρχεία καταγραφής. Ο κατασκευαστής της συσκευής σας ενδέχεται να εξακολουθεί να έχει πρόσβαση σε ορισμένα αρχεία καταγραφής ή ορισμένες πληροφορίες στη συσκευή σας. Μάθετε περισσότερα""Να μην εμφανισ. ξανά""Η εφαρμογή %1$s θέλει να εμφανίζει τμήματα της εφαρμογής %2$s""Επεξεργασία"
@@ -2060,7 +2053,8 @@
"Η λειτουργία \"Μην ενοχλείτε\" άλλαξε""Πατήστε για να ελέγξετε το περιεχόμενο που έχει αποκλειστεί.""Έλεγχος ρυθμίσεων ειδοποιήσεων"
- "Από το Android 13 και έπειτα, οι εφαρμογές που εγκαθιστάτε θα χρειάζονται την άδειά σας για την αποστολή ειδοποιήσεων. Πατήστε για να αλλάξετε αυτήν την άδεια για υπάρχουσες εφαρμογές."
+
+ "Υπενθύμιση αργότερα""Παράβλεψη""Σύστημα"
@@ -2286,8 +2280,7 @@
"Η εφαρμογή %1$s εκτελείται στο παρασκήνιο. Πατήστε για διαχείριση της χρήσης της μπαταρίας.""Η εφαρμογή %1$s μπορεί να επηρεάσει τη διάρκεια ζωής μπαταρίας. Πατήστε για έλεγχο των ενεργών εφαρμογών.""Έλεγχος ενεργών εφαρμογών"
- "Δεν είναι δυνατή η πρόσβαση στην κάμερα τηλεφώνου από το %1$s"
+ "Δεν είναι δυνατή η πρόσβαση στην κάμερα του τηλεφώνου από τη συσκευή %1$s""Δεν είναι δυνατή η πρόσβαση στην κάμερα του tablet από τη συσκευή %1$s"
- "Δεν είναι δυνατή η πρόσβαση σε αυτό το στοιχείο κατά τη ροή. Δοκιμάστε στο τηλέφωνό σας."
- "Προεπιλογή συστήματος"
+ "Γλώσσα συστήματος"
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index 332c01f384b4056d25e5a34377ff715e9c2162e1..28b17f6b11c50bb4af860975024b22a3140f19d0 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Untitled>""(No phone number)"
@@ -28,7 +33,6 @@
"Voicemail""MSISDN1""Connection problem or invalid MMI code."
- "Feature not supported.""Operation is restricted to fixed dialling numbers only.""Cannot change call forwarding settings from your phone while you are roaming.""Service was enabled."
@@ -43,8 +47,8 @@
"The PINs that you typed don\'t match.""Type a PIN that is 4 to 8 numbers.""Type a PUK that is 8 numbers or longer."
- "Your SIM is PUK-locked. Type the PUK code to unlock it."
- "Type PUK2 to unblock SIM."
+ "Your SIM card is PUK-locked. Type the PUK code to unlock it."
+ "Type PUK2 to unblock SIM card.""Unsuccessful, enable SIM/RUIM Lock."You have %d remaining attempts before SIM is locked.
@@ -301,12 +305,12 @@
"access your calendar""SMS""send and view SMS messages"
- "Files"
- "access files on your device"
- "Music and audio"
- "access music and audio on your device"
- "Photos and videos"
- "access photos and videos on your device"
+ "Files & documents"
+ "access files and documents on your device"
+ "Music & other audio"
+ "access audio files on your device"
+ "Photos & videos"
+ "access images and video files on your device""Microphone""record audio""Physical activity"
@@ -582,14 +586,13 @@
"Use screen lock""Enter your screen lock to continue""Press firmly on the sensor"
- "Can’t recognise fingerprint. Try again."
+ "Couldn\'t process fingerprint. Please try again.""Clean fingerprint sensor and try again""Clean sensor and try again""Press firmly on the sensor""Finger moved too slow. Please try again.""Try another fingerprint""Too bright"
- "Power press detected""Try adjusting""Change the position of your finger slightly each time"
@@ -601,17 +604,16 @@
"Face authenticated. Please press confirm""Fingerprint hardware not available.""Can’t set up fingerprint"
- "Fingerprint setup timed out. Try again."
+ "Fingerprint timeout reached. Try again.""Fingerprint operation cancelled.""Fingerprint operation cancelled by user."
- "Too many attempts. Use screen lock instead."
- "Too many attempts. Use screen lock instead."
- "Can’t process fingerprint. Try again."
+ "Too many attempts. Try again later."
+ "Too many attempts. Fingerprint sensor disabled."
+ "Try again.""No fingerprints enrolled.""This device does not have a fingerprint sensor.""Sensor temporarily disabled.""Can’t use fingerprint sensor. Visit a repair provider"
- "Power button pressed""Finger %d""Use fingerprint""Use fingerprint or screen lock"
@@ -632,33 +634,26 @@
"Fingerprint Unlock""Can’t use fingerprint sensor""Visit a repair provider."
- "Can’t create your face model. Try again."
+ "Couldn’t capture accurate face data. Try again.""Too bright. Try gentler lighting."
- "Not enough light"
- "Move phone further away"
- "Move phone closer"
- "Move phone higher"
- "Move phone lower"
- "Move phone to your left"
- "Move phone to your right"
+ "Too dark. Try brighter lighting."
+ "Move phone farther away."
+ "Move phone closer."
+ "Move phone higher."
+ "Move phone lower."
+ "Move phone to the left."
+ "Move phone to the right.""Please look more directly at your device."
- "Can’t see your face. Hold your phone at eye level."
+ "Position your face directly in front of the phone.""Too much motion. Hold phone steady.""Please re-enroll your face."
- "Can’t recognise face. Try again."
- "Change the position of your head slightly"
- "Look more directly at your phone"
- "Look more directly at your phone"
- "Look more directly at your phone"
+ "No longer able to recognise face. Try again."
+ "Too similar, please change your pose."
+ "Turn your head a little less."
+ "Tilt your head a little less."
+ "Turn your head a little less.""Remove anything hiding your face.""Clean the top of your screen, including the black bar"
-
-
-
-
- "Can’t create your face model. Try again."
- "Dark glasses detected. Your face must be fully visible."
- "Face covering detected. Your face must be fully visible.""Can’t verify face. Hardware not available."
@@ -924,14 +919,14 @@
"Try again""Unlock for all features and data""Maximum Face Unlock attempts exceeded"
- "No SIM"
- "No SIM in tablet."
- "No SIM in your Android TV device."
- "No SIM in phone."
- "Add a SIM."
- "The SIM is missing or not readable. Add a SIM."
- "Unusable SIM."
- "Your SIM has been permanently deactivated.\n Contact your wireless service provider for another SIM."
+ "No SIM card"
+ "No SIM card in tablet."
+ "No SIM card in your Android TV device."
+ "No SIM card in phone."
+ "Insert a SIM card."
+ "The SIM card is missing or not readable. Insert a SIM card."
+ "Unusable SIM card."
+ "Your SIM card has been permanently disabled.\n Contact your wireless service provider for another SIM card.""Previous track""Next track""Pause"
@@ -941,10 +936,10 @@
"Fast-forward""Emergency calls only""Network locked"
- "SIM is PUK-locked."
+ "SIM card is PUK-locked.""See the User Guide or contact Customer Care."
- "SIM is locked."
- "Unlocking SIM…"
+ "SIM card is locked."
+ "Unlocking SIM card…""You have incorrectly drawn your unlock pattern %1$d times. \n\nTry again in %2$d seconds.""You have incorrectly typed your password %1$d times. \n\nTry again in %2$d seconds.""You have incorrectly typed your PIN %1$d times. \n\nTry again in %2$d seconds."
@@ -1246,9 +1241,10 @@
"Preparing %1$s.""Starting apps.""Finishing boot."
+ "Continue setup?""You pressed the power button – this usually turns off the screen.\n\nTry tapping lightly while setting up your fingerprint."
- "To end setup, turn off screen"
- "Turn off"
+ "Turn off screen"
+ "Continue setup""Continue verifying your fingerprint?""You pressed the power button – this usually turns off the screen.\n\nTry tapping lightly to verify your fingerprint.""Turn off screen"
@@ -1327,10 +1323,10 @@
"You can change this later in Settings > Apps""Always Allow*""Never Allow"
- "SIM removed"
- "The mobile network will be unavailable until you restart with a valid SIM."
+ "SIM card removed"
+ "The mobile network will be unavailable until you restart with a valid SIM card inserted.""Done"
- "SIM added"
+ "SIM card added""Restart your device to access the mobile network.""Restart""Activate mobile service"
@@ -1401,16 +1397,16 @@
"Tap to set up""Select to set up""You may need to reformat the device. Tap to eject."
- "For storing photos, videos, music and more"
+ "For transferring photos and media""Browse media files""Issue with %s""%s isn’t working""Tap to fix""%s is corrupt. Select to fix.""You may need to reformat the device. Tap to eject."
- "%s detected"
+ "Unsupported %s""%s isn’t working"
- "Tap to set up."
+ "This device doesn’t support this %s. Tap to set up in a supported format.""Select to set up %s in a supported format.""You may need to reformat the device""%s unexpectedly removed"
@@ -1609,7 +1605,7 @@
"TV""Phone""Dock speakers"
- "External device"
+ "HDMI""Headphones""USB""System"
@@ -1642,7 +1638,7 @@
"SIM is now disabled. Enter PUK code to continue. Contact operator for details.""Enter desired PIN code""Confirm desired PIN code"
- "Unlocking SIM…"
+ "Unlocking SIM card…""Incorrect PIN code.""Type a PIN that is 4 to 8 numbers.""PUK code should be 8 numbers."
@@ -1923,7 +1919,6 @@
"Region preference""Type language name""Suggested"
- "Suggested""All languages""All regions""Search"
@@ -1941,19 +1936,18 @@
"Camera unavailable""Continue on phone""Microphone unavailable"
- "Play Store unavailable""Android TV settings unavailable""Tablet settings unavailable""Phone settings unavailable"
- "This can’t be accessed on your %1$s at this time. Try on your Android TV device instead."
- "This can’t be accessed on your %1$s at this time. Try on your tablet instead."
- "This can’t be accessed on your %1$s at this time. Try on your phone instead."
+ "This can’t be accessed on your %1$s. Try on your Android TV device instead."
+ "This can’t be accessed on your %1$s. Try on your tablet instead."
+ "This can’t be accessed on your %1$s. Try on your phone instead."
+ "This can’t be accessed on your %1$s at this time. Try on your Android TV device instead."
+ "This can’t be accessed on your %1$s at this time. Try on your tablet instead."
+ "This can’t be accessed on your %1$s at this time. Try on your phone instead.""This app is requesting additional security. Try on your Android TV device instead.""This app is requesting additional security. Try on your tablet instead.""This app is requesting additional security. Try on your phone instead."
- "This can’t be accessed on your %1$s. Try on your Android TV device instead."
- "This can’t be accessed on your %1$s. Try on your tablet instead."
- "This can’t be accessed on your %1$s. Try on your phone instead.""This app was built for an older version of Android and may not work properly. Try checking for updates or contact the developer.""Check for update""You have new messages"
@@ -2046,8 +2040,7 @@
"Allow %s to access all device logs?""Allow one-time access""Don’t allow"
- "Device logs record what happens on your device. Apps can use these logs to find and fix issues.\n\nSome logs may contain sensitive info, so only allow apps that you trust to access all device logs. \n\nIf you don’t allow this app to access all device logs, it can still access its own logs. Your device manufacturer may still be able to access some logs or info on your device."
- "Device logs record what happens on your device. Apps can use these logs to find and fix issues.\n\nSome logs may contain sensitive info, so only allow apps that you trust to access all device logs. \n\nIf you don’t allow this app to access all device logs, it can still access its own logs. Your device manufacturer may still be able to access some logs or info on your device.\n\nLearn more at g.co/android/devicelogs."
+ "Device logs record what happens on your device. Apps can use these logs to find and fix issues.\n\nSome logs may contain sensitive info, so only allow apps that you trust to access all device logs. \n\nIf you don’t allow this app to access all device logs, it can still access its own logs. Your device manufacturer may still be able to access some logs or info on your device. Learn more""Don’t show again""%1$s wants to show %2$s slices""Edit"
@@ -2060,7 +2053,8 @@
"Do Not Disturb has changed""Tap to check what\'s blocked.""Review notification settings"
- "Starting in Android 13, apps that you install need your permission to send notifications. Tap to change this permission for existing apps."
+
+ "Remind me later""Dismiss""System"
@@ -2288,6 +2282,5 @@
"Check active apps""Can’t access the phone’s camera from your %1$s""Can’t access the tablet’s camera from your %1$s"
- "This can’t be accessed while streaming. Try on your phone instead."
- "System default"
+ "System language"
diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml
index 6b55718f14618f15bda2c35b161428b326d53b1e..eea427ed23875678f9632ce4a8b288f7dedd13cd 100644
--- a/core/res/res/values-en-rCA/strings.xml
+++ b/core/res/res/values-en-rCA/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Untitled>""(No phone number)"
@@ -28,23 +33,22 @@
"Voicemail""MSISDN1""Connection problem or invalid MMI code."
- "Feature not supported."
- "Operation is restricted to fixed dialing numbers only."
- "Can not change call forwarding settings from your phone while you are roaming."
+ "Operation is restricted to fixed dialling numbers only."
+ "Cannot change call forwarding settings from your phone while you are roaming.""Service was enabled.""Service was enabled for:""Service has been disabled.""Registration was successful."
- "Erasure was successful."
+ "Erase successful.""Incorrect password.""MMI complete."
- "The old PIN you typed isn\'t correct."
- "The PUK you typed isn\'t correct."
- "The PINs you typed don\'t match."
+ "The old PIN that you typed is incorrect."
+ "The PUK that you typed isn\'t correct."
+ "The PINs that you typed don\'t match.""Type a PIN that is 4 to 8 numbers.""Type a PUK that is 8 numbers or longer."
- "Your SIM is PUK-locked. Type the PUK code to unlock it."
- "Type PUK2 to unblock SIM."
+ "Your SIM card is PUK-locked. Type the PUK code to unlock it."
+ "Type PUK2 to unblock SIM card.""Unsuccessful, enable SIM/RUIM Lock."You have %d remaining attempts before SIM is locked.
@@ -53,7 +57,7 @@
"IMEI""MEID""Incoming Caller ID"
- "Hide Outgoing Caller ID"
+ "Hide outgoing caller ID""Connected Line ID""Connected Line ID Restriction""Call forwarding"
@@ -63,7 +67,7 @@
"PIN change""Calling number present""Calling number restricted"
- "Three way calling"
+ "Three-way calling""Rejection of undesired annoying calls""Calling number delivery""Do not disturb"
@@ -77,8 +81,8 @@
"Emergency calling unavailable""No voice service""No voice service or emergency calling"
- "Temporarily turned off by your carrier"
- "Temporarily turned off by your carrier for SIM %d"
+ "Temporarily turned off by your operator"
+ "Temporarily turned off by your operator for SIM %d""Can’t reach mobile network""Try changing preferred network. Tap to change.""Emergency calling unavailable"
@@ -89,7 +93,7 @@
"Mobile data status""SMS messages""Voicemail messages"
- "Wi-Fi calling"
+ "Wi-Fi Calling""SIM status""High priority SIM status""Peer requested TTY Mode FULL"
@@ -107,7 +111,7 @@
"Roaming Indicator On""Roaming Indicator Off""Roaming Indicator Flashing"
- "Out of Neighborhood"
+ "Out of local area""Out of Building""Roaming - Preferred System""Roaming - Available System"
@@ -120,23 +124,23 @@
"Searching for Service""Couldn’t set up Wi‑Fi calling"
- "To make calls and send messages over Wi-Fi, first ask your carrier to set up this service. Then turn on Wi-Fi calling again from Settings. (Error code: %1$s)"
+ "To make calls and send messages over Wi-Fi, first ask your operator to set up this service. Then turn on Wi-Fi calling again from Settings. (Error code: %1$s)"
- "Issue registering Wi‑Fi calling with your carrier: %1$s"
+ "Issue registering Wi‑Fi calling with your operator: %1$s""%s Wi-Fi Calling"
- "%s WiFi Calling"
- "WLAN Call"
+ "%s Wi-Fi calling"
+ "WLAN call""%s WLAN Call""%s Wi-Fi"
- "WiFi Calling | %s"
+ "Wi-Fi Calling | %s""%s VoWifi""Wi-Fi Calling""Wi-Fi"
- "WiFi Calling"
+ "Wi-Fi Calling""VoWifi""Off""Call over Wi-Fi"
@@ -144,7 +148,7 @@
"Wi-Fi only"
- "%s Backup Calling"
+ "%s Backup calling""{0}: Not forwarded""{0}: {1}""{0}: {1} after {2} seconds"
@@ -168,13 +172,13 @@
"Couldn\'t access the file.""Couldn\'t find the requested file.""Too many requests are being processed. Try again later."
- "Signin error for %1$s"
+ "Sign-in error for %1$s""Sync""Can\'t sync""Attempted to delete too many %s.""Tablet storage is full. Delete some files to free space."
- "Watch storage is full. Delete some files to free space."
- "Android TV device storage is full. Delete some files to free space."
+ "Watch storage is full. Delete some files to free up space."
+ "Android TV device storage is full. Delete some files to free up space.""Phone storage is full. Delete some files to free space.""{count,plural, =1{Certificate authority installed}other{Certificate authorities installed}}""By an unknown third party"
@@ -186,20 +190,20 @@
"Too many password attempts""Admin relinquished device for personal use""Device is managed"
- "Your organization manages this device and may monitor network traffic. Tap for details."
+ "Your organisation manages this device and may monitor network traffic. Tap for details.""Apps can access your location"
- "Contact your IT admin to learn more"
- "Geofencing Service"
+ "Contact your IT admin to find out more"
+ "Geofencing service""Country Detector""Location Service"
- "GNSS Service"
+ "GNSS service""Sensor Notification Service""Twilight Service"
- "GNSS Time Update Service"
- "Device Policy Manager Service"
- "Music Recognition Manager Service"
+ "GNSS time update service"
+ "Device Policy manager service"
+ "Music recognition manager service""Your device will be erased"
- "The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organization\'s admin."
+ "The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organisation\'s admin.""Printing disabled by %s.""Turn on your work profile""Your personal apps are blocked until you turn on your work profile"
@@ -230,9 +234,9 @@
"Your phone will shut down.""Do you want to shut down?""Reboot to safe mode"
- "Do you want to reboot into safe mode? This will disable all third party applications you have installed. They will be restored when you reboot again."
+ "Do you want to reboot into safe mode? This will disable all third-party applications that you have installed. They will be restored when you reboot again.""Recent"
- "No recent apps."
+ "No recent apps""Tablet options""Android TV options""Phone options"
@@ -245,9 +249,9 @@
"End session""Screenshot""Bug report"
- "This will collect information about your current device state, to send as an e-mail message. It will take a little time from starting the bug report until it is ready to be sent; please be patient."
+ "This will collect information about your current device state, to send as an email message. It will take a little time from starting the bug report until it is ready to be sent. Please be patient.""Interactive report"
- "Use this under most circumstances. It allows you to track progress of the report, enter more details about the problem, and take screenshots. It might omit some less-used sections that take a long time to report."
+ "Use this under most circumstances. It allows you to track progress of the report, enter more details about the problem and take screenshots. It might omit some less-used sections that take a long time to report.""Full report""Use this option for minimal system interference when your device is unresponsive or too slow, or when you need all report sections. Does not allow you to enter more details or take additional screenshots.""{count,plural, =1{Taking screenshot for bug report in # second.}other{Taking screenshot for bug report in # seconds.}}"
@@ -301,12 +305,12 @@
"access your calendar""SMS""send and view SMS messages"
- "Files"
- "access files on your device"
- "Music and audio"
- "access music and audio on your device"
- "Photos and videos"
- "access photos and videos on your device"
+ "Files & documents"
+ "access files and documents on your device"
+ "Music & other audio"
+ "access audio files on your device"
+ "Photos & videos"
+ "access images and video files on your device""Microphone""record audio""Physical activity"
@@ -316,7 +320,7 @@
"Nearby devices""discover and connect to nearby devices""Call logs"
- "read and write phone call log"
+ "read and write phone call logs""Phone""make and manage phone calls""Body sensors"
@@ -332,7 +336,7 @@
"Control display magnification""Control the display\'s zoom level and positioning.""Perform gestures"
- "Can tap, swipe, pinch, and perform other gestures."
+ "Can tap, swipe, pinch and perform other gestures.""Fingerprint gestures""Can capture gestures performed on the device\'s fingerprint sensor.""Take screenshot"
@@ -345,24 +349,24 @@
"Allows the app to expand or collapse the status bar.""display notifications as full screen activities on a locked device""Allows the app to display notifications as full screen activities on a locked device"
- "install shortcuts"
- "Allows an application to add Homescreen shortcuts without user intervention."
+ "Install shortcuts"
+ "Allows an application to add Home screen shortcuts without user intervention.""uninstall shortcuts"
- "Allows the application to remove Homescreen shortcuts without user intervention."
+ "Allows the application to remove Home screen shortcuts without user intervention.""reroute outgoing calls"
- "Allows the app to see the number being dialed during an outgoing call with the option to redirect the call to a different number or abort the call altogether."
+ "Allows the app to see the number being dialled during an outgoing call with the option to redirect the call to a different number or abort the call altogether.""answer phone calls""Allows the app to answer an incoming phone call.""receive text messages (SMS)"
- "Allows the app to receive and process SMS messages. This means the app could monitor or delete messages sent to your device without showing them to you."
+ "Allows the app to receive and process SMS messages. This means that the app could monitor or delete messages sent to your device without showing them to you.""receive text messages (MMS)"
- "Allows the app to receive and process MMS messages. This means the app could monitor or delete messages sent to your device without showing them to you."
+ "Allows the app to receive and process MMS messages. This means that the app could monitor or delete messages sent to your device without showing them to you.""Forward cell broadcast messages""Allows the app to bind to the cell broadcast module in order to forward cell broadcast messages as they are received. Cell broadcast alerts are delivered in some locations to warn you of emergency situations. Malicious apps may interfere with the performance or operation of your device when an emergency cell broadcast is received.""Manage ongoing calls""Allows an app to see details about ongoing calls on your device and to control these calls."
- "read cell broadcast messages"
- "Allows the app to read cell broadcast messages received by your device. Cell broadcast alerts are delivered in some locations to warn you of emergency situations. Malicious apps may interfere with the performance or operation of your device when an emergency cell broadcast is received."
+ "read mobile broadcast messages"
+ "Allows the app to read mobile broadcast messages received by your device. Cell broadcast alerts are delivered in some locations to warn you of emergency situations. Malicious apps may interfere with the performance or operation of your device when an emergency mobile broadcast is received.""read subscribed feeds""Allows the app to get details about the currently synced feeds.""send and view SMS messages"
@@ -377,7 +381,7 @@
"Allows the app to retrieve information about currently and recently running tasks. This may allow the app to discover information about which applications are used on the device.""manage profile and device owners""Allows apps to set the profile owners and the device owner."
- "reorder running apps"
+ "re-order running apps""Allows the app to move tasks to the foreground and background. The app may do this without your input.""enable car mode""Allows the app to enable the car mode."
@@ -390,13 +394,13 @@
"use data in the background""This app can use data in the background. This may increase data usage.""make app always run"
- "Allows the app to make parts of itself persistent in memory. This can limit memory available to other apps slowing down the tablet."
- "Allows the app to make parts of itself persistent in memory. This can limit memory available to other apps slowing down your Android TV device."
- "Allows the app to make parts of itself persistent in memory. This can limit memory available to other apps slowing down the phone."
+ "Allows the app to make parts of itself persistent in memory. This can limit the memory available to other apps, slowing down the tablet."
+ "Allows the app to make parts of itself persistent in memory. This can limit the memory available to other apps slowing down your Android TV device."
+ "Allows the app to make parts of itself persistent in memory. This can limit the memory available to other apps, slowing down the phone.""run foreground service""Allows the app to make use of foreground services.""measure app storage space"
- "Allows the app to retrieve its code, data, and cache sizes"
+ "Allows the app to retrieve its code, data and cache sizes""modify system settings""Allows the app to modify the system\'s settings data. Malicious apps may corrupt your system\'s configuration.""run at startup"
@@ -408,9 +412,9 @@
"Allows the app to send sticky broadcasts, which remain after the broadcast ends. Excessive use may make your Android TV device slow or unstable by causing it to use too much memory.""Allows the app to send sticky broadcasts, which remain after the broadcast ends. Excessive use may make the phone slow or unstable by causing it to use too much memory.""read your contacts"
- "Allows the app to read data about your contacts stored on your tablet. Apps will also have access to the accounts on your tablet that have created contacts. This may include accounts created by apps you have installed. This permission allows apps to save your contact data, and malicious apps may share contact data without your knowledge."
- "Allows the app to read data about your contacts stored on your Android TV device. Apps will also have access to the accounts on your Android TV device that have created contacts. This may include accounts created by apps you have installed. This permission allows apps to save your contact data, and malicious apps may share contact data without your knowledge."
- "Allows the app to read data about your contacts stored on your phone. Apps will also have access to the accounts on your phone that have created contacts. This may include accounts created by apps you have installed. This permission allows apps to save your contact data, and malicious apps may share contact data without your knowledge."
+ "Allows the app to read data about your contacts stored on your tablet. Apps will also have access to the accounts on your tablet that have created contacts. This may include any accounts created by apps that you have installed. This permission allows any apps to save your contact data, and malicious apps may share contact data without your knowledge."
+ "Allows the app to read data about your contacts stored on your Android TV device. Apps will also have access to the accounts on your Android TV device that have created contacts. This may include any accounts created by apps that you have installed. This permission allows any apps to save your contact data, and malicious apps may share contact data without your knowledge."
+ "Allows the app to read data about your contacts stored on your phone. Apps will also have access to the accounts on your phone that have created contacts. This may include any accounts created by apps that you have installed. This permission allows any apps to save your contact data, and malicious apps may share contact data without your knowledge.""modify your contacts""Allows the app to modify the data about your contacts stored on your tablet. This permission allows apps to delete contact data.""Allows the app to modify the data about your contacts stored on your Android TV device. This permission allows apps to delete contact data."
@@ -419,26 +423,26 @@
"This app can read your call history.""write call log""Allows the app to modify your tablet\'s call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log."
- "Allows the app to modify your Android TV device\'s call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log."
+ "Allows the app to modify your Android TV device\'s call log, including data about incoming and outgoing calls. Malicious apps may use this to delete or modify your call log.""Allows the app to modify your phone\'s call log, including data about incoming and outgoing calls. Malicious apps may use this to erase or modify your call log.""Access body sensor data, like heart rate, while in use"
- "Allows the app to access body sensor data, such as heart rate, temperature, and blood oxygen percentage, while the app is in use."
+ "Allows the app to access body sensor data, such as heart rate, temperature and blood oxygen percentage, while the app is in use.""Access body sensor data, like heart rate, while in the background"
- "Allows the app to access body sensor data, such as heart rate, temperature, and blood oxygen percentage, while the app is in the background."
+ "Allows the app to access body sensor data, such as heart rate, temperature and blood oxygen percentage, while the app is in the background.""Read calendar events and details""This app can read all calendar events stored on your tablet and share or save your calendar data.""This app can read all calendar events stored on your Android TV device and share or save your calendar data.""This app can read all calendar events stored on your phone and share or save your calendar data."
- "add or modify calendar events and send email to guests without owners\' knowledge"
- "This app can add, remove, or change calendar events on your tablet. This app can send messages that may appear to come from calendar owners, or change events without notifying their owners."
- "This app can add, remove, or change calendar events on your Android TV device. This app can send messages that may appear to come from calendar owners, or change events without notifying their owners."
- "This app can add, remove, or change calendar events on your phone. This app can send messages that may appear to come from calendar owners, or change events without notifying their owners."
+ "add or modify calendar events and send emails to guests without owners\' knowledge"
+ "This app can add, remove or change calendar events on your tablet. This app can send messages that may appear to come from calendar owners or change events without notifying their owners."
+ "This app can add, remove or change calendar events on your Android TV device. This app can send messages that may appear to come from calendar owners or change events without notifying their owners."
+ "This app can add, remove or change calendar events on your phone. This app can send messages that may appear to come from calendar owners or change events without notifying their owners.""access extra location provider commands""Allows the app to access extra location provider commands. This may allow the app to interfere with the operation of the GPS or other location sources.""access precise location only in the foreground"
- "This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage."
+ "This app can get your precise location from Location Services while the app is in use. Location Services for your device must be turned on for the app to get location. This may increase battery usage.""access approximate location only in the foreground"
- "This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location."
+ "This app can get your approximate location from Location Services while the app is in use. Location Services for your device must be turned on for the app to get location.""access location in the background""This app can access location at any time, even while the app is not in use.""change your audio settings"
@@ -449,13 +453,13 @@
"This app can record audio using the microphone at any time.""send commands to the SIM""Allows the app to send commands to the SIM. This is very dangerous."
- "recognize physical activity"
- "This app can recognize your physical activity."
+ "recognise physical activity"
+ "This app can recognise your physical activity.""take pictures and videos""This app can take pictures and record videos using the camera while the app is in use.""take pictures and videos in the background""This app can take pictures and record videos using the camera at any time."
- "Allow an application or service access to system cameras to take pictures and videos"
+ "Grant an application or service access to system cameras to take pictures and videos""This privileged or system app can take pictures and record videos using a system camera at any time. Requires the android.permission.CAMERA permission to be held by the app as well""Allow an application or service to receive callbacks about camera devices being opened or closed.""This app can receive callbacks when any camera device is being opened (by what application) or closed."
@@ -467,14 +471,14 @@
"access IMS call service""Allows the app to use the IMS service to make calls without your intervention.""read phone status and identity"
- "Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call."
+ "Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active and the remote number connected by a call.""read basic telephony status and identity""Allows the app to access the basic telephony features of the device.""route calls through the system""Allows the app to route its calls through the system in order to improve the calling experience.""see and control calls through the system.""Allows the app to see and control ongoing calls on the device. This includes information such as call numbers for calls and the state of the calls."
- "exempt from audio record restrictions"
+ "exempt from audio recording restrictions""Exempt the app from restrictions to record audio.""continue a call from another app""Allows the app to continue a call which was started in another app."
@@ -501,64 +505,64 @@
"Allows the app to change your Android TV device\'s time zone.""Allows the app to change the phone\'s time zone.""find accounts on the device"
- "Allows the app to get the list of accounts known by the tablet. This may include any accounts created by applications you have installed."
- "Allows the app to get the list of accounts known by your Android TV device. This may include any accounts created by applications you have installed."
- "Allows the app to get the list of accounts known by the phone. This may include any accounts created by applications you have installed."
+ "Allows the app to get the list of accounts known by the tablet. This may include any accounts created by applications that you have installed."
+ "Allows the app to get the list of accounts known by your Android TV device. This may include any accounts created by applications that you have installed."
+ "Allows the app to get the list of accounts known by the phone. This may include any accounts created by applications that you have installed.""view network connections""Allows the app to view information about network connections such as which networks exist and are connected.""have full network access"
- "Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet."
+ "Allows the app to create network sockets and use customised network protocols. The browser and other applications provide means to send data to the Internet, so this permission is not required to send data to the Internet.""change network connectivity""Allows the app to change the state of network connectivity.""change tethered connectivity""Allows the app to change the state of tethered network connectivity.""view Wi-Fi connections""Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices."
- "connect and disconnect from Wi-Fi"
+ "Connect and disconnect from Wi-Fi""Allows the app to connect to and disconnect from Wi-Fi access points and to make changes to device configuration for Wi-Fi networks.""allow Wi-Fi Multicast reception""Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your tablet. It uses more power than the non-multicast mode.""Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your Android TV device. It uses more power than the non-multicast mode.""Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your phone. It uses more power than the non-multicast mode."
- "access Bluetooth settings"
- "Allows the app to configure the local Bluetooth tablet, and to discover and pair with remote devices."
- "Allows the app to configure Bluetooth on your Android TV device, and to discover and pair with remote devices."
- "Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices."
+ "Access Bluetooth settings"
+ "Allows the app to configure the local Bluetooth tablet and to discover and pair with remote devices."
+ "Allows the app to configure Bluetooth on your Android TV device and to discover and pair with remote devices."
+ "Allows the app to configure the local Bluetooth phone and to discover and pair with remote devices.""connect and disconnect from WiMAX""Allows the app to determine whether WiMAX is enabled and information about any WiMAX networks that are connected.""change WiMAX state""Allows the app to connect the tablet to and disconnect the tablet from WiMAX networks.""Allows the app to connect your Android TV device to and disconnect your Android TV device from WiMAX networks.""Allows the app to connect the phone to and disconnect the phone from WiMAX networks."
- "pair with Bluetooth devices"
- "Allows the app to view the configuration of Bluetooth on the tablet, and to make and accept connections with paired devices."
- "Allows the app to view the configuration of Bluetooth on your Android TV device, and to make and accept connections with paired devices."
- "Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices."
+ "Pair with Bluetooth devices"
+ "Allows the app to view the configuration of Bluetooth on the tablet and to make and accept connections with paired devices."
+ "Allows the app to view the configuration of Bluetooth on your Android TV device and to make and accept connections with paired devices."
+ "Allows the app to view the configuration of the Bluetooth on the phone and to make and accept connections with paired devices.""discover and pair nearby Bluetooth devices""Allows the app to discover and pair nearby Bluetooth devices""connect to paired Bluetooth devices""Allows the app to connect to paired Bluetooth devices""advertise to nearby Bluetooth devices""Allows the app to advertise to nearby Bluetooth devices"
- "determine relative position between nearby Ultra-Wideband devices"
- "Allow the app to determine relative position between nearby Ultra-Wideband devices"
+ "determine relative position between nearby ultra-wideband devices"
+ "Allow the app to determine relative position between nearby ultra-wideband devices""interact with nearby Wi‑Fi devices"
- "Allows the app to advertise, connect, and determine the relative position of nearby Wi‑Fi devices"
- "Preferred NFC Payment Service Information"
- "Allows the app to get preferred nfc payment service information like registered aids and route destination."
- "control Near Field Communication"
- "Allows the app to communicate with Near Field Communication (NFC) tags, cards, and readers."
+ "Allows the app to advertise, connect and determine the relative position of nearby Wi‑Fi devices"
+ "Preferred NFC payment service information"
+ "Allows the app to get preferred NFC payment service information, such as registered aids and route destination."
+ "control Near-Field Communication"
+ "Allows the app to communicate with Near Field Communication (NFC) tags, cards and readers.""disable your screen lock""Allows the app to disable the keylock and any associated password security. For example, the phone disables the keylock when receiving an incoming phone call, then re-enables the keylock when the call is finished.""request screen lock complexity"
- "Allows the app to learn the screen lock complexity level (high, medium, low or none), which indicates the possible range of length and type of the screen lock. The app can also suggest to users that they update the screen lock to a certain level but users can freely ignore and navigate away. Note that the screen lock is not stored in plaintext so the app does not know the exact password."
+ "Allows the app to learn the screen lock complexity level (high, medium, low or none), which indicates the possible range of length and type of the screen lock. The app can also suggest to users that they update the screen lock to a certain level but users can freely ignore and navigate away. Note that the screen lock is not stored in plain text so the app does not know the exact password.""show notifications""Allows the app to show notifications""use biometric hardware""Allows the app to use biometric hardware for authentication""manage fingerprint hardware""Allows the app to invoke methods to add and delete fingerprint templates for use."
- "use fingerprint hardware"
+ "Use fingerprint hardware""Allows the app to use fingerprint hardware for authentication""modify your music collection""Allows the app to modify your music collection."
@@ -570,48 +574,46 @@
"Allows the app to read locations from your media collection.""Use biometrics""Use biometrics or screen lock"
- "Verify it’s you"
+ "Verify that it’s you""Use your biometric to continue""Use your biometric or screen lock to continue""Biometric hardware unavailable"
- "Authentication canceled"
- "Not recognized"
- "Authentication canceled"
- "No pin, pattern, or password set"
- "Error authenticating"
+ "Authentication cancelled"
+ "Not recognised"
+ "Authentication cancelled"
+ "No pin, pattern or password set"
+ "Error while authenticating""Use screen lock""Enter your screen lock to continue""Press firmly on the sensor"
- "Can’t recognize fingerprint. Try again."
+ "Couldn\'t process fingerprint. Please try again.""Clean fingerprint sensor and try again""Clean sensor and try again""Press firmly on the sensor""Finger moved too slow. Please try again.""Try another fingerprint""Too bright"
- "Power press detected""Try adjusting""Change the position of your finger slightly each time"
- "Fingerprint not recognized"
- "Fingerprint not recognized"
+ "Fingerprint not recognised"
+ "Fingerprint not recognised""Fingerprint authenticated""Face authenticated"
- "Face authenticated, please press confirm"
+ "Face authenticated. Please press confirm""Fingerprint hardware not available.""Can’t set up fingerprint"
- "Fingerprint setup timed out. Try again."
- "Fingerprint operation canceled."
- "Fingerprint operation canceled by user."
- "Too many attempts. Use screen lock instead."
- "Too many attempts. Use screen lock instead."
- "Can’t process fingerprint. Try again."
+ "Fingerprint timeout reached. Try again."
+ "Fingerprint operation cancelled."
+ "Fingerprint operation cancelled by user."
+ "Too many attempts. Try again later."
+ "Too many attempts. Fingerprint sensor disabled."
+ "Try again.""No fingerprints enrolled.""This device does not have a fingerprint sensor.""Sensor temporarily disabled.""Can’t use fingerprint sensor. Visit a repair provider"
- "Power button pressed""Finger %d""Use fingerprint""Use fingerprint or screen lock"
@@ -632,40 +634,33 @@
"Fingerprint Unlock""Can’t use fingerprint sensor""Visit a repair provider."
- "Can’t create your face model. Try again."
+ "Couldn’t capture accurate face data. Try again.""Too bright. Try gentler lighting."
- "Not enough light"
- "Move phone farther away"
- "Move phone closer"
- "Move phone higher"
- "Move phone lower"
- "Move phone to your left"
- "Move phone to your right"
+ "Too dark. Try brighter lighting."
+ "Move phone farther away."
+ "Move phone closer."
+ "Move phone higher."
+ "Move phone lower."
+ "Move phone to the left."
+ "Move phone to the right.""Please look more directly at your device."
- "Can’t see your face. Hold your phone at eye level."
+ "Position your face directly in front of the phone.""Too much motion. Hold phone steady.""Please re-enroll your face."
- "Can’t recognize face. Try again."
- "Change the position of your head slightly"
- "Look more directly at your phone"
- "Look more directly at your phone"
- "Look more directly at your phone"
+ "No longer able to recognise face. Try again."
+ "Too similar, please change your pose."
+ "Turn your head a little less."
+ "Tilt your head a little less."
+ "Turn your head a little less.""Remove anything hiding your face.""Clean the top of your screen, including the black bar"
-
-
-
-
- "Can’t create your face model. Try again."
- "Dark glasses detected. Your face must be fully visible."
- "Face covering detected. Your face must be fully visible.""Can’t verify face. Hardware not available.""Try Face Unlock again""Can’t store new face data. Delete an old one first."
- "Face operation canceled."
- "Face Unlock canceled by user"
+ "Face operation cancelled."
+ "Face Unlock cancelled by user""Too many attempts. Try again later.""Too many attempts. Face Unlock disabled.""Too many attempts. Enter screen lock instead."
@@ -685,7 +680,7 @@
"read sync settings""Allows the app to read the sync settings for an account. For example, this can determine whether the People app is synced with an account.""toggle sync on and off"
- "Allows an app to modify the sync settings for an account. For example, this can be used to enable sync of the People app with an account."
+ "Allows an app to modify the sync settings for an account. For example, this can be used to enable syncing of the People app with an account.""read sync statistics""Allows an app to read the sync stats for an account, including the history of sync events and how much data is synced.""read the contents of your shared storage"
@@ -726,8 +721,8 @@
"Allows the holder to bind to the top-level interface of a condition provider service. Should never be needed for normal apps.""bind to a dream service""Allows the holder to bind to the top-level interface of a dream service. Should never be needed for normal apps."
- "invoke the carrier-provided configuration app"
- "Allows the holder to invoke the carrier-provided configuration app. Should never be needed for normal apps."
+ "invoke the operator-provided configuration app"
+ "Allows the holder to invoke the operator-provided configuration app. Should never be needed for normal apps.""listen for observations on network conditions""Allows an application to listen for observations on network conditions. Should never be needed for normal apps.""change input device calibration"
@@ -738,10 +733,10 @@
"Allows this application to receive information about current Android Beam transfers""remove DRM certificates""Allows an application to remove DRM certficates. Should never be needed for normal apps."
- "bind to a carrier messaging service"
- "Allows the holder to bind to the top-level interface of a carrier messaging service. Should never be needed for normal apps."
- "bind to carrier services"
- "Allows the holder to bind to carrier services. Should never be needed for normal apps."
+ "bind to an operator messaging service"
+ "Allows the holder to bind to the top-level interface of an operator messaging service. Should never be needed for normal apps."
+ "bind to operator services"
+ "Allows the holder to bind to operator services. Should never be needed for normal apps.""access Do Not Disturb""Allows the app to read and write Do Not Disturb configuration.""start view permission usage"
@@ -755,12 +750,12 @@
"Set password rules""Control the length and the characters allowed in screen lock passwords and PINs.""Monitor screen unlock attempts"
- "Monitor the number of incorrect passwords typed when unlocking the screen, and lock the tablet or erase all the tablet\'s data if too many incorrect passwords are typed."
- "Monitor the number of incorrect passwords typed when unlocking the screen, and lock your Android TV device or erase all your Android TV device\'s data if too many incorrect passwords are typed."
- "Monitor the number of incorrect passwords typed. when unlocking the screen, and lock the infotainment system or erase all the infotainment system\'s data if too many incorrect passwords are typed."
- "Monitor the number of incorrect passwords typed. when unlocking the screen, and lock the phone or erase all the phone\'s data if too many incorrect passwords are typed."
+ "Monitor the number of incorrect passwords typed when unlocking the screen and lock the tablet or erase all the tablet\'s data if too many incorrect passwords are typed."
+ "Monitor the number of incorrect passwords typed when unlocking the screen, and lock your Android TV device or delete all of your Android TV device\'s data if too many incorrect passwords are typed."
+ "Monitor the number of incorrect passwords typed when unlocking the screen, and lock the infotainment system or erase all the infotainment system\'s data if too many incorrect passwords are typed."
+ "Monitor the number of incorrect passwords typed when unlocking the screen and lock the phone or erase all the phone\'s data if too many incorrect passwords are typed.""Monitor the number of incorrect passwords typed when unlocking the screen, and lock the tablet or erase all this user\'s data if too many incorrect passwords are typed."
- "Monitor the number of incorrect passwords typed when unlocking the screen, and lock your Android TV device or erase all this user\'s data if too many incorrect passwords are typed."
+ "Monitor the number of incorrect passwords typed when unlocking the screen, and lock your Android TV device or delete all of this user\'s data if too many incorrect passwords are typed.""Monitor the number of incorrect passwords typed when unlocking the screen, and lock the infotainment system or erase all this profile\'s data if too many incorrect passwords are typed.""Monitor the number of incorrect passwords typed when unlocking the screen, and lock the phone or erase all this user\'s data if too many incorrect passwords are typed.""Change the screen lock"
@@ -769,19 +764,19 @@
"Control how and when the screen locks.""Erase all data""Erase the tablet\'s data without warning by performing a factory data reset."
- "Erase your Android TV device\'s data without warning by performing a factory data reset."
+ "Delete your Android TV device\'s data without warning by performing a factory data reset.""Erase the infotainment system\'s data without warning by performing a factory data reset.""Erase the phone\'s data without warning by performing a factory data reset.""Erase profile data""Erase user data""Erase this user\'s data on this tablet without warning."
- "Erase this user\'s data on this Android TV device without warning."
+ "Delete this user\'s data on this Android TV device without warning.""Erase this profile\'s data on this infotainment system without warning.""Erase this user\'s data on this phone without warning.""Set the device global proxy""Set the device global proxy to be used while policy is enabled. Only the device owner can set the global proxy."
- "Set screen lock password expiration"
- "Change how frequently the screen lock password, PIN, or pattern must be changed."
+ "Set screen lock password expiry"
+ "Change how frequently the screen lock password, PIN or pattern must be changed.""Set storage encryption""Require that stored app data be encrypted.""Disable cameras"
@@ -792,8 +787,8 @@
"Home""Mobile""Work"
- "Work Fax"
- "Home Fax"
+ "Work fax"
+ "Home fax""Pager""Other""Custom"
@@ -835,8 +830,8 @@
"Home""Mobile""Work"
- "Work Fax"
- "Home Fax"
+ "Work fax"
+ "Home fax""Pager""Other""Callback"
@@ -847,7 +842,7 @@
"Other Fax""Radio""Telex"
- "TTY TDD"
+ "TTY/TDD""Work Mobile""Work Pager""Assistant"
@@ -878,7 +873,7 @@
"Hangouts""ICQ""Jabber"
- "NetMeeting"
+ "Net Meeting""Work""Other""Custom"
@@ -905,12 +900,12 @@
"Type PIN code""Type PUK and new PIN code""PUK code"
- "New PIN code"
+ "New PIN Code""Tap to type password""Type password to unlock""Type PIN to unlock""Incorrect PIN code."
- "To unlock, press Menu then 0."
+ "To unlock, press Menu, then 0.""Emergency number""No service""Screen locked."
@@ -924,33 +919,33 @@
"Try again""Unlock for all features and data""Maximum Face Unlock attempts exceeded"
- "No SIM"
- "No SIM in tablet."
- "No SIM in your Android TV device."
- "No SIM in phone."
- "Add a SIM."
- "The SIM is missing or not readable. Add a SIM."
- "Unusable SIM."
- "Your SIM has been permanently deactivated.\n Contact your wireless service provider for another SIM."
+ "No SIM card"
+ "No SIM card in tablet."
+ "No SIM card in your Android TV device."
+ "No SIM card in phone."
+ "Insert a SIM card."
+ "The SIM card is missing or not readable. Insert a SIM card."
+ "Unusable SIM card."
+ "Your SIM card has been permanently disabled.\n Contact your wireless service provider for another SIM card.""Previous track""Next track""Pause""Play""Stop""Rewind"
- "Fast forward"
+ "Fast-forward""Emergency calls only""Network locked"
- "SIM is PUK-locked."
+ "SIM card is PUK-locked.""See the User Guide or contact Customer Care."
- "SIM is locked."
- "Unlocking SIM…"
+ "SIM card is locked."
+ "Unlocking SIM card…""You have incorrectly drawn your unlock pattern %1$d times. \n\nTry again in %2$d seconds.""You have incorrectly typed your password %1$d times. \n\nTry again in %2$d seconds.""You have incorrectly typed your PIN %1$d times. \n\nTry again in %2$d seconds."
- "You have incorrectly drawn your unlock pattern %1$d times. After %2$d more unsuccessful attempts, you will be asked to unlock your tablet using your Google signin.\n\n Try again in %3$d seconds."
- "You have incorrectly drawn your unlock pattern %1$d times. After %2$d more unsuccessful attempts, you will be asked to unlock your Android TV device using your Google signin.\n\n Try again in %3$d seconds."
- "You have incorrectly drawn your unlock pattern %1$d times. After %2$d more unsuccessful attempts, you will be asked to unlock your phone using your Google signin.\n\n Try again in %3$d seconds."
+ "You have incorrectly drawn your unlock pattern %1$d times. After %2$d more unsuccessful attempts, you will be asked to unlock your tablet using your Google sign-in.\n\n Try again in %3$d seconds."
+ "You have drawn your unlock pattern incorrectly %1$d times. After %2$d more unsuccessful attempts, you will be asked to unlock your Android TV device using your Google sign-in.\n\n Try again in %3$d seconds."
+ "You have drawn your unlock pattern incorrectly %1$d times. After %2$d more unsuccessful attempts, you will be asked to unlock your phone using your Google sign-in.\n\n Please try again in %3$d seconds.""You have incorrectly attempted to unlock the tablet %1$d times. After %2$d more unsuccessful attempts, the tablet will be reset to factory default and all user data will be lost.""You have incorrectly attempted to unlock your Android TV device %1$d times. After %2$d more unsuccessful attempts, your Android TV device will be reset to factory default and all user data will be lost.""You have incorrectly attempted to unlock the phone %1$d times. After %2$d more unsuccessful attempts, the phone will be reset to factory default and all user data will be lost."
@@ -958,15 +953,15 @@
"You have incorrectly attempted to unlock your Android TV device %d times. Your Android TV device will now be reset to factory default.""You have incorrectly attempted to unlock the phone %d times. The phone will now be reset to factory default.""Try again in %d seconds."
- "Forgot pattern?"
+ "Forgotten pattern?""Account unlock""Too many pattern attempts"
- "To unlock, sign in with your Google account."
+ "To unlock, sign in with your Google Account.""Username (email)""Password""Sign in""Invalid username or password."
- "Forgot your username or password?\nVisit ""google.com/accounts/recovery""."
+ "Forgot your username or password?\nVisit ""google.co.uk/accounts/recovery"".""Checking…""Unlock""Sound on"
@@ -978,7 +973,7 @@
"Pattern completed""Pattern area.""%1$s. Widget %2$d of %3$d."
- "Add widget."
+ "Add widget""Empty""Unlock area expanded.""Unlock area collapsed."
@@ -995,8 +990,8 @@
"Pattern unlock.""Face Unlock.""Pin unlock."
- "Sim Pin unlock."
- "Sim Puk unlock."
+ "SIM PIN unlock."
+ "SIM PUK unlock.""Password unlock.""Pattern area.""Slide area."
@@ -1018,18 +1013,18 @@
"Stay on this Page""%s\n\nAre you sure you want to navigate away from this page?""Confirm"
- "Tip: Double-tap to zoom in and out."
- "Autofill"
- "Set up Autofill"
+ "Tip: double-tap to zoom in and out."
+ "Auto-fill"
+ "Set up Auto-fill""Autofill with %1$s"" ""$1$2$3"", ""$1$2$3""Province"
- "Postal code"
+ "Postcode""State"
- "ZIP code"
+ "Zip code""County""Island""District"
@@ -1041,15 +1036,15 @@
"read your Web bookmarks and history""Allows the app to read the history of all URLs that the Browser has visited, and all of the Browser\'s bookmarks. Note: this permission may not be enforced by third-party browsers or other applications with web browsing capabilities.""write web bookmarks and history"
- "Allows the app to modify the Browser\'s history or bookmarks stored on your tablet. This may allow the app to erase or modify Browser data. Note: this permission may note be enforced by third-party browsers or other applications with web browsing capabilities."
- "Allows the app to modify the Browser\'s history or bookmarks stored on your Android TV device. This may allow the app to erase or modify Browser data. Note: this permission may note be enforced by third-party browsers or other applications with web browsing capabilities."
- "Allows the app to modify the Browser\'s history or bookmarks stored on your phone. This may allow the app to erase or modify Browser data. Note: this permission may note be enforced by third-party browsers or other applications with web browsing capabilities."
+ "Allows the app to modify the Browser\'s history or bookmarks stored on your tablet. This may allow the app to delete or modify Browser data. Note: this permission may not be enforced by third-party browsers or other applications with web browsing capabilities."
+ "Allows the app to modify the browser\'s history or bookmarks stored on your Android TV device. This may allow the app to delete or modify browser data. Note: This permission may not be enforced by third-party browsers or other applications with web browsing capabilities."
+ "Allows the app to modify the Browser\'s history or bookmarks stored on your phone. This may allow the app to delete or modify Browser data. Note: this permission may not be enforced by third-party browsers or other applications with web browsing capabilities.""set an alarm""Allows the app to set an alarm in an installed alarm clock app. Some alarm clock apps may not implement this feature.""add voicemail""Allows the app to add messages to your voicemail inbox."
- "modify Browser geolocation permissions"
- "Allows the app to modify the Browser\'s geolocation permissions. Malicious apps may use this to allow sending location information to arbitrary web sites."
+ "Modify Browser geo-location permissions"
+ "Allows the app to modify the Browser\'s geo-location permissions. Malicious apps may use this to allow sending location information to arbitrary websites.""Do you want the browser to remember this password?""Not now""Remember"
@@ -1058,9 +1053,9 @@
"Text copied to clipboard.""%1$s pasted from %2$s""%1$s pasted from your clipboard"
- "%1$s pasted text you copied"
- "%1$s pasted an image you copied"
- "%1$s pasted content you copied"
+ "%1$s pasted text that you copied"
+ "%1$s pasted an image that you copied"
+ "%1$s pasted content that you copied""More""Menu+""Meta+"
@@ -1089,7 +1084,7 @@
"Older""on %s""at %s"
- "in %s"
+ "in%s""day""days""hour"
@@ -1110,7 +1105,7 @@
"in %dm""in %dh""in %dd"
- "in %dy"
+ "in %d y""{count,plural, =1{# minute ago}other{# minutes ago}}""{count,plural, =1{# hour ago}other{# hours ago}}""{count,plural, =1{# day ago}other{# days ago}}"
@@ -1136,13 +1131,13 @@
"Failed to copy to clipboard""Paste""Paste as plain text"
- "Replace…"
+ "Replace...""Delete""Copy URL""Select text""Undo""Redo"
- "Autofill"
+ "Auto-fill""Text selection""Add to dictionary""Delete"
@@ -1152,7 +1147,7 @@
"Switch input method""Storage space running out""Some system functions may not work"
- "Not enough storage for the system. Make sure you have 250MB of free space and restart."
+ "Not enough storage for the system. Make sure that you have 250 MB of free space and restart.""%1$s is running""Tap for more information or to stop the app.""OK"
@@ -1167,7 +1162,7 @@
"not checked""selected""not selected"
- "in progress"
+ "In progress""Complete action using""Complete action using %1$s""Complete action"
@@ -1230,8 +1225,8 @@
"%1$s was built for an incompatible version of the Android OS and may behave unexpectedly. An updated version of the app may be available.""Always show""Check for update"
- "The app %1$s (process %2$s) has violated its self-enforced StrictMode policy."
- "The process %1$s has has violated its self-enforced StrictMode policy."
+ "The app %1$s (process %2$s) has violated its self-enforced Strict Mode policy."
+ "The process %1$s has violated its self-enforced StrictMode policy.""Phone is updating…""Tablet is updating…""Device is updating…"
@@ -1239,18 +1234,19 @@
"Android is starting…""Tablet is starting…""Device is starting…"
- "Optimizing storage."
+ "Optimising storage.""Finishing system update…""%1$s is upgrading…"
- "Optimizing app %1$d of %2$d."
+ "Optimising app %1$d of %2$d.""Preparing %1$s.""Starting apps.""Finishing boot."
- "You pressed the power button — this usually turns off the screen.\n\nTry tapping lightly while setting up your fingerprint."
- "To end setup, turn off screen"
- "Turn off"
+ "Continue setup?"
+ "You pressed the power button – this usually turns off the screen.\n\nTry tapping lightly while setting up your fingerprint."
+ "Turn off screen"
+ "Continue setup""Continue verifying your fingerprint?"
- "You pressed the power button — this usually turns off the screen.\n\nTry tapping lightly to verify your fingerprint."
+ "You pressed the power button – this usually turns off the screen.\n\nTry tapping lightly to verify your fingerprint.""Turn off screen""Continue""%1$s running"
@@ -1265,8 +1261,8 @@
"Heap dump collected. Tap to share.""Share heap dump?""The %1$s process has exceeded its memory limit of %2$s. A heap dump is available for you to share with its developer. Be careful: this heap dump can contain any of your personal information that the application has access to."
- "The %1$s process has exceeded its memory limit of %2$s. A heap dump is available for you to share. Be careful: this heap dump can contain any sensitive personal information that the process has access to, which may include things you’ve typed."
- "A heap dump of %1$s’s process is available for you to share. Be careful: this heap dump may contain any sensitive personal information that the process has access to, which may include things you’ve typed."
+ "The %1$s process has exceeded its memory limit of %2$s. A heap dump is available for you to share. Be careful: this heap dump can contain any sensitive personal information that the process has access to, which may include things that you’ve typed."
+ "A heap dump of %1$s’s process is available for you to share. Be careful: this heap dump may contain any sensitive personal information that the process has access to, which may include things that you’ve typed.""Choose an action for text""Ringer volume""Media volume"
@@ -1286,22 +1282,22 @@
"Default (%1$s)""None""Ringtones"
- "Alarm sounds"
- "Notification sounds"
+ "Alarm Sounds"
+ "Notification Sounds""Unknown"
- "Sign in to Wi-Fi network"
+ "Sign in to a Wi-Fi network""Sign in to network"
- "%1$s has no internet access"
+ "%1$s has no Internet access""Tap for options"
- "Mobile network has no internet access"
- "Network has no internet access"
+ "Mobile network has no Internet access"
+ "Network has no Internet access""Private DNS server cannot be accessed""%1$s has limited connectivity""Tap to connect anyway""Switched to %1$s"
- "Device uses %1$s when %2$s has no internet access. Charges may apply."
+ "Device uses %1$s when %2$s has no Internet access. Charges may apply.""Switched from %1$s to %2$s""mobile data"
@@ -1327,14 +1323,14 @@
"You can change this later in Settings > Apps""Always allow""Never Allow"
- "SIM removed"
- "The mobile network will be unavailable until you restart with a valid SIM."
+ "SIM card removed"
+ "The mobile network will be unavailable until you restart with a valid SIM card inserted.""Done"
- "SIM added"
+ "SIM card added""Restart your device to access the mobile network.""Restart""Activate mobile service"
- "Download the carrier app to activate your new SIM"
+ "Download the mobile app to activate your new SIM""Download the %1$s app to activate your new SIM""Download app""New SIM inserted"
@@ -1345,7 +1341,7 @@
"Done""NEW: ""Provided by %1$s."
- "No permissions required"
+ "No permission required""this may cost you money""OK""Charging this device via USB"
@@ -1357,7 +1353,7 @@
"USB accessory connected""Tap for more options.""Charging connected device. Tap for more options."
- "Analog audio accessory detected"
+ "Analogue audio accessory detected""The attached device is not compatible with this phone. Tap to learn more.""USB debugging connected""Tap to turn off USB debugging"
@@ -1395,22 +1391,22 @@
"Turn off""Checking %s…""Reviewing current content"
- "Analyzing media storage"
+ "Analysing media storage""New %s""%s isn’t working""Tap to set up""Select to set up""You may need to reformat the device. Tap to eject."
- "For storing photos, videos, music and more"
+ "For transferring photos and media""Browse media files""Issue with %s""%s isn’t working""Tap to fix""%s is corrupt. Select to fix.""You may need to reformat the device. Tap to eject."
- "%s detected"
+ "Unsupported %s""%s isn’t working"
- "Tap to set up ."
+ "This device doesn’t support this %s. Tap to set up in a supported format.""Select to set up %s in a supported format.""You may need to reformat the device""%s unexpectedly removed"
@@ -1419,7 +1415,7 @@
"Some functionality may not work properly. Insert new storage.""Ejecting %s""Don’t remove"
- "Set up"
+ "Set-up""Eject""Explore""Switch output"
@@ -1427,7 +1423,7 @@
"Insert device again""Moving %s""Moving data"
- "Content transfer is done"
+ "Content transfer is finished""Content moved to %s""Couldn’t move content""Try moving content again"
@@ -1451,8 +1447,8 @@
"Allows an application to request installation of packages.""request delete packages""Allows an application to request deletion of packages."
- "ask to ignore battery optimizations"
- "Allows an app to ask for permission to ignore battery optimizations for that app."
+ "ask to ignore battery optimisations"
+ "Allows an app to ask for permission to ignore battery optimisations for that app.""query all packages""Allows an app to see all installed packages.""Tap twice for zoom control"
@@ -1464,9 +1460,9 @@
"Done""Prev""Execute"
- "Dial number\nusing %s"
- "Create contact\nusing %s"
- "The following one or more apps request permission to access your account, now and in the future."
+ "Dial number\n using %s"
+ "Create contact\n using %s"
+ "The following one or more applications request permission to access your account, now and in the future.""Do you want to allow this request?""Access request""Allow"
@@ -1476,7 +1472,7 @@
"Permission requested by %1$s\nfor account %2$s.""You\'re using this app outside of your work profile""You\'re using this app in your work profile"
- "Input method"
+ "Input Method""Sync""Accessibility""Wallpaper"
@@ -1518,7 +1514,7 @@
"Requested by %1$s (%2$s)""Yes""No"
- "Delete limit exceeded"
+ "Deletion limit exceeded""There are %1$d deleted items for %2$s, account %3$s. What do you want to do?""Delete the items""Undo the deletes"
@@ -1534,8 +1530,8 @@
"Decrease minute""Increase hour""Decrease hour"
- "Set PM"
- "Set AM"
+ "Set p.m."
+ "Set a.m.""Increase month""Decrease month""Increase day"
@@ -1586,16 +1582,16 @@
"This certificate is valid.""Issued to:""Common name:"
- "Organization:"
- "Organizational unit:"
+ "Organisation:"
+ "Organisational unit:""Issued by:""Validity:""Issued on:""Expires on:""Serial number:""Fingerprints:"
- "SHA-256 fingerprint:"
- "SHA-1 fingerprint:"
+ "SHA-256 fingerprint"
+ "SHA-1 fingerprint""See all""Choose activity""Share with"
@@ -1609,7 +1605,7 @@
"TV""Phone""Dock speakers"
- "External Device"
+ "HDMI""Headphones""USB""System"
@@ -1639,17 +1635,17 @@
"Enter SIM PIN""Enter PIN""Enter Password"
- "SIM is now disabled. Enter PUK code to continue. Contact carrier for details."
+ "SIM is now disabled. Enter PUK code to continue. Contact operator for details.""Enter desired PIN code""Confirm desired PIN code"
- "Unlocking SIM…"
+ "Unlocking SIM card…""Incorrect PIN code.""Type a PIN that is 4 to 8 numbers.""PUK code should be 8 numbers.""Re-enter the correct PUK code. Repeated attempts will permanently disable the SIM."
- "PIN codes does not match"
+ "PIN codes do not match""Too many pattern attempts"
- "To unlock, sign in with your Google account."
+ "To unlock, sign in with your Google Account.""Username (email)""Password""Sign in"
@@ -1666,13 +1662,13 @@
"You have incorrectly attempted to unlock your Android TV device %d times. Your Android TV device will now be reset to factory default.""You have incorrectly attempted to unlock the phone %d times. The phone will now be reset to factory default.""You have incorrectly drawn your unlock pattern %1$d times. After %2$d more unsuccessful attempts, you will be asked to unlock your tablet using an email account.\n\n Try again in %3$d seconds."
- "You have incorrectly drawn your unlock pattern %1$d times. After %2$d more unsuccessful attempts, you will be asked to unlock your Android TV device using an email account.\n\n Try again in %3$d seconds."
+ "You have drawn your unlock pattern incorrectly %1$d times. After %2$d more unsuccessful attempts, you will be asked to unlock your Android TV device using an email account.\n\n Try again in %3$d seconds.""You have incorrectly drawn your unlock pattern %1$d times. After %2$d more unsuccessful attempts, you will be asked to unlock your phone using an email account.\n\n Try again in %3$d seconds."" — ""Remove""Raise volume above recommended level?\n\nListening at high volume for long periods may damage your hearing.""Use Accessibility Shortcut?"
- "When the shortcut is on, pressing both volume buttons for 3 seconds will start an accessibility feature."
+ "When the shortcut is on, pressing both volume buttons for three seconds will start an accessibility feature.""Turn on shortcut for accessibility features?""Holding down both volume keys for a few seconds turns on accessibility features. This may change how your device works.\n\nCurrent features:\n%1$s\nYou can change selected features in Settings > Accessibility."" • %1$s\n"
@@ -1691,7 +1687,7 @@
"Allow""Deny""Tap a feature to start using it:"
- "Choose features to use with the accessibility button"
+ "Choose features to use with the Accessibility button""Choose features to use with the volume key shortcut""%s has been turned off""Edit shortcuts"
@@ -1700,15 +1696,15 @@
"Use Shortcut""Colour inversion""Colour correction"
- "One-Handed mode"
+ "One-handed mode""Extra dim""Held volume keys. %1$s turned on.""Held volume keys. %1$s turned off.""Press and hold both volume keys for three seconds to use %1$s"
- "Choose a feature to use when you tap the accessibility button:"
+ "Choose a feature to use when you tap the Accessibility button:""Choose a feature to use with the accessibility gesture (swipe up from the bottom of the screen with two fingers):""Choose a feature to use with the accessibility gesture (swipe up from the bottom of the screen with three fingers):"
- "To switch between features, touch & hold the accessibility button."
+ "To switch between features, touch and hold the Accessibility button.""To switch between features, swipe up with two fingers and hold.""To switch between features, swipe up with three fingers and hold.""Magnification"
@@ -1760,9 +1756,9 @@
"Junior Legal""Ledger""Tabloid"
- "Index Card 3x5"
- "Index Card 4x6"
- "Index Card 5x8"
+ "Index Card 3 x 5"
+ "Index Card 4 x 6"
+ "Index Card 5 x 8""Monarch""Quarto""Foolscap"
@@ -1825,12 +1821,12 @@
"Enter admin PIN""Enter PIN""Incorrect"
- "Current PIN"
+ "Current PIN:""New PIN""Confirm new PIN""Create a PIN for modifying restrictions""PINs don\'t match. Try again."
- "PIN is too short. Must be at least 4 digits."
+ "PIN is too short. Must be at least four digits.""Try again later""Viewing full screen""To exit, swipe down from the top."
@@ -1853,8 +1849,8 @@
"Updated by your admin""Deleted by your admin""OK"
- "Battery Saver turns on Dark theme and limits or turns off background activity, some visual effects, certain features, and some network connections."
- "Battery Saver turns on Dark theme and limits or turns off background activity, some visual effects, certain features, and some network connections."
+ "Battery Saver turns on Dark theme and limits or turns off background activity, some visual effects, certain features and some network connections."
+ "Battery Saver turns on Dark theme and limits or turns off background activity, some visual effects, certain features and some network connections.""To help reduce data usage, Data Saver prevents some apps from sending or receiving data in the background. An app you\'re currently using can access data, but may do so less frequently. This may mean, for example, that images don\'t display until you tap them.""Turn on Data Saver?""Turn on"
@@ -1870,7 +1866,7 @@
"Until %1$s""Until %1$s (next alarm)""Until you turn off"
- "Until you turn off Do Not Disturb"
+ "Until you turn off Do not disturb""%1$s / %2$s""Collapse""Do not disturb"
@@ -1902,33 +1898,32 @@
"USB Peripheral Port""More options""Close overflow"
- "Maximize"
+ "Maximise""Close""%1$s: %2$s""Answer""Video""Decline"
- "Hang Up"
+ "Hang up""Incoming call"
- "Ongoing call"
+ "On-going call""Screening an incoming call"
- "Uncategorized"
+ "Uncategorised""You set the importance of these notifications.""This is important because of the people involved.""Custom app notification"
- "Allow %1$s to create a new User with %2$s (a User with this account already exists) ?"
- "Allow %1$s to create a new User with %2$s ?"
+ "Allow %1$s to create a new User with %2$s (a User with this account already exists)?"
+ "Allow %1$s to create a new User with %2$s?""Add supervised user""Add a language""Region preference""Type language name""Suggested"
- "Suggested""All languages""All regions""Search""App isn’t available"
- "%1$s isn’t available right now. This is managed by %2$s."
+ "%1$s isn’t available at the moment. This is managed by %2$s.""Learn more""Unpause app""Turn on work apps?"
@@ -1941,20 +1936,19 @@
"Camera unavailable""Continue on phone""Microphone unavailable"
- "Play Store unavailable""Android TV settings unavailable""Tablet settings unavailable""Phone settings unavailable"
- "This can’t be accessed on your %1$s at this time. Try on your Android TV device instead."
- "This can’t be accessed on your %1$s at this time. Try on your tablet instead."
- "This can’t be accessed on your %1$s at this time. Try on your phone instead."
+ "This can’t be accessed on your %1$s. Try on your Android TV device instead."
+ "This can’t be accessed on your %1$s. Try on your tablet instead."
+ "This can’t be accessed on your %1$s. Try on your phone instead."
+ "This can’t be accessed on your %1$s at this time. Try on your Android TV device instead."
+ "This can’t be accessed on your %1$s at this time. Try on your tablet instead."
+ "This can’t be accessed on your %1$s at this time. Try on your phone instead.""This app is requesting additional security. Try on your Android TV device instead.""This app is requesting additional security. Try on your tablet instead.""This app is requesting additional security. Try on your phone instead."
- "This can’t be accessed on your %1$s. Try on your Android TV device instead."
- "This can’t be accessed on your %1$s. Try on your tablet instead."
- "This can’t be accessed on your %1$s. Try on your phone instead."
- "This app was built for an older version of Android and may not work properly. Try checking for updates, or contact the developer."
+ "This app was built for an older version of Android and may not work properly. Try checking for updates or contact the developer.""Check for update""You have new messages""Open SMS app to view"
@@ -1992,21 +1986,21 @@
"Type in time""Switch to text input mode for the time input.""Switch to clock mode for the time input."
- "Autofill options"
- "Save for Autofill"
- "Contents can’t be autofilled"
- "No autofill suggestions"
- "{count,plural, =1{One autofill suggestion}other{# autofill suggestions}}"
+ "Auto-fill options"
+ "Save for AutoFill"
+ "Contents can’t be auto-filled"
+ "No auto-fill suggestions"
+ "{count,plural, =1{One auto-fill suggestion}other{# auto-fill suggestions}}""Save to ""%1$s""?""Save %1$s to ""%2$s""?""Save %1$s and %2$s to ""%3$s""?"
- "Save %1$s, %2$s, and %3$s to ""%4$s""?"
+ "Save %1$s, %2$s and %3$s to ""%4$s""?""Update in ""%1$s""?""Update %1$s in ""%2$s""?""Update %1$s and %2$s in ""%3$s""?"
- "Update these items in ""%4$s"": %1$s, %2$s, and %3$s ?"
+ "Update these items in ""%4$s"": %1$s, %2$s and %3$s?""Save"
- "No thanks"
+ "No, thanks""Not now""Never""Update"
@@ -2033,9 +2027,9 @@
"SIM %d not provisioned""SIM %d not allowed""SIM %d not allowed"
- "Popup Window"
+ "Pop-Up Window""+ %1$d"
- "App version downgraded, or isn’t compatible with this shortcut"
+ "App version downgraded or isn’t compatible with this shortcut""Couldn’t restore shortcut because app doesn’t support backup and restore""Couldn’t restore shortcut because of app signature mismatch""Couldn’t restore shortcut"
@@ -2046,21 +2040,21 @@
"Allow %s to access all device logs?""Allow one-time access""Don’t allow"
- "Device logs record what happens on your device. Apps can use these logs to find and fix issues.\n\nSome logs may contain sensitive info, so only allow apps you trust to access all device logs. \n\nIf you don’t allow this app to access all device logs, it can still access its own logs. Your device manufacturer may still be able to access some logs or info on your device."
- "Device logs record what happens on your device. Apps can use these logs to find and fix issues.\n\nSome logs may contain sensitive info, so only allow apps you trust to access all device logs. \n\nIf you don’t allow this app to access all device logs, it can still access its own logs. Your device manufacturer may still be able to access some logs or info on your device.\n\nLearn more at g.co/android/devicelogs."
+ "Device logs record what happens on your device. Apps can use these logs to find and fix issues.\n\nSome logs may contain sensitive info, so only allow apps that you trust to access all device logs. \n\nIf you don’t allow this app to access all device logs, it can still access its own logs. Your device manufacturer may still be able to access some logs or info on your device. Learn more""Don’t show again""%1$s wants to show %2$s slices""Edit""Calls and notifications will vibrate""Calls and notifications will be muted""System changes"
- "Do Not Disturb"
+ "Do not disturb""New: Do Not Disturb is hiding notifications"
- "Tap to learn more and change."
+ "Tap to find out more and change.""Do Not Disturb has changed""Tap to check what\'s blocked.""Review notification settings"
- "Starting in Android 13, apps that you install need your permission to send notifications. Tap to change this permission for existing apps."
+
+ "Remind me later""Dismiss""System"
@@ -2068,17 +2062,17 @@
"Camera""Microphone""displaying over other apps on your screen"
- "Provide Feedback"
- "This notification was promoted to Default. Tap to provide feedback."
- "This notification was demoted to Silent. Tap to provide feedback."
+ "Provide feedback"
+ "This notification was promoted to default. Tap to provide feedback."
+ "This notification was demoted to silent. Tap to provide feedback.""This notification was ranked higher. Tap to provide feedback.""This notification was ranked lower. Tap to provide feedback.""Enhanced notifications"
- "Suggested actions and replies are now provided by enhanced notifications. Android Adaptive Notifications are no longer supported."
+ "Suggested actions and replies are now provided by enhanced notifications. Android adaptive notifications are no longer supported.""OK""Turn off""Learn more"
- "Enhanced notifications replaced Android Adaptive Notifications in Android 12. This feature shows suggested actions and replies, and organizes your notifications.\n\nEnhanced notifications can access notification content, including personal information like contact names and messages. This feature can also dismiss or respond to notifications, such as answering phone calls, and control Do Not Disturb."
+ "Enhanced notifications replaced Android adaptive notifications in Android 12. This feature shows suggested actions and replies, and organises your notifications.\n\nEnhanced notifications can access notification content, including personal information like contact names and messages. This feature can also dismiss or respond to notifications, such as answering phone calls, and control Do Not Disturb.""Routine Mode info notification""Battery may run out before usual charge""Battery Saver activated to extend battery life"
@@ -2116,25 +2110,25 @@
"Recent Apps""Notifications""Quick Settings"
- "Power Dialog"
+ "Power Dialogue""Lock Screen""Screenshot"
- "Headset Hook"
- "On-screen Accessibility Shortcut"
- "On-screen Accessibility Shortcut Chooser"
- "Accessibility Shortcut"
- "Dismiss Notification Shade"
- "Dpad Up"
- "Dpad Down"
- "Dpad Left"
- "Dpad Right"
- "Dpad Center"
+ "Headset hook"
+ "On-screen accessibility shortcut"
+ "On-screen accessibility shortcut chooser"
+ "Accessibility shortcut"
+ "Dismiss notification shade"
+ "Dpad up"
+ "Dpad down"
+ "Dpad left"
+ "Dpad right"
+ "Dpad centre""Caption bar of %1$s.""%1$s has been put into the RESTRICTED bucket""%1$s:""sent an image""Conversation"
- "Group Conversation"
+ "Group conversation""%1$d+""Personal""Work"
@@ -2165,7 +2159,7 @@
"Enter PUK""RUIM network1 unlock PIN""RUIM network2 unlock PIN"
- "RUIM hrpd unlock PIN"
+ "RUIM HRPD unlock PIN""RUIM corporate unlock PIN""RUIM service provider unlock PIN""RUIM unlock PIN"
@@ -2181,8 +2175,8 @@
"IMPI unlock PIN""Network subset service provider unlock PIN""Requesting SIM network unlock…"
- "Requesting SIM network subset unlock …"
- "Requesting SIM service provider un lock…"
+ "Requesting SIM network subset unlock…"
+ "Requesting SIM service provider unlock…""Requesting SIM corporate unlock…""Requesting PUK unlock…""Requesting PUK unlock…"
@@ -2192,14 +2186,14 @@
"Requesting SIM unlock…""Requesting RUIM network1 unlock…""Requesting RUIM network2 unlock…"
- "Requesting RUIM hrpd unlock…"
+ "Requesting RUIM HRPD unlock…""Requesting RUIM service provider unlock…""Requesting RUIM corporate unlock…""Requesting SPN unlock…""Requesting SP Equivalent Home PLMN unlock…""Requesting ICCID unlock…""Requesting IMPI unlock…"
- "Requesting Network subset service provider unlock…"
+ "Requesting network subset service provider unlock…""Requesting RUIM unlock…""Requesting PUK unlock…""Requesting PUK unlock…"
@@ -2207,16 +2201,16 @@
"Requesting PUK unlock…""Requesting PUK unlock…""Requesting PUK unlock…"
- "SIM Network unlock request unsuccessful."
- "SIM Network Subset unlock request unsucces sful."
- "SIM Service Provider unlock request unsu ccessful."
- "SIM Corporate unlock request unsuccessful."
+ "SIM network unlock request unsuccessful."
+ "SIM network subset unlock request unsuccessful."
+ "SIM service provider unlock request unsuccessful."
+ "SIM corporate unlock request unsuccessful.""SIM unlock request unsuccessful."
- "RUIM Network1 unlock request unsuccessful."
- "RUIM Network2 unlock request unsuccessful."
- "RUIM Hrpd unlock request unsuccessful."
- "RUIM Corporate unlock request unsuccessful."
- "RUIM Service Provider unlock request un successful."
+ "RUIM network1 unlock request unsuccessful."
+ "RUIM network2 unlock request unsuccessful."
+ "RUIM HRPD unlock request unsuccessful."
+ "RUIM corporate unlock request unsuccessful."
+ "RUIM service provider unlock request unsuccessful.""RUIM unlock request unsuccessful.""PUK unlock unsuccessful.""PUK unlock unsuccessful."
@@ -2234,16 +2228,16 @@
"ICCID unlock request unsuccessful.""IMPI unlock request unsuccessful.""Network subset service provider unlock request unsuccessful."
- "SIM Network unlock successful."
- "SIM Network Subset unlock successful."
- "SIM Service Provider unlock successful ."
- "SIM Corporate unlock successful."
+ "SIM network unlock successful."
+ "SIM network subset unlock successful."
+ "SIM service provider unlock successful ."
+ "SIM corporate unlock successful.""SIM unlock successful."
- "RUIM Network1 unlock successful."
- "RUIM Network2 unlock successful."
- "RUIM Hrpd unlock successful."
- "RUIM Service Provider unlock successf ul."
- "RUIM Corporate unlock successful."
+ "RUIM network1 unlock successful."
+ "RUIM network2 unlock successful."
+ "RUIM HRPD unlock successful."
+ "RUIM service provider unlock successful."
+ "RUIM corporate unlock successful.""RUIM unlock successful.""PUK unlock successful.""PUK unlock successful."
@@ -2273,14 +2267,14 @@
"Unblock device camera""For <b>%s</b> and all apps and services""Unblock"
- "Sensor Privacy"
+ "Sensor privacy""Application icon""Application branding image""Check access settings""%s can view and control your screen. Tap to review."
- "%1$s Translated."
+ "%1$s translated.""Message translated from %1$s to %2$s."
- "Background Activity"
+ "Background activity""An app is draining battery""An app is still active""%1$s is running in the background. Tap to manage battery usage."
@@ -2288,6 +2282,5 @@
"Check active apps""Can’t access the phone’s camera from your %1$s""Can’t access the tablet’s camera from your %1$s"
- "This can’t be accessed while streaming. Try on your phone instead."
- "System default"
+ "System language"
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index abd5cb106409e71b80e77f33e3fa32c024b89881..db9e7339e6b73de689d4c961f1bae2563ee96f3f 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Untitled>""(No phone number)"
@@ -28,7 +33,6 @@
"Voicemail""MSISDN1""Connection problem or invalid MMI code."
- "Feature not supported.""Operation is restricted to fixed dialling numbers only.""Cannot change call forwarding settings from your phone while you are roaming.""Service was enabled."
@@ -43,8 +47,8 @@
"The PINs that you typed don\'t match.""Type a PIN that is 4 to 8 numbers.""Type a PUK that is 8 numbers or longer."
- "Your SIM is PUK-locked. Type the PUK code to unlock it."
- "Type PUK2 to unblock SIM."
+ "Your SIM card is PUK-locked. Type the PUK code to unlock it."
+ "Type PUK2 to unblock SIM card.""Unsuccessful, enable SIM/RUIM Lock."You have %d remaining attempts before SIM is locked.
@@ -301,12 +305,12 @@
"access your calendar""SMS""send and view SMS messages"
- "Files"
- "access files on your device"
- "Music and audio"
- "access music and audio on your device"
- "Photos and videos"
- "access photos and videos on your device"
+ "Files & documents"
+ "access files and documents on your device"
+ "Music & other audio"
+ "access audio files on your device"
+ "Photos & videos"
+ "access images and video files on your device""Microphone""record audio""Physical activity"
@@ -582,14 +586,13 @@
"Use screen lock""Enter your screen lock to continue""Press firmly on the sensor"
- "Can’t recognise fingerprint. Try again."
+ "Couldn\'t process fingerprint. Please try again.""Clean fingerprint sensor and try again""Clean sensor and try again""Press firmly on the sensor""Finger moved too slow. Please try again.""Try another fingerprint""Too bright"
- "Power press detected""Try adjusting""Change the position of your finger slightly each time"
@@ -601,17 +604,16 @@
"Face authenticated. Please press confirm""Fingerprint hardware not available.""Can’t set up fingerprint"
- "Fingerprint setup timed out. Try again."
+ "Fingerprint timeout reached. Try again.""Fingerprint operation cancelled.""Fingerprint operation cancelled by user."
- "Too many attempts. Use screen lock instead."
- "Too many attempts. Use screen lock instead."
- "Can’t process fingerprint. Try again."
+ "Too many attempts. Try again later."
+ "Too many attempts. Fingerprint sensor disabled."
+ "Try again.""No fingerprints enrolled.""This device does not have a fingerprint sensor.""Sensor temporarily disabled.""Can’t use fingerprint sensor. Visit a repair provider"
- "Power button pressed""Finger %d""Use fingerprint""Use fingerprint or screen lock"
@@ -632,33 +634,26 @@
"Fingerprint Unlock""Can’t use fingerprint sensor""Visit a repair provider."
- "Can’t create your face model. Try again."
+ "Couldn’t capture accurate face data. Try again.""Too bright. Try gentler lighting."
- "Not enough light"
- "Move phone further away"
- "Move phone closer"
- "Move phone higher"
- "Move phone lower"
- "Move phone to your left"
- "Move phone to your right"
+ "Too dark. Try brighter lighting."
+ "Move phone farther away."
+ "Move phone closer."
+ "Move phone higher."
+ "Move phone lower."
+ "Move phone to the left."
+ "Move phone to the right.""Please look more directly at your device."
- "Can’t see your face. Hold your phone at eye level."
+ "Position your face directly in front of the phone.""Too much motion. Hold phone steady.""Please re-enroll your face."
- "Can’t recognise face. Try again."
- "Change the position of your head slightly"
- "Look more directly at your phone"
- "Look more directly at your phone"
- "Look more directly at your phone"
+ "No longer able to recognise face. Try again."
+ "Too similar, please change your pose."
+ "Turn your head a little less."
+ "Tilt your head a little less."
+ "Turn your head a little less.""Remove anything hiding your face.""Clean the top of your screen, including the black bar"
-
-
-
-
- "Can’t create your face model. Try again."
- "Dark glasses detected. Your face must be fully visible."
- "Face covering detected. Your face must be fully visible.""Can’t verify face. Hardware not available."
@@ -924,14 +919,14 @@
"Try again""Unlock for all features and data""Maximum Face Unlock attempts exceeded"
- "No SIM"
- "No SIM in tablet."
- "No SIM in your Android TV device."
- "No SIM in phone."
- "Add a SIM."
- "The SIM is missing or not readable. Add a SIM."
- "Unusable SIM."
- "Your SIM has been permanently deactivated.\n Contact your wireless service provider for another SIM."
+ "No SIM card"
+ "No SIM card in tablet."
+ "No SIM card in your Android TV device."
+ "No SIM card in phone."
+ "Insert a SIM card."
+ "The SIM card is missing or not readable. Insert a SIM card."
+ "Unusable SIM card."
+ "Your SIM card has been permanently disabled.\n Contact your wireless service provider for another SIM card.""Previous track""Next track""Pause"
@@ -941,10 +936,10 @@
"Fast-forward""Emergency calls only""Network locked"
- "SIM is PUK-locked."
+ "SIM card is PUK-locked.""See the User Guide or contact Customer Care."
- "SIM is locked."
- "Unlocking SIM…"
+ "SIM card is locked."
+ "Unlocking SIM card…""You have incorrectly drawn your unlock pattern %1$d times. \n\nTry again in %2$d seconds.""You have incorrectly typed your password %1$d times. \n\nTry again in %2$d seconds.""You have incorrectly typed your PIN %1$d times. \n\nTry again in %2$d seconds."
@@ -1246,9 +1241,10 @@
"Preparing %1$s.""Starting apps.""Finishing boot."
+ "Continue setup?""You pressed the power button – this usually turns off the screen.\n\nTry tapping lightly while setting up your fingerprint."
- "To end setup, turn off screen"
- "Turn off"
+ "Turn off screen"
+ "Continue setup""Continue verifying your fingerprint?""You pressed the power button – this usually turns off the screen.\n\nTry tapping lightly to verify your fingerprint.""Turn off screen"
@@ -1327,10 +1323,10 @@
"You can change this later in Settings > Apps""Always Allow*""Never Allow"
- "SIM removed"
- "The mobile network will be unavailable until you restart with a valid SIM."
+ "SIM card removed"
+ "The mobile network will be unavailable until you restart with a valid SIM card inserted.""Done"
- "SIM added"
+ "SIM card added""Restart your device to access the mobile network.""Restart""Activate mobile service"
@@ -1401,16 +1397,16 @@
"Tap to set up""Select to set up""You may need to reformat the device. Tap to eject."
- "For storing photos, videos, music and more"
+ "For transferring photos and media""Browse media files""Issue with %s""%s isn’t working""Tap to fix""%s is corrupt. Select to fix.""You may need to reformat the device. Tap to eject."
- "%s detected"
+ "Unsupported %s""%s isn’t working"
- "Tap to set up."
+ "This device doesn’t support this %s. Tap to set up in a supported format.""Select to set up %s in a supported format.""You may need to reformat the device""%s unexpectedly removed"
@@ -1609,7 +1605,7 @@
"TV""Phone""Dock speakers"
- "External device"
+ "HDMI""Headphones""USB""System"
@@ -1642,7 +1638,7 @@
"SIM is now disabled. Enter PUK code to continue. Contact operator for details.""Enter desired PIN code""Confirm desired PIN code"
- "Unlocking SIM…"
+ "Unlocking SIM card…""Incorrect PIN code.""Type a PIN that is 4 to 8 numbers.""PUK code should be 8 numbers."
@@ -1923,7 +1919,6 @@
"Region preference""Type language name""Suggested"
- "Suggested""All languages""All regions""Search"
@@ -1941,19 +1936,18 @@
"Camera unavailable""Continue on phone""Microphone unavailable"
- "Play Store unavailable""Android TV settings unavailable""Tablet settings unavailable""Phone settings unavailable"
- "This can’t be accessed on your %1$s at this time. Try on your Android TV device instead."
- "This can’t be accessed on your %1$s at this time. Try on your tablet instead."
- "This can’t be accessed on your %1$s at this time. Try on your phone instead."
+ "This can’t be accessed on your %1$s. Try on your Android TV device instead."
+ "This can’t be accessed on your %1$s. Try on your tablet instead."
+ "This can’t be accessed on your %1$s. Try on your phone instead."
+ "This can’t be accessed on your %1$s at this time. Try on your Android TV device instead."
+ "This can’t be accessed on your %1$s at this time. Try on your tablet instead."
+ "This can’t be accessed on your %1$s at this time. Try on your phone instead.""This app is requesting additional security. Try on your Android TV device instead.""This app is requesting additional security. Try on your tablet instead.""This app is requesting additional security. Try on your phone instead."
- "This can’t be accessed on your %1$s. Try on your Android TV device instead."
- "This can’t be accessed on your %1$s. Try on your tablet instead."
- "This can’t be accessed on your %1$s. Try on your phone instead.""This app was built for an older version of Android and may not work properly. Try checking for updates or contact the developer.""Check for update""You have new messages"
@@ -2046,8 +2040,7 @@
"Allow %s to access all device logs?""Allow one-time access""Don’t allow"
- "Device logs record what happens on your device. Apps can use these logs to find and fix issues.\n\nSome logs may contain sensitive info, so only allow apps that you trust to access all device logs. \n\nIf you don’t allow this app to access all device logs, it can still access its own logs. Your device manufacturer may still be able to access some logs or info on your device."
- "Device logs record what happens on your device. Apps can use these logs to find and fix issues.\n\nSome logs may contain sensitive info, so only allow apps that you trust to access all device logs. \n\nIf you don’t allow this app to access all device logs, it can still access its own logs. Your device manufacturer may still be able to access some logs or info on your device.\n\nLearn more at g.co/android/devicelogs."
+ "Device logs record what happens on your device. Apps can use these logs to find and fix issues.\n\nSome logs may contain sensitive info, so only allow apps that you trust to access all device logs. \n\nIf you don’t allow this app to access all device logs, it can still access its own logs. Your device manufacturer may still be able to access some logs or info on your device. Learn more""Don’t show again""%1$s wants to show %2$s slices""Edit"
@@ -2060,7 +2053,8 @@
"Do Not Disturb has changed""Tap to check what\'s blocked.""Review notification settings"
- "Starting in Android 13, apps that you install need your permission to send notifications. Tap to change this permission for existing apps."
+
+ "Remind me later""Dismiss""System"
@@ -2288,6 +2282,5 @@
"Check active apps""Can’t access the phone’s camera from your %1$s""Can’t access the tablet’s camera from your %1$s"
- "This can’t be accessed while streaming. Try on your phone instead."
- "System default"
+ "System language"
diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml
index 3121e0d5b50a2261bcdb499bae9a78a478e5194e..e5c24bfdc5006fd06af8eff72706a7261eeea4e0 100644
--- a/core/res/res/values-en-rIN/strings.xml
+++ b/core/res/res/values-en-rIN/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Untitled>""(No phone number)"
@@ -28,7 +33,6 @@
"Voicemail""MSISDN1""Connection problem or invalid MMI code."
- "Feature not supported.""Operation is restricted to fixed dialling numbers only.""Cannot change call forwarding settings from your phone while you are roaming.""Service was enabled."
@@ -43,8 +47,8 @@
"The PINs that you typed don\'t match.""Type a PIN that is 4 to 8 numbers.""Type a PUK that is 8 numbers or longer."
- "Your SIM is PUK-locked. Type the PUK code to unlock it."
- "Type PUK2 to unblock SIM."
+ "Your SIM card is PUK-locked. Type the PUK code to unlock it."
+ "Type PUK2 to unblock SIM card.""Unsuccessful, enable SIM/RUIM Lock."You have %d remaining attempts before SIM is locked.
@@ -301,12 +305,12 @@
"access your calendar""SMS""send and view SMS messages"
- "Files"
- "access files on your device"
- "Music and audio"
- "access music and audio on your device"
- "Photos and videos"
- "access photos and videos on your device"
+ "Files & documents"
+ "access files and documents on your device"
+ "Music & other audio"
+ "access audio files on your device"
+ "Photos & videos"
+ "access images and video files on your device""Microphone""record audio""Physical activity"
@@ -582,14 +586,13 @@
"Use screen lock""Enter your screen lock to continue""Press firmly on the sensor"
- "Can’t recognise fingerprint. Try again."
+ "Couldn\'t process fingerprint. Please try again.""Clean fingerprint sensor and try again""Clean sensor and try again""Press firmly on the sensor""Finger moved too slow. Please try again.""Try another fingerprint""Too bright"
- "Power press detected""Try adjusting""Change the position of your finger slightly each time"
@@ -601,17 +604,16 @@
"Face authenticated. Please press confirm""Fingerprint hardware not available.""Can’t set up fingerprint"
- "Fingerprint setup timed out. Try again."
+ "Fingerprint timeout reached. Try again.""Fingerprint operation cancelled.""Fingerprint operation cancelled by user."
- "Too many attempts. Use screen lock instead."
- "Too many attempts. Use screen lock instead."
- "Can’t process fingerprint. Try again."
+ "Too many attempts. Try again later."
+ "Too many attempts. Fingerprint sensor disabled."
+ "Try again.""No fingerprints enrolled.""This device does not have a fingerprint sensor.""Sensor temporarily disabled.""Can’t use fingerprint sensor. Visit a repair provider"
- "Power button pressed""Finger %d""Use fingerprint""Use fingerprint or screen lock"
@@ -632,33 +634,26 @@
"Fingerprint Unlock""Can’t use fingerprint sensor""Visit a repair provider."
- "Can’t create your face model. Try again."
+ "Couldn’t capture accurate face data. Try again.""Too bright. Try gentler lighting."
- "Not enough light"
- "Move phone further away"
- "Move phone closer"
- "Move phone higher"
- "Move phone lower"
- "Move phone to your left"
- "Move phone to your right"
+ "Too dark. Try brighter lighting."
+ "Move phone farther away."
+ "Move phone closer."
+ "Move phone higher."
+ "Move phone lower."
+ "Move phone to the left."
+ "Move phone to the right.""Please look more directly at your device."
- "Can’t see your face. Hold your phone at eye level."
+ "Position your face directly in front of the phone.""Too much motion. Hold phone steady.""Please re-enroll your face."
- "Can’t recognise face. Try again."
- "Change the position of your head slightly"
- "Look more directly at your phone"
- "Look more directly at your phone"
- "Look more directly at your phone"
+ "No longer able to recognise face. Try again."
+ "Too similar, please change your pose."
+ "Turn your head a little less."
+ "Tilt your head a little less."
+ "Turn your head a little less.""Remove anything hiding your face.""Clean the top of your screen, including the black bar"
-
-
-
-
- "Can’t create your face model. Try again."
- "Dark glasses detected. Your face must be fully visible."
- "Face covering detected. Your face must be fully visible.""Can’t verify face. Hardware not available."
@@ -924,14 +919,14 @@
"Try again""Unlock for all features and data""Maximum Face Unlock attempts exceeded"
- "No SIM"
- "No SIM in tablet."
- "No SIM in your Android TV device."
- "No SIM in phone."
- "Add a SIM."
- "The SIM is missing or not readable. Add a SIM."
- "Unusable SIM."
- "Your SIM has been permanently deactivated.\n Contact your wireless service provider for another SIM."
+ "No SIM card"
+ "No SIM card in tablet."
+ "No SIM card in your Android TV device."
+ "No SIM card in phone."
+ "Insert a SIM card."
+ "The SIM card is missing or not readable. Insert a SIM card."
+ "Unusable SIM card."
+ "Your SIM card has been permanently disabled.\n Contact your wireless service provider for another SIM card.""Previous track""Next track""Pause"
@@ -941,10 +936,10 @@
"Fast-forward""Emergency calls only""Network locked"
- "SIM is PUK-locked."
+ "SIM card is PUK-locked.""See the User Guide or contact Customer Care."
- "SIM is locked."
- "Unlocking SIM…"
+ "SIM card is locked."
+ "Unlocking SIM card…""You have incorrectly drawn your unlock pattern %1$d times. \n\nTry again in %2$d seconds.""You have incorrectly typed your password %1$d times. \n\nTry again in %2$d seconds.""You have incorrectly typed your PIN %1$d times. \n\nTry again in %2$d seconds."
@@ -1246,9 +1241,10 @@
"Preparing %1$s.""Starting apps.""Finishing boot."
+ "Continue setup?""You pressed the power button – this usually turns off the screen.\n\nTry tapping lightly while setting up your fingerprint."
- "To end setup, turn off screen"
- "Turn off"
+ "Turn off screen"
+ "Continue setup""Continue verifying your fingerprint?""You pressed the power button – this usually turns off the screen.\n\nTry tapping lightly to verify your fingerprint.""Turn off screen"
@@ -1327,10 +1323,10 @@
"You can change this later in Settings > Apps""Always Allow*""Never Allow"
- "SIM removed"
- "The mobile network will be unavailable until you restart with a valid SIM."
+ "SIM card removed"
+ "The mobile network will be unavailable until you restart with a valid SIM card inserted.""Done"
- "SIM added"
+ "SIM card added""Restart your device to access the mobile network.""Restart""Activate mobile service"
@@ -1401,16 +1397,16 @@
"Tap to set up""Select to set up""You may need to reformat the device. Tap to eject."
- "For storing photos, videos, music and more"
+ "For transferring photos and media""Browse media files""Issue with %s""%s isn’t working""Tap to fix""%s is corrupt. Select to fix.""You may need to reformat the device. Tap to eject."
- "%s detected"
+ "Unsupported %s""%s isn’t working"
- "Tap to set up."
+ "This device doesn’t support this %s. Tap to set up in a supported format.""Select to set up %s in a supported format.""You may need to reformat the device""%s unexpectedly removed"
@@ -1609,7 +1605,7 @@
"TV""Phone""Dock speakers"
- "External device"
+ "HDMI""Headphones""USB""System"
@@ -1642,7 +1638,7 @@
"SIM is now disabled. Enter PUK code to continue. Contact operator for details.""Enter desired PIN code""Confirm desired PIN code"
- "Unlocking SIM…"
+ "Unlocking SIM card…""Incorrect PIN code.""Type a PIN that is 4 to 8 numbers.""PUK code should be 8 numbers."
@@ -1923,7 +1919,6 @@
"Region preference""Type language name""Suggested"
- "Suggested""All languages""All regions""Search"
@@ -1941,19 +1936,18 @@
"Camera unavailable""Continue on phone""Microphone unavailable"
- "Play Store unavailable""Android TV settings unavailable""Tablet settings unavailable""Phone settings unavailable"
- "This can’t be accessed on your %1$s at this time. Try on your Android TV device instead."
- "This can’t be accessed on your %1$s at this time. Try on your tablet instead."
- "This can’t be accessed on your %1$s at this time. Try on your phone instead."
+ "This can’t be accessed on your %1$s. Try on your Android TV device instead."
+ "This can’t be accessed on your %1$s. Try on your tablet instead."
+ "This can’t be accessed on your %1$s. Try on your phone instead."
+ "This can’t be accessed on your %1$s at this time. Try on your Android TV device instead."
+ "This can’t be accessed on your %1$s at this time. Try on your tablet instead."
+ "This can’t be accessed on your %1$s at this time. Try on your phone instead.""This app is requesting additional security. Try on your Android TV device instead.""This app is requesting additional security. Try on your tablet instead.""This app is requesting additional security. Try on your phone instead."
- "This can’t be accessed on your %1$s. Try on your Android TV device instead."
- "This can’t be accessed on your %1$s. Try on your tablet instead."
- "This can’t be accessed on your %1$s. Try on your phone instead.""This app was built for an older version of Android and may not work properly. Try checking for updates or contact the developer.""Check for update""You have new messages"
@@ -2046,8 +2040,7 @@
"Allow %s to access all device logs?""Allow one-time access""Don’t allow"
- "Device logs record what happens on your device. Apps can use these logs to find and fix issues.\n\nSome logs may contain sensitive info, so only allow apps that you trust to access all device logs. \n\nIf you don’t allow this app to access all device logs, it can still access its own logs. Your device manufacturer may still be able to access some logs or info on your device."
- "Device logs record what happens on your device. Apps can use these logs to find and fix issues.\n\nSome logs may contain sensitive info, so only allow apps that you trust to access all device logs. \n\nIf you don’t allow this app to access all device logs, it can still access its own logs. Your device manufacturer may still be able to access some logs or info on your device.\n\nLearn more at g.co/android/devicelogs."
+ "Device logs record what happens on your device. Apps can use these logs to find and fix issues.\n\nSome logs may contain sensitive info, so only allow apps that you trust to access all device logs. \n\nIf you don’t allow this app to access all device logs, it can still access its own logs. Your device manufacturer may still be able to access some logs or info on your device. Learn more""Don’t show again""%1$s wants to show %2$s slices""Edit"
@@ -2060,7 +2053,8 @@
"Do Not Disturb has changed""Tap to check what\'s blocked.""Review notification settings"
- "Starting in Android 13, apps that you install need your permission to send notifications. Tap to change this permission for existing apps."
+
+ "Remind me later""Dismiss""System"
@@ -2288,6 +2282,5 @@
"Check active apps""Can’t access the phone’s camera from your %1$s""Can’t access the tablet’s camera from your %1$s"
- "This can’t be accessed while streaming. Try on your phone instead."
- "System default"
+ "System language"
diff --git a/core/res/res/values-en-rXC/strings.xml b/core/res/res/values-en-rXC/strings.xml
index aade11ebbd7c3e14e706ab9e63e0d7eb6969a37f..ff7989841c82561139376747743d5f5d0674bab6 100644
--- a/core/res/res/values-en-rXC/strings.xml
+++ b/core/res/res/values-en-rXC/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s %2$s""<Untitled>""(No phone number)"
@@ -28,7 +33,6 @@
"Voicemail""MSISDN1""Connection problem or invalid MMI code."
- "Feature not supported.""Operation is restricted to fixed dialing numbers only.""Can not change call forwarding settings from your phone while you are roaming.""Service was enabled."
@@ -43,8 +47,8 @@
"The PINs you typed don\'t match.""Type a PIN that is 4 to 8 numbers.""Type a PUK that is 8 numbers or longer."
- "Your SIM is PUK-locked. Type the PUK code to unlock it."
- "Type PUK2 to unblock SIM."
+ "Your SIM card is PUK-locked. Type the PUK code to unlock it."
+ "Type PUK2 to unblock SIM card.""Unsuccessful, enable SIM/RUIM Lock."You have %d remaining attempts before SIM is locked.
@@ -301,12 +305,12 @@
"access your calendar""SMS""send and view SMS messages"
- "Files"
- "access files on your device"
- "Music and audio"
- "access music and audio on your device"
- "Photos and videos"
- "access photos and videos on your device"
+ "Files & documents"
+ "access files and documents on your device"
+ "Music & other audio"
+ "access audio files on your device"
+ "Photos & videos"
+ "access images and video files on your device""Microphone""record audio""Physical activity"
@@ -582,14 +586,13 @@
"Use screen lock""Enter your screen lock to continue""Press firmly on the sensor"
- "Can’t recognize fingerprint. Try again."
+ "Couldn\'t process fingerprint. Please try again.""Clean fingerprint sensor and try again""Clean sensor and try again""Press firmly on the sensor""Finger moved too slow. Please try again.""Try another fingerprint""Too bright"
- "Power press detected""Try adjusting""Change the position of your finger slightly each time"
@@ -601,17 +604,16 @@
"Face authenticated, please press confirm""Fingerprint hardware not available.""Can’t set up fingerprint"
- "Fingerprint setup timed out. Try again."
+ "Fingerprint time out reached. Try again.""Fingerprint operation canceled.""Fingerprint operation canceled by user."
- "Too many attempts. Use screen lock instead."
- "Too many attempts. Use screen lock instead."
- "Can’t process fingerprint. Try again."
+ "Too many attempts. Try again later."
+ "Too many attempts. Fingerprint sensor disabled."
+ "Try again.""No fingerprints enrolled.""This device does not have a fingerprint sensor.""Sensor temporarily disabled.""Can’t use fingerprint sensor. Visit a repair provider"
- "Power button pressed""Finger %d""Use fingerprint""Use fingerprint or screen lock"
@@ -632,33 +634,26 @@
"Fingerprint Unlock""Can’t use fingerprint sensor""Visit a repair provider."
- "Can’t create your face model. Try again."
+ "Couldn’t capture accurate face data. Try again.""Too bright. Try gentler lighting."
- "Not enough light"
- "Move phone farther away"
- "Move phone closer"
- "Move phone higher"
- "Move phone lower"
- "Move phone to your left"
- "Move phone to your right"
+ "Too dark. Try brighter lighting."
+ "Move phone farther away."
+ "Move phone closer."
+ "Move phone higher."
+ "Move phone lower."
+ "Move phone to the left."
+ "Move phone to the right.""Please look more directly at your device."
- "Can’t see your face. Hold your phone at eye level."
+ "Position your face directly in front of the phone.""Too much motion. Hold phone steady.""Please re-enroll your face."
- "Can’t recognize face. Try again."
- "Change the position of your head slightly"
- "Look more directly at your phone"
- "Look more directly at your phone"
- "Look more directly at your phone"
+ "No longer able to recognize face. Try again."
+ "Too similar, please change your pose."
+ "Turn your head a little less."
+ "Tilt your head a little less."
+ "Turn your head a little less.""Remove anything hiding your face.""Clean the top of your screen, including the black bar"
-
-
-
-
- "Can’t create your face model. Try again."
- "Dark glasses detected. Your face must be fully visible."
- "Face covering detected. Your face must be fully visible.""Can’t verify face. Hardware not available."
@@ -924,14 +919,14 @@
"Try again""Unlock for all features and data""Maximum Face Unlock attempts exceeded"
- "No SIM"
- "No SIM in tablet."
- "No SIM in your Android TV device."
- "No SIM in phone."
- "Add a SIM."
- "The SIM is missing or not readable. Add a SIM."
- "Unusable SIM."
- "Your SIM has been permanently deactivated.\n Contact your wireless service provider for another SIM."
+ "No SIM card"
+ "No SIM card in tablet."
+ "No SIM card in your Android TV device."
+ "No SIM card in phone."
+ "Insert a SIM card."
+ "The SIM card is missing or not readable. Insert a SIM card."
+ "Unusable SIM card."
+ "Your SIM card has been permanently disabled.\n Contact your wireless service provider for another SIM card.""Previous track""Next track""Pause"
@@ -941,10 +936,10 @@
"Fast forward""Emergency calls only""Network locked"
- "SIM is PUK-locked."
+ "SIM card is PUK-locked.""See the User Guide or contact Customer Care."
- "SIM is locked."
- "Unlocking SIM…"
+ "SIM card is locked."
+ "Unlocking SIM card…""You have incorrectly drawn your unlock pattern %1$d times. \n\nTry again in %2$d seconds.""You have incorrectly typed your password %1$d times. \n\nTry again in %2$d seconds.""You have incorrectly typed your PIN %1$d times. \n\nTry again in %2$d seconds."
@@ -1246,9 +1241,10 @@
"Preparing %1$s.""Starting apps.""Finishing boot."
+ "Continue setup?""You pressed the power button — this usually turns off the screen.\n\nTry tapping lightly while setting up your fingerprint."
- "To end setup, turn off screen"
- "Turn off"
+ "Turn off screen"
+ "Continue setup""Continue verifying your fingerprint?""You pressed the power button — this usually turns off the screen.\n\nTry tapping lightly to verify your fingerprint.""Turn off screen"
@@ -1327,10 +1323,10 @@
"You can change this later in Settings > Apps""Always Allow""Never Allow"
- "SIM removed"
- "The mobile network will be unavailable until you restart with a valid SIM."
+ "SIM card removed"
+ "The mobile network will be unavailable until you restart with a valid SIM card inserted.""Done"
- "SIM added"
+ "SIM card added""Restart your device to access the mobile network.""Restart""Activate mobile service"
@@ -1401,16 +1397,16 @@
"Tap to set up""Select to set up""You may need to reformat the device. Tap to eject."
- "For storing photos, videos, music and more"
+ "For transferring photos and media""Browse media files""Issue with %s""%s isn’t working""Tap to fix""%s is corrupt. Select to fix.""You may need to reformat the device. Tap to eject."
- "%s detected"
+ "Unsupported %s""%s isn’t working"
- "Tap to set up ."
+ "This device doesn’t support this %s. Tap to set up in a supported format.""Select to set up %s in a supported format.""You may need to reformat the device""%s unexpectedly removed"
@@ -1609,7 +1605,7 @@
"TV""Phone""Dock speakers"
- "External Device"
+ "HDMI""Headphones""USB""System"
@@ -1642,7 +1638,7 @@
"SIM is now disabled. Enter PUK code to continue. Contact carrier for details.""Enter desired PIN code""Confirm desired PIN code"
- "Unlocking SIM…"
+ "Unlocking SIM card…""Incorrect PIN code.""Type a PIN that is 4 to 8 numbers.""PUK code should be 8 numbers."
@@ -1923,7 +1919,6 @@
"Region preference""Type language name""Suggested"
- "Suggested""All languages""All regions""Search"
@@ -1941,19 +1936,18 @@
"Camera unavailable""Continue on phone""Microphone unavailable"
- "Play Store unavailable""Android TV settings unavailable""Tablet settings unavailable""Phone settings unavailable"
- "This can’t be accessed on your %1$s at this time. Try on your Android TV device instead."
- "This can’t be accessed on your %1$s at this time. Try on your tablet instead."
- "This can’t be accessed on your %1$s at this time. Try on your phone instead."
+ "This can’t be accessed on your %1$s. Try on your Android TV device instead."
+ "This can’t be accessed on your %1$s. Try on your tablet instead."
+ "This can’t be accessed on your %1$s. Try on your phone instead."
+ "This can’t be accessed on your %1$s at this time. Try on your Android TV device instead."
+ "This can’t be accessed on your %1$s at this time. Try on your tablet instead."
+ "This can’t be accessed on your %1$s at this time. Try on your phone instead.""This app is requesting additional security. Try on your Android TV device instead.""This app is requesting additional security. Try on your tablet instead.""This app is requesting additional security. Try on your phone instead."
- "This can’t be accessed on your %1$s. Try on your Android TV device instead."
- "This can’t be accessed on your %1$s. Try on your tablet instead."
- "This can’t be accessed on your %1$s. Try on your phone instead.""This app was built for an older version of Android and may not work properly. Try checking for updates, or contact the developer.""Check for update""You have new messages"
@@ -2046,8 +2040,7 @@
"Allow %s to access all device logs?""Allow one-time access""Don’t allow"
- "Device logs record what happens on your device. Apps can use these logs to find and fix issues.\n\nSome logs may contain sensitive info, so only allow apps you trust to access all device logs. \n\nIf you don’t allow this app to access all device logs, it can still access its own logs. Your device manufacturer may still be able to access some logs or info on your device."
- "Device logs record what happens on your device. Apps can use these logs to find and fix issues.\n\nSome logs may contain sensitive info, so only allow apps you trust to access all device logs. \n\nIf you don’t allow this app to access all device logs, it can still access its own logs. Your device manufacturer may still be able to access some logs or info on your device.\n\nLearn more at g.co/android/devicelogs."
+ "Device logs record what happens on your device. Apps can use these logs to find and fix issues.\n\nSome logs may contain sensitive info, so only allow apps you trust to access all device logs. \n\nIf you don’t allow this app to access all device logs, it can still access its own logs. Your device manufacturer may still be able to access some logs or info on your device. Learn more""Don’t show again""%1$s wants to show %2$s slices""Edit"
@@ -2288,6 +2281,5 @@
"Check active apps""Can’t access the phone’s camera from your %1$s""Can’t access the tablet’s camera from your %1$s"
- "This can’t be accessed while streaming. Try on your phone instead."
- "System default"
+ "System language"
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 296b4a3cb5b861a776eb08e59105537429d6c55f..ea058bf50736d8a4af3c96c7ed2e9b98ce4e8da7 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "KB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Sin título>""(No hay número de teléfono)"
@@ -28,7 +33,6 @@
"Buzón de voz""MSISDN1""Problema de conexión o código incorrecto de MMI."
- "Función no compatible.""La operación está limitada a números de marcación fija.""No se puede cambiar la configuración de desvío de llamadas de tu teléfono mientras usas el servicio de roaming.""Se ha activado el servicio."
@@ -43,11 +47,10 @@
"Los PIN que ingresaste no coinciden.""Escribir un PIN que contenga entre 4 y 8 números.""Ingresa un código PUK de ocho números o más."
- "Tu tarjeta SIM está bloqueada con PUK. Escribe el código PUK para desbloquearla."
- "Escribe el código PUK2 para desbloquear la tarjeta SIM."
+ "Tu tarjeta SIM está bloqueada con PUK. Escribe el código PUK para desbloquearla."
+ "Escribir PUK2 para desbloquear la tarjeta SIM.""Error; habilita el bloqueo de SIM/RUIM."
- Tienes %d intentos más antes de que se bloquee la tarjeta SIM.Tienes %d intentos más antes de que se bloquee la tarjeta SIM.Tienes %d un intento más antes de que se bloquee la tarjeta SIM.
@@ -177,7 +180,7 @@
"El almacenamiento del reloj está completo. Elimina algunos archivos para liberar espacio.""El almacenamiento del dispositivo Android TV está lleno. Borra algunos archivos para liberar espacio.""Se ha agotado el espacio de almacenamiento del dispositivo. Elimina algunos archivos para liberar espacio."
- "{count,plural, =1{Se instaló la autoridad certificadora}many{Se instalaron las autoridades certificadoras}other{Se instalaron las autoridades certificadoras}}"
+ "{count,plural, =1{Se instaló la autoridad certificadora}other{Se instalaron las autoridades certificadoras}}""Por un tercero desconocido""Por parte de tu administrador del perfil de trabajo""Por %s"
@@ -251,7 +254,7 @@
"Usa esta opción en la mayoría de los casos. Te permite realizar un seguimiento del progreso del informe, ingresar más detalles acerca del problema y tomar capturas de pantalla. Es posible que se omitan secciones menos usadas cuyos informes demoran más en completarse.""Informe completo""Usa esta opción para reducir al mínimo la interferencia del sistema cuando tu dispositivo no responde o funciona muy lento, o cuando necesitas todas las secciones del informe. No permite ingresar más detalles ni tomar capturas de pantalla adicionales."
- "{count,plural, =1{Se tomará una captura de pantalla para el informe de errores en # segundo.}many{Se tomará una captura de pantalla para el informe de errores en # segundos.}other{Se tomará una captura de pantalla para el informe de errores en # segundos.}}"
+ "{count,plural, =1{Se tomará una captura de pantalla para el informe de errores en # segundo.}other{Se tomará una captura de pantalla para el informe de errores en # segundos.}}""Se tomó la captura de pantalla con el informe de errores""No se pudo tomar la captura de pantalla con el informe de errores""Modo silencioso"
@@ -302,12 +305,12 @@
"acceder al calendario""SMS""enviar y ver mensajes SMS"
- "Archivos"
- "acceder a archivos de tu dispositivo"
- "Música y audio"
- "acceder a música y audio de tu dispositivo"
- "Fotos y videos"
- "acceder a fotos y videos de tu dispositivo"
+ "Archivos y documentos"
+ "Accede a archivos y documentos en tu dispositivo"
+ "Música y otro contenido de audio"
+ "acceder a los archivos de audio en tu dispositivo"
+ "Fotos y videos"
+ "acceder a los archivos de imagen y video en tu dispositivo""Micrófono""grabar audio""Actividad física"
@@ -443,7 +446,7 @@
"acceder a la ubicación en segundo plano""Esta aplicación puede acceder a la ubicación en cualquier momento, aunque no la estés usando.""cambiar tu configuración de audio"
- "Permite que la aplicación modifique la configuración de audio global, por ejemplo, el volumen y la bocina de salida."
+ "Permite que la aplicación modifique la configuración de audio global, por ejemplo, el volumen y el altavoz de salida.""grabar audio""Esta app puede grabar audio con el micrófono mientras está en uso.""grabar audio en segundo plano"
@@ -583,14 +586,13 @@
"Usar bloqueo de pantalla""Ingresa tu bloqueo de pantalla para continuar""Presiona con firmeza el sensor"
- "No se reconoce la huella dactilar. Vuelve a intentarlo."
+ "No se pudo procesar la huella dactilar. Vuelve a intentarlo.""Limpia el sensor de huellas dactilares y vuelve a intentarlo""Limpia el sensor y vuelve a intentarlo""Presiona con firmeza el sensor""Moviste el dedo muy lento. Vuelve a intentarlo.""Prueba con otra huella dactilar""Demasiada luz"
- "Se detectó una presión del botón de encendido""Prueba ajustarla""Cambia un poco la posición del dedo cada vez"
@@ -602,17 +604,16 @@
"Se autenticó el rostro; presiona Confirmar""El hardware para detectar huellas dactilares no está disponible.""No se puede configurar la huella dactilar"
- "Se agotó el tiempo de espera para configurar la huella dactilar. Vuelve a intentarlo."
+ "Finalizó el tiempo de espera para la huella dactilar. Vuelve a intentarlo.""Se canceló la operación de huella dactilar.""El usuario canceló la operación de huella dactilar."
- "Demasiados intentos. Utiliza el bloqueo de pantalla en su lugar."
- "Demasiados intentos. Utiliza el bloqueo de pantalla en su lugar."
- "No se puede procesar la huella dactilar. Vuelve a intentarlo."
+ "Demasiados intentos. Vuelve a intentarlo más tarde."
+ "Realizaste demasiados intentos. Se inhabilitó el sensor de huellas dactilares."
+ "Vuelve a intentarlo.""No se registraron huellas digitales.""Este dispositivo no tiene sensor de huellas dactilares.""Se inhabilitó temporalmente el sensor.""No se puede usar el sensor de huellas dactilares. Consulta a un proveedor de reparaciones."
- "Se presionó el botón de encendido""Dedo %d""Usar huella dactilar""Usar bloqueo de huella dactilar o pantalla"
@@ -633,33 +634,26 @@
"Desbloqueo con huellas dactilares""No se puede usar el sensor de huellas dactilares""Consulta a un proveedor de reparaciones."
- "No se puede crear modelo de rostro. Reinténtalo."
+ "Datos faciales imprecisos. Vuelve a intentarlo.""Demasiado brillante. Prueba con menos iluminación."
- "No hay suficiente luz"
- "Aleja el teléfono un poco más"
- "Acerca el teléfono"
- "Mueve el teléfono hacia arriba"
- "Mueve el teléfono hacia abajo"
- "Mueve el teléfono hacia la izquierda"
- "Mueve el teléfono hacia la derecha"
+ "Demasiado oscuro. Prueba con más iluminación."
+ "Aleja un poco más el teléfono."
+ "Acerca el teléfono."
+ "Mueve el teléfono hacia arriba."
+ "Mueve el teléfono hacia abajo."
+ "Mueve el teléfono hacia la izquierda."
+ "Mueve el teléfono hacia la derecha.""Mira directamente al dispositivo."
- "No se ve tu cara. Sostén el teléfono a la altura de los ojos."
+ "Ubica el rostro directamente frente al teléfono.""Te estás moviendo demasiado. No muevas el teléfono""Vuelve a registrar tu rostro."
- "No se reconoce el rostro. Vuelve a intentarlo."
- "Cambia levemente la posición de la cabeza"
- "Mira el teléfono de forma más directa"
- "Mira el teléfono de forma más directa"
- "Mira el teléfono de forma más directa"
+ "Ya no se reconoce el rostro. Vuelve a intentarlo."
+ "Es muy similar a la anterior. Haz otra pose."
+ "Gira la cabeza un poco menos."
+ "Inclina un poco menos la cabeza."
+ "Gira la cabeza un poco menos.""Quítate cualquier objeto que te cubra el rostro.""Limpia la parte superior de la pantalla, incluida la barra negra"
-
-
-
-
- "No se puede crear modelo de rostro. Vuelve a intentarlo."
- "Se detectaron lentes oscuros. Tu rostro debe verse completamente."
- "Se detectó que llevas mascarilla. Tu rostro debe verse completamente.""No se verificó el rostro. Hardware no disponible."
@@ -919,20 +913,20 @@
"Presionar Menú para desbloquear.""Dibujar el patrón de desbloqueo""Emergencia"
- "Regresar a la llamada"
+ "Regresar a llamada""Correcto""Vuelve a intentarlo.""Volver a intentarlo""Desbloquea para acceder a funciones y datos""Se superó el máximo de intentos permitido para el desbloqueo facial del dispositivo."
- "No hay ninguna tarjeta SIM"
- "No hay ninguna tarjeta SIM en la tablet."
- "No hay ninguna tarjeta SIM en el dispositivo Android TV."
- "No hay ninguna tarjeta SIM en el teléfono."
- "Introduce una tarjeta SIM."
- "Falta la tarjeta SIM o no se puede leer. Introduce una tarjeta SIM."
- "Tarjeta SIM inutilizable."
- "Tu tarjeta SIM se desactivó permanentemente.\n Ponte en contacto con tu proveedor de servicios inalámbricos para obtener otra tarjeta SIM."
+ "Sin tarjeta SIM"
+ "No hay tarjeta SIM en el tablet."
+ "No hay ninguna tarjeta SIM en el dispositivo Android TV."
+ "No hay tarjeta SIM en el dispositivo."
+ "Inserta una tarjeta SIM."
+ "Falta la tarjeta SIM o no se puede leer. Introduce una tarjeta SIM."
+ "Tarjeta SIM inutilizable"
+ "Tu tarjeta SIM se ha inhabilitado de forma permanente.\n Ponte en contacto con tu proveedor de servicios inalámbricos para obtener otra tarjeta SIM.""Pista anterior""Siguiente pista""Pausar"
@@ -942,10 +936,10 @@
"Avanzar""Solo llamadas de emergencia""Red bloqueada"
- "La tarjeta SIM está bloqueada con el código PUK."
+ "La tarjeta SIM está bloqueada con PUK.""Consulta la guía del usuario o comunícate con el servicio de atención al cliente."
- "La tarjeta SIM está bloqueada."
- "Desbloqueando tarjeta SIM…"
+ "La tarjeta SIM está bloqueada."
+ "Desbloqueando tarjeta SIM…""Estableciste incorrectamente tu patrón de desbloqueo %1$d veces. \n\nVuelve a intentarlo en %2$d segundos.""Escribiste incorrectamente tu contraseña %1$d veces. \n\nVuelve a intentarlo en %2$d segundos.""Escribiste incorrectamente tu PIN %1$d veces. \n\nVuelve a intentarlo en %2$d segundos."
@@ -1085,7 +1079,7 @@
"%1$s desea activar la exploración táctil. Cuando esta función esté activada, podrás escuchar o ver descripciones del contenido seleccionado o usar gestos para interactuar con el dispositivo.""Hace 1 mes.""Anterior a 1 mes atrás"
- "{count,plural, =1{Último # día}many{Últimos # días}other{Últimos # días}}"
+ "{count,plural, =1{Último # día}other{Últimos # días}}""Último mes""Antiguos""activado %s"
@@ -1112,14 +1106,14 @@
"en %d h""en %d d""en %d años"
- "{count,plural, =1{Hace # minuto}many{Hace # minutos}other{Hace # minutos}}"
- "{count,plural, =1{Hace # hora}many{Hace # horas}other{Hace # horas}}"
- "{count,plural, =1{Hace # día}many{Hace # días}other{Hace # días}}"
- "{count,plural, =1{Hace # año}many{Hace # años}other{Hace # años}}"
- "{count,plural, =1{# minuto}many{# minutos}other{# minutos}}"
- "{count,plural, =1{# hora}many{# horas}other{# horas}}"
- "{count,plural, =1{# día}many{# días}other{# días}}"
- "{count,plural, =1{# año}many{# años}other{# años}}"
+ "{count,plural, =1{Hace # minuto}other{Hace # minutos}}"
+ "{count,plural, =1{Hace # hora}other{Hace # horas}}"
+ "{count,plural, =1{Hace # día}other{Hace # días}}"
+ "{count,plural, =1{Hace # año}other{Hace # años}}"
+ "{count,plural, =1{# minuto}other{# minutos}}"
+ "{count,plural, =1{# hora}other{# horas}}"
+ "{count,plural, =1{# día}other{# días}}"
+ "{count,plural, =1{# año}other{# años}}""Problemas de video""No es posible transmitir este video al dispositivo.""No se puede reproducir el video."
@@ -1162,8 +1156,8 @@
"Cancelar""Atención""Cargando…"
- "ACTIVADO"
- "Desactivado"
+ "Sí"
+ "No""activado""desactivado""seleccionado"
@@ -1247,9 +1241,10 @@
"Preparando %1$s.""Iniciando aplicaciones""Finalizando el inicio"
+ "¿Continuar con la configuración?""Presionaste el botón de encendido. Por lo general, esta acción apaga la pantalla.\n\nPresiona suavemente mientras configuras tu huella dactilar."
- "Para finalizar, apaga la pantalla"
- "Apagar"
+ "Apagar pantalla"
+ "Continuar config.""¿Verificar huella dactilar?""Presionaste el botón de encendido. Por lo general, esta acción apaga la pantalla.\n\nPresiona suavemente para verificar tu huella dactilar.""Apagar pantalla"
@@ -1328,10 +1323,10 @@
"Puedes cambiar esta opción más tarde en Configuración > Aplicaciones.""Permitir siempre""No permitir nunca"
- "Se quitó la tarjeta SIM"
- "La red móvil no estará disponible hasta que reinicies, luego de insertar una tarjeta SIM válida."
+ "Tarjeta SIM eliminada"
+ "La red para celulares no estará disponible hasta que reinicies, luego de insertar una tarjeta SIM válida.""Finalizar"
- "Se introdujo la tarjeta SIM"
+ "Tarjeta SIM agregada""Reinicia el dispositivo para acceder a la red móvil.""Reiniciar""Activa servicio de datos móviles"
@@ -1361,7 +1356,7 @@
"Se detectó un accesorio de audio analógico""El dispositivo adjunto no es compatible con este teléfono. Presiona para obtener más información.""Depuración por USB conectada"
- "Presiona para desactivar"
+ "Presiona para desactivar la depuración por USB""Seleccionar para desactivar la depuración por USB""Se conectó la depuración inalámbrica""Presiona para desactivar la depuración inalámbrica"
@@ -1383,7 +1378,7 @@
"COMPARTIR""RECHAZAR""Selecciona el método de entrada"
- "Mientras el teclado físico está activo"
+ "Mantener en la pantalla cuando el teclado físico está activo""Mostrar teclado virtual""Configura el teclado físico""Presiona para seleccionar el idioma y el diseño"
@@ -1402,16 +1397,16 @@
"Presiona para configurar""Selecciona para configurar""Es posible que debas reformatear el dispositivo. Presiona para expulsar."
- "Para almacenar fotos, videos, música y mucho más"
+ "Para transferir fotos y contenido multimedia""Explora archivos multimedia""Problema con %s""%s: no funciona""Presiona para solucionar el problema""%s se dañó. Selecciona el medio para solucionar el problema.""Es posible que debas reformatear el dispositivo. Presiona para expulsar."
- "Se detectó %s"
+ "%s no es compatible""%s: no funciona"
- "Presiona para configurar."
+ "El dispositivo no es compatible con %s. Presiona la pantalla para configurarlo en un formato compatible.""Selecciona para configurar %s en un formato compatible.""Es posible que debas reformatear el dispositivo""Se extrajo %s de forma inesperada."
@@ -1424,7 +1419,7 @@
"Expulsar""Explorar""Cambiar salida"
- "Falta %s"
+ "No se encuentra dispositivo %s.""Vuelve a insertar dispositivo""Transfiriendo la aplicación %s""Transfiriendo los datos"
@@ -1506,7 +1501,7 @@
"Omitir""Sin coincidencias""Buscar en la página"
- "{count,plural, =1{# coincidencia}many{# de {total}}other{# de {total}}}"
+ "{count,plural, =1{# coincidencia}other{# de {total}}}""Listo""Borrando almacenamiento compartido…""Compartir"
@@ -1610,7 +1605,7 @@
"TV""Dispositivo""Altavoces del conector"
- "Dispositivo externo"
+ "HDMI""Auriculares""USB""Sistema"
@@ -1643,7 +1638,7 @@
"La tarjeta SIM está inhabilitada. Para continuar, ingresa el código PUK. Si quieres obtener más información, ponte en contacto con el proveedor.""Ingresa el código PIN deseado""Confirmar código PIN deseado"
- "Desbloqueando tarjeta SIM…"
+ "Desbloqueando tarjeta SIM…""Código PIN incorrecto""Escribe un PIN que tenga de cuatro a ocho números.""El código PUK debe tener 8 números."
@@ -1859,14 +1854,14 @@
"Para reducir el uso de datos, el modo Ahorro de datos evita que algunas apps envíen y reciban datos en segundo plano. La app que estés usando podrá acceder a los datos, pero con menor frecuencia. De esta forma, por ejemplo, las imágenes no se mostrarán hasta que las presiones.""¿Deseas activar Ahorro de datos?""Activar"
- "{count,plural, =1{Por un minuto (hasta {formattedTime})}many{Por # minutos (hasta {formattedTime})}other{Por # minutos (hasta {formattedTime})}}"
- "{count,plural, =1{Durante 1 min (hasta {formattedTime})}many{Durante # min (hasta {formattedTime})}other{Durante # min (hasta {formattedTime})}}"
- "{count,plural, =1{Durante 1 hora (hasta {formattedTime})}many{Durante # horas (hasta {formattedTime})}other{Durante # horas (hasta {formattedTime})}}"
- "{count,plural, =1{Durante 1 h (hasta {formattedTime})}many{Durante # h (hasta {formattedTime})}other{Durante # h (hasta {formattedTime})}}"
- "{count,plural, =1{Durante un minuto}many{Durante # minutos}other{Durante # minutos}}"
- "{count,plural, =1{Durante 1 min}many{Durante # min}other{Durante # min}}"
- "{count,plural, =1{Durante 1 hora}many{Durante # horas}other{Durante # horas}}"
- "{count,plural, =1{Durante 1 h}many{Durante # h}other{Durante # h}}"
+ "{count,plural, =1{Por un minuto (hasta {formattedTime})}other{Por # minutos (hasta {formattedTime})}}"
+ "{count,plural, =1{Durante 1 min (hasta {formattedTime})}other{Durante # min (hasta {formattedTime})}}"
+ "{count,plural, =1{Durante 1 hora (hasta {formattedTime})}other{Durante # horas (hasta {formattedTime})}}"
+ "{count,plural, =1{Durante 1 h (hasta {formattedTime})}other{Durante # h (hasta {formattedTime})}}"
+ "{count,plural, =1{Durante un minuto}other{Durante # minutos}}"
+ "{count,plural, =1{Durante 1 min}other{Durante # min}}"
+ "{count,plural, =1{Durante 1 hora}other{Durante # horas}}"
+ "{count,plural, =1{Durante 1 h}other{Durante # h}}""Hasta las %1$s""Hasta la(s) %1$s""Hasta la hora %1$s (próxima alarma)"
@@ -1924,7 +1919,6 @@
"Preferencia de región""Nombre del idioma""Sugeridos"
- "Sugerencias""Todos los idiomas""Todas las regiones""Búsqueda"
@@ -1942,19 +1936,18 @@
"La cámara no está disponible""Continúa en el teléfono""El micrófono no está disponible"
- "Play Store no está disponible""La configuración de Android TV no está disponible""La configuración de la tablet no está disponible""La configuración del teléfono no está disponible"
- "Por el momento, no se puede acceder a esto en tu %1$s. Inténtalo en tu dispositivo Android TV."
- "Por el momento, no se puede acceder a esto en tu %1$s. Inténtalo en tu tablet."
- "Por el momento, no se puede acceder a esto en tu %1$s. Inténtalo en tu teléfono."
+ "Por el momento, no se puede acceder a esto en tu %1$s. Inténtalo en tu dispositivo Android TV."
+ "Por el momento, no se puede acceder a esto en tu %1$s. Inténtalo en tu tablet."
+ "Por el momento, no se puede acceder a esto en tu %1$s. Inténtalo en tu teléfono."
+ "Por el momento, no se puede acceder a esto en tu %1$s. Inténtalo en tu dispositivo Android TV."
+ "Por el momento, no se puede acceder a esto en tu %1$s. Inténtalo en tu tablet."
+ "Por el momento, no se puede acceder a esto en tu %1$s. Inténtalo en tu teléfono.""Esta app solicita seguridad adicional. Inténtalo en tu dispositivo Android TV.""Esta app solicita seguridad adicional. Inténtalo en tu tablet.""Esta app solicita seguridad adicional. Inténtalo en tu teléfono."
- "No se puede acceder a esto en tu %1$s. Inténtalo en tu dispositivo Android TV."
- "No se puede acceder a esto en tu %1$s. Inténtalo en tu tablet."
- "No se puede acceder a esto en tu %1$s. Inténtalo en tu teléfono.""Esta app se creó para una versión anterior de Android y es posible que no funcione correctamente. Busca actualizaciones o comunícate con el programador.""Buscar actualización""Tienes mensajes nuevos"
@@ -1966,8 +1959,8 @@
"Presiona para ver archivos""Fijar""Fijar %1$s"
- "Dejar de fijar"
- "Dejar de fijar %1$s"
+ "No fijar"
+ "No fijar %1$s""Información de apps""−%1$s""Iniciando demostración…"
@@ -1997,7 +1990,7 @@
"Guardar para Autocompletar""El contenido no puede autocompletarse""No hay sugerencias de Autocompletar"
- "{count,plural, =1{Una sugerencia de autocompletar}many{# sugerencias de autocompletar}other{# sugerencias de autocompletar}}"
+ "{count,plural, =1{Una sugerencia de autocompletar}other{# sugerencias de autocompletar}}""¿Quieres guardar en ""%1$s""?""¿Quieres guardar la %1$s en ""%2$s""?""¿Quieres guardar %1$s y %2$s en ""%3$s""?"
@@ -2047,8 +2040,7 @@
"¿Quieres permitir que %s acceda a todos los registros del dispositivo?""Permitir acceso por única vez""No permitir"
- "Los registros del dispositivo permiten documentar lo que sucede en él. Las apps pueden usar estos registros para encontrar y solucionar problemas.\n\nEs posible que algunos registros del dispositivo contengan información sensible, por lo que solo debes permitir que accedan a todos ellos las apps que sean de tu confianza. \n\nSi no permites que esta app acceda a todos los registros del dispositivo, aún puede acceder a sus propios registros. Además, es posible que el fabricante del dispositivo acceda a algunos registros o información en tu dispositivo."
- "Los registros del dispositivo permiten documentar lo que sucede en él. Las apps pueden usar estos registros para encontrar y solucionar problemas.\n\nEs posible que algunos registros del dispositivo contengan información sensible, por lo que solo debes permitir que accedan a ellos las apps que sean de tu confianza. \n\nTen en cuenta que la app puede acceder a sus propios registros incluso si no permites que acceda a todos los registros del dispositivo. También es posible que el fabricante del dispositivo acceda a algunos registros o información en tu dispositivo.\n\nObtén más información en g.co/android/devicelogs."
+ "Los registros del dispositivo permiten documentar lo que sucede en él. Las apps pueden usarlos para encontrar y solucionar problemas.\n\nEs posible que algunos registros del dispositivo contengan información sensible, por lo que solo permitimos que accedan a todos ellos apps de tu confianza. \n\nSi no permites que esta app acceda a todos los registros del dispositivo, aún puede acceder a sus propios registros. Además, es posible que el fabricante del dispositivo acceda a algunos registros o información en tu dispositivo. Más información""No volver a mostrar""%1$s quiere mostrar fragmentos de %2$s""Editar"
@@ -2061,7 +2053,8 @@
"Se modificó la opción No interrumpir""Presiona para consultar lo que está bloqueado.""Revisa la configuración de notificaciones"
- "A partir de Android 13, las apps que instales necesitarán tu permiso a fin de enviar notificaciones. Presiona para cambiar este permiso para las apps existentes."
+
+ "Recordarme más tarde""Descartar""Sistema"
@@ -2079,7 +2072,7 @@
"Aceptar""Desactivar""Más información"
- "Las notificaciones mejoradas reemplazaron a las notificaciones adaptables en Android 12. Esta función muestra respuestas y acciones sugeridas, y organiza tus notificaciones.\n\nLas notificaciones mejoradas pueden acceder a todo el contenido de notificaciones, lo que incluye información personal, como nombres de contactos y mensajes. También puede descartar o responder notificaciones (como contestar llamadas) y controlar la función No interrumpir."
+ "Las notificaciones mejoradas reemplazaron a las notificaciones adaptables en Android 12. Esta función muestra respuestas y acciones sugeridas, y organiza tus notificaciones.\n\nLas notificaciones mejoradas pueden acceder a todo el contenido de notificaciones, lo que incluye información personal, como nombres de contactos y mensajes. También puede descartar o responder notificaciones (como atender llamadas) y controlar la función No interrumpir.""Notificación de información del modo de Rutinas""Es posible que la batería se agote antes de la carga habitual""Se activó el Ahorro de batería para extender la duración de la batería"
@@ -2108,7 +2101,7 @@
"Presentación %1$s""La conexión Bluetooth permanecerá activa durante el modo de avión""Cargando"
- "{count,plural, =1{{file_name} y # archivo más}many{{file_name} y # archivos más}other{{file_name} y # archivos más}}"
+ "{count,plural, =1{{file_name} y # archivo más}other{{file_name} y # archivos más}}""No hay personas recomendadas con quienes compartir""Lista de apps""Aunque no se le otorgó permiso de grabación a esta app, puede capturar audio con este dispositivo USB."
@@ -2289,6 +2282,5 @@
"Consulta las apps activas""No se puede acceder a la cámara del dispositivo desde tu %1$s""No se puede acceder a la cámara de la tablet desde tu %1$s"
- "No se puede acceder a este contenido durante una transmisión. Inténtalo en tu teléfono."
- "Predeterminado del sistema"
+ "Idioma del sistema"
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index 2d9b4114527d7bae8f75e3fa473b57e233baaebb..429ba1d62f6621d67e999f4a3c3c335dcd3b12cf 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Sin título>""(Sin número de teléfono)"
@@ -28,7 +33,6 @@
"Buzón de voz""MSISDN1""Se ha producido un problema de conexión o el código MMI no es válido."
- "Función no disponible.""La operación solo es válida para números de marcación fija.""No se puede cambiar la configuración de desvío de llamadas desde tu teléfono mientras estás en roaming.""El servicio se ha habilitado."
@@ -43,11 +47,10 @@
"Los códigos PIN introducidos no coinciden.""Introduce un código PIN con una longitud comprendida entre cuatro y ocho dígitos.""Escribe un código PUK de ocho caracteres o más."
- "La SIM está bloqueada con el código PUK. Introduce el código PUK para desbloquearla."
- "Introduce el código PUK2 para desbloquear la SIM."
+ "La tarjeta SIM está bloqueada con el código PUK. Introduce el código PUK para desbloquearla."
+ "Introduce el código PUK2 para desbloquear la tarjeta SIM.""Error, habilitar bloqueo de SIM/RUIM."
- Te quedan %d intentos para bloquear la tarjeta SIM.Te quedan %d intentos para bloquear la tarjeta SIM.Te queda %d intento para bloquear la tarjeta SIM.
@@ -87,7 +90,7 @@
"Alertas""Desvío de llamadas""Modo de devolución de llamada de emergencia"
- "Estado de datos móviles"
+ "Estado de los datos móviles""Mensajes SMS""Mensajes de voz""Llamada por Wi-Fi"
@@ -177,7 +180,7 @@
"El almacenamiento del reloj está lleno. Elimina algunos archivos para liberar espacio.""El espacio de almacenamiento de tu dispositivo Android TV está lleno. Elimina algunos archivos para liberar espacio.""Se ha agotado el espacio de almacenamiento del teléfono. Elimina algunos archivos para liberar espacio."
- "{count,plural, =1{Autoridad de certificación instalada}many{Autoridades de certificación instaladas}other{Autoridades de certificación instaladas}}"
+ "{count,plural, =1{Autoridad de certificación instalada}other{Autoridades de certificación instaladas}}""Por un tercero desconocido""Por el administrador de tu perfil de trabajo""Por %s"
@@ -251,7 +254,7 @@
"Usa esta opción en la mayoría de los casos. Te permite realizar un seguimiento del progreso del informe, introducir más información sobre el problema y hacer capturas de pantalla. Es posible que se omitan algunas secciones menos utilizadas y que requieran más tiempo.""Informe completo""Utiliza esta opción para que la interferencia del sistema sea mínima cuando el dispositivo no responda o funcione demasiado lento, o bien cuando necesites todas las secciones del informe. No permite introducir más detalles ni hacer más capturas de pantalla."
- "{count,plural, =1{La captura de pantalla para el informe de errores se hará en # segundo.}many{La captura de pantalla para el informe de errores se hará en # segundos.}other{La captura de pantalla para el informe de errores se hará en # segundos.}}"
+ "{count,plural, =1{La captura de pantalla para el informe de errores se hará en # segundo.}other{La captura de pantalla para el informe de errores se hará en # segundos.}}""Se ha hecho la captura de pantalla con el informe de errores""No se ha podido hacer la captura de pantalla con el informe de errores""Modo Silencio"
@@ -302,12 +305,12 @@
"acceder a tu calendario""SMS""enviar y ver mensajes SMS"
- "Archivos"
- "acceder a archivos de tu dispositivo"
- "Música y audio"
- "acceder a música y audio de tu dispositivo"
- "Fotos y vídeos"
- "acceder a fotos y vídeos de tu dispositivo"
+ "Archivos y documentos"
+ "acceder a archivos y documentos de tu dispositivo"
+ "Música y otros archivos de audio"
+ "acceder a los archivos de audio de tu dispositivo"
+ "Fotos y vídeos"
+ "acceder a los archivos de vídeo de tu dispositivo""Micrófono""grabar audio""Actividad física"
@@ -543,8 +546,8 @@
"Permite que la aplicación emita a dispositivos Bluetooth cercanos""calcular posición de dispositivos de banda ultraancha cercanos""Permite que la aplicación determine la posición relativa de los dispositivos de banda ultraancha cercanos"
- "interactuar con dispositivos Wi-Fi cercanos"
- "Permite a la aplicación emitir y conectarse a dispositivos Wi-Fi cercanos y determinar su posición relativa"
+ "Interactuar con dispositivos Wi-Fi cercanos"
+ "Permite a la aplicación mostrar, conectar y determinar la posición relativa de dispositivos Wi-Fi cercanos""Información sobre el servicio de pago por NFC preferido""Permite que la aplicación obtenga información sobre el servicio de pago por NFC preferido, como identificadores de aplicación registrados y destinos de rutas.""controlar Comunicación de campo cercano (NFC)"
@@ -583,14 +586,13 @@
"Usar bloqueo de pantalla""Introduce tu bloqueo de pantalla para continuar""Mantén pulsado firmemente el sensor"
- "No se puede reconocer la huella digital. Inténtalo de nuevo."
+ "No se ha podido procesar la huella digital. Vuelve a intentarlo.""Limpia el sensor de huellas digitales e inténtalo de nuevo""Limpia el sensor e inténtalo de nuevo""Mantén pulsado firmemente el sensor""Has movido el dedo demasiado despacio. Vuelve a intentarlo.""Prueba con otra huella digital""Demasiada luz"
- "Se ha pulsado el botón de encendido""Prueba a mover el dedo""Cambia ligeramente el dedo de posición cada vez"
@@ -602,17 +604,16 @@
"Se ha autenticado la cara, pulsa para confirmar""El hardware de huella digital no está disponible.""No se puede configurar la huella digital"
- "Tiempo de espera para configurar la huella digital agotado. Inténtalo de nuevo."
+ "Se ha alcanzado el tiempo de espera de la huella digital. Vuelve a intentarlo.""Se ha cancelado la operación de huella digital.""El usuario ha cancelado la operación de huella digital."
- "Demasiados intentos. Usa el bloqueo de pantalla."
- "Demasiados intentos. Usa el bloqueo de pantalla."
- "No se puede procesar la huella digital. Inténtalo de nuevo."
+ "Demasiados intentos. Vuelve a intentarlo más tarde."
+ "Demasiados intentos. Se ha inhabilitado el sensor de huellas digitales."
+ "Vuelve a intentarlo.""No se ha registrado ninguna huella digital.""Este dispositivo no tiene sensor de huellas digitales.""El sensor está inhabilitado en estos momentos.""No se puede usar el sensor de huellas digitales. Visita un proveedor de reparaciones."
- "Se ha pulsado el botón de encendido""Dedo %d""Usar huella digital""Usar huella digital o bloqueo de pantalla"
@@ -633,33 +634,26 @@
"Desbloqueo con huella digital""No se puede usar el sensor de huellas digitales""Visita un proveedor de reparaciones."
- "No se puede crear tu modelo. Inténtalo de nuevo."
+ "Datos faciales no reconocidos. Vuelve a intentarlo.""Hay demasiada luz. Busca un sitio menos iluminado."
- "No hay suficiente luz"
- "Aleja el teléfono"
- "Acerca el teléfono"
- "Sube el teléfono"
- "Baja el teléfono"
- "Mueve el teléfono hacia la izquierda"
- "Mueve el teléfono hacia la derecha"
+ "Demasiado oscuro. Prueba en un lugar con más luz."
+ "Aleja el teléfono."
+ "Acerca el teléfono."
+ "Sube el teléfono."
+ "Baja el teléfono."
+ "Mueve el teléfono hacia la izquierda."
+ "Mueve el teléfono hacia la derecha.""Mira de forma más directa al dispositivo."
- "No se detecta tu cara. Sujeta el teléfono a la altura de los ojos."
+ "Coloca la cara directamente frente al teléfono.""El teléfono se mueve demasiado. Mantenlo quieto.""Vuelve a registrar tu cara."
- "No se reconoce la cara. Inténtalo de nuevo."
- "Cambia ligeramente la posición de tu cabeza"
- "Mira al teléfono de forma más directa"
- "Mira al teléfono de forma más directa"
- "Mira al teléfono de forma más directa"
+ "No puede reconocer tu cara. Vuelve a intentarlo."
+ "Se parece mucha a la anterior. Pon otra cara."
+ "Gira la cabeza un poco menos."
+ "No inclines tanto la cabeza."
+ "No gires tanto la cabeza.""Retira cualquier objeto que te tape la cara.""Limpia la parte superior de la pantalla, incluida la barra de color negro"
-
-
-
-
- "No se puede crear tu modelo. Inténtalo de nuevo."
- "Gafas oscuras detectadas. Tu cara se debe poder ver por completo."
- "Mascarilla detectada. Tu cara se debe poder ver por completo.""No se puede verificar. Hardware no disponible."
@@ -925,14 +919,14 @@
"Vuelve a intentarlo""Desbloquear para todos los datos y funciones""Se ha superado el número máximo de intentos de Desbloqueo facial."
- "No hay ninguna SIM."
- "No hay ninguna SIM en la tablet."
- "No hay ninguna SIM en tu dispositivo Android TV."
- "No hay ninguna SIM en el teléfono."
- "Añade una SIM."
- "Falta la SIM o no se puede leer. Añade una SIM."
- "No se puede usar la SIM."
- "Tu SIM se ha desactivado de forma permanente.\n Para obtener otra SIM, ponte en contacto con tu proveedor de servicios inalámbricos."
+ "Falta la tarjeta SIM."
+ "No se ha insertado ninguna tarjeta SIM en el tablet."
+ "No hay ninguna tarjeta SIM en tu dispositivo Android TV."
+ "No se ha insertado ninguna tarjeta SIM en el teléfono."
+ "Inserta una tarjeta SIM."
+ "Falta la tarjeta SIM o no se puede leer. Introduce una tarjeta SIM."
+ "Tarjeta SIM inutilizable"
+ "Tu tarjeta SIM se ha inhabilitado permanentemente.\n Para obtener otra tarjeta SIM, ponte en contacto con tu proveedor de servicios de telefonía.""Canción anterior""Siguiente canción""Pausar"
@@ -942,10 +936,10 @@
"Avance rápido""Solo llamadas de emergencia""Bloqueada para la red"
- "La SIM está bloqueada con el código PUK."
+ "La tarjeta SIM está bloqueada con el código PUK.""Consulta la guía del usuario o ponte en contacto con el servicio de atención al cliente."
- "La SIM está bloqueada."
- "Desbloqueando SIM…"
+ "Introduce el código PIN."
+ "Desbloqueando tarjeta SIM...""Has realizado %1$d intentos fallidos de creación de un patrón de desbloqueo. \n\nInténtalo de nuevo dentro de %2$d segundos.""Has introducido una contraseña incorrecta %1$d veces. \n\nInténtalo de nuevo dentro de %2$d segundos.""Has introducido un código PIN incorrecto %1$d veces. \n\nInténtalo de nuevo dentro de %2$d segundos."
@@ -1085,7 +1079,7 @@
"%1$s quiere habilitar la exploración táctil. Cuando esta función esté activada, podrás escuchar o ver descripciones del contenido seleccionado o usar gestos para interactuar con el teléfono.""Hace un mes""Hace más de un mes"
- "{count,plural, =1{Último día (#)}many{Últimos # días}other{Últimos # días}}"
+ "{count,plural, =1{Último día (#)}other{Últimos # días}}""El mes pasado""Anterior""%s"
@@ -1112,14 +1106,14 @@
"en %dh""en %d d""en %da"
- "{count,plural, =1{Hace # minuto}many{Hace # minutos}other{Hace # minutos}}"
- "{count,plural, =1{Hace # hora}many{Hace # horas}other{Hace # horas}}"
- "{count,plural, =1{Hace # día}many{Hace # días}other{Hace # días}}"
- "{count,plural, =1{Hace # año}many{Hace # años}other{Hace # años}}"
- "{count,plural, =1{# minuto}many{# minutos}other{# minutos}}"
- "{count,plural, =1{# hora}many{# horas}other{# horas}}"
- "{count,plural, =1{# día}many{# días}other{# días}}"
- "{count,plural, =1{# año}many{# años}other{# años}}"
+ "{count,plural, =1{Hace # minuto}other{Hace # minutos}}"
+ "{count,plural, =1{Hace # hora}other{Hace # horas}}"
+ "{count,plural, =1{Hace # día}other{Hace # días}}"
+ "{count,plural, =1{Hace # año}other{Hace # años}}"
+ "{count,plural, =1{# minuto}other{# minutos}}"
+ "{count,plural, =1{# hora}other{# horas}}"
+ "{count,plural, =1{# día}other{# días}}"
+ "{count,plural, =1{# año}other{# años}}""Incidencias con el vídeo""Este vídeo no se puede transmitir al dispositivo.""No se puede reproducir el vídeo."
@@ -1247,9 +1241,10 @@
"Preparando %1$s.""Iniciando aplicaciones""Finalizando inicio..."
+ "¿Quieres seguir con la configuración?""Has pulsado el botón de encendido, lo que suele apagar la pantalla.\n\nPrueba a apoyar el dedo ligeramente para verificar tu huella digital."
- "Apaga la pantalla para finalizar"
- "Apagar"
+ "Apagar pantalla"
+ "Seguir configurando""¿Seguir verificando tu huella digital?""Has pulsado el botón de encendido, lo que suele apagar la pantalla.\n\nPrueba a apoyar el dedo ligeramente para verificar tu huella digital.""Apagar pantalla"
@@ -1328,10 +1323,10 @@
"Puedes cambiar esta opción más tarde en Ajustes > Aplicaciones.""Permitir siempre""No permitir nunca"
- "SIM quitada"
- "La red móvil no estará disponible hasta que reinicies el dispositivo con una SIM válida."
+ "Tarjeta SIM retirada"
+ "La red móvil no estará disponible hasta que reinicies el dispositivo con una tarjeta SIM válida.""Hecho"
- "SIM añadida"
+ "Tarjeta SIM añadida""Reinicia el dispositivo para acceder a la red móvil.""Reiniciar""Activar servicio móvil"
@@ -1385,7 +1380,7 @@
"Selecciona un método de entrada""Mientras el teclado físico está activo""Mostrar teclado virtual"
- "Configurar el teclado físico"
+ "Configura el teclado físico""Toca para seleccionar el idioma y el diseño"" ABCDEFGHIJKLMNOPQRSTUVWXYZ"" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
@@ -1402,16 +1397,16 @@
"Toca para configurar""Selecciona para configurar""Es posible que tengas que reformatear el dispositivo. Toca para expulsar."
- "Para almacenar fotos, vídeos, música, y más"
+ "Para transferir fotos y multimedia""Consulta los archivos del dispositivo""Problema con %s""%s no funciona""Toca para solucionar el problema""%s está dañada. Selecciónala para arreglarla.""Es posible que tengas que reformatear el dispositivo. Toca para expulsar."
- "Detectado: %s"
+ "Medio externo (%s) no admitido""%s no funciona"
- "Toca para configurar."
+ "El dispositivo no admite este medio externo (%s). Toca para configurarlo con un formato admitido.""Selecciona para configurar %s en un formato compatible.""Es posible que tengas que reformatear el dispositivo""Extracción inesperada de %s"
@@ -1506,7 +1501,7 @@
"Saltar""No hay coincidencias.""Buscar en la página"
- "{count,plural, =1{# coincidencia}many{# de {total}}other{# de {total}}}"
+ "{count,plural, =1{# coincidencia}other{# de {total}}}""Hecho""Borrando almacenamiento compartido…""Compartir"
@@ -1610,7 +1605,7 @@
"TV""Teléfono""Altavoces de la base"
- "Dispositivo externo"
+ "HDMI""Auriculares""USB""Sistema"
@@ -1643,7 +1638,7 @@
"La tarjeta SIM está inhabilitada. Para continuar, introduce el código PUK. Si quieres obtener más información, ponte en contacto con el operador""Introduce el código PIN deseado""Confirma el código PIN"
- "Desbloqueando SIM…"
+ "Desbloqueando tarjeta SIM…""Código PIN incorrecto""Introduce un código PIN con una longitud comprendida entre cuatro y ocho dígitos.""El código PUK debe tener 8 números."
@@ -1692,7 +1687,7 @@
"Permitir""Denegar""Toca una función para empezar a usarla:"
- "Selecciona qué funciones usar con el botón de accesibilidad"
+ "Selecciona qué funciones usar con el botón Accesibilidad""Selecciona qué funciones usar con la tecla de volumen""Se ha desactivado %s""Editar accesos directos"
@@ -1706,10 +1701,10 @@
"Al mantener pulsadas las teclas de volumen, se ha activado %1$s.""Se han mantenido pulsadas las teclas de volumen. Se ha desactivado %1$s.""Para utilizar %1$s, mantén pulsadas ambas teclas de volumen durante 3 segundos"
- "Selecciona la función que se utilizará cuando toques el botón de accesibilidad:"
+ "Selecciona la función que se utilizará cuando toques el botón Accesibilidad:""Elige la función que se utilizará con el gesto de accesibilidad (deslizar dos dedos hacia arriba desde la parte inferior de la pantalla):""Elige la función que se utilizará con el gesto de accesibilidad (deslizar tres dedos hacia arriba desde la parte inferior de la pantalla):"
- "Para cambiar de una función a otra, mantén pulsado el botón de accesibilidad."
+ "Para cambiar de una función a otra, mantén pulsado el botón Accesibilidad.""Para cambiar de una función a otra, desliza hacia arriba con dos dedos y mantén pulsada la pantalla.""Para cambiar de una función a otra, desliza tres dedos hacia arriba y mantén pulsada la pantalla.""Ampliación"
@@ -1859,14 +1854,14 @@
"Para reducir el uso de datos, Ahorro de datos evita que algunas aplicaciones envíen o reciban datos en segundo plano. Si estás usando una aplicación, podrá acceder a datos, pero con menos frecuencia. Esto significa que es posible que, por ejemplo, algunas imágenes no se muestren hasta que las toques.""¿Activar Ahorro de datos?""Activar"
- "{count,plural, =1{Durante un minuto (hasta las {formattedTime})}many{Durante # minutos (hasta las {formattedTime})}other{Durante # minutos (hasta las {formattedTime})}}"
- "{count,plural, =1{Durante 1 min (hasta las {formattedTime})}many{Durante # min (hasta las {formattedTime})}other{Durante # min (hasta las {formattedTime})}}"
- "{count,plural, =1{Durante 1 hora (hasta las {formattedTime})}many{Durante # horas (hasta las {formattedTime})}other{Durante # horas (hasta las {formattedTime})}}"
- "{count,plural, =1{Durante 1 h (hasta las {formattedTime})}many{Durante # h (hasta las {formattedTime})}other{Durante # h (hasta las {formattedTime})}}"
- "{count,plural, =1{Durante 1 minuto}many{Durante # minutos}other{Durante # minutos}}"
- "{count,plural, =1{Durante 1 min}many{Durante # min}other{Durante # min}}"
- "{count,plural, =1{Durante 1 hora}many{Durante # horas}other{Durante # horas}}"
- "{count,plural, =1{Durante 1 h}many{Durante # h}other{Durante # h}}"
+ "{count,plural, =1{Durante un minuto (hasta las {formattedTime})}other{Durante # minutos (hasta las {formattedTime})}}"
+ "{count,plural, =1{Durante 1 min (hasta las {formattedTime})}other{Durante # min (hasta las {formattedTime})}}"
+ "{count,plural, =1{Durante 1 hora (hasta las {formattedTime})}other{Durante # horas (hasta las {formattedTime})}}"
+ "{count,plural, =1{Durante 1 h (hasta las {formattedTime})}other{Durante # h (hasta las {formattedTime})}}"
+ "{count,plural, =1{Durante 1 minuto}other{Durante # minutos}}"
+ "{count,plural, =1{Durante 1 min}other{Durante # min}}"
+ "{count,plural, =1{Durante 1 hora}other{Durante # horas}}"
+ "{count,plural, =1{Durante 1 h}other{Durante # h}}""Hasta las %1$s""Hasta %1$s""Hasta las %1$s (próxima alarma)"
@@ -1923,8 +1918,7 @@
"Añadir un idioma""Preferencia de región""Nombre de idioma"
- "Sugeridos"
- "Sugerencias"
+ "Sugerido""Todos los idiomas""Todas las regiones""Buscar"
@@ -1942,19 +1936,18 @@
"Cámara no disponible""Continúa en el teléfono""Micrófono no disponible"
- "Play Store no disponible""Ajustes de Android TV no disponibles""Ajustes del tablet no disponibles""Ajustes del teléfono no disponibles"
- "En estos momentos, no se puede acceder a este contenido en tu %1$s. Prueba en tu dispositivo Android TV."
- "En estos momentos, no se puede acceder a este contenido en tu %1$s. Prueba en tu tablet."
- "En estos momentos, no se puede acceder a este contenido en tu %1$s. Prueba en tu teléfono."
+ "No se puede acceder a este contenido en tu %1$s. Prueba en tu dispositivo Android TV."
+ "No se puede acceder a este contenido en tu %1$s. Prueba en tu tablet."
+ "No se puede acceder a este contenido en tu %1$s. Prueba en tu teléfono."
+ "En estos momentos, no se puede acceder a este contenido en tu %1$s. Prueba en tu dispositivo Android TV."
+ "En estos momentos, no se puede acceder a este contenido en tu %1$s. Prueba en tu tablet."
+ "En estos momentos, no se puede acceder a este contenido en tu %1$s. Prueba en tu teléfono.""Esta aplicación solicita seguridad adicional. Prueba en tu dispositivo Android TV.""Esta aplicación solicita seguridad adicional. Prueba en tu tablet.""Esta aplicación solicita seguridad adicional. Prueba en tu teléfono."
- "No se puede acceder desde tu %1$s. Prueba en tu dispositivo Android TV."
- "No se puede acceder a este contenido en tu %1$s. Prueba en tu tablet."
- "No se puede acceder desde tu %1$s. Prueba en tu teléfono.""Esta aplicación se ha diseñado para una versión anterior de Android y es posible que no funcione correctamente. Busca actualizaciones o ponte en contacto con el desarrollador.""Buscar actualizaciones""Tienes mensajes nuevos"
@@ -1997,7 +1990,7 @@
"Guardar en la función Autocompletar""El contenido no se puede autocompletar""No hay sugerencias de Autocompletar"
- "{count,plural, =1{1 sugerencia de Autocompletar}many{# sugerencias de Autocompletar}other{# sugerencias de Autocompletar}}"
+ "{count,plural, =1{1 sugerencia de Autocompletar}other{# sugerencias de Autocompletar}}""¿Guardar en ""%1$s""?""¿Guardar %1$s en ""%2$s""?""¿Guardar %1$s y %2$s en ""%3$s""?"
@@ -2047,8 +2040,7 @@
"¿Permitir que %s acceda a todos los registros del dispositivo?""Permitir el acceso una vez""No permitir"
- "Los registros del dispositivo documentan lo que sucede en tu dispositivo. Las aplicaciones pueden usar estos registros para encontrar y solucionar problemas.\n\nComo algunos registros pueden contener información sensible, es mejor que solo permitas que accedan a ellos las aplicaciones en las que confíes. \n\nAunque no permitas que esta aplicación acceda a todos los registros del dispositivo, aún podrá acceder a sus propios registros. El fabricante de tu dispositivo aún puede acceder a algunos registros o información de tu dispositivo."
- "Los registros del dispositivo documentan lo que sucede en tu dispositivo. Las aplicaciones pueden usar estos registros para encontrar y solucionar problemas.\n\nComo algunos registros pueden contener información sensible, es mejor que solo permitas que accedan a ellos las aplicaciones en las que confíes. \n\nAunque no permitas que esta aplicación acceda a todos los registros del dispositivo, podrá seguir accediendo a sus propios registros. El fabricante de tu dispositivo aún puede acceder a algunos registros o información de tu dispositivo.\n\nObtén más información en g.co/android/devicelogs."
+ "Los registros del dispositivo documentan lo que sucede en tu dispositivo. Las aplicaciones pueden usar estos registros para encontrar y solucionar problemas.\n\nComo algunos registros pueden contener información sensible, es mejor que solo permitas que accedan a ellos las aplicaciones en las que confíes. \n\nAunque no permitas que esta aplicación acceda a todos los registros del dispositivo, aún podrá acceder a sus propios registros. Es posible que el fabricante del dispositivo pueda acceder a algunos registros o información de tu dispositivo. Más información""No volver a mostrar""%1$s quiere mostrar fragmentos de %2$s""Editar"
@@ -2061,7 +2053,8 @@
"Ha cambiado el modo No molestar""Toca para consultar lo que se está bloqueando.""Consulta los ajustes de notificaciones"
- "A partir de Android 13, las aplicaciones que instalas necesitan tu permiso para enviar notificaciones. Toca para cambiar este permiso en las aplicaciones que ya tengas."
+
+ "Recordar más tarde""Cerrar""Sistema"
@@ -2108,7 +2101,7 @@
"Presentación %1$s""El Bluetooth seguirá activado en el modo Avión""Cargando"
- "{count,plural, =1{{file_name} y # archivo más}many{{file_name} y # archivos más}other{{file_name} y # archivos más}}"
+ "{count,plural, =1{{file_name} y # archivo más}other{{file_name} y # archivos más}}""No hay sugerencias de personas con las que compartir""Lista de aplicaciones""Esta aplicación no tiene permiso para grabar, pero podría capturar audio con este dispositivo USB."
@@ -2289,6 +2282,5 @@
"Consultar aplicaciones activas""No se puede acceder a la cámara del teléfono desde tu %1$s""No se puede acceder a la cámara del tablet desde tu %1$s"
- "No se puede acceder a este contenido durante una emisión. Prueba en tu teléfono."
- "Predeterminado del sistema"
+ "Idioma del sistema"
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index aee2f24f92fcc0e31b3ca74c429e2619cc4920da..d5f0c2bb6665cb882cf901628cf77de3f3222159 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Pealkirjata>""(Telefoninumbrit pole)"
@@ -28,7 +33,6 @@
"Kõnepost""MSISDN1""Ühendusprobleem või kehtetu MMI-kood."
- "Funktsiooni ei toetata.""Toiming on ainult fikseeritud valimisnumbritele.""Kõne suunamise seadeid ei saa rändluse ajal teie telefonis muuta.""Teenus on lubatud."
@@ -43,8 +47,8 @@
"Sisestatud PIN-koodid ei kattu.""Sisestage 4–8-numbriline PIN-kood.""Sisestage 8- või enamanumbriline PUK-kood."
- "SIM on PUK-koodiga lukustatud. Avamiseks sisestage PUK-kood."
- "SIM-i deblokeerimiseks sisestage PUK2."
+ "SIM-kaart on PUK-lukustatud. Avamiseks sisestage PUK-kood."
+ "Sisestage SIM-kaardi blokeeringu tühistamiseks PUK2-kood.""Ebaõnnestus, SIM-i/RUIM-i lukustuse lubamine."Teil on enne SIM-kaardi lukustumist jäänud veel %d katset.
@@ -301,12 +305,12 @@
"juurdepääs kalendrile""SMS""saata ja vaadata SMS-sõnumeid"
- "Failid"
- "juurdepääs teie seadmes olevatele failidele"
- "Muusika ja heli"
- "teie seadmes muusikale ja helile juurdepääsemine"
- "Fotod ja videod"
- "teie seadmes fotodele ja videotele juurdepääsemine"
+ "Failid ja dokumendid"
+ "juurdepääs teie seadmes olevatele failidele ja dokumentidele"
+ "Muusika ja muud helifailid"
+ "pääseda juurde teie seadmes olevatele helifailidele"
+ "Fotod ja videod"
+ "pääseda juurde teie seadmes olevatele pildi- ja videofailidele""Mikrofon""heli salvestamine""Füüsiline tegevus"
@@ -582,14 +586,13 @@
"Ekraaniluku kasutamine""Jätkamiseks sisestage oma ekraanilukk""Vajutage tugevalt andurile"
- "Sõrmejälge ei õnnestu tuvastada. Proovige uuesti."
+ "Sõrmejälge ei õnnestunud töödelda. Proovige uuesti.""Puhastage sõrmejäljeandur ja proovige uuesti""Puhastage andur ja proovige uuesti""Vajutage tugevalt andurile""Sõrm liikus liiga aeglaselt. Proovige uuesti.""Proovige teist sõrmejälge""Liiga ere"
- "Tuvastati toitenupu vajutamine""Proovige kohandada""Muutke iga kord pisut oma sõrme asendit"
@@ -601,17 +604,16 @@
"Nägu on autenditud, vajutage käsku Kinnita""Sõrmejälje riistvara pole saadaval.""Sõrmejälge ei saa seadistada"
- "Sõrmejälje seadistamine aegus. Proovige uuesti."
+ "Sõrmejälje riistvara taimeri ajalõpp. Proovige uuesti.""Sõrmejälje toiming tühistati.""Kasutaja tühistas sõrmejälje kasutamise."
- "Liiga palju katseid. Kasutage selle asemel ekraanilukku."
- "Liiga palju katseid. Kasutage selle asemel ekraanilukku."
- "Sõrmejälge ei õnnestu töödelda. Proovige uuesti."
+ "Liiga palju katseid. Proovige hiljem uuesti."
+ "Liiga palju katseid. Sõrmejäljeandur on keelatud."
+ "Proovige uuesti.""Ühtegi sõrmejälge pole registreeritud.""Selles seadmes pole sõrmejäljeandurit.""Andur on ajutiselt keelatud.""Sõrmejäljeandurit ei saa kasutada. Külastage remonditeenuse pakkujat"
- "Vajutati toitenuppu""Sõrmejälg %d""Sõrmejälje kasutamine""Sõrmejälje või ekraaniluku kasutamine"
@@ -632,33 +634,26 @@
"Sõrmejäljega avamine""Sõrmejäljeandurit ei saa kasutada""Külastage remonditeenuse pakkujat."
- "Teie näomudelit ei saa luua. Proovige uuesti."
+ "Näoandmeid ei saanud jäädvustada. Proovige uuesti.""Liiga ere. Proovige hämaramat valgust."
- "Pole piisavalt valgust"
- "Liigutage telefoni kaugemale"
- "Liigutage telefoni lähemale"
- "Liigutage telefoni kõrgemale"
- "Liigutage telefoni allapoole"
- "Liigutage telefoni vasakule"
- "Liigutage telefoni paremale"
+ "Liiga pime. Proovige parema valgustusega kohas."
+ "Liigutage telefon kaugemale."
+ "Liigutage telefon lähemale."
+ "Liigutage telefoni kõrgemale."
+ "Liigutage telefoni allapoole."
+ "Liigutage telefoni vasakule."
+ "Liigutage telefoni paremale.""Vaadake otse oma seadmesse."
- "Teie nägu ei ole näha. Hoidke telefoni silmade kõrgusel."
+ "Hoidke oma nägu otse telefoni ees.""Liiga palju liikumist. Hoidke telefoni paigal.""Registreerige oma nägu uuesti."
- "Nägu ei õnnestu tuvastada. Proovige uuesti."
- "Muutke pisut oma pea asendit"
- "Vaadake otse telefoni"
- "Vaadake otse telefoni"
- "Vaadake otse telefoni"
+ "Nägu ei õnnestu enam tuvastada. Proovige uuesti."
+ "Liiga sarnane, palun muutke oma asendit."
+ "Pöörake oma pead veidi vähem."
+ "Kallutage oma pead pisut vähem."
+ "Pöörake oma pead veidi vähem.""Eemaldage kõik, mis varjab teie nägu.""Puhastage ekraani ülaosa, sh musta värvi riba"
-
-
-
-
- "Teie näomudelit ei saa luua. Proovige uuesti."
- "Tuvastati tumedad prillid. Teie nägu peab olema täielikult nähtaval."
- "Tuvastati nägu kattev ese. Teie nägu peab olema täielikult nähtaval.""Nägu ei saa kinnitada. Riistvara pole saadaval."
@@ -924,14 +919,14 @@
"Proovige uuesti""Ava kõigi funktsioonide ja andmete nägemiseks""Maksimaalne näoga avamise katsete arv on ületatud"
- "SIM-i pole"
- "Tahvelarvutis pole SIM-i."
- "Teie Android TV seadmes pole SIM-i."
- "Telefonis pole SIM-i."
- "Lisage SIM."
- "SIM puudub või pole loetav. Lisage SIM."
- "SIM-i ei saa kasutada."
- "Teie SIM on jäädavalt inaktiveeritud.\n Teise SIM-i saamiseks võtke ühendust oma traadita side teenusepakkujaga."
+ "SIM-kaarti pole"
+ "Tahvelarvutis pole SIM-kaarti."
+ "Teie Android TV seadmes pole SIM-kaarti."
+ "Telefonis pole SIM-kaarti."
+ "Sisestage SIM-kaart."
+ "SIM-kaart puudub või on loetamatu. Sisestage SIM-kaart."
+ "Kasutamiskõlbmatu SIM-kaart."
+ "SIM-kaart on jäädavalt keelatud.\n Teise SIM-kaardi saamiseks võtke ühendust oma traadita side teenusepakkujaga.""Eelmine lugu""Järgmine lugu""Peata"
@@ -941,10 +936,10 @@
"Keri edasi""Ainult hädaabikõned""Võrk suletud"
- "SIM on PUK-koodiga lukustatud."
+ "SIM-kaart on PUK-lukus.""Vaadake kasutusjuhendit või võtke ühendust klienditeenindusega."
- "SIM on lukustatud."
- "SIM-i avamine …"
+ "SIM-kaart on lukus."
+ "SIM-kaardi avamine ...""Olete oma avamismustrit %1$d korda valesti koostanud. \n\nProovige %2$d sekundi pärast uuesti.""Olete parooli %1$d korda valesti sisestanud. \n\nProovige %2$d sekundi pärast uuesti.""Olete PIN-koodi %1$d korda valesti sisestanud. \n\nProovige %2$d sekundi pärast uuesti."
@@ -1246,9 +1241,10 @@
"Rakenduse %1$s ettevalmistamine.""Rakenduste käivitamine.""Käivitamise lõpuleviimine."
+ "Kas jätkata seadistamist?""Vajutasite toitenuppu – tavaliselt lülitab see ekraani välja.\n\nPuudutage õrnalt ja seadistage oma sõrmejälg."
- "Seadistuse lõpet. lülitage ekraan välja"
- "Lülita välja"
+ "Lülita ekraan välja"
+ "Jätka seadistamist""Kas jätkata sõrmejälje kinnitamist?""Vajutasite toitenuppu – tavaliselt lülitab see ekraani välja.\n\nPuudutage õrnalt, et oma sõrmejälg kinnitada.""Lülita ekraan välja"
@@ -1327,10 +1323,10 @@
"Saate muuta jaotises Seaded > Rakendused""Luba alati""Ära luba"
- "SIM on eemaldatud"
- "Mobiilsidevõrk ei ole saadaval, kuni taaskäivitate seadme koos kehtiva SIM-iga."
+ "SIM-kaart eemaldatud"
+ "Mobiilsidevõrk ei ole saadaval, kuni sisestate kehtiva SIM-kaardi ja taaskäivitate seadme.""Valmis"
- "SIM on lisatud"
+ "SIM-kaart lisatud""Mobiilsidevõrku pääsemiseks taaskäivitage seade.""Taaskäivita""Mobiilsideteenuse aktiveerimine"
@@ -1401,16 +1397,16 @@
"Puudutage seadistamiseks""Valige seadistamiseks""Peate võib-olla seadme uuesti vormindama. Puudutage väljutamiseks."
- "Salvestage fotosid, videoid, muusikat ja muud"
+ "Fotode ja meedia ülekandmiseks""Sirvige meediafaile""Probleem üksusega %s""%s ei tööta""Puudutage parandamiseks""Kaart %s on rikutud. Valige parandamiseks.""Peate võib-olla seadme uuesti vormindama. Puudutage väljutamiseks."
- "Tuvastati meedium %s"
+ "Toetamata %s""%s ei tööta"
- "Puudutage seadistamiseks."
+ "See seade ei toeta üksust %s. Puudutage toetatud vormingus seadistamiseks.""Valige üksuse %s seadistamiseks toetatud vormingus.""Peate võib-olla seadme uuesti vormindama""Üksus %s eemaldati ootamatult"
@@ -1420,8 +1416,8 @@
"Üksuse %s väljutamine …""Ärge eemaldage""Seadistus"
- "Eemalda"
- "Avasta"
+ "Eemaldamine"
+ "Avastamine""Vahetage väljundit""Üksust %s pole""Sisestage seade uuesti"
@@ -1564,9 +1560,9 @@
"%1$s, %2$s, %3$s""Sisemine jagatud mäluruum""SD-kaart"
- "%s SD-kaart"
+ "Tootja %s SD-kaart""USB-ketas"
- "%s USB-ketas"
+ "Tootja %s USB-ketas""USB-mäluseade""Muuda""Andmekasutuse hoiatus"
@@ -1609,7 +1605,7 @@
"Teler""Telefon""Doki kõlarid"
- "Väline seade"
+ "HDMI""Kõrvaklapid""USB""Süsteem"
@@ -1642,7 +1638,7 @@
"SIM on nüüd keelatud. Jätkamiseks sisestage PUK-kood. Üksikasju küsige operaatorilt.""Sisestage soovitud PIN-kood""Kinnitage soovitud PIN-kood"
- "SIM-i avamine …"
+ "SIM-kaardi avamine ...""Vale PIN-kood.""Sisestage 4–8-numbriline PIN-kood.""PUK-kood peab koosnema 8 numbrist."
@@ -1923,7 +1919,6 @@
"Piirkonnaeelistus""Sisestage keele nimi""Soovitatud"
- "Soovitatud""Kõik keeled""Kõik piirkonnad""Otsing"
@@ -1941,19 +1936,18 @@
"Kaamera pole saadaval""Jätkake telefonis""Mikrofon pole saadaval"
- "Play pood ei ole saadaval""Android TV seaded pole saadaval""Tahvelarvuti seaded pole saadaval""Telefoni seaded pole saadaval"
- "Sellele ei pääse praegu teie seadmega (%1$s) juurde. Proovige juurde pääseda oma Android TV seadmega."
- "Sellele ei pääse praegu teie seadmega (%1$s) juurde. Proovige juurde pääseda oma tahvelarvutiga."
- "Sellele ei pääse praegu teie seadmega (%1$s) juurde. Proovige juurde pääseda oma telefoniga."
+ "Sellele ei pääse teie seadmes %1$s juurde. Proovige juurde pääseda oma Android TV seadmes."
+ "Sellele ei pääse teie seadmes %1$s juurde. Proovige juurde pääseda oma tahvelarvutis."
+ "Sellele ei pääse teie seadmes %1$s juurde. Proovige juurde pääseda oma telefonis."
+ "Sellele ei pääse praegu teie seadmes %1$s juurde. Proovige juurde pääseda oma Android TV seadmes."
+ "Sellele ei pääse praegu teie seadmes %1$s juurde. Proovige juurde pääseda oma tahvelarvutis."
+ "Sellele ei pääse praegu teie seadmes %1$s juurde. Proovige juurde pääseda oma telefonis.""See rakendus nõuab lisaturvalisust. Proovige juurde pääseda oma Android TV seadmes.""See rakendus nõuab lisaturvalisust. Proovige juurde pääseda oma tahvelarvutis.""See rakendus nõuab lisaturvalisust. Proovige juurde pääseda oma telefonis."
- "Sellele ei pääse teie seadmes %1$s juurde. Proovige juurde pääseda oma Android TV seadmes."
- "Sellele ei pääse teie seadmes %1$s juurde. Proovige juurde pääseda oma tahvelarvutis."
- "Sellele ei pääse teie seadmes %1$s juurde. Proovige juurde pääseda oma telefonis.""See rakendus on loodud Androidi vanema versiooni jaoks ega pruugi õigesti töötada. Otsige värskendusi või võtke ühendust arendajaga.""Otsi värskendust""Teile on uusi sõnumeid"
@@ -2046,8 +2040,7 @@
"Kas anda rakendusele %s juurdepääs kõigile seadmelogidele?""Luba ühekordne juurdepääs""Ära luba"
- "Seadmelogid jäädvustavad, mis teie seadmes toimub. Rakendused saavad neid logisid kasutada probleemide tuvastamiseks ja lahendamiseks.\n\nMõned logid võivad sisaldada tundlikku teavet, seega lubage juurdepääs kõigile seadmelogidele ainult rakendustele, mida usaldate. \n\nKui te ei luba sellel rakendusel kõigile seadmelogidele juurde pääseda, pääseb see siiski juurde oma logidele. Teie seadme tootja võib teie seadmes siiski teatud logidele või teabele juurde pääseda."
- "Seadmelogid jäädvustavad, mis teie seadmes toimub. Rakendused saavad neid logisid kasutada probleemide tuvastamiseks ja lahendamiseks.\n\nMõned logid võivad sisaldada tundlikku teavet, seega lubage juurdepääs kõigile seadmelogidele ainult rakendustele, mida usaldate. \n\nKui te ei luba sellel rakendusel kõigile seadmelogidele juurde pääseda, pääseb see siiski juurde oma logidele. Teie seadme tootja võib teie seadmes siiski teatud logidele või teabele juurde pääseda.\n\nLugege lisateavet aadressil g.co/android/devicelogs."
+ "Seadmelogid jäädvustavad, mis teie seadmes toimub. Rakendused saavad neid logisid kasutada probleemide tuvastamiseks ja lahendamiseks.\n\nMõned logid võivad sisaldada tundlikku teavet, seega lubage juurdepääs kõigile seadmelogidele ainult rakendustele, mida usaldate. \n\nKui te ei luba sellel rakendusel kõigile seadmelogidele juurde pääseda, pääseb see siiski juurde oma logidele. Teie seadme tootja võib teie seadmes siiski teatud logidele või teabele juurde pääseda. Lisateave""Ära kuva uuesti""Rakendus %1$s soovib näidata rakenduse %2$s lõike""Muuda"
@@ -2060,7 +2053,8 @@
"Režiimi Mitte segada muudeti""Puudutage, et kontrollida, mis on blokeeritud.""Vaadake üle märguandeseaded"
- "Alates operatsioonisüsteemist Android 13 vajavad installitavad rakendused märguannete saatmiseks teie luba. Puudutage, et muuta seda luba olemasolevate rakenduste jaoks."
+
+ "Tuleta hiljem meelde""Loobu""Süsteem"
@@ -2286,8 +2280,7 @@
"Rakendus %1$s töötab taustal. Puudutage akukasutuse haldamiseks.""%1$s võib aku tööiga mõjutada. Puudutage aktiivsete rakenduste ülevaatamiseks.""Vaadake aktiivseid rakendusi"
- "Teie seadmest %1$s ei pääse telefoni kaamerale juurde."
+ "Teie seadmest %1$s ei pääse telefoni kaamerale juurde""Teie seadmest %1$s ei pääse tahvelarvuti kaamerale juurde"
- "Sellele ei pääse voogesituse ajal juurde. Proovige juurde pääseda oma telefonis."
- "Süsteemi vaikeseade"
+ "Süsteemi keel"
diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml
index 124e83c31313c989bf1271819d408683b80f4a7e..4b473580222f6cd19bfc482a0b04d6387959cf07 100644
--- a/core/res/res/values-eu/strings.xml
+++ b/core/res/res/values-eu/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Izengabea>""(Ez dago telefono-zenbakirik)"
@@ -28,7 +33,6 @@
"Erantzungailua""MSISDN1""Konexio-arazoren bat gertatu da edo MMI kodea baliogabea da."
- "Ez da onartzen eginbidea.""Eragiketa markatze finkoko zenbakietara murriztua dago.""Ezin dira aldatu deiak desbideratzeko ezarpenak telefonoa ibiltaritzan dagoenean.""Zerbitzua gaitu da."
@@ -43,8 +47,8 @@
"Idatzi dituzun PIN kodeak ez datoz bat.""Idatzi 4 eta 8 zenbaki bitarteko PIN bat.""Idatzi 8 zenbaki edo gehiago dauzkan PUK bat."
- "SIMa PUKaren bidez desblokeatu behar da. Idatzi PUK kodea SIMa desblokeatzeko."
- "Idatzi PUK2-a SIMa desblokeatzeko."
+ "SIM txartela PUK bidez blokeatuta duzu. Desblokeatzeko, idatzi PUK kodea."
+ "SIM txartela desblokeatzeko, idatzi PUK2 kodea.""Ezin izan da aldatu. Gaitu SIM edo RUIM txartelaren blokeoa."%d saiakera geratzen zaizkizu SIM txartela blokeatu aurretik.
@@ -52,8 +56,8 @@
"IMEIa""MEID"
- "Deitzailearen identitatea (jasotako deiak)"
- "Ezkutatu irteerako deitzailearen identitatea"
+ "Sarrerako deien identifikazio-zerbitzua"
+ "Ezkutatu irteerako deitzailearen IDa""Konektatutako linearen IDa""Konektatutako linearen ID murriztapena""Dei-desbideratzea"
@@ -67,13 +71,13 @@
"Nahigabeko dei gogaikarriak ukatzea""Deitzailearen zenbakia ematea""Ez molestatzeko modua"
- "Deitzailearen identitatea zerbitzuaren balio lehenetsiak murriztapenak ezartzen ditu. Hurrengo deia: murriztapenekin"
- "Deitzailearen identitatea adierazteko zerbitzuaren balio lehenetsiak murriztapenak ezartzen ditu. Hurrengo deia: murriztapenik gabe."
- "Deitzailearen identitatea zerbitzuaren balio lehenetsiak ez du murriztapenik ezartzen. Hurrengo deia: murriztapenekin."
- "Deitzailearen identitatea zerbitzuaren balio lehenetsiak ez du murriztapenik ezartzen. Hurrengo deia: murriztapenik gabe."
+ "Deien identifikazio-zerbitzuaren balio lehenetsiak murriztapenak ezartzen ditu. Hurrengo deia: murriztapenekin"
+ "Deien identifikazio-zerbitzuaren balio lehenetsiak murriztapenak ezartzen ditu. Hurrengo deia: murriztapenik gabe"
+ "Deien identifikazio-zerbitzuaren balio lehenetsiak ez du murriztapenik ezartzen. Hurrengo deia: murriztapenekin"
+ "Deien identifikazio-zerbitzuaren balio lehenetsiak ez du murriztapenik ezartzen. Hurrengo deia: murriztapenik gabe""Zerbitzua ez da hornitu."
- "Ezin duzu aldatu deitzailearen identitatearen ezarpena."
- "Ez dago mugikorretarako datu-zerbitzurik"
+ "Ezin duzu deien identifikazio-zerbitzuaren ezarpena aldatu."
+ "Ez dago mugikorreko datu-zerbitzurik""Ezin da egin larrialdi-deirik""Ez dago ahots-deien zerbitzurik""Ez dago ahozko zerbitzurik eta ezin da egin larrialdi-deirik"
@@ -176,7 +180,7 @@
"Erlojuaren memoria beteta dago. Tokia egiteko, ezabatu fitxategi batzuk.""Android TV gailuaren memoria beteta dago. Tokia egiteko, ezabatu fitxategi batzuk.""Telefonoaren memoria beteta dago. Tokia egiteko, ezabatu fitxategi batzuk."
- "{count,plural, =1{Autoritate ziurtagiri-emaile bat dago instalatuta}other{Autoritate ziurtagiri-emaile bat baino gehiago daude instalatuta}}"
+ "{count,plural, =1{Ziurtagiri-emaile bat dago instalatuta}other{Ziurtagiri-emaile bat baino gehiago daude instalatuta}}""Hirugarren alderdi ezezagun baten arabera""Laneko profilen administratzaileak""%s da arduraduna"
@@ -301,12 +305,12 @@
"atzitu egutegia""SMSak""bidali eta ikusi SMS mezuak"
- "Fitxategiak"
- "gailuko fitxategiak atzitu"
- "Musika eta audioa"
- "atzitu gailuko musika eta audioak"
- "Argazkiak eta bideoak"
- "atzitu gailuko argazkiak eta bideoak"
+ "Fitxategiak eta dokumentuak"
+ "gailuko fitxategiak eta dokumentuak atzitu"
+ "Musika eta bestelako audioa"
+ "atzitu gailuko audio-fitxategiak"
+ "Argazkiak eta bideoak"
+ "atzitu gailuko irudi- eta bideo-fitxategiak""Mikrofonoa""grabatu audioa""Jarduera fisikoa"
@@ -323,24 +327,24 @@
"atzitu bizi-konstanteei buruzko sentsorearen datuak""Jakinarazpenak""jakinarazpenak erakutsi"
- "Leihoko edukia eskuratu."
+ "Eskuratu leihoko edukia""Arakatu irekita daukazun leihoko edukia."
- "\"Arakatu ukituta\" aktibatu."
+ "Aktibatu \"Arakatu ukituta\"""Sakatutako elementuak ozen irakurriko dira eta pantaila keinu bidez arakatu ahal izango da."
- "Idazten duzun testua behatu."
+ "Behatu idazten duzun testua""Ez da salbuespenik egiten datu pertsonalekin, hala nola kreditu-txartelen zenbakiekin eta pasahitzekin."
- "Pantailaren zoom-maila kontrolatu."
- "Pantailaren zoom-maila eta posizioa kontrolatu."
- "Keinuak egin."
+ "Kontrolatu pantailaren zoom-maila"
+ "Kontrolatu pantailaren zoom-maila eta posizioa."
+ "Egin keinuak""Sakatu, lerratu, atximurkatu eta beste hainbat keinu egin ditzake.""Hatz-marken keinuak""Gailuaren hatz-marken sentsorean egindako keinuak atzeman ditzake."
- "Pantaila-argazkiak atera."
+ "Atera pantaila-argazki bat""Pantaila-argazkiak atera ditzake.""desgaitu edo aldatu egoera-barra""Egoera-barra desgaitzea edo sistema-ikonoak gehitzea edo kentzea baimentzen die aplikazioei.""bihurtu egoera-barra"
- "Egoera-barra izateko baimena ematen die aplikazioei."
+ "Egoera-barra izatea baimentzen die aplikazioei.""zabaldu/tolestu egoera-barra""Egoera-barra zabaltzeko edo tolesteko baimena ematen die aplikazioei.""blokeatutako gailu batean jakinarazpenak pantaila osoko jarduera gisa bistaratzea"
@@ -422,9 +426,9 @@
"Android TV gailuko deien erregistroa aldatzeko baimena ematen die aplikazioei, jasotako eta egindako deiei buruzko datuak barne. Baliteke asmo txarreko aplikazioek deien erregistroa ezabatzea edo aldatzea.""Telefonoaren deien erregistroa aldatzeko baimena ematen die aplikazioei, sarrerako eta irteerako deiei buruzko datuak barne. Asmo txarreko aplikazioek deien erregistroa ezabatzeko edo aldatzeko erabil dezakete.""Atzitu gorputz-sentsoreen datuak (esaterako, bihotz-maiztasuna) aplikazioa erabili bitartean"
- "Aplikazioak erabiltzen diren bitartean, gorputz-sentsoreen datuak (besteak beste, bihotz-maiztasuna, tenperatura eta odolean dagoen oxigenoaren ehunekoa) erabiltzeko baimena ematen die aplikazio horiei."
+ "Aplikazioak erabiltzen diren bitartean, gorputz-sentsoreen datuak (besteak beste, bihotz-maiztasuna, tenperatura eta odolean dagoen oxigenoaren ehunekoa) atzitzeko baimena ematen die aplikazio horiei.""Atzitu gorputz-sentsoreen datuak (adib., bihotz-maiztasunarenak) atzeko planoan"
- "Aplikazioak atzeko planoan egon bitartean, gorputz-sentsoreen datuak (besteak beste, bihotz-maiztasuna, tenperatura eta odolean dagoen oxigenoaren ehunekoa) erabiltzeko baimena ematen die aplikazio horiei."
+ "Aplikazioak atzeko planoan egon bitartean, gorputz-sentsoreen datuak (besteak beste, bihotz-maiztasuna, tenperatura eta odolean dagoen oxigenoaren ehunekoa) atzitzeko baimena ematen die aplikazio horiei.""irakurri egutegiko gertaerak eta xehetasunak""Aplikazioak tabletan gordetako egutegiko gertaerak irakur ditzake eta egutegiko datuak parteka eta gorde ditzake.""Aplikazioak Android TV gailuan gordeta dituzun egutegiko gertaerak irakur ditzake, baita egutegiko datuak partekatu eta gorde ere."
@@ -434,7 +438,7 @@
"Android TV gailuan egutegiko gertaerak gehitzeko eta gehitutakoak kentzeko edo aldatzeko aukera dute aplikazioek. Gainera, egutegien jabeenak diruditen mezuak bidal ditzakete, edo gertaerak aldatu jabeei ezer esan gabe.""Telefonoko gertaerak gehitzeko, kentzeko edo aldatzeko aukera du aplikazioak. Gainera, egutegien jabeenak diruditen mezuak bidal ditzake, eta gertaerak alda ditzake jabeei beraiei jakinarazi gabe.""atzitu kokapen-hornitzaileen komando gehigarriak"
- "Kokapen-hornitzailearen agindu gehigarriak erabiltzeko baimena ematen die aplikazioei. Horrela, agian aplikazioek GPSaren edo bestelako kokapenaren iturburuen funtzionamenduan eragina izan dezakete."
+ "Kokapen-hornitzailearen agindu gehigarriak atzitzeko baimena ematen die aplikazioei. Horrela, agian aplikazioek GPSaren edo bestelako kokapenaren iturburuen funtzionamenduan eragina izan dezakete.""lortu kokapen zehatza aurreko planoan bakarrik""Abian denean, aplikazioak kokapen zehatza lor dezake kokapen-zerbitzuen bidez. Aplikazioak kokapena lortu ahal izateko, kokapen-zerbitzuek aktibatuta egon behar dute gailuan. Bateria-erabilera areagotzen du horrek.""atzitu gutxi gorabeherako kokapena aurreko planoan bakarrik"
@@ -455,21 +459,21 @@
"Aplikazioak abian den bitartean erabil dezake kamera argazkiak ateratzeko eta bideoak grabatzeko.""Argazkiak atera eta bideoak grabatu atzeko planoan.""Aplikazioak edonoiz erabil dezake kamera argazkiak ateratzeko eta bideoak grabatzeko."
- "eman sistemako kamerak erabiltzeko baimena aplikazio edo zerbitzu bati argazkiak ateratzeko eta bideoak grabatzeko"
+ "eman sistemako kamerak atzitzeko baimena aplikazio edo zerbitzu bati argazkiak ateratzeko eta bideoak grabatzeko""Pribilegioa duen edo sistemakoa den aplikazio honek edonoiz erabil dezake kamera argazkiak ateratzeko eta bideoak grabatzeko. Halaber, android.permission.CAMERA baimena izan behar du aplikazioak.""eman jakinarazpenak jasotzeko baimena aplikazioari edo zerbitzuari kamerak ireki edo ixten direnean.""Kamera ireki edo itxi dela (eta zer aplikaziorekin) dioten jakinarazpenak jaso ditzake aplikazio honek.""kontrolatu dardara""Bibragailua kontrolatzeko baimena ematen die aplikazioei."
- "Dardara-egoera erabiltzeko baimena ematen die aplikazioei."
+ "Dardara-egoera atzitzeko baimena ematen die aplikazioei.""deitu zuzenean telefono-zenbakietara""Telefono-zenbakietara zuk esku hartu gabe deitzeko baimena ematen die aplikazioei. Horrela, ustekabeko gastuak edo deiak eragin daitezke. Asmo txarreko aplikazioek erabil dezakete zuk berretsi gabeko deiak eginda gastuak eragiteko.""atzitu IMS dei-zerbitzua""Zuk ezer egin beharrik gabe deiak egiteko IMS zerbitzua erabiltzeko baimena ematen die aplikazioei.""irakurri telefonoaren egoera eta identitatea"
- "Gailuaren telefono-eginbideak erabiltzeko baimena ematen die aplikazioei. Baimen horrek aplikazioari telefono-zenbakia eta gailu IDak zein diren, deirik aktibo dagoen eta deia zer zenbakirekin konektatuta dagoen zehazteko baimena ematen die aplikazioei."
+ "Gailuaren telefono-eginbideak atzitzeko baimena ematen die aplikazioei. Baimen horrek aplikazioari telefono-zenbakia eta gailu IDak zein diren, deirik aktibo dagoen eta deia zer zenbakirekin konektatuta dagoen zehazteko baimena ematen die aplikazioei.""irakurri oinarrizko egoera telefonikoa eta identitatea"
- "Gailuaren oinarrizko eginbide telefonikoak erabiltzeko baimena ematen dio aplikazioari."
+ "Gailuaren oinarrizko eginbide telefonikoak atzitzeko baimena ematen dio aplikazioari.""bideratu deiak sistemaren bidez""Deiak sistemaren bidez bideratzea baimentzen die aplikazioei, deien zerbitzua ahal bezain ona izan dadin.""ikusi eta kontrolatu deiak sistemaren bidez."
@@ -477,9 +481,9 @@
"salbuetsi audioa grabatzeko murriztapenen aurrean""Salbuetsi aplikazioa audioa grabatzeko murriztapenen aurrean.""jarraitu beste aplikazio batean hasitako deia"
- "Beste aplikazio batean hasitako dei batekin jarraitzeko baimena ematen die aplikazioei."
+ "Beste aplikazio batean hasitako dei bat jarraitzea baimentzen dio aplikazioari.""irakurri telefono-zenbakiak"
- "Gailuaren telefono-zenbakiak erabiltzeko baimena ematen die aplikazioei."
+ "Gailuaren telefono-zenbakiak atzitzeko baimena ematen die aplikazioei.""mantendu piztuta autoko pantaila""eragotzi tableta inaktibo ezartzea""Android TV gailua inaktibo ezar dadin eragotzi"
@@ -520,9 +524,9 @@
"Wi-Fi sarearen bidez gailu guztiei bidalitako paketeak jasotzeko baimena ematen die aplikazioei multidifusio-helbideak erabilita, ez tableta soilik. Multidifusiokoa ez den moduak baino bateria gehiago erabiltzen du.""Multidifusio-helbideak erabiliz wifi-sare bateko gailu guztiei (ez bakarrik Android TV gailuari) bidalitako paketeak jasotzeko baimena ematen die aplikazioei. Multidifusiokoa ez den moduak baino bateria gehiago erabiltzen du.""Wi-Fi sarearen bidez gailu guztiei bidalitako paketeak jasotzeko baimena ematen die aplikazioei multidifusio-helbideak erabilita, ez telefonoa soilik. Multidifusiokoa ez den moduak baino bateria gehiago erabiltzen du."
- "atzitu Bluetootharen ezarpenak"
+ "atzitu Bluetooth-aren ezarpenak""Tokiko Bluetooth tableta konfiguratzea eta urruneko gailuak detektatzea eta haiekin parekatzea baimentzen die aplikazioei."
- "Android TV gailuan Bluetootha konfiguratzeko eta urruneko gailuak hautemateko eta haiekin parekatzeko baimena ematen die aplikazioei."
+ "Android TV gailuan Bluetooth-a konfiguratzeko eta urruneko gailuak hautemateko eta haiekin parekatzeko baimena ematen die aplikazioei.""Tokiko Bluetooth telefonoa konfiguratzea eta urruneko gailuak detektatzea eta haiekin parekatzea baimentzen die aplikazioei.""WiMAX sarera konektatzea eta deskonektatzea""WiMAX gaituta dagoen zehazteko eta konektatutako WiMAX sareei buruzko informazioa ikusteko baimena ematen die aplikazioei."
@@ -547,7 +551,7 @@
"NFC bidezko ordainketa-zerbitzu lehenetsiari buruzko informazioa""NFC bidezko ordainketa-zerbitzu lehenetsiari buruzko informazioa jasotzeko baimena ematen die aplikazioei, hala nola erregistratutako laguntzaileak eta ibilbidearen helmuga.""kontrolatu Near Field Communication komunikazioa"
- "Near Field Communication (NFC) etiketekin, txartelekin eta irakurgailuekin komunikatzeko baimena ematen die aplikazioei."
+ "Near Field Communication (NFC) etiketekin, txartelekin eta irakurgailuekin komunikatzea baimentzen die aplikazioei.""desgaitu pantailaren blokeoa""Teklen blokeoa eta erlazionatutako pasahitz-segurtasuna desgaitzeko baimena ematen die aplikazioei. Adibidez, telefonoak teklen blokeoa desgaitzen du telefono-deiak jasotzen dituenean, eta berriro gaitzen du deiak amaitzean.""eskatu pantailaren blokeoa konplexua izatea"
@@ -560,12 +564,12 @@
"Aztarna digitalaren txantiloiak gehitzeko eta ezabatzeko metodoei dei egitea baimentzen die aplikazioei.""erabili hatz-marken hardwarea""Autentifikatzeko hatz-marken hardwarea erabiltzeko baimena ematen die aplikazioei."
- "musika bilduma aldatu"
- "Musika bilduma aldatzeko baimena ematen die aplikazioei."
- "bideo bilduma aldatu"
- "Bideo bilduma aldatzeko baimena ematen die aplikazioei."
- "argazki bilduma aldatu"
- "Argazki bilduma aldatzeko baimena ematen die aplikazioei."
+ "musika-bilduma aldatu"
+ "Musika-bilduma aldatzeko baimena ematen die aplikazioei."
+ "bideo-bilduma aldatu"
+ "Bideo-bilduma aldatzeko baimena ematen die aplikazioei."
+ "argazki-bilduma aldatu"
+ "Argazki-bilduma aldatzeko baimena ematen die aplikazioei.""multimedia-edukien bildumako kokapena irakurri""Multimedia-edukien bildumako kokapena irakurtzeko baimena ematen die aplikazioei.""Erabili sistema biometrikoak"
@@ -582,14 +586,13 @@
"Erabili pantailaren blokeoa""Aurrera egiteko, desblokeatu pantailaren blokeoa""Sakatu irmo sentsorea"
- "Ezin da hauteman hatz-marka. Saiatu berriro."
+ "Ezin izan da prozesatu hatz-marka. Saiatu berriro.""Garbitu hatz-marken sentsorea eta saiatu berriro""Garbitu sentsorea eta saiatu berriro""Sakatu irmo sentsorea""Mantsoegi mugitu duzu hatza. Saiatu berriro.""Erabili beste hatz-marka bat""Argi gehiegi dago"
- "Hauteman egin da etengailua sakatu dela""Saiatu doituta""Aldi bakoitzean, aldatu hatzaren posizioa apur bat"
@@ -601,17 +604,16 @@
"Autentifikatu da aurpegia; sakatu Berretsi""Hatz-marken hardwarea ez dago erabilgarri.""Ezin da konfiguratu hatz-marka"
- "Gainditu egin da hatz-marka konfiguratzeko denbora-muga. Saiatu berriro."
+ "Hatz-markak prozesatzeko denbora-muga gainditu da. Saiatu berriro.""Hatz-markaren eragiketa bertan behera utzi da.""Erabiltzaileak bertan behera utzi du hatz-marka bidezko eragiketa."
- "Saiakera gehiegi egin dira. Erabili pantailaren blokeoa."
- "Saiakera gehiegi egin dira. Erabili pantailaren blokeoa."
- "Ezin da prozesatu hatz-marka. Saiatu berriro."
+ "Saiakera gehiegi egin dituzu. Saiatu berriro geroago."
+ "Saiakera gehiegi egin dituzu. Desgaitu egin da hatz-marken sentsorea."
+ "Saiatu berriro.""Ez da erregistratu hatz-markarik.""Gailu honek ez du hatz-marken sentsorerik.""Sentsorea aldi baterako desgaitu da.""Ezin da erabili hatz-marken sentsorea. Jarri harremanetan konponketak egiten dituen hornitzaile batekin."
- "Etengailua sakatu da""%d. hatza""Erabili hatz-marka""Erabili hatz-marka edo pantailaren blokeoa"
@@ -621,44 +623,37 @@
"Arazo bat izan da. Saiatu berriro.""Hatz-markaren ikonoa"
- "Aurpegi bidez desblokeatzea"
+ "Aurpegi bidez desblokeatzeko eginbidea""Arazoak ditugu aurpegi bidez desblokeatzeko eginbidearekin""Sakatu hau aurpegi-eredua ezabatzeko eta, gero, gehitu aurpegia berriro""Konfiguratu aurpegi bidez desblokeatzeko eginbidea""Telefonoa desblokeatzeko, begira iezaiozu"
- "Aurpegi bidez desblokeatzeko aukera erabiltzeko, aktibatu ""kamera erabiltzeko baimena"" Ezarpenak > Pribatutasuna atalean"
+ "Aurpegi bidez desblokeatzeko aukera erabiltzeko, aktibatu ""kamera atzitzeko baimena"" Ezarpenak > Pribatutasuna atalean""Konfiguratu telefonoa desblokeatzeko modu gehiago""Sakatu hau hatz-marka bat gehitzeko""Hatz-marka bidez desblokeatzea""Ezin da erabili hatz-marken sentsorea""Jarri harremanetan konponketak egiten dituen hornitzaile batekin."
- "Ezin da sortu aurpegi-eredua. Saiatu berriro."
+ "Ezin izan dira bildu argazkiaren datu zehatzak. Saiatu berriro.""Argi gehiegi dago. Joan toki ilunago batera."
- "Ilunegi dago"
- "Urrundu telefonoa"
- "Hurbildu telefonoa"
- "Igo telefonoa"
- "Jaitsi telefonoa"
- "Eraman telefonoa ezkerrera"
- "Eraman telefonoa eskuinera"
+ "Ilunegi dago. Erabili argi gehiago."
+ "Urrundu telefonoa."
+ "Hurbildu telefonoa."
+ "Goratu telefonoa."
+ "Beheratu telefonoa."
+ "Mugitu telefonoa ezkerretara."
+ "Mugitu telefonoa eskuinetara.""Begiratu zuzenago gailuari."
- "Ezin da hauteman aurpegia. Eutsi telefonoari begien parean."
+ "Ipini aurrez aurre aurpegia eta telefonoa.""Mugimendu gehiegi dago. Eutsi tinko telefonoari.""Erregistratu berriro aurpegia."
- "Ezin da hauteman aurpegia. Saiatu berriro."
- "Aldatu buruaren posizioa apur bat"
- "Begiratu zuzenago telefonoari"
- "Begiratu zuzenago telefonoari"
- "Begiratu zuzenago telefonoari"
+ "Ez dugu ezagutzen aurpegi hori. Saiatu berriro."
+ "Jarrera berdintsuegia da. Alda ezazu."
+ "Biratu burua pixka bat gutxiago."
+ "Makurtu burua pixka bat gutxiago."
+ "Biratu burua pixka bat gutxiago.""Kendu aurpegia estaltzen dizuten gauzak.""Garbitu pantailaren goialdea, barra beltza barne"
-
-
-
-
- "Ezin da sortu aurpegi-eredua. Saiatu berriro."
- "Betaurreko ilunak hauteman dira. Aurpegi osoak egon behar du ikusgai."
- "Maskara bat hauteman da. Aurpegi osoak egon behar du ikusgai.""Ezin da egiaztatu aurpegia. Hardwarea ez dago erabilgarri."
@@ -709,7 +704,7 @@
"erabili pantaila deiak abian direnean""Erabiltzaileak deiaren pantaila noiz eta nola ikusten duen kontrolatzeko baimena ematen die aplikazioei.""jardun interakzioan telefono-zerbitzuekin"
- "Deiak egiteko eta jasotzeko telefonia-zerbitzuekin interakzioan aritzeko baimena ematen die aplikazioei."
+ "Deiak egiteko eta jasotzeko telefonia-zerbitzuekin interakzioan aritzea baimentzen die aplikazioei.""eskaini erabiltzaileentzako aukerak deiak abian direnean""Deiak abian direnean erabiltzeko aukera eskaintzea baimentzen die aplikazioei.""irakurri sare-erabileraren historia"
@@ -759,10 +754,10 @@
"Kontrolatu zenbat aldiz idatzi duzun oker pasahitza pantaila desblokeatzen saiatzean, eta blokeatu Android TV gailua edo ezabatu bertako datu guztiak pasahitza gehiegitan idazten baduzu oker.""Kontrolatu zenbatetan idazten duzun pasahitza oker pantaila desblokeatzen saiatzean eta, gehiegitan idazten bada oker, blokeatu informazio- eta aisia-sistema edo ezabatu hango eduki guztia.""Kontrolatu pantaila desblokeatzen saiatzean idatzitako pasahitz oker kopurua, eta blokeatu telefonoa edo ezabatu bere datuak pasahitza gehiegitan oker idazten bada."
- "Kontrolatu pantaila desblokeatzen saiatzean idatzitako pasahitz oker kopurua, eta blokeatu tableta edo ezabatu erabiltzaile-datuak pasahitza gehiegitan oker idazten bada."
- "Kontrolatu zenbat aldiz idatzi duzun oker pasahitza pantaila desblokeatzen saiatzean, eta blokeatu Android TV gailua edo ezabatu erabiltzaile-datuak pasahitza gehiegitan idazten baduzu oker."
+ "Kontrolatu pantaila desblokeatzen saiatzean idatzitako pasahitz oker kopurua, eta blokeatu tableta edo ezabatu erabiltzailearen datuak pasahitza gehiegitan oker idazten bada."
+ "Kontrolatu zenbat aldiz idatzi duzun oker pasahitza pantaila desblokeatzen saiatzean, eta blokeatu Android TV gailua edo ezabatu erabiltzailearen datuak pasahitza gehiegitan idazten baduzu oker.""Kontrolatu zenbatetan idazten duzun pasahitza oker pantaila desblokeatzen saiatzean eta, gehiegitan idazten bada oker, blokeatu informazio- eta aisia-sistema edo ezabatu profil honetako eduki guztia."
- "Kontrolatu pantaila desblokeatzen saiatzean idatzitako pasahitz oker kopurua, eta blokeatu telefonoa edo ezabatu erabiltzaile-datuak pasahitza gehiegitan oker idazten bada."
+ "Kontrolatu pantaila desblokeatzen saiatzean idatzitako pasahitz oker kopurua, eta blokeatu telefonoa edo ezabatu erabiltzailearen datuak pasahitza gehiegitan oker idazten bada.""Aldatu pantailaren blokeoa""Aldatu pantailaren blokeoa.""Blokeatu pantaila"
@@ -773,7 +768,7 @@
"Berrezarri informazio- eta aisia-sistemako jatorrizko datuak abisatu gabe, bertan zegoen eduki guztia ezabatzeko.""Ezabatu telefonoaren datuak abisatu gabe, jatorrizko datuak berrezarrita.""Ezabatu profileko eduki guztia"
- "Ezabatu erabiltzaile-datuak"
+ "Ezabatu erabiltzailearen datuak""Ezabatu erabiltzaileak tabletan dituen datuak abisatu gabe.""Ezabatu erabiltzaileak Android TV gailuan dituen datuak abisatu gabe.""Ezabatu informazio- eta aisia-sisteman dagoen profil honetako eduki guztia abisatu gabe."
@@ -924,14 +919,14 @@
"Saiatu berriro""Desblokeatu eginbide eta datu guztiak erabiltzeko""Gainditu da aurpegi bidez desblokeatzeko saiakera-muga"
- "Ez dago SIMik"
- "Ez dago SIMik tabletan."
- "Ez dago SIMik Android TV darabilen gailuan."
- "Ez dago SIMik telefonoan."
- "Gehitu SIM bat."
- "SIMa falta da, edo ezin da irakurri. Gehitu SIM bat."
- "Ezin da erabili SIMa."
- "Betiko desaktibatu da SIMa.\n Jarri harremanetan operadorearekin beste SIM bat eskuratzeko."
+ "Ez dago SIM txartelik"
+ "Ez dago SIM txartelik tabletan."
+ "Ez dago SIM txartelik Android TV gailuan."
+ "Ez dago SIM txartelik telefonoan."
+ "Sartu SIM txartela."
+ "SIM txartela falta da edo ezin da irakurri. Sartu SIM txartel bat."
+ "SIM txartela hondatuta dago."
+ "SIM txartela betiko desgaitu zaizu.\n Beste SIM txartel bat lortzeko, jarri zerbitzu-hornitzailearekin harremanetan.""Aurreko pista""Hurrengo pista""Pausatu"
@@ -941,10 +936,10 @@
"Aurreratu""Larrialdi-deiak soilik""Sarea blokeatuta dago"
- "SIMa PUKaren bidez desblokeatu behar da."
+ "SIM txartela PUK bidez blokeatuta dago.""Ikusi erabiltzailearentzako gida edo jarri bezeroarentzako laguntza-zerbitzuarekin harremanetan."
- "SIMa blokeatuta dago."
- "SIMa desblokeatzen…"
+ "SIM txartela blokeatuta dago."
+ "SIM txartela desblokeatzen…""Desblokeatzeko eredua oker marraztu duzu %1$d aldiz. \n\nSaiatu berriro %2$d segundo barru.""Pasahitza oker idatzi duzu %1$d aldiz. \n\nSaiatu berriro %2$d segundo barru.""PINa oker idatzi duzu %1$d aldiz. \n\nSaiatu berriro %2$d segundo barru."
@@ -993,7 +988,7 @@
"Zabaldu desblokeatzeko eremua.""Hatza lerratuta desblokeatzea.""Ereduaren bidez desblokeatzea."
- "Aurpegi bidez desblokeatzea."
+ "Aurpegi bidez desblokeatzeko eginbidea.""PIN kodearen bidez desblokeatzea.""SIMa desblokeatzeko PINa.""SIM txartela desblokeatzeko PUK kodea."
@@ -1130,7 +1125,7 @@
"Gauerdia""%1$02d:%2$02d""%1$d:%2$02d:%3$02d"
- "Hautatu dena"
+ "Hautatu guztiak""Ebaki""Kopiatu""Ezin izan da kopiatu arbelean"
@@ -1246,9 +1241,10 @@
"%1$s prestatzen.""Aplikazioak abiarazten.""Bertsio-berritzea amaitzen."
+ "Konfiguratzen jarraitu nahi duzu?""Etengailua sakatu duzu; pantaila itzaltzeko balio du horrek.\n\nUki ezazu arin, hatz-marka konfiguratu bitartean."
- "Konfiguratzen amaitzeko, itzali pantaila"
- "Itzali"
+ "Itzali pantaila"
+ "Jarraitu konfiguratzen""Hatz-marka egiaztatzen jarraitu nahi duzu?""Etengailua sakatu duzu; pantaila itzaltzeko balio du horrek.\n\nUki ezazu arin, hatz-marka egiaztatzeko.""Itzali pantaila"
@@ -1306,7 +1302,7 @@
"datu-konexioa""Wifia"
- "Bluetootha"
+ "Bluetooth-a""Ethernet""VPNa"
@@ -1327,10 +1323,10 @@
"Hori geroago alda dezakezu Ezarpenak > Aplikazioak atalean""Eman baimena beti""Ez onartu inoiz"
- "Kendu da SIMa"
- "Sare mugikorra ez da erabilgarri egongo telefonoa balio duen SIM txartel bat sartuta daukala berrabiarazi arte."
+ "SIM txartela kendu da"
+ "Sare mugikorra ez da erabilgarri egongo baliozko SIM txartel bat sartuta berrabiarazten ez duzun arte.""Eginda"
- "Gehitu da SIMa"
+ "SIM txartela gehitu da""Berrabiarazi gailua sare mugikorra atzitzeko.""Berrabiarazi""Aktibatu mugikorreko zerbitzua"
@@ -1391,7 +1387,7 @@
"Bistaratu beste aplikazioen gainean""%s aplikazioen gainean agertzea""Besteen gainean agertzen da %s"
- "%s zerbitzuak eginbide hori erabiltzea nahi ez baduzu, sakatu hau ezarpenak ireki eta aukera desaktibatzeko."
+ "Ez baduzu nahi %s zerbitzuak eginbide hori erabiltzea, sakatu hau ezarpenak ireki eta aukera desaktibatzeko.""Desaktibatu""%s egiaztatzen…""Edukia berrikusten"
@@ -1401,16 +1397,16 @@
"Sakatu konfiguratzeko""Hauta ezazu konfiguratzeko""Gailua formateatu beharko duzu, agian. Saka ezazu kanporatzeko."
- "Argazkiak, bideoak, musika eta abar gordetzeko"
+ "Argazkiak eta multimedia-fitxategiak transferitzeko""Arakatu multimedia-fitxategiak""Arazo bat dago honekin: %s""%s ez da funtzionatzen ari""Sakatu konpontzeko""Hondatuta dago %s. Hauta ezazu konpontzeko.""Gailua formateatu beharko duzu, agian. Saka ezazu kanporatzeko."
- "%s hauteman da"
+ "Ez da onartzen %s""%s ez da funtzionatzen ari"
- "Sakatu konfiguratzeko"
+ "Gailuak ez du %s onartzen. Sakatu onartzen den formatu batean konfiguratzeko.""Hauta ezazu onartzen den formatu batean %s konfiguratzeko.""Gailua formateatu beharko duzu, agian""%s ustekabean kendu da"
@@ -1453,7 +1449,7 @@
"Paketeak ezabatzeko eskatzea baimentzen die aplikazioei.""eskatu bateria-optimizazioei ez ikusi egitea""Bateriaren optimizazioei ez ikusi egiteko baimena eskatzea baimentzen die aplikazioei."
- "kontsultatu pakete guztiak"
+ "Kontsultatu pakete guztiak""Instalatutako pakete guztiak ikusteko baimena ematen dio aplikazioari.""Sakatu birritan zooma kontrolatzeko""Ezin izan da widgeta gehitu."
@@ -1466,14 +1462,14 @@
"Abiarazi""Markatu zenbakia \n%s erabilita""Sortu kontaktu bat\n%s erabilita"
- "Aplikazio hauetako bat edo gehiago kontua orain eta etorkizunean erabiltzeko baimena eskatzen ari dira."
+ "Aplikazio hauetako bat edo gehiago kontua orain eta etorkizunean atzitzeko baimena eskatzen ari dira.""Eskaera onartu nahi duzu?""Sarbide-eskaera""Eman baimena""Ukatu""Baimena eskatu da""Baimena eskatu da \n%s konturako."
- "%1$s aplikazioak %2$s kontua erabiltzeko baimena\neskatu du."
+ "%1$s aplikazioak %2$s kontua atzitzeko baimena\neskatu du.""Laneko profiletik kanpo ari zara aplikazioa erabiltzen""Laneko profilean ari zara aplikazioa erabiltzen""Idazketa-metodoa"
@@ -1609,7 +1605,7 @@
"Telebista""Telefonoa""Konektatu bozgorailuak oinarrira"
- "Kanpoko gailua"
+ "HDMI""Entzungailuak""USB""Sistema"
@@ -1642,7 +1638,7 @@
"SIMa desgaitu egin da. Jarraitzeko, idatzi PUK kodea. Xehetasunak lortzeko, jarri operadorearekin harremanetan.""Idatzi erabili nahi duzun PIN kodea""Berretsi erabili nahi duzun PIN kodea"
- "SIMa desblokeatzen…"
+ "SIM txartela desblokeatzen…""PIN kodea okerra da.""Idatzi 4 eta 8 zenbaki arteko PINa.""PUK kodeak 8 zenbaki izan behar ditu."
@@ -1853,10 +1849,10 @@
"Administratzaileak eguneratu du""Administratzaileak ezabatu du""Ados"
- "Bateria-aurreztaileak gai iluna aktibatzen du, eta murriztu edo desaktibatu egiten ditu atzeko planoko jarduerak, zenbait efektu bisual, eta eginbide jakin eta sareko konexio batzuk."
- "Bateria-aurreztaileak gai iluna aktibatzen du, eta atzeko planoko jarduerak, zenbait efektu bisual, eta eginbide jakin eta sareko konexio batzuk murrizten edo desaktibatzen ditu."
- "Datu-erabilera murrizteko, atzeko planoan datuak bidaltzea eta jasotzea galarazten die datu-aurreztaileak aplikazio batzuei. Erabiltzen ari zaren aplikazioek datuak atzitu ahalko dituzte, baina baliteke maiztasun txikiagoarekin atzitzea. Ondorioz, adibidez, baliteke irudiak ez erakustea haiek sakatu arte."
- "Datu-aurreztailea aktibatu nahi duzu?"
+ "Bateria-aurrezleak gai iluna aktibatzen du, eta murriztu edo desaktibatu egiten ditu atzeko planoko jarduerak, zenbait efektu bisual, eta eginbide jakin eta sareko konexio batzuk."
+ "Bateria-aurrezleak gai iluna aktibatzen du, eta atzeko planoko jarduerak, zenbait efektu bisual, eta eginbide jakin eta sareko konexio batzuk murrizten edo desaktibatzen ditu."
+ "Datu-erabilera murrizteko, atzeko planoan datuak bidaltzea eta jasotzea galarazten die datu-aurrezleak aplikazio batzuei. Erabiltzen ari zaren aplikazioek datuak atzitu ahalko dituzte, baina baliteke maiztasun txikiagoarekin atzitzea. Ondorioz, adibidez, baliteke irudiak ez erakustea haiek sakatu arte."
+ "Datu-aurrezlea aktibatu nahi duzu?""Aktibatu""{count,plural, =1{Minutu batez ({formattedTime} arte)}other{# minutuz ({formattedTime} arte)}}""{count,plural, =1{Minutu batez ({formattedTime} arte)}other{# minutuz ({formattedTime} arte)}}"
@@ -1885,9 +1881,9 @@
"USSD eskaera ohiko deira aldatu da""USSD eskaera SS eskaerara aldatu da""USSD eskaera berrira aldatu da"
- "USSD eskaera bideodeira aldatu da"
+ "USSD eskaera bideo-deira aldatu da""SS eskaera ohiko deira aldatu da"
- "SS eskaera bideodeira aldatu da"
+ "SS eskaera bideo-deira aldatu da""SS eskaera USSD eskaerara aldatu da""SS eskaera berrira aldatu da""Phishing-alerta"
@@ -1923,7 +1919,6 @@
"Lurralde-hobespena""Adierazi hizkuntza""Iradokitakoak"
- "Iradokitakoak""Hizkuntza guztiak""Lurralde guztiak""Bilaketa"
@@ -1941,19 +1936,18 @@
"Kamera ez dago erabilgarri""Jarraitu telefonoan""Mikrofonoa ez dago erabilgarri"
- "Play Store ez dago erabilgarri""Android TV-ren ezarpenak ez daude erabilgarri""Tabletaren ezarpenak ez daude erabilgarri""Telefonoaren ezarpenak ez daude erabilgarri"
- "Une honetan, aplikazioa ezin da %1$s erabilita atzitu. Gailu horren ordez, erabili Android TV gailua."
- "Une honetan, aplikazioa ezin da %1$s erabilita atzitu. Gailu horren ordez, erabili tableta."
- "Une honetan, aplikazioa ezin da %1$s erabilita atzitu. Gailu horren ordez, erabili telefonoa."
+ "Aplikazioa ezin da %1$s erabilita atzitu. Gailu horren ordez, erabili Android TV darabilen bat."
+ "Aplikazioa ezin da %1$s erabilita atzitu. Gailu horren ordez, erabili tableta."
+ "Aplikazioa ezin da %1$s erabilita atzitu. Gailu horren ordez, erabili telefonoa."
+ "Une honetan, aplikazioa ezin da %1$s erabilita atzitu. Gailu horren ordez, erabili Android TV darabilen bat."
+ "Une honetan, aplikazioa ezin da %1$s erabilita atzitu. Gailu horren ordez, erabili tableta."
+ "Une honetan, aplikazioa ezin da %1$s erabilita atzitu. Gailu horren ordez, erabili telefonoa.""Segurtasun gehigarria eskatzen ari da aplikazioa. Gailu horren ordez, erabili Android TV darabilen bat.""Segurtasun gehigarria eskatzen ari da aplikazioa. Gailu horren ordez, erabili tableta.""Segurtasun gehigarria eskatzen ari da aplikazioa. Gailu horren ordez, erabili telefonoa."
- "Aplikazioa ezin da %1$s erabilita atzitu. Gailu horren ordez, erabili Android TV darabilen bat."
- "Aplikazioa ezin da %1$s erabilita atzitu. Gailu horren ordez, erabili tableta."
- "Aplikazioa ezin da %1$s erabilita atzitu. Gailu horren ordez, erabili telefonoa.""Aplikazioa Android-en bertsio zaharrago baterako sortu zenez, baliteke behar bezala ez funtzionatzea. Bilatu eguneratzerik baden, edo jarri garatzailearekin harremanetan.""Bilatu eguneratzeak""Mezu berriak dituzu"
@@ -2043,11 +2037,10 @@
"DESINSTALATU""IREKI, HALA ERE""Aplikazio kaltegarri bat hauteman da"
- "Gailuko erregistro guztiak erabiltzeko baimena eman nahi diozu %s aplikazioari?"
+ "Gailuko erregistro guztiak atzitzeko baimena eman nahi diozu %s aplikazioari?""Eman behin erabiltzeko baimena""Ez eman baimenik"
- "Gailuko erregistroetan gailuan gertatzen den guztia gordetzen da. Arazoak bilatu eta konpontzeko erabil ditzakete aplikazioek erregistro horiek.\n\nBaliteke erregistro batzuek kontuzko informazioa edukitzea. Beraz, eman gailuko erregistro guztiak erabiltzeko baimena fidagarritzat jotzen dituzun aplikazioei bakarrik. \n\nNahiz eta gailuko erregistro guztiak erabiltzeko baimena ez eman aplikazio honi, aplikazioak hari dagozkion erregistroak atzitu ahalko ditu. Gainera, baliteke gailuaren fabrikatzaileak gailuko erregistro edo datu batzuk atzitu ahal izatea."
- "Gailuko erregistroetan gailuan gertatzen den guztia gordetzen da. Arazoak bilatu eta konpontzeko erabil ditzakete aplikazioek erregistro horiek.\n\nBaliteke erregistro batzuek kontuzko informazioa edukitzea. Beraz, eman gailuko erregistro guztiak erabiltzeko baimena fidagarritzat jotzen dituzun aplikazioei bakarrik. \n\nNahiz eta gailuko erregistro guztiak erabiltzeko baimena ez eman aplikazio honi, aplikazioak hari dagozkion erregistroak atzitu ahalko ditu. Gainera, baliteke gailuaren fabrikatzaileak gailuko erregistro edo datu batzuk atzitu ahal izatea.\n\nLortu informazio gehiago g.co/android/devicelogs helbidean."
+ "Gailuko erregistroetan gailuan gertatzen den guztia gordetzen da. Arazoak bilatu eta konpontzeko erabil ditzakete aplikazioek erregistro horiek.\n\nBaliteke erregistro batzuek kontuzko informazioa edukitzea. Beraz, eman gailuko erregistro guztiak atzitzeko baimena fidagarritzat jotzen dituzun aplikazioei bakarrik. \n\nNahiz eta gailuko erregistro guztiak atzitzeko baimena ez eman aplikazio honi, aplikazioak hari dagozkion erregistroak atzitu ahalko ditu. Gainera, baliteke gailuaren fabrikatzaileak gailuko erregistro edo datu batzuk atzitu ahal izatea. Lortu informazio gehiago""Ez erakutsi berriro""%1$s aplikazioak %2$s aplikazioaren zatiak erakutsi nahi ditu""Editatu"
@@ -2060,7 +2053,8 @@
"Ez molestatzeko modua aldatu da""Sakatu zer dagoen blokeatuta ikusteko.""Berrikusi jakinarazpen-ezarpenak"
- "Android 13 ezkero, jakinarazpenak bidaltzeko baimena eman behar diezu instalatzen dituzun aplikazioei. Sakatu hau lehendik dauden aplikazioen baimenak aldatzeko."
+
+ "Gogorarazi geroago""Baztertu""Sistema"
@@ -2081,9 +2075,9 @@
"Android 12-n, jakinarazpen hobetuek ordeztu dituzte Android-eko jakinarazpen egokituak. Eginbide horrek, iradokitako ekintzak eta erantzunak erakusten, eta zure jakinarazpenak antolatzen ditu.\n\nJakinarazpen hobetuek jakinarazpenen eduki osoa atzi dezakete, informazio pertsonala barne (esaterako, kontaktuen izenak eta mezuak). Halaber, eginbideak jakinarazpenak baztertu, edo haiei erantzun diezaieke; adibidez, telefono-deiei erantzun diezaieke, eta ez molestatzeko modua kontrolatu.""Ohitura moduaren informazio-jakinarazpena""Baliteke bateria ohi baino lehenago agortzea"
- "Bateria-aurreztailea aktibatuta dago bateriaren iraupena luzatzeko"
- "Bateria-aurreztailea"
- "Desaktibatu egin da bateria-aurreztailea"
+ "Bateria-aurrezlea aktibatuta dago bateriaren iraupena luzatzeko"
+ "Bateria-aurrezlea"
+ "Desaktibatu egin da bateria-aurrezlea""Behar adina bateria dauka telefonoak. Jada ez dago eginbiderik murriztuta.""Behar adina bateria dauka tabletak. Jada ez dago eginbiderik murriztuta.""Behar adina bateria dauka gailuak. Jada ez dago eginbiderik murriztuta."
@@ -2105,7 +2099,7 @@
"%1$s kalkulu-orria""Aurkezpena""%1$s aurkezpena"
- "Bluetoothak aktibatuta jarraituko du hegaldi moduan"
+ "Bluetooth-ak aktibatuta jarraituko du hegaldi moduan""Kargatzen""{count,plural, =1{{file_name} eta beste # fitxategi}other{{file_name} eta beste # fitxategi}}""Ez dago edukia partekatzeko pertsona gomendaturik"
@@ -2288,6 +2282,5 @@
"Ikusi zer aplikazio dauden aktibo""Ezin da atzitu telefonoaren kamera %1$s gailutik""Ezin da atzitu tabletaren kamera %1$s gailutik"
- "Ezin da atzitu edukia hura igorri bitartean. Oraingo gailuaren ordez, erabili telefonoa."
- "Sistemaren balio lehenetsia"
+ "Sistemaren hizkuntza"
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index ea7cc8511a815105856b19c3bb7e4aede8b31653..2ce74f27144a9ff598e417c99800eaa14e8adc44 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -21,6 +21,11 @@
"بایت"
+ "کیلوبایت"
+ "مگابایت"
+ "گیگابایت"
+ "ترابایت"
+ "پتابایت""%1$s %2$s""<بدون عنوان>""(بدون شماره تلفن)"
@@ -28,7 +33,6 @@
"پست صوتی""MSISDN1""مشکل در اتصال یا کد MMI نامعتبر."
- "از این ویژگی پشتیبانی نمیشود.""عملکرد فقط به شمارههای شمارهگیری ثابت محدود است.""وقتی درحال فراگردی هستید، نمیتوانید تنظیمات هدایت تماس را از تلفنتان تغییر دهید.""سرویس فعال شد."
@@ -43,8 +47,8 @@
"پینهایی که وارد کردهاید با یکدیگر مطابقت ندارند.""یک پین بنویسید که ۴ تا ۸ رقم باشد.""یک PUK با ۸ رقم یا بیشتر تایپ کنید."
- "سیمکارت شما با PUK قفل شده است. کد PUK را برای باز کردن قفل آن تایپ کنید."
- "برای باز کردن قفل سیمکارت، کد PUK2 را تایپ کنید."
+ "سیم کارت شما با PUK قفل شده است. کد PUK را برای بازگشایی آن بنویسید."
+ "PUK2 را برای بازگشایی قفل سیم کارت بنویسید.""ناموفق بود، قفل سیم/RUIM را فعال کنید."%d بار دیگر میتوانید تلاش کنید و پس از آن سیمکارت قفل میشود.
@@ -292,7 +296,7 @@
"حالت ایمن""سیستم Android""جابهجا شدن به نمایه شخصی"
- "رفتن به نمایه کاری"
+ "جابهجا شدن به نمایه کاری""مخاطبین""دسترسی به مخاطبین شما""مکان"
@@ -301,12 +305,12 @@
"دسترسی به تقویم شما""پیامک""ارسال و مشاهده پیامکها"
- "فایلها"
- "دسترسی به فایلهای دستگاه"
- "موسیقی و صدا"
- "دسترسی به موسیقی و صدا در دستگاه شما"
- "عکسها و ویدیوها"
- "دسترسی به عکسها و ویدیوها در دستگاه شما"
+ "فایلها و اسناد"
+ "دسترسی به فایلها و اسناد موجود در دستگاه"
+ "موسیقی و فایلهای صوتی دیگر"
+ "دسترسی به فایلهای صوتی موجود در دستگاه"
+ "عکسها و ویدیوها"
+ "دسترسی به فایلهای تصویری و ویدیویی موجود در دستگاه""میکروفن""ضبط صدا""فعالیت فیزیکی"
@@ -570,7 +574,7 @@
"به برنامه اجازه میدهد مکانها را از مجموعه رسانهتان بخواند.""استفاده از زیستسنجشی""استفاده از زیستسنجشی یا قفل صفحه"
- "تأیید کنید این شمایید"
+ "تأیید کنید این شما هستید""برای ادامه، از زیستسنجشی استفاده کنید""برای ادامه، از زیستسنجشی یا قفل صفحه استفاده کنید""سختافزار زیستسنجی دردسترس نیست"
@@ -582,14 +586,13 @@
"از قفل صفحه استفاده کنید""برای ادامه، قفل صفحهتان را وارد کنید""محکم روی حسگر فشار دهید"
- "اثر انگشت شناسایی نشد. دوباره امتحان کنید."
+ "اثرانگشت پردازش نشد. لطفاً دوباره امتحان کنید.""حسگر اثر انگشت را تمیز و دوباره امتحان کنید""حسگر را تمیز و دوباره امتحان کنید""محکم روی حسگر فشار دهید""حرکت انگشت خیلی آهسته بود. لطفاً دوباره امتحان کنید.""اثر انگشت دیگری را امتحان کنید""خیلی روشن است"
- "فشردن دکمه روشن/ خاموش شناسایی شد""اثر انگشت را تنظیم کنید""هربار موقعیت انگشتتان را کمی تغییر دهید"
@@ -601,17 +604,16 @@
"چهره اصالتسنجی شد، لطفاً تأیید را فشار دهید""سختافزار اثرانگشت در دسترس نیست.""اثر انگشت راهاندازی نشد"
- "مهلت راهاندازی اثر انگشت بهپایان رسید. دوباره امتحان کنید."
+ "درنگ ثبت اثر انگشت به پایان رسید. دوباره امتحان کنید.""عملکرد اثر انگشت لغو شد.""کاربر عملیات اثر انگشت را لغو کرد"
- "تلاشها از حد مجاز بیشتر شده است. بهجای آن از قفل صفحه استفاده کنید."
- "تلاشهای بیشازحد. حالا از قفل صفحه استفاده کنید."
- "اثر انگشت پردازش نشد. دوباره امتحان کنید."
+ "تلاشهای زیادی انجام شده است. بعداً دوباره امتحان کنید."
+ "تلاشهای بسیاری زیادی انجام شده است. حسگر اثر انگشت غیرفعال شد."
+ "دوباره امتحان کنید.""اثر انگشتی ثبت نشده است.""این دستگاه حسگر اثر انگشت ندارد.""حسگر بهطور موقت غیرفعال است.""امکان استفاده از حسگر اثر انگشت وجود ندارد. به ارائهدهنده خدمات تعمیر مراجعه کنید"
- "دکمه روشن/ خاموش فشار داده شد""انگشت %d""استفاده از اثر انگشت""استفاده از اثر انگشت یا قفل صفحه"
@@ -626,39 +628,32 @@
"برای حذف مدل چهرهتان ضربه بزنید، سپس چهرهتان را دوباره اضافه کنید""راهاندازی «قفلگشایی با چهره»""برای باز کردن قفل تلفن خود به آن نگاه کنید"
- "برای استفاده از «قفلگشایی با چهره»، ""دسترسی به دوربین"" را در «تنظیمات > حریم خصوصی» روشن کنید"
+ "برای استفاده از «قفلگشایی با چهره»، ""دسترسی به دوربین"" را در «تنظیمات > حریمخصوصی» روشن کنید""راهاندازی روشهای بیشتر برای باز کردن قفل""برای افزودن اثر انگشت، ضربه بزنید""قفلگشایی با اثر انگشت""امکان استفاده از حسگر اثر انگشت وجود ندارد""به ارائهدهنده خدمات تعمیر مراجعه کنید."
- "مدل چهره ایجاد نشد. دوباره امتحان کنید."
+ "دادههای دقیق چهره ضبط نشد. دوباره امتحان کنید.""خیلی روشن است. روشناییاش را ملایمتر کنید."
- "نور کافی نیست"
- "تلفن را دورتر ببرید"
- "تلفن را نزدیکتر بیاورید"
- "تلفن را بالاتر ببرید"
- "تلفن را پایینتر ببرید"
- "تلفن را بهسمت چپ ببرید"
- "تلفن را بهسمت راست ببرید"
+ "خیلی تاریک است. تصویر را روشنتر کنید."
+ "تلفن را به دورتر منتقل کنید."
+ "تلفن را نزدیکتر بیاورید."
+ "تلفن را بالاتر ببرید."
+ "تلفن را پایینتر بیاورید."
+ "تلفن را بهسمت چپ حرکت دهید."
+ "تلفن را به سمت راست حرکت دهید.""لطفاً مستقیم به دستگاه نگه کنید."
- "چهره دیده نمیشود. تلفن را همسطح چشمانتان نگه دارید."
+ "صورتتان را مستقیماً روبروی تلفن قرار دهید.""حرکت خیلی زیاد است. تلفن را ثابت نگهدارید.""لطفاً چهرهتان را مجدداً ثبت کنید."
- "چهره شناسایی نشد. دوباره امتحان کنید."
- "موقعیت سرتان را کمی تغییر دهید"
- "مستقیمتر به تلفن نگاه کنید"
- "مستقیمتر به تلفن نگاه کنید"
- "مستقیمتر به تلفن نگاه کنید"
- "هر چیزی که جلو صورت شما را میگیرد بردارید."
+ "دیگر چهره را تشخیص نمیدهد. دوباره امتحان کنید."
+ "بسیار شبیه قبلی است، لطفاً قیافه دیگری بگیرید."
+ "سرتان را کمی صاف بگیرید."
+ "سرتان را کمی کج بگیرید."
+ "سرتان را کمی صاف بگیرید."
+ "هرچیزی را که حائل چهرهتان است بردارید.""بالای صفحه و همچنین نوار مشکی را تمیز کنید."
-
-
-
-
- "مدل چهره ایجاد نشد. دوباره امتحان کنید."
- "عینک تیره شناسایی شد. چهرهتان باید کاملاً نمایان باشد."
- "پوشش صورت شناسایی شد. چهرهتان باید کاملاً نمایان باشد.""چهره تأیید نشد. سختافزار در دسترس نیست."
@@ -924,14 +919,14 @@
"دوباره امتحان کنید""باز کردن قفل تمام قابلیتها و دادهها""دفعات تلاش برای «قفلگشایی با چهره» از حداکثر مجاز بیشتر شد"
- "سیمکارتی وجود ندارد"
- "سیمکارت در رایانه لوحی وجود ندارد."
- "سیمکارت در دستگاه Android TV وجود ندارد."
- "سیمکارت در تلفن وجود ندارد."
- "سیمکارت اضافه کنید."
- "سیمکارت موجود نیست یا قابلخواندن نیست. سیمکارت اضافه کنید."
- "سیمکارت قابلاستفاده نیست."
- "سیمکارت شما برای همیشه غیرفعال شده است.\n برای دریافت سیمکارتی دیگر، با رساننده خدمات بیسیم خود تماس بگیرید."
+ "سیم کارت موجود نیست"
+ "سیم کارت درون رایانهٔ لوحی نیست."
+ "هیچ سیمکارتی در دستگاه Android TV شما قرار داده نشده است."
+ "سیم کارت درون تلفن نیست."
+ "سیم کارت را وارد کنید."
+ "سیم کارت موجود نیست یا قابل خواندن نیست. یک سیم کارت وارد کنید."
+ "سیم کارت غیرقابل استفاده است."
+ "سیم کارت شما بهطور دائم غیر فعال شده است. \nبرای داشتن سیم کارت دیگر با ارائهدهنده سرویس بیسیم خود تماس بگیرید.""آهنگ قبلی""آهنگ بعدی""مکث"
@@ -941,10 +936,10 @@
"جلو بردن سریع""فقط تماسهای اضطراری""شبکه قفل شد"
- "سیمکارت با کد PUK قفل شده است."
+ "سیم کارت با PUK قفل شده است.""لطفاً به «راهنمای کاربر» مراجعه کنید یا با مرکز «مراقبت از مشتریان» تماس بگیرید."
- "سیمکارت قفل است."
- "درحال باز کردن قفل سیمکارت…"
+ "سیم کارت قفل شد."
+ "بازگشایی قفل سیم کارت…""الگوی بازگشایی قفل را %1$d بار اشتباه کشیدهاید. \n\nپساز %2$d ثانیه دوباره امتحان کنید.""گذرواژهٔ خود را %1$d بار اشتباه تایپ کردهاید. \n\nپس از %2$d ثانیه دوباره امتحان کنید.""پین را%1$d بار اشتباه تایپ کردهاید. \n\nپس از %2$d ثانیه دوباره امتحان کنید."
@@ -1018,7 +1013,7 @@
"ماندن در این صفحه""%s\n\nمطمئنید میخواهید این صفحه را ترک کنید؟""تأیید"
- "نکته: برای زومپیش و زومپس کردن، دو بار ضربه بزنید."
+ "نکته: برای نزدیکنمایی و دورنمایی، دو بار ضربه بزنید.""تکمیل خودکار""راهاندازی تکمیل خودکار""تکمیل خودکار با %1$s"
@@ -1051,7 +1046,7 @@
"تغییر مجوزهای مکان جغرافیایی مرورگر""به برنامه اجازه میدهد تا مجوزهای جغرافیایی مرورگر را تغییر دهد. برنامههای مخرب میتوانند از آن استفاده کنند تا اطلاعات موقعیت مکانی را به سایتهای وب کتابخانه بفرستند.""میخواهید مرورگر این گذرواژه را به خاطر داشته باشد؟"
- "حالا نه"
+ "اکنون نه""به خاطر سپردن""هیچوقت""شما اجازه بازکردن این صفحه را ندارید."
@@ -1246,9 +1241,10 @@
"آمادهسازی %1$s.""درحال آغاز کردن برنامهها.""درحال اتمام راهاندازی."
+ "راهاندازی ادامه یابد؟""دکمه روشن/ خاموش را فشار دادید — این کار معمولاً صفحهنمایش را خاموش میکند.\n\nهنگام راهاندازی اثر انگشت، آرام ضربه بزنید."
- "برای اتمام راهاندازی، صفحه را خاموش کنید"
- "خاموش کردن"
+ "خاموش کردن صفحه"
+ "ادامه راهاندازی""تأیید اثر انگشت را ادامه میدهید؟""دکمه روشن/ خاموش را فشار دادید — این کار معمولاً صفحهنمایش را خاموش میکند.\n\nبرای تأیید اثر انگشتتان، آرام ضربه بزنید.""خاموش کردن صفحه"
@@ -1316,7 +1312,7 @@
"درج نویسه""درحال ارسال پیامکها""<b>%1$s</b> درحال ارسال تعداد زیادی پیامک است. آیا اجازه میدهید این برنامه همچنان پیامک ارسال کند؟"
- "اجازه دادن"
+ "مجاز است""مجاز نبودن""<b>%1$s</b> مایل است پیامی به <b>%2$s</b> ارسال کند.""این مورد ""شاید هزینهای"" را به حساب دستگاه همراهتان بگذارد."
@@ -1327,10 +1323,10 @@
"میتوانید بعداً آن را در تنظیمات > برنامهها تغییر دهید""همیشه مجاز است""همیشه غیرمجاز"
- "سیمکارت برداشته شد"
- "تاوقتیکه با سیمکارت معتبر بازراهاندازی نکنید، شبکه تلفن همراه دردسترس نخواهد بود."
+ "سیم کارت برداشته شد"
+ "تا وقتی که با یک سیمکارت معتبر راهاندازی مجدد نکنید شبکهٔ تلفن همراه غیر قابل دسترس خواهد بود.""تمام"
- "سیمکارت اضافه شد"
+ "سیم کارت اضافه شد""برای دسترسی به شبکهٔ تلفن همراه، دستگاه خود را مجدداً راهاندازی کنید.""راهاندازی مجدد""سرویس دستگاه همراه را فعال کنید"
@@ -1401,16 +1397,16 @@
"برای راهاندازی ضربه بزنید""برای راهاندازی، انتخاب کنید""شاید لازم باشد دستگاه را دوباره قالببندی کنید. برای خارج کردن، ضربه بزنید."
- "برای ذخیره کردن عکس، ویدیو، موسیقی و غیره"
+ "برای انتقال عکسها و رسانه""فایلهای رسانهای را مرور کنید""مشکل مرتبط با %s""%s کار نمیکند""برای برطرف کردن مشکل، ضربه بزنید""%s خراب است. رفع خطا را انتخاب کنید.""شاید لازم باشد دستگاه را دوباره قالببندی کنید. برای خارج کردن، ضربه بزنید."
- "%s تشخیص داده شد"
+ "%s پشتیبانی نشده""%s کار نمیکند"
- "برای راهاندازی ضربه بزنید."
+ "این دستگاه از این %s پشتیبانی نمیکند. برای نصب آن در قالب پشتیبانیشده ضربه بزنید.""برای راهاندازی %s در قالب پشتیبانیشده، انتخاب کنید.""شاید لازم باشد دستگاه را دوباره قالببندی کنید""%s بهطور غیرمنتظره جدا شد"
@@ -1420,7 +1416,7 @@
"درحال بیرون راندن %s""جدا نکنید""راهاندازی"
- "خارج کردن"
+ "بیرون راندن""کاوش""تغییر خروجی""%s وجود ندارد"
@@ -1489,8 +1485,8 @@
"VPN را %s فعال کرده است""برای مدیریت شبکه ضربه بزنید.""به %s متصل شد. برای مدیریت شبکه ضربه بزنید."
- "درحال اتصال به VPN همیشه روشن…"
- "VPN همیشه روشن متصل شد"
+ "در حال اتصال VPN همیشه فعال…"
+ "VPN همیشه فعال متصل شد""از «VPN همیشه روشن» قطع شد""به «VPN همیشه روشن» متصل نشد""تغییر شبکه یا تنظیمات VPN"
@@ -1609,13 +1605,13 @@
"تلویزیون""تلفن""بلندگوهای جایگاه"
- "دستگاه خارجی"
+ "HDMI""هدفونها""USB""سیستم""بلوتوثهای صوتی""صفحه نمایش بیسیم"
- "پخش محتوا"
+ "ارسال محتوا""برقراری ارتباط با دستگاه""فرستادن محتوای صفحه به دستگاه""درحال جستجوی دستگاهها…"
@@ -1642,7 +1638,7 @@
"اکنون سیم کارت غیرفعال است. پین کد را برای ادامه وارد کنید. برای جزئیات با شرکت مخابراتی خود تماس بگیرید.""پین کد دلخواه را وارد کنید""تأیید پین کد دلخواه"
- "درحال باز کردن قفل سیمکارت…"
+ "بازگشایی قفل سیم کارت...""پین کد اشتباه است.""یک پین ۴ تا ۸ رقمی را تایپ کنید.""کد PUK باید ۸ عدد داشته باشد."
@@ -1688,7 +1684,7 @@
"میتواند همه محتوای صفحه را بخواند و آن را روی بقیه برنامهها نمایش دهد.""مشاهده و انجام کنشها""این عملکرد میتواند با برنامه یا حسگری سختافزاری تعاملاتتان را ردیابی کند و ازطرف شما با برنامهها تعامل داشته باشد."
- "اجازه دادن"
+ "مجاز""مجاز نبودن""برای استفاده از ویژگی، روی آن ضربه بزنید:""انتخاب ویژگیهای موردنظر برای استفاده با دکمه دسترسپذیری"
@@ -1923,7 +1919,6 @@
"اولویتهای منطقه""نام زبان را تایپ کنید""پیشنهادی"
- "پیشنهادی""همه زبانها""همه منطقهها""جستجو"
@@ -1941,19 +1936,18 @@
"دوربین دردسترس نیست""ادامه دادن در تلفن""میکروفون دردسترس نیست"
- "«فروشگاه Play» دردسترس نیست""تنظیمات Android TV دردسترس نیست""تنظیمات رایانه لوحی دردسترس نیست""تنظیمات تلفن دردسترس نیست"
- "درحالحاضر نمیتوان در %1$s شما به این برنامه دسترسی داشت. دسترسی به آن را در دستگاه Android TV امتحان کنید."
- "درحالحاضر نمیتوان در %1$s شما به این برنامه دسترسی داشت. دسترسی به آن را در رایانه لوحیتان امتحان کنید."
- "درحالحاضر نمیتوان در %1$s شما به این برنامه دسترسی داشت. دسترسی به آن را در تلفنتان امتحان کنید."
+ "نمیتوان در %1$s به این برنامه دسترسی داشت. دسترسی به آن را در دستگاه Android TV امتحان کنید."
+ "نمیتوان در %1$s به این برنامه دسترسی داشت. دسترسی به آن را در رایانه لوحیتان امتحان کنید."
+ "نمیتوان در %1$s به این برنامه دسترسی داشت. دسترسی به آن را در تلفنتان امتحان کنید."
+ "درحالحاضر نمیتوانید در %1$s به این برنامه دسترسی داشت. دسترسی به آن را در دستگاه Android TV امتحان کنید."
+ "درحالحاضر نمیتوانید در %1$s به این برنامه دسترسی داشت. دسترسی به آن را در رایانه لوحیتان امتحان کنید."
+ "درحالحاضر نمیتوانید در %1$s به این برنامه دسترسی داشت. دسترسی به آن را در تلفنتان امتحان کنید.""این برنامه درخواست امنیت اضافی دارد. دسترسی به آن را در دستگاه Android TV امتحان کنید.""این برنامه درخواست امنیت اضافی دارد. دسترسی به آن را در رایانه لوحیتان امتحان کنید.""این برنامه درخواست امنیت اضافی دارد. دسترسی به آن را در تلفنتان امتحان کنید."
- "نمیتوان در %1$s به این مورد دسترسی داشت. دسترسی به آن را در دستگاه Android TV امتحان کنید."
- "نمیتوان در %1$s به این مورد دسترسی داشت. دسترسی به آن را در رایانه لوحیتان امتحان کنید."
- "نمیتوان در %1$s به این مورد دسترسی داشت. دسترسی به آن را در تلفنتان امتحان کنید.""این برنامه برای نسخه قدیمیتری از Android ساخته شده است و ممکن است درست کار نکند. وجود بهروزرسانی را بررسی کنید یا با برنامهنویس تماس بگیرید.""بررسی وجود بهروزرسانی""پیامهای جدیدی دارید"
@@ -2045,9 +2039,8 @@
"برنامه مضر شناسایی شد""به %s اجازه میدهید به همه گزارشهای دستگاه دسترسی داشته باشد؟""مجاز کردن دسترسی یکباره"
- "اجازه ندادن"
- "گزارشهای دستگاه آنچه را در دستگاهتان رخ میدهد ثبت میکند. برنامهها میتوانند از این گزارشها برای پیدا کردن مشکلات و رفع آنها استفاده کنند.\n\nبرخیاز گزارشها ممکن است حاوی اطلاعات حساس باشند، بنابراین فقط به برنامههای مورداعتمادتان اجازه دسترسی به همه گزارشهای دستگاه را بدهید. \n\nاگر به این برنامه اجازه ندهید به همه گزارشهای دستگاه دسترسی داشته باشد، همچنان میتواند به گزارشهای خودش دسترسی داشته باشد. سازنده دستگاه نیز ممکن است همچنان بتواند به برخیاز گزارشها یا اطلاعات دستگاهتان دسترسی داشته باشد."
- "گزارشهای دستگاه آنچه را در دستگاهتان رخ میدهد ثبت میکند. برنامهها میتوانند از این گزارشها برای پیدا کردن مشکلات و رفع آنها استفاده کنند.\n\nبرخیاز گزارشها ممکن است حاوی اطلاعات حساس باشند، بنابراین فقط به برنامههای مورداعتمادتان اجازه دسترسی به همه گزارشهای دستگاه را بدهید. \n\nاگر به این برنامه اجازه ندهید به همه گزارشهای دستگاه دسترسی داشته باشد، همچنان میتواند به گزارشهای خودش دسترسی داشته باشد. سازنده دستگاه نیز ممکن است همچنان بتواند به برخیاز گزارشها یا اطلاعات دستگاهتان دسترسی داشته باشد.\n\nاطلاعات بیشتر: g.co/android/devicelogs."
+ "مجاز نیست"
+ "گزارشهای دستگاه آنچه را در دستگاهتان رخ میدهد ثبت میکند. برنامهها میتوانند از این گزارشها برای پیدا کردن مشکلات و رفع آنها استفاده کنند.\n\nبرخیاز گزارشها ممکن است حاوی اطلاعات حساس باشند، بنابراین فقط به برنامههای مورداعتمادتان اجازه دسترسی به همه گزارشهای دستگاه را بدهید. \n\nاگر به این برنامه اجازه ندهید به همه گزارشهای دستگاه دسترسی داشته باشد، همچنان میتواند به گزارشهای خودش دسترسی داشته باشد. سازنده دستگاه نیز ممکن است همچنان بتواند به برخیاز گزارشها یا اطلاعات دستگاهتان دسترسی داشته باشد. بیشتر بدانید""دوباره نشان داده نشود""%1$s میخواهد تکههای %2$s را نشان دهد""ویرایش"
@@ -2060,7 +2053,8 @@
"«مزاحم نشوید» تغییر کرده است""برای بررسی موارد مسدودشده ضربه بزنید.""مرور تنظیمات اعلان"
- "از Android نسخه ۱۳ به بعد، برنامههایی که نصب میکنید برای ارسال اعلان به اجازه شما نیاز دارند. برای تغییر دادن این اجازه در برنامههای موجود، ضربه بزنید."
+
+ "بعداً یادآوری شود""رد شدن""سیستم"
@@ -2140,7 +2134,7 @@
"کاری""نمای شخصی""نمای کاری"
- "سرپرست فناوری اطلاعات آن را مسدود کرده است"
+ "سرپرست سیستم آن را مسدود کرده است""نمیتوان این محتوا را با برنامههای کاری همرسانی کرد""نمیتوان این محتوا را با برنامههای کاری باز کرد""نمیتوان این محتوا را با برنامههای شخصی همرسانی کرد"
@@ -2273,7 +2267,7 @@
"لغو انسداد دوربین دستگاه""برای <b>%s</b> و همه برنامهها و سرویسها""لغو انسداد"
- "حریم خصوصی حسگر"
+ "حریمخصوصی حسگر""نماد برنامه""تصویر نمانامسازی برنامه""بررسی تنظیمات دسترسی"
@@ -2286,8 +2280,7 @@
"%1$s در پسزمینه درحال اجرا است. برای مدیریت مصرف باتری ضربه بزنید.""%1$s ممکن است بر عمر باتری تأثیر بگذارد. برای مرور برنامههای فعال، ضربه بزنید.""بررسی برنامههای فعال"
- "از %1$s به دوربین تلفن دسترسی ندارید"
+ "نمیتوان از %1$s شما به دوربین تلفن دسترسی داشت""نمیتوان از %1$s شما به دوربین رایانه لوحی دسترسی داشت"
- "درحین جاریسازی، نمیتوانید به آن دسترسی داشته باشید. دسترسی به آن را در تلفنتان امتحان کنید."
- "پیشفرض سیستم"
+ "زبان سیستم"
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index c90f0b3a14636b935428f5ed9322e9fedf97e82c..1daee302382c53debbb05832a095a747677b5c87 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -21,6 +21,11 @@
"t"
+ "kt"
+ "Mt"
+ "Gt"
+ "Tt"
+ "Pt""%1$s%2$s""<Nimetön>""(Ei puhelinnumeroa)"
@@ -28,7 +33,6 @@
"Vastaaja""MSISDN1""Yhteysongelma tai virheellinen MMI-koodi."
- "Ominaisuutta ei tueta.""Voit suorittaa toiminnon vain sallitut puhelut -numeroihin.""Soitonsiirtoasetuksia ei voi muuttaa puhelimella roaming-tilassa.""Palvelu otettiin käyttöön."
@@ -43,8 +47,8 @@
"Antamasi PIN-koodit eivät täsmää.""Anna 4–8-numeroinen PIN-koodi.""Kirjoita vähintään 8 numeron pituinen PUK-koodi."
- "SIM-kortti on lukittu PUK-koodilla. Poista lukitus antamalla PUK-koodi."
- "Kumoa SIM-kortin esto lisäämällä PUK2."
+ "SIM-korttisi on PUK-lukittu. Poista lukitus antamalla PUK-koodi."
+ "Pura SIM-kortin esto antamalla PUK2-koodi.""Epäonnistui, ota SIM-/RUIM-lukitus käyttöön."Sinulla on %d yritystä jäljellä, ennen kuin SIM-kortti lukitaan.
@@ -294,21 +298,21 @@
"Vaihda henkilökohtaiseen profiiliin""Vaihda työprofiiliin""Yhteystiedot"
- "pääsy yhteystietoihin"
+ "käyttää yhteystietoja""Sijainti"
- "pääsy laitteen sijaintiin"
+ "käyttää laitteen sijaintia""Kalenteri"
- "pääsy kalenteriin"
+ "käyttää kalenteria""Tekstiviestit""lähettää ja tarkastella tekstiviestejä"
- "Tiedostot"
- "pääsy laitteen tiedostoihin"
- "Musiikki ja audio"
- "pääsy laitteen musiikkiin ja audioon"
- "Valokuvat ja videot"
- "pääsy laitteen kuviin ja videoihin"
+ "Tiedostot ja dokumentit"
+ "pääsyn laitteesi tiedostoihin ja dokumentteihin"
+ "Musiikki ja muu audio"
+ "pääsy laitteesi audiotiedostoihin"
+ "Kuvat ja videot"
+ "pääsy laitteesi kuviin ja videotiedostoihin""Mikrofoni"
- "tallentaa audiota"
+ "tallentaa ääntä""Liikkuminen""nähdä liikkumistietosi""Kamera"
@@ -320,7 +324,7 @@
"Puhelin""soittaa ja hallinnoida puheluita""Kehon anturit"
- "pääsy anturidataan elintoiminnoistasi"
+ "käyttää anturitietoja elintoiminnoistasi""Ilmoitukset""näyttää ilmoituksia""Noutaa ikkunan sisältöä"
@@ -443,7 +447,7 @@
"Tällä sovelluksella on pääsy sijaintitietoihin milloin tahansa, myös silloin kun sovellusta ei käytetä.""muuta ääniasetuksia""Antaa sovelluksen muokata yleisiä ääniasetuksia, kuten äänenvoimakkuutta ja käytettävää kaiutinta."
- "tallentaa audiota"
+ "tallentaa ääntä""Tämä sovellus voi tallentaa mikrofonilla audiota, kun sovellusta käytetään.""tallentaa audiota taustalla""Tämä sovellus voi tallentaa mikrofonilla audiota koska tahansa."
@@ -582,14 +586,13 @@
"Käytä näytön lukitusta""Jatka lisäämällä näytön lukituksen avaustapa""Paina anturia voimakkaasti"
- "Sormenjälkeä ei voi tunnistaa. Yritä uudelleen."
+ "Sormenjäljen prosessointi epäonnistui. Yritä uudelleen.""Puhdista sormenjälkitunnistin ja yritä uudelleen""Puhdista anturi ja yritä uudelleen""Paina anturia voimakkaasti""Liikutit sormea liian hitaasti. Yritä uudelleen.""Kokeile toista sormenjälkeä""Liian kirkas"
- "Virtapainikkeen painaminen havaittu""Kokeile muuttaa asentoa""Liikuta sormeasi hieman joka kerralla"
@@ -601,17 +604,16 @@
"Kasvot tunnistettu, valitse Vahvista""Sormenjälkilaitteisto ei ole käytettävissä.""Sormenjälkeä ei voi ottaa käyttöön"
- "Sormenjäljen käyttöönotto aikakatkaistu. Yritä uudelleen."
+ "Sormenjälkitunnistimen toiminta aikakatkaistiin. Yritä uudelleen.""Sormenjälkitoiminto peruutettiin.""Käyttäjä peruutti sormenjälkitoiminnon."
- "Liian monta yritystä. Käytä näytön lukituksen avaustapaa."
- "Liian monta yritystä. Käytä näytön lukituksen avaustapaa."
- "Sormenjälkeä ei voida käsitellä. Yritä uudelleen."
+ "Liian monta yritystä. Yritä myöhemmin uudelleen."
+ "Liian monta yritystä. Sormenjälkitunnistin poistettu käytöstä."
+ "Yritä uudelleen.""Sormenjälkiä ei ole otettu käyttöön.""Laitteessa ei ole sormenjälkitunnistinta.""Tunnistin poistettu väliaikaisesti käytöstä.""Sormenjälkitunnistinta ei voi käyttää. Ota yhteys korjauspalveluun"
- "Virtapainiketta on painettu""Sormi %d""Käytä sormenjälkeä""Käytä sormenjälkeä tai näytön lukitusta"
@@ -632,33 +634,26 @@
"Sormenjälkiavaus""Sormenjälkitunnistinta ei voi käyttää""Ota yhteys korjauspalveluun."
- "Kasvomallia ei voi luoda. Yritä uudelleen."
+ "Tarkan kasvodatan tallennus epäonnistui. Yritä uudelleen.""Liian kirkasta. Kokeile pehmeämpää valaistusta."
- "Ei tarpeeksi valoa"
- "Vie puhelin kauemmas"
- "Tuo puhelin lähemmäs"
- "Siirrä puhelinta ylemmäs"
- "Siirrä puhelinta alemmas"
- "Siirrä puhelinta vasemmalle"
- "Siirrä puhelinta oikealle"
+ "Liian pimeää. Kokeile kirkkaampaa valaistusta."
+ "Siirrä puhelinta kauemmas."
+ "Siirrä puhelinta lähemmäs."
+ "Siirrä puhelinta ylemmäs."
+ "Siirrä puhelinta alemmas."
+ "Siirrä puhelinta vasemmalle."
+ "Siirrä puhelinta oikealle.""Katso suoremmin laitteeseen."
- "Kasvoja ei näy. Pidä puhelinta silmien korkeudella."
+ "Aseta kasvosi suoraan puhelimen eteen.""Laite liikkui liikaa. Pidä puhelin vakaana.""Rekisteröi kasvot uudelleen."
- "Kasvoja ei voi tunnistaa. Yritä uudelleen."
- "Liikuta päätä hieman"
- "Katso suoremmin puhelimeen"
- "Katso suoremmin puhelimeen"
- "Katso suoremmin puhelimeen"
+ "Ei enää tunnista kasvoja. Yritä uudelleen."
+ "Liian samanlainen, vaihda asentoa."
+ "Käännä päätä vähän vähemmän."
+ "Kallista päätäsi vähän vähemmän."
+ "Käännä päätä vähän vähemmän.""Poista esteet kasvojesi edestä.""Puhdista näytön yläreuna, mukaan lukien musta palkki"
-
-
-
-
- "Kasvomallia ei voi luoda. Yritä uudelleen."
- "Tummat lasit havaittu. Kasvojen täytyy näkyä kokonaan."
- "Kasvot peittävä asia havaittu. Kasvojen täytyy näkyä kokonaan.""Kasvoja ei voi vahvistaa. Laitteisto ei käytettäv."
@@ -924,14 +919,14 @@
"Yritä uudelleen""Käytä kaikkia ominaisuuksia avaamalla lukitus.""Kasvojentunnistusavauksen yrityksiä tehty suurin sallittu määrä."
- "Ei SIM-korttia"
- "Tabletissa ei ole SIM-korttia."
- "Android TV ‑laitteessa ei ole SIM-korttia."
- "Puhelimessa ei ole SIM-korttia."
- "Lisää SIM-kortti."
- "SIM-korttia ei löydy tai ei voi lukea. Lisää SIM-kortti."
- "SIM-korttia ei voi käyttää."
- "Sim-kortti on poistettu käytöstä pysyvästi.\n Ota yhteyttä langattoman palvelun tarjoajaan ja pyydä uusi SIM-kortti."
+ "Ei SIM-korttia"
+ "Tablet-laitteessa ei ole SIM-korttia."
+ "Android TV ‑laitteessa ei ole SIM-korttia."
+ "Puhelimessa ei ole SIM-korttia."
+ "Aseta SIM-kortti."
+ "SIM-korttia ei löydy tai ei voi lukea. Kytke SIM-kortti."
+ "SIM-kortti ei kelpaa."
+ "SIM-kortti on poistettu pysyvästi käytöstä.\n Ota yhteyttä operaattoriisi ja hanki uusi SIM-kortti.""Edellinen raita""Seuraava raita""Tauko"
@@ -941,10 +936,10 @@
"Kelaa eteen""Vain hätäpuhelut""Verkko lukittu"
- "SIM-kortti on lukittu PUK-koodilla."
+ "SIM-kortti on PUK-lukittu.""Katso ohjeita käyttöoppaasta tai ota yhteyttä asiakaspalveluun."
- "SIM-kortti on lukittu."
- "SIM-kortin lukitusta avataan…"
+ "SIM-kortti on lukittu."
+ "SIM-kortin lukitusta poistetaan…""Olet piirtänyt lukituksenpoistokuvion väärin %1$d kertaa. \n\nYritä uudelleen %2$d sekunnin kuluttua.""Olet kirjoittanut salasanan väärin %1$d kertaa. \n\nYritä uudelleen %2$d sekunnin kuluttua.""Olet kirjoittanut PIN-koodin väärin %1$d kertaa. \n\nYritä uudelleen %2$d sekunnin kuluttua."
@@ -1168,7 +1163,7 @@
"valittu""ei valittu""käynnissä"
- "Tee toiminto käyttäen:"
+ "Tee toiminto käyttäen sovellusta""Suorita sovelluksella %1$s""Suorita toiminto""Avaa sovelluksessa"
@@ -1246,9 +1241,10 @@
"Valmistellaan: %1$s.""Käynnistetään sovelluksia.""Viimeistellään päivitystä."
+ "Haluatko jatkaa?""Painoit virtapainiketta, mikä yleensä sammuttaa näytön.\n\nKosketa painiketta kevyesti tallentaessasi sormenjälkeä."
- "Lopeta käyttöönotto sammuttamalla näyttö"
- "Laita pois päältä"
+ "Sammuta näyttö"
+ "Jatka käyttöönottoa""Jatketaanko sormenjäljen vahvistamista?""Painoit virtapainiketta, mikä yleensä sammuttaa näytön.\n\nVahvista sormenjälki koskettamalla painiketta kevyesti.""Sammuta näyttö"
@@ -1327,10 +1323,10 @@
"Muuta kohd. Asetukset > Sovellukset""Salli aina""Älä koskaan salli"
- "SIM-kortti poistettu"
- "Mobiiliverkko ei ole käytettävissä ennen kuin käynnistät uudelleen kelvollisella SIM-kortilla."
+ "SIM-kortti poistettu"
+ "Mobiiliverkko ei ole käytettävissä, ennen kuin käynnistät uudelleen kelvollisella laitteeseen kytketyllä SIM-kortilla.""Valmis"
- "SIM-kortti lisätty"
+ "SIM-kortti lisätty""Muodosta mobiiliverkkoyhteys käynnistämällä laite uudelleen.""Käynnistä uudelleen""Aktivoi mobiilipalvelu"
@@ -1401,16 +1397,16 @@
"Määritä koskettamalla.""Valitse käyttöönottoa varten""Sinun on ehkä alustettava laite uudelleen. Poista napauttamalla."
- "Kuvien, videoiden ja muun tallentamiseen"
+ "Kuvien ja median siirtämiseen""Selaa mediatiedostoja""Ongelma: %s""%s ei toimi""Korjaa napauttamalla.""%s on viallinen. Korjaa valitsemalla.""Sinun on ehkä alustettava laite uudelleen. Poista napauttamalla."
- "%s havaittu"
+ "Epäyhteensopiva %s""%s ei toimi"
- "Ota käyttöön napauttamalla."
+ "%s ei ole yhteensopiva tämän laitteen kanssa. Ota se käyttöön tuetussa tilassa napauttamalla.""Valitse tämä, jos haluat, että %s otetaan käyttöön tuetussa muodossa.""Sinun on ehkä alustettava laite uudelleen""%s poistettiin yllättäen"
@@ -1609,7 +1605,7 @@
"TV""Puhelin""Telineen kaiuttimet"
- "Ulkoinen laite"
+ "HDMI""Kuulokkeet""USB""Järjestelmä"
@@ -1642,7 +1638,7 @@
"SIM-kortti on nyt poistettu käytöstä. Jatka antamalla PUK-koodi. Saat lisätietoja ottamalla yhteyttä operaattoriin.""Anna haluamasi PIN-koodi""Vahvista haluamasi PIN-koodi"
- "SIM-kortin lukitusta avataan…"
+ "SIM-kortin lukitusta poistetaan…""Virheellinen PIN-koodi.""Anna 4–8-numeroinen PIN-koodi.""PUK-koodissa tulee olla 8 numeroa."
@@ -1923,7 +1919,6 @@
"Alueasetus""Anna kielen nimi""Ehdotukset"
- "Ehdotettu""Kaikki kielet""Kaikki alueet""Haku"
@@ -1941,19 +1936,18 @@
"Kamera ei käytettävissä""Jatka puhelimella""Mikrofoni ei ole käytettävissä"
- "Play Kauppa ei käytettävissä""Android TV:n asetukset eivät ole käytettävissä""Tabletin asetukset eivät ole käytettävissä""Puhelimen asetukset eivät ole käytettävissä"
- "%1$s ei tällä hetkellä saa pääsyä sovellukseen. Kokeile striimausta Android TV ‑laitteella."
- "%1$s ei tällä hetkellä saa pääsyä sovellukseen. Kokeile striimausta tabletilla."
- "%1$s ei tällä hetkellä saa pääsyä sovellukseen. Kokeile striimausta puhelimella."
+ "%1$s ei saa pääsyä sovellukseen. Kokeile striimausta Android TV ‑laitteella."
+ "%1$s ei saa pääsyä sovellukseen. Kokeile striimausta tabletilla."
+ "%1$s ei saa pääsyä sovellukseen. Kokeile striimausta puhelimella."
+ "%1$s ei tällä hetkellä saa pääsyä sovellukseen. Kokeile striimausta Android TV ‑laitteella."
+ "%1$s ei tällä hetkellä saa pääsyä sovellukseen. Kokeile striimausta tabletilla."
+ "%1$s ei tällä hetkellä saa pääsyä sovellukseen. Kokeile striimausta puhelimella.""Sovellus pyytää lisäsuojausta. Kokeile striimausta Android TV ‑laitteella.""Sovellus pyytää lisäsuojausta. Kokeile striimausta tabletilla.""Sovellus pyytää lisäsuojausta. Kokeile striimausta puhelimella."
- "%1$s ei saa pääsyä sovellukseen. Kokeile striimausta Android TV ‑laitteella."
- "%1$s ei saa pääsyä sovellukseen. Kokeile striimausta tabletilla."
- "%1$s ei saa pääsyä sovellukseen. Kokeile striimausta puhelimella.""Tämä sovellus on suunniteltu vanhemmalle Android-versiolle eikä välttämättä toimi oikein. Kokeile tarkistaa päivitykset tai ottaa yhteyttä kehittäjään.""Tarkista päivitykset""Sinulle on uusia viestejä"
@@ -1967,7 +1961,7 @@
"Kiinnitä %1$s""Irrota""Irrota %1$s"
- "Sovellustiedot"
+ "Sovelluksen tiedot""−%1$s""Aloitetaan esittelyä…""Palautetaan asetuksia…"
@@ -2046,8 +2040,7 @@
"Saako %s pääsyn kaikkiin laitelokeihin?""Salli kertaluonteinen pääsy""Älä salli"
- "Laitteen tapahtumat tallentuvat laitelokeihin. Niiden avulla sovellukset voivat löytää ja korjata ongelmia.\n\nJotkin lokit voivat sisältää arkaluontoista tietoa, joten salli pääsy kaikkiin laitelokeihin vain sovelluksille, joihin luotat. \n\nJos et salli tälle sovellukselle pääsyä kaikkiin laitelokeihin, sillä on kuitenkin pääsy sen omiin lokeihin. Laitteen valmistajalla voi olla pääsy joihinkin lokeihin tai tietoihin laitteella."
- "Laitteen tapahtumat tallentuvat laitelokeihin. Niiden avulla sovellukset voivat löytää ja korjata ongelmia.\n\nJotkin lokit voivat sisältää arkaluontoista tietoa, joten salli pääsy kaikkiin laitelokeihin vain sovelluksille, joihin luotat. \n\nJos et salli tälle sovellukselle pääsyä kaikkiin laitelokeihin, sillä on kuitenkin pääsy sen omiin lokeihin. Laitteen valmistajalla voi olla pääsy joihinkin lokeihin tai tietoihin laitteella.\n\nLue lisää osoitteessa g.co/android/devicelogs."
+ "Laitteen tapahtumat tallentuvat laitelokeihin. Niiden avulla sovellukset voivat löytää ja korjata ongelmia.\n\nJotkin lokit voivat sisältää arkaluontoista tietoa, joten salli pääsy kaikkiin laitelokeihin vain sovelluksille, joihin luotat. \n\nJos et salli tälle sovellukselle pääsyä kaikkiin laitelokeihin, sillä on kuitenkin pääsy sen omiin lokeihin. Laitteen valmistajalla voi olla pääsy joihinkin lokeihin tai tietoihin laitteella. Lue lisää""Älä näytä uudelleen""%1$s haluaa näyttää osia sovelluksesta %2$s.""Muokkaa"
@@ -2060,7 +2053,8 @@
"Älä häiritse ‑tila muuttui""Napauta niin näet, mitä on estetty.""Tarkista ilmoitusasetukset"
- "Asentamasi sovellukset tarvitsevat sinulta luvan ilmoitusten lähettämiseen Android 13 ‑käyttöjärjestelmästä alkaen. Napauta muuttaaksesi nykyisten sovellusten lupia."
+
+ "Muistuta myöhemmin""Ohita""Järjestelmä"
@@ -2288,6 +2282,5 @@
"Tarkista aktiiviset sovellukset""%1$s ei pääse puhelimen kameraan""%1$s ei pääse tabletin kameraan"
- "Sisältöön ei saa pääsyä striimauksen aikana. Kokeile striimausta puhelimella."
- "Järjestelmän oletusarvo"
+ "Järjestelmän kieli"
diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml
index 63e37ca8353d179c5dc3f81c9b632d761c7ffcd1..07ef3c172b51c6a3514c8ddac2d7f3c3a8a09d7f 100644
--- a/core/res/res/values-fr-rCA/strings.xml
+++ b/core/res/res/values-fr-rCA/strings.xml
@@ -21,6 +21,11 @@
"o"
+ "ko"
+ "Mo"
+ "Go"
+ "To"
+ "Po""%1$s%2$s""<Sans_titre>""(Aucun numéro de téléphone)"
@@ -28,7 +33,6 @@
"Messagerie vocale""MSISDN1""Problème de connexion ou code IHM incorrect"
- "Fonctionnalité non prise en charge.""Opération réservée aux numéros autorisés""Impossible de modifier les paramètres de transfert d\'appel sur votre téléphone lorsque vous êtes en itinérance.""Le service a été activé."
@@ -43,12 +47,11 @@
"Les NIP saisis ne correspondent pas.""Veuillez saisir un NIP comprenant entre quatre et huit chiffres.""Veuillez saisir une clé PUK comportant au moins huit chiffres."
- "Votre carte SIM est verrouillée par clé PUK. Entrez le code PUK pour la déverrouiller."
- "Entrez le code PUK2 pour déverrouiller la carte SIM."
+ "Votre carte SIM est verrouillée par clé PUK. Saisissez la clé PUK pour la déverrouiller."
+ "Saisissez la clé PUK2 pour débloquer la carte SIM.""Opération infructueuse. Activez le verrouillage SIM/RUIM."Il vous reste %d tentative avant que votre carte SIM soit verrouillée.
- Il vous reste %d tentatives avant que votre carte SIM soit verrouillée.Il vous reste %d tentatives avant que votre carte SIM soit verrouillée."Code IIEM"
@@ -177,7 +180,7 @@
"La mémoire de la montre est pleine. Supprimez des fichiers pour libérer de l\'espace.""L\'espace de stockage de l\'appareil Android TV est plein. Supprimez des fichiers pour libérer de l\'espace.""La mémoire du téléphone est pleine. Veuillez supprimer des fichiers pour libérer de l\'espace."
- "{count,plural, =1{Autorité de certification installée}one{Autorité de certification installée}many{Autorités de certification installées}other{Autorités de certification installées}}"
+ "{count,plural, =1{Autorité de certification installée}one{Autorité de certification installée}other{Autorités de certification installées}}""Par un tiers inconnu""Par l\'administrateur de votre profil professionnel""Par %s"
@@ -251,7 +254,7 @@
"Utilisez cette option dans la plupart des circonstances. Elle vous permet de suivre la progression du rapport, d\'entrer plus d\'information sur le problème et d\'effectuer des saisies d\'écran. Certaines sections moins utilisées et dont le remplissage demande beaucoup de temps peuvent être omises.""Rapport complet""Utilisez cette option pour qu\'il y ait le moins d\'interférences système possible lorsque votre appareil ne répond pas ou qu\'il est trop lent, ou lorsque vous avez besoin de toutes les sections du rapport de bogue. Aucune capture d\'écran supplémentaire ne peut être capturée, et vous ne pouvez entrer aucune autre information."
- "{count,plural, =1{Saisie d\'une capture d\'écran pour le rapport de bogue dans # seconde.}one{Saisie d\'une capture d\'écran pour le rapport de bogue dans # seconde.}many{Saisie d\'une capture d\'écran pour le rapport de bogue dans # secondes.}other{Saisie d\'une capture d\'écran pour le rapport de bogue dans # secondes.}}"
+ "{count,plural, =1{Saisie d\'une capture d\'écran pour le rapport de bogue dans # seconde.}one{Saisie d\'une capture d\'écran pour le rapport de bogue dans # seconde.}other{Saisie d\'une capture d\'écran pour le rapport de bogue dans # secondes.}}""Capture d\'écran prise avec le rapport de bogue""Échec de la prise de capture d\'écran avec le rapport de bogue""Mode silencieux"
@@ -300,14 +303,14 @@
"accéder à la position de cet appareil""Agenda""accéder à votre agenda"
- "Messages texte"
+ "Messagerie texte""envoyer et afficher des messages texte"
- "Fichiers"
- "accéder aux fichiers sur votre appareil"
- "Musique et audio"
- "accédez aux fichiers musicaux et audio sur votre appareil"
- "Photos et vidéos"
- "accédez aux photos et aux vidéos sur votre appareil"
+ "Fichiers et documents"
+ "accédez aux fichiers et aux documents sur votre appareil"
+ "Musique et autres fichiers audio"
+ "accéder aux fichiers audio de votre appareil"
+ "Photos et vidéos"
+ "accéder aux fichiers d\'image et aux fichiers vidéo de votre appareil""Microphone""enregistrer des fichiers audio""Activité physique"
@@ -346,7 +349,7 @@
"Permet à l\'application de réduire ou de développer la barre d\'état.""afficher les notifications en mode plein écran sur un appareil verrouillé""Permet à l\'application d\'afficher les notifications en mode plein écran sur un appareil verrouillé."
- "Installer des raccourcis"
+ "installer des raccourcis""Permet à une application d\'ajouter des raccourcis sans l\'intervention de l\'utilisateur.""désinstaller des raccourcis""Permet à l\'application de supprimer des raccourcis de la page d\'accueil sans intervention de l\'utilisateur."
@@ -424,7 +427,7 @@
"Permet à l\'application de lire le journal d\'appels de votre téléphone, y compris les données relatives aux appels entrants et sortants. Des applications malveillantes peuvent utiliser cette fonctionnalité pour effacer ou modifier votre journal d\'appels.""Accéder aux données des capteurs corporels si en utilisation (fréq. card., etc.)""Permet à l\'application d\'accéder aux données des capteurs corporels telles que la fréquence cardiaque, la température et le pourcentage d\'oxygène dans le sang pendant l\'utilisation de l\'application."
- "Accéder aux données des capteurs corporels (comme la fréq. card.) en arrière-plan"
+ "Accéder aux données des capteurs corporels si en arrière-plan (fréq. card., etc.)""Permet à l\'application d\'accéder aux données des capteurs corporels telles que la fréquence cardiaque, la température et le pourcentage d\'oxygène dans le sang pendant que l\'application s\'exécute en arrière-plan.""Lire les événements d\'agenda et leurs détails""Cette application peut lire tous les événements d\'agenda stockés sur votre tablette et partager ou enregistrer les données de votre agenda."
@@ -583,14 +586,13 @@
"Utiliser le verrouillage de l\'écran""Entrez votre verrouillage d\'écran pour continuer""Appuyez fermement sur le capteur"
- "Empreinte digitale non reconnue. Réessayez."
+ "Impossible de reconnaître l\'empreinte digitale. Veuillez réessayer.""Nettoyez le capteur d\'empreintes digitales et réessayez""Nettoyez le capteur et réessayez""Appuyez fermement sur le capteur""Vous avez déplacé votre doigt trop lentement. Veuillez réessayer.""Essayez une autre empreinte digitale""Trop lumineux"
- "Forte pression détectée""Essayez de l\'ajuster""Modifiez légèrement la position de votre doigt chaque fois"
@@ -602,17 +604,16 @@
"Visage authentifié, veuillez appuyer sur le bouton Confirmer""Lecteur d\'empreintes digitales indisponible.""Impossible de configurer l\'empreinte digitale"
- "Délai dépassé pour configurer l\'empreinte digitale. Réessayez."
+ "Le temps attribué pour lire l\'empreinte digitale est écoulé. Veuillez réessayer.""Opération d\'empreinte digitale numérique annulée.""L\'opération d\'empreinte digitale a été annulée par l\'utilisateur."
- "Trop de tentatives. Utilisez plutôt le verrouillage de l\'écran."
- "Trop de tentatives. Utilisez plutôt le verrouillage de l\'écran."
- "Empreinte digitale non traitable. Réessayez."
+ "Trop de tentatives. Veuillez réessayer plus tard."
+ "Trop de tentatives. Capteur d\'empreintes digitales désactivé."
+ "Réessayer.""Aucune empreinte digitale enregistrée.""Cet appareil ne possède pas de capteur d\'empreintes digitales.""Le capteur a été désactivé temporairement.""Impossible d\'utiliser le capteur d\'empreintes digitales. Consultez un fournisseur de services de réparation"
- "Vous avez appuyé sur l\'interrupteur""Doigt %d""Utiliser l\'empreinte digitale""Utiliser l\'empreinte digitale ou le verrouillage de l\'écran"
@@ -633,33 +634,26 @@
"Déverrouillage par empreinte digitale""Impossible d\'utiliser le capteur d\'empreintes digitales""Consultez un fournisseur de services de réparation."
- "Impossible de créer votre modèle facial. Réessayez."
+ "Imposs. capt. données visage précises. Réessayez.""Trop lumineux. Essayez un éclairage plus faible."
- "Éclairage insuffisant"
- "Éloignez le téléphone"
- "Rapprochez le téléphone"
- "Tenez le téléphone plus haut"
- "Tenez le téléphone plus bas"
- "Déplacez le téléphone vers la gauche"
- "Déplacez le téléphone vers la droite"
+ "Trop sombre. Essayez avec un éclairage plus fort."
+ "Déplacez le téléphone plus loin."
+ "Rapprochez le téléphone."
+ "Déplacez le téléphone plus haut."
+ "Déplacez le téléphone plus bas."
+ "Déplacez le téléphone vers la gauche."
+ "Déplacez le téléphone vers la droite.""Veuillez regarder plus directement votre appareil."
- "Impossible de voir votre visage. Tenez votre téléphone à la hauteur des yeux."
+ "Placez votre visage directement devant le téléphone.""Trop de mouvement. Tenez le téléphone immobile.""Veuillez inscrire votre visage à nouveau."
- "Visage non reconnu. Réessayez."
- "Modifiez légèrement la position de votre tête"
- "Regardez plus directement votre téléphone"
- "Regardez plus directement votre téléphone"
- "Regardez plus directement votre téléphone"
+ "Ce visage ne sera plus reconnu. Réessayez."
+ "Trop similaire. Changez de pose."
+ "Tournez un peu moins votre tête."
+ "Inclinez un peu moins votre tête."
+ "Tournez un peu moins votre tête.""Retirez tout ce qui pourrait couvrir votre visage.""Nettoyez le haut de l\'écran, y compris la barre noire"
-
-
-
-
- "Impossible de créer votre modèle facial. Réessayez."
- "Lunettes sombres détectées. Votre visage doit être entièrement visible."
- "Couvre-visage détecté. Votre visage doit être entièrement visible.""Imposs. de vérif. visage. Matériel non accessible."
@@ -925,14 +919,14 @@
"Réessayer""Déverr. pour acc. aux autres fonction. et données""Nombre maximal atteint de tentatives de déverrouillage par reconnaissance faciale"
- "Aucune carte SIM"
- "Aucune carte SIM ne se trouve dans la tablette."
- "Aucune carte SIM ne se trouve dans votre appareil Android TV."
- "Aucune carte SIM ne se trouve dans le téléphone."
- "Ajouter une carte SIM."
- "La carte SIM est manquante ou illisible. Ajouter une carte SIM."
- "La carte SIM est inutilisable."
- "Votre carte SIM a été désactivée de manière permanente.\n Communiquez avec votre fournisseur de services sans fil pour obtenir une autre carte SIM."
+ "Aucune carte SIM"
+ "Aucune carte SIM n\'est insérée dans la tablette."
+ "Aucune carte SIM ne se trouve dans votre appareil Android TV."
+ "Aucune carte SIM n\'est insérée dans le téléphone."
+ "Insérez une carte SIM."
+ "Carte SIM absente ou illisible. Veuillez insérer une carte SIM."
+ "Carte SIM inutilisable."
+ "Votre carte SIM a été définitivement désactivée.\n Veuillez contacter votre opérateur de téléphonie mobile pour en obtenir une autre.""Chanson précédente""Chanson suivante""Pause"
@@ -942,10 +936,10 @@
"Avance rapide""Appels d\'urgence uniquement""Réseau verrouillé"
- "La carte SIM est verrouillée par clé PUK."
+ "La carte SIM est verrouillée par clé PUK.""Veuillez consulter le guide d\'utilisation ou contacter le service à la clientèle."
- "La carte SIM est verrouillée."
- "Déverrouillage de la carte SIM en cours…"
+ "La carte SIM est verrouillée."
+ "Déverrouillage de la carte SIM en cours…""Vous avez dessiné un schéma de déverrouillage incorrect à %1$d reprises.\n\nVeuillez réessayer dans %2$d secondes.""Vous avez saisi un mot de passe incorrect à %1$d reprises. \n\nVeuillez réessayer dans %2$d secondes.""Vous avez saisi un NIP incorrect à %1$d reprises. \n\nVeuillez réessayer dans %2$d secondes."
@@ -1085,7 +1079,7 @@
"%1$s souhaite activer la fonctionnalité \"Explorer au toucher\". Lorsque celle-ci est activée, vous pouvez entendre ou voir les descriptions des éléments que vous sélectionnez, ou bien interagir avec le téléphone en effectuant certains gestes.""Il y a 1 mois""Il y a plus d\'un mois"
- "{count,plural, =1{# dernier jour}one{# dernier jour}many{# derniers jours}other{# derniers jours}}"
+ "{count,plural, =1{# dernier jour}one{# dernier jour}other{# derniers jours}}""Le mois dernier""Précédent""le %s"
@@ -1112,14 +1106,14 @@
"dans %d h""dans %d j""dans %d a"
- "{count,plural, =1{Il y a # minute}one{Il y a # minute}many{Il y a # minutes}other{Il y a # minutes}}"
- "{count,plural, =1{Il y a # heure}one{Il y a # heure}many{Il y a # heures}other{Il y a # heures}}"
- "{count,plural, =1{Il y a # jour}one{Il y a # jour}many{Il y a # jours}other{Il y a # jours}}"
- "{count,plural, =1{Il y a # an}one{Il y a # an}many{Il y a # ans}other{Il y a # ans}}"
- "{count,plural, =1{# minute}one{# minute}many{# minutes}other{# minutes}}"
- "{count,plural, =1{# heure}one{# heure}many{# heures}other{# heures}}"
- "{count,plural, =1{# jour}one{# jour}many{# jours}other{# jours}}"
- "{count,plural, =1{# an}one{# an}many{# ans}other{# ans}}"
+ "{count,plural, =1{Il y a # minute}one{Il y a # minute}other{Il y a # minutes}}"
+ "{count,plural, =1{Il y a # heure}one{Il y a # heure}other{Il y a # heures}}"
+ "{count,plural, =1{Il y a # jour}one{Il y a # jour}other{Il y a # jours}}"
+ "{count,plural, =1{Il y a # an}one{Il y a # an}other{Il y a # ans}}"
+ "{count,plural, =1{# minute}one{# minute}other{# minutes}}"
+ "{count,plural, =1{# heure}one{# heure}other{# heures}}"
+ "{count,plural, =1{# jour}one{# jour}other{# jours}}"
+ "{count,plural, =1{# an}one{# an}other{# ans}}""Problème vidéo""Impossible de lire cette vidéo en continu sur cet appareil.""Impossible de lire la vidéo."
@@ -1162,8 +1156,8 @@
"Annuler""Attention""Chargement en cours..."
- "ACTIVÉ"
- "DÉSACTIVÉ"
+ "OUI"
+ "NON""coché""non coché""sélectionné"
@@ -1247,9 +1241,10 @@
"Préparation de %1$s en cours…""Lancement des applications…""Finalisation de la mise à jour."
+ "Poursuivre la configuration?""Vous avez appuyé sur le l\'interrupteur – cette action éteint habituellement l\'écran.\n\nEssayez de toucher légèrement pendant la configuration de votre empreinte digitale."
- "Pour terminer, éteignez l\'écran"
- "Désactiver"
+ "Éteindre l\'écran"
+ "Poursuivre configu.""Poursuivre vérifica. empreinte digitale?""Vous avez appuyé sur le l\'interrupteur – cette action éteint habituellement l\'écran.\n\nEssayez de toucher légèrement pour vérifier votre empreinte digitale.""Éteindre l\'écran"
@@ -1328,10 +1323,10 @@
"Pour modifier : Paramètres > Applications""Toujours autoriser""Ne jamais autoriser"
- "Carte SIM retirée"
- "Le réseau cellulaire ne sera pas accessible avant le redémarrage avec une carte SIM valide."
+ "Carte SIM retirée"
+ "Le réseau mobile ne sera pas disponible avant le redémarrage avec une carte SIM valide insérée.""Terminé"
- "Carte SIM ajoutée"
+ "Carte SIM ajoutée.""Redémarrez votre appareil pour accéder au réseau mobile.""Redémarrer""Activer le service cellulaire"
@@ -1361,7 +1356,7 @@
"Un accessoire audio analogique a été détecté""L\'appareil connecté n\'est pas compatible avec ce téléphone. Touchez ici en savoir plus.""Débogage USB activé"
- "Touchez pour désactiver le débogage USB"
+ "Touchez ici pour désactiver le débogage USB""Sélectionnez cette option pour désactiver le débogage USB.""Débogage sans fil connecté""Touchez l\'écran pour désactiver le débogage sans fil"
@@ -1399,19 +1394,19 @@
"Analyse de l\'espace de stockage sur le support en cours…""Nouveau périphérique %s""%s ne fonctionne pas"
- "Touchez pour configurer"
+ "Toucher pour configurer""Sélectionnez pour configurer""Vous devrez peut-être reformater l\'appareil. Touchez pour l\'éjecter."
- "Pour stocker des photos, des vidéos, de la musique et plus encore"
+ "Pour transférer des photos et d\'autres fichiers""Parcourir les fichiers multimédias""Il y a un problème avec %s""%s ne fonctionne pas""Touchez la notification pour corriger la situation""Le média « %s » est corrompu. Sélectionnez-le pour corriger la situation.""Vous devrez peut-être reformater l\'appareil. Touchez pour l\'éjecter."
- "%s détecté"
+ "%s non compatible""%s ne fonctionne pas"
- "Touchez pour configurer ."
+ "Cet appareil n\'est pas compatible avec la mémoire de stockage « %s ». Touchez pour la configurer dans un format compatible.""Sélectionner pour configurer %s dans un format pris en charge.""Vous devrez peut-être reformater l\'appareil""Retrait inattendu de la mémoire « %s »"
@@ -1422,7 +1417,7 @@
"Ne pas retirer""Configurer""Éjecter"
- "Explorer"
+ "Découvrir""Changer de sortie""Mémoire de stockage %s manquante""Insérez l\'appareil de nouveau"
@@ -1506,7 +1501,7 @@
"Ignorer""Aucune partie""Rechercher sur la page"
- "{count,plural, =1{# correspondance}one{# sur {total}}many{# sur {total}}other{# sur {total}}}"
+ "{count,plural, =1{# correspondance}one{# sur {total}}other{# sur {total}}}""Terminé""Effacement du stockage partagé en cours…""Partager"
@@ -1610,7 +1605,7 @@
"Télévision""Téléphone""Haut-parleurs de la station d\'accueil"
- "Appareil externe"
+ "HDMI""Oreillettes""USB""Système"
@@ -1643,7 +1638,7 @@
"La carte SIM est maintenant désactivée. Saisissez le code PUK pour continuer. Contactez votre opérateur pour en savoir plus.""Saisir le NIP souhaité""Confirmer le NIP souhaité"
- "Déverrouillage de la carte SIM en cours…"
+ "Déblocage de la carte SIM en cours…""NIP erroné.""Saisissez un NIP comprenant entre quatre et huit chiffres""Le code PUK doit contenir 8 chiffres."
@@ -1683,12 +1678,12 @@
"Ne pas activer""ACTIVÉ""DÉSACTIVÉ"
- "Permettre à %1$s de contrôler complètement votre appareil?"
+ "Permettre à %1$s de commander complètement votre appareil?""Le contrôle total convient aux applications qui répondent à vos besoins d\'accessibilité. Il ne convient pas à la plupart des applications."
- "Afficher et contrôler l\'écran"
+ "Afficher et commander l\'écran""Cette fonctionnalité peut lire tout le contenu à l\'écran et afficher du contenu par-dessus d\'autres applications.""Afficher et effectuer des actions"
- "Cette fonctionnalité peut faire le suivi de vos interactions avec une application ou un capteur matériel et interagir avec des applications en votre nom."
+ "Cette fonctionnalité peut faire le suivi de vos interactions avec une application ou un capteur matériel, et interagir avec des applications en votre nom.""Autoriser""Refuser""Toucher une fonctionnalité pour commencer à l\'utiliser :"
@@ -1702,7 +1697,7 @@
"Inversion des couleurs""Correction des couleurs""Mode Une main"
- "Très sombre"
+ "Réduction supplémentaire de la luminosité""Touches de volume maintenues enfoncées. %1$s activé.""Touches de volume maintenues enfoncées. Service %1$s désactivé.""Maintenez les deux touches de volume enfoncées pendant trois secondes pour utiliser %1$s"
@@ -1859,14 +1854,14 @@
"Pour aider à diminuer l\'utilisation des données, la fonctionnalité Économiseur de données empêche certaines applications d\'envoyer ou de recevoir des données en arrière-plan. Une application que vous utilisez actuellement peut accéder à des données, mais peut le faire moins souvent. Cela peut signifier, par exemple, que les images ne s\'affichent pas jusqu\'à ce que vous les touchiez.""Activer l\'économiseur de données?""Activer"
- "{count,plural, =1{Pendant une minute (jusqu\'à {formattedTime})}one{Pendant # minute (jusqu\'à {formattedTime})}many{Pendant # minutes (jusqu\'à {formattedTime})}other{Pendant # minutes (jusqu\'à {formattedTime})}}"
- "{count,plural, =1{Pendant 1 m (jusqu\'à {formattedTime})}one{Pendant # m (jusqu\'à {formattedTime})}many{Pendant # m (jusqu\'à {formattedTime})}other{Pendant # m (jusqu\'à {formattedTime})}}"
- "{count,plural, =1{Pendant 1 heure (jusqu\'à {formattedTime})}one{Pendant # heure (jusqu\'à {formattedTime})}many{Pendant # heures (jusqu\'à {formattedTime})}other{Pendant # heures (jusqu\'à {formattedTime})}}"
- "{count,plural, =1{Pendant 1 h (jusqu\'à {formattedTime})}one{Pendant # h (jusqu\'à {formattedTime})}many{Pendant # h (jusqu\'à {formattedTime})}other{Pendant # h (jusqu\'à {formattedTime})}}"
- "{count,plural, =1{Pendant une minute}one{Pendant # minute}many{Pendant # minutes}other{Pendant # minutes}}"
- "{count,plural, =1{Pendant 1 m}one{Pendant # m}many{Pendant # m}other{Pendant # m}}"
- "{count,plural, =1{Pendant 1 heure}one{Pendant # heure}many{Pendant # heures}other{Pendant # heures}}"
- "{count,plural, =1{Pendant 1 h}one{Pendant # h}many{Pendant # h}other{Pendant # h}}"
+ "{count,plural, =1{Pendant une minute (jusqu\'à {formattedTime})}one{Pendant # minute (jusqu\'à {formattedTime})}other{Pendant # minutes (jusqu\'à {formattedTime})}}"
+ "{count,plural, =1{Pendant 1 m (jusqu\'à {formattedTime})}one{Pendant # m (jusqu\'à {formattedTime})}other{Pendant # m (jusqu\'à {formattedTime})}}"
+ "{count,plural, =1{Pendant 1 heure (jusqu\'à {formattedTime})}one{Pendant # heure (jusqu\'à {formattedTime})}other{Pendant # heures (jusqu\'à {formattedTime})}}"
+ "{count,plural, =1{Pendant 1 h (jusqu\'à {formattedTime})}one{Pendant # h (jusqu\'à {formattedTime})}other{Pendant # h (jusqu\'à {formattedTime})}}"
+ "{count,plural, =1{Pendant une minute}one{Pendant # minute}other{Pendant # minutes}}"
+ "{count,plural, =1{Pendant 1 m}one{Pendant # m}other{Pendant # m}}"
+ "{count,plural, =1{Pendant 1 heure}one{Pendant # heure}other{Pendant # heures}}"
+ "{count,plural, =1{Pendant 1 h}one{Pendant # h}other{Pendant # h}}""Jusqu\'à %1$s""Jusqu\'à %1$s""Jusqu\'à %1$s (alarme suivante)"
@@ -1924,7 +1919,6 @@
"Préférences régionales""Entrez la langue""Suggestions"
- "Suggestions""Toutes les langues""Toutes les régions""Rechercher"
@@ -1942,19 +1936,18 @@
"Appareil photo non accessible""Continuer sur le téléphone""Microphone non accessible"
- "Boutique Play Store inaccessible""Paramètres Android TV non accessibles""Paramètres de la tablette non accessibles""Paramètres du téléphone non accessibles"
- "Impossible d\'accéder à ce contenu sur votre %1$s pour le moment. Essayez sur votre appareil Android TV à la place."
- "Impossible d\'accéder à ce contenu sur votre %1$s pour le moment. Essayez sur votre tablette à la place."
- "Impossible d\'accéder à ce contenu sur votre %1$s pour le moment. Essayez sur votre téléphone à la place."
+ "Impossible d\'accéder à ce contenu sur votre appareil %1$s. Essayez sur votre appareil Android TV à la place."
+ "Impossible d\'accéder à ce contenu sur votre appareil %1$s. Essayez sur votre tablette à la place."
+ "Impossible d\'accéder à ce contenu sur votre appareil %1$s. Essayez sur votre téléphone à la place."
+ "Impossible d\'accéder à ce contenu sur votre appareil %1$s pour le moment. Essayez sur votre appareil Android TV à la place."
+ "Impossible d\'accéder à ce contenu sur votre appareil %1$s pour le moment. Essayez sur votre tablette à la place."
+ "Impossible d\'accéder à ce contenu sur votre appareil %1$s pour le moment. Essayez sur votre téléphone à la place.""Cette application demande une sécurité supplémentaire. Essayez sur votre appareil Android TV à la place.""Cette application demande une sécurité supplémentaire. Essayez sur votre tablette à la place.""Cette application demande une sécurité supplémentaire. Essayez sur votre téléphone à la place."
- "Impossible d\'accéder à ce contenu sur votre %1$s. Essayez sur votre appareil Android TV à la place."
- "Impossible d\'accéder à ce contenu sur votre %1$s. Essayez sur votre tablette à la place."
- "Impossible d\'accéder à ce contenu sur votre %1$s. Essayez sur votre téléphone à la place.""Cette application a été conçue pour une ancienne version d\'Android et pourrait ne pas fonctionner correctement. Essayez de vérifier les mises à jour ou communiquez avec son développeur.""Vérifier la présence de mises à jour""Vous avez de nouveaux messages"
@@ -1997,7 +1990,7 @@
"Enregistrer pour le remplissage automatique""Le contenu ne peut pas être entré automatiquement""Aucune suggestion de remplissage automatique"
- "{count,plural, =1{Une suggestion de remplissage automatique}one{# suggestion de remplissage automatique}many{# suggestions de remplissage automatique}other{# suggestions de remplissage automatique}}"
+ "{count,plural, =1{Une suggestion de remplissage automatique}one{# suggestion de remplissage automatique}other{# suggestions de remplissage automatique}}""Enregistrer sous ""%1$s""?""Enregistrer %1$s sous ""%2$s""?""Enregistrer %1$s et %2$s sous ""%3$s""?"
@@ -2047,8 +2040,7 @@
"Autoriser %s à accéder à l\'ensemble des journaux de l\'appareil?""Autoriser un accès unique""Ne pas autoriser"
- "Les journaux de l\'appareil enregistrent ce qui se passe sur celui-ci. Les applications peuvent utiliser ces journaux pour trouver et résoudre des problèmes.\n\nCertains journaux peuvent contenir des renseignements confidentiels. N\'autorisez donc que les applications auxquelles vous faites confiance puisque celles-ci pourront accéder à l\'ensemble des journaux de l\'appareil. \n\nMême si vous n\'autorisez pas cette application à accéder à l\'ensemble des journaux de l\'appareil, elle aura toujours accès à ses propres journaux. Le fabricant de votre appareil pourrait toujours être en mesure d\'accéder à certains journaux ou renseignements sur votre appareil."
- "Les journaux de l\'appareil enregistrent ce qui se passe sur celui-ci. Les applications peuvent utiliser ces journaux pour trouver et résoudre des problèmes.\n\nCertains journaux peuvent contenir des renseignements confidentiels. N\'autorisez donc que les applications auxquelles vous faites confiance puisque celles-ci pourront accéder à l\'ensemble des journaux de l\'appareil. \n\nMême si vous n\'autorisez pas cette application à accéder à l\'ensemble des journaux de l\'appareil, elle aura toujours accès à ses propres journaux. Le fabricant de votre appareil pourrait toujours être en mesure d\'accéder à certains journaux ou renseignements sur votre appareil.\n\nPour en savoir plus, consultez la page g.co/android/devicelogs."
+ "Les journaux de l\'appareil enregistrent ce qui se passe sur celui-ci. Les applications peuvent utiliser ces journaux pour trouver et résoudre des problèmes.\n\nCertains journaux peuvent contenir des renseignements confidentiels. N\'autorisez donc que les applications auxquelles vous faites confiance puisque celles-ci pourront accéder à l\'ensemble des journaux de l\'appareil. \n\nMême si vous n\'autorisez pas cette application à accéder à l\'ensemble des journaux de l\'appareil, elle aura toujours accès à ses propres journaux. Le fabricant de votre appareil pourrait toujours être en mesure d\'accéder à certains journaux ou renseignements sur votre appareil. En savoir plus""Ne plus afficher""%1$s souhaite afficher %2$s tranches""Modifier"
@@ -2061,7 +2053,8 @@
"Les paramètres du mode Ne pas déranger ont changé""Touchez l\'écran pour vérifier ce qui est bloqué.""Examiner les paramètres de notification"
- "À partir d\'Android 13, les applications que vous installez ont besoin de votre autorisation pour envoyer des notifications. Touchez pour modifier cette autorisation pour les applications existantes."
+
+ "Me rappeler plus tard""Fermer""Système"
@@ -2108,7 +2101,7 @@
"Présentation %1$s""Le Bluetooth restera activé en mode Avion""Chargement en cours…"
- "{count,plural, =1{{file_name} + # fichier}one{{file_name} + # fichier}many{{file_name} + # fichiers}other{{file_name} + # fichiers}}"
+ "{count,plural, =1{{file_name} + # fichier}one{{file_name} + # fichier}other{{file_name} + # fichiers}}""Aucune recommandation de personnes avec lesquelles effectuer un partage""Liste des applications""Cette application n\'a pas été autorisée à effectuer des enregistrements, mais elle pourrait capturer du contenu audio par l\'intermédiaire de cet appareil USB."
@@ -2118,7 +2111,7 @@
"Notifications""Paramètres rapides""Boîte de dialogue sur l\'alimentation"
- "Verrouiller l\'écran"
+ "Écran de verrouillage""Capture d\'écran""Crochet de casque d\'écoute""Raccourci d\'accessibilité à l\'écran"
@@ -2289,6 +2282,5 @@
"Vérifier les applications actives""Impossible d\'accéder à l\'appareil photo du téléphone à partir de votre %1$s""Impossible d\'accéder à l\'appareil photo de la tablette à partir de votre %1$s"
- "Vous ne pouvez pas y accéder lorsque vous utilisez la diffusion en continu. Essayez sur votre téléphone à la place."
- "Paramètre système par défaut"
+ "Langue du système"
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index aef631a2cc1bffdcbc1ff93b084d9b490db6f9a1..51fc0fa9dbeedb17afb419d798d7830231bddc1a 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -21,6 +21,11 @@
"octet(s)"
+ "Ko"
+ "Mo"
+ "Go"
+ "To"
+ "Po""%1$s%2$s""<Sans nom>""(Aucun numéro de téléphone)"
@@ -28,7 +33,6 @@
"Messagerie vocale""MSISDN1""Problème de connexion ou code IHM non valide."
- "Fonctionnalité non disponible.""Opération réservée aux numéros autorisés""Impossible de modifier les paramètres de transfert d\'appel depuis votre téléphone lorsque vous êtes en itinérance.""Le service a été activé."
@@ -43,12 +47,11 @@
"Les codes PIN saisis ne correspondent pas.""Le code PIN doit compter de 4 à 8 chiffres.""Saisissez un code PUK comportant au moins huit chiffres."
- "Votre SIM est verrouillée par clé PUK. Saisissez le code PUK pour la déverrouiller."
- "Saisissez le code PUK2 pour déverrouiller la SIM."
+ "Votre carte SIM est verrouillée par clé PUK. Saisissez la clé PUK pour la déverrouiller."
+ "Saisissez la clé PUK2 pour débloquer la carte SIM.""Échec de l\'opération. Veuillez activer le verrouillage de la carte SIM/RUIM."Il vous reste %d tentative avant que votre carte SIM ne soit verrouillée.
- Il vous reste %d tentatives avant que votre carte SIM ne soit verrouillée.Il vous reste %d tentatives avant que votre carte SIM ne soit verrouillée."Code IMEI"
@@ -177,7 +180,7 @@
"La mémoire de la montre est saturée. Veuillez supprimer des fichiers pour libérer de l\'espace.""L\'espace de stockage de l\'appareil Android TV est saturé. Supprimez certains fichiers pour libérer de l\'espace.""La mémoire du téléphone est pleine. Veuillez supprimer des fichiers pour libérer de l\'espace."
- "{count,plural, =1{Autorité de certification installée}one{Autorité de certification installée}many{Autorités de certification installées}other{Autorités de certification installées}}"
+ "{count,plural, =1{Autorité de certification installée}one{Autorité de certification installée}other{Autorités de certification installées}}""Par un tiers inconnu""Par l\'administrateur de votre profil professionnel""Par %s"
@@ -241,7 +244,7 @@
"Éteindre""Marche/Arrêt""Redémarrer"
- "Urgence"
+ "Urgences""Rapport de bug""Fermer la session""Capture d\'écran"
@@ -251,7 +254,7 @@
"Utilisez cette option dans la plupart des circonstances. Elle vous permet de suivre la progression du rapport, de saisir plus d\'informations sur le problème et d\'effectuer des captures d\'écran. Certaines sections moins utilisées et dont le remplissage demande beaucoup de temps peuvent être omises.""Rapport complet""Utilisez cette option pour qu\'il y ait le moins d\'interférences système possible lorsque votre appareil ne répond pas ou qu\'il est trop lent, ou lorsque vous avez besoin de toutes les sections du rapport de bug. Aucune capture d\'écran supplémentaire ne peut être prise, et vous ne pouvez saisir aucune autre information."
- "{count,plural, =1{Capture d\'écran pour le rapport de bug dans # seconde.}one{Capture d\'écran pour le rapport de bug dans # seconde.}many{Capture d\'écran pour le rapport de bug dans # secondes.}other{Capture d\'écran pour le rapport de bug dans # secondes.}}"
+ "{count,plural, =1{Capture d\'écran pour le rapport de bug dans # seconde.}one{Capture d\'écran pour le rapport de bug dans # seconde.}other{Capture d\'écran pour le rapport de bug dans # secondes.}}""Capture d\'écran avec rapport de bug effectuée""Échec de la capture d\'écran avec le rapport de bug""Mode silencieux"
@@ -302,12 +305,12 @@
"accéder à votre agenda""SMS""envoyer et consulter des SMS"
- "Fichiers"
- "accéder aux fichiers de votre appareil"
- "Musique et audio"
- "accéder aux contenus musicaux et audio sur votre appareil"
- "Photos et vidéos"
- "accéder aux photos et aux vidéos sur votre appareil"
+ "Fichiers et documents"
+ "accéder aux fichiers et documents sur votre appareil"
+ "Musique et autres contenus audio"
+ "accès aux fichiers audio sur votre appareil"
+ "Photos et vidéos"
+ "accès aux fichiers image et vidéo sur votre appareil""Microphone""enregistrer des fichiers audio""Activité physique"
@@ -576,23 +579,22 @@
"Utilisez la biométrie ou le verrouillage de l\'écran pour continuer""Matériel biométrique indisponible""Authentification annulée"
- "Non reconnue"
+ "Non reconnu""Authentification annulée""Aucun code, schéma ni mot de passe n\'est défini""Erreur d\'authentification""Utiliser verrouillage écran""Utilisez le verrouillage de l\'écran pour continuer""Appuyez bien sur le lecteur"
- "Impossible de reconnaître l\'empreinte digitale. Réessayez."
+ "Impossible de reconnaître l\'empreinte digitale. Veuillez réessayer.""Nettoyez le lecteur d\'empreinte digitale et réessayez""Nettoyez le lecteur et réessayez""Appuyez bien sur le lecteur""Vous avez déplacé votre doigt trop lentement. Veuillez réessayer.""Essayez une autre empreinte""Trop de lumière"
- "Utilisation du bouton Marche/Arrêt détectée""Essayez de repositionner le doigt"
- "Changez légèrement de position à chaque fois"
+ "Changez légèrement de position chaque fois""Empreinte digitale non reconnue"
@@ -602,17 +604,16 @@
"Visage authentifié, veuillez appuyer sur \"Confirmer\"""Matériel d\'empreinte digitale indisponible.""Impossible de configurer l\'empreinte"
- "Délai de configuration de l\'empreinte dépassé. Réessayez."
+ "Délai de détection de l\'empreinte digitale expiré. Veuillez réessayer.""Opération d\'empreinte digitale annulée.""Opération d\'authentification par empreinte digitale annulée par l\'utilisateur."
- "Trop de tentatives. Utilisez plutôt le verrouillage de l\'écran."
- "Trop de tentatives. Utilisez plutôt le verrouillage de l\'écran."
- "Impossible de reconnaître l\'empreinte digitale. Réessayez."
+ "Trop de tentatives. Veuillez réessayer plus tard."
+ "Trop de tentatives. Lecteur d\'empreinte digitale désactivé."
+ "Veuillez réessayer.""Aucune empreinte digitale enregistrée.""Aucun lecteur d\'empreinte digitale n\'est installé sur cet appareil.""Capteur temporairement désactivé.""Impossible d\'utiliser le lecteur d\'empreinte digitale. Contactez un réparateur"
- "Bouton Marche/Arrêt appuyé""Doigt %d""Utiliser l\'empreinte digitale""Utiliser votre empreinte digitale ou le verrouillage de l\'écran"
@@ -627,39 +628,32 @@
"Appuyez pour supprimer votre empreinte faciale, puis ajoutez de nouveau votre visage""Configurer le déverrouillage par reconnaissance faciale""Déverrouillez votre téléphone en le regardant"
- "Pour utiliser le déverrouillage par reconnaissance faciale, activez ""Accès à l\'appareil photo"" dans Paramètres > Confidentialité"
+ "Pour utiliser Face Unlock, activez ""Accès à l\'appareil photo"" dans Paramètres > Confidentialité""Configurer d\'autres méthodes de déverrouillage""Appuyez pour ajouter une empreinte digitale""Déverrouillage par empreinte digitale""Impossible d\'utiliser le lecteur d\'empreinte digitale""Contactez un réparateur."
- "Impossible de créer l\'empreinte faciale. Réessayez."
+ "Capture du visage impossible. Réessayez.""Trop lumineux. Essayez de baisser la lumière."
- "Lumière insuffisante"
- "Éloignez le téléphone."
- "Rapprochez le téléphone"
- "Déplacez le téléphone vers le haut"
- "Déplacez le téléphone vers le bas"
- "Déplacez le téléphone vers la gauche"
- "Déplacez le téléphone vers la droite"
+ "Trop sombre. Essayez une éclairage plus lumineux."
+ "Éloignez le téléphone."
+ "Rapprochez le téléphone."
+ "Déplacez le téléphone vers le haut."
+ "Baissez le téléphone."
+ "Déplacez le téléphone vers la gauche."
+ "Déplacez le téléphone vers la droite.""Veuillez regarder plus directement l\'appareil."
- "Visage non détecté. Tenez votre téléphone à hauteur des yeux."
+ "Placez votre visage en face du téléphone.""Trop de mouvement. Ne bougez pas le téléphone.""Veuillez enregistrer à nouveau votre visage."
- "Visage non reconnu. Réessayez."
- "Déplacez légèrement votre tête."
- "Regardez plus directement votre téléphone"
- "Centrez bien votre visage devant votre téléphone"
- "Regardez plus directement votre téléphone"
+ "Impossible de reconnaître le visage. Réessayez."
+ "Ressemble à un visage existant, changez de pose."
+ "Tournez un peu moins la tête."
+ "Penchez un peu moins la tête."
+ "Tournez un peu moins la tête.""Retirez tout ce qui cache votre visage.""Nettoyez la partie supérieure de l\'écran, y compris la barre noire"
-
-
-
-
- "Impossible de créer votre empreinte faciale. Réessayez."
- "Lunettes sombres détectées. Votre visage doit être entièrement visible."
- "Masque détecté. Votre visage doit être entièrement visible.""Imposs. valider visage. Matériel non disponible."
@@ -918,21 +912,21 @@
"Appuyez sur \"Menu\" pour déverrouiller le téléphone ou appeler un numéro d\'urgence""Appuyez sur \"Menu\" pour déverrouiller le téléphone.""Dessinez un schéma pour déverrouiller le téléphone"
- "Urgence"
+ "Urgences""Retour à l\'appel""Combinaison correcte !""Veuillez réessayer.""Veuillez réessayer.""Déverr. pour autres fonctionnalités et données""Nombre maximal de tentatives de déverrouillage par reconnaissance faciale atteint"
- "Aucune SIM"
- "Aucune SIM dans la tablette."
- "Aucune SIM dans votre appareil Android TV."
- "Aucune SIM dans le téléphone."
- "Ajoutez une SIM."
- "La SIM est absente ou illisible. Ajoutez une SIM."
- "SIM inutilisable."
- "Votre SIM a été désactivée définitivement.\n Contactez votre opérateur de téléphonie mobile pour en obtenir une autre."
+ "Pas de carte SIM"
+ "Aucune carte SIM n\'est insérée dans la tablette."
+ "Aucune carte SIM n\'est installée dans votre appareil Android TV."
+ "Aucune carte SIM n\'est insérée dans le téléphone."
+ "Insérez une carte SIM."
+ "Carte SIM absente ou illisible. Insérez une carte SIM."
+ "Carte SIM inutilisable."
+ "Votre carte SIM a été définitivement désactivée.\n Veuillez contacter votre opérateur de téléphonie mobile pour en obtenir une autre.""Piste précédente""Piste suivante""Interrompre"
@@ -942,10 +936,10 @@
"Avance rapide""Appels d\'urgence uniquement""Réseau verrouillé"
- "SIM verrouillée par clé PUK."
+ "La carte SIM est verrouillée par clé PUK.""Veuillez consulter le guide de l\'utilisateur ou contacter le service client."
- "SIM verrouillée."
- "Déblocage de la SIM…"
+ "La carte SIM est verrouillée."
+ "Déblocage de la carte SIM...""Vous avez dessiné un schéma de déverrouillage incorrect à %1$d reprises.\n\nVeuillez réessayer dans %2$d secondes.""Vous avez saisi un mot de passe incorrect %1$d fois. \n\nVeuillez réessayer dans %2$d secondes.""Vous avez saisi un code PIN incorrect %1$d fois. \n\nVeuillez réessayer dans %2$d secondes."
@@ -1085,7 +1079,7 @@
"%1$s souhaite activer la fonctionnalité \"Explorer au toucher\". Lorsque celle-ci est activée, vous pouvez entendre ou voir les descriptions des éléments que vous sélectionnez, ou bien interagir avec le téléphone en effectuant certains gestes.""Il y a 1 mois""Il y a plus d\'un mois"
- "{count,plural, =1{Dernier jour (#)}one{Dernier jour (#)}many{# derniers jours}other{# derniers jours}}"
+ "{count,plural, =1{Dernier jour (#)}one{Dernier jour (#)}other{# derniers jours}}""Le mois dernier""Préc.""le %s"
@@ -1112,14 +1106,14 @@
"dans %d h""dans %d j""dans %d an"
- "{count,plural, =1{Il y a # minute}one{Il y a # minute}many{Il y a # minutes}other{Il y a # minutes}}"
- "{count,plural, =1{Il y a # heure}one{Il y a # heure}many{Il y a # heures}other{Il y a # heures}}"
- "{count,plural, =1{Il y a # jour}one{Il y a # jour}many{Il y a # jours}other{Il y a # jours}}"
- "{count,plural, =1{Il y a # an}one{Il y a # an}many{Il y a # ans}other{Il y a # ans}}"
- "{count,plural, =1{# minute}one{# minute}many{# minutes}other{# minutes}}"
- "{count,plural, =1{# heure}one{# heure}many{# heures}other{# heures}}"
- "{count,plural, =1{# jour}one{# jour}many{# jours}other{# jours}}"
- "{count,plural, =1{# an}one{# an}many{# ans}other{# ans}}"
+ "{count,plural, =1{Il y a # minute}one{Il y a # minute}other{Il y a # minutes}}"
+ "{count,plural, =1{Il y a # heure}one{Il y a # heure}other{Il y a # heures}}"
+ "{count,plural, =1{Il y a # jour}one{Il y a # jour}other{Il y a # jours}}"
+ "{count,plural, =1{Il y a # an}one{Il y a # an}other{Il y a # ans}}"
+ "{count,plural, =1{# minute}one{# minute}other{# minutes}}"
+ "{count,plural, =1{# heure}one{# heure}other{# heures}}"
+ "{count,plural, =1{# jour}one{# jour}other{# jours}}"
+ "{count,plural, =1{# an}one{# an}other{# ans}}""Problème vidéo""Impossible de lire cette vidéo en streaming sur cet appareil.""Impossible de lire la vidéo."
@@ -1162,8 +1156,8 @@
"Annuler""Attention""Chargement…"
- "ACTIVÉ"
- "DÉSACTIVÉ"
+ "OUI"
+ "NON""activé""désactivé""sélectionné"
@@ -1247,9 +1241,10 @@
"Préparation de %1$s en cours…""Lancement des applications…""Finalisation de la mise à jour."
+ "Poursuivre la configuration ?""Vous avez appuyé sur le bouton Marche/Arrêt, ce qui éteint généralement l\'écran.\n\nEssayez d\'appuyer doucement pendant la configuration de votre empreinte digitale."
- "Éteindre l\'écran pour achever la config."
- "Éteindre"
+ "Éteindre l\'écran"
+ "Poursuivre""Continuer de valider votre empreinte ?""Vous avez appuyé sur le bouton Marche/Arrêt, ce qui éteint généralement l\'écran.\n\nPour valider votre empreinte digitale, appuyez plus doucement.""Éteindre l\'écran"
@@ -1328,10 +1323,10 @@
"Pour modifier : Paramètres > Applications""Toujours autoriser""Ne jamais autoriser"
- "SIM retirée"
- "Le réseau mobile ne sera pas disponible avant le redémarrage avec une SIM valide."
+ "Carte SIM retirée"
+ "Le réseau mobile ne sera pas disponible avant le redémarrage avec une carte SIM valide insérée.""OK"
- "SIM ajoutée"
+ "Carte SIM ajoutée.""Redémarrez votre appareil pour accéder au réseau mobile.""Redémarrer""Activer le service de données mobiles"
@@ -1402,16 +1397,16 @@
"Appuyer pour configurer""Sélectionnez pour configurer""Vous devez peut-être reformater le périphérique. Appuyez pour l\'éjecter."
- "Pour stocker des photos, des vidéos, de la musique, etc."
+ "Pour transférer photos et fichiers""Parcourez les fichiers multimédias""Problème avec : %s""%s ne fonctionne pas""Appuyez sur la notification pour résoudre le problème""La %s est corrompue. Sélectionnez cette option pour résoudre le problème.""Vous devez peut-être reformater le périphérique. Appuyez pour l\'éjecter."
- "%s détectée"
+ "%s non compatible""%s ne fonctionne pas"
- "Appuyez pour configurer."
+ "Cet appareil n\'est pas compatible avec le support \"%s\". Appuyez ici pour le configurer dans un format accepté.""Sélectionnez pour configurer %s dans un format accepté.""Vous devez peut-être reformater le périphérique""Retrait inattendu de mémoire \"%s\""
@@ -1424,7 +1419,7 @@
"Éjecter""Parcourir""Changer de sortie"
- "Support \"%s\" manquant"
+ "Mémoire de stockage \"%s\" manquante""Insérez le périphérique""Transfert de l\'application %s""Déplacement des données en cours"
@@ -1506,7 +1501,7 @@
"Ignorer""Aucune correspondance""Rechercher sur la page"
- "{count,plural, =1{# correspondance}one{# sur {total}}many{# sur {total}}other{# sur {total}}}"
+ "{count,plural, =1{# correspondance}one{# sur {total}}other{# sur {total}}}""OK""Suppression de l\'espace de stockage partagé…""Partager"
@@ -1610,7 +1605,7 @@
"Téléviseur""Téléphone""Haut-parleurs de la station d\'accueil"
- "Appareil externe"
+ "HDMI""Écouteurs""USB""Système"
@@ -1643,7 +1638,7 @@
"La carte SIM est maintenant désactivée. Saisissez le code PUK pour continuer. Contactez votre opérateur pour en savoir plus.""Saisir le code PIN souhaité""Confirmer le code PIN souhaité"
- "Déblocage de la SIM…"
+ "Déblocage de la carte SIM en cours…""Le code PIN est erroné.""Veuillez saisir un code PIN comprenant entre quatre et huit chiffres.""La clé PUK doit contenir 8 chiffres."
@@ -1714,7 +1709,7 @@
"Pour changer de fonctionnalité, balayez l\'écran vers le haut avec trois doigts et appuyez de manière prolongée.""Agrandissement""Utilisateur actuel : %1$s"
- "Passage à %1$s..."
+ "Passage au profil : %1$s...""Déconnexion de %1$s…""Propriétaire""Invité"
@@ -1859,14 +1854,14 @@
"Pour réduire la consommation des données, l\'Économiseur de données empêche certaines applis d\'envoyer ou de recevoir des données en arrière-plan. Les applis que vous utiliserez pourront toujours accéder aux données, mais le feront moins fréquemment. Par exemple, les images pourront ne pas s\'afficher tant que vous n\'aurez pas appuyé dessus.""Activer l\'Économiseur de données ?""Activer"
- "{count,plural, =1{Pendant 1 minute (jusqu\'à {formattedTime})}one{Pendant # minute (jusqu\'à {formattedTime})}many{Pendant # minutes (jusqu\'à {formattedTime})}other{Pendant # minutes (jusqu\'à {formattedTime})}}"
- "{count,plural, =1{Pendant 1 min (jusqu\'à {formattedTime})}one{Pendant # min (jusqu\'à {formattedTime})}many{Pendant # min (jusqu\'à {formattedTime})}other{Pendant # min (jusqu\'à {formattedTime})}}"
- "{count,plural, =1{Pendant 1 heure (jusqu\'à {formattedTime})}one{Pendant # heure (jusqu\'à {formattedTime})}many{Pendant # heures (jusqu\'à {formattedTime})}other{Pendant # heures (jusqu\'à {formattedTime})}}"
- "{count,plural, =1{Pendant 1 h (jusqu\'à {formattedTime})}one{Pendant # h (jusqu\'à {formattedTime})}many{Pendant # h (jusqu\'à {formattedTime})}other{Pendant # h (jusqu\'à {formattedTime})}}"
- "{count,plural, =1{Pendant 1 minute}one{Pendant # minute}many{Pendant # minutes}other{Pendant # minutes}}"
- "{count,plural, =1{Pendant 1 min}one{Pendant # min}many{Pendant # min}other{Pendant # min}}"
- "{count,plural, =1{Pendant 1 heure}one{Pendant # heure}many{Pendant # heures}other{Pendant # heures}}"
- "{count,plural, =1{Pendant 1 h}one{Pendant # h}many{Pendant # h}other{Pendant # h}}"
+ "{count,plural, =1{Pendant 1 minute (jusqu\'à {formattedTime})}one{Pendant # minute (jusqu\'à {formattedTime})}other{Pendant # minutes (jusqu\'à {formattedTime})}}"
+ "{count,plural, =1{Pendant 1 min (jusqu\'à {formattedTime})}one{Pendant # min (jusqu\'à {formattedTime})}other{Pendant # min (jusqu\'à {formattedTime})}}"
+ "{count,plural, =1{Pendant 1 heure (jusqu\'à {formattedTime})}one{Pendant # heure (jusqu\'à {formattedTime})}other{Pendant # heures (jusqu\'à {formattedTime})}}"
+ "{count,plural, =1{Pendant 1 h (jusqu\'à {formattedTime})}one{Pendant # h (jusqu\'à {formattedTime})}other{Pendant # h (jusqu\'à {formattedTime})}}"
+ "{count,plural, =1{Pendant 1 minute}one{Pendant # minute}other{Pendant # minutes}}"
+ "{count,plural, =1{Pendant 1 min}one{Pendant # min}other{Pendant # min}}"
+ "{count,plural, =1{Pendant 1 heure}one{Pendant # heure}other{Pendant # heures}}"
+ "{count,plural, =1{Pendant 1 h}one{Pendant # h}other{Pendant # h}}""Jusqu\'à %1$s""Jusqu\'à %1$s""Jusqu\'à %1$s (alarme suivante)"
@@ -1924,7 +1919,6 @@
"Préférences régionales""Saisissez la langue""Suggestions"
- "Suggestions""Toutes les langues""Toutes les régions""Rechercher"
@@ -1942,19 +1936,18 @@
"Caméra indisponible""Continuez sur le téléphone""Micro indisponible"
- "Play Store indisponible""Paramètres Android TV indisponibles""Paramètres de la tablette indisponibles""Paramètres du téléphone indisponibles"
- "Actuellement, vous ne pouvez pas accéder à cette application sur votre %1$s. Essayez plutôt d\'y accéder sur votre appareil Android TV."
- "Actuellement, vous ne pouvez pas accéder à cette application sur votre %1$s. Essayez plutôt d\'y accéder sur votre tablette."
- "Actuellement, vous ne pouvez pas accéder à cette application sur votre %1$s. Essayez plutôt d\'y accéder sur votre téléphone."
+ "Impossible d\'accéder à cette application sur votre %1$s. Essayez plutôt d\'y accéder sur votre appareil Android TV."
+ "Impossible d\'accéder à cette application sur votre %1$s. Essayez plutôt d\'y accéder sur votre tablette."
+ "Impossible d\'accéder à cette application sur votre %1$s. Essayez plutôt d\'y accéder sur votre téléphone."
+ "Vous ne pouvez pas accéder à cette appli sur votre %1$s pour le moment. Essayez plutôt d\'y accéder sur votre appareil Android TV."
+ "Vous ne pouvez pas accéder à cette appli sur votre %1$s pour le moment. Essayez plutôt d\'y accéder sur votre tablette."
+ "Vous ne pouvez pas accéder à cette appli sur votre %1$s pour le moment. Essayez plutôt d\'y accéder sur votre téléphone.""Cette appli demande une sécurité supplémentaire. Essayez plutôt d\'y accéder sur votre appareil Android TV.""Cette appli demande une sécurité supplémentaire. Essayez plutôt d\'y accéder sur votre tablette.""Cette appli demande une sécurité supplémentaire. Essayez plutôt d\'y accéder sur votre téléphone."
- "Impossible d\'accéder à ces paramètres sur votre %1$s. Essayez plutôt sur votre appareil Android TV."
- "Impossible d\'accéder à ces paramètres sur votre %1$s. Essayez plutôt sur votre tablette."
- "Impossible d\'accéder à ces paramètres sur votre %1$s. Essayez plutôt sur votre téléphone.""Cette application a été conçue pour une ancienne version d\'Android et risque de ne pas fonctionner correctement. Recherchez des mises à jour ou contactez le développeur.""Rechercher une mise à jour""Vous avez de nouveaux messages"
@@ -1997,9 +1990,9 @@
"Enregistrer pour la saisie automatique""Le contenu ne peut pas être saisi automatiquement""Aucune suggestion de saisie automatique"
- "{count,plural, =1{1 suggestion de saisie automatique}one{# suggestion de saisie automatique}many{# suggestions de saisie automatique}other{# suggestions de saisie automatique}}"
+ "{count,plural, =1{1 suggestion de saisie automatique}one{# suggestion de saisie automatique}other{# suggestions de saisie automatique}}""Enregistrer dans ""%1$s"" ?"
- "Enregistrer le %1$s dans ""%2$s"" ?"
+ "Enregistrer la %1$s dans ""%2$s"" ?""Enregistrer %1$s et %2$s dans ""%3$s"" ?""Enregistrer %1$s, %2$s et %3$s dans ""%4$s"" ?""Mettre à jour cet élément dans ""%1$s"" ?"
@@ -2047,21 +2040,21 @@
"Autoriser %s à accéder à tous les journaux de l\'appareil ?""Autoriser un accès unique""Ne pas autoriser"
- "Les journaux enregistrent ce qui se passe sur votre appareil. Les applis peuvent les utiliser pour rechercher et résoudre les problèmes.\n\nCertains journaux pouvant contenir des infos sensibles, autorisez uniquement les applis de confiance à accéder à tous les journaux de l\'appareil. \n\nSi vous refusez à cette appli l\'accès à tous les journaux de l\'appareil, elle a quand même accès aux siens. Le fabricant de l\'appareil peut accéder à certains journaux ou certaines infos sur votre appareil."
- "Les journaux enregistrent ce qui se passe sur votre appareil. Les applis peuvent les utiliser pour rechercher et résoudre des problèmes.\n\nCertains journaux pouvant contenir des infos sensibles, autorisez uniquement les applis de confiance à accéder à tous les journaux de l\'appareil. \n\nSi vous refusez à cette appli l\'accès à tous les journaux de l\'appareil, elle a quand même accès aux siens. Le fabricant de l\'appareil peut accéder à certains journaux ou certaines infos sur votre appareil.\n\nEn savoir plus sur g.co/android/devicelogs"
+ "Les journaux enregistrent ce qui se passe sur votre appareil. Les applis peuvent les utiliser pour rechercher et résoudre les problèmes.\n\nCertains journaux pouvant contenir des infos sensibles, autorisez uniquement les applis de confiance à accéder à tous les journaux de l\'appareil. \n\nSi vous refusez à cette appli l\'accès à tous les journaux de l\'appareil, elle a quand même accès aux siens. Le fabricant de l\'appareil peut accéder à certains journaux ou certaines infos sur votre appareil. En savoir plus""Ne plus afficher""%1$s souhaite afficher des éléments de %2$s""Modifier"
- "Les appels et les notifications vibreront"
- "Les appels et les notifications seront silencieux"
+ "Vibreur pour les appels et les notifications"
+ "Sons désactivés pour les appels et les notifications""Modifications du système""Ne pas déranger""Nouveau : Le mode Ne pas déranger masque les notifications""Appuyez pour en savoir plus et pour modifier les paramètres.""Le mode Ne pas déranger a été modifié""Appuyez pour vérifier les contenus bloqués."
- "Vérifiez les paramètres de notification"
- "À partir d\'Android 13, les applications que vous installez ont besoin de votre autorisation pour envoyer des notifications. Appuyez pour modifier cette autorisation pour les applications déjà installées."
+ "Consulter les paramètres de notification"
+
+ "Plus tard""Fermer""Système"
@@ -2108,7 +2101,7 @@
"Présentation %1$s""Le Bluetooth restera activé en mode Avion""Chargement…"
- "{count,plural, =1{{file_name} + # fichier}one{{file_name} + # fichier}many{{file_name} + # fichiers}other{{file_name} + # fichiers}}"
+ "{count,plural, =1{{file_name} + # fichier}one{{file_name} + # fichier}other{{file_name} + # fichiers}}""Aucune recommandation de personnes avec lesquelles effectuer un partage""Liste des applications""Cette application n\'a pas reçu l\'autorisation d\'enregistrer des contenus audio, mais peut le faire via ce périphérique USB."
@@ -2289,6 +2282,5 @@
"Vérifier les applis actives""Impossible d\'accéder à l\'appareil photo du téléphone depuis votre %1$s""Impossible d\'accéder à l\'appareil photo de la tablette depuis votre %1$s"
- "Impossible d\'accéder à cela pendant le streaming. Essayez plutôt sur votre téléphone."
- "Paramètre système par défaut"
+ "Langue du système"
diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml
index 993c60933825b52b9d0b9380f16274c64c714d0d..65935f5952122a886d7ec818eb1c3d493b6fb30f 100644
--- a/core/res/res/values-gl/strings.xml
+++ b/core/res/res/values-gl/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Sen título>""(Sen número de teléfono)"
@@ -28,7 +33,6 @@
"Correo de voz""MSISDN1""Problema de conexión ou código MMI non válido."
- "Función non compatible.""A operación está restrinxida a números de marcación fixa.""Non se pode cambiar a configuración do desvío de chamadas desde o teléfono mentres estás en itinerancia.""Activouse o servizo."
@@ -43,8 +47,8 @@
"Os PIN que escribiches non coinciden.""Escribe un PIN que teña entre 4 e 8 números.""Escribe un PUK que teña 8 números ou máis."
- "A SIM está bloqueada mediante PUK. Escribe o código PUK para desbloqueala."
- "Escribe o PUK2 para desbloquear a SIM."
+ "A tarxeta SIM está bloqueada con código PUK. Escribe o código PUK para desbloqueala."
+ "Escribe o código PUK2 para desbloquear a tarxeta SIM.""Non é correcto. Activa o bloqueo da SIM/RUIM."Quédanche %d intentos antes de que se bloquee a SIM.
@@ -209,7 +213,7 @@
"Opcións da tableta""Opcións de Android TV""Opcións do teléfono"
- "Modo silencioso"
+ "Modo de silencio""Activar a conexión sen fíos""Desactivar a conexión sen fíos""Bloqueo de pantalla"
@@ -253,7 +257,7 @@
"{count,plural, =1{Vaise facer unha captura de pantalla para o informe de erro dentro de # segundo.}other{Vaise facer unha captura de pantalla para o informe de erro dentro de # segundos.}}""Realizouse a captura de pantalla co informe de erros""Produciuse un erro ao realizar a captura de pantalla co informe de erros"
- "Modo silencioso"
+ "Modo de silencio""O son está desactivado""O son está activado""Modo avión"
@@ -301,12 +305,12 @@
"acceder ao teu calendario""SMS""enviar e consultar mensaxes de SMS"
- "Ficheiros"
- "acceder a ficheiros no teu dispositivo"
- "Música e audio"
- "acceder a música e audio do dispositivo"
- "Fotos e vídeos"
- "acceder a fotos e vídeos do dispositivo"
+ "Ficheiros e documentos"
+ "acceder a ficheiros e documentos do dispositivo"
+ "Música e outro contido de audio"
+ "acceder a ficheiros de audio do teu dispositivo"
+ "Fotos e vídeos"
+ "acceder a ficheiros de imaxe e de vídeo do teu dispositivo""Micrófono""gravar audio""Actividade física"
@@ -582,14 +586,13 @@
"Usar credencial do dispositivo""Desbloquea a pantalla para continuar""Preme o sensor con firmeza"
- "Non se puido recoñecer a impresión dixital. Téntao de novo."
+ "Non se puido procesar a impresión dixital. Téntao de novo.""Limpa o sensor de impresión dixital e téntao de novo""Limpa o sensor e téntao de novo""Preme o sensor con firmeza""O dedo moveuse demasiado lento. Téntao de novo.""Proba con outra impresión dixital""Hai demasiada luz"
- "Premeuse o botón de acendido""Proba a axustar a impresión dixital""Cambia lixeiramente a posición do dedo en cada intento"
@@ -601,17 +604,16 @@
"Autenticouse a cara, preme Confirmar""Hardware de impresión dixital non dispoñible.""Non se puido configurar a impresión dixital"
- "Esgotouse o tempo para configurar a impresión dixital Téntao de novo."
+ "Esgotouse o tempo de espera da impresión dixital. Téntao de novo.""Cancelouse a operación da impresión dixital.""O usuario cancelou a operación da impresión dixital."
- "Houbo demasiados intentos. Mellor usa o bloqueo de pantalla."
- "Demasiados intentos. Mellor usa o bloqueo de pantalla."
- "Non se pode procesar a impresión dixital Téntao de novo."
+ "Demasiados intentos. Téntao de novo máis tarde."
+ "Demasiados intentos. Desactivouse o sensor de impresión dixital."
+ "Téntao de novo.""Non se rexistraron impresións dixitais.""Este dispositivo non ten sensor de impresión dixital.""Desactivouse o sensor temporalmente.""Non se puido usar o sensor de impresión dixital. Visita un provedor de reparacións"
- "Premeuse o botón de acendido""Dedo %d""Utilizar impresión dixital""Utilizar impresión dixital ou credencial do dispositivo"
@@ -632,33 +634,26 @@
"Desbloqueo dactilar""Non se puido usar o sensor de impresión dixital""Visita un provedor de reparacións."
- "Non se puido crear o modelo facial. Téntao de novo."
+ "Sen datos faciais exactos. Téntao de novo.""Hai demasiada iluminación. Proba cunha máis suave."
- "Non hai luz suficiente"
- "Afasta o teléfono"
- "Achega o teléfono"
- "Sube o teléfono"
- "Baixa o teléfono"
- "Move o teléfono cara á esquerda"
- "Move o teléfono cara á dereita"
+ "Hai demasiada escuridade. Proba con máis luz."
+ "Separa máis o teléfono."
+ "Achega máis o teléfono."
+ "Eleva o teléfono."
+ "Baixa o teléfono."
+ "Move o teléfono cara á esquerda."
+ "Move o teléfono cara á dereita.""Mira o dispositivo de forma máis directa."
- "Non se pode ver a túa cara. Coloca o teléfono á altura dos ollos."
+ "Coloca a cara directamente diante do teléfono.""Demasiado movemento. Non movas o teléfono.""Volve rexistrar a túa cara."
- "Non se recoñeceu a cara. Téntao de novo."
- "Cambia lixeiramente a posición da cabeza"
- "Mira o teléfono de forma máis directa"
- "Mira o teléfono de forma máis directa"
- "Mira o teléfono de forma máis directa"
+ "Xa non se pode recoñecer a cara. Téntao de novo."
+ "É moi similar. Cambia a pose."
+ "Xira a cabeza un pouco menos."
+ "Inclina a cabeza un pouco menos."
+ "Xira a cabeza un pouco menos.""Quita todo o que oculte a túa cara.""Limpa a parte superior da pantalla, incluída a barra de cor negra"
-
-
-
-
- "Non se puido crear o modelo facial. Téntao de novo."
- "Detectáronse lentes escuras. A cara debe poder verse por completo."
- "Detectouse unha máscara. A cara debe poder verse por completo.""Sen verificar a cara. Hardware non dispoñible."
@@ -924,14 +919,14 @@
"Téntao de novo""Desbloquea para gozar todas as funcións e datos""Superouse o número máximo de intentos de desbloqueo facial"
- "Non hai ningunha SIM"
- "Non hai ningunha SIM na tableta."
- "Non hai ningunha SIM no dispositivo Android TV."
- "Non hai ningunha SIM no teléfono."
- "Engade unha SIM."
- "A SIM falta ou non se pode ler. Engade unha."
- "A SIM non se pode usar."
- "A SIM desactivouse permanentemente.\n Ponte en contacto co teu fornecedor de servizos sen fíos para conseguir outra."
+ "Non hai ningunha tarxeta SIM"
+ "Non hai ningunha tarxeta SIM na tableta."
+ "Non hai ningunha tarxeta SIM no dispositivo Android TV."
+ "Non hai ningunha tarxeta SIM no teléfono."
+ "Insire unha tarxeta SIM."
+ "Falta a tarxeta SIM ou non se pode ler. Insire unha tarxeta SIM."
+ "Tarxeta SIM inutilizable"
+ "A túa tarxeta SIM desactivouse permanentemente.\n Ponte en contacto co teu provedor de servizos sen fíos para conseguir outra tarxeta SIM.""Pista anterior""Seguinte pista""Pausar"
@@ -941,10 +936,10 @@
"Avance rápido""Só chamadas de emerxencia""Bloqueada pola rede"
- "A SIM está bloqueada mediante PUK."
+ "A tarxeta SIM está bloqueada con código PUK.""Consulta a guía para usuarios ou ponte en contacto co servizo de asistencia ao cliente."
- "A SIM está bloqueada."
- "Desbloqueando SIM…"
+ "A tarxeta SIM está bloqueada."
+ "Desbloqueando tarxeta SIM…""Debuxaches incorrectamente o padrón de desbloqueo %1$d veces. \n\nTéntao de novo en %2$d segundos.""Introduciches o contrasinal incorrectamente %1$d veces. \n\nTéntao de novo en %2$d segundos.""Introduciches o PIN incorrectamente %1$d veces. \n\nTéntao de novo en %2$d segundos."
@@ -1246,9 +1241,10 @@
"Preparando %1$s.""Iniciando aplicacións.""Está finalizando o arranque"
+ "Queres continuar coa configuración?""Premiches o botón de acendido, o que adoita facer que se apague a pantalla.\n\nProba a dar un toque suave namentres configuras a impresión dixital."
- "Apaga a pantalla e acaba a configuración"
- "Desactivar"
+ "Desactivar pantalla"
+ "Seguir configurando""Queres seguir verificando a impresión?""Premiches o botón de acendido, o que adoita facer que se apague a pantalla.\n\nProba a dar un toque suave para verificar a impresión dixital.""Desactivar pantalla"
@@ -1327,10 +1323,10 @@
"Mudar en Configuración > Aplicacións""Permitir sempre""Non permitir nunca"
- "Quitouse unha SIM"
- "A rede de telefonía móbil non estará dispoñible ata que reinicies o dispositivo cunha SIM válida."
+ "Extraeuse a tarxeta SIM"
+ "A rede móbil non estará dispoñible ata que reinicies o dispositivo cunha tarxeta SIM válida inserida.""Feito"
- "Engadiuse unha SIM"
+ "Engadiuse unha tarxeta SIM""Reinicia o dispositivo para acceder á rede móbil.""Reiniciar""Activar o servizo móbil"
@@ -1401,16 +1397,16 @@
"Toca para configurar""Selecciona o soporte para configuralo""Pode ser necesario que formates de novo o dispositivo. Toca para expulsalo."
- "Para almacenar fotos, vídeos, música e moito máis"
+ "Para transferir fotos e contidos multimedia""Explora os ficheiros do soporte""Produciuse un problema coa %s""O dispositivo (%s) non funciona""Toca para solucionalo""A %s está danada. Selecciona para corrixir o problema.""Pode ser necesario que formates de novo o dispositivo. Toca para expulsalo."
- "Detectouse o seguinte: %s"
+ "%s incompatible""O dispositivo (%s) non funciona"
- "Toca para configurar"
+ "Este dispositivo non é compatible con esta %s. Toca para configurala nun formato compatible.""Selecciona %s para configurar o soporte cun formato compatible.""Pode ser necesario que formates de novo o dispositivo""Retirouse a %s de forma inesperada"
@@ -1609,7 +1605,7 @@
"Televisión""Teléfono""Conectar altofalantes á base"
- "Dispositivo externo"
+ "HDMI""Auriculares""USB""Sistema"
@@ -1642,7 +1638,7 @@
"Agora a tarxeta SIM está desactivada. Introduce o código PUK para continuar. Ponte en contacto co operador para obter información detallada.""Introduce o código PIN desexado""Confirma o código PIN desexado"
- "Desbloqueando SIM…"
+ "Desbloqueando tarxeta SIM…""Código PIN incorrecto""Escribe un PIN que teña entre 4 e 8 números.""O código PUK debe ter 8 números."
@@ -1923,7 +1919,6 @@
"Preferencia de rexión""Escribe o nome do idioma""Suxeridos"
- "Rexións suxeridas""Todos os idiomas""Todas as rexións""Buscar"
@@ -1941,19 +1936,18 @@
"A cámara non está dispoñible""Continúa no teléfono""O micrófono non está dispoñible"
- "Play Store non está dispoñible""A configuración de Android TV non está dispoñible""A configuración da tableta non está dispoñible""A configuración do teléfono non está dispoñible"
- "Nestes momentos, non podes acceder a este contido desde o teu dispositivo (%1$s). Proba a facelo desde o dispositivo Android TV."
- "Nestes momentos, non podes acceder a este contido desde o teu dispositivo (%1$s). Proba a facelo desde a tableta."
- "Nestes momentos, non podes acceder a este contido desde o teu dispositivo (%1$s). Proba a facelo desde o teléfono."
- "Esta aplicación solicita seguranza adicional. Proba a facelo desde o dispositivo Android TV."
+ "Non se puido acceder a este contido desde o teu dispositivo (%1$s). Proba a facelo desde o dispositivo con Android TV."
+ "Non se puido acceder a este contido desde o teu dispositivo (%1$s). Proba a facelo desde a tableta."
+ "Non se puido acceder a este contido desde o teu dispositivo (%1$s). Proba a facelo desde o teléfono."
+ "Nestes momentos, non podes acceder a este contido desde o teu dispositivo (%1$s). Proba a facelo desde o dispositivo con Android TV."
+ "Nestes momentos, non podes acceder a este contido desde o teu dispositivo (%1$s). Proba a facelo desde a tableta."
+ "Nestes momentos, non podes acceder a este contido desde o teu dispositivo (%1$s). Proba a facelo desde o teléfono."
+ "Esta aplicación solicita seguranza adicional. Proba a facelo desde o dispositivo con Android TV.""Esta aplicación solicita seguranza adicional. Proba a facelo desde a tableta.""Esta aplicación solicita seguranza adicional. Proba a facelo desde o teléfono."
- "Non se puido acceder a este contido desde o teu dispositivo (%1$s). Proba a facelo desde o dispositivo Android TV."
- "Non se puido acceder a este contido desde o teu dispositivo (%1$s). Proba a facelo desde a tableta."
- "Non se puido acceder a este contido desde o teu dispositivo (%1$s). Proba a facelo desde o teléfono.""Esta aplicación deseñouse para unha versión anterior de Android e quizais non funcione correctamente. Proba a buscar actualizacións ou contacta co programador.""Buscar actualización""Tes mensaxes novas"
@@ -2046,8 +2040,7 @@
"Queres permitir que a aplicación %s acceda a todos os rexistros do dispositivo?""Permitir acceso unha soa vez""Non permitir"
- "Os rexistros do dispositivo dan conta do que ocorre neste. As aplicacións poden usalos para buscar problemas e solucionalos.\n\nAlgúns poden conter información confidencial, polo que che recomendamos que só permitas que accedan a todos os rexistros do dispositivo as aplicacións nas que confíes. \n\nEsta aplicación pode acceder aos seus propios rexistros aínda que non lle permitas acceder a todos. É posible que o fabricante do dispositivo teña acceso a algúns rexistros ou á información do teu dispositivo."
- "Os rexistros do dispositivo dan conta do que ocorre neste. As aplicacións poden usalos para buscar problemas e solucionalos.\n\nAlgúns poden conter información confidencial, polo que che recomendamos que só permitas que accedan a todos os rexistros do dispositivo as aplicacións nas que confíes. \n\nEsta aplicación pode acceder aos seus propios rexistros aínda que non lle permitas acceder a todos. É posible que o fabricante do dispositivo teña acceso a algúns rexistros ou á información do teu dispositivo.\n\nConsulta máis información en g.co/android/devicelogs."
+ "Os rexistros do dispositivo dan conta do que ocorre neste. As aplicacións poden usalos para buscar problemas e solucionalos.\n\nAlgúns poden conter información confidencial, polo que che recomendamos que só permitas que accedan a todos os rexistros do dispositivo as aplicacións nas que confíes. \n\nEsta aplicación pode acceder aos seus propios rexistros aínda que non lle permitas acceder a todos. É posible que o fabricante do dispositivo teña acceso a algúns rexistros ou á información do teu dispositivo. Máis información""Non amosar outra vez""%1$s quere mostrar fragmentos de aplicación de %2$s""Editar"
@@ -2060,7 +2053,8 @@
"O modo Non molestar cambiou""Toca para comprobar o contido bloqueado.""Consulta a configuración de notificacións"
- "Desde Android 13, as aplicacións que instales necesitan o teu permiso para enviar notificacións. Toca para cambiar este permiso nas aplicacións que xa teñas."
+
+ "Lembrarmo máis tarde""Pechar""Sistema"
@@ -2088,7 +2082,7 @@
"A tableta non ten suficiente batería. Xa non se restrinxirán as funcións.""O dispositivo non ten suficiente batería. Xa non se restrinxirán as funcións.""Cartafol"
- "Aplicación para Android"
+ "Aplicación Android""Ficheiro""Ficheiro %1$s""Audio"
@@ -2110,7 +2104,7 @@
"{count,plural, =1{{file_name} + # ficheiro}other{{file_name} + # ficheiros}}""Non hai recomendacións de persoas coas que compartir contido""Lista de aplicacións"
- "Esta aplicación non está autorizada a realizar gravacións, pero podería capturar audio a través deste dispositivo USB."
+ "Esta aplicación non está autorizada a realizar gravacións, pero pode capturar audio a través deste dispositivo USB.""Inicio""Volver""Aplicacións recentes"
@@ -2268,7 +2262,7 @@
"Novas opcións de configuración de ampliación""Xa podes ampliar parte da pantalla""Activar en Configuración"
- "Pechar"
+ "Ignorar""Desbloquea o micrófono do dispositivo""Desbloquea a cámara do dispositivo""Para <b>%s</b> e todas as aplicacións e servizos"
@@ -2288,6 +2282,5 @@
"Comprobar aplicacións activas""Non se puido acceder á cámara do teléfono desde o teu dispositivo (%1$s)""Non se puido acceder á cámara da tableta desde o teu dispositivo (%1$s)"
- "Non se puido acceder a este contido durante a reprodución en tempo real. Téntao desde o teléfono."
- "Opción predeterminada do sistema"
+ "Idioma do sistema"
diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml
index 5ace1b939355cfaacee1e875e87dd74fe83169a5..ca127530e92fec945137838c4847358b5cd909b6 100644
--- a/core/res/res/values-gu/strings.xml
+++ b/core/res/res/values-gu/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<અનામાંકિત>""(કોઈ ફોન નંબર નથી)"
@@ -28,7 +33,6 @@
"વૉઇસમેઇલ""MSISDN1""કનેક્શન સમસ્યા અથવા અમાન્ય MMI કોડ."
- "સુવિધાને સપોર્ટ આપવામાં આવતો નથી.""ઑપરેશન ફક્ત સ્થિર ડાયલિંગ નંબર્સ પર પ્રતિબંધિત છે.""તમે રોમિંગમાં હો તે વખતે તમારા ફોન પરથી કૉલ ફૉરવર્ડિગ સેટિંગ બદલી શકતાં નથી.""સેવા સક્ષમ હતી."
@@ -43,8 +47,8 @@
"તમે લખેલ પિન મેળ ખાતો નથી.""એક પિન લખો જે 4 થી 8 સંખ્યાનો છે.""એક PUK લખો કે જે 8 અંક કે તેથી લાંબો હોય."
- "તમારું સિમ કાર્ડ PUK-લૉક કરેલું છે. તેને અનલૉક કરવા માટે PUK કોડ ટાઇપ કરો."
- "સિમ કાર્ડ અનલૉક કરવા માટે PUK2 ટાઇપ કરો."
+ "તમારો સિમ કાર્ડ, PUK-લૉક કરેલ છે. તેને અનલૉક કરવા માટે PUK કોડ લખો."
+ "સિમ કાર્ડને અનાવરોધિત કરવા માટે PUK2 લખો.""અસફળ, સિમ/RUIM લૉક સક્ષમ કરો."સિમ લૉક થાય તે પહેલાં તમારી પાસે %d પ્રયત્ન બાકી છે.
@@ -87,7 +91,7 @@
"કૉલ ફૉર્વર્ડિંગ""કટોકટી કૉલબૅક મોડ""મોબાઇલ ડેટાની સ્થિતિ"
- "SMS મેસેજ"
+ "SMS સંદેશા""વૉઇસમેઇલ સંદેશા""વાઇ-ફાઇ કૉલિંગ""સિમનું સ્ટેટસ"
@@ -301,12 +305,12 @@
"તમારા કેલેન્ડરને ઍક્સેસ કરવાની""SMS""SMS સંદેશા મોકલવાની અને જોવાની"
- "ફાઇલો"
- "તમારા ડિવાઇસ પરની ફાઇલો ઍક્સેસ કરો"
- "મ્યુઝિક અને ઑડિયો"
- "તમારા ડિવાઇસ પર મ્યુઝિક અને ઑડિયો ઍક્સેસ કરવા માટે"
- "ફોટા અને વીડિયો"
- "તમારા ડિવાઇસ પર ફોટા અને વીડિયો ઍક્સેસ કરવા માટે"
+ "ફાઇલો અને દસ્તાવેજો"
+ "તમારા ડિવાઇસ પર ફાઇલો અને દસ્તાવેજો ઍક્સેસ કરો"
+ "મ્યુઝિક અને અન્ય ઑડિયો"
+ "તમારા ડિવાઇસ પર ઑડિયો ફાઇલો ઍક્સેસ કરવા માટે"
+ "ફોટા અને વીડિયો"
+ "તમારા ડિવાઇસ પર છબીઓ અને વીડિયો ફાઇલો ઍક્સેસ કરવા માટે""માઇક્રોફોન""ઑડિઓ રેકોર્ડ કરવાની""શારીરિક પ્રવૃત્તિ"
@@ -582,14 +586,13 @@
"સ્ક્રીન લૉકનો ઉપયોગ કરો""આગળ વધવા માટે તમારું સ્ક્રીન લૉક દાખલ કરો""સેન્સર પર જોરથી દબાવો"
- "ફિંગરપ્રિન્ટ ઓળખી શકતા નથી. ફરી પ્રયાસ કરો."
+ "ફિંગરપ્રિન્ટ પ્રક્રિયા કરી શકાઈ નથી. કૃપા કરીને ફરી પ્રયાસ કરો.""ફિંગરપ્રિન્ટ સેન્સર સાફ કરો અને ફરી પ્રયાસ કરો""સેન્સર સાફ કરો અને ફરી પ્રયાસ કરો""સેન્સર પર જોરથી દબાવો""આંગળી બહુ જ ધીમેથી ખસેડી. કૃપા કરીને ફરી પ્રયાસ કરો.""અન્ય ફિંગરપ્રિન્ટ અજમાવી જુઓ""અતિશય પ્રકાશિત"
- "પાવર બટન દબાવ્યું હોવાની જાણ થઈ છે""ગોઠવણી કરી જુઓ""દરેક વખતે સ્કૅનર પર તમારી આંગળીની સ્થિતિ સહેજ બદલતા રહો"
@@ -601,17 +604,16 @@
"ચહેરા પ્રમાણિત, કૃપા કરીને કન્ફર્મ કરો""ફિંગરપ્રિન્ટ હાર્ડવેર ઉપલબ્ધ નથી.""ફિંગરપ્રિન્ટનું સેટઅપ કરી શકતા નથી"
- "ફિંગરપ્રિન્ટનું સેટઅપ કરવાનો સમય સમાપ્ત થઈ ગયો. ફરી પ્રયાસ કરો."
+ "ફિંગરપ્રિન્ટનો સમય બાહ્ય થયો. ફરી પ્રયાસ કરો.""ફિંગરપ્રિન્ટ ઓપરેશન રદ કર્યું.""ફિંગરપ્રિન્ટ ચકાસવાની પ્રક્રિયા વપરાશકર્તાએ રદ કરી."
- "ઘણા બધા પ્રયાસો. તેને બદલે સ્ક્રીન લૉકનો ઉપયોગ કરો."
- "ઘણા બધા પ્રયાસો. વિકલ્પ તરીકે સ્ક્રીન લૉકનો ઉપયોગ કરો."
- "ફિંગરપ્રિન્ટની પ્રક્રિયા કરી શકતા નથી. ફરી પ્રયાસ કરો."
+ "ઘણા બધા પ્રયત્નો. પછીથી ફરી પ્રયાસ કરો."
+ "ઘણા વધુ પ્રયત્નો. ફિંગરપ્રિન્ટ સેન્સર અક્ષમ કરવામાં આવ્યું છે."
+ "ફરી પ્રયાસ કરો.""કોઈ ફિંગરપ્રિન્ટની નોંધણી કરવામાં આવી નથી.""આ ડિવાઇસમાં કોઈ ફિંગરપ્રિન્ટ સેન્સર નથી.""સેન્સર હંગામી રૂપે બંધ કર્યું છે.""ફિંગરપ્રિન્ટ સેન્સરનો ઉપયોગ કરી શકાતો નથી. રિપેર કરવાની સેવા આપતા પ્રદાતાની મુલાકાત લો"
- "પાવર બટન દબાવવામાં આવ્યું""આંગળી %d""ફિંગરપ્રિન્ટનો ઉપયોગ કરો""ફિંગરપ્રિન્ટ અથવા સ્ક્રીન લૉકનો ઉપયોગ કરો"
@@ -632,33 +634,26 @@
"ફિંગરપ્રિન્ટ અનલૉક""ફિંગરપ્રિન્ટ સેન્સરનો ઉપયોગ કરી શકાતો નથી""રિપેર કરવાની સેવા આપતા પ્રદાતાની મુલાકાત લો."
- "તમારા ચહેરાનું મૉડલ ન બનાવી શકાય. ફરી પ્રયાસ કરો."
+ "ચહેરાનો સચોટ ડેટા કૅપ્ચર ન થયો. ફરી પ્રયાસ કરો.""અતિશય પ્રકાશિત. થોડો હળવો પ્રકાશ અજમાવી જુઓ."
- "પૂરતો પ્રકાશ નથી"
- "ફોનને વધુ દૂર લઈ જાઓ"
- "ફોનને વધુ નજીક લાવો"
- "ફોનને વધુ ઊંચે લઈ જાઓ"
- "ફોનને થોડો નીચે લઈ જાઓ"
- "ફોનને તમારી ડાબી બાજુએ લઈ જાઓ"
- "ફોનને તમારી જમણી બાજુએ લઈ જાઓ"
+ "અતિશય ઘેરી. વધુ ઝળહળતો પ્રકાશ અજમાવો"
+ "ફોનને વધુ દૂર ખસેડો."
+ "ફોનને વધુ નજીક લાવો."
+ "ફોનને વધુ ઊંચે ખસેડો."
+ "ફોનને થોડો નીચે ખસેડો."
+ "ફોનને ડાબી બાજુ ખસેડો."
+ "ફોનને જમણી બાજુ ખસેડો.""કૃપા કરીને તમારા ડિવાઇસ તરફ સીધું જુઓ."
- "તમારો ચહેરો દેખાતો નથી. તમારા ફોનને આંખના લેવલ પર પકડી રાખો."
+ "તમારો ચહેરો તમારા ફોનની બિલકુલ સામે રાખો.""ડિવાઇસ અસ્થિર છે. ફોનને સ્થિર રાખો.""કૃપા કરીને તમારા ચહેરાની ફરી નોંધણી કરાવો."
- "ચહેરો ઓળખી શકતા નથી. ફરી પ્રયાસ કરો."
- "તમારા માથાની સ્થિતિ સહેજ બદલો"
- "વધારે પ્રમાણમાં સીધું તમારા ફોન તરફ જુઓ"
- "વધારે પ્રમાણમાં સીધું તમારા ફોન તરફ જુઓ"
- "વધારે પ્રમાણમાં સીધું તમારા ફોન તરફ જુઓ"
+ "ચહેરો ઓળખી શકાતો નથી. ફરી પ્રયાસ કરો."
+ "ઘણી સમાનતા ધરાવે છે, કૃપા કરીને તમારો પોઝ બદલો."
+ "તમારું માથું થોડું ફેરવો."
+ "તમારું માથું થોડું ઓછું ટિલ્ટ કરો."
+ "તમારું માથું થોડું ઓછું ફેરવો.""તમારા ચહેરાને છુપાવતી કંઈપણ વસ્તુ દૂર કરો.""કાળી પટ્ટી સહિત, તમારી સ્ક્રીનની ટોચ સાફ કરો"
-
-
-
-
- "તમારા ચહેરાનું મૉડલ ન બનાવી શકાય. ફરી પ્રયાસ કરો."
- "કાળા ચશ્માંની ભાળ મળી. તમારો આખો ચહેરો દેખાવો આવશ્યક છે."
- "ચહેરો ઢંકાયેલો હોવાની ભાળ મળી. તમારો આખો ચહેરો દેખાવો આવશ્યક છે.""ચહેરો ચકાસી શકાતો નથી. હાર્ડવેર ઉપલબ્ધ નથી."
@@ -924,14 +919,14 @@
"ફરી પ્રયાસ કરો""તમામ સુવિધાઓ અને ડેટા માટે અનલૉક કરો""મહત્તમ ફેસ અનલૉક પ્રયાસો ઓળંગાયા"
- "કોઈ સિમ કાર્ડ નથી"
- "ટૅબ્લેટમાં કોઈ સિમ કાર્ડ નથી."
- "તમારા Android TV ડિવાઇસમાં કોઈ સિમ કાર્ડ નથી."
- "ફોનમાં કોઈ સિમ કાર્ડ નથી."
- "સિમ કાર્ડ ઉમેરો."
- "સિમ કાર્ડ ખૂટે છે અથવા વાંચી શકાય એવું નથી. સિમ કાર્ડ ઉમેરો."
- "ઉપયોગમાં ન લઈ શકાતું સિમ કાર્ડ."
- "તમારું સિમ કાર્ડ કાયમ માટે નિષ્ક્રિય કરવામાં આવ્યું છે.\n બીજા સિમ કાર્ડ માટે તમારા વાયરલેસ સેવા પ્રદાતાનો સંપર્ક કરો."
+ "કોઈ સિમ કાર્ડ નથી"
+ "ટૅબ્લેટમાં સિમ કાર્ડ નથી."
+ "તમારા Android TV ડિવાઇસમાં કોઈ સિમ કાર્ડ નથી."
+ "ફોનમાં સિમ કાર્ડ નથી."
+ "એક સિમ કાર્ડ દાખલ કરો."
+ "સિમ કાર્ડ ખૂટે છે અથવા વાંચન યોગ્ય નથી. સિમ કાર્ડ દાખલ કરો."
+ "બિનઉપયોગી સિમ કાર્ડ."
+ "તમારો સિમ કાર્ડ કાયમી રૂપે અક્ષમ કરવામાં આવ્યો છે.\n બીજા સિમ કાર્ડ માટે તમારા વાયરલેસ સેવા પ્રદાતાનો સંપર્ક કરો.""પહેલાનો ટ્રૅક""આગલો ટ્રૅક""થોભો"
@@ -941,10 +936,10 @@
"ઝડપી ફોરવર્ડ કરો""ફક્ત ઇમર્જન્સી કૉલ""નેટવર્ક લૉક થયું"
- "સિમ કાર્ડ PUK-લૉક કરેલું છે."
+ "સિમ કાર્ડ, PUK-લૉક કરેલ છે.""વપરાશકર્તા માર્ગદર્શિકા જુઓ અથવા ગ્રાહક સંભાળનો સંપર્ક કરો."
- "સિમ કાર્ડ લૉક કરેલું છે."
- "સિમ કાર્ડ અનલૉક કરી રહ્યાં છીએ…"
+ "સિમ કાર્ડ લૉક કરેલ છે."
+ "સિમ કાર્ડ અનલૉક કરી રહ્યાં છીએ…""તમે %1$d વખત ખોટી રીતે તમારી અનલૉક પૅટર્ન દોરી. \n\n%2$d સેકન્ડમાં ફરીથી પ્રયાસ કરો.""તમે %1$d વખત ખોટી રીતે તમારો પાસવર્ડ લખ્યો છે. \n\n%2$d સેકંડમાં ફરીથી પ્રયાસ કરો.""તમે %1$d વખત ખોટી રીતે તમારો પિન લખ્યો છે. \n\n%2$d સેકન્ડમાં ફરીથી પ્રયાસ કરો."
@@ -1246,9 +1241,10 @@
"%1$s તૈયાર કરી રહ્યું છે.""ઍપ્લિકેશનો શરૂ કરી રહ્યાં છે.""બૂટ સમાપ્ત કરી રહ્યાં છે."
+ "શું સેટઅપ કરવાનું ચાલુ રાખીએ?""તમે પાવર બટન દબાવ્યું છે — જેનાથી સામાન્ય રીતે સ્ક્રીન બંધ થઈ જાય છે.\n\nતમારી ફિંગરપ્રિન્ટનું સેટઅપ કરતી વખતે હળવેથી ટૅપ કરવાનો પ્રયાસ કરો."
- "સેટઅપ સમાપ્ત કરવા માટે, સ્ક્રીન બંધ કરો"
- "બંધ કરો"
+ "સ્ક્રીન બંધ કરો"
+ "સેટઅપ આગળ વધારો""શું તમારી ફિંગરપ્રિન્ટની ચકાસણી કરીએ?""તમે પાવર બટન દબાવ્યું છે — જેનાથી સામાન્ય રીતે સ્ક્રીન બંધ થઈ જાય છે.\n\nતમારી ફિંગરપ્રિન્ટની ચકાસણી કરવા માટે, તેને હળવેથી ટૅપ કરવાનો પ્રયાસ કરો.""સ્ક્રીન બંધ કરો"
@@ -1327,10 +1323,10 @@
"તમે પછીથી આને સેટિંગ > ઍપમાં બદલી શકો છો""હંમેશા મંજૂરી આપો""ક્યારેય મંજૂરી આપશો નહીં"
- "સિમ કાર્ડ કાઢી નાખ્યું"
- "તમે માન્ય સિમ કાર્ડ વડે ફરી શરૂ ન કરો, ત્યાં સુધી મોબાઇલ નેટવર્ક ઉપલબ્ધ નહીં થાય."
+ "સિમ કાર્ડ કાઢી નાખ્યો"
+ "એક માન્ય સિમ કાર્ડ દાખલ કરીને તમે પુનઃપ્રારંભ ન કરો ત્યાં સુધી મોબાઇલ નેટવર્ક અનુપલબ્ધ રહેશે.""થઈ ગયું"
- "સિમ કાર્ડ ઉમેર્યું"
+ "સિમ કાર્ડ ઉમેર્યો""મોબાઇલ નેટવર્કને ઍક્સેસ કરવા માટે તમારા ઉપકરણને પુનઃપ્રારંભ કરો.""રિસ્ટાર્ટ કરો""મોબાઇલ સેવાને સક્રિય કરો"
@@ -1401,16 +1397,16 @@
"સેટ કરવા માટે ટૅપ કરો""સેટઅપ કરવા માટે પસંદ કરો""તમને કદાચ ડિવાઇસને ફરીથી ફૉર્મેટ કરવાની જરૂર પડી શકે છે. બહાર કાઢવા માટે ટૅપ કરો."
- "ફોટા, વીડિયો, મ્યુઝિક અને બીજું ઘણું સ્ટોર કરવા માટે"
+ "ફોટો અને મીડિયા ટ્રાન્સફર કરવા માટે""મીડિયા ફાઇલો બ્રાઉઝ કરો""%sની સમસ્યા""%s કામ કરી રહ્યું નથી""ઠીક કરવા માટે ટૅપ કરો""%s દૂષિત છે. સુધારવા માટે પસંદ કરો.""તમને કદાચ ડિવાઇસને ફરીથી ફૉર્મેટ કરવાની જરૂર પડી શકે છે. બહાર કાઢવા માટે ટૅપ કરો."
- "%sની ભાળ મળી"
+ "અસમર્થિત %s""%s કામ કરી રહ્યું નથી"
- "સેટઅપ કરવા માટે ટૅપ કરો."
+ "આ ઉપકરણ આ %s નું સમર્થન કરતું નથી. સમર્થિત ફોર્મેટમાં સેટ કરવા માટે ટૅપ કરો.""સપોર્ટ કરતા હોય એવા ફૉર્મેટમાં %sનું સેટઅપ કરવા માટે પસંદ કરો.""તમને કદાચ ડિવાઇસને ફરીથી ફૉર્મેટ કરવાની જરૂર પડી શકે છે""%s અનપેક્ષિત રીતે દૂર કર્યું"
@@ -1424,7 +1420,7 @@
"અન્વેષણ કરો""આઉટપુટ સ્વિચ કરો""%s ખૂટે છે"
- "ફરીથી ડિવાઇસ દાખલ કરો"
+ "ફરીથી ઉપકરણ દાખલ કરો""%s ખસેડી રહ્યાં છીએ""ડેટાને ખસેડી રહ્યાં છીએ""કન્ટેન્ટ ટ્રાન્સફર કરવાનું પૂર્ણ થયું"
@@ -1609,7 +1605,7 @@
"TV""ફોન""સ્પીકર્સ ડૉક કરો"
- "બહારનું ડિવાઇસ"
+ "HDMI""હેડફોન""USB""સિસ્ટમ"
@@ -1642,7 +1638,7 @@
"સિમ હવે અક્ષમ છે. ચાલુ રાખવા માટે PUK કોડ દાખલ કરો. વિગતો માટે કેરીઅરનો સંપર્ક કરો.""જોઈતો પિન કોડ દાખલ કરો""જોઈતા પિન કોડની પુષ્ટિ કરો"
- "સિમ કાર્ડ અનલૉક કરી રહ્યાં છીએ…"
+ "સિમ કાર્ડ અનલૉક કરી રહ્યાં છીએ…""ખોટો પિન કોડ.""એક પિન લખો જે 4 થી 8 સંખ્યાનો છે.""PUK કોડ 8 નંબર્સનો હોવો જોઈએ."
@@ -1923,7 +1919,6 @@
"પ્રદેશ પસંદગી""ભાષાનું નામ ટાઇપ કરો""સૂચવેલી ભાષા"
- "સૂચવેલા""બધી ભાષાઓ""તમામ પ્રદેશ""શોધ"
@@ -1941,19 +1936,18 @@
"કૅમેરા ઉપલબ્ધ નથી""ફોન પર ચાલુ રાખો""માઇક્રોફોન ઉપલબ્ધ નથી"
- "Play Store ઉપલબ્ધ નથી""Android TV સેટિંગ ઉપલબ્ધ નથી""ટૅબ્લેટ સેટિંગ ઉપલબ્ધ નથી""ફોન સેટિંગ ઉપલબ્ધ નથી"
- "અત્યારે આને તમારા %1$s પર ઍક્સેસ કરી શકાતી નથી. તેના બદલે તમારા Android TV ડિવાઇસ પર પ્રયાસ કરો."
- "અત્યારે આને તમારા %1$s પર ઍક્સેસ કરી શકાતી નથી. તેના બદલે તમારા ટૅબ્લેટ પર પ્રયાસ કરો."
- "અત્યારે આને તમારા %1$s પર ઍક્સેસ કરી શકાતી નથી. તેના બદલે તમારા ફોન પર પ્રયાસ કરો."
+ "આને તમારા %1$s પર ઍક્સેસ કરી શકાતી નથી. તેના બદલે તમારા Android TV ડિવાઇસ પર પ્રયાસ કરો."
+ "આને તમારા %1$s પર ઍક્સેસ કરી શકાતી નથી. તેના બદલે તમારા ટૅબ્લેટ પર પ્રયાસ કરો."
+ "આને તમારા %1$s પર ઍક્સેસ કરી શકાતી નથી. તેના બદલે તમારા ફોન પર પ્રયાસ કરો."
+ "અત્યારે આને તમારા %1$s પર ઍક્સેસ કરી શકાતી નથી. તેના બદલે તમારા Android TV ડિવાઇસ પર પ્રયાસ કરો."
+ "અત્યારે આને તમારા %1$s પર ઍક્સેસ કરી શકાતી નથી. તેના બદલે તમારા ટૅબ્લેટ પર પ્રયાસ કરો."
+ "અત્યારે આને તમારા %1$s પર ઍક્સેસ કરી શકાતી નથી. તેના બદલે તમારા ફોન પર પ્રયાસ કરો.""આ ઍપ દ્વારા વધારાની સુરક્ષાની વિનંતી કરવામાં આવી રહી છે. તેના બદલે તમારા Android TV ડિવાઇસ પર પ્રયાસ કરો.""આ ઍપ દ્વારા વધારાની સુરક્ષાની વિનંતી કરવામાં આવી રહી છે. તેના બદલે તમારા ટૅબ્લેટ પર પ્રયાસ કરો.""આ ઍપ દ્વારા વધારાની સુરક્ષાની વિનંતી કરવામાં આવી રહી છે. તેના બદલે તમારા ફોન પર પ્રયાસ કરો."
- "આને તમારા %1$s પર ઍક્સેસ કરી શકાતી નથી. તેના બદલે તમારા Android TV ડિવાઇસ પર પ્રયાસ કરો."
- "આને તમારા %1$s પર ઍક્સેસ કરી શકાતી નથી. તેના બદલે તમારા ટૅબ્લેટ પર પ્રયાસ કરો."
- "આને તમારા %1$s પર ઍક્સેસ કરી શકાતી નથી. તેના બદલે તમારા ફોન પર પ્રયાસ કરો.""આ ઍપ Androidના જૂના વર્ઝન માટે બનાવવામાં આવ્યું હતું અને તે કદાચ તે યોગ્ય રીતે કાર્ય કરી શકશે નહીં. અપડેટ માટે તપાસવાનો પ્રયાસ કરો અથવા ડેવલપરનો સંપર્ક કરો.""અપડેટ માટે તપાસો""તમારી પાસે નવા સંદેશા છે"
@@ -2046,8 +2040,7 @@
"%sને ડિવાઇસનો બધો લૉગ ઍક્સેસ કરવાની મંજૂરી આપવી છે?""એક-વખતના ઍક્સેસની મંજૂરી આપો""મંજૂરી આપશો નહીં"
- "તમારા ડિવાઇસ પર થતી કામગીરીને ડિવાઇસ લૉગ રેકોર્ડ કરે છે. ઍપ આ લૉગનો ઉપયોગ સમસ્યાઓ શોધી તેનું નિરાકરણ કરવા માટે કરી શકે છે.\n\nઅમુક લૉગમાં સંવેદનશીલ માહિતી હોઈ શકે, આથી ડિવાઇસનો બધો લૉગ ઍક્સેસ કરવાની મંજૂરી માત્ર તમારી વિશ્વાસપાત્ર ઍપને જ આપો. \n\nજો તમે આ ઍપને ડિવાઇસનો બધો લૉગ ઍક્સેસ કરવાની મંજૂરી ન આપો, તો પણ તે તેના પોતાના લૉગ ઍક્સેસ કરી શકે છે. તમારા ડિવાઇસના નિર્માતા હજુ પણ કદાચ તમારા ડિવાઇસ પર અમુક લૉગ અથવા માહિતી ઍક્સેસ કરી શકે છે."
- "તમારા ડિવાઇસ પર થતી કામગીરીને ડિવાઇસ લૉગ રેકોર્ડ કરે છે. ઍપ આ લૉગનો ઉપયોગ સમસ્યાઓ શોધી તેનું નિરાકરણ કરવા માટે કરી શકે છે.\n\nઅમુક લૉગમાં સંવેદનશીલ માહિતી હોઈ શકે, આથી ડિવાઇસનો બધો લૉગ ઍક્સેસ કરવાની મંજૂરી માત્ર તમારી વિશ્વાસપાત્ર ઍપને જ આપો. \n\nજો તમે આ ઍપને ડિવાઇસનો બધો લૉગ ઍક્સેસ કરવાની મંજૂરી ન આપો, તો પણ તે તેના પોતાના લૉગ ઍક્સેસ કરી શકે છે. તમારા ડિવાઇસના નિર્માતા હજુ પણ કદાચ તમારા ડિવાઇસ પર અમુક લૉગ અથવા માહિતી ઍક્સેસ કરી શકે છે.\n\ng.co/android/devicelogs પર વધુ જાણો."
+ "તમારા ડિવાઇસ પર થતી કામગીરીને ડિવાઇસ લૉગ રેકોર્ડ કરે છે. ઍપ આ લૉગનો ઉપયોગ સમસ્યાઓ શોધી તેનું નિરાકરણ કરવા માટે કરી શકે છે.\n\nઅમુક લૉગમાં સંવેદનશીલ માહિતી હોઈ શકે, આથી ડિવાઇસનો બધો લૉગ ઍક્સેસ કરવાની મંજૂરી માત્ર તમારી વિશ્વાસપાત્ર ઍપને જ આપો. \n\nતમે આ ઍપને ડિવાઇસનો બધો લૉગ ઍક્સેસ કરવાની મંજૂરી નહીં આપી હોય, તો પણ તે તેના પોતાના લૉગ ઍક્સેસ કરી શકે છે. તમારા ડિવાઇસના નિર્માતા હજુ પણ કદાચ તમારા ડિવાઇસ પર અમુક લૉગ અથવા માહિતી ઍક્સેસ કરી શકે છે. વધુ જાણો""ફરીથી બતાવશો નહીં""%1$sએ %2$s સ્લાઇસ બતાવવા માગે છે""ફેરફાર કરો"
@@ -2060,7 +2053,8 @@
"ખલેલ પાડશો નહીંમાં ફેરફાર થયો છે""શું બ્લૉક કરેલ છે તે તપાસવા માટે ટૅપ કરો.""નોટિફિકેશનના સેટિંગ રિવ્યૂ કરો"
- "Android 13થી શરૂઆત કરીને, તમે જે પણ ઍપ ઇન્સ્ટૉલ કરશો, તેને નોટિફિકેશન મોકલવા માટે તમારી પરવાનગીની જરૂર રહેશે. હાલની બધી ઍપ માટે આ પરવાનગીમાં ફેરફાર કરવા માટે ટૅપ કરો."
+
+ "મને પછી યાદ અપાવજો""છોડી દો""સિસ્ટમ"
@@ -2288,6 +2282,5 @@
"સક્રિય ઍપ ચેક કરો""તમારા %1$s પરથી ફોનના કૅમેરાનો ઍક્સેસ કરી શકતાં નથી""તમારા %1$s પરથી ટૅબ્લેટના કૅમેરાનો ઍક્સેસ કરી શકતાં નથી"
- "સ્ટ્રીમ કરતી વખતે આ ઍક્સેસ કરી શકાતું નથી. તેના બદલે તમારા ફોન પર પ્રયાસ કરો."
- "સિસ્ટમ ડિફૉલ્ટ"
+ "સિસ્ટમની ભાષા"
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index 8133e7429a0c75b5d7e87497a4e3383b8f564d33..c80041415d15ec34cc016dcd2edd9ba1f4ce86c8 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "केबी"
+ "एमबी"
+ "जीबी"
+ "TB"
+ "PB""%1$s%2$s""<शीर्षक-रहित>""(कोई फ़ोन नंबर नहीं)"
@@ -28,7 +33,6 @@
"वॉइसमेल""MSISDN1""कनेक्शन समस्या या अमान्य MMI कोड."
- "यह सुविधा, इस नेटवर्क पर काम नहीं करती है.""कार्रवाई केवल फ़िक्स्ड डायलिंग नंबर के लिए प्रतिबंधित है.""आपके रोमिंग में होने पर, आपके फ़ोन से कॉल को दूसरे नंबर पर भेजने की सेटिंग नहीं बदली जा सकती.""सेवा अक्षम थी."
@@ -43,8 +47,8 @@
"आपने जो पिन लिखे हैं उसका मिलान नहीं होता.""कोई ऐसा पिन लिखें, जिसमें 4 से 8 अंक हों.""ऐसा PUK लिखें जो 8 अंकों या ज़्यादा का हो."
- "आपके सिम पर PUK लॉक लगा है. इसे अनलॉक करने के लिए, PUK कोड डालें."
- "सिम को अनब्लॉक करने के लिए PUK2 टाइप करें."
+ "आपका सिम कार्ड PUK लॉक किया गया है. इसे अनलॉक करने के लिए PUK कोड लिखें."
+ "सिम कार्ड अनब्लॉक करने के लिए PUK2 लिखें.""नहीं हो सका, सिम//RUIM लॉक चालू करें."सिम के लॉक हो जाने से पहले आपके पास %d प्रयास शेष हैं.
@@ -301,12 +305,12 @@
"अपने कैलेंडर को ऐक्सेस करें""मैसेज (एसएमएस)""मैसेज (एसएमएस) भेजें और देखें"
- "फ़ाइलें"
- "अपने डिवाइस में मौजूद फ़ाइलों का ऐक्सेस दें"
- "संगीत और ऑडियो"
- "आपके डिवाइस पर संगीत और ऑडियो को ऐक्सेस करने की अनुमति"
- "फ़ोटो और वीडियो के ऐक्सेस"
- "आपके डिवाइस पर फ़ोटो और वीडियो को ऐक्सेस करने की अनुमति"
+ "फ़ाइलें और दस्तावेज़"
+ "अपने डिवाइस पर मौजूद फ़ाइलें और दस्तावेज़ ऐक्सेस करने की अनुमति दें"
+ "संगीत और अन्य ऑडियो"
+ "आपके डिवाइस पर मौजूद, ऑडियो फ़ाइलों का ऐक्सेस"
+ "फ़ोटो और वीडियो"
+ "आपके डिवाइस पर मौजूद, इमेज और वीडियो फ़ाइलों का ऐक्सेस""माइक्रोफ़ोन""ऑडियो रिकॉर्ड करें""शारीरिक गतिविधि"
@@ -324,7 +328,7 @@
"सूचनाएं""सूचनाएं दिखाएं""विंडो का कॉन्टेंट वापस पाएं"
- "विंडो पर नज़र आ रहे कॉन्टेंट की जांच करें."
+ "उस विंडो की सामग्री की जाँच करें, जिसका आप इस्तेमाल कर रहे हैं.""छूकर, किसी चीज़ से जुड़ी जानकारी सुनने की सुविधा चालू करें""जिन चीज़ों पर आप टैप करेंगे उन्हें ज़ोर से बोला जाएगा और स्क्रीन को जेस्चर के ज़रिए एक्सप्लोर किया जा सकेगा.""अपने लिखे हुए लेख पर गौर करें"
@@ -551,7 +555,7 @@
"अपना स्क्रीन लॉक अक्षम करें""ऐप्स को कीलॉक और कोई भी संबद्ध पासवर्ड सुरक्षा बंद करने देता है. उदाहरण के लिए, इनकमिंग फ़ोन कॉल पाते समय फ़ोन, कीलॉक को बंद कर देता है, फिर कॉल खत्म होने पर कीलॉक को फिर से चालू कर देता है.""जानें कि स्क्रीन लॉक कितना मुश्किल बनाया गया है"
- "यह मंज़ूरी मिलने के बाद ऐप्लिकेशन जान पाता है कि स्क्रीन लॉक कितना मुश्किल (बहुत ज़्यादा, मध्यम, कम या बिलकुल नहीं) है. इस स्तर से यह पता चलता है कि स्क्रीन लॉक कितना लंबा या किस तरह का है. ऐप्लिकेशन उपयोगकर्ताओं को यह सुझाव भी दे सकता है कि वे स्क्रीन लॉक को एक तय लेवल तक अपडेट करें. लेकिन उपयोगकर्ता इसे बेझिझक अनदेखा करके छोड़ सकते हैं. ध्यान दें कि स्क्रीन लॉक को सादे टेक्स्ट में सेव नहीं किया जाता है इसलिए ऐप्लिकेशन को सटीक पासवर्ड पता नहीं होता है."
+ "यह मंज़ूरी मिलने के बाद ऐप्लिकेशन जान पाता है कि स्क्रीन लॉक कितना मुश्किल (बहुत ज़्यादा, मध्यम, कम या बिल्कुल नहीं) है. इस स्तर से यह पता चलता है कि स्क्रीन लॉक कितना लंबा या किस तरह का है. ऐप्लिकेशन उपयोगकर्ताओं को यह सुझाव भी दे सकता है कि वे स्क्रीन लॉक को एक तय लेवल तक अपडेट करें. लेकिन उपयोगकर्ता इसे बेझिझक अनदेखा करके छोड़ सकते हैं. ध्यान दें कि स्क्रीन लॉक को सादे टेक्स्ट में सेव नहीं किया जाता है इसलिए ऐप्लिकेशन को सटीक पासवर्ड पता नहीं होता है.""सूचनाएं दिखाएं""ऐप्लिकेशन को सूचनाएं दिखाने की अनुमति दें""बायोमीट्रिक हार्डवेयर इस्तेमाल करने दें"
@@ -582,14 +586,13 @@
"स्क्रीन लॉक का क्रेडेंशियल इस्तेमाल करें""जारी रखने के लिए, अपने स्क्रीन लॉक की पुष्टि करें""सेंसर को उंगली से ज़ोर से दबाएं"
- "फ़िंगरप्रिंट की पहचान नहीं की जा सकी. फिर से कोशिश करें."
+ "फ़िंगरप्रिंट प्रोसेस नहीं हो सका. कृपया दोबारा कोशिश करें.""फ़िंगरप्रिंट सेंसर को साफ़ करके फिर से कोशिश करें""फ़िंगरप्रिंट सेंसर को साफ़ करके फिर से कोशिश करें""सेंसर को उंगली से ज़ोर से दबाएं""उंगली बहुत धीरे चलाई गई. कृपया फिर से कोशिश करें.""किसी दूसरे फ़िंगरप्रिंट से कोशिश करें""बहुत रोशनी है"
- "पावर बटन दबाया गया""सेंसर पर सही तरीके से उंगली लगाने की कोशिश करें""फ़िंगरप्रिंट सेट अप करते समय, अपनी उंगली को हर बार थोड़ी अलग स्थिति में रखें"
@@ -601,17 +604,16 @@
"चेहरे की पहचान की गई, कृपया पुष्टि बटन दबाएं""फ़िंगरप्रिंट हार्डवेयर उपलब्ध नहीं है.""फ़िंगरप्रिंट सेट अप नहीं किया जा सका"
- "फ़िंगरप्रिंट सेटअप करने का समय खत्म हो गया. फिर से कोशिश करें."
+ "फ़िंगरप्रिंट का समय खत्म हो गया. फिर से कोशिश करें.""फ़िंगरप्रिंट ऑपरेशन रोक दिया गया.""उपयोगकर्ता ने फिंगरप्रिंट की पुष्टि की कार्रवाई रद्द कर दी है."
- "कई बार कोशिश की जा चुकी है. इसके बजाय, स्क्रीन लॉक का इस्तेमाल करें."
- "इससे ज़्यादा बार कोशिश नहीं की जा सकती. इसके बजाय, स्क्रीन लॉक का इस्तेमाल करें."
- "फ़िंगरप्रिंट की पहचान नहीं की जा सकी. फिर से कोशिश करें."
+ "बहुत ज़्यादा प्रयास कर लिए गए हैं. बाद में फिर से प्रयास करें."
+ "बहुत ज़्यादा कोशिशें. फ़िंगरप्रिंट सेंसर अक्षम है."
+ "फिर से कोशिश करें.""कोई फ़िंगरप्रिंट रजिस्टर नहीं किया गया है.""इस डिवाइस में फ़िंगरप्रिंट सेंसर नहीं है.""सेंसर कुछ समय के लिए बंद कर दिया गया है.""फ़िंगरप्रिंट सेंसर इस्तेमाल नहीं किया जा सकता. रिपेयर की सेवा देने वाली कंपनी से संपर्क करें"
- "पावर बटन दबाने की वजह से गड़बड़ी हुई""फ़िंगरप्रिंट %d""फ़िंगरप्रिंट इस्तेमाल करें""फ़िंगरप्रिंट या स्क्रीन लॉक का क्रेडेंशियल इस्तेमाल करें"
@@ -632,33 +634,26 @@
"फ़िंगरप्रिंट अनलॉक""फ़िंगरप्रिंट सेंसर इस्तेमाल नहीं किया जा सकता""फ़िंगरप्रिंट सेंसर को रिपेयर करने की सेवा देने वाली कंपनी से संपर्क करें."
- "चेहरे का माॅडल नहीं बन सका. फिर से कोशिश करें."
+ "चेहरे से जुड़ा सटीक डेटा कैप्चर नहीं किया जा सका. फिर से कोशिश करें.""बहुत रोशनी है. हल्की रोशनी आज़माएं."
- "ज़रूरत के मुताबिक रोशनी नहीं है"
- "फ़ोन को दूर ले जाएं"
- "फ़ोन को नज़दीक लाएं"
- "फ़ोन को थोड़ा और ऊपर ले जाएं"
- "फ़ोन को थोड़ा नीचे ले जाएं"
- "फ़ोन को अपने बाईं ओर ले जाएं"
- "फ़ोन को अपने दाईं ओर ले जाएं"
+ "बहुत अंधेरा है. बेहतर रोशनी में आज़माएं."
+ "फ़ोन को दूर ले जाएं."
+ "फ़ोन को नज़दीक ले जाएं."
+ "फ़ोन को और ऊपर ले जाएं."
+ "फ़ोन को थोड़ा नीचे ले जाएं."
+ "फ़ोन को बाईं ओर घुमाएं."
+ "फ़ोन को दाईं ओर घुमाएं.""कृपया अपने डिवाइस की तरफ़ सीधे देखें."
- "आपका चेहरा नहीं दिख रहा है. फ़ोन को अपनी आंखों की सीध में पकड़कर रखें."
+ "अपने चेहरे को फोन के ठीक सामने लाएं.""डिवाइस बहुत ज़्यादा हिल रहा है. फ़ोन को बिना हिलाएं पकड़ें.""कृपया फिर से अपने चेहरे की पहचान कराएं."
- "चेहरे की पहचान नहीं हुई. फिर से कोशिश करें."
- "अपने सिर की पोज़िशन को थोड़ा बदलें"
- "अपने फ़ोन की तरफ़ बिलकुल सीधा देखें"
- "अपने फ़ोन की तरफ़ बिलकुल सीधा देखें"
- "अपने फ़ोन की तरफ़ बिलकुल सीधा देखें"
+ "अब चेहरे की पहचान नहीं कर पा रहा. फिर से कोशिश करें."
+ "चेहरा काफ़ी मिलता-जुलता है, कृपया अपना पोज़ बदलें."
+ "अपना सिर थोड़ा कम घुमाएं."
+ "अपने सिर को थोड़ा कम झुकाएं."
+ "अपना सिर थोड़ा कम घुमाएं.""आपके चेहरे को छिपाने वाली सभी चीज़ों को हटाएं.""अपनी स्क्रीन के सबसे ऊपरी हिस्से को साफ़ करें, जिसमें काले रंग वाला बार भी शामिल है"
-
-
-
-
- "चेहरे का माॅडल नहीं बन सका. फिर से कोशिश करें."
- "आपने गहरे रंग का चश्मा पहना है. आपका पूरा चेहरा दिखना चाहिए."
- "चेहरा ढका हुआ है. आपका पूरा चेहरा दिखना चाहिए.""चेहरा नहीं पहचान पा रहे. हार्डवेयर उपलब्ध नहीं है."
@@ -924,14 +919,14 @@
"फिर से कोशिश करें""सभी सुविधाओं और डेटा के लिए अनलॉक करें""मालिक का चेहरा पहचानकर अनलॉक करने की तय सीमा खत्म हो गई"
- "कोई सिम नहीं है"
- "टैबलेट में कोई सिम नहीं है."
- "आपके Android TV डिवाइस में कोई सिम नहीं है."
- "फ़ोन में कोई सिम नहीं है."
- "कोई सिम जोड़ें."
- "सिम मौजूद नहीं है या उसे ऐक्सेस नहीं किया जा सकता. कोई सिम जोड़ें."
- "सिम को हमेशा के लिए बंद कर दिया गया है."
- "आपका सिम हमेशा के लिए बंद कर दिया गया है.\n दूसरा सिम पाने के लिए, वायरलेस सेवा देने वाली कंपनी से संपर्क करें."
+ "कोई सिम कार्ड नहीं है"
+ "टैबलेट में कोई सिम कार्ड नहीं है."
+ "आपके Android TV डिवाइस में कोई सिम कार्ड नहीं है."
+ "फ़ोन में कोई सिम कार्ड नहीं है."
+ "कोई सिमकार्ड डालें."
+ "सिम कार्ड गुम है या पढ़ने योग्य नहीं है. कोई सिम कार्ड डालें."
+ "अनुपयोगी सिम कार्ड."
+ "आपका सिम कार्ड हमेशा के लिए बंद कर दिया गया है.\n दूसरे सिम कार्ड के लिए अपने वायरलेस सेवा देने वाले से संपर्क करें.""पिछला ट्रैक""अगला ट्रैक""रोकें"
@@ -941,10 +936,10 @@
"फ़ास्ट फ़ॉरवर्ड""सिर्फ़ आपातकालीन कॉल""नेटवर्क लॉक किया गया"
- "सिम में PUK लॉक लगा है."
+ "सिम कार्ड PUK-लॉक किया हुआ है.""कृपया उपयोग के लिए गाइड देखें या ग्राहक सहायता से संपर्क करें."
- "सिम लॉक है."
- "सिम अनलॉक हो रहा है…"
+ "सिम कार्ड लॉक किया गया है."
+ "सिम कार्ड अनलॉक कर रहा है…""आपने अपना अनलॉक आकार %1$d बार गलत बनाया है. \n\n %2$d सेकंड में फिर से प्रयास करें.""आपने अपना पासवर्ड %1$d बार गलत तरीके से लिखा है. \n\n%2$d सेकंड में फिर से प्रयास करें.""आपने अपना पिन %1$d बार गलत तरीके से लिखा है. \n\n%2$d सेकंड में फिर से प्रयास करें."
@@ -1135,7 +1130,7 @@
"कॉपी करें""क्लिपबोर्ड पर कॉपी नहीं हो सका""चिपकाएं"
- "सादे टेक्स्ट के रूप में चिपकाएं"
+ "सादे पाठ के रूप में चिपकाएं""बदलें•""मिटाएं""यूआरएल को कॉपी करें"
@@ -1161,7 +1156,7 @@
"रद्द करें""ध्यान दें""लोड हो रहे हैं..."
- "चालू"
+ "ऑन""बंद""चालू है""बंद है"
@@ -1246,9 +1241,10 @@
"%1$s तैयार हो रहा है.""ऐप्स प्रारंभ होने वाले हैं""बूट खत्म हो रहा है."
+ "सेट अप जारी रखना है?""आपने पावर बटन दबाया - आम तौर पर, इससे स्क्रीन बंद हो जाती है.\n\nअपना फ़िंगरप्रिंट सेट अप करते समय, बटन को हल्के से टैप करके देखें."
- "सेटअप पूरा होने पर, स्क्रीन बंद करें"
- "बंद करें"
+ "स्क्रीन बंद करें"
+ "सेट अप जारी रखें""फ़िंगरप्रिंट की पुष्टि करना जारी रखना है?""आपने पावर बटन दबाया - आम तौर पर, इससे स्क्रीन बंद हो जाती है.\n\nअपने फ़िंगरप्रिंट की पुष्टि करने के लिए, बटन पर हल्के से टैप करके देखें.""स्क्रीन बंद करें"
@@ -1327,10 +1323,10 @@
"आप इसे बाद में सेटिंग > ऐप्स में बदल सकते हैं""हमेशा अनुमति दें""कभी भी अनुमति न दें"
- "सिम हटाया गया"
- "जब तक कोई मान्य सिम डालकर फ़ोन को रीस्टार्ट नहीं किया जाता, तब तक मोबाइल नेटवर्क उपलब्ध नहीं होगा."
+ "सिमकार्ड निकाला गया"
+ "मान्य सिम कार्ड डालकर फिर से प्रारंभ करने तक मोबाइल नेटवर्क अनुपलब्ध रहेगा.""हो गया"
- "सिम जोड़ा गया"
+ "सिम कार्ड जोड़ा गया""मोबाइल नेटवर्क की पहुंच पाने लिए अपना डिवाइस फिर से चालू करें.""फिर से शुरू करें""माेबाइल सेवा चालू करें"
@@ -1401,16 +1397,16 @@
"सेटअप करने के लिए टैप करें""सेट अप करने के लिए चुनें""आपको डिवाइस फिर से फ़ॉर्मैट करना पड़ सकता है. निकालने के लिए टैप करें."
- "फ़ोटो, वीडियो, संगीत वगैरह सेव करने के लिए"
+ "फ़ोटो और मीडिया ट्रांसफर करने के लिए""मीडिया फ़ाइलों को ब्राउज़ करें""%s में गड़बड़ी है""%s काम नहीं कर रहा है""समस्या ठीक करने के लिए टैप करें""%s काम नहीं कर रहा है. ठीक करने के लिए चुनें.""आपको डिवाइस फिर से फ़ॉर्मैट करना पड़ सकता है. निकालने के लिए टैप करें."
- "%s का पता चला"
+ "असमर्थित %s""%s काम नहीं कर रहा है"
- "सेट अप करने के लिए टैप करें."
+ "यह डिवाइस इस %s का समर्थन नहीं करता है. समर्थित प्रारूप में सेट करने के लिए टैप करें.""%s को काम करने वाले फ़ॉर्मैट में सेट अप करने के लिए चुनें.""आपको डिवाइस फिर से फ़ॉर्मैट करना पड़ सकता है""%s अप्रत्याशित रूप से निकाला गया"
@@ -1423,7 +1419,7 @@
"निकालें""एक्सप्लोर करें""आउटपुट बदलें"
- "%s नहीं मिल रहा है"
+ "%s गुम है""डिवाइस को दोबारा लगाएं""%s को ले जाया जा रहा है""डेटा ले जाया जा रहा है"
@@ -1609,7 +1605,7 @@
"टीवी""फ़ोन""डॉक स्पीकर"
- "बाहरी डिवाइस"
+ "HDMI""हेडफ़ोन""यूएसबी""सिस्टम"
@@ -1625,7 +1621,7 @@
"कनेक्ट हो रहा है...""मौजूद""उपलब्ध नहीं"
- "इस्तेमाल में है"
+ "उपयोग में""अंतर्निहित स्क्रीन""HDMI स्क्रीन""ओवरले #%1$d"
@@ -1642,7 +1638,7 @@
"सिम अब अक्षम हो गई है. जारी रखने के लिए PUK कोड डालें. विवरण के लिए कैरियर से संपर्क करें.""इच्छित पिन कोड डालें""पिन कोड की पुष्टि करें"
- "सिम अनलॉक हो रहा है…"
+ "सिम कार्ड अनलॉक कर रहा है…""गलत PIN कोड.""ऐसा PIN लिखें, जो 4 से 8 अंकों का हो.""PUK कोड 8 अंकों का होना चाहिए."
@@ -1853,8 +1849,8 @@
"आपके व्यवस्थापक ने अपडेट किया है""आपके व्यवस्थापक ने हटा दिया है""ठीक है"
- "बैटरी सेवर, गहरे रंग वाली थीम को चालू करता है. साथ ही, इस मोड में बैकग्राउंड की गतिविधि, कुछ विज़ुअल इफ़ेक्ट, और कुछ खास सुविधाएं कम या बंद हो जाती हैं. कुछ इंटरनेट कनेक्शन भी पूरी तरह काम नहीं करते."
- "बैटरी सेवर, गहरे रंग वाली थीम को चालू करता है. साथ ही, इस मोड में बैकग्राउंड की गतिविधि, कुछ विज़ुअल इफ़ेक्ट, और कुछ सुविधाएं सीमित या बंद हो जाती हैं. कुछ इंटरनेट कनेक्शन भी पूरी तरह काम नहीं करते."
+ "बैटरी सेवर, गहरे रंग वाली थीम को चालू करता है. साथ ही, यह बैकग्राउंड की गतिविधि, कुछ विज़ुअल इफ़ेक्ट, कुछ खास सुविधाओं, और कुछ खास तरह के इंटरनेट कनेक्शन इस्तेमाल करने से डिवाइस को रोकता है या इन्हें बंद कर देता है."
+ "बैटरी सेवर, गहरे रंग वाली थीम को चालू करता है. साथ ही, यह बैकग्राउंड की गतिविधि, कुछ विज़ुअल इफ़ेक्ट, कुछ खास सुविधाओं, और कुछ खास तरह के इंटरनेट कनेक्शन इस्तेमाल करने से डिवाइस को रोकता है या इन्हें बंद कर देता है.""डेटा खर्च को कम करने के लिए, डेटा बचाने की सेटिंग कुछ ऐप्लिकेशन को बैकग्राउंड में डेटा भेजने या डेटा पाने से रोकती है. फ़िलहाल, जिस ऐप्लिकेशन का इस्तेमाल किया जा रहा है वह डेटा ऐक्सेस कर सकता है, लेकिन ऐसा कभी-कभी ही हो पाएगा. उदाहरण के लिए, इमेज तब तक दिखाई नहीं देंगी, जब तक उन पर टैप नहीं किया जाएगा.""डेटा बचाने की सेटिंग चालू करें?""चालू करें"
@@ -1923,7 +1919,6 @@
"क्षेत्र प्राथमिकता""भाषा का नाम लिखें""दिए गए सुझाव"
- "सुझाए गए देश/इलाके""सभी भाषाएं""सभी क्षेत्र""खोजें"
@@ -1941,19 +1936,18 @@
"कैमरा उपलब्ध नहीं है""फ़ोन पर जारी रखें""माइक्रोफ़ोन उपलब्ध नहीं है"
- "Play Store उपलब्ध नहीं है""Android TV की सेटिंग उपलब्ध नहीं हैं""टैबलेट की सेटिंग उपलब्ध नहीं हैं"
- "फ़ोन की सेटिंग उपलब्ध नहीं है"
- "इस समय, आपके %1$s पर इसे ऐक्सेस नहीं किया जा सकता. इसके बजाय, अपने Android TV डिवाइस पर कोशिश करें."
- "इस समय, आपके %1$s पर इसे ऐक्सेस नहीं किया जा सकता. इसके बजाय, अपने टैबलेट पर कोशिश करें."
- "इस समय, आपके %1$s पर इसे ऐक्सेस नहीं किया जा सकता. इसके बजाय, अपने फ़ोन पर कोशिश करें."
+ "फ़ोन की सेटिंग उपलब्ध नहीं हैं"
+ "आपके %1$s पर इसे ऐक्सेस नहीं किया जा सकता. इसके बजाय, अपने Android TV डिवाइस पर ऐक्सेस करने की कोशिश करें."
+ "आपके %1$s पर इसे ऐक्सेस नहीं किया जा सकता. इसके बजाय, अपने टैबलेट पर ऐक्सेस करने की कोशिश करें."
+ "आपके %1$s पर इसे ऐक्सेस नहीं किया जा सकता. इसके बजाय, अपने फ़ोन पर ऐक्सेस करने की कोशिश करें."
+ "इस समय, आपके %1$s पर इसे ऐक्सेस नहीं किया जा सकता. इसके बजाय, अपने Android TV डिवाइस पर ऐक्सेस करने की कोशिश करें."
+ "इस समय, आपके %1$s पर इसे ऐक्सेस नहीं किया जा सकता. इसके बजाय, अपने टैबलेट पर ऐक्सेस करने की कोशिश करें."
+ "इस समय, आपके %1$s पर इसे ऐक्सेस नहीं किया जा सकता. इसके बजाय, अपने फ़ोन पर ऐक्सेस करने की कोशिश करें.""यह ऐप्लिकेशन ज़्यादा सुरक्षा का अनुरोध कर रहा है. इसके बजाय, अपने Android TV डिवाइस पर ऐक्सेस करने की कोशिश करें.""यह ऐप्लिकेशन ज़्यादा सुरक्षा का अनुरोध कर रहा है. इसके बजाय, अपने टैबलेट पर ऐक्सेस करने की कोशिश करें.""यह ऐप्लिकेशन ज़्यादा सुरक्षा का अनुरोध कर रहा है. इसके बजाय, अपने फ़ोन पर ऐक्सेस करने की कोशिश करें."
- "आपके %1$s पर इसे ऐक्सेस नहीं किया जा सकता. इसके बजाय, अपने Android TV डिवाइस पर ऐक्सेस करने की कोशिश करें."
- "आपके %1$s पर इसे ऐक्सेस नहीं किया जा सकता. इसके बजाय, अपने टैबलेट पर ऐक्सेस करने की कोशिश करें."
- "आपके %1$s पर इसे ऐक्सेस नहीं किया जा सकता. इसके बजाय, अपने फ़ोन पर ऐक्सेस करने की कोशिश करें.""यह ऐप्लिकेशन Android के पुराने वर्शन के लिए बनाया गया था, इसलिए हो सकता है कि यह सही से काम न करे. देखें कि अपडेट मौजूद हैं या नहीं, या फिर डेवलपर से संपर्क करें.""देखें कि अपडेट मौजूद है या नहीं""आपके पास नए संदेश हैं"
@@ -1984,7 +1978,7 @@
"उत्पादकता""सुलभता""डिवाइस में जगह"
- "यूएसबी डीबग करें"
+ "यूएसबी डीबग करना""घंटा""मिनट""समय सेट करें"
@@ -2046,12 +2040,11 @@
"क्या %s को डिवाइस लॉग का ऐक्सेस देना है?""एक बार ऐक्सेस करने की अनुमति दें""अनुमति न दें"
- "डिवाइस लॉग में, आपके डिवाइस पर की गई कार्रवाइयां रिकॉर्ड होती हैं. ऐप्लिकेशन, इन लॉग का इस्तेमाल गड़बड़ियां ढूंढने और उन्हें ठीक करने के लिए करते हैं.\n\nकुछ लॉग में संवेदनशील जानकारी हो सकती है. इसलिए, सिर्फ़ भरोसेमंद ऐप्लिकेशन को डिवाइस लॉग का ऐक्सेस दें. \n\nअगर इस ऐप्लिकेशन को डिवाइस के सभी लॉग का ऐक्सेस नहीं दिया जाता है, तब भी यह डिवाइस पर अपने लॉग को ऐक्सेस कर सकता है. डिवाइस को बनाने वाली कंपनी अब भी डिवाइस के कुछ लॉग या जानकारी को ऐक्सेस कर सकती है."
- "डिवाइस लॉग में आपके डिवाइस पर की गई कार्रवाइयां रिकॉर्ड होती हैं. ऐप्लिकेशन, इन लॉग का इस्तेमाल गड़बड़ियां ढूंढने और उन्हें सही करने के लिए करता है.\n\nकुछ लॉग में संवेदनशील जानकारी हो सकती है. इसलिए, सिर्फ़ भरोसेमंद ऐप्लिकेशन को डिवाइस के सभी लॉग का ऐक्सेस दें. \n\nअगर किसी ऐप्लिकेशन को डिवाइस के सभी लॉग का ऐक्सेस नहीं दिया जाता है, तब भी वह डिवाइस पर अपने लॉग को ऐक्सेस कर सकता है. डिवाइस को बनाने वाली कंपनी अब भी डिवाइस के कुछ लॉग या जानकारी को ऐक्सेस कर सकती है.\n\nज़्यादा जानने के लिए, g.co/android/devicelogs पर जाएं."
+ "डिवाइस लॉग में आपके डिवाइस पर की गई कार्रवाइयां रिकॉर्ड होती हैं. ऐप्लिकेशन, इन लॉग का इस्तेमाल गड़बड़ियां ढूंढने और उन्हें सही करने के लिए करता है.\n\nकुछ लॉग में संवेदनशील जानकारी हो सकती है. इसलिए, सिर्फ़ भरोसेमंद ऐप्लिकेशन को डिवाइस लॉग का ऐक्सेस दें. \n\nअगर इस ऐप्लिकेशन को डिवाइस के सभी लॉग का ऐक्सेस नहीं दिया जाता है, तब भी यह डिवाइस पर अपने लॉग को ऐक्सेस कर सकता है. डिवाइस को बनाने वाली कंपनी अब भी डिवाइस के कुछ लॉग या जानकारी को ऐक्सेस कर सकती है. ज़्यादा जानें""फिर से न दिखाएं""%1$s, %2$s के हिस्से (स्लाइस) दिखाना चाहता है""बदलाव करें"
- "कॉल और सूचनाओं आने पर डिवाइस वाइब्रेट हाेगा"
+ "कॉल और सूचनाओं के लिए डिवाइस वाइब्रेट हाेगा""कॉल और सूचनाओं के लिए डिवाइस म्यूट रहेगा""सिस्टम में हुए बदलाव""परेशान न करें"
@@ -2060,7 +2053,8 @@
"परेशान न करें की सुविधा बदल गई है""टैप करके देखें कि किन चीज़ों पर रोक लगाई गई है.""सूचना सेटिंग देखें"
- "Android 13 में जो ऐप्लिकेशन इंस्टॉल किए जाएंगे, उन्हें आपको सूचनाएं भेजने के लिए अनुमति लेनी होगी. पहले से इंस्टॉल किए गए ऐप्लिकेशन को दी गई अनुमति बदलने के लिए टैप करें."
+
+ "बाद में याद दिलाएं""बंद करें""सिस्टम"
@@ -2288,6 +2282,5 @@
"चालू ऐप्लिकेशन देखें""आपके %1$s से फ़ोन के कैमरे को ऐक्सेस नहीं किया जा सकता""आपके %1$s से टैबलेट के कैमरे को ऐक्सेस नहीं किया जा सकता"
- "स्ट्रीमिंग के दौरान, इसे ऐक्सेस नहीं किया जा सकता. इसके बजाय, अपने फ़ोन पर ऐक्सेस करके देखें."
- "सिस्टम डिफ़ॉल्ट"
+ "सिस्टम की भाषा"
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index 30e9582c06362fabdd8a92308e72873cd8d75677..3774175f9f8462d3abc75298580d84e9d2e2affe 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Bez naslova>""(Nema telefonskog broja)"
@@ -28,7 +33,6 @@
"Govorna pošta""MSISDN1""Problem s vezom ili nevažeći MMI kôd."
- "Značajka nije podržana.""Operacija je ograničena samo na brojeve s fiksnim biranjem.""Nije moguće promijeniti postavke preusmjeravanja poziva na telefonu dok ste u roamingu.""Usluga je omogućena."
@@ -43,8 +47,8 @@
"PIN-ovi koje ste unijeli međusobno se ne podudaraju.""Unesite PIN koji ima od 4 do 8 brojeva.""Upišite PUK koji se sastoji od barem 8 brojeva."
- "Vaš je SIM zaključan PUK-om. Unesite PUK kôd da biste ga otključali."
- "Upišite PUK2 da biste deblokirali SIM."
+ "Vaša je SIM kartica zaključana PUK-om. Unesite PUK kôd da biste je otključali."
+ "Unesite PUK2 da biste odblokirali SIM karticu.""Neuspješno; omogući zaključavanje SIM/RUIM."Imate još %d pokušaj prije zaključavanja SIM kartice.
@@ -302,12 +306,12 @@
"pristupati kalendaru""SMS""slati i pregledavati SMS poruke"
- "Datoteke"
- "pristupati datotekama na vašem uređaju"
- "Glazba i zvuk"
- "pristupite glazbi i zvuku na svom uređaju"
- "Fotografije i videozapisi"
- "pristupite fotografijama i videozapisima na svom uređaju"
+ "Datoteke i dokumenti"
+ "pristup datotekama i dokumentima na vašem uređaju"
+ "Glazba i druge audiodatoteke"
+ "pristup audiodatotekama na uređaju"
+ "Fotografije i videozapisi"
+ "pristup slikama i videodatotekama na uređaju""Mikrofon""snimati zvuk""Tjelesna aktivnost"
@@ -346,7 +350,7 @@
"Omogućuje aplikaciji proširivanje ili sažimanje trake statusa.""prikazivati obavijesti kao aktivnosti na cijelom zaslonu na zaključanom uređaju""Omogućuje aplikaciji da na zaključanom uređaju prikazuje obavijesti kao aktivnosti na cijelom zaslonu"
- "Instaliranje prečaca"
+ "instaliranje prečaca""Aplikaciji omogućuje dodavanje prečaca početnog zaslona bez intervencije korisnika.""deinstaliranje prečaca""Aplikaciji omogućuje uklanjanje prečaca početnog zaslona bez intervencije korisnika."
@@ -583,14 +587,13 @@
"Upotreba zaključavanja zaslona""Upotrijebite zaključavanje zaslona da biste nastavili""Čvrsto pritisnite senzor"
- "Prepoznavanje otiska prsta nije uspjelo. Pokušajte ponovo."
+ "Obrada otiska prsta nije uspjela. Pokušajte ponovo.""Očistite senzor otiska prsta i pokušajte ponovno""Očistite senzor i pokušajte ponovno""Čvrsto pritisnite senzor""Presporo pomicanje prsta. Pokušajte ponovo.""Isprobajte drugi otisak prsta""Presvijetlo"
- "Detektiran je pritisak na tipku za uključivanje""Pokušajte ga prilagoditi""Svaki put lagano promijenite položaj prsta"
@@ -602,17 +605,16 @@
"Lice je autentificirano, pritisnite Potvrdi""Hardver za otisak prsta nije dostupan.""Postavljanje otiska prsta nije uspjelo"
- "Vrijeme za postavljanje otiska prsta je isteklo. Pokušajte ponovo."
+ "Isteklo je vrijeme čekanja za otisak prsta. Pokušajte ponovo.""Radnja otiska prsta otkazana je.""Radnju s otiskom prsta otkazao je korisnik."
- "Previše pokušaja. Umjesto toga upotrijebite zaključavanje zaslona."
- "Previše pokušaja. Umjesto toga upotrijebite zaključavanje zaslona."
- "Obrada otiska prsta nije uspjela. Pokušajte ponovo."
+ "Previše pokušaja. Pokušajte ponovo kasnije."
+ "Senzor otiska prsta onemogućen je zbog previše pokušaja."
+ "Pokušajte ponovo.""Nije registriran nijedan otisak prsta.""Ovaj uređaj nema senzor otiska prsta.""Senzor je privremeno onemogućen.""Senzor otiska prsta ne može se koristiti. Posjetite davatelja usluga popravaka"
- "Pritisnuta je tipka za uključivanje/isključivanje""Prst %d""Upotreba otiska prsta""Upotreba otiska prsta ili zaključavanja zaslona"
@@ -633,33 +635,26 @@
"Otključavanje otiskom prsta""Senzor otiska prsta ne može se koristiti""Posjetite davatelja usluga popravaka."
- "Izrada modela lica nije uspjela. Pokušajte ponovo."
+ "Podaci o licu nisu točni. Pokušajte ponovo.""Presvijetlo je. Pokušajte sa slabijim svjetlom."
- "Nema dovoljno svjetla"
- "Udaljite telefon"
- "Približite telefon"
- "Pomaknite telefon prema gore"
- "Pomaknite telefon prema dolje"
- "Pomaknite telefon ulijevo"
- "Pomaknite telefon udesno"
+ "Pretamno je. Pokušajte s jačim osvjetljenjem."
+ "Udaljite telefon."
+ "Približite telefon."
+ "Pomaknite telefon više."
+ "Pomaknite telefon niže."
+ "Pomaknite telefon ulijevo."
+ "Pomaknite telefon udesno.""Gledajte izravnije prema uređaju."
- "Vaše se lice ne vidi. Držite telefon u razini očiju."
+ "Postavite lice izravno ispred telefona.""Previše kretanja. Držite telefon mirno.""Ponovo registrirajte svoje lice."
- "Prepoznavanje lica nije uspjelo. Pokušajte ponovo."
- "Malo pomaknite glavu"
- "Gledajte izravnije prema telefonu"
- "Gledajte ravno u telefon"
- "Gledajte izravnije prema telefonu"
+ "Lice nije prepoznato. Pokušajte ponovo."
+ "Previše slično, promijenite pozu."
+ "Nagnite glavu malo manje."
+ "Malo manje nagnite glavu."
+ "Nagnite glavu malo manje.""Uklonite sve što vam zakriva lice.""Očistite vrh zaslona, uključujući crnu traku"
-
-
-
-
- "Izrada modela lica nije uspjela. Pokušajte ponovo."
- "Otkrivene su tamne naočale. Vaše lice mora biti potpuno vidljivo."
- "Otkriveno je prekrivanje lica. Vaše lice mora biti potpuno vidljivo.""Lice nije potvrđeno. Hardver nije dostupan."
@@ -925,14 +920,14 @@
"Pokušajte ponovo""Otključajte za sve značajke i podatke""Premašen je maksimalni broj pokušaja otključavanja licem"
- "Nema SIM-a"
- "U tabletu nema SIM-a."
- "Na Android TV uređaju nema SIM-a."
- "U telefonu nema SIM-a."
- "Dodajte SIM."
- "SIM nedostaje ili nije čitljiv. Dodajte SIM."
- "SIM je neupotrebljiv."
- "Vaš je SIM trajno deaktiviran.\n Obratite se svom davatelju bežičnih usluga da biste dobili drugi SIM."
+ "Nema SIM kartice"
+ "U tabletnom uređaju nema SIM kartice."
+ "Na Android TV uređaju nema SIM kartice."
+ "U telefonu nema SIM kartice."
+ "Umetnite SIM karticu."
+ "SIM kartica nedostaje ili nije čitljiva. Umetnite SIM karticu."
+ "Neupotrebljiva SIM kartica."
+ "Vaša SIM kartica trajno je onemogućena.\n Obratite se svom pružatelju bežičnih usluga da biste dobili drugu SIM karticu.""Prethodna pjesma""Sljedeća pjesma""Pauziraj"
@@ -942,10 +937,10 @@
"Brzo unaprijed""Samo hitni pozivi""Mreža je zaključana"
- "SIM je zaključan PUK-om."
+ "SIM kartica je zaključana PUK-om.""Pogledajte korisnički priručnik ili kontaktirajte korisničku službu."
- "SIM je zaključan."
- "Otključavanje SIM-a…"
+ "SIM kartica je zaključana."
+ "Otključavanje SIM kartice…""Netočno ste iscrtali uzorak za otključavanje %1$d puta. \n\nPokušajte ponovo za %2$d s.""Netočno ste napisali zaporku %1$d puta. \n\nPokušajte ponovo za %2$d s.""Netočno ste napisali PIN %1$d puta. \n\nPokušajte ponovo za %2$d s."
@@ -1206,7 +1201,7 @@
"Aplikacija %1$s neprekidno se ruši""Postupak %1$s neprekidno se ruši""Ponovo otvori aplikaciju"
- "Pošaljite povratne informacije"
+ "Pošalji povratne informacije""Zatvori""Zanemari do ponovnog pokretanja uređaja""Čekaj"
@@ -1247,9 +1242,10 @@
"Pripremanje aplikacije %1$s.""Pokretanje aplikacija.""Završetak inicijalizacije."
+ "Želite li nastaviti s postavljanjem?""Pritisnuli ste tipku za uključivanje/isključivanje, čime se obično isključuje zaslon.\n\nPokušajte lagano dodirnuti dok postavljate svoj otisak prsta."
- "Za prekid postavljanja isključite zaslon"
- "Isključi"
+ "Isključi zaslon"
+ "Nastavi postavljanje""Nastaviti s potvrđivanjem otiska prsta?""Pritisnuli ste tipku za uključivanje/isključivanje, čime se obično isključuje zaslon.\n\nPokušajte lagano dodirnuti da biste potvrdili svoj otisak prsta.""Isključi zaslon"
@@ -1328,10 +1324,10 @@
"Kasnije to možete promijeniti u odjeljku Postavke > Aplikacije""Dopusti uvijek""Ne dopuštaj nikada"
- "SIM je uklonjen"
- "Mobilna mreža bit će nedostupna do ponovnog pokretanja s umetnutim važećim SIM-om."
+ "SIM kartica uklonjena"
+ "Mobilna mreža bit će nedostupna do ponovnog pokretanja s umetnutom važećom SIM karticom.""Gotovo"
- "SIM je dodan."
+ "SIM kartica dodana""Za pristup mobilnoj mreži ponovo pokrenite uređaj.""Ponovno pokreni""Aktivirajte mobilnu uslugu"
@@ -1402,16 +1398,16 @@
"Dodirnite za postavljanje""Odaberite da biste postavili""Možda ćete morati ponovo formatirati uređaj. Dodirnite za izbacivanje."
- "Za pohranu fotografija, videozapisa, glazbe i drugih sadržaja"
+ "Za prijenos fotografija i medija""Pregledajte datoteke na medijima""Poteškoća s medijem %s""%s ne radi""Dodirnite za popravak""Medij je oštećen (%s). Odaberite da biste ispravili pogrešku.""Možda ćete morati ponovo formatirati uređaj. Dodirnite za izbacivanje."
- "Otkriven je uređaj %s"
+ "Nepodržani medij za pohranu %s""%s ne radi"
- "Dodirnite da biste postavili ."
+ "Uređaj ne podržava ovaj medij (%s). Dodirnite da biste ga postavili u podržanom formatu.""Odaberite da biste postavili medij %s u podržanom formatu.""Možda ćete morati ponovo formatirati uređaj""Uređaj %s iznenada je uklonjen"
@@ -1610,7 +1606,7 @@
"Televizor""Telefon""Zvučnici postolja"
- "Vanjski uređaj"
+ "HDMI""Slušalice""USB""Sustav"
@@ -1643,7 +1639,7 @@
"SIM je sad onemogućen. Unesite PUK kôd da biste nastavili. Kontaktirajte operatera za pojedinosti.""Upišite željeni PIN kôd""Potvrdite željeni PIN kôd"
- "Otključavanje SIM-a…"
+ "Otključavanje SIM kartice…""Netočan PIN kôd.""Unesite PIN koji ima od 4 do 8 brojeva.""PUK kôd mora se sastojati od 8 brojeva."
@@ -1924,7 +1920,6 @@
"Postavke regije""Unesite naziv jezika""Predloženo"
- "Predloženo""Svi jezici""Sve regije""Pretraži"
@@ -1942,19 +1937,18 @@
"Kamera nije dostupna""Nastavite na telefonu""Mikrofon nije dostupan"
- "Trgovina Play nije dostupna""Postavke Android TV-a nisu dostupne""Postavke tableta nisu dostupne""Postavke telefona nisu dostupne"
- "Trenutačno toj aplikaciji nije moguće pristupiti na vašem uređaju %1$s. Pokušajte joj pristupiti na Android TV uređaju."
- "Trenutačno toj aplikaciji nije moguće pristupiti na vašem uređaju %1$s. Pokušajte joj pristupiti na tabletu."
- "Trenutačno toj aplikaciji nije moguće pristupiti na vašem uređaju %1$s. Pokušajte joj pristupiti na telefonu."
+ "Toj aplikaciji nije moguće pristupiti na vašem uređaju %1$s. Pokušajte joj pristupiti na Android TV uređaju."
+ "Toj aplikaciji nije moguće pristupiti na vašem uređaju %1$s. Pokušajte joj pristupiti na tabletu."
+ "Toj aplikaciji nije moguće pristupiti na vašem uređaju %1$s. Pokušajte joj pristupiti na telefonu."
+ "Trenutačno toj aplikaciji nije moguće pristupiti na vašem uređaju %1$s. Pokušajte joj pristupiti na Android TV uređaju."
+ "Trenutačno toj aplikaciji nije moguće pristupiti na vašem uređaju %1$s. Pokušajte joj pristupiti na tabletu."
+ "Trenutačno toj aplikaciji nije moguće pristupiti na vašem uređaju %1$s. Pokušajte joj pristupiti na telefonu.""Ta aplikacija zahtijeva dodatnu sigurnost. Pokušajte joj pristupiti na Android TV uređaju.""Ta aplikacija zahtijeva dodatnu sigurnost. Pokušajte joj pristupiti na tabletu.""Ta aplikacija zahtijeva dodatnu sigurnost. Pokušajte joj pristupiti na telefonu."
- "Toj aplikaciji nije moguće pristupiti na vašem uređaju %1$s. Pokušajte joj pristupiti na Android TV uređaju."
- "Toj aplikaciji nije moguće pristupiti na vašem uređaju %1$s. Pokušajte joj pristupiti na tabletu."
- "Toj aplikaciji nije moguće pristupiti na vašem uređaju %1$s. Pokušajte joj pristupiti na telefonu.""Ova je aplikacija razvijena za stariju verziju Androida i možda neće funkcionirati pravilno. Potražite ažuriranja ili se obratite razvojnom programeru.""Provjeri ažuriranja""Imate nove poruke"
@@ -2047,8 +2041,7 @@
"Želite li dopustiti aplikaciji %s da pristupa svim zapisnicima uređaja?""Omogući jednokratni pristup""Nemoj dopustiti"
- "U zapisnicima uređaja bilježi se što se događa na uređaju. Aplikacije mogu koristiti te zapisnike kako bi pronašle i riješile poteškoće.\n\nNeki zapisnici mogu sadržavati osjetljive podatke, pa pristup svim zapisnicima uređaja odobrite samo pouzdanim aplikacijama. \n\nAko ne dopustite ovoj aplikaciji da pristupa svim zapisnicima uređaja, ona i dalje može pristupati svojim zapisnicima. Proizvođač vašeg uređaja i dalje može pristupati nekim zapisnicima ili podacima na vašem uređaju."
- "U zapisnicima uređaja bilježi se što se događa na uređaju. Aplikacije mogu koristiti te zapisnike kako bi pronašle i riješile poteškoće.\n\nNeki zapisnici mogu sadržavati osjetljive podatke, pa pristup svim zapisnicima uređaja odobrite samo pouzdanim aplikacijama. \n\nAko ne dopustite ovoj aplikaciji da pristupa svim zapisnicima uređaja, ona i dalje može pristupati svojim zapisnicima. Proizvođač vašeg uređaja i dalje može pristupati nekim zapisnicima ili podacima na vašem uređaju.\n\nSaznajte više na g.co/android/devicelogs."
+ "U zapisnicima uređaja bilježi se što se događa na uređaju. Aplikacije mogu koristiti te zapisnike kako bi pronašle i riješile poteškoće.\n\nNeki zapisnici mogu sadržavati osjetljive podatke, pa pristup svim zapisnicima uređaja odobrite samo pouzdanim aplikacijama. \n\nAko ne dopustite ovoj aplikaciji da pristupa svim zapisnicima uređaja, ona i dalje može pristupati svojim zapisnicima. Proizvođač vašeg uređaja i dalje može pristupati nekim zapisnicima ili podacima na vašem uređaju. Saznajte više""Ne prikazuj ponovo""%1$s želi prikazivati isječke aplikacije %2$s""Uredi"
@@ -2061,7 +2054,8 @@
"Promijenjena je postavka Ne uznemiravaj""Dodirnite da biste provjerili što je blokirano.""Pregledajte postavke obavijesti"
- "Od Androida 13 aplikacije koje instalirate trebaju vaše dopuštenje za slanje obavijesti. Dodirnite da biste promijenili to dopuštenje za postojeće aplikacije."
+
+ "Podsjeti me kasnije""Odbaci""Sustav"
@@ -2289,6 +2283,5 @@
"Provjera aktivnih aplikacija""S vašeg uređaja %1$s nije moguće pristupiti fotoaparatu telefona""S vašeg uređaja %1$s nije moguće pristupiti fotoaparatu tableta"
- "Sadržaju nije moguće pristupiti tijekom streaminga. Pokušajte mu pristupiti na telefonu."
- "Zadane postavke sustava"
+ "Jezik sustava"
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 2143dbc89844ba65b17de7353d128ef7836fa019..e1a2f5fa895edd682a4089794755908f7d97c687 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Névtelen>""(Nincs telefonszám)"
@@ -28,7 +33,6 @@
"Hangposta""MSISDN1""Kapcsolódási probléma vagy érvénytelen MMI-kód."
- "A funkció nem támogatott.""A művelet fix hívószámokra van korlátozva.""A hívásátirányítási beállításokat roaming közben telefonról nem lehet módosítani.""A szolgáltatás engedélyezésre került."
@@ -43,8 +47,8 @@
"A beírt PIN kódok nem egyeznek.""Írjon be egy 4-8 számjegyű PIN kódot.""8 számjegyű vagy hosszabb PUK kódot írjon be."
- "A SIM le van zárva PUK-kóddal. A feloldáshoz adja meg a PUK-kódot."
- "A SIM zárolásának feloldásához adja meg a PUK2-kódot."
+ "A SIM kártya le van zárva a PUK kóddal. A feloldáshoz adja meg a PUK kódot."
+ "A SIM kártya feloldásához adja meg a PUK2 kódot.""Sikertelen, engedélyezze a SIM-/RUIM-zárolást."Még %d próbálkozása van a SIM kártya zárolásáig.
@@ -301,12 +305,12 @@
"hozzáférés a naptárhoz""SMS""SMS-ek küldése és megtekintése"
- "Fájlok"
- "hozzáférés az eszközön lévő fájlokhoz"
- "Zene és hang"
- "hozzáférés a zenékhez és más hanganyagokhoz az eszközön"
- "Fotók és videók"
- "hozzáférés a fotókhoz és a videókhoz az eszközön"
+ "Fájlok és dokumentumok"
+ "hozzáférhet fájljaihoz és dokumentumaihoz az eszközén"
+ "Zenék és más audiotartalmak"
+ "hozzáférés az eszközön található hangfájlokhoz"
+ "Fotók és videók"
+ "hozzáférés az eszközön található videófájlokhoz""Mikrofon""hanganyag rögzítése""Testmozgás"
@@ -345,7 +349,7 @@
"Lehetővé teszi az alkalmazás számára, hogy váltson az állapotsor részletes és listanézete között.""Értesítések megjelenítése teljes képernyős tevékenységként zárolt eszközön""Lehetővé teszi az alkalmazás számára, hogy értesítéseket jelenítsen meg teljes képernyős tevékenységként zárolt eszközön."
- "Parancsikonok telepítése"
+ "parancsikonok telepítése""Lehetővé teszi egy alkalmazás számára, hogy felhasználói beavatkozás nélkül adjon hozzá parancsikonokat a kezdőképernyőhöz.""parancsikonok eltávolítása""Lehetővé teszi egy alkalmazás számára, hogy felhasználói beavatkozás nélkül távolítson el parancsikonokat a kezdőképernyőről."
@@ -582,14 +586,13 @@
"Képernyőzár használata""A folytatáshoz adja meg a képernyőzár hitelesítési adatait""Nyomja meg határozottan az érzékelőt"
- "Az ujjlenyomat nem ismerhető fel. Próbálkozzon újra."
+ "Nem sikerült feldolgozni az ujjlenyomatot. Próbálkozzon újra.""Tisztítsa meg az ujjlenyomat-érzékelőt, majd próbálja újra""Tisztítsa meg az érzékelőt, majd próbálja újra""Nyomja meg határozottan az érzékelőt""Túl lassan húzta az ujját. Próbálkozzon újra.""Próbálkozzon másik ujjlenyomattal""Túl világos"
- "Bekapcsológomb lenyomása észlelve""Próbálja beállítani""Módosítsa minden alkalommal kis mértékben ujja helyzetét."
@@ -601,17 +604,16 @@
"Arc hitelesítve; nyomja meg a Megerősítés lehetőséget""Az ujjlenyomathoz szükséges hardver nem érhető el.""Nem sikerült beállítani az ujjlenyomatot"
- "Lejárt az ujjlenyomat-beállítás időkorlátja. Próbálkozzon újra."
+ "Az ujjlenyomat-beolvasási műveletkor időtúllépés történt. Próbálkozzon újra.""Ujjlenyomattal kapcsolatos művelet megszakítva""Az ujjlenyomattal kapcsolatos műveletet a felhasználó megszakította."
- "Túl sokszor próbálkozott. Használja inkább a képernyőzárat."
- "Túl sok próbálkozás. Használja inkább a képernyőzárat."
- "Nem sikerült feldolgozni az ujjlenyomatot. Próbálkozzon újra."
+ "Túl sok próbálkozás. Próbálja újra később."
+ "Túl sok próbálkozás. Ujjlenyomat-érzékelő letiltva."
+ "Próbálkozzon újra.""Nincsenek regisztrált ujjlenyomatok.""Ez az eszköz nem rendelkezik ujjlenyomat-érzékelővel.""Az érzékelő átmenetileg le van tiltva.""Nem lehet használni az ujjlenyomat-érzékelőt. Keresse fel a szervizt."
- "Bekapcsológomb megnyomva""%d. ujj""Ujjlenyomat használata""A folytatás ujjlenyomattal vagy képernyőzárral lehetséges"
@@ -632,33 +634,26 @@
"Feloldás ujjlenyomattal""Nem lehet használni az ujjlenyomat-érzékelőt""Keresse fel a szervizt."
- "Nem lehet létrehozni az arcmodellt. Próbálja újra."
+ "Sikertelen az arc pontos rögzítése. Próbálja újra.""Túl világos. Próbálja kevésbé erős világítással."
- "Nincs elég fény"
- "Tartsa távolabb a telefont"
- "Tartsa közelebb a telefont"
- "Emelje magasabbra a telefont"
- "Tartsa alacsonyabban a telefont"
- "Mozgassa balra a telefont"
- "Mozgassa jobbra a telefont"
+ "Túl sötét. Próbálja jobb megvilágítás mellett."
+ "Tartsa távolabb a telefont."
+ "Tartsa közelebb a telefont."
+ "Emelje magasabbra a telefont."
+ "Tartsa alacsonyabban a telefont."
+ "Mozgassa a telefont balra."
+ "Mozgassa a telefont jobbra.""Szemből nézzen az eszközre."
- "Nem látszik az arca. Tartsa szemmagasságban a telefonját."
+ "A telefont közvetlenül az arca elé tegye.""Túl sok a mozgás. Tartsa stabilan a telefont.""Rögzítsen újra képet az arcáról."
- "Az arc nem felismerhető. Próbálja újra."
- "Egy kicsit mozdítsa el a fejét"
- "Nézzen egyenesen a telefonjára"
- "Nézzen egyenesen a telefonjára"
- "Nézzen egyenesen a telefonjára"
+ "Már nem lehet felismerni az arcát. Próbálja újra."
+ "Túlságosan hasonló, változtasson a pózon."
+ "Kicsit kevésbé fordítsa el a fejét."
+ "Tartsa kicsit egyenesebben a fejét."
+ "Kicsit kevésbé fordítsa el a fejét.""Távolítson el mindent, ami takarja az arcát.""Tisztítsa meg a képernyő tetejét, a fekete sávot is beleértve."
-
-
-
-
- "Nem lehet létrehozni az arcmodellt. Próbálja újra."
- "Sötét szemüveget észlelt a rendszer. Arcának teljesen láthatónak kell lennie."
- "Valami eltakarja az arcát. Arcának teljesen láthatónak kell lennie.""Sikertelen arcellenőrzés. A hardver nem érhető el."
@@ -924,14 +919,14 @@
"Újra""Oldja fel a funkciók és adatok eléréséhez""Elérte az arcalapú feloldási kísérletek maximális számát"
- "Nincs SIM"
- "Nincs SIM a táblagépben."
- "Nincs SIM az Android TV-eszközben."
- "Nincs SIM a telefonban."
- "Adjon hozzá egy SIM-et."
- "A SIM hiányzik vagy nem olvasható. Adjon hozzá egy SIM-et."
- "Nem használható SIM."
- "SIM véglegesen deaktiválva.\n Forduljon a vezeték nélküli szolgáltatójához másik SIM beszerzése érdekében."
+ "Nincs SIM-kártya."
+ "Nincs SIM-kártya a táblagépben."
+ "Nem található SIM kártya az Android TV eszközben."
+ "Nincs SIM-kártya a telefonban."
+ "Helyezzen be egy SIM kártyát."
+ "A SIM kártya hiányzik vagy nem olvasható. Helyezzen be egy SIM kártyát."
+ "A SIM kártya nem használható."
+ "SIM kártyája véglegesen letiltva.\n Forduljon a vezeték nélküli szolgáltatójához másik SIM kártya beszerzése érdekében.""Előző szám""Következő szám""Szünet"
@@ -941,10 +936,10 @@
"Előretekerés""Csak segélyhívások""A hálózat lezárva"
- "A SIM le van zárva PUK-kóddal."
+ "A SIM kártya le van zárva a PUK kóddal.""Nézze meg a felhasználói útmutatót, vagy vegye fel a kapcsolatot az ügyfélszolgálattal."
- "Zárolt SIM."
- "SIM zárolásának feloldása…"
+ "A SIM kártya le van zárva."
+ "SIM kártya feloldása...""%1$d alkalommal rosszul rajzolta le feloldási mintát. \n\nKérjük, %2$d másodperc múlva próbálja újra.""Ön helytelenül adta meg a jelszót %1$d alkalommal. \n \n Próbálja újra %2$d másodperc múlva.""Ön %1$d alkalommal helytelenül adta meg PIN kódját. \n \n Próbálja újra %2$d másodperc múlva."
@@ -1246,9 +1241,10 @@
"A(z) %1$s előkészítése.""Kezdő alkalmazások.""Rendszerindítás befejezése."
+ "Folytatja a beállítást?""Megnyomta a bekapcsológombot — ezzel általában kikapcsol a képernyő.\n\nPróbáljon finoman rákoppintani az ujjlenyomat beállítása közben."
- "A képernyő kikapcsolása befejezi a beállítást"
- "Kikapcsolás"
+ "Kikapcsolom"
+ "Beállítás folytatása""Folytatja az ujjlenyomat ellenőrzését?""Megnyomta a bekapcsológombot — ezzel általában kikapcsol a képernyő.\n\nPróbáljon finoman rákoppintani az ujjlenyomat ellenőrzéséhez.""Kikapcsolom"
@@ -1327,10 +1323,10 @@
"Módosítás: Beállítások > Alkalmazások""Engedélyezés mindig""Soha nem engedélyezem"
- "SIM eltávolítva"
- "A mobilhálózat nem lesz hozzáférhető, amíg újra nem indítja egy érvényes SIM-mel."
+ "SIM kártya eltávolítva"
+ "A mobilhálózat nem lesz elérhető, amíg újra nem indítja egy érvényes SIM kártya behelyezése után.""Kész"
- "SIM hozzáadva"
+ "SIM kártya hozzáadva""A mobilhálózathoz eléréséhez indítsa újra az eszközt.""Újraindítás""Mobilszolgáltatás aktiválása"
@@ -1401,16 +1397,16 @@
"Koppintson ide a beállításhoz""Válassza ki a beállításhoz""Előfordulhat, hogy újra kell formáznia az eszközt. Koppintson az eltávolításhoz."
- "Fotók, videók, zene és egyéb tárolására"
+ "Fotók és más tartalmak átviteléhez""Médiafájlok böngészése""Probléma a következővel: %s""A(z) %s nem működik""Koppintson a javításhoz""A(z) %s sérült. Válassza ki a javításhoz.""Előfordulhat, hogy újra kell formáznia az eszközt. Koppintson az eltávolításhoz."
- "%s felismerve"
+ "Nem támogatott %s""A(z) %s nem működik"
- "Koppintson ide a beállításhoz ."
+ "Ez az eszköz nem támogatja ezt a(z) %s eszközt. Koppintson rá a támogatott formátumban való beállításhoz.""Válassza ki a(z) %s támogatott formátumban történő beállításához.""Előfordulhat, hogy újra kell formáznia az eszközt""A(z) %s váratlanul eltávolítva"
@@ -1609,7 +1605,7 @@
"TV""Telefon""Dokkolóegység hangszórója"
- "Külső eszköz"
+ "HDMI""Fejhallgató""USB""Rendszer"
@@ -1642,7 +1638,7 @@
"A SIM kártya le van tiltva. A folytatáshoz adja meg a PUK kódot. A részletekért vegye fel a kapcsolatot szolgáltatójával.""Kívánt PIN-kód megadása""Kívánt PIN-kód megerősítése"
- "SIM zárolásának feloldása…"
+ "SIM kártya feloldása...""Helytelen PIN-kód.""4–8 számjegyű PIN kódot írjon be.""A PUK kód 8 karakter hosszú kell, hogy legyen."
@@ -1923,7 +1919,6 @@
"Régió beállítása""Adja meg a nyelvet""Javasolt"
- "Javasolt""Minden nyelv""Minden régió""Keresés"
@@ -1941,19 +1936,18 @@
"A kamera nem áll rendelkezésre""Folytatás a telefonon""A mikrofon nem áll rendelkezésre"
- "A Play Áruház nem áll rendelkezésre""Az Android TV beállításai nem állnak rendelkezésre""A táblagép beállításai nem állnak rendelkezésre""A telefon beállításai nem állnak rendelkezésre"
- "Ehhez jelenleg nem lehet hozzáférni a következő eszközön: %1$s. Próbálja újra Android TV-eszközén."
- "Ehhez jelenleg nem lehet hozzáférni a következő eszközön: %1$s. Próbálja újra a táblagépén."
- "Ehhez jelenleg nem lehet hozzáférni a következő eszközön: %1$s. Próbálja újra a telefonján."
+ "Ehhez nem lehet hozzáférni a következő eszközön: %1$s. Próbálja újra Android TV-eszközén."
+ "Ehhez nem lehet hozzáférni a következő eszközön: %1$s. Próbálja újra a táblagépén."
+ "Ehhez nem lehet hozzáférni a következő eszközön: %1$s. Próbálja újra a telefonján."
+ "Ehhez jelenleg nem lehet hozzáférni a következő eszközön: %1$s. Próbálja újra Android TV-eszközén."
+ "Ehhez jelenleg nem lehet hozzáférni a következő eszközön: %1$s. Próbálja újra a táblagépén."
+ "Ehhez jelenleg nem lehet hozzáférni a következő eszközön: %1$s. Próbálja újra a telefonján.""Ez az alkalmazás nagyobb biztonságot igényel. Próbálja újra Android TV-eszközén.""Ez az alkalmazás nagyobb biztonságot igényel. Próbálja újra a táblagépén.""Ez az alkalmazás nagyobb biztonságot igényel. Próbálja újra a telefonján."
- "Ehhez nem lehet hozzáférni a következő eszközön: %1$s. Próbálja újra az Android TV-eszközön."
- "Ehhez nem lehet hozzáférni a következő eszközön: %1$s. Próbálja újra a táblagépen."
- "Ehhez nem lehet hozzáférni a következő eszközön: %1$s. Próbálja újra a telefonon.""Ez az alkalmazás az Android egyik korábbi verziójához készült, így elképzelhető, hogy nem működik majd megfelelően ezen a rendszeren. Keressen frissítéseket, vagy vegye fel a kapcsolatot a fejlesztővel.""Frissítés keresése""Új üzenetei érkeztek"
@@ -2046,8 +2040,7 @@
"Engedélyezi a(z) %s számára, hogy hozzáférjen az összes eszköznaplóhoz?""Egyszeri hozzáférés engedélyezése""Tiltás"
- "Az eszköznaplók rögzítik, hogy mi történik az eszközén. Az alkalmazások ezeket a naplókat használhatják a problémák megkeresésére és kijavítására.\n\nBizonyos naplók bizalmas adatokat is tartalmazhatnak, ezért csak olyan alkalmazások számára engedélyezze az összes eszköznaplóhoz való hozzáférést, amelyekben megbízik. \n\nHa nem engedélyezi ennek az alkalmazásnak, hogy hozzáférjen az összes eszköznaplójához, az app továbbra is hozzáférhet a saját naplóihoz. Előfordulhat, hogy az eszköz gyártója továbbra is hozzáfér az eszközön található bizonyos naplókhoz és adatokhoz."
- "Az eszköznaplók rögzítik, hogy mi történik az eszközén. Az alkalmazások ezeket a naplókat használhatják a problémák megkeresésére és kijavítására.\n\nBizonyos naplók bizalmas adatokat is tartalmazhatnak, ezért csak olyan alkalmazások számára engedélyezze az összes eszköznaplóhoz való hozzáférést, amelyekben megbízik. \n\nHa nem engedélyezi ennek az alkalmazásnak, hogy hozzáférjen az összes eszköznaplójához, az app továbbra is hozzáférhet a saját naplóihoz. Előfordulhat, hogy az eszköz gyártója továbbra is hozzáfér az eszközön található bizonyos naplókhoz és adatokhoz.\n\nTovábbi információ: g.co/android/devicelogs."
+ "Az eszköznaplók rögzítik, hogy mi történik az eszközén. Az alkalmazások ezeket a naplókat használhatják a problémák megkeresésére és kijavítására.\n\nBizonyos naplók érzékeny adatokat is tartalmazhatnak, ezért csak olyan alkalmazások számára engedélyezze az összes eszköznaplóhoz való hozzáférést, amelyekben megbízik. \n\nHa nem engedélyezi ennek az alkalmazásnak, hogy hozzáférjen az összes eszköznaplójához, az app továbbra is hozzáférhet a saját naplóihoz. Előfordulhat, hogy az eszköz gyártója továbbra is hozzáfér az eszközön található bizonyos naplókhoz és adatokhoz. További információ.""Ne jelenjen meg újra""A(z) %1$s alkalmazás részleteket szeretne megjeleníteni a(z) %2$s alkalmazásból""Szerkesztés"
@@ -2060,7 +2053,8 @@
"Módosultak a Ne zavarjanak mód beállításai""Koppintson a letiltott elemek megtekintéséhez.""Értesítési beállítások áttekintése"
- "Az Android 13-as rendszertől kezdődően a telepített alkalmazásoknak engedélyre van szükségük értesítések küldéséhez. Koppintással módosíthatja ezt az engedélyt a meglévő alkalmazások esetében."
+
+ "Emlékeztessen később""Bezárás""Rendszer"
@@ -2288,6 +2282,5 @@
"Aktív alkalmazások ellenőrzése""Nem lehet hozzáférni a telefon kamerájához a következő eszközön: %1$s""Nem lehet hozzáférni a táblagép kamerájához a következő eszközön: %1$s"
- "Ehhez a tartalomhoz nem lehet hozzáférni streamelés közben. Próbálja újra a telefonján."
- "Rendszerbeállítás"
+ "Alapértelmezett nyelv"
diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml
index 120de02780d11e97f702ad9d528a4af7d32c5239..f4af7d1d925ce6098e09e8501227675a6a509223 100644
--- a/core/res/res/values-hy/strings.xml
+++ b/core/res/res/values-hy/strings.xml
@@ -21,6 +21,11 @@
"Բ"
+ "կԲ"
+ "ՄԲ"
+ "ԳԲ"
+ "ՏԲ"
+ "Պբ""%1$s%2$s""<Անանուն>""(Հեռախոսահամար չկա)"
@@ -28,7 +33,6 @@
"Ձայնային փոստ""MSISDN1""Միացման խնդիր կամ անվավեր MMI ծածակագիր:"
- "Գործառույթը չի աջակցվում։""Գործողությունը սահմանափակված է միայն ամրակայված հեռախոսահամարների համար:""Ռոումինգում չեք կարող փոխել զանգի վերահասցեավորման կարգավորումները ձեր հեռախոսից։""Ծառայությունը միացված է:"
@@ -43,8 +47,8 @@
"Ձեր մուտքագրած PIN-երը չեն համընկնում:""Մուտքագրեք PIN, որը 4-ից 8 թիվ է:""Մուտքագրեք PUK, որն 8 կամ ավել թիվ ունի:"
- "Ձեր SIM քարտը PUK կոդով կողպված է։ Մուտքագրեք PUK կոդը՝ այն ապակողպելու համար։"
- "SIM քարտն արգելահանելու համար մուտքագրեք PUK2 կոդը։"
+ "Ձեր SIM քարտը PUK-ով կողպված է: Մուտքագրեք PUK կոդը այն ապակողպելու համար:"
+ "Մուտքագրեք PUK2-ը՝ SIM քարտն արգելահանելու համար:""Ձախողվեց: Միացրեք SIM/RUIM կողպումը:"Մնաց %d փորձ, որից հետո SIM քարտն արգելափակվելու է:
@@ -241,10 +245,10 @@
"Սնուցման կոճակ""Վերագործարկել""Շտապ կանչ"
- "Հաղորդում վրիպակի մասին"
+ "Վրիպակի զեկույց""Ավարտել աշխատաշրջանը""Սքրինշոթ"
- "Հաղորդում վրիպակի մասին"
+ "Հաշվետվություն վրիպակի մասին""Սա տեղեկություններ կհավաքագրի ձեր սարքի առկա կարգավիճակի մասին և կուղարկի այն էլեկտրոնային նամակով: Որոշակի ժամանակ կպահանջվի վրիպակի մասին զեկուցելու պահից սկսած մինչ ուղարկելը: Խնդրում ենք փոքր-ինչ համբերատար լինել:""Ինտերակտիվ զեկույց""Հիմնականում օգտագործեք այս տարբերակը: Այն ձեզ թույլ է տալիս հետևել զեկույցի ստեղծման գործընթացին, խնդրի մասին լրացուցիչ տեղեկություններ մուտքագրել և սքրինշոթներ ստեղծել: Կարող է բաց թողնել քիչ օգտագործվող որոշ բաժիններ, որոնց ստեղծումը երկար է տևում:"
@@ -301,12 +305,12 @@
"օգտագործել օրացույցը""SMS""ուղարկել և դիտել SMS-ները"
- "Ֆայլեր"
- "սարքի ֆայլերի օգտագործման թույլտվություն"
- "Երաժշտություն և աուդիո"
- "սարքի երաժշտության և աուդիո ֆայլերի հասանելիություն"
- "Լուսանկարներ և տեսանյութեր"
- "սարքի լուսանկարների և տեսանյութերի հասանելիություն"
+ "Ֆայլեր և փաստաթղթեր"
+ "սարքի ֆայլերի և փաստաթղթերի օգտագործման թույլտվություն"
+ "Երաժշտություն և այլ աուդիո նյութեր"
+ "բացել ձեր սարքում պահված աուդիո ֆայլերը"
+ "Լուսանկարներ և տեսանյութեր"
+ "բացել ձեր սարքում պահված գրաֆիկական և վիդեո ֆայլերը""Խոսափող""ձայնագրել""Ֆիզիկական ակտիվություն"
@@ -434,7 +438,7 @@
"Այս հավելվածը կարող է ավելացնել, հեռացնել կամ փոխել օրացույցի միջոցառումները ձեր Android TV սարքում: Այս հավելվածը կարող է ուղարկել հաղորդագրություններ օրացույցի սեփականատերերի անունից կամ փոխել միջոցառումները առանց դրանց սեփականատերերին ծանուցելու:""Այս հավելվածը կարող է ավելացնել, հեռացնել կամ փոխել օրացույցի միջոցառումները ձեր հեռախոսում: Այս հավելվածը կարող է ուղարկել հաղորդագրություններ օրացույցի սեփականատերերի անունից կամ փոխել միջոցառումները առանց դրանց սեփականատերերին ծանուցելու:""օգտագործել տեղադրություն տրամադրող հավելվյալ հրամաններ"
- "Հավելվածին թույլ է տալիս օգտագործել տեղադրության մասին տվյալների աղբյուրների կառավարման լրացուցիչ հրահանգներ: Սա կարող է ծրագրին թույլ տալ միջամտել GPS-ի կամ տեղադրության մասին տվյալների այլ աղբյուրների գործառույթներին:"
+ "Ծրագրին թույլ է տալիս օգտագործել տեղադրության մասին տվյալների աղբյուրների կառավարման լրացուցիչ հրահանգներ: Սա կարող է ծրագրին թույլ տալ միջամտել GPS-ի կամ տեղադրության մասին տվյալների այլ աղբյուրների գործառույթներին:""Տեղադրության ճշգրիտ տվյալների հասանելիություն միայն ֆոնային ռեժիմում""Երբ հավելվածն ակտիվ է, այն կարող է տեղորոշման ծառայություններից ստանալ ձեր ճշգրիտ տեղադրության տվյալները։ Որպես նախապայման՝ ձեր սարքի տեղորոշման ծառայությունները պետք է միացված լինեն։ Դա կարող է ավելի արագ սպառել մարտկոցի լիցքը։""տեղադրության մոտավոր տվյալների հասանելիություն միայն ակտիվ ռեժիմում"
@@ -582,14 +586,13 @@
"Էկրանի կողպում""Շարունակելու համար ապակողպեք էկրանը""Մատը ուժեղ սեղմեք սկաների վրա"
- "Մատնահետքը չի հաջողվում ճանաչել։ Նորից փորձեք։"
+ "Չհաջողվեց մշակել մատնահետքը: Նորից փորձեք:""Մաքրեք մատնահետքերի սկաները և նորից փորձեք""Մաքրեք սկաները և նորից փորձեք""Մատը ուժեղ սեղմեք սկաների վրա""Շատ դանդաղ անցկացրիք մատը: Փորձեք նորից:""Փորձեք մեկ այլ մատնահետք""Շատ լուսավոր է"
- "Հայտնաբերվել է սնուցման կոճակի սեղմում""Փորձեք փոխել մատի դիրքը""Ամեն անգամ թեթևակի փոխեք մատի դիրքը"
@@ -601,17 +604,16 @@
"Դեմքը ճանաչվեց: Սեղմեք «Հաստատել»:""Մատնահետքի սարքն անհասանելի է:""Հնարավոր չէ կարգավորել մատնահետքը"
- "Մատնահետքի կարգավորման ժամանակը սպառվել է։ Նորից փորձեք։"
+ "Մատնահետքի գրանցման ժամանակը սպառվել է: Փորձեք նորից:""Իսկորոշումը մատնահետքի միջոցով չեղարկվեց:""Մատնահետքով նույնականացման գործողությունը չեղարկվել է օգտատիրոջ կողմից:"
- "Չափազանց շատ փորձեր են արվել։ Օգտագործեք էկրանի կողպումը։"
- "Չափազանց շատ փորձեր են արվել։ Օգտագործեք էկրանի կողպումը։"
- "Չի հաջողվում մշակել մատնահետքը։ Նորից փորձեք։"
+ "Չափից շատ փորձ եք կատարել: Փորձեք նորից քիչ հետո:"
+ "Չափից շատ փորձ եք կատարել: Մատնահետքերի սկաներն անջատվել է:"
+ "Փորձեք նորից:""Գրանցված մատնահետք չկա:""Այս սարքը չունի մատնահետքերի սկաներ։""Տվիչը ժամանակավորապես անջատված է:""Մատնահետքերի սկաները հնարավոր չէ օգտագործել։ Այցելեք սպասարկման կենտրոն։"
- "Սեղմվել է սնուցման կոճակը""Մատնահետք %d""Օգտագործել մատնահետք""Օգտագործել մատնահետք կամ էկրանի կողպում"
@@ -632,33 +634,26 @@
"Մատնահետքով ապակողպում""Մատնահետքերի սկաները հնարավոր չէ օգտագործել""Այցելեք սպասարկման կենտրոն։"
- "Չհաջողվեց ստեղծել ձեր դեմքի մոդելը։ Նորից փորձեք։"
+ "Չհաջողվեց գրանցել դեմքի ճշգրիտ տվյալները։ Կրկնեք։""Շատ լուսավոր է։ Փորձեք ավելի թեթև լուսավորություն։"
- "Թույլ լուսավորություն"
- "Փոքր-ինչ հեռու պահեք հեռախոսը"
- "Մոտեցրեք հեռախոսը"
- "Բարձրացրեք հեռախոսը"
- "Իջեցրեք հեռախոսը"
- "Տեղափոխեք հեռախոսը ձախ"
- "Տեղափոխեք հեռախոսը աջ"
+ "Շատ մութ է։ Փորձեք ավելի պայծառ լուսավորություն։"
+ "Փոքր-ինչ հեռու պահեք հեռախոսը։"
+ "Մոտեցրեք հեռախոսը։"
+ "Բարձրացրեք հեռախոսը։"
+ "Իջեցրեք հեռախոսը։"
+ "Տեղափոխեք հեռախոսը ձախ:"
+ "Տեղափոխեք հեռախոսը աջ:""Նայեք ուղիղ էկրանին։"
- "Ձեր դեմքը չի երևում։ Հեռախոսը պահեք աչքերի մակարդակում։"
+ "Պահեք ձեր դեմքն անմիջապես հեռախոսի էկրանի դիմաց:""Շատ եք շարժում։ Հեռախոսն անշարժ պահեք։""Նորից փորձեք։"
- "Դեմքը չի հաջողվում ճանաչել։ Նորից փորձեք։"
- "Թեթևակի փոխեք գլխի դիրքը"
- "Նայեք ուղիղ էկրանին"
- "Նայեք ուղիղ էկրանին"
- "Նայեք ուղիղ էկրանին"
+ "Չհաջողվեց ճանաչել դեմքը։ Նորից փորձեք:"
+ "Շատ նման է նախորդին։ Փոխեք ձեր դիրքը։"
+ "Գլուխն ուղիղ պահեք։"
+ "Գլուխը մի փոքր իջեցրեք։"
+ "Գլուխն ուղիղ պահեք։""Հեռացրեք այն ամենը, ինչը թաքցնում է ձեր երեսը:""Մաքրեք էկրանի վերևի մասը, ներառյալ սև գոտին"
-
-
-
-
- "Չհաջողվեց ստեղծել ձեր դեմքի մոդելը։ Նորից փորձեք։"
- "Հանեք ակնոցը։ Ձեր դեմքը պետք է ամբողջովին տեսանելի լինի։"
- "Դեմքի մի մասը ծածկված է։ Ձեր դեմքը պետք է ամբողջովին տեսանելի լինի։""Չհաջողվեց հաստատել դեմքը։ Սարքն անհասանելի է:"
@@ -699,7 +694,7 @@
"փոփոխել կամ ջնջել ձեր ընդհանուր հիշողության բովանդակությունը""Հավելվածին թույլ է տալիս փոփոխել ձեր ընդհանուր հիշողության պարունակությունը:""կատարել կամ ստանալ SIP զանգեր"
- "Հավելվածին թույլ է տալիս կատարել և ստանալ SIP զանգեր:"
+ "Ծրագրին թույլ է տալիս կատարել և ստանալ SIP զանգեր:""գրանցել նոր հեռահաղորդակցության SIM կապեր""Հավելվածին թույլ է տալիս գրանցել հեռահաղորդակցության նոր SIM կապեր:""գրանցել նոր հեռահաղորդակցության կապեր"
@@ -733,11 +728,11 @@
"փոփոխել մուտքի սարքի չափաբերումը""Թույլ է տալիս ծրագրին փոփոխել հպէկրանի չափաբերման կարգավորումները: Սովորական ծրագրերի համար երբեք պետք չի գալու:""DRM հավաստագրերի մատչում"
- "Հավելվածին թույլ է տալիս տրամադրել և օգտագործել DRM վկայագրեր: Սովորական ծրագրերի համար երբեք պետք չի գալիս:"
+ "Ծրագրին թույլ է տալիս տրամադրել և օգտագործել DRM վկայագրեր: Սովորական ծրագրերի համար երբեք պետք չի գալիս:""ստանալ Android Beam-ով փոխանցման կարգավիճակը"
- "Հավելվածին թույլ է տալիս ստանալ Android Beam-ով ընթացիկ փոխանցումների մասին տեղեկատվություն:"
+ "Ծրագրին թույլ է տալիս ստանալ Android Beam-ով ընթացիկ փոխանցումների մասին տեղեկատվություն:""հեռացնել DRM վկայագրեր"
- "Հավելվածին թույլ է տալիս հեռացնել DRM վկայագրեր: Սովորական ծրագրերի համար երբեք պետք չի գալիս:"
+ "Ծրագրին թույլ է տալիս հեռացնել DRM վկայագրեր: Սովորական ծրագրերի համար երբեք պետք չի գալիս:""Միացում օպերատորի հաղորդագրությունների ծառայության հետ""Թույլ է տալիս տիրոջը կապվել օպերատորի հաղորդագրությունների ծառայության վերին մակարդակի միջերեսի հետ: Սա երբեք չի պահանջվում սովորական հավելվածների համար:""կապվել օպերատորի ծառայություններին"
@@ -924,14 +919,14 @@
"Կրկին փորձեք""Ապակողպեք՝ բոլոր գործառույթներն ու տվյալներն օգտագործելու համար""Դեմքով ապակողպման փորձերի առավելագույն քանակը գերազանցված են"
- "SIM քարտ չկա"
- "Պլանշետում SIM քարտ չկա։"
- "Ձեր Android TV սարքում SIM քարտ չկա։"
- "Հեռախոսում SIM քարտ չկա։"
- "Ավելացրեք SIM քարտ։"
- "SIM քարտը բացակայում է կամ ընթեռնելի չէ։ Ավելացրեք SIM քարտ։"
- "Անվավեր SIM քարտ։"
- "Ձեր SIM քարտն ընդմիշտ ապակտիվացվել է։\n Նոր SIM քարտ ձեռք բերելու համար կապվեք ձեր բջջային օպերատորի հետ։"
+ "SIM քարտ չկա"
+ "Գրասալիկում SIM քարտ չկա:"
+ "Ձեր Android սարքում SIM քարտ չկա։"
+ "Հեռախոսում SIM քարտ չկա:"
+ "Մտցրեք SIM քարտը:"
+ "SIM քարտը բացակայում է կամ չի կարող կարդացվել: Մտցրեք SIM քարտ:"
+ "Անպիտան SIM քարտ:"
+ "Ձեր SIM քարտը ընդմիշտ կասեցված է:\n Կապվեք ձեր անլար ծառայությունների մատակարարի հետ մեկ այլ SIM քարտի համար:""Նախորդը""Հաջորդը""Դադարեցնել"
@@ -941,10 +936,10 @@
"Արագ առաջ անցնել""Միայն շտապ կանչեր""Ցանցը կողպված է"
- "SIM քարտը կողպված է PUK կոդով։"
+ "SIM քարտը PUK-ով կողպված է:""Տեսեք Օգտատիրոջ ուղեցույցը կամ դիմեք Բաժանորդների սպասարկման կենտրոն:"
- "SIM քարտը կողպված է։"
- "SIM քարտն ապակողպվում է…"
+ "SIM քարտը կողպված է:"
+ "SIM քարտը ապակողպվում է…""Դուք %1$d անգամ սխալ եք հավաքել ձեր ապակողպման սխեման: \n\nՓորձեք կրկին %2$d վայրկյանից:""Դուք սխալ եք մուտքագրել ձեր գաղտնաբառը %1$d անգամ: \n\n Փորձեք կրկին %2$d վայրկյանից:""Դուք %1$d անգամ սխալ եք մուտքագրել ձեր PIN-ը: \n\nՓորձեք կրկին %2$d վայրկյանից:"
@@ -1246,9 +1241,10 @@
"%1$s հավելվածը պատրաստվում է:""Հավելվածները մեկնարկում են:""Բեռնումն ավարտվում է:"
+ "Շարունակե՞լ կարգավորումը""Դուք սեղմել եք սնուցման կոճակը։ Սովորաբար դրա արդյունքում էկրանն անջատվում է։\n\nՄատնահետքը ավելացնելու համար թեթևակի հպեք կոճակին։"
- "Ավարտեք կարգավորումը՝ անջատելով էկրանը"
- "Անջատել"
+ "Անջատել էկրանը"
+ "Շարունակել գրանցումը""Շարունակե՞լ մատնահետքի սկանավորումը""Դուք սեղմել եք սնուցման կոճակը։ Սովորաբար դրա արդյունքում էկրանն անջատվում է։\n\nՄատնահետքը սկանավորելու համար թեթևակի հպեք կոճակին։""Անջատել էկրանը"
@@ -1327,10 +1323,10 @@
"Դուք կարող եք փոխել սա ավելի ուշ Կարգավորումներում > Ծրագրերում""Միշտ թույլատրել""Երբեք չթույլատրել"
- "SIM քարտը հեռացված է"
- "Բջջային ցանցը անհասանելի կլինի, մինչև չվերագործարկեք սարքը վավեր SIM քարտ տեղադրելուց հետո։"
+ "SIM քարտը հեռացված է"
+ "Բջջային ցանցը անհասանելի կլինի, մինչև չվերագործարկեք վավեր SIM քարտ տեղադրելուց հետո:""Կատարված"
- "SIM քարտն ավելացված է"
+ "SIM քարտը ավելացվել է""Վերագործարկեք ձեր սարքը` բջջային ցանց մուտք ունենալու համար:""Վերագործարկել""Ակտիվացրեք բջջային ծառայությունը"
@@ -1376,7 +1372,7 @@
"USB միացքը կարող է օգտագործվել""Հեռախոսում ջուր կամ աղտ չի հայտնաբերվել:""Վրիպակի զեկույցի ստեղծում…"
- "Կիսվե՞լ վրիպակի մասին հաղորդմամբ"
+ "Տրամադրե՞լ վրիպակի զեկույցը:""Վրիպակի զեկույցի տրամադրում…""Այս սարքի անսարքությունների վերացման նպատակով ձեր ադմինիստրատորին անհրաժեշտ է վրիպակի հաշվետվություն: Կարող են տրամադրվել տեղեկություններ հավելվածների մասին և այլ տվյալներ։""ՏՐԱՄԱԴՐԵԼ"
@@ -1401,16 +1397,16 @@
"Հպեք՝ կարգավորելու համար""Ընտրեք՝ կարգավորելու համար""Կարող է պահանջվել, որ նորից ֆորմատավորեք սարքը։ Հպեք՝ հեռացնելու համար։"
- "Լուսանկարներ, տեսանյութեր, երգեր և այլ բովանդակություն պահելու համար"
+ "Լուսանկարներ և մեդիա ֆայլեր տեղափոխելու համար""Մեդիա ֆայլերի դիտում""%s հիշասարքի հետ կապված խնդիր կա""%sը չի աշխատում""Հպեք՝ շտկելու համար""%s-ը վնասված է: Ընտրեք՝ շտկելու համար:""Կարող է պահանջվել, որ նորից ֆորմատավորեք սարքը։ Հպեք՝ հեռացնելու համար։"
- "Հայտնաբերվել է %s"
+ "Չապահովվող %s""%sը չի աշխատում"
- "Հպեք կարգավորելու համար։"
+ "Այս սարքը չի աջակցում այս %s-ը: Հպեք՝ աջակցվող ձևաչափով կարգավորելու համար:""Ընտրեք՝ կրիչը (%s) աջակցվող ձևաչափով կարգավորելու համար։""Կարող է պահանջվել, որ նորից ֆորմատավորեք սարքը""%s-ը հեռացվել է առանց անջատելու"
@@ -1420,7 +1416,7 @@
"%s հիշասարքն անջատվում է""Չհեռացնեք սարքը""Կարգավորել"
- "Հանել"
+ "Անջատել""Ուսումնասիրել""Աուդիոելքի սարքի փոխարկում""%s-ը տեղադրված չէ"
@@ -1446,7 +1442,7 @@
"երթուղել մեդիա արտածումը""Թույլ է տալիս հավելվածին մեդիա արտածումը երթուղել այլ արտաքին սարքեր:""կարդալ տեղադրման աշխատաշրջանները"
- "Հավելվածին թույլ է տալիս կարդալ տեղադրման աշխատաշրջանները: Սա թույլ է տալիս տեղեկանալ փաթեթների ակտիվ տեղադրումների մանրամասներին:"
+ "Ծրագրին թույլ է տալիս կարդալ տեղադրման աշխատաշրջանները: Սա թույլ է տալիս տեղեկանալ փաթեթների ակտիվ տեղադրումների մանրամասներին:""պահանջել տեղադրման փաթեթներ""Թույլ է տալիս հավելվածին պահանջել փաթեթների տեղադրումը:""պահանջել փաթեթների ջնջում"
@@ -1609,7 +1605,7 @@
"Հեռուստացույց""Հեռախոս""Դոկ-կայանի բարձրախոսներ"
- "Արտաքին սարք"
+ "HDMI""Ականջակալներ""USB""Համակարգ"
@@ -1642,7 +1638,7 @@
"SIM-ը այս պահին անջատված է: Մուտքագրեք PUK կոդը շարունակելու համար: Մանրամասների համար կապվեք օպերատորի հետ:""Մուտքագրեք ցանկալի PIN ծածկագիրը""Հաստատեք ցանկալի PIN ծածկագիրը"
- "SIM քարտն ապակողպվում է…"
+ "Ապակողպում է SIM քարտը ...""Սխալ PIN ծածկագիր:""Մուտքագրեք PIN, որը 4-ից 8 թիվ է:""PUK կոդը պետք է լինի 8 թիվ:"
@@ -1686,7 +1682,7 @@
"Ամբողջական վերահսկումն անհրաժեշտ է միայն այն հավելվածներին, որոնք օգնում են ձեզ հատուկ գործառույթներից օգտվելիս։""Դիտել և կառավարել էկրանը""Կարող է կարդալ էկրանի ողջ բովանդակությունը և ցուցադրել բովանդակություն այլ հավելվածների վրայից։"
- "Դիտել և կատարել գործողությունները"
+ "Դիտել և համակարգել գործողությունները""Կարող է հետագծել ձեր գործողությունները հավելվածներում և սարքակազմի սենսորների վրա, ինչպես նաև հավելվածներում կատարել գործողություններ ձեր անունից։""Թույլատրել""Մերժել"
@@ -1923,7 +1919,6 @@
"Նախընտրելի տարածաշրջան""Մուտքագրեք լեզուն""Առաջարկվող"
- "Առաջարկվող""Բոլոր լեզուները""Բոլոր տարածաշրջանները""Որոնում"
@@ -1939,21 +1934,20 @@
"%1$s՝ անհասանելի է""Անհրաժեշտ է թույլտվություն""Տեսախցիկն անհասանելի է"
- "Շարունակեք հեռախոսով"
+ "Շարունակեք հեռախոսով""Խոսափողն անհասանելի է"
- "Play Խանութը հասանելի չէ""Android TV-ի կարգավորումներն անհասանելի են""Պլանշետի կարգավորումներն անհասանելի են""Հեռախոսի կարգավորումներն անհասանելի են"
- "Այս պահին հնարավոր չէ բացել հավելվածը %1$s սարքում։ Փորձեք Android TV սարքում։"
- "Այս պահին հնարավոր չէ բացել հավելվածը %1$s սարքում։ Փորձեք ձեր պլանշետում։"
- "Այս պահին հնարավոր չէ բացել հավելվածը %1$s սարքում։ Փորձեք ձեր հեռախոսում։"
+ "Հնարավոր չէ բացել հավելվածը ձեր %1$s սարքում։ Օգտագործեք ձեր Android TV սարքը։"
+ "Հնարավոր չէ բացել հավելվածը ձեր %1$s սարքում։ Օգտագործեք ձեր պլանշետը։"
+ "Հնարավոր չէ բացել հավելվածը ձեր %1$s սարքում։ Օգտագործեք ձեր հեռախոսը։"
+ "Այս պահին հնարավոր չէ բացել հավելվածը %1$s սարքում։ Օգտագործեք ձեր Android TV սարքը։"
+ "Այս պահին հնարավոր չէ բացել հավելվածը %1$s սարքում։ Օգտագործեք ձեր պլանշետը։"
+ "Այս պահին հնարավոր չէ բացել հավելվածը %1$s սարքում։ Օգտագործեք ձեր հեռախոսը։""Այս հավելվածը պահանջում է անվտանգության լրացուցիչ միջոցներ։ Օգտագործեք ձեր Android TV սարքը։""Այս հավելվածը պահանջում է անվտանգության լրացուցիչ միջոցներ։ Օգտագործեք ձեր պլանշետը։""Այս հավելվածը պահանջում է անվտանգության լրացուցիչ միջոցներ։ Օգտագործեք ձեր հեռախոսը։"
- "Այս գործառույթը հասանելի չէ %1$s սարքում։ Օգտագործեք ձեր Android TV սարքը։"
- "Այս գործառույթը հասանելի չէ %1$s սարքում։ Օգտագործեք ձեր պլանշետը։"
- "Այս գործառույթը հասանելի չէ %1$s սարքում։ Օգտագործեք ձեր հեռախոսը։""Այս հավելվածը ստեղծվել է Android-ի ավելի հին տարբերակի համար և կարող է պատշաճ չաշխատել: Ստուգեք թարմացումների առկայությունը կամ դիմեք մշակողին:""Ստուգել նոր տարբերակի առկայությունը""Դուք ունեք նոր հաղորդագրություններ"
@@ -2046,8 +2040,7 @@
"Հասանելի դարձնե՞լ %s հավելվածին սարքի բոլոր մատյանները""Թույլատրել մեկանգամյա մուտքը""Չթույլատրել"
- "Այն, ինչ տեղի է ունենում ձեր սարքում, գրանցվում է սարքի մատյաններում։ Հավելվածները կարող են դրանք օգտագործել անսարքությունները հայտնաբերելու և վերացնելու նպատակով։\n\nՔանի որ որոշ մատյաններ անձնական տեղեկություններ են պարունակում, խորհուրդ ենք տալիս հասանելի դարձնել ձեր սարքի բոլոր մատյանները միայն այն հավելվածներին, որոնց վստահում եք։ \n\nԵթե այս հավելվածին նման թույլտվություն չեք տվել, դրան նախկինի պես հասանելի կլինեն իր մատյանները։ Հնարավոր է՝ ձեր սարքի արտադրողին ևս հասանելի լինեն սարքի որոշ մատյաններ և տեղեկություններ։"
- "Այն, ինչ տեղի է ունենում ձեր սարքում, գրանցվում է սարքի մատյաններում։ Հավելվածները կարող են դրանք օգտագործել անսարքությունները հայտնաբերելու և վերացնելու նպատակով։\n\nՔանի որ որոշ մատյաններ անձնական տեղեկություններ են պարունակում, խորհուրդ ենք տալիս հասանելի դարձնել ձեր սարքի բոլոր մատյանները միայն այն հավելվածներին, որոնց վստահում եք։ \n\nԵթե այս հավելվածին նման թույլտվություն չեք տվել, դրան նախկինի պես հասանելի կլինեն իր մատյանները։ Հնարավոր է՝ ձեր սարքի արտադրողին ևս հասանելի լինեն սարքի որոշ մատյաններ և տեղեկություններ։\n\nՄանրամասների համար այցելեք g.co/android/devicelogs էջ։"
+ "Այն, ինչ տեղի է ունենում ձեր սարքում, գրանցվում է սարքի մատյաններում։ Հավելվածները կարող են դրանք օգտագործել անսարքությունները հայտնաբերելու և վերացնելու նպատակով։\n\nՔանի որ որոշ մատյաններ անձնական տեղեկություններ են պարունակում, խորհուրդ ենք տալիս հասանելի դարձնել ձեր սարքի բոլոր մատյանները միայն այն հավելվածներին, որոնց վստահում եք։ \n\nԵթե այս հավելվածին նման թույլտվություն չեք տվել, դրան նախկինի պես հասանելի կլինեն իր մատյանները։ Հնարավոր է՝ ձեր սարքի արտադրողին ևս հասանելի լինեն սարքի որոշ մատյաններ և տեղեկություններ։ Իմանալ ավելին""Այլևս ցույց չտալ""%1$s հավելվածն ուզում է ցուցադրել հատվածներ %2$s հավելվածից""Փոփոխել"
@@ -2060,7 +2053,8 @@
"«Չանհանգստացնել» ռեժիմի կարգավորումները փոխվել են""Հպեք՝ տեսնելու, թե ինչ է արգելափակվել:""Ստուգեք ծանուցումների կարգավորումները"
- "Հավելվածներին, որոնք տեղադրում եք Android 13 և ավելի նոր տարբերակներով սարքերում, անհրաժեշտ է տրամադրել ծանուցումներ ուղարկելու թույլտվություն։ Հպեք և փոխեք այս թույլտվությունն արդեն տեղադրված հավելվածների համար։"
+
+ "Հիշեցնել ավելի ուշ""Փակել""Համակարգ"
@@ -2146,7 +2140,7 @@
"Այս բովանդակությունը հնարավոր չէ ուղարկել անձնական հավելվածներով""Այս բովանդակությունը հնարավոր չէ բացել անձնական հավելվածներով""Աշխատանքային պրոֆիլի ծառայությունը դադարեցված է"
- "Հպեք միացնելու համար"
+ "Հպեք՝ միացնելու համար""Աշխատանքային հավելվածներ չկան""Անձնական հավելվածներ չկան""Բացե՞լ %s հավելվածը ձեր անձնական պրոֆիլում"
@@ -2288,6 +2282,5 @@
"Ստուգել ակտիվ հավելվածները""Հնարավոր չէ օգտագործել հեռախոսի տեսախցիկը ձեր %1$s սարքից""Հնարավոր չէ օգտագործել պլանշետի տեսախցիկը ձեր %1$s սարքից"
- "Այս բովանդակությունը հասանելի չէ հեռարձակման ընթացքում։ Օգտագործեք ձեր հեռախոսը։"
- "Կանխադրված"
+ "Համակարգի լեզու"
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index 838b35b434742dfb4f80deb13db6cc4fa4ef2ed7..def771b0d146d701b82fb1f333be4441130929ed 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Tanpa judul>""(Tidak ada nomor telepon)"
@@ -28,7 +33,6 @@
"Pesan suara""MSISDN1""Masalah sambungan atau kode MMI tidak valid."
- "Fitur tidak didukung.""Operasi dibatasi untuk nomor panggilan tetap saja.""Tidak dapat mengubah setelan penerusan panggilan dari ponsel saat roaming""Layanan telah diaktifkan."
@@ -43,8 +47,8 @@
"PIN yang Anda ketik tidak cocok.""Ketikkan PIN berupa 4 sampai 8 angka.""Ketik PUK yang terdiri dari 8 angka atau lebih."
- "SIM Anda dikunci PUK. Ketik kode PUK untuk membuka kuncinya."
- "Ketik PUK2 untuk membatalkan blokir SIM."
+ "Kartu SIM Anda dikunci PUK. Ketikkan kode PUK untuk membukanya."
+ "Ketikkan PUK2 untuk membuka kartu SIM""Gagal, aktifkan Kunci SIM/RUIM."Sisa %d percobaan sebelum SIM terkunci.
@@ -52,7 +56,7 @@
"IMEI""MEID"
- "ID Penelepon Masuk"
+ "Nomor Penelepon Masuk""Menyembunyikan ID Penelepon untuk Panggilan Keluar""ID Saluran yang Terhubung""Batasan ID Saluran yang Terhubung"
@@ -67,12 +71,12 @@
"Penolakan panggilan yang tidak diinginkan""Pengiriman nomor panggilan""Jangan ganggu"
- "ID penelepon diatur default ke \"dibatasi\". Panggilan selanjutnya: Dibatasi"
- "ID penelepon diatur default ke \"dibatasi\". Panggilan selanjutnya: Tidak dibatasi."
- "ID penelepon diatur default ke tidak dibatasi. Panggilan selanjutnya: Dibatasi"
- "ID penelepon diatur default ke tidak dibatasi. Panggilan selanjutnya: Tidak dibatasi"
+ "Nomor penelepon default \"dibatasi\". Panggilan selanjutnya: Dibatasi"
+ "Nomor pengguna default \"dibatasi\". Panggilan selanjutnya: Tidak dibatasi."
+ "Nomor penelepon default tidak dibatasi. Panggilan selanjutnya: Dibatasi"
+ "Nomor penelepon default tidak dibatasi. Panggilan selanjutnya: Tidak dibatasi""Layanan tidak diperlengkapi."
- "Anda tidak dapat mengubah setelan ID penelepon."
+ "Anda tidak dapat mengubah setelan nomor penelepon.""Tidak ada layanan data seluler""Panggilan darurat tidak tersedia""Tidak ada layanan panggilan suara"
@@ -123,7 +127,7 @@
"Untuk menelepon dan mengirim pesan melalui Wi-Fi, tanyalah ke operator Anda terlebih dahulu untuk menyiapkan layanan ini. Kemudian, aktifkan kembali panggilan Wi-Fi dari Setelan. (Kode error: %1$s)"
- "Terjadi error saat mendaftarkan panggilan Wi‑Fi dengan operator Anda: %1$s"
+ "Terjadi masalah saat mendaftarkan panggilan Wi‑Fi dengan operator Anda: %1$s"
@@ -153,7 +157,7 @@
"Kode fitur selesai.""Masalah sambungan atau kode fitur tidak valid.""Oke"
- "Terjadi error jaringan."
+ "Terjadi kesalahan jaringan.""Tidak dapat menemukan URL.""Skema autentikasi situs tidak didukung.""Tidak dapat mengautentikasi."
@@ -301,12 +305,12 @@
"mengakses kalender""SMS""mengirim dan melihat pesan SMS"
- "File"
- "mengakses file di perangkat Anda"
- "Musik dan audio"
- "mengakses musik dan audio di perangkat Anda"
- "Foto dan video"
- "mengakses foto dan video di perangkat Anda"
+ "File & dokumen"
+ "mengakses file dan dokumen di perangkat Anda"
+ "Musik & audio lainnya"
+ "mengakses file audio di perangkat Anda"
+ "Foto & video"
+ "mengakses file gambar dan video di perangkat Anda""Mikrofon""merekam audio""Aktivitas fisik"
@@ -345,7 +349,7 @@
"Mengizinkan apl memperluas atau menciutkan bilah status.""Tampilkan notifikasi sebagai aktivitas layar penuh di perangkat terkunci""Mengizinkan aplikasi untuk menampilkan notifikasi sebagai aktivitas layar penuh di perangkat terkunci"
- "Memasang pintasan"
+ "memasang pintasan""Mengizinkan aplikasi menambahkan pintasan Layar Utama tanpa tindakan dari pengguna.""meng-uninstal pintasan""Mengizinkan aplikasi menghapus pintasan Layar Utama tanpa tindakan dari pengguna."
@@ -582,14 +586,13 @@
"Gunakan kunci layar""Masukkan kunci layar untuk melanjutkan""Tekan sensor dengan kuat"
- "Tidak dapat mengenali sidik jari. Coba lagi."
+ "Tidak dapat memproses sidik jari. Coba lagi.""Bersihkan sensor sidik jari lalu coba lagi""Bersihkan sensor lalu coba lagi""Tekan sensor dengan kuat""Jari digerakkan terlalu lambat. Coba lagi.""Coba sidik jari lain""Terlalu terang"
- "Penekanan tombol daya terdeteksi""Coba sesuaikan""Ubah sedikit posisi jari di setiap percobaan"
@@ -601,17 +604,16 @@
"Wajah diautentikasi, silakan tekan konfirmasi""Hardware sidik jari tidak tersedia.""Tidak dapat menyiapkan sidik jari"
- "Waktu penyiapan sidik jari habis. Coba lagi."
+ "Waktu sidik jari habis. Coba lagi.""Operasi sidik jari dibatalkan.""Operasi sidik jari dibatalkan oleh pengguna."
- "Terlalu banyak upaya gagal. Gunakan kunci layar."
- "Terlalu banyak upaya gagal. Gunakan kunci layar."
- "Tidak dapat memproses sidik jari. Coba lagi."
+ "Terlalu banyak upaya. Coba lagi nanti."
+ "Terlalu sering dicoba. Sensor sidik jari dinonaktifkan."
+ "Coba lagi.""Tidak ada sidik jari yang terdaftar.""Perangkat ini tidak memiliki sensor sidik jari.""Sensor dinonaktifkan untuk sementara.""Tidak dapat menggunakan sensor sidik jari. Kunjungi penyedia reparasi"
- "Tombol daya ditekan""Jari %d""Gunakan sidik jari""Gunakan sidik jari atau kunci layar"
@@ -621,60 +623,53 @@
"Terjadi error. Coba lagi.""Ikon sidik jari"
- "Buka dengan Wajah"
- "Masalah pada Buka dengan Wajah"
+ "Face Unlock"
+ "Masalah pada Face Unlock""Ketuk untuk menghapus model wajah, lalu tambahkan wajah Anda lagi"
- "Siapkan Buka dengan Wajah"
+ "Siapkan Face Unlock""Buka kunci ponsel dengan melihat ke ponsel"
- "Untuk menggunakan Buka dengan Wajah, aktifkan ""Akses kamera"" di Setelan > Privasi"
+ "Untuk menggunakan Face Unlock, aktifkan ""Akses kamera"" di Setelan > Privasi""Siapkan lebih banyak cara untuk membuka kunci""Ketuk untuk menambahkan sidik jari"
- "Buka dengan Sidik Jari"
+ "Fingerprint Unlock""Tidak dapat menggunakan sensor sidik jari""Kunjungi penyedia reparasi."
- "Tidak dapat membuat model wajah Anda. Coba lagi."
+ "Tidak bisa mengambil data wajah akurat. Coba lagi.""Terlalu terang. Coba cahaya yang lebih lembut."
- "Cahaya tidak cukup"
- "Jauhkan ponsel"
- "Dekatkan ponsel"
- "Gerakkan ponsel ke atas"
- "Gerakkan ponsel ke bawah"
- "Gerakkan ponsel ke kiri Anda"
- "Gerakkan ponsel ke kanan Anda"
+ "Terlalu gelap. Coba pencahayaan yang lebih cerah."
+ "Gerakkan ponsel menjauh."
+ "Gerakkan ponsel mendekat."
+ "Gerakkan ponsel ke atas."
+ "Gerakkan ponsel ke bawah."
+ "Gerakkan ponsel ke kiri."
+ "Gerakkan ponsel ke kanan.""Lihat langsung ke perangkat."
- "Tidak dapat melihat wajah Anda. Pegang ponsel sejajar dengan mata."
+ "Posisikan wajah Anda langsung di depan ponsel.""Terlalu banyak gerakan. Stabilkan ponsel.""Daftarkan ulang wajah Anda."
- "Tidak dapat mengenali wajah. Coba lagi."
- "Ubah sedikit posisi kepala"
- "Lihat lebih lurus ke arah ponsel"
- "Lihat lebih lurus ke arah ponsel"
- "Lihat lebih lurus ke arah ponsel"
+ "Tidak lagi dapat mengenali wajah. Coba lagi."
+ "Terlalu mirip, ubah pose Anda."
+ "Putar sedikit kepala Anda."
+ "Miringkan sedikit kepala Anda."
+ "Putar sedikit kepala Anda.""Singkirkan apa saja yang menutupi wajah Anda.""Bersihkan bagian atas layar, termasuk kotak hitam"
-
-
-
-
- "Tidak dapat membuat model wajah Anda. Coba lagi."
- "Kacamata hitam terdeteksi. Wajah Anda harus terlihat sepenuhnya."
- "Penutup wajah terdeteksi. Wajah Anda harus terlihat sepenuhnya.""Tidak dapat memverifikasi wajah. Hardware tidak tersedia."
- "Coba Buka dengan Wajah lagi"
+ "Coba Face Unlock lagi""Tidak dapat menyimpan data wajah. Hapus dahulu data lama.""Pemrosesan wajah dibatalkan."
- "Buka dengan Wajah dibatalkan oleh pengguna"
+ "Face Unlock dibatalkan oleh pengguna""Terlalu banyak percobaan. Coba lagi nanti."
- "Terlalu banyak upaya gagal. Buka dengan Wajah dinonaktifkan."
+ "Terlalu banyak upaya gagal. Face Unlock dinonaktifkan.""Terlalu banyak upaya gagal. Masukkan kunci layar.""Tidak dapat memverifikasi wajah. Coba lagi."
- "Anda belum menyiapkan Buka dengan Wajah"
- "Buka dengan Wajah tidak didukung di perangkat ini"
+ "Anda belum menyiapkan Face Unlock"
+ "Face Unlock tidak didukung di perangkat ini""Sensor dinonaktifkan untuk sementara.""%d wajah"
- "Gunakan Buka dengan Wajah"
+ "Gunakan Face Unlock""Gunakan face lock atau kunci layar""Gunakan wajah untuk melanjutkan""Gunakan face lock atau kunci layar untuk melanjutkan"
@@ -750,7 +745,7 @@
"Mengizinkan pemegang memulai layar untuk meninjau keputusan izin. Tidak pernah dibutuhkan untuk aplikasi normal.""mulai lihat fitur aplikasi""Memungkinkan pemegang mulai melihat info fitur untuk aplikasi."
- "mengakses data sensor pada frekuensi sampling yang tinggi"
+ "mengakses data sensor pada frekuensi pengambilan sampel yang tinggi""Mengizinkan aplikasi mengambil sampel data sensor pada frekuensi yang lebih besar dari 200 Hz""Setel aturan sandi""Mengontrol panjang dan karakter yang diizinkan dalam sandi dan PIN kunci layar."
@@ -923,15 +918,15 @@
"Coba lagi""Coba lagi""Membuka kunci untuk semua fitur dan data"
- "Percobaan Buka dengan Wajah melebihi batas maksimum"
- "Tidak ada SIM"
- "Tidak ada SIM di tablet."
- "Tidak ada SIM di perangkat Android TV."
- "Tidak ada SIM di ponsel."
- "Tambahkan SIM."
- "SIM tidak ada atau tidak dapat dibaca. Tambahkan SIM."
- "SIM tidak dapat digunakan."
- "SIM Anda telah dinonaktifkan secara permanen.\n Hubungi penyedia layanan nirkabel Anda untuk mendapatkan SIM lain."
+ "Percobaan Face Unlock melebihi batas maksimum"
+ "Tidak ada kartu SIM"
+ "Tidak ada kartu SIM dalam tablet."
+ "Tidak ada kartu SIM di perangkat Android TV."
+ "Tidak ada Kartu SIM di dalam ponsel."
+ "Masukkan kartu SIM."
+ "Kartu SIM tidak ada atau tidak dapat dibaca. Masukkan kartu SIM."
+ "Kartu SIM tidak dapat digunakan."
+ "Kartu SIM Anda telah dinonaktifkan secara permanen.\n Hubungi penyedia layanan nirkabel Anda untuk kartu SIM lain.""Lagu sebelumnya""Lagu berikutnya""Jeda"
@@ -941,10 +936,10 @@
"Maju cepat""Panggilan darurat saja""Jaringan terkunci"
- "SIM dikunci PUK."
+ "Kartu SIM terkunci PUK.""Lihatlah Panduan Pengguna atau hubungi Layanan Pelanggan."
- "SIM dikunci."
- "Membuka kunci SIM …"
+ "Kartu SIM terkunci."
+ "Membuka kartu SIM…""Anda telah %1$d kali salah menggambar pola pembuka kunci. \n\nCoba lagi dalam %2$d detik.""Anda telah %1$d kali salah mengetik sandi. \n\nCoba lagi dalam %2$d detik.""Anda telah %1$d kali salah mengetik PIN. \n\nCoba lagi dalam %2$d detik."
@@ -993,7 +988,7 @@
"Luaskan area buka kunci.""Buka kunci dengan menggeser.""Buka kunci dengan pola."
- "Buka dengan Wajah."
+ "Face Unlock.""Buka kunci dengan PIN.""PIN SIM terbuka.""PUK SIM terbuka."
@@ -1246,9 +1241,10 @@
"Menyiapkan %1$s.""Memulai aplikasi.""Menyelesaikan boot."
+ "Lanjutkan penyiapan?""Anda menekan tombol daya; tindakan ini biasanya akan menonaktifkan layar.\n\nCoba ketuk lembut saat menyiapkan sidik jari Anda."
- "Untuk mengakhiri penyiapan, nonaktifkan layar"
- "Nonaktifkan"
+ "Nonaktifkan layar"
+ "Lanjutkan penyiapan""Lanjutkan verifikasi sidik jari?""Anda menekan tombol daya; tindakan ini biasanya akan menonaktifkan layar.\n\nCoba ketuk lembut untuk memverifikasi sidik jari Anda.""Nonaktifkan layar"
@@ -1327,10 +1323,10 @@
"Anda dapat mengubah ini nanti di Setelan > Aplikasi""Selalu Izinkan""Jangan Pernah Izinkan"
- "SIM dihapus"
- "Jaringan seluler tidak akan tersedia sampai Anda memulai ulang dengan SIM yang valid."
+ "Kartu SIM dihapus"
+ "Jaringan seluler tidak akan tersedia sampai Anda memulai lagi dengan memasukkan kartu SIM yang valid.""Selesai"
- "SIM ditambahkan"
+ "Kartu SIM ditambahkan""Mulai ulang perangkat Anda untuk mengakses jaringan selular.""Mulai Ulang""Aktifkan layanan seluler"
@@ -1382,7 +1378,7 @@
"BAGIKAN""TOLAK""Pilih metode masukan"
- "Biarkan di layar meski keyboard fisik aktif"
+ "Pertahankan di layar jika keyboard fisik masih aktif""Tampilkan keyboard virtual""Mengonfigurasi keyboard fisik""Ketuk untuk memilih bahasa dan tata letak"
@@ -1401,16 +1397,16 @@
"Ketuk untuk menyiapkan""Pilih untuk menyiapkan""Anda mungkin perlu memformat ulang perangkat. Ketuk untuk mengeluarkan"
- "Untuk menyimpan foto, video, musik, dan lainnya"
+ "Untuk mentransfer foto dan media""Jelajahi file media""Masalah pada %s""%s tidak berfungsi""Ketuk untuk memperbaiki""%s rusak. Pilih untuk memperbaikinya.""Anda mungkin perlu memformat ulang perangkat. Ketuk untuk mengeluarkan"
- "%s terdeteksi"
+ "%s tidak didukung""%s tidak berfungsi"
- "Ketuk untuk menyiapkan ."
+ "Perangkat tidak mendukung %s ini. Ketuk untuk menyiapkan dalam format yang didukung.""Pilih untuk menyiapkan %s dalam format yang didukung.""Anda mungkin perlu memformat ulang perangkat""%s tiba-tiba dicabut"
@@ -1558,7 +1554,7 @@
"Gagang geser. Sentuh lama.""Geser untuk membuka kunci.""Navigasi ke beranda"
- "Navigasi ke atas"
+ "Navigasi naik""Opsi lainnya""%1$s, %2$s""%1$s, %2$s, %3$s"
@@ -1609,7 +1605,7 @@
"TV""Ponsel""Pengeras suara dok"
- "Perangkat Eksternal"
+ "HDMI""Headphone""USB""Sistem"
@@ -1642,7 +1638,7 @@
"SIM telah dinonaktifkan. Masukkan kode PUK untuk melanjutkan. Hubungi operator untuk keterangan selengkapnya.""Masukkan kode PIN yang diinginkan""Konfirmasi kode PIN yang diinginkan"
- "Membuka kunci SIM …"
+ "Membuka kunci kartu SIM…""Kode PIN salah.""Ketik PIN yang terdiri dari 4 sampai 8 angka.""Kode PUK seharusnya terdiri dari 8 angka."
@@ -1817,7 +1813,7 @@
"Potret tidak diketahui""Lanskap tidak diketahui""Dibatalkan"
- "Terjadi error saat menulis konten"
+ "Terjadi kesalahan saat menulis konten""tak diketahui""Layanan cetak tidak diaktifkan""Layanan %s telah terpasang"
@@ -1923,7 +1919,6 @@
"Preferensi wilayah""Ketik nama bahasa""Disarankan"
- "Disarankan""Semua bahasa""Semua wilayah""Telusuri"
@@ -1941,19 +1936,18 @@
"Kamera tidak tersedia""Lanjutkan di ponsel""Mikrofon tidak tersedia"
- "Play Store tidak tersedia""Setelan Android TV tidak tersedia""Setelan tablet tidak tersedia""Setelan ponsel tidak tersedia"
- "Aplikasi ini tidak dapat diakses di %1$s untuk saat ini. Coba di perangkat Android TV."
- "Aplikasi ini tidak dapat diakses di %1$s untuk saat ini. Coba di tablet."
- "Aplikasi ini tidak dapat diakses di %1$s untuk saat ini. Coba di ponsel."
+ "Aplikasi ini tidak dapat diakses di %1$s. Coba di perangkat Android TV."
+ "Aplikasi ini tidak dapat diakses di %1$s. Coba di tablet."
+ "Aplikasi ini tidak dapat diakses di %1$s. Coba di ponsel."
+ "Aplikasi ini tidak dapat diakses di %1$s untuk saat ini. Coba di perangkat Android TV."
+ "Aplikasi ini tidak dapat diakses di %1$s untuk saat ini. Coba di tablet."
+ "Aplikasi ini tidak dapat diakses di %1$s untuk saat ini. Coba di ponsel.""Aplikasi ini meminta keamanan tambahan. Coba di perangkat Android TV.""Aplikasi ini meminta keamanan tambahan. Coba di tablet.""Aplikasi ini meminta keamanan tambahan. Coba di ponsel."
- "Setelan ini tidak dapat diakses di %1$s. Coba di perangkat Android TV."
- "Setelan ini tidak dapat diakses di %1$s. Coba di tablet."
- "Setelan ini tidak dapat diakses di %1$s. Coba di ponsel.""Aplikasi ini dibuat untuk Android versi lama dan mungkin tidak berfungsi sebagaimana mestinya. Coba periksa apakah ada update, atau hubungi developer.""Periksa apakah ada update""Ada pesan baru"
@@ -2046,8 +2040,7 @@
"Izinkan %s mengakses semua log perangkat?""Izinkan akses satu kali""Jangan izinkan"
- "Log perangkat merekam hal-hal yang terjadi di perangkat Anda. Aplikasi dapat menggunakan log ini untuk menemukan dan memperbaiki masalah.\n\nBeberapa log mungkin berisi info sensitif, jadi hanya izinkan aplikasi yang Anda percayai untuk mengakses semua log perangkat. \n\nJika Anda tidak mengizinkan aplikasi ini mengakses semua log perangkat, aplikasi masih dapat mengakses log-nya sendiri. Produsen perangkat masih dapat mengakses beberapa log atau info di perangkat Anda."
- "Log perangkat merekam hal-hal yang terjadi di perangkat Anda. Aplikasi dapat menggunakan log ini untuk menemukan dan memperbaiki masalah.\n\nBeberapa log mungkin berisi info sensitif, jadi hanya izinkan aplikasi yang Anda percayai untuk mengakses semua log perangkat. \n\nJika Anda tidak mengizinkan aplikasi ini mengakses semua log perangkat, aplikasi masih dapat mengakses log-nya sendiri. Produsen perangkat masih dapat mengakses beberapa log atau info di perangkat Anda.\n\nPelajari lebih lanjut di g.co/android/devicelogs."
+ "Log perangkat merekam hal-hal yang terjadi di perangkat Anda. Aplikasi dapat menggunakan log ini untuk menemukan dan memperbaiki masalah.\n\nBeberapa log mungkin berisi info sensitif, jadi hanya izinkan aplikasi yang Anda percayai untuk mengakses semua log perangkat. \n\nJika Anda tidak mengizinkan aplikasi ini mengakses semua log perangkat, aplikasi masih dapat mengakses log-nya sendiri. Produsen perangkat masih dapat mengakses beberapa log atau info di perangkat Anda. Pelajari lebih lanjut""Jangan tampilkan lagi""%1$s ingin menampilkan potongan %2$s""Edit"
@@ -2060,7 +2053,8 @@
"Jangan Ganggu telah berubah""Ketuk untuk memeriksa item yang diblokir.""Tinjau setelan notifikasi"
- "Mulai Android 13, aplikasi yang Anda instal memerlukan izin untuk mengirim notifikasi. Ketuk guna mengubah izin ini untuk aplikasi yang sudah ada."
+
+ "Ingatkan saya nanti""Tutup""Sistem"
@@ -2288,6 +2282,5 @@
"Periksa aplikasi aktif""Tidak dapat mengakses kamera ponsel dari %1$s""Tidak dapat mengakses kamera tablet dari %1$s"
- "Konten ini tidak dapat diakses saat melakukan streaming. Coba di ponsel."
- "Default sistem"
+ "Bahasa sistem"
diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml
index 401e43320935d215524d5bb6b6a12da7001b48a0..4ada89bed9d0ca8a4d2fe6d90e29cf95ac729180 100644
--- a/core/res/res/values-is/strings.xml
+++ b/core/res/res/values-is/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Ónefnt>""(Ekkert símanúmer)"
@@ -28,7 +33,6 @@
"Talhólf""MSISDN1""Vandamál með tengingu eða ógild MMI-kóðaskipun."
- "Eiginleiki ekki studdur.""Aðgerð takmarkast við fast númeraval.""Ekki er hægt að breyta stillingum fyrir framsendingu símtala úr símanum á meðan þú ert í reiki.""Þjónustan var virkjuð."
@@ -43,8 +47,8 @@
"PIN-númerin sem þú slóst inn stemma ekki.""Sláðu in PIN-númer sem er 4 til 8 tölustafir.""Sláðu inn PUK-númer sem er 8 tölustafir eða lengra."
- "SIM-kortið er læst með PUK-númeri. Sláðu inn PUK-númerið til að opna kortið."
- "Sláðu inn PUK2-númer til að opna fyrir SIM-kort."
+ "SIM-kortið er PUK-læst. Sláðu inn PUK-númerið til að taka það úr lás."
+ "Sláðu inn PUK2-númer að taka SIM-kortið úr lás.""Tókst ekki. Kveiktu á SIM-/RUIM-lás."Þú átt %d tilraun eftir áður en SIM-kortinu verður læst.
@@ -301,12 +305,12 @@
"fá aðgang að dagatalinu þínu""SMS""senda og skoða SMS-skilaboð"
- "Skrár"
- "fá aðgang að skrám í tækinu þínu"
- "Tónlist og hljóð"
- "fáðu aðgang að tónlist og hljóði í tækinu þínu"
- "Myndir og myndskeið"
- "fáðu aðgang að myndum og myndskeiðum á tækinu þínu"
+ "Skrár og skjöl"
+ "fá aðgang að skrám og skjölum í tækinu þínu"
+ "Tónlist og annað hljóð"
+ "fá aðgang að hljóðskrám í tækinu þínu"
+ "Myndir og myndskeið"
+ "fá aðgang að myndum og myndskeiðaskrám í tækinu þínu""Hljóðnemi""taka upp hljóð""Hreyfing"
@@ -582,14 +586,13 @@
"Nota skjálás""Sláðu inn skjálásinn þinn til að halda áfram""Ýttu ákveðið á lesarann"
- "Fingrafar þekkist ekki. Reyndu aftur."
+ "Ekki var hægt að vinna úr fingrafarinu. Reyndu aftur.""Hreinsaðu fingrafaralesarann og reyndu aftur""Hreinsaðu lesarann og reyndu aftur""Ýttu ákveðið á lesarann""Fingurinn hreyfðist of hægt. Reyndu aftur.""Prófaðu annað fingrafar""Of bjart"
- "Þrýstingur á aflrofa greindist""Prófaðu að breyta stöðu fingursins""Breyttu stöðu fingursins örlítið í hvert skipti"
@@ -601,17 +604,16 @@
"Andlit staðfest, ýttu til að staðfesta""Fingrafarsvélbúnaður ekki til staðar.""Ekki er hægt að setja upp fingrafar"
- "Fingrafarsuppsetning rann út á tíma. Reyndu aftur."
+ "Tímamörk runnu út fyrir fingrafar. Reyndu aftur.""Hætt við fingrafarsaðgerð.""Notandi hætti við að nota fingrafar."
- "Of margar tilraunir. Notaðu skjálás í staðinn."
- "Of margar tilraunir. Notaðu skjálás í staðinn."
- "Ekki tekst að vinna úr fingrafari. Reyndu aftur."
+ "Of margar tilraunir. Reyndu aftur síðar."
+ "Of margar tilraunir. Fingrafaralesari gerður óvirkur."
+ "Reyndu aftur.""Engin fingraför hafa verið skráð.""Þetta tæki er ekki með fingrafaralesara.""Slökkt tímabundið á skynjara.""Ekki er hægt að nota fingrafaralesara. Þú verður að fara með hann á verkstæði"
- "Ýtt á aflrofa""Fingur %d""Nota fingrafar""Nota fingrafar eða skjálás"
@@ -632,33 +634,26 @@
"Fingrafarskenni""Ekki er hægt að nota fingrafaralesara""Þú verður að fara á verkstæði."
- "Ekki tekst að búa til andlitslíkan. Reyndu aftur."
+ "Nákvæm andlitsgögn fengust ekki. Reyndu aftur.""Of bjart. Prófaðu mýkri lýsingu."
- "Of lítið ljós"
- "Færðu símann lengra frá"
- "Færðu símann nær"
- "Færðu símann hærra"
- "Færðu símann neðar"
- "Færðu símann til vinstri"
- "Færðu símann til hægri"
+ "Of dimmt. Prófaðu sterkari lýsingu."
+ "Færðu símann lengra í burtu."
+ "Færðu símann nær."
+ "Færðu símann hærra."
+ "Færðu símann neðar."
+ "Færðu símann til vinstri."
+ "Færðu símann til hægri.""Horfðu beint á tækið."
- "Sé ekki andlitið á þér. Haltu símanum í augnhæð."
+ "Hafðu andlitið beint fyrir framan símann.""Of mikil hreyfing. Haltu símanum stöðugum.""Skráðu nafnið þitt aftur."
- "Andlit þekkist ekki. Reyndu aftur."
- "Færðu höfuðið aðeins til"
- "Horfðu beint á símann"
- "Horfðu beint á símann"
- "Horfðu beint á símann"
+ "Andlit þekkist ekki lengur. Reyndu aftur."
+ "Of svipað. Stilltu þér öðruvísi upp."
+ "Snúðu höfðinu aðeins minna."
+ "Hallaðu höfðinu aðeins minna."
+ "Snúðu höfðinu aðeins minna.""Fjarlægðu það sem kann að hylja andlitið.""Hreinsaðu efsta hluta skjásins þíns, þ.m.t. svörtu stikuna"
-
-
-
-
- "Ekki tekst að búa til andlitslíkan. Reyndu aftur."
- "Dökk gleraugu greindust. Allt andlitið á þér þarf að sjást."
- "Eitthvað er fyrir andlitinu. Allt andlitið á þér þarf að sjást.""Andlit ekki staðfest. Vélbúnaður er ekki tiltækur."
@@ -924,14 +919,14 @@
"Reyndu aftur""Taktu úr lás til að sjá alla eiginleika og gögn""Hámarksfjölda tilrauna til andlitsopnunar náð"
- "Ekkert SIM-kort"
- "Það er ekkert SIM-kort í spjaldtölvunni."
- "Það er ekkert SIM-kort í Android TV-tækinu."
- "Það er ekkert SIM-kort í símanum."
- "Bæta við SIM-korti."
- "SIM-kort vantar eða er ekki læsilegt. Bæta við SIM-korti."
- "Ónothæft SIM-kort."
- "SIM-kortið þitt var gert varanlega óvirkt.\n Hafðu samband við símafyrirtækið þitt til að fá nýtt SIM-kort."
+ "Ekkert SIM-kort"
+ "Ekkert SIM-kort í spjaldtölvunni."
+ "Ekkert SIM-kort er í Android TV tækinu."
+ "Ekkert SIM-kort í símanum."
+ "Settu SIM-kort í."
+ "SIM-kort vantar eða það er ekki læsilegt. Settu SIM-kort í."
+ "Ónothæft SIM-kort."
+ "SIM-kortið hefur verið gert varanlega óvirkt.\n Hafðu samband við símafyrirtækið þitt til að fá annað SIM-kort.""Fyrra lag""Næsta lag""Hlé"
@@ -941,10 +936,10 @@
"Spóla áfram""Aðeins neyðarsímtöl""Net læst"
- "SIM-kort er læst með PUK-númeri."
+ "SIM-kortið er PUK-læst.""Skoðaðu notendahandbókina eða hafðu samband við þjónustudeild."
- "SIM-kort er læst."
- "Opnar SIM-kort…"
+ "SIM-kortið er læst."
+ "Tekur SIM-kort úr lás…""Þú hefur teiknað rangt opnunarmynstur %1$d sinnum. \n\nReyndu aftur eftir %2$d sekúndur.""Þú hefur slegið inn rangt aðgangsorð %1$d sinnum. \n\nReyndu aftur eftir %2$d sekúndur.""Þú hefur slegið inn rangt PIN-númer %1$d sinnum. \n\nReyndu aftur eftir %2$d sekúndur."
@@ -1246,9 +1241,10 @@
"Undirbýr %1$s.""Ræsir forrit.""Lýkur ræsingu."
+ "Halda uppsetningu áfram?""Þú ýttir á aflrofann. Yfirleitt slekkur það á skjánum.\n\nPrófaðu að ýta laust þegar þú setur upp fingrafarið."
- "Slökktu á skjá til að ljúka uppsetningu"
- "Slökkva"
+ "Slökkva á skjá"
+ "Halda uppsetningu áfram""Halda áfram að staðfesta fingrafarið?""Þú ýttir á aflrofann. Yfirleitt slekkur það á skjánum.\n\nPrófaðu að ýta laust til að staðfesta fingrafarið þitt.""Slökkva á skjá"
@@ -1327,10 +1323,10 @@
"Þú getur breytt þessu seinna undir Stillingar > Forrit""Leyfa alltaf""Leyfa aldrei"
- "SIM-kort var fjarlægt"
- "Farsímakerfið verður ekki í boði fyrr en þú endurræsir með gildu SIM-korti."
+ "SIM-kort fjarlægt"
+ "Farsímakerfið verður ekki í boði fyrr en þú endurræsir með gildu SIM-korti í.""Lokið"
- "SIM-korti var bætt við"
+ "SIM-korti bætt við""Endurræstu tækið að fá aðgang að farsímakerfinu.""Endurræsa""Virkja farsímaþjónustu"
@@ -1401,16 +1397,16 @@
"Ýttu til að setja upp""Veldu til að setja upp""Þú gætir þurft að endursníða tækið. Ýttu til að fjarlægja."
- "Til að geyma myndir, myndskeið, tónlist og fleira"
+ "Til að flytja myndir og aðrar skrár""Skoða efnisskrár""Vandamál með %s""%s virkar ekki""Ýttu til að lagfæra""%s er skemmt. Veldu til að lagfæra.""Þú gætir þurft að endursníða tækið. Ýttu til að fjarlægja."
- "%s greindist"
+ "Óstutt %s""%s virkar ekki"
- "Ýttu til að setja upp ."
+ "Þetta tæki styður ekki %s. Ýttu til að setja upp með studdu sniði.""Veldu til að setja %s upp á studdu sniði.""Þú gætir þurft að endursníða tækið""%s fjarlægt án fyrirvara"
@@ -1609,7 +1605,7 @@
"Sjónvarp""Sími""Dokkuhátalarar"
- "Ytra tæki"
+ "HDMI""Heyrnartól""USB""Kerfi"
@@ -1642,7 +1638,7 @@
"SIM-kortið hefur verið gert óvirkt. Sláðu inn PUK-númerið til að halda áfram. Hafðu samband við símafyrirtækið til að fá frekari upplýsingar.""Sláðu inn nýtt PIN-númer""Staðfestu nýja PIN-númerið"
- "Opnar SIM-kort…"
+ "Opnar SIM-kort…""Rangt PIN-númer.""Sláðu in PIN-númer sem er 4 til 8 tölustafir.""PUK-númerið á að vera 8 tölustafir."
@@ -1687,7 +1683,7 @@
"Skoða og stjórna skjá""Það getur lesið allt efni á skjánum og birt efni yfir öðrum forritum.""Skoða og framkvæma aðgerðir"
- "Það getur fylgst með samskiptum þínum við forrit eða skynjara vélbúnaðar og haft samskipti við forrit fyrir þína hönd."
+ "Það getur fylgst með samskiptum þínum við forrit eða skynjara vélbúnaðar, og haft samskipti við forrit fyrir þína hönd.""Leyfa""Hafna""Ýttu á eiginleika til að byrja að nota hann:"
@@ -1923,7 +1919,6 @@
"Svæðisval""Sláðu inn heiti tungumáls""Tillögur"
- "Tillögur""Öll tungumál""Öll svæði""Leita"
@@ -1941,19 +1936,18 @@
"Myndavél ekki tiltæk""Halda áfram í símanum""Hljóðnemi ekki tiltækur"
- "Play Store er ekki tiltæk""Android TV stillingar ekki tiltækar""Spjaldtölvustillingar ekki tiltækar""Símastillingar ekki tiltækar"
- "Aðgangur að þessu í %1$s er ekki í boði eins og er. Prófaðu það í Android TV tækinu í staðinn."
- "Aðgangur að þessu í %1$s er ekki í boði eins og er. Prófaðu það í spjaldtölvunni í staðinn."
- "Aðgangur að þessu í %1$s er ekki í boði eins og er. Prófaðu það í símanum í staðinn."
+ "Ekki er hægt að opna þetta í %1$s. Prófaðu það í Android TV tækinu í staðinn."
+ "Ekki er hægt að opna þetta í %1$s. Prófaðu það í spjaldtölvunni í staðinn."
+ "Ekki er hægt að opna þetta í %1$s. Prófaðu það í símanum í staðinn."
+ "Aðgangur að þessu í %1$s er ekki í boði eins og er. Prófaðu það í Android TV tækinu í staðinn."
+ "Aðgangur að þessu í %1$s er ekki í boði eins og er. Prófaðu það í spjaldtölvunni í staðinn."
+ "Aðgangur að þessu í %1$s er ekki í boði eins og er. Prófaðu það í símanum í staðinn.""Þetta forrit biður um viðbótaröryggi. Prófaðu það í Android TV tækinu í staðinn.""Þetta forrit biður um viðbótaröryggi. Prófaðu það í spjaldtölvunni í staðinn.""Þetta forrit biður um viðbótaröryggi. Prófaðu það í símanum í staðinn."
- "Ekki er hægt að opna þetta í %1$s. Prófaðu það í Android TV tækinu í staðinn."
- "Ekki er hægt að opna þetta í %1$s. Prófaðu það í spjaldtölvunni í staðinn."
- "Ekki er hægt að opna þetta í %1$s. Prófaðu það í símanum í staðinn.""Þetta forrit var hannað fyrir eldri útgáfu af Android og ekki er víst að það virki eðlilega. Athugaðu hvort uppfærslur séu í boði eða hafðu samband við þróunaraðilann.""Leita að uppfærslu""Þú ert með ný skilaboð"
@@ -2046,8 +2040,7 @@
"Veita %s aðgang að öllum annálum í tækinu?""Leyfa aðgang í eitt skipti""Ekki leyfa"
- "Annálar tækisins skrá það sem gerist í tækinu. Forrit geta notað þessa annála til að finna og lagfæra vandamál.\n\nTilteknir annálar innihalda viðkvæmar upplýsingar og því skaltu einungis veita forritum sem þú treystir aðgang að öllum annálum tækisins. \n\nEf þú veitir þessu forriti ekki aðgang að öllum annálum tækisins hefur það áfram aðgang að eigin annálum. Framleiðandi tækisins getur þó hugsanlega opnað tiltekna annála eða upplýsingar í tækinu."
- "Annálar tækisins skrá það sem gerist í tækinu. Forrit geta notað þessa annála til að finna og lagfæra vandamál.\n\nTilteknir annálar innihalda viðkvæmar upplýsingar og því skaltu einungis veita forritum sem þú treystir aðgang að öllum annálum tækisins. \n\nEf þú veitir þessu forriti ekki aðgang að öllum annálum tækisins hefur það áfram aðgang að eigin annálum. Framleiðandi tækisins getur þó hugsanlega opnað tiltekna annála eða upplýsingar í tækinu.\n\nNánar á g.co/android/devicelogs."
+ "Annálar tækisins skrá það sem gerist í tækinu. Forrit geta notað þessa annála til að finna og lagfæra vandamál.\n\nTilteknir annálar innihalda viðkvæmar upplýsingar og því skaltu einungis veita forritum sem þú treystir aðgang að öllum annálum tækisins. \n\nEf þú veitir þessu forriti ekki aðgang að öllum annálum tækisins hefur það áfram aðgang að eigin annálum. Framleiðandi tækisins getur þó hugsanlega opnað tiltekna annála eða upplýsingar í tækinu. Nánar""Ekki sýna aftur""%1$s vill sýna sneiðar úr %2$s""Breyta"
@@ -2060,7 +2053,8 @@
"„Ónáðið ekki“ var breytt""Ýttu til að skoða hvað lokað hefur verið á.""Yfirfara tilkynningastillingar"
- "Frá og með Android 13 þurfa forrit sem þú setur upp heimild frá þér til að senda tilkynningar. Ýttu til að breyta þessari heimild fyrir forrit sem fyrir eru."
+
+ "Minna mig á seinna""Hunsa""Kerfi"
@@ -2288,6 +2282,5 @@
"Skoða virk forrit""Ekki er hægt að opna myndavél símans úr %1$s""Ekki er hægt að opna myndavél spjaldtölvunnar úr %1$s"
- "Ekki er hægt að opna þetta á meðan streymi stendur yfir. Prófaðu það í símanum í staðinn."
- "Sjálfgildi kerfis"
+ "Tungumál kerfis"
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index d9d379935a602b56e4d3d8240598e68fcf828bc2..c073ca0e1d042ebdef03d46eec2ab543c4206fe0 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Senza nome>""(Nessun numero di telefono)"
@@ -28,7 +33,6 @@
"Segreteria""MSISDN1""Problema di connessione o codice MMI non valido."
- "Funzionalità non supportata.""Operazione limitata solo ai numeri di selezione fissa.""Impossibile modificare le impostazioni di deviazione chiamate dal telefono durante il roaming.""Il servizio è stato attivato."
@@ -43,11 +47,10 @@
"I PIN inseriti non corrispondono.""Il PIN deve essere di 4-8 numeri.""Digita un PUK formato da almeno 8 numeri."
- "La SIM è bloccata tramite PUK. Digita il codice PUK per sbloccarla."
- "Digita il codice PUK2 per sbloccare la SIM."
+ "La SIM è bloccata tramite PUK. Digita il codice PUK per sbloccarla."
+ "Digita il PUK2 per sbloccare la SIM.""Operazione non riuscita; attiva blocco SIM/RUIM."
- Hai ancora %d tentativi a disposizione prima che la SIM venga bloccata.Hai ancora %d tentativi a disposizione prima che la SIM venga bloccata.Hai ancora %d tentativo a disposizione prima che la SIM venga bloccata.
@@ -177,7 +180,7 @@
"La memoria dell\'orologio è piena. Elimina alcuni file per liberare spazio.""Lo spazio di archiviazione del dispositivo Android TV è pieno. Elimina alcuni file per liberare spazio.""Spazio di archiviazione del telefono esaurito. Elimina alcuni file per liberare spazio."
- "{count,plural, =1{Autorità di certificazione installata}many{Autorità di certificazione installate}other{Autorità di certificazione installate}}"
+ "{count,plural, =1{Autorità di certificazione installata}other{Autorità di certificazione installate}}""Da una terza parte sconosciuta""Dall\'amministratore del tuo profilo di lavoro""Da %s"
@@ -251,7 +254,7 @@
"Utilizza questa opzione nella maggior parte dei casi. Ti consente di monitorare l\'avanzamento della segnalazione, di inserire maggiori dettagli relativi al problema e di acquisire screenshot. Potrebbero essere omesse alcune sezioni meno utilizzate il cui inserimento nella segnalazione richiede molto tempo.""Report completo""Utilizza questa opzione per ridurre al minimo l\'interferenza di sistema quando il dispositivo non risponde, è troppo lento oppure quando ti servono tutte le sezioni della segnalazione. Non puoi inserire altri dettagli o acquisire altri screenshot."
- "{count,plural, =1{Lo screenshot per la segnalazione di bug verrà acquisito tra # secondo.}many{Lo screenshot per la segnalazione di bug verrà acquisito tra # secondi.}other{Lo screenshot per la segnalazione di bug verrà acquisito tra # secondi.}}"
+ "{count,plural, =1{Lo screenshot per la segnalazione di bug verrà acquisito tra # secondo.}other{Lo screenshot per la segnalazione di bug verrà acquisito tra # secondi.}}""Screenshot con segnalazione di bug effettuato correttamente""Impossibile acquisire screenshot con segnalazione di bug""Modalità silenziosa"
@@ -302,12 +305,12 @@
"Possono accedere al calendario""SMS""Possono inviare e visualizzare SMS"
- "File"
- "Consente di accedere ai file sul tuo dispositivo"
- "Musica e audio"
- "accesso a musica e audio sul tuo dispositivo"
- "Foto e video"
- "accesso a foto e video sul tuo dispositivo"
+ "File e documenti"
+ "Consente di accedere a file e documenti sul tuo dispositivo"
+ "Musica e altro audio"
+ "Accesso ai file audio sul tuo dispositivo"
+ "Foto e video"
+ "Accesso ai file immagine e video sul tuo dispositivo""Microfono""Possono registrare audio""Attività fisica"
@@ -346,8 +349,8 @@
"Consente all\'applicazione di espandere o comprimere la barra di stato.""Visualizzazione di notifiche sotto forma di attività in modalità a schermo intero su un dispositivo bloccato""Consente all\'app di visualizzare le notifiche sotto forma di attività in modalità a schermo intero su un dispositivo bloccato"
- "Aggiunta di scorciatoie"
- "consentire a un\'applicazione di aggiungere scorciatoie alla schermata Home automaticamente"
+ "aggiunta di scorciatoie"
+ "Consente a un\'applicazione di aggiungere scorciatoie alla schermata Home automaticamente.""eliminazione di scorciatoie""Consente all\'applicazione di rimuovere le scorciatoie della schermata Home automaticamente.""reindirizzamento chiamate in uscita"
@@ -583,14 +586,13 @@
"Usa il blocco schermo""Inserisci il blocco schermo per continuare""Premi con decisione sul sensore"
- "Impossibile riconoscere l\'impronta. Riprova."
+ "Impossibile elaborare l\'impronta. Riprova.""Pulisci il sensore di impronte digitali e riprova""Pulisci il sensore e riprova""Premi con decisione sul sensore""Movimento del dito troppo lento. Riprova.""Prova con un\'altra impronta""Troppa luce"
- "Rilevata pressione tasto di accensione""Prova a regolare""Cambia leggermente la posizione del dito ogni volta"
@@ -602,17 +604,16 @@
"Volto autenticato, premi Conferma""Hardware per l\'impronta non disponibile.""Impossibile configurare l\'impronta"
- "Timeout configurazione impronta. Riprova."
+ "Timeout impronta. Riprova.""Operazione associata all\'impronta annullata.""Operazione di autenticazione dell\'impronta annullata dall\'utente."
- "Troppi tentativi. Usa il blocco schermo."
- "Troppi tentativi. Usa il blocco schermo."
- "Impossibile elaborare l\'impronta. Riprova."
+ "Troppi tentativi. Riprova più tardi."
+ "Troppi tentativi. Sensore di impronte disattivato."
+ "Riprova.""Nessuna impronta digitale registrata.""Questo dispositivo non dispone di sensore di impronte.""Sensore temporaneamente disattivato.""Impossibile usare il sensore di impronte digitali. Contatta un fornitore di servizi di riparazione"
- "Tasto di accensione premuto""Dito %d""Usa l\'impronta""Usa l\'impronta o il blocco schermo"
@@ -633,33 +634,26 @@
"Sblocco con l\'impronta""Impossibile utilizzare il sensore di impronte digitali""Contatta un fornitore di servizi di riparazione."
- "Impossibile creare il modello del volto. Riprova."
+ "Impossibile acquisire dati viso accurati. Riprova.""Troppa luce. Prova con una luce più soft."
- "Luce insufficiente"
- "Allontana il telefono"
- "Avvicina il telefono"
- "Sposta il telefono più in alto"
- "Sposta il telefono più in basso"
- "Sposta il telefono verso sinistra"
- "Sposta il telefono verso destra"
+ "Troppo buio. Prova con più luce."
+ "Sposta il telefono più lontano."
+ "Avvicina il telefono."
+ "Sposta il telefono più in alto."
+ "Sposta il telefono più in basso."
+ "Sposta il telefono verso sinistra."
+ "Sposta il telefono verso destra.""Guarda più direttamente verso il dispositivo."
- "Impossibile vedere il volto. Tieni il telefono all\'altezza degli occhi."
+ "Posiziona il viso davanti al telefono.""Troppo movimento. Tieni fermo il telefono.""Ripeti l\'acquisizione del volto."
- "Impossibile riconoscere il volto. Riprova."
- "Cambia leggermente la posizione della testa"
- "Guarda dritto nel telefono"
- "Guarda dritto nel telefono"
- "Guarda dritto nel telefono"
+ "Non è più possibile riconoscere il volto. Riprova."
+ "Troppo simile; cambia posa."
+ "Gira un po\' meno la testa."
+ "Inclina un po\' meno la testa."
+ "Gira un po\' meno la testa.""Rimuovi tutto ciò che ti nasconde il viso.""Pulisci la parte superiore dello schermo, inclusa la barra nera"
-
-
-
-
- "Impossibile creare il modello del volto. Riprova."
- "Sono stati rilevati occhiali scuri. Il tuo volto deve essere visibile per intero."
- "È stata rilevata una mascherina. Il tuo volto deve essere visibile per intero.""Imposs. verificare volto. Hardware non disponibile."
@@ -925,14 +919,14 @@
"Riprova""Sblocca per accedere a funzioni e dati""Numero massimo di tentativi di sblocco con il volto superato"
- "Nessuna SIM presente"
- "Nessuna SIM presente nel tablet."
- "Nessuna SIM presente nel dispositivo Android TV."
- "Nessuna SIM presente nel telefono."
- "Aggiungi una SIM."
- "SIM mancante o non leggibile. Aggiungi una SIM."
- "SIM inutilizzabile."
- "La SIM è stata disattivata definitivamente.\n Contatta il tuo fornitore di servizi wireless per richiedere un\'altra SIM."
+ "Nessuna SIM"
+ "Nessuna scheda SIM presente nel tablet."
+ "Nessuna scheda SIM nel dispositivo Android TV."
+ "Nessuna SIM presente nel telefono."
+ "Inserisci una scheda SIM."
+ "Scheda SIM mancante o non leggibile. Inserisci una scheda SIM."
+ "Scheda SIM inutilizzabile."
+ "La scheda SIM è stata disattivata definitivamente.\n Contatta il fornitore del tuo servizio wireless per ricevere un\'altra scheda SIM.""Traccia precedente""Traccia successiva""Metti in pausa"
@@ -942,10 +936,10 @@
"Avanti veloce""Solo chiamate di emergenza""Rete bloccata"
- "La SIM è bloccata tramite PUK."
+ "La SIM è bloccata tramite PUK.""Consulta la Guida dell\'utente o contatta il servizio clienti."
- "La SIM è bloccata."
- "Sblocco della SIM in corso…"
+ "La SIM è bloccata."
+ "Sblocco SIM…""%1$d tentativi errati di inserimento della sequenza di sblocco. \n\nRiprova tra %2$d secondi.""Hai digitato la tua password %1$d volte in modo errato. \n\nRiprova tra %2$d secondi.""Hai digitato il tuo PIN %1$d volte in modo errato. \n\nRiprova tra %2$d secondi."
@@ -987,7 +981,7 @@
"Selettore utente""Stato""Fotocamera"
- "Controlli multimediali"
+ "Controlli media""Riordino dei widget iniziato.""Riordino dei widget terminato.""Widget %1$s eliminato."
@@ -1085,7 +1079,7 @@
"%1$s vuole attivare la funzione Esplora al tocco. Quando la funzione Esplora al tocco è attiva, puoi ascoltare o visualizzare le descrizioni di ciò che stai toccando oppure interagire con il telefono tramite gesti.""1 mese fa""Oltre 1 mese fa"
- "{count,plural, =1{Ultimo giorno}many{Ultimi # giorni}other{Ultimi # giorni}}"
+ "{count,plural, =1{Ultimo giorno}other{Ultimi # giorni}}""Ultimo mese""Precedente""%s"
@@ -1112,14 +1106,14 @@
"tra %d h""tra %d g""tra %d a"
- "{count,plural, =1{# minuto fa}many{# minuti fa}other{# minuti fa}}"
- "{count,plural, =1{# ora fa}many{# ore fa}other{# ore fa}}"
- "{count,plural, =1{# giorno fa}many{# giorni fa}other{# giorni fa}}"
- "{count,plural, =1{# anno fa}many{# anni fa}other{# anni fa}}"
- "{count,plural, =1{# minuto}many{# minuti}other{# minuti}}"
- "{count,plural, =1{# ora}many{# ore}other{# ore}}"
- "{count,plural, =1{# giorno}many{# giorni}other{# giorni}}"
- "{count,plural, =1{# anno}many{# anni}other{# anni}}"
+ "{count,plural, =1{# minuto fa}other{# minuti fa}}"
+ "{count,plural, =1{# ora fa}other{# ore fa}}"
+ "{count,plural, =1{# giorno fa}other{# giorni fa}}"
+ "{count,plural, =1{# anno fa}other{# anni fa}}"
+ "{count,plural, =1{# minuto}other{# minuti}}"
+ "{count,plural, =1{# ora}other{# ore}}"
+ "{count,plural, =1{# giorno}other{# giorni}}"
+ "{count,plural, =1{# anno}other{# anni}}""Problemi video""Questo video non è valido per lo streaming su questo dispositivo.""Impossibile riprodurre il video."
@@ -1247,9 +1241,10 @@
"%1$s in preparazione.""Avvio app.""Conclusione dell\'avvio."
+ "Vuoi continuare la configurazione?""Hai premuto il tasto di accensione; in genere questa azione disattiva lo schermo.\n\nProva a toccare leggermente il tasto di accensione durante la configurazione della tua impronta."
- "Per terminare, disattiva lo schermo"
- "Disattiva"
+ "Disattiva lo schermo"
+ "Continua configuraz.""Vuoi continuare a verificare l\'impronta?""Hai premuto il tasto di accensione; in genere questa azione disattiva lo schermo.\n\nProva a toccare leggermente il tasto di accensione per verificare la tua impronta.""Disattiva lo schermo"
@@ -1328,10 +1323,10 @@
"Modifica: Impostazioni > Applicazioni""Consenti sempre""Non consentire mai"
- "SIM rimossa"
- "La rete mobile non sarà disponibile finché non eseguirai il riavvio con una SIM valida inserita."
+ "Scheda SIM rimossa"
+ "La rete mobile non sarà disponibile finché non eseguirai il riavvio con una scheda SIM valida inserita.""Fine"
- "SIM aggiunta"
+ "Scheda SIM aggiunta""Riavvia il dispositivo per accedere alla rete mobile.""Riavvia""Attiva il servizio dati mobile"
@@ -1402,16 +1397,16 @@
"Tocca per configurare""Seleziona per configurare""Potresti dover riformattare il dispositivo. Tocca per espellere."
- "Per archiviare foto, video, musica e altro ancora"
+ "Per trasferire foto e altri file""Sfoglia i file multimediali""Problema con %s""%s non funziona""Tocca per risolvere il problema""Il supporto esterno %s è danneggiato. Seleziona per risolvere il problema.""Potresti dover riformattare il dispositivo. Tocca per espellere."
- "%s rilevata"
+ "%s non supportata""%s non funziona"
- "Tocca per configurare"
+ "Il dispositivo non supporta il seguente elemento: %s. Tocca per configurare un formato supportato.""Seleziona per configurare %s in un formato supportato.""Potresti dover riformattare il dispositivo""Rimozione imprevista della %s"
@@ -1448,7 +1443,7 @@
"Consente a un\'applicazione di indirizzare l\'uscita di media verso altri dispositivi esterni.""lettura delle sessioni di installazione""Consente a un\'applicazione di leggere le sessioni di installazione. L\'app può conoscere i dettagli sulle installazioni di pacchetti attive."
- "richiesta di installazione di pacchetti"
+ "richiesta di pacchetti di installazione""Consente a un\'applicazione di richiedere l\'installazione di pacchetti.""richiesta di eliminazione dei pacchetti""Consente a un\'applicazione di richiedere l\'eliminazione di pacchetti."
@@ -1506,7 +1501,7 @@
"Salta""Nessuna corrispondenza""Trova nella pagina"
- "{count,plural, =1{# corrispondenza}many{# di {total}}other{# di {total}}}"
+ "{count,plural, =1{# corrispondenza}other{# di {total}}}""Fine""Cancellazione archivio condiviso…""Condividi"
@@ -1610,7 +1605,7 @@
"TV""Telefono""Altoparlanti dock"
- "Dispositivo esterno"
+ "HDMI""Cuffie audio""USB""Sistema"
@@ -1643,7 +1638,7 @@
"La scheda SIM è disattivata. Inserisci il codice PUK per continuare. Contatta l\'operatore per avere informazioni dettagliate.""Inserisci il codice PIN desiderato""Conferma il codice PIN desiderato"
- "Sblocco della SIM in corso…"
+ "Sblocco scheda SIM…""Codice PIN errato.""Il PIN deve essere di 4-8 numeri.""Il codice PUK deve essere di 8 cifre."
@@ -1859,14 +1854,14 @@
"Per contribuire a ridurre l\'utilizzo dei dati, la funzionalità Risparmio dati impedisce ad alcune app di inviare o ricevere dati in background. Un\'app in uso può accedere ai dati, ma potrebbe farlo con meno frequenza. Per esempio, è possibile che le immagini non vengano visualizzate finché non le tocchi.""Attivare Risparmio dati?""Attiva"
- "{count,plural, =1{Per un minuto (fino alle ore {formattedTime})}many{Per # minuti (fino alle ore {formattedTime})}other{Per # minuti (fino alle ore {formattedTime})}}"
- "{count,plural, =1{Per 1 min (fino alle ore {formattedTime})}many{Per # min (fino alle ore {formattedTime})}other{Per # min (fino alle ore {formattedTime})}}"
- "{count,plural, =1{Per 1 ora (fino alle ore {formattedTime})}many{Per # ore (fino alle ore {formattedTime})}other{Per # ore (fino alle ore {formattedTime})}}"
- "{count,plural, =1{Per 1 h (fino alle ore {formattedTime})}many{Per # h (fino alle ore {formattedTime})}other{Per # h (fino alle ore {formattedTime})}}"
- "{count,plural, =1{Per un minuto}many{Per # minuti}other{Per # minuti}}"
- "{count,plural, =1{Per 1 min}many{Per # min}other{Per # min}}"
- "{count,plural, =1{Per 1 ora}many{Per # ore}other{Per # ore}}"
- "{count,plural, =1{Per 1 h}many{Per # h}other{Per # h}}"
+ "{count,plural, =1{Per un minuto (fino alle ore {formattedTime})}other{Per # minuti (fino alle ore {formattedTime})}}"
+ "{count,plural, =1{Per 1 min (fino alle ore {formattedTime})}other{Per # min (fino alle ore {formattedTime})}}"
+ "{count,plural, =1{Per 1 ora (fino alle ore {formattedTime})}other{Per # ore (fino alle ore {formattedTime})}}"
+ "{count,plural, =1{Per 1 h (fino alle ore {formattedTime})}other{Per # h (fino alle ore {formattedTime})}}"
+ "{count,plural, =1{Per un minuto}other{Per # minuti}}"
+ "{count,plural, =1{Per 1 min}other{Per # min}}"
+ "{count,plural, =1{Per 1 ora}other{Per # ore}}"
+ "{count,plural, =1{Per 1 h}other{Per # h}}""Fino a: %1$s""Fino a %1$s""Fino a %1$s (prossima sveglia)"
@@ -1921,12 +1916,11 @@
"Consentire a %1$s di creare un nuovo utente con l\'account %2$s?""Aggiungi utente supervisionato""Aggiungi una lingua"
- "Regione preferita"
+ "Area geografica preferita""Digita nome lingua""Suggerite"
- "Suggerite""Tutte le lingue"
- "Tutte le regioni"
+ "Tutte le aree geografiche""Cerca""App non disponibile""%1$s non è al momento disponibile. Viene gestita tramite %2$s."
@@ -1938,23 +1932,22 @@
"L\'app non è disponibile""L\'app %1$s non è al momento disponibile.""%1$s non disponibile"
- "Autorizzazione necessaria"
+ "È necessaria l\'autorizzazione""Fotocamera non disponibile""Continua sul telefono""Microfono non disponibile"
- "Play Store non disponibile""Impostazioni di Android TV non disponibili""Impostazioni del tablet non disponibili""Impostazioni del telefono non disponibili"
- "Al momento non è possibile accedere a questa app su %1$s. Prova a usare il dispositivo Android TV."
- "Al momento non è possibile accedere a questa app su %1$s. Prova a usare il tablet."
- "Al momento non è possibile accedere a questa app su %1$s. Prova a usare il telefono."
+ "Non è possibile accedere a questa app su %1$s. Prova a usare il dispositivo Android TV."
+ "Non è possibile accedere a questa app su %1$s. Prova a usare il tablet."
+ "Non è possibile accedere a questa app su %1$s. Prova a usare il telefono."
+ "Al momento non è possibile accedere a questa app su %1$s. Prova a usare il dispositivo Android TV."
+ "Al momento non è possibile accedere a questa app su %1$s. Prova a usare il tablet."
+ "Al momento non è possibile accedere a questa app su %1$s. Prova a usare il telefono.""Questa app richiede maggiore sicurezza. Prova a usare il dispositivo Android TV.""Questa app richiede maggiore sicurezza. Prova a usare il tablet.""Questa app richiede maggiore sicurezza. Prova a usare il telefono."
- "Non è possibile accedere a questa impostazione su %1$s. Prova a usare il dispositivo Android TV."
- "Non è possibile accedere a questa impostazione su %1$s. Prova a usare il tablet."
- "Non è possibile accedere su %1$s. Prova a usare il telefono.""Questa app è stata realizzata per una versione precedente di Android e potrebbe non funzionare correttamente. Prova a verificare la disponibilità di aggiornamenti o contatta lo sviluppatore.""Cerca aggiornamenti""Hai nuovi messaggi"
@@ -1964,7 +1957,7 @@
"Tocca per sbloc. prof. di lav.""Connesso a %1$s""Tocca per visualizzare i file"
- "Fissa"
+ "Blocca""Blocca %1$s""Sgancia""Sblocca %1$s"
@@ -1997,7 +1990,7 @@
"Salva per Compilazione automatica""Impossibile compilare automaticamente i contenuti""Nessun suggerimento di Compilazione automatica"
- "{count,plural, =1{Un suggerimento di compilazione automatica}many{# suggerimenti di compilazione automatica}other{# suggerimenti di compilazione automatica}}"
+ "{count,plural, =1{Un suggerimento di compilazione automatica}other{# suggerimenti di compilazione automatica}}""Vuoi salvare su ""%1$s""?""Vuoi salvare la %1$s su ""%2$s""?""Vuoi salvare %1$s e %2$s su ""%3$s""?"
@@ -2047,8 +2040,7 @@
"Consentire all\'app %s di accedere a tutti i log del dispositivo?""Consenti accesso una tantum""Non consentire"
- "I log del dispositivo registrano tutto ciò che succede sul tuo dispositivo. Le app possono usare questi log per individuare problemi e correggerli.\n\nAlcuni log potrebbero contenere informazioni sensibili, quindi concedi l\'accesso a tutti i log del dispositivo soltanto alle app attendibili. \n\nSe neghi l\'accesso a tutti i log del dispositivo, questa app può comunque accedere ai propri log. Il produttore del tuo dispositivo potrebbe essere comunque in grado di accedere ad alcuni log o informazioni sul dispositivo."
- "I log del dispositivo registrano tutto ciò che succede sul tuo dispositivo. Le app possono usare questi log per individuare problemi e correggerli.\n\nAlcuni log potrebbero contenere informazioni sensibili, quindi concedi l\'accesso a tutti i log del dispositivo soltanto alle app attendibili. \n\nSe neghi l\'accesso a tutti i log del dispositivo, questa app può comunque accedere ai propri log. Il produttore del tuo dispositivo potrebbe essere comunque in grado di accedere ad alcuni log o informazioni sul dispositivo.\n\nScopri di più all\'indirizzo g.co/android/devicelogs."
+ "I log del dispositivo registrano tutto ciò che succede sul tuo dispositivo. Le app possono usare questi log per individuare problemi e correggerli.\n\nAlcuni log potrebbero contenere informazioni sensibili, quindi concedi l\'accesso a tutti i log del dispositivo soltanto alle app attendibili. \n\nSe le neghi l\'accesso a tutti i log del dispositivo, questa app può comunque accedere ai propri log. Il produttore del tuo dispositivo potrebbe essere comunque in grado di accedere ad alcuni log o informazioni sul dispositivo. Scopri di più""Non mostrare più""L\'app %1$s vuole mostrare porzioni dell\'app %2$s""Modifica"
@@ -2061,7 +2053,8 @@
"L\'impostazione Non disturbare è cambiata""Tocca per controllare le notifiche bloccate.""Controlla le impostazioni di notifica"
- "A partire da Android 13, le app che installi devono avere la tua autorizzazione per poter inviare notifiche. Tocca per cambiare questa autorizzazione per le app esistenti."
+
+ "Ricordamelo dopo""Ignora""Sistema"
@@ -2108,7 +2101,7 @@
"Presentazione %1$s""Il Bluetooth rimane attivo durante l\'uso della modalità aereo""Caricamento"
- "{count,plural, =1{{file_name} + # file}many{{file_name} + # file}other{{file_name} + # file}}"
+ "{count,plural, =1{{file_name} + # file}other{{file_name} + # file}}""Nessuna persona consigliata per la condivisione""Elenco di app""A questa app non è stata concessa l\'autorizzazione di registrazione, ma l\'app potrebbe acquisire l\'audio tramite questo dispositivo USB."
@@ -2289,6 +2282,5 @@
"Verifica le app attive""Impossibile accedere alla fotocamera del telefono dal tuo %1$s""Impossibile accedere alla fotocamera del tablet dal tuo %1$s"
- "Impossibile accedere a questi contenuti durante lo streaming. Prova a usare il telefono."
- "Predefinita di sistema"
+ "Lingua di sistema"
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index 6a9c7b10b9ac66c2bdf217feab90b15a30a21550..09a40b9883eff7549f2f05fbc2014c81d211183d 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s"">ללא כותרת<""(אין מספר טלפון)"
@@ -28,7 +33,6 @@
"דואר קולי""MSISDN1""בעיה בחיבור או קוד MMI לא חוקי."
- "התכונה לא נתמכת.""הפעולה מוגבלת למספרי חיוג קבועים בלבד.""לא ניתן לשנות את הגדרות העברת השיחות מהטלפון במצב נדידה.""השירות הופעל."
@@ -43,13 +47,14 @@
"קודי הגישה שהקלדת לא תואמים.""יש להקליד קוד אימות שאורכו 4 עד 8 ספרות.""יש להקליד PUK באורך 8 ספרות לפחות."
- "כרטיס ה-SIM נעול באמצעות PUK. יש להקליד את קוד ה-PUK כדי לבטל את הנעילה."
- "יש להקליד את קוד ה-PUK2 כדי לבטל את החסימה של כרטיס ה-SIM."
+ "כרטיס ה-SIM נעול באמצעות PUK. יש להקליד את קוד ה-PUK כדי לבטל את הנעילה."
+ "יש להקליד PUK2 כדי לבטל את חסימת כרטיס ה-SIM.""לא הצלחת. יש להפעיל נעילת SIM/RUIM."
- נותרו לך %d ניסיונות לפני שכרטיס ה-SIM יינעל.נותרו לך %d ניסיונות לפני שכרטיס ה-SIM יינעל.
+ נותרו לך %d ניסיונות לפני שכרטיס ה-SIM יינעל.נותרו לך %d ניסיונות לפני שכרטיס ה-SIM יינעל.
+ נותר לך ניסיון אחד (%d) לפני שכרטיס ה-SIM יינעל."IMEI""MEID"
@@ -177,7 +182,7 @@
"מקום האחסון של השעון מלא. אפשר למחוק כמה קבצים כדי לפנות מקום.""האחסון של מכשיר ה-Android TV מלא. יש למחוק חלק מהקבצים כדי לפנות מקום.""מקום האחסון של הטלפון מלא. אפשר למחוק חלק מהקבצים כדי לפנות מקום."
- "{count,plural, =1{רשות אישורים הותקנה}one{רשויות אישורים הותקנו}two{רשויות אישורים הותקנו}other{רשויות אישורים הותקנו}}"
+ "{count,plural, =1{רשות אישורים הותקנה}two{רשויות אישורים הותקנו}many{רשויות אישורים הותקנו}other{רשויות אישורים הותקנו}}""על ידי צד שלישי לא ידוע""על ידי המנהל של פרופיל העבודה שלך""על ידי %s"
@@ -251,7 +256,7 @@
"כדאי להשתמש באפשרות הזו ברוב המקרים. היא מאפשרת לך לעקוב אחר התקדמות הדוח, להזין פרטים נוספים על הבעיה ולצלם את המסך. היא עשויה להשמיט כמה קטעים שנמצאים פחות בשימוש ושיצירת הדיווח עליהם נמשכת זמן רב.""דוח מלא""כדאי להשתמש באפשרות הזו כדי שההפרעה למערכת תהיה מזערית כשהמכשיר אינו מגיב או איטי מדי, או כשצריך את כל קטעי הדוח. לא ניתן להזין פרטים נוספים או ליצור צילומי מסך נוספים."
- "{count,plural, =1{צילום המסך לדוח על הבאג ייווצר בעוד שנייה אחת.}one{צילום המסך לדוח על הבאג ייווצר בעוד # שניות.}two{צילום המסך לדוח על הבאג ייווצר בעוד # שניות.}other{צילום המסך לדוח על הבאג ייווצר בעוד # שניות.}}"
+ "{count,plural, =1{צילום המסך לדוח על הבאג ייווצר בעוד שנייה אחת.}two{צילום המסך לדוח על הבאג ייווצר בעוד # שניות.}many{צילום המסך לדוח על הבאג ייווצר בעוד # שניות.}other{צילום המסך לדוח על הבאג ייווצר בעוד # שניות.}}""בוצע צילום מסך של דוח על באג""הניסיון לצילום המסך של דוח על באג נכשל""מצב שקט"
@@ -302,12 +307,12 @@
"גישה אל היומן""SMS""שליחה והצגה של הודעות SMS"
- "קבצים"
- "גישה לקבצים במכשיר שלך"
- "מוזיקה ואודיו"
- "גישה למוזיקה ולאודיו במכשיר"
- "תמונות וסרטונים"
- "גישה לתמונות ולסרטונים במכשיר"
+ "קבצים ומסמכים"
+ "גישה לקבצים ולמסמכים במכשיר"
+ "מוזיקה וסוגי אודיו אחרים"
+ "גישה לקובצי אודיו במכשיר"
+ "תמונות וסרטונים"
+ "גישה לקובצי וידאו ותמונה במכשיר""מיקרופון""הקלטת אודיו""פעילות גופנית"
@@ -347,7 +352,7 @@
"הצגת התראות כפעילויות במסך מלא במכשיר נעול""מאפשרת לאפליקציה להציג התראות כפעילויות במסך מלא במכשיר נעול""התקנה של קיצורי דרך"
- "מאפשרת לאפליקציה להוסיף קיצורי דרך במסך הבית ללא התערבות המשתמש."
+ "מאפשרת לאפליקציה להוסיף קיצורי דרך במסך דף הבית ללא התערבות המשתמש.""הסרת התקנה של קיצורי דרך""מאפשרת לאפליקציה להסיר קיצורי דרך במסך דף הבית ללא התערבות המשתמש.""ניתוב מחדש של שיחות יוצאות"
@@ -582,15 +587,14 @@
"שגיאה באימות""שימוש בנעילת מסך""יש לבטל את נעילת המסך כדי להמשיך"
- "לוחצים לחיצה חזקה על החיישן"
- "לא ניתן לזהות את טביעת האצבע. יש לנסות שוב."
+ "צריך ללחוץ חזק על החיישן"
+ "לא ניתן היה לעבד את טביעת האצבע. אפשר לנסות שוב.""עליך לנקות את חיישן טביעות האצבע ולנסות שוב""עליך לנקות את החיישן ולנסות שוב"
- "לוחצים לחיצה חזקה על החיישן"
+ "צריך ללחוץ חזק על החיישן""הזזת את האצבע לאט מדי. יש לנסות שוב.""יש להשתמש בטביעת אצבע אחרת""בהיר מדי"
- "זוהתה לחיצה על לחצן ההפעלה""יש לנסות ולשנות את תנוחת האצבע""צריך לשנות מעט את תנוחת האצבע בכל פעם"
@@ -602,17 +606,16 @@
"זיהוי הפנים בוצע. יש ללחוץ על אישור""החומרה לזיהוי טביעות אצבעות אינה זמינה.""לא ניתן להגדיר טביעת אצבע"
- "הזמן שהוקצב להגדרה של טביעת האצבע פג. יש לנסות שוב."
+ "נגמר הזמן הקצוב לטביעת אצבע. אפשר לנסות שוב.""פעולת טביעת האצבע בוטלה.""פעולת טביעת האצבע בוטלה על ידי המשתמש."
- "בוצעו יותר מדי ניסיונות. יש להשתמש בנעילת המסך במקום זאת."
- "בוצעו יותר מדי ניסיונות. יש להשתמש בנעילת המסך במקום זאת."
- "לא ניתן לעבד את טביעת האצבע. יש לנסות שוב."
+ "יותר מדי ניסיונות. יש לנסות שוב מאוחר יותר."
+ "יותר מדי ניסיונות. חיישן טביעות האצבע הושבת."
+ "כדאי לנסות שוב.""לא נסרקו טביעות אצבע.""במכשיר הזה אין חיישן טביעות אצבע.""החיישן מושבת באופן זמני.""לא ניתן להשתמש בחיישן טביעות האצבע. צריך ליצור קשר עם ספק תיקונים"
- "לחצן ההפעלה נלחץ""אצבע %d""שימוש בטביעת אצבע""שימוש בטביעת אצבע או בנעילת מסך"
@@ -633,33 +636,26 @@
"ביטול הנעילה בטביעת אצבע""לא ניתן להשתמש בחיישן טביעות האצבע""צריך ליצור קשר עם ספק תיקונים."
- "לא ניתן ליצור את התבנית לזיהוי הפנים. יש לנסות שוב."
+ "לא ניתן היה לקלוט את הפנים במדויק. יש לנסות שוב.""בהירה מדי. צריך תאורה עדינה יותר."
- "אין מספיק אור"
- "צריך להרחיק את הטלפון"
- "צריך לקרב את הטלפון"
- "צריך להגביה את הטלפון"
- "צריך להוריד את הטלפון"
- "צריך להזיז את הטלפון שמאלה"
- "צריך להזיז את הטלפון ימינה"
+ "התמונה חשוכה מדי. צריך תאורה חזקה יותר."
+ "יש להרחיק את הטלפון."
+ "צריך לקרב את הטלפון."
+ "צריך להרים את הטלפון גבוה יותר."
+ "צריך להוריד את הטלפון."
+ "צריך להזיז את הטלפון שמאלה."
+ "צריך להזיז את הטלפון ימינה.""יש להביט ישירות אל המכשיר."
- "אי אפשר לראות את הפנים שלך. צריך להחזיק את הטלפון בגובה העיניים."
+ "עליך למקם את הפנים ישירות מול הטלפון.""יותר מדי תנועה. יש להחזיק את הטלפון בצורה יציבה.""יש לסרוק שוב את הפנים."
- "לא ניתן לזהות את הפנים. יש לנסות שוב."
- "צריך לשנות מעט את תנוחת הראש"
- "צריך להביט ישירות בטלפון"
- "צריך להביט ישירות בטלפון"
- "צריך להביט ישירות בטלפון"
+ "כבר לא ניתן לזהות פנים. יש לנסות שוב."
+ "דומה מדי, יש לשנות תנוחה."
+ "עליך ליישר קצת את הראש."
+ "יש ליישר קצת את הראש."
+ "צריך ליישר קצת את הראש.""יש להסיר כל דבר שמסתיר את הפנים.""צריך לנקות את החלק העליון של המסך, כולל הסרגל השחור"
-
-
-
-
- "לא ניתן ליצור את התבנית לזיהוי הפנים. יש לנסות שוב."
- "זוהו משקפיים כהים. הפנים שלך חייבות להיות גלויות לגמרי."
- "זוהה כיסוי על הפנים. הפנים שלך חייבות להיות גלויות לגמרי.""לא ניתן לאמת את הפנים. החומרה לא זמינה."
@@ -925,14 +921,14 @@
"כדאי לנסות שוב""צריך לבטל את הנעילה כדי שכל התכונות והנתונים יהיו זמינים""חרגת ממספר הניסיונות המרבי לפתיחה ע\"י זיהוי הפנים"
- "אין כרטיס SIM"
- "אין כרטיס SIM בטאבלט."
- "אין כרטיס SIM במכשיר ה-Android TV."
- "אין כרטיס SIM בטלפון."
- "הוספת כרטיס SIM."
- "כרטיס ה-SIM חסר או שלא ניתן לקרוא אותו. הוספת כרטיס SIM."
- "לא ניתן להשתמש בכרטיס ה-SIM הזה."
- "כרטיס ה-SIM שלך הושבת באופן סופי.\n עליך לפנות לספק השירות האלחוטי שלך לקבלת כרטיס SIM אחר."
+ "אין כרטיס SIM"
+ "אין כרטיס SIM בטאבלט."
+ "אין כרטיס SIM במכשיר ה-Android TV."
+ "אין כרטיס SIM בטלפון."
+ "יש להכניס כרטיס SIM."
+ "כרטיס ה-SIM חסר או שלא ניתן לקרוא אותו. יש להכניס כרטיס SIM."
+ "לא ניתן להשתמש בכרטיס ה-SIM הזה."
+ "כרטיס ה-SIM שלך הושבת באופן סופי.\nיש לפנות לספק השירות האלחוטי שלך לקבלת כרטיס SIM אחר.""הטראק הקודם""הטראק הבא""השהיה"
@@ -942,10 +938,10 @@
"הרצה קדימה""שיחות חירום בלבד""רשת נעולה"
- "כרטיס ה-SIM נעול באמצעות PUK."
+ "כרטיס SIM נעול באמצעות PUK.""יש לעיין במדריך למשתמש או לפנות לשירות הלקוחות."
- "כרטיס ה-SIM נעול."
- "מתבצע ביטול נעילה של כרטיס ה-SIM…"
+ "כרטיס ה-SIM נעול."
+ "מתבצע ביטול נעילה של כרטיס SIM…""שרטטת את קו ביטול הנעילה באופן שגוי %1$d פעמים. \n\nיש לנסות שוב בעוד %2$d שניות.""הקלדת סיסמה שגויה %1$d פעמים.\n\nיש לנסות שוב בעוד %2$d שניות.""הקלדת קוד גישה שגוי %1$d פעמים.\n\nאפשר לנסות שוב בעוד %2$d שניות."
@@ -1085,7 +1081,7 @@
"השירות %1$s רוצה להפעיל את התכונה \'גילוי באמצעות מגע\'. כשהתכונה \'גילוי באמצעות מגע\' מופעלת, אפשר לשמוע או לראות תיאורים של הפריטים שעליהם האצבע מונחת או לקיים אינטראקציה עם הטלפון באמצעות תנועות אצבע.""לפני חודש""לפני חודש אחד"
- "{count,plural, =1{ביום האחרון}one{ב-# הימים האחרונים}two{ביומיים האחרונים}other{ב-# הימים האחרונים}}"
+ "{count,plural, =1{ביום האחרון}two{ביומיים האחרונים}many{ב-# הימים האחרונים}other{ב-# הימים האחרונים}}""בחודש שעבר""ישן יותר""בתאריך %s"
@@ -1112,14 +1108,14 @@
"בעוד %d שע‘""בעוד %d י‘""בעוד %d שנים"
- "{count,plural, =1{לפני דקה}one{לפני # דקות}two{לפני # דקות}other{לפני # דקות}}"
- "{count,plural, =1{לפני שעה}one{לפני # שעות}two{לפני שעתיים}other{לפני # שעות}}"
- "{count,plural, =1{לפני יום}one{לפני # ימים}two{לפני יומיים}other{לפני # ימים}}"
- "{count,plural, =1{לפני שנה}one{לפני # שנים}two{לפני שנתיים}other{לפני # שנים}}"
- "{count,plural, =1{דקה}one{# דקות}two{# דקות}other{# דקות}}"
- "{count,plural, =1{שעה}one{# שעות}two{שעתיים}other{# שעות}}"
- "{count,plural, =1{יום}one{# ימים}two{יומיים}other{# ימים}}"
- "{count,plural, =1{שנה}one{# שנים}two{שנתיים}other{# שנים}}"
+ "{count,plural, =1{לפני דקה}two{לפני # דקות}many{לפני # דקות}other{לפני # דקות}}"
+ "{count,plural, =1{לפני שעה}two{לפני שעתיים}many{לפני # שעות}other{לפני # שעות}}"
+ "{count,plural, =1{לפני יום}two{לפני יומיים}many{לפני # ימים}other{לפני # ימים}}"
+ "{count,plural, =1{לפני שנה}two{לפני שנתיים}many{לפני # שנים}other{לפני # שנים}}"
+ "{count,plural, =1{דקה}two{# דקות}many{# דקות}other{# דקות}}"
+ "{count,plural, =1{שעה}two{שעתיים}many{# שעות}other{# שעות}}"
+ "{count,plural, =1{יום}two{יומיים}many{# ימים}other{# ימים}}"
+ "{count,plural, =1{שנה}two{שנתיים}many{# שנים}other{# שנים}}""בעיה בסרטון""לא ניתן להעביר את הסרטון הזה בסטרימינג למכשיר.""לא ניתן להפעיל את הסרטון הזה."
@@ -1247,9 +1243,10 @@
"המערכת מכינה את %1$s.""מתבצעת הפעלה של אפליקציות.""תהליך האתחול בשלבי סיום."
+ "להמשיך בהגדרה?""לחצת על לחצן ההפעלה – בדרך כלל הפעולה הזו מכבה את המסך.\n\nעליך לנסות להקיש בעדינות במהלך ההגדרה של טביעת האצבע שלך."
- "לסיום ההגדרה, יש לכבות את המסך"
- "השבתה"
+ "כיבוי המסך"
+ "להמשך ההגדרה""להמשיך לאמת את טביעת האצבע שלך?""לחצת על לחצן ההפעלה – בדרך כלל הפעולה הזו מכבה את המסך.\n\nעליך לנסות להקיש בעדינות כדי לאמת את טביעת האצבע שלך.""כיבוי המסך"
@@ -1328,10 +1325,10 @@
"ניתן לשנות זאת מאוחר יותר ב\'הגדרות\' > \'אפליקציות\'""אפשר תמיד""לא לאפשר אף פעם"
- "כרטיס ה-SIM הוסר"
- "הרשת הסלולרית לא תהיה זמינה עד שתבוצע הפעלה מחדש עם כרטיס SIM חוקי."
+ "כרטיס ה-SIM הוסר"
+ "הרשת הסלולרית לא תהיה זמינה עד שתבוצע הפעלה מחדש לאחר הכנסת כרטיס SIM חוקי.""סיום"
- "נוסף כרטיס SIM"
+ "כרטיס ה-SIM נוסף""צריך להפעיל מחדש את המכשיר כדי לקבל גישה אל הרשת הסלולרית.""הפעלה מחדש""הפעלה של השירות הסלולרי"
@@ -1402,16 +1399,16 @@
"צריך להקיש כדי להגדיר""יש לבחור כדי להגדיר""ייתכן שיהיה צורך לפרמט מחדש את המכשיר. יש להקיש כדי להוציא את המדיה."
- "לאחסון של תמונות, סרטונים, מוזיקה ועוד"
+ "להעברת תמונות ומדיה""עיון בקובצי המדיה""בעיה עם %s""המדיה %s לא פועלת""יש להקיש כדי לפתור את הבעיה""%s פגום. יש ללחוץ כדי לפתור את הבעיה.""ייתכן שיהיה צורך לפרמט מחדש את המכשיר. יש להקיש כדי להוציא את המדיה."
- "בוצע זיהוי של %s"
+ "%s לא נתמך""המדיה %s לא פועלת"
- "יש להקיש כדי להגדיר"
+ "אין תמיכה ב-%s במכשיר הזה. יש להקיש כדי לבצע הגדרה בפורמט נתמך.""יש לבחור כדי להגדיר את %s בפורמט נתמך.""ייתכן שיהיה צורך לפרמט מחדש את המכשיר""%s הוסר באופן בלתי צפוי"
@@ -1482,7 +1479,7 @@
"נגישות""טפט""שינוי טפט"
- "האזנה להתראות"
+ "מאזין להתראות""VR ליסנר""ספק תנאי""שירות של דירוג התראות"
@@ -1506,7 +1503,7 @@
"דילוג""אין התאמות""חיפוש בדף"
- "{count,plural, =1{התאמה אחת}one{# מתוך {total}}two{# מתוך {total}}other{# מתוך {total}}}"
+ "{count,plural, =1{התאמה אחת}two{# מתוך {total}}many{# מתוך {total}}other{# מתוך {total}}}""סיום""בתהליך מחיקה של אחסון משותף…""שיתוף"
@@ -1610,7 +1607,7 @@
"טלוויזיה""טלפון""רמקולים של מעגן"
- "מכשיר חיצוני"
+ "HDMI""אוזניות""USB""מערכת"
@@ -1643,7 +1640,7 @@
"כרטיס ה-SIM מושבת כרגע. צריך להזין קוד PUK כדי להמשיך. יש לפנות אל הספק לקבלת פרטים.""צריך להזין את קוד האימות הרצוי""יש לאשר את קוד האימות הרצוי"
- "מתבצע ביטול נעילה של כרטיס ה-SIM…"
+ "מתבצע ביטול נעילה של כרטיס SIM…""קוד אימות שגוי.""יש להקליד קוד אימות שאורכו 4 עד 8 ספרות.""קוד PUK צריך להיות בן 8 ספרות."
@@ -1717,7 +1714,7 @@
"מעבר אל %1$s…""מתבצע ניתוק של %1$s…""בעלים"
- "אורח"
+ "אורח/ת""שגיאה""מנהל המערכת שלך לא מאפשר את השינוי הזה""לא נמצאה אפליקציה שתומכת בפעולה הזו"
@@ -1859,14 +1856,14 @@
"כדי לסייע בהפחתת השימוש בנתונים, חוסך הנתונים (Data Saver) מונע מאפליקציות מסוימות לשלוח או לקבל נתונים ברקע. אפליקציות שבהן נעשה שימוש כרגע יכולות לגשת לנתונים, אבל בתדירות נמוכה יותר. המשמעות היא, למשל, שתמונות יוצגו רק לאחר שמקישים עליהן.""להפעיל את חוסך הנתונים?""הפעלה"
- "{count,plural, =1{למשך דקה אחת (עד {formattedTime})}one{למשך # דקות (עד{formattedTime})}two{למשך # דקות (עד{formattedTime})}other{למשך # דקות (עד{formattedTime})}}"
- "{count,plural, =1{למשך דקה (עד {formattedTime})}one{למשך # דק‘ (עד {formattedTime})}two{למשך # דק‘ (עד {formattedTime})}other{למשך # דק‘ (עד {formattedTime})}}"
- "{count,plural, =1{למשך שעה אחת (עד {formattedTime})}one{למשך # שעות (עד {formattedTime})}two{למשך שעתיים (עד {formattedTime})}other{למשך # שעות (עד {formattedTime})}}"
- "{count,plural, =1{למשך שעה (עד {formattedTime})}one{למשך # שע‘ (עד {formattedTime})}two{למשך שעתיים (עד {formattedTime})}other{למשך # שע‘ (עד {formattedTime})}}"
- "{count,plural, =1{למשך דקה אחת}one{למשך # דקות}two{למשך # דקות}other{למשך # דקות}}"
- "{count,plural, =1{למשך דקה}one{למשך # דק‘}two{למשך # דק‘}other{למשך # דק‘}}"
- "{count,plural, =1{למשך שעה אחת}one{למשך # שעות}two{למשך שעתיים}other{למשך # שעות}}"
- "{count,plural, =1{למשך שעה אחת}one{למשך # שע‘}two{למשך שעתיים}other{למשך # שע‘}}"
+ "{count,plural, =1{למשך דקה אחת (עד {formattedTime})}two{למשך # דקות (עד{formattedTime})}many{למשך # דקות (עד{formattedTime})}other{למשך # דקות (עד{formattedTime})}}"
+ "{count,plural, =1{למשך דקה (עד {formattedTime})}two{למשך # דק‘ (עד {formattedTime})}many{למשך # דק‘ (עד {formattedTime})}other{למשך # דק‘ (עד {formattedTime})}}"
+ "{count,plural, =1{למשך שעה אחת (עד {formattedTime})}two{למשך שעתיים (עד {formattedTime})}many{למשך # שעות (עד {formattedTime})}other{למשך # שעות (עד {formattedTime})}}"
+ "{count,plural, =1{למשך שעה (עד {formattedTime})}two{למשך שעתיים (עד {formattedTime})}many{למשך # שע‘ (עד {formattedTime})}other{למשך # שע‘ (עד {formattedTime})}}"
+ "{count,plural, =1{למשך דקה אחת}two{למשך # דקות}many{למשך # דקות}other{למשך # דקות}}"
+ "{count,plural, =1{למשך דקה}two{למשך # דק‘}many{למשך # דק‘}other{למשך # דק‘}}"
+ "{count,plural, =1{למשך שעה אחת}two{למשך שעתיים}many{למשך # שעות}other{למשך # שעות}}"
+ "{count,plural, =1{למשך שעה אחת}two{למשך שעתיים}many{למשך # שע‘}other{למשך # שע‘}}""עד %1$s""עד %1$s""עד %1$s (ההתראה הבאה)"
@@ -1924,7 +1921,6 @@
"העדפת אזור""יש להקליד את שם השפה""הצעות"
- "הצעות""כל השפות""כל האזורים""חיפוש"
@@ -1942,19 +1938,18 @@
"המצלמה לא זמינה""יש להמשיך בטלפון""המיקרופון לא זמין"
- "חנות Play לא זמינה""ההגדרות של Android TV לא זמינות""ההגדרות של הטאבלט לא זמינות""ההגדרות של הטלפון לא זמינות"
- "אי אפשר לגשת לאפליקציה הזו במכשיר %1$s כרגע. במקום זאת, יש לנסות במכשיר Android TV."
- "אי אפשר לגשת לאפליקציה הזו במכשיר %1$s כרגע. במקום זאת, יש לנסות בטאבלט."
- "אי אפשר לגשת לאפליקציה הזו במכשיר %1$s כרגע. במקום זאת, אפשר לנסות בטלפון."
+ "אי אפשר לגשת לאפליקציה הזו במכשיר %1$s. במקום זאת, יש לנסות במכשיר Android TV."
+ "אי אפשר לגשת לאפליקציה הזו במכשיר %1$s. במקום זאת, יש לנסות בטאבלט."
+ "אי אפשר לגשת לאפליקציה הזו במכשיר %1$s. במקום זאת, יש לנסות בטלפון."
+ "אי אפשר לגשת לאפליקציה הזו במכשיר %1$s כרגע. במקום זאת, יש לנסות במכשיר Android TV."
+ "אי אפשר לגשת לאפליקציה הזו במכשיר %1$s כרגע. במקום זאת, יש לנסות בטאבלט."
+ "אי אפשר לגשת לאפליקציה הזו במכשיר %1$s כרגע. במקום זאת, יש לנסות בטלפון.""האפליקציה הזו מבקשת אמצעי אבטחה נוסף. במקום זאת, יש לנסות במכשיר Android TV.""האפליקציה הזו מבקשת אמצעי אבטחה נוסף. במקום זאת, יש לנסות בטאבלט.""האפליקציה הזו מבקשת אמצעי אבטחה נוסף. במקום זאת, יש לנסות בטלפון."
- "אי אפשר לגשת להגדרה הזו במכשיר %1$s. במקום זאת, יש לנסות במכשיר Android TV."
- "אי אפשר לגשת להגדרה הזו במכשיר %1$s. במקום זאת, יש לנסות בטאבלט."
- "אי אפשר לגשת להגדרה הזו במכשיר %1$s. במקום זאת, אפשר לנסות בטלפון.""האפליקציה הזו עוצבה לגרסה ישנה יותר של Android וייתכן שלא תפעל כראוי. ניתן לבדוק אם יש עדכונים או ליצור קשר עם המפתח.""יש עדכון חדש?""יש לך הודעות חדשות"
@@ -1997,7 +1992,7 @@
"שמירה לצורך מילוי אוטומטי""לא ניתן למלא את התוכן באופן אוטומטי""אין הצעות של מילוי אוטומטי"
- "{count,plural, =1{הצעה אחת של מילוי אוטומטי}one{# הצעות של מילוי אוטומטי}two{# הצעות של מילוי אוטומטי}other{# הצעות של מילוי אוטומטי}}"
+ "{count,plural, =1{הצעה אחת של מילוי אוטומטי}two{# הצעות של מילוי אוטומטי}many{# הצעות של מילוי אוטומטי}other{# הצעות של מילוי אוטומטי}}""לשמור בשירות ""%1$s""?""האם לשמור את %1$s ב-""%2$s""?""האם לשמור את %1$s ואת %2$s ב-""%3$s""?"
@@ -2047,8 +2042,7 @@
"לתת לאפליקציה %s הרשאת גישה לכל יומני המכשיר?""הרשאת גישה חד-פעמית""אין אישור"
- "ביומני המכשיר מתועדת הפעילות במכשיר. האפליקציות יכולות להשתמש ביומנים האלה כדי למצוא בעיות ולפתור אותן.\n\nהמידע בחלק מהיומנים יכול להיות רגיש, לכן יש לתת הרשאת גישה לכל יומני המכשיר רק לאפליקציות מהימנות. \n\nגם אם האפליקציה הזו לא תקבל הרשאת גישה לכל יומני המכשיר, היא תוכל לגשת ליומנים שלה. יכול להיות שליצרן המכשיר עדיין תהיה גישה לחלק מהיומנים או למידע במכשיר שלך."
- "ביומני המכשיר מתועדת הפעילות במכשיר. האפליקציות יכולות להשתמש ביומנים האלה כדי למצוא בעיות ולפתור אותן.\n\nהמידע בחלק מהיומנים יכול להיות רגיש, לכן יש לתת הרשאת גישה לכל היומנים של המכשיר רק לאפליקציות שסומכים עליהן. \n\nגם אם האפליקציה הזו לא תקבל הרשאת גישה לכל יומני המכשיר, היא תוכל לגשת ליומנים שלה. יכול להיות שליצרן המכשיר עדיין תהיה גישה לחלק מהיומנים או למידע במכשיר שלך.\n\nמידע נוסף זמין בכתובת g.co/android/devicelogs."
+ "ביומני המכשיר מתועדת הפעילות במכשיר. האפליקציות יכולות להשתמש ביומנים האלה כדי למצוא בעיות ולפתור אותן.\n\nהמידע בחלק מהיומנים יכול להיות רגיש, לכן יש לתת הרשאת גישה לכל יומני המכשיר רק לאפליקציות מהימנות. \n\nגם אם האפליקציה הזו לא תקבל הרשאת גישה לכל יומני המכשיר, היא תוכל לגשת ליומנים שלה. יכול להיות שליצרן המכשיר עדיין תהיה גישה לחלק מהיומנים או למידע במכשיר שלך. מידע נוסף""אין להציג שוב""%1$s רוצה להציג חלקים מ-%2$s""עריכה"
@@ -2061,7 +2055,8 @@
"ההגדרה \'נא לא להפריע\' השתנתה""יש להקיש כדי לבדוק מה חסום.""בדיקת הגדרת ההתראות"
- "החל מגרסת Android 13, אפליקציות שיותקנו יוכלו לשלוח התראות רק אם יקבלו ממך הרשאה. אפשר להקיש כדי לשנות את ההרשאה הזו באפליקציות קיימות."
+
+ "תזכירו לי מאוחר יותר""סגירה""מערכת"
@@ -2108,7 +2103,7 @@
"מצגת %1$s""Bluetooth יישאר מופעל במהלך מצב טיסה""בטעינה"
- "{count,plural, =1{{file_name} ועוד קובץ אחד}one{{file_name} ועוד # קבצים}two{{file_name} ועוד # קבצים}other{{file_name} ועוד # קבצים}}"
+ "{count,plural, =1{{file_name} ועוד קובץ אחד}two{{file_name} ועוד # קבצים}many{{file_name} ועוד # קבצים}other{{file_name} ועוד # קבצים}}""אין אנשים שניתן לשתף איתם""רשימת האפליקציות""לאפליקציה זו לא ניתנה הרשאת הקלטה, אבל אפשר להקליט אודיו באמצעות התקן ה-USB הזה."
@@ -2289,6 +2284,5 @@
"כדאי לבדוק את האפליקציות הפעילות""לא ניתן לגשת למצלמה של הטלפון מה‑%1$s""לא ניתן לגשת למצלמה של הטאבלט מה‑%1$s"
- "אי אפשר לגשת לתוכן המאובטח הזה בזמן סטרימינג. במקום זאת, אפשר לנסות בטלפון."
- "ברירת המחדל של המערכת"
+ "שפת המערכת"
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 8b497c083c3246d2683b4fae5f1ab13b27ee7f4f..0221aa2ffa603b64a006cb2694b8bd0b1ecda508 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "KB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<新規>""(電話番号なし)"
@@ -28,7 +33,6 @@
"留守番電話""MSISDN1""接続に問題があるか、MMIコードが正しくありません。"
- "サポートされていません。""発信番号制限で指定された番号に対してのみ操作できます。""ローミング中はスマートフォンから着信転送設定の変更はできません。""サービスが有効になりました。"
@@ -43,8 +47,8 @@
"入力した PIN が一致しません。""4~8桁の数字のPINを入力してください。""PUKは8桁以上で入力してください。"
- "SIM が PUK でロックされています。ロックを解除するには PUK コードを入力してください。"
- "SIM のブロックを解除するには PUK2 を入力してください。"
+ "SIMカードはPUKでロックされています。ロックを解除するにはPUKコードを入力してください。"
+ "SIMカードのロック解除のためPUK2を入力します。""SIM/RUIMロックを有効にしてください。"入力できるのはあと%d回です。この回数を超えるとSIMがロックされます。
@@ -285,7 +289,7 @@
"電池を消費しているアプリ""拡大""ユーザー補助の使用"
- "「%1$s」がバッテリーを使用しています"
+ "「%1$s」が電池を使用しています""%1$d 個のアプリが電池を使用しています""タップしてバッテリーやデータの使用量を確認""%1$s、%2$s"
@@ -301,12 +305,12 @@
"カレンダーへのアクセス""SMS""SMSメッセージの送信と表示"
- "ファイル"
- "デバイス内のファイルにアクセス"
- "音楽とオーディオ"
- "デバイス上の音楽とオーディオにアクセスする"
- "写真と動画"
- "デバイス上の写真と動画にアクセスする"
+ "ファイル、ドキュメント"
+ "デバイス内のファイルやドキュメントへのアクセス"
+ "音楽やその他の音声"
+ "デバイス上の音声ファイルへのアクセス"
+ "写真と動画"
+ "デバイス上の画像、動画ファイルへのアクセス""マイク""音声の録音""身体活動"
@@ -582,14 +586,13 @@
"画面ロックの使用""続行するには画面ロックを入力してください""センサーにしっかりと押し当ててください"
- "指紋を認識できません。もう一度お試しください。"
+ "指紋を処理できませんでした。もう一度お試しください。""指紋認証センサーの汚れを取り除いて、もう一度お試しください""センサーの汚れを取り除いて、もう一度お試しください""センサーにしっかりと押し当ててください""指の動きが遅すぎました。もう一度お試しください。""別の指紋をお試しください""明るすぎます"
- "電源ボタンが押されました""調整してみてください""毎回、指を置く位置を少し変えてください"
@@ -601,17 +604,16 @@
"顔を認証しました。[確認] を押してください""指紋認証ハードウェアは使用できません。""指紋を設定できません"
- "指紋の設定がタイムアウトしました。もう一度お試しください。"
+ "指紋の読み取りがタイムアウトになりました。もう一度お試しください。""指紋の操作をキャンセルしました。""指紋の操作がユーザーによりキャンセルされました。"
- "試行回数が上限を超えました。代わりに画面ロックを使用してください。"
- "試行回数が上限を超えました。代わりに画面ロックを使用してください。"
- "指紋を処理できません。もう一度お試しください。"
+ "所定の回数以上間違えました。しばらくしてからもう一度お試しください。"
+ "試行回数が上限を超えました。指紋認証センサーを無効にしました。"
+ "もう一度お試しください。""指紋が登録されていません。""このデバイスには指紋認証センサーがありません。""センサーが一時的に無効になっています。""指紋認証センサーを使用できません。修理業者に調整を依頼してください"
- "電源ボタンが押されました""指紋 %d""指紋の使用""指紋または画面ロックの使用"
@@ -632,33 +634,26 @@
"指紋認証""指紋認証センサーを使用できません""修理業者に調整を依頼してください。"
- "顔モデルを作成できません。もう一度お試しください。"
+ "顔を認識できませんでした。もう一度お試しください。""明るすぎます。もっと暗い場所でお試しください。"
- "十分な光がありません"
- "スマートフォンをもっと離してください"
- "スマートフォンをもっと近づけてください"
- "スマートフォンをもっと上げてください"
- "スマートフォンをもっと下げてください"
- "スマートフォンを左に動かしてください"
- "スマートフォンを右に動かしてください"
+ "暗すぎます。もっと明るい場所でお試しください。"
+ "スマートフォンをもっと離してください。"
+ "スマートフォンをもっと近づけてください。"
+ "スマートフォンをもっと高い位置に上げてください。"
+ "スマートフォンをもっと低い位置に下げてください。"
+ "スマートフォンを左に動かしてください。"
+ "スマートフォンを右に動かしてください。""もっとまっすぐデバイスに顔を向けてください。"
- "顔を確認できません。スマートフォンを目の高さに合わせて持ってください。"
+ "顔をスマートフォンの真正面に向けてください。""あまり動かさないでください。安定させてください。""顔を登録し直してください。"
- "顔を認識できません。もう一度お試しください。"
- "顔の位置を少し変えてください"
- "もっとまっすぐスマートフォンに顔を向けてください"
- "もっとまっすぐスマートフォンに顔を向けてください"
- "もっとまっすぐスマートフォンに顔を向けてください"
+ "顔を認識できなくなりました。もう一度お試しください。"
+ "似すぎています。ポーズを変えてください。"
+ "顔の向きを少し戻してください。"
+ "顔を少し傾けてください。"
+ "顔の向きを少し戻してください。""顔を隠しているものをすべて外してください""黒いバーを含め、画面の上部をきれいにしてください"
-
-
-
-
- "顔モデルを作成できません。もう一度お試しください。"
- "サングラスが検出されました。顔が完全に写るようにしてください。"
- "マスクが検出されました。顔が完全に写るようにしてください。""顔を確認できません。ハードウェアを利用できません。"
@@ -924,14 +919,14 @@
"もう一度お試しください""すべての機能とデータを利用するにはロック解除""顔認証の最大試行回数を超えました"
- "SIM がありません"
- "タブレットに SIM がありません。"
- "Android TV デバイスに SIM がありません。"
- "スマートフォンに SIM がありません。"
- "SIM を追加してください。"
- "SIM が見つからないか読み取れません。SIM を追加してください。"
- "SIM が使用できません。"
- "SIM が完全に無効になっています。\n ワイヤレス サービス プロバイダにお問い合わせのうえ、新しい SIM を入手してください。"
+ "SIMカードが挿入されていません"
+ "タブレット内にSIMカードがありません。"
+ "Android TV デバイスに SIM カードがありません。"
+ "SIMカードが挿入されていません"
+ "SIMカードを挿入してください。"
+ "SIMカードが見つからないか読み取れません。SIMカードを挿入してください。"
+ "SIMカードは使用できません。"
+ "お使いのSIMカードは永久に無効となっています。\nワイヤレスサービスプロバイダに問い合わせて新しいSIMカードを入手してください。""前のトラック""次のトラック""一時停止"
@@ -941,10 +936,10 @@
"早送り""緊急通報のみ""ネットワークがロックされました"
- "SIM が PUK でロックされました。"
+ "SIMカードはPUKでロックされています。""ユーザーガイドをご覧いただくか、お客様サポートにお問い合わせください。"
- "SIM がロックされています。"
- "SIM ロックを解除しています…"
+ "SIMカードはロックされています。"
+ "SIMカードのロック解除中...""ロック解除パターンの入力を%1$d回間違えました。\n\n%2$d秒後にもう一度お試しください。""正しくないパスワードを%1$d回入力しました。\n\n%2$d秒後にもう一度お試しください。""正しくないPINを%1$d回入力しました。\n\n%2$d秒後にもう一度お試しください。"
@@ -1246,9 +1241,10 @@
"%1$sをペア設定しています。""アプリを起動しています。""ブートを終了しています。"
+ "設定を続行しますか?""電源ボタンを押しました。通常、この操作で画面が OFF になります。\n\n指紋を設定する場合は電源ボタンに軽く触れてみましょう。"
- "設定を終了するには画面を OFF にします"
- "OFF にする"
+ "画面を OFF にする"
+ "設定を続行""指紋の確認を続行しますか?""電源ボタンを押しました。通常、この操作で画面が OFF になります。\n\n指紋を確認するには、電源ボタンに軽く触れてみましょう。""画面を OFF にする"
@@ -1327,10 +1323,10 @@
"これは後から[設定] > [アプリ]で変更できます。""常に許可する""許可しない"
- "SIM を削除しました"
- "有効な SIM で再起動するまで、モバイル ネットワークは利用できません。"
+ "SIMカードが取り外されました"
+ "有効なSIMカードを挿入して再起動するまでは、モバイルネットワークは利用できません。""完了"
- "SIM を追加しました"
+ "SIMカードが追加されました""モバイルネットワークにアクセスするにはデバイスを再起動してください。""再起動""モバイル サービスを有効にする"
@@ -1360,10 +1356,10 @@
"アナログのオーディオ アクセサリを検出""接続したデバイスはこのスマートフォンと互換性がありません。タップすると、詳細を確認できます。""USB デバッグが接続されました"
- "無効にするにはここをタップしてください"
+ "USB デバッグを無効にするにはここをタップしてください""USB デバッグを無効にする場合に選択します。""ワイヤレス デバッグが接続されました"
- "無効にするにはここをタップしてください"
+ "ワイヤレス デバッグをUSB デバッグを無効にするにはここをタップしてください""ワイヤレス デバッグを無効にするには選択します。""テストハーネス モード有効""出荷時設定にリセットしてテストハーネス モードを無効にしてください。"
@@ -1401,16 +1397,16 @@
"タップして設定してください""選択してセットアップしてください""デバイスの再フォーマットが必要になる場合があります。取り出すにはタップしてください。"
- "写真、動画、音楽などを保存できます"
+ "写真などのメディア転送用""メディア ファイルをブラウジングできます""%sに関する問題""%sは動作していません""タップして修正してください""%sが破損しています。修正するには選択してください。""デバイスの再フォーマットが必要になる場合があります。取り出すにはタップしてください。"
- "%s検出"
+ "対応していない%sです""%sは動作していません"
- "タップしてセットアップしてください。"
+ "このデバイスはこの %sに対応していません。タップして、対応している形式でセットアップしてください。""%sを選択して、対応している形式でセットアップしてください。""デバイスの再フォーマットが必要になる場合があります""%sが不適切に取り外されました"
@@ -1447,7 +1443,7 @@
"メディア出力を他の外部デバイスにルーティングすることをアプリに許可します。""インストールセッションの読み取り""インストールセッションの読み取りをアプリに許可します。これにより、アプリはアクティブパッケージのインストールに関する詳細情報を参照できるようになります。"
- "request install packages"
+ "インストールパッケージのリクエスト""パッケージのインストールをリクエストすることをアプリケーションに許可します。""パッケージの削除のリクエスト""パッケージの削除をリクエストすることをアプリに許可します。"
@@ -1609,7 +1605,7 @@
"テレビ""モバイル デバイス""ホルダーのスピーカー"
- "外部デバイス"
+ "HDMI""ヘッドホン""USB""システム"
@@ -1642,7 +1638,7 @@
"SIMが無効になりました。続行するにはPUKコードを入力してください。詳しくは携帯通信会社にお問い合わせください。""希望のPINコードを入力してください""希望のPINコードを確認してください"
- "SIM ロックを解除しています…"
+ "SIMカードのロック解除中…""PINコードが正しくありません。""PINは4~8桁の数字で入力してください。""PUKコードは8桁の番号です。"
@@ -1685,7 +1681,7 @@
"%1$s にデバイスのフル コントロールを許可しますか?""フル コントロールは、ユーザー補助機能が必要な場合には適していますが、その他の多くのアプリには不要です。""画面の表示と操作"
- "画面上のすべてのコンテンツを読み取り、他のアプリ上にコンテンツを表示することができます。"
+ "画面上のすべてのコンテンツを読み取り、他のアプリでコンテンツを表示することができます。""操作の表示と実行""アプリやハードウェア センサーの操作を記録したり、自動的にアプリを操作したりできます。""許可"
@@ -1830,7 +1826,7 @@
"新しいPINの確認""制限を変更するためのPINを作成してください""PIN が一致しません。もう一度お試しください。"
- "PINが短すぎます。4桁以上で設定してください。"
+ "PINが短すぎます。4桁以上で作成してください。""しばらくしてから再試行""全画面表示""終了するには、上から下にスワイプします。"
@@ -1923,7 +1919,6 @@
"地域設定""言語名を入力""言語の候補"
- "候補""すべての言語""すべての地域""検索"
@@ -1941,19 +1936,18 @@
"カメラ: 使用不可""スマートフォンで続行""マイク: 使用不可"
- "Play ストア利用不可""Android TV の設定: 使用不可""タブレットの設定: 使用不可""スマートフォンの設定: 使用不可"
- "現在、%1$s からアクセスできません。Android TV デバイスでのアクセスをお試しください。"
- "現在、%1$s からアクセスできません。タブレットでのアクセスをお試しください。"
- "現在、%1$s からアクセスできません。スマートフォンでのアクセスをお試しください。"
+ "%1$s からはアクセスできません。Android TV デバイスでのアクセスをお試しください。"
+ "%1$s からはアクセスできません。タブレットでのアクセスをお試しください。"
+ "%1$s からはアクセスできません。スマートフォンでのアクセスをお試しください。"
+ "現在、%1$s からアクセスできません。Android TV デバイスでのアクセスをお試しください。"
+ "現在、%1$s からアクセスできません。タブレットでのアクセスをお試しください。"
+ "現在、%1$s からアクセスできません。スマートフォンでのアクセスをお試しください。""このアプリはセキュリティの強化を求めています。Android TV デバイスでのアクセスをお試しください。""このアプリはセキュリティの強化を求めています。タブレットでのアクセスをお試しください。""このアプリはセキュリティの強化を求めています。スマートフォンでのアクセスをお試しください。"
- "%1$s からはアクセスできません。Android TV デバイスでのアクセスをお試しください。"
- "%1$s からはアクセスできません。タブレットでのアクセスをお試しください。"
- "%1$s からはアクセスできません。スマートフォンでのアクセスをお試しください。""このアプリは以前のバージョンの Android 用に作成されており、正常に動作しない可能性があります。アップデートを確認するか、デベロッパーにお問い合わせください。""アップデートを確認""新着メッセージがあります"
@@ -2046,8 +2040,7 @@
"%s にすべてのデバイスログへのアクセスを許可しますか?""1 回限りのアクセスを許可""許可しない"
- "デバイスのログに、このデバイスで発生したことが記録されます。アプリは問題を検出、修正するためにこれらのログを使用することができます。\n\nログによっては機密性の高い情報が含まれている可能性があるため、すべてのデバイスログへのアクセスは信頼できるアプリにのみ許可してください。\n\nすべてのデバイスログへのアクセスを許可しなかった場合も、このアプリはアプリ独自のログにアクセスできます。また、デバイスのメーカーもデバイスの一部のログや情報にアクセスできる可能性があります。"
- "デバイスのログに、このデバイスで発生したことが記録されます。アプリは問題を検出、修正するためにこれらのログを使用することができます。\n\nログによっては機密性の高い情報が含まれている可能性があるため、すべてのデバイスログへのアクセスは信頼できるアプリにのみ許可してください。\n\nすべてのデバイスログへのアクセスを許可しなかった場合でも、このアプリはアプリ独自のログにアクセスできます。また、デバイスの製造メーカーもデバイスの一部のログや情報にアクセスできる可能性があります。\n\n詳しくは、g.co/android/devicelogs をご覧ください。"
+ "デバイスのログに、このデバイスで発生したことが記録されます。アプリは問題を検出、修正するためにこれらのログを使用することができます。\n\nログによっては機密性の高い情報が含まれている可能性があるため、すべてのデバイスログへのアクセスは信頼できるアプリにのみ許可してください。\n\nすべてのデバイスログへのアクセスを許可しなかった場合も、このアプリはアプリ独自のログにアクセスできます。また、デバイスのメーカーもデバイスの一部のログや情報にアクセスできる可能性があります。詳細""次回から表示しない""「%1$s」が「%2$s」のスライスの表示をリクエストしています""編集"
@@ -2060,7 +2053,8 @@
"サイレント モードが変わりました""タップしてブロック対象をご確認ください。""通知設定の確認"
- "Android 13 以降では、インストールするアプリに、通知を送信する権限を付与する必要があります。既存のアプリのこの権限を変更するには、タップしてください。"
+
+ "後で""閉じる""システム"
@@ -2146,7 +2140,7 @@
"このコンテンツを個人用アプリと共有することはできません""このコンテンツを個人用アプリで開くことはできません""仕事用プロファイルが一時停止しています"
- "タップして ON にする"
+ "タップすると有効になります""仕事用アプリはありません""個人用アプリはありません""個人用プロファイルで %s を開きますか?"
@@ -2283,11 +2277,10 @@
"バックグラウンド アクティビティ""アプリがバッテリーを消費しています""アプリがまだアクティブです"
- "%1$s がバックグラウンドで実行されています。タップすると、バッテリー使用状況を管理できます。"
+ "%1$s がバックグラウンドで実行されています。タップすると、バッテリー使用量を管理できます。""%1$s がバッテリー駆動時間に影響を与えている可能性があります。タップして、実行中のアプリをご確認ください。""実行中のアプリをチェック""%1$s からスマートフォンのカメラにアクセスできません""%1$s からタブレットのカメラにアクセスできません"
- "ストリーミング中はアクセスできません。スマートフォンでのアクセスをお試しください。"
- "システムのデフォルト"
+ "システムの言語"
diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml
index 6d6cda1a4cfdedbd328ce7d48ec3f17a89549062..0b089a62c4320dc56fc87b48adc534d19853d7c5 100644
--- a/core/res/res/values-ka/strings.xml
+++ b/core/res/res/values-ka/strings.xml
@@ -21,6 +21,11 @@
"ბაიტი"
+ "კბაიტი"
+ "მბაიტი"
+ "გბაიტი"
+ "ტბაიტი"
+ "PB""%1$s%2$s""უსათაურო""(ტელეფონის ნომრის გარეშე)"
@@ -28,7 +33,6 @@
"ხმოვანი ფოსტა""MSISDN1""კავშირის პრობლემა ან არასწორი MMI კოდი."
- "ფუნქცია მხარდაუჭერელია.""ოპერაცია შეზღუდულია მხოლოდ დაშვებულ ნომრებზე.""ზარის გადამისამართების პარამეტრების თქვენი ტელეფონიდან შეცვლა როუმინგისას ვერ მოხერხდება.""სერვისი ჩართულია."
@@ -43,8 +47,8 @@
"თქვენ მიერ შეყვანილი PIN კოდები არ შეესატყვისება.""აკრიფეთ PIN, რომელიც შედგება 4-დან 8 ციფრამდე.""აკრიფეთ PUK, რომელიც რვა ან მეტი ციფრისგან შედგება."
- "თქვენი SIM ბარათი დაბლოკილია PUK კოდით. განბლოკვისთვის შეიყვანეთ PUK კოდი."
- "აკრიფეთ PUK2 SIM-ის განბლოკვის მიზნით."
+ "თქვენი SIM ბარათი დაბლოკილია PUK კოდით. განბლოკვისთვის შეიყვანეთ PUK კოდი."
+ "SIM ბარათის განსაბლოკად აკრიფეთ PUK2.""წარუმატებელი მცდელობა. ჩართეთ SIM/RUIM ჩაკეტვა."თქვენ დაგრჩათ %d მცდელობა, სანამ SIM დაიბლოკება.
@@ -301,16 +305,16 @@
"თქვენს კალენდარზე წვდომა""SMS""SMS შეტყობინებების გაგზავნა და ნახვა"
- "ფაილები"
- "ფაილებზე წვდომა თქვენს მოწყობილობაში"
- "მუსიკა და აუდიო"
- "იქონიეთ წვდომა მუსიკასა და აუდიოზე თქვენს მოწყობილობაზე"
- "ფოტოები და ვიდეოები"
- "იქონიეთ წვდომა ფოტოებსა და ვიდეოებზე თქვენს მოწყობილობაზე"
+ "ფაილები და დოკუმენტები"
+ "თქვენს მოწყობილობაზე ფაილებსა და დოკუმენტებზე წვდომა"
+ "მუსიკა და სხვა აუდიო ფაილები"
+ "თქვენს მოწყობილობაზე აუდიო ფაილებზე წვდომა"
+ "ფოტოები და ვიდეოები"
+ "თქვენს მოწყობილობაზე სურათის ფაილებსა და ვიდეო ფაილებზე წვდომა""მიკროფონი""აუდიოს ჩაწერა""ფიზიკური აქტივობა"
- "ფიზიკურ აქტივობაზე წვდომა"
+ "ფიზიკური აქტივობაზე წვდომა""კამერა""ფოტოებისა და ვიდეოების გადაღება""ახლომახლო მოწყობილობები"
@@ -582,14 +586,13 @@
"გამოიყენეთ ეკრანის დაბლოკვა""გასაგრძელებლად შედით ეკრანის დაბლოკვაში""მაგრად დააჭირეთ სენსორს"
- "თითის ანაბეჭდის ამოცნობა ვერ ხერხდება. ცადეთ ხელახლა."
+ "თითის ანაბეჭდის დამუშავება ვერ მოხერხდა. გთხოვთ, ცადოთ ხელახლა.""გაწმინდეთ თითის ანაბეჭდის სენსორი და ხელახლა ცადეთ""გაწმინდეთ სენსორი და ხელახლა ცადეთ""მაგრად დააჭირეთ სენსორს""თითის აღება მეტისმეტად ნელა მოხდა. გთხოვთ, სცადოთ ხელახლა.""ცადეთ სხვა თითის ანაბეჭდი""ზედმეტად ნათელია"
- "აღმოჩენილია Ძლიერი დაჭერა""ცადეთ დარეგულირება""ოდნავ შეცვალეთ თითის დაჭერის ადგილი ყოველ ჯერზე"
@@ -601,17 +604,16 @@
"სახე ავტორიზებულია, დააჭირეთ დადასტურებას""თითის ანაბეჭდის აპარატურა არ არის ხელმისაწვდომი.""თითის ანაბეჭდის დაყენება ვერ ხერხდება"
- "თითის ანაბეჭდის დაყენების დრო ამოიწურა. ცადეთ ხელახლა."
+ "თითის ანაბეჭდის ლოდინის დრო ამოიწურა. სცადეთ ხელახლა.""თითის ანაბეჭდის აღების ოპერაცია გაუქმდა.""თითის ანაბეჭდის ოპერაცია გააუქმა მომხმარებელმა."
- "მეტისმეტად ბევრი მცდელობა იყო. სანაცვლოდ გამოიყენეთ ეკრანის დაბლოკვა."
- "მეტისმეტად ბევრი მცდელობა იყო. სანაცვლოდ გამოიყენეთ ეკრანის დაბლოკვა."
- "თითის ანაბეჭდის დამუშავება შეუძლებელია. ცადეთ ხელახლა."
+ "ძალიან ბევრი მცდელობა იყო. სცადეთ მოგვიანებით."
+ "დაფიქსირდა მეტისმეტად ბევრი მცდელობა. თითის ანაბეჭდის სენსორი გათიშულია."
+ "ხელახლა სცადეთ""თითის ანაბეჭდები რეგისტრირებული არ არის.""ამ მოწყობილობას არ აქვს თითის ანაბეჭდის სენსორი.""სენსორი დროებით გათიშულია.""თითის ანაბეჭდის სენსორის გამოყენება ვერ ხერხდება. ეწვიეთ შეკეთების სერვისის პროვაიდერს"
- "ჩართვის ღილაკზე დაეჭირა""თითი %d""გამოიყენეთ თითის ანაბეჭდი""გამოიყენეთ თითის ანაბეჭდი ან ეკრანის დაბლოკვა"
@@ -632,33 +634,26 @@
"თითის ანაბეჭდით განბლოკვა""თითის ანაბეჭდის სენსორის გამოყენება ვერ ხერხდება""ეწვიეთ შეკეთების სერვისის პროვაიდერს."
- "თქვენი სახის მოდელი ვერ იქმნება. ცადეთ ხელახლა."
+ "სახის ზუსტი მონაცემები არ აღიბეჭდა. ცადეთ ხელახლა.""მეტისმეტად ნათელია. ცადეთ უფრო სუსტი განათება."
- "განათება არასაკმარისია"
- "გაწიეთ ტელეფონი უფრო შორს"
- "მიიტანეთ ტელეფონი უფრო ახლოს"
- "აწიეთ ტელეფონი ზემოთ"
- "ჩაწიეთ ტელეფონი ქვემოთ"
- "გაწიეთ ტელეფონი თქვენგან მარცხნივ"
- "გაწიეთ ტელეფონი თქვენგან მარჯვნივ"
+ "მეტისმეტად ბნელია. ცადეთ უფრო ძლიერი განათება."
+ "გადაანაცვლეთ ტელეფონი უფრო შორს."
+ "მიიტანეთ ტელეფონი უფრო ახლოს."
+ "გადაანაცვლეთ ტელეფონი ზემოთ."
+ "გადაანაცვლეთ ტელეფონი ქვემოთ."
+ "გადაანაცვლეთ ტელეფონი მარცხნივ."
+ "გადაანაცვლეთ ტელეფონი მარჯვნივ.""გთხოვთ, უფრო პირდაპირ შეხედოთ თქვენს მოწყობილობას."
- "თქვენი სახე არ ჩანს. დაიჭირეთ ტელეფონი თვალის დონეზე."
+ "დაიჭირეთ სახე უშუალოდ ტელეფონის წინ.""მეტისმეტად მოძრაობთ. მყარად დაიჭირეთ ტელეფონი.""გთხოვთ, ხელახლა დაარეგისტრიროთ თქვენი სახე."
- "სახის ამოცნობა ვერ ხერხდება. ცადეთ ხელახლა."
- "ოდნავ შეცვალეთ თავის პოზიცია"
- "პირდაპირ უყურეთ ტელეფონს"
- "პირდაპირ უყურეთ ტელეფონს"
- "პირდაპირ უყურეთ ტელეფონს"
+ "სახის ამოცნობა ვეღარ ხერხდება. ცადეთ ხელახლა."
+ "მეტისმეტად მსგავსია. გთხოვთ, შეცვალოთ პოზა."
+ "თავი ცოტა ნაკლებად მიაბრუნეთ."
+ "თავი ცოტა ნაკლებად გადახარეთ."
+ "თავი ცოტა ნაკლებად მიაბრუნეთ.""მოაშორეთ ყველაფერი, რაც სახეს გიფარავთ.""გაწმინდეთ ეკრანის ზედა ნაწილი, შავი ზოლის ჩათვლით."
-
-
-
-
- "თქვენი სახის მოდელი ვერ იქმნება. ცადეთ ხელახლა."
- "აღმოჩენილია მუქი სათვალე. თქვენი სახე მთლიანად უნდა ჩანდეს."
- "აღმოჩენილია სახის დაფარვა. თქვენი სახე მთლიანად უნდა ჩანდეს.""სახე ვერ დასტურდება. აპარატი მიუწვდომელია."
@@ -924,14 +919,14 @@
"კიდევ სცადეთ""ყველა ფუნქციისა და მონაცემის განბლოკვა""სახით განბლოკვის მცდელობამ დაშვებულ რაოდენობას გადააჭარბა"
- "SIM არ არის"
- "ტაბლეტში SIM არ არის."
- "თქვენს Android TV მოწყობილობაში SIM ბარათი არ არის."
- "ტელეფონში SIM არ არის."
- "SIM-ის დამატება."
- "SIM აკლია ან არ იკითხება. SIM-ის დამატება."
- "გამოუყენებელი SIM."
- "თქვენი SIM სამუდამოდ გამორთულია.\n დაუკავშირდით თქვენს უკაბელო სერვისის პროვაიდერს სხვა SIM ბარათისთვის."
+ "SIM ბარათი არ არის"
+ "ტაბლეტში არ დევს SIM ბარათი."
+ "თქვენს Android TV მოწყობილობაში SIM ბარათი არ არის."
+ "არ არის SIM ბარათი ტელეფონში."
+ "ჩადეთ SIM ბარათი."
+ "SIM ბარათი არ არის ან არ იკითხება. ჩადეთ SIM ბარათი."
+ "არამოხმარებადი SIM ბარათი."
+ "თქვენი SIM ბარათი გამუდმებით გამორთული იყო.\n დაუკავშირდით თქვენი უკაბელო სერვისის პროვაიდერს სხვა SIM ბარათისთვის.""წინა ჩანაწერი""შემდეგი ჩანაწერი""პაუზა"
@@ -941,10 +936,10 @@
"წინ გადახვევა""მხოლოდ გადაუდებელი დახმარების ზარები""ქსელი ჩაკეტილია"
- "SIM დაბლოკილია PUK-ით."
+ "SIM ბარათი არის PUK-ით დაბლოკილი.""იხილეთ მომხმარებლის სახელმძღვანელო ან დაუკავშირდით კლიენტების მომსახურებას."
- "SIM-ბარათი ჩაკეტილია."
- "SIM-ის განბლოკვა…"
+ "SIM ბარათი დაბლოკილია."
+ "SIM ბარათის განბლოკვა…""თქვენ %1$d-ჯერ დახატეთ განბლოკვის ნიმუში. \n\nსცადეთ ხელახლა %2$d წამში.""თქვენ არასწორად დაბეჭდეთ თქვენი პაროლი %1$d ჯერ. \n\nხელახლა სცადეთ %2$d წამში.""თქვენ %1$d-ჯერ არასწორად შეიყვანეთ PIN კოდი. \n\nსცადეთ ხელახლა %2$d წამში."
@@ -1246,9 +1241,10 @@
"ემზადება %1$s.""აპების ჩართვა""ჩატვირთვის დასასრული."
+ "გსურთ დაყენების გაგრძელება?""თქვენ დააჭირეთ ჩართვის ღილაკს — ჩვეულებრივ, ის ეკრანს გამორთავს.\n\nთქვენი თითის ანაბეჭდის დაყენებისას ცადეთ მსუბუქად შეხება."
- "დაყენების დასასრულებლად გამორთეთ ეკრანი"
- "გამორთვა"
+ "ეკრანის გამორთვა"
+ "დაყენების გაგრძელება""გსურთ ანაბეჭდის დადასტურების გაგრძელება?""თქვენ დააჭირეთ ჩართვის ღილაკს — ჩვეულებრივ, ის ეკრანს გამორთავს.\n\nთქვენი თითის ანაბეჭდის დასადასტურებლად ცადეთ მსუბუქად შეხება.""ეკრანის გამორთვა"
@@ -1327,10 +1323,10 @@
"ამის შეცვლა შეგიძლიათ მოგვიანებით აპების პარამეტრებიდან.""ნებართვის მიცემა - ყოველთვის""არასოდეს მისცე უფლება"
- "SIM ამოღებულია"
- "მობილური ქსელი მიუწვდომელი იქნება, სანამ არ გადატვირთავთ მოქმედი SIM ბარათით."
+ "SIM ბარათი ამოღებულია"
+ "მობილური კავშირი არ იქნება ხელმისაწვდომი, ვიდრე არ ჩადებთ ქმედით SIM ბარათს და გადატვირთავთ.""დასრულდა"
- "SIM დამატებულია"
+ "SIM ბარათი დაემატა""გადატვირთეთ თქვენი მოწყობილობა მობილურ ქსელზე წვდომისთვის.""გადატვირთვა""გაააქტიურეთ მობილური სერვისი"
@@ -1401,16 +1397,16 @@
"შეეხეთ დასაყენებლად""დასაყენებლად აირჩიეთ""შეიძლება მოწყობილობის რეფორმატირება დაგჭირდეთ. შეეხეთ ამოსაღებად."
- "ფოტოების, ვიდეოების, მუსიკისა და ბევრი სხვა რამის შესანახად"
+ "ფოტოებისა და მედიის გადასატანად""მედიაფაილების დათვალიერება""პრობლემა %s-თან მიმართებით""%s არ მუშაობს""შეეხეთ გამოსასწორებლად""%s დაზიანებულია. შეეხეთ გასასწორებლად.""შეიძლება მოწყობილობის რეფორმატირება დაგჭირდეთ. შეეხეთ ამოსაღებად."
- "აღმოჩენილია %s"
+ "მხარდაუჭერელი %s""%s არ მუშაობს"
- "შეეხეთ დასაყენებლად ."
+ "ეს %s მხარდაუჭერელია არ მოწყობილობაზე. შეეხეთ მხარდაჭერილ ფორმატში დასაყენებლად.""აირჩიეთ, რათა დააყენოთ %s მხარდაჭერილ ფორმატში.""შეიძლება მოწყობილობის რეფორმატირება დაგჭირდეთ""მოულოდნელად მოხდა %s-ის ამოღება"
@@ -1609,7 +1605,7 @@
"ტელევიზია""ტელეფონი""სპიკერების მიმაგრება"
- "გარე მოწყობილობა"
+ "HDMI""ყურსასმენები""USB""სისტემა"
@@ -1642,7 +1638,7 @@
"SIM ამჟამად დეაქტივირებულია. გასაგრძელებლად შეიყვანეთ PUK კოდი. დეტალებისთვის მიმართეთ მობილურ ოპერატორს.""სასურველი PIN კოდის შეყვანა""სასურველი PIN კოდის დადასტურება"
- "SIM-ის განბლოკვა…"
+ "SIM ბარათის განბლოკვა…""არასწორი PIN კოდი.""აკრიფეთ PIN, რომელიც შედგება 4-დან 8 ციფრამდე.""PUK-კოდი 8 ციფრისგან უნდა შედგებოდეს."
@@ -1923,7 +1919,6 @@
"რეგიონის პარამეტრები""აკრიფეთ ენის სახელი""რეკომენდებული"
- "რეკომენდებული""ყველა ენა""ყველა რეგიონი""ძიება"
@@ -1941,19 +1936,18 @@
"კამერა მიუწვდომელია""ტელეფონზე გაგრძელება""მიკროფონი მიუწვდომელია"
- "Play Store მიუწვდომელია""Android TV-ს პარამეტრები მიუწვდომელია""ტაბლეტის პარამეტრები მიუწვდომელია""ტელეფონის პარამეტრები მიუწვდომელია"
- "ამჟამად ამ აპზე თქვენი %1$s-დან წვდომა შეუძლებელია. ცადეთ Android TV მოწყობილობიდან."
- "ამჟამად ამ აპზე თქვენი %1$s-დან წვდომა შეუძლებელია. ცადეთ ტაბლეტიდან."
- "ამჟამად ამ აპზე თქვენი %1$s-დან წვდომა შეუძლებელია. ცადეთ ტელეფონიდან."
+ "ამჟამად ამ აპზე თქვენი %1$s-დან წვდომა შეუძლებელია. ცადეთ Android TV მოწყობილობიდან."
+ "ამჟამად ამ აპზე თქვენი %1$s-დან წვდომა შეუძლებელია. ცადეთ ტაბლეტიდან."
+ "ამჟამად ამ აპზე თქვენი %1$s-დან წვდომა შეუძლებელია. ცადეთ ტელეფონიდან."
+ "ამჟამად ამ აპზე თქვენი %1$s-დან წვდომა შეუძლებელია. ცადეთ Android TV მოწყობილობიდან."
+ "ამჟამად ამ აპზე თქვენი %1$s-დან წვდომა შეუძლებელია. ცადეთ ტაბლეტიდან."
+ "ამჟამად ამ აპზე თქვენი %1$s-დან წვდომა შეუძლებელია. ცადეთ ტელეფონიდან.""ეს აპი დამატებით უსაფრთხოებას ითხოვს. ცადეთ Android TV მოწყობილობიდან.""ეს აპი დამატებით უსაფრთხოებას ითხოვს. ცადეთ ტაბლეტიდან.""ეს აპი დამატებით უსაფრთხოებას ითხოვს. ცადეთ ტელეფონიდან."
- "ამჟამად ამ აპზე თქვენი %1$s-დან წვდომა შეუძლებელია. ცადეთ Android TV მოწყობილობიდან."
- "ამჟამად ამ აპზე თქვენი %1$s-დან წვდომა შეუძლებელია. ცადეთ ტაბლეტიდან."
- "ამჟამად ამ აპზე თქვენი %1$s-დან წვდომა შეუძლებელია. ცადეთ ტელეფონიდან.""ეს აპი Android-ის ძველი ვერსიისთვის შეიქმნა და შესაძლოა სათანადოდ არ მუშაობდეს. გადაამოწმეთ განახლებები ან დაუკავშირდით დეველოპერს.""განახლების შემოწმება""თქვენ ახალი შეტყობინებები გაქვთ"
@@ -2046,8 +2040,7 @@
"გსურთ %s-ს მიანიჭოთ მოწყობილობის ყველა ჟურნალზე წვდომა?""ერთჯერადი წვდომის დაშვება""არ დაიშვას"
- "მოწყობილობის ჟურნალში იწერება, რა ხდება ამ მოწყობილობაზე. აპებს შეუძლია ამ ჟურნალების გამოყენება პრობლემების აღმოსაჩენად და მოსაგვარებლად.\n\nზოგი ჟურნალი შეიძლება სენსიტიური ინფორმაციის მატარებელი იყოს, ამიტომაც მოწყობილობის ყველა ჟურნალზე წვდომა მხოლოდ სანდო აპებს მიანიჭეთ. \n\nთუ ამ აპს მოწყობილობის ყველა ჟურნალზე წვდომას არ მიანიჭებთ, მას მაინც ექნება წვდომა თქვენს ჟურნალებზე. თქვენი მოწყობილობის მწარმოებელს მაინც შეეძლება თქვენი მოწყობილობის ზოგიერთ ჟურნალსა თუ ინფორმაციაზე წვდომა."
- "მოწყობილობის ჟურნალში იწერება, რა ხდება ამ მოწყობილობაზე. აპებს შეუძლია ამ ჟურნალების გამოყენება პრობლემების აღმოსაჩენად და მოსაგვარებლად.\n\nზოგი ჟურნალი შეიძლება სენსიტიური ინფორმაციის მატარებელი იყოს, ამიტომაც მოწყობილობის ყველა ჟურნალზე წვდომა მხოლოდ სანდო აპებს მიანიჭეთ. \n\nთუ ამ აპს მოწყობილობის ყველა ჟურნალზე წვდომას არ მიანიჭებთ, მას მაინც ექნება წვდომა საკუთარ ჟურნალებზე. თქვენი მოწყობილობის მწარმოებელს მაინც შეეძლება თქვენი მოწყობილობის ზოგიერთ ჟურნალსა თუ ინფორმაციაზე წვდომა.\n\n შეიტყვეთ მეტი g.co/android/devicelogs."
+ "მოწყობილობის ჟურნალში იწერება, რა ხდება ამ მოწყობილობაზე. აპებს შეუძლია ამ ჟურნალების გამოყენება პრობლემების აღმოსაჩენად და მოსაგვარებლად.\n\nზოგი ჟურნალი შეიძლება სენსიტიური ინფორმაციის მატარებელი იყოს, ამიტომაც მოწყობილობის ყველა ჟურნალზე წვდომა მხოლოდ სანდო აპებს მიანიჭეთ. \n\nთუ ამ აპს მოწყობილობის ყველა ჟურნალზე წვდომას არ მიანიჭებთ, მას მაინც ექნება წვდომა თქვენს ჟურნალებზე. თქვენი მოწყობილობის მწარმოებელს მაინც შეეძლება თქვენი მოწყობილობის ზოგიერთ ჟურნალსა თუ ინფორმაციაზე წვდომა. შეიტყვეთ მეტი""აღარ გამოჩნდეს""%1$s-ს სურს, გაჩვენოთ %2$s-ის ფრაგმენტები""რედაქტირება"
@@ -2060,7 +2053,8 @@
"„არ შემაწუხოთ“ რეჟიმი შეცვლილია""შეეხეთ იმის სანახავად, თუ რა არის დაბლოკილი.""შეტყობინების პარამეტრების შემოწმება"
- "Android 13-ზე შეტყობინებების გასაგზავნად საჭიროა თქვენ მიერ დაინსტალირებული აპებისთვის ნებართვის მინიჭება. არსებული აპებისთვის ამ ნებართვის შესაცვლელად შეეხეთ."
+
+ "შემახსენე მოგვიან.""უარყოფა""სისტემა"
@@ -2288,6 +2282,5 @@
"აქტიური აპების შემოწმება""ტელეფონის კამერაზე წვდომა ვერ მოხერხდა თქვენი %1$s-დან""ტაბლეტის კამერაზე წვდომა ვერ მოხერხდა თქვენი %1$s-დან"
- "მასზე წვდომის მიᲦება შეუძლებელია სტრიმინგის დროს. ცადეთ ტელეფონიდან."
- "სისტემის ნაგულისხმევი"
+ "სისტემის ენა"
diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml
index 153faf7dcf860b0c3f27bbf83c4bc79ea18899fd..bef521f8b5c8d5eaa9779298c867f7868dcf235a 100644
--- a/core/res/res/values-kk/strings.xml
+++ b/core/res/res/values-kk/strings.xml
@@ -21,6 +21,11 @@
"Б"
+ "КБ"
+ "MБ"
+ "ГБ"
+ "TБ"
+ "ПБ""%1$s%2$s""<Атаусыз>""(Телефон нөмірі жоқ)"
@@ -28,7 +33,6 @@
"Дауыстық пошта""MSISDN1""Байланыс мәселесі немесе MMИ коды жарамсыз."
- "Функция қолданылмайды.""Әрекет анықталған сандарды теруге шектелген.""Роуминг кезінде телефоннан қоңырауды басқа нөмірге бағыттау параметрлері өзгертілмейді.""Қызмет қосылған."
@@ -43,8 +47,8 @@
"Сіз терген PIN кодтары сәйкес емес.""4-8 саннан тұратын PIN кодын теру.""8 немесе одан көп саннан тұратын PUK кодын теру."
- "SIM картаңыз PUK кодымен құлыпталған. Ашу үшін PUK кодын теріңіз."
- "SIM картасының құлпын ашу үшін PUK2 кодын теріңіз."
+ "SIM картаңыз PUK арқылы бекітілген. Ашу үшін PUK кодын теріңіз."
+ "SIM картасын ашу үшін PUK2 кодын теріңіз.""Сәтсіз, SIM/RUIM бекітпесін қосыңыз."SIM картасының бекітілуіне %d әрекет қалды.
@@ -73,7 +77,7 @@
"Қоңырау шалушының жеке анықтағышы бастапқы бойынша шектелмеген. Келесі қоңырау: Шектелмеген""Қызмет ұсынылмаған.""Қоңырау шалушы идентификаторы параметрін өзгерту мүмкін емес."
- "Мобильдік интернет қызметі жоқ"
+ "Мобильдік деректер қызметі жоқ""Жедел қызметке қоңырау шалу қолжетімді емес""Дауыстық қоңыраулар қызметі жоқ""Дауыс қызметі немесе жедел қызметке қоңырау шалу мүмкіндігі жоқ"
@@ -86,7 +90,7 @@
"Дабылдар""Қоңырауды басқа нөмірге бағыттау""Шұғыл кері қоңырау шалу режимі"
- "Мобильдік интернет күйі"
+ "Мобильдік деректер күйі""SMS хабарлары""Дауыстық пошта хабарлары""Wi-Fi қоңыраулары"
@@ -171,7 +175,7 @@
"%1$s үшін кіру қателігі""Синх""Синхрондау мүмкін емес"
- "Көптеген %s контентін жоюға әрекет жасалды."
+ "Көптеген %s мазмұнын жоюға әрекет жасалды.""Планшет жады толы. Орын босату үшін кейбір файлдарды жойыңыз.""Сағат жады толы. Орын босату үшін кейбір файлдарды жойыңыз.""Android TV құрылғысының жады толы. Орын босату үшін кейбір файлдарды өшіріп тастаңыз."
@@ -265,7 +269,7 @@
"Құлыптау""999+""Жаңа хабарландыру"
- "Виртуалдық пернетақта"
+ "Виртуалды пернетақта""Физикалық пернетақта""Қауіпсіздік""Көлік режимі"
@@ -301,16 +305,16 @@
"күнтізбеге кіру""SMS""SMS хабарларын жіберу және көру"
- "Файлдар"
- "құрылғыңыздағы файлдарды пайдалану"
- "Музыка және аудио"
- "құрылғыдағы музыка мен аудиомазмұнды пайдалану рұқсаты"
- "Фотосуреттер мен бейнелер"
- "құрылғыдағы фотосуреттер мен бейнелерді пайдалану рұқсаты"
+ "Файлдар мен құжаттар"
+ "құрылғыдағы файлдар мен құжаттарды пайдалану"
+ "Музыка және басқа аудио"
+ "құрылғыдағы аудиофайлдарды пайдалану"
+ "Фотосуреттер және бейнелер"
+ "құрылғыдағы кескіндер мен бейнефайлдарды пайдалану""Микрофон""аудио жазу"
- "Қимыл-қозғалыс"
- "қимыл-қозғалыс дерегін алу"
+ "Іс-қимыл"
+ "іс-қимыл дерегін алу""Камера""суретке түсіріп, бейне жазу""Маңайдағы құрылғылар"
@@ -323,12 +327,12 @@
"ағза күйінің көрсеткіштері туралы сенсор деректеріне қатынасу""Хабарландырулар""хабарландыруларды көрсету"
- "Терезе контентін оқып отыру"
- "Ашық тұрған терезе контентін тексеру."
+ "Терезе мазмұнын оқып отыру"
+ "Ашық тұрған терезе мазмұнын тексеру.""Түртілген элементтерді дыбыстау функциясын қосу""Түртілген элементтер дауыстап айтылады және экранды қимылдар арқылы зерттеуге болады.""Терілген мәтінді тексеру"
- "Несиелік карта нөмірлері және құпия сөздер сияқты жеке деректерді қамтиды."
+ "Несиелік карта нөмірі және құпия сөздер сияқты жеке деректі қоса.""Дисплей ұлғайтуды басқару""Дисплейдің масштабтау деңгейін және орналастыруды басқару.""Қимылдарды орындау"
@@ -346,9 +350,9 @@
"құлыпталған құрылғыда хабарландыруларды толық экрандағы әрекеттер түрінде көрсету""Қолданбаның құлыпталған құрылғыда хабарландыруларды толық экрандағы әрекеттер түрінде көрсетуіне рұқсат береді.""таңбаша орнату"
- "Қолданбаға Негізгі экранға таңбашаларды пайдаланушының қатысуынсыз қосу мүмкіндігін береді."
+ "Қолданбаға Негізгі экранның төте пернелерін пайдаланушының қатысуынсыз қосу мүмкіндігін береді.""төте пернелерді алып тастау"
- "Қолданбаға Негізгі экрандағы таңбашаларды пайдаланушының қатысуынсыз өшіру мүмкіндігін береді."
+ "Қолданбаға Негізгі экранның төте пернелерін пайдаланушының қатысуынсыз алып тастау мүмкіндігін береді.""шығыс қоңырауларды қайта бағыттау""Қолданбаға шығыс қоңырау кезінде қоңырауды басқа нөмірге қайта бағыттау немесе қоңырауды мүлде доғару опциясы бар теріліп жатқан нөмірді көруге рұқсат береді.""телефон қоңырауларына жауап беру"
@@ -582,14 +586,13 @@
"Экран құлпын пайдалану""Жалғастыру үшін экран құлпын енгізіңіз.""Сканерді қатты басыңыз."
- "Саусақ ізін тану мүмкін емес. Қайталап көріңіз."
+ "Саусақ ізін өңдеу мүмкін емес. Әрекетті қайталаңыз.""Саусақ ізін оқу сканерін тазалап, әрекетті қайталаңыз.""Сканерді тазалап, әрекетті қайталаңыз."
- "Сканерді қатты басыңыз."
+ "Сканерге қатты басыңыз.""Саусағыңызды тым баяу қозғалттыңыз. Әрекетті қайталап көріңіз.""Басқа саусақ ізін байқап көріңіз.""Тым жарық."
- "Қуат түймесін басу әрекеті анықталды.""Дұрыстап қойып көріңіз.""Саусағыңыздың қалпын аздап өзгертіп тұрыңыз."
@@ -601,17 +604,16 @@
"Бет танылды, \"Растау\" түймесін басыңыз""Саусақ ізі жабдығы қолжетімді емес.""Саусақ ізін орнату мүмкін емес."
- "Саусақ ізін реттеу уақыты өтіп кетті. Қайталап көріңіз."
+ "Саусақ ізін күту уақыты бітті. Әрекетті қайталаңыз.""Саусақ ізі операциясынан бас тартылған.""Пайдаланушы саусақ ізі операциясынан бас тартты."
- "Тым көп әрекет жасалды. Орнына экран құлпын пайдаланыңыз."
- "Тым көп әрекет жасалды. Орнына экран құлпын пайдаланыңыз."
- "Саусақ ізін өңдеу мүмкін емес. Қайталап көріңіз."
+ "Талпыныстар тым көп. Кейінірек қайталап көріңіз."
+ "Тым көп әрекет жасалды. Саусақ ізін оқу сканері өшірілді."
+ "Әрекетті қайталаңыз.""Саусақ іздері тіркелмеген.""Бұл құрылғыда саусақ ізін оқу сканері жоқ.""Датчик уақытша өшірулі.""Саусақ ізін оқу сканерін пайдалану мүмкін емес. Жөндеу қызметіне барыңыз."
- "Қуат түймесі басулы.""%d-саусақ""Саусақ ізін пайдалану""Саусақ ізін немесе экран құлпын пайдалану"
@@ -626,39 +628,32 @@
"Бет үлгісін жою үшін түртіңіз, содан соң жаңа бет үлгісін қосыңыз.""Бет тану функциясын реттеу""Телефоныңызға қарап, оның құлпын ашыңыз."
- "Face Unlock функциясын пайдалану үшін \"Параметрлер > Құпиялық\" бөлімінен ""Камераны пайдалану рұқсатын"" қосыңыз."
+ "Face Unlock функциясын пайдалану үшін \"Параметрлер > Құпиялылық\" бөлімінен ""Камераны пайдалану рұқсатын"" қосыңыз.""Құлыпты ашудың басқа тәсілдерін реттеу""Саусақ ізін қосу үшін түртіңіз.""Құлыпты саусақ ізімен ашу""Саусақ ізін оқу сканерін пайдалану мүмкін емес""Жөндеу қызметіне барыңыз."
- "Бет үлгісі жасалмады. Қайталап көріңіз."
+ "Бет деректері дұрыс алынбады. Әрекетті қайталаңыз.""Тым ашық. Күңгірттеу жарық керек."
- "Жарық жеткіліксіз"
- "Телефонды алшақ ұстаңыз."
- "Телефонды жақынырақ ұстаңыз."
- "Телефонды жоғарырақ ұстаңыз."
- "Телефонды төменірек ұстаңыз."
- "Телефонды солға қарай ұстаңыз."
- "Телефонды оңға қарай ұстаңыз."
+ "Тым қараңғы. Молырақ жарық керек."
+ "Телефонды алшақ ұстаңыз."
+ "Телефонды жақынырақ ұстаңыз."
+ "Телефонды жоғарырақ ұстаңыз."
+ "Телефонды төменірек ұстаңыз."
+ "Телефонды солға жылжытыңыз."
+ "Телефонды оңға жылжытыңыз.""Құрылғының камерасына тура қараңыз."
- "Бетіңіз көрінбей тұр. Телефонды көз деңгейінде ұстаңыз."
+ "Бетіңізді телефонға тура қаратыңыз.""Қозғалыс тым көп. Телефонды қозғалтпаңыз.""Қайта тіркеліңіз."
- "Бет танылмады. Қайталап көріңіз."
- "Басыңыздың қалпын сәл өзгертіңіз."
- "Телефонға барынша тура қараңыз."
- "Телефонға барынша тура қараңыз."
- "Телефонға барынша тура қараңыз."
+ "Енді бет анықтау мүмкін емес. Әрекетті қайталаңыз."
+ "Алдыңғысына тым ұқсас, басқаша қалыпта түсіңіз."
+ "Басыңызды түзурек ұстаңыз."
+ "Басыңызды түзуірек ұстаңыз."
+ "Басыңызды кішкене бұрыңыз.""Бетіңізді жауып тұрған нәрсені алып тастаңыз.""Экранның жоғарғы жағын, сонымен қатар қара жолақты өшіріңіз."
-
-
-
-
- "Бет үлгісі жасалмады. Қайталап көріңіз."
- "Қою түсті көзілдірік анықталды. Бетіңіз толық көрініп тұруы керек."
- "Бетперде анықталды. Бетіңіз толық көрініп тұруы керек.""Бетті тану мүмкін емес. Жабдық қолжетімді емес."
@@ -924,14 +919,14 @@
"Қайталап көріңіз""Мүмкіндіктер мен деректер үшін құлыпты ашыңыз""Бет тану арқылы ашу әрекеттері анықталған шегінен асып кетті"
- "SIM картасы жоқ."
- "Планшетте SIM картасы жоқ."
- "Android TV құрылғыңызда SIM картасы жоқ."
- "Телефонда SIM картасы жоқ."
- "SIM картасын қосыңыз."
- "SIM картасы жоқ немесе оқылмай тұр. SIM картасын қосыңыз."
- "SIM картасын пайдалану мүмкін емес."
- "SIM картаңыз біржола өшірілді.\n Сымсыз байланыс провайдеріне хабарласып, басқа SIM картасын алыңыз."
+ "SIM картасы жоқ"
+ "Планшетте SIM картасы жоқ."
+ "Android TV құрылғыңызда SIM картасы жоқ."
+ "Телефонда SIM картасы жоқ."
+ "SIM картасын салыңыз."
+ "SIM картасы жоқ немесе оны оқу мүмкін емес. SIM картасына салыңыз."
+ "Қолдануға жарамсыз SIM картасы."
+ "SIM картаңыз біржола өшірілді. \n Сымсыз байланыс провайдеріне хабарласып, басқа SIM картасын алыңыз.""Алдыңғы трек""Келесі трек""Кідірту"
@@ -941,10 +936,10 @@
"Жылдам алға айналдыру""Құтқару қызметіне ғана қоңырау шалынады""Желі бекітілген"
- "SIM картасы PUK кодымен құлыпталды."
+ "SIM картасы PUK арқылы бекітілген.""Пайдаланушы нұсқаулығын қараңыз немесе тұтынушыларды қолдау орталығына хабарласыңыз."
- "SIM картасы құлыпталған."
- "SIM картасының құлпы ашылып жатыр…"
+ "SIM картасы бөгелген."
+ "SIM картаны ашуда…""Құлыпты ашу өрнегін %1$d рет қате салдыңыз. \n\n %2$d секундтан кейін әрекетті қайталаңыз.""Құпия сөзді %1$d рет қате тердіңіз. \n\n %2$d секундтан кейін қайталаңыз.""PIN кодын %1$d рет қате тердіңіз. \n\n %2$d секундтан кейін қайталаңыз."
@@ -1060,7 +1055,7 @@
"%1$s қолданбасы буферіңізден алынған деректерді қойды.""%1$s сіз көшірген мәтінді қойды.""%1$s сіз көшірген суретті қойды."
- "%1$s сіз көшірген контентті қойды."
+ "%1$s сіз көшірген мазмұнды қойды.""Көбірек""Mәзір+""Meta+"
@@ -1139,7 +1134,7 @@
"… сөзін алмастыру""Жою""URL мекенжайын көшіру"
- "Мәтінді ерекшелеу"
+ "Мәтінді бөлектеу""Қайтару""Қайтару""Aвтотолтыру"
@@ -1246,9 +1241,10 @@
"%1$s дайындалуда.""Қолданбалар іске қосылуда.""Қосуды аяқтауда."
+ "Реттеуді жалғастырасыз ба?""Қуат түймесін бастыңыз. Бұл әдетте экранды өшіреді.\n\nСаусақ ізін реттеу үшін, оны жайлап түртіп көріңіз."
- "Реттеуді аяқтау үшін экранды өшіріңіз"
- "Өшіру"
+ "Экранды өшіру"
+ "Реттеуді жалғастыру""Саусақ ізін растауды жалғастырасыз ба?""Қуат түймесін бастыңыз. Бұл әдетте экранды өшіреді.\n\nСаусақ ізін растау үшін, оны жайлап түртіп көріңіз.""Экранды өшіру"
@@ -1304,7 +1300,7 @@
"Құрылғы %2$s желісінде интернетпен байланыс жоғалған жағдайда %1$s желісін пайдаланады. Деректер ақысы алынуы мүмкін.""%1$s желісінен %2$s желісіне ауысты"
- "мобильдік интернет"
+ "мобильдік деректер""Wi-Fi""Bluetooth""Ethernet"
@@ -1327,10 +1323,10 @@
"Бұны кейінірек Параметрлер > Қолданбалар арқылы өзгертуге болады""Әрқашан рұқсат беру""Ешқашан рұқсат бермеу"
- "SIM картасы өшірілді"
- "Жарамды SIM картасымен өшіріп қоспайынша, мобильдік желі қолжетімді болмайды."
+ "SIM картасы алынды"
+ "Жарамды SIM картасын енгізіп, қайт бастағанша, ұялы желі қол жетімсіз болады.""Дайын"
- "SIM картасы қосылды"
+ "SIM картасы қосылды""Ұялы желіге кіру үшін құрылғыны қайта бастаңыз.""Қайта бастау""Мобильдік қызметті іске қосыңыз"
@@ -1383,7 +1379,7 @@
"ҚАБЫЛДАМАУ""Енгізу әдісін таңдау""Физикалық пернетақта қосулы кезде оны экранға шығару"
- "Виртуалдық пернетақтаны көрсету"
+ "Виртуалды пернетақтаны көрсету""Физикалық пернетақтаны конфигурациялау""Тіл мен пернетақта схемасын таңдау үшін түртіңіз"" ABCDEFGHIJKLMNOPQRSTUVWXYZ"
@@ -1394,27 +1390,27 @@
"%s деген пайдаланушының бұл функцияны пайдалануына жол бермеу үшін параметрлерді түртіп ашыңыз да, оларды өшіріңіз.""Өшіру""%s тексеріліп жатыр…"
- "Ағымдағы контент тексерілуде"
+ "Ағымдағы мазмұн тексерілуде""Мультимедиа жады талдануда""Жаңа %s""%s жұмыс істемейді""Реттеу үшін түртіңіз""Реттеу үшін таңдаңыз.""Құрылғыны қайта форматтау қажет болуы мүмкін. Шығару үшін түртіңіз."
- "Фотосуреттерді, бейнелерді, музыка мен басқа контентті сақтау үшін"
+ "Фотосуреттер мен медиа файлдарын тасымалдау үшін""Медиа файлдарды таңдаңыз.""%s ақаулы""%s жұмыс істемейді""Түзету үшін түртіңіз""%s бүлінген. Түзету үшін оны түртіңіз.""Құрылғыны қайта форматтау қажет болуы мүмкін. Шығару үшін түртіңіз."
- "%s анықталды"
+ "Қолданылмайтын %s""%s жұмыс істемейді"
- "Реттеу үшін түртіңіз."
+ "Бұл құрылғы %s картасына қолдау көрсетеді. Қолдау көрсетілетін пішімде орнату үшін түртіңіз.""%s құрылғысын қолдау көрсетілетін форматта реттеу үшін таңдаңыз.""Құрылғыны қайта форматтау қажет болуы мүмкін.""%s кенеттен шығарылды"
- "Контентті жоғалтып алмау үшін ақпарат тасығышты алдымен ажыратыңыз, содан кейін барып шығарыңыз."
+ "Мазмұнды жоғалтып алмау үшін ақпарат тасығышты алдымен ажыратыңыз, содан кейін барып шығарыңыз.""%s жоқ""Кейбір функциялар дұрыс жұмыс істемеуі мүмкін. Жаңа жад құрылғысын енгізіңіз.""%s ажыратылуда"
@@ -1427,10 +1423,10 @@
"Құрылғыны қайта салыңыз""%s тасымалдануда""Деректер тасымалдануда"
- "Контент жіберілді"
- "Контент %s жадына тасымалданды"
- "Контент тасымалданбады"
- "Контентті қайта тасымалдап көріңіз"
+ "Мазмұн жіберілді"
+ "Мазмұн %s жадына тасымалданды"
+ "Мазмұн тасымалданбады"
+ "Мазмұнды қайта тасымалдап көріңіз""Алынды""Ажыратылды""Тексерілуде…"
@@ -1482,7 +1478,7 @@
"Артқы фоны""Артқы фонын өзгерту""Хабар бақылағыш"
- "Виртуалдық шынайылық тыңдаушысы"
+ "Виртуалды шынайылық тыңдаушысы""Шарт провайдері""Хабарландыруларды жіктеу қызметі""VPN белсенді"
@@ -1571,7 +1567,7 @@
"Өзгерту""Дерек шығыны туралы ескерту""Деректің %s пайдаландыңыз"
- "Мобильдік интернет шегіне жетті"
+ "Мобильдік деректер шегіне жетті""Wi-Fi деректер шегіне жеттіңіз""Деректер жіберу қалған цикл үшін тоқтатылды""Мобильдік дерек шегінен астыңыз"
@@ -1579,7 +1575,7 @@
"Сіз %s шегінен асып кеттіңіз""Фондық деректер шектелген""Шектеуді жою үшін түртіңіз."
- "Мобильдік интернет көп жұмсалды"
+ "Мобильдік деректер көп жұмсалды""Қолданбаларыңыз деректерді әдеттегіден көбірек пайдаланды""%s қолданбасы деректерді әдеттегіден көбірек пайдаланды""Қауіпсіздік сертификаты"
@@ -1609,7 +1605,7 @@
"ТД""Телефон""Үндеткіштерді қондыру"
- "Сыртқы құрылғы"
+ "HDMI""Құлақаспаптар""USB""Жүйе"
@@ -1642,7 +1638,7 @@
"SIM картасы істен шықты. Жалғастыру үшін PUK кодын енгізіңіз. Толығырақ ақпаратты жабдықтаушыдан алыңыз.""Қажетті PIN кодын енгізіңіз""Қажетті PIN кодты растау"
- "SIM картасының құлпы ашылып жатыр…"
+ "SIM картаны ашу…""Қате PIN код.""4-8 сандардан тұратын PIN кодты теріңіз.""PUK коды 8 саннан тұруы керек."
@@ -1685,7 +1681,7 @@
"%1$s қызметіне құрылғыны толық басқаруға рұқсат етілсін бе?""Арнайы мүмкіндіктер бойынша көмектесетін қолданбаларға ғана құрылғыны толық басқару рұқсатын берген дұрыс.""Экранды көру және басқару"
- "Ол экрандағы контентті толық оқиды және контентті басқа қолданбалардың үстінен көрсете алады."
+ "Ол экрандағы мазмұнды толық оқиды және мазмұнды басқа қолданбалардың үстінен көрсете алады.""Әрекеттерді көру және орындау""Ол қолданбамен немесе жабдық датчигімен істеген тапсырмаларыңызды бақылайды және қолданбаларды сіздің атыңыздан пайдаланады.""Рұқсат ету"
@@ -1817,7 +1813,7 @@
"Белгісіз портреттік""Белгісіз ландшафт""Тоқтатылды"
- "Контент жазу қателігі"
+ "Мазмұн жазу қателігі""белгісіз""Принтер қызметі қосылмаған""%s қызметі орнатылды"
@@ -1923,7 +1919,6 @@
"Аймақ параметрі""Тіл атауын теріңіз""Ұсынылған"
- "Ұсынылатын аймақтар""Барлық тілдер""Барлық аймақтар""Іздеу"
@@ -1941,19 +1936,18 @@
"Камера қолжетімді емес""Телефоннан жалғастыру""Микрофон қолжетімді емес"
- "Play Store қолжетімсіз""Android TV параметрлері қолжетімді емес""Планшет параметрлері қолжетімді емес""Телефон параметрлері қолжетімді емес"
- "Қазір бұған %1$s құрылғысынан кіру мүмкін емес. Оның орнына Android TV құрылғысын пайдаланып көріңіз."
- "Қазір бұған %1$s құрылғысынан кіру мүмкін емес. Оның орнына планшетті пайдаланып көріңіз."
- "Қазір бұған %1$s құрылғысынан кіру мүмкін емес. Оның орнына телефонды пайдаланып көріңіз."
+ "Бұған %1$s құрылғысынан кіру мүмкін емес. Оның орнына Android TV құрылғысын пайдаланып көріңіз."
+ "Бұған %1$s құрылғысынан кіру мүмкін емес. Оның орнына планшетті пайдаланып көріңіз."
+ "Бұған %1$s құрылғысынан кіру мүмкін емес. Оның орнына телефонды пайдаланып көріңіз."
+ "Қазір бұған %1$s құрылғысынан кіру мүмкін емес. Оның орнына Android TV құрылғысын пайдаланып көріңіз."
+ "Қазір бұған %1$s құрылғысынан кіру мүмкін емес. Оның орнына планшетті пайдаланып көріңіз."
+ "Қазір бұған %1$s құрылғысынан кіру мүмкін емес. Оның орнына телефонды пайдаланып көріңіз.""Бұл қолданба үшін қосымша қауіпсіздік шарасы қажет. Оның орнына Android TV құрылғысын пайдаланып көріңіз.""Бұл қолданба үшін қосымша қауіпсіздік шарасы қажет. Оның орнына планшетті пайдаланып көріңіз.""Бұл қолданба үшін қосымша қауіпсіздік шарасы қажет. Оның орнына телефонды пайдаланып көріңіз."
- "Бұған %1$s құрылғысынан кіру мүмкін емес. Оның орнына Android TV құрылғысын пайдаланып көріңіз."
- "Бұған %1$s құрылғысынан кіру мүмкін емес. Оның орнына планшетті пайдаланып көріңіз."
- "Бұған %1$s құрылғысынан кіру мүмкін емес. Оның орнына телефонды пайдаланып көріңіз.""Қолданба Android жүйесінің ескі нұсқасына арналған және дұрыс жұмыс істемеуі мүмкін. Жаңартылған нұсқаны тексеріңіз немесе әзірлеушіге хабарласыңыз.""Жаңарту бар-жоғын тексеру""Сізде жаңа хабарлар бар"
@@ -1994,7 +1988,7 @@
"Уақытты енгізу үшін сағат режиміне өтіңіз.""Автотолтыру опциялары""Автотолтыру үшін сақтау"
- "Дерек автоматты толтырылмайды."
+ "Мазмұндар автотолтырылмайды""Автотолтыру ұсыныстары жоқ""{count,plural, =1{Бір автотолтыру ұсынысы}other{# автотолтыру ұсынысы}}""%1$s"" қызметіне сақталсын ба?"
@@ -2046,8 +2040,7 @@
"%s қолданбасына барлық құрылғының журналын пайдалануға рұқсат берілсін бе?""Бір реттік пайдалану рұқсатын беру""Рұқсат бермеу"
- "Журналдарға құрылғыда не болып жатқаны жазылады. Қолданбалар осы журналдарды қате тауып, түзету үшін пайдаланады.\n\nКейбір журналдарда құпия ақпарат болуы мүмкін. Сондықтан барлық құрылғының журналын пайдалану рұқсаты тек сенімді қолданбаларға берілуі керек. \n\nБұл қолданбаға барлық құрылғының журналын пайдалануға рұқсат бермесеңіз де, ол өзінің журналдарын пайдалана береді. Құрылғы өндірушісі де құрылғыдағы кейбір журналдарды немесе ақпаратты пайдалануы мүмкін."
- "Журналдарға құрылғыда не болып жатқаны жазылады. Қолданбалар осы журналдарды қате тауып, түзету үшін пайдаланады.\n\nКейбір журналдарда құпия ақпарат болуы мүмкін. Сондықтан барлық құрылғының журналын пайдалану рұқсаты тек сенімді қолданбаларға берілуі керек. \n\nБұл қолданбаға барлық құрылғының журналын пайдалануға рұқсат бермесеңіз де, ол өзінің журналдарын пайдалана береді. Құрылғы өндірушісі де құрылғыдағы кейбір журналдарды немесе ақпаратты пайдалануы мүмкін.\n\nТолық ақпарат: g.co/android/devicelogs."
+ "Журналдарға құрылғыда не болып жатқаны жазылады. Қолданбалар осы журналдарды қате тауып, түзету үшін пайдаланады.\n\nКейбір журналдарда құпия ақпарат болуы мүмкін. Сондықтан барлық құрылғының журналын пайдалану рұқсаты тек сенімді қолданбаларға берілуі керек. \n\nБұл қолданбаға барлық құрылғының журналын пайдалануға рұқсат бермесеңіз де, ол өзінің журналдарын пайдалана береді. Құрылғы өндірушісі де құрылғыдағы кейбір журналдарды немесе ақпаратты пайдалануы мүмкін. Толығырақ""Қайта көрсетілмесін""%1$s қолданбасы %2$s қолданбасының үзінділерін көрсеткісі келеді""Өзгерту"
@@ -2060,7 +2053,8 @@
"Мазаламау режимі өзгерді""Түймені түртіп, неге тыйым салынатынын көріңіз.""Хабарландыру параметрлерін қарау"
- "Android 13 нұсқасынан бастап орнатылатын қолданбалар үшін хабарландыру жіберу рұқсаты керек. Бұрынғы қолданбаларда осы рұқсатты өзгерту үшін түртіңіз."
+
+ "Кейінірек еске салу""Жабу""Жүйе"
@@ -2078,7 +2072,7 @@
"Жарайды""Өшіру""Толығырақ"
- "Android 12 жүйесінде \"Бейімделетін хабарландырулар\" функциясын \"Кеңейтілген хабарландырулар\" алмастырды. Бұл функция ұсынылған әрекеттер мен жауаптарды көрсетіп, хабарландыруларыңызды ретке келтіреді.\n\nОл хабарландыру контентін, соның ішінде жеке ақпаратыңызды (мысалы, контакт аттары мен хабарларды) пайдалана алады. Сондай-ақ бұл функция арқылы хабарландыруларды жабуға немесе оларға жауап беруге (мысалы, телефон қоңырауларына жауап беруге және Мазаламау режимін басқаруға) болады."
+ "Android 12 жүйесінде \"Бейімделетін хабарландырулар\" функциясын \"Кеңейтілген хабарландырулар\" алмастырды. Бұл функция ұсынылған әрекеттер мен жауаптарды көрсетіп, хабарландыруларыңызды ретке келтіреді.\n\nОл хабарландыру мазмұнын, соның ішінде жеке ақпаратыңызды (мысалы, контакт аттары мен хабарларды) пайдалана алады. Сондай-ақ бұл функция арқылы хабарландыруларды жабуға немесе оларға жауап беруге (мысалы, телефон қоңырауларына жауап беруге және Мазаламау режимін басқаруға) болады.""Режим туралы хабарландыру""Батарея заряды азаюы мүмкін""Батарея ұзаққа жетуі үшін, Батареяны үнемдеу режимі іске қосылды"
@@ -2141,10 +2135,10 @@
"Жеке көру""Жұмыс деректерін көру""Әкімшіңіз бөгеген"
- "Бұл контентті жұмыс қолданбаларымен бөлісу мүмкін емес."
- "Бұл контентті жұмыс қолданбаларымен ашу мүмкін емес."
- "Бұл контентті жеке қолданбалармен бөлісу мүмкін емес."
- "Бұл контентті жеке қолданбалармен ашу мүмкін емес."
+ "Бұл мазмұнды жұмыс қолданбаларымен бөлісу мүмкін емес."
+ "Бұл мазмұнды жұмыс қолданбаларымен ашу мүмкін емес."
+ "Бұл мазмұнды жеке қолданбалармен бөлісу мүмкін емес."
+ "Бұл мазмұнды жеке қолданбалармен ашу мүмкін емес.""Жұмыс профилі кідіртілді.""Қосу үшін түртіңіз""Жұмыс қолданбалары жоқ."
@@ -2273,7 +2267,7 @@
"Құрылғы камерасының бөгеуін алыңыз""<b>%s</b> және барлық қолданбалар мен қызметтерге арналған.""Бөгеуді алу"
- "Датчикке қатысты құпиялық"
+ "Датчикке қатысты құпиялылық""Қолданба белгішесі""Қолданба брендін ілгері жылжыту кескіні""Пайдалану параметрлерін тексеріңіз"
@@ -2288,6 +2282,5 @@
"Белсенді қолданбаларды тексеру""%1$s құрылғысынан телефон камерасын пайдалану мүмкін емес.""%1$s құрылғысынан планшет камерасын пайдалану мүмкін емес."
- "Трансляция кезінде контентті көру мүмкін емес. Оның орнына телефоннан көріңіз."
- "Жүйенің әдепкі параметрі"
+ "Жүйе тілі"
diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml
index a273ed621397369bcda64f0a5976d82f7db9aabf..92ad5102b8bebcad889cada3e90577d127538e2b 100644
--- a/core/res/res/values-km/strings.xml
+++ b/core/res/res/values-km/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "តេរ៉ាបៃ"
+ "PB""%1$s%2$s""<គ្មានចំណងជើង>""(គ្មានលេខទូរស័ព្ទ)"
@@ -28,7 +33,6 @@
"សារជាសំឡេង""MSISDN1""បញ្ហាក្នុងការតភ្ជាប់ ឬកូដ MMI មិនត្រឹមត្រូវ។"
- "មិនអាចប្រើមុខងារនេះបានទេ។""ប្រតិបត្តិការត្រូវបានដាក់កម្រិតចំពោះលេខហៅថេរតែប៉ុណ្ណោះ។""មិនអាចប្តូរការកំណត់នៃការបញ្ជូនការហៅបន្តពីទូរសព្ទរបស់អ្នកបានទេ ខណៈពេលដែលអ្នកកំពុងប្រើសេវារ៉ូមីង។""បានបើកសេវាកម្ម។"
@@ -43,8 +47,8 @@
"កូដ PIN ដែលអ្នកបានបញ្ចូលមិនដូចគ្នា។""បញ្ចូលកូដ PIN ដែលមានពី ៤ ដល់ ៨លេខ""បញ្ចូលកូដ PUK ដែលមានពី ៨ លេខ ឬវែងជាងនេះ។"
- "ស៊ីមរបស់អ្នកត្រូវបានចាក់សោដោយ PUK។ សូមវាយបញ្ចូលកូដ PUK ដើម្បីដោះសោស៊ីមនោះ។"
- "វាយបញ្ចូល PUK2 ដើម្បីឈប់ទប់ស្កាត់ស៊ីម។"
+ "ស៊ីមកាតរបស់អ្នកជាប់កូដ PUK ។ បញ្ចូលកូដ PUK ដើម្បីដោះសោ។"
+ "បញ្ចូលកូដ PUK2 ដើម្បីដោះសោស៊ីមកាត។""បរាជ័យ, បើកការចាក់សោស៊ីម / RUIM ។"អ្នកនៅសល់ការព្យាយាម %d ដងទៀត មុនពេលស៊ីមត្រូវចាក់សោ។
@@ -301,12 +305,12 @@
"ចូលប្រើប្រិតិទិនរបស់អ្នក""សារ SMS""ផ្ញើ និងមើលសារ SMS"
- "ឯកសារ"
- "ចូលប្រើប្រាស់ឯកសារនៅលើឧបករណ៍របស់អ្នក"
- "តន្រ្តី និងសំឡេង"
- "ចូលប្រើតន្ត្រី និងសំឡេងនៅលើឧបករណ៍របស់អ្នក"
- "រូបថត និងវីដេអូ"
- "ចូលប្រើរូបថត និងវីដេអូនៅលើឧបករណ៍របស់អ្នក"
+ "ឯកសារ"
+ "ចូលប្រើឯកសារនៅលើឧបករណ៍របស់អ្នក"
+ "តន្ត្រី និងសំឡេងផ្សេងទៀត"
+ "ចូលប្រើឯកសារសំឡេងនៅលើឧបករណ៍របស់អ្នក"
+ "រូបថត និងវីដេអូ"
+ "ចូលប្រើឯកសាររូបភាព និងវីដេអូនៅលើឧបករណ៍របស់អ្នក""មីក្រូហ្វូន""ថតសំឡេង""សកម្មភាពរាងកាយ"
@@ -324,7 +328,7 @@
"ការជូនដំណឹង""បង្ហាញការជូនដំណឹង""ទាញយកខ្លឹមសារវិនដូ"
- "ពិនិត្យខ្លឹមសារវិនដូដែលអ្នកកំពុងធ្វើអន្តរកម្មជាមួយ។"
+ "ពិនិត្យខ្លឹមសារវិនដូដែលអ្នកកំពុងទាក់ទងជាមួយ។""បើកការរកមើលដោយប៉ះ""ធាតុដែលបានប៉ះនឹងត្រូវបានអានឮៗ ហើយអេក្រង់នោះអាចត្រូវបានស្វែងរកដោយប្រើកាយវិការ។""មើលអត្ថបទដែលវាយ"
@@ -582,14 +586,13 @@
"ប្រើការចាក់សោអេក្រង់""បញ្ចូលការចាក់សោអេក្រង់របស់អ្នក ដើម្បីបន្ត""សង្កត់លើឧបករណ៍ចាប់សញ្ញាឱ្យណែន"
- "មិនអាចសម្គាល់ស្នាមម្រាមដៃបានទេ។ សូមព្យាយាមម្ដងទៀត។"
+ "មិនអាចដំណើរការស្នាមម្រាមដៃបានទេ។ សូមព្យាយាមម្តងទៀត។""សម្អាតឧបករណ៍ចាប់ស្នាមម្រាមដៃ រួចព្យាយាមម្ដងទៀត""សម្អាតឧបករណ៍ចាប់សញ្ញា រួចព្យាយាមម្ដងទៀត""សង្កត់លើឧបករណ៍ចាប់សញ្ញាឱ្យណែន""ចលនាម្រាមដៃយឺតពេកហើយ។ សូមព្យាយាមម្តងទៀត។""សាកល្បងប្រើស្នាមម្រាមដៃផ្សេងទៀត""ភ្លឺពេក"
- "ចាប់ដឹងថាចុចប៊ូតុងថាមពល""សាកល្បងកែតម្រូវ""ប្ដូរទីតាំងម្រាមដៃរបស់អ្នកតិចៗគ្រប់ពេល"
@@ -601,17 +604,16 @@
"បានផ្ទៀងផ្ទាត់មុខ សូមចុចបញ្ជាក់""ផ្នែករឹងស្នាមម្រាមដៃមិនមានទេ។""មិនអាចរៀបចំស្នាមម្រាមដៃបានទេ"
- "ការរៀបចំស្នាមម្រាមដៃបានអស់ម៉ោង។ សូមព្យាយាមម្ដងទៀត។"
+ "ស្នាមម្រាមដៃបានអស់ម៉ោង។ សូមព្យាយាមម្តងទៀត។""បានបោះបង់ប្រតិបត្តិការស្នាមម្រាមដៃ។""ប្រតិបត្តិការស្នាមម្រាមដៃត្រូវបានបោះបង់ដោយអ្នកប្រើប្រាស់។"
- "ព្យាយាមច្រើនដងពេក។ សូមប្រើការចាក់សោអេក្រង់ជំនួសវិញ។"
- "ព្យាយាមច្រើនដងពេក។ សូមប្រើការចាក់សោអេក្រង់ជំនួសវិញ។"
- "មិនអាចដំណើរការស្នាមម្រាមដៃបានទេ។ សូមព្យាយាមម្ដងទៀត។"
+ "ព្យាយាមចូលច្រើនពេកហើយ។ សូមព្យាយាមម្តងទៀតពេលក្រោយ។"
+ "ព្យាយាមចូលច្រើនដងពេកហើយ។ ឧបករណ៍ចាប់ស្នាមម្រាមដៃត្រូវបានបិទ។"
+ "ព្យាយាមម្ដងទៀត។""មិនមានការចុះឈ្មោះស្នាមម្រាមដៃទេ។""ឧបករណ៍នេះមិនមានឧបករណ៍ចាប់ស្នាមម្រាមដៃទេ។""បានបិទឧបករណ៍ចាប់សញ្ញាជាបណ្តោះអាសន្ន។""មិនអាចប្រើឧបករណ៍ចាប់ស្នាមម្រាមដៃបានទេ។ សូមទាក់ទងក្រុមហ៊ុនផ្ដល់ការជួសជុល"
- "បានចុចប៊ូតុងថាមពល""ម្រាមដៃ %d""ប្រើស្នាមម្រាមដៃ""ប្រើស្នាមម្រាមដៃ ឬការចាក់សោអេក្រង់"
@@ -632,33 +634,26 @@
"ការដោះសោដោយប្រើស្នាមម្រាមដៃ""មិនអាចប្រើឧបករណ៍ចាប់ស្នាមម្រាមដៃបានទេ""ទាក់ទងក្រុមហ៊ុនផ្ដល់ការជួសជុល។"
- "មិនអាចបង្កើតគំរូមុខរបស់អ្នកបានទេ។ សូមព្យាយាមម្ដងទៀត។"
+ "មិនអាចថតទិន្នន័យទម្រង់មុខបានត្រឹមត្រូវទេ។ សូមព្យាយាមម្ដងទៀត។""ភ្លឺពេក។ សូមសាកល្បងប្រើពន្លឺស្រាលជាងនេះ។"
- "មិនមានពន្លឺគ្រប់គ្រាន់"
- "ដាក់ទូរសព្ទឱ្យឆ្ងាយជាងមុន"
- "ដាក់ទូរសព្ទឱ្យជិតជាងមុន"
- "ដាក់ទូរសព្ទឱ្យខ្ពស់ជាងមុន"
- "ដាក់ទូរសព្ទឱ្យទាបជាងមុន"
- "ដាក់ទូរសព្ទទៅខាងឆ្វេងអ្នក"
- "ដាក់ទូរសព្ទទៅខាងស្ដាំអ្នក"
+ "ងងឹតជ្រុល។ សូមសាកល្បងប្រើពន្លឺភ្លឺជាងនេះ។"
+ "រំកិលទូរសព្ទឱ្យឆ្ងាយជាងមុន។"
+ "ផ្លាស់ទីទូរសព្ទឱ្យជិតជាងមុន។"
+ "ផ្លាស់ទីទូរសព្ទឱ្យខ្ពស់ជាងមុន។"
+ "ផ្លាស់ទីទូរសព្ទឱ្យទាបជាងមុន។"
+ "ផ្លាស់ទីទូរសព្ទទៅខាងឆ្វេង។"
+ "ផ្លាស់ទីទូរសព្ទទៅខាងស្ដាំ។""សូមមើលឱ្យចំឧបករណ៍របស់អ្នកជាងមុន។"
- "មើលមិនឃើញមុខរបស់អ្នកទេ។ កាន់ទូរសព្ទរបស់អ្នកដាក់ត្រឹមភ្នែក។"
+ "បែរមុខរបស់អ្នកឱ្យចំពីមុខទូរសព្ទផ្ទាល់។""មានចលនាខ្លាំងពេក។ សូមកាន់ទូរសព្ទឱ្យនឹង។""សូមស្កេនបញ្ចូលមុខរបស់អ្នកម្ដងទៀត។"
- "មិនអាចសម្គាល់មុខបានទេ។ សូមព្យាយាមម្ដងទៀត។"
- "ប្ដូរទីតាំងក្បាលរបស់អ្នកតិចៗ"
- "មើលទូរសព្ទរបស់អ្នកឱ្យចំជាងនេះ"
- "មើលទូរសព្ទរបស់អ្នកឱ្យចំជាងនេះ"
- "មើលទូរសព្ទរបស់អ្នកឱ្យចំជាងនេះ"
+ "មិនអាចសម្គាល់មុខបានទៀតទេ។ សូមព្យាយាមម្ដងទៀត។"
+ "ស្រដៀងគ្នាពេក សូមផ្លាស់ប្ដូរកាយវិការរបស់អ្នក។"
+ "ងាកក្បាលរបស់អ្នកតិចជាងមុនបន្តិច។"
+ "ផ្អៀងក្បាលរបស់អ្នកតិចជាងនេះបន្តិច។"
+ "ងាកក្បាលរបស់អ្នកបន្តិចទៀត។""យកអ្វីដែលបាំងមុខរបស់អ្នកចេញ។""សម្អាតផ្នែកខាងលើនៃអេក្រង់របស់អ្នក រួមទាំងរបារខ្មៅ"
-
-
-
-
- "មិនអាចបង្កើតគំរូមុខរបស់អ្នកបានទេ។ សូមព្យាយាមម្ដងទៀត។"
- "បានរកឃើញវ៉ែនតាខ្មៅ។ មុខរបស់អ្នកត្រូវតែអាចមើលឃើញពេញលេញ។"
- "បានរកឃើញគ្រឿងពាក់លើមុខ។ មុខរបស់អ្នកត្រូវតែអាចមើលឃើញពេញលេញ។""មិនអាចផ្ទៀងផ្ទាត់មុខបានទេ។ មិនមានហាតវែរទេ។"
@@ -924,14 +919,14 @@
"ព្យាយាមម្ដងទៀត""ដោះសោលក្ខណៈពិសេស និងទិន្នន័យទាំងអស់""បានលើសការព្យាយាមដោះសោតាមទម្រង់មុខ"
- "គ្មានស៊ីមទេ"
- "គ្មានស៊ីមក្នុងថេប្លេតទេ។"
- "គ្មានស៊ីមក្នុងឧបករណ៍ Android TV របស់អ្នកទេ។"
- "គ្មានស៊ីមក្នុងទូរសព្ទទេ។"
- "បញ្ចូលស៊ីម។"
- "បាត់ស៊ីម ឬមិនអាចអានស៊ីមបាន។ បញ្ចូលស៊ីម។"
- "ស៊ីមមិនអាចប្រើបាន។"
- "ស៊ីមរបស់អ្នកត្រូវបានបិទដំណើរការជាអចិន្ត្រៃយ៍។\n ទាក់ទងទៅក្រុមហ៊ុនផ្ដល់សេវាឥតខ្សែរបស់អ្នក ដើម្បីទទួលបានស៊ីមមួយទៀត។"
+ "គ្មានស៊ីមកាត"
+ "គ្មានស៊ីមកាតក្នុងកុំព្យូទ័របន្ទះ។"
+ "មិនមានស៊ីមកាតនៅក្នុងឧបករណ៍ Android TV របស់អ្នកទេ។"
+ "គ្មានស៊ីមកាតក្នុងទូរស័ព្ទ។"
+ "បញ្ចូលស៊ីមកាត។"
+ "បាត់ ឬមិនអាចអានស៊ីមកាត។ បញ្ចូលស៊ីមកាត។"
+ "ស៊ីមកាតមិនអាចប្រើបាន។"
+ "ស៊ីមកាតរបស់អ្នកត្រូវបានបិទជាអចិន្ត្រៃយ៍។\n ទាក់ទងក្រុមហ៊ុនផ្ដល់សេវាកម្មឥតខ្សែរបស់អ្នកសម្រាប់ស៊ីមកាតផ្សេង។""បទមុន""បទបន្ទាប់""ផ្អាក"
@@ -941,10 +936,10 @@
"ទៅមុខរហ័ស""ការហៅទៅលេខសង្គ្រោះបន្ទាន់តែប៉ុណ្ណោះ""បណ្ដាញជាប់សោ"
- "ស៊ីមត្រូវបានចាក់សោដោយ PUK។"
+ "ស៊ីមកាតជាប់សោ PUK។""មើលមគ្គុទ្ទេសក៍អ្នកប្រើ ឬទាក់ទងសេវាអតិថិជន។"
- "ស៊ីមត្រូវបានចាក់សោ។"
- "កំពុងដោះសោស៊ីម…"
+ "ស៊ីមកាតជាប់សោ។"
+ "កំពុងដោះសោស៊ីមកាត...""អ្នកបានគូរលំនាំដោះសោមិនត្រឹមត្រូវចំនួន %1$d ដង។ \n\nព្យាយាមម្ដងទៀតក្នុងរយៈពេល %2$d វិនាទី។""អ្នកបានបញ្ចូលពាក្យសម្ងាត់របស់អ្នកមិនត្រឹមត្រូវ %1$d ដង។ \n\nព្យាយាមម្ដងទៀតក្នុងរយៈពេល %2$d វិនាទី។""អ្នកបានបញ្ចូលកូដ PIN មិនត្រឹមត្រូវចំនួន %1$d ដង។ \n\n ព្យាយាមម្ដងទៀតក្នុងរយៈពេល %2$d វិនាទី។"
@@ -1246,9 +1241,10 @@
"កំពុងរៀបចំ %1$s។""ចាប់ផ្ដើមកម្មវិធី។""បញ្ចប់ការចាប់ផ្ដើម។"
+ "បន្តរៀបចំឬ?""អ្នកបានចុចប៊ូតុងថាមពល — ជាធម្មតាការធ្វើបែបនេះនឹងបិទអេក្រង់។\n\nសាកល្បងចុចថ្នមៗ ខណៈពេលកំពុងរៀបចំស្នាមម្រាមដៃរបស់អ្នក។"
- "ដើម្បីបញ្ចប់ការរៀបចំ សូមបិទអេក្រង់"
- "បិទ"
+ "បិទអេក្រង់"
+ "បន្តរៀបចំ""បន្តផ្ទៀងផ្ទាត់ស្នាមម្រាមដៃរបស់អ្នកឬ?""អ្នកបានចុចប៊ូតុងថាមពល — ជាធម្មតាការធ្វើបែបនេះនឹងបិទអេក្រង់។\n\nសាកល្បងចុចថ្នមៗ ដើម្បីផ្ទៀងផ្ទាត់ស្នាមម្រាមដៃរបស់អ្នក។""បិទអេក្រង់"
@@ -1327,10 +1323,10 @@
"អ្នកអាចប្ដូរវាពេលក្រោយក្នុងការកំណត់ > កម្មវិធី""អនុញ្ញាតជានិច្ច""កុំអនុញ្ញាត"
- "បានដកស៊ីមចេញ"
- "មិនអាចប្រើបណ្ដាញទូរសព្ទចល័តបានទេ រហូតទាល់តែអ្នកចាប់ផ្ដើមឡើងវិញដោយប្រើស៊ីមដែលមានសុពលភាព។"
+ "បានដកស៊ីមកាតចេញ"
+ "បណ្ដាញចល័តនឹងប្រើលែងបានរហូតដល់អ្នកចាប់ផ្ដើមជាមួយស៊ីមកាតដែលបាបញ្ចូលត្រឹមត្រូវ។""រួចរាល់"
- "បានបញ្ចូលស៊ីម"
+ "បានបន្ថែមស៊ីមកាត""ចាប់ផ្ដើមឧបករណ៍របស់អ្នកឡើងវិញ ដើម្បីចូលដំណើរការបណ្ដាញចល័ត។""ចាប់ផ្ដើមឡើងវិញ""បើកដំណើរការសេវាកម្មទូរសព្ទចល័ត"
@@ -1384,7 +1380,7 @@
"ជ្រើសវិធីសាស្ត្របញ្ចូល""ទុកវានៅលើអេក្រង់ខណៈពេលក្តារចុចពិតប្រាកដកំពុងសកម្ម""បង្ហាញក្ដារចុចនិម្មិត"
- "កំណត់រចនាសម្ព័ន្ធក្តារចុចរូបវន្ត"
+ "កំណត់រចនាសម្ព័ន្ធក្តារចុចពិតប្រាកដ""ប៉ះដើម្បីជ្រើសភាសា និងប្លង់"" ABCDEFGHIJKLMNOPQRSTUVWXYZ"" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
@@ -1401,16 +1397,16 @@
"ចុចដើម្បីរៀបចំ""ជ្រើសរើសដើម្បីរៀបចំ""អ្នកប្រហែលជាត្រូវសម្អាតឧបករណ៍ឡើងវិញ។ សូមចុច ដើម្បីដកចេញ។"
- "សម្រាប់រក្សាទុករូបថត វីដេអូ តន្ត្រី និងអ្វីៗជាច្រើនទៀត"
+ "សម្រាប់ផ្ទេររូបភាព និងមេឌៀ""រុករកឯកសារមេឌៀ""មានបញ្ហាជាមួយ %s""%s មិនដំណើរការទេ""ចុចដើម្បីកែបញ្ហា""%s ខូចហើយ។ សូមជ្រើសរើសដើម្បីជួសជុល។""អ្នកប្រហែលជាត្រូវសម្អាតឧបករណ៍ឡើងវិញ។ សូមចុច ដើម្បីដកចេញ។"
- "បានរកឃើញ%s"
+ "%s មិនគាំទ្រ""%s មិនដំណើរការទេ"
- "ចុចដើម្បីរៀបចំ។"
+ "ឧបករណ៍នេះមិនគាំទ្រ %s នេះទេ។ ប៉ះដើម្បីកំណត់ទម្រង់ដែលគាំទ្រ។""ជ្រើសរើសដើម្បីរៀបចំ %s ក្នុងទម្រង់ដែលអាចប្រើបាន។""អ្នកប្រហែលជាត្រូវសម្អាតឧបករណ៍ឡើងវិញ""បានដក %s ចេញដោយមិនបានរំពឹងទុក"
@@ -1423,7 +1419,7 @@
"ដកចេញ""រុករក""លទ្ធផល Switch"
- "បាត់%s"
+ "បាត់ %s""បញ្ចូលឧបករណ៍ម្តងទៀត""កំពុងផ្លាស់ទី %s""កំពុងផ្លាស់ទីទិន្នន័យ…"
@@ -1563,7 +1559,7 @@
"%1$s, %2$s""%1$s, %2$s, %3$s""ទំហំផ្ទុករួមខាងក្នុង"
- "កាត SD"
+ "កាតអេសឌី""កាត SD %s""ឧបករណ៍ផ្ទុក USB""ឧបករណ៍ផ្ទុក USB %s"
@@ -1609,7 +1605,7 @@
"ទូរទស្សន៍""ទូរសព្ទ""ភ្ជាប់អូប៉ាល័រ"
- "ឧបករណ៍ខាងក្រៅ"
+ "HDMI""កាស""USB""ប្រព័ន្ធ"
@@ -1642,7 +1638,7 @@
"ឥឡូវស៊ីមកាតត្រូវបានបិទ។ បញ្ចូលកូដ PUK ដើម្បីបន្ត។ ចំពោះព័ត៌មានលម្អិតទាក់ទងក្រុមហ៊ុនបញ្ជូនរបស់អ្នក។""បញ្ចូលកូដ PIN ដែលចង់បាន""បញ្ជាក់កូដ PIN ដែលចង់បាន"
- "កំពុងដោះសោស៊ីម…"
+ "កំពុងដោះសោស៊ីមកាត...""កូដ PIN មិនត្រឹមត្រូវ។""បញ្ចូលកូដ PIN ដែលមានពី ៤ ដល់ ៨ លេខ។""លេខកូដ PUK គួរតែមាន ៨ខ្ទង់"
@@ -1685,7 +1681,7 @@
"អនុញ្ញាតឱ្យ %1$s មានសិទ្ធិគ្រប់គ្រងឧបករណ៍របស់អ្នកទាំងស្រុងឬ?""ការគ្រប់គ្រងទាំងស្រុងមានលក្ខណៈសមស្របសម្រាប់កម្មវិធី ដែលជួយអ្នកទាក់ទងនឹងការប្រើមុខងារភាពងាយស្រួល ប៉ុន្តែមិនសមស្របសម្រាប់កម្មវិធីភាគច្រើនទេ។""មើល និងគ្រប់គ្រងអេក្រង់"
- "វាអាចអានខ្លឹមសារទាំងអស់នៅលើអេក្រង់ និងបង្ហាញខ្លឹមសារលើកម្មវិធីផ្សេងទៀត។"
+ "ការគ្រប់គ្រងអេក្រង់អាចអានខ្លឹមសារទាំងអស់នៅលើអេក្រង់ និងបង្ហាញខ្លឹមសារលើកម្មវិធីផ្សេងទៀត។""មើល និងធ្វើសកម្មភាព""វាអាចតាមដានអន្តរកម្មរបស់អ្នកជាមួយនឹងកម្មវិធី ឬឧបករណ៍ចាប់សញ្ញាហាតវែរ និងធ្វើអន្តរកម្មជាមួយកម្មវិធីនានាជំនួសឱ្យអ្នក។""អនុញ្ញាត"
@@ -1853,8 +1849,8 @@
"ធ្វើបច្ចុប្បន្នភាពដោយអ្នកគ្រប់គ្រងរបស់អ្នក""លុបដោយអ្នកគ្រប់គ្រងរបស់អ្នក""យល់ព្រម"
- "មុខងារសន្សំថ្មបើកទម្រង់រចនាងងឹត និងដាក់កំហិត ឬបិទសកម្មភាពផ្ទៃខាងក្រោយ បែបផែនរូបភាពមួយចំនួន មុខងារជាក់លាក់ និងការតភ្ជាប់បណ្ដាញមួយចំនួន។"
- "មុខងារសន្សំថ្មបើកទម្រង់រចនាងងឹត និងដាក់កំហិត ឬបិទសកម្មភាពផ្ទៃខាងក្រោយ បែបផែនរូបភាពមួយចំនួន មុខងារជាក់លាក់ និងការតភ្ជាប់បណ្ដាញមួយចំនួន។"
+ "មុខងារសន្សំថ្មបើករចនាប័ទ្មងងឹត និងដាក់កំហិត ឬបិទសកម្មភាពផ្ទៃខាងក្រោយ ឥទ្ធិពលរូបភាពមួយចំនួន មុខងារជាក់លាក់ និងការតភ្ជាប់បណ្ដាញមួយចំនួន។"
+ "មុខងារសន្សំថ្មបើករចនាប័ទ្មងងឹត និងដាក់កំហិត ឬបិទសកម្មភាពផ្ទៃខាងក្រោយ ឥទ្ធិពលរូបភាពមួយចំនួន មុខងារជាក់លាក់ និងការតភ្ជាប់បណ្ដាញមួយចំនួន។""ដើម្បីជួយកាត់បន្ថយការប្រើប្រាស់ទិន្នន័យ មុខងារសន្សំសំចៃទិន្នន័យរារាំងកម្មវិធីមួយចំនួនមិនឲ្យបញ្ជូន ឬទទួលទិន្នន័យនៅផ្ទៃខាងក្រោយទេ។ កម្មវិធីដែលអ្នកកំពុងប្រើនាពេលបច្ចុប្បន្នអាចចូលប្រើប្រាស់ទិន្នន័យបាន ប៉ុន្តែអាចនឹងមិនញឹកញាប់ដូចមុនទេ។ ឧទាហរណ៍ រូបភាពមិនបង្ហាញទេ លុះត្រាតែអ្នកប៉ះរូបភាពទាំងនោះ។""បើកកម្មវិធីសន្សំសំចៃទិន្នន័យ?""បើក"
@@ -1923,7 +1919,6 @@
"ចំណូលចិត្តតំបន់""វាយបញ្ចូលឈ្មោះភាសា""បានណែនាំ"
- "បានណែនាំ""ភាសាទាំងអស់""តំបន់ទាំងអស់""ស្វែងរក"
@@ -1941,19 +1936,18 @@
"មិនអាចប្រើកាមេរ៉ាបានទេ""បន្តនៅលើទូរសព្ទ""មិនអាចប្រើមីក្រូហ្វូនបានទេ"
- "មិនអាចប្រើ Play Store បានទេ""មិនអាចប្រើការកំណត់ Android TV បានទេ""មិនអាចប្រើការកំណត់ថេប្លេតបានទេ""មិនអាចប្រើការកំណត់ទូរសព្ទបានទេ"
- "មិនអាចប្រើកម្មវិធីនេះនៅលើ %1$s របស់អ្នកនៅពេលនេះបានទេ។ សូមសាកល្បងប្រើនៅលើឧបករណ៍ Android TV របស់អ្នកជំនួសវិញ។"
- "មិនអាចប្រើកម្មវិធីនេះនៅលើ %1$s របស់អ្នកនៅពេលនេះបានទេ។ សូមសាកល្បងប្រើនៅលើថេប្លេតរបស់អ្នកជំនួសវិញ។"
- "មិនអាចប្រើកម្មវិធីនេះនៅលើ %1$s របស់អ្នកនៅពេលនេះបានទេ។ សូមសាកល្បងប្រើនៅលើទូរសព្ទរបស់អ្នកជំនួសវិញ។"
+ "មិនអាចចូលប្រើកម្មវិធីនេះនៅលើ %1$s របស់អ្នកទេ។ សូមសាកល្បងប្រើនៅលើឧបករណ៍ Android TV របស់អ្នកជំនួសវិញ។"
+ "មិនអាចចូលប្រើកម្មវិធីនេះនៅលើ %1$s របស់អ្នកទេ។ សូមសាកល្បងប្រើនៅលើថេប្លេតរបស់អ្នកជំនួសវិញ។"
+ "មិនអាចចូលប្រើកម្មវិធីនេះនៅលើ %1$s របស់អ្នកទេ។ សូមសាកល្បងប្រើនៅលើទូរសព្ទរបស់អ្នកជំនួសវិញ។"
+ "មិនអាចប្រើកម្មវិធីនេះនៅលើ %1$s របស់អ្នកនៅពេលនេះបានទេ។ សូមសាកល្បងប្រើនៅលើឧបករណ៍ Android TV របស់អ្នកជំនួសវិញ។"
+ "មិនអាចប្រើកម្មវិធីនេះនៅលើ %1$s របស់អ្នកនៅពេលនេះបានទេ។ សូមសាកល្បងប្រើនៅលើថេប្លេតរបស់អ្នកជំនួសវិញ។"
+ "មិនអាចប្រើកម្មវិធីនេះនៅលើ %1$s របស់អ្នកនៅពេលនេះបានទេ។ សូមសាកល្បងប្រើនៅលើទូរសព្ទរបស់អ្នកជំនួសវិញ។""កម្មវិធីនេះកំពុងស្នើសុំសុវត្ថិភាពបន្ថែម។ សូមសាកល្បងប្រើនៅលើឧបករណ៍ Android TV របស់អ្នកជំនួសវិញ។""កម្មវិធីនេះកំពុងស្នើសុំសុវត្ថិភាពបន្ថែម។ សូមសាកល្បងប្រើនៅលើថេប្លេតរបស់អ្នកជំនួសវិញ។""កម្មវិធីនេះកំពុងស្នើសុំសុវត្ថិភាពបន្ថែម។ សូមសាកល្បងប្រើនៅលើទូរសព្ទរបស់អ្នកជំនួសវិញ។"
- "មិនអាចចូលប្រើប្រាស់កម្មវិធីនេះនៅលើ %1$s របស់អ្នកបានទេ។ សូមសាកល្បងប្រើនៅលើឧបករណ៍ Android TV របស់អ្នកជំនួសវិញ។"
- "មិនអាចចូលប្រើប្រាស់កម្មវិធីនេះនៅលើ %1$s របស់អ្នកបានទេ។ សូមសាកល្បងប្រើនៅលើថេប្លេតរបស់អ្នកជំនួសវិញ។"
- "មិនអាចចូលប្រើប្រាស់កម្មវិធីនេះនៅលើ %1$s របស់អ្នកបានទេ។ សូមសាកល្បងប្រើនៅលើទូរសព្ទរបស់អ្នកជំនួសវិញ។""កម្មវិធីនេះត្រូវបានបង្កើតឡើងសម្រាប់កំណែប្រព័ន្ធប្រតិបត្តិការ Android ចាស់ ហើយវាអាចដំណើរការខុសប្រក្រតី។ សូមសាកល្បងពិនិត្យមើលកំណែថ្មី ឬទាក់ទងទៅអ្នកអភិវឌ្ឍន៍។""រកមើលកំណែថ្មី""អ្នកមានសារថ្មី"
@@ -2044,10 +2038,9 @@
"មិនអីទេ បើកចុះ""បានរកឃើញកម្មវិធីដែលបង្កគ្រោះថ្នាក់""អនុញ្ញាតឱ្យ %s ចូលប្រើកំណត់ហេតុឧបករណ៍ទាំងអស់ឬ?"
- "អនុញ្ញាតឱ្យចូលប្រើម្ដង"
+ "អនុញ្ញាតការចូលប្រើតែម្ដង""មិនអនុញ្ញាត"
- "កំណត់ហេតុឧបករណ៍កត់ត្រាអ្វីដែលកើតឡើងនៅលើឧបករណ៍របស់អ្នក។ កម្មវិធីអាចប្រើកំណត់ហេតុទាំងនេះដើម្បីស្វែងរក និងដោះស្រាយបញ្ហាបាន។\n\nកំណត់ហេតុមួយចំនួនអាចមានព័ត៌មានរសើប ដូច្នេះគួរអនុញ្ញាតឱ្យចូលប្រើកំណត់ហេតុឧបករណ៍ទាំងអស់សម្រាប់តែកម្មវិធីដែលអ្នកទុកចិត្តប៉ុណ្ណោះ។ \n\nប្រសិនបើអ្នកមិនអនុញ្ញាតឱ្យកម្មវិធីនេះចូលប្រើកំណត់ហេតុឧបករណ៍ទាំងអស់ទេ វានៅតែអាចចូលប្រើកំណត់ហេតុរបស់វាផ្ទាល់បាន។ ក្រុមហ៊ុនផលិតឧបករណ៍របស់អ្នកប្រហែលជានៅតែអាចចូលប្រើកំណត់ហេតុ ឬព័ត៌មានមួយចំនួននៅលើឧបករណ៍របស់អ្នកបានដដែល។"
- "កំណត់ហេតុឧបករណ៍កត់ត្រាអ្វីដែលកើតឡើងនៅលើឧបករណ៍របស់អ្នក។ កម្មវិធីអាចប្រើកំណត់ហេតុទាំងនេះដើម្បីស្វែងរក និងដោះស្រាយបញ្ហាបាន។\n\nកំណត់ហេតុមួយចំនួនអាចមានព័ត៌មានរសើប ដូច្នេះគួរអនុញ្ញាតឱ្យចូលប្រើកំណត់ហេតុឧបករណ៍ទាំងអស់សម្រាប់តែកម្មវិធីដែលអ្នកទុកចិត្តប៉ុណ្ណោះ។ \n\nប្រសិនបើអ្នកមិនអនុញ្ញាតឱ្យកម្មវិធីនេះចូលប្រើកំណត់ហេតុឧបករណ៍ទាំងអស់ទេ វានៅតែអាចចូលប្រើកំណត់ហេតុរបស់វាផ្ទាល់បាន។ ក្រុមហ៊ុនផលិតឧបករណ៍របស់អ្នកប្រហែលជានៅតែអាចចូលប្រើកំណត់ហេតុ ឬព័ត៌មានមួយចំនួននៅលើឧបករណ៍របស់អ្នកបានដដែល។\n\nស្វែងយល់បន្ថែមតាមរយៈ g.co/android/devicelogs។"
+ "កំណត់ហេតុឧបករណ៍កត់ត្រាអ្វីដែលកើតឡើងនៅលើឧបករណ៍របស់អ្នក។ កម្មវិធីអាចប្រើកំណត់ហេតុទាំងនេះដើម្បីស្វែងរក និងដោះស្រាយបញ្ហាបាន។\n\nកំណត់ហេតុមួយចំនួនអាចមានព័ត៌មានរសើប ដូច្នេះគួរអនុញ្ញាតឱ្យចូលប្រើកំណត់ហេតុឧបករណ៍ទាំងអស់សម្រាប់តែកម្មវិធីដែលអ្នកទុកចិត្តប៉ុណ្ណោះ។ \n\nប្រសិនបើអ្នកមិនអនុញ្ញាតឱ្យកម្មវិធីនេះចូលប្រើកំណត់ហេតុឧបករណ៍ទាំងអស់ទេ វានៅតែអាចចូលប្រើកំណត់ហេតុរបស់វាផ្ទាល់បាន។ ក្រុមហ៊ុនផលិតឧបករណ៍របស់អ្នកប្រហែលជានៅតែអាចចូលប្រើកំណត់ហេតុ ឬព័ត៌មានមួយចំនួននៅលើឧបករណ៍របស់អ្នកបានដដែល។ ស្វែងយល់បន្ថែម""កុំបង្ហាញម្ដងទៀត""%1$s ចង់បង្ហាញស្ថិតិប្រើប្រាស់របស់ %2$s""កែ"
@@ -2060,7 +2053,8 @@
"មុខងារកុំរំខានត្រូវបានប្ដូរ""សូមចុចដើម្បីមើលថាបានទប់ស្កាត់អ្វីខ្លះ។""ពិនិត្យមើលការកំណត់ការជូនដំណឹង"
- "ចាប់ពី Android 13 ឡើងទៅ កម្មវិធីដែលអ្នកដំឡើងត្រូវការការអនុញ្ញាតរបស់អ្នក ដើម្បីផ្ញើការជូនដំណឹង។ សូមចុចដើម្បីផ្លាស់ប្ដូរការអនុញ្ញាតនេះសម្រាប់កម្មវិធីដែលមានស្រាប់។"
+
+ "រំលឹកខ្ញុំពេលក្រោយ""ច្រានចោល""ប្រព័ន្ធ"
@@ -2288,6 +2282,5 @@
"ពិនិត្យមើលកម្មវិធីសកម្ម""មិនអាចចូលប្រើកាមេរ៉ាទូរសព្ទពី %1$s របស់អ្នកបានទេ""មិនអាចចូលប្រើកាមេរ៉ាថេប្លេតពី %1$s របស់អ្នកបានទេ"
- "មិនអាចចូលប្រើប្រាស់ខ្លឹមសារនេះបានទេ ពេលផ្សាយ។ សូមសាកល្បងប្រើនៅលើទូរសព្ទរបស់អ្នកជំនួសវិញ។"
- "លំនាំដើមប្រព័ន្ធ"
+ "ភាសាប្រព័ន្ធ"
diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml
index 5b65b30fa5294da6d4c2f01893cd60931ef3558e..efcdd6293edb8b10960c6f5edd98cefae092a620 100644
--- a/core/res/res/values-kn/strings.xml
+++ b/core/res/res/values-kn/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<ಶೀರ್ಷಿಕೆ ರಹಿತ>""(ಯಾವುದೇ ಫೋನ್ ಸಂಖ್ಯೆಯಿಲ್ಲ)"
@@ -28,7 +33,6 @@
"ಧ್ವನಿಮೇಲ್""MSISDN1""ಸಂಪರ್ಕ ಸಮಸ್ಯೆ ಇಲ್ಲವೇ ಅಮಾನ್ಯ MMI ಕೋಡ್."
- "ಫೀಚರ್ ಬಂಬಲಿಸುತ್ತಿಲ್ಲ.""ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಸ್ಥಿರ ದೂರವಾಣಿ ಸಂಖ್ಯೆಗಳಿಗೆ ಮಾತ್ರ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.""ನೀವು ರೋಮಿಂಗ್ನಲ್ಲಿರುವಾಗ ನಿಮ್ಮ ಫೋನ್ನಿಂದ ಕರೆ ಫಾರ್ವರ್ಡ್ ಮಾಡುವಿಕೆಯ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.""ಸೇವೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ."
@@ -43,8 +47,8 @@
"ನೀವು ಟೈಪ್ ಮಾಡಿದ ಪಿನ್ ಗಳು ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ.""4 ರಿಂದ 8 ಸಂಖ್ಯೆಗಳಿರುವ ಪಿನ್ ಟೈಪ್ ಮಾಡಿ.""8 ಅಥವಾ ಅದಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಂಖ್ಯೆಗಳಿರುವ PUK ಟೈಪ್ ಮಾಡಿ."
- "ನಿಮ್ಮ SIM PUK ಲಾಕ್ ಆಗಿದೆ. ಅದನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು PUK ಕೋಡ್ ಅನ್ನು ಟೈಪ್ ಮಾಡಿ."
- "SIM ನ ನಿರ್ಬಂಧವನ್ನು ತೆಗೆದುಹಾಕಲು PUK2 ಅನ್ನು ಟೈಪ್ ಮಾಡಿ."
+ "ನಿಮ್ಮ ಸಿಮ್ ಕಾರ್ಡ್ PUK-ಲಾಕ್ ಆಗಿದೆ. ಅದನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು PUK ಕೋಡ್ ಟೈಪ್ ಮಾಡಿ."
+ "ಸಿಮ್ ಕಾರ್ಡ್ ಅನ್ಲಾಕ್ ಮಾಡಲು PUK2 ಟೈಪ್ ಮಾಡಿ.""ಯಶಸ್ವಿಯಾಗಿಲ್ಲ, ಸಿಮ್/RUIM ಲಾಕ್ ಸಕ್ರಿಯಗೊಳಿಸಿ." ಸಿಮ್ ಲಾಕ್ ಆಗುವುದಕ್ಕಿಂತ ಮೊದಲು ನಿಮ್ಮಲ್ಲಿ %d ಪ್ರಯತ್ನಗಳು ಬಾಕಿ ಉಳಿದಿವೆ.
@@ -301,14 +305,14 @@
"ನಿಮ್ಮ ಕ್ಯಾಲೆಂಡರ್ ಪ್ರವೇಶಿಸಲು""SMS""SMS ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸಲು ಮತ್ತು ನಿರ್ವಹಿಸಲು"
- "ಫೈಲ್ಗಳು"
- "ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿರುವ ಫೈಲ್ಗಳನ್ನು ಪ್ರವೇಶಿಸಿ"
- "ಸಂಗೀತ ಮತ್ತು ಆಡಿಯೋ"
- "ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಸಂಗೀತ ಮತ್ತು ಆಡಿಯೊವನ್ನು ಪ್ರವೇಶಿಸಿ"
- "ಫೋಟೋಗಳು ಮತ್ತು ವೀಡಿಯೊಗಳು"
- "ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಫೋಟೋಗಳು ಮತ್ತು ವೀಡಿಯೊಗಳನ್ನು ಪ್ರವೇಶಿಸಿ"
+ "ಫೈಲ್ಗಳು ಮತ್ತು ಡಾಕ್ಯುಮೆಂಟ್ಗಳು"
+ "ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಫೈಲ್ಗಳು ಮತ್ತು ಡಾಕ್ಯುಮೆಂಟ್ಗಳನ್ನು ಪ್ರವೇಶಿಸಿ"
+ "ಸಂಗೀತ ಮತ್ತು ಇತರ ಆಡಿಯೋ"
+ "ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಆಡಿಯೊ ಫೈಲ್ಗಳನ್ನು ಪ್ರವೇಶಿಸಿ"
+ "ಫೋಟೋಗಳು ಮತ್ತು ವೀಡಿಯೊಗಳು"
+ "ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಚಿತ್ರಗಳು ಮತ್ತು ವೀಡಿಯೊ ಫೈಲ್ಗಳನ್ನು ಪ್ರವೇಶಿಸಿ""ಮೈಕ್ರೋಫೋನ್"
- "ಆಡಿಯೋ ರೆಕಾರ್ಡ್ ಮಾಡಿ"
+ "ಆಡಿಯೊ ರೆಕಾರ್ಡ್ ಮಾಡಿ""ದೈಹಿಕ ಚಟುವಟಿಕೆ""ನಿಮ್ಮ ದೈಹಿಕ ಚಟುವಟಿಕೆಯನ್ನು ಪ್ರವೇಶಿಸಿ""ಕ್ಯಾಮರಾ"
@@ -441,12 +445,12 @@
"ಈ ಆ್ಯಪ್ ಬಳಕೆಯಲ್ಲಿರುವಾಗ ನಿಮ್ಮ ಅಂದಾಜು ಸ್ಥಳವನ್ನು, ಸ್ಥಳ ಸೇವೆಗಳಿಂದ ಪಡೆಯಬಹುದು. ಆ್ಯಪ್ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಪಡೆಯಲು ನಿಮ್ಮ ಸಾಧನಕ್ಕಾಗಿ ಸ್ಥಳ ಸೇವೆಗಳನ್ನು ಆನ್ ಮಾಡಬೇಕು.""ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸಿ""ಈ ಆ್ಯಪ್ ಬಳಕೆಯಲ್ಲಿಲ್ಲದಿರುವಾಗಲೂ ಸಹ ಸ್ಥಳವನ್ನು ಯಾವುದೇ ಸಮಯದಲ್ಲಾದರೂ ಪ್ರವೇಶಿಸಬಹುದು."
- "ನಿಮ್ಮ ಆಡಿಯೋ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬದಲಾಯಿಸಿ"
- "ವಾಲ್ಯೂಮ್ ರೀತಿಯ ಮತ್ತು ಔಟ್ಪುಟ್ಗಾಗಿ ಯಾವ ಸ್ಪೀಕರ್ ಬಳಸಬೇಕು ಎಂಬ ರೀತಿಯ ಜಾಗತಿಕ ಆಡಿಯೋ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ."
- "ಆಡಿಯೋ ರೆಕಾರ್ಡ್ ಮಾಡಿ"
+ "ನಿಮ್ಮ ಆಡಿಯೊ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬದಲಾಯಿಸಿ"
+ "ವಾಲ್ಯೂಮ್ ರೀತಿಯ ಮತ್ತು ಔಟ್ಪುಟ್ಗಾಗಿ ಯಾವ ಸ್ಪೀಕರ್ ಬಳಸಬೇಕು ಎಂಬ ರೀತಿಯ ಜಾಗತಿಕ ಆಡಿಯೊ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ."
+ "ಆಡಿಯೊ ರೆಕಾರ್ಡ್ ಮಾಡಿ""ಆ್ಯಪ್ ಬಳಕೆಯಲ್ಲಿರುವಾಗ ಈ ಆ್ಯಪ್ ಮೈಕ್ರೊಫೋನ್ ಬಳಸಿ ಆಡಿಯೊವನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡಬಹುದು.""ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಆಡಿಯೊವನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡಿ"
- "ಈ ಆ್ಯಪ್ ಮೈಕ್ರೋಫೋನ್ ಬಳಸುವ ಮೂಲಕ ಯಾವುದೇ ಸಮಯದಲ್ಲಾದರೂ ಆಡಿಯೋ ರೆಕಾರ್ಡ್ ಮಾಡಬಹುದು."
+ "ಈ ಆ್ಯಪ್ ಮೈಕ್ರೋಫೋನ್ ಬಳಸುವ ಮೂಲಕ ಯಾವುದೇ ಸಮಯದಲ್ಲಾದರೂ ಆಡಿಯೊ ರೆಕಾರ್ಡ್ ಮಾಡಬಹುದು.""ಸಿಮ್ಗೆ ಆಜ್ಞೆಗಳನ್ನು ಕಳುಹಿಸಿ""ಸಿಮ್ ಗೆ ಆದೇಶಗಳನ್ನು ಕಳುಹಿಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಇದು ತುಂಬಾ ಅಪಾಯಕಾರಿ.""ದೈಹಿಕ ಚಟುವಟಿಕೆಯನ್ನು ಗುರುತಿಸಿ"
@@ -582,14 +586,13 @@
"ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಬಳಸಿ""ಮುಂದುವರಿಯಲು ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಅನ್ನು ನಮೂದಿಸಿ""ಸೆನ್ಸರ್ ಮೇಲೆ ದೃಢವಾಗಿ ಒತ್ತಿರಿ"
- "ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ನು ಗುರುತಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."
+ "ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.""ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಸೆನ್ಸರ್ ಸ್ವಚ್ಛಗೊಳಿಸಿ ಹಾಗೂ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ""ಸೆನ್ಸರ್ ಸ್ವಚ್ಛಗೊಳಿಸಿ ಹಾಗೂ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ""ಸೆನ್ಸರ್ ಮೇಲೆ ದೃಢವಾಗಿ ಒತ್ತಿರಿ""ಬೆರಳನ್ನು ತುಂಬಾ ನಿಧಾನವಾಗಿ ಸರಿಸಲಾಗಿದೆ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.""ಮತ್ತೊಂದು ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಪ್ರಯತ್ನಿಸಿ""ತುಂಬಾ ಪ್ರಕಾಶಮಾನವಾಗಿದೆ"
- "ಪವರ್ ಬಟನ್ ಒತ್ತುವುದು ಪತ್ತೆಯಾಗಿದೆ""ಹೊಂದಿಸಲು ಪ್ರಯತ್ನಿಸಿ""ಪ್ರತಿ ಬಾರಿಯೂ ನಿಮ್ಮ ಬೆರಳಿನ ಸ್ಥಾನವನ್ನು ಸ್ವಲ್ಪ ಮಟ್ಟಿಗೆ ಬದಲಾಯಿಸಿ"
@@ -601,17 +604,16 @@
"ಮುಖವನ್ನು ದೃಢೀಕರಿಸಲಾಗಿದೆ, ದೃಢೀಕರಣವನ್ನು ಒತ್ತಿ""ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಹಾರ್ಡ್ವೇರ್ ಲಭ್ಯವಿಲ್ಲ.""ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ"
- "ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಸೆಟಪ್ ಮಾಡುವ ಅವಧಿ ಮುಗಿದಿದೆ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."
+ "ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅವಧಿ ಮೀರಿದೆ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.""ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ರದ್ದುಮಾಡಲಾಗಿದೆ.""ಬಳಕೆದಾರರು ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ರದ್ದುಪಡಿಸಿದ್ದಾರೆ."
- "ಹಲವು ಬಾರಿ ಪ್ರಯತ್ನಿಸಿದ್ದೀರಿ. ಬದಲಾಗಿ ಸ್ಕ್ರೀನ್ಲಾಕ್ ಬಳಸಿ."
- "ಹಲವು ಬಾರಿ ಪ್ರಯತ್ನಿಸಿದ್ದೀರಿ. ಬದಲಾಗಿ ಪರದೆಲಾಕ್ ಬಳಸಿ."
- "ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."
+ "ಹಲವಾರು ಪ್ರಯತ್ನಗಳು. ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."
+ "ಹಲವು ಬಾರಿ ಪ್ರಯತ್ನಿಸಿದ್ದೀರಿ. ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಸೆನ್ಸರ್ ನಿಷ್ಕ್ರಿಯಗೊಂಡಿದೆ."
+ "ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.""ಯಾವುದೇ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ನು ನೋಂದಣಿ ಮಾಡಿಲ್ಲ.""ಈ ಸಾಧನವು ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಸೆನ್ಸರ್ ಅನ್ನು ಹೊಂದಿಲ್ಲ.""ಸೆನ್ಸಾರ್ ಅನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.""ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಸೆನ್ಸರ್ ಅನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ರಿಪೇರಿ ಮಾಡುವವರನ್ನು ಸಂಪರ್ಕಿಸಿ"
- "ಪವರ್ ಬಟನ್ ಒತ್ತಲಾಗಿದೆ""ಫಿಂಗರ್ %d""ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಬಳಸಿ""ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಅಥವಾ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಬಳಸಿ"
@@ -632,33 +634,26 @@
"ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ಲಾಕ್""ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಸೆನ್ಸರ್ ಅನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಿಲ್ಲ""ರಿಪೇರಿ ಮಾಡುವವರನ್ನು ಸಂಪರ್ಕಿಸಿ."
- "ಫೇಸ್ ಮಾಡೆಲ್ ರಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."
+ "ಸರಿಯಾಗಿ ಮುಖ ಕ್ಯಾಪ್ಚರ್ ಮಾಡಲಾಗಲಿಲ್ಲ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.""ತುಂಬಾ ಪ್ರಕಾಶಮಾನವಾಗಿದೆ ಮಂದ ಪ್ರಕಾಶಮಾನವಿರುವ ಲೈಟ್ ಬಳಸಿ"
- "ಸಾಕಷ್ಟು ಬೆಳಕು ಇಲ್ಲ"
- "ಫೋನ್ ಅನ್ನು ದೂರಕ್ಕೆ ಸರಿಸಿ"
- "ಫೋನ್ ಅನ್ನು ಸಮೀಪಕ್ಕೆ ತನ್ನಿ"
- "ಫೋನ್ ಅನ್ನು ಮೇಲಕ್ಕೆ ಎತ್ತಿ ಹಿಡಿಯಿರಿ."
- "ಫೋನ್ ಅನ್ನು ಕೆಳಗೆ ಸರಿಸಿ"
- "ಫೋನ್ ಅನ್ನು ನಿಮ್ಮ ಎಡಕ್ಕೆ ಸರಿಸಿ"
- "ಫೋನ್ ಅನ್ನು ನಿಮ್ಮ ಬಲಕ್ಕೆ ಸರಿಸಿ"
+ "ತುಂಬಾ ಕಪ್ಪು ಛಾಯೆಯಿದೆ. ಪ್ರಕಾಶಮಾನವಾದ ಲೈಟಿಂಗ್ ಬಳಸಿ."
+ "ಫೋನ್ ಅನ್ನು ದೂರಕ್ಕೆ ಸರಿಸಿ."
+ "ಫೋನ್ ಅನ್ನು ಸಮೀಪಕ್ಕೆ ತನ್ನಿ."
+ "ಫೋನ್ ಅನ್ನು ಎತ್ತರಕ್ಕೆ ಹಿಡಿಯಿರಿ."
+ "ಫೋನ್ ಅನ್ನು ಕೆಳಗೆ ಸರಿಸಿ."
+ "ಫೋನ್ ಅನ್ನು ಎಡಕ್ಕೆ ಸರಿಸಿ."
+ "ಫೋನ್ ಅನ್ನು ಬಲಕ್ಕೆ ಸರಿಸಿ.""ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಹೆಚ್ಚಿನದ್ದನ್ನು ನೇರವಾಗಿ ನೋಡಿ."
- "ನಿಮ್ಮ ಮುಖ ಕಾಣಿಸುತ್ತಿಲ್ಲ. ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಕಣ್ಣಿನ ನೇರಕ್ಕೆ ಹಿಡಿದುಕೊಳ್ಳಿ."
+ "ನಿಮ್ಮ ಮುಖವನ್ನು ಫೋನ್ಗೆ ನೇರವಾಗಿ ಇರಿಸಿ.""ತುಂಬಾ ಅಲುಗಾಡುತ್ತಿದೆ ಫೋನ್ ಅನ್ನು ಸ್ಥಿರವಾಗಿ ಹಿಡಿಯಿರಿ.""ನಿಮ್ಮ ಮುಖವನ್ನು ಮರುನೋಂದಣಿ ಮಾಡಿ."
- "ಮುಖ ಗುರುತಿಸಲಾಗುತ್ತಿಲ್ಲ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."
- "ನಿಮ್ಮ ತಲೆಯ ಸ್ಥಾನವನ್ನು ಸ್ವಲ್ಪ ಬದಲಾಯಿಸಿ"
- "ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ನೇರವಾಗಿ ನೋಡಿ"
- "ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ನೇರವಾಗಿ ನೋಡಿ"
- "ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ನೇರವಾಗಿ ನೋಡಿ"
+ "ಮುಖ ಗುರುತಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."
+ "ತುಂಬಾ ಸಮಾನ, ನಿಮ್ಮ ಪೋಸ್ ಬದಲಾಯಿಸಿ."
+ "ನಿಮ್ಮ ತಲೆಯನ್ನು ಹೆಚ್ಚು ತಿರುಗಿಸಬೇಡಿ."
+ "ನಿಮ್ಮ ತಲೆಯನ್ನು ಸ್ವಲ್ಪ ಓರೆಯಾಗಿಸಿ."
+ "ನಿಮ್ಮ ತಲೆಯನ್ನು ಸ್ವಲ್ಪ ಕಡಿಮೆ ತಿರುಗಿಸಿ.""ನಿಮ್ಮ ಮುಖವನ್ನು ಮರೆಮಾಡುವ ಯಾವುದನ್ನಾದರೂ ತೆಗೆದುಹಾಕಿ.""ಬ್ಲ್ಯಾಕ್ ಬಾರ್ ಸೇರಿದಂತೆ ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ನ ಮೇಲ್ಭಾಗವನ್ನು ತೆರವುಗೊಳಿಸಿ"
-
-
-
-
- "ಫೇಸ್ ಮಾಡೆಲ್ ರಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."
- "ಕಪ್ಪು ಕನ್ನಡಕ ಪತ್ತೆಯಾಗಿದೆ. ನಿಮ್ಮ ಮುಖವು ಸಂಪೂರ್ಣವಾಗಿ ಗೋಚರಿಸಬೇಕು."
- "ಮುಖವಾಡ ಪತ್ತೆಯಾಗಿದೆ. ನಿಮ್ಮ ಮುಖವು ಸಂಪೂರ್ಣವಾಗಿ ಗೋಚರಿಸಬೇಕು.""ಮುಖ ದೃಢೀಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಹಾರ್ಡ್ವೇರ್ ಲಭ್ಯವಿಲ್ಲ."
@@ -924,14 +919,14 @@
"ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ""ಎಲ್ಲ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಡೇಟಾಗೆ ಅನ್ಲಾಕ್ ಮಾಡಿ""ಗರಿಷ್ಠ ಫೇಸ್ ಅನ್ಲಾಕ್ ಪ್ರಯತ್ನಗಳು ಮೀರಿವೆ"
- "SIM ಇಲ್ಲ"
- "ಟ್ಯಾಬ್ಲೆಟ್ನಲ್ಲಿ SIM ಇಲ್ಲ."
- "ನಿಮ್ಮ Android TV ಸಾಧನದಲ್ಲಿ SIM ಇಲ್ಲ."
- "ಫೋನ್ನಲ್ಲಿ SIM ಇಲ್ಲ."
- "SIM ಅನ್ನು ಸೇರಿಸಿ."
- "SIM ಕಾಣೆಯಾಗಿದೆ ಅಥವಾ ರೀಡ್ ಆಗುತ್ತಿಲ್ಲ. SIM ಅನ್ನು ಸೇರಿಸಿ."
- "SIM ನಿಷ್ಪ್ರಯೋಜಕವಾಗಿದೆ."
- "ನಿಮ್ಮ SIM ಅನ್ನು ಶಾಶ್ವತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.\n ಬೇರೊಂದು SIM ಗಾಗಿ ನಿಮ್ಮ ವೈರ್ಲೆಸ್ ಸೇವಾ ಪೂರೈಕೆದಾರರನ್ನು ಸಂಪರ್ಕಿಸಿ."
+ "ಸಿಮ್ ಕಾರ್ಡ್ ಇಲ್ಲ"
+ "ಟ್ಯಾಬ್ಲೆಟ್ನಲ್ಲಿ ಸಿಮ್ ಕಾರ್ಡ್ ಇಲ್ಲ."
+ "ನಿಮ್ಮ Android TV ಸಾಧನದಲ್ಲಿ ಯಾವುದೇ ಸಿಮ್ ಕಾರ್ಡ್ ಇಲ್ಲ."
+ "ಫೋನ್ನಲ್ಲಿ ಸಿಮ್ ಕಾರ್ಡ್ ಇಲ್ಲ."
+ "ಸಿಮ್ ಕಾರ್ಡ್ ಸೇರಿಸಿ."
+ "ಸಿಮ್ ಕಾರ್ಡ್ ಕಾಣೆಯಾಗಿದೆ ಅಥವಾ ಓದಲು ಸಾಧ್ಯವಿಲ್ಲ. ಒಂದು ಸಿಮ್ ಕಾರ್ಡ್ ಸೇರಿಸಿ."
+ "ನಿಷ್ಪ್ರಯೋಜಕ ಸಿಮ್ ಕಾರ್ಡ್."
+ "ನಿಮ್ಮ ಸಿಮ್ ಕಾರ್ಡ್ ಅನ್ನು ಶಾಶ್ವತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.\n ಮತ್ತೊಂದು ಸಿಮ್ ಕಾರ್ಡ್ಗಾಗಿ ನಿಮ್ಮ ವಯರ್ಲೆಸ್ ಸೇವೆಯ ಪೂರೈಕೆದಾರರನ್ನು ಸಂಪರ್ಕಿಸಿ.""ಹಿಂದಿನ ಟ್ರ್ಯಾಕ್""ಮುಂದಿನ ಟ್ರ್ಯಾಕ್""ವಿರಾಮಗೊಳಿಸು"
@@ -941,10 +936,10 @@
"ವೇಗವಾಗಿ ಮುಂದಕ್ಕೆ""ತುರ್ತು ಕರೆಗಳು ಮಾತ್ರ""ನೆಟ್ವರ್ಕ್ ಲಾಕ್ ಮಾಡಲಾಗಿದೆ"
- "SIM PUK ಲಾಕ್ ಆಗಿದೆ."
+ "ಸಿಮ್ ಕಾರ್ಡ್ PUK-ಲಾಕ್ ಆಗಿದೆ.""ಬಳಕೆದಾರರ ಮಾರ್ಗಸೂಚಿಯನ್ನು ನೋಡಿ ಅಥವಾ ಗ್ರಾಹಕರ ಸಹಾಯ ಕೇಂದ್ರಕ್ಕೆ ಸಂಪರ್ಕಿಸಿ."
- "SIM ಲಾಕ್ ಆಗಿದೆ."
- "SIM ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"
+ "ಸಿಮ್ ಕಾರ್ಡ್ ಲಾಕ್ ಆಗಿದೆ."
+ "ಸಿಮ್ ಕಾರ್ಡ್ ಅನ್ಲಾಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ…""ನಿಮ್ಮ ಅನ್ಲಾಕ್ ನಮೂನೆಯನ್ನುನೀವು %1$d ಬಾರಿ ತಪ್ಪಾಗಿ ಚಿತ್ರಿಸಿರುವಿರಿ. \n\n%2$d ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.""ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ನೀವು %1$d ಬಾರಿ ತಪ್ಪಾಗಿ ಟೈಪ್ ಮಾಡಿರುವಿರಿ. \n\n %2$d ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.""ನಿಮ್ಮ ಪಿನ್ ಅನ್ನು ನೀವು %1$d ಬಾರಿ ತಪ್ಪಾಗಿ ಟೈಪ್ ಮಾಡಿರುವಿರಿ. \n\n%2$d ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."
@@ -1017,7 +1012,7 @@
"ಈ ಪುಟದಿಂದ ಹೊರಬನ್ನಿ""ಈ ಪುಟದಲ್ಲಿಯೇ ಇರಿ""%s\n\nನೀವು ಈ ಪುಟದಿಂದಾಚೆಗೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?"
- "ದೃಢೀಕರಿಸಿ"
+ "ದೃಢೀಕರಿಸು""ಸಲಹೆ: ಝೂಮ್ ಇನ್ ಮತ್ತು ಝೂಮ್ ಔಟ್ ಮಾಡಲು ಡಬಲ್-ಟ್ಯಾಪ್ ಮಾಡಿ""ಸ್ವಯಂತುಂಬುವಿಕೆ""ಸ್ವಯಂತುಂಬುವಿಕೆಯನ್ನು ಹೊಂದಿಸಿ"
@@ -1173,7 +1168,7 @@
"ಕ್ರಿಯೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ""ಇದರ ಮೂಲಕ ತೆರೆಯಿರಿ""%1$s ಜೊತೆಗೆ ತೆರೆಯಿರಿ"
- "ತೆರೆಯಿರಿ"
+ "ತೆರೆ""ಇವುಗಳ ಮೂಲಕ %1$s ಲಿಂಕ್ಗಳನ್ನು ತೆರೆಯಿರಿ""ಇವುಗಳ ಮೂಲಕ ಲಿಂಕ್ಗಳನ್ನು ತೆರೆಯಿರಿ""%1$s ಮೂಲಕ ಲಿಂಕ್ಗಳನ್ನು ತೆರೆಯಿರಿ"
@@ -1246,9 +1241,10 @@
"%1$s ಸಿದ್ಧಪಡಿಸಲಾಗುತ್ತಿದೆ.""ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ.""ಬೂಟ್ ಪೂರ್ಣಗೊಳಿಸಲಾಗುತ್ತಿದೆ."
+ "ಸೆಟಪ್ ಮುಂದುವರಿಸಬೇಕೆ?""ನೀವು ಪವರ್ ಬಟನ್ ಒತ್ತಿದ್ದೀರಿ — ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಸ್ಕ್ರೀನ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.\n\nನಿಮ್ಮ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ನು ಹೊಂದಿಸುವಾಗ ಲಘುವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ."
- "ಸೆಟಪ್ ಪೂರ್ಣಗೊಳಿಸಲು, ಸ್ಕ್ರೀನ್ ಆಫ್ ಮಾಡಿ"
- "ಆಫ್ ಮಾಡಿ"
+ "ಸ್ಕ್ರೀನ್ ಆಫ್ ಮಾಡಿ"
+ "ಸೆಟಪ್ ಮುಂದುವರಿಸಿ""ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಪರಿಶೀಲನೆ ಮುಂದುವರಿಸುವುದೇ?""ನೀವು ಪವರ್ ಬಟನ್ ಒತ್ತಿದ್ದೀರಿ — ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಸ್ಕ್ರೀನ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.\n\nನಿಮ್ಮ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ಲಘುವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ.""ಸ್ಕ್ರೀನ್ ಆಫ್ ಮಾಡಿ"
@@ -1327,10 +1323,10 @@
"ನೀವು ಇದನ್ನು ನಂತರದಲ್ಲಿ ಸೆಟ್ಟಿಂಗ್ಗಳು > ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು""ಯಾವಾಗಲೂ ಅನುಮತಿಸಿ""ಎಂದಿಗೂ ಅನುಮತಿಸದಿರು"
- "SIM ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ"
- "ನೀವು ಮಾನ್ಯವಾದ SIM ನೊಂದಿಗೆ ಮರುಪ್ರಾರಂಭಿಸುವವರೆಗೆ ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ ಲಭ್ಯವಿರುವುದಿಲ್ಲ."
+ "ಸಿಮ್ ಕಾರ್ಡ್ ತೆಗೆದುಹಾಕಲಾಗಿದೆ"
+ "ನೀವು ಮಾನ್ಯವಾದ ಸಿಮ್ ಕಾರ್ಡ್ ಮರುಪ್ರಾರಂಭಿಸುವವರೆಗೆ ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ ಲಭ್ಯವಿರುವುದಿಲ್ಲ.""ಮುಗಿದಿದೆ"
- "SIM ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ"
+ "ಸಿಮ್ ಕಾರ್ಡ್ ಸೇರಿಸಲಾಗಿದೆ""ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ ಪ್ರವೇಶಿಸಲು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ.""ಮರುಪ್ರಾರಂಭಿಸು""ಮೊಬೈಲ್ ಸೇವೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"
@@ -1359,7 +1355,7 @@
"ಸಂಪರ್ಕಗೊಂಡಿರುವ ಸಾಧನವನ್ನು ಚಾರ್ಜ್ ಮಾಡಲಾಗುತ್ತಿದೆ. ಹೆಚ್ಚಿನ ಆಯ್ಕೆಗಳಿಗಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಿ.""ಅನ್ಲಾಗ್ ಆಡಿಯೋ ಪರಿಕರ ಪತ್ತೆಯಾಗಿದೆ""ಲಗತ್ತಿಸಲಾದ ಸಾಧನವು ಈ ಫೋನಿನೊಂದಿಗೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. ಇನ್ನಷ್ಟು ತಿಳಿಯಲು ಟ್ಯಾಪ್ ಮಾಡಿ."
- "USB ಡೀಬಗ್ ಮಾಡುವಿಕೆ ಕನೆಕ್ಟ್ ಆಗಿದೆ"
+ "USB ಡೀಬಗಿಂಗ್ ಕನೆಕ್ಟ್ ಆಗಿದೆ""USB ಡೀಬಗಿಂಗ್ ಆಫ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ""USB ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಆಯ್ಕೆ ಮಾಡಿ.""ವೈರ್ಲೆಸ್ ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ಕನೆಕ್ಟ್ ಮಾಡಲಾಗಿದೆ"
@@ -1401,16 +1397,16 @@
"ಹೊಂದಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ""ಸೆಟಪ್ ಮಾಡಲು ಆಯ್ಕೆಮಾಡಿ""ನೀವು ಸಾಧನವನ್ನು ಮರು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಬೇಕಾಗಬಹುದು. ಎಜೆಕ್ಟ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ."
- "ಫೋಟೋಗಳು, ವೀಡಿಯೋಗಳು, ಸಂಗೀತ ಹಾಗೂ ಇತ್ಯಾದಿಗಳನ್ನು ಸಂಗ್ರಹಿಸುವುದಕ್ಕಾಗಿ"
+ "ಫೋಟೋಗಳು ಮತ್ತು ಮಾಧ್ಯಮವನ್ನು ವರ್ಗಾಯಿಸಲು""ಮೀಡಿಯಾ ಫೈಲ್ಗಳನ್ನು ಬ್ರೌಸ್ ಮಾಡಿ""%s ನೊಂದಿಗೆ ಸಮಸ್ಯೆ""%s ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿಲ್ಲ""ಸರಿಪಡಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ""%s ದೋಷಪೂರಿತವಾಗಿದೆ. ಸರಿಪಡಿಸಲು ಆಯ್ಕೆ ಮಾಡಿ.""ನೀವು ಸಾಧನವನ್ನು ಮರು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಬೇಕಾಗಬಹುದು. ಎಜೆಕ್ಟ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ."
- "%s ಪತ್ತೆಯಾಗಿದೆ"
+ "ಬೆಂಬಲಿಸದಿರುವ %s""%s ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿಲ್ಲ"
- "ಸೆಟಪ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ ."
+ "ಈ ಸಾಧನವು %s ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. ಬೆಂಬಲಿತ ಫಾರ್ಮ್ಯಾಟ್ನಲ್ಲಿ ಹೊಂದಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ.""ಬೆಂಬಲಿಸಲಾಗುವ ಫಾರ್ಮ್ಯಾಟ್ನಲ್ಲಿ %s ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಆಯ್ಕೆಮಾಡಿ.""ನೀವು ಸಾಧನವನ್ನು ಮರು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಬೇಕಾಗಬಹುದು""%s ಅನಿರೀಕ್ಷಿತವಾಗಿ ತೆಗೆದುಹಾಕಲಾಗಿದೆ"
@@ -1609,11 +1605,11 @@
"ಟಿವಿ""ಫೋನ್""ಡಾಕ್ ಸ್ಪೀಕರ್ಗಳು"
- "ಬಾಹ್ಯ ಸಾಧನ"
+ "HDMI""ಹೆಡ್ಫೋನ್ಗಳು""USB""ಸಿಸ್ಟಂ"
- "ಬ್ಲೂಟೂತ್ ಆಡಿಯೋ"
+ "ಬ್ಲೂಟೂತ್ ಆಡಿಯೊ""ವಯರ್ಲೆಸ್ ಪ್ರದರ್ಶನ""ಪಾತ್ರ""ಸಾಧನಕ್ಕೆ ಸಂಪರ್ಕಿಸಿ"
@@ -1642,7 +1638,7 @@
"ಇದೀಗ ಸಿಮ್ ನಿಷ್ಕ್ರಿಯಗೊಂಡಿದೆ. ಮುಂದುವರೆಯಲು PUK ಕೋಡ್ ನಮೂದಿಸಿ. ವಿವರಗಳಿಗಾಗಿ ವಾಹಕವನ್ನು ಸಂಪರ್ಕಿಸಿ.""ಅಗತ್ಯವಿರುವ ಪಿನ್ ಕೋಡ್ ನಮೂದಿಸಿ""ಬಯಸಿರುವ ಪಿನ್ ಕೋಡ್ ದೃಢೀಕರಿಸಿ"
- "SIM ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"
+ "ಸಿಮ್ ಕಾರ್ಡ್ ಅನ್ಲಾಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ…""ತಪ್ಪಾದ ಪಿನ್ ಕೋಡ್.""4 ರಿಂದ 8 ಸಂಖ್ಯೆಗಳಿರುವ ಪಿನ್ ಟೈಪ್ ಮಾಡಿ.""PUK ಕೋಡ್ 8 ಸಂಖ್ಯೆಗಳನ್ನು ಹೊಂದಿರಬೇಕು."
@@ -1923,7 +1919,6 @@
"ಪ್ರದೇಶ ಪ್ರಾಶಸ್ತ್ಯ""ಭಾಷೆ ಹೆಸರನ್ನು ಟೈಪ್ ಮಾಡಿ""ಸೂಚಿತ ಭಾಷೆ"
- "ಸೂಚಿಸಲಾಗಿರುವುದು""ಎಲ್ಲಾ ಭಾಷೆಗಳು""ಎಲ್ಲಾ ಪ್ರದೇಶಗಳು""ಹುಡುಕಿ"
@@ -1941,19 +1936,18 @@
"ಕ್ಯಾಮರಾ ಲಭ್ಯವಿಲ್ಲ""ಫೋನ್ನಲ್ಲಿ ಮುಂದುವರಿಸಿ""ಮೈಕ್ರೊಫೋನ್ ಲಭ್ಯವಿಲ್ಲ"
- "Play Store ಲಭ್ಯವಿಲ್ಲ""Android TV ಸೆಟ್ಟಿಂಗ್ಗಳು ಲಭ್ಯವಿಲ್ಲ""ಟ್ಯಾಬ್ಲೆಟ್ ಸೆಟ್ಟಿಂಗ್ಗಳು ಲಭ್ಯವಿಲ್ಲ""ಫೋನ್ ಸೆಟ್ಟಿಂಗ್ಗಳು ಲಭ್ಯವಿಲ್ಲ"
- "ಈ ಸಮಯದಲ್ಲಿ ನಿಮ್ಮ %1$s ನಲ್ಲಿ ಇದನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದರ ಬದಲು ನಿಮ್ಮ Android TV ಸಾಧನದಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ."
- "ಈ ಸಮಯದಲ್ಲಿ ನಿಮ್ಮ %1$s ನಲ್ಲಿ ಇದನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದರ ಬದಲು ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ನಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ."
- "ಈ ಸಮಯದಲ್ಲಿ ನಿಮ್ಮ %1$s ನಲ್ಲಿ ಇದನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದರ ಬದಲು ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ."
+ "ನಿಮ್ಮ %1$s ನಲ್ಲಿ ಇದನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದರ ಬದಲು ನಿಮ್ಮ Android TV ಸಾಧನದಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ."
+ "ನಿಮ್ಮ %1$s ನಲ್ಲಿ ಇದನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದರ ಬದಲು ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ನಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ."
+ "ನಿಮ್ಮ %1$s ನಲ್ಲಿ ಇದನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದರ ಬದಲು ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ."
+ "ಈ ಸಮಯದಲ್ಲಿ ನಿಮ್ಮ %1$s ನಲ್ಲಿ ಇದನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದರ ಬದಲು ನಿಮ್ಮ Android TV ಸಾಧನದಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ."
+ "ಈ ಸಮಯದಲ್ಲಿ ನಿಮ್ಮ %1$s ನಲ್ಲಿ ಇದನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದರ ಬದಲು ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ನಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ."
+ "ಈ ಸಮಯದಲ್ಲಿ ನಿಮ್ಮ %1$s ನಲ್ಲಿ ಇದನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದರ ಬದಲು ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ.""ಈ ಆ್ಯಪ್ ಹೆಚ್ಚುವರಿ ಭದ್ರತೆಯನ್ನು ವಿನಂತಿಸುತ್ತಿದೆ. ಅದರ ಬದಲು ನಿಮ್ಮ Android TV ಸಾಧನದಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ.""ಈ ಆ್ಯಪ್ ಹೆಚ್ಚುವರಿ ಭದ್ರತೆಯನ್ನು ವಿನಂತಿಸುತ್ತಿದೆ. ಅದರ ಬದಲು ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ನಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ.""ಈ ಆ್ಯಪ್ ಹೆಚ್ಚುವರಿ ಭದ್ರತೆಯನ್ನು ವಿನಂತಿಸುತ್ತಿದೆ. ಅದರ ಬದಲು ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ."
- "ನಿಮ್ಮ %1$s ನಲ್ಲಿ ಇದನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದರ ಬದಲು ನಿಮ್ಮ Android TV ಸಾಧನದಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ."
- "ನಿಮ್ಮ %1$s ನಲ್ಲಿ ಇದನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದರ ಬದಲು ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ನಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ."
- "ನಿಮ್ಮ %1$s ನಲ್ಲಿ ಇದನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದರ ಬದಲು ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ.""ಈ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು Android ನ ಹಳೆಯ ಆವೃತ್ತಿಗೆ ರಚಿಸಲಾಗಿದೆ ಮತ್ತು ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡದಿರಬಹುದು. ಅಪ್ಡೇಟ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಪ್ರಯತ್ನಿಸಿ ಅಥವಾ ಡೆವಲಪರ್ ಅನ್ನು ಸಂಪರ್ಕಿಸಿ.""ಅಪ್ಡೇಟ್ಗಾಗಿ ಪರಿಶೀಲಿಸಿ""ನೀವು ಹೊಸ ಸಂದೇಶಗಳನ್ನು ಹೊಂದಿರುವಿರಿ"
@@ -2046,8 +2040,7 @@
"ಎಲ್ಲಾ ಸಾಧನದ ಲಾಗ್ಗಳನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು %s ಗೆ ಅನುಮತಿಸುವುದೇ?""ಒಂದು ಬಾರಿಯ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಿ""ಅನುಮತಿಸಬೇಡಿ"
- "ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಸಾಧನದ ಲಾಗ್ಗಳು ರೆಕಾರ್ಡ್ ಮಾಡುತ್ತವೆ. ಸಮಸ್ಯೆಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಮತ್ತು ಪರಿಹರಿಸಲು ಆ್ಯಪ್ಗಳು ಈ ಲಾಗ್ ಅನ್ನು ಬಳಸಬಹುದು.\n\nಕೆಲವು ಲಾಗ್ಗಳು ಸೂಕ್ಷ್ಮ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರಬಹುದು, ಆದ್ದರಿಂದ ನಿಮ್ಮ ವಿಶ್ವಾಸಾರ್ಹ ಆ್ಯಪ್ಗಳಿಗೆ ಮಾತ್ರ ಸಾಧನದ ಎಲ್ಲಾ ಲಾಗ್ಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಿ. \n\nಎಲ್ಲಾ ಸಾಧನ ಲಾಗ್ಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ನೀವು ಈ ಆ್ಯಪ್ಗೆ ಅನುಮತಿಸದಿದ್ದರೆ, ಅದು ಆಗಲೂ ತನ್ನದೇ ಆದ ಲಾಗ್ಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. ನಿಮ್ಮ ಸಾಧನ ತಯಾರಕರಿಗೆ ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಕೆಲವು ಲಾಗ್ಗಳು ಅಥವಾ ಮಾಹಿತಿಯನ್ನು ಪ್ರವೇಶಿಸಲು ಈಗಲೂ ಸಾಧ್ಯವಾಗುತ್ತದೆ."
- "ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಸಾಧನದ ಲಾಗ್ಗಳು ರೆಕಾರ್ಡ್ ಮಾಡುತ್ತವೆ. ಸಮಸ್ಯೆಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಮತ್ತು ಪರಿಹರಿಸಲು ಆ್ಯಪ್ಗಳು ಈ ಲಾಗ್ ಅನ್ನು ಬಳಸಬಹುದು.\n\nಕೆಲವು ಲಾಗ್ಗಳು ಸೂಕ್ಷ್ಮ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರಬಹುದು, ಆದ್ದರಿಂದ ನಿಮ್ಮ ವಿಶ್ವಾಸಾರ್ಹ ಆ್ಯಪ್ಗಳಿಗೆ ಮಾತ್ರ ಸಾಧನದ ಎಲ್ಲಾ ಲಾಗ್ಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಿ. \n\nಎಲ್ಲಾ ಸಾಧನ ಲಾಗ್ಗಳನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ನೀವು ಈ ಆ್ಯಪ್ಗೆ ಅನುಮತಿಸದಿದ್ದರೆ, ಅದು ಆಗಲೂ ತನ್ನದೇ ಆದ ಲಾಗ್ಗಳನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಬಹುದು. ಹಾಗಿದ್ದರೂ, ನಿಮ್ಮ ಸಾಧನ ತಯಾರಕರಿಗೆ ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಕೆಲವು ಲಾಗ್ಗಳು ಅಥವಾ ಮಾಹಿತಿಯನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಬಹುದು.\n\ng.co/android/devicelogs ನಲ್ಲಿ ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ."
+ "ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಸಾಧನದ ಲಾಗ್ಗಳು ರೆಕಾರ್ಡ್ ಮಾಡುತ್ತವೆ. ಸಮಸ್ಯೆಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಮತ್ತು ಪರಿಹರಿಸಲು ಆ್ಯಪ್ಗಳು ಈ ಲಾಗ್ ಅನ್ನು ಬಳಸಬಹುದು.\n\nಕೆಲವು ಲಾಗ್ಗಳು ಸೂಕ್ಷ್ಮ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರಬಹುದು, ಆದ್ದರಿಂದ ನಿಮ್ಮ ವಿಶ್ವಾಸಾರ್ಹ ಆ್ಯಪ್ಗಳಿಗೆ ಮಾತ್ರ ಸಾಧನದ ಎಲ್ಲಾ ಲಾಗ್ಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಿ. \n\nಎಲ್ಲಾ ಸಾಧನ ಲಾಗ್ಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ನೀವು ಈ ಆ್ಯಪ್ಗೆ ಅನುಮತಿಸದಿದ್ದರೆ, ಅದು ಆಗಲೂ ತನ್ನದೇ ಆದ ಲಾಗ್ಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. ನಿಮ್ಮ ಸಾಧನ ತಯಾರಕರಿಗೆ ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿನ ಕೆಲವು ಲಾಗ್ಗಳು ಅಥವಾ ಮಾಹಿತಿಯನ್ನು ಪ್ರವೇಶಿಸಲು ಈಗಲೂ ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ""ಮತ್ತೊಮ್ಮೆ ತೋರಿಸಬೇಡಿ""%2$s ಸ್ಲೈಸ್ಗಳನ್ನು %1$s ತೋರಿಸಲು ಬಯಸಿದೆ""ಎಡಿಟ್"
@@ -2060,7 +2053,8 @@
"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಬದಲಾಗಿದೆ""ಏನನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಪರೀಕ್ಷಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ.""ಅಧಿಸೂಚನೆ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ"
- "Android 13 ನಿಂದ ಪ್ರಾರಂಭಿಸಿ, ನೀವು ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವ ಆ್ಯಪ್ಗಳಿಗೆ, ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಲು ನಿಮ್ಮ ಅನುಮತಿಯ ಅಗತ್ಯವಿದೆ. ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಆ್ಯಪ್ಗಳಿಗಾಗಿ ಈ ಅನುಮತಿಯನ್ನು ಬದಲಾಯಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ."
+
+ "ನಂತರ ರಿಮೈಂಡ್ ಮಾಡಿ""ವಜಾಗೊಳಿಸಿ""ಸಿಸ್ಟಂ"
@@ -2288,6 +2282,5 @@
"ಸಕ್ರಿಯ ಆ್ಯಪ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ""ನಿಮ್ಮ %1$s ಮೂಲಕ ಫೋನ್ನ ಕ್ಯಾಮರಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ""ನಿಮ್ಮ %1$s ಮೂಲಕ ಟ್ಯಾಬ್ಲೆಟ್ನ ಕ್ಯಾಮರಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"
- "ಸ್ಟ್ರೀಮ್ ಮಾಡುವಾಗ ಇದನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದರ ಬದಲು ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ."
- "ಸಿಸ್ಟಂ ಡೀಫಾಲ್ಟ್"
+ "ಸಿಸ್ಟಂ ಭಾಷೆ"
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 6ec148c84cce74be038c698eaa0d9368712a3ec1..acd3d00dd598c1901bed440826cf844d37400b00 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "KB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<제목 없음>""(전화번호 없음)"
@@ -28,7 +33,6 @@
"음성사서함""MSISDN1""연결에 문제가 있거나 MMI 코드가 잘못되었습니다."
- "기능이 지원되지 않습니다.""발신 허용 번호에서만 수행할 수 있는 작업입니다.""로밍 중에는 착신 전환 설정을 변경할 수 없습니다.""서비스를 사용하도록 설정했습니다."
@@ -43,8 +47,8 @@
"입력한 PIN이 일치하지 않습니다.""4~ 8자리 숫자로 된 PIN을 입력하세요.""8자리 이상의 숫자 PUK를 입력합니다."
- "SIM이 PUK 잠김 상태입니다. 잠금 해제하려면 PUK 코드를 입력하세요."
- "SIM을 차단 해제하려면 PUK2를 입력하세요."
+ "SIM 카드의 PUK가 잠겨 있습니다. 잠금해제하려면 PUK 코드를 입력하세요."
+ "SIM 카드 잠금을 해제하려면 PUK2를 입력하세요.""실패했습니다. SIM/RUIM 잠금을 사용 설정하세요."%d번 더 실패하면 SIM이 잠깁니다.
@@ -248,7 +252,7 @@
"현재 기기 상태에 대한 정보를 수집하여 이메일 메시지로 전송합니다. 버그 신고를 시작하여 전송할 준비가 되려면 약간 시간이 걸립니다.""대화형 보고서""대부분의 경우 이 옵션을 사용합니다. 신고 진행 상황을 추적하고 문제에 대한 세부정보를 입력하고 스크린샷을 찍을 수 있습니다. 신고하기에 시간이 너무 오래 걸리고 사용 빈도가 낮은 일부 섹션을 생략할 수 있습니다."
- "전체 신고"
+ "전체 보고서""기기가 응답하지 않거나 너무 느리거나 모든 보고서 섹션이 필요한 경우 이 옵션을 사용하여 시스템 방해를 최소화합니다. 세부정보를 추가하거나 스크린샷을 추가로 찍을 수 없습니다.""{count,plural, =1{버그 신고 스크린샷을 #초 후에 찍습니다.}other{버그 신고 스크린샷을 #초 후에 찍습니다.}}""버그 신고용 스크린샷 촬영 완료"
@@ -301,12 +305,12 @@
"캘린더에 액세스""SMS""SMS 메시지 전송 및 보기"
- "파일"
- "내 기기의 파일에 액세스"
- "음악 및 오디오"
- "기기의 음악 및 오디오에 액세스"
- "사진 및 동영상"
- "기기의 사진 및 동영상에 액세스"
+ "파일 및 문서"
+ "기기의 파일 및 문서에 액세스"
+ "음악 및 기타 오디오"
+ "기기에 있는 오디오 파일에 액세스"
+ "사진 및 동영상"
+ "기기에 있는 이미지 및 동영상 파일에 액세스""마이크""오디오 녹음""신체 활동"
@@ -582,36 +586,34 @@
"화면 잠금 사용""계속하려면 화면 잠금용 사용자 인증 정보를 입력하세요""센서 위에 손가락을 좀 더 오래 올려놓으세요."
- "지문을 인식할 수 없습니다. 다시 시도해 주세요."
+ "지문을 인식할 수 없습니다. 다시 시도해 주세요.""지문 센서를 닦은 후 다시 시도해 보세요.""센서를 닦은 후 다시 시도해 보세요.""센서 위에 손가락을 좀 더 오래 올려놓으세요.""손가락을 너무 느리게 움직였습니다. 다시 시도해 주세요.""다른 지문으로 시도""너무 밝음"
- "전원 누름이 감지되었습니다.""조정 시도"
- "지문이 인식될 때마다 손가락을 조금씩 이동하세요"
+ "지문을 등록할 때마다 손가락을 조금씩 이동하세요."
- "지문이 인식되지 않았습니다."
+ "지문이 인식되지 않습니다.""지문을 인식할 수 없습니다.""지문이 인증됨""얼굴이 인증되었습니다""얼굴이 인증되었습니다. 확인을 누르세요""지문 인식 하드웨어를 사용할 수 없습니다.""지문을 설정할 수 없음"
- "지문 설정 시간이 초과되었습니다. 다시 시도해 주세요."
+ "지문 인식 시간이 초과되었습니다. 다시 시도하세요.""지문 인식 작업이 취소되었습니다.""사용자가 지문 인식 작업을 취소했습니다."
- "시도 횟수가 너무 많습니다. 화면 잠금을 대신 사용하세요."
- "시도 횟수가 너무 많습니다. 화면 잠금을 대신 사용하세요."
- "지문을 처리할 수 없습니다. 다시 시도해 주세요."
+ "시도 횟수가 너무 많습니다. 나중에 다시 시도하세요."
+ "시도 횟수가 너무 많습니다. 지문 센서가 사용 중지되었습니다."
+ "다시 시도해 보세요.""등록된 지문이 없습니다.""기기에 지문 센서가 없습니다.""센서가 일시적으로 사용 중지되었습니다.""지문 센서를 사용할 수 없습니다. 수리업체에 방문하세요."
- "전원 버튼을 눌렀습니다.""손가락 %d""지문 사용""지문 또는 화면 잠금 사용"
@@ -632,33 +634,26 @@
"지문 잠금 해제""지문 센서를 사용할 수 없음""수리업체에 방문하세요."
- "얼굴 모델을 만들 수 없습니다. 다시 시도해 주세요."
+ "정확한 얼굴 데이터를 캡처하지 못했습니다. 다시 시도하세요.""너무 밝습니다. 조명 밝기를 조금 낮춰보세요."
- "조명이 부족합니다."
- "휴대전화를 얼굴에서 더 멀리 떨어뜨려 주세요."
- "휴대전화를 얼굴에 더 가까이 가져와 주세요."
- "휴대전화를 위로 이동하세요"
- "휴대전화를 아래로 이동하세요"
- "휴대전화를 왼쪽으로 이동하세요"
- "휴대전화를 오른쪽으로 이동하세요"
+ "너무 어둡습니다. 조명을 밝게 해 보세요."
+ "휴대전화를 더 멀리 위치시키세요."
+ "휴대전화를 더 가깝게 위치시키세요."
+ "휴대전화를 위쪽으로 이동하세요."
+ "휴대전화를 아래쪽으로 이동하세요."
+ "휴대전화를 왼쪽으로 이동하세요."
+ "휴대전화를 오른쪽으로 이동하세요.""기기에서 더 똑바로 바라보세요."
- "얼굴이 보이지 않습니다. 눈높이에 맞춰 휴대전화를 들어 주세요."
+ "휴대전화가 얼굴 정면을 향하도록 두세요.""너무 많이 움직였습니다. 휴대전화를 흔들리지 않게 잡으세요.""얼굴을 다시 등록해 주세요."
- "얼굴을 인식할 수 없습니다. 다시 시도해 주세요."
- "얼굴의 위치를 조금 변경해 주세요."
- "휴대전화를 좀 더\\n똑바로 바라봐 주세요."
- "휴대전화를 좀 더\\n똑바로 바라봐 주세요."
- "휴대전화를 좀 더\\n똑바로 바라봐 주세요."
+ "더 이상 얼굴을 인식할 수 없습니다. 다시 시도하세요."
+ "너무 비슷합니다. 다른 포즈를 취해 보세요."
+ "고개를 조금 덜 돌려 보세요."
+ "고개를 조금 덜 기울여 보세요."
+ "고개를 조금 덜 돌려 보세요.""얼굴이 가려지지 않도록 해 주세요.""검은색 바를 포함한 화면 상단을 청소하세요."
-
-
-
-
- "얼굴 모델을 만들 수 없습니다. 다시 시도해 주세요."
- "선글라스가 감지되었습니다. 전체 얼굴이 보여야 합니다."
- "마스크가 감지되었습니다. 전체 얼굴이 보여야 합니다.""얼굴을 확인할 수 없습니다. 하드웨어를 사용할 수 없습니다."
@@ -924,14 +919,14 @@
"다시 시도""모든 기능 및 데이터 잠금 해제""얼굴 인식 잠금 해제 최대 시도 횟수를 초과했습니다."
- "SIM 없음"
- "태블릿에 SIM이 없습니다."
- "Android TV 기기에 SIM이 없습니다."
- "휴대전화에 SIM이 없습니다."
- "SIM을 추가하세요."
- "SIM이 없거나 SIM을 읽을 수 없습니다. SIM을 추가하세요."
- "SIM을 사용할 수 없습니다."
- "SIM이 영구적으로 비활성화되었습니다.\n 다른 SIM을 사용하려면 무선 서비스 제공업체에 문의하시기 바랍니다."
+ "SIM 카드가 없습니다."
+ "태블릿에 SIM 카드가 없습니다."
+ "Android TV 기기에 SIM 카드가 없습니다."
+ "휴대전화에 SIM 카드가 없습니다."
+ "SIM 카드를 삽입하세요."
+ "SIM 카드가 없거나 읽을 수 없습니다. SIM 카드를 삽입하세요."
+ "사용할 수 없는 SIM 카드입니다."
+ "SIM 카드 사용이 영구적으로 사용중지되었습니다.\n다른 SIM 카드를 사용하려면 무선 서비스 제공업체에 문의하시기 바랍니다.""이전 트랙""다음 트랙""일시중지"
@@ -941,10 +936,10 @@
"빨리 감기""긴급 통화만 허용""네트워크 잠김"
- "SIM이 PUK 잠김 상태입니다."
+ "SIM 카드가 PUK 잠김 상태입니다.""사용자 가이드를 참조하거나 고객지원팀에 문의하세요."
- "SIM이 잠김 상태입니다."
- "SIM 잠금 해제 중…"
+ "SIM 카드가 잠겨 있습니다."
+ "SIM 카드 잠금해제 중...""잠금해제 패턴을 %1$d회 잘못 그렸습니다. \n\n%2$d초 후에 다시 시도하세요.""비밀번호를 %1$d회 잘못 입력했습니다. \n\n%2$d초 후에 다시 시도하세요.""PIN을 %1$d회 잘못 입력했습니다. \n\n%2$d초 후에 다시 시도하세요."
@@ -1161,8 +1156,8 @@
"취소""주의""로드 중.."
- "사용 설정"
- "사용 안함"
+ "ON"
+ "OFF""선택함""선택 안함""선택됨"
@@ -1246,9 +1241,10 @@
"%1$s 준비 중...""앱을 시작하는 중입니다.""부팅 완료"
+ "설정을 계속하시겠어요?""전원 버튼을 눌렀습니다. 이러면 보통 화면이 꺼집니다.\n\n지문 설정 중에 가볍게 탭하세요."
- "설정을 완료하려면 화면을 끄세요"
- "화면 끄기"
+ "화면 끄기"
+ "설정 계속""지문 인증을 계속할까요?""전원 버튼을 눌렀습니다. 이러면 보통 화면이 꺼집니다.\n\n지문을 인식하려면 화면을 가볍게 탭하세요.""화면 끄기"
@@ -1327,10 +1323,10 @@
"나중에 설정 > 애플리케이션에서 변경할 수 있습니다.""항상 허용""허용 안함"
- "SIM 제거됨"
- "유효한 SIM을 삽입하여 다시 시작할 때까지 모바일 네트워크를 사용할 수 없습니다."
+ "SIM 카드 제거됨"
+ "유효한 SIM 카드를 삽입하여 다시 시작할 때까지 모바일 네트워크를 사용할 수 없습니다.""완료"
- "SIM 추가됨"
+ "SIM 카드 추가됨""모바일 네트워크에 액세스하려면 기기를 다시 시작하세요.""다시 시작""모바일 서비스 활성화"
@@ -1401,16 +1397,16 @@
"설정하려면 탭하세요.""설정하려면 선택하세요.""기기를 다시 포맷해야 할 수 있습니다. 꺼내려면 탭하세요."
- "사진, 동영상, 음악 등을 저장할 수 있습니다."
+ "사진 및 미디어를 전송하는 데 사용합니다.""미디어 파일을 둘러보세요.""%s에 문제 발생""%s이(가) 작동하지 않음""문제를 해결하려면 탭하세요.""%s이(가) 손상되었습니다. 선택하여 문제를 해결하세요.""기기를 다시 포맷해야 할 수 있습니다. 꺼내려면 탭하세요."
- "%s 인식됨"
+ "지원되지 않는 %s입니다.""%s이(가) 작동하지 않음"
- "탭하여 설정: ."
+ "이 기기는 %s을(를) 지원하지 않습니다. 지원하는 형식으로 설정하려면 탭하세요.""%s을(를) 지원되는 형식으로 설정하려면 선택하세요.""기기를 다시 포맷해야 할 수 있습니다.""%s이(가) 예기치 않게 삭제됨"
@@ -1420,7 +1416,7 @@
"%s 마운트 해제 중""외부 미디어를 제거하지 마세요.""설정"
- "꺼내기"
+ "마운트 해제""둘러보기""출력 전환""%s 없음"
@@ -1609,7 +1605,7 @@
"TV""휴대전화""도크 스피커"
- "외부 기기"
+ "HDMI""헤드폰""USB""시스템"
@@ -1642,7 +1638,7 @@
"이제 SIM을 사용할 수 없습니다. 계속하려면 PUK 코드를 입력합니다. 자세한 내용은 이동통신사에 문의하세요.""원하는 PIN 코드 입력""원하는 PIN 코드 확인"
- "SIM 잠금 해제 중…"
+ "SIM 카드 잠금해제 중...""PIN 코드가 잘못되었습니다.""4~8자리 숫자로 된 PIN을 입력하세요.""PUK 코드는 8자리 숫자여야 합니다."
@@ -1700,7 +1696,7 @@
"단축키 사용""색상 반전""색상 보정"
- "한 손 모드"
+ "한 손 사용 모드""더 어둡게""볼륨 키를 길게 눌렀습니다. %1$s이(가) 사용 설정되었습니다.""볼륨 키를 길게 눌렀습니다. %1$s이(가) 사용 중지되었습니다."
@@ -1847,7 +1843,7 @@
"두 번째 업무용 %1$s""세 번째 업무용%1$s""고정 해제 이전에 PIN 요청"
- "고정 해제 시 잠금 해제 패턴 요청"
+ "고정 해제 이전에 잠금해제 패턴 요청""고정 해제 이전에 비밀번호 요청""관리자에 의해 설치되었습니다.""관리자에 의해 업데이트되었습니다."
@@ -1923,7 +1919,6 @@
"지역 환경설정""언어 이름 입력""추천"
- "추천 지역""모든 언어""모든 지역""검색"
@@ -1941,19 +1936,18 @@
"카메라를 사용할 수 없음""휴대전화에서 진행하기""마이크를 사용할 수 없음"
- "Play 스토어를 사용할 수 없음""Android TV 설정을 사용할 수 없음""태블릿 설정을 사용할 수 없음""휴대전화 설정을 사용할 수 없음"
- "현재 %1$s에서 액세스할 수 없습니다. 대신 Android TV 기기에서 시도해 보세요."
- "현재 %1$s에서 액세스할 수 없습니다. 대신 태블릿에서 시도해 보세요."
- "현재 %1$s에서 액세스할 수 없습니다. 대신 스마트폰에서 시도해 보세요."
+ "%1$s에서 앱에 액세스할 수 없습니다. 대신 Android TV 기기에서 시도해 보세요."
+ "%1$s에서 앱에 액세스할 수 없습니다. 대신 태블릿에서 시도해 보세요."
+ "%1$s에서 앱에 액세스할 수 없습니다. 대신 휴대전화에서 시도해 보세요."
+ "현재 %1$s에서 앱에 액세스할 수 없습니다. 대신 Android TV 기기에서 시도해 보세요."
+ "현재 %1$s에서 앱에 액세스할 수 없습니다. 대신 태블릿에서 시도해 보세요."
+ "현재 %1$s에서 앱에 액세스할 수 없습니다. 대신 휴대전화에서 시도해 보세요.""앱에서 추가 보안을 요청합니다. 대신 Android TV 기기에서 시도해 보세요.""앱에서 추가 보안을 요청합니다. 대신 태블릿에서 시도해 보세요.""앱에서 추가 보안을 요청합니다. 대신 휴대전화에서 시도해 보세요."
- "%1$s에서는 액세스할 수 없습니다. 대신 Android TV 기기에서 시도해 보세요."
- "%1$s에서는 액세스할 수 없습니다. 대신 태블릿에서 시도해 보세요."
- "%1$s에서는 액세스할 수 없습니다. 대신 휴대전화에서 시도해 보세요.""이 앱은 Android 이전 버전에 맞게 개발되었기 때문에 제대로 작동하지 않을 수 있습니다. 업데이트를 확인하거나 개발자에게 문의하세요.""업데이트 확인""새 메시지 있음"
@@ -2043,11 +2037,10 @@
"제거""열기""유해한 앱 감지됨"
- "%s에서 전체 기기 로그에 액세스하도록 허용하시겠습니까?"
+ "%s에서 모든 기기에 액세스하도록 허용하시겠습니까?""일회성 액세스 허용""허용 안함"
- "기기 로그에는 기기에서 발생한 상황이 기록됩니다. 앱은 문제를 찾고 해결하는 데 이 로그를 사용할 수 있습니다.\n\n일부 로그는 민감한 정보를 포함할 수 있으므로 신뢰할 수 있는 앱만 전체 기기 로그에 액세스하도록 허용하세요. \n\n앱에 전체 기기 로그에 대한 액세스 권한을 부여하지 않아도 앱이 자체 로그에는 액세스할 수 있습니다. 기기 제조업체에서 일부 로그 또는 기기 내 정보에 액세스할 수도 있습니다."
- "기기 로그에는 기기에서 발생한 상황이 기록됩니다. 앱은 문제를 찾고 해결하는 데 이 로그를 사용할 수 있습니다.\n\n일부 로그에 민감한 정보가 포함될 수 있으므로 신뢰할 수 있는 앱만 모든 기기 로그에 액세스하도록 허용하세요. \n\n앱에 전체 기기 로그에 대한 액세스 권한을 부여하지 않아도, 앱이 자체 로그에는 액세스할 수 있습니다. 기기 제조업체에서 기기 내 일부 로그 또는 정보에 액세스할 수도 있습니다.\n\ng.co/android/devicelogs에서 자세히 알아보세요."
+ "기기 로그에 기기에서 발생한 상황이 기록됩니다. 앱은 문제를 찾고 해결하는 데 이 로그를 사용할 수 있습니다.\n\n일부 로그는 민감한 정보를 포함할 수 있으므로 신뢰할 수 있는 앱만 모든 기기 로그에 액세스하도록 허용하세요. \n\n앱에 전체 기기 로그에 대한 액세스 권한을 부여하지 않아도 앱이 자체 로그에는 액세스할 수 있습니다. 기기 제조업체에서 일부 로그 또는 기기 내 정보에 액세스할 수도 있습니다. 자세히 알아보기""다시 표시 안함""%1$s에서 %2$s의 슬라이스를 표시하려고 합니다""수정"
@@ -2060,7 +2053,8 @@
"방해 금지 모드 변경""차단된 항목을 확인하려면 탭하세요.""알림 설정 검토"
- "Android 13부터 설치된 앱에는 알림을 전송하기 위한 권한이 필요합니다. 기존 앱의 알림 전송 권한을 변경하려면 탭하세요."
+
+ "나중에 알림""닫기""시스템"
@@ -2288,6 +2282,5 @@
"활성 상태의 앱 확인""사용자의 %1$s에서 휴대전화 카메라에 액세스할 수 없습니다.""사용자의 %1$s에서 태블릿 카메라에 액세스할 수 없습니다."
- "스트리밍 중에는 액세스할 수 없습니다. 대신 휴대전화에서 시도해 보세요."
- "시스템 기본값"
+ "시스템 언어"
diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml
index 2dd4a176eb0eb6fac1b9273650c62d61a10e887a..5bc91750d5db5c416a1d7d680d67386c66f2dc99 100644
--- a/core/res/res/values-ky/strings.xml
+++ b/core/res/res/values-ky/strings.xml
@@ -21,6 +21,11 @@
"Б"
+ "Кб"
+ "Мб"
+ "Гб"
+ "ТБ"
+ "ПБ""%1$s%2$s""<Баш аты жок>""(Телефон номери жок)"
@@ -28,9 +33,8 @@
"Үн почтасы""MSISDN1""Туташууда көйгөй чыкты же MMI коду жараксыз."
- "Функция колдоого алынбайт.""Иш-аракет туруктуу терүү номерлери менен гана чектелет."
- "Роуминг учурунда чалууну башка номерге багыттоонун параметрлерин телефонуңуздан өзгөртүү мүмкүн эмес."
+ "Роуминг учурунда чалууну башка номерге багыттоонун жөндөөлөрүн телефонуңуздан өзгөртүү мүмкүн эмес.""Кызмат иштетилди.""Кызмат төмөнкү үчүн иштетилди:""Кызмат өчүрүлдү."
@@ -43,8 +47,8 @@
"Терилген PIN\'дер дал келбейт.""Узундугу 4төн 8ге чейинки сандан турган PIN-кодду териңиз.""Узундугу 8 же көбүрөөк сандан турган PUK-кодду териңиз."
- "SIM картаңыз PUK менен кулпуланган. Кулпусун ачуу үчүн PUK кодун териңиз."
- "SIM картаны бөгөттөн чыгаруу үчүн PUK2 кодун териңиз."
+ "SIM картаңыз PUK менен кулпуланган. Кулпусун ачуу үчүн, PUK-кодду териңиз."
+ "SIM картаны бөгөттөн чыгаруу үчүн PUK2 кодун териңиз.""Оңунан чыкпады, SIM/RUIM бөгөттөөсүн жандырыңыз."Сизде SIM кулпуланганга чейин %d аракет калды.
@@ -72,7 +76,7 @@
"Номурду аныктоонун демейки абалы \"чектелбейт\" деп коюлган. Кийинки чалуу: Чектелген""Номурду аныктоонун демейки абалы \"чектелбейт\" деп коюлган. Кийинки чалуу: Чектелбейт""Кызмат камсыздалган эмес."
- "Чалуучунун далдаштырма дайындары параметрлерин өзгөртө албайсыз."
+ "Чалуучунун далдаштырма дайындары жөндөөлөрүн өзгөртө албайсыз.""Мобилдик Интернет кызматы жок""Шашылыш чалуу бөгөттөлгөн""Аудио чалуу кызматы бөгөттөлгөн"
@@ -217,7 +221,7 @@
"Коңгуроо өчүк""Чалганда титирөө""Коңгуроо жандырылган"
- "Android системасын жаңыртуу"
+ "Android тутум жаңыртуусу""Жаңыртууга даярдалууда…""Жаңыртуу топтому иштелүүдө…""Өчүрүлүп күйгүзүлүүдө…"
@@ -259,7 +263,7 @@
"Учак режими""Учак режими КҮЙҮК""Учак режими ӨЧҮК"
- "Параметрлер"
+ "Жөндөөлөр""Жардам""Үн жардамчысы""Бекем кулпулоо"
@@ -301,12 +305,12 @@
"жылнаамаңызды пайдалануу""SMS""SMS билдирүүлөрдү жиберүү жана көрсөтүү"
- "Файлдар"
- "түзмөгүңүздөгү файлдар жеткиликтүү болот"
- "Музыка жана аудио"
- "түзмөгүңүздөгү музыка менен аудиолорго мүмкүнчүлүк алуу"
- "Сүрөттөр жана видеолор"
- "түзмөгүңүздөгү сүрөттөр менен видеолорго мүмкүнчүлүк алуу"
+ "Файлдар жана документтер"
+ "түзмөгүңүздөгү файлдары жана документтерди колдонуу"
+ "Музыка жана башка аудио"
+ "түзмөгүңүздөгү аудио файлдарга мүмкүнчүлүк алуу"
+ "Сүрөттөр жана видеолор"
+ "түзмөгүңүздөгү сүрөттөр менен видеолорго мүмкүнчүлүк алуу""Микрофон""аудио жаздыруу""Кыймыл-аракет"
@@ -323,7 +327,7 @@
"организмдин абалына көз салган сенсордун дайындарына мүмкүнчүлүк алуу""Билдирмелер""билдирмелерди көрсөтүү"
- "Терезедеги нерселерди алып туруу"
+ "Терезедеги мазмунду алып турат""Учурда ачылып турган терезедеги маалыматты талдайт.""\"Сыйпалап изилдөө\" мүмкүнчүлүгүн иштетет""Басылып жаткан элементтерди айтып турат жана түзмөктү жаңсоолор менен башкаруу мүмкүнчүлүгүн иштетет."
@@ -336,7 +340,7 @@
"Манжа изинин жаңсоолору""Түзмөктөгү манжа изинин сенсорунда жасалган жаңсоолорду жаздырып алат.""Скриншот тартып алуу"
- "Дисплейдин скриншотун тартып алсаңыз болот."
+ "Дисплейдин скриншотун тартып алууга болот.""абал тилкесин өчүрүү же өзгөртүү""Колдонмого абал тилкесин өчүрүү же тутум сүрөтчөлөрүн кошуу же алып салуу мүмкүнчүлүгүн берет.""абал тилкесинин милдетин аткаруу"
@@ -346,7 +350,7 @@
"билдирмелерди кулпуланган түзмөктүн толук экранында көрсөтүү""Колдонмого билдирмелерди кулпуланган түзмөктүн толук экранында көрсөтүүгө уруксат берет""Ыкчам баскыч түзүү"
- "Колдонмо башкы экранга ыкчам баскычтарды өз алдынча кошо алат"
+ "Колдонмого үй экранга колдонуучунун катышуусусуз тез чакырма кошууга мүмкүнчүлүк берет.""тез чакыргычтарды жок кылуу""Колдонмого колдонуучунун катышуусусуз үй экранынын тез чакырмаларын жок кылуу мүмкүнчүлүгүн берет.""чыгыш чалууларды кайра багыттоо"
@@ -398,7 +402,7 @@
"колдонмо сактагычынын мейкиндигин өлчөө""Колдонмого өз кодун, дайындарын жана кэш өлчөмдөрүн түшүрүп алуу мүмкүнчүлүгүн берет""система тууралоолорун өзгөртүү"
- "Колдонмого системанын коопсуздук параметрлеринин дайындарын өзгөртүү мүмкүнчүлүгүн берет. Кесепттүү колдонмолор тутумуңуздун конфигурациясын бузуп салышы мүмкүн."
+ "Колдонмого системанын коопсуздук жөндөөлөрүнүн дайындарын өзгөртүү мүмкүнчүлүгүн берет. Кесепттүү колдонмолор тутумуңуздун конфигурациясын бузуп салышы мүмкүн.""түзмөктү жандырганда иштеп баштоо""Колдонмого тутум жүктөлүп бүтөөрү менен өзүн-өзү иштетүү мүмкүнчүлүгүн берет. Бул планшеттин ишке киргизилишин кыйла создуктуруп, планшеттин үзгүлтүксүз иштешин жайлатып салышы мүмкүн.""Тутум күйгүзүлөрү менен колдонмого өз алдынча иштеп баштоого уруксат берет. Ага байланыштуу Android TV түзмөгүңүз кечирээк күйгүзүлүп, ошондой эле колдонмо такай иштеп тургандыктан, түзмөк жайыраак иштеп калышы мүмкүн."
@@ -441,7 +445,7 @@
"Колдонмо кайда жүргөнүңүздү активдүү режимде гана болжолдуу аныктай алат. Ал үчүн түзмөгүңүздө жайгашкан жерди аныктоо кызматын иштетишиңиз керек.""жайгашкан жерди фондо аныктоо""Колдонмо кайда жүргөнүңүздү активдүү режимде гана эмес, фондук режимде да аныктай алат."
- "аудио параметрлериңизди өзгөртүңүз"
+ "аудио жөндөөлөрүңүздү өзгөртүңүз""Колдонмого үн деңгээли жана кайсы динамик аркылуу үн чыгарылышы керек сыяктуу түзмөктүн аудио тууралоолорун өзгөртүүгө уруксат берет.""аудио жаздыруу""Бул колдонмо иштеп жатканда микрофон менен аудио файлдарды жаздыра алат."
@@ -582,14 +586,13 @@
"Экран кулпусун колдонуу""Улантуу үчүн экрандын кулпусун киргизиңиз""Сенсорду катуу басыңыз"
- "Манжа изи таанылбай жатат. Кайра аракет кылыңыз."
+ "Манжа изи иштелбей койду. Кайталап көрүңүз.""Манжа изинин сенсорун тазалап, кайра аракет кылыңыз""Сенсорду тазалап, кайра аракет кылыңыз""Сенсорду катуу басыңыз""Манжа өтө жай жылды. Кайталап көрүңүз.""Башка манжа изин байкап көрүңүз""Өтө жарык"
- "Кубат баскычы басылганы аныкталды""Тууралап көрүңүз""Манжаңыздын абалын ар жолкусунда бир аз өзгөртүп туруңуз"
@@ -601,17 +604,16 @@
"Жүздүн аныктыгы текшерилди, эми \"Ырастоону\" басыңыз""Манжа изинин аппараттык камсыздоосу жеткиликтүү эмес.""Манжа изи жөндөлбөй жатат"
- "Манжа изин тууралоо убакыты бүтүп калды. Кайра аракет кылыңыз."
+ "Манжа изин күтүү мөөнөтү бүттү. Кайталап көрүңүз.""Манжа изи иш-аракети жокко чыгарылды.""Манжа изи операциясын колдонуучу жокко чыгарды."
- "Өтө көп жолу аракет кылдыңыз. Экранды кулпулоо функциясын колдонуңуз."
- "Өтө көп жолу аракет кылдыңыз. Экранды кулпулоо функциясын колдонуңуз."
- "Манжа изи иштетилген жок. Кайра аракет кылыңыз."
+ "Аракеттер өтө көп болду. Бир аздан кийин кайталап көрүңүз."
+ "Өтө көп жолу аракет жасадыңыз. Манжа изинин сенсору өчүрүлдү."
+ "Кайра бир аракеттениңиз.""Бир да манжа изи катталган эмес.""Бул түзмөктө манжа изинин сенсору жок.""Сенсор убактылуу өчүрүлгөн.""Манжа изинин сенсорун колдонууга болбойт. Тейлөө кызматына кайрылыңыз"
- "Кубат баскычы басылды""%d-манжа""Манжа изин колдонуу""Манжа изин же экрандын кулпусун колдонуу"
@@ -624,41 +626,34 @@
"Жүзүнөн таанып ачуу""Жүзүнөн таанып ачуу функциясында маселе келип чыкты""Жүзүңүздүн үлгүсүн өчүрүү үчүн басып, жаңы үлгүнү кошуңуз"
- "Жүзүнөн таанып ачууну тууралоо"
+ "Жүзүнөн таанып ачууну жөндөө""Телефонуңузду карап туруп эле кулпусун ачып алыңыз"
- "Жүзүнөн таанып ачуу функциясын колдонуу үчүн Параметрлер > Купуялык бөлүмүнө өтүп, ""Камераны колдонууну"" күйгүзүңүз"
+ "Жүзүнөн таанып ачуу функциясын колдонуу үчүн Жөндөөлөр > Купуялык бөлүмүнө өтүп, ""Камераны колдонууну"" күйгүзүңүз""Кулпусун ачуунун көбүрөөк жолдорун жөндөңүз""Манжа изин кошуу үчүн басыңыз""Кулпуланган түзмөктү манжа изи менен ачуу""Манжа изинин сенсорун колдонууга болбойт""Тейлөө кызматына кайрылыңыз."
- "Жүзүңүздүн үлгүсү түзүлгөн жок. Кайталаңыз."
+ "Жүзүңүз жакшы тартылган жок. Кайталап көрүңүз.""Өтө жарык. Жарыктыкты азайтып көрүңүз."
- "Жарык жетишсиз"
- "Телефонду алыстатыңыз"
- "Телефонду жакындатыңыз"
- "Телефонду жогору жылдырыңыз"
- "Телефонду ылдый жылдырыңыз"
- "Телефонду солго жылдырыңыз"
- "Телефонду оңго жылдырыңыз"
+ "Өтө караңгы. Жарыгыраак жерден тартып көрүңүз."
+ "Телефонду алысыраак жылдырыңыз."
+ "Телефонду жакыныраак жылдырыңыз."
+ "Телефонду жогору жылдырыңыз."
+ "Телефонду ылдый жылдырыңыз."
+ "Телефонду солго жылдырыңыз."
+ "Телефонду оңго жылдырыңыз.""Түзмөгүңүзгө түз караңыз."
- "Жүзүңүз көрүнбөй жатат. Телефонду көздөрүңүздүн деңгээлинде кармаңыз."
+ "Телефонду жүзүңүздүн маңдайында кармаңыз.""Кыймылдап жибердиңиз. Телефонду түз кармаңыз.""Жүзүңүздү кайра таанытыңыз."
- "Жүз таанылбай жатат. Кайталаңыз."
- "Башыңызды бир аз буруңуз"
- "Телефонуңузду караңыз"
- "Телефонуңузду караңыз"
- "Телефонуңузду караңыз"
- "Жүзүңүз жакшы көрүнбөй жатат."
+ "Жүз таанылган жок. Кайталап көрүңүз."
+ "Мурункуга окшош болуп калды, башкача туруңуз."
+ "Башыңызды бир аз гана эңкейтиңиз."
+ "Башыңызды бир аз гана эңкейтиңиз."
+ "Башыңызды бир аз гана эңкейтиңиз."
+ "Жүзүңүздү жашырып турган нерселерди алып салыңыз.""Экраныңыздын жогору жагын, анын ичинде тилкени да тазалаңыз"
-
-
-
-
- "Жүзүңүздүн үлгүсү түзүлгөн жок. Кайталаңыз."
- "Кара көз айнек кийгенге болбойт. Жүзүңүз толук көрүнүшү керек."
- "Жүзүңүз жабылып калды. Ал толук көрүнүшү керек.""Жүз ырасталбай жатат. Аппараттык камсыздоо жеткиликсиз."
@@ -682,7 +677,7 @@
"Бир жерден ката кетти. Кайра аракет кылыңыз.""Жүздүн сүрөтчөсү"
- "шайкештирүү параметрлерин окуу"
+ "шайкештирүү жөндөөлөрүн окуу""Колдонмого эсеп менен синхрондошуу тууралоолорун окуганга уруксат берет. Мисалы, Кишилер колдонмосу эсеп менен синхрондошкондугун аныктай алат.""синхрондоштурууну өчүрүү/жандыруу""Колдонмого эсеп менен синхрондошуу тууралоолорун өзгөртүү уруксатын берет. Мисалы, бул Кишилер колдонмосун эсеп менен синхрондошуусун иштете алат."
@@ -910,13 +905,13 @@
"Кулпуну ачуу үчүн сырсөздү териңиз""Кулпуну ачуу үчүн PIN кодду териңиз""PIN-код туура эмес."
- "Кулпусун ачуу үчүн Менюну андан соң 0 баскычын басыңыз."
+ "Кулпусун ачуу үчүн, Менюна андан соң 0 баскычын басыңыз.""Өзгөчө кырдаалдар кызматы""Интернет жок""Экран кулпуланды.""Кулпусун ачып же Шашылыш чалуу аткаруу үчүн менюну басыңыз.""Бөгөттөн чыгаруу үчүн Менюну басыңыз."
- "Кулпуну ачуу үчүн үлгүнү тартыңыз"
+ "Кулпуну ачуу үчүн, үлгүнү тартыңыз""Шашылыш чалуу""Чалууга кайтуу""Туура!"
@@ -924,14 +919,14 @@
"Дагы аракет кылыңыз""Элементтердин жана дайындардын кулпусун ачуу""Жүзүнөн таанып ачуу аракеттеринин чегинен аштыңыз"
- "SIM карта жок"
- "Планшетте SIM карта жок."
- "Android TV түзмөгүңүздө SIM карта жок."
- "Телефондо SIM карта жок."
- "SIM карта кошуңуз."
- "SIM карта жок же окулбайт. SIM карта кошуңуз."
- "Жараксыз SIM карта."
- "SIM картаңыз биротоло өчүрүлдү.\n Башка SIM карта алуу үчүн зымсыз кызмат көрсөтүүчүгө кайрылыңыз."
+ "SIM карта жок"
+ "Планшетте SIM-карта жок."
+ "Android TV түзмөгүңүздө SIM-карта жок."
+ "Телефондо SIM-карта жок."
+ "SIM картаны салыңыз."
+ "SIM-карта жок же ал окулбайт. SIM картаны салыңыз."
+ "Жараксыз SIM-карта."
+ "SIM картаңыз биротоло өчүрүлдү.\n Башка SIM карта алыш үчүн зымсыз тейлөөчүгө кайрылыңыз.""Мурунку трек""Кийинки трек""Тындыруу"
@@ -941,10 +936,10 @@
"Алдыга түрүү""Кырсыктаганда гана чалуу""Тармак кулпуланган"
- "SIM карта PUK менен кулпуланган."
+ "SIM-карта PUK-бөгөттө.""Колдонуучунун нускамасын караңыз же Кардарларды тейлөө борборуна кайрылыңыз."
- "SIM карта кулпуланган."
- "SIM картанын кулпусу ачылууда…"
+ "SIM-карта бөгөттөлгөн."
+ "SIM-карта бөгөттөн чыгарылууда…""Графикалык ачкычты %1$d жолу туура эмес тарттыңыз. \n\n %2$d секундадан кийин дагы аракет кылып көрүңүз.""Сырсөзүңүздү %1$d жолу туура эмес тердиңиз. \n\n %2$d секундадан кийин дагы аракет кылып көрүңүз.""PIN-кодуңузду %1$d жолу туура эмес тердиңиз. \n\n %2$d секундадан кийин дагы аракет кылып көрүңүз."
@@ -1224,7 +1219,7 @@
"Башында %1$s жүргүзүлгөн.""Шкала""Ар дайым көрүнсүн"
- "Муну тутум параметрлеринен кайра иштетүү > Колдонмолор > Жүктөлүп алынган."
+ "Муну тутум жөндөөлөрүнөн кайра иштетүү > Колдонмолор > Жүктөлүп алынган.""%1$s колдонмосу көрүнүштүн тандалган өлчөмүн экранда көрсөтө албайт жана туура эмес иштеши мүмкүн.""Ар дайым көрүнсүн""%1$s Android OS тутуму менен иштеген түзмөктүн шайкеш келбеген версиясы үчүн орнотулган колдонмо жана туура эмес иштеши мүмкүн. Колдонмонун жаңырган версиясы жеткиликтүү болушу мүмкүн."
@@ -1234,7 +1229,7 @@
"%1$s процесси өзүнүн мажбурланган StrictMode саясатын бузуп койду.""Телефон жаңырууда…""Планшет жаңыртылууда…"
- "Түзмөк жаңырууда…"
+ "Түзмөк жаңыртылууда…""Телефон күйгүзүлүүдө…""Android жүргүзүлүүдө…""Планшет күйгүзүлүүдө…"
@@ -1246,9 +1241,10 @@
"%1$s даярдалууда.""Колдонмолорду иштетип баштоо""Жүктөлүүдө"
+ "Жөндөөнү улантасызбы?""Кубат баскычын бастыңыз — адатта, бул экранды өчүрөт.\n\nМанжаңыздын изин жөндөп жатканда аны акырын басып көрүңүз."
- "Тууралап бүтүрүү үчүн экранды өчүрүңүз"
- "Өчүрүү"
+ "Экранды өчүрүү"
+ "Жөндөөнү улантуу""Манжаңыздын изин ырастоону улантасызбы?""Кубат баскычын бастыңыз — адатта, бул экранды өчүрөт.\n\nМанжаңыздын изин ырастоо үчүн аны акырын басып көрүңүз.""Экранды өчүрүү"
@@ -1327,10 +1323,10 @@
"Муну кийин Тууралоо > Колдонмолордон өзгөртө аласыз""Дайыма уруксат берүү""Эч качан уруксат берилбесин"
- "SIM карта чыгарылды"
- "Мобилдик тармакты колдонуу үчүн жарактуу SIM картаны салып, түзмөктү өчүрүп күйгүзүңүз."
+ "SIM-карта өчүрүлдү"
+ "Сиз жарактуу SIM салып, кайра иштетмейинче, мобилдик тармак жеткиликсиз болот.""Даяр"
- "SIM карта кошулду"
+ "SIM-карта кошулду""Мобилдик түйүнкгө жетки алуу үчүн, түзмөгүңүздү өчүрүп кайра жандырыңыз.""Өчүрүп күйгүзүү""Мобилдик кызматты жандыруу"
@@ -1388,7 +1384,7 @@
"Тил жана калып тандоо үчүн таптап коюңуз"" ABCDEFGHIJKLMNOPQRSTUVWXYZ"" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "Башка колдонмолордун үстүнөн көрсөтүү"
+ "Башка терезелердин үстүнөн көрсөтүү""%s колдонмосун башка терезелердин үстүнөн көрсөтүү""%s: башка колдонмолордун үстүнөн""Эгер %s колдонмосу бул функцияны пайдаланбасын десеңиз, жөндөөлөрдү ачып туруп, аны өчүрүп коюңуз."
@@ -1401,16 +1397,16 @@
"Жөндөө үчүн таптаңыз""Жөндөө үчүн тандаңыз""Түзмөктү форматташыңыз керек болушу мүмкүн. Чыгаруу үчүн таптап коюңуз."
- "Сүрөттөрдү, видеолорду, ырларды жана башкаларды сактоо үчүн керек"
+ "Сүрөттөрдү жана медиа өткөрүү үчүн""Медиа файлдарды серептөө""%s түзмөгүндө бир маселе бар""%s иштебей жатат""Оңдоо үчүн таптап коюңуз""%s – бузук. Оңдоо үчүн тандаңыз.""Түзмөктү форматташыңыз керек болушу мүмкүн. Чыгаруу үчүн таптап коюңуз."
- "%s аныкталды"
+ "%s колдоого алынбайт""%s иштебей жатат"
- "Тууралоо үчүн таптаңыз."
+ "Бул түзмөктө %s колдоого алынбайт. Колдоого алынуучу форматта орнотуу үчүн таптап коюңуз.""Колдоого алынуучу форматта орнотуу үчүн %s тандаңыз.""Түзмөктү форматташыңыз керек болушу мүмкүн""%s күтүүсүздөн өчүрүлдү"
@@ -1493,7 +1489,7 @@
"Туташты""Ар дайым иштеген VPN\'ден ажыратуу""Ар дайым күйүк VPN\'ге туташпай калды"
- "Тармакты же VPN параметрлерин өзгөртүү"
+ "Тармакты же VPN жөндөөлөрүн өзгөртүү""Файл тандоо""Эч файл тандалган жок""Баштапкы абалга келтирүү"
@@ -1609,7 +1605,7 @@
"Сыналгы""Телефон""Аудио док бекет"
- "Тышкы түзмөк"
+ "HDMI""Кулакчын""USB""Тутум"
@@ -1619,7 +1615,7 @@
"Түзмөккө туташуу""Тышкы экранга чыгаруу""Түзмөктөр изделүүдө..."
- "Параметрлер"
+ "Жөндөөлөр""Ажыратуу""Скандоодо...""Туташууда..."
@@ -1642,7 +1638,7 @@
"SIM-карта азыр жарактан чыкты. Улантыш үчүн, PUK-кодду киргизиңиз. Көбүрөөк маалымат үчүн операторуңузга кайрылыңыз.""Сиз каалаган PIN-кодду териңиз""Сиз каалаган PIN-кодду ырастаңыз"
- "SIM картанын кулпусу ачылууда…"
+ "SIM-карта бөгөттөн чыгарылууда…""PIN-код туура эмес.""Узундугу 4төн 8ге чейинки сандан турган PIN-кодду териңиз.""PUK-код 8 сандан турушу керек."
@@ -1674,21 +1670,21 @@
"Ыкчам иштетесизби?""Атайын мүмкүнчүлүктөр функциясын пайдалануу үчүн ал күйгүзүлгөндө, үндү катуулатып/акырындаткан эки баскычты тең 3 секунддай коё бербей басып туруңуз.""Атайын мүмкүнчүлүктөрдүн ыкчам баскычын иштетесизби?"
- "Атайын мүмкүнчүлүктөр функциясын иштетүү үчүн үндү катуулатуу/акырындатуу баскычтарын бир нече секунд коё бербей басып туруңуз. Ушуну менен, түзмөгүңүз бир аз башкача иштеп калышы мүмкүн.\n\nУчурдагы функциялар:\n%1$s\nТандалган функцияларды өзгөртүү үчүн Параметрлер > Атайын мүмкүнчүлүктөр бөлүмүнө өтүңүз."
+ "Атайын мүмкүнчүлүктөр функциясын иштетүү үчүн үндү чоңойтуп/кичирейтүү баскычтарын бир нече секунд коё бербей басып туруңуз. Ушуну менен, түзмөгүңүз бир аз башкача иштеп калышы мүмкүн.\n\nУчурдагы функциялар:\n%1$s\nТандалган функцияларды өзгөртүү үчүн Жөндөөлөр > Атайын мүмкүнчүлүктөр бөлүмүнө өтүңүз."" • %1$s\n""%1$s ыкчам баскычын иштетесизби?"
- "%1$s кызматын иштетүү үчүн үндү катуулатуу/акырындатуу баскычтарын бир нече секунд коё бербей басып туруңуз. Ушуну менен, түзмөгүңүз бир аз башкача иштеп калышы мүмкүн.\n\nБаскычтардын ушул айкалышын башка функцияга дайындоо үчүн, Параметрлер > Атайын мүмкүнчүлүктөр бөлүмүнө өтүңүз."
+ "%1$s кызматын иштетүү үчүн үндү чоңойтуп/кичирейтүү баскычтарын бир нече секунд коё бербей басып туруңуз. Ушуну менен, түзмөгүңүз бир аз башкача иштеп калышы мүмкүн.\n\nБаскычтардын ушул айкалышын башка функцияга дайындоо үчүн, Жөндөөлөр > Атайын мүмкүнчүлүктөр бөлүмүнө өтүңүз.""Ооба""Жок""КҮЙҮК""ӨЧҮК""%1$s кызматына түзмөгүңүздү толугу менен көзөмөлдөөгө уруксат бересизби?"
- "Толук көзөмөл атайын мүмкүнчүлүктөрдү иштеткен колдонмолорго керек болуп, калган көптөгөн колдонмолорго кереги деле жок."
+ "Толук көзөмөл атайын мүмкүнчүлүктөрдү пайдаланууга керек, бирок калган көпчүлүк колдонмолорго кереги жок.""Экранды көрүп, көзөмөлдөө"
- "Кызмат экрандагы нерселерди окуп, аларды башка колдонмолордун үстүнөн көрсөтөт."
+ "Кызмат экрандагы нерселерди окуп, материалды башка колдонмолордун үстүнөн көрсөтөт.""Аракеттерди көрүп, аткаруу""Кызмат колдонмодо жасаган аракеттериңизге же түзмөктүн сенсорлоруна көз салып, сиздин атыңыздан буйруктарды берет."
- "Ооба"
+ "Уруксат берүү""Жок""Функцияны колдонуп баштоо үчүн аны таптап коюңуз:""Атайын мүмкүнчүлүктөр баскычы менен колдонгуңуз келген функцияларды тандаңыз"
@@ -1923,7 +1919,6 @@
"Чөлкөмдүк жөндөөлөр""Тилди киргизиңиз""Сунушталгандар"
- "Сунушталган""Бардык тилдер""Бардык өлкөлөр""Издөө"
@@ -1941,19 +1936,18 @@
"Камера жеткиликсиз""Телефондон улантуу""Микрофон жеткиликсиз"
- "Play Store жеткиликсиз""Android TV параметрлери жеткиликсиз""Планшеттин параметрлери жеткиликсиз""Телефондун параметрлери жеткиликсиз"
- "Учурда буга %1$s түзмөгүңүздөн кире албайсыз. Android TV түзмөгүңүздөн аракет кылып көрүңүз."
- "Учурда буга %1$s түзмөгүңүздөн кире албайсыз. Планшетиңизден кирип көрүңүз."
- "Учурда буга %1$s түзмөгүңүздөн кире албайсыз. Анын ордуна телефондон кирип көрүңүз."
+ "Буга %1$s түзмөгүңүздөн кире албайсыз. Android TV түзмөгүңүздөн аракет кылып көрүңүз."
+ "Буга %1$s түзмөгүңүздөн кире албайсыз. Планшетиңизден кирип көрүңүз."
+ "Буга %1$s түзмөгүңүздөн кире албайсыз. Анын ордуна телефондон кирип көрүңүз."
+ "Учурда буга %1$s түзмөгүңүздөн кире албайсыз. Android TV түзмөгүңүздөн аракет кылып көрүңүз."
+ "Учурда буга %1$s түзмөгүңүздөн кире албайсыз. Планшетиңизден кирип көрүңүз."
+ "Учурда буга %1$s түзмөгүңүздөн кире албайсыз. Анын ордуна телефондон кирип көрүңүз.""Бул колдонмо кошумча коопсуздукту иштетүүнү суранып жатат. Android TV түзмөгүңүздөн аракет кылып көрүңүз.""Бул колдонмо кошумча коопсуздукту иштетүүнү суранып жатат. Планшетиңизден кирип көрүңүз.""Бул колдонмо кошумча коопсуздукту иштетүүнү суранып жатат. Анын ордуна телефондон кирип көрүңүз."
- "Буга %1$s түзмөгүңүздөн кире албайсыз. Android TV түзмөгүңүздөн аракет кылып көрүңүз."
- "Буга %1$s түзмөгүңүздөн кире албайсыз. Планшетиңизден кирип көрүңүз."
- "Буга %1$s түзмөгүңүздөн кире албайсыз. Анын ордуна телефондон кирип көрүңүз.""Бул колдонмо Android\'дин эски версиясы үчүн иштеп чыгарылган, андыктан туура эмес иштеши мүмкүн. Жаңыртууларды издеп көрүңүз же иштеп чыгуучуга кайрылыңыз.""Жаңыртууларды текшерүү""Сизге жаңы билдирүүлөр келди"
@@ -1981,7 +1975,7 @@
"Социалдык жана коммуникация""Жаңылыктар жана журналдар""Карталар жана чабыттоо"
- "Майнаптуулук"
+ "Өндүрүш категориясы""Атайын мүмкүнчүлүктөр""Түзмөктүн сактагычы""USB аркылуу мүчүлүштүктөрдү аныктоо"
@@ -2043,11 +2037,10 @@
"ЧЫГАРЫП САЛУУ""БААРЫ БИР АЧЫЛСЫН""Зыянкеч колдонмо аныкталды"
- "%s колдонмосуна түзмөктөгү бардык таржымалдарды жеткиликтүү кыласызбы?"
- "Бир жолу жеткиликтүү кылуу"
- "Жок"
- "Түзмөктө аткарылган бардык аракеттер түзмөктүн таржымалдарында сакталып калат. Колдонмолор бул таржымалдарды колдонуп, маселелерди оңдошот.\n\nАйрым таржымалдарда купуя маалымат болушу мүмкүн, андыктан түзмөктөгү бардык таржымалдарды ишенимдүү колдонмолорго гана пайдаланууга уруксат бериңиз. \n\nЭгер бул колдонмого түзмөктөгү айрым таржымалдарга кирүүгө тыюу салсаңыз, ал өзүнүн таржымалдарын пайдалана берет. Түзмөктү өндүрүүчү түзмөгүңүздөгү айрым таржымалдарды же маалыматты көрө берет."
- "Түзмөктө жасалган нерселердин баары таржымалга сактала берет. Колдонмолор анын жардамы менен көйгөйлөрдү аныктап, оңдоп турушат.\n\nАйрым таржымалдарда купуя маалымат болушу мүмкүн, андыктан ишенимдүү колдонмолорго гана түзмөктөгү бардык таржымалдарды пайдаланууга уруксат бериңиз. \n\nЭгер бул колдонмого түзмөктөгү айрым таржымалдарга кирүүгө тыюу салсаңыз, ал өзүнүн таржымалдарын пайдалана берет. Түзмөктү өндүрүүчү түзмөгүңүздөгү айрым таржымалдарды же маалыматты көрө берет.\n\nКеңири маалымат: g.co/android/devicelogs."
+ "%s колдонмосуна түзмөктөгү бардык таржымалдарды колдонууга уруксат бересизби?"
+ "Бир жолу кирүүгө уруксат берүү"
+ "Уруксат берилбесин"
+ "Түзмөктө аткарылган бардык аракеттер түзмөктүн таржымалдарында сакталып калат. Колдонмолор бул таржымалдарды колдонуп, маселелерди оңдошот.\n\nАйрым таржымалдарда купуя маалымат болушу мүмкүн, андыктан түзмөктөгү бардык таржымалдарды ишенимдүү колдонмолорго гана пайдаланууга уруксат бериңиз. \n\nЭгер бул колдонмого түзмөктөгү айрым таржымалдарга кирүүгө тыюу салсаңыз, ал өзүнүн таржымалдарын пайдалана берет. Түзмөктү өндүрүүчү түзмөгүңүздөгү айрым таржымалдарды же маалыматты көрө берет. Кеңири маалымат""Экинчи көрүнбөсүн""%1$s колдонмосу %2$s үлгүлөрүн көрсөткөнү жатат""Түзөтүү"
@@ -2059,12 +2052,13 @@
"Көбүрөөк маалымат алып, өзгөртүү үчүн таптаңыз.""\"Тынчымды алба\" режими өзгөрдү""Бөгөттөлгөн нерселерди көрүү үчүн таптаңыз."
- "Билдирмелердин параметрлерин карап чыгуу"
- "Android 13 версиясынан баштап билдирмелерди жөнөтүү үчүн орноткон колдонмолоруңузга уруксат берүү керек. Учурдагы колдонмолор үчүн бул уруксатты өзгөртүү үчүн таптап коюңуз."
+ "Билдирмелердин жөндөөлөрүн карап чыгуу"
+
+ "Кийинчерээк эскертүү""Жабуу""Тутум"
- "Параметрлер"
+ "Жөндөөлөр""Камера""Микрофон""экрандагы башка терезелердин үстүнөн көрсөтүлүүдө"
@@ -2265,7 +2259,7 @@
- "Чоңойтуу функциясынын жаңы параметрлери"
+ "Чоңойтуу функциясынын жаңы жөндөөлөрү""Эми экрандын бир бөлүгүн чоңойто аласыз""Жөндөөлөрдөн күйгүзүү""Жабуу"
@@ -2276,7 +2270,7 @@
"Сенсордун купуялыгы""Колдонмонун сүрөтчөсү""Колдонмонун брендинин сүрөтү"
- "Кирүү мүмкүнчүлүгүнүн параметрлерин текшериңиз"
+ "Кирүү мүмкүнчүлүгүнүн жөндөөлөрүн текшериңиз""%s экраныңызды көрүп, көзөмөлдөй алат. Көрүү үчүн таптап коюңуз.""Билдирүү (%1$s) которулду.""Билдирүү %1$s тилинен %2$s тилине которулду."
@@ -2288,6 +2282,5 @@
"Жигердүү колдонмолорду карап чыгуу""%1$s түзмөгүңүздөн телефондун камерасына мүмкүнчүлүк жок""%1$s түзмөгүңүздөн планшетиңиздин камерасына мүмкүнчүлүк жок"
- "Муну алып ойнотуу учурунда көрүүгө болбойт. Анын ордуна телефондон кирип көрүңүз."
- "Системанын демейки параметрлери"
+ "Тутумдун тили"
diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml
index 9663cbe279332c06793d445887a593f3d234b1b9..743ff0da67bc31b93d9c2882528b57840058b6fa 100644
--- a/core/res/res/values-lo/strings.xml
+++ b/core/res/res/values-lo/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<ບໍ່ມີຊື່>""(ບໍ່ມີເບີໂທລະສັບ)"
@@ -28,7 +33,6 @@
"ຂໍ້ຄວາມສຽງ""MSISDN1""ມີບັນຫາໃນການເຊື່ອມຕໍ່ ຫຼືລະຫັດ MMI ບໍ່ຖືກຕ້ອງ."
- "ບໍ່ຮອງຮັບຄຸນສົມບັດ.""ການດຳເນີນການຖືກຈຳກັດເປັນ ຈຳກັດໝາຍເລກໂທອອກເທົ່ານັ້ນ.""Can not change call forwarding settings from your phone while you are roaming.""ບໍລິການຖືກເປີດໄວ້ແລ້ວ."
@@ -43,8 +47,8 @@
"ລະຫັດ PIN ທີ່ທ່ານພິມໄປນັ້ນບໍ່ກົງກັນ.""ພິມລະຫັດ PIN ທີ່ມີ 4 ຫາ 8 ໂຕເລກ.""ພິມລະຫັດ PUK ທີ່ມີ 8 ໂຕເລກ ຫຼືຫຼາຍກວ່ານັ້ນ."
- "ຊິມຂອງທ່ານຖືກລັອກດ້ວຍ PUK. ໃຫ້ພິມລະຫັດ PUK ເພື່ອປົດລັອກມັນ."
- "ພິມ PUK2 ເພື່ອປົດລັອກຊິມ."
+ "ຊິມກາດຂອງທ່ານຖືກລັອກດ້ວຍລະຫັດ PUK. ໃຫ້ພິມລະຫັດ PUK ເພື່ອປົດລັອກມັນ."
+ "ພິມ PUK2 ເພື່ອປົດລັອກ SIM card.""ບໍ່ສຳເລັດ, ເປີດນໍາໃຊ້ການລັອກຂອງ SIM/RUIM."ທ່ານສາມາດລອງໄດ້ອີກ %d ເທື່ອກ່ອນທີ່ SIM ຂອງທ່ານຈະຖືກລັອກ.
@@ -301,12 +305,12 @@
"ເຂົ້າຫາປະຕິທິນຂອງທ່ານ""SMS""ສົ່ງ ແລະເບິ່ງຂໍ້ຄວາມ SMS"
- "ໄຟລ໌"
- "ເຂົ້າເຖິງໄຟລ໌ຢູ່ອຸປະກອນຂອງທ່ານ"
- "ເພງ ແລະ ສຽງ"
- "ເຂົ້າເຖິງເພງ ແລະ ສຽງຢູ່ອຸປະກອນຂອງທ່ານ"
- "ຮູບພາບ ແລະ ວິດີໂອ"
- "ເຂົ້າເຖິງຮູບພາບ ແລະ ວິດີໂອຢູ່ອຸປະກອນຂອງທ່ານ"
+ "ໄຟລ໌ ແລະ ເອກະສານ"
+ "ເຂົ້າເຖິງໄຟລ໌ ແລະ ເອກະສານຢູ່ອຸປະກອນຂອງທ່ານ"
+ "ເພງ ແລະ ສຽງອື່ນໆ"
+ "ເຂົ້າເຖິງໄຟລ໌ສຽງຢູ່ອຸປະກອນຂອງທ່ານ"
+ "ຮູບພາບ ແລະ ວິດີໂອ"
+ "ເຂົ້າເຖິງໄຟລ໌ຮູບ ແລະ ວິດີໂອຢູ່ອຸປະກອນຂອງທ່ານ""ໄມໂຄຣໂຟນ""ບັນທຶກສຽງ""ກິດຈະກຳທາງກາຍະພາບ"
@@ -582,14 +586,13 @@
"ໃຊ້ການລັອກໜ້າຈໍ""ໃສ່ການລັອກໜ້າຈໍຂອງທ່ານເພື່ອສືບຕໍ່""ກົດຢູ່ເຊັນເຊີໃຫ້ແໜ້ນ"
- "ບໍ່ສາມາດຈຳແນກລາຍນິ້ວມືໄດ້. ກະລຸນາລອງໃໝ່."
+ "ບໍ່ສາມາດດຳເນີນການລາຍນີ້ວມືໄດ້. ກະລຸນາລອງໃໝ່ອີກ.""ໃຫ້ອະນາໄມເຊັນເຊີລາຍນິ້ວມືແລ້ວລອງໃໝ່""ໃຫ້ອະນາໄມເຊັນເຊີແລ້ວລອງໃໝ່""ກົດຢູ່ເຊັນເຊີໃຫ້ແໜ້ນ""ຍ້າຍນີ້ວມືໄປຊ້າເກີນໄປ. ກະລຸນາລອງໃໝ່ອີກ.""ລອງໃຊ້ລາຍນິ້ວມືອື່ນ""ແຈ້ງເກີນໄປ"
- "ກວດພົບແຮງກົດ""ກະລຸນາລອງປັບແກ້""ປ່ຽນຕຳແໜ່ງຂອງນິ້ວມືຂອງທ່ານເລັກນ້ອຍໃນແຕ່ລະເທື່ອ"
@@ -601,17 +604,16 @@
"ພິສູດຢືນຢັນໃບໜ້າແລ້ວ, ກະລຸນາກົດຢືນຢັນ""ບໍ່ມີຮາດແວລາຍນີ້ວມືໃຫ້ຢູ່.""ບໍ່ສາມາດຕັ້ງຄ່າລາຍນິ້ວມືໄດ້"
- "ໝົດເວລາຕັ້ງຄ່າລາຍນິ້ວມື. ກະລຸນາລອງໃໝ່."
+ "ເວລາລາຍນີ້ວມືບໍ່ເຂົ້າເຖິງໄດ້. ລອງໃໝ່ອີກ.""ຍົກເລີກການດຳເນີນການລາຍນີ້ວມືແລ້ວ.""ຜູ້ໃຊ້ໄດ້ຍົກເລີກຄຳສັ່ງລາຍນິ້ວມືແລ້ວ."
- "ພະຍາຍາມຫຼາຍເທື່ອເກີນໄປ. ກະລຸນາໃຊ້ການລອກໜ້າຈໍແທນ."
- "ພະຍາຍາມຫຼາຍເທື່ອເກີນໄປ. ກະລຸນາໃຊ້ການລອກໜ້າຈໍແທນ."
- "ບໍ່ສາມາດປະມວນຜົນລາຍນິ້ວມືໄດ້. ກະລຸນາລອງໃໝ່."
+ "ມີຄວາມພະຍາຍາມຫຼາຍຄັ້ງເກີນໄປ. ລອງໃໝ່ພາຍຫຼັງ."
+ "ພະຍາຍາມຫຼາຍເທື່ອເກີນໄປ. ລະບົບປິດການເຮັດວຽກຂອງເຊັນເຊີລາຍນິ້ວມືແລ້ວ."
+ "ລອງໃໝ່ອີກຄັ້ງ.""ບໍ່ມີການລົງທະບຽນລາຍນິ້ວມື.""ອຸປະກອນນີ້ບໍ່ມີເຊັນເຊີລາຍນິ້ວມື.""ປິດການເຮັດວຽກຂອງເຊັນເຊີໄວ້ຊົ່ວຄາວແລ້ວ.""ບໍ່ສາມາດໃຊ້ເຊັນເຊີລາຍນິ້ວມືໄດ້. ກະລຸນາໄປຫາຜູ້ໃຫ້ບໍລິການສ້ອມແປງ"
- "ກົດປຸ່ມເປີດປິດແລ້ວ""ນີ້ວມື %d""ໃຊ້ລາຍນິ້ວມື""ໃຊ້ລາຍນິ້ວມື ຫຼື ການລັອກໜ້າຈໍ"
@@ -632,33 +634,26 @@
"ປົດລັອກດ້ວຍລາຍນິ້ວມື""ບໍ່ສາມາດໃຊ້ເຊັນເຊີລາຍນິ້ວມືໄດ້""ກະລຸນາໄປຫາຜູ້ໃຫ້ບໍລິການສ້ອມແປງ."
- "ບໍ່ສາມາດສ້າງຮູບແບບໃບໜ້າຂອງທ່ານໄດ້. ກະລຸນາລອງໃໝ່."
+ "ບໍ່ສາມາດບັນທຶກຂໍ້ມູນໃບໜ້າທີ່ຖືກຕ້ອງໄດ້. ກະລຸນາລອງໃໝ່.""ແຈ້ງເກີນໄປ. ລອງຄ່ອຍແສງໄຟລົງ."
- "ແສງບໍ່ພໍ"
- "ເລື່ອນໂທລະສັບອອກໄປໄກຂຶ້ນ"
- "ເລື່ອນໂທລະສັບເຂົ້າໄປໃກ້ຂຶ້ນ"
- "ຍົກໂທລະສັບໃຫ້ສູງຂຶ້ນ"
- "ເລື່ອນໂທລະສັບຕ່ຳລົງ"
- "ເລື່ອນໂທລະສັບໄປທາງຊ້າຍຂອງທ່ານ"
- "ເລື່ອນໂທລະສັບໄປທາງຂວາຂອງທ່ານ"
+ "ມືດເກີນ. ກະລຸນາລອງໃຊ້ສະພາບແສງທີ່ແຈ້ງຂຶ້ນ."
+ "ຍ້າຍໂທລະສັບອອກໄປໄກຂຶ້ນ."
+ "ຍ້າຍໂທລະສັບເຂົ້າໄປໃກ້ຂຶ້ນ."
+ "ຍົກໂທລະສັບໃຫ້ສູງຂຶ້ນ."
+ "ເລື່ອນໂທລະສັບຕ່ຳລົງ."
+ "ຍ້າຍໂທລະສັບໄປທາງຊ້າຍ."
+ "ຍ້າຍໂທລະສັບໄປທາງຂວາ.""ກະລຸນາເບິ່ງອຸປະກອນຂອງທ່ານໃຫ້ຊື່ໆ."
- "ບໍ່ເຫັນໃບໜ້າຂອງທ່ານ. ຖືໂທລະສັບຂອງທ່ານໄວ້ໃນລະດັບສາຍຕາ."
+ "ຫັນໜ້າຂອງທ່ານໄປໃສ່ໜ້າໂທລະສັບໂດຍກົງ.""ເຄື່ອນໄຫວຫຼາຍເກີນໄປ. ກະລຸນາຖືໂທລະສັບໄວ້ຊື່ໆ.""ກະລຸນາລົງທະບຽນອຸປະກອນຂອງທ່ານອີກເທື່ອໜຶ່ງ."
- "ບໍ່ສາມາດຈຳແນກໃບໜ້າໄດ້. ກະລຸນາລອງໃໝ່."
- "ປ່ຽນຕຳແໜ່ງຂອງຫົວທ່ານເລັກນ້ອຍ"
- "ເບິ່ງຊື່ໆໄປຫາໂທລະສັບຂອງທ່ານໃຫ້ຫຼາຍຂຶ້ນ"
- "ເບິ່ງຊື່ໆໄປຫາໂທລະສັບຂອງທ່ານໃຫ້ຫຼາຍຂຶ້ນ"
- "ເບິ່ງຊື່ໆໄປຫາໂທລະສັບຂອງທ່ານໃຫ້ຫຼາຍຂຶ້ນ"
+ "ບໍ່ສາມາດຈຳແນກໃບໜ້າໄດ້ອີກຕໍ່ໄປ. ກະລຸນາລອງໃໝ່."
+ "ຄ້າຍກັນເກີນໄປ, ກະລຸນາປ່ຽນທ່າຂອງທ່ານ."
+ "ອຽງຫົວຂອງທ່ານໜ້ອຍໜຶ່ງ."
+ "ປັບມຸມໜ້າຂອງທ່ານໃຫ້ຕັ້ງຊື່."
+ "ອຽງຫົວຂອງທ່ານໜ້ອຍໜຶ່ງ.""ນຳສິ່ງທີ່ກີດຂວາງໃບໜ້າທ່ານອອກ.""ທຳຄວາມສະອາດສ່ວນເທິງສຸດຂອງໜ້າຈໍທ່ານ, ຮວມທັງແຖບດຳນຳ"
-
-
-
-
- "ບໍ່ສາມາດສ້າງຮູບແບບໃບໜ້າຂອງທ່ານໄດ້. ກະລຸນາລອງໃໝ່."
- "ກວດພົບແວ່ນຕາດຳ. ໃບໜ້າຂອງທ່ານຕ້ອງສະແດງໃຫ້ເຫັນໝົດ."
- "ກວດພົບການປົກປິດໃບໜ້າ. ໃບໜ້າຂອງທ່ານຕ້ອງສະແດງໃຫ້ເຫັນໝົດ.""ບໍ່ສາມາດຢັ້ງຢືນໃບໜ້າໄດ້. ບໍ່ມີຮາດແວໃຫ້ໃຊ້."
@@ -924,14 +919,14 @@
"ທົດລອງອີກຄັ້ງ""ປົດລັອກຄຸນສົມບັດ ແລະ ຂໍ້ມູນທັງໝົດ""ຄວາມພະຍາຍາມປົດລັອກດ້ວຍໜ້ານັ້ນ ເກີນຈຳນວນທີ່ກຳນົດແລ້ວ"
- "ບໍ່ມີຊິມ"
- "ບໍ່ມີຊິມໃນແທັບເລັດ."
- "ບໍ່ມີຊິມໃນອຸປະກອນ Android TV ຂອງທ່ານ."
- "ບໍ່ມີຊິມໃນໂທລະສັບ."
- "ເພີ່ມຊິມ."
- "ບໍ່ມີຊິມ ຫຼື ອ່ານຊິມບໍ່ໄດ້. ເພີ່ມຊິມ."
- "ຊິມໃຊ້ບໍ່ໄດ້."
- "ຊິມຂອງທ່ານຖືກປິດໃຊ້ຢ່າງຖາວອນແລ້ວ.\n ຕິດຕໍ່ຜູ້ໃຫ້ບໍລິການໂທລະສັບໄຮ້ສາຍຂອງທ່ານເພື່ອຂໍຊິມໃໝ່."
+ "ບໍ່ມີ SIM card."
+ "ບໍ່ມີຊິມກາດໃນແທັບເລັດ."
+ "ບໍ່ມີຊິມກາດຢູ່ໃນອຸປະກອນ Android TV ຂອງທ່ານ."
+ "ບໍ່ມີ SIM card ໃນໂທລະສັບ."
+ "ໃສ່ຊິມກາດ."
+ "ບໍ່ມີຊິມກາດ ຫຼືອ່ານຊິມກາດບໍ່ໄດ້. ໃສ່ຊິມກາດ."
+ "SIM card ບໍ່ສາມາດໃຊ້ໄດ້."
+ "ຊິມກາດຂອງທ່ານຖືກປິດການນຳໃຊ້ຢ່າງຖາວອນແລ້ວ.\n ກະລຸນາຕິດຕໍ່ຜູ່ໃຫ້ບໍລິການໂທລະສັບຂອງທ່ານ ເພື່ອຂໍເອົາຊິມກາດໃໝ່.""ເພງກ່ອນໜ້າ""ເພງຕໍ່ໄປ""ຢຸດຊົ່ວຄາວ"
@@ -941,10 +936,10 @@
"ເລື່ອນໄປໜ້າ""ສຳລັບການໂທສຸກເສີນເທົ່ານັ້ນ""ເຄືອຂ່າຍຖືກລັອກ"
- "ຊິມຖືກລັອກດ້ວຍ PUK."
+ "SIM card ຖືກລັອກດ້ວຍລະຫັດ PUK.""ເບິ່ງຄູ່ມືຜູ່ໃຊ້ ຫຼືຕິດຕໍ່ສູນບໍລິການລູກຄ້າ."
- "ຊິມຖືກລັອກຢູ່."
- "ກຳລັງປົດລັອກຊິມ…"
+ "SIM card ຖືກລັອກ."
+ "ກຳລັງປົດລັອກຊິມກາດ...""ທ່ານແຕ້ມຮູບແບບປົດລັອກບໍ່ຖືກ %1$d ເທື່ອແລ້ວ. \n\nລອງໃໝ່ໃນອີກ %2$d ວິນາທີ.""ທ່ານພິມລະຫັດຜ່ານຜິດ %1$d ເທື່ອແລ້ວ. \n\nໃຫ້ລອງໃໝ່ອີກຄັ້ງໃນອີກ %2$d ວິນາທີ.""ທ່ານພິມລະຫັດ PIN ຂອງທ່ານຜິດ %1$d ເທື່ອແລ້ວ. \n\nລອງໃໝ່ໃນອີກ %2$d ວິນາທີ."
@@ -1246,9 +1241,10 @@
"ກຳລັງກຽມ %1$s.""ກຳລັງເປີດແອັບຯ.""ກຳລັງສຳເລັດການເປີດລະບົບ."
+ "ສືບຕໍ່ການຕັ້ງຄ່າບໍ?""ທ່ານກົດປຸ່ມເປີດປິດ, ປົກກະຕິນີ້ຈະປິດໜ້າຈໍ.\n\nລອງແຕະຄ່ອຍໆໃນລະຫວ່າງຕັ້ງຄ່າລາຍນິ້ວມືຂອງທ່ານ."
- "ເພື່ອສິ້ນສຸດການຕັ້ງຄ່າ, ໃຫ້ປິດໜ້າຈໍ"
- "ປິດໄວ້"
+ "ປິດໜ້າຈໍ"
+ "ສືບຕໍ່ການຕັ້ງຄ່າ""ສືບຕໍ່ການຢັ້ງຢືນລາຍນິ້ວມືຂອງທ່ານບໍ?""ທ່ານກົດປຸ່ມເປີດປິດ, ປົກກະຕິນີ້ຈະເປັນການປິດໜ້າຈໍ.\n\nໃຫ້ລອງແຕະຄ່ອຍໆເພື່ອຢັ້ງຢືນລາຍນິ້ວມືຂອງທ່ານ.""ປິດໜ້າຈໍ"
@@ -1327,10 +1323,10 @@
"ທ່ານສາມາດປ່ຽນແປງໂຕເລືອກນີ້ໃນພາຍຫຼັງໄດ້ໃນ ການຕັ້ງຄ່າ > ແອັບຯ""ອະນຸຍາດທຸກຄັ້ງ""ບໍ່ອະນຸຍາດເດັດຂາດ"
- "ເອົາຊິມອອກແລ້ວ"
- "ເຄືອຂ່າຍມືຖືຈະບໍ່ສາມາດໃຊ້ໄດ້ຈົນກວ່າທ່ານຈະປິດເປີດຄືນໃໝ່ດ້ວຍຊິມທີ່ຖືກຕ້ອງ."
+ "ຖອດ SIM card ອອກແລ້ວ"
+ "ເຄືອຂ່າຍມືຖືຈະບໍ່ສາມາດໃຊ້ໄດ້ ຈົນກວ່າທ່ານຈະປິດແລ້ວເປີດໃໝ່ພ້ອມກັບໃສ່ SIM card ທີ່ຖືກຕ້ອງ.""ແລ້ວໆ"
- "ເພີ່ມຊິມແລ້ວ"
+ "ເພີ່ມຊິມກາດແລ້ວ""ປິດແລ້ວເປີດອຸປະກອນຂອງທ່ານ ເພື່ອເຂົ້າເຖິງເຄືອຂ່າຍມືຖື.""ຣີສະຕາດ""ເປີດໃຊ້ບໍລິການມືຖື"
@@ -1401,16 +1397,16 @@
"ແຕະເພື່ອຕັ້ງຄ່າ""ເລືອກເພື່ອຕັ້ງຄ່າ""ທ່ານຈະຕ້ອງຟໍແມັດອຸປະກອນຄືນໃໝ່. ແຕະເພື່ອຖອດອອກ."
- "ສຳລັບການຈັດເກັບຮູບພາບ, ວິດີໂອ, ເພງ ແລະ ອື່ນໆອີກ"
+ "ສຳລັບການໂອນຮູບຖ່າຍ ແລະມີເດຍ""ເລືອກໄຟລ໌ມີເດຍ""ເກີດບັນຫາກັບ %s""%s ບໍ່ເຮັດວຽກ""ແຕະເພື່ອແກ້ໄຂ""%s ເສຍຫາຍ. ແຕະເພື່ອສ້ອມແປງ.""ທ່ານຈະຕ້ອງຟໍແມັດອຸປະກອນຄືນໃໝ່. ແຕະເພື່ອຖອດອອກ."
- "ກວດພົບ %s ແລ້ວ"
+ "ບໍ່ຮອງຮັບ %s""%s ບໍ່ເຮັດວຽກ"
- "ແຕະເພື່ອຕັ້ງຄ່າ."
+ "ອຸປະກອນນີ້ບໍ່ຮອງຮັບ %s ນີ້. ແຕະເພື່ອຕັ້ງຄ່າໃນຮູບແບບທີ່ຮອງຮັບ.""ເລືອກເພື່ອຕັ້ງຄ່າ %s ໃນຮູບແບບທີ່ຮອງຮັບ.""ທ່ານຈະຕ້ອງຟໍແມັດອຸປະກອນຄືນໃໝ່""%s ຖືກຖອດອອກໄປແບບບໍ່ຄາດຄິດ"
@@ -1609,7 +1605,7 @@
"ໂທລະພາບ""ໂທລະສັບ""ບ່ອນຕັ້ງລຳໂພງ"
- "ອຸປະກອນພາຍນອກ"
+ "HDMI""ຫູຟັງ""USB""ລະບົບ"
@@ -1642,7 +1638,7 @@
"ຊິມຖືກປິດການນຳໃຊ້ແລ້ວ. ປ້ອນລະຫັດ PUK ເພື່ອດຳເນີນການຕໍ່. ຕິດຕໍ່ຜູ່ໃຫ້ບໍລິການສຳລັບລາຍລະອຽດ.""ໃສ່ລະຫັດ PIN ທີ່ຕ້ອງການ.""ຢືນຢັນລະຫັດ PIN ທີ່ຕ້ອງການ"
- "ກຳລັງປົດລັອກຊິມ…"
+ "ປົດລັອກ SIM card...""ລະຫັດ PIN ບໍ່ຖືກຕ້ອງ.""ພິມລະຫັດ PIN ຄວາມຍາວ 4 ເຖິງ 8 ໂຕເລກ.""ລະຫັດ PUK ຄວນມີ 8 ໂຕເລກ"
@@ -1923,7 +1919,6 @@
"ການຕັ້ງຄ່າພາກພື້ນ""ພິມຊື່ພາສາ""ແນະນຳ"
- "ແນະນຳ""ທຸກພາສາ""ທຸກຂົງເຂດ""ຄົ້ນຫາ"
@@ -1941,19 +1936,18 @@
"ກ້ອງຖ່າຍຮູບບໍ່ສາມາດໃຊ້ໄດ້""ສືບຕໍ່ຢູ່ໂທລະສັບ""ໄມໂຄຣໂຟນບໍ່ສາມາດໃຊ້ໄດ້"
- "ບໍ່ສາມາດໃຊ້ Play Store ໄດ້""ການຕັ້ງຄ່າ Android TV ບໍ່ສາມາດໃຊ້ໄດ້""ການຕັ້ງຄ່າແທັບເລັດບໍ່ສາມາດໃຊ້ໄດ້""ການຕັ້ງຄ່າໂທລະສັບບໍ່ສາມາດໃຊ້ໄດ້"
- "ບໍ່ສາມາດເຂົ້າເຖິງແອັບນີ້ໄດ້ຢູ່ %1$s ຂອງທ່ານໃນຕອນນີ້. ກະລຸນາລອງໃຊ້ຢູ່ອຸປະກອນ Android TV ຂອງທ່ານແທນ."
- "ບໍ່ສາມາດເຂົ້າເຖິງແອັບນີ້ໄດ້ຢູ່ %1$s ຂອງທ່ານໃນຕອນນີ້. ກະລຸນາລອງຢູ່ແທັບເລັດຂອງທ່ານແທນ."
- "ບໍ່ສາມາດເຂົ້າເຖິງແອັບນີ້ໄດ້ຢູ່ %1$s ຂອງທ່ານໃນຕອນນີ້. ກະລຸນາລອງຢູ່ໂທລະສັບຂອງທ່ານແທນ."
+ "ບໍ່ສາມາດເຂົ້າເຖິງແອັບນີ້ໄດ້ຢູ່ %1$s ຂອງທ່ານ. ກະລຸນາລອງໃຊ້ຢູ່ອຸປະກອນ Android TV ຂອງທ່ານແທນ."
+ "ບໍ່ສາມາດເຂົ້າເຖິງແອັບນີ້ໄດ້ຢູ່ %1$s ຂອງທ່ານ. ກະລຸນາລອງຢູ່ແທັບເລັດຂອງທ່ານແທນ."
+ "ບໍ່ສາມາດເຂົ້າເຖິງແອັບນີ້ໄດ້ຢູ່ %1$s ຂອງທ່ານ. ກະລຸນາລອງຢູ່ໂທລະສັບຂອງທ່ານແທນ."
+ "ບໍ່ສາມາດເຂົ້າເຖິງແອັບນີ້ໄດ້ຢູ່ %1$s ຂອງທ່ານໃນຕອນນີ້. ກະລຸນາລອງໃຊ້ຢູ່ອຸປະກອນ Android TV ຂອງທ່ານແທນ."
+ "ບໍ່ສາມາດເຂົ້າເຖິງແອັບນີ້ໄດ້ຢູ່ %1$s ຂອງທ່ານໃນຕອນນີ້. ກະລຸນາລອງຢູ່ແທັບເລັດຂອງທ່ານແທນ."
+ "ບໍ່ສາມາດເຂົ້າເຖິງແອັບນີ້ໄດ້ຢູ່ %1$s ຂອງທ່ານໃນຕອນນີ້. ກະລຸນາລອງຢູ່ໂທລະສັບຂອງທ່ານແທນ.""ແອັບນີ້ກຳລັງຮ້ອງຂໍຄວາມປອດໄພເພີ່ມເຕີມ. ກະລຸນາລອງໃຊ້ຢູ່ອຸປະກອນ Android TV ຂອງທ່ານແທນ.""ແອັບນີ້ກຳລັງຮ້ອງຂໍຄວາມປອດໄພເພີ່ມເຕີມ. ກະລຸນາລອງຢູ່ແທັບເລັດຂອງທ່ານແທນ.""ແອັບນີ້ກຳລັງຮ້ອງຂໍຄວາມປອດໄພເພີ່ມເຕີມ. ກະລຸນາລອງຢູ່ໂທລະສັບຂອງທ່ານແທນ."
- "ບໍ່ສາມາດເຂົ້າເຖິງແອັບນີ້ໄດ້ຢູ່ %1$s ຂອງທ່ານ. ກະລຸນາລອງໃຊ້ຢູ່ອຸປະກອນ Android TV ຂອງທ່ານແທນ."
- "ບໍ່ສາມາດເຂົ້າເຖິງແອັບນີ້ໄດ້ຢູ່ %1$s ຂອງທ່ານ. ກະລຸນາລອງຢູ່ແທັບເລັດຂອງທ່ານແທນ."
- "ບໍ່ສາມາດເຂົ້າເຖິງແອັບນີ້ໄດ້ຢູ່ %1$s ຂອງທ່ານ. ກະລຸນາລອງຢູ່ໂທລະສັບຂອງທ່ານແທນ.""ແອັບນີ້ຖືກສ້າງຂຶ້ນສຳລັບ Android ເວີຊັນທີ່ເກົ່າກວ່າ ແລະ ອາດເຮັດວຽກໄດ້ບໍ່ປົກກະຕິ. ໃຫ້ລອງກວດສອບເບິ່ງອັບເດດ ຫຼື ຕິດຕໍ່ຜູ້ພັດທະນາ.""ກວດເບິ່ງອັບເດດ""ທ່ານມີຂໍ້ຄວາມໃໝ່"
@@ -2046,8 +2040,7 @@
"ອະນຸຍາດໃຫ້ %s ເຂົ້າເຖິງບັນທຶກອຸປະກອນທັງໝົດບໍ?""ອະນຸຍາດການເຂົ້າເຖິງແບບເທື່ອດຽວ""ບໍ່ອະນຸຍາດ"
- "ບັນທຶກອຸປະກອນຈະບັນທຶກສິ່ງທີ່ເກີດຂຶ້ນຢູ່ອຸປະກອນຂອງທ່ານ. ແອັບສາມາດໃຊ້ບັນທຶກເຫຼົ່ານີ້ເພື່ອຊອກຫາ ແລະ ແກ້ໄຂບັນຫາໄດ້.\n\nບັນທຶກບາງຢ່າງອາດມີຂໍ້ມູນລະອຽດອ່ອນ, ດັ່ງນັ້ນໃຫ້ອະນຸຍາດສະເພາະແອັບທີ່ທ່ານເຊື່ອຖືໃຫ້ເຂົ້າເຖິງບັນທຶກອຸປະກອນທັງໝົດເທົ່ານັ້ນ. \n\nຫາກທ່ານບໍ່ອະນຸຍາດແອັບນີ້ໃຫ້ເຂົ້າເຖິງບັນທຶກອຸປະກອນທັງໝົດ, ມັນຈະຍັງຄົງສາມາດເຂົ້າເຖິງບັນທຶກຂອງຕົວມັນເອງໄດ້ຢູ່. ຜູ້ຜະລິດອຸປະກອນຂອງທ່ານອາດຍັງຄົງສາມາດເຂົ້າເຖິງບັນທຶກ ຫຼື ຂໍ້ມູນບາງຢ່າງຢູ່ອຸປະກອນຂອງທ່ານໄດ້."
- "ບັນທຶກອຸປະກອນຈະບັນທຶກສິ່ງທີ່ເກີດຂຶ້ນຢູ່ອຸປະກອນຂອງທ່ານ. ແອັບສາມາດໃຊ້ບັນທຶກເຫຼົ່ານີ້ເພື່ອຊອກຫາ ແລະ ແກ້ໄຂບັນຫາໄດ້.\n\nບັນທຶກບາງຢ່າງອາດມີຂໍ້ມູນລະອຽດອ່ອນ, ດັ່ງນັ້ນໃຫ້ອະນຸຍາດສະເພາະແອັບທີ່ທ່ານເຊື່ອຖືໃຫ້ເຂົ້າເຖິງບັນທຶກອຸປະກອນທັງໝົດເທົ່ານັ້ນ. \n\nຫາກທ່ານບໍ່ອະນຸຍາດແອັບນີ້ໃຫ້ເຂົ້າເຖິງບັນທຶກອຸປະກອນທັງໝົດ, ມັນຈະຍັງຄົງສາມາດເຂົ້າເຖິງບັນທຶກຂອງຕົວມັນເອງໄດ້ຢູ່. ຜູ້ຜະລິດອຸປະກອນຂອງທ່ານອາດຍັງຄົງສາມາດເຂົ້າເຖິງບັນທຶກ ຫຼື ຂໍ້ມູນບາງຢ່າງຢູ່ອຸປະກອນຂອງທ່ານໄດ້.\n\nສຶກສາເພີ່ມເຕີມໄດ້ຢູ່ g.co/android/devicelogs."
+ "ບັນທຶກອຸປະກອນຈະບັນທຶກສິ່ງທີ່ເກີດຂຶ້ນຢູ່ອຸປະກອນຂອງທ່ານ. ແອັບສາມາດໃຊ້ບັນທຶກເຫຼົ່ານີ້ເພື່ອຊອກຫາ ແລະ ແກ້ໄຂບັນຫາໄດ້.\n\nບັນທຶກບາງຢ່າງອາດມີຂໍ້ມູນລະອຽດອ່ອນ, ດັ່ງນັ້ນໃຫ້ອະນຸຍາດສະເພາະແອັບທີ່ທ່ານເຊື່ອຖືໃຫ້ເຂົ້າເຖິງບັນທຶກອຸປະກອນທັງໝົດເທົ່ານັ້ນ. \n\nຫາກທ່ານບໍ່ອະນຸຍາດແອັບນີ້ໃຫ້ເຂົ້າເຖິງບັນທຶກອຸປະກອນທັງໝົດ, ມັນຈະຍັງຄົງສາມາດເຂົ້າເຖິງບັນທຶກຂອງຕົວມັນເອງໄດ້ຢູ່. ຜູ້ຜະລິດອຸປະກອນຂອງທ່ານອາດຍັງຄົງສາມາດເຂົ້າເຖິງບັນທຶກ ຫຼື ຂໍ້ມູນບາງຢ່າງຢູ່ອຸປະກອນຂອງທ່ານໄດ້. ສຶກສາເພີ່ມເຕີມ""ບໍ່ຕ້ອງສະແດງອີກ""%1$s ຕ້ອງການສະແດງ %2$s ສະໄລ້""ແກ້ໄຂ"
@@ -2060,7 +2053,8 @@
"ປ່ຽນໂໝດຫ້າມລົບກວນແລ້ວ""ແຕະເພື່ອກວດສອບວ່າມີຫຍັງຖືກບລັອກໄວ້ແດ່.""ກວດສອບການຕັ້ງຄ່າການແຈ້ງເຕືອນ"
- "ເລີ່ມຕົ້ນໃນ Android 13, ແອັບຕ່າງໆທີ່ທ່ານຕິດຕັ້ງຈະຕ້ອງໃຊ້ການອະນຸຍາດຂອງທ່ານເພື່ອສົ່ງການແຈ້ງເຕືອນ. ແຕະເພື່ອປ່ຽນການອະນຸຍາດນີ້ສຳລັບແອັບທີ່ມີຢູ່ກ່ອນແລ້ວ."
+
+ "ແຈ້ງເຕືອນຂ້ອຍພາຍຫຼັງ""ປິດໄວ້""ລະບົບ"
@@ -2288,6 +2282,5 @@
"ກວດສອບແອັບທີ່ເຄື່ອນໄຫວ""ບໍ່ສາມາດເຂົ້າເຖິງກ້ອງຖ່າຍຮູບຂອງໂທລະສັບຈາກ %1$s ຂອງທ່ານໄດ້""ບໍ່ສາມາດເຂົ້າເຖິງກ້ອງຖ່າຍຮູບຂອງແທັບເລັດຈາກ %1$s ຂອງທ່ານໄດ້"
- "ບໍ່ສາມາດເຂົ້າເຖິງເນື້ອຫານີ້ໄດ້ໃນຂະນະທີ່ຍັງສະຕຣີມຢູ່. ກະລຸນາລອງຢູ່ໂທລະສັບຂອງທ່ານແທນ."
- "ຄ່າເລີ່ມຕົ້ນຂອງລະບົບ"
+ "ພາສາລະບົບ"
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index dc8cee7d1c5f635e0f16c2595d443fa6ab2e4972..a308b208f88b8f71ba277e8b4344456ac09f6c90 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "KB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Be pavadinimo>""(Nėra telefono numerio)"
@@ -28,7 +33,6 @@
"Balso paštas""MSISDN1""Ryšio problema arba neteisingas MMI kodas."
- "Funkcija nepalaikoma.""Operacija ribojama tik naudojant fiksuoto rinkimo numerius.""Negalima pakeisti telefono skambučio peradresavimo nustatymų, kai naudojate tarptinklinį ryšį.""Paslauga įgalinta."
@@ -43,8 +47,8 @@
"Įvesti PIN kodai neatitinka.""Įveskite PIN kodą, sudarytą iš 4–8 skaičių.""Įveskite 8 skaitmenų ar ilgesnį PUK kodą."
- "Jūsų SIM kortelė yra užrakinta PUK kodu. Jei norite ją atrakinti, įveskite PUK kodą."
- "Kad panaikintumėte SIM kortelės blokavimą, pabandykite įvesti PUK2 kodą."
+ "Jūsų SIM kortelė yra užrakinta PUK kodu. Jei norite ją atrakinti, įveskite PUK kodą."
+ "Įveskite PUK2 kodą, kad panaikintumėte SIM kortelės blokavimą.""Nepavyko. Įgalinti SIM / RUIM užraktą."Liko %d bandymas. Tada SIM kortelė bus užrakinta.
@@ -303,12 +307,12 @@
"pasiekti kalendorių""SMS""siųsti ir peržiūrėti SMS pranešimus"
- "Failai"
- "pasiekti failus jūsų įrenginyje"
- "Muzika ir garso įrašai"
- "pasiekti muziką ir garso įrašus jūsų įrenginyje"
- "Nuotraukos ir vaizdo įrašai"
- "pasiekti nuotraukas ir vaizdo įrašus jūsų įrenginyje"
+ "Failai ir dokumentai"
+ "pasiekti failus ir dokumentus jūsų įrenginyje"
+ "Muzika ir kiti garso įrašai"
+ "pasiekti garso failus įrenginyje"
+ "Nuotraukos ir vaizdo įrašai"
+ "pasiekti vaizdo ir vaizdo įrašo failus įrenginyje""Mikrofonas""įrašyti garso įrašą""Fizinė veikla"
@@ -584,14 +588,13 @@
"Naudoti ekrano užraktą""Jei norite tęsti, įveskite ekrano užraktą""Tvirtai paspauskite jutiklį"
- "Nepavyko atpažinti kontrolinio kodo. Bandykite dar kartą."
+ "Nepavyko apdoroti piršto antspaudo. Bandykite dar kartą.""Nuvalykite kontrolinio kodo jutiklį ir bandykite dar kartą""Nuvalykite jutiklį ir bandykite dar kartą""Tvirtai paspauskite jutiklį""Per lėtai judinate pirštą. Bandykite dar kartą.""Pabandykite kitą kontrolinį kodą""Per šviesu"
- "Aptiktas maitinimo mygtuko paspaudimas""Pabandykite koreguoti""Kaskart šiek tiek pakeiskite piršto poziciją"
@@ -603,17 +606,16 @@
"Veidas autentifikuotas, paspauskite patvirtinimo mygtuką""Piršto antspaudo aparatinė įranga nepasiekiama.""Nepavyko nustatyti kontrolinio kodo"
- "Baigėsi kontrolinio kodo sąrankos skirtasis laikas. Bandykite dar kartą."
+ "Baigėsi piršto antspaudo nustatymo skirtasis laikas. Bandykite dar kartą.""Piršto antspaudo operacija atšaukta.""Piršto antspaudo operaciją atšaukė naudotojas."
- "Per daug bandymų. Naudokite ekrano užraktą."
- "Per daug bandymų. Naudokite ekrano užraktą."
- "Nepavyko apdoroti kontrolinio kodo. Bandykite dar kartą."
+ "Per daug bandymų. Vėliau bandykite dar kartą."
+ "Per daug bandymų. Piršto antspaudo jutiklis išjungtas."
+ "Bandykite dar kartą.""Neužregistruota jokių kontrolinių kodų.""Šiame įrenginyje nėra kontrolinio kodo jutiklio.""Jutiklis laikinai išjungtas.""Negalima naudoti kontrolinio kodo jutiklio. Apsilankykite pas taisymo paslaugos teikėją"
- "Paspaustas maitinimo mygtukas""%d pirštas""Naudoti kontrolinį kodą""Naudoti kontrolinį kodą arba ekrano užraktą"
@@ -634,33 +636,26 @@
"Atrakinimas kontroliniu kodu""Negalima naudoti kontrolinio kodo jutiklio""Apsilankykite pas taisymo paslaugos teikėją."
- "Nepavyko sukurti veido modelio. Band. dar kartą."
+ "Neužfiks. tikslūs veido duom. Bandykite dar kartą.""Per šviesu. Išbandykite mažesnį apšvietimą."
- "Nepakanka apšvietimo"
- "Laikykite telefoną toliau"
- "Laikykite telefoną arčiau"
- "Laikykite telefoną aukščiau"
- "Laikykite telefoną žemiau"
- "Laikykite telefoną kairiau"
- "Laikykite telefoną dešiniau"
+ "Per tamsu. Išbandykite šviesesnį apšvietimą."
+ "Laikykite telefoną toliau."
+ "Laikykite telefoną arčiau."
+ "Laikykite telefoną aukščiau."
+ "Laikykite telefoną žemiau."
+ "Pasukite telefoną kairėn."
+ "Pasukite telefoną dešinėn.""Žiūrėkite tiesiai į įrenginį."
- "Nepavyko pamatyti jūsų veido. Laikykite telefoną akių lygyje."
+ "Veidas turi būti prieš telefoną.""Įrenginys per daug judinamas. Nejudink. telefono.""Užregistruokite veidą iš naujo."
- "Veidas neatpažintas. Bandykite dar kartą."
- "Kaskart šiek tiek pakeiskite galvos poziciją"
- "Žiūrėkite tiesiai į telefoną"
- "Žiūrėkite tiesiai į telefoną"
- "Žiūrėkite tiesiai į telefoną"
+ "Nebegalima atpažinti veido. Bandykite dar kartą."
+ "Per daug panašu, pakeiskite veido išraišką."
+ "Nesukite tiek galvos."
+ "Pakreipkite galvą šiek tiek mažiau."
+ "Nesukite tiek galvos.""Patraukite viską, kas užstoja jūsų veidą.""Išvalykite ekrano viršų, įskaitant juodą juostą"
-
-
-
-
- "Nepavyko sukurti veido modelio. Band. dar kartą."
- "Aptikti akiniai nuo saulės. Visas veidas turi būti matomas."
- "Aptikta veido kaukė. Visas veidas turi būti matomas.""Nepavyko patv. veido. Aparatinė įranga negalima."
@@ -926,14 +921,14 @@
"Bandykite dar kartą""Atrakinę pasieksite visas funkcijas ir duomenis""Viršijote maksimalų atrakinimo pagal veidą bandymų skaičių"
- "Nėra SIM kortelės"
- "Planšetiniame kompiuteryje nėra SIM kortelės."
- "„Android TV“ įrenginyje nėra SIM kortelės."
- "Telefone nėra SIM kortelės."
- "Įdėkite SIM kortelę."
- "Trūksta SIM kortelės arba ji neskaitoma. Įdėkite SIM kortelę."
- "Nenaudojama SIM kortelė."
- "Jūsų SIM kortelė visam laikui išjungta.\n Susisiekite su belaidžio ryšio paslaugos teikėju, kad gautumėte naują SIM kortelę."
+ "Nėra SIM kortelės"
+ "Planšetiniame kompiuteryje nėra SIM kortelės."
+ "Nėra SIM kortelės „Android TV“ įrenginyje."
+ "Telefone nėra SIM kortelės."
+ "Įdėkite SIM kortelę."
+ "Trūksta SIM kortelės arba ji neskaitoma. Įdėkite SIM kortelę."
+ "Negalima naudoti SIM kortelės."
+ "SIM kortelė visam laikui neleidžiama.\n Jei norite gauti kitą SIM kortelę, susisiekite su belaidžio ryšio paslaugos teikėju.""Ankstesnis takelis""Kitas takelis""Pristabdyti"
@@ -943,10 +938,10 @@
"Sukti pirmyn""Tik pagalbos skambučiai""Tinklas užrakintas"
- "SIM kortelė užrakinta PUK kodu."
+ "SIM kortelė užrakinta PUK kodu.""Žr. naudotojo vadovą arba susisiekite su klientų priežiūros tarnyba."
- "SIM kortelė užrakinta."
- "Atrakinama SIM…"
+ "SIM kortelė užrakinta."
+ "Atrakinama SD kortelė...""Neteisingai apibrėžėte atrakinimo modelį %1$d k. \n\nBandykite dar kartą po %2$d sek.""Neteisingai įvedėte slaptažodį %1$d k. \n\nBandykite dar kartą po %2$d sek.""PIN kodą neteisingai įvedėte %1$d k. \n\nBandykite dar kartą po %2$d sek."
@@ -1248,9 +1243,10 @@
"Ruošiama „%1$s“.""Paleidžiamos programos.""Užbaigiamas paleidimas."
+ "Tęsti sąranką?""Paspaudėte maitinimo mygtuką, taip paprastai išjungiamas ekranas.\n\nNustatydami kontrolinį kodą, pabandykite jį švelniai paliesti."
- "Sąrankos užbaigimas išjungus ekraną"
- "Išjungti"
+ "Išjungti ekraną"
+ "Tęsti sąranką""Tęsti kontrolinio kodo patvirtinimą?""Paspaudėte maitinimo mygtuką, taip paprastai išjungiamas ekranas.\n\nNorėdami patvirtinti kontrolinį kodą, pabandykite jį švelniai paliesti.""Išjungti ekraną"
@@ -1329,10 +1325,10 @@
"Tai vėliau galėsite pakeisti skiltyje „Nustatymai“ > „Programos“""Visada leisti""Niekada neleisti"
- "SIM kortelė pašalinta"
- "Mobilusis tinklas bus nepasiekiamas, kol nepaleisite iš naujo įdėję tinkamą SIM kortelę."
+ "SIM kortelė pašalinta"
+ "Mobilusis tinklas bus nepasiekiamas, kol nepaleisite iš naujo įdėję tinkamą SIM kortelę.""Atlikta"
- "SIM kortelė pridėta"
+ "SIM kortelė pridėta""Jei norite pasiekti mobiliojo ryšio tinklą, reikia iš naujo paleisti įrenginį.""Paleisti iš naujo""Suaktyvinti mobiliojo ryšio paslaugą"
@@ -1403,16 +1399,16 @@
"Palieskite, kad nustatytumėte""Pasirinkite, kad nustatytumėte""Jums gali reikėti suformatuoti įrenginį iš naujo. Palieskite, kad pašalintumėte."
- "Nuotraukoms, vaizdo įrašams, muzikai ir kitam turiniui saugoti"
+ "Norint perkelti nuotraukas ir mediją""Naršykite medijos failus""Kilo problema dėl laikmenos (%s)""%s neveikia""Palieskite ir ištaisykite tai""%s sugadinta. Pasirinkite, kad pataisytumėte.""Jums gali reikėti suformatuoti įrenginį iš naujo. Palieskite, kad pašalintumėte."
- "Aptikta „%s“"
+ "Nepalaikoma saugykla (%s)""%s neveikia"
- "Palieskite, kad nustatytumėte."
+ "Šis įrenginys nepalaiko šios %s. Palieskite, kad nustatytumėte palaikomu formatu.""Pasirinkite, kad nustatytumėte %s palaikomu formatu.""Jums gali reikėti suformatuoti įrenginį iš naujo""%s netikėtai pašalinta"
@@ -1611,7 +1607,7 @@
"TV""Telefonas""Doko garsiakalbiai"
- "Išorinis įrenginys"
+ "HDMI""Ausinės""USB""Sistema"
@@ -1644,7 +1640,7 @@
"Dabar SIM neleidžiama. Jei norite tęsti, įveskite PUK kodą. Jei reikia išsamios informacijos, susisiekite su operatoriumi.""Įveskite pageidaujamą PIN kodą""Patvirtinkite pageidaujamą PIN kodą"
- "Atrakinama SIM…"
+ "Atrakinama SIM kortelė…""Netinkamas PIN kodas.""Įveskite PIN kodą, sudarytą iš 4–8 skaičių.""PUK kodą turi sudaryti 8 skaičiai."
@@ -1701,7 +1697,7 @@
"Išjungti spartųjį klavišą""Naudoti spartųjį klavišą""Spalvų inversija"
- "Spalvų koregavimas"
+ "Spalvų taisymas""Vienos rankos režimas""Itin blanku""Laikomi garsumo klavišai. „%1$s“ įjungta."
@@ -1925,7 +1921,6 @@
"Regiono nuostata""Įveskite kalbos pav.""Siūloma"
- "Siūloma""Visos kalbos""Visi regionai""Paieška"
@@ -1943,19 +1938,18 @@
"Kamera nepasiekiama""Tęsti telefone""Mikrofonas nepasiekiamas"
- "„Play“ parduotuvė nepasiekiama""„Android TV“ nustatymai nepasiekiami""Planšetinio kompiuterio nustatymai nepasiekiami""Telefono nustatymai nepasiekiami"
- "Šįkart nepavyksta pasiekti programos iš jūsų „%1$s“. Pabandykite naudoti „Android TV“ įrenginį."
- "Šįkart nepavyksta pasiekti programos iš jūsų „%1$s“. Pabandykite naudoti planšetinį kompiuterį."
- "Šįkart nepavyksta pasiekti programos iš jūsų „%1$s“. Pabandykite naudoti telefoną."
+ "Nepavyksta pasiekti programos iš jūsų „%1$s“. Pabandykite naudoti „Android TV“ įrenginį."
+ "Nepavyksta pasiekti programos iš jūsų „%1$s“. Pabandykite naudoti planšetinį kompiuterį."
+ "Nepavyksta pasiekti programos iš jūsų „%1$s“. Pabandykite naudoti telefoną."
+ "Šįkart nepavyksta pasiekti programos iš jūsų „%1$s“. Pabandykite naudoti „Android TV“ įrenginį."
+ "Šįkart nepavyksta pasiekti programos iš jūsų „%1$s“. Pabandykite naudoti planšetinį kompiuterį."
+ "Šįkart nepavyksta pasiekti programos iš jūsų „%1$s“. Pabandykite naudoti telefoną.""Ši programa prašo papildomų saugos funkcijų. Pabandykite naudoti „Android TV“ įrenginį.""Ši programa prašo papildomų saugos funkcijų. Pabandykite naudoti planšetinį kompiuterį.""Ši programa prašo papildomų saugos funkcijų. Pabandykite naudoti telefoną."
- "Nepavyksta pasiekti nuotolinio įrenginio iš jūsų „%1$s“. Pabandykite naudoti „Android TV“ įrenginį."
- "Nepavyksta pasiekti nuotolinio įrenginio iš jūsų „%1$s“. Pabandykite naudoti planšetinį kompiuterį."
- "Nepavyksta pasiekti nuotolinio įrenginio iš jūsų „%1$s“. Pabandykite naudoti telefoną.""Ši programa sukurta naudoti senesnės versijos sistemoje „Android“ ir gali tinkamai neveikti. Pabandykite patikrinti, ar yra naujinių, arba susisiekite su kūrėju.""Tikrinti, ar yra naujinių""Turite naujų pranešimų"
@@ -2048,8 +2042,7 @@
"Leisti „%s“ pasiekti visus įrenginio žurnalus?""Leisti vienkartinę prieigą""Neleisti"
- "Įrenginyje įrašoma, kas įvyksta jūsų įrenginyje. Programos gali naudoti šiuos žurnalus, kad surastų ir išspręstų problemas.\n\nKai kuriuose žurnaluose gali būti neskelbtinos informacijos, todėl visus įrenginio žurnalus leiskite pasiekti tik programoms, kuriomis pasitikite. \n\nJei neleisite šiai programai pasiekti visų įrenginio žurnalų, ji vis tiek galės pasiekti savo žurnalus. Įrenginio gamintojui vis tiek gali būti leidžiama pasiekti tam tikrus žurnalus ar informaciją jūsų įrenginyje."
- "Įrenginyje įrašoma, kas jame įvyksta. Programos gali naudoti šiuos žurnalus, kai reikia surasti ir išspręsti problemas.\n\nKai kuriuose žurnaluose gali būti neskelbtinos informacijos, todėl visus įrenginio žurnalus leiskite pasiekti tik programoms, kuriomis pasitikite. \n\nJei neleisite šiai programai pasiekti visų įrenginio žurnalų, ji vis tiek galės pasiekti savo žurnalus. Įrenginio gamintojui vis tiek gali būti leidžiama pasiekti tam tikrus žurnalus ar informaciją jūsų įrenginyje.\n\nSužinokite daugiau adresu g.co/android/devicelogs."
+ "Įrenginyje įrašoma, kas įvyksta jūsų įrenginyje. Programos gali naudoti šiuos žurnalus, kad surastų ir išspręstų problemas.\n\nKai kuriuose žurnaluose gali būti neskelbtinos informacijos, todėl visus įrenginio žurnalus leiskite pasiekti tik programoms, kuriomis pasitikite. \n\nJei neleisite šiai programai pasiekti visų įrenginio žurnalų, ji vis tiek galės pasiekti savo žurnalus. Įrenginio gamintojui vis tiek gali būti leidžiama pasiekti tam tikrus žurnalus ar informaciją jūsų įrenginyje. Sužinokite daugiau""Daugiau neberodyti""„%1$s“ nori rodyti „%2$s“ fragmentus""Redaguoti"
@@ -2062,7 +2055,8 @@
"Netrukdymo režimas pakeistas""Palieskite, kad patikrintumėte, kas blokuojama.""Peržiūrėkite pranešimų nustatymus"
- "Tryliktos ir naujesnių versijų „Android” jūsų įdiegtoms programoms reikia suteikti leidimą siųsti pranešimus. Palieskite, kad pakeistumėte šį leidimą esamoms programoms."
+
+ "Priminti vėliau""Atsisakyti""Sistema"
@@ -2290,6 +2284,5 @@
"Peržiūrėkite aktyvias programas""Nepavyko pasiekti telefono fotoaparato iš „%1$s“""Nepavyko pasiekti planšetinio kompiuterio fotoaparato iš „%1$s“"
- "Nepavyksta pasiekti perduodant srautu. Pabandykite naudoti telefoną."
- "Numatytoji sistemos vertė"
+ "Sistemos kalba"
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index dfc93ad0e7cfd7c2e402d4f766353790dd2cff5c..e1f7f7ca686b911c92631933e31cf236001f605f 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Bez nosaukuma>""(Nav tālruņa numura)"
@@ -28,7 +33,6 @@
"Balss pasts""MSISDN1""Savienojuma problēma vai nederīgs MMI kods."
- "Funkcija netiek atbalstīta.""Darbība ir atļauta tikai fiksēto numuru sastādīšanai.""Nevar mainīt zvanu pāradresēšanas iestatījumus tālrunī, kamēr izmantojat viesabonēšanu.""Pakalpojums tika iespējots."
@@ -43,8 +47,8 @@
"Ievadītie PIN neatbilst.""Ierakstiet PIN, kas sastāv no 4 līdz 8 cipariem.""Ierakstiet PUK kodu, kas sastāv no 8 vai vairāk cipariem."
- "SIM karte ir bloķēta ar PUK kodu. Ierakstiet PUK kodu, lai to atbloķētu."
- "Ierakstiet PUK2 kodu, lai atbloķētu SIM karti."
+ "SIM karte ir bloķēta ar PUK kodu. Ierakstiet PUK kodu, lai to atbloķētu."
+ "Ierakstiet PUK2 kodu, lai atbloķētu SIM karti.""Neizdevās. Iespējojiet SIM/RUIM bloķēšanu."Varat mēģināt vēl %d reizes. Pēdējā mēģinājuma kļūdas gadījumā SIM karte tiks bloķēta.
@@ -238,7 +242,7 @@
"Android TV opcijas""Tālruņa opcijas""Ekrāna bloķētājs"
- "Izslēgt"
+ "Izslēgt strāvas padevi""Barošana""Restartēt""Ārkārtas situācija"
@@ -302,12 +306,12 @@
"piekļūt jūsu kalendāram""Īsziņas""sūtīt un skatīt īsziņas"
- "Faili"
- "piekļūt failiem jūsu ierīcē"
- "Mūzika un audio"
- "piekļuve mūzikai un audio jūsu ierīcē"
- "Fotoattēli un videoklipi"
- "piekļuve fotoattēliem un videoklipiem jūsu ierīcē"
+ "Faili un dokumenti"
+ "piekļuve failiem un dokumentiem jūsu ierīcē"
+ "Mūzika un cits audio saturs"
+ "piekļūt audio failiem jūsu ierīcē"
+ "Fotoattēli un videoklipi"
+ "piekļūt attēlu un video failiem jūsu ierīcē""Mikrofons""ierakstīt audio""Fiziskās aktivitātes"
@@ -583,14 +587,13 @@
"Ekrāna bloķēšanas metodes izmantošana""Lai turpinātu, ievadiet ekrāna bloķēšanas informāciju""Stingri spiediet pirkstu pie sensora"
- "Nevar atpazīt pirksta nospiedumu. Mēģiniet vēlreiz."
+ "Nevarēja apstrādāt pirksta nospiedumu. Lūdzu, mēģiniet vēlreiz.""Notīriet pirkstu nospiedumu sensoru un mēģiniet vēlreiz""Notīriet sensoru un mēģiniet vēlreiz""Stingri spiediet pirkstu pie sensora""Pārāk lēna pirksta kustība. Lūdzu, mēģiniet vēlreiz.""Izmēģiniet citu pirksta nospiedumu""Pārāk spilgts"
- "Konstatēta barošanas pogas nospiešana""Mēģiniet mainīt pozīciju""Katru reizi mazliet mainiet pirksta pozīciju."
@@ -602,17 +605,16 @@
"Seja ir autentificēta. Nospiediet pogu Apstiprināt.""Nospieduma aparatūra nav pieejama.""Nevar iestatīt pirksta nospiedumu"
- "Iestatot pirksta nospiedumu, iestājās noildze. Mēģiniet vēlreiz."
+ "Pirkstu nospiedumu nolasīšanas aparatūras noildze. Mēģiniet vēlreiz.""Nospieduma darbība neizdevās.""Lietotājs atcēla pirksta nospieduma darbību."
- "Pārāk daudz mēģinājumu. Izmantojiet ekrāna bloķēšanu."
- "Pārāk daudz mēģinājumu. Izmantojiet ekrāna bloķēšanu."
- "Nevar apstrādāt pirksta nospiedumu. Mēģiniet vēlreiz."
+ "Pārāk daudz mēģinājumu. Vēlāk mēģiniet vēlreiz."
+ "Pārāk daudz mēģinājumu. Pirksta nospieduma sensors atspējots."
+ "Mēģiniet vēlreiz.""Nav reģistrēts neviens pirksta nospiedums.""Šajā ierīcē nav pirksta nospieduma sensora.""Sensors ir īslaicīgi atspējots.""Nevar izmantot pirksta nospieduma sensoru. Sazinieties ar remonta pakalpojumu sniedzēju."
- "Tika nospiesta barošanas poga""%d. pirksts""Pirksta nospieduma izmantošana""Pirksta nospieduma vai ekrāna bloķēšanas metodes izmantošana"
@@ -633,33 +635,26 @@
"Autorizācija ar pirksta nospiedumu""Nevar izmantot pirksta nospieduma sensoru""Sazinieties ar remonta pakalpojumu sniedzēju."
- "Nevar izveidot sejas modeli. Mēģiniet vēlreiz."
+ "Neizdevās tvert sejas datus. Mēģiniet vēlreiz.""Pārāk spilgts. Izmēģiniet maigāku apgaismojumu."
- "Nepietiekams apgaismojums"
- "Pārvietojiet tālruni tālāk."
- "Pārvietojiet tālruni tuvāk."
- "Paceliet tālruni augstāk."
- "Nolaidiet tālruni zemāk."
- "Pārvietojiet tālruni pa kreisi."
- "Pārvietojiet tālruni pa labi."
+ "Pārāk tumšs. Izmēģiniet spožāku apgaismojumu."
+ "Pārvietojiet tālruni tālāk."
+ "Pārvietojiet tālruni tuvāk."
+ "Paceliet tālruni augstāk."
+ "Nolaidiet tālruni zemāk"
+ "Pārvietojiet tālruni pa kreisi."
+ "Pārvietojiet tālruni pa labi.""Lūdzu, tiešāk skatieties uz savu ierīci."
- "Seja nav redzama. Turiet tālruni acu līmenī."
+ "Novietojiet savu seju tieši pretī tālrunim.""Pārāk daudz kustību. Nekustīgi turiet tālruni.""Lūdzu, atkārtoti reģistrējiet savu seju."
- "Nevar atpazīt seju. Mēģiniet vēlreiz."
- "Nedaudz mainiet galvas pozīciju."
- "Skatieties tieši uz tālruni"
- "Skatieties tieši uz tālruni"
- "Skatieties tieši uz tālruni"
+ "Seju vairs nevar atpazīt. Mēģiniet vēlreiz."
+ "Pārāk līdzīgi. Lūdzu, mainiet pozu."
+ "Pagrieziet galvu nedaudz mazāk."
+ "Nedaudz mazāk nolieciet galvu."
+ "Pagrieziet galvu nedaudz mazāk.""Noņemiet visu, kas aizsedz jūsu seju.""Notīriet ekrāna augšdaļu, tostarp melno joslu."
-
-
-
-
- "Nevar izveidot sejas modeli. Mēģiniet vēlreiz."
- "Konstatētas tumšas brilles. Sejai ir jābūt pilnībā redzamai."
- "Konstatēts sejas aizsegs. Sejai ir jābūt pilnībā redzamai.""Nevar verificēt seju. Aparatūra nav pieejama."
@@ -925,14 +920,14 @@
"Mēģināt vēlreiz""Atbloķēt visām funkcijām un datiem""Ir pārsniegts maksimālais Autorizācijas pēc sejas mēģinājumu skaits."
- "Nav SIM kartes"
- "Planšetdatorā nav SIM kartes."
- "Android TV ierīcē nav SIM kartes."
- "Tālrunī nav SIM kartes."
- "Pievienojiet SIM karti."
- "Nav SIM kartes, vai arī to nevar nolasīt. Pievienojiet SIM karti."
- "SIM karte nav izmantojama."
- "Jūsu SIM karte ir neatgriezeniski deaktivizēta.\n Sazinieties ar savu bezvadu pakalpojumu sniedzēju, lai iegūtu citu SIM karti."
+ "Nav SIM kartes"
+ "Planšetdatorā nav SIM kartes."
+ "Android TV ierīcē nav SIM kartes."
+ "Tālrunī nav SIM kartes."
+ "Ievietojiet SIM karti."
+ "Nav SIM kartes, vai arī to nevar nolasīt. Ievietojiet SIM karti."
+ "Nelietojama SIM karte."
+ "Jūsu SIM karte ir neatgriezeniski atspējota.\nSazinieties ar savu bezvadu pakalpojumu sniedzēju, lai iegūtu citu SIM karti.""Iepriekšējais ieraksts""Nākamais ieraksts""Pārtraukt"
@@ -942,10 +937,10 @@
"Ātri patīt""Tikai ārkārtas zvani""Tīkls ir bloķēts."
- "SIM karte ir bloķēta ar PUK kodu."
+ "SIM karte ir bloķēta ar PUK kodu.""Skatiet lietotāja rokasgrāmatu vai sazinieties ar klientu apkalpošanas dienestu."
- "SIM karte ir bloķēta."
- "Notiek SIM kartes atbloķēšana…"
+ "SIM karte ir bloķēta."
+ "Notiek SIM kartes atbloķēšana...""Atbloķēšanas kombinācija tika nepareizi uzzīmēta %1$d reizes.\n\nMēģiniet vēlreiz pēc %2$d sekundēm.""Jūs esat ievadījis nepareizu paroli %1$d reizes.\n\nMēģiniet vēlreiz pēc %2$d sekundēm.""Jūs esat ievadījis nepareizu PIN %1$d reizes.\n\nMēģiniet vēlreiz pēc %2$d sekundēm."
@@ -1247,9 +1242,10 @@
"Notiek lietotnes %1$s sagatavošana.""Notiek lietotņu palaišana.""Tiek pabeigta sāknēšana."
+ "Vai turpināt iestatīšanu?""Jūs nospiedāt barošanas pogu — tādējādi parasti tiek izslēgts ekrāns.\n\nMēģiniet viegli pieskarties, iestatot pirksta nospiedumu."
- "Lai beigtu iestatīt, izslēdziet ekrānu"
- "Izslēgt"
+ "Izslēgt ekrānu"
+ "Turpināt iestatīšanu""Vai apstiprināt pirksta nospiedumu?""Jūs nospiedāt barošanas pogu — tādējādi parasti tiek izslēgts ekrāns.\n\nMēģiniet viegli pieskarties, lai apstiprinātu pirksta nospiedumu.""Izslēgt ekrānu"
@@ -1328,10 +1324,10 @@
"Lai mainītu: Iestatījumi > Lietotnes""Vienmēr atļaut""Neatļaut nekad"
- "SIM karte ir izņemta"
- "Mobilais tīkls nebūs pieejams līdz brīdim, kad ierīce tiks restartēta ar derīgu SIM karti."
+ "SIM karte ir izņemta."
+ "Mobilais tīkls nebūs pieejams līdz brīdim, kad restartēsiet ierīci ar ievietotu derīgu SIM karti.""Gatavs"
- "SIM karte ir pievienota"
+ "SIM karte ir pievienota.""Ierīces restartēšana, lai piekļūtu mobilo sakaru tīklam.""Restartēt""Aktivizējiet mobilo ierīci."
@@ -1402,16 +1398,16 @@
"Pieskarieties, lai iestatītu.""Atlasiet, lai iestatītu.""Iespējams, jums būs atkārtoti jāformatē ierīce. Pieskarieties, lai izņemtu."
- "Fotoattēlu, videoklipu, mūzikas un cita satura glabāšanai"
+ "Fotoattēlu un satura pārsūtīšanai.""Pārlūkojiet multivides failus.""Problēma saistībā ar %s""%s nedarbojas.""Pieskarieties, lai novērstu problēmu.""%s ir bojāta. Atlasiet, lai labotu.""Iespējams, jums būs atkārtoti jāformatē ierīce. Pieskarieties, lai izņemtu."
- "atrasts: %s"
+ "Neatbalstīts datu nesējs (%s)""%s nedarbojas."
- "Pieskarieties, lai iestatītu"
+ "Šī ierīce neatbalsta datu nesēju %s. Pieskarieties, lai iestatītu to atbalstītā formātā.""Atlasiet, lai iestatītu atbalstītu formātu multivides krātuvei (%s).""Iespējams, jums būs atkārtoti jāformatē ierīce.""%s tika negaidīti izņemta"
@@ -1610,7 +1606,7 @@
"TV""Tālrunis""Doka skaļruņi"
- "Ārēja ierīce"
+ "HDMI""Austiņas""USB""Sistēma"
@@ -1643,7 +1639,7 @@
"SIM karte ir atspējota. Lai turpinātu, ievadiet PUK kodu. Lai iegūtu detalizētu informāciju, sazinieties ar mobilo sakaru operatoru.""Ievadiet vēlamo PIN kodu.""Apstipriniet vēlamo PIN."
- "Notiek SIM kartes atbloķēšana…"
+ "Notiek SIM kartes atbloķēšana...""PIN kods nav pareizs.""Ievadiet PIN, kas sastāv no 4 līdz 8 cipariem.""PUK kodā ir jābūt 8 cipariem."
@@ -1675,10 +1671,10 @@
"Vai izmantot pieejamības saīsni?""Kad īsinājumtaustiņš ir ieslēgts, nospiežot abas skaļuma pogas un 3 sekundes turot tās, tiks aktivizēta pieejamības funkcija.""Vai ieslēgt pieejamības funkciju saīsni?"
- "Turot nospiestas abas skaļuma pogas dažas sekundes, tiek ieslēgtas pieejamības funkcijas. Tas var mainīt ierīces darbību.\n\nPašreizējās funkcijas:\n%1$s\nAtlasītās funkcijas varat mainīt šeit: Iestatījumi > Pieejamība."
+ "Turot nospiestus abus skaļuma taustiņus dažas sekundes, tiek ieslēgtas pieejamības funkcijas. Tas var mainīt ierīces darbību.\n\nPašreizējās funkcijas:\n%1$s\nAtlasītās funkcijas varat mainīt šeit: Iestatījumi > Pieejamība."" • %1$s\n""Vai ieslēgt %1$s saīsni?"
- "Turot nospiestas abas skaļuma pogas dažas sekundes, tiek ieslēgta pieejamības funkcija %1$s. Tas var mainīt ierīces darbību.\n\nŠo saīsni uz citu funkciju varat mainīt šeit: Iestatījumi > Pieejamība."
+ "Turot nospiestus abus skaļuma taustiņus dažas sekundes, tiek ieslēgta pieejamības funkcija %1$s. Tas var mainīt ierīces darbību.\n\nŠo saīsni uz citu funkciju varat mainīt šeit: Iestatījumi > Pieejamība.""Ieslēgt""Neieslēgt""IESLĒGTA"
@@ -1705,7 +1701,7 @@
"Papildu aptumšošana""Turējāt nospiestas skaļuma pogas. Pakalpojums %1$s tika ieslēgts.""Turējāt nospiestas skaļuma pogas. Pakalpojums %1$s tika izslēgts."
- "Lai izmantotu pakalpojumu %1$s, nospiediet abus skaļuma pogas un turiet tos trīs sekundes."
+ "Lai izmantotu pakalpojumu %1$s, nospiediet abus skaļuma taustiņus un turiet tos trīs sekundes.""Izvēlieties funkciju, ko izmantot, kad pieskaraties pieejamības pogai.""Izvēlieties funkciju, ko izmantot ar pieejamības žestu (vilkšana ar diviem pirkstiem augšup no ekrāna apakšdaļas).""Izvēlieties funkciju, ko izmantot ar pieejamības žestu (vilkšana ar trīs pirkstiem augšup no ekrāna apakšdaļas)."
@@ -1924,7 +1920,6 @@
"Reģiona preference""Ierakstiet valodas nosaukumu""Ieteiktās"
- "Ieteiktie""Visas valodas""Visi reģioni""Meklēt"
@@ -1942,19 +1937,18 @@
"Kamera nav pieejama""Turpiniet tālrunī""Mikrofons nav pieejams"
- "Play veikals nav pieejams""Android TV iestatījumi nav pieejami""Planšetdatora iestatījumi nav pieejami""Tālruņa iestatījumi nav pieejami"
- "Šajā ierīcē (%1$s) pašlaik nevar piekļūt šai lietotnei. Mēģiniet tai piekļūt savā Android TV ierīcē."
- "Šajā ierīcē (%1$s) pašlaik nevar piekļūt šai lietotnei. Mēģiniet tai piekļūt savā planšetdatorā."
- "Šajā ierīcē (%1$s) pašlaik nevar piekļūt šai lietotnei. Mēģiniet tai piekļūt savā tālrunī."
+ "Šajā ierīcē (%1$s) nevar piekļūt šai lietotnei. Mēģiniet tai piekļūt savā Android TV ierīcē."
+ "Šajā ierīcē (%1$s) nevar piekļūt šai lietotnei. Mēģiniet tai piekļūt savā planšetdatorā."
+ "Šajā ierīcē (%1$s) nevar piekļūt šai lietotnei. Mēģiniet tai piekļūt savā tālrunī."
+ "Šajā ierīcē (%1$s) pašlaik nevar piekļūt šai lietotnei. Mēģiniet tai piekļūt savā Android TV ierīcē."
+ "Šajā ierīcē (%1$s) pašlaik nevar piekļūt šai lietotnei. Mēģiniet tai piekļūt savā planšetdatorā."
+ "Šajā ierīcē (%1$s) pašlaik nevar piekļūt šai lietotnei. Mēģiniet tai piekļūt savā tālrunī.""Šī lietotne pieprasa papildu drošību. Mēģiniet tai piekļūt savā Android TV ierīcē.""Šī lietotne pieprasa papildu drošību. Mēģiniet tai piekļūt savā planšetdatorā.""Šī lietotne pieprasa papildu drošību. Mēģiniet tai piekļūt savā tālrunī."
- "Šajā ierīcē (%1$s) nevar piekļūt tālvadībai. Mēģiniet tai piekļūt savā Android TV ierīcē."
- "Šajā ierīcē (%1$s) nevar piekļūt tālvadībai. Mēģiniet tai piekļūt savā planšetdatorā."
- "Ierīcē %1$s nevar piekļūt šai funkcijai. Mēģiniet tai piekļūt tālrunī.""Šī lietotne tika izstrādāta vecākai Android versijai un var nedarboties pareizi. Meklējiet atjauninājumus vai sazinieties ar izstrādātāju.""Meklēt atjauninājumu""Jums ir jaunas īsziņas."
@@ -2047,8 +2041,7 @@
"Vai atļaujat lietotnei %s piekļūt visiem ierīces žurnāliem?""Atļaut vienreizēju piekļuvi""Neatļaut"
- "Ierīces žurnālos tiek reģistrēti ierīces procesi un notikumi. Lietotņu izstrādātāji var izmantot šos žurnālus, lai atrastu un izlabotu problēmas savās lietotnēs.\n\nDažos žurnālos var būt ietverta sensitīva informācija, tāpēc atļaujiet tikai uzticamām lietotnēm piekļūt visiem ierīces žurnāliem. \n\nJa neatļausiet šai lietotnei piekļūt visiem ierīces žurnāliem, lietotnes izstrādātājs joprojām varēs piekļūt pašas lietotnes žurnāliem. Iespējams, ierīces ražotājs joprojām varēs piekļūt noteiktiem žurnāliem vai informācijai jūsu ierīcē."
- "Ierīces žurnālos tiek reģistrēti ierīces procesi un notikumi. Lietotņu izstrādātāji var izmantot šos žurnālus, lai atrastu un izlabotu problēmas savās lietotnēs.\n\nDažos žurnālos var būt ietverta sensitīva informācija, tāpēc atļaujiet tikai uzticamām lietotnēm piekļūt visiem ierīces žurnāliem. \n\nJa neatļausiet šai lietotnei piekļūt visiem ierīces žurnāliem, lietotnes izstrādātājs joprojām varēs piekļūt pašas lietotnes žurnāliem. Iespējams, ierīces ražotājs joprojām varēs piekļūt noteiktiem žurnāliem vai informācijai jūsu ierīcē.\n\nŠeit varat uzzināt vairāk: g.co/android/devicelogs"
+ "Ierīces žurnālos tiek reģistrēti ierīces procesi un notikumi. Lietotņu izstrādātāji var izmantot šos žurnālus, lai atrastu un novērstu problēmas savās lietotnēs.\n\nDažos žurnālos var būt ietverta sensitīva informācija, tāpēc atļaujiet tikai uzticamām lietotnēm piekļūt visiem ierīces žurnāliem. \n\nJa neatļausiet šai lietotnei piekļūt visiem ierīces žurnāliem, lietotnes izstrādātājs joprojām varēs piekļūt pašas lietotnes žurnāliem. Jūsu ierīces ražotājs, iespējams, joprojām varēs piekļūt noteiktiem žurnāliem vai informācijai jūsu ierīcē. Uzziniet vairāk.""Vairs nerādīt""Lietotne %1$s vēlas rādīt lietotnes %2$s sadaļas""Rediģēt"
@@ -2061,7 +2054,8 @@
"Režīms “Netraucēt” ir mainīts""Pieskarieties, lai uzzinātu, kas tiek bloķēts.""Pārskatīt paziņojumu iestatījumus"
- "Operētājsistēmā Android 13 un jaunākās versijās jūsu instalētajām lietotnēm ir nepieciešama atļauja sūtīt paziņojumus. Pieskarieties, lai mainītu šo atļauju esošajām lietotnēm."
+
+ "Atgādināt vēlāk""Noraidīt""Sistēma"
@@ -2289,6 +2283,5 @@
"Pārbaudiet aktīvās lietotnes""Nevar piekļūt tālruņa kamerai no jūsu ierīces (%1$s).""Nevar piekļūt planšetdatora kamerai no jūsu ierīces (%1$s)."
- "Straumēšanas laikā nevar piekļūt šim saturam. Mēģiniet tam piekļūt savā tālrunī."
- "Sistēmas noklusējums"
+ "Sistēmas valoda"
diff --git a/core/res/res/values-mcc334-mnc020-pa/strings.xml b/core/res/res/values-mcc334-mnc020-pa/strings.xml
index 23f77d88ab728cad05ac71ffe2e4d14ab93bf377..3cf6bc88e70e442cf8fce40137b3c3c0d7983b9a 100644
--- a/core/res/res/values-mcc334-mnc020-pa/strings.xml
+++ b/core/res/res/values-mcc334-mnc020-pa/strings.xml
@@ -21,6 +21,6 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"ਪ੍ਰਮਾਣੀਕਰਨ ਅਸਫਲ -29-"
- "ਸੇਵਾ ਨੂੰ ਸਬਸਕ੍ਰਾਈਬ ਨਹੀਂ ਕੀਤਾ -33-"
+ "ਸੇਵਾ ਦੀ ਗਾਹਕੀ ਨਹੀਂ ਲਈ -33-""ਕਿਸੇ ਵੀ APN ਲਈ ਇੱਕ ਤੋਂ ਵੱਧ PDN ਕਨੈਕਸ਼ਨਾਂ ਦੀ ਆਗਿਆ ਨਹੀਂ ਹੈ -55-"
diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml
index b8517a8f027c4103918d86c6e8dd6273448d3bdf..07702da4daf639a85a902e04ff458d0c1ed66bcc 100644
--- a/core/res/res/values-mk/strings.xml
+++ b/core/res/res/values-mk/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "KB"
+ "MB"
+ "GB"
+ "ТБ"
+ "ПБ""%1$s%2$s""<Без наслов>""(Нема телефонски број)"
@@ -28,7 +33,6 @@
"Говорна пошта""MSISDN1""Проблем со поврзување или неважечки MMI код."
- "Функцијата не е поддржана.""Операцијата е ограничена на бирање само фиксни броеви.""Не може да се сменат поставките за проследување повик од телефонот додека сте во роаминг.""Услугата беше овозможена."
@@ -43,8 +47,8 @@
"Впишаните PIN-броеви не се совпаѓаат.""Внеси PIN од 4 до 8 броеви.""Внеси ПУК од 8 броеви или повеќе."
- "Вашата SIM картичка е заклучена со PUK-код. Внесете го PUK-код за да се отклучи."
- "Напишете го PUK2-кодот за да ја одблокирате SIM-картичката."
+ "Вашата SIM картичка е заклучена со ПУК код. Внесете го ПУК кодот за да се отклучи."
+ "Внесете го ПУК2 кодот за да се одблокира SIM картичката.""Неуспешно, овозможи заклучување на SIM/RUIM."Ви преостануваат уште %d обид пред SIM-картичката да се заклучи.
@@ -301,12 +305,12 @@
"пристапува до календарот""SMS""испраќа и прикажува SMS-пораки"
- "Датотеки"
- "да пристапува до датотеки на вашиот уред"
- "Музика и аудио"
- "пристапувајте до музика и аудио на вашиот уред"
- "Фотографии и видеа"
- "пристапувајте до фотографии и видеа на вашиот уред"
+ "Датотеки и документи"
+ "да пристапува до датотеки и документи на уредот"
+ "Музика и друго аудио"
+ "да пристапува до аудиодатотеки на вашиот уред"
+ "Фотографии и видеа"
+ "да пристапува до слики и видеодатотеки на вашиот уред""Микрофон""снима аудио""Физичка активност"
@@ -323,20 +327,20 @@
"пристапува до податоците од сензорите за виталните знаци""Известувања""да прикажува известувања"
- "да ги вчитува содржините од прозорците"
- "да ги проверува содржините од прозорецот што го користите"
- "да вклучи „Истражувај со допир“"
- "допрените ставки ќе се изговараат наглас и екранот ќе може да се истражува со движења"
- "да го следи текстот што го пишувате"
- "вклучително и лични податоци како што се броеви на кредитни картички и лозинки"
- "да го контролира зголемувањето на екранот"
- "да го контролира нивото на зумирање и позиционирањето на екранот"
+ "Преземе содржина на прозорец"
+ "Ја следи содржината на прозорецот со кој се комуницира."
+ "Вклучи „Истражувај со допир“"
+ "Допрените ставки ќе се изговорат на глас и екранот може да се истражува со движења."
+ "Го следи напишаниот текст"
+ "Опфаќа лични податоци како што се броеви на кредитни картички и лозинки."
+ "Го контролира зголемувањето на екранот"
+ "Го контролира нивото на зумирање и позиционирање на екранот.""Користете движења""Може да допрете, повлечете, штипнете и да користите други движења.""Движења за отпечатоци""Може да сними движења што се направени на сензорот за отпечатоци на уредот.""Зачувување слика од екранот"
- "Може да зачува слика од екранот."
+ "Може да направи слика од екранот.""оневозможи или измени статусна лента""Дозволува апликацијата да ја оневозможи статусната лента или да додава или отстранува системски икони.""да стане статусна лента"
@@ -345,10 +349,10 @@
"Дозволува апликацијата да ја прошири или собере статусната лента.""да прикажува известувања како активности на цел екран на заклучен уред""Дозволува апликацијата да прикажува известувања како активности на цел екран на заклучен уред"
- "инсталирање кратенки"
- "Овозможува апликацијата да додава кратенки на почетниот екран без интервенција на корисникот."
+ "инсталирај кратенки"
+ "Овозможува апликацијата да додава кратенки до почетниот екран без интервенција на корисникот.""деинсталирај кратенки"
- "Овозможува апликацијата да отстранува кратенки од почетниот екран без интервенција на корисникот."
+ "Овозможува апликацијата да отстранува кратенки до почетниот екран без интервенција на корисникот.""пренасочи појдовни повици""Дозволува апликацијата да го види бројот што се повикува за време на појдовен повик, со опција да го пренасочи повикот кон друг број или да го прекине повикот.""одговара телефонски повици"
@@ -582,14 +586,13 @@
"Користи заклучување екран""Внесете го заклучувањето на екранот за да продолжите""Цврсто притиснете на сензорот"
- "Не се препознава отпечатокот. Обидете се повторно."
+ "Отпечатокот не може да се обработи. Обидете се повторно.""Исчистете го сензорот за отпечатоци и обидете се повторно""Исчистете го сензорот и обидете се повторно""Цврсто притиснете на сензорот""Прстот се движеше премногу бавно. Обидете се повторно.""Пробајте со друг отпечаток""Премногу светло"
- "Откриено е притискање на копчето за вклучување""Пробајте да го приспособите прстот""Менувајте ја положбата на прстот по малку секој пат"
@@ -601,17 +604,16 @@
"Лицето е проверено, притиснете го копчето „Потврди“""Хардверот за отпечатоци не е достапен.""Не може да се постави отпечаток"
- "Времето за поставување отпечаток истече. Обидете се повторно."
+ "Се достигна времето на истекување на отпечатокот. Обидете се повторно.""Операцијата со отпечаток се откажа.""Корисникот ја откажа потврдата со отпечаток."
- "Премногу обиди. Користете заклучување екран."
- "Премногу обиди. Користете заклучување екран."
- "Не може да се обработи отпечатокот од прст. Обидете се повторно."
+ "Премногу обиди. Обидете се повторно подоцна."
+ "Премногу обиди. Сензорот за отпечатоци е оневозможен."
+ "Обидете се повторно.""Не се запишани отпечатоци.""Уредов нема сензор за отпечатоци.""Сензорот е привремено оневозможен.""Не може да се користи сензорот за отпечатоци. Однесете го на поправка"
- "Притиснато е копчето за вклучување""Прст %d""Користи отпечаток""Користи отпечаток или заклучување екран"
@@ -632,33 +634,26 @@
"Отклучување со отпечаток на прст""Не може да се користи сензорот за отпечатоци""Однесете го на поправка."
- "Не може да создаде модел на лик. Обидете се пак."
+ "Не се сними прецизна слика. Обидете се повторно.""Премногу светла. Пробајте со послабо осветлување."
- "Нема доволно светлина"
- "Оддалечете го телефонот"
- "Доближете го телефонот"
- "Кренете го телефонот погоре"
- "Спуштете го телефонот подолу"
- "Поместете го телефонот налево"
- "Поместете го телефонот надесно"
+ "Премногу темна. Пробајте со посилно осветлување."
+ "Оддалечете го телефонот."
+ "Доближете го телефонот."
+ "Поткренете го телефонот."
+ "Снижете го телефонот."
+ "Поместете го телефонот налево."
+ "Поместете го телефонот надесно.""Погледнете подиректно во уредот."
- "Не ви се гледа лицето. Држете го телефонот во висина на очите."
+ "Наместете го лицето директно пред телефонот.""Премногу движење. Држете го телефонот стабилно.""Повторно регистрирајте го лицето."
- "Не се препознава ликот. Обидете се пак."
- "Малку сменете ја положбата на главата"
- "Гледајте подиректно во телефонот"
- "Гледајте подиректно во телефонот"
- "Гледајте подиректно во телефонот"
+ "Ликот не се препознава. Обидете се повторно."
+ "Премногу слично, сменете ја позата."
+ "Не вртете ја главата толку многу."
+ "Не навалувајте ја главата толку многу."
+ "Не вртете ја главата толку многу.""Отстранете ги работите што ви го покриваат лицето.""Исчистете го врвот на екранот, вклучувајќи ја црната лента"
-
-
-
-
- "Не може да создаде модел на лик. Обидете се пак."
- "Носите темни очила. Лицето мора да ви се гледа целосно."
- "Лицето е покриено. Лицето мора да ви се гледа целосно.""Ликот не може да се потврди. Хардвер - недостапен."
@@ -924,14 +919,14 @@
"Обидете се повторно""Отклучи за сите функции и податоци""Максималниот број обиди на отклучување со лик е надминат"
- "Нема SIM-картичка"
- "Нема SIM-картичка во таблетот."
- "Нема SIM-картичка во вашиот уред со Android TV."
- "Нема SIM-картичка во телефонот."
- "Додајте SIM-картичка."
- "Нема SIM-картичка или не може да се прочита. Додајте SIM-картичка."
- "SIM-картичката е неупотреблива."
- "Вашата SIM-картичка е трајно деактивирана.\n Контактирајте со давателот на услуги за безжична мрежа за друга SIM-картичка."
+ "Нема SIM картичка"
+ "Во таблетот нема SIM картичка."
+ "Нема SIM-картичка во вашиот уред Android TV."
+ "Во телефонот нема SIM картичка."
+ "Вметнете SIM-картичка."
+ "Нема SIM-картичка или не може да се прочита. Вметнете SIM-картичка."
+ "Неупотреблива SIM картичка."
+ "Вашата SIM-картичка е трајно оневозможена.\nКонтактирајте со давателот на услуги за безжична мрежа за друга SIM-картичка.""Претходна песна""Следна песна""Пауза"
@@ -939,12 +934,12 @@
"Запри""Премотај назад""Брзо премотај напред"
- "Само итни повици"
+ "Само повици за итни случаи""Мрежата е заклучена"
- "SIM-картичката е заклучена со PUK-код."
+ "SIM картичката е заклучена со ПУК код.""Погледнете го Упатството за корисници или контактирајте со Грижа за корисници."
- "SIM-картичката е заклучена."
- "Се отклучува SIM-картичката…"
+ "SIM картичката е заклучена."
+ "SIM картичката се отклучува...""Погрешно сте ја употребиле вашата шема за отклучување %1$d пати. \n\nОбидете се повторно за %2$d секунди.""Погрешно сте ја впишале вашата лозинка %1$d пати. \n\nОбидете се повторно за %2$d секунди.""Погрешно сте го впишале вашиот PIN %1$d пати. \n\nОбидете се повторно за %2$d секунди."
@@ -1246,9 +1241,10 @@
"Се подготвува %1$s.""Се стартуваат апликациите.""Подигањето завршува."
+ "Дали да продолжи поставувањето?""Го притиснавте копчето за вклучување — така обично се исклучува екранот.\n\nДопрете лесно додека го поставувате отпечатокот."
- "За да завршите со поставувањето, исклучете го екранот."
- "Исклучи"
+ "Исклучи го екранот"
+ "Продолжи""Да продолжи потврдувањето на отпечаток?""Го притиснавте копчето за вклучување — така обично се исклучува екранот.\n\nДопрете лесно за да го потврдите отпечатокот.""Исклучи го екранот"
@@ -1327,10 +1323,10 @@
"Може да го променш ова подоцна во Поставувања > Апликации""Секогаш дозволувај""Никогаш не дозволувај"
- "SIM-картичката е отстранета"
- "Мобилната мрежа ќе биде недостапна сѐ додека не ја рестартирате со важечка SIM картичка."
+ "SIM картичката е отстранета"
+ "Мобилната мрежа ќе биде недостапна додека се рестартира со вметната важечка SIM картичка.""Готово"
- "Додадена е SIM-картичка"
+ "Додадена е SIM картичка""Рестартирај го својот уред за да пристапиш на мобилната мрежа.""Рестартирај""Активирајте мобилна услуга"
@@ -1401,16 +1397,16 @@
"Допрете за поставување""Изберете за поставување""Можеби ќе треба да го преформатирате уредот. Допрете за отстранување."
- "За складирање фотографии, видеа, музика и друго"
+ "За пренесување фотографии и аудио/видео содржини""Прелистајте ги датотеките на надворешниот уред""Проблем со %s""%s не работи""Допрете за да го поправите ова""%s е оштетена. Изберете за поправање.""Можеби ќе треба да го преформатирате уредот. Допрете за отстранување."
- "Уредот откри %s"
+ "Неподдржана %s""%s не работи"
- "Допрете за поставување."
+ "Уредот не ја поддржува оваа %s. Допрете за поставување во поддржан формат.""Допрете за поставување на %s во поддржан формат.""Можеби ќе треба да го преформатирате уредот""%s неочекувано е отстранета"
@@ -1563,8 +1559,8 @@
"%1$s, %2$s""%1$s, %2$s, %3$s""Внатрешен споделен капацитет"
- "SD-картичка"
- "%s SD-картичка"
+ "СД картичка"
+ "%s СД-картичка""USB-меморија""%s USB-меморија""USB меморија"
@@ -1609,7 +1605,7 @@
"Телевизор""Телефон""Приклучи звучници"
- "Надворешен уред"
+ "HDMI""Слушалки""USB""Систем"
@@ -1642,7 +1638,7 @@
"SIM картичката е сега оневозможена. Внесете ПУК код за да продолжите. Контактирајте го операторот за детали.""Внеси посакуван PIN код""Потврди го саканиот PIN код"
- "Се отклучува SIM-картичката…"
+ "SIM картичката се отклучува...""Погрешен PIN код.""Внесете PIN кој содржи 4-8 броеви.""ПУК кодот треба да има 8 броеви."
@@ -1848,7 +1844,7 @@
"Трета деловна %1$s""Побарај PIN пред откачување""Побарај шема за откл. пред откачување"
- "Побарај лозинка пред откачување"
+ "Прашај за лозинка пред откачување""Инсталирано од администраторот""Ажурирано од администраторот""Избришано од администраторот"
@@ -1923,7 +1919,6 @@
"Претпочитувања за регион""Внесете име на јазик""Предложени"
- "Предложени""Сите јазици""Сите региони""Пребарај"
@@ -1941,19 +1936,18 @@
"Камерата е недостапна""Продолжете на телефонот""Микрофонот не е достапен"
- "Play Store не е достапна""Поставките за Android TV не се достапни""Поставките за таблетот не се достапни""Поставките за телефонот не се достапни"
- "Ова не може да се отвори на %1$s во моментов. Пробајте на вашиот Android TV како алтернатива."
- "Ова не може да се отвори на %1$s во моментов. Пробајте на вашиот таблет како алтернатива."
- "Ова не може да се отвори на %1$s во моментов. Пробајте на вашиот телефон како алтернатива."
+ "Ова не може да се отвори на %1$s. Пробајте на вашиот Android TV како алтернатива."
+ "Ова не може да се отвори на %1$s. Пробајте на вашиот таблет како алтернатива."
+ "Ова не може да се отвори на %1$s. Пробајте на вашиот телефон како алтернатива."
+ "Ова не може да се отвори на %1$s во моментов. Пробајте на вашиот Android TV како алтернатива."
+ "Ова не може да се отвори на %1$s во моментов. Пробајте на вашиот таблет како алтернатива."
+ "Ова не може да се отвори на %1$s во моментов. Пробајте на вашиот телефон како алтернатива.""Апликацијава бара дополнителна безбедност. Пробајте на вашиот Android TV како алтернатива.""Апликацијава бара дополнителна безбедност. Пробајте на вашиот таблет како алтернатива.""Апликацијава бара дополнителна безбедност. Пробајте на вашиот телефон како алтернатива."
- "Ова не може да се отвори на %1$s. Пробајте на вашиот Android TV како алтернатива."
- "Ова не може да се отвори на %1$s. Пробајте на вашиот таблет како алтернатива."
- "Ова не може да се отвори на %1$s. Пробајте на вашиот телефон како алтернатива.""Апликацијава е создадена за постара верзија на Android и може да не функционира правилно. Проверете за ажурирања или контактирајте со програмерот.""Проверка за ажурирање""Имате нови пораки"
@@ -2046,8 +2040,7 @@
"Да се дозволи %s да пристапува до целата евиденција на уредот?""Дозволи еднократен пристап""Не дозволувај"
- "Дневниците за евиденција на уредот снимаат што се случува на вашиот уред. Апликациите може да ги користат овие дневници за евиденција за да наоѓаат и поправаат проблеми.\n\nНекои дневници за евиденција може да содржат чувствителни податоци, па затоа дозволете им пристап до сите дневници за евиденција на уредот само на апликациите во кои имате доверба. \n\nАко не ѝ дозволите на апликацијава да пристапува до сите дневници за евиденција на уредот, таа сепак ќе може да пристапува до сопствените дневници за евиденција. Производителот на вашиот уред можеби сепак ќе може да пристапува до некои дневници за евиденција или податоци на уредот."
- "Дневниците за евиденција на уредот снимаат што се случува на вашиот уред. Апликациите може да ги користат овие дневници за евиденција за да наоѓаат и поправаат проблеми.\n\nНекои дневници за евиденција може да содржат чувствителни податоци, па затоа дозволете им пристап до сите дневници за евиденција на уредот само на апликациите во кои имате доверба. \n\nАко не ѝ дозволите на апликацијава да пристапува до сите дневници за евиденција на уредот, таа сепак ќе може да пристапува до сопствените дневници за евиденција. Производителот на вашиот уред можеби сепак ќе може да пристапува до некои дневници за евиденција или податоци на уредот.\n\nДознајте повеќе на g.co/android/devicelogs."
+ "Евиденцијата на уредот снима што се случува со вашиот уред. Апликациите можат да ја користат евиденцијата за да наоѓаат и поправаат проблеми.\n\nНекоја евиденција може да содржи чувствителни податоци, па затоа дозволувајте само апликации на кои им верувате да пристапуваат до целата евиденција на уредот. \n\nАко не ѝ дозволите на апликацијава да пристапува до сите евиденции на уредот, сепак ќе може да пристапува до сопствената евиденција. Производителот на вашиот уред можеби сепак ќе може да пристапува до некои евиденции или податоци на уредот. Дознајте повеќе""Не прикажувај повторно""%1$s сака да прикажува делови од %2$s""Измени"
@@ -2060,7 +2053,8 @@
"Поставките за „Не вознемирувај“ се изменија""Допрете за да проверите што е блокирано.""Прегледајте ги поставките за известувања"
- "Почнувајќи од Android 13, на апликациите што ги инсталирате им е потребна ваша дозвола за испраќање известувања. Допрете за да ја промените оваа дозвола за постојни апликации."
+
+ "Потсети ме подоцна""Отфрли""Систем"
@@ -2140,7 +2134,7 @@
"За работа""Личен приказ""Работен приказ"
- "Блокирано од IT-администраторот"
+ "Блокирано од вашиот IT-администратор""Овие содржини не може да се споделуваат со работни апликации""Овие содржини не може да се отвораат со работни апликации""Овие содржини не може да се споделуваат со лични апликации"
@@ -2288,6 +2282,5 @@
"Проверете ги активните апликации""Не може да се пристапи до камерата на вашиот телефон од %1$s""Не може да се пристапи до камерата на вашиот таблет од %1$s"
- "До ова не може да се пристапи при стриминг. Наместо тоа, пробајте на вашиот телефон."
- "Стандардно за системот"
+ "Јазик на системот"
diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml
index fab71675c3fb23a42268c1985cc12a6db4f5331b..1651adb2ab438c2b4e339e328bfd14f993a46adb 100644
--- a/core/res/res/values-ml/strings.xml
+++ b/core/res/res/values-ml/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<ശീർഷകമില്ലാത്ത>""(ഫോൺ നമ്പറില്ല)"
@@ -28,7 +33,6 @@
"വോയ്സ് മെയില്""MSISDN1""കണക്ഷൻ പ്രശ്നം അല്ലെങ്കിൽ MMI കോഡ് അസാധുവാണ്."
- "ഫീച്ചർ പിന്തുണയ്ക്കുന്നില്ല.""നിശ്ചയിച്ചുറപ്പിച്ച ഡയൽ ചെയ്യൽ നമ്പറുകൾക്ക് മാത്രമായി പ്രവർത്തനം പരിമിതപ്പെടുത്തിയിരിക്കുന്നു.""റോമിംഗിൽ ആയിരിക്കുമ്പോൾ നിങ്ങളുടെ ഫോണിൽ നിന്ന് കോൾ കൈമാറ്റ ക്രമീകരണം സാധിക്കില്ല.""സേവനം പ്രവർത്തനക്ഷമമാക്കി."
@@ -43,8 +47,8 @@
"നിങ്ങൾ ടൈപ്പുചെയ്ത് പിൻ പൊരുത്തപ്പെടുന്നില്ല.""4 മുതൽ 8 വരെ അക്കങ്ങളുള്ള ഒരു പിൻ ടൈപ്പുചെയ്യുക.""എട്ടോ അതിലധികമോ അക്കങ്ങളുള്ള ഒരു PUK ടൈപ്പുചെയ്യുക."
- "നിങ്ങളുടെ സിം PUK ലോക്ക് ചെയ്തു. ഇത് അൺലോക്ക് ചെയ്യാൻ PUK കോഡ് ടൈപ്പ് ചെയ്യുക."
- "സിം അൺബ്ലോക്ക് ചെയ്യാൻ PUK2 ടൈപ്പ് ചെയ്യുക."
+ "നിങ്ങളുടെ സിം കാർഡ് PUK ലോക്ക് ചെയ്തതാണ്. ഇത് അൺലോക്ക് ചെയ്യാൻ PUK കോഡ് ടൈപ്പുചെയ്യുക."
+ "സിം കാർഡ് തടഞ്ഞത് മാറ്റാൻ PUK2 ടൈപ്പുചെയ്യുക.""വിജയകരമല്ല, സിം/RUIM ലോക്ക് പ്രവർത്തനക്ഷമമാക്കുക."SIM ലോക്കാകുന്നതിന് മുമ്പായി നിങ്ങൾക്ക് %d ശ്രമങ്ങൾ കൂടി ശേഷിക്കുന്നു.
@@ -297,16 +301,16 @@
"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ ആക്സസ്സ് ചെയ്യുക""ലൊക്കേഷൻ""ഈ ഉപകരണത്തിന്റെ ലൊക്കേഷൻ ആക്സസ് ചെയ്യാൻ"
- "കലണ്ടർ"
+ "Calendar""നിങ്ങളുടെ കലണ്ടർ ആക്സസ്സ് ചെയ്യുക""SMS""SMS സന്ദേശങ്ങൾ അയയ്ക്കുകയും കാണുകയും ചെയ്യുക"
- "ഫയലുകൾ"
- "നിങ്ങളുടെ ഉപകരണത്തിലെ ഫയലുകൾ ആക്സസ് ചെയ്യുക"
- "സംഗീതവും ഓഡിയോയും"
- "നിങ്ങളുടെ ഉപകരണത്തിൽ സംഗീതവും ഓഡിയോയും ആക്സസ് ചെയ്യുക"
- "ഫോട്ടോകളും വീഡിയോകളും"
- "നിങ്ങളുടെ ഉപകരണത്തിൽ ഫോട്ടോകളും വീഡിയോകളും ആക്സസ് ചെയ്യുക"
+ "ഫയലുകളും ഡോക്യുമെന്റുകളും"
+ "നിങ്ങളുടെ ഉപകരണത്തിലെ ഫയലുകളും ഡോക്യുമെന്റുകളും ആക്സസ് ചെയ്യുക"
+ "സംഗീതവും മറ്റ് ഓഡിയോയും"
+ "നിങ്ങളുടെ ഉപകരണത്തിലെ ഓഡിയോ ഫയലുകൾ ആക്സസ് ചെയ്യുക"
+ "ഫോട്ടോകളും വീഡിയോകളും"
+ "നിങ്ങളുടെ ഉപകരണത്തിലെ വീഡിയോ ഫയലുകൾ ആക്സസ് ചെയ്യുക""മൈക്രോഫോണ്""ഓഡിയോ റെക്കോർഡ് ചെയ്യുക""ശാരീരിക ആക്റ്റിവിറ്റി"
@@ -582,14 +586,13 @@
"സ്ക്രീൻ ലോക്ക് ഉപയോഗിക്കുക""തുടരാൻ നിങ്ങളുടെ സ്ക്രീൻ ലോക്ക് നൽകുക""സെൻസറിന് മുകളിൽ ശക്തിയായി അമർത്തുക"
- "ഫിംഗർപ്രിന്റ് തിരിച്ചറിയാനാകുന്നില്ല. വീണ്ടും ശ്രമിക്കുക."
+ "ഫിംഗർപ്രിന്റ് പ്രോസസ് ചെയ്യാനായില്ല. വീണ്ടും ശ്രമിക്കുക.""ഫിംഗർപ്രിന്റ് സെൻസർ വൃത്തിയാക്കിയ ശേഷം വീണ്ടും ശ്രമിക്കുക""സെൻസർ വൃത്തിയാക്കിയ ശേഷം വീണ്ടും ശ്രമിക്കുക""സെൻസറിന് മുകളിൽ ശക്തിയായി അമർത്തുക""വിരൽ വളരെ പതുക്കെ നീക്കി. വീണ്ടും ശ്രമിക്കുക.""മറ്റൊരു ഫിംഗർപ്രിന്റ് ഉപയോഗിച്ച് നോക്കുക""തെളിച്ചം വളരെയധികമാണ്"
- "പവർ ബട്ടൺ അമർത്തിയത് തിരിച്ചറിഞ്ഞു""അൽപ്പം നീക്കി നോക്കൂ""ഓരോ തവണയും നിങ്ങളുടെ വിരലിന്റെ സ്ഥാനം ചെറുതായി മാറ്റുക"
@@ -601,17 +604,16 @@
"മുഖം പരിശോധിച്ചുറപ്പിച്ചു, സ്ഥിരീകരിക്കുക അമർത്തുക""ഫിംഗർപ്രിന്റ് ഹാർഡ്വെയർ ലഭ്യമല്ല.""ഫിംഗർപ്രിന്റ് സജ്ജീകരിക്കാനാകില്ല"
- "ഫിംഗർപ്രിന്റ് സജ്ജീകരണം ടൈംഔട്ടായി. വീണ്ടും ശ്രമിക്കുക."
+ "ഫിംഗർപ്രിന്റ് നൽകേണ്ട സമയം കഴിഞ്ഞു. വീണ്ടും ശ്രമിക്കുക.""ഫിംഗർപ്രിന്റ് പ്രവർത്തനം റദ്ദാക്കി.""ഉപയോക്താവ് റദ്ദാക്കിയ ഫിംഗർപ്രിന്റ് പ്രവർത്തനം."
- "നിരവധി ശ്രമങ്ങൾ. പകരം സ്ക്രീൻ ലോക്ക് ഉപയോഗിക്കുക."
- "നിരവധി ശ്രമങ്ങൾ. പകരം സ്ക്രീൻ ലോക്ക് ഉപയോഗിക്കുക."
- "ഫിംഗർപ്രിന്റ് പ്രോസസ് ചെയ്യാനാകില്ല. വീണ്ടും ശ്രമിക്കുക."
+ "നിരവധി തവണ ശ്രമിച്ചു. പിന്നീട് വീണ്ടും ശ്രമിക്കുക."
+ "നിരവധി തവണ ശ്രമിച്ചതിനാൽ, ഫിംഗർപ്രിന്റ് സെൻസർ പ്രവർത്തനരഹിതമായി."
+ "വീണ്ടും ശ്രമിക്കൂ.""വിരലടയാളങ്ങൾ എൻറോൾ ചെയ്തിട്ടില്ല.""ഈ ഉപകരണത്തിൽ ഫിംഗർപ്രിന്റ് സെൻസറില്ല.""സെൻസർ താൽക്കാലികമായി പ്രവർത്തനരഹിതമാക്കി.""വിരലടയാള സെൻസർ ഉപയോഗിക്കാനാകുന്നില്ല. റിപ്പയർ കേന്ദ്രം സന്ദർശിക്കുക"
- "പവർ ബട്ടൺ അമർത്തി""ഫിംഗർ %d""ഫിംഗർപ്രിന്റ് ഉപയോഗിക്കുക""ഫിംഗർപ്രിന്റ് അല്ലെങ്കിൽ സ്ക്രീൻ ലോക്ക് ഉപയോഗിക്കുക"
@@ -632,33 +634,26 @@
"ഫിംഗർപ്രിന്റ് അൺലോക്ക്""വിരലടയാള സെൻസർ ഉപയോഗിക്കാനാകുന്നില്ല""റിപ്പയർ കേന്ദ്രം സന്ദർശിക്കുക."
- "മുഖ മോഡൽ സൃഷ്ടിക്കാനാകുന്നില്ല. വീണ്ടും ശ്രമിക്കൂ."
+ "കൃത്യ മുഖ ഡാറ്റ എടുക്കാനായില്ല. വീണ്ടും ശ്രമിക്കൂ.""വളരെയധികം തെളിച്ചം. സൗമ്യതയേറിയ പ്രകാശം ശ്രമിക്കൂ."
- "വേണ്ടത്ര പ്രകാശമില്ല"
- "ഫോൺ കൂടുതൽ ദൂരേയ്ക്ക് നീക്കുക"
- "ഫോൺ അടുത്തേക്ക് നീക്കുക"
- "ഫോൺ മുകളിലേക്ക് ഉയർത്തുക"
- "ഫോൺ കൂടുതൽ താഴേക്ക് നീക്കുക"
- "ഫോൺ നിങ്ങളുടെ ഇടതുവശത്തേക്ക് നീക്കുക"
- "ഫോൺ നിങ്ങളുടെ വലതുവശത്തേക്ക് നീക്കുക"
+ "വളരെ ഇരുണ്ടത്. തിളക്കമേറിയ ലൈറ്റിംഗ് പരീക്ഷിക്കുക."
+ "ഫോൺ കൂടുതൽ അകലേയ്ക്ക് നീക്കുക."
+ "ഫോൺ അടുത്തേക്ക് നീക്കുക."
+ "ഫോൺ കൂടുതൽ ഉയരത്തിലേക്ക് നീക്കുക."
+ "ഫോൺ കൂടുതൽ താഴേക്ക് നീക്കുക."
+ "ഫോൺ ഇടത്തോട്ട് നീക്കുക."
+ "ഫോൺ വലത്തോട്ട് നീക്കുക.""നിങ്ങളുടെ ഉപകരണത്തിന് നേരെ കൂടുതൽ നന്നായി നോക്കുക."
- "നിങ്ങളുടെ മുഖം കാണാനാകുന്നില്ല. നിങ്ങളുടെ ഫോൺ കണ്ണിന് നേരെ പിടിക്കുക."
+ "നിങ്ങളുടെ മുഖം ക്യാമറയ്ക്ക് നേരെയാക്കുക.""വളരെയധികം ചലനം. ഫോൺ അനക്കാതെ നേരെ പിടിക്കുക.""നിങ്ങളുടെ മുഖം വീണ്ടും എൻറോൾ ചെയ്യുക."
- "മുഖം തിരിച്ചറിയാനാകുന്നില്ല. വീണ്ടും ശ്രമിക്കൂ."
- "നിങ്ങളുടെ തലയുടെ സ്ഥാനം ചെറുതായി മാറ്റുക"
- "കൂടുതൽ കൃത്യമായി ഫോണിന് നേരെ നോക്കുക"
- "കൂടുതൽ കൃത്യമായി ഫോണിന് നേരെ നോക്കുക"
- "കൂടുതൽ കൃത്യമായി ഫോണിന് നേരെ നോക്കുക"
+ "ഇനി മുഖം തിരിച്ചറിയാനാവില്ല. വീണ്ടും ശ്രമിക്കൂ."
+ "വളരെയധികം സമാനത, നിങ്ങളുടെ പോസ് മാറ്റുക."
+ "നിങ്ങളുടെ തല ഇത്ര തിരിക്കേണ്ട."
+ "നിങ്ങളുടെ തല ചെറുതായി ടിൽറ്റ് ചെയ്യുക."
+ "നിങ്ങളുടെ തല ഇത്ര തിരിക്കേണ്ട.""നിങ്ങളുടെ മുഖം മറയ്ക്കുന്നത് എല്ലാം നീക്കം ചെയ്യൂ.""കറുപ്പ് ബാർ ഉൾപ്പെടെ നിങ്ങളുടെ സ്ക്രീനിന്റെ മുകൾഭാഗം വൃത്തിയാക്കുക"
-
-
-
-
- "മുഖ മോഡൽ സൃഷ്ടിക്കാനാകില്ല. വീണ്ടും ശ്രമിക്കൂ."
- "കറുത്ത കണ്ണട കണ്ടെത്തി. നിങ്ങളുടെ മുഖം പൂർണ്ണമായും ദൃശ്യമായിരിക്കണം."
- "മുഖം മറച്ചിരിക്കുന്നതായി കണ്ടെത്തി. നിങ്ങളുടെ മുഖം പൂർണ്ണമായും ദൃശ്യമായിരിക്കണം.""മുഖം പരിശോധിക്കാൻ കഴിയില്ല. ഹാർഡ്വെയർ ലഭ്യമല്ല."
@@ -924,14 +919,14 @@
"വീണ്ടും ശ്രമിക്കുക""എല്ലാ ഫീച്ചറുകളും വിവരങ്ങളും ലഭിക്കാൻ അൺലോക്കുചെയ്യുക""മുഖം തിരിച്ചറിഞ്ഞുള്ള അൺലോക്ക് ശ്രമങ്ങളുടെ പരമാവധി കഴിഞ്ഞു"
- "സിം ഇല്ല"
- "ടാബ്ലെറ്റിൽ സിം ഇല്ല."
- "നിങ്ങളുടെ Android TV ഉപകരണത്തിൽ സിം ഇല്ല."
- "ഫോണിൽ സിം ഇല്ല."
- "സിം ചേർക്കുക."
- "സിം കാണുന്നില്ല അല്ലെങ്കിൽ റീഡ് ചെയ്യാനായില്ല. സിം ചേർക്കുക."
- "ഉപയോഗശൂന്യമായ സിം."
- "നിങ്ങളുടെ സിം ശാശ്വതമായി നിഷ്ക്രിയമാക്കി.\n മറ്റൊരു സിമ്മിന് നിങ്ങളുടെ വയർലെസ് സേവന ദാതാവിനെ ബന്ധപ്പെടുക."
+ "സിം കാർഡില്ല"
+ "ടാബ്ലെറ്റിൽ സിം കാർഡൊന്നുമില്ല."
+ "നിങ്ങളുടെ Android TV-യിൽ സിം കാർഡില്ല."
+ "ഫോണിൽ സിം കാർഡൊന്നുമില്ല."
+ "ഒരു സിം കാർഡ് ചേർക്കുക."
+ "സിം കാർഡ് കാണുന്നില്ല അല്ലെങ്കിൽ റീഡുചെയ്യാനായില്ല. ഒരു സിം കാർഡ് ചേർക്കുക."
+ "ഉപയോഗശൂന്യമായ സിം കാർഡ്."
+ "നിങ്ങളുടെ സിം കാർഡ് ശാശ്വതമായി പ്രവർത്തനരഹിതമാക്കി.\n മറ്റൊരു സിം കാർഡിനായി നിങ്ങളുടെ വയർലെസ് സേവന ദാതാവിനെ ബന്ധപ്പെടുക.""മുമ്പത്തെ ട്രാക്ക്""അടുത്ത ട്രാക്ക്""താൽക്കാലികമായി നിർത്തുക"
@@ -941,10 +936,10 @@
"വേഗത്തിലുള്ള കൈമാറൽ""അടിയന്തര കോളുകൾ മാത്രം""നെറ്റ്വർക്ക് ലോക്കുചെയ്തു"
- "സിം PUK ലോക്ക് ചെയ്തു."
+ "സിം കാർഡ് PUK ലോക്ക് ചെയ്തതാണ്.""ഉപയോക്തൃ ഗൈഡ് കാണുകയോ കസ്റ്റമർ കെയറുമായി ബന്ധപ്പെടുകയോ ചെയ്യുക."
- "സിം ലോക്ക് ചെയ്തു."
- "സിം അൺലോക്ക് ചെയ്യുന്നു…"
+ "സിം കാർഡ് ലോക്കുചെയ്തു."
+ "സിം കാർഡ് അൺലോക്കുചെയ്യുന്നു…""നിങ്ങളുടെ പാറ്റേൺ %1$d തവണ തെറ്റായി വരച്ചു. \n\n%2$d സെക്കൻഡിനുള്ളിൽ വീണ്ടും ശ്രമിക്കുക.""നിങ്ങളുടെ പാസ്വേഡ് %1$d തവണ തെറ്റായി ടൈപ്പുചെയ്തു. \n\n%2$d സെക്കൻഡിനുള്ളിൽ വീണ്ടും ശ്രമിക്കുക.""നിങ്ങളുടെ പിൻ %1$d തവണ തെറ്റായി ടൈപ്പുചെയ്തു. \n\n%2$d സെക്കൻഡിനുള്ളിൽ വീണ്ടും ശ്രമിക്കുക."
@@ -1018,7 +1013,7 @@
"ഈ പേജിൽ തുടരുക""%s\n\nഈ പേജിൽ നിന്നും നാവിഗേറ്റുചെയ്തു പോകണമെന്ന് തീർച്ചയാണോ?""സ്ഥിരീകരിക്കുക"
- "നുറുങ്ങ്: സൂം ഇൻ ചെയ്യാനും സൂം ഔട്ട് ചെയ്യാനും ഡബിൾ ടാപ്പ് ചെയ്യുക."
+ "നുറുങ്ങ്: സൂം ഇൻ ചെയ്യാനും സൂം ഔട്ട് ചെയ്യാനും ഇരട്ട-ടാപ്പുചെയ്യുക.""ഓട്ടോഫിൽ""ഓട്ടോഫിൽ സജ്ജീകരിക്കുക""%1$s ഉപയോഗിച്ച് സ്വമേധയാ പൂരിപ്പിക്കുക"
@@ -1246,9 +1241,10 @@
"%1$s തയ്യാറാക്കുന്നു.""അപ്ലിക്കേഷനുകൾ ആരംഭിക്കുന്നു.""ബൂട്ട് ചെയ്യൽ പൂർത്തിയാകുന്നു."
+ "സജ്ജീകരണം തുടരണോ?""നിങ്ങൾ പവർ ബട്ടൺ അമർത്തി — സാധാരണയായി ഇത് സ്ക്രീൻ ഓഫാകുന്നതിന് കാരണമാകും.\n\nനിങ്ങളുടെ ഫിംഗർപ്രിന്റ് സജ്ജീകരിക്കുമ്പോൾ മൃദുവായി ടാപ്പ് ചെയ്ത് നോക്കുക."
- "സജ്ജീകരണം നിർത്താൻ, സ്ക്രീൻ ഓഫാക്കുക"
- "ഓഫാക്കുക"
+ "സ്ക്രീൻ ഓഫാക്കുക"
+ "സജ്ജീകരണം തുടരുക""ഫിംഗർപ്രിന്റ് പരിശോധിച്ചുറപ്പിക്കൽ തുടരണോ?""നിങ്ങൾ പവർ ബട്ടൺ അമർത്തി — സാധാരണയായി ഇത് സ്ക്രീൻ ഓഫാകുന്നതിന് കാരണമാകും.\n\nനിങ്ങളുടെ ഫിംഗർപ്രിന്റ് പരിശോധിച്ചുറപ്പിക്കാൻ മൃദുവായി ടാപ്പ് ചെയ്ത് നോക്കുക.""സ്ക്രീൻ ഓഫാക്കുക"
@@ -1327,10 +1323,10 @@
"നിങ്ങൾക്ക് ഇത് പിന്നീട് ക്രമീകരണങ്ങൾ > അപ്ലിക്കേഷനുകൾ എന്നതിൽ മാറ്റാനാകും""എപ്പോഴും അനുവദിക്കൂ""ഒരിക്കലുമനുവദിക്കരുത്"
- "സിം നീക്കം ചെയ്തു"
- "സാധുതയുള്ള ഒരു സിം ഉപയോഗിച്ച് പുനരാരംഭിക്കുന്നത് വരെ നിങ്ങൾക്ക് മൊബൈൽ നെറ്റ്വർക്ക് ലഭ്യമാകില്ല."
+ "സിം കാർഡ് നീക്കംചെയ്തു"
+ "സാധുതയുള്ള ഒരു സിം കാർഡ് ചേർത്ത് പുനരാരംഭിക്കുന്നതുവരെ നിങ്ങൾക്ക് മൊബൈൽ നെറ്റ്വർക്ക് ലഭ്യമാകില്ല.""പൂർത്തിയായി"
- "സിം ചേർത്തു"
+ "സിം കാർഡ് ചേർത്തു""മൊബൈൽ നെറ്റ്വർക്ക് ആക്സസ്സുചെയ്യാൻ നിങ്ങളുടെ ഉപകരണം പുനരാരംഭിക്കുക.""പുനരാരംഭിക്കുക""മൊബൈൽ സേവനം സജീവമാക്കുക"
@@ -1385,7 +1381,7 @@
"ഫിസിക്കൽ കീബോർഡ് സജീവമായിരിക്കുമ്പോൾ സ്ക്രീനിൽ നിലനിർത്തുക""വെർച്വൽ കീബോർഡ് കാണിക്കുക""ഫിസിക്കൽ കീബോർഡ് കോൺഫിഗർ ചെയ്യുക"
- "ഭാഷയും ലേഔട്ടും തിരഞ്ഞെടുക്കുന്നതിന് ടാപ്പ് ചെയ്യുക"
+ "ഭാഷയും ലേഔട്ടും തിരഞ്ഞെടുക്കുന്നതിന് ടാപ്പുചെയ്യുക"" ABCDEFGHIJKLMNOPQRSTUVWXYZ"" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ""മറ്റ് ആപ്സിന് മുകളിൽ പ്രദർശിപ്പിക്കുക"
@@ -1401,16 +1397,16 @@
"സജ്ജമാക്കാൻ ടാപ്പ് ചെയ്യുക""സജ്ജീകരിക്കാൻ തിരഞ്ഞെടുക്കുക""ഉപകരണം വീണ്ടും ഫോർമാറ്റ് ചെയ്യേണ്ടി വന്നേക്കാം. പുറത്തെടുക്കാൻ ടാപ്പ് ചെയ്യുക."
- "ഫോട്ടോകളും വീഡിയോകളും സംഗീതവും മറ്റും സംഭരിക്കുന്നതിന്"
+ "ഫോട്ടോകളും മീഡിയയും ട്രാൻസ്ഫർ ചെയ്യാൻ""മീഡിയാ ഫയലുകൾ ബ്രൗസ് ചെയ്യുക""%s-ൽ പ്രശ്നം""%s പ്രവർത്തിക്കുന്നില്ല""പരിഹരിക്കാൻ ടാപ്പ് ചെയ്യുക""%s കേടായി. പരിഹരിക്കാൻ തിരഞ്ഞെടുക്കുക.""ഉപകരണം വീണ്ടും ഫോർമാറ്റ് ചെയ്യേണ്ടി വന്നേക്കാം. പുറത്തെടുക്കാൻ ടാപ്പ് ചെയ്യുക."
- "%s കണ്ടെത്തി"
+ "പിന്തുണയില്ലാത്ത %s""%s പ്രവർത്തിക്കുന്നില്ല"
- "സജ്ജീകരിക്കാൻ ടാപ്പ് ചെയ്യുക."
+ "ഈ ഉപകരണം %s പിന്തുണയ്ക്കുന്നതല്ല. പിന്തുണയുള്ള ഫോർമാറ്റിൽ സജ്ജമാക്കുന്നതിന് ടാപ്പുചെയ്യുക.""പിന്തുണയ്ക്കുന്ന ഫോർമാറ്റിൽ %s സജ്ജീകരിക്കാൻ തിരഞ്ഞെടുക്കുക.""ഉപകരണം വീണ്ടും ഫോർമാറ്റ് ചെയ്യേണ്ടി വന്നേക്കാം""%s അപ്രതീക്ഷിതമായി നീക്കംചെയ്തു"
@@ -1420,7 +1416,7 @@
"%s ഒഴിവാക്കുന്നു""നീക്കം ചെയ്യരുത്""സജ്ജമാക്കുക"
- "ഒഴിവാക്കുക"
+ "നിരസിക്കുക""അടുത്തറിയുക""ഔട്ട്പുട്ട് മാറുക""%s കാണുന്നില്ല"
@@ -1609,7 +1605,7 @@
"ടിവി""ഫോണ്""ഡോക്ക് സ്പീക്കറുകൾ"
- "ബാഹ്യ ഉപകരണം"
+ "HDMI""ഹെഡ്ഫോണുകൾ""USB""സിസ്റ്റം"
@@ -1642,7 +1638,7 @@
"സിം ഇപ്പോൾ പ്രവർത്തനരഹിതമാക്കി. തുടരുന്നതിന് PUK കോഡ് നൽകുക. വിശദാംശങ്ങൾക്ക് കാരിയറെ ബന്ധപ്പെടുക.""താൽപ്പര്യപ്പെട്ട പിൻ കോഡ് നൽകുക""താൽപ്പര്യപ്പെട്ട പിൻ കോഡ് സ്ഥിരീകരിക്കുക"
- "സിം അൺലോക്ക് ചെയ്യുന്നു…"
+ "സിം കാർഡ് അൺലോക്കുചെയ്യുന്നു…""പിൻ കോഡ് തെറ്റാണ്.""4 മുതൽ 8 വരെ അക്കങ്ങളുള്ള ഒരു പിൻ നൽകുക.""PUK കോഡ് 8 അക്കങ്ങളായിരിക്കണം."
@@ -1685,7 +1681,7 @@
"%1$s എന്നതിന് നിങ്ങളുടെ ഉപകരണത്തിന്മേൽ പൂർണ്ണ നിയന്ത്രണം അനുവദിക്കണോ?""ഉപയോഗസഹായി ആവശ്യങ്ങൾക്കായി നിങ്ങളെ സഹായിക്കുന്ന ആപ്പുകൾക്ക് പൂർണ്ണ നിയന്ത്രണം അനുയോജ്യമാണെങ്കിലും മിക്ക ആപ്പുകൾക്കും അനുയോജ്യമല്ല.""സ്ക്രീൻ കാണുക, നിയന്ത്രിക്കുക"
- "ഇതിന് സ്ക്രീനിലെ എല്ലാ ഉള്ളടക്കവും വായിക്കാനും മറ്റ് ആപ്പുകൾക്ക് മുകളിൽ ഉള്ളടക്കം പ്രദർശിപ്പിക്കാനുമാകും."
+ "ഇതിന് സ്ക്രീനിലെ എല്ലാ ഉള്ളടക്കവും വായിക്കാനും മറ്റ് ആപ്പുകളിൽ ഉള്ളടക്കം പ്രദർശിപ്പിക്കാനുമാവും.""കാണുക, പ്രവർത്തനങ്ങൾ നിർവഹിക്കുക""ഇതിന് ഒരു ആപ്പുമായോ ഹാർഡ്വെയർ സെൻസറുമായോ ഉള്ള നിങ്ങളുടെ ആശയവിനിമയങ്ങൾ ട്രാക്ക് ചെയ്യാനും നിങ്ങളുടെ പേരിൽ ആശയവിനിമയം നടത്താനും കഴിയും.""അനുവദിക്കൂ"
@@ -1923,7 +1919,6 @@
"മേഖലാ മുൻഗണന""ഭാഷ ടൈപ്പ് ചെയ്യുക""നിര്ദ്ദേശിച്ചത്"
- "നിർദ്ദേശിച്ചവ""എല്ലാ ഭാഷകളും""എല്ലാ പ്രദേശങ്ങളും""തിരയുക"
@@ -1941,19 +1936,18 @@
"ക്യാമറ ലഭ്യമല്ല""ഫോണിൽ തുടരുക""മൈക്രോഫോൺ ലഭ്യമല്ല"
- "Play Store ലഭ്യമല്ല""Android TV ക്രമീകരണം ലഭ്യമല്ല""Tablet ക്രമീകരണം ലഭ്യമല്ല""ഫോൺ ക്രമീകരണം ലഭ്യമല്ല"
- "ഇപ്പോൾ നിങ്ങളുടെ %1$s ഉപകരണത്തിൽ ഇത് ആക്സസ് ചെയ്യാനാകില്ല. പകരം Android TV ഉപകരണത്തിൽ ശ്രമിച്ച് നോക്കൂ."
- "ഇപ്പോൾ നിങ്ങളുടെ %1$s ഉപകരണത്തിൽ ഇത് ആക്സസ് ചെയ്യാനാകില്ല. പകരം നിങ്ങളുടെ ടാബ്ലെറ്റിൽ ശ്രമിച്ച് നോക്കൂ."
- "ഇപ്പോൾ നിങ്ങളുടെ %1$s ഉപകരണത്തിൽ ഇത് ആക്സസ് ചെയ്യാനാകില്ല. പകരം നിങ്ങളുടെ ഫോണിൽ ശ്രമിച്ച് നോക്കൂ."
+ "നിങ്ങളുടെ %1$s ഉപകരണത്തിൽ ഇത് ആക്സസ് ചെയ്യാനാകില്ല. പകരം നിങ്ങളുടെ Android TV ഉപകരണത്തിൽ ശ്രമിച്ച് നോക്കൂ."
+ "നിങ്ങളുടെ %1$s ഉപകരണത്തിൽ ഇത് ആക്സസ് ചെയ്യാനാകില്ല. പകരം നിങ്ങളുടെ ടാബ്ലെറ്റിൽ ശ്രമിച്ച് നോക്കൂ."
+ "നിങ്ങളുടെ %1$s ഉപകരണത്തിൽ ഇത് ആക്സസ് ചെയ്യാനാകില്ല. പകരം നിങ്ങളുടെ ഫോണിൽ ശ്രമിച്ച് നോക്കൂ."
+ "നിങ്ങളുടെ %1$s ഉപകരണത്തിൽ ഇത് ഇപ്പോൾ ആക്സസ് ചെയ്യാനാകില്ല. പകരം നിങ്ങളുടെ Android TV ഉപകരണത്തിൽ ശ്രമിച്ച് നോക്കൂ."
+ "നിങ്ങളുടെ %1$s ഉപകരണത്തിൽ ഇത് ഇപ്പോൾ ആക്സസ് ചെയ്യാനാകില്ല. പകരം നിങ്ങളുടെ ടാബ്ലെറ്റിൽ ശ്രമിച്ച് നോക്കൂ."
+ "നിങ്ങളുടെ %1$s ഉപകരണത്തിൽ ഇത് ഇപ്പോൾ ആക്സസ് ചെയ്യാനാകില്ല. പകരം നിങ്ങളുടെ ഫോണിൽ ശ്രമിച്ച് നോക്കൂ.""ഈ ആപ്പ് അധിക സുരക്ഷ അഭ്യർത്ഥിക്കുന്നു. പകരം നിങ്ങളുടെ Android TV ഉപകരണത്തിൽ ശ്രമിച്ച് നോക്കൂ.""ഈ ആപ്പ് അധിക സുരക്ഷ അഭ്യർത്ഥിക്കുന്നു. പകരം നിങ്ങളുടെ ടാബ്ലെറ്റിൽ ശ്രമിച്ച് നോക്കൂ.""ഈ ആപ്പ് അധിക സുരക്ഷ അഭ്യർത്ഥിക്കുന്നു. പകരം നിങ്ങളുടെ ഫോണിൽ ശ്രമിച്ച് നോക്കൂ."
- "നിങ്ങളുടെ %1$s ഉപകരണത്തിൽ ഇത് ആക്സസ് ചെയ്യാനാകില്ല. പകരം നിങ്ങളുടെ Android TV ഉപകരണത്തിൽ ശ്രമിച്ച് നോക്കൂ."
- "നിങ്ങളുടെ %1$s ഉപകരണത്തിൽ ഇത് ആക്സസ് ചെയ്യാനാകില്ല. പകരം നിങ്ങളുടെ ടാബ്ലെറ്റിൽ ശ്രമിച്ച് നോക്കൂ."
- "നിങ്ങളുടെ %1$s ഉപകരണത്തിൽ ഇത് ആക്സസ് ചെയ്യാനാകില്ല. പകരം നിങ്ങളുടെ ഫോണിൽ ശ്രമിച്ച് നോക്കൂ.""ഈ ആപ്പ് Android-ന്റെ പഴയ പതിപ്പിനായി നിർമ്മിച്ചിരിക്കുന്നതിനാൽ ശരിയായി പ്രവർത്തിച്ചേക്കില്ല. അപ്ഡേറ്റിനായി പരിശോധിക്കുക, അല്ലെങ്കിൽ ഡെവലപ്പറുമായി ബന്ധപ്പെടുക.""അപ്ഡേറ്റിനായി പരിശോധിക്കുക""നിങ്ങൾക്ക് പുതിയ സന്ദേശങ്ങൾ ഉണ്ട്"
@@ -2046,8 +2040,7 @@
"എല്ലാ ഉപകരണ ലോഗുകളും ആക്സസ് ചെയ്യാൻ %s എന്നതിനെ അനുവദിക്കണോ?""ഒറ്റത്തവണ ആക്സസ് അനുവദിക്കുക""അനുവദിക്കരുത്"
- "ഉപകരണ ലോഗുകൾ നിങ്ങളുടെ ഉപകരണത്തിൽ എന്തൊക്കെയാണ് സംഭവിക്കുന്നതെന്ന് റെക്കോർഡ് ചെയ്യുന്നു. പ്രശ്നങ്ങൾ കണ്ടെത്തി പരിഹരിക്കുന്നതിന് ആപ്പുകൾക്ക് ഈ ലോഗുകൾ ഉപയോഗിക്കാൻ കഴിയും.\n\nചില ലോഗുകളിൽ സൂക്ഷ്മമായി കൈകാര്യം ചെയ്യേണ്ട വിവരങ്ങൾ അടങ്ങിയിരിക്കാൻ സാധ്യതയുള്ളതിനാൽ, എല്ലാ ഉപകരണ ലോഗുകളും ആക്സസ് ചെയ്യാനുള്ള അനുമതി നിങ്ങൾക്ക് വിശ്വാസമുള്ള ആപ്പുകൾക്ക് മാത്രം നൽകുക. \n\nഎല്ലാ ഉപകരണ ലോഗുകളും ആക്സസ് ചെയ്യാനുള്ള അനുവാദം നൽകിയില്ലെങ്കിലും, ഈ ആപ്പിന് അതിന്റെ സ്വന്തം ലോഗുകൾ ആക്സസ് ചെയ്യാനാകും. നിങ്ങളുടെ ഉപകരണ നിർമ്മാതാവിന് തുടർന്നും നിങ്ങളുടെ ഉപകരണത്തിലെ ചില ലോഗുകളോ വിവരങ്ങളോ ആക്സസ് ചെയ്യാനായേക്കും."
- "ഉപകരണ ലോഗുകൾ നിങ്ങളുടെ ഉപകരണത്തിൽ എന്തൊക്കെയാണ് സംഭവിക്കുന്നതെന്ന് റെക്കോർഡ് ചെയ്യുന്നു. പ്രശ്നങ്ങൾ കണ്ടെത്തി പരിഹരിക്കുന്നതിന് ആപ്പുകൾക്ക് ഈ ലോഗുകൾ ഉപയോഗിക്കാൻ കഴിയും.\n\nചില ലോഗുകളിൽ സൂക്ഷ്മമായി കൈകാര്യം ചെയ്യേണ്ട വിവരങ്ങൾ അടങ്ങിയിരിക്കാൻ സാധ്യതയുള്ളതിനാൽ, എല്ലാ ഉപകരണ ലോഗുകളും ആക്സസ് ചെയ്യാനുള്ള അനുമതി നിങ്ങൾക്ക് വിശ്വാസമുള്ള ആപ്പുകൾക്ക് മാത്രം നൽകുക. \n\nഎല്ലാ ഉപകരണ ലോഗുകളും ആക്സസ് ചെയ്യാനുള്ള അനുവാദം നൽകിയില്ലെങ്കിലും, ഈ ആപ്പിന് അതിന്റെ സ്വന്തം ലോഗുകൾ ആക്സസ് ചെയ്യാനാകും. നിങ്ങളുടെ ഉപകരണ നിർമ്മാതാവിന് തുടർന്നും നിങ്ങളുടെ ഉപകരണത്തിലെ ചില ലോഗുകളോ വിവരങ്ങളോ ആക്സസ് ചെയ്യാനായേക്കും.\n\ng.co/android/devicelogs എന്നതിൽ കൂടുതലറിയുക."
+ "നിങ്ങളുടെ ഉപകരണത്തിൽ എന്തൊക്കെയാണ് സംഭവിക്കുന്നതെന്ന് ഉപകരണ ലോഗുകൾ റെക്കോർഡ് ചെയ്യുന്നു. പ്രശ്നങ്ങൾ കണ്ടെത്തി പരിഹരിക്കുന്നതിന് ആപ്പുകൾക്ക് ഈ ലോഗുകൾ ഉപയോഗിക്കാൻ കഴിയും.\n\nചില ലോഗുകളിൽ സൂക്ഷ്മമായി കൈകാര്യം ചെയ്യേണ്ട വിവരങ്ങൾ അടങ്ങിയിരിക്കാൻ സാധ്യതയുള്ളതിനാൽ, നിങ്ങൾക്ക് വിശ്വാസമുള്ള ആപ്പുകൾക്ക് മാത്രമേ എല്ലാ ഉപകരണ ലോഗുകളും ആക്സസ് ചെയ്യാൻ അനുമതി നൽകാവൂ. \n\nഎല്ലാ ഉപകരണ ലോഗുകളും ആക്സസ് ചെയ്യാൻ നിങ്ങൾ ഈ ആപ്പിനെ അനുവദിക്കുന്നില്ലെങ്കിൽ പോലും, ആപ്പിന് അതിന്റെ സ്വന്തം ലോഗുകൾ ആക്സസ് ചെയ്യാനാകും. നിങ്ങളുടെ ഉപകരണ നിർമ്മാതാവിനും നിങ്ങളുടെ ഉപകരണത്തിലെ ചില ലോഗുകളോ വിവരങ്ങളോ തുടർന്നും ആക്സസ് ചെയ്യാനായേക്കും. കൂടുതലറിയുക""വീണ്ടും കാണിക്കരുത്""%2$s സ്ലൈസുകൾ കാണിക്കാൻ %1$s താൽപ്പര്യപ്പെടുന്നു""എഡിറ്റ് ചെയ്യുക"
@@ -2060,7 +2053,8 @@
"\'ശല്യപ്പെടുത്തരുത്\' മാറ്റി""എന്തിനെയാണ് ബ്ലോക്ക് ചെയ്തതെന്ന് പരിശോധിക്കാൻ ടാപ്പ് ചെയ്യുക.""അറിയിപ്പ് ക്രമീകരണം അവലോകനം ചെയ്യുക"
- "Android 13 മുതൽ, നിങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യുന്ന ആപ്പുകൾക്ക് അറിയിപ്പുകൾ അയയ്ക്കാൻ നിങ്ങളുടെ അനുമതി വേണം. നിലവിലുള്ള ആപ്പുകൾക്ക് ഈ അനുമതി മാറ്റാൻ ടാപ്പ് ചെയ്യുക."
+
+ "പിന്നീട് ഓർമ്മിപ്പിക്കൂ""ഡിസ്മിസ് ചെയ്യുക""സിസ്റ്റം"
@@ -2288,6 +2282,5 @@
"സജീവമായ ആപ്പുകൾ പരിശോധിക്കുക""നിങ്ങളുടെ %1$s എന്നതിൽ നിന്ന് ഫോണിന്റെ ക്യാമറ ആക്സസ് ചെയ്യാനാകില്ല""നിങ്ങളുടെ %1$s എന്നതിൽ നിന്ന് ടാബ്ലെറ്റിന്റെ ക്യാമറ ആക്സസ് ചെയ്യാനാകില്ല"
- "സ്ട്രീം ചെയ്യുമ്പോൾ ഇത് ആക്സസ് ചെയ്യാനാകില്ല. പകരം നിങ്ങളുടെ ഫോണിൽ ശ്രമിച്ച് നോക്കൂ."
- "സിസ്റ്റം ഡിഫോൾട്ട്"
+ "സിസ്റ്റത്തിന്റെ ഭാഷ"
diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml
index 1ee190efd69a169eb383f08fc0b088edfd97db3f..1384b85dde9c602d8804f3a3b771524a5f59c738 100644
--- a/core/res/res/values-mn/strings.xml
+++ b/core/res/res/values-mn/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "килобайт"
+ "МБ"
+ "ГБ"
+ "TБ"
+ "ПБ""%1$s%2$s""<Гарчиггүй>""(Утасны дугаар байхгүй)"
@@ -28,7 +33,6 @@
"дуут шуудан""MSISDN1""Холболтын асуудал эсвэл буруу MMI код."
- "Онцлогийг дэмжээгүй.""Ажиллагаа зөвөх тогтсон дугаараар хязгаарлагдсан.""Таныг роуминг үйлчилгээг идэвхжүүлсэн үед таны утаснаас дуудлага дамжуулах тохиргоог өөрчлөх боломжгүй.""Үйлчилгээ идэвхжсэн."
@@ -43,8 +47,8 @@
"Таны оруулсан ПИН таарахгүй байна.""4-8 тооноос бүтэх ПИН-г бичнэ үү.""8-с цөөнгүй тооноос бүтэх PUK-г бичнэ үү."
- "Таны SIM-г PUK-р түгжсэн байна. Үүний түгжээг тайлахын тулд PUK кодыг бичиж оруулна уу."
- "SIM-г блокоос гаргахын тулд PUK2-г бичиж оруулна уу."
+ "SIM картны PUK-түгжигдсэн. Тайлах бол PUK кодыг бичнэ үү."
+ "SIM картыг блокоос гаргах бол PUK2-г бичнэ үү.""Амжилтгүй боллоо, SIM/РҮИМ түгжээг идэвхжүүлнэ үү."Таны SIM түгжигдэхээс өмнө танд %d оролдлого хийх боломж үлдлээ.
@@ -285,9 +289,9 @@
"Апп батарей ашиглаж байна""Томруулах""Хандалтын ашиглалт"
- "%1$s батарей ашиглаж байна"
- "%1$d апп батарей ашиглаж байна"
- "Батарей, дата ашиглалтын талаар дэлгэрэнгүйг харахын тулд товшино уу"
+ "%1$s батерей ашиглаж байна"
+ "%1$d апп батерей ашиглаж байна"
+ "Батерей, дата ашиглалтын талаар дэлгэрэнгүйг харахын тулд товшино уу""%1$s, %2$s""Аюулгүй горим""Андройд систем"
@@ -298,15 +302,15 @@
"Байршил""энэ төхөөрөмжийн байршилд хандалт хийх""Календарь"
- "Календарьд хандах"
+ "Календарь руу хандах""Мессеж""SMS мессежийг илгээх, харах"
- "Файлууд"
- "таны төхөөрөмж дээрх файлуудад хандах"
- "Хөгжим, аудио"
- "төхөөрөмж дээрээ хөгжим болон аудионд хандах"
- "Зураг, видео"
- "төхөөрөмж дээрээ зураг болон видеонд хандах"
+ "Файл болон документ"
+ "таны төхөөрөмж дээрх файл болон документод хандах"
+ "Хөгжим, бусад аудио"
+ "таны төхөөрөмж дээрх аудио файлд хандах"
+ "Зураг, видео"
+ "таны төхөөрөмж дээрх зураг болон видео файлд хандах""Микрофон""дуу хураах""Дасгал хөдөлгөөн"
@@ -582,14 +586,13 @@
"Дэлгэцийн түгжээг ашиглах""Үргэлжлүүлэхийн тулд дэлгэцийн түгжээгээ оруулна уу""Мэдрэгч дээр чанга дарна уу"
- "Хурууны хээг таних боломжгүй. Дахин оролдоно уу."
+ "Хурууны хээ боловсруулж чадахгүй байна. Дахин оролдоно уу.""Хурууны хээ мэдрэгчийг цэвэрлээд, дахин оролдоно уу""Мэдрэгчийг цэвэрлээд, дахин оролдоно уу""Мэдрэгч дээр чанга дарна уу""Хуруу хэт удаан хөдөлгөсөн байна. Дахин оролдоно уу.""Өөр хурууны хээ туршина уу""Хэт гэрэлтэй байна"
- "Цахилгаан даралтыг илрүүлсэн""Тохируулж үзнэ үү""Хурууныхаа байрлалыг тухай бүрд бага зэрэг өөрчилнө үү"
@@ -601,17 +604,16 @@
"Царайг баталгаажууллаа. Баталгаажуулах товчлуурыг дарна уу""Хурууны хээний төхөөрөмж бэлэн бус байна.""Хурууны хээ тохируулах боломжгүй"
- "Хурууны хээний тохируулга завсарласан. Дахин оролдоно уу."
+ "Хурууны хээ оруулах хугацаа өнгөрсөн байна. Дахин оруулна уу.""Хурууны хээний бүртгэл амжилтгүй боллоо.""Хэрэглэгч хурууны хээний баталгаажуулалтыг цуцалсан байна."
- "Хэт олон удаа оролдлоо. Оронд нь дэлгэцийн түгжээ ашиглана уу."
- "Хэт олон удаа оролдлоо. Оронд нь дэлгэцийн түгжээ ашиглана уу."
- "Хурууны хээг боловсруулах боломжгүй. Дахин оролдоно уу."
+ "Хэтэрхий олон оролдлоо. Түр хүлээгээд дахин оролдоно уу."
+ "Хэт олон удаа оролдсон тул хурууны хээ мэдрэгчийг идэвхгүй болголоо."
+ "Дахин оролдно уу.""Бүртгүүлсэн хурууны хээ алга.""Энэ төхөөрөмжид хурууны хээ мэдрэгч алга.""Мэдрэгчийг түр хугацаанд идэвхгүй болгосон.""Хурууны хээ мэдрэгч ашиглах боломжгүй. Засварын үйлчилгээ үзүүлэгчид зочилно уу"
- "Асаах/Унтраах товчийг дарсан""Хурууны хээ %d""Хурууны хээ ашиглах""Хурууны хээ эсвэл дэлгэцийн түгжээ ашиглах"
@@ -632,33 +634,26 @@
"Хурууны хээгээр түгжээ тайлах""Хурууны хээ мэдрэгч ашиглах боломжгүй""Засварын үйлчилгээ үзүүлэгчид зочилно уу."
- "Нүүрний загвар үүсгэж чадсангүй. Дахин оролдоно уу."
+ "Царайн өгөгдлийг зөв авч чадсангүй. Дахин оролдоно уу.""Хэт цайвар байна. Гэрэл багатай газар оролдоно уу."
- "Гэрэл хангалтгүй байна"
- "Утсаа холдуулна уу"
- "Утсаа ойртуулна уу"
- "Утсаа дээшлүүлнэ үү"
- "Утсаа доошлуулна уу"
- "Утсаа зүүн тийш болгоно уу"
- "Утсаа баруун тийш болгоно уу"
+ "Хэт харанхуй байна. Гэрэлтэй орчинд туршина уу."
+ "Утсаа холдуулна уу."
+ "Утсаа ойртуулна уу."
+ "Утсаа дээшлүүлнэ үү."
+ "Утсаа доошлуулна уу."
+ "Утсаа зүүн тийш болгоно уу."
+ "Утсаа баруун тийш болгоно уу.""Төхөөрөмж рүүгээ аль болох эгц харна уу."
- "Таны царай харагдахгүй байна. Утсаа нүднийхээ түвшинд барина уу."
+ "Царайгаа утасны урд эгц байрлуулна уу""Хэт их хөдөлгөөнтэй байна. Утсаа хөдөлгөөнгүй барина уу.""Нүүрээ дахин бүртгүүлнэ үү."
- "Царайг танихгүй байна. Дахин оролдоно уу."
- "Толгойныхоо байрлалыг бага зэрэг өөрчилнө үү"
- "Утас руугаа аль болох эгц харна уу"
- "Утас руугаа аль болох эгц харна уу"
- "Утас руугаа аль болох эгц харна уу"
+ "Царайг таних боломжгүй боллоо. Дахин оролдоно уу."
+ "Хэт адилхан байгаа тул байрлалаа өөрчилнө үү."
+ "Толгойгоо арай багаар эргүүлнэ үү."
+ "Толгойгоо арай бага хазайлгана уу."
+ "Толгойгоо арай багаар эргүүлнэ үү.""Таны нүүрийг далдалж буй аливаа зүйлийг хасна уу.""Хар хэсэг зэрэг дэлгэцийнхээ дээд хэсгийг цэвэрлэнэ үү"
-
-
-
-
- "Нүүрний загвар үүсгэж чадсангүй. Дахин оролдоно уу."
- "Хар шил илэрлээ. Таны нүүр бүтэн харагдах ёстой."
- "Нүүрний халхавч илэрлээ. Таны нүүр бүтэн харагдах ёстой.""Царайг бататгаж чадсангүй. Техник хангамж боломжгүй байна."
@@ -924,14 +919,14 @@
"Дахин оролдох""Бүх онцлог, өгөгдлийн түгжээг тайлах""Царайгаар түгжээ тайлах оролдлогын тоо дээд хэмжээнээс хэтэрсэн"
- "SIM байхгүй"
- "Таблетад SIM байхгүй байна."
- "Таны Android TV төхөөрөмжид SIM байхгүй байна."
- "Утсанд SIM байхгүй байна."
- "SIM нэмнэ үү."
- "SIM дутуу эсвэл үүнийг унших боломжгүй байна. SIM нэмнэ үү."
- "Ашиглах боломжгүй SIM."
- "Таны SIM-г бүрмөсөн идэвхгүй болгосон байна.\n Өөр SIM авах бол утасгүй үйлчилгээ үзүүлэгчтэйгээ холбогдоно уу."
+ "SIM карт байхгүй"
+ "Таблет SIM картгүй."
+ "Таны Android TV төхөөрөмжид SIM карт алга."
+ "Утсанд SIM карт байхгүй."
+ "SIM картыг оруулна уу."
+ "SIM карт байхгүй эсвэл унших боломжгүй. SIM карт оруулна уу."
+ "Ашиглах боломжгүй SIM карт."
+ "Таны SIM карт бүрмөсөн идэвхгүй болов.\n Өөр SIM карт авах бол өөрийн утасгүй үйлчилгээний нийлүүлэгчтэй холбогдоно уу.""Өмнөх трек""Дараагийн трек""Түр зогсоох"
@@ -941,10 +936,10 @@
"Хурдан урагшлуулах""Зөвхөн яаралтай дуудлага""Сүлжээ түгжигдсэн"
- "SIM-г PUK-р түгжсэн байна."
+ "SIM карт нь PUK түгжээтэй.""Хэрэглэгчийн зааврыг харах эсвэл Хэрэглэгчдэд Туслах төвтэй холбоо барина уу."
- "SIM-г түгжсэн байна."
- "SIM-н түгжээг тайлж байна…"
+ "SIM карт түгжигдсэн."
+ "SIM картны түгжээг гаргаж байна…""Та тайлах хээг %1$d удаа буруу зурлаа. \n\n%2$d секундын дараа дахин оролдоно уу.""Та нууц үгээ %1$d удаа буруу бичив. \n\n%2$d секундын дараа дахин оролдоно уу.""Та ПИН кодоо %1$d удаа буруу бичив. \n\n%2$d секундын дараа дахин оролдоно уу."
@@ -1246,9 +1241,10 @@
"Бэлдэж байна %1$s.""Апп-г эхлүүлж байна.""Эхлэлийг дуусгаж байна."
+ "Тохируулгыг үргэлжлүүлэх үү?""Та асаах/унтраах товчийг дарсан байна — энэ нь ихэвчлэн дэлгэцийг унтраадаг.\n\nХурууны хээгээ тохируулж байх үедээ зөөлөн товшиж үзнэ үү."
- "Тохиргоог дуусгахын тулд дэлгэцийг унтраана уу"
- "Унтраах"
+ "Дэлгэцийг унтраах"
+ "Тохируулгыг үргэлжлүүлэх""Хурууны хээгээ үргэлжлүүлэн баталгаажуулах уу?""Та асаах/унтраах товчийг дарсан байна — энэ нь ихэвчлэн дэлгэцийг унтраадаг.\n\nХурууны хээгээ баталгаажуулахын тулд зөөлөн товшиж үзнэ үү.""Дэлгэцийг унтраах"
@@ -1327,10 +1323,10 @@
"Та дараа энийг Тохиргоо > Апп дотроос солих боломжтой""Байнга зөвшөөрөх""Хэзээ ч зөвшөөрөхгүй"
- "SIM-г салгасан"
- "Таныг хүчинтэй SIM-р дахин эхлүүлэх хүртэл мобайл сүлжээ боломжгүй байх болно."
+ "SIM карт хасагдсан"
+ "Зөв SIM карт хийгээд дахин асаатал та мобайл сүлжээг ашиглах боломжгүй.""Дуусгах"
- "SIM нэмсэн"
+ "SIM карт нэмэгдсэн""Мобайл сүлжээнд хандах бол төхөөрөмжөө дахин асаан уу.""Дахин эхлүүлэх""Мобайл үйлчилгээг идэвхжүүлэх"
@@ -1401,16 +1397,16 @@
"Тохируулахын тулд товшино уу""Тохируулахын тулд сонгоно уу""Та төхөөрөмжийг дахин форматлах шаардлагатай байж болзошгүй. Салгахын тулд товшино уу."
- "Зураг, видео, хөгжим болон бусад зүйлийг хадгалахад зориулагдсан"
+ "Зураг, медиа шилжүүлэхэд зориулсан""Медиа файлуудыг үзэх""%s алдаатай байна""%s ажиллахгүй байна""Засахын тулд товшино уу""%s эвдэрсэн байна. Засахын тулд сонгоно уу.""Та төхөөрөмжийг дахин форматлах шаардлагатай байж болзошгүй. Салгахын тулд товшино уу."
- "%s илэрсэн"
+ "Дэмжээгүй %s""%s ажиллахгүй байна"
- "Тохируулахын тулд товшино уу ."
+ "Энэ төхөөрөмж нь %s-г дэмждэггүй. Дэмжигдсэн хэлбэршүүлэлтэд тохируулахын тулд товшино уу.""%s-г дэмжигдсэн форматаар тохируулахын тулд сонгоно уу.""Та төхөөрөмжийг дахин форматлах шаардлагатай байж болзошгүй""%s-ыг гэнэт гаргасан байна"
@@ -1609,7 +1605,7 @@
"Tелевиз""Утас""Чанга яригчийг суулгах"
- "Гадаад төхөөрөмж"
+ "HDMI""Чихэвч""USB""Систем"
@@ -1642,7 +1638,7 @@
"SIM идэвхгүй байна. Үргэлжлүүлэх бол PUK кодыг оруулна уу. Дэлгэрэнгүй мэдээллийг оператороос асууна ууу""Хүссэн ПИН кодоо оруулна уу""Хүссэн ПИН кодоо дахин оруулна уу"
- "SIM-н түгжээг тайлж байна…"
+ "SIM картны түгжээг гаргаж байна…""Буруу ПИН код.""4-8 тооноос бүтэх ПИН-г бичнэ үү.""PUK код 8 тоотой байх ёстой."
@@ -1699,7 +1695,7 @@
"Товчлолыг унтраах""Товчлол ашиглах""Өнгө хувиргалт"
- "Өнгө тохируулга"
+ "Өнгөний засвар""Нэг гарын горим""Хэт бүүдгэр""Дууны түвшний түлхүүрийг удаан дарсан. %1$s-г асаалаа."
@@ -1923,7 +1919,6 @@
"Бүс нутгийн тохиргоо""Улсын хэлийг бичнэ үү""Санал болгосон"
- "Санал болгосон""Бүх хэл""Бүх бүс нутаг""Хайх"
@@ -1941,19 +1936,18 @@
"Камер боломжгүй байна""Утсан дээр үргэлжлүүлэх""Микрофон боломжгүй байна"
- "Play Store боломжгүй""Android TV-н тохиргоо боломжгүй байна""Таблетын тохиргоо боломжгүй байна""Утасны тохиргоо боломжгүй байна"
- "Одоогоор үүнд таны %1$s дээрээс хандах боломжгүй. Оронд нь Android TV төхөөрөмж дээрээ туршиж үзнэ үү."
- "Одоогоор үүнд таны %1$s дээрээс хандах боломжгүй. Оронд нь таблет дээрээ туршиж үзнэ үү."
- "Одоогоор үүнд таны %1$s дээрээс хандах боломжгүй. Оронд нь утсан дээрээ туршиж үзнэ үү."
+ "Үүнд таны %1$s-с хандах боломжгүй. Оронд нь Android TV төхөөрөмж дээрээ туршиж үзнэ үү."
+ "Үүнд таны %1$s-с хандах боломжгүй. Оронд нь таблет дээрээ туршиж үзнэ үү."
+ "Үүнд таны %1$s-с хандах боломжгүй. Оронд нь утсан дээрээ туршиж үзнэ үү."
+ "Одоогоор үүнд таны %1$s дээрээс хандах боломжгүй. Оронд нь Android TV төхөөрөмж дээрээ туршиж үзнэ үү."
+ "Одоогоор үүнд таны %1$s дээрээс хандах боломжгүй. Оронд нь таблет дээрээ туршиж үзнэ үү."
+ "Одоогоор үүнд таны %1$s дээрээс хандах боломжгүй. Оронд нь утсан дээрээ туршиж үзнэ үү.""Энэ апп нэмэлт аюулгүй байдал хүсэж байна. Оронд нь Android TV төхөөрөмж дээрээ туршиж үзнэ үү.""Энэ апп нэмэлт аюулгүй байдал хүсэж байна. Оронд нь таблет дээрээ туршиж үзнэ үү.""Энэ апп нэмэлт аюулгүй байдал хүсэж байна. Оронд нь утсан дээрээ туршиж үзнэ үү."
- "Үүнд таны %1$s-с хандах боломжгүй. Оронд нь Android TV төхөөрөмж дээрээ туршиж үзнэ үү."
- "Үүнд таны %1$s-с хандах боломжгүй. Оронд нь таблет дээрээ туршиж үзнэ үү."
- "Үүнд таны %1$s-с хандах боломжгүй. Оронд нь утсан дээрээ туршиж үзнэ үү.""Энэ аппыг Андройдын хуучин хувилбарт зориулсан бөгөөд буруу ажиллаж болзошгүй. Шинэчлэлтийг шалгаж эсвэл хөгжүүлэгчтэй холбогдоно уу.""Шинэчлэлтийг шалгах""Танд шинэ мессежүүд байна"
@@ -2046,8 +2040,7 @@
"%s-д төхөөрөмжийн бүх логт хандахыг зөвшөөрөх үү?""Нэг удаагийн хандалтыг зөвшөөрнө үү""Бүү зөвшөөр"
- "Төхөөрөмжийн лог нь таны төхөөрөмж дээр юу болж байгааг бичдэг. Аппууд эдгээр логийг асуудлыг олох болон засахад ашиглах боломжтой.\n\nЗарим лог эмзэг мэдээлэл агуулж байж магадгүй тул та зөвхөн итгэдэг аппууддаа төхөөрөмжийн бүх логт хандахыг зөвшөөрнө үү. \n\nХэрэв та энэ аппад төхөөрөмжийн бүх логт хандахыг зөвшөөрөхгүй бол энэ нь өөрийн логт хандах боломжтой хэвээр байх болно. Tаны төхөөрөмж үйлдвэрлэгч таны төхөөрөмж дээрх зарим лог эсвэл мэдээлэлд хандах боломжтой хэвээр байж магадгүй."
- "Төхөөрөмжийн лог нь таны төхөөрөмж дээр юу болж байгааг бичдэг. Аппууд эдгээр логийг асуудлыг олох болон засахад ашиглах боломжтой.\n\nЗарим лог эмзэг мэдээлэл агуулж байж магадгүй тул та зөвхөн итгэдэг аппууддаа төхөөрөмжийн бүх логт хандахыг зөвшөөрнө үү. \n\nХэрэв та энэ аппад төхөөрөмжийн бүх логт хандахыг зөвшөөрөхгүй бол энэ нь өөрийн логт хандах боломжтой хэвээр байх болно. Таны төхөөрөмжийн үйлдвэрлэгч таны төхөөрөмж дээрх зарим лог эсвэл мэдээлэлд хандах боломжтой хэвээр байж магадгүй.\n\ng.co/android/devicelogs -с нэмэлт мэдээлэл аваарай."
+ "Төхөөрөмжийн лог нь таны төхөөрөмж дээр юу болж байгааг бичдэг. Аппууд эдгээр логийг асуудлыг олох болон засахад ашиглах боломжтой.\n\nЗарим лог эмзэг мэдээлэл агуулж байж магадгүй тул та зөвхөн итгэдэг аппууддаа төхөөрөмжийн бүх логт хандахыг зөвшөөрнө үү. \n\nХэрэв та энэ аппад төхөөрөмжийн бүх логт хандахыг зөвшөөрөхгүй бол энэ нь өөрийн логт хандах боломжтой хэвээр байх болно. Tаны төхөөрөмж үйлдвэрлэгч таны төхөөрөмж дээрх зарим лог эсвэл мэдээлэлд хандах боломжтой хэвээр байж магадгүй. Нэмэлт мэдээлэл авах""Дахиж бүү харуул""%1$s%2$s-н хэсгүүдийг (slices) харуулах хүсэлтэй байна""Засах"
@@ -2060,7 +2053,8 @@
"Бүү саад бол горимыг өөрчилсөн""Блоклосон зүйлийг шалгахын тулд товшино уу.""Мэдэгдлийн тохиргоог шалгах"
- "Android 13-аас эхлэн таны суулгасан аппууд мэдэгдэл илгээхийн тулд танаас зөвшөөрөл авах шаардлагатай. Одоо байгаа аппуудын уг зөвшөөрлийг өөрчлөхийн тулд товшино уу."
+
+ "Надад дараа сануул""Хаах""Систем"
@@ -2288,6 +2282,5 @@
"Идэвхтэй аппуудыг шалгах""Таны %1$s-с утасны камерт хандах боломжгүй""Таны %1$s-с таблетын камерт хандах боломжгүй"
- "Стримингийн үед үүнд хандах боломжгүй. Оронд нь утас дээрээ туршиж үзнэ үү."
- "Системийн өгөгдмөл"
+ "Системийн хэл"
diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml
index 2e23cab834300c33013fe60281b2115a6fb83e4d..2a083db8283f829205dc6958f0a794c9ee2c9a20 100644
--- a/core/res/res/values-mr/strings.xml
+++ b/core/res/res/values-mr/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<अशीर्षकांकित>""(कोणताही फोन नंबर नाही)"
@@ -28,7 +33,6 @@
"व्हॉइसमेल""MSISDN1""कनेक्शन समस्या किंवा अवैध MMI कोड."
- "वैशिष्ट्याला सपोर्ट नाही.""कार्य फक्त निश्चित डायलिंग नंबरसाठी प्रतिबंधित आहे.""तुम्ही रोमिंगमध्ये असताना आपल्या फोनवरील कॉल फॉरवर्डिंग सेटिंंग्ज बदलू शकत नाही.""सेवा सक्षम केली."
@@ -43,8 +47,8 @@
"तुम्ही टाइप केलेले पिन जुळत नाहीत.""4 ते 8 अंकांचा पिन टाइप करा.""8 अंकांचा किंवा मोठा PUK टाइप करा."
- "तुमचे सिम PUK लॉक केलेले आहे. ते अनलॉक करण्यासाठी PUK कोड टाइप करा."
- "सिम अनब्लॉक करण्यासाठी PUK2 टाइप करा."
+ "तुमचे सिम कार्ड PUK-लॉक केलेले आहे. ते अनलॉक करण्यासाठी PUK कोड टाइप करा."
+ "सिम कार्ड अनावरोधित करण्यासाठी PUK2 टाइप करा.""अयशस्वी, सिम/RUIM लॉक सुरू करा."सिम लॉक होण्यापूर्वी आपल्याकडे %d प्रयत्न उर्वरित आहेत.
@@ -99,7 +103,7 @@
"व्हॉइस""डेटा""फॅक्स"
- "एसएमएस"
+ "SMS""असंकालिक""सिंक करा""पॅकेट"
@@ -162,7 +166,7 @@
"या सर्व्हरशी संवाद प्रस्थापित करू शकलो नाही. नंतर पुन्हा प्रयत्न करा.""सर्व्हरवरील कनेक्शन टाइमआउट झाले.""पृष्ठामध्ये बरीच सर्व्हर पुनर्निर्देशने आहेत."
- "प्रोटोकॉलला सपोर्ट नाही."
+ "प्रोटोकॉल समर्थित नाही.""सुरक्षित कनेक्शन इंस्टॉल करू शकलो नाही.""URL अवैध असल्यामुळे पेज उघडू शकलो नाही.""फायलीवर प्रवेश करू शकलो नाही."
@@ -299,14 +303,14 @@
"या डिव्हाइसच्या स्थानावर प्रवेश""कॅलेंडर""आपल्या कॅलेंडरवर प्रवेश"
- "एसएमएस"
+ "SMS""SMS मेसेज पाठवणे आणि पाहणे हे"
- "फाइल"
- "तुमच्या डिव्हाइसवरील फाइल अॅक्सेस करा"
- "संगीत आणि ऑडिओ"
- "तुमच्या डिव्हाइसवर संगीत आणि ऑडिओ अॅक्सेस करा"
- "फोटो आणि व्हिडिओ"
- "तुमच्या डिव्हाइसवर फोटो आणि व्हिडिओ अॅक्सेस करा"
+ "फाइल आणि दस्तऐवज"
+ "तुमच्या डिव्हाइसवर फाइल आणि दस्तऐवज अॅक्सेस करा"
+ "संगीत & इतर ऑडिओ"
+ "तुमच्या डिव्हाइसवर ऑडिओ फाइल अॅक्सेस करा"
+ "फोटो & व्हिडिओ"
+ "तुमच्या डिव्हाइसवर इमेज आणि व्हिडिओ फाइल ॲक्सेस करा""मायक्रोफोन""ऑडिओ रेकॉर्ड""शारीरिक अॅक्टिव्हिटी"
@@ -346,7 +350,7 @@
"लॉक केलेल्या डिव्हाइसवर फुल स्क्रीन अॅक्टिव्हिटी म्हणून सूचना प्रदर्शित करणे""लॉक केलेल्या डिव्हाइसवर फुल स्क्रीन अॅक्टिव्हिटी म्हणून सूचना प्रदर्शित करण्यासाठी ॲपला अनुमती द्या""शॉर्टकट इंस्टॉल करा"
- "ॲप्लिकेशनला वापरकर्ता हस्तक्षेपाशिवाय मुख्यस्क्रीन शॉर्टकट जोडण्याची अनुमती देते"
+ "अनुप्रयोगाला वापरकर्ता हस्तक्षेपाशिवाय मुख्यस्क्रीन शॉर्टकट जोडण्याची अनुमती देते.""शॉर्टकट विस्थापित करा""अनुप्रयोगाला वापरकर्ता हस्तक्षेपाशिवाय मुख्यस्क्रीन शॉर्टकट काढण्याची अनुमती देते.""केले जाणारे कॉल पुन्हा मार्गस्थ करा"
@@ -363,7 +367,7 @@
"ॲपला तुमच्या डिव्हाइसवर सुरू असलेल्या कॉलचे तपशील पाहण्याची आणि या कॉलना नियंत्रित करण्याची अनुमती द्या.""सेल प्रसारण मेसेज वाचा""आपल्या डिव्हाइसद्वारे प्राप्त केलेले सेल प्रसारण मेसेज वाचण्यासाठी अॅप ला अनुमती देते. काही स्थानांमध्ये तुम्हाला आणीबाणीच्या परिस्थितीची चेतावणी देण्यासाठी सेल प्रसारण सूचना वितरीत केल्या जातात. आणीबाणी सेल प्रसारण प्राप्त होते तेव्हा आपल्या डिव्हाइसच्या कार्यप्रदर्शनात किंवा कार्यात दुर्भावनापूर्ण अॅप्स व्यत्यय आणू शकतात."
- "सदस्यत्व घेतलेली फीड वाचा"
+ "सदस्यता घेतलेली फीड वाचा""सध्या संकालित केलेल्या फीडविषयी तपशील मिळविण्यासाठी अॅप ला अनुमती देते.""SMS मेसेज पाठवणे आणि पाहणे""SMS मेसेज पाठविण्यासाठी अॅप ला अनुमती देते. हे अनपेक्षित शुल्कामुळे होऊ शकते. दुर्भावनापूर्ण अॅप्स नी आपल्या पुष्टिकरणाशिवाय मेसेज पाठवल्यामुळे तुमचे पैसे खर्च होऊ शकतात."
@@ -397,7 +401,7 @@
"अॅपला पृष्ठभाग सेवा वापरण्याची अनुमती देते.""अॅप संचयन स्थान मोजा""अॅप ला त्याचा कोड, डेटा आणि कॅशे आकार पुनर्प्राप्त करण्यासाठी अनुमती देते"
- "सिस्टीम सेटिंग्ज सुधारित करा"
+ "सिस्टम सेटिंग्ज सुधारित करा""सिस्टीमचा सेटिंग्ज डेटा सुधारित करण्यासाठी अॅप ला अनुमती देते. दुर्भावनापूर्ण अॅप्स आपल्या सिस्टीमचे कॉंफिगरेशन दूषित करू शकतात.""सुरूवातीस चालवा""जसे सिस्टम बूट करणे समाप्त करते तसे अॅप ला स्वतः सुरू करण्यास अनुमती देते. यामुळे टॅबलेट सुरू करण्यास वेळ लागू शकतो आणि नेहमी सुरू राहून एकंदर टॅबलेटला धीमे करण्यास अॅप ला अनुमती देते."
@@ -582,14 +586,13 @@
"स्क्रीन लॉक वापरा""पुढे सुरू ठेवण्यासाठी तुमचे स्क्रीन लॉक एंटर करा""सेन्सरवर जोरात दाबा"
- "फिंगरप्रिंट ओळखता आली नाही. पुन्हा प्रयत्न करा."
+ "फिंगरप्रिंटवर प्रक्रिया करणे शक्य झाले नाही. कृपया पुन्हा प्रयत्न करा.""फिंगरप्रिंट सेन्सर स्वच्छ करा आणि पुन्हा प्रयत्न करा""सेन्सर स्वच्छ करा आणि पुन्हा प्रयत्न करा""सेन्सरवर जोरात दाबा""बोट खूप सावकाश हलविले. कृपया पुन्हा प्रयत्न करा.""दुसरी फिंगरप्रिंट वापरून पहा""खूप प्रखर"
- "पॉवर बटण दाबले गेल्याचे डिटेक्ट केले""अॅडजस्ट करण्याचा प्रयत्न करा""तुमच्या बोटाची स्थिती प्रत्येक वेळी थोडीशी बदला"
@@ -601,17 +604,16 @@
"चेहरा ऑथेंटिकेशन केलेला आहे, कृपया कंफर्म दाबा""फिंगरप्रिंट हार्डवेअर उपलब्ध नाही.""फिंगरप्रिंट सेट करता आली नाही"
- "फिंगरप्रिट सेट करण्याची वेळ संपली आहे. पुन्हा प्रयत्न करा."
+ "फिंगरप्रिंट टाइमआउट झाले. पुन्हा प्रयत्न करा.""फिंगरप्रिंट ऑपरेशन रद्द झाले.""वापरकर्त्याने फिंगरप्रिंट ऑपरेशन रद्द केले."
- "खूप जास्त प्रयत्न. त्याऐवजी स्क्रीन लॉक वापरा."
- "खूप जास्त प्रयत्न. त्याऐवजी स्क्रीन लॉक वापरा."
- "फिंगरप्रिंटवर प्रक्रिया करू शकत नाही. पुन्हा प्रयत्न करा."
+ "खूप प्रयत्न केले. नंतर पुन्हा प्रयत्न करा."
+ "खूप प्रयत्न करून झाले. फिंगरप्रिंट सेन्सर बंद आहे."
+ "पुन्हा प्रयत्न करा.""कोणत्याही फिंगरप्रिंटची नोंद झाली नाही""या डिव्हाइसमध्ये फिंगरप्रिंट सेन्सर नाही.""सेन्सर तात्पुरता बंद केला आहे.""फिंगरप्रिंट सेन्सर वापरू शकत नाही. दुरुस्तीच्या सेवा पुरवठादाराला भेट द्या"
- "पॉवर बटण दाबले""%d बोट""फिंगरप्रिंट वापरा""फिंगरप्रिंट किंवा स्क्रीन लॉक वापरा"
@@ -632,33 +634,26 @@
"फिंगरप्रिंट अनलॉक""फिंगरप्रिंट सेन्सर वापरू शकत नाही""दुरुस्तीच्या सेवा पुरवठादाराला भेट द्या."
- "फेस मॉडेल तयार करू शकत नाही. पुन्हा प्रयत्न करा."
+ "अचूक फेस डेटा कॅप्चर करता आला नाही. पुन्हा करा.""खूप प्रखर. आणखी सौम्य प्रकाश वापरून पहा."
- "पुरेसा प्रकाश नाही"
- "फोन आणखी दूर हलवा"
- "फोन आणखी जवळ हलवा"
- "फोन आणखी वर हलवा"
- "फोन आणखी खाली हलवा"
- "फोन तुमच्या डावीकडे हलवा"
- "फोन तुमच्या उजवीकडे हलवा"
+ "खूप गडद. आणखी प्रखर प्रकाश वापरून पहा."
+ "फोन आणखी दूर हलवा"
+ "फोन आणखी जवळ हलवा."
+ "फोन आणखी वर हलवा."
+ "फोन आणखी खाली हलवा."
+ "फोन डावीकडे हलवा."
+ "फोन उजवीकडे हलवा.""कृपया तुमच्या डिव्हाइसकडे थेट पहा"
- "तुमचा चेहरा दिसत नाही. तुमचा फोन डोळ्याच्या पातळीवर धरा."
+ "तुमचा चेहरा थेट फोन समोर आणा.""खूप हलत आहे. फोन स्थिर धरून ठेवा.""कृपया तुमच्या चेहऱ्याची पुन्हा नोंदणी करा."
- "चेहरा ओळखू शकत नाही. पुन्हा प्रयत्न करा."
- "तुमच्या डोक्याचे स्थान किंचित बदला"
- "तुमच्या फोनकडे आणखी थेट पहा"
- "तुमच्या फोनकडे आणखी थेट पहा"
- "तुमच्या फोनकडे आणखी थेट पहा"
- "तुमचा चेहरा लपवणारे काहीही काढून टाका."
+ "चेहरा ओळखू शकत नाही. पुन्हा प्रयत्न करा."
+ "एकाच प्रकारची पोझ देत आहात कृपया तुमची पोझ बदला."
+ "तुमचे डोके थोडे कमी फिरवा."
+ "तुमचे डोके थोडे कमी तिरपे करा."
+ "तुमचे डोके थोडे कमी फिरवा."
+ "तुमचा चहेरा लपवणारे काहीही काढून टाका.""ब्लॅक बार सह तुमच्या स्क्रीनची वरची बाजू साफ करा"
-
-
-
-
- "फेस मॉडेल तयार करू शकत नाही. पुन्हा प्रयत्न करा."
- "गडद चष्मा डिटेक्ट केला. तुमचा चेहरा पूर्णपणे दृश्यमान असणे आवश्यक आहे."
- "चेहर्यावरील आच्छादन डिटेक्ट केले. तुमचा चेहरा पूर्णपणे दृश्यमान असणे आवश्यक आहे.""चेहरा पडताळू शकत नाही. हार्डवेअर उपलब्ध नाही."
@@ -698,7 +693,7 @@
"ॲपला तुमच्या शेअर केलेल्या स्टोरेजमधून इमेज फाइल वाचण्याची अनुमती देते.""तुमच्या शेअर केलेल्या स्टोरेजच्या आशयांमध्ये सुधारणा करा किंवा हटवा""ॲपला तुमच्या शेअर केलेल्या स्टोरेजचे आशय लिहिण्याची अनमती देते."
- "SIP कॉल करा/मिळवा"
+ "SIP कॉल करा/प्राप्त करा""ॲपला SIP कॉल करण्याची आणि प्राप्त करण्याची अनुमती देते.""नवीन टेलिकॉम सिम कनेक्शनची नोंदणी करा""नवीन टेलिकॉम सिम कनेक्शनची नोंदणी करण्यासाठी ॲपला अनुमती देते."
@@ -734,7 +729,7 @@
"स्पर्श स्क्रीनची कॅलिब्रेशन प्राचले सुधारित करण्यासाठी अॅप ला अनुमती देते. सामान्य अॅप्स साठी कधीही आवश्यक नसते.""DRM प्रमाणपत्रे अॅक्सेस करा""DRM प्रमाणपत्रांची तरतूद करण्यासाठी आणि वापरण्यासाठी अनुप्रयोगास अनुमती देते. सामान्य ॲप्सकरिता कधीही आवश्यकता नसते."
- "Android बीम स्थानांतरण स्थिती मिळवा"
+ "Android बीम स्थानांतरण स्थिती प्राप्त करा""वर्तमान Android बीम स्थानांतरणांविषयी माहिती प्राप्त करण्यासाठी या अनुप्रयोगास अनुमती देते""DRM प्रमाणपत्रे काढा""DRM प्रमाणपत्रे काढण्यासाठी अनुप्रयोगास अनुमती देते. सामान्य अॅप्स साठी कधीही आवश्यकता नसते."
@@ -924,14 +919,14 @@
"पुन्हा प्रयत्न करा""सर्व वैशिष्ट्ये आणि डेटासाठी अनलॉक करा""कमाल फेस अनलॉक प्रयत्न ओलांडले"
- "सिम नाही"
- "टॅबलेटमध्ये सिम नाही."
- "तुमच्या Android TV डिव्हाइसमध्ये सिम नाही."
- "फोनमध्ये सिम नाही."
- "सिम जोडा."
- "सिम गहाळ झाले आहे किंवा ते रीड करू शकत नाही. सिम जोडा."
- "वापरण्यायोग्य नसलेले सिम."
- "तुमचे सिम कायमचे डीॲक्टिव्हेट केले गेले आहे.\n दुसऱ्या सिमसाठी तुमच्या वायरलेस सेवा पुरवठादाराशी संपर्क साधा."
+ "सिम कार्ड नाही"
+ "टॅब्लेटमध्ये सिम कार्ड नाही."
+ "तुमच्या Android TV डिव्हाइसमध्ये सिम कार्ड नाही."
+ "फोनमध्ये सिम कार्ड नाही."
+ "एक सिम कार्ड घाला."
+ "सिम कार्ड गहाळ झाले आहे किंवा ते वाचनीय नाही. एक सिम कार्ड घाला."
+ "निरुपयोगी सिम कार्ड."
+ "तुमचे सिम कार्ड कायमचे अक्षम केले गेले आहे.\n दुसर्या सिम कार्डसाठी आपल्या वायरलेस सेवा प्रदात्यासह संपर्क साधा.""मागील ट्रॅक""पुढील ट्रॅक""विराम द्या"
@@ -941,10 +936,10 @@
"फास्ट फॉरवर्ड करा""फक्त आणीबाणीचे कॉल""नेटवर्क लॉक केले"
- "सिम PUK लॉक केलेले आहे."
+ "सिम कार्ड PUK-लॉक केलेले आहे.""वापरकर्ता मार्गदर्शक पहा किंवा कस्टमर केअरशी संपर्क साधा."
- "सिम लॉक केलेले आहे."
- "सिम अनलॉक करत आहे…"
+ "सिम कार्ड लॉक केलेले आहे."
+ "सिम कार्ड अनलॉक करत आहे…""तुम्ही तुमचा अनलॉक पॅटर्न %1$d वेळा अयोग्यरितीने काढला. \n\n %2$d सेकंदांमध्ये पुन्हा प्रयत्न करा.""तुम्ही तुमचा पासवर्ड %1$d वेळा अयोग्यरितीने टाइप केला आहे. \n\n %2$d सेकंदांमध्ये पुन्हा प्रयत्न करा.""तुम्ही तुमचा पिन %1$d वेळा अयोग्यरितीने टाइप केला आहे. \n\n %2$d सेकंदांमध्ये पुन्हा प्रयत्न करा."
@@ -1008,7 +1003,7 @@
"लिंक""रेखा""फॅक्टरी चाचणी अयशस्वी"
- "FACTORY_TEST कृती फक्त /सिस्टीम/अॅप मध्ये इंस्टॉल केलेल्या पॅकेजसाठी सपोर्ट आहे."
+ "FACTORY_TEST क्रिया फक्त /सिस्टम/अॅप मध्ये इंस्टॉल केलेल्या पॅकेजसाठी समर्थित आहे.""FACTORY_TEST क्रिया प्रदान करणारे कोणतेही पॅकेज आढळले नाही.""रीबूट करा""\"%s\" वरील पृष्ठ हे म्हणते:"
@@ -1246,9 +1241,10 @@
"%1$s तयार करत आहे.""अॅप्स सुरू करत आहे.""बूट समाप्त होत आहे."
+ "सेट करणे पुढे सुरू ठेवायचे का?""तुम्ही पॉवर बटण दाबले — हे सहसा स्क्रीन बंद करते.\n\nतुमचे फिंगरप्रिंट सेट करताना हलके टॅप करून पहा."
- "सेटअप संपवण्यासाठी, स्क्रीन बंद करा"
- "बंद करा"
+ "स्क्रीन बंद करा"
+ "सेट करणे सुरू ठेवा""फिंगरप्रिंट पडताळणी सुरू ठेवायची का?""तुम्ही पॉवर बटण दाबले — हे सहसा स्क्रीन बंद करते.\n\nतुमच्या फिंगरप्रिंटची पडताळणी करण्यासाठी हलके टॅप करून पहा.""स्क्रीन बंद करा"
@@ -1327,10 +1323,10 @@
"तुम्ही हे नंतर सेटिंग्ज आणि अॅप्स मध्ये बदलू शकता""नेहमी अनुमती द्या""कधीही अनुमती देऊ नका"
- "सिम काढून टाकले"
- "तुम्ही योग्य सिम वापरून रीस्टार्ट करेपर्यंत मोबाइल नेटवर्क उपलब्ध नसेल."
+ "सिम कार्ड काढले"
+ "तुम्ही एक वैध सिम कार्ड घालून सुरू करेपर्यंत मोबाइल नेटवर्क अनुपलब्ध असेल.""पूर्ण झाले"
- "सिम जोडले"
+ "सिम कार्ड जोडले""मोबाइल नेटवर्कवर अॅक्सेस करण्यासाठी तुमचे डिव्हाइस रीस्टार्ट करा.""रीस्टार्ट""मोबाइल सेवा अॅक्टिव्हेट करा"
@@ -1401,16 +1397,16 @@
"सेट करण्यासाठी टॅप करा""सेट अप करण्यासाठी निवडा""तुम्हाला डिव्हाइस पुन्हा फॉरमॅट करावे लागू शकते. बाहेर काढण्यासाठी टॅप करा."
- "फोटो, व्हिडिओ, संगीत आणि आणखी बरेच काही स्टोअर करण्यासाठी"
+ "फोटो आणि मीडिया स्थानांतरित करण्यासाठी""मीडिया फाइल ब्राउझ करा""%s सह समस्या""%s काम करत नाही""दुरुस्त करण्यासाठी टॅप करा""%s दूषित आहे. निश्चित करण्यासाठी निवडा.""तुम्हाला डिव्हाइस पुन्हा फॉरमॅट करावे लागू शकते. बाहेर काढण्यासाठी टॅप करा."
- "%s डिटेक्ट केले"
+ "%s असमर्थित""%s काम करत नाही"
- "सेट करण्यासाठी टॅप करा."
+ "हे डिव्हाइस %s ला सपोर्ट करत नाही. सपोर्ट असलेल्या फॉरमॅटमध्ये सेट करण्यासाठी टॅप करा.""सपोर्ट असलेल्या फॉरमॅटमध्ये %s सेट करण्यासाठी निवडा.""तुम्हाला डिव्हाइस पुन्हा फॉरमॅट करावे लागू शकते""%s अनपेक्षितरित्या काढले"
@@ -1438,7 +1434,7 @@
"केवळ-वाचनीय""असुरक्षितपणे काढले""दूषित झाले"
- "सपोर्ट नसलेले"
+ "समर्थित नसलेले""बाहेर काढत आहे…""फॉर्मेट करत आहे...""घातले नाही"
@@ -1609,7 +1605,7 @@
"टीव्ही""फोन""स्पीकर डॉक करा"
- "बाह्य डिव्हाइस"
+ "HDMI""हेडफोन""USB""सिस्टम"
@@ -1642,7 +1638,7 @@
"सिम आता अक्षम केले आहे. सुरू ठेवण्यासाठी PUK कोड एंटर करा. तपशीलांसाठी वाहकाशी संपर्क साधा.""इच्छित पिन कोड एंटर करा""इच्छित पिन कोड ची पुष्टी करा"
- "सिम अनलॉक करत आहे…"
+ "सिम कार्ड अनलॉक करत आहे…""अयोग्य पिन कोड.""4 ते 8 अंक असलेला पिन टाइप करा.""PUK कोड 8 संख्येचा असावा."
@@ -1687,7 +1683,7 @@
"स्क्रीन पहा आणि नियंत्रित करा""ते स्क्रीनवरील सर्व आशय वाचू शकते आणि इतर ॲप्सवर आशय प्रदर्शित करू शकते.""पहा आणि क्रिया करा"
- "हे तुम्ही ॲप किंवा हार्डवेअर सेन्सर कसे वापरता ते ट्रॅक करू शकते आणि इतर ॲप्ससोबत तुमच्या वतीने संवाद साधू शकते."
+ "तुम्ही ॲप किंवा हार्डवेअर सेन्सर कसे वापरता याचा हे मागोवा घेऊ शकते आणि इतर ॲप्ससोबत तुमच्या वतीने काम करू शकते.""अनुमती द्या""नकार द्या""वैशिष्ट्य वापरणे सुरू करण्यासाठी त्यावर टॅप करा:"
@@ -1923,7 +1919,6 @@
"प्रदेश प्राधान्य""भाषा नाव टाइप करा""सुचवलेल्या भाषा"
- "सुचवलेले""सर्व भाषा""सर्व प्रदेश""शोध"
@@ -1941,19 +1936,18 @@
"कॅमेरा उपलब्ध नाही""फोनवर पुढे सुरू ठेवा""मायक्रोफोन उपलब्ध नाही"
- "Play Store उपलब्ध नाही""Android TV सेटिंग्ज उपलब्ध नाहीत""टॅबलेट सेटिंग्ज उपलब्ध नाहीत""फोन सेटिंग्ज उपलब्ध नाहीत"
- "हे यावेळी तुमच्या %1$s वर अॅक्सेस करू शकत नाही. त्याऐवजी तुमच्या Android TV डिव्हाइसवर अॅक्सेस करून पहा."
- "हे यावेळी तुमच्या %1$s वर अॅक्सेस करू शकत नाही. त्याऐवजी तुमच्या टॅबलेटवर अॅक्सेस करून पहा."
- "हे यावेळी तुमच्या %1$s वर अॅक्सेस करू शकत नाही. त्याऐवजी तुमच्या फोनवर अॅक्सेस करून पहा."
+ "हे तुमच्या %1$s वर अॅक्सेस केले जाऊ शकत नाही. त्याऐवजी तुमच्या Android TV डिव्हाइसवर अॅक्सेस करून पहा."
+ "हे तुमच्या %1$s वर अॅक्सेस केले जाऊ शकत नाही. त्याऐवजी तुमच्या टॅबलेटवर अॅक्सेस करून पहा."
+ "हे तुमच्या %1$s वर अॅक्सेस केले जाऊ शकत नाही. त्याऐवजी तुमच्या फोनवर अॅक्सेस करून पहा."
+ "हे यावेळी तुमच्या %1$s वर अॅक्सेस केले जाऊ शकत नाही. त्याऐवजी तुमच्या Android TV डिव्हाइसवर अॅक्सेस करून पहा."
+ "हे यावेळी तुमच्या %1$s वर अॅक्सेस केले जाऊ शकत नाही. त्याऐवजी तुमच्या टॅबलेटवर अॅक्सेस करून पहा."
+ "हे यावेळी तुमच्या %1$s वर अॅक्सेस केले जाऊ शकत नाही. त्याऐवजी तुमच्या फोनवर अॅक्सेस करून पहा.""हे अॅप अतिरिक्त सुरक्षेची विनंती करत आहे. त्याऐवजी तुमच्या Android TV डिव्हाइसवर अॅक्सेस करून पहा.""हे अॅप अतिरिक्त सुरक्षेची विनंती करत आहे. त्याऐवजी तुमच्या टॅबलेटवर अॅक्सेस करून पहा.""हे अॅप अतिरिक्त सुरक्षेची विनंती करत आहे. त्याऐवजी तुमच्या फोनवर अॅक्सेस करून पहा."
- "हे तुमच्या %1$s वर अॅक्सेस केले जाऊ शकत नाही. त्याऐवजी तुमच्या Android TV डिव्हाइसवर अॅक्सेस करून पहा."
- "हे तुमच्या %1$s वर अॅक्सेस केले जाऊ शकत नाही. त्याऐवजी तुमच्या टॅबलेटवर अॅक्सेस करून पहा."
- "हे तुमच्या %1$s वर अॅक्सेस केले जाऊ शकत नाही. त्याऐवजी तुमच्या फोनवर अॅक्सेस करून पहा.""हे अॅप Android च्या जुन्या आवृत्ती साठी तयार करण्यात आले होते आणि योग्यरितीने कार्य करू शकणार नाही. अपडेट आहेत का ते तपासून पहा, किंवा डेव्हलपरशी संपर्क साधण्याचा प्रयत्न करा.""अपडेटसाठी तपासा""आपल्याकडे नवीन मेसेज आहेत"
@@ -2044,10 +2038,9 @@
"तरीही उघडा""हानिकारक अॅप आढळला""%s ला सर्व डिव्हाइस लॉग अॅक्सेस करण्याची अनुमती द्यायची आहे का?"
- "एक वेळ अॅक्सेसची अनुमती द्या"
+ "एक-वेळ अॅक्सेसची अनुमती द्या""अनुमती देऊ नका"
- "तुमच्या डिव्हाइसवर काय होते ते डिव्हाइस लॉग रेकॉर्ड करते. समस्या शोधण्यासाठी आणि त्यांचे निराकरण करण्याकरिता ॲप्स हे लॉग वापरू शकतात.\n\nकाही लॉगमध्ये संवेदनशील माहिती असू शकते, त्यामुळे फक्त तुमचा विश्वास असलेल्या ॲप्सना सर्व डिव्हाइस लॉग अॅक्सेस करण्याची अनुमती द्या. \n\nतुम्ही या ॲपला सर्व डिव्हाइस लॉग अॅक्सेस करण्याची अनुमती न दिल्यास, ते तरीही त्याचा स्वतःचा लॉग अॅक्सेस करू शकते. तुमच्या डिव्हाइसचा उत्पादक तरीही काही लॉग किंवा तुमच्या डिव्हाइसवरील माहिती अॅक्सेस करू शकतो."
- "तुमच्या डिव्हाइसवर काय होते ते डिव्हाइस लॉग रेकॉर्ड करते. समस्या शोधण्यासाठी आणि त्यांचे निराकरण करण्याकरिता ॲप्स हे लॉग वापरू शकतात.\n\nकाही लॉगमध्ये संवेदनशील माहिती असू शकते, त्यामुळे फक्त तुमचा विश्वास असलेल्या ॲप्सना सर्व डिव्हाइस लॉग अॅक्सेस करण्याची अनुमती द्या. \n\nतुम्ही या ॲपला सर्व डिव्हाइस लॉग अॅक्सेस करण्याची अनुमती न दिल्यास, ते तरीही त्याचा स्वतःचा लॉग अॅक्सेस करू शकते. तुमच्या डिव्हाइसचा उत्पादक तरीही काही लॉग किंवा तुमच्या डिव्हाइसवरील माहिती अॅक्सेस करू शकतो.\n\ng.co/android/devicelogs येथे अधिक जाणून घ्या."
+ "तुमच्या डिव्हाइसवर काय होते ते डिव्हाइस लॉग रेकॉर्ड करते. समस्या शोधण्यासाठी आणि त्यांचे निराकरण करण्याकरिता ॲप्स हे लॉग वापरू शकतात.\n\nकाही लॉगमध्ये संवेदनशील माहिती असू शकते, त्यामुळे फक्त तुमचा विश्वास असलेल्या ॲप्सना सर्व डिव्हाइस लॉग अॅक्सेस करण्याची अनुमती द्या. \n\nतुम्ही या ॲपला सर्व डिव्हाइस लॉग अॅक्सेस करण्याची अनुमती न दिल्यास, ते तरीही त्याचा स्वतःचा लॉग अॅक्सेस करू शकते. तुमच्या डिव्हाइसचा उत्पादक तरीही काही लॉग किंवा तुमच्या डिव्हाइसवरील माहिती अॅक्सेस करू शकतो. अधिक जाणून घ्या""पुन्हा दाखवू नका""%1$s ला %2$s चे तुकडे दाखवायचे आहेत""संपादित करा"
@@ -2060,7 +2053,8 @@
"व्यत्यय आणू नका बदलले आहे""काय ब्लॉक केले आहे हे तपासण्यासाठी टॅप करा.""सूचना सेटिंग्जचे पुनरावलोकन करा"
- "Android 13 पासून, तुम्ही त्यामध्ये इंस्टॉल केलेल्या अॅप्सना सूचना पाठवण्यासाठी तुमच्या परवानगीची आवश्यकता आहे. सध्याच्या अॅप्ससाठी ही परवानगी बदलण्याकरिता टॅप करा."
+
+ "मला आठवण करून द्या""डिसमिस करा""सिस्टम"
@@ -2288,6 +2282,5 @@
"ॲक्टिव्ह ॲप्स पहा""तुमच्या %1$s वरून फोनचा कॅमेरा अॅक्सेस करू शकत नाही""तुमच्या %1$s वरून टॅबलेटचा कॅमेरा अॅक्सेस करू शकत नाही"
- "स्ट्रीम करताना हे अॅक्सेस केले जाऊ शकत नाही. त्याऐवजी तुमच्या फोनवर अॅक्सेस करून पहा."
- "सिस्टीम डीफॉल्ट"
+ "सिस्टीम भाषा"
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index 459ce09ef9017ed5e9aa42e67ef16c4589e9738a..c1b479c76a2afa343581b86d1d97f6bbb1b6ebb2 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -20,7 +20,12 @@
- "B"
+ "B."
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Tidak bertajuk>""(Tiada nombor telefon)"
@@ -28,7 +33,6 @@
"Mel suara""MSISDN1""Masalah sambungan atau kod MMI tidak sah"
- "Ciri tidak disokong.""Pengendalian dihadkan kepada nombor dailan tetap sahaja.""Tidak dapat mengubah tetapan pemajuan panggilan daripad telefon anda semasa dalam perayauan.""Perkhidmatan telah didayakan."
@@ -43,8 +47,8 @@
"PIN yang anda taip tidak sepadan.""Taipkan PIN yang mengandungi 4 hingga 8 nombor.""Taipkan PUK yang mempunyai 8 nombor atau lebih panjang."
- "SIM anda dikunci PUK. Taip kod PUK untuk membuka kunci SIM."
- "Taip PUK2 untuk menyahsekat SIM."
+ "Kad SIM anda dikunci PUK. Taipkan kod PUK untuk membuka kuncinya."
+ "Taipkan PUK2 untuk menyahsekat kad SIM.""Tidak berjaya, dayakan Kunci SIM/RUIM."Anda ada %d cubaan lagi sebelum SIM dikunci.
@@ -297,16 +301,16 @@
"mengakses kenalan anda""Lokasi""mengakses lokasi peranti ini"
- "Calendar"
+ "Kalendar""mengakses kalendar""SMS""menghantar dan melihat mesej SMS"
- "Fail"
- "akses fail pada peranti anda"
- "Muzik dan audio"
- "akses muzik dan audio pada peranti anda"
- "Foto dan video"
- "akses foto dan video pada peranti anda"
+ "Fail & dokumen"
+ "akses fail dan dokumen pada peranti anda"
+ "Muzik & audio lain"
+ "berikan akses fail audio pada peranti anda"
+ "Foto & video"
+ "berikan akses imej dan fail video pada peranti anda""Mikrofon""rakam audio""Aktiviti fizikal"
@@ -582,14 +586,13 @@
"Gunakan kunci skrin""Masukkan kunci skrin untuk teruskan""Tekan dengan kuat pada penderia"
- "Tidak dapat mengecam cap jari. Cuba lagi."
+ "Tidak dapat memproses cap jari. Sila cuba lagi.""Bersihkan penderia cap jari dan cuba lagi""Bersihkan penderia dan cuba lagi""Tekan dengan kuat pada penderia""Jari digerakkan terlalu perlahan. Sila cuba lagi.""Cuba cap jari lain""Terlalu terang"
- "Penekanan Kuasa dikesan""Cuba selaraskan""Tukar sedikit kedudukan jari anda setiap kali pergerakan dilakukan"
@@ -601,17 +604,16 @@
"Wajah disahkan, sila tekan sahkan""Perkakasan cap jari tidak tersedia.""Tidak dapat menyediakan cap jari"
- "Persediaan cap jari telah tamat masa. Cuba lagi."
+ "Sudah tamat masa untuk cap jari. Cuba lagi""Pengendalian cap jari dibatalkan.""Pengendalian cap jari dibatalkan oleh pengguna."
- "Terlalu banyak percubaan. Gunakan kunci skrin."
- "Terlalu banyak percubaan. Gunakan kunci skrin."
- "Tidak dapat memproses cap jari. Cuba lagi."
+ "Terlalu banyak percubaan. Cuba sebentar lagi."
+ "Terlalu banyak percubaan. Penderia cap jari dilumpuhkan."
+ "Cuba lagi.""Tiada cap jari didaftarkan.""Peranti ini tiada penderia cap jari.""Penderia dilumpuhkan sementara.""Tidak boleh menggunakan penderia cap jari. Lawati penyedia pembaikan"
- "Butang kuasa ditekan""Jari %d""Gunakan cap jari""Gunakan cap jari atau kunci skrin"
@@ -632,33 +634,26 @@
"Buka Kunci Cap Jari""Tidak boleh menggunakan penderia cap jari""Lawati penyedia pembaikan."
- "Tidak dapat membuat model wajah anda. Cuba lagi."
+ "Gagal menangkap data wajah dgn tepat. Cuba lagi.""Terlalu terang. Cuba pencahayaan yang lebih lembut."
- "Cahaya tidak mencukupi"
- "Jauhkan telefon"
- "Dekatkan telefon"
- "Tinggikan lagi telefon"
- "Rendahkan lagi telefon"
- "Gerakkan telefon ke kiri anda"
- "Gerakkan telefon ke kanan anda"
+ "Terlalu gelap. Cuba pencahayaan yang lebih cerah."
+ "Jauhkan telefon."
+ "Dekatkan telefon."
+ "Tinggikan lagi telefon."
+ "Rendahkan lagi telefon."
+ "Alihkan telefon ke kiri."
+ "Alihkan telefon ke kanan.""Sila lihat terus pada peranti anda."
- "Gagal mengesan wajah anda. Pegang telefon anda pada paras mata."
+ "Letakkan wajah anda betul-betul di depan telefon.""Terlalu bnyk gerakan. Pegang telefon dgn stabil.""Sila daftarkan semula wajah anda."
- "Tidak dapat mengecam wajah. Cuba lagi."
- "Tukar sedikit kedudukan kepala anda"
- "Lihat terus pada telefon anda"
- "Lihat terus pada telefon anda"
- "Lihat terus pada telefon anda"
- "Alih keluar apa-apa yang melindungi wajah anda."
+ "Tidak lagi dapat mengecam wajah. Cuba lagi."
+ "Terlalu serupa, sila ubah lagak gaya anda."
+ "Pusingkan kepala anda kurang sedikit."
+ "Sengetkan kepala anda kurang sedikit."
+ "Pusingkan kepala anda kurang sedikit."
+ "Alih keluar apa saja yang melindungi wajah anda.""Bersihkan bahagian atas skrin anda, termasuk bar hitam"
-
-
-
-
- "Tidak dapat membuat model wajah anda. Cuba lagi."
- "Cermin mata gelap dikesan. Wajah anda mesti terlihat sepenuhnya."
- "Pelitup muka dikesan. Wajah anda mesti terlihat sepenuhnya.""Tdk dpt sahkan wajah. Perkakasan tidak tersedia."
@@ -924,14 +919,14 @@
"Cuba lagi""Buka kunci semua ciri dan data""Telah melepasi had cubaan Buka Kunci Wajah"
- "Tiada SIM"
- "Tiada SIM dalam tablet."
- "Tiada SIM dalam peranti Android TV anda."
- "Tiada SIM dalam telefon."
- "Tambah SIM."
- "SIM tiada atau tidak boleh dibaca. Tambah SIM."
- "SIM tidak boleh digunakan."
- "SIM anda telah dinyahaktifkan secara kekal.\n Hubungi penyedia perkhidmatan wayarles anda untuk mendapatkan SIM lain."
+ "Tiada kad SIM"
+ "Tiada kad SIM dalam tablet."
+ "Tiada kad SIM dalam peranti Android TV anda."
+ "Kad SIM tiada dalam telefon."
+ "Masukkan kad SIM."
+ "Kad SIM tiada atau tidak boleh dibaca. Sila masukkan kad SIM."
+ "Kad SIM tidak boleh digunakan."
+ "Kad SIM anda telah dilumpuhkan secara kekal.\n Hubungi pembekal perkhidmatan wayarles anda untuk mendapatkan kad SIM lain.""Lagu sebelumnya""Lagu seterusnya""Jeda"
@@ -941,10 +936,10 @@
"Mara laju""Panggilan kecemasan sahaja""Rangkaian dikunci"
- "SIM dikunci PUK."
+ "Kad SIM dikunci dengan PUK.""Lihat Panduan Pengguna atau hubungi Penjagaan Pelanggan."
- "SIM dikunci."
- "Membuka kunci SIM…"
+ "Kad SIM dikunci."
+ "Membuka kunci kad SIM...""Anda telah tersilap melukis corak buka kunci anda sebanyak %1$d kali. \n\nSila cuba lagi dalam %2$d saat.""Anda telah menaip kata laluan yang salah sebanyak %1$d kali. \n\nCuba lagi dalam %2$d saat.""Anda telah menaip PIN yang salah sebanyak %1$d kali. \n\nCuba lagi dalam %2$d saat."
@@ -1246,9 +1241,10 @@
"Menyediakan %1$s.""Memulakan apl.""But akhir."
+ "Teruskan persediaan?""Anda menekan butang kuasa — tindakan ini biasanya mematikan skrin.\n\nCuba ketik dengan perlahan semasa menetapkan cap jari anda."
- "Untuk tamatkan persediaan, matikan skrin"
- "Matikan"
+ "Matikan skrin"
+ "Teruskan persediaan""Terus mengesahkan cap jari anda?""Anda menekan butang kuasa — tindakan ini biasanya mematikan skrin.\n\nCuba ketik dengan perlahan untuk mengesahkan cap jari anda.""Matikan skrin"
@@ -1327,10 +1323,10 @@
"Anda boleh menukar ini nanti dalam Tetapan > Apl""Sentiasa Benarkan""Jangan Benarkan"
- "SIM dialih keluar"
- "Rangkaian mudah alih tidak akan tersedia sehingga anda memulakan semula dengan SIM yang sah."
+ "Kad SIM dikeluarkan"
+ "Rangkaian mudah alih tidak akan tersedia sehingga anda mula semula dengan kad SIM yang sah dimasukkan.""Selesai"
- "SIM ditambah"
+ "Kad SIM ditambah""Mulakan semula peranti anda untuk mengakses rangkaian mudah alih.""Mulakan semula""Aktifkan perkhidmatan mudah alih"
@@ -1401,16 +1397,16 @@
"Ketik untuk menyediakan""Pilih untuk penyediaan""Anda mungkin perlu memformatkan semula peranti. Ketik untuk mengeluarkan media."
- "Untuk menyimpan foto, video, muzik dan banyak lagi"
+ "Untuk memindahkan foto dan media""Semak imbas fail media""Isu dengan %s""%s tidak berfungsi""Ketik untuk menyelesaikan masalah""%s rosak. Pilih untuk baiki.""Anda mungkin perlu memformatkan semula peranti. Ketik untuk mengeluarkan media."
- "%s dikesan"
+ "%s tidak disokong""%s tidak berfungsi"
- "Ketik untuk membuat persediaan."
+ "Peranti ini tidak menyokong %s ini. Ketik untuk menyediakannya dalam format yang disokong.""Pilih untuk menyediakan %s dalam format yang disokong.""Anda mungkin perlu memformatkan semula peranti""%s ditanggalkan tanpa dijangka"
@@ -1480,7 +1476,7 @@
"Penyegerakan""Kebolehaksesan""Kertas dinding"
- "Tukar hiasan latar"
+ "Tukar kertas dinding""Pendengar pemberitahuan""Pendengar VR""Pembekal keadaan"
@@ -1609,7 +1605,7 @@
"TV""Telefon""Pembesar suara dok"
- "Peranti Luar"
+ "HDMI""Fon kepala""USB""Sistem"
@@ -1642,7 +1638,7 @@
"Kini SIM dilumpuhkan. Masukkan kod PUK untuk meneruskan. Hubungi pembawa untuk butiran.""Masukkan kod PIN yang diingini""Sahkan kod PIN yang diingini"
- "Membuka kunci SIM…"
+ "Membuka kunci kad SIM...""Kod PIN salah.""Taipkan PIN yang mengandungi 4 hingga 8 nombor.""Kod PUK mestilah 8 nombor."
@@ -1687,7 +1683,7 @@
"Melihat dan mengawal skrin""Ciri ini boleh membaca semua kandungan pada skrin dan memaparkan kandungan di atas apl lain.""Lihat dan laksanakan tindakan"
- "Ciri ini boleh menjejak interaksi anda dengan apl atau penderia perkakasan dan berinteraksi dengan apl bagi pihak anda."
+ "Tindakan ini boleh menjejak interaksi anda dengan apl atau penderia perkakasan dan berinteraksi dengan apl bagi pihak anda.""Benarkan""Tolak""Ketik ciri untuk mula menggunakan ciri itu:"
@@ -1923,7 +1919,6 @@
"Pilihan wilayah""Taipkan nama bahasa""Dicadangkan"
- "Dicadangkan""Semua bahasa""Semua rantau""Cari"
@@ -1941,19 +1936,18 @@
"Kamera tidak tersedia""Teruskan pada telefon""Mikrofon tidak tersedia"
- "Play Store tidak tersedia""Tetapan Android TV tidak tersedia""Tetapan tablet tidak tersedia""Tetapan telefon tidak tersedia"
- "Aplikasi ini tidak boleh diakses pada %1$s anda pada masa ini. Cuba pada peranti Android TV anda."
- "Aplikasi ini tidak boleh diakses pada %1$s anda pada masa ini. Cuba pada tablet anda."
- "Aplikasi ini tidak boleh diakses pada %1$s anda pada masa ini. Cuba pada telefon anda."
+ "Apl ini tidak boleh diakses pada %1$s. Cuba pada peranti Android TV anda."
+ "Apl ini tidak boleh diakses pada %1$s. Cuba pada tablet anda."
+ "Apl ini tidak boleh diakses pada %1$s. Cuba pada telefon anda."
+ "Aplikasi ini tidak boleh diakses pada %1$s anda pada masa ini. Cuba pada peranti Android TV anda."
+ "Aplikasi ini tidak boleh diakses pada %1$s anda pada masa ini. Cuba pada tablet anda."
+ "Aplikasi ini tidak boleh diakses pada %1$s anda pada masa ini. Cuba pada telefon anda.""Apl ini meminta keselamatan tambahan. Cuba pada peranti Android TV anda.""Apl ini meminta keselamatan tambahan. Cuba pada tablet anda.""Apl ini meminta keselamatan tambahan. Cuba pada telefon anda."
- "Apl ini tidak boleh diakses pada %1$s anda. Cuba pada peranti Android TV anda."
- "Apl ini tidak boleh diakses pada %1$s anda. Cuba pada tablet anda."
- "Apl ini tidak boleh diakses pada %1$s anda. Cuba pada telefon anda.""Apl ini dibina untuk versi Android yang lebih lama dan mungkin tidak berfungsi dengan betul. Cuba semak kemas kini atau hubungi pembangun.""Semak kemaskinian""Anda mempunyai mesej baharu"
@@ -2044,10 +2038,9 @@
"BUKA JUGA""Apl berbahaya dikesan""Benarkan %s mengakses semua log peranti?"
- "Benarkan akses satu kali"
+ "Benarkan akses sekali""Jangan benarkan"
- "Log peranti merekodkan perkara yang berlaku pada peranti anda. Apl dapat menggunakan log ini untuk menemukan dan membetulkan isu.\n\nSesetengah log mungkin mengandungi maklumat sensitif, jadi benarkan apl yang anda percaya sahaja untuk mengakses semua log peranti. \n\nJika anda tidak membenarkan apl ini mengakses semua log peranti, apl masih boleh mengakses log sendiri. Pengilang peranti anda mungkin masih dapat mengakses sesetengah log atau maklumat pada peranti anda."
- "Log peranti merekodkan perkara yang berlaku pada peranti anda. Apl boleh menggunakan log ini untuk menemukan dan membetulkan masalah.\n\nSesetengah log mungkin mengandungi maklumat sensitif, jadi hanya benarkan apl yang anda percaya untuk mengakses semua log peranti. \n\nJika anda tidak membenarkan apl ini mengakses semua log peranti, apl ini masih boleh mengakses log sendiri. Pengilang peranti anda mungkin masih dapat mengakses sesetengah log atau maklumat pada peranti anda.\n\nKetahui lebih lanjut di g.co/android/devicelogs."
+ "Log peranti merekodkan perkara yang berlaku pada peranti anda. Apl dapat menggunakan log ini untuk menemukan dan membetulkan isu.\n\nSesetengah log mungkin mengandungi maklumat sensitif, jadi benarkan apl yang anda percaya sahaja untuk mengakses semua log peranti. \n\nJika anda tidak membenarkan apl ini mengakses semua log peranti, apl masih boleh mengakses log sendiri. Pengilang peranti anda mungkin masih boleh mengakses sesetengah log atau maklumat pada peranti anda. Ketahui lebih lanjut""Jangan tunjuk lagi""%1$s mahu menunjukkan %2$s hirisan""Edit"
@@ -2060,7 +2053,8 @@
"Jangan Ganggu telah berubah""Ketik untuk menyemak item yang disekat.""Semak tetapan pemberitahuan"
- "Bermula dengan Android 13, apl yang anda pasang memerlukan kebenaran anda untuk menghantar pemberitahuan. Ketik untuk menukar kebenaran ini bagi apl sedia ada."
+
+ "Ingatkan saya nanti""Ketepikan""Sistem"
@@ -2288,6 +2282,5 @@
"Semak apl aktif""Tidak dapat mengakses kamera telefon daripada %1$s anda""Tidak dapat mengakses kamera tablet daripada %1$s anda"
- "Kandungan ini tidak boleh diakses semasa penstriman. Cuba pada telefon anda."
- "Lalai sistem"
+ "Bahasa sistem"
diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml
index bdc57e9b0bbe823482e15bb81b74dadd46cd96e5..13459810098b8825f38349aad2bd6a3a50ae48ae 100644
--- a/core/res/res/values-my/strings.xml
+++ b/core/res/res/values-my/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<ခေါင်းစဉ်မဲ့>""(ဖုန်းနံပါတ်မရှိပါ)"
@@ -28,7 +33,6 @@
"အသံမေးလ်""MSISDN1""ဆက်သွယ်မှုဆိုင်ရာပြသနာ သို့မဟုတ် မမှန်ကန်သောMMIကုတ်"
- "ဝန်ဆောင်မှုကို မပံ့ပိုးပါ။""သတ်မှတ်ခေါ်ဆိုနိုင်သောနံပါတ်များထံသာ ကန့်သတ်ထားသည်""ကွန်ရက်ပြင်ပဒေတာအသုံးပြုခြင်းကို ဖွင့်ထားသည့်အခါ သင့်ဖုန်းမှနေ၍ ခေါ်ဆိုမှုထပ်ဆင့်ပို့ခြင်းဆက်တင်အား ပြောင်း၍မရပါ။""ဝန်ဆောင်မှု လုပ်ဆောင်နိုင်မည်"
@@ -43,8 +47,8 @@
"သင် ရိုက်ထည့်ခဲ့သည့် PIN များ မတိုက်ဆိုင်ပါ။""နံပါတ်(၄)ခုမှ(၈)ခုအထိပါရှိသော ပင်နံပါတ်အားထည့်ပါ""နံပါတ်(၈)ခုသို့မဟုတ် ထိုထက်ရှည်သောသော PUKအားထည့်သွင်းပါ"
- "ဆင်းမ်၏ ပင်နံပါတ်ပြန်ဖွင့်သည့် ကုဒ်ကို လော့ခ်ချထားသည်။ ၎င်းကိုဖွင့်ရန် ပင်နံပါတ်ပြန်ဖွင့်သည့် ကုဒ်ကို ထည့်ပါ။"
- "ဆင်းမ်ကိုဖွင့်ရန် ပင်နံပါတ်ပြန်ဖွင့်သည့် ကုဒ် ၂ ကို ထည့်ပါ။"
+ "ဆင်းမ်ကတ် ရဲ့ ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ် သော့ကျနေပါသည်။ ဖွင့်ရန် ကုဒ်အားထည့်သွင်းပါ။"
+ "ဆင်းမ်ကတ်အားမပိတ်ရန် PUK2 အားထည့်သွင်းပါ""မအောင်မြင်ပါ, SIM/RUIM သော့ကို အရင် သုံးခွင့်ပြုရန်"ဆင်းမ်ကတ် သော့မချခင် သင့်တွင် %d ခါ ကြိုးစားခွင့်များကျန်ပါသေးသည်။
@@ -244,7 +248,7 @@
"အမှားရှာပြင် မှတ်တမ်း""စက်ရှင် ပြီးဆုံးပြီ""ဖန်သားပြင်ဓာတ်ပုံ"
- "ချွတ်ယွင်းမှတ်တမ်း"
+ "ချွတ်ယွင်းမှုအစီရင်ခံစာ""သင့်ရဲ့ လက်ရှိ စက်အခြေအနေ အချက်အလက်များကို အီးမေးလ် အနေဖြင့် ပေးပို့ရန် စုဆောင်းပါမည်။ အမှားရှာဖွေပြင်ဆင်မှုမှတ်တမ်းမှ ပေးပို့ရန် အသင့်ဖြစ်သည်အထိ အချိန် အနည်းငယ်ကြာမြင့်မှာ ဖြစ်သဖြင့် သည်းခံပြီး စောင့်ပါရန်""လက်ငင်းတုံ့ပြန်နိုင်သည့် အစီရင်ခံချက်""အခြေအနေတော်တော်များများတွင် ၎င်းကိုအသုံးပြုပါ။ ၎င်းသည် အစီရင်ခံစာကို မှတ်သားခြင်း၊ ပြဿနာအကြောင်း နောက်ထပ်အသေးစိတ်များကို ထည့်သွင်းခြင်းနှင့် မျက်နှာပြင်ပုံဖမ်းယူခြင်းတို့ကို ပြုလုပ်ခွင့်ပေးပါသည်။ ပေးပို့ရန် အလွန်ကြာပြီး အသုံးပြုခြင်းနည်းပါးသည့်အပိုင်းကို ၎င်းက ချန်ခဲ့နိုင်ပါသည်။"
@@ -262,7 +266,7 @@
"ဆက်တင်များ""အကူအညီ""အသံ အကူအညီ"
- "လော့ခ်ဒေါင်း"
+ "ချိတ်ပိတ်ရန်""၉၉၉+""အကြောင်းကြားချက်အသစ်""ပကတိအသွင်ကီးဘုတ်"
@@ -301,12 +305,12 @@
"သင့်ပြက္ခဒိန်အား ဝင်ရောက်သုံးရန်""SMS စာတိုစနစ်""SMS စာများကို ပို့ကာ ကြည့်မည်"
- "ဖိုင်များ"
- "သင့်စက်တွင် ဖိုင်များသုံးနိုင်သည်"
- "တေးဂီတနှင့် အသံ"
- "သင့်စက်တွင် တေးဂီတနှင့် အသံများ ဖွင့်နိုင်သည်"
- "ဓာတ်ပုံနှင့် ဗီဒီယိုများ"
- "သင့်စက်တွင် ဓာတ်ပုံနှင့် ဗီဒီယိုများ ဖွင့်နိုင်သည်"
+ "ဖိုင်နှင့် မှတ်တမ်းများ"
+ "သင့်စက်ရှိ ဖိုင်နှင့် မှတ်တမ်းများ သုံးခွင့်"
+ "သီချင်းနှင့် အခြားအသံဖိုင်"
+ "သင့်စက်ပေါ်ရှိ အသံဖိုင်များကို သုံးနိုင်သည်"
+ "ဓာတ်ပုံနှင့် ဗီဒီယိုများ"
+ "သင့်စက်ပေါ်ရှိ ပုံနှင့် ဗီဒီယိုဖိုင်များကို သုံးနိုင်သည်""မိုက်ခရိုဖုန်း""အသံဖမ်းခြင်း""ကိုယ်ခန္ဓာလှုပ်ရှားမှု"
@@ -346,7 +350,7 @@
"လော့ခ်ချထားသော စက်ပစ္စည်းပေါ်တွင် အကြောင်းကြားချက်များကို ဖန်သားပြင်အပြည့် လုပ်ဆောင်ချက်များအဖြစ် ပြခြင်း""လော့ခ်ချထားသော စက်ပစ္စည်းပေါ်တွင် အကြောင်းကြားချက်များကို ဖန်သားပြင်အပြည့် လုပ်ဆောင်ချက်များအဖြစ် ပြရန် အက်ပ်ကို ခွင့်ပြုသည်""ဖြတ်လမ်းလင့်ခ်များ ထည့်သွင်းခြင်း"
- "အပလီကေးရှင်းအား အသုံးပြုသူ၏ လုပ်ဆောင်ချက်မပါဘဲ ပင်မစာမျက်နှာ ဖြတ်လမ်းလင့်ခ်များကို ထည့်သွင်းခွင့်ပေးသည်။"
+ "အပလီကေးရှင်းအား အသုံးပြုသူ လုပ်ဆောင်ခြင်း မပါပဲ ပင်မ မြင်ကွင်းအား ပြောင်းလဲခွင့် ပေးခြင်း""အတိုကောက်များ ဖယ်ထုတ်ခြင်း""အပလီကေးရှင်းအား အသုံးပြုသူ လုပ်ဆောင်ခြင်း မပါပဲ ပင်မ မြင်ကွင်းအား ဖယ်ရှားခွင့် ပေးခြင်း""အထွက် ခေါ်ဆိုမှုများအား လမ်းလွှဲပြောင်းခြင်း"
@@ -582,16 +586,15 @@
"ဖန်သားပြင်လော့ခ်ချခြင်းကို သုံးခြင်း""ရှေ့ဆက်ရန် သင်၏ဖန်သားပြင် လော့ခ်ချခြင်းကို ထည့်ပါ""အာရုံခံကိရိယာပေါ်တွင် သေချာဖိပါ"
- "လက်ဗွေကို မမှတ်မိပါ။ ထပ်စမ်းကြည့်ပါ။"
+ "လက်ဗွေယူ၍ မရပါ။ ထပ်စမ်းကြည့်ပါ။""လက်ဗွေ အာရုံခံကိရိယာကို သန့်ရှင်းပြီး ထပ်စမ်းကြည့်ပါ""အာရုံခံကိရိယာကို သန့်ရှင်းပြီး ထပ်စမ်းကြည့်ပါ""အာရုံခံကိရိယာပေါ်တွင် သေချာဖိပါ""လက်ညှိုးအလွန်နှေးကွေးစွာ ရွေ့ခဲ့သည်။ ကျေးဇူးပြု၍ ထပ်မံကြိုးစားပါ။""အခြားလက်ဗွေဖြင့် စမ်းကြည့်ပါ""အလွန် လင်းသည်"
- "ဖွင့်ပိတ်ခလုတ် နှိပ်လိုက်သည်""ပြင်ဆင်ကြည့်ပါ"
- "အကြိမ်တိုင်း သင့်လက်ချောင်း၏ အနေအထားကို အနည်းငယ်ပြောင်းပါ"
+ "အကြိမ်တိုင်း သင့်လက်ချောင်း၏တည်နေရာကို အနည်းငယ်ပြောင်းပါ""လက်ဗွေကို မသိရှိပါ"
@@ -601,17 +604,16 @@
"မျက်နှာ အထောက်အထားစိစစ်ပြီးပြီ၊ အတည်ပြုရန်ကို နှိပ်ပါ""လက်ဗွေ စက်ပစ္စည်းမရနိုင်ပါ။""လက်ဗွေကို စနစ်ထည့်သွင်း၍ မရပါ"
- "လက်ဗွေစနစ်ထည့်သွင်းချိန် ကုန်သွားပါပြီ။ ထပ်စမ်းကြည့်ပါ။"
+ "လက်ဗွေယူချိန်ကုန် သွားပါသည်။ ထပ်စမ်းကြည့်ပါ။""လက်ဗွေယူခြင်း ပယ်ဖျက်လိုက်သည်။""လက်ဗွေဖြင့် အထောက်အထားစိစစ်ခြင်းကို အသုံးပြုသူက ပယ်ဖျက်ထားသည်။"
- "ကြိုးပမ်းမှုအကြိမ်ရေ များလွန်းသည်။ ဖန်သားပြင်လော့ခ်ချခြင်းကို အစားထိုးသုံးပါ။"
- "ကြိုးပမ်းမှုအကြိမ်ရေ များလွန်းသည်။ ဖန်သားပြင်လော့ခ်ချခြင်းကို အစားထိုးသုံးပါ။"
- "လက်ဗွေကို လုပ်ဆောင်နိုင်ခြင်းမရှိပါ။ ထပ်စမ်းကြည့်ပါ။"
+ "ကြိုးစာမှု အကြိမ်များနေ၏။ နောက်မှ ထပ်မံကြိုးစားပါ။"
+ "အကြိမ်အရေအတွက် အလွန်များနေပါပြီ။ လက်ဗွေအာရုံခံကိရိယာ ပိတ်ထားပါသည်။"
+ "ပြန်ကြိုးစားပါ""မည်သည့် လက်ဗွေကိုမျှ ထည့်သွင်းမထားပါ။""ဤစက်တွင် လက်ဗွေအာရုံခံကိရိယာ မရှိပါ။""အာရုံခံကိရိယာကို ယာယီပိတ်ထားသည်။""လက်ဗွေ အာရုံခံကိရိယာကို အသုံးပြု၍ မရပါ။ ပြုပြင်ရေး ဝန်ဆောင်မှုပေးသူထံသို့ သွားပါ"
- "ဖွင့်ပိတ်ခလုတ် နှိပ်ထားသည်""လက်ချောင်း %d""လက်ဗွေ သုံးခြင်း""လက်ဗွေ (သို့) ဖန်သားပြင်လော့ခ်ချခြင်းကို သုံးခြင်း"
@@ -632,33 +634,26 @@
"လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း""လက်ဗွေ အာရုံခံကိရိယာကို အသုံးပြု၍ မရပါ""ပြုပြင်ရေး ဝန်ဆောင်မှုပေးသူထံသို့ သွားပါ။"
- "သင့်မျက်နှာနမူနာ ပြုလုပ်၍မရပါ။ ထပ်စမ်းကြည့်ပါ။"
+ "မျက်နှာဒေတာ အမှန် မရိုက်ယူနိုင်ပါ၊ ထပ်စမ်းကြည့်ပါ။""အလွန် လင်းသည်။ အလင်းလျှော့ကြည့်ပါ။"
- "အလင်းရောင် အားနည်းသည်"
- "ဖုန်းကို အဝေးသို့ခွာပါ"
- "ဖုန်းကို အနားသို့ပိုတိုးပါ"
- "ဖုန်းကို ပိုမြှင့်လိုက်ပါ"
- "ဖုန်းကို အောက်ပိုနှိမ့်ပါ"
- "ဖုန်းကို သင့်ဘယ်ဘက်သို့ ရွှေ့ပါ"
- "ဖုန်းကို သင့်ညာဘက်သို့ ရွှေ့ပါ"
+ "အလွန်မှောင်သည်။ ပိုလင်းအောင် လုပ်ကြည့်ပါ။"
+ "ဖုန်းကို အဝေးသို့ခွာပါ။"
+ "ဖုန်းကို အနားသို့ ပိုတိုးပါ။"
+ "ဖုန်းကို ပိုမြှင့်လိုက်ပါ။"
+ "ဖုန်းကို အောက်ပိုနှိမ့်ပါ။"
+ "ဖုန်းကို ဘယ်ဘက်သို့ရွှေ့ပါ။"
+ "ဖုန်းကို ညာဘက်သို့ ရွှေ့ပါ။""သင့်စက်ပစ္စည်းကို တည့်တည့်ကြည့်ပါ။"
- "သင့်မျက်နှာကို မမြင်ရပါ။ ဖုန်းကို မျက်လုံးနှင့် တစ်တန်းတည်းထား၍ ကိုင်ပါ။"
+ "မျက်နှာကို ဖုန်းရှေ့တွင် တည့်အောင်ထားပါ။""လှုပ်လွန်းသည်။ ဖုန်းကို ငြိမ်ငြိမ်ကိုင်ပါ။""သင့်မျက်နှာကို ပြန်စာရင်းသွင်းပါ။"
- "မျက်နှာကို မသိပါ။ ထပ်စမ်းကြည့်ပါ။"
- "ခေါင်းအနေအထားကို အနည်းငယ်ပြောင်းပါ"
- "သင့်ဖုန်းကို တည့်တည့်ကြည့်ပါ"
- "သင့်ဖုန်းကို တည့်တည့်ကြည့်ပါ"
- "သင့်ဖုန်းကို တည့်တည့်ကြည့်ပါ"
+ "မျက်နှာ မမှတ်သားနိုင်တော့ပါ။ ထပ်စမ်းကြည့်ပါ။"
+ "ဆင်တူနေသည်၊ အမူအရာ ပြောင်းပါ။"
+ "ခေါင်းကို သိပ်မလှည့်ပါနှင့်။"
+ "သင့်ခေါင်းကို သိပ်မလှည့်ပါနှင့်။"
+ "ခေါင်းကို သိပ်မလှည့်ပါနှင့်။""သင့်မျက်နှာကို ကွယ်နေသည့်အရာအားလုံး ဖယ်ပါ။""အနက်ရောင်ဘားအပါအဝင် ဖန်သားပြင်ထိပ်ကို သန့်ရှင်းရေး လုပ်ပါ"
-
-
-
-
- "သင့်မျက်နှာနမူနာ ပြုလုပ်၍မရပါ။ ထပ်စမ်းကြည့်ပါ။"
- "အရောင်ရင့်သောမျက်မှန် တွေ့သည်။ သင့်မျက်နှာကို အပြည့်အဝ မြင်ရရန်လိုအပ်သည်။"
- "မျက်နှာဖုံး တွေ့သည်။ သင့်မျက်နှာကို အပြည့်အဝ မြင်ရရန်လိုအပ်သည်။""မျက်နှာကို အတည်ပြု၍ မရပါ။ ဟာ့ဒ်ဝဲ မရနိုင်ပါ။"
@@ -924,14 +919,14 @@
"ထပ် စမ်းပါ""ဝန်ဆောင်မှုနှင့် ဒေတာအားလုံးအတွက် လော့ခ်ဖွင့်ပါ""မျက်မှာပြ လော့ခ်ဖွင့်ခြင်း ခွင့်ပြုသော အကြိမ်ရေထက် ကျော်လွန်သွားပါပြီ"
- "ဆင်းမ်မရှိပါ"
- "တက်ဘလက်တွင် ဆင်းမ်မရှိပါ။"
- "သင့် Android TV စက်တွင် ဆင်းမ်မရှိပါ။"
- "ဖုန်းတွင် ဆင်းမ်မရှိပါ။"
- "ဆင်းမ်ထည့်ပါ။"
- "ဆင်းမ်မရှိပါ (သို့) သုံး၍မရပါ။ ဆင်းမ်ထည့်ပါ။"
- "ဆင်းမ်ကို သုံး၍မရပါ။"
- "သင်၏ဆင်းမ်ကို အပြီးပိတ်လိုက်သည်။\n ဆင်းမ်နောက်တစ်ခု ရယူရန် သင်၏ ကြိုးမဲ့ဝန်ဆောင်မှုပေးသူထံ ဆက်သွယ်ပါ။"
+ "ဆင်းမ်ကတ် မရှိပါ"
+ "တက်ဘလက်ထဲတွင်း ဆင်းမ်ကတ်မရှိပါ"
+ "သင့် Android TV စက်ပစ္စည်းပေါ်တွင် ဆင်းမ်ကတ်မရှိပါ။"
+ "ဖုန်းထဲတွင် ဆင်းကတ်မရှိပါ"
+ "ဆင်းမ်ကတ် ထည့်ပါ"
+ "ဆင်းမ်ကတ် မရှိဘူး သို့မဟုတ် ဖတ်မရပါ။ ဆင်းမ်ကတ် တစ်ခုကို ထည့်ပါ။"
+ "သုံး၍ မရတော့သော ဆင်းမ်ကတ်"
+ "သင့် ဆင်းမ်ကတ်ကို ထာဝရ ပိတ်လိုက်ပါပြီ။\n နောက် ဆင်းမ်ကတ် တစ်ခု အတွက် သင်၏ ကြိုးမဲ့ ဝန်ဆောင်မှု စီမံပေးသူကို ဆက်သွယ်ပါ""ယခင် တစ်ပုဒ်""နောက် တစ်ပုဒ်""ခဏရပ်ရန်"
@@ -941,10 +936,10 @@
"ရှေ့သို့ သွားရန်""အရေးပေါ်ခေါ်ဆိုမှုသာ""ကွန်ရက် သော့ကျနေခြင်း"
- "ဆင်းမ်၏ ပင်နံပါတ်ပြန်ဖွင့်သည့် ကုဒ်ကို လော့ခ်ချထားသည်။"
+ "ဆင်းမ်ကတ် ရဲ့ ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ် သော့ကျနေပါသည်""သုံးစွဲသူ လမ်းညွှန်ကို ကြည့်ပါ သို့မဟုတ် ဖောက်သည်များ စောင့်ရှောက်ရေး ဌာနကို ဆက်သွယ်ပါ။"
- "ဆင်းမ်ကို လော့ခ်ချထားသည်။"
- "ဆင်းမ်ကိုဖွင့်နေသည်…"
+ "ဆင်းမ်ကတ် သော့ကျနေပါသည်"
+ "ဆင်းမ်ကတ် ကို သော့ဖွင့်နေပါသည်""သင်သည် သော့ဖွင့် ပုံစံကို%1$d ကြိမ် မမှန်မကန် ရေးဆွဲခဲ့သည်။ \n\nထပ်ပြီးတော့ %2$dစက္ကန့် အကြာမှာ စမ်းကြည့်ပါ။""သင်သည် စကားဝှက်ကို %1$d ကြိမ် မမှန်မကန် ရိုက်ခဲ့ပြီ။ \n\n ထပ်ပြီးတော့ %2$d စက္ကန့်အကြာ စမ်းကြည့်ပါ။""သင်သည် သင်၏ PIN %1$dကို ကြိမ် မမှန်မကန် ရိုက်ခဲ့ပြီ။ \n\n ထပ်ပြီးတော့ %2$d စက္ကန့်အကြာ စမ်းကြည့်ပါ။"
@@ -1225,7 +1220,7 @@
"စကေး""အမြဲပြသရန်""ဒါကို စနစ် ဆက်တင်များထဲ ပြန်ဖွင့်ပေးရန် > Apps > ဒေါင်းလုဒ် လုပ်ပြီး။"
- "%1$s သည် လက်ရှိ ပြကွက်အရွယ်ကို ပံ့ပိုးထားခြင်း မရှိပါ။ မမျှော်လင့်နိုင်သည့် ချွတ်ယွင်းချက်များ ဖြစ်ပေါ်နိုင်ပါသည်။"
+ "%1$s သည် လက်ရှိ မျက်နှာပြင်အရွယ်အစားကို ပံ့ပိုးထားခြင်း မရှိပါ။ မမျှော်လင့်နိုင်သည့် ချွတ်ယွင်းချက်များ ဖြစ်ပေါ်နိုင်ပါသည်။""အမြဲပြပါ""ကိုက်ညီမှုမရှိသည့် Android OS ဗားရှင်းအတွက် %1$s ကို ပြုလုပ်ထားခြင်းဖြစ်ပြီး ပုံမှန်အလုပ်မလုပ်နိုင်ပါ။ ဤအက်ပ်အတွက် အပ်ဒိတ်လုပ်ထားသည့် ဗားရှင်း ရနိုင်ပါမည်။""အမြဲပြရန်"
@@ -1246,9 +1241,10 @@
"%1$s အားပြင်ဆင်နေသည်။""အက်ပ်များကို စတင်နေ""လုပ်ငန်းစနစ်ထည့်သွင်း၍ ပြန်လည်စတင်ရန် ပြီးပါပြီ"
+ "ဆက်လက်၍ စနစ်ထည့်သွင်းလိုပါသလား။""ဖွင့်ပိတ်ခလုတ်ကို သင်နှိပ်ခဲ့သည် — ၎င်းက ပုံမှန်အားဖြင့် စခရင်ကို ပိတ်စေသည်။\n\nသင့်လက်ဗွေကို ထည့်သွင်းသောအခါ ဖွဖွတို့ကြည့်ပါ။"
- "စနစ်ထည့်သွင်းမှုရပ်ရန် ဖန်သားပြင်ပိတ်ပါ"
- "ပိတ်ရန်"
+ "စခရင် ပိတ်ရန်"
+ "စနစ်ဆက်ထည့်သွင်းရန်""သင့်လက်ဗွေကို ဆက်၍ အတည်ပြုမလား။""ဖွင့်ပိတ်ခလုတ်ကို သင်နှိပ်ခဲ့သည် — ၎င်းက ပုံမှန်အားဖြင့် စခရင်ကို ပိတ်စေသည်။\n\nသင့်လက်ဗွေကို အတည်ပြုရန် ဖွဖွတို့ကြည့်ပါ။""စခရင် ပိတ်ရန်"
@@ -1327,10 +1323,10 @@
"နောင်တွင် ဆက်တင် > အပလီကေးရှင်းများ မှပြောင်းနိုင်သည်""အမြဲခွင့်ပြုရန်""ဘယ်တော့မှခွင့်မပြုပါ"
- "ဆင်းမ်ဖယ်ရှားလိုက်သည်"
- "မှန်ကန်သောဆင်းမ်ဖြင့် ပြန်မစမချင်း မိုဘိုင်းကွန်ရက်ကို ရနိုင်မည်မဟုတ်ပါ။"
+ "SIM ကတ်ဖယ်ရှားခြင်း"
+ "သတ်မှတ်ထားသောဆင်းမ်ကတ်ဖြင့် ပြန်လည်ဖွင့်သည့်အထိ မိုဘိုင်းကွန်ရက်ရရှိမည်မဟုတ်ပါ""ပြီးပါပြီ"
- "ဆင်းမ်ထည့်လိုက်သည်"
+ "ဆင်းမ်ကတ် ထည့်ပါသည်""မိုးဘိုင်းကွန်ရက်ကို ဆက်သွယ်ရန် စက်ကို ပြန် စ ပါ""ပြန်စရန်""မိုဘိုင်းဝန်ဆောင်မှု စတင်ဖွင့်လှစ်ရန်"
@@ -1401,16 +1397,16 @@
"စနစ်ထည့်သွင်းရန် တို့ပါ""စနစ်ထည့်သွင်းရန် ရွေးပါ""စက်ကို ပြန်လည်ဖော်မက်လုပ်ရန် လိုအပ်နိုင်သည်။ ပယ်ရန် တို့ပါ။"
- "ဓာတ်ပုံ၊ ဗီဒီယို၊ သီချင်းစသည်တို့ သိမ်းရန်အတွက်"
+ "ဓာတ်ပုံနှင့် မီဒီယာများ လွှဲပြောင်းရန်အတွက်""မီဒီယာဖိုင်များကို ရှာကြည့်ပါ""%s တွင် ပြဿနာရှိနေသည်""%s အလုပ်မလုပ်ပါ""ပြင်ဆင်ရန်အတွက် ထိလိုက်ပါ""%s ပျက်နေပါသည်။ ပြင်ရန် ရွေးချယ်ပါ။""စက်ကို ပြန်လည်ဖော်မက်လုပ်ရန် လိုအပ်နိုင်သည်။ ပယ်ရန် တို့ပါ။"
- "%s တွေ့ပါသည်"
+ "ပံ့ပိုးထားခြင်း မရှိသော %s""%s အလုပ်မလုပ်ပါ"
- "စနစ်ထည့်သွင်းရန် တို့ပါ ။"
+ "ဤစက်ပစ္စည်းတွင် %s ကိုအသုံးပြု၍မရပါ။ အသုံးပြု၍ရသော စနစ်ပုံစံသို့သတ်မှတ်ရန် တို့ပါ။""%s ကို ပံ့ပိုးထားသောဖော်မက်ဖြင့် စနစ်ထည့်သွင်းရန် ရွေးပါ။""စက်ကို ပြန်လည်ဖော်မက်လုပ်ရန် လိုအပ်နိုင်သည်""%s မမျှော်လင့်ဘဲ ဖယ်ရှားခဲ့သည်"
@@ -1420,11 +1416,11 @@
"%s ကို ထုတ်နေသည်""မဖယ်ရှားပါနှင့်""သတ်မှတ်ရန်"
- "ထုတ်ရန်"
+ "ထုတ်မည်""စူးစမ်းရန်""မီဒီယာအထွက် ပြောင်းရန်""%s ပျောက်နေသည်"
- "ကတ်ကို ထပ်မံထည့်သွင်းပါ"
+ "စက်ပစ္စည်းကို ထပ်မံထည့်သွင်းပါ""%s ရွှေ့နေစဉ်""ဒေတာများ ရွှေ့နေစဉ်""အကြောင်းအရာ လွှဲပြောင်းပြီးပါပြီ"
@@ -1434,7 +1430,7 @@
"ဖယ်ရှာပြီး""ဖယ်ထုတ်ပြီး၏""စစ်ဆေးနေပါသည်…"
- "အသင့်ဖြစ်ပြီ"
+ "အသင့့်ဖြစ်နေ""ဖတ်ရန်အတွက်သာ""လုံခြုံမှုမရှိစွာ ဖယ်ရှားခဲ့၏""ပျက်စီးသွား၏"
@@ -1609,7 +1605,7 @@
"TV""ဖုန်း""အထိုင်ရှိသော စပီကာများ"
- "ပြင်ပစက်"
+ "HDMI""နားကြပ်""USB""စနစ်"
@@ -1642,7 +1638,7 @@
"ဆင်းမ်ကဒ်သည် ယခု ပိတ်သွားပါပြီ ဆက်လက် လုပ်ဆောင်ရန် ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ်ကို ရိုက်ထည့်ပါ။ ပိုမိုသိချင်လျင် ဖုန်းဝန်ဆောင်မှု ပေးသောဌာန အားဆက်သွယ်နိုင်ပါသည်။""လိုချင်သော ပင်နံပါတ်ကို ရိုက်ထည့်ပါ""လိုချင်သော ပင်နံပါတ်ကို အတည်ပြုရန်"
- "ဆင်းမ်ကိုဖွင့်နေသည်…"
+ "ဆင်းမ်ကတ် ကို သော့ဖွင့်နေပါသည်""ပင်နံပါတ် အမှား""ဂဏန်း၄ လုံးမှ ၈ လုံးအထိ ရှိသော ပင်နံပါတ် ရိုက်ထည့်ပါ""ပင်နံပါတ် ပြန်ဖွင့်သည့် ကုဒ် က နံပါတ် ၈ လုံး ဖြစ်ရပါမည်"
@@ -1685,9 +1681,9 @@
"%1$s ကို သင့်စက်အား အပြည့်အဝထိန်းချုပ်ခွင့် ပေးလိုပါသလား။""အများသုံးစွဲနိုင်မှု လိုအပ်ချက်များအတွက် အထောက်အကူပြုသည့် အက်ပ်များအား အပြည့်အဝ ထိန်းချုပ်ခွင့်ပေးခြင်းသည် သင့်လျော်သော်လည်း အက်ပ်အများစုအတွက် မသင့်လျော်ပါ။""ဖန်သားပြင်ကို ကြည့်ရှုထိန်းချုပ်ခြင်း"
- "၎င်းသည် မျက်နှာပြင်ပေါ်ရှိ အကြောင်းအရာအားလုံးကို ဖတ်နိုင်ပြီး အခြားအက်ပ်များအပေါ်တွင် အကြောင်းအရာကို ဖော်ပြနိုင်သည်။"
+ "၎င်းသည် မျက်နှာပြင်ပေါ်ရှိ အကြောင်းအရာများအားလုံးကို ဖတ်နိုင်ပြီး အခြားအက်ပ်များအပေါ်တွင် ထိုအကြောင်းအရာကို ဖော်ပြနိုင်သည်။""လုပ်ဆောင်ချက်များကို ကြည့်ရှုဆောင်ရွက်ခြင်း"
- "၎င်းသည် သင်နှင့် အက်ပ်တစ်ခု (သို့) အာရုံခံကိရိယာအကြား ပြန်လှန်တုံ့ပြန်မှုများကို မှတ်သားနိုင်ပြီး သင့်ကိုယ်စား အက်ပ်များနှင့် ပြန်လှန်တုံ့ပြန်နိုင်သည်။"
+ "၎င်းသည် အက်ပ်တစ်ခု သို့မဟုတ် အာရုံခံကိရိယာကို အသုံးပြု၍ သင့်ပြန်လှန်တုံ့ပြန်မှုများကို မှတ်သားနိုင်ပြီး သင့်ကိုယ်စား အက်ပ်များနှင့် ပြန်လှန်တုံ့ပြန်နိုင်သည်။""ခွင့်ပြုရန်""ပယ်ရန်""ဝန်ဆောင်မှုကို စတင်အသုံးပြုရန် တို့ပါ−"
@@ -1853,8 +1849,8 @@
"သင်၏ စီမံခန့်ခွဲသူက အပ်ဒိတ်လုပ်ထားသည်""သင်၏ စီမံခန့်ခွဲသူက ဖျက်လိုက်ပါပြီ""OK"
- "‘ဘက်ထရီ အားထိန်း’ က ‘အမှောင်နောက်ခံ’ ကို ဖွင့်ပြီး နောက်ခံလုပ်ဆောင်ချက်၊ ပြသမှုဆိုင်ရာ အထူးပြုလုပ်ချက်အချို့၊ ဝန်ဆောင်မှုအချို့နှင့် ကွန်ရက်ချိတ်ဆက်မှုအချို့တို့ကို ကန့်သတ်သည် သို့မဟုတ် ပိတ်သည်။"
- "‘ဘက်ထရီ အားထိန်း’ က ‘အမှောင်နောက်ခံ’ ကို ဖွင့်ပြီး နောက်ခံလုပ်ဆောင်ချက်၊ ပြသမှုဆိုင်ရာ အထူးပြုလုပ်ချက်အချို့၊ ဝန်ဆောင်မှုအချို့နှင့် ကွန်ရက်ချိတ်ဆက်မှုအချို့တို့ကို ကန့်သတ်သည် သို့မဟုတ် ပိတ်သည်။"
+ "‘ဘက်ထရီ အားထိန်း’ က ‘မှောင်သည့် အပြင်အဆင်’ ကို ဖွင့်ပြီး နောက်ခံလုပ်ဆောင်ချက်၊ ပြသမှုဆိုင်ရာ အထူးပြုလုပ်ချက်အချို့၊ ဝန်ဆောင်မှုအချို့နှင့် ကွန်ရက်ချိတ်ဆက်မှုအချို့တို့ကို ကန့်သတ်သည် သို့မဟုတ် ပိတ်သည်။"
+ "‘ဘက်ထရီ အားထိန်း’ က ‘မှောင်သည့် အပြင်အဆင်’ ကို ဖွင့်ပြီး နောက်ခံလုပ်ဆောင်ချက်၊ ပြသမှုဆိုင်ရာ အထူးပြုလုပ်ချက်အချို့၊ ဝန်ဆောင်မှုအချို့နှင့် ကွန်ရက်ချိတ်ဆက်မှုအချို့တို့ကို ကန့်သတ်သည် သို့မဟုတ် ပိတ်သည်။""ဒေတာအသုံးလျှော့ချနိုင်ရန်အတွက် အက်ပ်များကို နောက်ခံတွင် ဒေတာပို့ခြင်းနှင့် လက်ခံခြင်းမပြုရန် \'ဒေတာချွေတာမှု\' စနစ်က တားဆီးထားပါသည်။ ယခုအက်ပ်ဖြင့် ဒေတာအသုံးပြုနိုင်သော်လည်း အကြိမ်လျှော့၍သုံးရပါမည်။ ဥပမာ၊ သင်က မတို့မချင်း ပုံများပေါ်လာမည် မဟုတ်ပါ။""ဒေတာချွေတာမှုစနစ် ဖွင့်မလား။""ဖွင့်ရန်"
@@ -1923,7 +1919,6 @@
"ဒေသရွေးချယ်မှု""ဘာသာစကားအမည် ထည့်ပါ""အကြံပြုထားသည်"
- "အကြံပြုထားသည်""ဘာသာစကားအားလုံး""ဒေသအားလုံး""ရှာဖွေရန်"
@@ -1941,19 +1936,18 @@
"ကင်မရာ မရနိုင်ပါ""ဖုန်းပေါ်တွင် ရှေ့ဆက်ပါ""မိုက်ခရိုဖုန်း မရနိုင်ပါ"
- "Play Store မရနိုင်ပါ""Android TV ဆက်တင်များ မရနိုင်ပါ""Tablet ဆက်တင်များ မရနိုင်ပါ""Phone ဆက်တင်များ မရနိုင်ပါ"
- "၎င်းအား ယခု သင့် %1$s တွင် ဝင်၍မရပါ။ ယင်းအစား Android TV စက်တွင် စမ်းကြည့်ပါ။"
- "၎င်းအား ယခု သင့် %1$s တွင် ဝင်၍မရပါ။ ယင်းအစား တက်ဘလက်တွင် စမ်းကြည့်ပါ။"
- "၎င်းအား ယခု သင့် %1$s တွင် ဝင်၍မရပါ။ ယင်းအစား ဖုန်းတွင် စမ်းကြည့်ပါ။"
+ "၎င်းကို သင်၏ %1$s တွင် သုံး၍မရပါ။ Android TV စက်တွင် စမ်းကြည့်ပါ။"
+ "၎င်းကို သင်၏ %1$s တွင် သုံး၍မရပါ။ တက်ဘလက်တွင် စမ်းကြည့်ပါ။"
+ "၎င်းကို သင်၏ %1$s တွင် သုံး၍မရပါ။ ဖုန်းတွင် စမ်းကြည့်ပါ။"
+ "၎င်းကို သင်၏ %1$s တွင် ယခုသုံး၍မရပါ။ Android TV စက်တွင် စမ်းကြည့်ပါ။"
+ "၎င်းကို သင်၏ %1$s တွင် ယခုသုံး၍မရပါ။ တက်ဘလက်တွင် စမ်းကြည့်ပါ။"
+ "၎င်းကို သင်၏ %1$s တွင် ယခုသုံး၍မရပါ။ ဖုန်းတွင် စမ်းကြည့်ပါ။""ဤအက်ပ်က ထပ်ဆောင်းလုံခြုံရေးကို တောင်းဆိုနေသည်။ Android TV စက်တွင် စမ်းကြည့်ပါ။""ဤအက်ပ်က ထပ်ဆောင်းလုံခြုံရေးကို တောင်းဆိုနေသည်။ တက်ဘလက်တွင် စမ်းကြည့်ပါ။""ဤအက်ပ်က ထပ်ဆောင်းလုံခြုံရေးကို တောင်းဆိုနေသည်။ ဖုန်းတွင် စမ်းကြည့်ပါ။"
- "၎င်းကို သင်၏ %1$s တွင် သုံး၍မရပါ။ Android TV စက်တွင် စမ်းကြည့်ပါ။"
- "၎င်းကို သင်၏ %1$s တွင် သုံး၍မရပါ။ တက်ဘလက်တွင် စမ်းကြည့်ပါ။"
- "၎င်းကို သင်၏ %1$s တွင် သုံး၍မရပါ။ ဖုန်းတွင် စမ်းကြည့်ပါ။""ဤအက်ပ်ကို Android ဗားရှင်းဟောင်းအတွက် ပြုလုပ်ထားခြင်းဖြစ်ပြီး ပုံမှန်အလုပ်မလုပ်နိုင်ပါ။ အပ်ဒိတ်များအတွက် ရှာကြည့်ပါ သို့မဟုတ် ဆော့ဖ်ဝဲအင်ဂျင်နီယာကို ဆက်သွယ်ပါ။""အပ်ဒိတ်စစ်ရန်""သင့်ထံတွင် စာအသစ်များရောက်နေသည်"
@@ -2046,8 +2040,7 @@
"%s ကို စက်မှတ်တမ်းအားလုံး သုံးခွင့်ပြုမလား။""တစ်ခါသုံး ဝင်ခွင့်ပေးရန်""ခွင့်မပြုပါ"
- "သင့်စက်ရှိ အဖြစ်အပျက်များကို စက်မှတ်တမ်းများက မှတ်တမ်းတင်သည်။ အက်ပ်များက ပြဿနာများ ရှာဖွေပြီးဖြေရှင်းရန် ဤမှတ်တမ်းများကို သုံးနိုင်သည်။\n\nအချို့မှတ်တမ်းများတွင် သတိထားရမည့်အချက်အလက်များ ပါဝင်နိုင်သဖြင့် စက်မှတ်တမ်းအားလုံးကို ယုံကြည်ရသည့် အက်ပ်များကိုသာ သုံးခွင့်ပြုပါ။ \n\nဤအက်ပ်ကို စက်မှတ်တမ်းအားလုံး သုံးခွင့်မပြုသော်လည်း ၎င်းက ၎င်း၏ကိုယ်ပိုင်မှတ်တမ်းကို သုံးနိုင်ဆဲဖြစ်သည်။ သင့်စက်ရှိ အချို့မှတ်တမ်းများ (သို့) အချက်အလက်များကို သင့်စက်ထုတ်လုပ်သူက သုံးနိုင်ပါသေးသည်။"
- "သင့်စက်ရှိ အဖြစ်အပျက်များကို စက်မှတ်တမ်းများက မှတ်တမ်းတင်သည်။ အက်ပ်များက ပြဿနာများ ရှာဖွေပြီးဖြေရှင်းရန် ဤမှတ်တမ်းများကို သုံးနိုင်သည်။\n\nအချို့မှတ်တမ်းများတွင် သတိထားရမည့်အချက်အလက်များ ပါဝင်နိုင်သဖြင့် ယုံကြည်ရသည့် အက်ပ်များကိုသာ စက်မှတ်တမ်းအားလုံး သုံးခွင့်ပြုပါ။ \n\nဤအက်ပ်ကို စက်မှတ်တမ်းအားလုံး သုံးခွင့်မပြုသော်လည်း ၎င်းက ကိုယ်ပိုင်မှတ်တမ်းများ သုံးနိုင်သေးသည်။ သင့်စက်ရှိ မှတ်တမ်း (သို့) အချက်အလက်အချို့ကို စက်ထုတ်လုပ်သူက သုံးနိုင်သေးသည်။\n\ng.co/android/devicelogs တွင် ပိုမိုလေ့လာပါ။"
+ "သင့်စက်ရှိ အဖြစ်အပျက်များကို စက်မှတ်တမ်းများက မှတ်တမ်းတင်သည်။ အက်ပ်များက ပြဿနာများ ရှာဖွေပြီးဖြေရှင်းရန် ဤမှတ်တမ်းများကို သုံးနိုင်သည်။\n\nအချို့မှတ်တမ်းများတွင် သတိထားရမည့်အချက်အလက်များ ပါဝင်နိုင်သဖြင့် စက်မှတ်တမ်းအားလုံးကို ယုံကြည်ရသည့် အက်ပ်များကိုသာ သုံးခွင့်ပြုပါ။ \n\nဤအက်ပ်ကို စက်မှတ်တမ်းအားလုံး သုံးခွင့်မပြုသော်လည်း ၎င်းက ၎င်း၏ကိုယ်ပိုင်မှတ်တမ်းကို သုံးနိုင်ဆဲဖြစ်သည်။ သင့်စက်ရှိ အချို့မှတ်တမ်းများ (သို့) အချက်အလက်များကို သင့်စက်ထုတ်လုပ်သူက သုံးနိုင်ပါသေးသည်။ ပိုမိုလေ့လာရန်""နောက်ထပ်မပြပါနှင့်""%1$s သည် %2$s ၏အချပ်များကို ပြသလိုသည်""တည်းဖြတ်ရန်"
@@ -2060,7 +2053,8 @@
"\'မနှောင့်ယှက်ရ\' ပြောင်းလဲသွားပါပြီ""ပိတ်ထားသည့်အရာများကို ကြည့်ရန် တို့ပါ။""အကြောင်းကြားချက် ဆက်တင်များ စိစစ်ရန်"
- "Android 13 မှစ၍ ထည့်သွင်းသော အက်ပ်များသည် အကြောင်းကြားချက်များပို့ရန် သင်၏ခွင့်ပြုချက် လိုအပ်ပါမည်။ ရှိပြီးသားအက်ပ်များအတွက် ဤခွင့်ပြုချက်ကိုပြောင်းရန် တို့ပါ။"
+
+ "နောက်မှ သတိပေးပါ""ပယ်ရန်""စနစ်"
@@ -2288,6 +2282,5 @@
"ပွင့်နေသည့်အက်ပ်များ စစ်ဆေးရန်""သင်၏ %1$s မှ ဖုန်းကင်မရာကို သုံး၍မရပါ""သင်၏ %1$s မှ တက်ဘလက်ကင်မရာကို သုံး၍မရပါ"
- "တိုက်ရိုက်လွှင့်နေစဉ် ၎င်းကို မသုံးနိုင်ပါ။ ၎င်းအစား ဖုန်းတွင် စမ်းကြည့်ပါ။"
- "စနစ်မူရင်း"
+ "စနစ်၏ ဘာသာစကား"
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 679854b86ae206caf2203089cb5ddddc6e0b7927..655da8f1424123bdfb4cbff2d10b5e0dfc395b72 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Uten navn>""(Mangler telefonnummer)"
@@ -28,7 +33,6 @@
"Telefonsvarer""MSISDN1""Tilkoblingsproblem eller ugyldig MMI-kode."
- "Funksjonen støttes ikke.""Handlingen kan kun utføres på numre med anropsbegrensning.""Får ikke endret innstillinger for viderekobling fra telefonen din når du bruker roaming.""Tjenesten ble aktivert."
@@ -43,8 +47,8 @@
"De personlige kodene du har skrevet inn samsvarer ikke.""PIN-koden må være mellom fire og åtte siffer.""Skriv inn en PUK-kode på åtte tall eller mer."
- "SIM-kortet er låst med PUK. Skriv inn PUK-koden for å låse det opp."
- "Skriv inn PUK2 for å oppheve blokkeringen av SIM-kortet."
+ "SIM-kortet ditt er PUK-låst. Skriv inn PUK-koden for å låse det opp."
+ "Skriv inn PUK2 for å låse opp SIM-kortet.""Mislyktes – aktiver lås for SIM/RUIM."Du har %d forsøk igjen før SIM-kortet låses.
@@ -89,7 +93,7 @@
"Status for mobildata""SMS-meldinger""Talepostmeldinger"
- "Wifi-anrop"
+ "Wi-Fi-anrop""SIM-status""SIM-status er satt til høy prioritet""Motpart ba om TTY-modus FULL"
@@ -118,30 +122,30 @@
"Roaming-banner på""Roaming-banner av""Leter etter tjeneste"
- "Kunne ikke konfigurere wifi-anrop"
+ "Kunne ikke konfigurere Wi-Fi-anrop"
- "For å ringe og sende meldinger over Wifi, må du først be operatøren om å konfigurere denne tjenesten. Deretter slår du på wifi-anrop igjen fra Innstillinger. (Feilkode: %1$s)"
+ "For å ringe og sende meldinger over Wi-Fi, må du først be operatøren om å konfigurere denne tjenesten. Deretter slår du på Wi-Fi-anrop igjen fra Innstillinger. (Feilkode: %1$s)"
- "Problem med å registrere wifi-anrop med operatøren din: %1$s"
+ "Problem med å registrere Wi-Fi-anrop med operatøren din: %1$s"
- "%s Wifi-anrop"
- "%s-Wifi-anrop"
+ "%s Wi-Fi-anrop"
+ "%s-Wi-Fi-anrop""WLAN-anrop""%s WLAN-anrop"
- "%s Wifi"
- "Wifi-anrop | %s"
+ "%s Wi-Fi"
+ "Wi-Fi-anrop | %s""%s VoWifi"
- "Wifi-anrop"
- "Wifi"
- "Wifi-anrop"
+ "Wi-Fi-anrop"
+ "Wi-Fi"
+ "Wi-Fi-anrop""VoWifi""Av"
- "Ring via Wifi"
+ "Ring via Wi-Fi""Ring over mobilnettverk"
- "Bare Wifi"
+ "Bare Wi-Fi""%s-reserve for anrop"
@@ -301,12 +305,12 @@
"åpne kalenderen din""SMS""sende og lese SMS-meldinger"
- "Filer"
- "bruke filer på enheten"
- "Musikk og lyd"
- "bruke musikk og lyd på enheten"
- "Bilder og videoer"
- "bruke bilder og videoer på enheten"
+ "Filer og dokumenter"
+ "åpne filer og dokumenter på enheten din"
+ "Musikk og annen lyd"
+ "få tilgang til lydfiler på enheten"
+ "Bilder og videoer"
+ "få tilgang til bilder og videofiler på enheten""Mikrofon""ta opp lyd""Fysisk aktivitet"
@@ -512,14 +516,14 @@
"Lar appen endre innstillingene for nettverkstilknytning.""endre tilknytningsoppsett""Lar appen endre innstillingene for delt nettforbindelse."
- "se Wifi-tilkoblinger"
- "Lar appen se informasjon om Wifi-nettverk, f.eks. hvorvidt Wifi er aktivert og navn på tilkoblede Wifi-enheter."
- "koble til og fra wifi"
- "Lar appen koble til og fra wifi-tilgangspunkter, og å gjøre endringer i enhetens konfigurasjon for wifi-nettverk."
+ "se Wi-Fi-tilkoblinger"
+ "Lar appen se informasjon om Wi-Fi-nettverk, f.eks. hvorvidt Wi-Fi er aktivert og navn på tilkoblede Wi-Fi-enheter."
+ "koble til og fra Wi-Fi"
+ "Lar appen koble til og fra Wi-Fi-tilgangspunkter, og å gjøre endringer i enhetens konfigurasjon for Wi-Fi-nettverk.""tillate multicast for trådløse nettverk"
- "Lar appen motta pakker som sendes til alle enhetene på et Wifi-nettverk ved hjelp av multikastingsadresser, Dette bruker mer strøm enn modusen uten multikasting."
- "Lar appen motta pakker som sendes til alle enhetene på et Wifi-nettverk ved hjelp av multikastingsadresser, ikke bare Android TV-enheten din. Dette bruker mer strøm enn modus uten multikasting."
- "Lar appen motta pakker som sendes til alle enhetene på et Wifi-nettverk ved hjelp av multikastingsadresser, Dette bruker mer strøm enn modusen uten multikasting."
+ "Lar appen motta pakker som sendes til alle enhetene på et Wi-Fi-nettverk ved hjelp av multikastingsadresser, Dette bruker mer strøm enn modusen uten multikasting."
+ "Lar appen motta pakker som sendes til alle enhetene på et Wi-Fi-nettverk ved hjelp av multikastingsadresser, ikke bare Android TV-enheten din. Dette bruker mer strøm enn modus uten multikasting."
+ "Lar appen motta pakker som sendes til alle enhetene på et Wi-Fi-nettverk ved hjelp av multikastingsadresser, Dette bruker mer strøm enn modusen uten multikasting.""endre Bluetooth-innstillinger""Lar appen konfigurere det lokale Bluetooth-nettbrettet, samt oppdage og koble sammen med eksterne enheter.""Lar appen konfigurere Bluetooth på Android TV-enheten din samt oppdage og koble sammen med eksterne enheter."
@@ -542,8 +546,8 @@
"Lar appen vise annonser til Bluetooth-enheter i nærheten""fastslå relativ posisjon mellom enheter som bruker ultrabredbånd""tillate at appen fastslår den relative posisjonen mellom enheter i nærheten som bruker ultrabredbånd"
- "samhandle med wifi-enheter i nærheten"
- "Lar appen annonsere, koble til og fastslå den relative posisjonen til wifi-enheter i nærheten"
+ "samhandle med Wi-Fi-enheter i nærheten"
+ "Lar appen annonsere, koble til og fastslå den relative posisjonen til Wi-Fi-enheter i nærheten""Informasjon om prioritert NFC-betalingstjeneste""Gir appen tilgang til informasjon om prioritert NFC-betalingstjeneste, for eksempel registrerte hjelpemidler og destinasjon.""kontroller overføring av data med NFC-teknologi"
@@ -582,14 +586,13 @@
"Bruk skjermlås""Skriv inn skjermlåsen for å fortsette""Trykk godt på sensoren"
- "Fingeravtrykket gjenkjennes ikke. Prøv på nytt."
+ "Kunne ikke registrere fingeravtrykket. Prøv på nytt.""Rengjør fingeravtrykkssensoren og prøv igjen""Rengjør sensoren og prøv igjen""Trykk godt på sensoren""Du flyttet fingeren for sakte. Prøv på nytt.""Prøv et annet fingeravtrykk""For lyst"
- "Trykk på av/på-knappen er registrert""Prøv å justere""Endre posisjonen til fingeren litt hver gang"
@@ -601,17 +604,16 @@
"Ansiktet er autentisert. Trykk på Bekreft""Maskinvare for fingeravtrykk er ikke tilgjengelig.""Kan ikke konfigurere fingeravtrykk"
- "Konfigureringen av fingeravtrykk er tidsavbrutt. Prøv på nytt."
+ "Tidsavbrudd for fingeravtrykk er nådd. Prøv på nytt.""Fingeravtrykk-operasjonen ble avbrutt.""Fingeravtrykk-operasjonen ble avbrutt av brukeren."
- "For mange forsøk. Bruk skjermlås i stedet."
- "For mange forsøk. Bruk skjermlås i stedet."
- "Kan ikke behandle fingeravtrykket. Prøv på nytt."
+ "For mange forsøk. Prøv på nytt senere."
+ "For mange forsøk. Fingeravtrykkssensoren er slått av."
+ "Prøv på nytt.""Ingen fingeravtrykk er registrert.""Denne enheten har ikke fingeravtrykkssensor.""Sensoren er midlertidig slått av.""Kan ikke bruke fingeravtrykkssensoren. Gå til en reparasjonsleverandør"
- "Av/på-knappen ble trykket""Finger %d""Bruk fingeravtrykk""Bruk fingeravtrykk eller skjermlås"
@@ -632,33 +634,26 @@
"Opplåsing med fingeravtrykk""Kan ikke bruke fingeravtrykkssensoren""Gå til en reparasjonsleverandør."
- "Kan ikke lage ansiktsmodell. Prøv på nytt."
+ "Kunne ikke ta opp nøyaktige ansiktsdata Prøv på nytt""For lyst. Prøv svakere belysning."
- "Ikke nok lys"
- "Flytt telefonen lengre unna"
- "Flytt telefonen nærmere"
- "Flytt telefonen høyere"
- "Flytt telefonen lavere"
- "Flytt telefonen til venstre"
- "Flytt telefonen til høyre"
+ "For mørkt. Prøv sterkere belysning."
+ "Flytt telefonen lengre unna"
+ "Flytt telefonen nærmere."
+ "Flytt telefonen høyere."
+ "Flytt telefonen lavere."
+ "Flytt telefonen til venstre."
+ "Flytt telefonen til høyre.""Se mer direkte på enheten din."
- "Kan ikke se ansiktet ditt. Hold telefonen i øyehøyde."
+ "Hold ansiktet ditt rett foran telefonen.""For mye bevegelse. Hold telefonen stødig.""Registrer ansiktet ditt på nytt."
- "Ansiktet gjenkjennes ikke. Prøv på nytt."
- "Endre hodeposisjonen litt"
- "Se mer direkte på telefonen"
- "Se mer direkte på telefonen"
- "Se mer direkte på telefonen"
+ "Kan ikke gjenkjenne ansiktet lenger. Prøv på nytt."
+ "For likt – endre posituren din."
+ "Vri hodet ditt litt mindre."
+ "Vri hodet litt mindre."
+ "Vri hodet ditt litt mindre.""Fjern alt som skjuler ansiktet ditt.""Rengjør den øverste delen av skjermen, inkludert den svarte linjen"
-
-
-
-
- "Kan ikke lage ansiktsmodell. Prøv på nytt."
- "Mørke briller er registrert. Ansiktet må være helt synlig."
- "Ansiktsdekke er registrert. Ansiktet må være helt synlig.""Kan ikke bekrefte ansikt. Utilgjengelig maskinvare."
@@ -924,14 +919,14 @@
"Prøv på nytt""Lås opp for å få alle funksjoner og data""Du har overskredet grensen for opplåsingsforsøk med Ansiktslås"
- "Ingen SIM-kort"
- "Det er ingen SIM-kort i nettbrettet."
- "Det er ingen SIM-kort i Android TV-enheten."
- "Det er ingen SIM-kort i telefonen."
- "Legg til et SIM-kort."
- "SIM-kortet mangler eller kan ikke leses. Legg til et SIM-kort."
- "SIM-kortet kan ikke brukes."
- "SIM-kortet er deaktivert permanent.\n Kontakt leverandøren av trådløstjenesten for å få et nytt SIM-kort."
+ "SIM-kort mangler"
+ "Nettbrettet mangler SIM-kort."
+ "Ingen SIM-kort i Android TV-enheten din."
+ "Ikke noe SIM-kort i telefonen."
+ "Sett inn et SIM-kort."
+ "SIM-kort mangler eller er uleselig. Sett inn et SIM-kort."
+ "Ubrukelige SIM-kort."
+ "SIM-kortet er deaktivert permanent.\nTa kontakt med leverandøren av trådløstjenesten for å få et nytt SIM-kort.""Forrige spor""Neste spor""Sett på pause"
@@ -941,10 +936,10 @@
"Fremoverspoling""Bare nødanrop""Nettverk ikke tillatt"
- "SIM-kortet er låst med PUK."
+ "SIM-kortet er PUK-låst.""Les i brukerhåndboken eller kontakt brukerstøtten."
- "SIM-kortet er låst."
- "Låser opp SIM-kortet …"
+ "SIM-kortet er låst."
+ "Låser opp SIM-kort…""Du har oppgitt feil opplåsingsmønster %1$d ganger.\n\nPrøv på nytt om %2$d sekunder.""Du har skrevet inn feil passord %1$d ganger.\n\nPrøv på nytt om %2$d sekunder.""Du har skrevet inn feil PIN-kode %1$d ganger.\n\nPrøv på nytt om %2$d sekunder."
@@ -1041,9 +1036,9 @@
"lese nettbokmerkene og nettloggen din""Lar appen lese loggen for alle nettadressene nettleseren har besøkt, og alle bokmerkene i nettleseren. Vær oppmerksom på at denne tillatelsen kanskje ikke benyttes av tredjepartsnettlesere eller andre apper med mulighet for nettsurfing.""skrive nettbokmerker og nettlogg"
- "Lar appen endre nettleserens logg eller bokmerker lagret på nettbrettet ditt. Dette kan føre til at appen sletter eller endrer nettlesingsdata. Vær oppmerksom på at denne tillatelsen kanskje ikke benyttes av tredjepartsnettlesere eller andre apper med mulighet for nettsurfing."
- "Lar appen endre nettleserens logg eller bokmerker som er lagret på Android TV-enheten din. Dette kan føre til at appen sletter eller endrer nettlesingsdata. Vær oppmerksom på at denne tillatelsen kanskje ikke benyttes av tredjepartsnettlesere eller andre apper med mulighet for nettsurfing."
- "Lar appen endre nettleserens logg eller bokmerker lagret på telefonen din. Dette kan føre til at appen sletter eller endrer nettlesingsdata. Vær oppmerksom på at denne tillatelsen kanskje ikke benyttes av tredjepartsnettlesere eller andre apper med mulighet for nettsurfing."
+ "Lar appen endre nettleserens logg eller bokmerker lagret på nettbrettet ditt. Dette kan føre til at appen sletter eller endrer nettleserdata. Vær oppmerksom på at denne tillatelsen kanskje ikke benyttes av tredjepartsnettlesere eller andre apper med mulighet for nettsurfing."
+ "Lar appen endre nettleserens logg eller bokmerker som er lagret på Android TV-enheten din. Dette kan føre til at appen sletter eller endrer nettleserdata. Vær oppmerksom på at denne tillatelsen kanskje ikke benyttes av tredjepartsnettlesere eller andre apper med mulighet for nettsurfing."
+ "Lar appen endre nettleserens logg eller bokmerker lagret på telefonen din. Dette kan føre til at appen sletter eller endrer nettleserdata. Vær oppmerksom på at denne tillatelsen kanskje ikke benyttes av tredjepartsnettlesere eller andre apper med mulighet for nettsurfing.""stille alarm""Lar appen stille inn alarmen for en installert alarmklokke-app. Enkelte alarmklokke-apper implementerer kanskje ikke denne funksjonen.""legge til talepost"
@@ -1152,7 +1147,7 @@
"Bytt inndatametode""Lite ledig lagringsplass""Enkelte systemfunksjoner fungerer muligens ikke slik de skal"
- "Det er ikke nok lagringsplass for systemet. Kontroller at du har 250 MB ledig plass, og start på nytt."
+ "Det er ikke nok lagringsplass for systemet. Kontrollér at du har 250 MB ledig plass, og start på nytt.""%1$s kjører""Trykk for å få mer informasjon eller for å stoppe appen.""OK"
@@ -1246,9 +1241,10 @@
"Forbereder %1$s.""Starter apper.""Ferdigstiller oppstart."
+ "Vil du fortsette konfigureringen?""Du har trykket på av/på-knappen – dette slår vanligvis av skjermen.\n\nPrøv å trykke lett mens du konfigurerer fingeravtrykket ditt."
- "Slå av skjerm for å stoppe konfigurering"
- "Slå av"
+ "Slå av skjermen"
+ "Fortsett konfig.""Fortsett bekreftelse av fingeravtrykket?""Du har trykket på av/på-knappen – dette slår vanligvis av skjermen.\n\nPrøv å trykke lett for å bekrefte fingeravtrykket ditt.""Slå av skjermen"
@@ -1289,7 +1285,7 @@
"Alarmlyder""Varsellyder""Ukjent"
- "Logg på Wifi-nettverket"
+ "Logg på Wi-Fi-nettverket""Logg på nettverk"
@@ -1305,7 +1301,7 @@
"Byttet fra %1$s til %2$s""mobildata"
- "Wifi"
+ "Wi-Fi""Bluetooth""Ethernet""VPN"
@@ -1327,10 +1323,10 @@
"Du kan endre dette senere i Innstillinger > Apper""Alltid tillat""Aldri tillat"
- "SIM-kortet er tatt ut"
- "Mobilnettverket er utilgjengelig frem til du starter enheten på nytt med et gyldig SIM-kort."
+ "SIM-kort er fjernet"
+ "Det mobile nettverket forblir utilgjengelig inntil du starter på nytt med et gyldig SIM-kort.""Ferdig"
- "SIM-kortet er lagt til"
+ "SIM-kort er lagt til""Start enheten på nytt for å få tilgang til det mobile nettverket.""Start på nytt""Aktiver mobiltjeneste"
@@ -1401,16 +1397,16 @@
"Trykk for å konfigurere""Velg for å konfigurere""Du må muligens reformatere enheten. Trykk for å løse ut."
- "For lagring av bilder, videoer, musikk med mer"
+ "For overføring av bilder og medier""Bla gjennom mediefiler""Problem med %s""%s fungerer ikke""Trykk for å løse problemet""%s er skadet. Velg for å fikse.""Du må muligens reformatere enheten. Trykk for å løse ut."
- "%s er oppdaget"
+ "%s som ikke støttes""%s fungerer ikke"
- "Trykk for å konfigurere."
+ "Denne enheten støtter ikke %s. Trykk for å konfigurere i et støttet format.""Velg for å konfigurere %s i et format som støttes.""Du må muligens reformatere enheten""%s ble uventet fjernet"
@@ -1572,10 +1568,10 @@
"Varsel om databruk""Du har brukt %s med data""Grensen for mobildata er nådd"
- "Datagrensen for wifi er nådd"
+ "Datagrensen for Wi-Fi er nådd""Data er på pause i resten av syklusen""Over grensen for mobildata"
- "Over grensen din for wifi-data"
+ "Over grensen din for Wi-Fi-data""Du er %s over den angitte grensen din""Bakgrunnsdata er begrenset""Trykk for å fjerne begrensningen."
@@ -1609,7 +1605,7 @@
"Google TV""Telefon""Dokkhøyttalere"
- "Ekstern enhet"
+ "HDMI""Hodetelefoner""USB""System"
@@ -1642,7 +1638,7 @@
"SIM-kortet er nå deaktivert. Skriv inn PUK-koden for å fortsette. Ta kontakt med operatøren for mer informasjon.""Tast inn ønsket PIN-kode""Bekreft ønsket PIN-kode"
- "Låser opp SIM-kortet …"
+ "Låser opp SIM-kortet ...""Feil PIN-kode.""Skriv inn en PIN-kode på fire til åtte sifre.""PUK-koden skal være på åtte sifre."
@@ -1684,7 +1680,7 @@
"AV""Vil du gi %1$s full kontroll over enheten din?""Full kontroll er passende for apper som hjelper deg med tilgjengelighetsbehov, men ikke for de fleste apper."
- "Se og kontroller skjermen"
+ "Se og kontrollér skjermen""Den kan lese alt innhold på skjermen og vise innhold over andre apper.""Se og utfør handlinger""Den kan spore kommunikasjonen din med en app eller maskinvaresensor og kommunisere med apper på dine vegne."
@@ -1923,7 +1919,6 @@
"Regionsinnstilling""Skriv inn språknavn""Foreslått"
- "Foreslått""Alle språk""Alle områder""Søk"
@@ -1941,19 +1936,18 @@
"Kameraet er utilgjengelig""Fortsett på telefonen""Mikrofonen er utilgjengelig"
- "Play-butikken er utilgjengelig""Android TV-innstillingene er utilgjengelige""Nettbrettinnstillingene er utilgjengelige""Telefoninnstillingene er utilgjengelige"
- "Dette er ikke tilgjengelig på %1$s for øyeblikket. Prøv på Android TV-enheten din i stedet."
- "Dette er ikke tilgjengelig på %1$s for øyeblikket. Prøv på nettbrettet ditt i stedet."
- "Dette er ikke tilgjengelig på %1$s for øyeblikket. Prøv på telefonen din i stedet."
+ "Dette er ikke tilgjengelig på %1$s. Prøv på Android TV-enheten din i stedet."
+ "Dette er ikke tilgjengelig på %1$s. Prøv på nettbrettet ditt i stedet."
+ "Dette er ikke tilgjengelig på %1$s. Prøv på telefonen din i stedet."
+ "Dette er ikke tilgjengelig på %1$s for øyeblikket. Prøv på Android TV-enheten din i stedet."
+ "Dette er ikke tilgjengelig på %1$s for øyeblikket. Prøv på nettbrettet ditt i stedet."
+ "Dette er ikke tilgjengelig på %1$s for øyeblikket. Prøv på telefonen din i stedet.""Denne appen ber om ekstra sikkerhet. Prøv på Android TV-enheten din i stedet.""Denne appen ber om ekstra sikkerhet. Prøv på nettbrettet ditt i stedet.""Denne appen ber om ekstra sikkerhet. Prøv på telefonen din i stedet."
- "Dette er ikke tilgjengelig på %1$s. Prøv på Android TV-enheten din i stedet."
- "Dette er ikke tilgjengelig på %1$s. Prøv på nettbrettet ditt i stedet."
- "Dette er ikke tilgjengelig på %1$s. Prøv på telefonen din i stedet.""Denne appen er utviklet for en eldre versjon av Android og fungerer kanskje ikke som den skal. Prøv å se etter oppdateringer, eller kontakt utvikleren.""Se etter oppdateringer""Du har nye meldinger"
@@ -2046,8 +2040,7 @@
"Vil du gi %s tilgang til alle enhetslogger?""Gi éngangstilgang""Ikke tillat"
- "Enhetslogger registrerer det som skjer på enheten din. Apper kan bruke disse loggene til å finne og løse problemer.\n\nNoen logger kan inneholde sensitiv informasjon, så du bør bare gi tilgang til alle enhetslogger til apper du stoler på. \n\nHvis du ikke gir denne appen tilgang til alle enhetslogger, har den fortsatt tilgang til sine egne logger. Enhetsprodusenten kan fortsatt ha tilgang til visse logger eller noe informasjon på enheten din."
- "Enhetslogger registrerer det som skjer på enheten. Apper kan bruke disse loggene til å finne og løse problemer.\n\nNoen logger kan inneholde sensitiv informasjon, så du bør bare gi tilgang til alle enhetslogger til apper du stoler på. \n\nHvis du ikke gir denne appen tilgang til alle enhetslogger, har den fortsatt tilgang til sine egne logger. Enhetsprodusenten kan fortsatt ha tilgang til visse logger eller noe informasjon på enheten.\n\nFinn ut mer på g.co/android/devicelogs."
+ "Enhetslogger registrerer det som skjer på enheten din. Apper kan bruke disse loggene til å finne og løse problemer.\n\nNoen logger kan inneholde sensitiv informasjon, så du bør bare gi tilgang til alle enhetslogger til apper du stoler på. \n\nHvis du ikke gir denne appen tilgang til alle enhetslogger, har den fremdeles tilgang til sine egne logger. Enhetsprodusenten kan fremdeles ha tilgang til noen logger eller noe informasjon på enheten din. Finn ut mer""Ikke vis igjen""%1$s vil vise %2$s-utsnitt""Endre"
@@ -2060,7 +2053,8 @@
"Ikke forstyrr er endret""Trykk for å sjekke hva som er blokkert.""Gjennomgå varslingsinnstillingene"
- "Fra og med Android 13 må apper du installerer, få tillatelse til å sende varsler. Trykk for å endre denne tillatelsen for eksisterende apper."
+
+ "Påminn meg senere""Lukk""System"
@@ -2288,6 +2282,5 @@
"Sjekk aktive apper""Det er ikke mulig å få tilgang til telefonkameraet fra %1$s""Det er ikke mulig å få tilgang til kameraet på nettbrettet fra %1$s"
- "Dette er ikke tilgjengelig under strømming. Prøv på telefonen i stedet."
- "Systemstandard"
+ "Systemspråk"
diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml
index ee868b404bef932360630159b262c1fffaf93a0d..d8167d59ef8e43771410a39a9fe913d93ab540a5 100644
--- a/core/res/res/values-ne/strings.xml
+++ b/core/res/res/values-ne/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "के.बि."
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<बिना शीर्षक>""(कुनै फोन नम्बर छैन)"
@@ -28,7 +33,6 @@
"भ्वाइस मेल""MSISDN१""जडान समस्या वा अमान्य MMI कोड।"
- "यो सुविधा प्रयोग गर्न मिल्दैन।""अपरेशन निश्चित डायल नम्बरहरूको लागि मात्र प्रतिबन्धित छ।""तपाईं रोमिङमा हुनुहुँदा तपाईंको फोनबाट कल फर्वार्ड गर्ने सम्बन्धी सेटिङहरू परिवर्तन गर्न सकिँदैन।""सेवा सक्षम पारियो।"
@@ -43,8 +47,8 @@
"तपाईंले टाइप गर्नुभएको PIN मेल खाँदैन।""४ देखि ८ वटा नम्बर भएको एउटा PIN टाइप गर्नुहोस्।""८ वटा नम्बरहरू वा सो भन्दा लामो एउटा PUK टाइप गर्नुहोस्।"
- "तपाईंको SIM कार्ड PUK प्रयोग गरी लक गरिएको छ। उक्त SIM कार्ड अनलक गर्न PUK कोड टाइप गर्नुहोस्।"
- "SIM कार्ड अनब्लक गर्न PUK2 टाइप गर्नुहोस्।"
+ "तपाईंको SIM कार्ड PUK-लक छ। यसलाई अनलक गर्न PUK कोड टाइप गर्नुहोस्।"
+ "SIM कार्ड अनलक गर्न PUK2 टाइप गर्नुहोस्।""असफल, SIM/RUIM बन्द छ।"तपाईंसँग SIM बन्द हुनु अघि %d बाँकी प्रयासहरू छन्।
@@ -266,7 +270,7 @@
"९९९+""नयाँ सूचना""भर्चुअल किबोर्ड"
- "फिजिकल किबोर्ड"
+ "वास्तविक किबोर्ड""सुरक्षा""कार मोड""खाताको स्थिति"
@@ -301,12 +305,12 @@
"तपाईंको पात्रोमाथि पहुँच गर्नुहोस्""SMS""SMS सन्देशहरू पठाउनुहोस् र हेर्नुहोस्"
- "फाइलहरू"
- "आफ्नो डिभाइसमा रहेका फाइलहरू हेर्नुहोस् र प्रयोग गर्नुहोस्"
- "सङ्गीत तथा अडियो"
- "तपाईंको डिभाइसबाट सङ्गीत तथा अडियो सुन्ने अनुमति"
- "फोटो र भिडियोहरू"
- "तपाईंको डिभाइसबाट फोटो तथा भिडियोहरू हेर्ने अनुमति"
+ "फाइल र डकुमेन्टहरू"
+ "आफ्नो डिभाइसमा भएका फाइल र डकुमेन्टहरू प्रयोग गर्नुहोस्"
+ "सङ्गीत तथा अन्य अडियो"
+ "तपाईंको डिभाइसमा भएका अडियो फाइलहरू प्रयोग गर्ने"
+ "फोटो तथा भिडियोहरू"
+ "तपाईंको डिभाइसमा भएका फोटो तथा भिडियो फाइलहरू प्रयोग गर्ने""माइक्रोफोन""अडियो रेकर्ड गर्नुहोस्""शारीरिक क्रियाकलाप"
@@ -329,8 +333,8 @@
"ट्याप गरिएका वस्तुहरू चर्को स्वरमा बोलिने छन् र इसाराहरूको प्रयोग गरेर स्क्रिनमा अन्वेषण गर्न सकिन्छ।""आफुले टाइप गरेको पाठको निरीक्षण गर्नुहोस्""व्यक्तिगत डेटा जस्तै क्रेडिट कार्ड नम्बरहरू र पासवर्डहरू समावेश गर्दछ।"
- "डिस्प्ले म्याग्निफिकेसन नियन्त्रण गर्नुहोस्"
- "डिस्प्लेको जुम लेबल र स्थिति नियन्त्रण गर्नुहोस्।"
+ "प्रदर्शन आवर्धन नियन्त्रण गर्नुहोस्"
+ "प्रदर्शनको जुम स्तर र स्थिति नियन्त्रण गर्नुहोस्।""इसाराहरू सम्बन्धी कार्य गर्नुहोस्""ट्याप, स्वाइप गर्न, थिच्न र अन्य इसाराहरू सम्बन्धी कार्य गर्न सक्छ""फिंगरप्रिन्टका इसाराहरू"
@@ -346,7 +350,7 @@
"लक गरिएको डिभाइसमा स्क्रिनभरि देखिने सूचनाहरू देखाइयोस्""यो अनुमति दिइएमा एपले लक गरिएको डिभाइसमा स्क्रिनभरि देखिने सूचनाहरू देखाउन सक्छ""सर्टकट इन्स्टल गर्ने"
- "प्रयोगकर्ताको हस्तक्षेप बिना एउटा एपलाई सर्टकटमा हाल्ने अनुमति दिन्छ।"
+ "प्रयोगकर्ताको हस्तक्षेप बिना एउटा एपलाई सर्टकटमा थप्नको लागि अनुमति दिन्छ।""सर्टकटहरूको स्थापन रद्द गर्नुहोस्""प्रयोगकर्ताको हस्तक्षेप बिना एउटा एपलाई सर्टकटमा हटाउनको लागि अनुमति दिन्छ।""बहिर्गमन कलहरूलाई अर्को मार्ग दिनुहोस्"
@@ -369,7 +373,7 @@
"एपलाई SMS सन्देशहरू पठाउन अनुमति दिन्छ। यसले अप्रत्यासित चार्जहरूको परिणाम दिन सक्दछ। खराब एपहरूले तपाईंको पुष्टि बिना सन्देशहरू पठाएर तपाईंको पैसा खर्च गराउन सक्दछ।""तपाईंका टेक्स्ट म्यासेजहरू (SMS वा MMS) पढ्नुहोस्""यस एपले तपाईंको ट्याब्लेटमा भण्डारण गरिएका सबै SMS (पाठ) सन्देशहरू पढ्न सक्छ।"
- "यस एपले तपाईंको Android टिभी डिभाइसमा भण्डारण गरिएका सबै SMS.(पाठ) सन्देशहरू पढ्न सक्छ।"
+ "यस एपले तपाईंको Android टिभी डिभाइसमा भण्डार गरिएका सबै SMS.(पाठ) सन्देशहरू पढ्न सक्छ।""यस एपले तपाईंको फोनमा भण्डारण गरिएका सबै SMS (पाठ) सन्देशहरू पढ्न सक्छ।""टेक्स्ट म्यासेजहरू (WAP) प्राप्त गर्नुहोस्""WAP सन्देशहरू प्राप्त गर्न र प्रशोधन गर्न एपलाई अनुमति दिन्छ। यो अनुमतिमा मोनिटर गर्ने वा तपाईँलाई पठाइएका म्यासेजहरू तपाईँलाई नदेखाई मेट्ने क्षमता समावेश हुन्छ।"
@@ -391,7 +395,7 @@
"यो एपले ब्याकग्राउन्डमा डेटा प्रयोग गर्नसक्छ। यसले गर्दा धेरै डेटा प्रयोग हुनसक्छ।""एपहरू जहिले पनि चल्ने बनाउनुहोस्""यसको आफ्नै मेमोरीमा दृढ भएकोको अंश बनाउनको लागि एपलाई अनुमति दिन्छ। ट्याब्लेटलाई ढिलो गराउँदै गरेका अन्य एपहरूलाई सीमित मात्रामा यसले मेमोरी उपलब्ध गराउन सक्छ।"
- "एपलाई आफ्ना केही अंशहरू मेमोरीमा स्थायी रूपमा राख्ने अनुमति दिन्छ। यसले गर्दा अन्य एपका लागि मेमोरीको अभाव हुन सक्ने भएकाले तपाईंको Android टिभी यन्त्र सुस्त हुन सक्छ।"
+ "एपलाई आफ्ना केही अंशहरू मेमोरीमा स्थायी रूपमा राख्ने अनुमति दिन्छ। यसले गर्दा अन्य अनुप्रयोगहरूका लागि मेमोरीको अभाव हुन सक्ने भएकाले तपाईंको Android टिभी यन्त्र सुस्त हुन सक्छ।""एपलाई मेमोरीमा आफैंको निरन्तरको अंश बनाउन अनुमति दिन्छ। यसले फोनलाई ढिला बनाएर अन्य एपहरूमा मेमोरी SIMित गर्न सक्दछन्।""अग्रभूमिको सेवा सञ्चालन गर्नुहोस्""एपलाई अग्रभूमिका सेवाहरू प्रयोग गर्ने अनुमति दिन्छ।"
@@ -408,9 +412,9 @@
"एपलाई प्रसारण समाप्त भइसकेपछि पनि रहिरहने स्टिकी प्रसारणहरू पठाउने अनुमति दिन्छ। यो सुविधाको अत्यधिक प्रयोगले धेरै मेमोरी प्रयोग हुने भएकाले तपाईंको Android टिभी यन्त्र सुस्त वा अस्थिर हुन सक्छ।""औपचारिक प्रसारणलाई पठाउनको लागि एक एपलाई अनुमति दिन्छ, जुन प्रसारण समाप्त भएपछि बाँकी रहन्छ। अत्यधिक प्रयोगले धेरै मेमोरी प्रयोग गरेको कारणले फोनलाई ढिलो र अस्थिर बनाउन सक्छ।""तपाईँका सम्पर्कहरू पढ्नुहोस्"
- "एपलाई तपाईंको ट्याब्लेटमा भण्डारण गरिएका सम्पर्क ठेगानाहरूसँग सम्बन्धित डेटा पढ्ने अनुमति दिन्छ। एपहरूले सम्पर्क ठेगानाहरू बनाउने तपाईंको ट्याब्लेटमा भण्डारण गरिएका खाताहरूमाथि पनि पहुँच प्राप्त गर्ने छन्। यसमा तपाईंले स्थापना गरेका एपहरूले बनाएका खाताहरू पर्न सक्छन्। यस अनुमतिले एपहरूलाई तपाईंको सम्पर्क ठेगानासम्बन्धी डेटा सेभ गर्न दिने भएकाले हानिकारक एपहरूले तपाईंलाई थाहै नदिइकन सम्पर्क ठेगानासम्बन्धी डेटा आदान प्रदान गर्न सक्छन्।"
- "एपलाई तपाईंको Android टिभी डिभाइसमा भण्डारण गरिएका सम्पर्क ठेगानासम्बन्धी डेटा पढ्न अनुमति दिन्छ। एपहरूले सम्पर्क ठेगानाहरू बनाउने तपाईंको Android टिभी डिभाइसमा भण्डारण गरिएका खाताहरूमाथि पनि पहुँच प्राप्त गर्ने छन्। यसमा तपाईंले स्थापना गरेका एपहरूले बनाएका खाताहरू पर्न सक्छन्। यस अनुमतिले एपहरूलाई तपाईंको सम्पर्क ठेगानासम्बन्धी डेटा सेभ गर्न दिने भएकाले हानिकारक एपहरूले तपाईंलाई थाहै नदिइकन सम्पर्क ठेगानासम्बन्धी डेटा आदान प्रदान गर्न सक्छन्।"
- "एपलाई तपाईंको फोनमा भण्डारण गरिएका सम्पर्क ठेगानाहरूसँग सम्बन्धित डेटा पढ्ने अनुमति दिन्छ। एपहरूले सम्पर्क ठेगानाहरू बनाउने तपाईंको फोनमा भण्डारण गरिएका खाताहरूमाथि पनि पहुँच प्राप्त गर्ने छन्। यसमा तपाईंले स्थापना गरेका एपहरूले बनाएका खाताहरू पर्न सक्छन्। यस अनुमतिले एपहरूलाई तपाईंको सम्पर्क ठेगानासम्बन्धी डेटा सेभ गर्न दिने भएकाले हानिकारक एपहरूले तपाईंलाई थाहै नदिइकन सम्पर्क ठेगानासम्बन्धी डेटा आदान प्रदान गर्न सक्छन्।"
+ "एपलाई तपाईंको ट्याब्लेटमा भण्डार गरिएका सम्पर्क ठेगानाहरूसँग सम्बन्धित डेटा पढ्ने अनुमति दिन्छ। एपहरूले सम्पर्क ठेगानाहरू बनाउने तपाईंको ट्याब्लेटमा भण्डार गरिएका खाताहरूमाथि पनि पहुँच प्राप्त गर्ने छन्। यसमा तपाईंले स्थापना गरेका एपहरूले बनाएका खाताहरू पर्न सक्छन्। यस अनुमतिले एपहरूलाई तपाईंको सम्पर्क ठेगानासम्बन्धी डेटा सेभ गर्न दिने भएकाले हानिकारक एपहरूले तपाईंलाई थाहै नदिइकन सम्पर्क ठेगानासम्बन्धी डेटा आदान प्रदान गर्न सक्छन्।"
+ "एपलाई तपाईंको Android टिभी डिभाइसमा भण्डारण गरिएका सम्पर्क ठेगानासम्बन्धी डेटा पढ्न अनुमति दिन्छ। एपहरूले सम्पर्क ठेगानाहरू बनाउने तपाईंको Android टिभी डिभाइसमा भण्डार गरिएका खाताहरूमाथि पनि पहुँच प्राप्त गर्ने छन्। यसमा तपाईंले स्थापना गरेका एपहरूले बनाएका खाताहरू पर्न सक्छन्। यस अनुमतिले एपहरूलाई तपाईंको सम्पर्क ठेगानासम्बन्धी डेटा सेभ गर्न दिने भएकाले हानिकारक एपहरूले तपाईंलाई थाहै नदिइकन सम्पर्क ठेगानासम्बन्धी डेटा आदान प्रदान गर्न सक्छन्।"
+ "एपलाई तपाईंको फोनमा भण्डार गरिएका सम्पर्क ठेगानाहरूसँग सम्बन्धित डेटा पढ्ने अनुमति दिन्छ। एपहरूले सम्पर्क ठेगानाहरू बनाउने तपाईंको फोनमा भण्डार गरिएका खाताहरूमाथि पनि पहुँच प्राप्त गर्ने छन्। यसमा तपाईंले स्थापना गरेका एपहरूले बनाएका खाताहरू पर्न सक्छन्। यस अनुमतिले एपहरूलाई तपाईंको सम्पर्क ठेगानासम्बन्धी डेटा सेभ गर्न दिने भएकाले हानिकारक एपहरूले तपाईंलाई थाहै नदिइकन सम्पर्क ठेगानासम्बन्धी डेटा आदान प्रदान गर्न सक्छन्।""तपाईँका सम्पर्कहरू परिवर्तन गर्नुहोस्""एपलाई तपाईंको ट्याब्लेटमा भण्डारण गरिएका सम्पर्क ठेगानासम्बन्धी डेटा परिमार्जन गर्न अनुमति दिन्छ। यो अनुमतिले एपलाई सम्पर्क ठेगानासम्बन्धी डेटा मेटाउन अनुमति दिन्छ।""एपलाई तपाईंको Android टिभी डिभाइसमा भण्डारण गरिएका सम्पर्क ठेगानासम्बन्धी डेटा परिमार्जन गर्न अनुमति दिन्छ। यो अनुमतिले एपलाई सम्पर्क ठेगानासम्बन्धी डेटा मेटाउन अनुमति दिन्छ।"
@@ -427,7 +431,7 @@
"यसले यो एप ब्याकग्राउन्डमा चलेका बेला यसलाई हृदयको गति, शरीरको तापक्रम तथा रगतमा रहेको अक्सिजनको प्रतिशत जस्ता बडी सेन्सरसम्बन्धी डेटा हेर्ने तथा प्रयोग गर्ने अनुमति दिन्छ।""पात्रोका कार्यक्रम र विवरणहरू पढ्ने""यस एपले तपाईंको ट्याब्लेटमा भण्डारण गरिएका पात्रो सम्बन्धी सबै कार्यक्रमहरू पढ्न र तपाईंको पात्रोको डेटा आदान प्रदान वा सुरक्षित गर्न सक्छ।"
- "यस एपले तपाईंको Android टिभी डिभाइसमा भण्डारण गरिएका पात्रोसम्बन्धी सबै कार्यक्रमहरू पढ्न र तपाईंको पात्रोको डेटा आदान प्रदान वा सुरक्षित गर्न सक्छ।"
+ "यस एपले तपाईंको Android टिभी डिभाइसमा भण्डार गरिएका पात्रोसम्बन्धी सबै कार्यक्रमहरू पढ्न र तपाईंको पात्रोको डेटा आदान प्रदान वा सुरक्षित गर्न सक्छ।""यस एपले तपाईंको फोनमा भण्डारण गरिएका पात्रो सम्बन्धी सबै कार्यक्रमहरू पढ्न र तपाईंको पात्रोको डेटा आदान प्रदान वा सुरक्षित गर्न सक्छ।""पात्रो घटनाहरू थप्नुहोस् वा परिमार्जन गर्नुहोस् र मालिकको ज्ञान बिना नै पाहुनाहरूलाई इमेल पठाउनुहोस्""यस एपले तपाईंको ट्याब्लेटमा पात्रोका कार्यक्रमहरू थप्न, हटाउन वा परिवर्तन गर्न सक्छ। यस एपले पात्रोका मालिकहरू मार्फत आएको जस्तो लाग्ने सन्देशहरू पठाउन वा तिनीहरूका मालिकहरूलाई सूचित नगरिकन कार्यक्रमहरू परिवर्तन गर्न सक्छ।"
@@ -456,7 +460,7 @@
"ब्याकग्राउन्डमा फोटो खिच्नुहोस् तथा भिडियो रेकर्ड गर्नुहोस्""यो एपले जुनसुकै बेला क्यामेराको प्रयोग गरी फोटो खिच्न र भिडियो रेकर्ड गर्न सक्छ।""एप वा सेवालाई फोटो र भिडियो खिच्न प्रणालीका क्यामेराहरूमाथि पहुँच राख्न दिनुहोस्"
- "प्रणालीको यस विशेषाधिकार प्राप्त अनुप्रयोगले जुनसुकै बेला प्रणालीको क्यामेरा प्रयोग गरी फोटो खिच्न र भिडियो रेकर्ड गर्न सक्छ। एपसँग पनि android.permission.CAMERA प्रयोग गर्ने अनुमति हुनु पर्छ"
+ "प्रणालीको यस विशेषाधिकार प्राप्त अनुप्रयोगले जुनसुकै बेला प्रणालीको क्यामेरा प्रयोग गरी फोटो खिच्न र भिडियो रेकर्ड गर्न सक्छ। अनुप्रयोगसँग पनि android.permission.CAMERA प्रयोग गर्ने अनुमति हुनु पर्छ""कुनै एप वा सेवालाई खोलिँदै वा बन्द गरिँदै गरेका क्यामेरा यन्त्रहरूका बारेमा कलब्याक प्राप्त गर्ने अनुमति दिनुहोस्।""कुनै क्यामेरा यन्त्र खोलिँदा (कुन अनुप्रयोगले खोलेको भन्ने बारेमा) वा बन्द गरिँदा यो एपले कलब्याक प्राप्त गर्न सक्छ।""कम्पन नियन्त्रण गर्नुहोस्"
@@ -503,7 +507,7 @@
"उपकरणमा खाताहरू भेट्टाउनुहोस्""एपलाई ट्याब्लेटद्वारा ज्ञात खाताहरूको सूची पाउन अनुमति दिन्छ। यसले अनुप्रयोगद्वारा तपाईंले स्थापित गर्नुभएको कुनै पनि खाताहरू समावेश गर्न सक्दछ।""एपलाई तपाईंको Android टिभी यन्त्रले चिनेका खाताहरूको सूची प्राप्त गर्ने अनुमति दिन्छ। उक्त सूचीमा तपाईंले स्थापना गर्नुभएका एपहरूले बनाएका कुनै पनि खाताहरू पर्न सक्छन्।"
- "फोनलाई थाहा भएका खाताहरूको सूची प्राप्त गर्न एपलाई अनुमति दिन्छ। यसले तपाईँले स्थापना गर्नु भएका एपहरूबाट सृजित कुनै खाताहरू समावेश हुन सक्छ।"
+ "फोनलाई थाहा भएका खाताहरूको सूची प्राप्त गर्न एपलाई अनुमति दिन्छ। यसले तपाईँले स्थापना गर्नु भएका अनुप्रयोगहरूबाट सृजित कुनै खाताहरू समावेश हुन सक्छ।""नेटवर्क जडानहरू हेर्नहोस्""एपलाई नेटवर्क जडानहरू जस्तै कुन नेटवर्कहरू अवस्थित हुन्छन् र जडित छन् जसले हेर्नलाई अनुमति दिन्छ।""पूर्ण नेटवर्क पहुँच प्राप्त छ"
@@ -582,14 +586,13 @@
"स्क्रिन लक प्रयोग गर्नुहोस्""जारी राख्न आफ्नो स्क्रिन लक हाल्नुहोस्""सेन्सरमा बेसरी थिच्नुहोस्"
- "फिंगरप्रिन्ट पहिचान गर्न सकिएन। फेरि प्रयास गर्नुहोस्।"
+ "फिंगरप्रिन्ट प्रशोधन गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।""फिंगरप्रिन्ट सेन्सर सफा गरेर फेरि प्रयास गर्नुहोस्""सेन्सर सफा गरेर फेरि प्रयास गर्नुहोस्""सेन्सरमा बेसरी थिच्नुहोस्""औंला निकै सुस्त सारियो। कृपया फेरि प्रयास गर्नुहोस्।""अर्को फिंगरप्रिन्ट प्रयोग गरी हेर्नुहोस्""ज्यादै उज्यालो छ"
- "पावर बटन प्रेस गरेको कुरा पत्ता लाग्यो""सेन्सरमा सही तरिकाले औँला राखेर हेर्नुहोस्""हरेक पटक आफ्नो औँला थोरै यताउता सार्नुहोस्"
@@ -601,17 +604,16 @@
"अनुहार प्रमाणीकरण गरियो, कृपया पुष्टि गर्नुहोस् थिच्नुहोस्""औँठाछाप हार्डवेयर उपलब्ध छैन।""फिंगरप्रिन्ट सेटअप गर्न सकिएन"
- "फिंगरप्रिन्ट सेट अप गर्ने समय सकियो। फेरि प्रयास गर्नुहोस्।"
+ "फिंगरप्रिन्ट समय सकिएको छ। फेरि प्रयास गर्नुहोस्।""फिंगरप्रिन्ट सञ्चालन रद्द गरियो।""प्रयोगकर्ताले फिंगरप्रिन्टसम्बन्धी कारबाही रद्द गर्नुभयो।"
- "निकै धेरै पटक प्रयास गरिसकिएको छ। बरु स्क्रिन लक प्रयोग गर्नुहोस्।"
- "निकै धेरै पटक प्रयास गरिसकिएको छ। बरु स्क्रिन लक प्रयोग गर्नुहोस्।"
- "फिंगरप्रिन्ट पहिचान गर्ने प्रक्रिया अघि बढाउन सकिएन। फेरि प्रयास गर्नुहोस्।"
+ "धेरै प्रयासहरू। केहि समय पछि पुन: प्रयास गर्नुहोला"
+ "अत्यन्त धेरै प्रयासहरू। फिंगरप्रिन्ट सेन्सरलाई असक्षम पारियो।"
+ "पुन: प्रयास गर्नुहोला।""कुनै पनि फिंगरप्रिन्ट दर्ता गरिएको छैन।""यो डिभाइसमा कुनै पनि फिंगरप्रिन्ट सेन्सर छैन।""केही समयका लागि सेन्सर असक्षम पारियो।""फिंगरप्रिन्ट सेन्सर प्रयोग गर्न मिल्दैन। फिंगरप्रिन्ट सेन्सर मर्मत गर्ने सेवा प्रदायक कम्पनीमा सम्पर्क गर्नुहोस्"
- "पावर बटन थिचियो""औंला %d""फिंगरप्रिन्ट प्रयोग गर्नुहोस्""फिंगरप्रिन्ट वा स्क्रिन लक प्रयोग गर्नुहोस्"
@@ -632,33 +634,26 @@
"फिंगरप्रिन्ट अनलक""फिंगरप्रिन्ट सेन्सर प्रयोग गर्न मिल्दैन""फिंगरप्रिन्ट सेन्सर मर्मत गर्ने सेवा प्रदायक कम्पनीमा सम्पर्क गर्नुहोस्।"
- "तपाईंको फेस मोडेल सिर्जना गर्न सकिएन। फेरि प्रयास गर्नुहोस्।"
+ "अनुहारको सटीक डेटा खिच्न सकिएन। फेरि प्रयास गर्नुहोस्।""ज्यादै चम्किलो। अझ मधुरो प्रकाश प्रयोग गरी हेर्नु…"
- "पर्याप्त उज्यालो छैन"
- "फोन अझै पर सार्नुहोस्"
- "फोन अझै नजिक सार्नुहोस्"
- "फोन अझ माथि उठाउनुहोस्"
- "फोन अझै तल सार्नुहोस्"
- "फोन आफ्नो बायाँतिर सार्नुहोस्"
- "फोन आफ्नो दायाँतिर सार्नुहोस्"
+ "ज्यादै अँध्यारो छ। अझ बढी प्रकाशमा गई हेर्नुहोस्"
+ "फोन अझै पर सार्नुहोस्।"
+ "फोन अझै नजिक सार्नुहोस्।"
+ "फोन अझ माथि उठाउनुहोस्।"
+ "फोन अझै तल सार्नुहोस्।"
+ "फोन बायाँतिर सार्नुहोस्।"
+ "फोन दायाँतिर सार्नुहोस्।""कृपया अझ सीधा गरी आफ्नो स्क्रिनमा हेर्नुहोस्।"
- "तपाईंको अनुहार देखिएन। तपाईंको फोन आफ्नो आँखाअघि राखी समात्नुहोस्।"
+ "आफ्नो अनुहार फोनको सीधा अगाडि पार्नुहोस्।""अत्यधिक हल्लियो। फोन स्थिर राख्नुहोस्।""कृपया आफ्नो अनुहार पुनः दर्ता गर्नुहोस्।"
- "अनुहार पहिचान गर्न सकिएन। फेरि प्रयास गर्नुहोस्।"
- "आफ्नो टाउको थोरै यताउता सार्नुहोस्"
- "आफ्नो फोनमा अझ सीधा हेर्नुहोस्"
- "आफ्नो फोनमा अझ सीधा हेर्नुहोस्"
- "आफ्नो फोनमा अझ सीधा हेर्नुहोस्"
- "तपाईंको अनुहार लुकाउने सबै कुरा हटाउनुहोस्।"
+ "अब उप्रान्त अनुहार पहिचान गर्न सकिएन। फेरि प्रयास गर्नुहोस्।"
+ "अनुहार उस्तै भयो, कृपया आफ्नो पोज बदल्नुहोस्।"
+ "आफ्नो टाउको अलि थोरै घुमाउनुहोस्।"
+ "आफ्नो टाउको केही कम झुकाउनुहोस्।"
+ "आफ्नो टाउको अलि थोरै घुमाउनुहोस्।"
+ "तपाईंको अनुहार लुकाउने सबै कुरा लुकाउनुहोस्।""कालो रङको पट्टीलगायत आफ्नो स्क्रिनको माथिल्लो भाग सफा गर्नुहोस्"
-
-
-
-
- "तपाईंको फेस मोडेल सिर्जना गर्न सकिएन। फेरि प्रयास गर्नुहोस्।"
- "कालो चस्मा लगाइएको पाइयो। तपाईंको अनुहार पूरै देखिनु पर्छ।"
- "अनुहार छोपिएको पाइयो। तपाईंको अनुहार पूरै देखिनु पर्छ।""अनुहार पुष्टि गर्न सकिएन। हार्डवेयर उपलब्ध छैन।"
@@ -719,7 +714,7 @@
"नेटवर्क उपयोग लेखालाई परिमार्जन गर्नुहोस्""एपलाई कसरी अनुप्रयोगहरूको विरूद्धमा कसरी नेटवर्क उपयोगी अकाउन्टेड छ भनेर परिमार्जन गर्न अनुमति दिन्छ। साधारण अनुप्रयोगहरूद्वारा प्रयोगको लागि होइन।""सूचनाहरू पहुँच गर्नुहोस्"
- "अन्य एपहरूबाट पोस्ट गरिएकासहित पुनःप्राप्त गर्न, परीक्षण गर्न र सूचनाहरू हटाउन एपहरूलाई अनुमति दिन्छ।"
+ "अन्य अनुप्रयोगहरूबाट पोस्ट गरिएकासहित पुनःप्राप्त गर्न, परीक्षण गर्न र सूचनाहरू हटाउन एपहरूलाई अनुमति दिन्छ।""जानकारी श्रोता सेवामा बाँध्नुहोस्""होल्डरलाई सूचना श्रोता सेवाको शीर्ष-स्तरको इन्टरफेस बाँध्न अनुमति दिन्छ। सामान्य एपहरूलाई कहिले पनि आवश्यक नपर्न सक्दछ।""सर्त प्रदायक सेवामा जोड्न"
@@ -924,14 +919,14 @@
"फेरि प्रयास गर्नुहोस्""सबै सुविधाहरू र डेटाका लागि अनलक गर्नुहोस्""फेस अनलक प्रयोग गरी अनलक गर्ने प्रयास अत्याधिक धेरै भयो"
- "SIM कार्ड हालिएको छैन"
- "ट्याब्लेटमा SIM कार्ड हालिएको छैन।"
- "तपाईंको Android TV डिभाइसमा SIM कार्ड हालिएको छैन।"
- "फोनमा SIM कार्ड हालिएको छैन।"
- "SIM कार्ड हाल्नुहोस्।"
- "SIM कार्ड हालिएको छैन वा रिड गर्न मिल्दैन। SIM कार्ड हाल्नुहोस्।"
- "यो SIM कार्ड प्रयोग गर्न मिल्दैन।"
- "तपाईंको SIM कार्ड सदाका लागि डिएक्टिभेट गरिएको छ।\n आफ्नो वायरलेस सेवा प्रदायकलाई सम्पर्क गरी अर्को SIM कार्ड प्राप्त गर्नुहोस्।"
+ "SIM कार्ड छैन"
+ "ट्याब्लेटमा SIM कार्ड छैन।"
+ "तपाईंको Android टिभी डिभाइसमा SIM कार्ड छैन।"
+ "फोनमा SIM कार्ड छैन।"
+ "SIM कार्ड घुसाउनुहोस्"
+ "SIM कार्ड छैन वा पढ्न मिल्दैन। SIM कार्ड हाल्नुहोस्।"
+ "प्रयोग गर्न अयोग्य SIM कार्ड"
+ "तपाईंको SIM कार्ड स्थायी रूपमा अक्षम भयो।\n अर्को SIM कार्डको लागि आफनो ताररहित सेवा प्रदायकसँग सम्पर्क गर्नुहोस्।""अघिल्लो ट्रयाक""अर्को ट्रयाक""रोक्नुहोस्"
@@ -941,10 +936,10 @@
"फास्ट फर्वार्ड""आपत्कालीन कलहरू मात्र""नेटवर्क लक छ"
- "SIM कार्ड PUK प्रयोग गरी लक गरिएको छ।"
+ "SIM कार्ड PUK-लक गरिएको छ।""प्रयोगकर्ता निर्देशक वा ग्राहक सेवा सम्पर्क हर्नुहोस्।"
- "SIM कार्ड लक गरिएको छ।"
- "SIM कार्ड अनलक गरिँदै छ…"
+ "SIM कार्ड लक गरिएको छ।"
+ "SIM कार्ड अनलक गरिँदै...""तपाईँले तपाईँको अनलक प्याटर्न गलत तरिकाले %1$d पटक खिच्नु भएको छ। \n\n %2$d सेकेन्डमा फेरि कोसिस गर्नुहोस्।""तपाईंले गलत तरिकाले आफ्नो पासवर्ड %1$d पटक टाइप गर्नुभयो। \n\n%2$d सेकेन्डमा फेरि प्रयास गर्नुहोस्।""तपाईँले गलत तरिकाले तपाईँको PIN %1$d पटक टाइप गर्नु भएको छ। \n\n%2$d सेकेन्डमा फेरि प्रयास गर्नुहोस्।"
@@ -1042,7 +1037,7 @@
"ब्राउजरले भ्रमण गरेको सबै URL हरूको इतिहास र ब्राउजरका सबै बुकमार्कहरू पढ्नको लागि एपलाई अनुमति दिन्छ। नोट: यो अनुमतिलाई तेस्रो पक्ष ब्राउजरहरूद्वारा वा वेब ब्राउज गर्ने क्षमताद्वारा बलपूर्वक गराउन सकिँदैन।""वेब बुकमार्कहरू र इतिहास लेख्नुहोस्""एपलाई तपाईंको ट्याब्लेटमा भण्डार गरिएको ब्राउजरको इतिहास वा बुकमार्कहरू परिमार्जन गर्न अनुमति दिन्छ। यसले एपलाई ब्राजर डेटा मेटाउन वा परिमार्जन गर्न अनुमति दिन सक्दछ। टिप्पणी: यो अनुमति वेब ब्राउज गर्ने क्षमताहरूको साथ तेस्रो-पार्टी ब्राउजर वा अन्य अनुप्रयोगहरूद्वारा लागू गरिएको होइन।"
- "एपलाई तपाईंको Android टिभी डिभाइसमा भण्डारण गरिएका ब्राउजरको इतिहास र पुस्तक चिन्हहरू परिमार्जन गर्ने अनुमति दिन्छ। यसले एपलाई ब्राउजरको डेटा मेटाउने वा परिमार्जन गर्ने अनुमति दिन सक्छ। ध्यान दिनुहोस्: तेस्रो पक्षीय ब्राउजर वा वेब ब्राउज गर्ने सुविधा प्रदान गर्ने अन्य एपहरूले यो अनुमति लागू गर्न सक्दैनन्।"
+ "एपलाई तपाईंको Android टिभी डिभाइसमा भण्डार गरिएका ब्राउजरको इतिहास र पुस्तक चिन्हहरू परिमार्जन गर्ने अनुमति दिन्छ। यसले एपलाई ब्राउजरको डेटा मेटाउने वा परिमार्जन गर्ने अनुमति दिन सक्छ। ध्यान दिनुहोस्: तेस्रो पक्षीय ब्राउजर वा वेब ब्राउज गर्ने सुविधा प्रदान गर्ने अन्य एपहरूले यो अनुमति लागू गर्न सक्दैनन्।""तपाईँको फोनमा भण्डारण भएको ब्राउजरको इतिहास वा बुकमार्कहरू परिवर्तन गर्नको लागि एपलाई अनुमति दिन्छ। यसले सायद ब्राउजर डेटालाई मेट्न वा परिवर्तन गर्नको लागि एपलाई अनुमति दिन्छ। नोट: वेब ब्राउज गर्ने क्षमतासहितका अन्य एपहरू वा तेस्रो- पक्ष ब्राउजरद्वारा सायद यस अनुमतिलाई लागु गर्न सकिंदैन।""एउटा आलर्म सेट गर्नुहोस्""स्थापना गरिएको सङ्केत घडी एपमा सङ्केत समय मिलाउन एपलाई अनुमति दिन्छ। केही सङ्केत घडी एपहरूले यो सुविधा कार्यान्वयन नगर्न सक्छन्।"
@@ -1246,9 +1241,10 @@
"%1$s तयारी गर्दै।""सुरुवात एपहरू।""बुट पुरा हुँदै।"
+ "सेटअप गर्ने प्रक्रिया जारी राख्ने हो?""तपाईंले पावर बटन थिच्नुभयो — सामान्यतया स्क्रिन अफ गर्न यो बटन थिच्ने गरिन्छ।\n\nफिंगरप्रिन्ट सेटअप भइन्जेल हल्का तरिकाले यो बटन ट्याप गर्नुहोस्।"
- "सेट अप गरिसक्न स्क्रिन अफ गर्नुहोस्"
- "अफ गर्नुहोस्"
+ "स्क्रिन अफ गर्नुहोस्"
+ "सेटअप जारी राख्नुस्""फिंगरप्रिन्ट पुष्टि गर्ने क्रम जारी राख्ने हो?""तपाईंले पावर बटन थिच्नुभयो — सामान्यतया स्क्रिन अफ गर्न यो बटन थिच्ने गरिन्छ।\n\nतपाईं आफ्नो फिंगरप्रिन्ट पुष्टि गर्न चाहनुहुन्छ भने हल्का तरिकाले यो बटन ट्याप गरी हेर्नुहोस्।""स्क्रिन अफ गर्नुहोस्"
@@ -1327,10 +1323,10 @@
"तपाईं यसलाई पछि सेटिङहरूमा बदल्न सक्नु हुन्छ > एपहरू""सधैँ अनुमति दिनुहोस्""कहिल्यै अनुमति नदिनुहोस्"
- "SIM कार्ड हटाइयो"
- "तपाईंले वैध SIM कार्ड हालेर डिभाइस रिस्टार्ट गरेपछि मात्र मोबाइल नेटवर्क उपलब्ध हुने छ।"
+ "SIM कार्ड हटाइयो"
+ "एउटा मान्य SIM कार्ड राखेर पुनःस्टार्ट नगरेसम्म मोबाइल नेटवर्क उपलब्ध हुने छैन।""भयो"
- "SIM कार्ड हालियो"
+ "SIM कार्ड थप गरियो""मोबाइल नेटवर्क पहुँच गर्न तपाईँको उपकरण पुनःस्टार्ट गर्नुहोस्।""पुनः सुरु गर्नुहोस्""मोबाइल सेवा अन गर्नुहोस्"
@@ -1382,9 +1378,9 @@
"सेयर गर्नुहोस्""अस्वीकार गर्नुहोस्""निवेश विधि छान्नुहोस्"
- "फिजिकल किबोर्ड सक्रिय हुँदा यसलाई स्क्रिनमा राखियोस्"
+ "वास्तविक किबोर्ड सक्रिय हुँदा यसलाई स्क्रिनमा राखियोस्""भर्चुअल किबोर्ड देखाउनुहोस्"
- "फिजिकल किबोर्ड कन्फिगर गर्नुहोस्"
+ "फिजिकल किबोर्डलाई कन्फिगर गर्नुहोस्""भाषा र लेआउट चयन गर्न ट्याप गर्नुहोस्"" ABCDEFGHIJKLMNOPQRSTUVWXYZ"" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
@@ -1401,16 +1397,16 @@
"सेटअप गर्न ट्याप गर्नुहोस्""सेटअप गर्न चयन गर्नुहोस्""तपाईंले यो डिभाइस पुनः फर्म्याट गर्नु पर्ने हुन सक्छ। यो डिभाइस हटाउन ट्याप गर्नुहोस्।"
- "फोटो, भिडियो, सङ्गीत र थप सामग्री भण्डारण गर्न"
+ "फोटोहरू र मिडिया स्थानान्तरणका लागि""मिडिया फाइलहरू ब्राउज गर्नुहोस्""%s मा समस्या देखियो""%s ले काम गरिरहेको छैन""समस्या समाधान गर्न ट्याप गर्नुहोस्""%s बिग्रेको छ। समाधान गर्न चयन गर्नुहोस्।""तपाईंले यो डिभाइस पुनः फर्म्याट गर्नु पर्ने हुन सक्छ। यो डिभाइस हटाउन ट्याप गर्नुहोस्।"
- "%s पत्ता लाग्यो"
+ "असमर्थित %s""%s ले काम गरिरहेको छैन"
- "सेटअप गर्न ट्याप गर्नुहोस् ।"
+ "यस यन्त्रले यस %s लाई समर्थन गर्दैन। एक समर्थित ढाँचामा सेटअप गर्न ट्याप गर्नुहोस्।""%s प्रयोग गर्न मिल्ने फर्म्याटमा सेटअप गर्न चयन गर्नुहोस्।""तपाईंले यो डिभाइस पुनः फर्म्याट गर्नु पर्ने हुन सक्छ""%s अप्रत्याशित रूपमा निकालियो"
@@ -1424,7 +1420,7 @@
"अन्वेषण गर्नुहोस्""आउटपुट बदल्नुहोस्""%s हराइरहेको"
- "डिभाइस फेरि हाल्नुहोस्"
+ "यन्त्र फेरि घुसाउनुहोस्""%s सार्दै""डेटा सार्दै...""सामग्री स्थानान्तरण गरियो"
@@ -1609,7 +1605,7 @@
"टिभी""फोन""डक स्पिकरहरू"
- "बााह्य डिभाइस"
+ "HDMI""हेडफोनहरू""USB""प्रणाली"
@@ -1642,7 +1638,7 @@
"SIM कार्ड अहिले असक्षम छ। सुचारु गर्नको लागि PUK कोड प्रविष्टि गर्नुहोस्। विवरणको लागि वाहकलाई सम्पर्क गर्नुहोस्।""इच्छित PIN कोड प्रविष्टि गर्नुहोस्""मनपर्दो PIN कोड निश्चित गर्नुहोस्"
- "SIM कार्ड अनलक गरिँदै छ…"
+ "SIM कार्ड अनलक गर्दै…""गलत PIN कोड।""४ देखि ८ वाट नम्बर भएको एउटा PIN टाइप गर्नुहोस्।""PUK कोड ८ संख्याको हुनु पर्दछ।"
@@ -1923,7 +1919,6 @@
"क्षेत्रको प्राथमिकता""भाषाको नाम टाइप गर्नुहोस्""सिफारिस गरिएको"
- "सिफारिस गरिएको""सम्पूर्ण भाषाहरू""सबै क्षेत्रहरू""खोज"
@@ -1941,19 +1936,18 @@
"क्यामेरा उपलब्ध छैन""फोनमा जारी राख्नुहोस्""माइक्रोफोन उपलब्ध छैन"
- "Play स्टोर उपलब्ध छैन""Android TV सम्बन्धी सेटिङ उपलब्ध छैनन्""ट्याब्लेटका सेटिङ उपलब्ध छैनन्""फोनका सेटिङ उपलब्ध छैनन्"
- "यस बखत तपाईंको %1$s मा यो एप स्ट्रिम गर्न मिल्दैन। बरु तपाईंको Android TV डिभाइसमा स्ट्रिम गरी हेर्नुहोस्।"
- "यस बखत तपाईंको %1$s मा यो एप स्ट्रिम गर्न मिल्दैन। बरु तपाईंको ट्याब्लेटमा स्ट्रिम गरी हेर्नुहोस्।"
- "यस बखत तपाईंको %1$s मा यो एप स्ट्रिम गर्न मिल्दैन। बरु तपाईंको फोनमा स्ट्रिम गरी हेर्नुहोस्।"
+ "हाल तपाईंको %1$s मा यो एप चलाउन मिल्दैन। बरु तपाईंको Android TV डिभाइसमा स्ट्रिम गरी हेर्नुहोस्।"
+ "हाल तपाईंको %1$s मा यो एप चलाउन मिल्दैन। बरु तपाईंको ट्याब्लेटमा स्ट्रिम गरी हेर्नुहोस्।"
+ "हाल तपाईंको %1$s मा यो एप चलाउन मिल्दैन। बरु तपाईंको फोनमा स्ट्रिम गरी हेर्नुहोस्।"
+ "यस बखत तपाईंको %1$s मा यो एप स्ट्रिम गर्न मिल्दैन। बरु तपाईंको Android TV डिभाइसमा स्ट्रिम गरी हेर्नुहोस्।"
+ "यस बखत तपाईंको %1$s मा यो एप स्ट्रिम गर्न मिल्दैन। बरु तपाईंको ट्याब्लेटमा स्ट्रिम गरी हेर्नुहोस्।"
+ "यस बखत तपाईंको %1$s मा यो एप स्ट्रिम गर्न मिल्दैन। बरु तपाईंको फोनमा स्ट्रिम गरी हेर्नुहोस्।""यो एपले सुरक्षासम्बन्धी अतिरिक्त सुविधा अन गर्न अनुरोध गरिरहेको छ। बरु तपाईंको Android TV डिभाइसमा स्ट्रिम गरी हेर्नुहोस्।""यो एपले सुरक्षासम्बन्धी अतिरिक्त सुविधा अन गर्न अनुरोध गरिरहेको छ। बरु तपाईंको ट्याब्लेटमा स्ट्रिम गरी हेर्नुहोस्।""यो एपले सुरक्षासम्बन्धी अतिरिक्त सुविधा अन गर्न अनुरोध गरिरहेको छ। बरु तपाईंको फोनमा स्ट्रिम गरी हेर्नुहोस्।"
- "तपाईंको %1$s मा यो एप चलाउन मिल्दैन। बरु तपाईंको Android TV डिभाइसमा स्ट्रिम गरी हेर्नुहोस्।"
- "तपाईंको %1$s मा यो एप चलाउन मिल्दैन। बरु तपाईंको ट्याब्लेटमा स्ट्रिम गरी हेर्नुहोस्।"
- "तपाईंको %1$s मा यो एप चलाउन मिल्दैन। बरु तपाईंको फोनमा स्ट्रिम गरी हेर्नुहोस्।""यो एप Android को पुरानो संस्करणका लागि बनाइएको हुनाले यसले सही ढङ्गले काम नगर्न सक्छ। अद्यावधिकहरू उपलब्ध छन् वा छैनन् भनी जाँच गरी हेर्नुहोस् वा यसको विकासकर्तालाई सम्पर्क गर्नुहोस्।""अपडेट उपलब्ध छ वा छैन जाँच्नुहोस्""तपाईंलाई नयाँ सन्देश आएको छ"
@@ -2046,8 +2040,7 @@
"%s लाई डिभाइसका सबै लग हेर्ने अनुमति दिने हो?""एक पटक प्रयोग गर्ने अनुमति दिनुहोस्""अनुमति नदिनुहोस्"
- "डिभाइसका लगले तपाईंको डिभाइसमा भएका विभिन्न गतिविधिको अभिलेख राख्छ। एपहरू यी लगका आधारमा समस्या पत्ता लगाउन र तिनको समाधान गर्न सक्छन्।\n\nकेही लगहरूमा संवेदनशील जानकारी समावेश हुन सक्ने भएकाले आफूले भरोसा गर्ने एपलाई मात्र डिभाइसका सबै लग हेर्ने अनुमति दिनुहोस्। \n\nतपाईंले यो एपलाई डिभाइसका सबै लग हेर्ने अनुमति दिनुभएन भने पनि यसले आफ्नै लग भने हेर्न सक्छ। तपाईंको डिभाइसको उत्पादकले पनि तपाईंको डिभाइसमा भएका केही लग वा जानकारी हेर्न सक्ने सम्भावना हुन्छ।"
- "डिभाइसका लगले तपाईंको डिभाइसमा भएका विभिन्न गतिविधिको अभिलेख राख्छ। एपहरू यी लगका आधारमा समस्या पत्ता लगाउन र तिनको समाधान गर्न सक्छन्।\n\nकेही लगहरूमा संवेदनशील जानकारी समावेश हुन सक्ने भएकाले आफूले भरोसा गर्ने एपलाई मात्र डिभाइसका सबै लग हेर्ने अनुमति दिनुहोस्। \n\nतपाईंले यो एपलाई डिभाइसका सबै लग हेर्ने अनुमति दिनुभएन भने पनि यसले आफ्नै लग भने हेर्न सक्छ। तपाईंको डिभाइसको उत्पादकले पनि तपाईंको डिभाइसमा भएका केही लग वा जानकारी हेर्न सक्ने सम्भावना हुन्छ।\n\nतपाईं यस सम्बन्धमा थप जान्न चाहनुहुन्छ भने g.co/android/devicelogs मा जानुहोस्।"
+ "डिभाइसका लगले तपाईंको डिभाइसमा भएका विभिन्न गतिविधिको अभिलेख राख्छ। एपहरू यी लगका आधारमा समस्या पत्ता लगाउन र तिनको समाधान गर्न सक्छन्।\n\nकेही लगहरूमा संवेदनशील जानकारी समावेश हुन सक्ने भएकाले आफूले भरोसा गर्ने एपलाई मात्र डिभाइसका सबै लग हेर्ने अनुमति दिनुहोस्। \n\nतपाईंले यो एपलाई डिभाइसका सबै लग हेर्ने अनुमति दिनुभएन भने पनि यसले आफ्नै लग भने हेर्न सक्छ। तपाईंको डिभाइसको उत्पादकले पनि तपाईंको डिभाइसमा भएका केही लग वा जानकारी हेर्न सक्ने सम्भावना हुन्छ। थप जान्नुहोस्""फेरि नदेखाइयोस्""%1$s ले %2$s का स्लाइसहरू देखाउन चाहन्छ""सम्पादन गर्नुहोस्"
@@ -2060,7 +2053,8 @@
"बाधा नपुर्याउनुहोस् मोड परिवर्तन भएको छ""रोक लगाइएका कुराहरू जाँच गर्न ट्याप गर्नुहोस्।""सूचनाका सेटिङको समीक्षा गर्नुहोस्"
- "Android १३ मा तपाईंले अनुमति दिनुभएका खण्डमा मात्र तपाईंले इन्स्टल गर्नुभएका एपले सूचना पठाउन सक्छन्। यसअघि इन्स्टल गरिसकिएका एपका हकमा यो अनुमति परिवर्तन गर्न ट्याप गर्नुहोस्।"
+
+ "मलाई पछि स्मरण गराइयोस्""हटाउनुहोस्""प्रणाली"
@@ -2288,6 +2282,5 @@
"कुन कुन एप सक्रिय छ भन्ने कुरा जाँच्नुहोस्""तपाईंको %1$s मार्फत फोनको क्यामेरा प्रयोग गर्न मिल्दैन""तपाईंको %1$s मार्फत ट्याब्लेटको क्यामेरा प्रयोग गर्न मिल्दैन"
- "स्ट्रिम गरिरहेका बेला यो सामग्री हेर्न तथा प्रयोग गर्न मिल्दैन। बरु आफ्नो फोनमार्फत सो सामग्री हेर्ने तथा प्रयोग गर्ने प्रयास गर्नुहोस्।"
- "सिस्टम डिफल्ट"
+ "सिस्टमको भाषा"
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 8823b6ab7a83d4545915485412b7863023bac6b3..e830d3e2cfd64347885fdf3f199ef24780bf7a70 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -21,6 +21,11 @@
"B"
+ " KB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Naamloos>""(Geen telefoonnummer)"
@@ -28,7 +33,6 @@
"Voicemail""MSISDN1""Verbindingsprobleem of ongeldige MMI-code."
- "Functie niet ondersteund.""Bewerking is beperkt tot vaste nummers.""Kan instellingen voor doorschakelen van gesprekken niet wijzigen vanaf je telefoon tijdens roaming.""Service staat aan."
@@ -43,8 +47,8 @@
"De pincodes die je hebt ingevoerd, komen niet overeen.""Voer een pincode van 4 tot 8 cijfers in.""Typ een pukcode die 8 cijfers of langer is."
- "Je simkaart is vergrendeld met de pukcode. Typ de pukcode om te ontgrendelen."
- "Typ de PUK2-code om de simkaart niet meer te blokkeren."
+ "Je simkaart is vergrendeld met de pukcode. Typ de pukcode om te ontgrendelen."
+ "Voer de PUK2-code in om de simkaart te ontgrendelen.""Mislukt. Zet SIM/RUIM-vergrendeling aan."Je hebt nog %d pogingen over voordat de simkaart wordt vergrendeld.
@@ -226,7 +230,7 @@
"Uitzetten…""Je tablet wordt uitgezet.""Je Android TV-apparaat wordt uitgezet."
- "Je smartwatch wordt uitgezet."
+ "Je horloge wordt uitgezet.""Je telefoon wordt uitgezet.""Wil je afsluiten?""Opnieuw opstarten in veilige modus"
@@ -256,7 +260,7 @@
"Stille modus""Geluid is UIT""Geluid is AAN"
- "Vliegtuigmodus"
+ "Vliegtuigmodus""Vliegtuigmodus is AAN""Vliegtuigmodus is UIT""Instellingen"
@@ -301,12 +305,12 @@
"toegang krijgen tot je agenda""Sms""sms\'jes verzenden en bekijken"
- "Bestanden"
- "toegang tot bestanden op je apparaat"
- "Muziek en audio"
- "muziek en audio op je apparaat openen"
- "Foto\'s en video\'s"
- "foto\'s en video\'s op je apparaat openen"
+ "Bestanden en documenten"
+ "bestanden en documenten op je apparaat openen"
+ "Muziek en andere audio"
+ "toegang krijgen tot audiobestanden op je apparaat"
+ "Foto\'s en video\'s"
+ "toegang krijgen tot afbeeldingen en videobestanden op je apparaat""Microfoon""audio opnemen""Fysieke activiteit"
@@ -582,14 +586,13 @@
"Schermvergrendeling gebruiken""Voer je schermvergrendeling in om door te gaan""Druk stevig op de sensor"
- "Vingerafdruk niet herkend. Probeer het opnieuw."
+ "Kan vingerafdruk niet verwerken. Probeer het opnieuw.""Reinig de vingerafdruksensor en probeer het opnieuw""Reinig de sensor en probeer het opnieuw""Druk stevig op de sensor""Vinger te langzaam bewogen. Probeer het opnieuw.""Probeer een andere vingerafdruk""Te veel licht"
- "Druk op aan/uit-knop waargenomen""Verplaats je vinger""Verander de positie van je vinger steeds een beetje"
@@ -601,17 +604,16 @@
"Gezicht geverifieerd. Druk op Bevestigen.""Hardware voor vingerafdruk niet beschikbaar.""Kan vingerafdruk niet instellen"
- "Time-out bij instellen van vingerafdruk. Probeer het opnieuw."
+ "Time-out bereikt voor vingerafdruk. Probeer het opnieuw.""Vingerafdrukbewerking geannuleerd.""Vingerafdrukverificatie geannuleerd door gebruiker."
- "Te veel pogingen. Gebruik in plaats daarvan de schermvergrendeling."
- "Te veel pogingen. Gebruik in plaats daarvan de schermvergrendeling."
- "Kan vingerafdruk niet verwerken. Probeer het opnieuw."
+ "Te veel pogingen. Probeer het later opnieuw."
+ "Te veel pogingen. Vingerafdruksensor staat uit."
+ "Probeer het opnieuw.""Geen vingerafdrukken geregistreerd.""Dit apparaat heeft geen vingerafdruksensor.""Sensor staat tijdelijk uit.""Kan vingerafdruksensor niet gebruiken. Ga naar een reparateur."
- "Aan/uit-knop ingedrukt""Vinger %d""Vingerafdruk gebruiken""Vingerafdruk of schermvergrendeling gebruiken"
@@ -632,33 +634,26 @@
"Ontgrendelen met vingerafdruk""Kan vingerafdruksensor niet gebruiken""Ga naar een reparateur."
- "Kan gezichtsmodel niet maken. Probeer het opnieuw."
+ "Geen accurate gegevens. Probeer het nog eens.""Overbelicht. Probeer een minder felle belichting."
- "Te weinig licht"
- "Houd de telefoon verder weg"
- "Houd de telefoon dichterbij"
- "Houd de telefoon hoger"
- "Houd de telefoon lager"
- "Beweeg de telefoon naar links"
- "Beweeg de telefoon naar rechts"
+ "Te donker. Probeer een fellere verlichting."
+ "Beweeg de telefoon verder weg."
+ "Houd de telefoon dichterbij."
+ "Houd de telefoon hoger."
+ "Houd de telefoon lager."
+ "Beweeg je telefoon meer naar links."
+ "Beweeg je telefoon meer naar rechts.""Kijk rechter naar je apparaat."
- "Je gezicht is niet te zien. Houd je telefoon op ooghoogte."
+ "Houd je gezicht recht voor de telefoon.""Te veel beweging. Houd je telefoon stil.""Registreer je gezicht opnieuw."
- "Gezicht niet herkend. Probeer het opnieuw."
- "Verander de positie van je hoofd een beetje"
- "Kijk goed recht naar je telefoon"
- "Kijk goed recht naar je telefoon"
- "Kijk goed recht naar je telefoon"
- "Zorg dat je gezicht volledig zichtbaar is"
+ "Herkent gezicht niet meer. Probeer het nog eens."
+ "Lijkt te veel op elkaar. Verander je pose."
+ "Draai je hoofd iets minder."
+ "Kantel je hoofd iets minder."
+ "Draai je hoofd iets minder."
+ "Zorg dat je gezicht volledig zichtbaar is.""Reinig de bovenkant van je scherm, inclusief de zwarte balk"
-
-
-
-
- "Kan gezichtsmodel niet maken. Probeer het opnieuw."
- "Donkere bril waargenomen. Je gezicht moet geheel zichtbaar zijn."
- "Gezichtsbedekking waargenomen. Je gezicht moet geheel zichtbaar zijn.""Kan gezicht niet verifiëren. Hardware niet beschikbaar."
@@ -924,14 +919,14 @@
"Nogmaals proberen""Ontgrendelen voor alle functies en gegevens""Maximaal aantal pogingen voor Ontgrendelen via gezichtsherkenning overschreden"
- "Geen simkaart"
- "Geen simkaart in tablet."
- "Geen simkaart in je Android TV-apparaat."
- "Geen simkaart in telefoon."
- "Voeg een simkaart toe."
- "De simkaart ontbreekt of kan niet worden gelezen. Voeg een simkaart toe."
- "Onbruikbare simkaart."
- "Je simkaart is permanent gedeactiveerd.\n Neem contact op met je mobiele serviceprovider voor een nieuwe simkaart."
+ "Geen simkaart"
+ "Geen simkaart in tablet."
+ "Geen simkaart in je Android TV-apparaat."
+ "Geen simkaart in telefoon."
+ "Plaats een simkaart."
+ "De simkaart ontbreekt of kan niet worden gelezen. Plaats een simkaart."
+ "Onbruikbare simkaart."
+ "Je simkaart is definitief uitgezet.\n Neem contact op met je mobiele serviceprovider voor een nieuwe simkaart.""Vorig nummer""Volgend nummer""Onderbreken"
@@ -941,10 +936,10 @@
"Vooruitspoelen""Alleen noodoproepen""Netwerk vergrendeld"
- "Simkaart is vergrendeld met pukcode."
+ "Simkaart is vergrendeld met pukcode.""Raadpleeg de gebruikershandleiding of neem contact op met de klantenservice."
- "Simkaart is vergrendeld."
- "Simkaart ontgrendelen…"
+ "Simkaart is vergrendeld."
+ "Simkaart ontgrendelen...""Je hebt je ontgrendelingspatroon %1$d keer onjuist getekend. \n\nProbeer het opnieuw over %2$d seconden.""Je hebt je wachtwoord %1$d keer onjuist getypt. \n\nProbeer het opnieuw over %2$d seconden.""Je hebt je pincode %1$d keer onjuist getypt. \n\nProbeer het opnieuw over %2$d seconden."
@@ -986,7 +981,7 @@
"Gebruikersselectie""Status""Camera"
- "Mediabediening"
+ "Mediabediening""Opnieuw indelen van widget gestart.""Opnieuw indelen van widget beëindigd.""Widget %1$s verwijderd."
@@ -1229,7 +1224,7 @@
"Altijd tonen""%1$s is gemaakt voor een niet-geschikte versie van het Android-besturingssysteem en kan onverwacht gedrag vertonen. Mogelijk is er een geüpdatete versie van de app beschikbaar.""Altijd tonen"
- "Checken op updates"
+ "Controleren op update""De app %1$s (proces %2$s) heeft het zelf afgedwongen StrictMode-beleid geschonden.""Het proces %1$s heeft het zelf afgedwongen StrictMode-beleid geschonden.""Telefoon wordt geüpdatet…"
@@ -1246,9 +1241,10 @@
"%1$s voorbereiden.""Apps starten.""Opstarten afronden."
+ "Doorgaan met instellen?""Je hebt op de aan/uit-knop gedrukt. Zo zet je meestal het scherm uit.\n\nRaak de knop voorzichtig aan terwijl je je vingerafdruk instelt."
- "Zet het scherm uit om het instellen te beëindigen"
- "Uitzetten"
+ "Scherm uitzetten"
+ "Doorgaan met instellen""Doorgaan met verificatie van je vingerafdruk?""Je hebt op de aan/uit-knop gedrukt. Zo zet je meestal het scherm uit.\n\nRaak de knop voorzichtig aan om je vingerafdruk te verifiëren.""Scherm uitzetten"
@@ -1327,10 +1323,10 @@
"U kunt dit later wijzigen in Instellingen > Apps""Altijd toestaan""Nooit toestaan"
- "Simkaart verwijderd"
- "Het mobiele netwerk is niet beschikbaar totdat je het apparaat opnieuw opstart met een geldige simkaart."
+ "Simkaart verwijderd"
+ "Het mobiele netwerk is niet beschikbaar totdat u het apparaat opnieuw start met een geldige simkaart.""Klaar"
- "Simkaart toegevoegd"
+ "Simkaart aangesloten""Start je apparaat opnieuw voor toegang tot het mobiele netwerk.""Opnieuw starten""Mobiele service activeren"
@@ -1401,16 +1397,16 @@
"Tik om in te stellen""Selecteer om in te stellen""Je moet het apparaat misschien opnieuw formatteren. Tik om het uit te werpen."
- "Voor de opslag van foto\'s, video\'s, muziek en meer"
+ "Voor overzetten van foto\'s en media""Browsen door mediabestanden""Probleem met %s""%s werkt niet""Tik om het probleem op te lossen""%s is beschadigd. Selecteer om te herstellen.""Je moet het apparaat misschien opnieuw formatteren. Tik om het uit te werpen."
- "%s waargenomen"
+ "%s niet ondersteund""%s werkt niet"
- "Tik om in te stellen."
+ "Dit apparaat biedt geen ondersteuning voor deze %s. Tik om in te stellen in een ondersteunde indeling.""Selecteer om %s in te stellen in een ondersteunde indeling.""Je moet het apparaat misschien opnieuw formatteren""%s is onverwacht verwijderd"
@@ -1424,7 +1420,7 @@
"Verkennen""Uitvoer wijzigen""%s ontbreekt"
- "Voer het apparaat opnieuw in"
+ "Voer apparaat opnieuw in""%s verplaatsen""Gegevens verplaatsen""Contentoverdracht is voltooid"
@@ -1478,7 +1474,7 @@
"U gebruikt deze app in je werkprofiel""Invoermethode""Synchroniseren"
- "Toegankelijkheid"
+ "Toegankelijkheid""Achtergrond""Achtergrond wijzigen""Listener voor meldingen"
@@ -1609,7 +1605,7 @@
"Tv""Telefoon""Dockluidsprekers"
- "Extern apparaat"
+ "HDMI""Hoofdtelefoon""USB""Systeem"
@@ -1642,7 +1638,7 @@
"De simkaart is nu uitgezet. Geef de pukcode op om door te gaan. Neem contact op met de provider voor informatie.""Gewenste pincode opgeven""Gewenste pincode bevestigen"
- "Simkaart ontgrendelen…"
+ "Simkaart ontgrendelen...""Onjuiste pincode.""Voer een pincode van 4 tot 8 cijfers in.""De pukcode is acht cijfers lang."
@@ -1683,9 +1679,9 @@
"AAN""UIT""Toestaan dat %1$s volledige controle over je apparaat heeft?"
- "Volledige controle is gepast voor apps die je helpen met toegankelijkheid, maar niet voor de meeste apps."
+ "Volledige controle is gepast voor apps die je helpen met toegankelijkheid, maar voor de meeste apps is het ongepast.""Scherm bekijken en bedienen"
- "De functie kan alle content op het scherm lezen en content bovenop andere apps weergeven."
+ "De functie kan alle content op het scherm lezen en content bovenop andere apps weergeven""Acties bekijken en uitvoeren""De functie kan je interacties met een app of een hardwaresensor bijhouden en namens jou met apps communiceren.""Toestaan"
@@ -1923,7 +1919,6 @@
"Regiovoorkeur""Typ de naam van een taal""Voorgesteld"
- "Voorgesteld""Alle talen""Alle regio\'s""Zoeken"
@@ -1941,21 +1936,20 @@
"Camera niet beschikbaar""Doorgaan op telefoon""Microfoon niet beschikbaar"
- "Play Store niet beschikbaar""Android TV-instellingen niet beschikbaar""Tabletinstellingen niet beschikbaar""Telefooninstellingen niet beschikbaar"
- "Je hebt hier nu geen toegang toe op je %1$s. Probeer het in plaats daarvan op je Android TV-apparaat."
- "Je hebt hier nu geen toegang toe op je %1$s. Probeer het in plaats daarvan op je tablet."
- "Je hebt hier nu geen toegang toe op je %1$s. Probeer het in plaats daarvan op je telefoon."
+ "Je hebt hier geen toegang toe op je %1$s. Probeer het in plaats daarvan op je Android TV-apparaat."
+ "Je hebt hier geen toegang toe op je %1$s. Probeer het in plaats daarvan op je tablet."
+ "Je hebt hier geen toegang toe op je %1$s. Probeer het in plaats daarvan op je telefoon."
+ "Je hebt hier nu geen toegang toe op je %1$s. Probeer het in plaats daarvan op je Android TV-apparaat."
+ "Je hebt hier nu geen toegang toe op je %1$s. Probeer het in plaats daarvan op je tablet."
+ "Je hebt hier nu geen toegang toe op je %1$s. Probeer het in plaats daarvan op je telefoon.""Deze app vraagt om aanvullende beveiliging. Probeer het in plaats daarvan op je Android TV-apparaat.""Deze app vraagt om aanvullende beveiliging. Probeer het in plaats daarvan op je tablet.""Deze app vraagt om aanvullende beveiliging. Probeer het in plaats daarvan op je telefoon."
- "Je hebt hier geen toegang toe op je %1$s. Probeer het in plaats daarvan op je Android TV-apparaat."
- "Je hebt hier geen toegang toe op je %1$s. Probeer het in plaats daarvan op je tablet."
- "Je hebt hier geen toegang toe op je %1$s. Probeer het in plaats daarvan op je telefoon.""Deze app is ontwikkeld voor een oudere versie van Android en werkt mogelijk niet op de juiste manier. Controleer op updates of neem contact op met de ontwikkelaar."
- "Checken op updates"
+ "Controleren op update""Je hebt nieuwe berichten""Open je sms-app om ze te bekijken""Functionaliteit kan beperkt zijn"
@@ -1973,7 +1967,7 @@
"Apparaat resetten…""%1$s staat uit""Telefonische vergadering"
- "Tooltip"
+ "Knopinfo""Games""Muziek en audio""Films en video"
@@ -1982,7 +1976,7 @@
"Nieuws en tijdschriften""Maps en navigatie""Productiviteit"
- "Toegankelijkheid"
+ "Toegankelijkheid""Apparaatopslag""USB-foutopsporing""uur"
@@ -2046,8 +2040,7 @@
"%s toegang geven tot alle apparaatlogboeken?""Eenmalige toegang toestaan""Niet toestaan"
- "Apparaatlogboeken leggen vast wat er op je apparaat gebeurt. Apps kunnen deze logboeken gebruiken om problemen op te sporen en te verhelpen.\n\nSommige logboeken kunnen gevoelige informatie bevatten, dus geef alleen apps die je vertrouwt toegang tot alle apparaatlogboeken. \n\nAls je deze app geen toegang tot alle apparaatlogboeken geeft, heeft de app nog wel toegang tot de eigen logboeken. De fabrikant van je apparaat heeft misschien nog steeds toegang tot bepaalde logboeken of informatie op je apparaat."
- "Apparaatlogboeken leggen vast wat er op je apparaat gebeurt. Apps kunnen deze logboeken gebruiken om problemen op te sporen en te verhelpen.\n\nSommige logboeken kunnen gevoelige informatie bevatten, dus geef alleen apps die je vertrouwt toegang tot alle apparaatlogboeken. \n\nAls je deze app geen toegang tot alle apparaatlogboeken geeft, heeft de app nog wel toegang tot de eigen logboeken. De fabrikant van je apparaat heeft misschien nog steeds toegang tot bepaalde logboeken of informatie op je apparaat.\n\nGa voor meer informatie naar g.co/android/devicelogs."
+ "Apparaatlogboeken leggen vast wat er op je apparaat gebeurt. Apps kunnen deze logboeken gebruiken om problemen op te sporen en te verhelpen.\n\nSommige logboeken kunnen gevoelige informatie bevatten, dus geef alleen apps die je vertrouwt toegang tot alle apparaatlogboeken. \n\nAls je deze app geen toegang tot alle apparaatlogboeken geeft, heeft de app nog wel toegang tot de eigen logboeken. De fabrikant van je apparaat heeft misschien nog steeds toegang tot bepaalde logboeken of informatie op je apparaat. Meer informatie""Niet opnieuw tonen""%1$s wil segmenten van %2$s tonen""Bewerken"
@@ -2060,7 +2053,8 @@
"\'Niet storen\' is gewijzigd""Tik om te controleren wat er is geblokkeerd.""Instellingen voor meldingen bekijken"
- "Vanaf Android 13 hebben de apps die je installeert je toestemming nodig om meldingen te sturen. Tik om deze toestemming voor bestaande apps te wijzigen."
+
+ "Later herinneren""Sluiten""Systeem"
@@ -2288,6 +2282,5 @@
"Actieve apps checken""Kan geen toegang tot de camera van de telefoon krijgen vanaf je %1$s""Kan geen toegang tot de camera van de tablet krijgen vanaf je %1$s"
- "Je hebt hier geen toegang toe tijdens streaming. Probeer het in plaats daarvan op je telefoon."
- "Systeemstandaard"
+ "Systeemtaal"
diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml
index fd6986d0a09c0fbf07adccc3de351dba79fdd49d..3e7d3bce4fe949a896426cac5330b9d78b15340c 100644
--- a/core/res/res/values-or/strings.xml
+++ b/core/res/res/values-or/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<ନାମହୀନ>""(କୌଣସି ଫୋନ୍ ନମ୍ବର ନାହିଁ)"
@@ -28,7 +33,6 @@
"ଭଏସ୍ ମେଲ୍""MSISDN1""ସଂଯୋଗରେ ସମସ୍ୟା ଅଛି କିମ୍ବା ଅମାନ୍ୟ MMI କୋଡ୍।"
- "ଫିଚର ସମର୍ଥିତ ନୁହେଁ।""କେବଳ ସ୍ଥାୟୀ ଡାୟଲିଙ୍ଗ ନମ୍ବର୍ ପାଇଁ କାର୍ଯ୍ୟ ସୀମିତ ଅଟେ।""ଆପଣ ରୋମିଙ୍ଗରେ ଥିବାବେଳେ କଲ୍ ଫର୍ୱର୍ଡିଙ୍ଗ ସେଟିଙ୍ଗ ବଦଳାଇପାରିବେ ନାହିଁ।""ସେବା ସକ୍ଷମ କରାଯାଇଥିଲା।"
@@ -43,8 +47,8 @@
"ଆପଣ ଟାଇପ୍ କରିଥିବା PINଗୁଡ଼ିକ ମେଳ ହେଉନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।""4 ରୁ 8ଟି ସଂଖ୍ୟା ବିଶିଷ୍ଟ ଏକ PIN ଟାଇପ୍ କରନ୍ତୁ।""ଏକ PUK ଟାଇପ୍ କରନ୍ତୁ, ଯାହାକି 8 ସଂଖ୍ୟା ବିଶିଷ୍ଟ କିମ୍ୱା ତା’ଠାରୁ ଅଧିକ ହୋଇଥିବ।"
- "ଆପଣଙ୍କ SIM PUK-ଲକ ଅଛି। ଏହାକୁ ଅନଲକ କରିବା ପାଇଁ PUK କୋଡ ଟାଇପ କରନ୍ତୁ।"
- "SIMକୁ ଅନବ୍ଲକ କରିବା ପାଇଁ PUK2 ଟାଇପ କରନ୍ତୁ।"
+ "ଆପଣଙ୍କ SIM କାର୍ଡ PUK ଲକ୍ ଅଛି। ଏହାକୁ ଅନଲକ୍ କରିବାକୁ PUK କୋଡ୍ ଟାଇପ୍ କରନ୍ତୁ।"
+ "SIM କାର୍ଡରୁ ଅବରୋଧ ହଟାଇବା ପାଇଁ PUK2 ଟାଇପ୍ କରନ୍ତୁ।""ସଫଳ ହେଲାନାହିଁ, SIM/RUIM ଲକ୍ କରନ୍ତୁ।"ଆଉ %dଟି ପ୍ରୟାସ ପରେ SIM ଲକ୍ ହୋଇଯିବ।
@@ -86,7 +90,7 @@
"ଆଲର୍ଟ""କଲ୍ ଫରୱାର୍ଡିଂ""ଜରୁରୀକାଳୀନ କଲବ୍ୟାକ୍ ମୋଡ୍"
- "ମୋବାଇଲ ଡାଟା ଷ୍ଟାଟସ"
+ "ମୋବାଇଲ୍ ଡାଟା ଷ୍ଟାଟସ୍""SMS ମେସେଜ୍""ଭଏସମେଲ୍ ମେସେଜ୍""ୱାଇ-ଫାଇ କଲିଙ୍ଗ"
@@ -138,7 +142,7 @@
"ୱାଇ-ଫାଇ""ୱାଇଫାଇ କଲିଂ""VoWifi"
- "ବନ୍ଦ ଅଛି"
+ "ବନ୍ଦ""ୱାଇ-ଫାଇ ମାଧ୍ୟମରେ କଲ୍ କରନ୍ତୁ""ମୋବାଇଲ ନେଟ୍ୱର୍କ ମାଧ୍ୟମରେ କଲ୍ କରନ୍ତୁ""କେବଳ ୱାଇ-ଫାଇ"
@@ -181,14 +185,14 @@
"ଆପଣଙ୍କ ୱର୍କ ପ୍ରୋଫାଇଲ୍ ଆଡମିନଙ୍କ ଦ୍ୱାରା""%s ଅନୁଯାୟୀ""ୱାର୍କ ପ୍ରୋଫାଇଲ୍ ଡିଲିଟ୍ ହେଲା"
- "ଆଡମିନ ଆପ ନାହିଁ କିମ୍ବା ଭୁଲ ଅଛି। ଫଳସ୍ୱରୂପ, ଆପଣଙ୍କ ୱାର୍କ ପ୍ରୋଫାଇଲ ଏବଂ ସମ୍ବନ୍ଧୀୟ ଡାଟା ଡିଲିଟ କରାଯାଇଛି। ସହାୟତା ପାଇଁ ଆପଣଙ୍କ ଆଡମିନଙ୍କୁ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।"
+ "ଆଡମିନ୍ ଆପ୍ ନାହିଁ କିମ୍ବା ଭୁଲ ଅଛି। ଫଳସ୍ୱରୂପ, ଆପଣଙ୍କ ୱାର୍କ ପ୍ରୋଫାଇଲ୍ ଏବଂ ସମ୍ବନ୍ଧୀୟ ଡାଟା ଡିଲିଟ୍ କରାଯାଇଛି। ସହାୟତା ପାଇଁ ଆପଣଙ୍କ ଆଡମିନଙ୍କୁ ଯୋଗାଯୋଗ କରନ୍ତୁ।""ଏହି ଡିଭାଇସରେ ଆପଣଙ୍କ ୱର୍କ ପ୍ରୋଫାଇଲ୍ ଆଉ ଉପଲବ୍ଧ ନାହିଁ""ବହୁତ ଥର ଭୁଲ ପାସ୍ୱର୍ଡ ଲେଖିଛନ୍ତି""ବ୍ୟକ୍ତିଗତ ବ୍ୟବହାର ପାଇଁ ଆଡ୍ମିନ୍ ଡିଭାଇସ୍କୁ ଅଲଗା କରିଛନ୍ତି""ଡିଭାଇସକୁ ପରିଚାଳନା କରାଯାଉଛି""ଆପଣଙ୍କ ସଂସ୍ଥା ଏହି ଡିଭାଇସକୁ ପରିଚାଳନା କରନ୍ତି ଏବଂ ନେଟୱର୍କ ଟ୍ରାଫିକ୍ ନୀରିକ୍ଷଣ କରନ୍ତି। ବିବରଣୀ ପାଇଁ ଟାପ୍ କରନ୍ତୁ।""ଆପଗୁଡ଼ିକ ଆପଣଙ୍କ ଲୋକେସନକୁ ଆକ୍ସେସ୍ କରିପାରିବ"
- "ଅଧିକ ଜାଣିବାକୁ ଆପଣଙ୍କ IT ଆଡମିନଙ୍କ ସହ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ"
+ "ଅଧିକ ଜାଣିବାକୁ ଆପଣଙ୍କ IT ଆଡମିନଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ""ଜିଓଫେନସିଂ ସେବା""କଣ୍ଟ୍ରି ଡିଟେକ୍ଟର୍""ଲୋକେସନ୍ ସର୍ଭିସ୍"
@@ -199,7 +203,7 @@
"ଡିଭାଇସ ନୀତି ପରିଚାଳକ ସେବା""ମ୍ୟୁଜିକ୍ ଚିହ୍ନଟକରଣ ପରିଚାଳକ ସେବା""ଆପଣଙ୍କ ଡିଭାଇସ୍ ବର୍ତ୍ତମାନ ଲିଭାଯିବ"
- "ଆଡମିନ ଆପ ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ। ଆପଣଙ୍କ ଡିଭାଇସର ସମସ୍ତ ଡାଟାକୁ ବର୍ତ୍ତମାନ ଲିଭାଇଦିଆଯିବ। \n\nଯଦି ଆପଣଙ୍କର କୌଣସି ପ୍ରଶ୍ନ ଅଛି, ଆପଣଙ୍କ ସଂସ୍ଥାର ଆଡମିନଙ୍କ ସହ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।"
+ "ଆଡମିନ୍ ଆପ୍ ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ। ଆପଣଙ୍କ ଡିଭାଇସ୍ର ସମସ୍ତ ଡାଟାକୁ ବର୍ତ୍ତମାନ ଲିଭାଇଦିଆଯିବ। \n\nଯଦି ଆପଣଙ୍କର କୌଣସି ପ୍ରଶ୍ନ ରହିଥାଏ, ଆପଣଙ୍କ ସଂସ୍ଥାର ଆଡମିନ୍ଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।""%s ଦ୍ଵାରା ପ୍ରିଣ୍ଟିଙ୍ଗ ଅକ୍ଷମ କରାଯାଇଛି""ୱାର୍କ ପ୍ରୋଫାଇଲ୍ ଚାଲୁ କରନ୍ତୁ""ଆପଣ ଆପଣଙ୍କ ୱାର୍କ ପ୍ରୋଫାଇଲ୍ ଚାଲୁ ନକରିବା ପର୍ଯ୍ୟନ୍ତ ଆପଣଙ୍କର ବ୍ୟକ୍ତିଗତ ଆପ୍ସ ବ୍ଲକ୍ କରାଯାଇଛି"
@@ -212,8 +216,8 @@
"ସାଇଲେଣ୍ଟ ମୋଡ୍""ୱେୟାରଲେସ୍କୁ ଚାଲୁ କରନ୍ତୁ""ୱେୟାରଲେସ୍କୁ ବନ୍ଦ କରନ୍ତୁ"
- "ସ୍କ୍ରିନ ଲକ"
- "ପାୱାର ବନ୍ଦ ଅଛି"
+ "ସ୍କ୍ରୀନ୍ ଲକ୍"
+ "ପାୱାର୍ ବନ୍ଦ""ରିଙ୍ଗର୍ ଅଫ୍ ଅଛି""ରିଙ୍ଗର୍ କମ୍ପନ""ରିଙ୍ଗର୍ ଚାଲୁ ଅଛି"
@@ -236,8 +240,8 @@
"ଟାବଲେଟ ବିକଳ୍ପ""Android TVର ବିକଳ୍ପଗୁଡ଼ିକ""ଫୋନ ବିକଳ୍ପ"
- "ସ୍କ୍ରିନ ଲକ"
- "ପାୱାର ବନ୍ଦ ଅଛି"
+ "ସ୍କ୍ରୀନ୍ ଲକ୍"
+ "ପାୱାର୍ ବନ୍ଦ""ପାୱାର""ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ""ଜରୁରୀକାଳୀନ"
@@ -293,21 +297,21 @@
"Android ସିଷ୍ଟମ୍""ବ୍ୟକ୍ତିଗତ ପ୍ରୋଫାଇଲ୍କୁ ଫେରିଆସନ୍ତୁ""କାର୍ଯ୍ୟ ପ୍ରୋଫାଇଲ୍କୁ ଯାଆନ୍ତୁ"
- "କଣ୍ଟାକ୍ଟ"
+ "ଯୋଗାଯୋଗ""ଆପଣଙ୍କ ଯୋଗାଯୋଗ ଆକ୍ସେସ୍ କରେ"
- "ଲୋକେସନ"
+ "ଲୋକେସନ୍""ଏହି ଡିଭାଇସ୍ର ଲୋକେସନ୍ ଆକ୍ସେସ୍ କରେ"
- "କ୍ୟାଲେଣ୍ଡର"
+ "କ୍ୟାଲେଣ୍ଡର୍""ଆପଣଙ୍କ କ୍ୟାଲେଣ୍ଡର୍ ଆକ୍ସେସ୍ କରେ""SMS""SMS ମେସେଜ୍ ପଠାନ୍ତୁ ଓ ଦେଖନ୍ତୁ"
- "ଫାଇଲଗୁଡ଼ିକ"
- "ଆପଣଙ୍କ ଡିଭାଇସରେ ଥିବା ଫାଇଲଗୁଡ଼ିକୁ ଆକ୍ସେସ କରନ୍ତୁ"
- "ମ୍ୟୁଜିକ ଏବଂ ଅଡିଓ"
- "ଆପଣଙ୍କ ଡିଭାଇସରେ ମ୍ୟୁଜିକ ଏବଂ ଅଡିଓକୁ ଆକ୍ସେସ କରନ୍ତୁ"
- "ଫଟୋ ଏବଂ ଭିଡିଓଗୁଡ଼ିକ"
- "ଆପଣଙ୍କ ଡିଭାଇସରେ ଫଟୋ ଏବଂ ଭିଡିଓଗୁଡ଼ିକୁ ଆକ୍ସେସ କରନ୍ତୁ"
- "ମାଇକ୍ରୋଫୋନ"
+ "ଫାଇଲ ଏବଂ ଡକ୍ୟୁମେଣ୍ଟଗୁଡ଼ିକ"
+ "ଆପଣଙ୍କ ଡିଭାଇସରେ ଥିବା ଫାଇଲ ଏବଂ ଡକ୍ୟୁମେଣ୍ଟଗୁଡ଼ିକୁ ଆକ୍ସେସ କରନ୍ତୁ"
+ "ମ୍ୟୁଜିକ ଓ ଅନ୍ୟ ଅଡିଓ"
+ "ଆପଣଙ୍କ ଡିଭାଇସରେ ଅଡିଓ ଫାଇଲଗୁଡ଼ିକୁ ଆକ୍ସେସ କରନ୍ତୁ"
+ "ଫଟୋ ଓ ଭିଡିଓଗୁଡ଼ିକ"
+ "ଆପଣଙ୍କ ଡିଭାଇସରେ ଇମେଜ ଏବଂ ଭିଡିଓ ଫାଇଲଗୁଡ଼ିକୁ ଆକ୍ସେସ କରନ୍ତୁ"
+ "ମାଇକ୍ରୋଫୋନ୍""ଅଡିଓ ରେକର୍ଡ କରେ""ଶାରୀରିକ କାର୍ଯ୍ୟକଳାପ""ଆପଣଙ୍କ ଶାରୀରିକ କାର୍ଯ୍ୟକଳାପ ଆକ୍ସେସ୍ କରନ୍ତୁ"
@@ -315,9 +319,9 @@
"ଫଟୋ ନିଏ ଓ ଭିଡିଓ ରେକର୍ଡ କରେ""ଆଖପାଖର ଡିଭାଇସଗୁଡ଼ିକ""ଆଖପାଖର ଡିଭାଇସଗୁଡ଼ିକୁ ଖୋଜି ସଂଯୋଗ କରନ୍ତୁ"
- "କଲ ଲଗ"
+ "କଲ୍ ଲଗ୍""ଫୋନ୍ କଲ୍ ଲଗ୍ ପଢ଼ନ୍ତୁ ଓ ଲେଖନ୍ତୁ"
- "ଫୋନ"
+ "ଫୋନ୍""ଫୋନ୍ କଲ୍ କରେ ଏବଂ ପରିଚାଳନା କରେ""ବଡି ସେନ୍ସର୍""ଆପଣଙ୍କ ଗୁରୁତପୂର୍ଣ୍ଣ ସଂକେତଗୁଡ଼ିକ ବିଷୟରେ ସେନ୍ସର୍ ଡାଟା ଆକ୍ସେସ୍ କରେ"
@@ -408,13 +412,13 @@
"ଷ୍ଟିକି ବ୍ରଡକାଷ୍ଟ୍ ପଠାଇବା ପାଇଁ ଆପ୍କୁ ଅନୁମତି ଦେଇଥାଏ, ଯାହା ବ୍ରଡକାଷ୍ଟ୍ ଶେଷ ହେବାପରେ ରହିଥାଏ। ଅତ୍ୟଧିକ ବ୍ୟବହାର ଦ୍ୱାରା ଅଧିକ ମେମୋରୀ ବ୍ୟବହାର ହୋଇ ଆପଣଙ୍କର Android TV ଡିଭାଇସ୍କୁ ଧୀର କିମ୍ବା ଅସ୍ଥିର କରିପାରେ।""ଷ୍ଟିକୀ ବ୍ରଡ୍କାଷ୍ଟ ପଠାଇବାକୁ ଆପ୍କୁ ଅନୁମତି ଦିଏ, ଯାହା ବ୍ରଡ୍କାଷ୍ଟ ଶେଷ ହେବାପରେ ରହିଥାଏ। ଅତିରିକ୍ତ ବ୍ୟବହାର ଦ୍ୱାରା ଅଧିକ ମେମୋରୀ ବ୍ୟବହାର ହୋଇ ଫୋନ୍କୁ ମନ୍ଥର କିମ୍ବା ଅସ୍ଥିର କରିପାରେ।""ଆପଣଙ୍କ ଯୋଗାଯୋଗ ପଢ଼ନ୍ତୁ"
- "ଏହା ଆପଣଙ୍କ ଟାବଲେଟରେ ଷ୍ଟୋର କରାଯାଇଥିବା କଣ୍ଟାକ୍ଟଗୁଡ଼ିକ ବିଷୟରେ ଡାଟା ପଢ଼ିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦେଇଥାଏ। ଆପଣଙ୍କର ଟାବଲେଟରେ ଥିବା ଆକାଉଣ୍ଟଗୁଡ଼ିକ ଯେଉଁଥିରେ କଣ୍ଟାକ୍ଟଗୁଡ଼ିକ ତିଆରି ହୋଇଛି, ସେଗୁଡ଼ିକୁ ଆପ୍ସର ଆକ୍ସେସ ରହିବ। ଆପଣ ଇନଷ୍ଟଲ କରିଥିବା ଆପ୍ସ ମାଧ୍ୟମରେ ତିଆରି କରାଯାଇଥିବା ଆକାଉଣ୍ଟଗୁଡ଼ିକୁ ଏହା ସାମିଲ କରିପାରେ। ଏହି ଅନୁମତି ଆପ୍ସକୁ ଆପଣଙ୍କର କଣ୍ଟାକ୍ଟ ଡାଟା ସେଭ କରିବାକୁ ଦିଏ ଏବଂ ହାନୀକରକ ଆପ ଆପଣଙ୍କ ଅଜାଣତରେ କଣ୍ଟାକ୍ଟ ଡାଟା ସେୟାର କରିପାରେ।"
- "ଏହା ଆପଣଙ୍କ Android TV ଡିଭାଇସରେ ଷ୍ଟୋର କରାଯାଇଥିବା କଣ୍ଟାକ୍ଟ ବିଷୟରେ ଡାଟା ପଢ଼ିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦେଇଥାଏ। ଆପଣଙ୍କର Android TV ଡିଭାଇସରେ ଥିବା ଆକାଉଣ୍ଟଗୁଡ଼ିକ ଯେଉଁଥିରେ କଣ୍ଟାକ୍ଟଗୁଡ଼ିକ ତିଆରି ହୋଇଛି, ସେଗୁଡ଼ିକୁ ମଧ୍ୟ ଆପ୍ସର ଆକ୍ସେସ ରହିବ। ଆପଣ ଇନଷ୍ଟଲ କରିଥିବା ଆପ୍ସ ମାଧ୍ୟମରେ ତିଆରି କରାଯାଇଥିବା ଆକାଉଣ୍ଟଗୁଡ଼ିକୁ ଏହା ସାମିଲ କରିପାରେ। ଏହି ଅନୁମତି ଆପ୍ସକୁ ଆପଣଙ୍କର କଣ୍ଟାକ୍ଟ ଡାଟା ସେଭ କରିବାକୁ ଦିଏ ଏବଂ ହାନୀକାରକ ଆପ ଆପଣଙ୍କ ଅଜାଣତରେ କଣ୍ଟାକ୍ଟ ଡାଟା ସେୟାର କରିପାରେ।"
- "ଏହା ଆପଣଙ୍କ ଫୋନରେ ଷ୍ଟୋର କରାଯାଇଥିବା କଣ୍ଟାକ୍ଟଗୁଡ଼ିକ ବିଷୟରେ ଡାଟା ପଢ଼ିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦେଇଥାଏ। ଆପଣଙ୍କର ଫୋନରେ ଥିବା ଆକାଉଣ୍ଟଗୁଡ଼ିକ ଯେଉଁଥିରେ କଣ୍ଟାକ୍ଟଗୁଡ଼ିକ ତିଆରି ହୋଇଛି, ସେଗୁଡ଼ିକୁ ଆପ୍ସର ଆକ୍ସେସ ରହିବ। ଆପଣ ଇନଷ୍ଟଲ କରିଥିବା ଆପ୍ସ ମାଧ୍ୟମରେ ତିଆରି କରାଯାଇଥିବା ଆକାଉଣ୍ଟଗୁଡ଼ିକୁ ଏହା ସାମିଲ କରିପାରେ। ଏହି ଅନୁମତି ଆପ୍ସକୁ ଆପଣଙ୍କର କଣ୍ଟାକ୍ଟ ଡାଟା ସେଭ କରିବାକୁ ଦିଏ ଏବଂ ହାନୀକାରକ ଆପ ଆପଣଙ୍କ ଅଜାଣତରେ କଣ୍ଟାକ୍ଟ ଡାଟା ସେୟାର କରିପାରେ।"
+ "ଏହା ଆପଣଙ୍କ ଟାବ୍ଲେଟ୍ରେ ଷ୍ଟୋର୍ କରାଯାଇଥିବା ଯୋଗାଯୋଗଗୁଡ଼ିକ ବିଷୟରେ ଡାଟା ପଢ଼ିବା ପାଇଁ ଆପ୍କୁ ଅନୁମତି ଦେଇଥାଏ। ଆପଣଙ୍କର ଟାବ୍ଲେଟ୍ରେ ଥିବା ଆକାଉଣ୍ଟଗୁଡ଼ିକ ଯେଉଁଥିରେ ଯୋଗାଯୋଗଗୁଡ଼ିକ ତିଆରି ହୋଇଛି, ସେଗୁଡ଼ିକୁ ଆପ୍ସର ଆକ୍ସେସ୍ ରହିବ। ଆପଣ ଇନ୍ଷ୍ଟଲ୍ କରିଥିବା ଆପ୍ସ ମାଧ୍ୟମରେ ତିଆରି କରାଯାଇଥିବା ଆକାଉଣ୍ଟଗୁଡ଼ିକୁ ଏହା ସାମିଲ କରିପାରେ। ଏହି ଅନୁମତି ଆପ୍ସକୁ ଆପଣଙ୍କର ଯୋଗାଯୋଗ ଡାଟା ସେଭ୍ କରିବାକୁ ଦିଏ ଏବଂ ହାନୀକାରକ ଆପ୍ ଆପଣଙ୍କ ଅଜାଣତରେ ଯୋଗାଯୋଗ ଡାଟା ସେୟାର୍ କରିପାରେ।"
+ "ଏହା ଆପଣଙ୍କ Android TV ଡିଭାଇସ୍ରେ ଷ୍ଟୋର୍ କରାଯାଇଥିବା ଯୋଗାଯୋଗ ବିଷୟରେ ଡାଟା ପଢ଼ିବା ପାଇଁ ଆପ୍କୁ ଅନୁମତି ଦେଇଥାଏ। ଆପଣଙ୍କର Android TV ଡିଭାଇସ୍ରେ ଥିବା ଆକାଉଣ୍ଟଗୁଡ଼ିକ ଯେଉଁଥିରେ ଯୋଗାଯୋଗଗୁଡ଼ିକ ତିଆରି ହୋଇଛି, ସେଗୁଡ଼ିକୁ ମଧ୍ୟ ଆପ୍ସର ଆକ୍ସେସ୍ ରହିବ। ଆପଣ ଇନ୍ଷ୍ଟଲ୍ କରିଥିବା ଆପ୍ସ ମାଧ୍ୟମରେ ତିଆରି କରାଯାଇଥିବା ଆକାଉଣ୍ଟଗୁଡ଼ିକୁ ଏହା ସାମିଲ କରିପାରେ। ଏହି ଅନୁମତି ଆପ୍ସକୁ ଆପଣଙ୍କର ଯୋଗାଯୋଗ ଡାଟା ସେଭ୍ କରିବାକୁ ଦିଏ ଏବଂ ହାନୀକାରକ ଆପ୍ ଆପଣଙ୍କ ଅଜାଣତରେ ଯୋଗାଯୋଗ ଡାଟା ସେୟାର୍ କରିପାରେ।"
+ "ଏହା ଆପଣଙ୍କ ଫୋନ୍ରେ ଷ୍ଟୋର୍ କରାଯାଇଥିବା ଯୋଗାଯୋଗଗୁଡ଼ିକ ବିଷୟରେ ଡାଟା ପଢ଼ିବା ପାଇଁ ଆପ୍କୁ ଅନୁମତି ଦେଇଥାଏ। ଆପଣଙ୍କର ଫୋନ୍ରେ ଥିବା ଆକାଉଣ୍ଟଗୁଡ଼ିକ ଯେଉଁଥିରେ ଯୋଗାଯୋଗଗୁଡ଼ିକ ତିଆରି ହୋଇଛି, ସେଗୁଡ଼ିକୁ ଆପ୍ସର ଆକ୍ସେସ୍ ରହିବ। ଆପଣ ଇନ୍ଷ୍ଟଲ୍ କରିଥିବା ଆପ୍ସ ମାଧ୍ୟମରେ ତିଆରି କରାଯାଇଥିବା ଆକାଉଣ୍ଟଗୁଡ଼ିକୁ ଏହା ସାମିଲ କରିପାରେ। ଏହି ଅନୁମତି ଆପ୍ସକୁ ଆପଣଙ୍କର ଯୋଗାଯୋଗ ଡାଟା ସେଭ୍ କରିବାକୁ ଦିଏ ଏବଂ ହାନୀକାରକ ଆପ୍ ଆପଣଙ୍କ ଅଜାଣତରେ ଯୋଗାଯୋଗ ଡାଟା ସେୟାର୍ କରିପାରେ।""ନିଜ ଯୋଗାଯୋଗ ସଂଶୋଧନ କରନ୍ତୁ"
- "ଏହା ଆପଣଙ୍କ ଟାବଲେଟରେ ଷ୍ଟୋର କରାଯାଇଥିବା କଣ୍ଟାକ୍ଟ ବିଷୟରେ ଡାଟା ସଂଶୋଧନ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦେଇଥାଏ। ଏହି ଅନୁମତି ଆପ୍ସକୁ ଆପଣଙ୍କର କଣ୍ଟାକ୍ଟ ଡାଟା ଡିଲିଟ କରିବାକୁ ଦିଏ।"
- "ଏହା ଆପଣଙ୍କ Android TV ଡିଭାଇସରେ ଷ୍ଟୋର କରାଯାଇଥିବା କଣ୍ଟାକ୍ଟ ବିଷୟରେ ଡାଟା ସଂଶୋଧନ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦେଇଥାଏ। ଏହି ଅନୁମତି ଆପ୍ସକୁ ଆପଣଙ୍କର କଣ୍ଟାକ୍ଟ ଡାଟା ଡିଲିଟ କରିବାକୁ ଦିଏ।"
- "ଏହା ଆପଣଙ୍କ ଫୋନରେ ଷ୍ଟୋର କରାଯାଇଥିବା କଣ୍ଟାକ୍ଟ ବିଷୟରେ ଡାଟା ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦେଇଥାଏ। ଏହି ଅନୁମତି ଆପ୍ସକୁ ଆପଣଙ୍କର କଣ୍ଟାକ୍ଟ ଡାଟା ଡିଲିଟ କରିବାକୁ ଦିଏ।"
+ "ଏହା ଆପଣଙ୍କ ଟାବ୍ଲେଟ୍ରେ ଷ୍ଟୋର୍ କରାଯାଇଥିବା ଯୋଗାଯୋଗ ବିଷୟରେ ଡାଟା ସଂଶୋଧନ କରିବା ପାଇଁ ଆପ୍କୁ ଅନୁମତି ଦେଇଥାଏ। ଏହି ଅନୁମତି ଆପ୍ସକୁ ଆପଣଙ୍କର ଯୋଗାଯୋଗ ଡାଟା ଡିଲିଟ୍ କରିବାକୁ ଦିଏ।"
+ "ଏହା ଆପଣଙ୍କ Android TV ଡିଭାଇସ୍ରେ ଷ୍ଟୋର୍ କରାଯାଇଥିବା ଯୋଗାଯୋଗ ବିଷୟରେ ଡାଟା ସଂଶୋଧନ କରିବା ପାଇଁ ଆପ୍କୁ ଅନୁମତି ଦେଇଥାଏ। ଏହି ଅନୁମତି ଆପ୍ସକୁ ଆପଣଙ୍କର ଯୋଗାଯୋଗ ଡାଟା ଡିଲିଟ୍ କରିବାକୁ ଦିଏ।"
+ "ଏହା ଆପଣଙ୍କ ଫୋନ୍ରେ ଷ୍ଟୋର୍ କରାଯାଇଥିବା ଯୋଗାଯୋଗ ବିଷୟରେ ଡାଟା ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ ଆପ୍କୁ ଅନୁମତି ଦେଇଥାଏ। ଏହି ଅନୁମତି ଆପ୍ସକୁ ଆପଣଙ୍କର ଯୋଗାଯୋଗ ଡାଟା ଡିଲିଟ୍ କରିବାକୁ ଦିଏ।""କଲ୍ ଲଗ୍ ପଢ଼ନ୍ତୁ""ଏହି ଆପ୍ ଆପଣଙ୍କ କଲ୍ ହିଷ୍ଟୋରୀ ପଢ଼ିପାରେ।""କଲ୍ ଲଗ୍ ଲେଖନ୍ତୁ"
@@ -582,14 +586,13 @@
"ସ୍କ୍ରିନ୍ ଲକ୍ ବ୍ୟବହାର କରନ୍ତୁ""ଜାରି ରଖିବାକୁ ଆପଣଙ୍କ ସ୍କ୍ରିନ୍ ଲକ୍ ଏଣ୍ଟର୍ କରନ୍ତୁ""ସେନ୍ସର ଉପରେ ଦୃଢ଼ ଭାବେ ଦବାନ୍ତୁ"
- "ଟିପଚିହ୍ନକୁ ଚିହ୍ନଟ କରାଯାଇପାରିବ ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"
+ "ଟିପଚିହ୍ନ ପ୍ରୋସେସ୍ କରାଯାଇପାରିଲା ନାହିଁ। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।""ଟିପଚିହ୍ନ ସେନ୍ସରକୁ ପରିଷ୍କାର କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ""ସେନ୍ସରକୁ ପରିଷ୍କାର କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ""ସେନ୍ସର ଉପରେ ଦୃଢ଼ ଭାବେ ଦବାନ୍ତୁ""ଆଙ୍ଗୁଠି ଖୁବ୍ ଧୀରେ ନିଆଗଲା। ଦୟାକରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।""ଅନ୍ୟ ଏକ ଟିପଚିହ୍ନ ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ""ବହୁତ ଉଜ୍ଜ୍ୱଳ"
- "ପାୱାର ବଟନ ଦବାଇବା ଚିହ୍ନଟ କରାଯାଇଛି""ଆଡଜଷ୍ଟ କରି ଦେଖନ୍ତୁ""ପ୍ରତି ଥର ଆପଣଙ୍କ ଆଙ୍ଗୁଠିର ସ୍ଥାନ ସାମାନ୍ୟ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"
@@ -601,17 +604,16 @@
"ମୁହଁ ଚିହ୍ନଟ ହୋଇଛି, ଦୟାକରି ସୁନିଶ୍ଚିତ ଦବାନ୍ତୁ""ଟିପଚିହ୍ନ ହାର୍ଡୱେର୍ ଉପଲବ୍ଧ ନାହିଁ।""ଟିପଚିହ୍ନକୁ ସେଟ୍ ଅପ୍ କରାଯାଇପାରିବ ନାହିଁ"
- "ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ସେଟଅପର ସମୟସୀମା ସମାପ୍ତ ହୋଇଯାଇଛି। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"
+ "ଟିପଚିହ୍ନର ସମୟ ଶେଷ ହେଲା । ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।""ଟିପଚିହ୍ନ କାର୍ଯ୍ୟ ବାତିଲ୍ କରାଗଲା।""ଉପଯୋଗକର୍ତ୍ତା ଟିପଚିହ୍ନ କାର୍ଯ୍ୟ ବାତିଲ୍ କରିଛନ୍ତି।"
- "ଅନେକଗୁଡ଼ିଏ ପ୍ରଚେଷ୍ଟା। ଏହା ପରିବର୍ତ୍ତେ ସ୍କ୍ରିନ ଲକ ବ୍ୟବହାର କରନ୍ତୁ।"
- "ଅନେକଗୁଡ଼ିଏ ପ୍ରଚେଷ୍ଟା। ଏହା ପରିବର୍ତ୍ତେ ସ୍କ୍ରିନ ଲକ ବ୍ୟବହାର କରନ୍ତୁ।"
- "ଟିପଚିହ୍ନକୁ ପ୍ରକ୍ରିୟାନ୍ୱିତ କରାଯାଇପାରିବ ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"
+ "ବହୁତ ପ୍ରୟାସ କରାଗଲା। ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"
+ "ବହୁଥର ପ୍ରୟାସ କରିଛନ୍ତି। ଟିପଚିହ୍ନ ସେନ୍ସର୍ ଅକ୍ଷମ କରାଯାଇଛି।"
+ "ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।""କୌଣସି ଆଙ୍ଗୁଠି ଚିହ୍ନ ପଞ୍ଜୀକୃତ ହୋଇନାହିଁ।""ଏହି ଡିଭାଇସ୍ରେ ଟିପଚିହ୍ନ ସେନ୍ସର୍ ନାହିଁ।""ସେନ୍ସରକୁ ଅସ୍ଥାୟୀ ଭାବେ ଅକ୍ଷମ କରାଯାଇଛି।""ଟିପଚିହ୍ନ ସେନ୍ସରକୁ ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ। ଏକ ମରାମତି କେନ୍ଦ୍ରକୁ ଭିଜିଟ୍ କରନ୍ତୁ"
- "ପାୱାର ବଟନ ଦବାଯାଇଛି""ଆଙ୍ଗୁଠି %d""ଟିପଚିହ୍ନ ବ୍ୟବହାର କରନ୍ତୁ""ଟିପଚିହ୍ନ ବା ସ୍କ୍ରିନ୍ ଲକ୍ ବ୍ୟବହାର କରନ୍ତୁ"
@@ -632,33 +634,26 @@
"ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ୍""ଟିପଚିହ୍ନ ସେନ୍ସରକୁ ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ""ଏକ ମରାମତି କେନ୍ଦ୍ରକୁ ଭିଜିଟ୍ କରନ୍ତୁ।"
- "ଫେସର ମଡେଲ ତିଆରି କରାଯାଇପାରିବ ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କର।"
+ "ମୁହଁର ଡାଟା କ୍ୟାପଚର୍ ହେଲାନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।""ଅତ୍ୟଧିକ ଉଜ୍ଵଳ। କମ୍ ଉଜ୍ବଳକରଣରେ ଚେଷ୍ଟା କରନ୍ତୁ।"
- "ଯଥେଷ୍ଟ ଆଲୋକ ନାହିଁ"
- "ଫୋନକୁ ଟିକେ ଦୂରକୁ ନିଅନ୍ତୁ"
- "ଫୋନକୁ ପାଖକୁ ଆଣନ୍ତୁ"
- "ଫୋନକୁ ଉପରକୁ ମୁଭ କରନ୍ତୁ"
- "ଫୋନ୍କୁ ତଳକୁ ମୁଭ କରନ୍ତୁ"
- "ଫୋନକୁ ଆପଣଙ୍କ ବାମ ପଟକୁ ମୁଭ କରନ୍ତୁ"
- "ଫୋନକୁ ଆପଣଙ୍କ ଡାହାଣ ପଟକୁ ମୁଭ କରନ୍ତୁ"
+ "ଅତ୍ୟଧିକ ଅନ୍ଧକାର। ଉଜ୍ବଳ ଲାଇଟ୍ ବ୍ୟବହାର କରନ୍ତୁ।"
+ "ଫୋନ୍କୁ ଟିକେ ଦୂରକୁ ନିଅନ୍ତୁ।"
+ "ଫୋନ୍କୁ ପାଖକୁ ଆଣନ୍ତୁ।"
+ "ଫୋନ୍କୁ ଉପରକୁ ଉଠାନ୍ତୁ।"
+ "ଫୋନ୍କୁ ତଳକୁ ନିଅନ୍ତୁ।"
+ "ବାମ ପଟକୁ ଫୋନ୍ ଘୁଞ୍ଚାନ୍ତୁ।"
+ "ଡାହାଣ ପଟକୁ ଫୋନ୍ ଘୁଞ୍ଚାନ୍ତୁ।""ଦୟାକରି ଆପଣଙ୍କ ଡିଭାଇସ୍କୁ ସିଧାସଳଖ ଦେଖନ୍ତୁ।"
- "ଆପଣଙ୍କ ଫେସ ଦେଖାଯାଉନାହିଁ। ଆପଣଙ୍କ ଫୋନକୁ ଆଖି ସିଧାରେ ଧରି ରଖନ୍ତୁ।"
+ "ଆପଣଙ୍କ ମୁହଁକୁ ଫୋନ୍ ସାମ୍ନାରେ ସିଧାସଳଖ ରଖନ୍ତୁ।""ଅତ୍ୟଧିକ ଅସ୍ଥିର। ଫୋନ୍କୁ ସ୍ଥିର ଭାବେ ଧରନ୍ତୁ।""ଦୟାକରି ଆପଣଙ୍କର ମୁହଁ ପୁଣି-ଏନ୍ରୋଲ୍ କରନ୍ତୁ।"
- "ଫେସ ଚିହ୍ନଟ କରାଯାଇପାରିବ ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କର।"
- "ଆପଣଙ୍କ ମୁଣ୍ଡର ସ୍ଥିତି ସାମାନ୍ୟ ବଦଳାନ୍ତୁ"
- "ଆପଣଙ୍କ ଫୋନକୁ ସମ୍ପୂର୍ଣ୍ଣ ସିଧା ଦେଖନ୍ତୁ"
- "ଆପଣଙ୍କ ଫୋନକୁ ସମ୍ପୂର୍ଣ୍ଣ ସିଧା ଦେଖନ୍ତୁ"
- "ଆପଣଙ୍କ ଫୋନକୁ ସମ୍ପୂର୍ଣ୍ଣ ସିଧା ଦେଖନ୍ତୁ"
- "ଆପଣଙ୍କ ମୁହଁକୁ ଲୁଚାଉଥିବା ଯେ କୌଣସି ଜିନିଷକୁ କାଢ଼ି ଦିଅନ୍ତୁ।"
+ "ଆଉ ମୁହଁ ଚିହ୍ନଟ କରିହେଲା ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"
+ "ଅତ୍ୟନ୍ତ ସମପରି, ଦୟାକରି ଆପଣଙ୍କର ପୋଜ୍ ବଦଳାନ୍ତୁ।"
+ "ଆପଣଙ୍କର ମୁଣ୍ଡକୁ ଟିକିଏ ବୁଲାନ୍ତୁ।"
+ "ଆପଣଙ୍କ ମୁଣ୍ଡକୁ ଟିକିଏ କମ୍ ଟିଲ୍ଟ କରନ୍ତୁ।"
+ "ଆପଣଙ୍କର ମୁଣ୍ଡକୁ ଟିକିଏ ବୁଲାନ୍ତୁ।"
+ "ଆପଣଙ୍କର ମୁହଁ ଲୁଚାଉଥିବା ଜିନିଷକୁ କାଢ଼ି ଦିଅନ୍ତୁ।""କଳା ବାର୍ ସମେତ ଆପଣଙ୍କ ସ୍କ୍ରିନ୍ର ଶୀର୍ଷକୁ ସଫା କରନ୍ତୁ"
-
-
-
-
- "ଫେସର ମଡେଲ ତିଆରି କରାଯାଇପାରିବ ନାହିଁ। ପୁଣି ଚେଷ୍ଟା କର।"
- "କଳା ଚଷମା ଚିହ୍ନଟ କରାଯାଇଛି। ଆପଣଙ୍କ ଫେସ ସମ୍ପୂର୍ଣ୍ଣ ଭାବରେ ଦେଖାଯିବା ଆବଶ୍ଯକ।"
- "ଫେସରେ କଭରିଂ ଚିହ୍ନଟ କରାଯାଇଛି। ଆପଣଙ୍କ ଫେସ ସମ୍ପୂର୍ଣ୍ଣ ଭାବରେ ଦେଖାଯିବା ଆବଶ୍ଯକ।""ମୁହଁ ଚିହ୍ନଟ କରିପାରିଲା ନାହିଁ। ହାର୍ଡୱେୟାର୍ ଉପଲବ୍ଧ ନାହିଁ।"
@@ -789,36 +784,36 @@
"କିଛି ସ୍କ୍ରିନ ଲକ୍ ଫିଚରକୁ ଅକ୍ଷମ କରିବା""କିଛି ସ୍କ୍ରିନ ଲକ୍ ଫିଚର ବ୍ୟବହାର କରିବାକୁ ପ୍ରତିରୋଧ କରେ।"
- "ହୋମ"
+ "ହୋମ୍""ମୋବାଇଲ୍""ୱାର୍କ""ୱାର୍କ ଫ୍ୟାକ୍ସ"
- "ହୋମ ଫାକ୍ସ"
+ "ହୋମ୍ ଫାକ୍ସ""ପେଜର୍"
- "ଅନ୍ୟ"
+ "ଅନ୍ୟାନ୍ୟ""କଷ୍ଟମ୍"
- "ହୋମ"
+ "ହୋମ୍""ୱାର୍କ"
- "ଅନ୍ୟ"
+ "ଅନ୍ୟାନ୍ୟ""କଷ୍ଟମ୍"
- "ହୋମ"
+ "ମୂଳପୃଷ୍ଠା""ୱାର୍କ"
- "ଅନ୍ୟ"
+ "ଅନ୍ୟାନ୍ୟ""କଷ୍ଟମ୍"
- "ହୋମ"
+ "ହୋମ୍""ୱାର୍କ"
- "ଅନ୍ୟ"
+ "ଅନ୍ୟାନ୍ୟ""କଷ୍ଟମ୍""ୱାର୍କ"
- "ଅନ୍ୟ"
+ "ଅନ୍ୟାନ୍ୟ""କଷ୍ଟମ୍"
@@ -832,13 +827,13 @@
"Jabber""କଷ୍ଟମ୍"
- "ହୋମ"
+ "ମୂଳପୃଷ୍ଠା""ମୋବାଇଲ୍""ୱାର୍କ""ୱାର୍କ ଫାକ୍ସ"
- "ହୋମ ଫାକ୍ସ"
+ "ହୋମ୍ ଫାକ୍ସ""ପେଜର୍"
- "ଅନ୍ୟ"
+ "ଅନ୍ୟାନ୍ୟ""କଲବ୍ୟାକ୍""କାର୍""କମ୍ପାନୀର ମୁଖ୍ୟ"
@@ -857,18 +852,18 @@
"ଆନିଭର୍ସରୀ""ଅନ୍ୟାନ୍ୟ""କଷ୍ଟମ୍"
- "ହୋମ"
+ "ହୋମ୍""ୱାର୍କ"
- "ଅନ୍ୟ"
+ "ଅନ୍ୟାନ୍ୟ""ମୋବାଇଲ୍""କଷ୍ଟମ୍"
- "ହୋମ"
+ "ହୋମ୍""ୱାର୍କ"
- "ଅନ୍ୟ"
+ "ଅନ୍ୟାନ୍ୟ""କଷ୍ଟମ୍"
- "ହୋମ"
+ "ହୋମ୍""ୱାର୍କ"
- "ଅନ୍ୟ"
+ "ଅନ୍ୟାନ୍ୟ""କଷ୍ଟମ୍""AIM""Windows Live"
@@ -880,7 +875,7 @@
"Jabber""NetMeeting""ୱାର୍କ"
- "ଅନ୍ୟ"
+ "ଅନ୍ୟାନ୍ୟ""କଷ୍ଟମ୍""କଷ୍ଟମ୍""Assistant"
@@ -898,10 +893,10 @@
"ଭଉଣୀ""ସ୍ଵାମୀ ବା ସ୍ତ୍ରୀ""କଷ୍ଟମ୍"
- "ହୋମ"
+ "ଘର""ୱାର୍କ"
- "ଅନ୍ୟ"
- "ଏହି କଣ୍ଟାକ୍ଟ ଦେଖିବାକୁ କୌଣସି ଆପ୍ଲିକେସନ ମିଳିଲା ନାହିଁ।"
+ "ଅନ୍ୟାନ୍ୟ"
+ "ଏହି ଯୋଗାଯୋଗ ଦେଖିବାକୁ କୌଣସି ଆପ୍ଲିକେଶନ୍ ମିଳିଲା ନାହିଁ।""PIN କୋଡ୍ ଟାଇପ୍ କରନ୍ତୁ""PUK ଓ ନୂଆ PIN କୋଡ୍ ଟାଇପ୍ କରନ୍ତୁ""PUK କୋଡ୍"
@@ -924,14 +919,14 @@
"ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ""ସମସ୍ତ ସୁବିଧା ତଥା ଡାଟା ପାଇଁ ଅନଲକ୍ କରନ୍ତୁ""ସର୍ବାଧିକ ଫେସ୍ ଅନଲକ୍ ପ୍ରଚେଷ୍ଟା ଅତିକ୍ରମ କରିଛି"
- "କୌଣସି SIM ନାହିଁ"
- "ଟାବଲେଟରେ କୌଣସି SIM ନାହିଁ।"
- "ଆପଣଙ୍କର Android TV ଡିଭାଇସରେ କୌଣସି SIM ନାହିଁ।"
- "ଫୋନରେ କୌଣସି SIM ନାହିଁ।"
- "ଏକ SIM ଯୋଗ କରନ୍ତୁ।"
- "SIM ଉପଲବ୍ଧ ନାହିଁ କିମ୍ବା ପଢ଼ିପାରିବା ଯୋଗ୍ୟ ନୁହେଁ। ଏକ SIM ଯୋଗ କରନ୍ତୁ।"
- "ବ୍ୟବହାର ଅଯୋଗ୍ୟ ଥିବା SIM।"
- "ଆପଣଙ୍କ SIMକୁ ସ୍ଥାୟୀ ଭାବରେ ନିଷ୍କ୍ରିୟ କରାଯାଇଛି।\n ଅନ୍ୟ ଏକ SIM ପାଇଁ ଆପଣଙ୍କ ୱେୟାରଲେସ ସେବା ପ୍ରଦାନକାରୀଙ୍କ ସହ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।"
+ "କୌଣସି SIM କାର୍ଡ ନାହିଁ"
+ "ଟାବଲେଟ୍ରେ କୌଣସି SIM କାର୍ଡ ନାହିଁ।"
+ "ଆପଣଙ୍କର Android TV ଡିଭାଇସ୍ରେ କୌଣସି SIM କାର୍ଡ ନାହିଁ।"
+ "ଫୋନ୍ରେ କୌଣସି SIM କାର୍ଡ ନାହିଁ।"
+ "ଏକ SIM କାର୍ଡ ଭର୍ତ୍ତି କରନ୍ତୁ।"
+ "SIM କାର୍ଡ ନାହିଁ କିମ୍ବା ଖରାପ ଅଛି। SIM କାର୍ଡ ଭର୍ତ୍ତି କରନ୍ତୁ।"
+ "SIM କାର୍ଡଟି ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ।"
+ "ଆପଣଙ୍କ SIM କାର୍ଡକୁ ସ୍ଥାୟୀ ରୂପେ ଅକ୍ଷମ କରିଦିଆଯାଇଛି।\n ଅନ୍ୟ SIM କାର୍ଡ ପାଇଁ ଆପଣଙ୍କ ୱାୟରଲେସ୍ ସେବା ପ୍ରଦାନକାରୀଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।""ପୂର୍ବବର୍ତ୍ତୀ ଟ୍ରାକ୍""ପରବର୍ତ୍ତୀ ଟ୍ରାକ୍""ପଜ୍ କରନ୍ତୁ"
@@ -941,10 +936,10 @@
"ଫାଷ୍ଟ ଫର୍ୱାର୍ଡ""କେବଳ ଜରୁରୀକାଳୀନ କଲ୍""ନେଟ୍ୱର୍କକୁ ଲକ୍ କରାଯାଇଛି"
- "SIMକୁ PUK-ଲକ କରାଯାଇଛି।"
- "ୟୁଜର ଗାଇଡ ଦେଖନ୍ତୁ କିମ୍ବା ଗ୍ରାହକ ସେବା କେନ୍ଦ୍ର ସହ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।"
- "SIMକୁ ଲକ କରାଯାଇଛି।"
- "SIMକୁ ଅନଲକ କରାଯାଉଛି…"
+ "SIM କାର୍ଡଟିରେ PUK ଲକ୍ ହୋଇଯାଇଛି।"
+ "ୟୁଜର୍ ଗାଇଡ୍ ଦେଖନ୍ତୁ କିମ୍ବା ଗ୍ରାହକ ସେବା କେନ୍ଦ୍ର ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।"
+ "SIM କାର୍ଡ ଲକ୍ ହୋଇଯାଇଛି"
+ "SIM କାର୍ଡକୁ ଅନଲକ୍ କରାଯାଉଛି…""ଆପଣଙ୍କ ଅନଲକ୍ ପାଟର୍ନକୁ ଆପଣ %1$d ଥର ଭୁଲ ଭାବେ ଅଙ୍କନ କରିଛନ୍ତି। \n\n%2$d ସେକେଣ୍ଡ ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।""ଆପଣଙ୍କ ପାସୱର୍ଡକୁ ଆପଣ %1$d ଥର ଭୁଲ ଭାବେ ଟାଇପ୍ କରିଛନ୍ତି। \n\n%2$d ସେକେଣ୍ଡ ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।""ଆପଣଙ୍କ PINକୁ ଆପଣ %1$d ଥର ଭୁଲ ଭାବେ ଟାଇପ୍ କରିଛନ୍ତି। \n\n%2$d ସେକେଣ୍ଡ ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"
@@ -1072,13 +1067,13 @@
"ସ୍ପେସ୍""ଏଣ୍ଟର୍""ଡିଲିଟ୍ କରନ୍ତୁ"
- "ସର୍ଚ୍ଚ କରନ୍ତୁ"
- "ସର୍ଚ୍ଚ କରନ୍ତୁ…"
- "ସର୍ଚ୍ଚ କରନ୍ତୁ"
+ "ସନ୍ଧାନ କରନ୍ତୁ"
+ "ସନ୍ଧାନ…"
+ "ସନ୍ଧାନ କରନ୍ତୁ""କ୍ୱେରୀ ସର୍ଚ୍ଚ କରନ୍ତୁ""କ୍ୱେରୀ ଖାଲି କରନ୍ତୁ""କ୍ୱେରୀ ଦାଖଲ କରନ୍ତୁ"
- "ଭଏସ ସର୍ଚ୍ଚ"
+ "ଭଏସ୍ ସର୍ଚ୍ଚ""’ସ୍ପର୍ଶ କରି ଏକ୍ସପ୍ଲୋର୍ କରନ୍ତୁ’ ସକ୍ଷମ କରିବେ?""%1$s ’ସ୍ପର୍ଶ କରି ଏକ୍ସପ୍ଲୋର୍ କରନ୍ତୁ’ ସକ୍ଷମ କରିବାକୁ ଚାହେଁ। ’ସ୍ପର୍ଶ କରି ଏକ୍ସପ୍ଲୋର୍ କରନ୍ତୁ’ ଅନ୍ ଥିବାବେଳେ, ଆପଣଙ୍କ ଆଙ୍ଗୁଠି ତଳେ କ’ଣ ଅଛି, ତାହାର ବ୍ୟାଖ୍ୟା ଦେଖିପାରିବେ କିମ୍ବା ଟାବ୍ଲେଟ୍ ସହ କଥାବାର୍ତ୍ତା କରିବାକୁ ଜେଶ୍ଚର୍ କରିପାରିବେ।""%1$s ’ସ୍ପର୍ଶ କରି ଏକ୍ସପ୍ଲୋର୍ କରନ୍ତୁ’ ସକ୍ଷମ କରିବାକୁ ଚାହେଁ। ’ସ୍ପର୍ଶ କରି ଏକ୍ସପ୍ଲୋର୍ କରନ୍ତୁ’ ଅନ୍ ଥିବାବେଳେ, ଆପଣଙ୍କ ଆଙ୍ଗୁଠି ତଳେ କ’ଣ ଅଛି, ତାହାର ବ୍ୟାଖ୍ୟା ଦେଖିପାରିବେ କିମ୍ବା ଫୋନ୍ ସହ କଥାବାର୍ତ୍ତା କରିବାକୁ ଜେଶ୍ଚର୍ କରିପାରିବେ।"
@@ -1156,13 +1151,13 @@
"%1$s ଚାଲୁଛି""ଅଧିକ ସୂଚନା ପାଇଁ କିମ୍ବା ଆପ୍ ବନ୍ଦ କରିବାକୁ ଟାପ୍ କରନ୍ତୁ।""ଠିକ୍ ଅଛି"
- "ବାତିଲ କରନ୍ତୁ"
+ "ବାତିଲ୍ କରନ୍ତୁ""ଠିକ୍ ଅଛି"
- "ବାତିଲ କରନ୍ତୁ"
+ "ବାତିଲ୍ କରନ୍ତୁ""ଧ୍ୟାନଦିଅନ୍ତୁ""ଲୋଡ୍ କରାଯାଉଛି…"
- "ଚାଲୁ ଅଛି"
- "ବନ୍ଦ ଅଛି"
+ "ଚାଲୁ"
+ "ବନ୍ଦ""ଯାଞ୍ଚ ହୋଇଛି""ଯାଞ୍ଚ ହୋଇନାହିଁ""ଚୟନ କରାଯାଇଛି"
@@ -1179,17 +1174,17 @@
"%1$s ମାଧ୍ୟମରେ ଲିଙ୍କ୍ଗୁଡ଼ିକ ଖୋଲନ୍ତୁ""%2$s ମାଧ୍ୟମରେ %1$s ଲିଙ୍କ୍ଗୁଡ଼ିକ ଖୋଲନ୍ତୁ""ଆକ୍ସେସ୍ ଦିଅନ୍ତୁ"
- "ସହିତ ଏଡିଟ କରନ୍ତୁ"
- "%1$sରେ ଏଡିଟ କରନ୍ତୁ"
- "ଏଡିଟ କରନ୍ତୁ"
+ "ସହିତ ଏଡିଟ୍ କରନ୍ତୁ"
+ "%1$sରେ ସଂଶୋଧନ କରନ୍ତୁ"
+ "ଏଡିଟ୍ କରନ୍ତୁ""ସେୟାର୍ କରନ୍ତୁ""%1$s ସହିତ ସେୟାର୍ କରନ୍ତୁ""ସେୟାର୍ କରନ୍ତୁ""ଏହା ଜରିଆରେ ପଠାନ୍ତୁ""%1$s ଜରିଆରେ ପଠାନ୍ତୁ""ପଠାନ୍ତୁ"
- "ଏକ ହୋମ ଆପ ଚୟନ କରନ୍ତୁ"
- "ହୋମ ରୂପରେ %1$s ବ୍ୟବହାର କରନ୍ତୁ"
+ "ହୋମ୍ ଆପ୍ ଚୟନ କରନ୍ତୁ"
+ "ହୋମ୍ ରୂପରେ %1$s ବ୍ୟବହାର କରନ୍ତୁ""ଇମେଜ୍ କ୍ୟାପଚର୍ କରନ୍ତୁ""ଏହା ସହ ଇମେଜ୍ କ୍ୟାପଚର୍ କରନ୍ତୁ""%1$s ସହ ଇମେଜ୍ କ୍ୟାପଚର୍ କରନ୍ତୁ"
@@ -1246,9 +1241,10 @@
"%1$s ପ୍ରସ୍ତୁତ କରାଯାଉଛି।""ଆପ୍ ଆରମ୍ଭ କରାଯାଉଛି।""ବୁଟ୍ ସମାପ୍ତ କରୁଛି।"
+ "ସେଟଅପ କରିବା ଜାରି ରଖିବେ?""ଆପଣ ପାୱାର ବଟନ ଦବାଇଛନ୍ତି — ଏହା ସାଧାରଣତଃ ଆପଣଙ୍କ ସ୍କ୍ରିନକୁ ବନ୍ଦ କରିଥାଏ।\n\nଆପଣଙ୍କ ଟିପଚିହ୍ନ ସେଟ ଅପ କରିବା ସମୟରେ ଧୀରେ ଟାପ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ।"
- "ସେଟଅପ ସମାପ୍ତ କରିବାକୁ ସ୍କ୍ରିନ ବନ୍ଦ କରନ୍ତୁ"
- "ବନ୍ଦ କରନ୍ତୁ"
+ "ସ୍କ୍ରିନ ବନ୍ଦ କରନ୍ତୁ"
+ "ସେଟଅପ କରିବା ଜାରି ରଖ""ଆପଣଙ୍କ ଟିପଚିହ୍ନ ଯାଞ୍ଚ କରିବା ଜାରି ରଖିବେ?""ଆପଣ ପାୱାର ବଟନ ଦବାଇଛନ୍ତି — ଏହା ସାଧାରଣତଃ ଆପଣଙ୍କ ସ୍କ୍ରିନକୁ ବନ୍ଦ କରିଥାଏ।\n\nଆପଣଙ୍କ ଟିପଚିହ୍ନ ଯାଞ୍ଚ କରିବା ପାଇଁ ଧୀରେ ଟାପ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ।""ସ୍କ୍ରିନ ବନ୍ଦ କରନ୍ତୁ"
@@ -1271,7 +1267,7 @@
"ରିଙ୍ଗର୍ ଭଲ୍ୟୁମ୍""ମିଡିଆ ଭଲ୍ୟୁମ୍""ବ୍ଲୁଟୂଥ୍ ମାଧ୍ୟମରେ ଚାଲୁଛି"
- "ସାଇଲେଣ୍ଟ ରିଂଟୋନ ସେଟ ହୋଇଛି"
+ "ରିଙ୍ଗଟୋନ୍କୁ ନିରବ ଭାବେ ସେଟ୍ କରାଯାଇଛି""ଇନ୍-କଲ୍ ଭଲ୍ୟୁମ୍""ବ୍ଲୁଟୂଥ୍ ଇନ୍-କଲ୍ ଭଲ୍ୟୁମ୍""ଆଲାରାମ୍ ଭଲ୍ୟୁମ୍"
@@ -1322,21 +1318,21 @@
"ଏହା ଦ୍ୱାରା "" ଆପଣଙ୍କ ମୋବାଇଲ୍ ଆକାଉଣ୍ଟରୁ ପଇସା କଟିପାରେ। "" ଆପଣଙ୍କ ମୋବାଇଲ୍ ଆକାଉଣ୍ଟରୁ ପଇସା କଟିପାରେ। ""ପଠାନ୍ତୁ"
- "ବାତିଲ କରନ୍ତୁ"
+ "ବାତିଲ୍ କରନ୍ତୁ""ମୋ ପସନ୍ଦ ମନେରଖନ୍ତୁ""ଏହାକୁ ଆପଣ ସେଟିଙ୍ଗ ଓ ଆପ୍ରେ ପରବର୍ତ୍ତୀ ସମୟରେ ବଦଳାଇପାରିବେ""ସର୍ବଦା ଅନୁମତି ଦିଅନ୍ତୁ""ଆଦୌ ଅନୁମତି ଦିଅନ୍ତୁ ନାହିଁ"
- "SIMକୁ କାଢ଼ି ଦିଆଯାଇଛି"
- "ଆପଣ ଏକ ବୈଧ SIM ମାଧ୍ୟମରେ ରିଷ୍ଟାର୍ଟ ନକରିବା ପର୍ଯ୍ୟନ୍ତ ମୋବାଇଲ ନେଟୱାର୍କ ଉପଲବ୍ଧ ହେବ ନାହିଁ।"
+ "SIM କାର୍ଡ ବାହାର କରିଦିଆଯାଇଛି"
+ "ଯେପର୍ଯ୍ୟନ୍ତ ଆପଣ କୌଣସି ବୈଧ SIM କାର୍ଡ ବ୍ୟବହାର କରି ରିଷ୍ଟାଟ୍ କରିନାହାନ୍ତି, ସେପର୍ଯ୍ୟନ୍ତ କୌଣସି ମୋବାଇଲ୍ ନେଟୱର୍କ ଉପଲବ୍ଧ ହେବନାହିଁ।""ହୋଇଗଲା"
- "SIM ଯୋଗ କରାଯାଇଛି"
+ "SIM କାର୍ଡ ଯୋଡ଼ାଯାଇଛି""ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ଆକ୍ସେସ୍ କରିବା ପାଇଁ ଆପଣଙ୍କ ଡିଭାଇସ୍କୁ ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ""ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ""ମୋବାଇଲ୍ ସେବା ସକ୍ରିୟ କରନ୍ତୁ"
- "ଆପଣଙ୍କର ନୂତନ SIMକୁ ସକ୍ରିୟ କରିବା ପାଇଁ କ୍ୟାରିଅର୍ ଆପ୍କୁ ଡାଉନଲୋଡ କରନ୍ତୁ"
- "ଆପଣଙ୍କର ନୂତନ SIMକୁ ସକ୍ରିୟ କରିବା ପାଇଁ %1$s ଆପ୍କୁ ଡାଉନଲୋଡ କରନ୍ତୁ"
- "ଆପ୍ ଡାଉନଲୋଡ କରନ୍ତୁ"
+ "ଆପଣଙ୍କର ନୂତନ SIMକୁ ସକ୍ରିୟ କରିବା ପାଇଁ କ୍ୟାରିଅର୍ ଆପ୍କୁ ଡାଉନଲୋଡ୍ କରନ୍ତୁ"
+ "ଆପଣଙ୍କର ନୂତନ SIMକୁ ସକ୍ରିୟ କରିବା ପାଇଁ %1$s ଆପ୍କୁ ଡାଉନଲୋଡ୍ କରନ୍ତୁ"
+ "ଆପ୍ ଡାଉନଲୋଡ୍ କରନ୍ତୁ""ନୂଆ SIM କାର୍ଡ ଭର୍ତ୍ତି କରାଗଲା""ଏହା ସେଟଅପ୍ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ""ସମୟ ସେଟ୍ କରନ୍ତୁ"
@@ -1359,7 +1355,7 @@
"ଯୋଡ଼ାଯାଇଥିବା ଡିଭାଇସ୍ ଚାର୍ଜ ହେଉଛି। ଅଧିକ ବିକଳ୍ପ ପାଇଁ ଟାପ୍ କରନ୍ତୁ।""ଆନାଲଗ୍ ଅଡିଓ ଆକ୍ସେସରୀ ଚିହ୍ନଟ ହେଲା""ଏହି ଫୋନ୍ରେ କନେକ୍ଟ ଥିବା ଡିଭାଇସ୍ କମ୍ପାଟିବଲ୍ ନୁହେଁ। ଅଧିକ ଜାଣିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ।"
- "USB ଡିବଗିଂ କନେକ୍ଟ କରାଯାଇଛି"
+ "USB ଡିବଗିଂ ସଂଯୁକ୍ତ ହୋଇଛି""USB ଡିବଗିଂକୁ ବନ୍ଦ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ""USB ଡିବଗିଙ୍ଗକୁ ଅକ୍ଷମ କରିବା ପାଇଁ ଚୟନ କରନ୍ତୁ।""ୱାୟାରଲେସ୍ ଡିବଗିଂ ସଂଯୋଗ କରାଯାଇଛି"
@@ -1401,16 +1397,16 @@
"ସେଟଅପ୍ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ""ସେଟ୍ ଅପ୍ କରିବାକୁ ଚୟନ କରନ୍ତୁ""ଆପଣଙ୍କୁ ପୁଣି ଡିଭାଇସ୍ ଫର୍ମାଟ୍ କରିବାକୁ ପଡ଼ିପାରେ। ବାହାର କରିବାକୁ ଟାପ୍ କରନ୍ତୁ।"
- "ଫଟୋ, ଭିଡିଓ, ମ୍ୟୁଜିକ ଏବଂ ଆହୁରି ଅନେକ କିଛି ଷ୍ଟୋର କରିବା ପାଇଁ"
+ "ଫଟୋ ଓ ମିଡିଆ ସ୍ଥାନାନ୍ତର କରାଯିବା ପାଇଁ""ମିଡିଆ ଫାଇଲଗୁଡ଼ିକୁ ବ୍ରାଉଜ୍ କରନ୍ତୁ""%s ସହ ସମସ୍ୟା""%s କାମ କରୁନାହିଁ""ଠିକ୍ କରିବାକୁ ଟାପ୍ କରନ୍ତୁ""%s ଖରାପ ହୋଇଯାଇଛି। ଠିକ୍ କରିବାକୁ ଚୟନ କରନ୍ତୁ।""ଆପଣଙ୍କୁ ପୁଣି ଡିଭାଇସ୍ ଫର୍ମାଟ୍ କରିବାକୁ ପଡ଼ିପାରେ। ବାହାର କରିବାକୁ ଟାପ୍ କରନ୍ତୁ।"
- "%s ଚିହ୍ନଟ କରାଯାଇଛି"
+ "%s ସପୋର୍ଟ କରୁନାହିଁ""%s କାମ କରୁନାହିଁ"
- "ସେଟ ଅପ କରିବା ପାଇଁ ଟାପ କରନ୍ତୁ।"
+ "ଏହି ଡିଭାଇସ୍ ଏହି %sକୁ ସପୋର୍ଟ କରେନାହିଁ। ଗୋଟିଏ ସପୋର୍ଟ କରୁଥିବା ଫର୍ମାଟ୍ରେ ସେଟ୍ ଅପ୍ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ।""%sକୁ ଏକ ସମର୍ଥିତ ଫର୍ମାଟରେ ସେଟ୍ ଅପ୍ କରିବାକୁ ଚୟନ କରନ୍ତୁ।""ଆପଣଙ୍କୁ ପୁଣି ଡିଭାଇସ୍ ଫର୍ମାଟ୍ କରିବାକୁ ପଡ଼ିପାରେ""%sକୁ ହଠାତ୍ କାଢ଼ିଦିଆଗଲା"
@@ -1458,14 +1454,14 @@
"ଜୁମ୍ ନିୟନ୍ତ୍ରଣ ପାଇଁ ଦୁଇଥର ଟାପ୍ କରନ୍ତୁ""ୱିଜେଟ୍ ଯୋଡ଼ିପାରିବ ନାହିଁ।""ଯାଆନ୍ତୁ"
- "ସର୍ଚ୍ଚ କରନ୍ତୁ"
+ "ସନ୍ଧାନ କରନ୍ତୁ""ପଠାନ୍ତୁ""ପରବର୍ତ୍ତୀ""ହୋଇଗଲା""ପୂର୍ବବର୍ତ୍ତୀ""କାମ କରନ୍ତୁ""%sବ୍ୟବହାର କରି\n ଡାଏଲ୍ କରନ୍ତୁ"
- "%sବ୍ୟବହାର କରି\n କଣ୍ଟାକ୍ଟ ତିଆରି କରନ୍ତୁ"
+ "%sବ୍ୟବହାର କରି\n ଯୋଗାଯୋଗ ତିଆରି କରନ୍ତୁ""ବର୍ତ୍ତମାନ ଓ ଭବିଷ୍ୟତରେ ଆପଣଙ୍କ ଆକାଉଣ୍ଟ ଆକ୍ସେସ୍ କରିବାକୁ ନିମ୍ନରୁ ଗୋଟିଏ କିମ୍ବା ଅଧିକ ଆପ୍ ଅନୁମତି ଅନୁରୋଧ କରନ୍ତି।""ଆପଣ ଏହି ଅନୁରୋଧକୁ ଅନୁମତି ଦେବାକୁ ଚାହାଁନ୍ତି କି?""ଆକ୍ସେସ୍ ଅନୁରୋଧ"
@@ -1545,7 +1541,7 @@
"ପୂର୍ବ ମାସ""ପରବର୍ତ୍ତୀ ମାସ""ALT"
- "ବାତିଲ କରନ୍ତୁ"
+ "ବାତିଲ୍ କରନ୍ତୁ""ଡିଲିଟ୍ କରନ୍ତୁ""ହୋଇଗଲା""ମୋଡ୍ ପରିବର୍ତ୍ତନ"
@@ -1557,7 +1553,7 @@
"%s ସହ ସେୟାର୍ କରନ୍ତୁ""ହ୍ୟାଣ୍ଡେଲ୍ ସ୍ଲାଇଡ୍ କରାଯାଉଛି। ସ୍ପର୍ଶ କରି ଧରିରଖନ୍ତୁ।""ଅନଲକ୍ କରିବାକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ।"
- "ହୋମକୁ ନେଭିଗେଟ କରନ୍ତୁ"
+ "ହୋମ୍ ପେଜ୍କୁ ନେଭିଗେଟ୍ କରନ୍ତୁ""ଉପରକୁ ନେଭିଗେଟ୍ କରନ୍ତୁ""ଅଧିକ ବିକଳ୍ପ""%1$s, %2$s"
@@ -1568,7 +1564,7 @@
"USB ଡ୍ରାଇଭ୍""%s USB ଡ୍ରାଇଭ୍""USB ଷ୍ଟୋରେଜ୍"
- "ଏଡିଟ କରନ୍ତୁ"
+ "ଏଡିଟ୍ କରନ୍ତୁ""ଡାଟା ଚେତାବନୀ""ଆପଣ %s ଡାଟା ବ୍ୟବହାର କରିସାରିଛନ୍ତି""ମୋବାଇଲ୍ ଡାଟା ଧାର୍ଯ୍ୟ ସୀମାରେ ପହଞ୍ଚିଲା"
@@ -1607,12 +1603,12 @@
"%1$s ୱର୍କ ପ୍ରୋଫାଇଲ୍କୁ ସପୋର୍ଟ କରୁନାହିଁ""ଟାବଲେଟ୍""TV"
- "ଫୋନ"
+ "ଫୋନ୍""ଡକ୍ ସ୍ପିକର୍"
- "ଏକ୍ସଟର୍ନଲ ଡିଭାଇସ"
+ "HDMI""ହେଡଫୋନ୍""USB"
- "ସିଷ୍ଟମ"
+ "ସିଷ୍ଟମ୍""ବ୍ଲୁଟୂଥ୍ ଅଡିଓ""ୱେୟାର୍ଲେସ୍ ଡିସ୍ପ୍ଲେ""କାଷ୍ଟ କରନ୍ତୁ"
@@ -1639,10 +1635,10 @@
"SIM PIN ଲେଖନ୍ତୁ""PIN ଲେଖନ୍ତୁ""ପାସ୍ୱର୍ଡ ଲେଖନ୍ତୁ"
- "SIM ବର୍ତ୍ତମାନ ଅକ୍ଷମ ଅଟେ। ଜାରି ରଖିବାକୁ PUK କୋଡ ଲେଖନ୍ତୁ। ବିବରଣୀ ପାଇଁ ନିଜ କ୍ଯାରିଅରଙ୍କ ସହ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।"
+ "SIM ବର୍ତ୍ତମାନ ଅକ୍ଷମ ଅଟେ। ଜାରି ରଖିବାକୁ PUK କୋଡ୍ ଏଣ୍ଟର୍ କରନ୍ତୁ। ବିବରଣୀ ପାଇଁ ନିଜ କେରିଅର୍ଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।""ନିଜ ଇଚ୍ଛାର PIN କୋଡ୍ ଲେଖନ୍ତୁ""ନିଜ ଇଚ୍ଛାର PIN କୋଡ୍ ନିଶ୍ଚିତ କରନ୍ତୁ"
- "SIMକୁ ଅନଲକ କରାଯାଉଛି…"
+ "SIM କାର୍ଡ ଅନଲକ୍ କରାଯାଉଛି…""ଭୁଲ PIN କୋଡ୍।""4 ରୁ 8 ନମ୍ବର ବିଶିଷ୍ଟ ଏକ PIN ଟାଇପ୍ କରନ୍ତୁ।""PUK କୋଡ୍ରେ 8ଟି ନମ୍ବର ରହିଥାଏ।"
@@ -1682,19 +1678,19 @@
"ଚାଲୁ କରନ୍ତୁ ନାହିଁ""ଚାଲୁ ଅଛି""ବନ୍ଦ ଅଛି"
- "ଆପଣଙ୍କ ଡିଭାଇସର ସମ୍ପୂର୍ଣ୍ଣ ନିୟନ୍ତ୍ରଣ କରିବାକୁ %1$sକୁ ଅନୁମତି ଦେବେ?"
+ "%1$sକୁ ଆପଣଙ୍କ ଡିଭାଇସର ସମ୍ପୂର୍ଣ୍ଣ ନିୟନ୍ତ୍ରଣର ଅନୁମତି ଦେବେ?""ଯେଉଁ ଆପ୍ସ ଆପଣଙ୍କୁ ଆକ୍ସେସିବିଲିଟୀ ଆବଶ୍ୟକତାରେ ସହାୟତା କରେ, ସେହି ଆପ୍ସ ପାଇଁ ସମ୍ପୂର୍ଣ୍ଣ ନିୟନ୍ତ୍ରଣ ଉପଯୁକ୍ତ ଅଟେ, କିନ୍ତୁ ଅଧିକାଂଶ ଆପ୍ସ ପାଇଁ ଉପଯୁକ୍ତ ନୁହେଁ।""ଭ୍ୟୁ ଏବଂ ସ୍କ୍ରିନ୍ ନିୟନ୍ତ୍ରଣ""ଏହା ସ୍କ୍ରିନ୍ର ସମସ୍ତ ବିଷୟବସ୍ତୁ ପଢ଼ିପାରେ ଏବଂ ଅନ୍ୟ ଆପ୍ସରେ ବିଷୟବସ୍ତୁ ପ୍ରଦର୍ଶନ କରିପାରେ।""ଦେଖନ୍ତୁ ଏବଂ କାର୍ଯ୍ୟ ସମ୍ପାଦନ କରନ୍ତୁ"
- "ଏହା କୌଣସି ଆପ କିମ୍ବା ହାର୍ଡୱେର ସେନ୍ସର ସହ ଆପଣଙ୍କର ଇଣ୍ଟେରାକ୍ସନକୁ ଟ୍ରାକ କରିପାରେ ଏବଂ ଆପଣଙ୍କ ତରଫରୁ ଆପ୍ସ ସହ ଇଣ୍ଟରାକ୍ଟ କରିପାରେ।"
+ "ଏହା କୌଣସି ଆପ୍ କିମ୍ବା ହାର୍ଡୱେର୍ ସେନ୍ସର୍ ସହ ଆପଣଙ୍କର ପାରସ୍ପରିକ ଆଦାନପ୍ରଦାନକୁ ଟ୍ରାକ୍ କରିପାରେ ଏବଂ ଆପଣଙ୍କ ତରଫରୁ ଆପ୍ସ ସହ ପରିଚିତ ହୋଇପାରେ।""ଅନୁମତି""ଅଗ୍ରାହ୍ୟ""ଏକ ଫିଚର୍ ବ୍ୟବହାର କରିବା ଆରମ୍ଭ କରିବାକୁ ଏହାକୁ ଟାପ୍ କରନ୍ତୁ:""ଆକ୍ସେସିବିଲିଟୀ ବଟନ୍ ସହିତ ବ୍ୟବହାର କରିବାକୁ ଫିଚରଗୁଡ଼ିକ ବାଛନ୍ତୁ""ଭଲ୍ୟୁମ୍ କୀ ସର୍ଟକଟ୍ ସହିତ ବ୍ୟବହାର କରିବାକୁ ଫିଚରଗୁଡ଼ିକ ବାଛନ୍ତୁ""%s ବନ୍ଦ ହୋଇଯାଇଛି"
- "ସର୍ଟକଟଗୁଡ଼ିକୁ ଏଡିଟ କରନ୍ତୁ"
+ "ସର୍ଟକଟଗୁଡ଼ିକୁ ସମ୍ପାଦନ କରନ୍ତୁ""ହୋଇଗଲା""ଶର୍ଟକଟ୍ ବନ୍ଦ କରନ୍ତୁ""ଶର୍ଟକଟ୍ ବ୍ୟବହାର କରନ୍ତୁ"
@@ -1881,7 +1877,7 @@
"ଶୋଇବା""%1$s କିଛି ସାଉଣ୍ଡକୁ ମ୍ୟୁଟ୍ କରୁଛି""ଆପଣଙ୍କ ଡିଭାଇସ୍ରେ ଏକ ସମସ୍ୟା ରହିଛି ଏବଂ ଆପଣ ଫ୍ୟାକ୍ଟୋରୀ ଡାଟା ରିସେଟ୍ ନକରିବା ପର୍ଯ୍ୟନ୍ତ ଏହା ଅସ୍ଥିର ରହିପାରେ।"
- "ଆପଣଙ୍କ ଡିଭାଇସରେ ଏକ ସମସ୍ୟା ରହିଛି। ବିବରଣୀ ପାଇଁ ଆପଣଙ୍କ ଉତ୍ପାଦକଙ୍କ ସହ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।"
+ "ଆପଣଙ୍କ ଡିଭାଇସ୍ରେ ଏକ ସମସ୍ୟା ରହିଛି। ବିବରଣୀ ପାଇଁ ଆପଣଙ୍କ ଉତ୍ପାଦକଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।""USSD ଅନୁରୋଧ, ସ୍ଵାଭାବିକ କଲ୍ରେ ପରିବର୍ତ୍ତନ ହେଲା""USSD ଅନୁରୋଧ, SS ଅନୁରୋଧକୁ ପରିବର୍ତ୍ତନ ହେଲା""ନୂତନ USSD ଅନୁରୋଧରେ ପରିବର୍ତ୍ତନ ହେଲା"
@@ -1923,15 +1919,14 @@
"ପସନ୍ଦର ଅଞ୍ଚଳ""ଭାଷାର ନାମ ଟାଇପ୍ କରନ୍ତୁ""ପ୍ରସ୍ତାବିତ"
- "ପ୍ରସ୍ତାବିତ""ସମସ୍ତ ଭାଷା""ସମସ୍ତ ଅଞ୍ଚଳ"
- "ସର୍ଚ୍ଚ କରନ୍ତୁ"
+ "ସନ୍ଧାନ କରନ୍ତୁ""ଆପ୍ ଉପଲବ୍ଧ ନାହିଁ""ବର୍ତ୍ତମାନ %1$s ଉପଲବ୍ଧ ନାହିଁ। ଏହା %2$s ଦ୍ଵାରା ପରିଚାଳିତ ହେଉଛି।""ଅଧିକ ଜାଣନ୍ତୁ""ଆପ୍ ଅନପଜ୍ କରନ୍ତୁ"
- "ୱାର୍କ ଆପ୍ସ ଚାଲୁ କରିବେ?"
+ "ୱାର୍କ ଆପଗୁଡ଼ିକୁ ଚାଲୁ କରିବେ?""ଆପଣଙ୍କ ୱାର୍କ ଆପ୍ ଏବଂ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଆକ୍ସେସ୍ ପାଆନ୍ତୁ""ଚାଲୁ କରନ୍ତୁ""ଆପ୍ ଉପଲବ୍ଧ ନାହିଁ"
@@ -1941,20 +1936,19 @@
"କ୍ୟାମେରା ଉପଲବ୍ଧ ନାହିଁ""ଫୋନରେ ଜାରି ରଖନ୍ତୁ""ମାଇକ୍ରୋଫୋନ ଉପଲବ୍ଧ ନାହିଁ"
- "Play Store ଉପଲବ୍ଧ ନାହିଁ""Android TV ସେଟିଂସ ଉପଲବ୍ଧ ନାହିଁ""ଟାବଲେଟ ସେଟିଂସ ଉପଲବ୍ଧ ନାହିଁ""ଫୋନ ସେଟିଂସ ଉପଲବ୍ଧ ନାହିଁ"
- "ବର୍ତ୍ତମାନ ଏହାକୁ ଆପଣଙ୍କ %1$sରେ ଆକ୍ସେସ କରାଯାଇପାରିବ ନାହିଁ। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ Android TV ଡିଭାଇସରେ ଚେଷ୍ଟା କରନ୍ତୁ।"
- "ବର୍ତ୍ତମାନ ଏହାକୁ ଆପଣଙ୍କ %1$sରେ ଆକ୍ସେସ କରାଯାଇପାରିବ ନାହିଁ। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ ଟାବଲେଟରେ ଚେଷ୍ଟା କରନ୍ତୁ।"
- "ବର୍ତ୍ତମାନ ଏହାକୁ ଆପଣଙ୍କ %1$sରେ ଆକ୍ସେସ କରାଯାଇପାରିବ ନାହିଁ। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ ଫୋନରେ ଚେଷ୍ଟା କରନ୍ତୁ।"
+ "ଏହାକୁ ଆପଣଙ୍କ %1$sରେ ଆକ୍ସେସ କରାଯାଇପାରିବ ନାହିଁ। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ Android TV ଡିଭାଇସରେ ଚେଷ୍ଟା କରନ୍ତୁ।"
+ "ଏହାକୁ ଆପଣଙ୍କ %1$sରେ ଆକ୍ସେସ କରାଯାଇପାରିବ ନାହିଁ। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ ଟାବଲେଟରେ ଚେଷ୍ଟା କରନ୍ତୁ।"
+ "ଏହାକୁ ଆପଣଙ୍କ %1$sରେ ଆକ୍ସେସ କରାଯାଇପାରିବ ନାହିଁ। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ ଫୋନରେ ଚେଷ୍ଟା କରନ୍ତୁ।"
+ "ବର୍ତ୍ତମାନ ଏହାକୁ ଆପଣଙ୍କ %1$sରେ ଆକ୍ସେସ କରାଯାଇପାରିବ ନାହିଁ। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ Android TV ଡିଭାଇସରେ ଚେଷ୍ଟା କରନ୍ତୁ।"
+ "ବର୍ତ୍ତମାନ ଏହାକୁ ଆପଣଙ୍କ %1$sରେ ଆକ୍ସେସ କରାଯାଇପାରିବ ନାହିଁ। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ ଟାବଲେଟରେ ଚେଷ୍ଟା କରନ୍ତୁ।"
+ "ବର୍ତ୍ତମାନ ଏହାକୁ ଆପଣଙ୍କ %1$sରେ ଆକ୍ସେସ କରାଯାଇପାରିବ ନାହିଁ। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ ଫୋନରେ ଚେଷ୍ଟା କରନ୍ତୁ।""ଏହି ଆପ ଅତିରିକ୍ତ ସୁରକ୍ଷା ପାଇଁ ଅନୁରୋଧ କରୁଛି। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ Android TV ଡିଭାଇସରେ ଚେଷ୍ଟା କରନ୍ତୁ।""ଏହି ଆପ ଅତିରିକ୍ତ ସୁରକ୍ଷା ପାଇଁ ଅନୁରୋଧ କରୁଛି। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ ଟାବଲେଟରେ ଚେଷ୍ଟା କରନ୍ତୁ।""ଏହି ଆପ ଅତିରିକ୍ତ ସୁରକ୍ଷା ପାଇଁ ଅନୁରୋଧ କରୁଛି। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ ଫୋନରେ ଚେଷ୍ଟା କରନ୍ତୁ।"
- "ଏହାକୁ ଆପଣଙ୍କ %1$sରେ ଆକ୍ସେସ କରାଯାଇପାରିବ ନାହିଁ। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ Android TV ଡିଭାଇସରେ ଚେଷ୍ଟା କରନ୍ତୁ।"
- "ଏହାକୁ ଆପଣଙ୍କ %1$sରେ ଆକ୍ସେସ କରାଯାଇପାରିବ ନାହିଁ। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ ଟାବଲେଟରେ ଚେଷ୍ଟା କରନ୍ତୁ।"
- "ଏହାକୁ ଆପଣଙ୍କ %1$sରେ ଆକ୍ସେସ କରାଯାଇପାରିବ ନାହିଁ। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ ଫୋନରେ ଚେଷ୍ଟା କରନ୍ତୁ।"
- "ଏହି ଆପକୁ Androidର ପୁରୁଣା ସଂସ୍କରଣ ପାଇଁ ନିର୍ମାଣ କରାଯାଇଥିଲା ଏବଂ ଠିକ୍ ଭାବେ କାମ କରିନପାରେ। ଏଥିପାଇଁ ଅପଡେଟ ଅଛି କି ନାହିଁ ଯାଞ୍ଚ କରନ୍ତୁ କିମ୍ବା ଡେଭେଲପରଙ୍କ ସହିତ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।"
+ "ଏହି ଆପ୍କୁ Androidର ପୁରୁଣା ଭର୍ସନ୍ ପାଇଁ ନିର୍ମାଣ କରାଯାଇଥିଲା ଏବଂ ଠିକ୍ ଭାବେ କାମ କରିନପାରେ। ଏହାପାଇଁ ଅପଡେଟ୍ ଅଛି କି ନାହିଁ ଯାଞ୍ଚ କରନ୍ତୁ କିମ୍ବା ଡେଭେଲପର୍ଙ୍କ ସହିତ ସମ୍ପର୍କ କରନ୍ତୁ।""ଅପଡେଟ୍ ପାଇଁ ଯାଞ୍ଚ କରନ୍ତୁ""ଆପଣଙ୍କ ପାଖରେ ନୂଆ ମେସେଜ୍ ରହିଛି""ଦେଖିବା ପାଇଁ SMS ଆପ୍ ଖୋଲନ୍ତୁ"
@@ -2040,17 +2034,16 @@
"ଶର୍ଟକଟ୍ ରିଷ୍ଟୋର୍ କରିହେଲା ନାହିଁ, କାରଣ ଏହି ଆପ୍ର ସ୍ୱାକ୍ଷର ମେଳ ହେଉନାହିଁ""ଶର୍ଟକଟ୍ ରିଷ୍ଟୋର୍ କରିହେଲା ନାହିଁ""ଶର୍ଟକଟ୍ ଅକ୍ଷମ କରାଯାଇଛି"
- "ଅନଇନଷ୍ଟଲ କରନ୍ତୁ"
+ "ଅନଇନଷ୍ଟଲ୍ କରନ୍ତୁ""କୌଣସିମତେ ଖୋଲନ୍ତୁ""ହାନିକାରକ ଆପ୍ ଚିହ୍ନଟ ହୋଇଛି""ସମସ୍ତ ଡିଭାଇସ ଲଗକୁ ଆକ୍ସେସ କରିବା ପାଇଁ %sକୁ ଅନୁମତି ଦେବେ?""ଗୋଟିଏ-ଥର ଆକ୍ସେସ ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ""ଅନୁମତି ଦିଅନ୍ତୁ ନାହିଁ"
- "ଆପଣଙ୍କ ଡିଭାଇସରେ ଯାହା ହୁଏ ତାହା ଡିଭାଇସ ଲଗଗୁଡ଼ିକ ରେକର୍ଡ କରେ। ସମସ୍ୟାଗୁଡ଼ିକୁ ଖୋଜି ସମାଧାନ କରିବାକୁ ଆପ୍ସ ଏହି ଲଗଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ।\n\nକିଛି ଲଗରେ ସମ୍ବେଦନଶୀଳ ସୂଚନା ଥାଇପାରେ, ତେଣୁ ସମସ୍ତ ଡିଭାଇସ ଲଗକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ଆପଣ ବିଶ୍ୱାସ କରୁଥିବା ଆପ୍ସକୁ ହିଁ ଅନୁମତି ଦିଅନ୍ତୁ। \n\nଯଦି ଆପଣ ସମସ୍ତ ଡିଭାଇସ ଲଗକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ଏହି ଆପକୁ ଅନୁମତି ଦିଅନ୍ତି ନାହିଁ, ତେବେ ବି ଏହା ନିଜର ଡିଭାଇସ ଲଗଗୁଡ଼ିକୁ ଆକ୍ସେସ କରିପାରିବ। ଆପଣଙ୍କ ଡିଭାଇସର ନିର୍ମାତା ଏବେ ବି ଆପଣଙ୍କର ଡିଭାଇସରେ କିଛି ଲଗ କିମ୍ବା ସୂଚନାକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ସକ୍ଷମ ହୋଇପାରନ୍ତି।"
- "ଆପଣଙ୍କ ଡିଭାଇସରେ ଯାହା ହୁଏ ତାହା ଡିଭାଇସ ଲଗଗୁଡ଼ିକ ରେକର୍ଡ କରେ। ସମସ୍ୟାଗୁଡ଼ିକୁ ଖୋଜି ସମାଧାନ କରିବାକୁ ଆପ୍ସ ଏହି ଲଗଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ।\n\nକିଛି ଲଗରେ ସମ୍ବେଦନଶୀଳ ସୂଚନା ଥାଇପାରେ, ତେଣୁ ସମସ୍ତ ଡିଭାଇସ ଲଗକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ଆପଣ ବିଶ୍ୱାସ କରୁଥିବା ଆପ୍ସକୁ ହିଁ ଅନୁମତି ଦିଅନ୍ତୁ। \n\nଯଦି ଆପଣ ସମସ୍ତ ଡିଭାଇସ ଲଗକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ଏହି ଆପକୁ ଅନୁମତି ଦିଅନ୍ତି ନାହିଁ, ତେବେ ବି ଏହା ନିଜର ଡିଭାଇସ ଲଗଗୁଡ଼ିକୁ ଆକ୍ସେସ କରିପାରିବ। ଆପଣଙ୍କ ଡିଭାଇସର ନିର୍ମାତା ଏବେ ବି ଆପଣଙ୍କର ଡିଭାଇସରେ କିଛି ଲଗ କିମ୍ବା ସୂଚନାକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ସକ୍ଷମ ହୋଇପାରନ୍ତି।\n\ng.co/android/devicelogsରେ ଅଧିକ ଜାଣନ୍ତୁ।"
+ "ଆପଣଙ୍କ ଡିଭାଇସରେ ଯାହା ହୁଏ ତାହା ଡିଭାଇସ ଲଗଗୁଡ଼ିକ ରେକର୍ଡ କରେ। ସମସ୍ୟାଗୁଡ଼ିକୁ ଖୋଜି ସମାଧାନ କରିବାକୁ ଆପ୍ସ ଏହି ଲଗଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ।\n\nକିଛି ଲଗରେ ସମ୍ବେଦନଶୀଳ ସୂଚନା ଥାଇପାରେ, ତେଣୁ ସମସ୍ତ ଡିଭାଇସ ଲଗକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ଆପଣ ବିଶ୍ୱାସ କରୁଥିବା ଆପ୍ସକୁ ହିଁ ଅନୁମତି ଦିଅନ୍ତୁ। \n\nଯଦି ଆପଣ ସମସ୍ତ ଡିଭାଇସ ଲଗକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ଏହି ଆପକୁ ଅନୁମତି ଦିଅନ୍ତି ନାହିଁ, ତେବେ ବି ଏହା ନିଜର ଡିଭାଇସ ଲଗଗୁଡ଼ିକୁ ଆକ୍ସେସ କରିପାରିବ। ଆପଣଙ୍କ ଡିଭାଇସର ନିର୍ମାତା ଏବେ ବି ଆପଣଙ୍କର ଡିଭାଇସରେ କିଛି ଲଗ କିମ୍ବା ସୂଚନାକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ସକ୍ଷମ ହୋଇପାରନ୍ତି। ଅଧିକ ଜାଣନ୍ତୁ""ପୁଣି ଦେଖାନ୍ତୁ ନାହିଁ""%1$s, %2$s ସ୍ଲାଇସ୍କୁ ଦେଖାଇବା ପାଇଁ ଚାହେଁ"
- "ଏଡିଟ କରନ୍ତୁ"
+ "ଏଡିଟ୍ କରନ୍ତୁ""କଲ୍ ଓ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ଭାଇବ୍ରେଟ୍ ହେବ""କଲ୍ ଓ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ନିଃଶବ୍ଦ କରିଦିଆଯିବ""ସିଷ୍ଟମ୍ରେ ପରିବର୍ତ୍ତନ"
@@ -2060,13 +2053,14 @@
"’ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ’ ବଦଳିଯାଇଛି""କ’ଣ ଅବରୋଧ ହୋଇଛି ଯାଞ୍ଚ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ।""ବିଜ୍ଞପ୍ତି ସେଟିଂସକୁ ସମୀକ୍ଷା କରନ୍ତୁ"
- "Android 13ଠାରୁ, ଆପଣ ଇନଷ୍ଟଲ କରୁଥିବା ଆପ୍ସ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ପଠାଇବା ପାଇଁ ଆପଣଙ୍କ ଅନୁମତି ଆବଶ୍ୟକ କରେ। ପୂର୍ବରୁ ଥିବା ଆପ୍ସ ପାଇଁ ଏହି ଅନୁମତିକୁ ପରିବର୍ତ୍ତନ କରିବାକୁ ଟାପ କରନ୍ତୁ।"
+
+ "ମୋତେ ପରେ ରିମାଇଣ୍ଡ କର""ଖାରଜ କରନ୍ତୁ"
- "ସିଷ୍ଟମ"
+ "ସିଷ୍ଟମ୍""ସେଟିଂସ୍""କ୍ୟାମେରା"
- "ମାଇକ୍ରୋଫୋନ"
+ "ମାଇକ୍ରୋଫୋନ୍""ଆପଣଙ୍କ ସ୍କ୍ରୀନ୍ ଉପରେ ଥିବା ଅନ୍ୟ ଆପ୍ ଉପରେ ଦେଖାଦେବ""ମତାମତ ଦିଅନ୍ତୁ""ଏହି ବିଜ୍ଞପ୍ତିକୁ ଡିଫଲ୍ଟ ଭାବେ ପ୍ରମୋଟ୍ କରାଯାଇଛି। ମତାମତ ପ୍ରଦାନ କରିବାକୁ ଟାପ୍ କରନ୍ତୁ।"
@@ -2078,7 +2072,7 @@
"ଠିକ୍ ଅଛି""ବନ୍ଦ କରନ୍ତୁ""ଅଧିକ ଜାଣନ୍ତୁ"
- "Android 12ରେ Android ଆଡେପ୍ଟିଭ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଉନ୍ନତ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକରେ ପରିବର୍ତ୍ତନ କରାଯାଇଛି। ଏହି ଫିଚର ପ୍ରସ୍ତାବିତ କାର୍ଯ୍ୟ ଏବଂ ପ୍ରତ୍ୟୁତ୍ତରଗୁଡ଼ିକୁ ଦେଖାଏ ଏବଂ ଆପଣଙ୍କ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ବ୍ୟବସ୍ଥିତ କରେ।\n\nଉନ୍ନତ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ କଣ୍ଟାକ୍ଟ ନାମ ଏବଂ ମେସେଜଗୁଡ଼ିକ ପରି ବ୍ୟକ୍ତିଗତ ସୂଚନା ସମେତ ବିଜ୍ଞପ୍ତିର ବିଷୟବସ୍ତୁକୁ ଆକ୍ସେସ କରିପାରିବ। ଏହି ଫିଚର ଫୋନ କଲଗୁଡ଼ିକର ଉତ୍ତର ଦେବା ଏବଂ \'ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\'କୁ ନିୟନ୍ତ୍ରଣ କରିବା ପରି, ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ମଧ୍ୟ ଖାରଜ କରିପାରିବ କିମ୍ବା ସେଗୁଡ଼ିକର ଉତ୍ତର ଦେଇପାରିବ।"
+ "Android 12ରେ Android ଆଡେପ୍ଟିଭ୍ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଉନ୍ନତ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକରେ ପରିବର୍ତ୍ତନ କରାଯାଇଛି। ଏହି ଫିଚର୍ ପ୍ରସ୍ତାବିତ କାର୍ଯ୍ୟ ଏବଂ ପ୍ରତ୍ୟୁତ୍ତରଗୁଡ଼ିକୁ ଦେଖାଏ ଏବଂ ଆପଣଙ୍କ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ବ୍ୟବସ୍ଥିତ କରେ।\n\nଉନ୍ନତ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ଯୋଗାଯୋଗ ନାମ ଏବଂ ମେସେଜଗୁଡ଼ିକ ପରି ବ୍ୟକ୍ତିଗତ ସୂଚନା ସମେତ ବିଜ୍ଞପ୍ତିର ବିଷୟବସ୍ତୁକୁ ଆକ୍ସେସ୍ କରିପାରିବ। ଏହି ଫିଚର୍ ଫୋନ୍ କଲଗୁଡ଼ିକର ଉତ୍ତର ଦେବା ଏବଂ \'ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\'କୁ ନିୟନ୍ତ୍ରଣ କରିବା ପରି, ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ମଧ୍ୟ ଖାରଜ କରିପାରିବ କିମ୍ବା ସେଗୁଡ଼ିକର ଉତ୍ତର ଦେଇପାରିବ।""ନିୟମିତ ମୋଡ୍ ସୂଚନା ବିଜ୍ଞପ୍ତି""ସାଧାରଣ ଭାବରେ ଚାର୍ଜ୍ କରିବା ପୂର୍ବରୁ ବ୍ୟାଟେରୀ ସରିଯାଇପାରେ""ବ୍ୟାଟେରୀର ସମୟକୁ ବଢ଼ାଇବା ପାଇଁ ବ୍ୟଟେରୀ ସେଭର୍କୁ କାର୍ଯ୍ୟକାରୀ କରାଯାଇଛି"
@@ -2111,7 +2105,7 @@
"ଏହାକୁ ସେୟାର୍ କରିବା ପାଇଁ କୌଣସି ସୁପାରିଶ କରାଯାଇଥିବା ଲୋକ ନାହାଁନ୍ତି""ଆପ୍ସ ତାଲିକା""ଏହି ଆପ୍କୁ ରେକର୍ଡ କରିବାକୁ ଅନୁମତି ଦିଆଯାଇ ନାହିଁ କିନ୍ତୁ ଏହି USB ଡିଭାଇସ୍ ଜରିଆରେ ଅଡିଓ କ୍ୟାପ୍ଚର୍ କରିପାରିବ।"
- "ହୋମ"
+ "ମୂଳପୃଷ୍ଠା""ପଛକୁ ଫେରନ୍ତୁ""ବର୍ତ୍ତମାନର ଆପ୍ଗୁଡ଼ିକ""ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ଖୋଲନ୍ତୁ"
@@ -2139,7 +2133,7 @@
"ବ୍ୟକ୍ତିଗତ""ୱାର୍କ""ବ୍ୟକ୍ତିଗତ ଭ୍ୟୁ"
- "ୱାର୍କ ଭ୍ୟୁ"
+ "କାର୍ଯ୍ୟସ୍ଥଳୀ ସମ୍ବନ୍ଧିତ ଭ୍ୟୁ""ଆପଣଙ୍କ IT ଆଡମିନଙ୍କ ଦ୍ୱାରା ବ୍ଲକ୍ କରାଯାଇଛି""ଏହି ବିଷୟବସ୍ତୁ ୱାର୍କ ଆପଗୁଡ଼ିକରେ ସେୟାର୍ କରାଯାଇପାରିବ ନାହିଁ""ଏହି ବିଷୟବସ୍ତୁ ୱାର୍କ ଆପଗୁଡ଼ିକରେ ଖୋଲାଯାଇପାରିବ ନାହିଁ"
@@ -2176,7 +2170,7 @@
"PUK ଲେଖନ୍ତୁ""PUK ଲେଖନ୍ତୁ""SPN ଅନଲକ୍ PIN"
- "SP ଇକ୍ୟୁଭେଲେଣ୍ଟ ହୋମ PLMN ଅନଲକ PIN"
+ "SP ଇକ୍ୟୁଭେଲେଣ୍ଟ ହୋମ୍ PLMN ଅନଲକ୍ PIN""ICCID ଅନଲକ୍ PIN""IMPI ଅନଲକ୍ PIN""ନେଟୱାର୍କ ସବସେଟର ସେବା ପ୍ରଦାନକାରୀ ଅନଲକ୍ PIN"
@@ -2196,7 +2190,7 @@
"RUIM ସେବା ପ୍ରଦାନକାରୀ ଅନଲକ୍ କରିବାକୁ ଅନୁରୋଧ କରାଯାଉଛି…""RUIM କର୍ପୋରେଟ୍ ଅନଲକ୍ କରିବାକୁ ଅନୁରୋଧ କରାଯାଉଛି…""SPN ଅନଲକ୍ କରିବାକୁ ଅନୁରୋଧ କରାଯାଉଛି…"
- "SP ଇକ୍ୟୁଭେଲେଣ୍ଟ ହୋମ PLMN ଅନଲକ କରିବାକୁ ଅନୁରୋଧ କରାଯାଉଛି…"
+ "SP ଇକ୍ୟୁଭେଲେଣ୍ଟ ହୋମ୍ PLMN ଅନଲକ୍ କରିବାକୁ ଅନୁରୋଧ କରାଯାଉଛି…""ICCID ଅନଲକ୍ କରିବାକୁ ଅନୁରୋଧ କରାଯାଉଛି…""IMPI ଅନଲକ୍ କରିବାକୁ ଅନୁରୋଧ କରାଯାଉଛି…""ନେଟୱାର୍କ ସବସେଟର ସେବା ପ୍ରଦାନକାରୀ ଅନଲକ୍ କରିବାକୁ ଅନୁରୋଧ କରାଯାଉଛି…"
@@ -2230,7 +2224,7 @@
"PUK ଅନଲକ୍ କରିବା ବିଫଳ ହୋଇଛି।""PUK ଅନଲକ୍ କରିବା ବିଫଳ ହୋଇଛି।""SPN ଅନଲକ୍ କରିବା ଅନୁରୋଧ ବିଫଳ ହୋଇଛି।"
- "SP ଇକ୍ୟୁଭେଲେଣ୍ଟ ହୋମ PLMN ଅନଲକ କରିବା ଅନୁରୋଧ ବିଫଳ ହୋଇଛି।"
+ "SP ଇକ୍ୟୁଭେଲେଣ୍ଟ ହୋମ୍ PLMN ଅନଲକ୍ କରିବା ଅନୁରୋଧ ବିଫଳ ହୋଇଛି।""ICCID ଅନଲକ୍ କରିବା ଅନୁରୋଧ ବିଫଳ ହୋଇଛି।""IMPI ଅନଲକ୍ କରିବା ଅନୁରୋଧ ବିଫଳ ହୋଇଛି।""ନେଟୱାର୍କ ସବସେଟର ସେବା ପ୍ରଦାନକାରୀ ଅନଲକ୍ କରିବା ବିଫଳ ହୋଇଛି।"
@@ -2257,7 +2251,7 @@
"PUK ଅନଲକ୍ କରିବା ସଫଳ ହୋଇଛି।""PUK ଅନଲକ୍ କରିବା ସଫଳ ହୋଇଛି।""SPN ଅନଲକ୍ କରିବା ସଫଳ ହୋଇଛି।"
- "SP ଇକ୍ୟୁଭେଲେଣ୍ଟ ହୋମ PLMN ଅନଲକ କରିବା ସଫଳ ହୋଇଛି।"
+ "SP ଇକ୍ୟୁଭେଲେଣ୍ଟ ହୋମ୍ PLMN ଅନଲକ୍ କରିବା ସଫଳ ହୋଇଛି।""ICCID ଅନଲକ୍ କରିବା ସଫଳ ହୋଇଛି।""IMPI ଅନଲକ୍ କରିବା ସଫଳ ହୋଇଛି।""ନେଟୱାର୍କ ସବସେଟର ସେବା ପ୍ରଦାନକାରୀକୁ ଅନଲକ୍ କରିବା ସଫଳ ହୋଇଛି।"
@@ -2269,10 +2263,10 @@
"ଆପଣ ଏବେ ଆପଣଙ୍କ ସ୍କ୍ରିନର ଅଂଶକୁ ମ୍ୟାଗ୍ନିଫାଏ କରିପାରିବେ""ସେଟିଂସରେ ଚାଲୁ କରନ୍ତୁ""ଖାରଜ କରନ୍ତୁ"
- "ଡିଭାଇସର ମାଇକ୍ରୋଫୋନକୁ ଅନବ୍ଲକ କରନ୍ତୁ"
- "ଡିଭାଇସର କ୍ୟାମେରାକୁ ଅନବ୍ଲକ କରନ୍ତୁ"
+ "ଡିଭାଇସର ମାଇକ୍ରୋଫୋନକୁ ଅନବ୍ଲକ୍ କରନ୍ତୁ"
+ "ଡିଭାଇସର କ୍ୟାମେରାକୁ ଅନବ୍ଲକ୍ କରନ୍ତୁ""<b>%s</b> ଏବଂ ସମସ୍ତ ଆପ୍ ଓ ସେବା ପାଇଁ"
- "ଅନବ୍ଲକ କରନ୍ତୁ"
+ "ଅନବ୍ଲକ୍ କରନ୍ତୁ""ସେନ୍ସର୍ ଗୋପନୀୟତା""ଆପ୍ଲିକେସନ୍ ଆଇକନ୍""ଆପ୍ଲିକେସନ୍ ବ୍ରାଣ୍ଡିଂ ଛବି"
@@ -2288,6 +2282,5 @@
"ସକ୍ରିୟ ଆପଗୁଡ଼ିକୁ ଯାଞ୍ଚ କରନ୍ତୁ""ଆପଣଙ୍କ %1$sରୁ ଫୋନର କ୍ୟାମେରାକୁ ଆକ୍ସେସ କରାଯାଇପାରିବ ନାହିଁ""ଆପଣଙ୍କ %1$sରୁ ଟାବଲେଟର କ୍ୟାମେରାକୁ ଆକ୍ସେସ କରାଯାଇପାରିବ ନାହିଁ"
- "ଷ୍ଟ୍ରିମ କରିବା ସମୟରେ ଏହାକୁ ଆକ୍ସେସ କରାଯାଇପାରିବ ନାହିଁ। ଏହା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ ଫୋନରେ ଚେଷ୍ଟା କରନ୍ତୁ।"
- "ସିଷ୍ଟମ ଡିଫଲ୍ଟ"
+ "ସିଷ୍ଟମ ଭାଷା"
diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml
index daa38a95e731c8ed6be64bb276285620afee6336..e0159527116612bc1bbd0071a8adf4387ee5421b 100644
--- a/core/res/res/values-pa/strings.xml
+++ b/core/res/res/values-pa/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<ਬਿਨਾਂ ਸਿਰਲੇਖ>""(ਕੋਈ ਫ਼ੋਨ ਨੰਬਰ ਨਹੀਂ)"
@@ -28,7 +33,6 @@
"ਵੌਇਸਮੇਲ""MSISDN1""ਕਨੈਕਸ਼ਨ ਸਮੱਸਿਆ ਜਾਂ ਅਵੈਧ MMI ਕੋਡ।"
- "ਵਿਸ਼ੇਸ਼ਤਾ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ।""ਓਪਰੇਸ਼ਨ ਕੇਵਲ ਫਿਕਸਡ ਡਾਇਲਿੰਗ ਨੰਬਰਾਂ ਤੱਕ ਸੀਮਿਤ ਹੈ।""ਤੁਹਾਡੇ ਰੋਮਿੰਗ ਵਿੱਚ ਹੋਣ ਦੌਰਾਨ ਤੁਹਾਡੇ ਫ਼ੋਨ ਤੋਂ ਕਾਲ ਫਾਰਵਰਡਿੰਗ ਸੈਟਿੰਗਾਂ ਨੂੰ ਬਦਲਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ।""ਸੇਵਾ ਅਸਮਰੱਥ ਬਣਾਈ ਗਈ ਸੀ।"
@@ -43,8 +47,8 @@
"ਤੁਹਾਡੇ ਵੱਲੋਂ ਟਾਈਪ ਕੀਤੇ ਪਿੰਨ ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ।""ਕੋਈ ਪਿੰਨ ਟਾਈਪ ਕਰੋ ਜੋ 4 ਤੋਂ 8 ਨੰਬਰਾਂ ਦਾ ਹੋਵੇ।""ਇੱਕ PUK ਕੋਡ ਟਾਈਪ ਕਰੋ ਜੋ 8 ਜਾਂ ਵੱਧ ਸੰਖਿਆਵਾਂ ਦਾ ਹੋਵੇ।"
- "ਤੁਹਾਡਾ ਸਿਮ PUK-ਲਾਕ ਹੈ। ਇਸਨੂੰ ਅਣਲਾਕ ਕਰਨ ਲਈ PUK ਕੋਡ ਟਾਈਪ ਕਰੋ।"
- "ਸਿਮ ਨੂੰ ਅਣਬਲਾਕ ਕਰਨ ਲਈ PUK2 ਟਾਈਪ ਕਰੋ।"
+ "ਤੁਹਾਡਾ ਸਿਮ ਕਾਰਡ PUK-ਲੌਕਡ ਹੈ। ਇਸਨੂੰ ਅਣਲਾਕ ਕਰਨ ਲਈ PUK ਕੋਡ ਟਾਈਪ ਕਰੋ।"
+ "SIM ਕਾਰਡ ਅਨਬਲੌਕ ਕਰਨ ਲਈ PUK2 ਟਾਈਪ ਕਰੋ।""ਅਸਫਲ, SIM/RUIM ਲਾਕ ਨੂੰ ਚਾਲੂ ਕਰੋ।"ਇਸਤੋਂ ਪਹਿਲਾਂ ਕਿ SIM ਲਾਕ ਹੋਵੇ, ਤੁਹਾਡੇ ਕੋਲ %d ਕੋਸ਼ਿਸ਼ਾਂ ਬਾਕੀ ਹਨ।
@@ -301,12 +305,12 @@
"ਤੁਹਾਡੇ ਕੈਲੰਡਰ ਤੱਕ ਪਹੁੰਚ ਕਰਨ""SMS""SMS ਸੁਨੇਹੇ ਭੇਜੋ ਅਤੇ ਦੇਖੋ"
- "ਫ਼ਾਈਲਾਂ"
- "ਤੁਹਾਡੇ ਡੀਵਾਈਸ \'ਤੇ ਫ਼ਾਈਲਾਂ ਤੱਕ ਪਹੁੰਚ"
- "ਸੰਗੀਤ ਅਤੇ ਆਡੀਓ"
- "ਆਪਣੇ ਡੀਵਾਈਸ \'ਤੇ ਸੰਗੀਤ ਅਤੇ ਆਡੀਓ ਤੱਕ ਪਹੁੰਚ ਕਰੋ"
- "ਫ਼ੋਟੋਆਂ ਅਤੇ ਵੀਡੀਓ"
- "ਆਪਣੇ ਡੀਵਾਈਸ \'ਤੇ ਫ਼ੋਟੋਆਂ ਅਤੇ ਵੀਡੀਓ ਤੱਕ ਪਹੁੰਚ ਕਰੋ"
+ "ਫ਼ਾਈਲਾਂ ਅਤੇ ਦਸਤਾਵੇਜ਼"
+ "ਆਪਣੇ ਡੀਵਾਈਸ \'ਤੇ ਫ਼ਾਈਲਾਂ ਅਤੇ ਦਸਤਾਵੇਜ਼ਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰੋ"
+ "ਸੰਗੀਤ ਅਤੇ ਹੋਰ ਆਡੀਓ"
+ "ਆਪਣੇ ਡੀਵਾਈਸ \'ਤੇ ਆਡੀਓ ਫ਼ਾਈਲਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰੋ"
+ "ਫ਼ੋਟੋਆਂ ਅਤੇ ਵੀਡੀਓ"
+ "ਆਪਣੇ ਡੀਵਾਈਸ \'ਤੇ ਚਿੱਤਰਾਂ ਅਤੇ ਵੀਡੀਓ ਫ਼ਾਈਲਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰੋ""ਮਾਈਕ੍ਰੋਫ਼ੋਨ"" ਆਡੀਓ ਰਿਕਾਰਡ ਕਰਨ""ਸਰੀਰਕ ਸਰਗਰਮੀ"
@@ -323,7 +327,7 @@
"ਆਪਣੇ ਸਰੀਰ ਦੇ ਅਹਿਮ ਚਿੰਨ੍ਹਾਂ ਬਾਰੇ ਸੰਵੇਦਕ ਡਾਟਾ ਤੱਕ ਪਹੁੰਚ ਕਰਨ""ਸੂਚਨਾਵਾਂ""ਸੂਚਨਾਵਾਂ ਦਿਖਾਓ"
- "ਵਿੰਡੋ ਸਮੱਗਰੀ ਮੁੜ-ਪ੍ਰਾਪਤ ਕਰਨਾ"
+ "ਵਿੰਡੋ ਸਮੱਗਰੀ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨਾ""ਉਸ ਵਿੰਡੋ ਸਮੱਗਰੀ ਦੀ ਜਾਂਚ ਕਰੋ, ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਅੰਤਰਕਿਰਿਆ ਕਰ ਰਹੇ ਹੋ""\'ਸਪੱਰਸ਼ ਰਾਹੀਂ ਪੜਚੋਲ ਕਰੋ\' ਚਾਲੂ ਕਰਨਾ""ਟੈਪ ਕੀਤੀਆਂ ਆਈਟਮਾਂ ਨੂੰ ਉੱਚੀ ਆਵਾਜ਼ ਵਿੱਚ ਬੋਲਿਆ ਜਾਵੇਗਾ ਅਤੇ ਸਕ੍ਰੀਨ ਦੀ ਸੰਕੇਤਾਂ ਦੀ ਵਰਤੋਂ ਨਾਲ ਪੜਚੋਲ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।"
@@ -346,7 +350,7 @@
"ਕਿਸੇ ਲਾਕ ਕੀਤੇ ਡੀਵਾਈਸ \'ਤੇ ਪੂਰੀ ਸਕ੍ਰੀਨ ਵਾਲੀਆਂ ਸਰਗਰਮੀਆਂ ਵਜੋਂ ਸੂਚਨਾਵਾਂ ਦਿਖਾਓ""ਐਪ ਨੂੰ ਕਿਸੇ ਲਾਕ ਕੀਤੇ ਡੀਵਾਈਸ \'ਤੇ ਪੂਰੀ ਸਕ੍ਰੀਨ ਵਾਲੀਆਂ ਸਰਗਰਮੀਆਂ ਵਜੋਂ ਸੂਚਨਾਵਾਂ ਦਿਖਾਉਣ ਦਿੰਦਾ ਹੈ""ਸ਼ਾਰਟਕੱਟ ਸਥਾਪਤ ਕਰੋ"
- "ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਵਰਤੋਂਕਾਰ ਦੇ ਦਖਲ ਤੋਂ ਬਿਨਾਂ ਹੋਮਸਕ੍ਰੀਨ ਸ਼ਾਰਟਕੱਟ ਸ਼ਾਮਲ ਕਰਨ ਦਿੰਦੀਆਂ ਹਨ।"
+ "ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਵਰਤੋਂਕਾਰ ਦੇ ਦਖ਼ਲ ਤੋਂ ਬਿਨਾਂ ਹੋਮਸਕ੍ਰੀਨ ਸ਼ਾਰਟਕੱਟ ਸ਼ਾਮਲ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।""ਸ਼ਾਰਟਕੱਟ ਅਣਸਥਾਪਤ ਕਰੋ""ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਵਰਤੋਂਕਾਰ ਦਖ਼ਲ ਤੋਂ ਬਿਨਾਂ ਹੋਮਸਕ੍ਰੀਨ ਸ਼ਾਰਟਕੱਟ ਹਟਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।""ਆਊਟਗੋਇੰਗ ਕਾਲਾਂ ਰੀਰੂਟ ਕਰੋ"
@@ -582,14 +586,13 @@
"ਸਕ੍ਰੀਨ ਲਾਕ ਦੀ ਵਰਤੋਂ ਕਰੋ""ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣਾ ਸਕ੍ਰੀਨ ਲਾਕ ਦਾਖਲ ਕਰੋ""ਸੈਂਸਰ ਨੂੰ ਜ਼ੋਰ ਨਾਲ ਦਬਾਓ"
- "ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਪਛਾਣ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
+ "ਫਿੰਗਰਪ੍ਰਿੰਟ \'ਤੇ ਪ੍ਰਕਿਰਿਆ ਨਹੀਂ ਹੋ ਸਕੀ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।""ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੈਂਸਰ ਨੂੰ ਸਾਫ਼ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ""ਸੈਂਸਰ ਨੂੰ ਸਾਫ਼ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ""ਸੈਂਸਰ ਨੂੰ ਜ਼ੋਰ ਨਾਲ ਦਬਾਓ""ਉਂਗਲ ਕਾਫ਼ੀ ਹੌਲੀ ਮੂਵ ਹੋਈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।""ਕੋਈ ਹੋਰ ਫਿੰਗਰਪ੍ਰਿੰਟ ਵਰਤ ਕੇ ਦੇਖੋ""ਬਹੁਤ ਜ਼ਿਆਦਾ ਚਮਕ"
- "ਪਾਵਰ ਬਟਨ ਦਬਾਏ ਜਾਣ ਦਾ ਪਤਾ ਲੱਗਿਆ ਹੈ""ਵਿਵਸਥਿਤ ਕਰਕੇ ਦੇਖੋ""ਹਰ ਵਾਰ ਆਪਣੀ ਉਂਗਲ ਨੂੰ ਥੋੜ੍ਹਾ ਹਿਲਾਓ"
@@ -601,17 +604,16 @@
"ਚਿਹਰਾ ਪੁਸ਼ਟੀਕਰਨ, ਕਿਰਪਾ ਕਰਕੇ \'ਪੁਸ਼ਟੀ ਕਰੋ\' ਦਬਾਓ""ਫਿੰਗਰਪ੍ਰਿੰਟ ਹਾਰਡਵੇਅਰ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।""ਫਿੰਗਰਪ੍ਰਿੰਟ ਦਾ ਸੈੱਟਅੱਪ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"
- "ਫਿੰਗਰਪ੍ਰਿੰਟ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਸਮਾਂ ਸਮਾਪਤ ਹੋਇਆ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
+ "ਫਿੰਗਰਪ੍ਰਿੰਟ ਦਾ ਸਮਾਂ ਸਮਾਪਤ ਹੋ ਗਿਆ ਹੈ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।""ਫਿੰਗਰਪ੍ਰਿੰਟ ਓਪਰੇਸ਼ਨ ਰੱਦ ਕੀਤਾ ਗਿਆ।""ਫਿੰਗਰਪ੍ਰਿੰਟ ਓਪਰੇਸ਼ਨ ਵਰਤੋਂਕਾਰ ਵੱਲੋਂ ਰੱਦ ਕੀਤਾ ਗਿਆ।"
- "ਬਹੁਤ ਸਾਰੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ। ਇਸਦੀ ਬਜਾਏ ਸਕ੍ਰੀਨ ਲਾਕ ਵਰਤੋ।"
- "ਬਹੁਤ ਸਾਰੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ। ਇਸਦੀ ਬਜਾਏ ਸਕ੍ਰੀਨ ਲਾਕ ਵਰਤੋ।"
- "ਫਿੰਗਰਪ੍ਰਿੰਟ \'ਤੇ ਪ੍ਰਕਿਰਿਆ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
+ "ਬਹੁਤ ਸਾਰੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ. ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ."
+ "ਹੱਦੋਂ ਵੱਧ ਕੋਸ਼ਿਸ਼ਾਂ। ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੈਂਸਰ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ।"
+ "ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ.""ਕੋਈ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦਰਜ ਨਹੀਂ ਕੀਤੇ ਗਏ।""ਇਸ ਡੀਵਾਈਸ ਵਿੱਚ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੈਂਸਰ ਨਹੀਂ ਹੈ।""ਸੈਂਸਰ ਅਸਥਾਈ ਤੌਰ \'ਤੇ ਬੰਦ ਕੀਤਾ ਗਿਆ।""ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੈਂਸਰ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਮੁਰੰਮਤ ਪ੍ਰਦਾਨਕ \'ਤੇ ਜਾਓ"
- "\'ਪਾਵਰ\' ਬਟਨ ਦਬਾਇਆ ਗਿਆ""ਉਂਗਲ %d""ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਵਰਤੋਂ ਕਰੋ""ਫਿੰਗਰਪ੍ਰਿੰਟ ਜਾਂ ਸਕ੍ਰੀਨ ਲਾਕ ਦੀ ਵਰਤੋਂ ਕਰੋ"
@@ -632,33 +634,26 @@
"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ""ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੈਂਸਰ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ""ਮੁਰੰਮਤ ਪ੍ਰਦਾਨਕ \'ਤੇ ਜਾਓ।"
- "ਤੁਹਾਡੇ ਚਿਹਰੇ ਦਾ ਮਾਡਲ ਨਹੀਂ ਬਣਿਆ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
+ "ਸਟੀਕ ਚਿਹਰਾ ਡਾਟਾ ਕੈਪਚਰ ਨਹੀਂ ਹੋਇਆ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।""ਬਹੁਤ ਜ਼ਿਆਦਾ ਚਮਕ। ਹਲਕੀ ਚਮਕ ਵਰਤ ਕੇ ਦੇਖੋ।"
- "ਲੋੜੀਂਦੀ ਰੋਸ਼ਨੀ ਨਹੀਂ ਹੈ"
- "ਫ਼ੋਨ ਨੂੰ ਦੂਰ ਲਿਜਾਓ"
- "ਫ਼ੋਨ ਨੇੜੇ ਲਿਜਾਓ"
- "ਫ਼ੋਨ ਨੂੰ ਥੋੜ੍ਹਾ ਉੱਤੇ ਲਿਜਾਓ"
- "ਫ਼ੋਨ ਨੂੰ ਥੋੜ੍ਹਾ ਹੇਠਾਂ ਲਿਜਾਓ"
- "ਫ਼ੋਨ ਨੂੰ ਆਪਣੇ ਖੱਬੇ ਪਾਸੇ ਲਿਜਾਓ"
- "ਫ਼ੋਨ ਨੂੰ ਆਪਣੇ ਸੱਜੇ ਪਾਸੇ ਲਿਜਾਓ"
+ "ਬਹੁਤ ਗੂੜ੍ਹਾ। ਤੇਜ਼ ਰੋਸ਼ਨੀ ਕਰਕੇ ਦੇਖੋ।"
+ "ਫ਼ੋਨ ਨੂੰ ਦੂਰ ਲਿਜਾਓ।"
+ "ਫ਼ੋਨ ਨੇੜੇ ਲਿਜਾਓ।"
+ "ਫ਼ੋਨ ਨੂੰ ਥੋੜ੍ਹਾ ਉੱਤੇ ਕਰੋ।"
+ "ਫ਼ੋਨ ਨੂੰ ਥੋੜ੍ਹਾ ਹੇਠਾਂ ਵੱਲ ਕਰੋ।"
+ "ਫ਼ੋਨ ਨੂੰ ਖੱਬੇ ਪਾਸੇ ਲਿਜਾਓ।"
+ "ਫ਼ੋਨ ਨੂੰ ਸੱਜੇ ਪਾਸੇ ਲਿਜਾਓ।""ਕਿਰਪਾ ਕਰਕੇ ਸਿੱਧਾ ਆਪਣੇ ਡੀਵਾਈਸ ਵੱਲ ਦੇਖੋ।"
- "ਤੁਹਾਡਾ ਚਿਹਰਾ ਨਹੀਂ ਦਿਸ ਰਿਹਾ। ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਅੱਖਾਂ ਦੀ ਸੀਧ ਵਿੱਚ ਰੱਖੋ।"
+ "ਆਪਣਾ ਚਿਹਰਾ ਫ਼ੋਨ ਦੇ ਬਿਲਕੁਲ ਸਾਹਮਣੇ ਰੱਖੋ।""ਬਹੁਤ ਜ਼ਿਆਦਾ ਹਿਲਜੁਲ। ਫ਼ੋਨ ਨੂੰ ਸਥਿਰ ਰੱਖੋ।""ਕਿਰਪਾ ਕਰਕੇ ਆਪਣਾ ਚਿਹਰਾ ਦੁਬਾਰਾ ਦਰਜ ਕਰੋ।"
- "ਚਿਹਰੇ ਦੀ ਪਛਾਣ ਨਹੀਂ ਹੋਈ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
- "ਆਪਣੇ ਸਿਰ ਨੂੰ ਥੋੜ੍ਹਾ ਹਿਲਾਓ"
- "ਸਿੱਧਾ ਆਪਣੇ ਫ਼ੋਨ ਵੱਲ ਦੇਖੋ"
- "ਸਿੱਧਾ ਆਪਣੇ ਫ਼ੋਨ ਵੱਲ ਦੇਖੋ"
- "ਸਿੱਧਾ ਆਪਣੇ ਫ਼ੋਨ ਵੱਲ ਦੇਖੋ"
+ "ਹੁਣ ਚਿਹਰਾ ਪਛਾਣਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
+ "ਬਹੁਤ ਮਿਲਦਾ-ਜੁਲਦਾ ਹੈ, ਕਿਰਪਾ ਕਰਕੇ ਆਪਣਾ ਅੰਦਾਜ਼ ਬਦਲੋ।"
+ "ਆਪਣਾ ਸਿਰ ਥੋੜਾ ਜਿਹਾ ਝੁਕਾਓ।"
+ "ਆਪਣੇ ਸਿਰ ਨੂੰ ਥੋੜ੍ਹਾ ਜਿਹਾ ਝੁਕਾਓ।"
+ "ਆਪਣਾ ਸਿਰ ਥੋੜਾ ਜਿਹਾ ਝੁਕਾਓ।""ਤੁਹਾਡਾ ਚਿਹਰਾ ਲੁਕਾਉਣ ਵਾਲੀ ਕੋਈ ਵੀ ਚੀਜ਼ ਹਟਾਓ।""ਕਾਲੀ ਪੱਟੀ ਸਮੇਤ, ਆਪਣੀ ਸਕ੍ਰੀਨ ਦੇ ਸਿਖਰ ਨੂੰ ਸਾਫ਼ ਕਰੋ"
-
-
-
-
- "ਤੁਹਾਡੇ ਚਿਹਰੇ ਦਾ ਮਾਡਲ ਨਹੀਂ ਬਣਿਆ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
- "ਧੁੱਪ ਦੀਆਂ ਐਨਕਾਂ ਦਾ ਪਤਾ ਲੱਗਾ। ਤੁਹਾਡਾ ਪੂਰਾ ਚਿਹਰਾ ਦਿਸਣਾ ਲਾਜ਼ਮੀ ਹੈ।"
- "ਚਿਹਰਾ ਢੱਕਿਆ ਹੋਣ ਦਾ ਪਤਾ ਲੱਗਾ। ਤੁਹਾਡਾ ਪੂਰਾ ਚਿਹਰਾ ਦਿਸਣਾ ਲਾਜ਼ਮੀ ਹੈ।""ਚਿਹਰੇ ਦੀ ਪੁਸ਼ਟੀ ਨਹੀਂ ਹੋ ਸਕੀ। ਹਾਰਡਵੇਅਰ ਉਪਲਬਧ ਨਹੀਂ।"
@@ -924,14 +919,14 @@
"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ""ਸਾਰੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਡਾਟੇ ਲਈ ਅਣਲਾਕ ਕਰੋ""ਫ਼ੇਸ ਅਣਲਾਕ ਦੀਆਂ ਕੋਸ਼ਿਸ਼ਾਂ ਸੀਮਾ ਤੋਂ ਪਾਰ ਹੋ ਗਈਆਂ"
- "ਕੋਈ ਸਿਮ ਨਹੀਂ ਹੈ"
- "ਟੈਬਲੈੱਟ ਵਿੱਚ ਕੋਈ ਸਿਮ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।"
- "ਤੁਹਾਡੇ Android TV ਡੀਵਾਈਸ ਵਿੱਚ ਕੋਈ ਸਿਮ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।"
- "ਫ਼ੋਨ ਵਿੱਚ ਕੋਈ ਸਿਮ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।"
- "ਸਿਮ ਸ਼ਾਮਲ ਕਰੋ।"
- "ਸਿਮ ਮੌਜੂਦ ਨਹੀਂ ਹੈ ਜਾਂ ਪੜ੍ਹਨਯੋਗ ਨਹੀਂ ਹੈ। ਸਿਮ ਸ਼ਾਮਲ ਕਰੋ।"
- "ਬੇਕਾਰ ਸਿਮ।"
- "ਤੁਹਾਡੇ ਸਿਮ ਨੂੰ ਪੱਕੇ ਤੌਰ \'ਤੇ ਅਕਿਰਿਆਸ਼ੀਲ ਕੀਤਾ ਗਿਆ ਹੈ।\n ਦੂਜੇ ਸਿਮ ਲਈ ਆਪਣੇ ਵਾਇਰਲੈੱਸ ਸੇਵਾ ਪ੍ਰਦਾਨਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"
+ "ਕੋਈ ਸਿਮ ਕਾਰਡ ਨਹੀਂ"
+ "ਟੈਬਲੈੱਟ ਵਿੱਚ ਕੋਈ ਸਿਮ ਕਾਰਡ ਨਹੀਂ ਹੈ।"
+ "ਤੁਹਾਡੇ Android TV ਡੀਵਾਈਸ ਵਿੱਚ ਕੋਈ ਸਿਮ ਕਾਰਡ ਮੌਜੂਦ ਨਹੀਂ।"
+ "ਫ਼ੋਨ ਵਿੱਚ ਕੋਈ ਸਿਮ ਕਾਰਡ ਮੌਜੂਦ ਨਹੀਂ।"
+ "ਇੱਕ SIM ਕਾਰਡ ਪਾਓ।"
+ "SIM ਕਾਰਡ ਲੁਪਤ ਹੈ ਜਾਂ ਪੜ੍ਹਨਯੋਗ ਨਹੀਂ ਹੈ। ਇੱਕ SIM ਕਾਰਡ ਪਾਓ।"
+ "ਨਾਵਰਤਣਯੋਗ SIM ਕਾਰਡ।"
+ "ਤੁਹਾਡਾ ਸਿਮ ਕਾਰਡ ਸਥਾਈ ਤੌਰ \'ਤੇ ਅਯੋਗ ਬਣਾ ਦਿੱਤਾ ਗਿਆ ਹੈ।\n ਇੱਕ ਹੋਰ ਸਿਮ ਕਾਰਡ ਲਈ ਆਪਣੇ ਵਾਇਰਲੈੱਸ ਸੇਵਾ ਪ੍ਰਦਾਨਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।""ਪਿਛਲਾ ਟਰੈਕ""ਅਗਲਾ ਟਰੈਕ""ਰੋਕੋ"
@@ -941,10 +936,10 @@
"ਤੇਜ਼ੀ ਨਾਲ ਅੱਗੇ ਭੇਜੋ""ਸਿਰਫ਼ ਐਮਰਜੈਂਸੀ ਕਾਲਾਂ""ਨੈੱਟਵਰਕ ਲਾਕ ਕੀਤਾ"
- "ਸਿਮ PUK-ਲਾਕ ਹੈ।"
+ "SIM ਕਾਰਡ PUK-ਲੌਕਡ ਹੈ।""ਵਰਤੋਂਕਾਰ ਗਾਈਡ ਦੇਖੋ ਜਾਂ ਗਾਹਕ ਸੇਵਾ ਨੂੰ ਫ਼ੋਨ ਕਰੋ।"
- "ਸਿਮ ਲਾਕ ਹੈ।"
- "ਸਿਮ ਨੂੰ ਅਣਲਾਕ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"
+ "SIM ਕਾਰਡ ਲਾਕ ਕੀਤਾ ਹੋਇਆ ਹੈ।"
+ "SIM ਕਾਰਡ ਅਣਲਾਕ ਕਰ ਰਿਹਾ ਹੈ…""ਤੁਸੀਂ %1$d ਵਾਰ ਆਪਣਾ ਅਣਲਾਕ ਪੈਟਰਨ ਗਲਤ ਢੰਗ ਨਾਲ ਉਲੀਕਿਆ ਹੈ। \n\n%2$d ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।""ਤੁਸੀਂ %1$d ਵਾਰ ਆਪਣਾ ਪਾਸਵਰਡ ਗਲਤ ਢੰਗ ਨਾਲ ਟਾਈਪ ਕੀਤਾ ਹੈ।\n\n%2$d ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।""ਤੁਸੀਂ ਆਪਣਾ ਪਿੰਨ %1$d ਵਾਰ ਗਲਤ ਢੰਗ ਨਾਲ ਟਾਈਪ ਕੀਤਾ ਹੈ। \n\n%2$d ਸਕਿੰਟਾਂ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
@@ -1246,9 +1241,10 @@
"%1$s ਤਿਆਰ ਕਰ ਰਿਹਾ ਹੈ।""ਐਪਸ ਚਾਲੂ ਕਰ ਰਿਹਾ ਹੈ।""ਬੂਟ ਪੂਰਾ ਕਰ ਰਿਹਾ ਹੈ।"
+ "ਕੀ ਸੈੱਟਅੱਪ ਜਾਰੀ ਰੱਖਣਾ ਹੈ?""ਤੁਸੀਂ ਪਾਵਰ ਬਟਨ ਨੂੰ ਦਬਾਇਆ ਹੈ — ਇਹ ਆਮ ਤੌਰ \'ਤੇ ਸਕ੍ਰੀਨ ਨੂੰ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ।\n\nਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦਾ ਸੈੱਟਅੱਪ ਕਰਦੇ ਸਮੇਂ ਹਲਕਾ ਜਿਹਾ ਟੈਪ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
- "ਸੈੱਟਅੱਪ ਸਮਾਪਤ ਕਰਨ ਲਈ, ਸਕ੍ਰੀਨ ਨੂੰ ਬੰਦ ਕਰੋ"
- "ਬੰਦ ਕਰੋ"
+ "ਸਕ੍ਰੀਨ ਬੰਦ ਕਰੋ"
+ "ਸੈੱਟਅੱਪ ਜਾਰੀ ਰੱਖੋ""ਕੀ ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨਾ ਜਾਰੀ ਰੱਖਣਾ ਹੈ?""ਤੁਸੀਂ ਪਾਵਰ ਬਟਨ ਨੂੰ ਦਬਾਇਆ ਹੈ — ਇਹ ਆਮ ਤੌਰ \'ਤੇ ਸਕ੍ਰੀਨ ਨੂੰ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ।\n\nਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਹਲਕਾ ਜਿਹਾ ਟੈਪ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।""ਸਕ੍ਰੀਨ ਬੰਦ ਕਰੋ"
@@ -1271,7 +1267,7 @@
"ਰਿੰਗਰ ਵੌਲਿਊਮ""ਮੀਡੀਆ ਦੀ ਅਵਾਜ਼""Bluetooth ਰਾਹੀਂ ਪਲੇ ਕਰ ਰਿਹਾ ਹੈ"
- "ਸ਼ਾਂਤ ਰਿੰਗਟੋਨ ਸੈੱਟ ਕੀਤੀ"
+ "ਖਾਮੋਸ਼ ਰਿੰਗਟੋਨ ਸੈੱਟ ਕੀਤੀ""ਇਨ-ਕਾਲ ਅਵਾਜ਼""ਬਲੂਟੁੱਥ ਇਨ-ਕਾਲ ਅਵਾਜ਼""ਅਲਾਰਮ ਦੀ ਅਵਾਜ਼"
@@ -1283,7 +1279,7 @@
"ਮੀਡੀਆ ਦੀ ਅਵਾਜ਼""ਸੂਚਨਾ ਵੌਲਿਊਮ""ਪੂਰਵ-ਨਿਰਧਾਰਤ ਰਿੰਗਟੋਨ"
- "ਪੂਰਵ-ਨਿਰਧਾਰਿਤ (%1$s)"
+ "ਪੂਰਵ-ਨਿਰਧਾਰਤ (%1$s)""ਕੋਈ ਨਹੀਂ""ਰਿੰਗਟੋਨਾਂ""ਅਲਾਰਮ ਧੁਨੀਆਂ"
@@ -1327,10 +1323,10 @@
"ਤੁਸੀਂ ਇਸਨੂੰ ਬਾਅਦ ਵਿੱਚ ਸੈਟਿੰਗਾਂ > ਐਪਾਂ ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹੋ""ਹਮੇਸ਼ਾਂ ਆਗਿਆ ਦਿਓ""ਕਦੇ ਵੀ ਆਗਿਆ ਨਾ ਦਿਓ"
- "ਸਿਮ ਨੂੰ ਹਟਾਇਆ ਗਿਆ"
- "ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਕਿਸੇ ਵੈਧ ਸਿਮ ਨਾਲ ਮੁੜ-ਸ਼ੁਰੂ ਨਹੀਂ ਕਰਦੇ, ਉਦੋਂ ਤੱਕ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਉਪਲਬਧ ਨਹੀਂ ਹੋਵੇਗਾ।"
+ "SIM ਕਾਰਡ ਹਟਾਇਆ ਗਿਆ"
+ "ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਅਣਉਪਲਬਧ ਹੋਵੇਗਾ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਇੱਕ ਵੈਧ ਸਿਮ ਕਾਰਡ ਪਾ ਕੇ ਮੁੜ-ਚਾਲੂ ਨਹੀਂ ਕਰਦੇ।""ਹੋ ਗਿਆ"
- "ਸਿਮ ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"
+ "SIM ਕਾਰਡ ਜੋੜਿਆ ਗਿਆ""ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਤੱਕ ਪਹੁੰਚ ਲਈ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਮੁੜ-ਚਾਲੂ ਕਰੋ।""ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ""ਮੋਬਾਈਲ ਸੇਵਾ ਕਿਰਿਆਸ਼ੀਲ ਕਰੋ"
@@ -1384,7 +1380,7 @@
"ਇਨਪੁਟ ਵਿਧੀ ਚੁਣੋ""ਭੌਤਿਕ ਕੀ-ਬੋਰਡ ਸਰਗਰਮ ਹੋਣ ਦੌਰਾਨ ਇਸ ਨੂੰ ਸਕ੍ਰੀਨ \'ਤੇ ਬਣਾਈ ਰੱਖੋ""ਆਭਾਸੀ ਕੀ-ਬੋਰਡ ਦਿਖਾਓ"
- "ਭੌਤਿਕ ਕੀ-ਬੋਰਡ ਦਾ ਸੰਰੂਪਣ ਕਰੋ"
+ "ਭੌਤਿਕ ਕੀ-ਬੋਰਡ ਦੀ ਰੂਪ-ਰੇਖਾ ਬਦਲੋ""ਭਾਸ਼ਾ ਅਤੇ ਖਾਕਾ ਚੁਣਨ ਲਈ ਟੈਪ ਕਰੋ"" ABCDEFGHIJKLMNOPQRSTUVWXYZ"" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
@@ -1401,16 +1397,16 @@
"ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ""ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਚੁਣੋ""ਤੁਹਾਨੂੰ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਫਾਰਮੈਟ ਕਰਨ ਦੀ ਲੋੜ ਪੈ ਸਕਦੀ ਹੈ। ਕੱਢਣ ਲਈ ਟੈਪ ਕਰੋ।"
- "ਫ਼ੋਟੋਆਂ, ਵੀਡੀਓ, ਸੰਗੀਤ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ"
+ "ਫ਼ੋਟੋਆਂ ਅਤੇ ਮੀਡੀਆ ਨੂੰ ਟ੍ਰਾਂਸਫ਼ਰ ਕਰਨ ਲਈ""ਮੀਡੀਆ ਫ਼ਾਈਲਾਂ ਨੂੰ ਬ੍ਰਾਊਜ਼ ਕਰੋ""%s ਵਿੱਚ ਸਮੱਸਿਆ ਆਈ""%s ਕੰਮ ਨਹੀਂ ਕਰ ਰਿਹਾ ਹੈ""ਠੀਕ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ""%s ਖਰਾਬ ਹੈ। ਠੀਕ ਕਰਨ ਲਈ ਚੁਣੋ।""ਤੁਹਾਨੂੰ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਫਾਰਮੈਟ ਕਰਨ ਦੀ ਲੋੜ ਪੈ ਸਕਦੀ ਹੈ। ਕੱਢਣ ਲਈ ਟੈਪ ਕਰੋ।"
- "%s ਦੀ ਪਛਾਣ ਕੀਤੀ ਗਈ"
+ "ਅਸਮਰਥਿਤ %s""%s ਕੰਮ ਨਹੀਂ ਕਰ ਰਿਹਾ ਹੈ"
- "ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"
+ "ਇਹ ਡੀਵਾਈਸ ਇਸ %s ਨੂੰ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਕਿਸੇ ਸਮਰਥਿਤ ਫਾਰਮੈਟ ਵਿੱਚ ਸਥਾਪਤ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।""ਕਿਸੇ ਸਮਰਥਿਤ ਫਾਰਮੈਟ ਵਿੱਚ %s ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਚੁਣੋ।""ਤੁਹਾਨੂੰ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਫਾਰਮੈਟ ਕਰਨ ਦੀ ਲੋੜ ਪੈ ਸਕਦੀ ਹੈ""%s ਨੂੰ ਅਚਨਚੇਤ ਹਟਾਇਆ ਗਿਆ"
@@ -1609,7 +1605,7 @@
"TV""ਫ਼ੋਨ ਕਰੋ""ਡੌਕ ਸਪੀਕਰਸ"
- "ਬਾਹਰੀ ਡੀਵਾਈਸ"
+ "HDMI""ਹੈੱਡਫ਼ੋਨ""USB""ਸਿਸਟਮ"
@@ -1642,7 +1638,7 @@
"ਸਿਮ ਹੁਣ ਬੰਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਾਰੀ ਰੱਖਣ ਲਈ PUK ਕੋਡ ਦਾਖਲ ਕਰੋ। ਵੇਰਵਿਆਂ ਲਈ ਕੈਰੀਅਰ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।""ਇੱਛਤ ਪਿੰਨ ਕੋਡ ਦਾਖਲ ਕਰੋ""ਇੱਛਤ ਪਿੰਨ ਕੋਡ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ"
- "ਸਿਮ ਨੂੰ ਅਣਲਾਕ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"
+ "SIM ਕਾਰਡ ਅਣਲਾਕ ਕਰ ਰਿਹਾ ਹੈ…""ਗਲਤ ਪਿੰਨ ਕੋਡ।""ਕੋਈ ਪਿੰਨ ਟਾਈਪ ਕਰੋ ਜੋ 4 ਤੋਂ 8 ਨੰਬਰਾਂ ਦਾ ਹੋਵੇ।""PUK ਕੋਡ 8 ਸੰਖਿਆਵਾਂ ਦਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।"
@@ -1848,7 +1844,7 @@
"ਤੀਸਰੀ ਕਾਰਜ-ਸਥਾਨ %1$s""ਅਨਪਿੰਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪਿੰਨ ਮੰਗੋ""ਅਨਪਿੰਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਅਣਲਾਕ ਪੈਟਰਨ ਵਾਸਤੇ ਪੁੱਛੋ"
- "ਅਣਪਿੰਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪਾਸਵਰਡ ਮੰਗੋ"
+ "ਅਨਪਿੰਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪਾਸਵਰਡ ਮੰਗੋ""ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਸਥਾਪਤ ਕੀਤਾ ਗਿਆ""ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ""ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਮਿਟਾਇਆ ਗਿਆ"
@@ -1923,7 +1919,6 @@
"ਖੇਤਰ ਤਰਜੀਹ""ਭਾਸ਼ਾ ਦਾ ਨਾਮ ਟਾਈਪ ਕਰੋ""ਸੁਝਾਈਆਂ ਗਈਆਂ"
- "ਸੁਝਾਈਆਂ ਗਈਆਂ""ਸਾਰੀਆਂ ਭਾਸ਼ਾਵਾਂ""ਸਾਰੇ ਖੇਤਰ""ਖੋਜੋ"
@@ -1941,19 +1936,18 @@
"ਕੈਮਰਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ""ਫ਼ੋਨ \'ਤੇ ਜਾਰੀ ਰੱਖੋ""ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਅਣਉਪਲਬਧ ਹੈ"
- "Play Store ਉਪਲਬਧ ਨਹੀਂ ਹੈ""Android TV ਸੈਟਿੰਗਾਂ ਅਣਉਪਲਬਧ ਹਨ""ਟੈਬਲੈੱਟ ਸੈਟਿੰਗਾਂ ਅਣਉਪਲਬਧ ਹਨ""ਫ਼ੋਨ ਸੈਟਿੰਗਾਂ ਅਣਉਪਲਬਧ ਹਨ"
- "ਇਸ ਸਮੇਂ ਤੁਹਾਡੇ %1$s \'ਤੇ ਇਸ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ Android TV ਡੀਵਾਈਸ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।"
- "ਇਸ ਸਮੇਂ ਤੁਹਾਡੇ %1$s \'ਤੇ ਇਸ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ ਟੈਬਲੈੱਟ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।"
- "ਇਸ ਸਮੇਂ ਤੁਹਾਡੇ %1$s \'ਤੇ ਇਸ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ ਫ਼ੋਨ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।"
+ "ਤੁਹਾਡੇ %1$s \'ਤੇ ਇਸ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ Android TV ਡੀਵਾਈਸ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।"
+ "ਤੁਹਾਡੇ %1$s \'ਤੇ ਇਸ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ ਟੈਬਲੈੱਟ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।"
+ "ਤੁਹਾਡੇ %1$s \'ਤੇ ਇਸ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ ਫ਼ੋਨ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।"
+ "ਇਸ ਸਮੇਂ ਤੁਹਾਡੇ %1$s \'ਤੇ ਇਸ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ Android TV ਡੀਵਾਈਸ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।"
+ "ਇਸ ਸਮੇਂ ਤੁਹਾਡੇ %1$s \'ਤੇ ਇਸ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ ਟੈਬਲੈੱਟ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।"
+ "ਇਸ ਸਮੇਂ ਤੁਹਾਡੇ %1$s \'ਤੇ ਇਸ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ ਫ਼ੋਨ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।""ਇਹ ਐਪ ਵਧੀਕ ਸੁਰੱਖਿਆ ਦੀ ਬੇਨਤੀ ਕਰ ਰਹੀ ਹੈ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ Android TV ਡੀਵਾਈਸ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।""ਇਹ ਐਪ ਵਧੀਕ ਸੁਰੱਖਿਆ ਦੀ ਬੇਨਤੀ ਕਰ ਰਹੀ ਹੈ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ ਟੈਬਲੈੱਟ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।""ਇਹ ਐਪ ਵਧੀਕ ਸੁਰੱਖਿਆ ਦੀ ਬੇਨਤੀ ਕਰ ਰਹੀ ਹੈ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ ਫ਼ੋਨ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।"
- "ਤੁਹਾਡੇ %1$s \'ਤੇ ਇਸ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ Android TV ਡੀਵਾਈਸ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।"
- "ਤੁਹਾਡੇ %1$s \'ਤੇ ਇਸ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ ਟੈਬਲੈੱਟ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।"
- "ਤੁਹਾਡੇ %1$s \'ਤੇ ਇਸ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ ਫ਼ੋਨ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।""ਇਹ ਐਪ Android ਦੇ ਕਿਸੇ ਵਧੇਰੇ ਪੁਰਾਣੇ ਵਰਜਨ ਲਈ ਬਣਾਈ ਗਈ ਸੀ ਅਤੇ ਸ਼ਾਇਦ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਨਾ ਕਰੇ। ਅੱਪਡੇਟਾਂ ਲਈ ਜਾਂਚ ਕਰੋ ਜਾਂ ਵਿਕਾਸਕਾਰ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।""ਅੱਪਡੇਟ ਲਈ ਜਾਂਚ ਕਰੋ""ਤੁਹਾਨੂੰ ਨਵੇਂ ਸੁਨੇਹੇ ਪ੍ਰਾਪਤ ਹੋਏ ਹਨ"
@@ -2046,8 +2040,7 @@
"ਕੀ %s ਨੂੰ ਸਾਰੇ ਡੀਵਾਈਸ ਲੌਗਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?""ਇੱਕ-ਵਾਰ ਲਈ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦਿਓ""ਆਗਿਆ ਨਾ ਦਿਓ"
- "ਡੀਵਾਈਸ ਲੌਗਾਂ ਵਿੱਚ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀਆਂ ਕਾਰਵਾਈਆਂ ਰਿਕਾਰਡ ਹੁੰਦੀਆਂ ਹਨ। ਐਪਾਂ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਲੱਭਣ ਅਤੇ ਉਨ੍ਹਾਂ ਦਾ ਹੱਲ ਕਰਨ ਲਈ ਇਨ੍ਹਾਂ ਲੌਗਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੀਆਂ ਹਨ।\n\nਕੁਝ ਲੌਗਾਂ ਵਿੱਚ ਸੰਵੇਦਨਸ਼ੀਲ ਜਾਣਕਾਰੀ ਸ਼ਾਮਲ ਹੋ ਸਕਦੀ ਹੈ, ਇਸ ਲਈ ਸਿਰਫ਼ ਆਪਣੀਆਂ ਭਰੋਸੇਯੋਗ ਐਪਾਂ ਨੂੰ ਹੀ ਸਾਰੇ ਡੀਵਾਈਸ ਲੌਗਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿਓ। \n\nਜੇ ਤੁਸੀਂ ਇਸ ਐਪ ਨੂੰ ਸਾਰੇ ਡੀਵਾਈਸ ਲੌਗਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਨਹੀਂ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਇਹ ਹਾਲੇ ਵੀ ਆਪਣੇ ਲੌਗਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ। ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਨਿਰਮਾਤਾ ਹਾਲੇ ਵੀ ਤੁਹਾਡੇ ਡੀਵਾਈਸ \'ਤੇ ਮੌਜੂਦ ਕੁਝ ਲੌਗਾਂ ਜਾਂ ਜਾਣਕਾਰੀ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦਾ ਹੈ।"
- "ਡੀਵਾਈਸ ਲੌਗਾਂ ਵਿੱਚ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀਆਂ ਕਾਰਵਾਈਆਂ ਰਿਕਾਰਡ ਹੁੰਦੀਆਂ ਹਨ। ਐਪਾਂ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਲੱਭਣ ਅਤੇ ਉਨ੍ਹਾਂ ਦਾ ਹੱਲ ਕਰਨ ਲਈ ਇਨ੍ਹਾਂ ਲੌਗਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੀਆਂ ਹਨ।\n\nਕੁਝ ਲੌਗਾਂ ਵਿੱਚ ਸੰਵੇਦਨਸ਼ੀਲ ਜਾਣਕਾਰੀ ਸ਼ਾਮਲ ਹੋ ਸਕਦੀ ਹੈ, ਇਸ ਲਈ ਸਿਰਫ਼ ਆਪਣੀਆਂ ਭਰੋਸੇਯੋਗ ਐਪਾਂ ਨੂੰ ਹੀ ਸਾਰੇ ਡੀਵਾਈਸ ਲੌਗਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿਓ। \n\nਜੇ ਤੁਸੀਂ ਇਸ ਐਪ ਨੂੰ ਸਾਰੇ ਡੀਵਾਈਸ ਲੌਗਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਨਹੀਂ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਇਹ ਹਾਲੇ ਵੀ ਆਪਣੇ ਲੌਗਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ। ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਨਿਰਮਾਤਾ ਹਾਲੇ ਵੀ ਤੁਹਾਡੇ ਡੀਵਾਈਸ \'ਤੇ ਮੌਜੂਦ ਕੁਝ ਲੌਗਾਂ ਜਾਂ ਜਾਣਕਾਰੀ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦਾ ਹੈ।\n\ng.co/android/devicelogs \'ਤੇ ਹੋਰ ਜਾਣੋ।"
+ "ਡੀਵਾਈਸ ਲੌਗਾਂ ਵਿੱਚ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀਆਂ ਕਾਰਵਾਈਆਂ ਰਿਕਾਰਡ ਹੁੰਦੀਆਂ ਹਨ। ਐਪਾਂ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਲੱਭਣ ਅਤੇ ਉਨ੍ਹਾਂ ਦਾ ਹੱਲ ਕਰਨ ਲਈ ਇਨ੍ਹਾਂ ਲੌਗਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੀਆਂ ਹਨ।\n\nਕੁਝ ਲੌਗਾਂ ਵਿੱਚ ਸੰਵੇਦਨਸ਼ੀਲ ਜਾਣਕਾਰੀ ਸ਼ਾਮਲ ਹੋ ਸਕਦੀ ਹੈ, ਇਸ ਲਈ ਸਿਰਫ਼ ਆਪਣੀਆਂ ਭਰੋਸੇਯੋਗ ਐਪਾਂ ਨੂੰ ਹੀ ਸਾਰੇ ਡੀਵਾਈਸ ਲੌਗਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿਓ। \n\nਜੇ ਤੁਸੀਂ ਇਸ ਐਪ ਨੂੰ ਸਾਰੇ ਡੀਵਾਈਸ ਲੌਗਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਨਹੀਂ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਇਹ ਹਾਲੇ ਵੀ ਆਪਣੇ ਲੌਗਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ। ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਨਿਰਮਾਤਾ ਹਾਲੇ ਵੀ ਤੁਹਾਡੇ ਡੀਵਾਈਸ \'ਤੇ ਮੌਜੂਦ ਕੁਝ ਲੌਗਾਂ ਜਾਂ ਜਾਣਕਾਰੀ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦਾ ਹੈ। ਹੋਰ ਜਾਣੋ""ਦੁਬਾਰਾ ਨਾ ਦਿਖਾਓ""%1$s ਦੀ %2$s ਦੇ ਹਿੱਸੇ ਦਿਖਾਉਣ ਦੀ ਇੱਛਾ ਹੈ""ਸੰਪਾਦਨ ਕਰੋ"
@@ -2060,7 +2053,8 @@
"\'ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ\' ਵਿਕਲਪ ਬਦਲ ਗਿਆ ਹੈ""ਟੈਪ ਕਰਕੇ ਦੋਖੋ ਕਿ ਕਿਹੜੀਆਂ ਚੀਜ਼ਾਂ ਬਲਾਕ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ।""ਸੂਚਨਾ ਸੈਟਿੰਗਾਂ ਦੀ ਸਮੀਖਿਆ ਕਰੋ"
- "Android 13 ਜਾਂ ਇਸ ਤੋਂ ਬਾਅਦ ਵਾਲੇ ਵਰਜਨਾਂ ਵਿੱਚ, ਤੁਹਾਡੇ ਵੱਲੋਂ ਸਥਾਪਤ ਕੀਤੀਆਂ ਜਾਣ ਵਾਲੀਆਂ ਐਪਾਂ ਨੂੰ ਸੂਚਨਾਵਾਂ ਭੇਜਣ ਲਈ ਤੁਹਾਡੀ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਮੌਜੂਦਾ ਐਪਾਂ ਲਈ ਇਸ ਇਜਾਜ਼ਤ ਨੂੰ ਬਦਲਣ ਵਾਸਤੇ ਟੈਪ ਕਰੋ।"
+
+ "ਬਾਅਦ ਵਿੱਚ ਯਾਦ ਕਰਵਾਓ""ਖਾਰਜ ਕਰੋ""ਸਿਸਟਮ"
@@ -2288,6 +2282,5 @@
"ਕਿਰਿਆਸ਼ੀਲ ਐਪਾਂ ਦੀ ਜਾਂਚ ਕਰੋ""ਤੁਹਾਡੇ %1$s ਤੋਂ ਫ਼ੋਨ ਦੇ ਕੈਮਰੇ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ""ਤੁਹਾਡੇ %1$s ਤੋਂ ਟੈਬਲੈੱਟ ਦੇ ਕੈਮਰੇ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ"
- "ਸਟ੍ਰੀਮਿੰਗ ਦੌਰਾਨ ਇਸ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਇਸਦੀ ਬਜਾਏ ਆਪਣੇ ਫ਼ੋਨ \'ਤੇ ਵਰਤ ਕੇ ਦੇਖੋ।"
- "ਸਿਸਟਮ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ"
+ "ਸਿਸਟਮ ਦੀ ਭਾਸ਼ਾ"
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index dcd5654d301b2949f4c73a0cab6bfbca5a07bd57..2c7a1fa17d945c7edb8da902f5ab8dd712eb9dc7 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "KB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Bez nazwy>""(Brak numeru telefonu)"
@@ -28,7 +33,6 @@
"Poczta głosowa""MSISDN1""Problem z połączeniem lub błędny kod MMI."
- "Funkcja nie jest obsługiwana.""Operacja jest ograniczona wyłącznie do numerów ustalonych.""Podczas roamingu nie można zmienić ustawień przekazywania połączeń z telefonu.""Usługa została włączona."
@@ -43,8 +47,8 @@
"Wpisane kody PIN nie są identyczne.""Wpisz kod PIN o długości od 4 do 8 cyfr.""Wpisz kod PUK składający się z co najmniej 8 cyfr."
- "Karta SIM została zablokowana kodem PUK. Wprowadź kod PUK, aby ją odblokować."
- "Wprowadź kod PUK2, aby odblokować kartę SIM."
+ "Karta SIM jest zablokowana kodem PUK. Wprowadź kod PUK, aby odblokować kartę."
+ "Wprowadź kod PUK2, aby odblokować kartę SIM.""Nie udało się. Włącz blokadę karty SIM/RUIM."Masz jeszcze %d próby, zanim karta SIM zostanie zablokowana.
@@ -303,12 +307,12 @@
"dostęp do kalendarza""SMS""wysyłanie i wyświetlanie SMS‑ów"
- "Pliki"
- "dostęp do plików na urządzeniu"
- "Muzyka i dźwięk"
- "dostęp do muzyki i dźwięku na urządzeniu"
- "Zdjęcia i filmy"
- "dostęp do zdjęć i filmów na urządzeniu"
+ "Pliki i dokumenty"
+ "dostęp do plików i dokumentów na urządzeniu"
+ "Muzyka i inne dźwięki"
+ "dostęp do plików audio na urządzeniu"
+ "Zdjęcia i filmy"
+ "dostęp do plików graficznych i wideo na urządzeniu""Mikrofon""nagrywanie dźwięku""Aktywność fizyczna"
@@ -584,14 +588,13 @@
"Używaj blokady ekranu""Użyj blokady ekranu, aby kontynuować""Mocno naciśnij czujnik"
- "Nie rozpoznaję odcisku palca. Spróbuj ponownie."
+ "Nie udało się przetworzyć odcisku palca. Spróbuj ponownie.""Wyczyść czytnik linii papilarnych i spróbuj ponownie""Wyczyść czujnik i spróbuj ponownie""Mocno naciśnij czujnik""Palec został obrócony zbyt wolno. Spróbuj ponownie.""Użyj odcisku innego palca""Zbyt jasno"
- "Wykryto naciśnięcie przycisku zasilania""Popraw""Za każdym razem lekko zmieniaj ułożenie palca"
@@ -603,17 +606,16 @@
"Twarz rozpoznana, kliknij Potwierdź""Czytnik linii papilarnych nie jest dostępny.""Nie można skonfigurować odcisku palca"
- "Upłynął limit czasu konfiguracji odcisku palca. Spróbuj ponownie."
+ "Osiągnięto limit czasu odczytu odcisków palców. Spróbuj ponownie.""Odczyt odcisku palca został anulowany.""Odczyt odcisku palca został anulowany przez użytkownika."
- "Zbyt wiele prób. Użyj blokady ekranu."
- "Zbyt wiele prób. Użyj blokady ekranu."
- "Nie udało się przetworzyć odcisku palca. Spróbuj ponownie."
+ "Zbyt wiele prób. Spróbuj ponownie później."
+ "Zbyt wiele prób. Czytnik linii papilarnych został wyłączony."
+ "Spróbuj ponownie.""Nie zarejestrowano odcisków palców.""To urządzenie nie jest wyposażone w czytnik linii papilarnych.""Czujnik jest tymczasowo wyłączony.""Nie można użyć czytnika linii papilarnych. Odwiedź serwis."
- "Naciśnięto przycisk zasilania""Odcisk palca %d""Używaj odcisku palca""Używaj odcisku palca lub blokady ekranu"
@@ -634,33 +636,26 @@
"Odblokowywanie odciskiem palca""Nie można użyć czytnika linii papilarnych""Odwiedź serwis."
- "Nie można utworzyć modelu twarzy. Spróbuj ponownie."
+ "Nie udało się zarejestrować danych twarzy. Spróbuj ponownie.""Zbyt jasno. Spróbuj przy słabszym świetle."
- "Za mało światła"
- "Odsuń telefon"
- "Przybliż telefon"
- "Przesuń telefon wyżej"
- "Przesuń telefon niżej"
- "Przesuń telefon w lewo"
- "Przesuń telefon w prawo"
+ "Zbyt ciemno. Spróbuj w jaśniejszym świetle."
+ "Odsuń telefon."
+ "Przybliż telefon."
+ "Przesuń telefon wyżej."
+ "Obniż telefon."
+ "Przesuń telefon w lewo."
+ "Przesuń telefon w prawo.""Patrz prosto na urządzenie."
- "Nie widzę twarzy. Trzymaj telefon na wysokości oczu."
+ "Ustaw twarz dokładnie na wprost telefonu.""Telefon się porusza. Trzymaj go nieruchomo.""Zarejestruj swoją twarz ponownie."
- "Nie rozpoznaję twarzy. Spróbuj ponownie."
- "Lekko zmień położenie głowy"
- "Patrz prosto na telefon"
- "Patrz prosto na telefon"
- "Patrz prosto na telefon"
+ "Nie można już rozpoznać twarzy. Spróbuj ponownie."
+ "Za mała różnica. Zmień pozycję."
+ "Trochę mniej obróć głowę."
+ "Trochę mniej pochyl głowę."
+ "Trochę mniej obróć głowę.""Usuń wszystko, co zasłania Ci twarz.""Wyczyść górną krawędź ekranu, w tym czarny pasek"
-
-
-
-
- "Nie można utworzyć modelu twarzy. Spróbuj ponownie."
- "Wykryto ciemne okulary. Twarz musi być widoczna w całości."
- "Wykryto zasłonę twarzy. Twarz musi być widoczna w całości.""Nie można zweryfikować twarzy. Sprzęt niedostępny."
@@ -926,14 +921,14 @@
"Spróbuj ponownie.""Odblokowanie wszystkich funkcji i danych""Przekroczono maksymalną liczbę prób rozpoznania twarzy."
- "Brak karty SIM"
- "Brak karty SIM w tablecie."
- "Brak karty SIM na urządzeniu z Androidem TV."
- "Brak karty SIM w telefonie."
- "Dodaj kartę SIM."
- "Brak karty SIM lub nie można jej odczytać. Dodaj kartę SIM."
- "Nie można użyć karty SIM."
- "Karta SIM została trwale wyłączona.\n Skontaktuj się z dostawcą usług bezprzewodowych, aby uzyskać inną kartę SIM."
+ "Brak karty SIM"
+ "Brak karty SIM w tablecie."
+ "W urządzeniu z Androidem TV nie ma karty SIM."
+ "Brak karty SIM w telefonie."
+ "Włóż kartę SIM."
+ "Brak karty SIM lub nie można jej odczytać. Włóż kartę SIM."
+ "Karta SIM bezużyteczna."
+ "Karta SIM jest trwale wyłączona.\n Skontaktuj się z dostawcą usług bezprzewodowych, aby uzyskać inną kartę SIM.""Poprzedni utwór""Następny utwór""Wstrzymaj"
@@ -943,10 +938,10 @@
"Przewiń do przodu""Tylko połączenia alarmowe""Sieć zablokowana"
- "Karta SIM została zablokowana kodem PUK"
+ "Karta SIM jest zablokowana kodem PUK.""Zapoznaj się z instrukcją obsługi lub skontaktuj się z działem obsługi klienta."
- "Karta SIM jest zablokowana."
- "Odblokowuję kartę SIM…"
+ "Karta SIM jest zablokowana."
+ "Odblokowywanie karty SIM...""Wzór odblokowania został nieprawidłowo narysowany %1$d razy. \n\nSpróbuj ponownie za %2$d s.""Po raz %1$d zostało wpisane nieprawidłowe hasło. \n\nSpróbuj ponownie za %2$d s.""Po raz %1$d został wpisany nieprawidłowy PIN. \n\nSpróbuj ponownie za %2$d s."
@@ -1226,7 +1221,7 @@
"Aplikacja %1$s została pierwotnie uruchomiona.""Skala""Zawsze pokazuj"
- "Włącz ponownie, wybierając Ustawienia systemu > Aplikacje > Pobrane."
+ "Włącz ponownie, wybierając Ustawienia systemowe > Aplikacje > Pobrane.""%1$s nie obsługuje obecnie ustawionego rozmiaru wyświetlacza i może działać niestabilnie.""Zawsze pokazuj""Aplikacja %1$s została skompilowana pod niezgodną wersję systemu Android i może zachowywać się niezgodnie z oczekiwaniami. Sprawdź, czy jest dostępna zaktualizowana wersja aplikacji."
@@ -1248,9 +1243,10 @@
"Przygotowuję aplikację %1$s.""Uruchamianie aplikacji.""Kończenie uruchamiania."
+ "Kontynuować konfigurowanie?""Naciśnięto przycisk zasilania — zwykle powoduje to wyłączenie ekranu.\n\nKlikaj delikatnie podczas konfigurowania odcisku palca."
- "Aby zakończyć konfigurację, wyłącz ekran"
- "Wyłącz"
+ "Wyłącz ekran"
+ "Konfiguruj dalej""Kontynuować weryfikację odcisku palca?""Naciśnięto przycisk zasilania — zwykle powoduje to wyłączenie ekranu.\n\nKliknij delikatnie, aby zweryfikować odcisk palca.""Wyłącz ekran"
@@ -1329,10 +1325,10 @@
"Możesz to zmienić: Ustawienia > Aplikacje""Zawsze zezwalaj""Nigdy nie zezwalaj"
- "Usunięto kartę SIM"
- "Sieć komórkowa będzie niedostępna do chwili ponownego uruchomienia urządzenia z ważną kartą SIM."
+ "Karta SIM wyjęta"
+ "Sieć komórkowa będzie niedostępna do chwili ponownego uruchomienia urządzenia z użyciem ważnej karty SIM.""Gotowe"
- "Dodano kartę SIM"
+ "Dodano kartę SIM""Uruchom ponownie urządzenie, aby uzyskać dostęp do sieci komórkowej.""Uruchom ponownie""Aktywuj usługę sieci komórkowej"
@@ -1403,16 +1399,16 @@
"Kliknij, by skonfigurować""Wybierz, aby skonfigurować""Może być konieczne ponowne sformatowanie urządzenia. Kliknij, by je odłączyć."
- "Przechowywanie zdjęć, filmów, muzyki i innych treści"
+ "Do przenoszenia zdjęć i multimediów""Przeglądaj pliki multimediów""Wystąpił problem z: %s""%s nie działa""Kliknij, by naprawić""Nośnik %s jest uszkodzony. Wybierz, by rozwiązać problem.""Może być konieczne ponowne sformatowanie urządzenia. Kliknij, by je odłączyć."
- "Wykryto nośnik %s"
+ "Nośnik %s nieobsługiwany""%s nie działa"
- "Kliknij, aby skonfigurować."
+ "To urządzenie nie obsługuje %s. Kliknij, by użyć obsługiwanego formatu.""Wybierz, aby skonfigurować nośnik %s w obsługiwanym formacie.""Może być konieczne ponowne sformatowanie urządzenia""%s: nieoczekiwane wyjęcie"
@@ -1611,7 +1607,7 @@
"Telewizor""Telefon""Głośniki stacji dokującej"
- "Urządzenie zewnętrzne"
+ "HDMI""Słuchawki""USB""System"
@@ -1644,7 +1640,7 @@
"Karta SIM została wyłączona. Podaj kod PUK, by przejść dalej. Szczegóły uzyskasz od operatora.""Podaj wybrany kod PIN""Potwierdź wybrany kod PIN"
- "Odblokowuję kartę SIM…"
+ "Odblokowuję kartę SIM…""Nieprawidłowy PIN.""Wpisz PIN o długości od 4 do 8 cyfr.""PUK musi mieć 8 cyfr."
@@ -1925,7 +1921,6 @@
"Ustawienie regionu""Wpisz nazwę języka""Sugerowane"
- "Sugerowane""Wszystkie języki""Wszystkie kraje""Szukaj"
@@ -1943,19 +1938,18 @@
"Aparat niedostępny""Kontynuuj na telefonie""Mikrofon niedostępny"
- "Sklep Play niedostępny""Ustawienia Androida TV są niedostępne""Ustawienia tabletu są niedostępne""Ustawienia telefonu są niedostępne"
- "W tej chwili nie można z tego skorzystać na urządzeniu %1$s. Użyj urządzenia z Androidem TV."
- "W tej chwili nie można z tego skorzystać na urządzeniu %1$s. Użyj tabletu."
- "W tej chwili nie można z tego skorzystać na urządzeniu %1$s. Użyj telefonu."
+ "Z aplikacji nie można skorzystać na urządzeniu %1$s. Użyj urządzenia z Androidem TV."
+ "Z aplikacji nie można skorzystać na urządzeniu %1$s. Użyj tabletu."
+ "Z aplikacji nie można skorzystać na urządzeniu %1$s. Użyj telefonu."
+ "W tej chwili na urządzeniu %1$s nie można skorzystać z aplikacji. Użyj urządzenia z Androidem TV."
+ "W tej chwili na urządzeniu %1$s nie można skorzystać z aplikacji. Użyj tabletu."
+ "W tej chwili na urządzeniu %1$s nie można skorzystać z aplikacji. Użyj telefonu.""Ta aplikacja wymaga dodatkowych zabezpieczeń. Użyj urządzenia z Androidem TV.""Ta aplikacja wymaga dodatkowych zabezpieczeń. Użyj tabletu.""Ta aplikacja wymaga dodatkowych zabezpieczeń. Użyj telefonu."
- "Nie można z tego skorzystać na urządzeniu %1$s. Użyj urządzenia z Androidem TV."
- "Nie można z tego skorzystać na urządzeniu %1$s. Użyj tabletu."
- "Nie można z tego skorzystać na urządzeniu %1$s. Użyj telefonu.""Ta aplikacja jest na starszą wersję Androida i może nie działać prawidłowo. Sprawdź dostępność aktualizacji lub skontaktuj się z programistą.""Sprawdź dostępność aktualizacji""Masz nowe wiadomości"
@@ -2048,8 +2042,7 @@
"Zezwolić aplikacji %s na dostęp do wszystkich dzienników urządzenia?""Zezwól na jednorazowy dostęp""Nie zezwalaj"
- "Dzienniki urządzenia zapisują, co dzieje się na urządzeniu. Aplikacje mogą ich używać do wykrywania i rozwiązywania problemów.\n\nNiektóre dzienniki mogą zawierać poufne dane, dlatego na dostęp do wszystkich dzienników zezwalaj tylko aplikacjom, którym ufasz. \n\nNawet jeśli nie zezwolisz tej aplikacji na dostęp do wszystkich dzienników na urządzeniu, będzie mogła korzystać z własnych. Producent urządzenia nadal będzie mógł używać niektórych dzienników na urządzeniu."
- "Dzienniki urządzenia zapisują, co dzieje się na urządzeniu. Aplikacje mogą ich używać do wykrywania i rozwiązywania problemów.\n\nNiektóre dzienniki mogą zawierać poufne dane, dlatego na dostęp do wszystkich dzienników zezwalaj tylko aplikacjom, którym ufasz. \n\nNawet jeśli nie zezwolisz tej aplikacji na dostęp do wszystkich dzienników na urządzeniu, będzie mogła korzystać z własnych. Producent urządzenia nadal będzie mógł używać niektórych dzienników na urządzeniu.\n\nWięcej informacji znajdziesz na stronie g.co/android/devicelogs."
+ "Dzienniki urządzenia zapisują, co dzieje się na urządzeniu. Aplikacje mogą ich używać do wykrywania i rozwiązywania problemów.\n\nNiektóre dzienniki mogą zawierać poufne dane, dlatego na dostęp do wszystkich dzienników zezwalaj tylko aplikacjom, którym ufasz. \n\nNawet jeśli nie zezwolisz tej aplikacji na dostęp do wszystkich dzienników na urządzeniu, będzie miała dostęp do własnych. Producent urządzenia nadal będzie mógł korzystać z niektórych dzienników na urządzeniu. Więcej informacji""Nie pokazuj ponownie""Aplikacja %1$s chce pokazywać wycinki z aplikacji %2$s""Edytuj"
@@ -2062,7 +2055,8 @@
"Zmiany w trybie Nie przeszkadzać""Kliknij, by sprawdzić, co jest zablokowane.""Sprawdź ustawienia powiadomień"
- "W Androidzie 13 i nowszych zainstalowane aplikacje będą potrzebowały zezwolenia na wysyłanie powiadomień. Kliknij, aby zmienić uprawnienia dla istniejących aplikacji."
+
+ "Przypomnij później""Odrzuć""System"
@@ -2290,6 +2284,5 @@
"Sprawdź aktywne aplikacje""Nie można korzystać z aparatu telefonu na urządzeniu %1$s""Nie można korzystać z aparatu tabletu na urządzeniu %1$s"
- "Nie można z tego skorzystać podczas strumieniowania. Użyj telefonu."
- "Ustawienie domyślne systemu"
+ "Język systemu"
diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml
index b117b78382c7305fc8d864745241741f76b8559a..00f99834b90514897fd12357175fa002467a0b74 100644
--- a/core/res/res/values-pt-rBR/strings.xml
+++ b/core/res/res/values-pt-rBR/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "KB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Sem título>""(Nenhum número de telefone)"
@@ -28,7 +33,6 @@
"Correio de voz""MSISDN1""Problema de conexão ou código MMI inválido."
- "Recurso indisponível.""A operação é limitada somente a números de discagem fixa.""Não é possível alterar as configurações de encaminhamento de chamada do seu smartphone em roaming.""O serviço foi ativado."
@@ -43,12 +47,11 @@
"Os PINs digitados não correspondem.""Digite um PIN com 4 a 8 números.""Digite um PUK com oito números ou mais."
- "O chip está bloqueado por uma PUK. Digite o código PUK para desbloquear."
- "Digite a PUK2 para desbloquear o chip."
+ "O seu chip está bloqueado por um PUK. Digite o código PUK para desbloqueá-lo."
+ "Digite o PUK2 para desbloquear o chip.""Falha. Ative o bloqueio do chip/R-UIM."Tentativas restantes: %d. Caso o código correto não seja digitado, o chip será bloqueado.
- Tentativas restantes: %d. Caso o código correto não seja digitado, o chip será bloqueado.Tentativas restantes: %d. Caso o código correto não seja digitado, o chip será bloqueado."IMEI"
@@ -177,7 +180,7 @@
"Armazenamento do relógio cheio. Exclua alguns arquivos para liberar espaço.""O armazenamento do dispositivo Android TV está cheio. Exclua alguns arquivos para liberar espaço.""O armazenamento do telefone está cheio. Exclua alguns arquivos para liberar espaço."
- "{count,plural, =1{Autoridade certificadora instalada}one{Autoridade certificadora instalada}many{Autoridades certificadoras instaladas}other{Autoridades certificadoras instaladas}}"
+ "{count,plural, =1{Autoridade certificadora instalada}one{Autoridade certificadora instalada}other{Autoridades certificadoras instaladas}}""Por terceiros desconhecidos""Pelo administrador do seu perfil de trabalho""Por %s"
@@ -251,7 +254,7 @@
"Use este recurso na maioria das circunstâncias. Ele permite que você acompanhe o progresso do relatório, informe mais detalhes sobre o problema e faça capturas de tela. É possível que ele omita algumas seções menos utilizadas que levam muito tempo na emissão dos relatórios.""Relatório completo""Use esta opção para ter o mínimo de interferência do sistema quando seu dispositivo não estiver respondendo ou estiver muito lento, ou quando você precisar de todas as seções de relatórios. Ela não permite que você informe mais detalhes ou faça capturas de tela adicionais."
- "{count,plural, =1{Capturas de tela para o relatório do bug vão ser feitas em # segundo.}one{Capturas de tela para o relatório do bug vão ser feitas em # segundo.}many{Capturas de tela para o relatório do bug vão ser feitas em # segundos.}other{Capturas de tela para o relatório do bug vão ser feitas em # segundos.}}"
+ "{count,plural, =1{Capturas de tela para o relatório do bug vão ser feitas em # segundo.}one{Capturas de tela para o relatório do bug vão ser feitas em # segundo.}other{Capturas de tela para o relatório do bug vão ser feitas em # segundos.}}""Captura de tela com o relatório do bug concluída""Falha ao capturar a tela com o relatório do bug""Modo silencioso"
@@ -292,7 +295,7 @@
"%1$s, %2$s""Modo de segurança""Sistema Android"
- "Mudar para o perfil pessoal"
+ "Deslize até o perfil pessoal""Perfil de trabalho""Contatos""acesse seus contatos"
@@ -302,12 +305,12 @@
"acesse sua agenda""SMS""envie e veja mensagens SMS"
- "Arquivos"
- "acessar arquivos no dispositivo"
- "Música e áudio"
- "acessar música e áudio no dispositivo"
- "Fotos e vídeos"
- "acessar fotos e vídeos no dispositivo"
+ "Arquivos e documentos"
+ "acessar arquivos e documentos no seu dispositivo"
+ "Música e outros áudios"
+ "acessar arquivos de áudio no seu dispositivo"
+ "Fotos e vídeos"
+ "acessar arquivos de imagem e vídeo no seu dispositivo""Microfone""grave áudio""Atividade física"
@@ -352,8 +355,8 @@
"Permite que o app remova atalhos da tela inicial sem a intervenção do usuário.""redirecionar as chamadas efetuadas""Permite que o app veja o número discado ao realizar uma chamada, com a opção de redirecionar a chamada para outro número ou abortá-la."
- "atender ligações telefônicas"
- "Permite que o app atenda uma ligação recebida."
+ "atender chamadas telefônicas"
+ "Permite que o app atenda uma chamada recebida.""receber mensagens de texto (SMS)""Permite que o app receba e processe mensagens SMS. Isso significa que o app pode monitorar ou excluir mensagens enviadas para o dispositivo sem mostrá-las para você.""receber mensagens de texto (MMS)"
@@ -417,7 +420,7 @@
"Permite que o app modifique os dados sobre os contatos armazenados no dispositivo Android TV. Essa permissão autoriza os apps a excluírem dados de contato.""Permite que o app modifique os dados sobre os contatos armazenados no smartphone. Essa permissão autoriza os apps a excluírem dados de contato.""ler registro de chamadas"
- "Este app pode ler seu histórico de ligações."
+ "Este app pode ler seu histórico de chamadas.""salvar no registo de chamadas""Permite que o app modifique o registro de chamadas de seu tablet, incluindo dados sobre chamadas recebidas e efetuadas. Apps maliciosos podem usar esta permissão para apagar ou modificar seu registro de chamadas.""Permite que o app modifique o registro de chamadas do seu dispositivo Android TV, incluindo dados sobre chamadas recebidas e realizadas. Apps maliciosos podem usar essa permissão para apagar ou modificar seu registro de chamadas."
@@ -436,8 +439,8 @@
"Este app pode adicionar, remover ou alterar eventos da agenda no seu smartphone. Ele também pode enviar mensagens que aparentem ser de autoria do proprietário da agenda ou alterar eventos sem notificar o proprietário.""acessar comandos extras do provedor de localização""Permite que o app acesse comandos do provedor não relacionados à localização. Isso pode permitir que o app interfira no funcionamento do GPS ou de outras fontes de localização."
- "acessar local exato apenas em primeiro plano"
- "Esse app poderá acessar seu local exato com os Serviços de localização enquanto estiver sendo usado. Os Serviços de localização do dispositivo precisam estar ativados para que o app possa acessar o local. Isso pode aumentar o uso da bateria."
+ "acessar localização precisa apenas em primeiro plano"
+ "Esse app poderá acessar sua localização exata com os Serviços de localização enquanto estiver sendo usado. Os Serviços de localização do dispositivo precisam estar ativados para que o app possa acessar o local. Isso pode aumentar o uso da bateria.""acessar local aproximado apenas em primeiro plano""Esse app poderá acessar sua localização aproximada com os Serviços de localização enquanto estiver sendo usado. Os Serviços de localização do dispositivo precisam estar ativados para que o app possa acessar o local.""acessar a localização em segundo plano"
@@ -583,14 +586,13 @@
"Usar bloqueio de tela""Insira seu bloqueio de tela para continuar""Pressione o sensor com firmeza"
- "Não foi possível reconhecer a impressão digital. Tente de novo."
+ "Não foi possível processar a impressão digital. Tente novamente.""Limpe o sensor de impressão digital e tente novamente""Limpe o sensor e tente novamente""Pressione o sensor com firmeza""O movimento do dedo está muito lento. Tente novamente.""Use outra impressão digital""Claro demais"
- "O botão liga/desliga foi pressionado""Ajuste a posição do dedo""Mude a posição do dedo ligeiramente a cada momento"
@@ -602,17 +604,16 @@
"Rosto autenticado, pressione \"Confirmar\"""Hardware de impressão digital não disponível.""Não foi possível configurar a impressão digital"
- "A configuração da impressão digital expirou. Tente de novo."
+ "Tempo máximo para captura da impressão digital atingido. Tente novamente.""Operação de impressão digital cancelada.""Operação de impressão digital cancelada pelo usuário."
- "Excesso de tentativas. Use o bloqueio de tela."
- "Excesso de tentativas. Use o bloqueio de tela."
- "Não foi possível processar a impressão digital. Tente de novo."
+ "Excesso de tentativas. Tente novamente mais tarde."
+ "Excesso de tentativas. Sensor de impressão digital desativado."
+ "Tente novamente.""Nenhuma impressão digital registrada.""Este dispositivo não tem um sensor de impressão digital.""Sensor desativado temporariamente.""Não foi possível usar o sensor de impressão digital. Entre em contato com uma assistência técnica"
- "Botão liga/desliga pressionado""Dedo %d""Usar impressão digital""Usar impressão digital ou bloqueio de tela"
@@ -633,33 +634,26 @@
"Desbloqueio por impressão digital""Não foi possível usar o sensor de impressão digital""Entre em contato com uma assistência técnica."
- "Falha ao criar o modelo de rosto. Tente de novo."
+ "Dados precisos não capturados. Tente novamente.""Muito iluminado. Diminua a iluminação."
- "Não há luz suficiente"
- "Afaste o smartphone"
- "Aproxime o smartphone do seu rosto"
- "Mova o smartphone para cima"
- "Mova o smartphone para baixo"
- "Mova o smartphone para a esquerda"
- "Mova o smartphone para a direita"
+ "Muito escuro. Use uma iluminação mais clara."
+ "Afaste o smartphone."
+ "Aproxime o smartphone."
+ "Mova o smartphone para cima."
+ "Mova o smartphone para baixo."
+ "Mova o smartphone para a esquerda."
+ "Mova o smartphone para a direita.""Olhe mais diretamente para o dispositivo."
- "Rosto não detectado. Segure o smartphone na altura dos olhos."
+ "Deixe o rosto diretamente na frente do smartphone.""Muito movimento. Não mova o smartphone.""Registre seu rosto novamente."
- "Não foi possível reconhecer o rosto. Tente de novo."
- "Mude a posição da cabeça ligeiramente"
- "Olhe diretamente para o smartphone"
- "Olhe diretamente para o smartphone"
- "Olhe diretamente para o smartphone"
+ "O rosto não é mais reconhecido. Tente novamente."
+ "Muito parecido, mude de posição."
+ "Incline a cabeça um pouco menos."
+ "Incline a cabeça um pouco menos."
+ "Incline a cabeça um pouco menos.""Remova tudo que esteja ocultando seu rosto.""Limpe a parte superior da tela, inclusive a barra preta"
-
-
-
-
- "Falha ao criar o modelo de rosto. Tente de novo."
- "Óculos escuros detectados. Seu rosto precisa estar completamente visível."
- "Máscara detectada. Seu rosto precisa estar completamente visível.""Impossível verificar rosto. Hardware indisponível."
@@ -741,11 +735,11 @@
"Permite que um app remova certificados de DRM. Não deve ser necessário para apps comuns.""vincular a um serviço de mensagens de operadora""Permite que o proprietário use a interface de nível superior de um serviço de mensagens de operadora. Não deve ser necessária para apps comuns."
- "vincular a serviços da operadora"
- "Permite que o proprietário use serviços da operadora. Não deve ser necessário para apps comuns."
+ "vincular a serviços de operadora"
+ "Permite que o proprietário use serviços de operadora. Não deve ser necessário para apps comuns.""acessar \"Não perturbe\"""Permitir que o app leia e grave a configuração \"Não perturbe\"."
- "começar a usar a permissão para ver"
+ "iniciar uso da permissão para visualização""Permite que o sistema inicie o uso de permissão para um app. Não deve ser necessário para apps comuns.""decisões de permissão da visualização inicial""Autoriza o detentor a iniciar a tela para revisar as decisões de permissão. Não deve ser necessário para apps normais."
@@ -892,7 +886,7 @@
"Amigo(a)""Gerente""Mãe"
- "familiar responsável"
+ "Pai/Mãe""Parceiro""Indicado por""Parente"
@@ -925,14 +919,14 @@
"Tente novamente""Desbloqueio para todos os recursos e dados""O número máximo de tentativas de desbloqueio por reconhecimento facial foi excedido"
- "Sem chip"
- "Nenhum chip no tablet."
- "Nenhum chip no seu dispositivo Android TV."
- "Nenhum chip no smartphone."
- "Adicione um chip."
- "O chip não foi inserido ou não pode ser lido. Adicione um chip."
- "Chip inutilizável."
- "Seu chip foi desativado permanentemente.\n Entre em contato com seu provedor de serviços sem fio para receber outro chip."
+ "Sem chip"
+ "Não há um chip no tablet."
+ "Nenhum chip no seu dispositivo Android TV."
+ "Não há um chip no telefone."
+ "Insera um chip."
+ "O chip não foi inserido ou não é possível lê-lo. Insira um chip."
+ "Chip inutilizável."
+ "O chip foi desativado permanentemente.\nEntre em contato com seu provedor de serviços sem fio para obter outro chip.""Faixa anterior""Próxima faixa""Pausar"
@@ -942,10 +936,10 @@
"Avançar""Só chamadas de emergência""Rede bloqueada"
- "O chip está bloqueado pela PUK."
+ "O chip está bloqueado pelo PUK.""Consulte o Guia do usuário ou entre em contato com o Serviço de atendimento ao cliente."
- "O chip está bloqueado."
- "Desbloqueando chip…"
+ "O chip está bloqueado."
+ "Desbloqueando o chip…""Você desenhou seu padrão de desbloqueio incorretamente %1$d vezes. \n\nTente novamente em %2$d segundos.""Você digitou sua senha incorretamente %1$d vezes. \n\nTente novamente em %2$d segundos.""Você digitou seu PIN incorretamente %1$d vezes.\n\nTente novamente em %2$d segundos."
@@ -1085,7 +1079,7 @@
"%1$s quer ativar o Explorar por toque. Com ele, você pode ouvir ou ver descrições do que está sob seu dedo e interagir com o telefone por gestos.""1 mês atrás""Antes de 1 mês atrás"
- "{count,plural, =1{No último # dia}one{No último # dia}many{Nos últimos # dias}other{Nos últimos # dias}}"
+ "{count,plural, =1{No último # dia}one{No último # dia}other{Nos últimos # dias}}""Mês passado""Mais antigos""em %s"
@@ -1112,14 +1106,14 @@
"em %dh""em %d dias""em %da"
- "{count,plural, =1{# minuto atrás}one{# minuto atrás}many{# minutos atrás}other{# minutos atrás}}"
- "{count,plural, =1{# hora atrás}one{# hora atrás}many{# horas atrás}other{# horas atrás}}"
- "{count,plural, =1{# dia atrás}one{# dia atrás}many{# dias atrás}other{# dias atrás}}"
- "{count,plural, =1{# ano atrás}one{# ano atrás}many{# anos atrás}other{# anos atrás}}"
- "{count,plural, =1{# minuto}one{# minuto}many{# minutos}other{# minutos}}"
- "{count,plural, =1{# hora}one{# hora}many{# horas}other{# horas}}"
- "{count,plural, =1{# dia}one{# dia}many{# dias}other{# dias}}"
- "{count,plural, =1{# ano}one{# ano}many{# anos}other{# anos}}"
+ "{count,plural, =1{# minuto atrás}one{# minuto atrás}other{# minutos atrás}}"
+ "{count,plural, =1{# hora atrás}one{# hora atrás}other{# horas atrás}}"
+ "{count,plural, =1{# dia atrás}one{# dia atrás}other{# dias atrás}}"
+ "{count,plural, =1{# ano atrás}one{# ano atrás}other{# anos atrás}}"
+ "{count,plural, =1{# minuto}one{# minuto}other{# minutos}}"
+ "{count,plural, =1{# hora}one{# hora}other{# horas}}"
+ "{count,plural, =1{# dia}one{# dia}other{# dias}}"
+ "{count,plural, =1{# ano}one{# ano}other{# anos}}""Problema com o vídeo""Este vídeo não é válido para transmissão neste dispositivo.""Não é possível reproduzir este vídeo."
@@ -1247,9 +1241,10 @@
"Preparando %1$s.""Iniciando apps.""Concluindo a inicialização."
+ "Continuar a configuração?""Você pressionou o botão liga/desliga. Normalmente, essa ação desliga a tela.\n\nToque levemente na tela durante a configuração da impressão digital."
- "Desligue a tela para encerrar a configuração"
- "Desativar"
+ "Desligar a tela"
+ "Continuar configuração""Continuar a verificação da digital?""Você pressionou o botão liga/desliga. Normalmente, essa ação desliga a tela.\n\nToque levemente na tela para verificar sua impressão digital.""Desligar a tela"
@@ -1328,10 +1323,10 @@
"P/ alterar: Configurações > Apps""Sempre permitir""Nunca permitir"
- "Chip removido"
- "A rede móvel ficará indisponível até que você reinicie com um chip válido."
+ "Chip removido"
+ "A rede móvel ficará indisponível até que você reinicie com um chip válido inserido.""Concluído"
- "Chip adicionado"
+ "Chip adicionado""Reinicie o dispositivo para acessar a rede móvel.""Reiniciar""Ativar serviço móvel"
@@ -1402,16 +1397,16 @@
"Toque para configurar""Selecione para configurar""Pode ser necessário reformatar o dispositivo. Toque para ejetá-lo."
- "Para armazenamento de fotos, vídeos, músicas e muito mais"
+ "Para transferir fotos e mídia""Procure arquivos de mídia""Ocorreu um problema com o %s""%s não está funcionando""Toque para corrigir""O %s está corrompido. Selecione para corrigir.""Pode ser necessário reformatar o dispositivo. Toque para ejetá-lo."
- "%s detectado"
+ "%s não compatível""%s não está funcionando"
- "Toque para configurar."
+ "Este dispositivo não é compatível com esse %s. Toque para configurar em um formato compatível.""Selecione para configurar %s em um formato compatível.""Pode ser necessário reformatar o dispositivo""%s foi removido inesperadamente"
@@ -1506,7 +1501,7 @@
"Pular""Não encontrado""Localizar na página"
- "{count,plural, =1{# correspondência}one{# de {total}}many{# de {total}}other{# de {total}}}"
+ "{count,plural, =1{# correspondência}one{# de {total}}other{# de {total}}}""Concluído""Limpando armazenamento compartilhado…""Compartilhar"
@@ -1529,7 +1524,7 @@
"Adicionar conta""Aumentar""Diminuir"
- "%s toque e pressione."
+ "%s toque e mantenha pressionado.""Deslize para cima para aumentar e para baixo para diminuir.""Aumentar minuto""Diminuir minuto"
@@ -1610,7 +1605,7 @@
"TV""Telefone""Alto-falantes na base"
- "Dispositivo externo"
+ "HDMI""Fones de ouvido""USB""Sistema"
@@ -1643,7 +1638,7 @@
"O chip foi desativado. Insira o código PUK para continuar. Entre em contato com a operadora para obter mais detalhes.""Digite o código PIN desejado""Confirme o código PIN desejado"
- "Desbloqueando chip…"
+ "Desbloqueando o chip…""Código PIN incorreto.""Digite um PIN com quatro a oito números.""O código PUK deve ter oito números."
@@ -1686,7 +1681,7 @@
"Permitir que o %1$s tenha controle total do seu dispositivo?""O controle total é adequado para apps que ajudam você com as necessidades de acessibilidade, mas não para a maioria dos apps.""Ver e controlar tela"
- "Pode ler todo o conteúdo na tela e o conteúdo se sobrepõe ao de outros apps."
+ "Pode ler todo o conteúdo na tela e mostrar conteúdo sobreposto a outros apps.""Ver e realizar ações""Pode monitorar suas interações com um app ou um sensor de hardware e interagir com apps em seu nome.""Permitir"
@@ -1702,7 +1697,7 @@
"Inversão de cores""Correção de cor""Modo para uma mão"
- "Escurecer a tela"
+ "Mais escuro""Teclas de volume pressionadas. Serviço %1$s ativado.""Teclas de volume pressionadas. %1$s desativado.""Toque nos dois botões de volume e os mantenha pressionados por três segundo para usar o %1$s"
@@ -1717,7 +1712,7 @@
"Alternando para %1$s…""Desconectando %1$s…""Proprietário"
- "Visitante"
+ "Convidado""Erro""Esta alteração não é permitida pelo administrador""Nenhum app encontrado para executar a ação"
@@ -1859,14 +1854,14 @@
"Para ajudar a reduzir o uso de dados, a Economia de dados impede que alguns apps enviem ou recebam dados em segundo plano. Um app que você está usando no momento pode acessar dados, mas com menos frequência. Isso pode fazer com que imagens não apareçam até você tocar nelas.""Ativar a Economia de dados?""Ativar"
- "{count,plural, =1{Por um minuto (até {formattedTime})}one{Por # minuto (até {formattedTime})}many{Por # minutos (até {formattedTime})}other{Por # minutos (até {formattedTime})}}"
- "{count,plural, =1{Por 1min (até {formattedTime})}one{Por #min (até {formattedTime})}many{Por #min (até {formattedTime})}other{Por #min (até {formattedTime})}}"
- "{count,plural, =1{Por 1 hora (até {formattedTime})}one{Por # hora (até {formattedTime})}many{Por # horas (até {formattedTime})}other{Por # horas (até {formattedTime})}}"
- "{count,plural, =1{Por 1h (até {formattedTime})}one{Por #h (até {formattedTime})}many{Por #h (até {formattedTime})}other{Por #h (até {formattedTime})}}"
- "{count,plural, =1{Por um minuto}one{Por # minuto}many{Por # minutos}other{Por # minutos}}"
- "{count,plural, =1{Por 1min}one{Por #min}many{Por #min}other{Por #min}}"
- "{count,plural, =1{Por 1 hora}one{Por # hora}many{Por # horas}other{Por # horas}}"
- "{count,plural, =1{Por 1h}one{Por #h}many{Por #h}other{Por #h}}"
+ "{count,plural, =1{Por um minuto (até {formattedTime})}one{Por # minuto (até {formattedTime})}other{Por # minutos (até {formattedTime})}}"
+ "{count,plural, =1{Por 1min (até {formattedTime})}one{Por #min (até {formattedTime})}other{Por #min (até {formattedTime})}}"
+ "{count,plural, =1{Por 1 hora (até {formattedTime})}one{Por # hora (até {formattedTime})}other{Por # horas (até {formattedTime})}}"
+ "{count,plural, =1{Por 1h (até {formattedTime})}one{Por #h (até {formattedTime})}other{Por #h (até {formattedTime})}}"
+ "{count,plural, =1{Por um minuto}one{Por # minuto}other{Por # minutos}}"
+ "{count,plural, =1{Por 1min}one{Por #min}other{Por #min}}"
+ "{count,plural, =1{Por 1 hora}one{Por # hora}other{Por # horas}}"
+ "{count,plural, =1{Por 1h}one{Por #h}other{Por #h}}""Até %1$s""Até às %1$s""Até %1$s (próximo alarme)"
@@ -1912,7 +1907,7 @@
"Desligar""Chamada recebida""Chamada em andamento"
- "Filtrando uma ligação recebida"
+ "Filtrando uma chamada recebida""Sem classificação""Você definiu a importância dessas notificações.""Isso é importante por causa das pessoas envolvidas."
@@ -1924,7 +1919,6 @@
"Preferência de região""Digitar nome do idioma""Sugeridos"
- "Sugestões""Todos os idiomas""Todas as regiões""Pesquisa"
@@ -1942,19 +1936,18 @@
"Câmera indisponível""Continuar no smartphone""Microfone indisponível"
- "Play Store indisponível""Configurações do Android TV indisponíveis""Configurações do tablet indisponíveis""Configurações do smartphone indisponíveis"
- "No momento, não é possível acessar esse app pelo %1$s. Tente pelo dispositivo Android TV."
- "No momento, não é possível acessar esse app pelo %1$s. Tente pelo seu tablet."
- "No momento, não é possível acessar esse app pelo %1$s. Tente pelo seu smartphone."
+ "Não é possível acessar esse app pelo seu %1$s. Tente pelo dispositivo Android TV."
+ "Não é possível acessar esse app pelo seu %1$s. Tente pelo tablet."
+ "Não é possível acessar esse app pelo seu %1$s. Tente pelo smartphone."
+ "No momento, não é possível acessar esse app pelo seu %1$s. Tente pelo dispositivo Android TV."
+ "No momento, não é possível acessar esse app pelo seu %1$s. Tente pelo tablet."
+ "No momento, não é possível acessar esse app pelo seu %1$s. Tente pelo smartphone.""Esse app está solicitando segurança extra. Tente pelo dispositivo Android TV.""Esse app está solicitando segurança extra. Tente pelo tablet.""Esse app está solicitando segurança extra. Tente pelo smartphone."
- "Não é possível acessar essa configuração pelo seu %1$s. Tente pelo dispositivo Android TV."
- "Não é possível acessar essa configuração pelo seu %1$s. Tente pelo tablet."
- "Não é possível acessar essa configuração pelo seu %1$s. Tente pelo smartphone.""Este app foi criado para uma versão mais antiga do Android e pode não funcionar corretamente. Tente verificar se há atualizações ou entre em contato com o desenvolvedor.""Procurar atualizações""Você tem mensagens novas"
@@ -1997,7 +1990,7 @@
"Salvar no Preenchimento automático""Não é possível preencher os conteúdos automaticamente""Sem sugestões de preenchimento automático"
- "{count,plural, =1{Uma sugestão de preenchimento automático}one{# sugestão de preenchimento automático}many{# sugestões de preenchimento automático}other{# sugestões de preenchimento automático}}"
+ "{count,plural, =1{Uma sugestão de preenchimento automático}one{# sugestão de preenchimento automático}other{# sugestões de preenchimento automático}}""Salvar em ""%1$s""?""Salvar %1$s em ""%2$s""?""Salvar %1$s e %2$s em ""%3$s""?"
@@ -2047,8 +2040,7 @@
"Permitir que o app %s acesse todos os registros do dispositivo?""Permitir o acesso único""Não permitir"
- "Os registros do dispositivo gravam o que acontece nele. Os apps podem usar esses registros para encontrar e corrigir problemas.\n\nAlguns registros podem conter informações sensíveis, então autorize o acesso a eles apenas para os apps em que você confia. \n\nSe você não permitir que esse app acesse todos os registros do dispositivo, ele ainda vai poder acessar os próprios. O fabricante do dispositivo também pode ter acesso a alguns registros ou informações."
- "Os registros do dispositivo gravam o que acontece nele. Os apps podem usar esses registros para encontrar e corrigir problemas.\n\nAlguns registros podem conter informações sensíveis, então autorize o acesso a eles apenas para os apps em que você confia. \n\nSe você não permitir que esse app acesse todos os registros do dispositivo, ele ainda vai poder acessar os próprios. O fabricante do dispositivo também pode ter acesso a alguns registros ou informações.\n\nSaiba mais em g.co/android/devicelogs."
+ "Os registros do dispositivo gravam o que acontece nele. Os apps podem usar esses registros para encontrar e corrigir problemas.\n\nAlguns registros podem conter informações sensíveis, então autorize apenas os apps em que você confia a acessar os registros. \n\nSe você não permitir que esse app acesse todos os registros do dispositivo, ele ainda vai poder acessar os próprios. O fabricante do dispositivo também pode ter acesso a alguns registros ou informações. Saiba mais""Não mostrar novamente""%1$s quer mostrar partes do app %2$s""Editar"
@@ -2061,7 +2053,8 @@
"O modo \"Não perturbe\" foi alterado""Toque para verificar o que está bloqueado.""Revise as configurações de notificação"
- "No Android 13 ou em versões mais recentes, os apps que você instala precisam de permissão para enviar notificações. Toque para mudar essa permissão para os apps já instalados."
+
+ "Lembrar mais tarde""Dispensar""Sistema"
@@ -2079,7 +2072,7 @@
"OK""Desativar""Saiba mais"
- "No Android 12, as notificações avançadas substituíram as notificações adaptáveis. Esse recurso mostra ações e respostas sugeridas, além de organizar suas notificações.\n\nAs notificações avançadas podem acessar o conteúdo das notificações, incluindo informações pessoais como nomes de contatos e mensagens. Elas também podem dispensar ou responder às notificações, como atender ligações telefônicas e controlar o Não perturbe."
+ "No Android 12, as notificações avançadas substituíram as notificações adaptáveis. Esse recurso mostra ações e respostas sugeridas, além de organizar suas notificações.\n\nAs notificações avançadas podem acessar o conteúdo das notificações, incluindo informações pessoais como nomes de contatos e mensagens. Elas também podem dispensar ou responder às notificações, como atender chamadas telefônicas e controlar o Não perturbe.""Notificação de informação do modo rotina""A bateria pode acabar antes da recarga normal""A Economia de bateria foi ativada para aumentar a duração da carga"
@@ -2108,7 +2101,7 @@
"Apresentação em %1$s""O Bluetooth permanecerá ativado no modo avião""Carregando"
- "{count,plural, =1{{file_name} + # arquivo}one{{file_name} + # arquivo}many{{file_name} + # arquivos}other{{file_name} + # arquivos}}"
+ "{count,plural, =1{{file_name} + # arquivo}one{{file_name} + # arquivo}other{{file_name} + # arquivos}}""Não há sugestões de pessoas para compartilhar""Lista de apps""Este app não tem permissão de gravação, mas pode capturar áudio pelo dispositivo USB."
@@ -2289,6 +2282,5 @@
"Verificar apps ativos""Não é possível acessar a câmera do smartphone pelo %1$s""Não é possível acessar a câmera do tablet pelo %1$s"
- "Não é possível acessar esse conteúdo durante o streaming. Tente pelo smartphone."
- "Padrão do sistema"
+ "Idioma do sistema"
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 72b0e082d566e24f5490fa66261facf341620259..9be4889754c032e966020f0ab67ea9b9888b3ca9 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Sem nome>""(Nenhum número de telefone)"
@@ -28,7 +33,6 @@
"Correio de voz""MSISDN1""Problema de ligação ou código MMI inválido."
- "Funcionalidade não suportada.""A operação está restringida a números fixos autorizados.""Não é possível alterar as definições do encaminhamento de chamadas no telemóvel quando está em roaming.""O serviço foi ativado."
@@ -43,18 +47,17 @@
"Os PINs que escreveu não correspondem.""Introduza um PIN entre 4 e 8 números.""Introduza um PUK que tenha 8 ou mais algarismos."
- "O seu SIM está bloqueado com o PUK. Introduza o código PUK para o desbloquear."
- "Introduza o PUK2 para desbloquear o SIM."
+ "O seu cartão SIM está bloqueado com PUK. Introduza o código PUK para desbloqueá-lo."
+ "Introduza o PUK2 para desbloquear o cartão SIM.""Ação sem êxito. Ative o bloqueio do SIM/RUIM."
- Tem mais %d tentativas antes de o cartão SIM ficar bloqueado.Tem mais %d tentativas antes de o cartão SIM ficar bloqueado.Tem mais %d tentativa antes de o cartão SIM ficar bloqueado."IMEI""MEID""ID do Autor da Chamada"
- "Ocultar identificação do autor da chamada feita"
+ "Ocultar identificação do autor da chamada efetuada""ID de linha ligada""Restrição de ID de linha ligada""Encaminhamento de chamadas"
@@ -160,7 +163,7 @@
"Não foi possível autenticar.""A autenticação através do servidor proxy falhou.""Não foi possível ligar ao servidor."
- "Não foi possível comunicar com o servidor. Tente mais tarde."
+ "Não foi possível comunicar com o servidor. Tente novamente mais tarde.""Esgotou o tempo limite da ligação ao servidor.""A página contém demasiados redireccionamentos do servidor.""O protocolo não é suportado."
@@ -168,7 +171,7 @@
"Não foi possível abrir a página porque o URL é inválido.""Não foi possível aceder ao ficheiro.""Não foi possível localizar o ficheiro solicitado."
- "Existem demasiados pedidos em processamento. Tente mais tarde."
+ "Existem demasiados pedidos em processamento. Tente novamente mais tarde.""Erro de início de sessão de %1$s""Sincronização""Não é possível sincronizar"
@@ -177,12 +180,12 @@
"O armazenamento de visualizações está cheio. Elimine alguns ficheiros para libertar espaço.""O armazenamento do dispositivo Android TV está cheio. Elimine alguns ficheiros para libertar espaço.""O armazenamento do telemóvel está cheio. Elimine alguns ficheiros para libertar espaço."
- "{count,plural, =1{Autoridade de certificação instalada}many{Autoridades de certificação instaladas}other{Autoridades de certificação instaladas}}"
+ "{count,plural, =1{Autoridade de certificação instalada}other{Autoridades de certificação instaladas}}""Por um terceiro desconhecido""Pelo gestor do seu perfil de trabalho""Por %s""Perfil de trabalho eliminado"
- "A app de administração do perfil de trabalho está em falta ou danificada. Por isso, o seu perfil de trabalho e os dados relacionados foram eliminados. Contacte o gestor para obter assistência."
+ "A app de administração do perfil de trabalho está em falta ou danificada. Consequentemente, o seu perfil de trabalho e os dados relacionados foram eliminados. Contacte o gestor para obter assistência.""O seu perfil de trabalho já não está disponível neste dispositivo""Demasiadas tentativas de introdução da palavra-passe""O administrador anulou o dispositivo para utilização pessoal."
@@ -251,7 +254,7 @@
"Utilize esta opção na maioria das circunstâncias. Permite monitorizar o progresso do relatório, introduzir mais detalhes acerca do problema e tirar capturas de ecrã. Pode omitir algumas secções menos utilizadas que demoram muito tempo a comunicar.""Relatório completo""Utilize esta opção para uma interferência mínima do sistema quando o dispositivo não responder ou estiver demasiado lento, ou quando precisar de todas as secções de relatório. Não permite introduzir mais detalhes ou tirar capturas de ecrã adicionais."
- "{count,plural, =1{A fazer uma captura de ecrã do relatório de erro dentro de # segundo.}many{A fazer uma captura de ecrã do relatório de erro dentro de # segundos.}other{A fazer uma captura de ecrã do relatório de erro dentro de # segundos.}}"
+ "{count,plural, =1{A fazer uma captura de ecrã do relatório de erro dentro de # segundo.}other{A fazer uma captura de ecrã do relatório de erro dentro de # segundos.}}""Captura de ecrã tirada com o relatório de erro.""Falha ao fazer captura de ecrã com o relatório de erro.""Modo silencioso"
@@ -302,12 +305,12 @@
"aceder ao calendário""SMS""enviar e ver mensagens SMS"
- "Ficheiros"
- "aceder aos ficheiros no seu dispositivo"
- "Música e áudio"
- "aceder a música e áudio no seu dispositivo"
- "Fotos e vídeos"
- "aceder a fotos e vídeos no seu dispositivo"
+ "Ficheiros e documentos"
+ "aceder a ficheiros e documentos no seu dispositivo"
+ "Música e outro áudio"
+ "aceder a ficheiros de áudio no dispositivo"
+ "Fotos e vídeos"
+ "aceder a imagens e ficheiros de áudio no dispositivo""Microfone""gravar áudio""Atividade física"
@@ -351,7 +354,7 @@
"desinstalar atalhos""Permite que a app remova atalhos do Ecrã principal sem a intervenção do utilizador.""redirecionar as chamadas efetuadas"
- "Permite que a app veja o número que é marcado durante uma chamada feita, com a opção de redirecionar a chamada para um número diferente ou terminar a chamada."
+ "Permite que a app veja o número que é marcado durante uma chamada efetuada, com a opção de redirecionar a chamada para um número diferente ou terminar a chamada.""atender chamadas telefónicas""Permite que a app atenda chamadas recebidas.""receber mensagens de texto (SMS)"
@@ -583,14 +586,13 @@
"Utilizar o bloqueio de ecrã""Introduza o bloqueio de ecrã para continuar""Prima firmemente o sensor"
- "Não é possível reconhecer a impressão digital. Tente novamente."
+ "Não foi possível processar a impressão digital. Tente novamente.""Limpe o sensor de impressões digitais e tente novamente""Limpe o sensor e tente novamente""Prima firmemente o sensor""Moveu o dedo demasiado lentamente. Tente novamente.""Experimente outra impressão digital""Está demasiado claro"
- "Detetou-se que o botão ligar/desligar foi premido""Experimente ajustar""Altere a posição do seu dedo ligeiramente de cada vez"
@@ -602,17 +604,16 @@
"Rosto autenticado. Prima Confirmar.""Hardware de impressão digital não disponível.""Não é possível configurar a impressão digital"
- "A configuração da impressão digital expirou. Tente novamente."
+ "Foi atingido o limite de tempo da impressão digital. Tente novamente.""Operação de impressão digital cancelada.""Operação de impressão digital cancelada pelo utilizador."
- "Demasiadas tentativas. Em alternativa, use o bloqueio de ecrã."
- "Demasiadas tentativas. Em alternativa, use o bloqueio de ecrã."
- "Não é possível processar a impressão digital. Tente novamente."
+ "Demasiadas tentativas. Tente novamente mais tarde."
+ "Demasiadas tentativas. Sensor de impressões digitais desativado."
+ "Tente novamente.""Nenhuma impressão digital registada.""Este dispositivo não tem sensor de impressões digitais.""Sensor temporariamente desativado.""Não é possível usar o sensor de impressões digitais. Visite um fornecedor de serviços de reparação"
- "Botão ligar/desligar premido""Dedo %d""Utilizar a impressão digital""Utilizar o bloqueio de ecrã ou a impressão digital"
@@ -633,33 +634,26 @@
"Desbloqueio por impressão digital""Não é possível utilizar o sensor de impressões digitais""Visite um fornecedor de serviços de reparação."
- "Impossível criar modelo de rosto. Tente novamente."
+ "Imp. capt. dados rosto precisos. Tente novamente.""Demasiado clara. Experimente uma luz mais suave."
- "Não há luz suficiente"
- "Afaste ainda mais o telemóvel"
- "Aproxime o telemóvel do rosto"
- "Mova o telemóvel mais para cima"
- "Mova o telemóvel mais para baixo"
- "Mova o telemóvel para a sua esquerda"
- "Mova o telemóvel para a sua direita"
+ "Demasiado escura. Experimente local com mais luz."
+ "Afaste ainda mais o telemóvel."
+ "Aproxime o telemóvel."
+ "Mova o telemóvel mais para cima."
+ "Mova o telemóvel mais para baixo."
+ "Mova o telemóvel para a esquerda."
+ "Mova o telemóvel para a direita.""Olhe mais diretamente para o dispositivo."
- "Não é possível ver o seu rosto. Mantenha o telemóvel ao nível dos olhos."
+ "Posicione o rosto em frente ao telemóvel.""Demasiado movimento. Mantenha o telemóvel firme.""Volte a inscrever o rosto."
- "Impossível reconhecer o rosto. Tente novamente."
- "Altere ligeiramente a posição da sua cabeça"
- "Olhe mais diretamente para o telemóvel"
- "Olhe mais diretamente para o telemóvel"
- "Olhe mais diretamente para o telemóvel"
+ "Impossível reconhecer o rosto. Tente novamente."
+ "Muito parecida, mude de pose."
+ "Rode a cabeça um pouco menos."
+ "Incline a cabeça um pouco menos."
+ "Rode a cabeça um pouco menos.""Remova tudo o que esteja a ocultar o seu rosto.""Limpe a parte superior do ecrã, incluindo a barra preta."
-
-
-
-
- "Não é possível criar o seu modelo de rosto. Tente novamente."
- "Óculos escuros detetados. O seu rosto tem de estar completamente visível."
- "Cobertura facial detetada. O seu rosto tem de estar completamente visível.""Não pode validar o rosto. Hardware não disponível."
@@ -667,7 +661,7 @@
"Não pode guardar novos dados de rostos. Elimine um antigo.""Operação de rosto cancelada.""Desbloqueio facial cancelado pelo utilizador"
- "Demasiadas tentativas. Tente mais tarde."
+ "Demasiadas tentativas. Tente novamente mais tarde.""Demasiadas tentativas. O Desbloqueio facial foi desativado.""Demasiadas tentativas. Em alternativa, introduza o bloqueio de ecrã.""Não é possível validar o rosto. Tente novamente."
@@ -925,14 +919,14 @@
"Tentar novamente""Desbloqueio de todas as funcionalidades e dados""Excedido o n.º máximo de tentativas de Desbloqueio facial"
- "Sem SIM"
- "Nenhum SIM no tablet."
- "Nenhum SIM no seu dispositivo Android TV."
- "Nenhum SIM no telemóvel."
- "Adicione um SIM."
- "O SIM está em falta ou não é legível. Adicione um SIM."
- "SIM inutilizável."
- "O SIM foi desativado permanentemente.\n Contacte o seu fornecedor de serviços de rede sem fios para obter outro SIM."
+ "Nenhum cartão SIM"
+ "Nenhum cartão SIM no tablet."
+ "Nenhum cartão SIM no seu dispositivo Android TV."
+ "Nenhum cartão SIM no telefone."
+ "Insira um cartão SIM."
+ "O cartão SIM está em falta ou não é legível. Introduza um cartão SIM."
+ "Cartão SIM inutilizável."
+ "O cartão SIM foi desativado definitivamente. \n Contacte o seu fornecedor de serviços de rede sem fios para obter outro cartão SIM.""Faixa anterior""Faixa seguinte""Interromper"
@@ -942,10 +936,10 @@
"Avançar""Apenas chamadas de emergência""Rede bloqueada"
- "O SIM está bloqueado com o PUK."
+ "O cartão SIM está bloqueado por PUK""Consulte o Manual de utilizador ou contacte a Assistência a Clientes."
- "O SIM está bloqueado."
- "A desbloquear SIM…"
+ "O cartão SIM está bloqueado."
+ "A desbloquear cartão SIM...""Desenhou a sua padrão de desbloqueio incorretamente %1$d vezes. \n\nTente novamente dentro de %2$d segundos.""Escreveu a sua palavra-passe incorretamente %1$d vezes. \n\n Tente novamente dentro de %2$d segundos.""Escreveu o seu número PIN incorretamente %1$d vezes. \n\n Tente novamente dentro de %2$d segundos."
@@ -1085,7 +1079,7 @@
"%1$s pretende ativar a funcionalidade Explorar Através do Toque. Quando a funcionalidade Explorar Através do Toque estiver ativada, pode ouvir ou visualizar descrições sobre o que está por baixo do seu dedo ou executar gestos para interagir com o telemóvel.""Há 1 mês""Há mais de 1 mês"
- "{count,plural, =1{# dia anterior}many{# dias anteriores}other{# dias anteriores}}"
+ "{count,plural, =1{# dia anterior}other{# dias anteriores}}""Último mês""Mais antiga""a %s"
@@ -1112,14 +1106,14 @@
"em %d h""em %d d""em %d a"
- "{count,plural, =1{Há # minuto}many{Há # minutos}other{Há # minutos}}"
- "{count,plural, =1{Há # hora}many{Há # horas}other{Há # horas}}"
- "{count,plural, =1{Há # dia}many{Há # dias}other{Há # dias}}"
- "{count,plural, =1{Há # ano}many{Há # anos}other{Há # anos}}"
- "{count,plural, =1{# minuto}many{# minutos}other{# minutos}}"
- "{count,plural, =1{# hora}many{# horas}other{# horas}}"
- "{count,plural, =1{# dia}many{# dias}other{# dias}}"
- "{count,plural, =1{# ano}many{# anos}other{# anos}}"
+ "{count,plural, =1{Há # minuto}other{Há # minutos}}"
+ "{count,plural, =1{Há # hora}other{Há # horas}}"
+ "{count,plural, =1{Há # dia}other{Há # dias}}"
+ "{count,plural, =1{Há # ano}other{Há # anos}}"
+ "{count,plural, =1{# minuto}other{# minutos}}"
+ "{count,plural, =1{# hora}other{# horas}}"
+ "{count,plural, =1{# dia}other{# dias}}"
+ "{count,plural, =1{# ano}other{# anos}}""Problema com o vídeo""Este vídeo não é válido para transmissão neste aparelho.""Não é possível reproduzir este vídeo."
@@ -1230,7 +1224,7 @@
"Mostrar sempre""A app %1$s foi concebida para uma versão incompatível do SO Android e pode ter um comportamento inesperado. Pode estar disponível uma versão atualizada da app.""Mostrar sempre"
- "Rever atualizações"
+ "Verificar atualizações""A app %1$s (processo %2$s) violou a política StrictMode auto-imposta.""O processo %1$s violou a política StrictMode auto-imposta.""O telemóvel está a atualizar…"
@@ -1247,9 +1241,10 @@
"A preparar o %1$s.""A iniciar aplicações""A concluir o arranque."
+ "Continuar a configuração?""Premiu o botão ligar/desligar. Geralmente, esta ação desliga o ecrã.\n\nExperimente tocar levemente ao configurar a sua impressão digital."
- "Termine a configuração ao desligar ecrã"
- "Desativar"
+ "Desligar ecrã"
+ "Continuar configur.""Continuar a validar a impressão digital?""Premiu o botão ligar/desligar. Geralmente, esta ação desliga o ecrã.\n\nExperimente tocar levemente para validar a sua impressão digital.""Desligar ecrã"
@@ -1328,10 +1323,10 @@
"Pode alterar mais tarde em Definições > Apps""Permitir Sempre""Nunca Permitir"
- "SIM removido"
- "A rede móvel vai estar indisponível até que reinicie o dispositivo com um SIM válido."
+ "Cartão SIM removido"
+ "A rede de telemóvel estará indisponível até que reinicie o aparelho com um cartão SIM válido inserido.""Concluído"
- "SIM adicionado"
+ "Cartão SIM adicionado""Reinicie o aparelho para aceder à rede de telemóvel.""Reiniciar""Ativar o serviço móvel"
@@ -1402,16 +1397,16 @@
"Toque para configurar.""Selecione para configurar""Poderá ser necessário reformatar o dispositivo. Toque para o ejetar."
- "Para armazenar fotos, vídeos, música e muito mais"
+ "Transf. fotos, conteúdos multimédia.""Procure ficheiros multimédia""Ocorreu um problema com o %s""%s não está a funcionar.""Toque para corrigir.""O(a) %s está danificado(a). Selecione para corrigir.""Poderá ser necessário reformatar o dispositivo. Toque para o ejetar."
- "%s detetado"
+ "%s não suportado""%s não está a funcionar."
- "Toque para configurar."
+ "Este dispositivo não é compatível com este %s. Toque para o configurar num formato compatível.""Selecione para configurar o(a) %s num formato suportado.""Poderá ser necessário reformatar o dispositivo.""%s foi removido inesperadamente"
@@ -1425,7 +1420,7 @@
"Explorar""Saída do interruptor""%s em falta"
- "Volte a inserir o dispositivo"
+ "Volte a inserir o dispositivo.""A mover %s""A mover dados""Transf. de conteúdo concluída"
@@ -1506,7 +1501,7 @@
"Ignorar""Sem correspondências""Localizar na página"
- "{count,plural, =1{# correspondência}many{# de {total}}other{# de {total}}}"
+ "{count,plural, =1{# correspondência}other{# de {total}}}""Concluído""A apagar o armazenamento partilhado…""Partilhar"
@@ -1610,7 +1605,7 @@
"TV""Telemóvel""Altif. estação ancoragem"
- "Dispositivo externo"
+ "HDMI""Auscultadores""USB""Sistema"
@@ -1643,7 +1638,7 @@
"O SIM está agora desativado. Introduza o código PUK para continuar. Contacte o operador para obter detalhes.""Introduza o código PIN pretendido""Confirme o código PIN pretendido"
- "A desbloquear SIM…"
+ "A desbloquear cartão SIM...""Código PIN incorreto.""Introduza um PIN entre 4 e 8 números.""O código PUK deve ter 8 números."
@@ -1705,7 +1700,7 @@
"Mais escuro""Teclas do volume premidas. Serviço %1$s ativado.""Teclas de volume premidas. Serviço %1$s desativado."
- "prima sem soltar as teclas de volume durante três segundos para usar o serviço %1$s."
+ "Prima sem soltar as teclas de volume durante três segundos para utilizar o serviço %1$s.""Escolha uma funcionalidade para utilizar quando tocar no botão Acessibilidade:""Escolha a funcionalidade a utilizar com o gesto de acessibilidade (deslize rapidamente com dois dedos para cima a partir da parte inferior do ecrã):""Escolha a funcionalidade a utilizar com o gesto de acessibilidade (deslize rapidamente com três dedos para cima a partir da parte inferior do ecrã):"
@@ -1832,7 +1827,7 @@
"Crie um PIN para modificar as restrições""Os PINs não correspondem. Tente novamente.""O PIN é demasiado pequeno. Deve ter, no mínimo, 4 dígitos."
- "Tente mais tarde"
+ "Tente novamente mais tarde""Visualização de ecrã inteiro""Para sair, deslize rapidamente para baixo a partir da parte superior.""OK"
@@ -1859,14 +1854,14 @@
"Para ajudar a reduzir a utilização de dados, a Poupança de dados impede que algumas apps enviem ou recebam dados em segundo plano. Uma determinada app que esteja a utilizar atualmente pode aceder aos dados, mas é possível que o faça com menos frequência. Isto pode significar, por exemplo, que as imagens não são apresentadas até que toque nas mesmas.""Ativar a Poupança de dados?""Ativar"
- "{count,plural, =1{Durante um minuto (até à[s] {formattedTime})}many{Durante # minutos (até à[s] {formattedTime})}other{Durante # minutos (até à[s] {formattedTime})}}"
- "{count,plural, =1{Durante 1 min (até à[s] {formattedTime})}many{Durante # min (até à[s] {formattedTime})}other{Durante # min (até à[s] {formattedTime})}}"
- "{count,plural, =1{Durante 1 hora (até à[s] {formattedTime})}many{Durante # horas (até à[s] {formattedTime})}other{Durante # horas (até à[s] {formattedTime})}}"
- "{count,plural, =1{Durante 1 h (até à[s] {formattedTime})}many{Durante # h (até à[s] {formattedTime})}other{Durante # h (até à[s] {formattedTime})}}"
- "{count,plural, =1{Durante um minuto}many{Durante # minutos}other{Durante # minutos}}"
- "{count,plural, =1{Durante 1 min}many{Durante # min}other{Durante # min}}"
- "{count,plural, =1{Durante 1 hora}many{Durante # horas}other{Durante # horas}}"
- "{count,plural, =1{Durante 1 h}many{Durante # h}other{Durante # h}}"
+ "{count,plural, =1{Durante um minuto (até à[s] {formattedTime})}other{Durante # minutos (até à[s] {formattedTime})}}"
+ "{count,plural, =1{Durante 1 min (até à[s] {formattedTime})}other{Durante # min (até à[s] {formattedTime})}}"
+ "{count,plural, =1{Durante 1 hora (até à[s] {formattedTime})}other{Durante # horas (até à[s] {formattedTime})}}"
+ "{count,plural, =1{Durante 1 h (até à[s] {formattedTime})}other{Durante # h (até à[s] {formattedTime})}}"
+ "{count,plural, =1{Durante um minuto}other{Durante # minutos}}"
+ "{count,plural, =1{Durante 1 min}other{Durante # min}}"
+ "{count,plural, =1{Durante 1 hora}other{Durante # horas}}"
+ "{count,plural, =1{Durante 1 h}other{Durante # h}}""Até %1$s""Até às %1$s""Até %1$s (próximo alarme)"
@@ -1924,7 +1919,6 @@
"Preferência de região""Intr. nome do idioma""Sugeridos"
- "Sugeridas""Todos os idiomas""Todas as regiões""Pesquisa"
@@ -1942,21 +1936,20 @@
"Câmara indisponível""Continue no telemóvel""Microfone indisponível"
- "Play Store indisponível""Definições do Android TV indisponíveis""Definições do tablet indisponíveis""Definições do telemóvel indisponíveis"
- "De momento, não é possível aceder a esta app no seu %1$s. Em alternativa, experimente no dispositivo Android TV."
- "De momento, não é possível aceder a esta app no seu %1$s. Em alternativa, experimente no tablet."
- "De momento, não é possível aceder a esta app no seu %1$s. Em alternativa, experimente no telemóvel."
+ "Não é possível aceder a esta app no seu dispositivo %1$s. Em alternativa, experimente no dispositivo Android TV."
+ "Não é possível aceder a esta app no seu dispositivo %1$s. Em alternativa, experimente no tablet."
+ "Não é possível aceder a esta app no seu dispositivo %1$s. Em alternativa, experimente no telemóvel."
+ "De momento, não é possível aceder a esta app no seu %1$s. Em alternativa, experimente no dispositivo Android TV."
+ "De momento, não é possível aceder a esta app no seu %1$s. Em alternativa, experimente no tablet."
+ "De momento, não é possível aceder a esta app no seu %1$s. Em alternativa, experimente no telemóvel.""Esta app está a solicitar segurança adicional. Em alternativa, experimente no dispositivo Android TV.""Esta app está a solicitar segurança adicional. Em alternativa, experimente no tablet.""Esta app está a solicitar segurança adicional. Em alternativa, experimente no telemóvel."
- "Não é possível aceder a esta app no seu dispositivo %1$s. Em alternativa, experimente no dispositivo Android TV."
- "Não é possível aceder a esta app no seu dispositivo %1$s. Em alternativa, experimente no tablet."
- "Não é possível aceder a esta app no seu dispositivo %1$s. Em alternativa, experimente no telemóvel.""Esta app foi concebida para uma versão mais antiga do Android e pode não funcionar corretamente. Experimente verificar se existem atualizações ou contacte o programador."
- "Rever atualizações"
+ "Verificar atualizações""Tem mensagens novas""Abra a app de SMS para ver""Algumas funcionalidades limitadas"
@@ -1997,7 +1990,7 @@
"Guardar para o Preenchimento automático""Não é possível preencher automaticamente o conteúdo""Sem sugestões do preenchimento automático"
- "{count,plural, =1{Uma sugestão do preenchimento automático}many{# sugestões de preenchimento automático}other{# sugestões de preenchimento automático}}"
+ "{count,plural, =1{Uma sugestão do preenchimento automático}other{# sugestões de preenchimento automático}}""Pretende guardar em ""%1$s""?""Pretende guardar %1$s em ""%2$s""?""Pretende guardar %1$s e %2$s em ""%3$s""?"
@@ -2047,8 +2040,7 @@
"Permitir que a app %s aceda a todos os registos do dispositivo?""Permitir acesso único""Não permitir"
- "Os registos do dispositivo documentam o que ocorre no seu dispositivo. As apps podem usar esses registos para detetar e corrigir problemas.\n\nAlguns registos podem conter informações confidenciais e, por isso, o acesso a todos os registos do dispositivo deve apenas ser permitido às apps nas quais confia. \n\nSe não permitir o acesso desta app a todos os registos do dispositivo, esta pode ainda assim aceder aos próprios registos. O fabricante do dispositivo pode continuar a aceder a alguns registos ou informações no seu dispositivo."
- "Os registos do dispositivo documentam o que ocorre no seu dispositivo. As apps podem usar esses registos para detetar e corrigir problemas.\n\nAlguns registos podem conter informações confidenciais e, por isso, o acesso a todos os registos do dispositivo só deve ser permitido às apps nas quais confia. \n\nSe não permitir o acesso desta app a todos os registos do dispositivo, esta pode ainda assim aceder aos próprios registos. O fabricante do dispositivo pode continuar a aceder a alguns registos ou informações no seu dispositivo.\n\nSaiba mais em g.co/android/devicelogs."
+ "Os registos do dispositivo documentam o que ocorre no seu dispositivo. As apps podem usar esses registos para detetar e corrigir problemas.\n\nAlguns registos podem conter informações confidenciais, pelo que o acesso a todos os registos do dispositivo deve apenas ser permitido às apps nas quais confia. \n\nSe não permitir o acesso desta app a todos os registos do dispositivo, a mesma pode ainda assim aceder aos próprios registos. O fabricante do dispositivo pode continuar a aceder a alguns registos ou informações no seu dispositivo. Saiba mais""Não mostrar de novo""A app %1$s pretende mostrar partes da app %2$s.""Editar"
@@ -2061,7 +2053,8 @@
"O modo Não incomodar foi alterado""Toque para verificar o que está bloqueado.""Analise as definições de notificação"
- "A partir do Android 13, as apps que instalar precisam da sua autorização para enviar notificações. Toque para alterar esta autorização para as apps existentes."
+
+ "Lembrar mais tarde""Ignorar""Sistema"
@@ -2108,7 +2101,7 @@
"Apresentação %1$s""O Bluetooth continuará ativado durante o modo de avião.""A carregar…"
- "{count,plural, =1{{file_name} + # ficheiro}many{{file_name} + # ficheiros}other{{file_name} + # ficheiros}}"
+ "{count,plural, =1{{file_name} + # ficheiro}other{{file_name} + # ficheiros}}""Não existem pessoas recomendadas com quem partilhar""Lista de aplicações""Esta app não recebeu autorização de gravação, mas pode capturar áudio através deste dispositivo USB."
@@ -2286,9 +2279,8 @@
"Uma app ainda está ativa""A app %1$s está a ser executada em segundo plano Toque para gerir a utilização da bateria.""A app %1$s pode afetar a autonomia da bateria. Toque para rever as apps ativas."
- "Rever apps ativas"
+ "Verificar apps ativas""Não é possível aceder à câmara do telemóvel a partir do dispositivo %1$s""Não é possível aceder à câmara do tablet a partir do dispositivo %1$s"
- "Não é possível aceder a isto durante o streaming. Em alternativa, experimente no telemóvel."
- "Predefinição do sistema"
+ "Idioma do sistema"
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index b117b78382c7305fc8d864745241741f76b8559a..00f99834b90514897fd12357175fa002467a0b74 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "KB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Sem título>""(Nenhum número de telefone)"
@@ -28,7 +33,6 @@
"Correio de voz""MSISDN1""Problema de conexão ou código MMI inválido."
- "Recurso indisponível.""A operação é limitada somente a números de discagem fixa.""Não é possível alterar as configurações de encaminhamento de chamada do seu smartphone em roaming.""O serviço foi ativado."
@@ -43,12 +47,11 @@
"Os PINs digitados não correspondem.""Digite um PIN com 4 a 8 números.""Digite um PUK com oito números ou mais."
- "O chip está bloqueado por uma PUK. Digite o código PUK para desbloquear."
- "Digite a PUK2 para desbloquear o chip."
+ "O seu chip está bloqueado por um PUK. Digite o código PUK para desbloqueá-lo."
+ "Digite o PUK2 para desbloquear o chip.""Falha. Ative o bloqueio do chip/R-UIM."Tentativas restantes: %d. Caso o código correto não seja digitado, o chip será bloqueado.
- Tentativas restantes: %d. Caso o código correto não seja digitado, o chip será bloqueado.Tentativas restantes: %d. Caso o código correto não seja digitado, o chip será bloqueado."IMEI"
@@ -177,7 +180,7 @@
"Armazenamento do relógio cheio. Exclua alguns arquivos para liberar espaço.""O armazenamento do dispositivo Android TV está cheio. Exclua alguns arquivos para liberar espaço.""O armazenamento do telefone está cheio. Exclua alguns arquivos para liberar espaço."
- "{count,plural, =1{Autoridade certificadora instalada}one{Autoridade certificadora instalada}many{Autoridades certificadoras instaladas}other{Autoridades certificadoras instaladas}}"
+ "{count,plural, =1{Autoridade certificadora instalada}one{Autoridade certificadora instalada}other{Autoridades certificadoras instaladas}}""Por terceiros desconhecidos""Pelo administrador do seu perfil de trabalho""Por %s"
@@ -251,7 +254,7 @@
"Use este recurso na maioria das circunstâncias. Ele permite que você acompanhe o progresso do relatório, informe mais detalhes sobre o problema e faça capturas de tela. É possível que ele omita algumas seções menos utilizadas que levam muito tempo na emissão dos relatórios.""Relatório completo""Use esta opção para ter o mínimo de interferência do sistema quando seu dispositivo não estiver respondendo ou estiver muito lento, ou quando você precisar de todas as seções de relatórios. Ela não permite que você informe mais detalhes ou faça capturas de tela adicionais."
- "{count,plural, =1{Capturas de tela para o relatório do bug vão ser feitas em # segundo.}one{Capturas de tela para o relatório do bug vão ser feitas em # segundo.}many{Capturas de tela para o relatório do bug vão ser feitas em # segundos.}other{Capturas de tela para o relatório do bug vão ser feitas em # segundos.}}"
+ "{count,plural, =1{Capturas de tela para o relatório do bug vão ser feitas em # segundo.}one{Capturas de tela para o relatório do bug vão ser feitas em # segundo.}other{Capturas de tela para o relatório do bug vão ser feitas em # segundos.}}""Captura de tela com o relatório do bug concluída""Falha ao capturar a tela com o relatório do bug""Modo silencioso"
@@ -292,7 +295,7 @@
"%1$s, %2$s""Modo de segurança""Sistema Android"
- "Mudar para o perfil pessoal"
+ "Deslize até o perfil pessoal""Perfil de trabalho""Contatos""acesse seus contatos"
@@ -302,12 +305,12 @@
"acesse sua agenda""SMS""envie e veja mensagens SMS"
- "Arquivos"
- "acessar arquivos no dispositivo"
- "Música e áudio"
- "acessar música e áudio no dispositivo"
- "Fotos e vídeos"
- "acessar fotos e vídeos no dispositivo"
+ "Arquivos e documentos"
+ "acessar arquivos e documentos no seu dispositivo"
+ "Música e outros áudios"
+ "acessar arquivos de áudio no seu dispositivo"
+ "Fotos e vídeos"
+ "acessar arquivos de imagem e vídeo no seu dispositivo""Microfone""grave áudio""Atividade física"
@@ -352,8 +355,8 @@
"Permite que o app remova atalhos da tela inicial sem a intervenção do usuário.""redirecionar as chamadas efetuadas""Permite que o app veja o número discado ao realizar uma chamada, com a opção de redirecionar a chamada para outro número ou abortá-la."
- "atender ligações telefônicas"
- "Permite que o app atenda uma ligação recebida."
+ "atender chamadas telefônicas"
+ "Permite que o app atenda uma chamada recebida.""receber mensagens de texto (SMS)""Permite que o app receba e processe mensagens SMS. Isso significa que o app pode monitorar ou excluir mensagens enviadas para o dispositivo sem mostrá-las para você.""receber mensagens de texto (MMS)"
@@ -417,7 +420,7 @@
"Permite que o app modifique os dados sobre os contatos armazenados no dispositivo Android TV. Essa permissão autoriza os apps a excluírem dados de contato.""Permite que o app modifique os dados sobre os contatos armazenados no smartphone. Essa permissão autoriza os apps a excluírem dados de contato.""ler registro de chamadas"
- "Este app pode ler seu histórico de ligações."
+ "Este app pode ler seu histórico de chamadas.""salvar no registo de chamadas""Permite que o app modifique o registro de chamadas de seu tablet, incluindo dados sobre chamadas recebidas e efetuadas. Apps maliciosos podem usar esta permissão para apagar ou modificar seu registro de chamadas.""Permite que o app modifique o registro de chamadas do seu dispositivo Android TV, incluindo dados sobre chamadas recebidas e realizadas. Apps maliciosos podem usar essa permissão para apagar ou modificar seu registro de chamadas."
@@ -436,8 +439,8 @@
"Este app pode adicionar, remover ou alterar eventos da agenda no seu smartphone. Ele também pode enviar mensagens que aparentem ser de autoria do proprietário da agenda ou alterar eventos sem notificar o proprietário.""acessar comandos extras do provedor de localização""Permite que o app acesse comandos do provedor não relacionados à localização. Isso pode permitir que o app interfira no funcionamento do GPS ou de outras fontes de localização."
- "acessar local exato apenas em primeiro plano"
- "Esse app poderá acessar seu local exato com os Serviços de localização enquanto estiver sendo usado. Os Serviços de localização do dispositivo precisam estar ativados para que o app possa acessar o local. Isso pode aumentar o uso da bateria."
+ "acessar localização precisa apenas em primeiro plano"
+ "Esse app poderá acessar sua localização exata com os Serviços de localização enquanto estiver sendo usado. Os Serviços de localização do dispositivo precisam estar ativados para que o app possa acessar o local. Isso pode aumentar o uso da bateria.""acessar local aproximado apenas em primeiro plano""Esse app poderá acessar sua localização aproximada com os Serviços de localização enquanto estiver sendo usado. Os Serviços de localização do dispositivo precisam estar ativados para que o app possa acessar o local.""acessar a localização em segundo plano"
@@ -583,14 +586,13 @@
"Usar bloqueio de tela""Insira seu bloqueio de tela para continuar""Pressione o sensor com firmeza"
- "Não foi possível reconhecer a impressão digital. Tente de novo."
+ "Não foi possível processar a impressão digital. Tente novamente.""Limpe o sensor de impressão digital e tente novamente""Limpe o sensor e tente novamente""Pressione o sensor com firmeza""O movimento do dedo está muito lento. Tente novamente.""Use outra impressão digital""Claro demais"
- "O botão liga/desliga foi pressionado""Ajuste a posição do dedo""Mude a posição do dedo ligeiramente a cada momento"
@@ -602,17 +604,16 @@
"Rosto autenticado, pressione \"Confirmar\"""Hardware de impressão digital não disponível.""Não foi possível configurar a impressão digital"
- "A configuração da impressão digital expirou. Tente de novo."
+ "Tempo máximo para captura da impressão digital atingido. Tente novamente.""Operação de impressão digital cancelada.""Operação de impressão digital cancelada pelo usuário."
- "Excesso de tentativas. Use o bloqueio de tela."
- "Excesso de tentativas. Use o bloqueio de tela."
- "Não foi possível processar a impressão digital. Tente de novo."
+ "Excesso de tentativas. Tente novamente mais tarde."
+ "Excesso de tentativas. Sensor de impressão digital desativado."
+ "Tente novamente.""Nenhuma impressão digital registrada.""Este dispositivo não tem um sensor de impressão digital.""Sensor desativado temporariamente.""Não foi possível usar o sensor de impressão digital. Entre em contato com uma assistência técnica"
- "Botão liga/desliga pressionado""Dedo %d""Usar impressão digital""Usar impressão digital ou bloqueio de tela"
@@ -633,33 +634,26 @@
"Desbloqueio por impressão digital""Não foi possível usar o sensor de impressão digital""Entre em contato com uma assistência técnica."
- "Falha ao criar o modelo de rosto. Tente de novo."
+ "Dados precisos não capturados. Tente novamente.""Muito iluminado. Diminua a iluminação."
- "Não há luz suficiente"
- "Afaste o smartphone"
- "Aproxime o smartphone do seu rosto"
- "Mova o smartphone para cima"
- "Mova o smartphone para baixo"
- "Mova o smartphone para a esquerda"
- "Mova o smartphone para a direita"
+ "Muito escuro. Use uma iluminação mais clara."
+ "Afaste o smartphone."
+ "Aproxime o smartphone."
+ "Mova o smartphone para cima."
+ "Mova o smartphone para baixo."
+ "Mova o smartphone para a esquerda."
+ "Mova o smartphone para a direita.""Olhe mais diretamente para o dispositivo."
- "Rosto não detectado. Segure o smartphone na altura dos olhos."
+ "Deixe o rosto diretamente na frente do smartphone.""Muito movimento. Não mova o smartphone.""Registre seu rosto novamente."
- "Não foi possível reconhecer o rosto. Tente de novo."
- "Mude a posição da cabeça ligeiramente"
- "Olhe diretamente para o smartphone"
- "Olhe diretamente para o smartphone"
- "Olhe diretamente para o smartphone"
+ "O rosto não é mais reconhecido. Tente novamente."
+ "Muito parecido, mude de posição."
+ "Incline a cabeça um pouco menos."
+ "Incline a cabeça um pouco menos."
+ "Incline a cabeça um pouco menos.""Remova tudo que esteja ocultando seu rosto.""Limpe a parte superior da tela, inclusive a barra preta"
-
-
-
-
- "Falha ao criar o modelo de rosto. Tente de novo."
- "Óculos escuros detectados. Seu rosto precisa estar completamente visível."
- "Máscara detectada. Seu rosto precisa estar completamente visível.""Impossível verificar rosto. Hardware indisponível."
@@ -741,11 +735,11 @@
"Permite que um app remova certificados de DRM. Não deve ser necessário para apps comuns.""vincular a um serviço de mensagens de operadora""Permite que o proprietário use a interface de nível superior de um serviço de mensagens de operadora. Não deve ser necessária para apps comuns."
- "vincular a serviços da operadora"
- "Permite que o proprietário use serviços da operadora. Não deve ser necessário para apps comuns."
+ "vincular a serviços de operadora"
+ "Permite que o proprietário use serviços de operadora. Não deve ser necessário para apps comuns.""acessar \"Não perturbe\"""Permitir que o app leia e grave a configuração \"Não perturbe\"."
- "começar a usar a permissão para ver"
+ "iniciar uso da permissão para visualização""Permite que o sistema inicie o uso de permissão para um app. Não deve ser necessário para apps comuns.""decisões de permissão da visualização inicial""Autoriza o detentor a iniciar a tela para revisar as decisões de permissão. Não deve ser necessário para apps normais."
@@ -892,7 +886,7 @@
"Amigo(a)""Gerente""Mãe"
- "familiar responsável"
+ "Pai/Mãe""Parceiro""Indicado por""Parente"
@@ -925,14 +919,14 @@
"Tente novamente""Desbloqueio para todos os recursos e dados""O número máximo de tentativas de desbloqueio por reconhecimento facial foi excedido"
- "Sem chip"
- "Nenhum chip no tablet."
- "Nenhum chip no seu dispositivo Android TV."
- "Nenhum chip no smartphone."
- "Adicione um chip."
- "O chip não foi inserido ou não pode ser lido. Adicione um chip."
- "Chip inutilizável."
- "Seu chip foi desativado permanentemente.\n Entre em contato com seu provedor de serviços sem fio para receber outro chip."
+ "Sem chip"
+ "Não há um chip no tablet."
+ "Nenhum chip no seu dispositivo Android TV."
+ "Não há um chip no telefone."
+ "Insera um chip."
+ "O chip não foi inserido ou não é possível lê-lo. Insira um chip."
+ "Chip inutilizável."
+ "O chip foi desativado permanentemente.\nEntre em contato com seu provedor de serviços sem fio para obter outro chip.""Faixa anterior""Próxima faixa""Pausar"
@@ -942,10 +936,10 @@
"Avançar""Só chamadas de emergência""Rede bloqueada"
- "O chip está bloqueado pela PUK."
+ "O chip está bloqueado pelo PUK.""Consulte o Guia do usuário ou entre em contato com o Serviço de atendimento ao cliente."
- "O chip está bloqueado."
- "Desbloqueando chip…"
+ "O chip está bloqueado."
+ "Desbloqueando o chip…""Você desenhou seu padrão de desbloqueio incorretamente %1$d vezes. \n\nTente novamente em %2$d segundos.""Você digitou sua senha incorretamente %1$d vezes. \n\nTente novamente em %2$d segundos.""Você digitou seu PIN incorretamente %1$d vezes.\n\nTente novamente em %2$d segundos."
@@ -1085,7 +1079,7 @@
"%1$s quer ativar o Explorar por toque. Com ele, você pode ouvir ou ver descrições do que está sob seu dedo e interagir com o telefone por gestos.""1 mês atrás""Antes de 1 mês atrás"
- "{count,plural, =1{No último # dia}one{No último # dia}many{Nos últimos # dias}other{Nos últimos # dias}}"
+ "{count,plural, =1{No último # dia}one{No último # dia}other{Nos últimos # dias}}""Mês passado""Mais antigos""em %s"
@@ -1112,14 +1106,14 @@
"em %dh""em %d dias""em %da"
- "{count,plural, =1{# minuto atrás}one{# minuto atrás}many{# minutos atrás}other{# minutos atrás}}"
- "{count,plural, =1{# hora atrás}one{# hora atrás}many{# horas atrás}other{# horas atrás}}"
- "{count,plural, =1{# dia atrás}one{# dia atrás}many{# dias atrás}other{# dias atrás}}"
- "{count,plural, =1{# ano atrás}one{# ano atrás}many{# anos atrás}other{# anos atrás}}"
- "{count,plural, =1{# minuto}one{# minuto}many{# minutos}other{# minutos}}"
- "{count,plural, =1{# hora}one{# hora}many{# horas}other{# horas}}"
- "{count,plural, =1{# dia}one{# dia}many{# dias}other{# dias}}"
- "{count,plural, =1{# ano}one{# ano}many{# anos}other{# anos}}"
+ "{count,plural, =1{# minuto atrás}one{# minuto atrás}other{# minutos atrás}}"
+ "{count,plural, =1{# hora atrás}one{# hora atrás}other{# horas atrás}}"
+ "{count,plural, =1{# dia atrás}one{# dia atrás}other{# dias atrás}}"
+ "{count,plural, =1{# ano atrás}one{# ano atrás}other{# anos atrás}}"
+ "{count,plural, =1{# minuto}one{# minuto}other{# minutos}}"
+ "{count,plural, =1{# hora}one{# hora}other{# horas}}"
+ "{count,plural, =1{# dia}one{# dia}other{# dias}}"
+ "{count,plural, =1{# ano}one{# ano}other{# anos}}""Problema com o vídeo""Este vídeo não é válido para transmissão neste dispositivo.""Não é possível reproduzir este vídeo."
@@ -1247,9 +1241,10 @@
"Preparando %1$s.""Iniciando apps.""Concluindo a inicialização."
+ "Continuar a configuração?""Você pressionou o botão liga/desliga. Normalmente, essa ação desliga a tela.\n\nToque levemente na tela durante a configuração da impressão digital."
- "Desligue a tela para encerrar a configuração"
- "Desativar"
+ "Desligar a tela"
+ "Continuar configuração""Continuar a verificação da digital?""Você pressionou o botão liga/desliga. Normalmente, essa ação desliga a tela.\n\nToque levemente na tela para verificar sua impressão digital.""Desligar a tela"
@@ -1328,10 +1323,10 @@
"P/ alterar: Configurações > Apps""Sempre permitir""Nunca permitir"
- "Chip removido"
- "A rede móvel ficará indisponível até que você reinicie com um chip válido."
+ "Chip removido"
+ "A rede móvel ficará indisponível até que você reinicie com um chip válido inserido.""Concluído"
- "Chip adicionado"
+ "Chip adicionado""Reinicie o dispositivo para acessar a rede móvel.""Reiniciar""Ativar serviço móvel"
@@ -1402,16 +1397,16 @@
"Toque para configurar""Selecione para configurar""Pode ser necessário reformatar o dispositivo. Toque para ejetá-lo."
- "Para armazenamento de fotos, vídeos, músicas e muito mais"
+ "Para transferir fotos e mídia""Procure arquivos de mídia""Ocorreu um problema com o %s""%s não está funcionando""Toque para corrigir""O %s está corrompido. Selecione para corrigir.""Pode ser necessário reformatar o dispositivo. Toque para ejetá-lo."
- "%s detectado"
+ "%s não compatível""%s não está funcionando"
- "Toque para configurar."
+ "Este dispositivo não é compatível com esse %s. Toque para configurar em um formato compatível.""Selecione para configurar %s em um formato compatível.""Pode ser necessário reformatar o dispositivo""%s foi removido inesperadamente"
@@ -1506,7 +1501,7 @@
"Pular""Não encontrado""Localizar na página"
- "{count,plural, =1{# correspondência}one{# de {total}}many{# de {total}}other{# de {total}}}"
+ "{count,plural, =1{# correspondência}one{# de {total}}other{# de {total}}}""Concluído""Limpando armazenamento compartilhado…""Compartilhar"
@@ -1529,7 +1524,7 @@
"Adicionar conta""Aumentar""Diminuir"
- "%s toque e pressione."
+ "%s toque e mantenha pressionado.""Deslize para cima para aumentar e para baixo para diminuir.""Aumentar minuto""Diminuir minuto"
@@ -1610,7 +1605,7 @@
"TV""Telefone""Alto-falantes na base"
- "Dispositivo externo"
+ "HDMI""Fones de ouvido""USB""Sistema"
@@ -1643,7 +1638,7 @@
"O chip foi desativado. Insira o código PUK para continuar. Entre em contato com a operadora para obter mais detalhes.""Digite o código PIN desejado""Confirme o código PIN desejado"
- "Desbloqueando chip…"
+ "Desbloqueando o chip…""Código PIN incorreto.""Digite um PIN com quatro a oito números.""O código PUK deve ter oito números."
@@ -1686,7 +1681,7 @@
"Permitir que o %1$s tenha controle total do seu dispositivo?""O controle total é adequado para apps que ajudam você com as necessidades de acessibilidade, mas não para a maioria dos apps.""Ver e controlar tela"
- "Pode ler todo o conteúdo na tela e o conteúdo se sobrepõe ao de outros apps."
+ "Pode ler todo o conteúdo na tela e mostrar conteúdo sobreposto a outros apps.""Ver e realizar ações""Pode monitorar suas interações com um app ou um sensor de hardware e interagir com apps em seu nome.""Permitir"
@@ -1702,7 +1697,7 @@
"Inversão de cores""Correção de cor""Modo para uma mão"
- "Escurecer a tela"
+ "Mais escuro""Teclas de volume pressionadas. Serviço %1$s ativado.""Teclas de volume pressionadas. %1$s desativado.""Toque nos dois botões de volume e os mantenha pressionados por três segundo para usar o %1$s"
@@ -1717,7 +1712,7 @@
"Alternando para %1$s…""Desconectando %1$s…""Proprietário"
- "Visitante"
+ "Convidado""Erro""Esta alteração não é permitida pelo administrador""Nenhum app encontrado para executar a ação"
@@ -1859,14 +1854,14 @@
"Para ajudar a reduzir o uso de dados, a Economia de dados impede que alguns apps enviem ou recebam dados em segundo plano. Um app que você está usando no momento pode acessar dados, mas com menos frequência. Isso pode fazer com que imagens não apareçam até você tocar nelas.""Ativar a Economia de dados?""Ativar"
- "{count,plural, =1{Por um minuto (até {formattedTime})}one{Por # minuto (até {formattedTime})}many{Por # minutos (até {formattedTime})}other{Por # minutos (até {formattedTime})}}"
- "{count,plural, =1{Por 1min (até {formattedTime})}one{Por #min (até {formattedTime})}many{Por #min (até {formattedTime})}other{Por #min (até {formattedTime})}}"
- "{count,plural, =1{Por 1 hora (até {formattedTime})}one{Por # hora (até {formattedTime})}many{Por # horas (até {formattedTime})}other{Por # horas (até {formattedTime})}}"
- "{count,plural, =1{Por 1h (até {formattedTime})}one{Por #h (até {formattedTime})}many{Por #h (até {formattedTime})}other{Por #h (até {formattedTime})}}"
- "{count,plural, =1{Por um minuto}one{Por # minuto}many{Por # minutos}other{Por # minutos}}"
- "{count,plural, =1{Por 1min}one{Por #min}many{Por #min}other{Por #min}}"
- "{count,plural, =1{Por 1 hora}one{Por # hora}many{Por # horas}other{Por # horas}}"
- "{count,plural, =1{Por 1h}one{Por #h}many{Por #h}other{Por #h}}"
+ "{count,plural, =1{Por um minuto (até {formattedTime})}one{Por # minuto (até {formattedTime})}other{Por # minutos (até {formattedTime})}}"
+ "{count,plural, =1{Por 1min (até {formattedTime})}one{Por #min (até {formattedTime})}other{Por #min (até {formattedTime})}}"
+ "{count,plural, =1{Por 1 hora (até {formattedTime})}one{Por # hora (até {formattedTime})}other{Por # horas (até {formattedTime})}}"
+ "{count,plural, =1{Por 1h (até {formattedTime})}one{Por #h (até {formattedTime})}other{Por #h (até {formattedTime})}}"
+ "{count,plural, =1{Por um minuto}one{Por # minuto}other{Por # minutos}}"
+ "{count,plural, =1{Por 1min}one{Por #min}other{Por #min}}"
+ "{count,plural, =1{Por 1 hora}one{Por # hora}other{Por # horas}}"
+ "{count,plural, =1{Por 1h}one{Por #h}other{Por #h}}""Até %1$s""Até às %1$s""Até %1$s (próximo alarme)"
@@ -1912,7 +1907,7 @@
"Desligar""Chamada recebida""Chamada em andamento"
- "Filtrando uma ligação recebida"
+ "Filtrando uma chamada recebida""Sem classificação""Você definiu a importância dessas notificações.""Isso é importante por causa das pessoas envolvidas."
@@ -1924,7 +1919,6 @@
"Preferência de região""Digitar nome do idioma""Sugeridos"
- "Sugestões""Todos os idiomas""Todas as regiões""Pesquisa"
@@ -1942,19 +1936,18 @@
"Câmera indisponível""Continuar no smartphone""Microfone indisponível"
- "Play Store indisponível""Configurações do Android TV indisponíveis""Configurações do tablet indisponíveis""Configurações do smartphone indisponíveis"
- "No momento, não é possível acessar esse app pelo %1$s. Tente pelo dispositivo Android TV."
- "No momento, não é possível acessar esse app pelo %1$s. Tente pelo seu tablet."
- "No momento, não é possível acessar esse app pelo %1$s. Tente pelo seu smartphone."
+ "Não é possível acessar esse app pelo seu %1$s. Tente pelo dispositivo Android TV."
+ "Não é possível acessar esse app pelo seu %1$s. Tente pelo tablet."
+ "Não é possível acessar esse app pelo seu %1$s. Tente pelo smartphone."
+ "No momento, não é possível acessar esse app pelo seu %1$s. Tente pelo dispositivo Android TV."
+ "No momento, não é possível acessar esse app pelo seu %1$s. Tente pelo tablet."
+ "No momento, não é possível acessar esse app pelo seu %1$s. Tente pelo smartphone.""Esse app está solicitando segurança extra. Tente pelo dispositivo Android TV.""Esse app está solicitando segurança extra. Tente pelo tablet.""Esse app está solicitando segurança extra. Tente pelo smartphone."
- "Não é possível acessar essa configuração pelo seu %1$s. Tente pelo dispositivo Android TV."
- "Não é possível acessar essa configuração pelo seu %1$s. Tente pelo tablet."
- "Não é possível acessar essa configuração pelo seu %1$s. Tente pelo smartphone.""Este app foi criado para uma versão mais antiga do Android e pode não funcionar corretamente. Tente verificar se há atualizações ou entre em contato com o desenvolvedor.""Procurar atualizações""Você tem mensagens novas"
@@ -1997,7 +1990,7 @@
"Salvar no Preenchimento automático""Não é possível preencher os conteúdos automaticamente""Sem sugestões de preenchimento automático"
- "{count,plural, =1{Uma sugestão de preenchimento automático}one{# sugestão de preenchimento automático}many{# sugestões de preenchimento automático}other{# sugestões de preenchimento automático}}"
+ "{count,plural, =1{Uma sugestão de preenchimento automático}one{# sugestão de preenchimento automático}other{# sugestões de preenchimento automático}}""Salvar em ""%1$s""?""Salvar %1$s em ""%2$s""?""Salvar %1$s e %2$s em ""%3$s""?"
@@ -2047,8 +2040,7 @@
"Permitir que o app %s acesse todos os registros do dispositivo?""Permitir o acesso único""Não permitir"
- "Os registros do dispositivo gravam o que acontece nele. Os apps podem usar esses registros para encontrar e corrigir problemas.\n\nAlguns registros podem conter informações sensíveis, então autorize o acesso a eles apenas para os apps em que você confia. \n\nSe você não permitir que esse app acesse todos os registros do dispositivo, ele ainda vai poder acessar os próprios. O fabricante do dispositivo também pode ter acesso a alguns registros ou informações."
- "Os registros do dispositivo gravam o que acontece nele. Os apps podem usar esses registros para encontrar e corrigir problemas.\n\nAlguns registros podem conter informações sensíveis, então autorize o acesso a eles apenas para os apps em que você confia. \n\nSe você não permitir que esse app acesse todos os registros do dispositivo, ele ainda vai poder acessar os próprios. O fabricante do dispositivo também pode ter acesso a alguns registros ou informações.\n\nSaiba mais em g.co/android/devicelogs."
+ "Os registros do dispositivo gravam o que acontece nele. Os apps podem usar esses registros para encontrar e corrigir problemas.\n\nAlguns registros podem conter informações sensíveis, então autorize apenas os apps em que você confia a acessar os registros. \n\nSe você não permitir que esse app acesse todos os registros do dispositivo, ele ainda vai poder acessar os próprios. O fabricante do dispositivo também pode ter acesso a alguns registros ou informações. Saiba mais""Não mostrar novamente""%1$s quer mostrar partes do app %2$s""Editar"
@@ -2061,7 +2053,8 @@
"O modo \"Não perturbe\" foi alterado""Toque para verificar o que está bloqueado.""Revise as configurações de notificação"
- "No Android 13 ou em versões mais recentes, os apps que você instala precisam de permissão para enviar notificações. Toque para mudar essa permissão para os apps já instalados."
+
+ "Lembrar mais tarde""Dispensar""Sistema"
@@ -2079,7 +2072,7 @@
"OK""Desativar""Saiba mais"
- "No Android 12, as notificações avançadas substituíram as notificações adaptáveis. Esse recurso mostra ações e respostas sugeridas, além de organizar suas notificações.\n\nAs notificações avançadas podem acessar o conteúdo das notificações, incluindo informações pessoais como nomes de contatos e mensagens. Elas também podem dispensar ou responder às notificações, como atender ligações telefônicas e controlar o Não perturbe."
+ "No Android 12, as notificações avançadas substituíram as notificações adaptáveis. Esse recurso mostra ações e respostas sugeridas, além de organizar suas notificações.\n\nAs notificações avançadas podem acessar o conteúdo das notificações, incluindo informações pessoais como nomes de contatos e mensagens. Elas também podem dispensar ou responder às notificações, como atender chamadas telefônicas e controlar o Não perturbe.""Notificação de informação do modo rotina""A bateria pode acabar antes da recarga normal""A Economia de bateria foi ativada para aumentar a duração da carga"
@@ -2108,7 +2101,7 @@
"Apresentação em %1$s""O Bluetooth permanecerá ativado no modo avião""Carregando"
- "{count,plural, =1{{file_name} + # arquivo}one{{file_name} + # arquivo}many{{file_name} + # arquivos}other{{file_name} + # arquivos}}"
+ "{count,plural, =1{{file_name} + # arquivo}one{{file_name} + # arquivo}other{{file_name} + # arquivos}}""Não há sugestões de pessoas para compartilhar""Lista de apps""Este app não tem permissão de gravação, mas pode capturar áudio pelo dispositivo USB."
@@ -2289,6 +2282,5 @@
"Verificar apps ativos""Não é possível acessar a câmera do smartphone pelo %1$s""Não é possível acessar a câmera do tablet pelo %1$s"
- "Não é possível acessar esse conteúdo durante o streaming. Tente pelo smartphone."
- "Padrão do sistema"
+ "Idioma do sistema"
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index 6ffc8141f47ecb3ebd5454971ecf041609e1ac8e..0734ab672e881fc8d0b4e6177d06b8bb28df3cbc 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TO"
+ "PO""%1$s%2$s""<Fără titlu>""(Niciun număr de telefon)"
@@ -28,9 +33,8 @@
"Mesagerie vocală""MSISDN1""Problemă de conexiune sau cod MMI nevalid."
- "Funcția nu este acceptată.""Operația este limitată la numerele cu apelări restricționate."
- "Nu poți schimba setările de redirecționare a apelurilor de pe telefon când ești în roaming."
+ "Nu puteți schimba setările de redirecționare a apelurilor de pe telefon când sunteți în roaming.""Serviciul a fost activat.""Serviciul a fost activat pentru:""Serviciul a fost dezactivat."
@@ -40,21 +44,21 @@
"MMI finalizat.""Codul PIN vechi introdus nu este corect.""Codul PUK introdus nu este corect."
- "PIN-urile introduse nu sunt identice."
- "Introdu un cod PIN alcătuit din 4 până la 8 cifre."
- "Introdu un cod PUK care să aibă 8 cifre sau mai mult."
- "Cardul SIM este blocat prin cod PUK. Introdu codul PUK pentru a-l debloca."
- "Introdu codul PUK2 ca să deblochezi cardul SIM."
- "Operațiunea nu a reușit. Activează blocarea cardului SIM/RUIM."
+ "Codurile PIN introduse nu se potrivesc."
+ "Introduceți un cod PIN alcătuit din 4 până la 8 cifre."
+ "Introduceți un cod PUK care să aibă 8 cifre sau mai mult."
+ "Cardul SIM este blocat cu codul PUK. Introduceți codul PUK pentru a-l debloca."
+ "Introduceți codul PUK2 pentru a debloca cardul SIM."
+ "Operațiunea nu a reușit. Activați blocarea cardului SIM/RUIM."
- Ți-au mai rămas %d încercări până la blocarea cardului SIM.
- Ți-au mai rămas %d de încercări până la blocarea cardului SIM.
- Ți-a mai rămas %d încercare până la blocarea cardului SIM.
+ V-au mai rămas %d încercări până la blocarea cardului SIM.
+ V-au mai rămas %d de încercări până la blocarea cardului SIM.
+ V-a mai rămas %d încercare până la blocarea cardului SIM."IMEI""MEID""ID apelant de primire"
- "Ascunde ID-ul apelantului"
+ "Ascundeți ID-ul apelantului""ID-ul liniei conectate""Restricționarea ID-ului liniei conectate""Redirecționarea apelurilor"
@@ -67,13 +71,13 @@
"Apelare de tip conferință""Respingere apeluri supărătoare nedorite""Se apelează serviciul de furnizare a numerelor"
- "Nu deranja"
+ "Nu deranjați""ID-ul apelantului este restricționat în mod prestabilit. Apelul următor: restricționat""ID-ul apelantului este restricționat în mod prestabilit. Apelul următor: nerestricționat""ID-ul apelantului este nerestricționat în mod prestabilit. Apelul următor: Restricționat.""ID-ul apelantului este nerestricționat în mod prestabilit. Apelul următor: nerestricționat""Nu se asigură accesul la acest serviciu."
- "Nu poți modifica setarea pentru ID-ul apelantului."
+ "Nu puteți să modificați setarea pentru ID-ul apelantului.""Fără serviciu de date mobile""Apelurile de urgență nu sunt disponibile""Fără servicii vocale"
@@ -81,9 +85,9 @@
"Dezactivat temporar de operator""Dezactivat temporar de operator pentru numărul de card SIM %d""Nu se poate stabili conexiunea la rețeaua mobilă"
- "Încearcă să schimbi rețeaua preferată. Atinge pentru a schimba."
+ "Încercați să schimbați rețeaua preferată. Atingeți pentru a schimba.""Apelurile de urgență nu sunt disponibile"
- "Nu poți face apeluri de urgență prin Wi-Fi"
+ "Nu puteți efectua apeluri de urgență prin Wi-Fi""Alerte""Redirecționarea apelurilor""Mod de apelare inversă de urgență"
@@ -121,10 +125,10 @@
"Se caută serviciul""Nu s-a putut configura apelarea prin Wi-Fi"
- "Pentru a face apeluri și a trimite mesaje prin Wi-Fi, mai întâi solicită configurarea acestui serviciu la operator. Apoi, activează din nou apelarea prin Wi-Fi din Setări. (Cod de eroare: %1$s)"
+ "Pentru a efectua apeluri și a trimite mesaje prin Wi-Fi, mai întâi solicitați configurarea acestui serviciu la operator. Apoi, activați din nou apelarea prin Wi-Fi din Setări. (Cod de eroare: %1$s)"
- "A apărut o problemă la înregistrarea apelării prin Wi‑Fi la operatorul tău: %1$s"
+ "A apărut o problemă la înregistrarea apelării prin Wi‑Fi la operatorul dvs.: %1$s"
@@ -140,8 +144,8 @@
"Apelare prin Wi-Fi""VoWifi""Dezactivată"
- "Apelează prin Wi-Fi"
- "Sună prin rețeaua mobilă"
+ "Apelați prin Wi-Fi"
+ "Apelați prin rețeaua mobilă""Numai Wi-Fi"
@@ -160,7 +164,7 @@
"Nu s-a realizat autentificarea.""Autentificarea prin intermediul serverului proxy nu a reușit.""Nu s-a putut stabili conexiunea cu serverul."
- "Nu s-a putut efectua comunicarea cu serverul. Încearcă din nou mai târziu."
+ "Nu s-a putut efectua comunicarea cu serverul. Încercați din nou mai târziu.""Conexiunea la server a expirat.""Pagina conține prea multe redirecționări de server.""Protocolul nu este acceptat."
@@ -168,28 +172,28 @@
"Pagina nu a putut fi deschisă, deoarece adresa URL nu este validă.""Fișierul nu a putut fi accesat.""Nu s-a putut găsi fișierul solicitat."
- "Există prea multe solicitări în curs de procesare. Încearcă din nou mai târziu."
+ "Există prea multe solicitări în curs de procesare. Încercați din nou mai târziu.""Eroare de conectare pentru %1$s""Sincronizare""Nu se poate sincroniza"
- "Ai încercat să ștergi prea multe %s."
- "Stocarea pe tabletă este plină. Șterge câteva fișiere pentru a elibera spațiu."
- "Spațiul de stocare de pe ceas este plin! Șterge câteva fișiere pentru a elibera spațiu."
- "Spațiul de stocare de pe dispozitivul Android TV este plin. Șterge câteva fișiere pentru a elibera spațiu."
- "Stocarea pe telefon este plină. Șterge câteva fișiere pentru a elibera spațiu."
+ "Ați încercat să ștergeți prea multe %s."
+ "Stocarea pe tabletă este plină. Ștergeți câteva fișiere pentru a elibera spațiu."
+ "Spațiul de stocare de pe ceas este plin! Ștergeți câteva fișiere pentru a elibera spațiu."
+ "Spațiul de stocare de pe dispozitivul Android TV este plin. Ștergeți câteva fișiere pentru a elibera spațiu."
+ "Stocarea pe telefon este plină. Ștergeți câteva fișiere pentru a elibera spațiu.""{count,plural, =1{S-a instalat o autoritate de certificare}few{S-au instalat autorități de certificare}other{S-au instalat autorități de certificare}}""De o terță parte necunoscută"
- "De administratorul profilului de serviciu"
+ "De administratorul profilului dvs. de serviciu""De %s""Profilul de serviciu a fost șters"
- "Aplicația de administrare a profilului de serviciu lipsește sau este deteriorată. Prin urmare, profilul de serviciu și datele asociate au fost șterse. Pentru asistență, contactează administratorul."
+ "Aplicația de administrare a profilului de serviciu lipsește sau este deteriorată. Prin urmare, profilul de serviciu și datele asociate au fost șterse. Pentru asistență, contactați administratorul.""Profilul de serviciu nu mai este disponibil pe acest dispozitiv""Prea multe încercări de introducere a parolei""Administratorul a retras dispozitivul pentru uz personal""Dispozitivul este gestionat"
- "Organizația ta gestionează acest dispozitiv și poate monitoriza traficul în rețea. Atinge pentru mai multe detalii."
- "Aplicațiile îți pot accesa locația"
- "Contactează administratorul IT pentru a afla mai multe"
+ "Organizația dvs. gestionează acest dispozitiv și poate monitoriza traficul în rețea. Atingeți pentru mai multe detalii."
+ "Aplicațiile vă pot accesa locația"
+ "Contactați administratorul IT pentru a afla mai multe""Serviciul de delimitare geografică""Detector de țară""Servicii de localizare"
@@ -200,21 +204,21 @@
"Serviciul Manager de politici pentru dispozitive""Serviciu de gestionare a recunoașterii de melodii""Datele de pe dispozitiv vor fi șterse"
- "Aplicația de administrare nu poate fi folosită. Dispozitivul va fi șters.\n\nDacă ai întrebări, contactează administratorul organizației."
+ "Aplicația de administrare nu poate fi utilizată. Dispozitivul va fi șters.\n\nDacă aveți întrebări, contactați administratorul organizației dvs.""Printare dezactivată de %s."
- "Activează profilul de serviciu"
- "Aplicațiile personale sunt blocate până când activezi profilul de serviciu"
+ "Activați profilul de serviciu"
+ "Aplicațiile personale sunt blocate până când activați profilul de serviciu""Aplicațiile personale vor fi blocate pe %1$s, la %2$s. Administratorul IT nu permite ca profilul de serviciu să fie dezactivat mai mult de %3$d zile."
- "Activează"
+ "Activați""Eu""Opțiuni tablet PC""Opțiuni pentru Android TV""Opțiuni telefon""Mod Silențios"
- "Activează funcția wireless"
- "Dezactivează funcția wireless"
- "Blochează ecranul"
- "Oprește"
+ "Activați funcția wireless"
+ "Dezactivați funcția wireless"
+ "Blocați ecranul"
+ "Opriți""Sonerie dezactivată""Vibrare sonerie""Sonerie activată"
@@ -225,32 +229,32 @@
"Revenire la setările din fabrică""Se repornește…""Se închide..."
- "Tableta se va închide."
+ "Computerul dvs. tablet PC se va închide.""Dispozitivul Android TV se va închide."
- "Ceasul se va închide."
- "Telefonul se va închide."
- "Vrei să închizi?"
- "Repornește în modul sigur"
- "Repornești în modul sigur? Astfel vor fi dezactivate toate aplicațiile terță parte instalate. Acestea vor fi restabilite când repornești dispozitivul."
+ "Ceasul dvs. se va închide."
+ "Telefonul dvs. se va închide."
+ "Doriți să închideți?"
+ "Reporniți în modul sigur"
+ "Doriți să reporniți în modul sigur? Astfel vor fi dezactivate toate aplicațiile terță parte pe care le-ați instalat. Acestea vor fi restabilite când reporniți din nou.""Recente""Nu există aplicații recente.""Opțiuni tablet PC""Opțiuni pentru Android TV""Opțiuni telefon"
- "Blochează ecranul"
- "Oprește"
+ "Blocați ecranul"
+ "Opriți""Alimentare"
- "Repornește"
+ "Reporniți""Urgență""Raport despre erori"
- "Încheie sesiunea"
+ "Încheiați sesiunea""Instantaneu""Raport de eroare"
- "Acest raport va colecta informații despre starea actuală a dispozitivului, pentru a le trimite într-un e-mail. Ai răbdare după pornirea raportului despre erori până când va fi gata de trimis."
+ "Acest raport va colecta informații despre starea actuală a dispozitivului, pentru a le trimite într-un e-mail. Aveți răbdare după pornirea raportului despre erori până când va fi gata de trimis.""Raport interactiv"
- "Folosește această opțiune în majoritatea situațiilor. Astfel, poți să urmărești progresul raportului, să introduci mai multe detalii în privința problemei și să creezi capturi de ecran. Pot fi omise unele secțiuni mai puțin folosite pentru care raportarea durează prea mult."
+ "Folosiți această opțiune în majoritatea situațiilor. Astfel, puteți să urmăriți progresul raportului, să introduceți mai multe detalii în privința problemei și să creați capturi de ecran. Pot fi omise unele secțiuni mai puțin folosite pentru care raportarea durează prea mult.""Raport complet"
- "Folosește această opțiune pentru a reduce la minimum interferențele cu sistemul când dispozitivul nu răspunde, funcționează prea lent sau când ai nevoie de toate secțiunile raportului. Nu poți să introduci mai multe detalii sau să creezi capturi de ecran suplimentare."
+ "Folosiți această opțiune pentru a reduce la minimum interferențele cu sistemul când dispozitivul nu răspunde, funcționează prea lent sau când aveți nevoie de toate secțiunile raportului. Nu puteți să introduceți mai multe detalii sau să creați capturi de ecran suplimentare.""{count,plural, =1{Peste # secundă se va realiza o captură de ecran pentru raportul de eroare.}few{Peste # secunde se va realiza o captură de ecran pentru raportul de eroare.}other{Peste # de secunde se va realiza o captură de ecran pentru raportul de eroare.}}""S-a realizat captura de ecran a raportului de eroare""Nu s-a realizat captura de ecran a raportului de eroare"
@@ -288,55 +292,55 @@
"Folosirea accesibilității""%1$s folosește bateria""%1$d aplicații folosesc bateria"
- "Atinge pentru mai multe detalii privind bateria și utilizarea datelor"
+ "Atingeți pentru mai multe detalii privind bateria și utilizarea datelor""%1$s, %2$s""Mod sigur""Sistemul Android"
- "Comută la profilul personal"
- "Comută la profilul de serviciu"
+ "Comutați la profilul personal"
+ "Comutați la profilul de serviciu""Agendă"
- "să acceseze agenda"
+ "acceseze persoanele de contact""Locație"
- "să acceseze locația acestui dispozitiv"
+ "acceseze locația acestui dispozitiv""Calendar"
- "să acceseze calendarul"
+ "acceseze calendarul""SMS"
- "să trimită și să vadă mesajele SMS"
- "Fișiere"
- "să acceseze fișiere de pe dispozitiv"
- "Muzică și conținut audio"
- "să acceseze muzică și conținut audio pe dispozitiv"
- "Fotografii și videoclipuri"
- "să acceseze fotografii și videoclipuri pe dispozitiv"
+ "trimită și să vadă mesajele SMS"
+ "Fișiere și documente"
+ "să acceseze fișiere și documente de pe dispozitiv"
+ "Muzică și alt conținut audio"
+ "să acceseze fișiere audio de pe dispozitiv"
+ "Fotografii și videoclipuri"
+ "să acceseze fișiere video și imagini de pe dispozitiv""Microfon""înregistreze sunet""Activitate fizică"
- "să acceseze activitatea fizică"
+ "accesați activitatea fizică""Camera foto"
- "să fotografieze și să înregistreze videoclipuri"
+ "fotografieze și să înregistreze videoclipuri""Dispozitive din apropiere"
- "descoperă dispozitive din apropiere și conectează-te la acestea"
+ "descoperiți dispozitive din apropiere și conectați-vă la acestea""Jurnale de apeluri""să citească și să scrie jurnalul de apeluri telefonice""Telefon"
- "să inițieze și să gestioneze apeluri telefonice"
+ "inițieze și să gestioneze apeluri telefonice""Senzori corporali"
- "să acceseze datele de la senzori despre semnele vitale"
+ "acceseze datele de la senzori despre semnele vitale""Notificări""să afișeze notificări"
- "să preia conținutul ferestrei"
- "Inspectează conținutul unei ferestre cu care interacționezi."
- "să activeze funcția Explorează prin atingere"
+ "Analizeze conținutul ferestrei"
+ "Inspectează conținutul unei ferestre cu care interacționați."
+ "Activeze funcția Explorați prin atingere""Elementele atinse vor fi rostite cu voce tare, iar ecranul poate fi explorat utilizând gesturi."
- "să vadă textul pe care îl introduci"
- "Include date cu caracter personal, cum ar fi numere ale cardurilor de credit sau parole."
+ "Remarce textul pe care îl introduceți"
+ "Include date personale, cum ar fi numere ale cardurilor de credit sau parole.""Controlează mărirea pe afișaj""Controlează nivelul de zoom și poziționarea afișajului.""Folosește gesturi""Poate atinge, glisa, ciupi sau folosi alte gesturi."
- "să redea gesturi ce implică amprente"
+ "Redea gesturi ce implică amprente""Poate reda gesturile făcute pe senzorul de amprentă al dispozitivului."
- "Fă o captură de ecran"
+ "Faceți o captură de ecran""Poate face o captură de ecran.""dezactivare sau modificare bare de stare""Permite aplicației să dezactiveze bara de stare sau să adauge și să elimine pictograme de sistem."
@@ -355,34 +359,34 @@
"să răspundă la apeluri telefonice""Permite aplicației să răspundă la un apel telefonic.""primește mesaje text (SMS)"
- "Permite aplicației să primească și să proceseze mesaje SMS. Acest lucru înseamnă că aplicația ar putea monitoriza sau șterge mesajele trimise pe dispozitiv fără a ți le arăta."
+ "Permite aplicației să primească și să proceseze mesaje SMS. Acest lucru înseamnă că aplicația ar putea monitoriza sau șterge mesajele trimise pe dispozitivul dvs. fără a vi le arăta.""primește mesaje text (MMS)"
- "Permite aplicației să primească și să proceseze mesaje MMS. Acest lucru înseamnă că aplicația ar putea monitoriza sau șterge mesajele trimise pe dispozitiv fără a ți le arăta."
+ "Permite aplicației să primească și să proceseze mesaje MMS. Acest lucru înseamnă că aplicația ar putea monitoriza sau șterge mesajele trimise pe dispozitivul dvs. fără a vi le arăta.""Redirecționează mesajele cu transmisie celulară"
- "Permite aplicației să se conecteze la modulul de transmisie celulară pentru a redirecționa mesajele cu transmisie celulară pe măsură ce le primește. Alertele cu transmisie celulară sunt difuzate în unele locații pentru a te avertiza cu privire la situațiile de urgență. Aplicațiile rău intenționate pot afecta performanța sau funcționarea dispozitivului când e primită o transmisie celulară de urgență."
+ "Permite aplicației să se conecteze la modulul de transmisie celulară pentru a redirecționa mesajele cu transmisie celulară pe măsură ce le primește. Alertele cu transmisie celulară sunt difuzate în unele locații pentru a vă avertiza cu privire la situațiile de urgență. Aplicațiile rău intenționate pot afecta performanța sau funcționarea dispozitivului dvs. când este primită o transmisie celulară de urgență.""Să gestioneze apelurile în desfășurare""Permite unei aplicații să vadă detalii despre apelurile în desfășurare de pe dispozitiv și să gestioneze apelurile respective.""citește mesajele cu transmisie celulară"
- "Permite aplicației să citească mesajele primite prin transmisie celulară de dispozitiv. Alertele cu transmisie celulară sunt difuzate în unele locații pentru a te avertiza cu privire la situațiile de urgență. Aplicațiile rău intenționate pot afecta performanța sau funcționarea dispozitivului când e primită o transmisie celulară de urgență."
+ "Permite aplicației să citească mesajele primite prin transmisie celulară de dispozitivul dvs. Alertele cu transmisie celulară sunt difuzate în unele locații pentru a vă avertiza cu privire la situațiile de urgență. Aplicațiile rău intenționate pot afecta performanța sau funcționarea dispozitivului dvs. când este primită o transmisie celulară de urgență.""citire feeduri abonat""Permite aplicației să obțină detalii despre feedurile sincronizate în prezent."
- "să trimită și să vadă mesajele SMS"
- "Permite aplicației să trimită mesaje SMS, ceea ce ar putea duce la costuri neașteptate. Aplicațiile rău intenționate pot acumula costuri prin trimiterea mesajelor fără confirmarea ta."
+ "trimită și să vadă mesajele SMS"
+ "Permite aplicației să trimită mesaje SMS, ceea ce ar putea determina apariția unor taxe neașteptate. Aplicațiile rău intenționate pot acumula costuri prin trimiterea mesajelor fără confirmarea dvs.""citește mesajele text (SMS sau MMS)""Această aplicație poate citi toate mesajele SMS stocate pe tabletă.""Această aplicație poate să citească toate mesajele SMS (texT) stocate pe dispozitivul Android TV.""Această aplicație poate citi toate mesajele SMS stocate pe telefon.""primește mesaje text (WAP)"
- "Permite aplicației să primească și să proceseze mesaje WAP. Această permisiune include capacitatea de a monitoriza sau șterge mesajele care ți-au fost trimise fără a ți le arăta."
+ "Permite aplicației să primească și să proceseze mesaje WAP. Această permisiune include capacitatea de a monitoriza sau șterge mesajele care v-au fost trimise fără a vi le arăta.""preluare aplicații care rulează""Permite aplicației să preia informațiile despre activitățile care rulează în prezent și care au rulat recent. În acest fel, aplicația poate descoperi informații despre aplicațiile care sunt utilizate pe dispozitiv.""să gestioneze profilul și proprietarii dispozitivului""Permite aplicațiilor să seteze proprietarii de profiluri și proprietarul dispozitivului.""reordonare aplicații care rulează"
- "Permite aplicației să mute activitățile în prim-plan și în fundal. Aplicația poate face acest lucru fără intervenția ta."
+ "Permite aplicației să mute activitățile în prim-plan și în fundal. Aplicația poate face acest lucru fără aportul dvs.""activare mod Mașină""Permite aplicației să activeze modul Mașină."
- "să închidă alte aplicații"
+ "închide alte aplicații""Permite aplicației să oprească procesele derulate în fundal de alte aplicații. Acest lucru poate face ca respectivele aplicații să nu mai ruleze.""Această aplicație poate apărea deasupra altor aplicații""Această aplicație poate apărea deasupra altor aplicații sau a altor părți ale ecranului. Acest lucru poate să afecteze utilizarea normală a aplicației și să schimbe modul în care se afișează alte aplicații."
@@ -399,7 +403,7 @@
"măsurare spațiu de stocare al aplicației""Permite aplicației să preia dimensiunile codului, ale datelor și ale memoriei cache""modifică setări de sistem"
- "Permite aplicației să modifice datele din setările sistemului. Aplicațiile rău intenționate pot corupe configurația sistemului."
+ "Permite aplicației să modifice datele din setările sistemului. Aplicațiile rău intenționate pot corupe configurația sistemului dvs.""rulează la pornire""Permite aplicației să pornească imediat ce s-a terminat încărcarea sistemului. Din acest motiv, pornirea tabletei poate dura mai mult timp, iar rularea continuă a aplicației poate încetini dispozitivul.""Permite aplicației să pornească imediat ce s-a terminat încărcarea sistemului. Din acest motiv, pornirea dispozitivului Android TV poate dura mai mult timp, iar rularea continuă a aplicației poate încetini dispozitivul."
@@ -409,9 +413,9 @@
"Permite aplicației să trimită mesaje difuzate persistente, care se păstrează după terminarea difuzării mesajului. Utilizarea excesivă a acestei funcții poate să încetinească sau să destabilizeze dispozitivul Android TV, determinându-l să utilizeze prea multă memorie.""Permite aplicației să trimită mesaje difuzate persistente, care se păstrează după terminarea difuzării mesajului. Utilizarea excesivă a acestei funcții poate să încetinească sau să destabilizeze telefonul, determinându-l să utilizeze prea multă memorie.""citește agenda"
- "Permite aplicației să citească datele despre persoanele din agenda stocată pe tabletă. Aplicațiile vor avea și acces la conturile de pe tabletă care au creat agenda. Aici pot fi incluse conturile create de aplicațiile pe care le-ai instalat. Cu această permisiune, aplicațiile pot salva datele de contact, iar aplicațiile rău intenționate pot permite accesul la datele de contact fără cunoștința ta."
- "Permite aplicației să citească datele despre persoanele de contact din agenda stocată pe dispozitivul Android TV. Aplicațiile vor avea și acces la conturile de pe dispozitivul Android TV care au creat agenda. Aici pot fi incluse conturile create de aplicațiile pe care le-ai instalat. Cu această permisiune, aplicațiile pot salva datele de contact, iar aplicațiile rău intenționate pot permite accesul la datele de contact fără cunoștința ta."
- "Permite aplicației să citească datele despre persoanele de contact salvate pe telefon. Aplicațiile vor avea și acces la conturile de pe telefon care au creat agenda. Aici pot fi incluse conturile create de aplicațiile pe care le-ai instalat. Cu această permisiune, aplicațiile pot salva datele de contact, iar aplicațiile rău intenționate pot permite accesul la datele de contact fără cunoștința ta."
+ "Permite aplicației să citească datele despre persoanele din agenda stocată pe tabletă. Aplicațiile vor avea și acces la conturile de pe tabletă care au creat agenda. Aici pot fi incluse conturile create de aplicațiile pe care le-ați instalat. Cu această permisiune, aplicațiile pot salva datele de contact, iar aplicațiile rău-intenționate pot permite accesul la datele de contact fără cunoștința dvs."
+ "Permite aplicației să citească datele despre persoanele de contact din agenda stocată pe dispozitivul Android TV. Aplicațiile vor avea și acces la conturile de pe dispozitivul Android TV care au creat agenda. Aici pot fi incluse conturile create de aplicațiile pe care le-ați instalat. Cu această permisiune, aplicațiile pot salva datele de contact, iar aplicațiile rău-intenționate pot permite accesul la datele de contact fără cunoștința dvs."
+ "Permite aplicației să citească datele despre persoanele de contact salvate pe telefon. Aplicațiile vor avea și acces la conturile de pe telefon care au creat agenda. Aici pot fi incluse conturile create de aplicațiile pe care le-ați instalat. Cu această permisiune, aplicațiile pot salva datele de contact, iar aplicațiile rău-intenționate pot permite accesul la datele de contact fără cunoștința dvs.""modifică agenda""Permite aplicației să modifice datele despre persoanele din agenda stocată pe tabletă. Cu această permisiune, aplicația poate șterge datele de contact.""Permite aplicației să modifice datele despre persoanele din agenda stocată pe dispozitivul Android TV. Cu această permisiune, aplicația poate șterge datele de contact."
@@ -419,9 +423,9 @@
"citește jurnalul de apeluri""Această aplicație poate citi istoricul apelurilor.""scrie jurnalul de apeluri"
- "Permite aplicației să modifice jurnalul de apeluri al tabletei, inclusiv datele despre apelurile primite sau făcute. Aplicațiile rău intenționate pot folosi această permisiune pentru a șterge sau a modifica jurnalul de apeluri."
+ "Permite aplicației să modifice jurnalul de apeluri al tabletei dvs., inclusiv datele despre apelurile primite sau efectuate. Aplicațiile rău intenționate pot utiliza această permisiune pentru a șterge sau pentru a modifica jurnalul dvs. de apeluri.""Permite aplicației să modifice jurnalul de apeluri al dispozitivului Android TV, inclusiv datele despre apelurile primite sau efectuate. Aplicațiile rău intenționate pot utiliza această permisiune pentru a șterge sau pentru a modifica jurnalul de apeluri."
- "Permite aplicației să modifice jurnalul de apeluri al telefonului, inclusiv datele despre apelurile primite sau făcute. Aplicațiile rău intenționate pot folosi această permisiune pentru a șterge sau a modifica jurnalul de apeluri."
+ "Permite aplicației să modifice jurnalul de apeluri al telefonului dvs., inclusiv datele despre apelurile primite sau efectuate. Aplicațiile rău intenționate pot utiliza această permisiune pentru a șterge sau pentru a modifica jurnalul dvs. de apeluri.""Să acceseze date de la senzorii corporali, cum ar fi pulsul, în timpul folosirii""Permite aplicației să acceseze date de la senzorii corporali, cum ar fi pulsul, temperatura și procentul de oxigen din sânge, în timpul folosirii aplicației.""Să acceseze date de la senzorii corporali, precum pulsul, când rulează în fundal"
@@ -437,43 +441,43 @@
"accesare comenzi suplimentare ale furnizorului locației""Permite aplicației să acceseze comenzi suplimentare pentru furnizorul locației. Aplicația ar putea să utilizeze această permisiune pentru a influența operațiile GPS sau ale altor surse de locații.""să acceseze locația exactă în prim-plan"
- "Aplicația îți poate stabili locația exactă cu ajutorul serviciilor de localizare când este folosită. Pentru ca aplicația să poată stabili locația, trebuie să activezi serviciile de localizare pentru dispozitiv. Aceasta poate mări utilizarea bateriei."
+ "Aplicația vă poate determina locația exactă cu ajutorul serviciilor de localizare atunci când este folosită. Pentru ca aplicația să poată determina locația, trebuie să activați serviciile de localizare pentru dispozitiv. Aceasta poate mări utilizarea bateriei.""să acceseze locația aproximativă numai în prim-plan."
- "Aplicația îți poate stabili locația aproximativă cu ajutorul serviciilor de localizare când este folosită. Pentru ca aplicația să poată stabili locația, trebuie să activezi serviciile de localizare pentru dispozitiv."
- "să acceseze locația în fundal"
+ "Aplicația vă poate determina locația aproximativă cu ajutorul serviciilor de localizare atunci când este folosită. Pentru ca aplicația să poată determina locația, trebuie să activați serviciile de localizare pentru dispozitiv."
+ "accesați locația în fundal""Aplicația poate accesa locația oricând, chiar dacă nu este folosită.""modificare setări audio""Permite aplicației să modifice setările audio globale, cum ar fi volumul și difuzorul care este utilizat pentru ieșire."
- "să înregistreze sunet"
+ "înregistreze sunet""Această aplicație poate să înregistreze conținut audio folosind microfonul când este în uz.""să înregistreze conținut audio în fundal""Această aplicație poate înregistra conținut audio folosind microfonul oricând.""să trimită comenzi către SIM""Permite aplicației să trimită comenzi pe cardul SIM. Această permisiune este foarte periculoasă.""recunoașterea activității fizice"
- "Această aplicație îți poate recunoaște activitatea fizică."
+ "Această aplicație vă poate recunoaște activitatea fizică.""realizarea de fotografii și videoclipuri""Această aplicație poate să fotografieze și să înregistreze videoclipuri folosind camera foto când este în uz.""să fotografieze și să înregistreze videoclipuri în fundal""Această aplicație poate să fotografieze și să înregistreze videoclipuri folosind camera foto oricând."
- "Permite unei aplicații sau unui serviciu accesul la camerele de sistem, ca să fotografieze și să înregistreze videoclipuri"
+ "Permiteți unei aplicații sau unui serviciu accesul la camerele de sistem, ca să fotografieze și să înregistreze videoclipuri""Această aplicație de sistem privilegiată poate să fotografieze și să înregistreze videoclipuri folosind o cameră de sistem în orice moment. Necesită și permisiunea android.permission.CAMERA pentru aplicație"
- "Permite unei aplicații sau unui serviciu să primească apeluri inverse atunci când sunt deschise sau închise dispozitive cu cameră."
+ "Permiteți unei aplicații sau unui serviciu să primească apeluri inverse atunci când sunt deschise sau închise dispozitive cu cameră.""Această aplicație poate primi apeluri inverse atunci când este deschis (de aplicație) sau închis orice dispozitiv cu cameră.""controlează vibrarea""Permite aplicației să controleze mecanismul de vibrare.""Permite aplicației să acceseze modul de vibrații."
- "să sune direct la numere de telefon"
- "Permite aplicației să apeleze numere de telefon fără intervenția ta. Acest lucru poate determina apariția unor taxe sau a unor apeluri neașteptate. Cu această permisiune aplicația nu poate apela numerele de urgență. Aplicațiile rău intenționate pot acumula costuri prin efectuarea unor apeluri fără confirmare."
+ "apelare directă numere de telefon"
+ "Permite aplicației să apeleze numere de telefon fără intervenția dvs. Acest lucru poate determina apariția unor taxe sau a unor apeluri neașteptate. Cu această permisiune aplicația nu poate apela numerele de urgență. Aplicațiile rău intenționate pot acumula costuri prin efectuarea unor apeluri fără confirmare.""accesează serviciul de apelare IMS"
- "Permite aplicației să folosească serviciul IMS pentru apeluri, fără intervenția ta."
+ "Permite aplicației să folosească serviciul IMS pentru apeluri, fără intervenția dvs.""citește starea și identitatea telefonului""Permite aplicației să acceseze funcțiile de telefon ale dispozitivului. Cu această permisiune aplicația stabilește numărul de telefon și ID-urile de dispozitiv, dacă un apel este activ, precum și numărul de la distanță conectat printr-un apel.""să citească informații de bază, precum activitatea și starea telefonului""Permite ca aplicația să acceseze funcțiile de telefonie de bază ale dispozitivului.""să direcționeze apelurile prin intermediul sistemului"
- "Permite aplicației să direcționeze apelurile prin intermediul sistemului pentru a îmbunătăți calitatea apelurilor."
- "Vezi și controlează apelurile prin intermediul sistemului."
+ "Permiteți aplicației să direcționeze apelurile prin intermediul sistemului pentru a îmbunătăți calitatea apelurilor."
+ "Vedeți și controlați apelurile prin intermediul sistemului.""Permite aplicației să vadă și să controleze apelurile în desfășurare pe dispozitiv. Aceasta include informații ca numerele pentru apeluri și starea apelurilor.""scutită de restricțiile pentru înregistrarea conținutului audio""Scutiți aplicația de restricțiile pentru înregistrarea conținutului audio."
@@ -502,10 +506,10 @@
"Permite aplicației să schimbe fusul orar al dispozitivului Android TV.""Permite aplicației să schimbe fusul orar al telefonului.""găsește conturi pe dispozitiv"
- "Permite aplicației să obțină lista de conturi cunoscute de tabletă. Aceasta poate include conturile create de aplicațiile pe care le-ai instalat."
- "Permite aplicației să obțină lista conturilor cunoscute de dispozitivul Android TV. Aceasta poate include conturile create de aplicațiile pe care le-ai instalat."
- "Permite aplicației să obțină lista de conturi cunoscute de telefon. Aceasta poate include conturile create de aplicațiile pe care le-ai instalat."
- "să vadă conexiunile la rețea"
+ "Permite aplicației să obțină lista de conturi cunoscute de tabletă. Aceasta poate include conturile create de aplicațiile pe care le-ați instalat."
+ "Permite aplicației să obțină lista conturilor cunoscute de dispozitivul Android TV. Aceasta poate include conturile create de aplicațiile pe care le-ați instalat."
+ "Permite aplicației să obțină lista de conturi cunoscute de telefon. Aceasta poate include conturile create de aplicațiile pe care le-ați instalat."
+ "vizualizează conexiunile la rețea""Permite aplicației să vadă informațiile despre conexiunile la rețea, cum ar fi rețelele existente și cele care sunt conectate.""să aibă acces deplin la rețea""Permite aplicației să creeze socluri de rețea și să utilizeze protocoale de rețea personalizate. Browserul și alte aplicații oferă mijloacele de trimitere a datelor pe internet, astfel încât această permisiune nu este necesară pentru trimiterea datelor pe internet."
@@ -513,28 +517,28 @@
"Permite aplicației să modifice starea de conectivitate la rețea.""modificare conectivitate tethering""Permite aplicației să modifice starea de conectivitate prin tethering la rețea."
- "să vadă conexiunile Wi-Fi"
+ "vizualizează conexiunile Wi-Fi""Permite aplicației să vadă informațiile despre rețelele Wi-Fi, de ex. dacă o rețea Wi-Fi este activată, precum și numele dispozitivelor conectate la rețeaua Wi-Fi.""se conectează și se deconectează de la Wi-Fi""Permite aplicației să se conecteze și să se deconecteze de la punctele de acces Wi-Fi, precum și să efectueze modificări în configurația dispozitivului pentru rețelele Wi-Fi.""permitere recepționare difuzare multiplă Wi-Fi"
- "Permite aplicației să primească pachetele trimise către toate dispozitivele dintr-o rețea Wi-Fi, folosind adrese cu difuzare multiplă, nu doar tableta ta. Această funcție folosește mai multă energie decât modul fără difuzare multiplă."
+ "Permite aplicației să primească pachetele trimise către toate dispozitivele dintr-o rețea Wi-Fi, utilizând adrese cu difuzare multiplă, nu doar tableta dvs. Această funcție utilizează mai multă energie decât modul fără difuzare multiplă.""Permite aplicației să primească pachetele trimise către toate dispozitivele dintr-o rețea Wi-Fi, utilizând adrese cu difuzare multiplă, nu doar dispozitivul Android TV. Această funcție utilizează mai multă energie decât modul fără difuzare multiplă."
- "Permite aplicației să primească pachetele trimise către toate dispozitivele dintr-o rețea Wi-Fi, folosind adrese cu difuzare multiplă, nu doar telefonul tău. Această funcție folosește mai multă energie decât modul fără difuzare multiplă."
+ "Permite aplicației să primească pachetele trimise către toate dispozitivele dintr-o rețea Wi-Fi, utilizând adrese cu difuzare multiplă, nu doar telefonul dvs. Această funcție utilizează mai multă energie decât modul fără difuzare multiplă.""accesează setările Bluetooth"
- "Permite aplicației să configureze tableta Bluetooth locală, să descopere și să se asocieze cu dispozitive la distanță."
- "Permite aplicației să configureze conexiunea Bluetooth pe dispozitivul Android TV, să descopere și să se asocieze cu dispozitive la distanță."
- "Permite aplicației să configureze telefonul Bluetooth local, să descopere și să se asocieze cu dispozitive la distanță."
+ "Permite aplicației să configureze tableta Bluetooth locală, să descopere și să se împerecheze cu dispozitive la distanță."
+ "Permite aplicației să configureze conexiunea Bluetooth pe dispozitivul Android TV, să descopere și să se împerecheze cu dispozitive la distanță."
+ "Permite aplicației să configureze telefonul Bluetooth local, să descopere și să se împerecheze cu dispozitive la distanță.""se conectează și se deconectează de la WiMAX""Permite aplicației să stabilească dacă o rețea WiMAX este activată și să vadă informațiile cu privire la toate rețelele WiMAX conectate."
- "schimbă starea WiMAX"
+ "schimbați starea WiMAX""Permite aplicației să conecteze și să deconecteze tableta la și de la rețelele WiMAX.""Permite aplicației să conecteze și să deconecteze dispozitivul Android TV de la rețelele WiMAX.""Permite aplicației să conecteze și să deconecteze telefonul la și de la rețelele WiMAX.""conectează dispozitive Bluetooth"
- "Permite aplicației să vadă configurația tabletei Bluetooth, să facă și să accepte conexiuni cu dispozitive asociate."
- "Permite aplicației să vadă configurația conexiunii prin Bluetooth a dispozitivului Android TV, să efectueze și să accepte conexiuni cu dispozitive asociate."
- "Permite aplicației să vadă configurația telefonului Bluetooth, să stabilească și să accepte conexiuni cu dispozitive asociate."
+ "Permite aplicației să vadă configurația tabletei Bluetooth, să efectueze și să accepte conexiuni cu dispozitive împerecheate."
+ "Permite aplicației să vadă configurația conexiunii prin Bluetooth a dispozitivului Android TV, să efectueze și să accepte conexiuni cu dispozitive împerecheate."
+ "Permite aplicației să vadă configurația telefonului Bluetooth, să efectueze și să accepte conexiuni cu dispozitive împerecheate.""să descopere și să asocieze dispozitive Bluetooth din apropiere""Permite aplicației să descopere și să asocieze dispozitive Bluetooth din apropiere""să se conecteze la dispozitive Bluetooth asociate"
@@ -542,7 +546,7 @@
"să transmită anunțuri pe dispozitive Bluetooth din apropiere""Permite aplicației să difuzeze anunțuri pe dispozitive Bluetooth din apropiere""să stabilească poziția relativă dintre dispozitivele Ultra-Wideband din apropiere"
- "Permite-i aplicației să stabilească poziția relativă dintre dispozitivele Ultra-Wideband din apropiere"
+ "Permiteți-i aplicației să stabilească poziția relativă dintre dispozitivele Ultra-Wideband din apropiere""să interacționeze cu dispozitive Wi‑Fi din apropiere""Permite aplicației să se conecteze la dispozitive Wi-Fi din apropiere, să transmită anunțuri și să stabilească poziția relativă a acestora""Informații despre serviciul de plăți NFC preferat"
@@ -551,139 +555,130 @@
"Permite aplicației să comunice cu etichetele, cardurile și cititoarele NFC (Near Field Communication).""dezactivează blocarea ecranului""Permite aplicației să dezactiveze blocarea tastelor și orice modalitate asociată de securizare prin parolă. De exemplu, telefonul dezactivează blocarea tastelor când se primește un apel telefonic și reactivează blocarea tastelor la terminarea apelului."
- "să solicite complexitatea blocării ecranului"
- "Permite aplicației să învețe nivelul de complexitate al blocării ecranului (ridicat, mediu, scăzut sau fără), fapt ce indică intervalul posibil de lungime a parolei și tipul de blocare a ecranului. Aplicația le poate sugera utilizatorilor să își actualizeze blocarea ecranului la un anumit nivel, dar utilizatorii pot ignora sugestia și pot naviga în continuare. Reține că blocarea ecranului nu e stocată ca text simplu, astfel încât aplicația să nu cunoască parola exactă."
+ "solicitați complexitatea blocării ecranului"
+ "Permite aplicației să învețe nivelul de complexitate al blocării ecranului (ridicat, mediu, scăzut sau fără), fapt ce indică intervalul posibil de lungime a parolei și tipul de blocare a ecranului. Aplicația le poate sugera utilizatorilor să își actualizeze blocarea ecranului la un anumit nivel, dar utilizatorii pot ignora sugestia și pot naviga în continuare. Rețineți că blocarea ecranului nu este stocată ca text simplu, astfel încât aplicația să nu cunoască parola exactă.""să afișeze notificări""Permite aplicației să afișeze notificări"
- "să folosească hardware biometric"
+ "utilizați hardware biometric""Permite aplicației să folosească hardware biometric pentru autentificare""gestionează hardware-ul pentru amprentă""Permite aplicației să invoce metode pentru a adăuga și pentru a șterge șabloane de amprentă pentru utilizare.""folosește hardware-ul pentru amprentă""Permite aplicației să folosească hardware pentru amprentă pentru autentificare"
- "să modifice colecția de muzică"
- "Permite aplicației să modifice colecția de muzică."
- "să modifice colecția de videoclipuri"
- "Permite aplicației să-ți modifice colecția de videoclipuri."
- "să modifice colecția de fotografii"
- "Permite aplicației să-ți modifice colecția de fotografii."
- "să citească locațiile din colecția media"
- "Permite aplicației să citească locațiile din colecția ta media."
- "Folosește sistemele biometrice"
- "Folosește sistemele biometrice sau blocarea ecranului"
- "Confirmă-ți identitatea"
- "Folosește sistemele biometrice pentru a continua"
- "Folosește sistemele biometrice sau blocarea ecranului pentru a continua"
+ "modificați colecția de muzică"
+ "Permite aplicației să vă modifice colecția de muzică."
+ "modificați colecția de videoclipuri"
+ "Permite aplicației să vă modifice colecția de videoclipuri."
+ "modificați colecția de fotografii"
+ "Permite aplicației să vă modifice colecția de fotografii."
+ "citiți locațiile din colecția media"
+ "Permite aplicației să citească locațiile din colecția dvs. media."
+ "Folosiți sistemele biometrice"
+ "Folosiți sistemele biometrice sau blocarea ecranului"
+ "Confirmați-vă identitatea"
+ "Folosiți sistemele biometrice pentru a continua"
+ "Folosiți sistemele biometrice sau blocarea ecranului pentru a continua""Hardware biometric indisponibil""Autentificarea a fost anulată""Nu este recunoscut""Autentificarea a fost anulată"
- "Nu este setat un cod PIN, un model sau o parolă"
+ "Nu este setat niciun cod PIN, model sau parolă""Eroare la autentificare"
- "Folosește blocarea ecranului"
- "Introdu blocarea ecranului pentru a continua"
- "Apasă ferm pe senzor"
- "Amprenta nu a fost recunoscută. Încearcă din nou."
- "Curăță senzorul de amprentă și încearcă din nou"
- "Curăță senzorul și încearcă din nou"
- "Apasă ferm pe senzor"
- "Ai mișcat degetul prea lent. Încearcă din nou."
- "Încearcă altă amprentă"
+ "Folosiți blocarea ecranului"
+ "Introduceți blocarea ecranului ca să continuați"
+ "Apăsați ferm pe senzor"
+ "Amprenta nu a putut fi procesată. Încercați din nou."
+ "Curățați senzorul de amprentă și încercați din nou"
+ "Curățați senzorul și încercați din nou"
+ "Apăsați ferm pe senzor"
+ "Ați mișcat degetul prea lent. Încercați din nou."
+ "Încercați altă amprentă""Prea luminos"
- "S-a detectat apăsarea butonului de alimentare"
- "Încearcă să ajustezi"
- "Schimbă ușor poziția degetului de fiecare dată"
+ "Încercați să ajustați"
+ "Schimbați ușor poziția degetului de fiecare dată""Amprenta nu a fost recunoscută""Amprenta nu a fost recunoscută""Amprentă autentificată""Chip autentificat"
- "Chip autentificat, apasă pe Confirmă"
+ "Chip autentificat, apăsați Confirmați""Hardware-ul pentru amprentă nu este disponibil.""Nu se poate configura amprenta"
- "Configurarea amprentei a expirat. Încearcă din nou."
+ "Timpul pentru amprentare a expirat. Încercați din nou.""Operațiunea privind amprenta a fost anulată.""Operațiunea privind amprenta a fost anulată de utilizator."
- "Prea multe încercări. Folosește blocarea ecranului."
- "Prea multe încercări. Folosește blocarea ecranului."
- "Nu putem procesa amprenta. Încearcă din nou."
+ "Prea multe încercări. Încercați din nou mai târziu."
+ "Prea multe încercări. Senzorul de amprentă este dezactivat."
+ "Încercați din nou.""Nu au fost înregistrate amprente.""Dispozitivul nu are senzor de amprentă.""Senzorul este dezactivat temporar."
- "Nu se poate folosi senzorul de amprentă. Vizitează un furnizor de servicii de reparații."
- "A fost apăsat butonul de pornire"
+ "Nu se poate folosi senzorul de amprentă. Vizitați un furnizor de servicii de reparații.""Degetul %d"
- "Folosește amprenta"
- "Folosește amprenta sau blocarea ecranului"
- "Folosește amprenta pentru a continua"
- "Folosește amprenta sau blocarea ecranului pentru a continua"
+ "Folosiți amprenta"
+ "Folosiți amprenta sau blocarea ecranului"
+ "Folosiți amprenta pentru a continua"
+ "Folosiți amprenta sau blocarea ecranului pentru a continua"
- "A apărut o eroare. Încearcă din nou."
+ "A apărut o eroare. Încercați din nou.""Pictograma amprentă""Deblocare facială""Problemă cu Deblocarea facială"
- "Atinge pentru a șterge modelul facial, apoi adaugă din nou chipul"
- "Configurează Deblocarea facială"
- "Deblochează-ți telefonul uitându-te la el"
- "Pentru a folosi Deblocarea facială, activează ""Accesul la cameră"" în Setări și confidențialitate"
- "Configurează mai multe moduri de deblocare"
- "Atinge ca să adaugi o amprentă"
+ "Atingeți pentru a șterge modelul facial, apoi adăugați din nou fața"
+ "Configurați Deblocarea facială"
+ "Deblocați-vă telefonul uitându-vă la acesta"
+ "Pentru a folosi Deblocarea facială, activați ""Accesul la cameră"" în Setări și confidențialitate"
+ "Configurați mai multe moduri de deblocare"
+ "Atingeți ca să adăugați o amprentă""Deblocare cu amprenta""Nu se poate folosi senzorul de amprentă"
- "Vizitează un furnizor de servicii de reparații."
- "Nu se poate crea modelul facial. Reîncearcă."
- "Prea luminos. Încearcă o lumină mai slabă."
- "Lumină insuficientă"
- "Mută telefonul mai departe"
- "Mută telefonul mai aproape"
- "Mută telefonul mai sus"
- "Mută telefonul mai jos"
- "Mută telefonul spre stânga"
- "Mută telefonul spre dreapta"
- "Privește mai direct spre dispozitiv."
- "Nu ți se vede fața. Ține telefonul la nivelul ochilor."
- "Prea multă mișcare. Ține telefonul nemișcat."
- "Reînregistrează-ți chipul."
- "Chipul nu a fost recunoscut. Reîncearcă."
- "Schimbă ușor poziția capului"
- "Priviți direct spre telefon"
- "Privește mai direct spre telefon"
- "Privește mai direct spre telefon"
- "Îndepărtează orice îți ascunde chipul."
- "Curăță partea de sus a ecranului, inclusiv bara neagră"
-
-
-
-
- "Nu se poate crea modelul facial. Reîncearcă."
- "S-au detectat ochelari de culoare închisă. Chipul trebuie să fie vizibil în totalitate."
- "S-a detectat un articol care acoperă chipul. Chipul trebuie să fie vizibil în totalitate."
+ "Vizitați un furnizor de servicii de reparații."
+ "Nu s-a putut fotografia fața cu precizie. Încercați din nou."
+ "Prea luminos. Încercați o lumină mai slabă."
+ "Prea întunecat. Încercați o lumină mai puternică."
+ "Mutați telefonul mai departe."
+ "Mutați telefonul mai aproape."
+ "Mutați telefonul mai sus."
+ "Mutați telefonul mai jos."
+ "Mutați telefonul spre stânga."
+ "Mutați telefonul spre dreapta."
+ "Priviți mai direct spre dispozitiv."
+ "Stați cu capul direct în fața telefonului."
+ "Prea multă mișcare. Țineți telefonul nemișcat."
+ "Reînregistrați-vă chipul."
+ "Nu se mai poate recunoaște fața. Încercați din nou."
+ "Prea asemănător, schimbați poziția."
+ "Întoarceți capul mai puțin."
+ "Înclinați capul mai puțin."
+ "Întoarceți capul mai puțin."
+ "Eliminați orice vă ascunde chipul."
+ "Curățați partea de sus a ecranului, inclusiv bara neagră""Nu se poate confirma fața. Hardware-ul nu este disponibil."
- "Încearcă din nou Deblocarea facială"
- "Nu se pot stoca date faciale noi. Șterge întâi unele vechi."
+ "Încercați din nou Deblocarea facială"
+ "Nu se pot stoca date faciale noi. Ștergeți întâi unele vechi.""Operațiunea privind chipul a fost anulată.""Deblocarea facială a fost anulată de utilizator"
- "Prea multe încercări. Reîncearcă mai târziu."
+ "Prea multe încercări. Reîncercați mai târziu.""Prea multe încercări. Deblocarea facială este dezactivată."
- "Prea multe încercări. Folosește blocarea ecranului."
- "Nu se poate confirma fața. Încearcă din nou."
- "Nu ai configurat Deblocarea facială"
+ "Prea multe încercări. Folosiți blocarea ecranului."
+ "Nu se poate confirma fața. Încercați din nou."
+ "Nu ați configurat Deblocarea facială""Deblocarea facială nu este acceptată pe acest dispozitiv""Senzorul este dezactivat temporar.""Chip %d"
- "Folosește Deblocarea facială"
- "Folosește deblocarea facială sau ecranul de blocare"
- "Folosește-ți chipul pentru a continua"
- "Folosește-ți chipul sau blocarea ecranului pentru a continua"
+ "Folosiți Deblocarea facială"
+ "Folosiți deblocarea facială sau ecranul de blocare"
+ "Folosiți-vă chipul ca să continuați"
+ "Folosiți-vă chipul sau blocarea ecranului pentru a continua"
- "A apărut o eroare. Încearcă din nou."
+ "A apărut o eroare. Încercați din nou.""Pictograma chip"
- "să citească setări sincronizare"
+ "citire setări sincronizare""Permite aplicației să citească setările de sincronizare ale unui cont. De exemplu, cu această permisiune aplicația poate determina dacă aplicația Persoane este sincronizată cu un anumit cont.""activează/dezactivează sincronizarea""Permite unei aplicații să modifice setările de sincronizare ale unui cont. De exemplu, cu această permisiune aplicația poate activa sincronizarea aplicației Persoane cu un anumit cont."
@@ -710,14 +705,14 @@
"interacțiune cu ecranul în timpul unui apel""Permite aplicației să controleze când și cum vede utilizatorul ecranul în timpul unui apel.""să interacționeze cu servicii de telefonie"
- "Permite aplicației să interacționeze cu servicii de telefonie pentru a face / a primi apeluri."
+ "Permite aplicației să interacționeze cu servicii de telefonie pentru a da / a primi apeluri.""oferă o experiență de utilizare în timpul unui apel""Permite aplicației să ofere o experiență de utilizare în timpul unui apel.""citește utilizarea statistică a rețelei""Permite aplicației să citească utilizarea statistică a rețelei pentru anumite rețele și aplicații.""gestionează politica de rețea""Permite aplicației să gestioneze politicile de rețea și să definească regulile specifice aplicațiilor."
- "să modifice modul de calcul al utilizării rețelei"
+ "modificați modul de calcul al utilizării rețelei""Permite aplicației să modifice modul în care este calculată utilizarea rețelei pentru aplicații. Nu se utilizează de aplicațiile obișnuite.""accesare notificări""Permite aplicației să recupereze, să examineze și să șteargă notificări, inclusiv pe cele postate de alte aplicații."
@@ -731,7 +726,7 @@
"Permite proprietarului să apeleze aplicația de configurare furnizată de operator. Nu ar trebui să fie necesară pentru aplicațiile obișnuite.""ascultă observații despre starea rețelei""Permite unei aplicații să asculte observații despre starea rețelei. Nu ar trebui să fie necesară pentru aplicațiile obișnuite."
- "schimbă calibrarea dispozitivului de intrare"
+ "schimbați calibrarea dispozitivului de intrare""Permite aplicației să modifice parametrii de calibrare a ecranului tactil. Nu ar trebui să fie necesară pentru aplicațiile obișnuite.""accesează certificatele DRM""Permite unei aplicații să furnizeze și să utilizeze certificate DRM. Nu ar trebui să fie necesară pentru aplicațiile obișnuite."
@@ -745,50 +740,50 @@
"Permite aplicației să se conecteze la serviciile operatorului. Nu ar trebui să fie niciodată necesară pentru aplicațiile obișnuite.""accesează Nu deranja""Permite aplicației să citească și să scrie configurația Nu deranja."
- "să înceapă folosirea permisiunii de vizualizare"
+ "porniți folosirea permisiunii de vizualizare""Permite proprietarului să pornească folosirea permisiunii pentru o aplicație. Nu ar trebui să fie necesară pentru aplicațiile obișnuite.""să înceapă să examineze deciziile privind permisiunile""Permite proprietarului să deschidă ecranul pentru a examina deciziile privind permisiunile. Nu ar trebui să fie necesară pentru aplicațiile obișnuite."
- "să vadă funcțiile aplicației"
+ "începeți să vedeți funcțiile aplicației""Permite proprietarului să înceapă să vadă informațiile despre funcții pentru o aplicație.""să acceseze date de la senzori la o rată de eșantionare mare""Permite aplicației să colecteze date de la senzori la o rată de eșantionare de peste 200 Hz""Să seteze reguli pentru parolă"
- "Stabilește lungimea și tipul de caractere permise pentru parolele și codurile PIN de blocare a ecranului."
+ "Stabiliți lungimea și tipul de caractere permise pentru parolele și codurile PIN de blocare a ecranului.""Să monitorizeze încercările de deblocare a ecranului"
- "Monitorizează numărul de parole incorecte introduse la deblocarea ecranului și blochează tableta sau șterge datele acesteia dacă sunt introduse prea multe parole incorecte."
- "Monitorizează numărul de parole incorecte introduse la deblocarea ecranului și blochează dispozitivul Android TV sau șterge toate datele de pe acesta dacă se introduc prea multe parole incorecte."
- "Monitorizează numărul de parole incorecte introduse la deblocarea ecranului și blochează sistemul de infotainment sau șterge toate datele acestuia dacă sunt introduse prea multe parole incorecte."
- "Monitorizează numărul de parole incorecte introduse la deblocarea ecranului și blochează telefonul sau șterge toate datele acestuia dacă sunt introduse prea multe parole incorecte."
- "Monitorizează numărul de parole incorecte introduse la deblocarea ecranului și blochează tableta sau șterge toate datele acestui utilizator dacă se introduc prea multe parole incorecte."
- "Monitorizează numărul de parole incorecte introduse la deblocarea ecranului și blochează dispozitivul Android TV sau șterge toate datele acestui utilizator dacă se introduc prea multe parole incorecte."
- "Monitorizează numărul de parole incorecte introduse la deblocarea ecranului și blochează sistemul de infotainment sau șterge toate datele acestui profil dacă sunt introduse prea multe parole incorecte."
- "Monitorizează numărul de parole incorecte introduse la deblocarea ecranului și blochează telefonul sau șterge toate datele acestui utilizator dacă se introduc prea multe parole incorecte."
+ "Monitorizați numărul de parole incorecte introduse la deblocarea ecranului și blocați tableta sau ștergeți datele acesteia dacă sunt introduse prea multe parole incorecte."
+ "Monitorizați numărul de parole incorecte introduse la deblocarea ecranului și blocați dispozitivul Android TV sau ștergeți toate datele de pe acesta dacă se introduc prea multe parole incorecte."
+ "Monitorizați numărul de parole incorecte introduse la deblocarea ecranului și blocați sistemul de infotainment sau ștergeți toate datele acestuia dacă sunt introduse prea multe parole incorecte."
+ "Monitorizați numărul de parole incorecte introduse la deblocarea ecranului și blocați telefonul sau ștergeți toate datele acestuia dacă sunt introduse prea multe parole incorecte."
+ "Monitorizați numărul de parole incorecte introduse la deblocarea ecranului și blocați tableta sau ștergeți toate datele acestui utilizator dacă se introduc prea multe parole incorecte."
+ "Monitorizați numărul de parole incorecte introduse la deblocarea ecranului și blocați dispozitivul Android TV sau ștergeți toate datele acestui utilizator dacă se introduc prea multe parole incorecte."
+ "Monitorizați numărul de parole incorecte introduse la deblocarea ecranului și blocați sistemul de infotainment sau ștergeți toate datele acestui profil dacă sunt introduse prea multe parole incorecte."
+ "Monitorizați numărul de parole incorecte introduse la deblocarea ecranului și blocați telefonul sau ștergeți toate datele acestui utilizator dacă se introduc prea multe parole incorecte.""Să schimbe blocarea ecranului"
- "Modifică blocarea ecranului."
+ "Modificați blocarea ecranului.""Să blocheze ecranul"
- "Stabilește cum și când se blochează ecranul."
+ "Stabiliți modul și timpul în care se blochează ecranul.""Să șteargă toate datele"
- "Șterge datele de pe tabletă fără avertisment, efectuând resetarea configurării din fabrică."
- "Șterge datele de pe dispozitivul Android TV fără avertisment, efectuând o revenire la setările din fabrică."
- "Șterge datele din sistemul de infotainment fără avertisment, prin revenirea la setările din fabrică."
- "Șterge datele din telefon fără avertisment, revenind la setările din fabrică."
- "Șterge datele de profil"
- "Șterge datele utilizatorului"
- "Șterge datele acestui utilizator de pe această tabletă fără avertisment."
- "Șterge datele acestui utilizator de pe acest dispozitiv Android TV fără avertisment"
- "Șterge datele profilului din acest sistem de infotainment fără avertisment."
- "Șterge datele acestui utilizator de pe acest telefon fără avertisment."
- "Setează serverul proxy global pentru dispozitiv"
- "Setează serverul proxy global pentru dispozitiv, care să fie utilizat cât timp politica este activă. Numai proprietarul dispozitivului poate seta serverul proxy global."
- "Setează expirarea parolei pentru blocarea ecranului"
- "Modifică frecvența cu care trebuie să se schimbe parola, codul PIN sau modelul pentru blocarea ecranului."
+ "Ștergeți datele de pe tabletă fără avertisment, efectuând resetarea configurării din fabrică."
+ "Ștergeți datele de pe dispozitivul Android TV fără avertisment, efectuând o revenire la setările din fabrică."
+ "Ștergeți datele din sistemul de infotainment fără avertisment, prin revenirea la setările din fabrică."
+ "Ștergeți datele din telefon fără avertisment, efectuând resetarea configurării din fabrică."
+ "Ștergeți datele de profil"
+ "Ștergeți datele utilizatorului"
+ "Ștergeți datele acestui utilizator de pe această tabletă fără avertisment."
+ "Ștergeți datele acestui utilizator de pe acest dispozitiv Android TV fără avertisment"
+ "Ștergeți datele profilului din acest sistem de infotainment fără avertisment."
+ "Ștergeți datele acestui utilizator de pe acest telefon fără avertisment."
+ "Setați serverul proxy global pentru dispozitiv"
+ "Setați serverul proxy global pentru dispozitiv, care să fie utilizat cât timp politica este activă. Numai proprietarul dispozitivului poate seta serverul proxy global."
+ "Setați expirarea parolei pentru blocarea ecranului"
+ "Modificați frecvența cu care trebuie să se schimbe parola, codul PIN sau modelul pentru blocarea ecranului.""Să seteze criptarea stocării""Necesită ca datele aplicației stocate să fie criptate.""Să dezactiveze camerele foto"
- "Împiedică folosirea camerelor foto de pe dispozitiv."
+ "Împiedicați utilizarea camerelor foto de pe dispozitiv.""Să oprească funcții de blocare ecran"
- "Împiedică folosirea unor funcții de blocare a ecranului."
+ "Împiedicați folosirea unor funcții de blocare a ecranului.""Domiciliu""Mobil"
@@ -903,73 +898,73 @@
"Serviciu""Altul""Nu s-a găsit nicio aplicație pentru a afișa această persoană de contact."
- "Introdu codul PIN"
- "Introdu codul PUK și noul cod PIN"
+ "Introduceți codul PIN"
+ "Introduceți codul PUK și noul cod PIN""Codul PUK""Noul cod PIN"
- "Atinge ca să introduci parola"
- "Introdu parola pentru a debloca"
- "Introdu codul PIN pentru a debloca"
+ "Atingeți ca să introduceți parola"
+ "Introduceți parola pentru a debloca"
+ "Introduceți codul PIN pentru a debloca""Cod PIN incorect."
- "Pentru a debloca, apasă Meniu, apoi 0."
+ "Pentru a debloca, apăsați Meniu, apoi 0.""Număr de urgență""Fără semnal""Ecranul este blocat."
- "Apasă Meniu pentru a debloca sau pentru a efectua apeluri de urgență."
- "Apasă Meniu pentru deblocare."
- "Desenează modelul pentru a debloca"
+ "Apăsați Meniu pentru a debloca sau pentru a efectua apeluri de urgență."
+ "Apăsați Meniu pentru deblocare."
+ "Desenați modelul pentru a debloca""Urgență"
- "Revino la apel"
+ "Reveniți la apel""Corect!"
- "Încearcă din nou"
- "Încearcă din nou"
- "Deblochează pentru toate funcțiile și datele"
+ "Încercați din nou"
+ "Încercați din nou"
+ "Deblocați pentru toate funcțiile și datele""S-a depășit numărul maxim de încercări pentru Deblocare facială"
- "Niciun card SIM"
- "Nu există card SIM în tabletă."
- "Nu există card SIM în dispozitivul Android TV."
- "Nu există card SIM în telefon."
- "Adaugă un card SIM."
- "Cardul SIM lipsește sau nu poate fi citit. Adaugă un card SIM."
- "Cardul SIM nu se poate folosi."
- "Cardul tău SIM a fost dezactivat definitiv.\n Contactează furnizorul de servicii wireless pentru a obține un alt card SIM."
+ "Fără SIM"
+ "Nu există card SIM în computerul tablet PC."
+ "Nu există un card SIM în dispozitivul Android TV."
+ "Telefonul nu are card SIM."
+ "Introduceți un card SIM."
+ "Cardul SIM lipsește sau nu poate fi citit. Introduceți un card SIM."
+ "Card SIM inutilizabil."
+ "Cardul dvs. SIM este dezactivat definitiv.\n Contactați furnizorul de servicii wireless pentru a obține un alt card SIM.""Melodia anterioară""Melodia următoare""Pauză"
- "Redă"
- "Oprește"
- "Derulează"
- "Derulează rapid înainte"
+ "Redați"
+ "Opriți"
+ "Derulați"
+ "Derulați rapid înainte""Numai apeluri de urgență""Rețea blocată"
- "Cardul SIM este blocat prin cod PUK."
- "Consultă Ghidul de utilizare sau contactează asistența pentru clienți."
- "Cardul SIM este blocat."
- "Se deblochează cardul SIM…"
- "Ai desenat incorect modelul pentru deblocare de %1$d ori. \n\nÎncearcă din nou peste %2$d secunde."
- "Ai introdus incorect parola de %1$d ori. \n\nÎncearcă din nou peste %2$d secunde."
- "Ai introdus incorect codul PIN de %1$d ori.\n\nÎncearcă din nou peste %2$d secunde."
- "Ai desenat incorect modelul pentru deblocare de %1$d ori. După încă %2$d încercări nereușite, ți se va solicita să deblochezi tableta cu ajutorul datelor de conectare la Google.\n\n Încearcă din nou peste %3$d secunde."
- "Ai desenat incorect modelul pentru deblocare de %1$d ori. După încă %2$d încercări nereușite, ți se va solicita să deblochezi dispozitivul Android TV prin conectarea la Google.\n\n Încearcă din nou peste %3$d secunde."
- "Ai desenat incorect modelul pentru deblocare de %1$d ori. După încă %2$d încercări nereușite, ți se va solicita să deblochezi telefonul cu ajutorul datelor de conectare la Google.\n\n Încearcă din nou peste %3$d secunde."
- "Ai făcut %1$d încercări incorecte de deblocare a tabletei. După încă %2$d încercări nereușite, aceasta va reveni la setările din fabrică, iar toate datele de utilizator se vor pierde."
- "Ai făcut %1$d încercări incorecte de deblocare a dispozitivului Android TV. După încă %2$d încercări nereușite, acesta va reveni la setările din fabrică, iar toate datele de utilizator se vor pierde."
- "Ai făcut %1$d încercări incorecte de deblocare a telefonului. După încă %2$d încercări nereușite, acesta va reveni la setările din fabrică, iar toate datele de utilizator se vor pierde."
- "Ai făcut %d încercări incorecte de deblocare a tabletei. Tableta va reveni acum la setările din fabrică."
- "Ai făcut %d încercări incorecte de deblocare a dispozitivului Android TV. Acesta va reveni la setările din fabrică."
- "Ai făcut %d încercări incorecte de deblocare a telefonului. Acesta va reveni acum la setările din fabrică."
- "Încearcă din nou peste %d secunde."
- "Ai uitat modelul?"
+ "Cardul SIM este blocat cu codul PUK."
+ "Consultați Ghidul de utilizare sau contactați Serviciul de relații cu clienții."
+ "Cardul SIM este blocat."
+ "Se deblochează cardul SIM..."
+ "Ați desenat incorect modelul pentru deblocare de %1$d ori. \n\nÎncercați din nou peste %2$d secunde."
+ "Ați introdus incorect parola de %1$d ori. \n\nÎncercați din nou peste %2$d secunde."
+ "Ați introdus incorect codul PIN de %1$d ori.\n\nÎncercați din nou peste %2$d secunde."
+ "Ați desenat incorect modelul pentru deblocare de %1$d ori. După încă %2$d încercări nereușite, vi se va solicita să deblocați tableta cu ajutorul datelor de conectare la Google.\n\n Încercați din nou peste %3$d secunde."
+ "Ați desenat incorect modelul pentru deblocare de %1$d ori. După încă %2$d încercări nereușite, vi se va solicita să deblocați dispozitivul Android TV prin conectarea la Google.\n\n Încercați din nou peste %3$d secunde."
+ "Ați desenat incorect modelul pentru deblocare de %1$d ori. După încă %2$d încercări nereușite, vi se va solicita să deblocați telefonul cu ajutorul datelor de conectare la Google.\n\n Încercați din nou peste %3$d secunde."
+ "Ați efectuat %1$d încercări incorecte de deblocare a tabletei. După încă %2$d încercări nereușite, aceasta va fi resetată la setările prestabilite din fabrică, iar toate datele de utilizator vor fi pierdute."
+ "Ați efectuat %1$d încercări incorecte de deblocare a dispozitivului Android TV. După încă %2$d încercări nereușite, acesta va reveni la setările din fabrică, iar toate datele de utilizator se vor pierde."
+ "Ați efectuat %1$d încercări incorecte de deblocare a telefonului. După încă %2$d încercări nereușite, acesta va fi resetat la setările prestabilite din fabrică, iar toate datele de utilizator vor fi pierdute."
+ "Ați efectuat %d încercări incorecte de deblocare a tabletei. Tableta va fi acum resetată la setările prestabilite din fabrică."
+ "Ați efectuat %d încercări incorecte de deblocare a dispozitivului Android TV. Acesta va reveni la setările din fabrică."
+ "Ați efectuat %d încercări incorecte de deblocare a telefonului. Acesta va fi acum resetat la setările prestabilite din fabrică."
+ "Încercați din nou peste %d secunde."
+ "Ați uitat modelul?""Deblocare cont""Prea multe încercări de desenare a modelului"
- "Pentru a debloca, conectează-te folosind Contul Google."
+ "Pentru a debloca, conectați-vă folosind Contul Google.""Nume de utilizator (e-mail)""Parolă"
- "Conectează-te"
+ "Conectați-vă""Nume de utilizator sau parolă nevalide."
- "Ai uitat numele de utilizator sau parola?\nAccesează ""google.com/accounts/recovery""."
+ "Ați uitat numele de utilizator sau parola?\nAccesați ""google.com/accounts/recovery"".""Se verifică..."
- "Deblochează"
+ "Deblocați""Sunet activat""Sunet dezactivat""Desenarea modelului a început"
@@ -979,7 +974,7 @@
"Modelul a fost desenat""Zonă model.""%1$s. Widget %2$d din %3$d."
- "Adaugă un widget."
+ "Adăugați un widget.""Gol""Zona de deblocare a fost extinsă.""Zona de deblocare a fost restrânsă."
@@ -991,7 +986,7 @@
"A început reordonarea widgeturilor.""Reordonarea widgeturilor s-a încheiat.""Widgetul %1$s a fost eliminat."
- "Extinde zona de deblocare."
+ "Extindeți zona de deblocare.""Deblocare prin glisare.""Deblocare cu model.""Deblocare facială."
@@ -1011,18 +1006,18 @@
"Testarea de fabrică nu a reușit""Acțiunea FACTORY_TEST este acceptată doar pentru pachetele instalate în /system/app.""Nu s-a găsit niciun pachet care să ofere acțiunea FACTORY_TEST."
- "Repornește"
+ "Reporniți""La pagina de la „%s” apare:""JavaScript"
- "Confirmă părăsirea paginii"
- "Părăsește această pagină"
- "Rămâi în această pagină"
- "%s\n\nSigur părăsești această pagină?"
- "Confirmă"
- "Sfat: mărește și micșorează prin dublă atingere."
+ "Confirmați părăsirea paginii"
+ "Părăsiți această pagină"
+ "Rămâneți în această pagină"
+ "%s\n\nSigur doriți să părăsiți această pagină?"
+ "Confirmați"
+ "Sfat: măriți și micșorați prin dublă atingere.""Automat""Conf.Compl.auto."
- "Completează automat cu %1$s"
+ "Completați automat cu %1$s"" ""$1$2$3"", "
@@ -1051,11 +1046,11 @@
"Permite aplicației să adauge mesaje în Mesaje primite în mesageria vocală.""modificare permisiuni pentru locația geografică a browserului""Permite aplicației să modifice permisiunile privind locația geografică a browserului. Aplicațiile rău intenționate pot utiliza această permisiune pentru a permite trimiterea informațiilor privind locația către site-uri web arbitrare."
- "Vrei ca browserul să rețină această parolă?"
+ "Doriți ca browserul să rețină această parolă?""Nu acum"
- "Reține"
+ "Rețineți""Niciodată"
- "Nu ai permisiunea de a deschide această pagină."
+ "Nu aveți permisiunea de a deschide această pagină.""Text copiat în clipboard.""%1$s a inserat date din %2$s""%1$s a inserat din clipboard"
@@ -1073,16 +1068,16 @@
"spațiu""enter""delete"
- "Caută"
- "Caută…"
- "Caută"
+ "Căutați"
+ "Căutați…"
+ "Căutați""Interogare de căutare"
- "Șterge interogarea"
- "Trimite interogarea"
+ "Ștergeți interogarea"
+ "Trimiteți interogarea""Căutare vocală"
- "Activezi Explorează prin atingere?"
- "%1$s vrea să activeze funcția Explorează prin atingere. Când e activată, poți auzi sau vedea descrieri pentru ceea ce se află sub degetul tău sau poți face gesturi pentru a interacționa cu tableta."
- "%1$s dorește să activeze funcția Explorează prin atingere. Când aceasta e activată, poți auzi sau vedea descrieri pentru ceea ce se află sub degetul tău sau poți face gesturi pentru a interacționa cu telefonul."
+ "Activați Explorați prin atingere?"
+ "%1$s dorește să activeze funcția Explorați prin atingere. Când această funcție este activată, puteți auzi sau vedea descrieri pentru ceea ce se află sub degetul dvs. sau puteți efectua gesturi pentru a interacționa cu tableta."
+ "%1$s dorește să activeze funcția Explorați prin atingere. Când această funcție este activată, puteți auzi sau vedea descrieri pentru ceea ce se află sub degetul dvs. sau puteți efectua gesturi pentru a interacționa cu telefonul.""cu 1 lună în urmă""Cu mai mult de 1 lună în urmă""{count,plural, =1{Ultima zi}few{Ultimele # zile}other{Ultimele # de zile}}"
@@ -1095,9 +1090,9 @@
" zile""oră""ore"
- "min."
+ "min""min."
- "sec."
+ "sec""sec.""săptămână""săptămâni"
@@ -1122,7 +1117,7 @@
"{count,plural, =1{# an}few{# ani}other{# de ani}}""Problemă video""Acest fișier video nu este valid pentru a fi transmis în flux către acest dispozitiv."
- "Nu poți reda acest videoclip"
+ "Nu puteți reda acest videoclip""OK""%1$s, %2$s""prânz"
@@ -1131,35 +1126,35 @@
"Miezul nopții""%1$02d:%2$02d""%1$d:%2$02d:%3$02d"
- "Selectează-le pe toate"
- "Decupează"
- "Copiază"
+ "Selectați-le pe toate"
+ "Decupați"
+ "Copiați""Eroare la copierea în clipboard"
- "Inserează"
- "Inserează ca text simplu"
- "Înlocuiește..."
- "Șterge"
- "Copiază adresa URL"
- "Selectează text"
- "Anulează"
- "Repetă"
+ "Inserați"
+ "Inserați ca text simplu"
+ "Înlocuiți..."
+ "Ștergeți"
+ "Copiați adresa URL"
+ "Selectați text"
+ "Anulați"
+ "Repetați""Completare automată""Selectare text"
- "Adaugă în dicționar"
- "Șterge"
+ "Adăugați în dicționar"
+ "Ștergeți""Metodă de intrare""Acțiuni pentru text""Înapoi"
- "Schimbă metoda de introducere"
+ "Comutați metoda de introducere a textului""Spațiul de stocare aproape ocupat""Este posibil ca unele funcții de sistem să nu funcționeze"
- "Spațiu de stocare insuficient pentru sistem. Asigură-te că ai 250 MB de spațiu liber și repornește."
+ "Spațiu de stocare insuficient pentru sistem. Asigurați-vă că aveți 250 MB de spațiu liber și reporniți.""%1$s rulează acum"
- "Atinge pentru mai multe informații sau pentru a opri aplicația."
+ "Atingeți pentru mai multe informații sau pentru a opri aplicația.""OK"
- "Anulează"
+ "Anulați""OK"
- "Anulează"
+ "Anulați""Atenție""Se încarcă…""DA"
@@ -1170,67 +1165,67 @@
"neselectat""în curs""Finalizare acțiune utilizând"
- "Finalizează acțiunea folosind %1$s"
- "Finalizează acțiunea"
- "Deschide cu"
- "Deschide cu %1$s"
- "Deschide"
- "Deschide linkurile %1$s cu"
- "Deschide linkurile cu"
- "Deschide linkurile cu %1$s"
- "Deschide linkurile %1$s cu %2$s"
- "Permite accesul"
- "Editează cu"
- "Editează cu %1$s"
- "Editează"
- "Trimite"
- "Distribuie cu %1$s"
- "Trimite"
- "Trimite folosind"
- "Trimite folosind %1$s"
- "Trimite"
- "Selectează o aplicație de pe ecranul de pornire"
- "Folosește %1$s ca ecran de pornire"
- "Fotografiază"
- "Fotografiază cu"
- "Fotografiază cu %1$s"
- "Fotografiază"
+ "Finalizați acțiunea utilizând %1$s"
+ "Finalizați acțiunea"
+ "Deschideți cu"
+ "Deschideți cu %1$s"
+ "Deschideți"
+ "Deschideți linkurile %1$s cu"
+ "Deschideți linkurile cu"
+ "Deschideți linkurile cu %1$s"
+ "Deschideți linkurile %1$s cu %2$s"
+ "Permiteți accesul"
+ "Editați cu"
+ "Editați cu %1$s"
+ "Editați"
+ "Trimiteți"
+ "Distribuiți cu %1$s"
+ "Trimiteți"
+ "Trimiteți folosind"
+ "Trimiteți folosind %1$s"
+ "Trimiteți"
+ "Selectați o aplicație de pe ecranul de pornire"
+ "Utilizați %1$s ca ecran de pornire"
+ "Fotografiați"
+ "Fotografiați cu"
+ "Fotografiați cu %1$s"
+ "Fotografiați""Se utilizează în mod prestabilit pentru această acțiune."
- "Folosește altă aplicație"
- "Șterge setările prestabilite din Setări de sistem > Aplicații > Descărcate."
- "Alege o acțiune"
- "Alege o aplicație pentru dispozitivul USB"
+ "Utilizați altă aplicație"
+ "Ștergeți setările prestabilite din Setări de sistem > Aplicații > Descărcate."
+ "Alegeți o acțiune"
+ "Alegeți o aplicație pentru dispozitivul USB""Această acțiune nu poate fi efectuată de nicio aplicație.""%1$s s-a oprit""%1$s s-a oprit""%1$s se oprește încontinuu""%1$s se oprește încontinuu"
- "Deschide din nou aplicația"
- "Trimite feedback"
- "Închide"
- "Dezactivează până la repornirea dispozitivului"
- "Așteaptă"
- "Închide aplicația"
+ "Deschideți din nou aplicația"
+ "Trimiteți feedback"
+ "Închideți"
+ "Dezactivați până la repornirea dispozitivului"
+ "Așteptați"
+ "Închideți aplicația""%2$s nu răspunde""%1$s nu răspunde""%1$s nu răspunde""Procesul %1$s nu răspunde""OK"
- "Raportează"
- "Așteaptă"
- "Pagina a devenit inactivă.\n\nO închizi?"
+ "Raportați"
+ "Așteptați"
+ "Pagina a devenit inactivă.\n\nDoriți să o închideți?""Aplicație redirecționată""%1$s funcționează acum.""%1$s a fost lansată inițial.""Scară"
- "Afișează întotdeauna"
- "Reactivează acest mod din Setări de sistem > Aplicații > Descărcate."
+ "Afișați întotdeauna"
+ "Reactivați acest mod din Setări de sistem > Aplicații > Descărcate.""%1$s nu acceptă setarea actuală pentru Dimensiunea afișării și este posibil să aibă un comportament neașteptat.""Afișează întotdeauna""%1$s a fost concepută pentru o versiune incompatibilă de sistem de operare Android și este posibil să se comporte în mod neprevăzut. Poate fi disponibilă o versiune actualizată a aplicației."
- "Afișează întotdeauna"
- "Caută actualizări"
+ "Afișați întotdeauna"
+ "Căutați actualizări""Aplicația %1$s (procesul %2$s) a încălcat propria politică StrictMode.""Procesul %1$s a încălcat propria politică StrictMode.""Se actualizează telefonul.…"
@@ -1247,28 +1242,29 @@
"Se pregătește %1$s.""Se pornesc aplicațiile.""Se finalizează pornirea."
- "Ai apăsat butonul de pornire. De obicei, astfel se dezactivează ecranul.\n\nAtinge ușor când îți configurezi amprenta."
- "Ca să termini configurarea, dezactivează ecranul"
- "Dezactivează"
- "Continui cu verificarea amprentei?"
- "Ai apăsat butonul de pornire. De obicei, astfel se dezactivează ecranul.\n\nAtinge ușor pentru verificarea amprentei."
- "Dezactivează ecranul"
- "Continuă"
+ "Continuați configurarea?"
+ "Ați apăsat butonul de pornire. De obicei, această acțiune dezactivează ecranul.\n\nAtingeți ușor când vă configurați amprenta."
+ "Dezactivați ecranul"
+ "Continuați configurarea"
+ "Continuați cu verificarea amprentei?"
+ "Ați apăsat butonul de pornire. De obicei, această acțiune dezactivează ecranul.\n\nAtingeți ușor pentru verificarea amprentei."
+ "Dezactivați ecranul"
+ "Continuați""Rulează %1$s"
- "Atinge pentru a reveni la joc"
- "Alege jocul"
+ "Atingeți pentru a reveni la joc"
+ "Alegeți jocul""Pentru o performanță mai bună, se poate deschide un singur joc odată."
- "Revino la %1$s"
- "Deschide %1$s"
+ "Reveniți la %1$s"
+ "Deschideți %1$s""%1$s se va închide fără să salveze""%1$s a depășit limita de memorie""Datele privind memoria heap %1$s sunt gata"
- "Datele privind memoria au fost culese. Atinge pentru a trimite."
- "Trimiți datele privind memoria?"
- "Procesul %1$s și-a depășit limita de memorie de %2$s. Sunt disponibile datele privind memoria heap, pe care le poți trimite dezvoltatorului. Atenție: aceste date privind memoria heap pot conține informații cu caracter personal la care aplicația are acces."
- "Procesul %1$s a depășit limita de memorie de %2$s. Sunt disponibile datele privind memoria heap, pe care le poți distribui. Atenție: aceste date privind memoria heap pot conține informații cu caracter personal sensibile la care procesul are acces și care pot include ceea ce tastezi."
- "Sunt disponibile datele privind memoria heap a procesului %1$s, pe care le poți distribui. Atenție: aceste date privind memoria heap pot conține informații cu caracter personal sensibile la care procesul are acces și care pot include ceea ce tastezi."
- "Alege o acțiune pentru text"
+ "Datele privind memoria au fost culese. Atingeți pentru a trimite."
+ "Trimiteți datele privind memoria?"
+ "Procesul %1$s și-a depășit limita de memorie de %2$s. Sunt disponibile datele privind memoria heap, pe care le puteți trimite dezvoltatorului. Atenție: aceste date privind memoria heap pot conține informații cu caracter personal la care aplicația are acces."
+ "Procesul %1$s a depășit limita de memorie de %2$s. Sunt disponibile datele privind memoria heap, pe care le puteți distribui. Atenție: aceste date privind memoria heap pot conține informații cu caracter personal sensibile la care procesul are acces și care pot include ceea ce tastați."
+ "Sunt disponibile datele privind memoria heap a procesului %1$s, pe care le puteți distribui. Atenție: aceste date privind memoria heap pot conține informații cu caracter personal sensibile la care procesul are acces și care pot include ceea ce tastați."
+ "Alegeți o acțiune pentru text""Volum sonerie""Volum media""Redare prin Bluetooth"
@@ -1290,17 +1286,17 @@
"Sunete de alarmă""Sunete pentru notificare""Necunoscut"
- "Conectează-te la rețeaua Wi-Fi"
- "Conectează-te la rețea"
+ "Conectați-vă la rețeaua Wi-Fi"
+ "Conectați-vă la rețea""%1$s nu are acces la internet"
- "Atinge pentru opțiuni"
+ "Atingeți pentru opțiuni""Rețeaua mobilă nu are acces la internet""Rețeaua nu are acces la internet""Serverul DNS privat nu poate fi accesat""%1$s are conectivitate limitată"
- "Atinge pentru a te conecta oricum"
+ "Atingeți pentru a vă conecta oricum""S-a comutat la %1$s""Dispozitivul folosește %1$s când %2$s nu are acces la internet. Se pot aplica taxe.""S-a comutat de la %1$s la %2$s"
@@ -1312,37 +1308,37 @@
"VPN""un tip de rețea necunoscut"
- "Accept"
- "Refuz"
- "Introdu caracterul"
+ "Acceptați"
+ "Refuzați"
+ "Introduceți caracterul""Se trimit mesaje SMS"
- "<b>%1$s</b> trimite un număr mare de mesaje SMS. Permiți acestei aplicații să trimită în continuare mesaje?"
- "Permite"
- "Refuz"
+ "<b>%1$s</b> trimite un număr mare de mesaje SMS. Permiteți acestei aplicații să trimită în continuare mesaje?"
+ "Permiteți"
+ "Refuzați""<b>%1$s</b> intenționează să trimită un mesaj la <b>%2$s</b>."
- "Acest lucru ""poate genera costuri"" în contul tău mobil."
- "Acest lucru va genera costuri în contul tău mobil."
- "Trimite"
- "Anulează"
- "Reține opțiunea"
- "Poți modifica ulterior în Setări > Aplicații"
- "Permite întotdeauna"
- "Nu permite niciodată"
- "S-a eliminat cardul SIM"
- "Rețeaua mobilă va fi indisponibilă până când repornești cu un card SIM valid."
+ "Acest lucru ""poate genera costuri"" în contul dvs. mobil."
+ "Acest lucru va genera costuri în contul dvs. mobil."
+ "Trimiteți"
+ "Anulați"
+ "Doresc să se rețină opțiunea"
+ "Puteți modifica ulterior în Setări > Aplicații"
+ "Permiteți întotdeauna"
+ "Nu permiteți niciodată"
+ "Card SIM eliminat"
+ "Rețeaua mobilă va fi indisponibilă până când reporniți cu un card SIM valid introdus.""Terminat"
- "S-a adăugat cardul SIM"
- "Repornește dispozitivul pentru a accesa rețeaua mobilă."
- "Repornește"
- "Activează serviciul mobil"
- "Descarcă aplicația operatorului pentru a activa noul card SIM"
- "Descarcă aplicația %1$s pentru a-ți activa noul card SIM"
- "Descarcă aplicația"
+ "Card SIM adăugat"
+ "Reporniți dispozitivul pentru a accesa rețeaua mobilă."
+ "Reporniți"
+ "Activați serviciul mobil"
+ "Descărcați aplicația operatorului pentru a vă activa noul card SIM"
+ "Descărcați aplicația %1$s pentru a vă activa noul card SIM"
+ "Descărcați aplicația""S-a introdus un card SIM nou"
- "Atinge pentru a-l configura"
- "Setează ora"
- "Setează data"
- "Setează"
+ "Atingeți pentru a-l configura"
+ "Setați ora"
+ "Setați data"
+ "Setați""Terminat""NOU: ""Furnizată de %1$s."
@@ -1356,82 +1352,82 @@
"Tetheringul prin USB este activat""MIDI prin USB este activat""Accesoriu USB conectat"
- "Atinge pentru mai multe opțiuni."
- "Se încarcă dispozitivul conectat. Atinge pentru mai multe opțiuni."
+ "Atingeți pentru mai multe opțiuni."
+ "Se încarcă dispozitivul conectat. Atingeți pentru mai multe opțiuni.""S-a detectat un accesoriu audio analogic"
- "Dispozitivul atașat nu este compatibil cu acest telefon. Atinge pentru a afla mai multe."
- "Remedierea erorilor prin USB conectată"
- "Atinge pentru a dezactiva."
- "Selectează pentru a dezactiva remedierea erorilor prin USB."
+ "Dispozitivul atașat nu este compatibil cu acest telefon. Atingeți pentru a afla mai multe."
+ "Remedierea erorilor prin USB este conectată"
+ "Atingeți pentru a dezactiva remedierea erorilor prin USB."
+ "Selectați pentru a dezactiva remedierea erorilor prin USB.""Remedierea erorilor wireless este activă"
- "Atinge pentru a dezactiva remedierea erorilor wireless"
- "Selectează pentru a dezactiva remedierea erorilor wireless."
+ "Atingeți pentru a dezactiva remedierea erorilor wireless"
+ "Selectați pentru a dezactiva remedierea erorilor wireless.""Modul Set de testare este activat"
- "Revino la setările din fabrică pentru a dezactiva modul Set de testare."
+ "Reveniți la setările din fabrică pentru a dezactiva modul Set de testare.""Consola din serie este activată"
- "Performanța este afectată. Pentru a dezactiva, verifică programul bootloader."
+ "Performanța este afectată. Pentru a dezactiva, verificați programul bootloader.""MTE experimentală activată"
- "Performanța și stabilitatea pot fi afectate. Repornește pentru a dezactiva. Dacă s-a activat cu arm64.memtag.bootctl, setează dinainte la niciuna."
+ "Performanța și stabilitatea pot fi afectate. Reporniți pentru a dezactiva. Dacă s-a activat cu arm64.memtag.bootctl, setați înainte la niciuna.""Lichide sau reziduuri în portul USB"
- "Portul USB este dezactivat automat. Atinge ca să afli mai multe."
+ "Portul USB este dezactivat automat. Atingeți ca să aflați mai multe.""Portul USB poate fi folosit""Telefonul nu mai detectează lichide sau reziduuri.""Se creează un raport de eroare…"
- "Trimiți raportul de eroare?"
+ "Trimiteți raportul de eroare?""Se trimite raportul de eroare…"
- "Administratorul a solicitat un raport de eroare pentru a remedia problemele acestui dispozitiv. E posibil să se permită accesul la date și aplicații."
- "TRIMITE"
- "REFUZ"
- "Alege metoda de introducere de text"
+ "Administratorul dvs. a solicitat un raport de eroare pentru a remedia problemele acestui dispozitiv. Este posibil să se permită accesul la date și aplicații."
+ "TRIMITEȚI"
+ "REFUZAȚI"
+ "Alegeți metoda de introducere de text""Se păstrează pe ecran cât timp este activată tastatura fizică"
- "Afișează tastatura virtuală"
- "Configurează tastatura fizică"
- "Atinge pentru a selecta limba și aspectul"
+ "Afișați tastatura virtuală"
+ "Configurați tastatura fizică"
+ "Atingeți pentru a selecta limba și aspectul"" ABCDEFGHIJKLMNOPQRSTUVWXYZ"" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ""Afișare peste alte aplicații""%s se afișează peste alte aplicații""%s se afișează peste aplicații"
- "Dacă nu vrei ca %s să folosească această funcție, atinge pentru a deschide setările și dezactiveaz-o."
- "Dezactivează"
+ "Dacă nu doriți ca %s să utilizeze această funcție, atingeți pentru a deschide setările și dezactivați-o."
+ "Dezactivați""Se verifică %s…""Se examinează conținutul curent""Se analizează spațiul de stocare media""%s nou""%s nu funcționează"
- "Atinge pentru a configura"
- "Selectează pentru a configura"
- "Poate fi nevoie să reformatezi dispozitivul. Atinge pentru a-l scoate."
- "Pentru stocarea de fotografii, videoclipuri, muzică și altele"
- "Răsfoiește fișierele media"
+ "Atingeți pentru a configura"
+ "Selectați pentru a configura"
+ "Poate fi nevoie să reformatați dispozitivul. Atingeți pentru a-l scoate."
+ "Pentru a transfera fotografii și fișiere media"
+ "Răsfoiți fișierele media""Problemă cu %s""%s nu funcționează"
- "Atinge pentru a remedia"
- "%s este corupt. Selectează pentru a remedia."
- "Poate fi nevoie să reformatezi dispozitivul. Atinge pentru a-l scoate."
- "S-a detectat %s"
+ "Atingeți pentru a remedia"
+ "%s este corupt. Selectați pentru a remedia."
+ "Poate fi nevoie să reformatați dispozitivul. Atingeți pentru a-l scoate."
+ "%s necompatibil""%s nu funcționează"
- "Atinge pentru a configura"
- "Selectează pentru a configura %s într-un format acceptat."
- "Poate fi nevoie să reformatezi dispozitivul"
+ "Dispozitivul nu este compatibil cu acest %s. Atingeți pentru configurare într-un format compatibil."
+ "Selectați pentru a configura %s într-un format acceptat."
+ "Poate fi nevoie să reformatați dispozitivul""%s scos pe neașteptate"
- "Deconectează din setări dispozitivele media înainte de a le îndepărta, pentru a evita pierderea conținutului"
+ "Deconectați din setări dispozitivele media înainte de a le îndepărta, pentru a evita pierderea conținutului""S-a eliminat %s"
- "Funcționarea ar putea fi necorespunzătoare. Introdu un dispozitiv de stocare nou."
+ "Funcționarea ar putea fi necorespunzătoare. Introduceți un dispozitiv de stocare nou.""Se deconectează %s"
- "Nu scoate"
- "Configurează"
- "Scoate"
- "Explorează"
- "Schimbă ieșirea"
+ "Nu scoateți"
+ "Configurați"
+ "Scoateți"
+ "Explorați"
+ "Schimbați ieșirea""%s lipsește"
- "Reintrodu dispozitivul"
+ "Reintroduceți dispozitivul""Se mută %s""Se mută datele""Transfer de conținut încheiat""Conținut mutat pe %s""Nu s-a putut muta conținutul"
- "Încearcă să muți din nou conținutul"
+ "Încercați să mutați din nou conținutul""Eliminat""Scos""Se verifică..."
@@ -1456,61 +1452,61 @@
"Permite unei aplicații să solicite permisiunea de a ignora optimizările bateriei pentru aplicația respectivă.""să interogheze toate pachetele""Permite unei aplicații să vadă toate pachetele instalate."
- "Apasă de două ori pentru a controla mărirea/micșorarea"
+ "Apăsați de două ori pentru a controla mărirea/micșorarea""Nu s-a putut adăuga widgetul."
- "Accesează"
- "Caută"
- "Trimite"
+ "Accesați"
+ "Căutați"
+ "Trimiteți""Înainte""Terminat""Înapoi"
- "Execută"
- "Formează numărul\nfolosind %s"
- "Creează contactul\nutilizând %s"
- "Următoarele aplicații solicită permisiunea de a-ți accesa contul acum și în viitor."
- "Permiți această solicitare?"
+ "Executați"
+ "Formați numărul\nutilizând %s"
+ "Creați contactul\nutilizând %s"
+ "Următoarele aplicații solicită permisiunea de a accesa contul dvs. acum și în viitor."
+ "Permiteți această solicitare?""Solicitare de acces"
- "Permite"
- "Refuz"
+ "Permiteți"
+ "Refuzați""Permisiune solicitată""Permisiune solicitată\npentru contul %s.""Permisiune solicitată de %1$s\npentru contul %2$s."
- "Folosești această aplicație în afara profilului de serviciu"
- "Folosești această aplicație în profilul de serviciu"
+ "Utilizați această aplicație în afara profilului de serviciu"
+ "Utilizați această aplicație în profilul de serviciu""Metodă de intrare""Sincronizare""Accesibilitate""Imagine de fundal"
- "Schimbă imaginea de fundal"
+ "Schimbați imaginea de fundal""Serviciu de citire a notificărilor""Instrument de ascultare pentru RV""Furnizor de condiții""Serviciul de clasificare a notificărilor""VPN activat""VPN este activată de %s"
- "Apasă pentru a gestiona rețeaua."
- "Conectat la %s. Apasă pentru a gestiona rețeaua."
+ "Apăsați pentru a gestiona rețeaua."
+ "Conectat la %s. Apăsați pentru a gestiona rețeaua.""Se efectuează conectarea la rețeaua VPN activată permanent…""Conectat(ă) la rețeaua VPN activată permanent""Deconectat de la rețeaua VPN activată permanent""Nu s-a putut conecta la rețeaua VPN activată permanent"
- "Modifică setările de rețea sau VPN"
- "Alege un fișier"
+ "Modificați setările de rețea sau VPN"
+ "Alegeți un fișier""Nu au fost găsite fișiere"
- "Resetează"
- "Trimite"
+ "Resetați"
+ "Trimiteți""Aplicația pentru condus rulează"
- "Atinge ca să ieși din aplicația pentru condus."
+ "Atingeți ca să ieșiți din aplicația pentru condus.""Înapoi""Înainte"
- "Omite"
+ "Omiteți""Nicio potrivire"
- "Caută în pagină"
+ "Găsiți pe pagină""{count,plural, =1{# potrivire}few{# din {total}}other{# din {total}}}""Terminat""Se șterge spațiul de stocare distribuit..."
- "Distribuie"
- "Caută"
+ "Distribuiți"
+ "Găsiți""Căutare pe web""Următorul rezultat""Rezultatul anterior"
@@ -1520,46 +1516,46 @@
"Da""Nu""Limita pentru ștergere a fost depășită"
- "Există %1$d elemente șterse pentru %2$s, contul %3$s. Ce vrei să faci?"
- "Șterge elementele"
- "Anulează aceste ștergeri"
- "Nu trebuie să iei nicio măsură deocamdată"
- "Alege un cont"
- "Adaugă un cont"
- "Adaugă un cont"
- "Mărește"
- "Redu"
- "%s atinge lung."
- "Glisează în sus pentru a crește și în jos pentru a reduce."
- "Mărește valoarea pentru minute"
- "Redu valoarea pentru minute"
- "Mărește valoarea pentru oră"
- "Redu valoarea pentru oră"
- "Setează valoarea PM"
- "Setează valoarea AM"
- "Mărește valoarea pentru lună"
- "Redu valoarea pentru lună"
- "Mărește valoarea pentru zi"
- "Redu valoarea pentru zi"
- "Mărește valoarea pentru an"
- "Redu valoarea pentru an"
+ "Există %1$d elemente șterse pentru %2$s, contul %3$s. Ce doriți să faceți?"
+ "Ștergeți elementele"
+ "Anulați aceste ștergeri"
+ "Nu trebuie să luați nicio măsură deocamdată"
+ "Alegeți un cont"
+ "Adăugați un cont"
+ "Adăugați un cont"
+ "Creșteți"
+ "Reduceți"
+ "%s atingeți lung."
+ "Glisați în sus pentru a crește și în jos pentru a reduce."
+ "Creșteți valoarea pentru minute"
+ "Reduceți valoarea pentru minute"
+ "Creșteți valoarea pentru oră"
+ "Reduceți valoarea pentru oră"
+ "Setați valoarea PM"
+ "Setați valoarea AM"
+ "Creșteți valoarea pentru lună"
+ "Reduceți valoarea pentru lună"
+ "Creșteți valoarea pentru zi"
+ "Reduceți valoarea pentru zi"
+ "Creșteți valoarea pentru an"
+ "Reduceți valoarea pentru an""Luna trecută""Luna viitoare""Alt"
- "Anulează"
- "Șterge"
+ "Anulați"
+ "Ștergeți""Terminat""Schimbarea modului""Shift""Enter"
- "Alege o aplicație"
+ "Alegeți o aplicație""Nu s-a putut lansa %s"
- "Permite accesul pentru"
- "Permite accesul pentru %s"
- "Ghidaj glisant. Atinge și ține apăsat."
- "Glisează pentru a debloca."
- "Navighează la ecranul de pornire"
- "Navighează în sus"
+ "Permiteți accesul pentru"
+ "Permiteți accesul pentru %s"
+ "Mâner glisant. Atingeți și țineți apăsat."
+ "Glisați pentru a debloca."
+ "Navigați la ecranul de pornire"
+ "Navigați în sus""Mai multe opțiuni""%1$s, %2$s""%1$s, %2$s, %3$s"
@@ -1569,19 +1565,19 @@
"Unitate USB""Unitate USB %s""Dsipozitiv de stocare USB"
- "Editează"
+ "Editați""Avertisment pentru date"
- "Ai folosit %s din date"
+ "Ați folosit %s din date""S-a atins limita de date mobile"
- "Ai atins limita de date Wi-Fi"
+ "Ați atins limita de date Wi-Fi""Datele au fost întrerupte pentru restul ciclului""Peste limita de date mobile""Peste limita de date Wi-Fi"
- "Ai depășit limita stabilită cu %s"
+ "Ați depășit limita stabilită cu %s""Datele de fundal restricționate"
- "Atinge ca să elimini restricția."
+ "Atingeți ca să eliminați restricția.""Utilizare mare de date mobile"
- "Aplicațiile au folosit mai multe date decât de obicei"
+ "Aplicațiile dvs. au utilizat mai multe date decât de obicei""%s a utilizat mai multe date decât de obicei""Certificat de securitate""Certificatul este valid."
@@ -1597,12 +1593,12 @@
"Amprente:""Amprentă SHA-256:""Amprentă SHA-1:"
- "Afișează-le pe toate"
- "Alege activitatea"
- "Distribuie pentru"
+ "Afișați-le pe toate"
+ "Alegeți activitatea"
+ "Distribuiți pentru""Se trimite..."
- "Lansezi browserul?"
- "Accepți apelul?"
+ "Lansați browserul?"
+ "Acceptați apelul?""Întotdeauna""Numai o dată""%1$s nu acceptă profilul de serviciu"
@@ -1610,18 +1606,18 @@
"TV""Telefon""Difuz. dispozit. andocare"
- "Dispozitiv extern"
+ "HDMI""Căști""USB""Sistem""Audio Bluetooth""Ecran wireless"
- "Trimite"
- "Conectează-te la dispozitiv"
- "Proiectează ecranul pe dispozitiv"
+ "Trimiteți"
+ "Conectați-vă la dispozitiv"
+ "Proiectați ecranul pe dispozitiv""Se caută dispozitive...""Setări"
- "Deconectează-te"
+ "Deconectați-vă""Se scanează...""Se conectează...""Disponibilă"
@@ -1636,82 +1632,82 @@
"Model greșit""Parolă greșită""Cod PIN greșit"
- "Desenează modelul"
- "Introdu codul PIN al cardului SIM"
- "Introdu codul PIN"
- "Introdu parola"
- "Cardul SIM este acum dezactivat. Introdu codul PUK pentru a continua. Contactează operatorul pentru mai multe detalii."
- "Introdu codul PIN dorit"
- "Confirmă codul PIN dorit"
- "Se deblochează cardul SIM…"
+ "Desenați modelul"
+ "Introduceți codul PIN al cardului SIM"
+ "Introduceți codul PIN"
+ "Introduceți parola"
+ "Cardul SIM este acum dezactivat. Introduceți codul PUK pentru a continua. Contactați operatorul pentru mai multe detalii."
+ "Introduceți codul PIN dorit"
+ "Confirmați codul PIN dorit"
+ "Se deblochează cardul SIM...""Cod PIN incorect."
- "Introdu un cod PIN format din 4 până la 8 cifre."
+ "Introduceți un cod PIN format din 4 până la 8 cifre.""Codul PUK trebuie să conțină 8 numere."
- "Reintrodu codul PUK corect. Încercările repetate vor dezactiva definitiv cardul SIM."
+ "Reintroduceți codul PUK corect. Încercările repetate vor dezactiva definitiv cardul SIM.""Codurile PIN nu coincid""Prea multe încercări de desenare a modelului"
- "Pentru a debloca, conectează-te folosind Contul Google."
+ "Pentru a debloca, conectați-vă cu Contul dvs. Google.""Nume de utilizator (e-mail)""Parolă"
- "Conectează-te"
+ "Conectați-vă""Nume de utilizator sau parolă nevalide."
- "Ai uitat numele de utilizator sau parola?\nAccesează ""google.com/accounts/recovery""."
+ "Ați uitat numele de utilizator sau parola?\nAccesați ""google.com/accounts/recovery"".""Se verifică contul…"
- "Ai introdus incorect codul PIN de %1$d ori.\n\nÎncearcă din nou peste %2$d secunde."
- "Ai introdus incorect parola de %1$d ori. \n\nÎncearcă din nou peste %2$d secunde."
- "Ai desenat incorect modelul pentru deblocare de %1$d ori. \n\nÎncearcă din nou peste %2$d secunde."
- "Ai făcut %1$d încercări incorecte de deblocare a tabletei. După încă %2$d încercări nereușite, aceasta va reveni la setările din fabrică, iar toate datele de utilizator se vor pierde."
- "Ai făcut %1$d încercări incorecte de deblocare a dispozitivului Android TV. După încă %2$d încercări nereușite, acesta va reveni la setările din fabrică, iar toate datele de utilizator se vor pierde."
- "Ai făcut %1$d încercări incorecte de deblocare a telefonului. După încă %2$d încercări nereușite, acesta va reveni la setările din fabrică, iar toate datele de utilizator se vor pierde."
- "Ai făcut %d încercări incorecte de deblocare a tabletei. Tableta va reveni acum la setările din fabrică."
- "Ai făcut %d încercări incorecte de deblocare a dispozitivului Android TV. Acesta va reveni la setările din fabrică."
- "Ai făcut %d încercări incorecte de deblocare a telefonului. Telefonul va reveni acum la setările din fabrică."
- "Ai desenat incorect modelul pentru deblocare de %1$d ori. După încă %2$d încercări nereușite, ți se va solicita să deblochezi tableta cu ajutorul unui cont de e-mail.\n\n Încearcă din nou peste %3$d secunde."
- "Ai desenat incorect modelul pentru deblocare de %1$d ori. După încă %2$d încercări nereușite, ți se va solicita să deblochezi dispozitivul Android TV cu ajutorul unui cont de e-mail.\n\n Încearcă din nou peste %3$d secunde."
- "Ai desenat incorect modelul pentru deblocare de %1$d ori. După încă %2$d încercări nereușite, ți se va solicita să deblochezi telefonul cu ajutorul unui cont de e-mail.\n\n Încearcă din nou peste %3$d secunde."
+ "Ați introdus incorect codul PIN de %1$d ori.\n\nÎncercați din nou peste %2$d secunde."
+ "Ați introdus incorect parola de %1$d ori. \n\nÎncercați din nou peste %2$d secunde."
+ "Ați desenat incorect modelul pentru deblocare de %1$d ori. \n\nÎncercați din nou peste %2$d secunde."
+ "Ați efectuat %1$d încercări incorecte de deblocare a tabletei. După încă %2$d încercări nereușite, aceasta va fi resetată la setările prestabilite din fabrică, iar toate datele de utilizator se vor pierde."
+ "Ați efectuat %1$d încercări incorecte de deblocare a dispozitivului Android TV. După încă %2$d încercări nereușite, acesta va reveni la setările din fabrică, iar toate datele de utilizator se vor pierde."
+ "Ați efectuat %1$d încercări incorecte de deblocare a telefonului. După încă %2$d încercări nereușite, acesta va fi resetat la setările prestabilite din fabrică, iar toate datele de utilizator se vor pierde."
+ "Ați efectuat %d încercări incorecte de deblocare a tabletei. Tableta va fi acum resetată la setările prestabilite din fabrică."
+ "Ați efectuat %d încercări incorecte de deblocare a dispozitivului Android TV. Acesta va reveni la setările din fabrică."
+ "Ați efectuat %d încercări incorecte de deblocare a telefonului. Telefonul va fi acum resetat la setările prestabilite din fabrică."
+ "Ați desenat incorect modelul pentru deblocare de %1$d ori. După încă %2$d încercări nereușite, vi se va solicita să deblocați tableta cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste %3$d secunde."
+ "Ați desenat incorect modelul pentru deblocare de %1$d ori. După încă %2$d încercări nereușite, vi se va solicita să deblocați dispozitivul Android TV cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste %3$d secunde."
+ "Ați desenat incorect modelul pentru deblocare de %1$d ori. După încă %2$d încercări nereușite, vi se va solicita să deblocați telefonul cu ajutorul unui cont de e-mail.\n\n Încercați din nou peste %3$d secunde."" — "
- "Elimină"
- "Mărești volumul peste nivelul recomandat?\n\nDacă asculți perioade lungi la volum ridicat, auzul poate fi afectat."
- "Folosești comanda rapidă pentru accesibilitate?"
- "Când comanda rapidă e activată, dacă apeși ambele butoane de volum timp de trei secunde, vei lansa o funcție de accesibilitate."
- "Activezi comanda rapidă pentru funcțiile de accesibilitate?"
- "Dacă apeși ambele taste de volum câteva secunde, activezi funcțiile de accesibilitate. Acest lucru poate schimba funcționarea dispozitivului.\n\nFuncțiile actuale:\n%1$s\nPoți schimba funcțiile selectate din Setări > Accesibilitate."
+ "Eliminați"
+ "Ridicați volumul mai sus de nivelul recomandat?\n\nAscultarea la volum ridicat pe perioade lungi de timp vă poate afecta auzul."
+ "Utilizați comanda rapidă pentru accesibilitate?"
+ "Atunci când comanda rapidă este activată, dacă apăsați ambele butoane de volum timp de trei secunde, veți lansa o funcție de accesibilitate."
+ "Activați comanda rapidă pentru funcțiile de accesibilitate?"
+ "Dacă apăsați ambele taste de volum câteva secunde, activați funcțiile de accesibilitate. Acest lucru poate schimba funcționarea dispozitivului.\n\nFuncțiile actuale:\n%1$s\nPuteți schimba funcțiile selectate din Setări > Accesibilitate."" • %1$s\n"
- "Activezi comanda rapidă %1$s?"
- "Dacă apeși ambele taste de volum câteva secunde, activezi funcția de accesibilitate %1$s. Acest lucru poate schimba funcționarea dispozitivului.\n\nPoți alege altă funcție pentru această comandă în Setări > Accesibilitate."
- "Activează"
- "Nu activa"
+ "Activați comanda rapidă %1$s?"
+ "Dacă apăsați ambele taste de volum câteva secunde, activați funcția de accesibilitate %1$s. Acest lucru poate schimba funcționarea dispozitivului.\n\nPuteți alege altă funcție pentru această comandă în Setări > Accesibilitate."
+ "Activați"
+ "Nu activați""ACTIVAT""DEZACTIVAT"
- "Permiți serviciului %1$s să aibă control total asupra dispozitivului?"
- "Controlul total este adecvat pentru aplicații care te ajută cu accesibilitatea, însă nu pentru majoritatea aplicaților."
- "să vadă și să controleze ecranul"
+ "Permiteți serviciului %1$s să aibă control total asupra dispozitivului dvs.?"
+ "Controlul total este adecvat pentru aplicații care vă ajută cu accesibilitatea, însă nu pentru majoritatea aplicaților."
+ "Vă vede și vă controlează ecranul""Poate citi tot conținutul de pe ecran și poate afișa conținut peste alte aplicații."
- "să vadă și să facă acțiuni"
- "Poate să urmărească interacțiunile tale cu o aplicație sau cu un senzor hardware și să interacționeze cu aplicații în numele tău."
- "Permite"
- "Refuz"
- "Atinge o funcție ca să începi să o folosești:"
- "Alege funcțiile pe care să le folosești cu butonul de accesibilitate"
- "Alege funcțiile pentru comanda rapidă a butonului de volum"
+ "Vă vede interacțiunile și le realizează"
+ "Poate urmări interacțiunile dvs. cu o aplicație sau cu un senzor hardware și poate interacționa cu aplicații în numele dvs."
+ "Permiteți"
+ "Refuzați"
+ "Atingeți o funcție ca să începeți să o folosiți:"
+ "Alegeți funcțiile pe care să le folosiți cu butonul de accesibilitate"
+ "Alegeți funcțiile pentru comanda rapidă a butonului de volum""%s a fost dezactivat"
- "Editează comenzile rapide"
+ "Editați comenzile rapide""Gata"
- "Dezactivează comanda rapidă"
- "Folosește comanda rapidă"
+ "Dezactivați comanda rapidă"
+ "Utilizați comanda rapidă""Inversarea culorilor""Corecția culorii""Modul cu o mână""Luminozitate redusă suplimentar""S-au apăsat lung tastele de volum. S-a activat %1$s.""S-au apăsat lung tastele de volum. S-a dezactivat %1$s."
- "Apasă ambele butoane de volum timp de trei secunde pentru a folosi %1$s"
- "Alege o funcție pe care să o folosești când atingi butonul de accesibilitate:"
- "Alege o funcție pe care să o folosești cu gestul de accesibilitate (glisează în sus cu două degete din partea de jos a ecranului):"
- "Alege o funcție pe care să o folosești cu gestul de accesibilitate (glisează în sus cu trei degete din partea de jos a ecranului):"
- "Pentru a comuta între funcții, atinge lung butonul de accesibilitate."
- "Pentru a comuta între funcții, glisează în sus cu două degete și ține apăsat."
- "Pentru a comuta între funcții, glisează în sus cu trei degete și ține apăsat."
+ "Apăsați ambele butoane de volum timp de trei secunde pentru a folosi %1$s"
+ "Alegeți o funcție pe care să o folosiți când atingeți butonul de accesibilitate:"
+ "Alegeți o funcție pe care să o folosiți cu gestul de accesibilitate (glisați în sus cu două degete din partea de jos a ecranului):"
+ "Alegeți o funcție pe care să o folosiți cu gestul de accesibilitate (glisați în sus cu trei degete din partea de jos a ecranului):"
+ "Pentru a comuta între funcții, atingeți lung butonul de accesibilitate."
+ "Pentru a comuta între funcții, glisați în sus cu două degete și mențineți apăsat."
+ "Pentru a comuta între funcții, glisați în sus cu trei degete și mențineți apăsat.""Mărire""Utilizator curent: %1$s.""Se comută la %1$s…"
@@ -1719,9 +1715,9 @@
"Proprietar""Invitat""Eroare"
- "Această modificare nu este permisă de administrator"
+ "Această modificare nu este permisă de administratorul dvs.""Nicio aplicație pentru gestionarea acestei acțiuni"
- "Revocă"
+ "Revocați""ISO A0""ISO A1""ISO A2"
@@ -1822,27 +1818,27 @@
"necunoscut""Serviciul de printare nu este activat""Serviciul %s a fost instalat"
- "Atinge pentru a activa"
- "Introdu codul PIN de administrator"
- "Introdu codul PIN"
+ "Atingeți pentru a activa"
+ "Introduceți codul PIN de administrator"
+ "Introduceți codul PIN""Incorect""Codul PIN actual""Codul PIN nou"
- "Confirmă noul cod PIN"
- "Creează un cod PIN pentru modificarea restricțiilor"
- "PIN-urile nu sunt identice. Încearcă din nou."
+ "Confirmați noul cod PIN"
+ "Creați un cod PIN pentru modificarea restricțiilor"
+ "Codurile PIN nu se potrivesc. Încercați din nou.""Codul PIN este prea scurt. Trebuie să aibă cel puțin 4 cifre."
- "Reîncearcă mai târziu"
+ "Reîncercați mai târziu""Vizualizare pe ecran complet"
- "Pentru a ieși, glisează de sus în jos."
+ "Pentru a ieși, glisați de sus în jos.""Am înțeles""Terminat""Selector circular pentru ore""Selector circular pentru minute"
- "Selectează orele"
- "Selectează minutele"
- "Selectează luna și ziua"
- "Selectează anul"
+ "Selectați orele"
+ "Selectați minutele"
+ "Selectați luna și ziua"
+ "Selectați anul""%1$s a fost șters""%1$s de serviciu""%1$s pentru serviciu (2)"
@@ -1850,15 +1846,15 @@
"Solicită codul PIN înainte de a anula fixarea""Solicită mai întâi modelul pentru deblocare""Solicită parola înainte de a anula fixarea"
- "Instalat de administrator"
- "Actualizat de administrator"
- "Șters de administrator"
+ "Instalat de administratorul dvs."
+ "Actualizat de administratorul dvs."
+ "Șters de administratorul dvs.""OK""Economisirea bateriei activează tema întunecată și restricționează sau dezactivează activitatea în fundal, unele efecte vizuale, alte funcții și câteva conexiuni la rețea.""Economisirea bateriei activează tema întunecată și restricționează sau dezactivează activitatea în fundal, unele efecte vizuale, alte funcții și câteva conexiuni la rețea."
- "Pentru a contribui la reducerea utilizării de date, Economizorul de date împiedică unele aplicații să trimită sau să primească date în fundal. O aplicație pe care o folosești poate accesa datele, însă mai rar. Aceasta poate însemna, de exemplu, că imaginile se afișează numai după ce le atingi."
- "Activezi Economizorul de date?"
- "Activează"
+ "Pentru a contribui la reducerea utilizării de date, Economizorul de date împiedică unele aplicații să trimită sau să primească date în fundal. O aplicație pe care o folosiți poate accesa datele, însă mai rar. Aceasta poate însemna, de exemplu, că imaginile se afișează numai după ce le atingeți."
+ "Activați Economizorul de date?"
+ "Activați""{count,plural, =1{Timp de un minut (până la {formattedTime})}few{Timp de # minute (până la {formattedTime})}other{Timp de # de minute (până la {formattedTime})}}""{count,plural, =1{Timp de un min. (până la {formattedTime})}few{Timp de # min. (până la {formattedTime})}other{Timp de # min. (până la {formattedTime})}}""{count,plural, =1{Timp de o oră (până la {formattedTime})}few{Timp de # ore (până la {formattedTime})}other{Timp de # de ore (până la {formattedTime})}}"
@@ -1870,10 +1866,10 @@
"Până %1$s""Până la %1$s""Până la %1$s (următoarea alarmă)"
- "Până dezactivezi"
- "Până când dezactivezi „Nu deranja”"
+ "Până când dezactivați"
+ "Până când dezactivați „Nu deranja”""%1$s/%2$s"
- "Restrânge"
+ "Restrângeți""Nu deranja""Inactivitate""Nopțile din zilele lucrătoare"
@@ -1882,7 +1878,7 @@
"Somn""%1$s dezactivează anumite sunete""A apărut o problemă internă pe dispozitiv, iar acesta poate fi instabil până la revenirea la setările din fabrică."
- "A apărut o problemă internă pe dispozitiv. Pentru detalii, contactează producătorul."
+ "A apărut o problemă internă pe dispozitiv. Pentru detalii, contactați producătorul.""Solicitarea USSD a fost schimbată cu un apel obișnuit""Solicitarea USSD a fost schimbată cu o solicitare SS""Schimbat cu o solicitare USSD nouă"
@@ -1895,79 +1891,77 @@
"Profil de serviciu""Notificat""Confirmat"
- "Extinde"
- "Restrânge"
- "extinde/restrânge"
+ "Extindeți"
+ "Restrângeți"
+ "extindeți/restrângeți""Port USB Android periferic""Android""Port USB periferic""Mai multe opțiuni"
- "Închide meniul suplimentar"
- "Maximizează"
- "Închide"
+ "Închideți meniul suplimentar"
+ "Maximizați"
+ "Închideți""%1$s: %2$s"
- "Răspunde"
+ "Răspundeți""Video"
- "Respinge"
- "Închide"
+ "Respingeți"
+ "Încheiați""Apel primit""Apel în desfășurare""Se filtrează un apel primit""Neclasificate"
- "Tu setezi importanța acestor notificări."
+ "Dvs. setați importanța acestor notificări.""Notificarea este importantă având în vedere persoanele implicate.""Notificare de aplicație personalizată"
- "Permiți ca %1$s să creeze un nou utilizator folosind %2$s? (există deja un utilizator cu acest cont)"
- "Permiți ca %1$s să creeze un nou utilizator folosind %2$s?"
- "Adaugă un utilizator monitorizat"
- "Adaugă o limbă"
+ "Permiteți ca %1$s să creeze un nou utilizator folosind %2$s? (există deja un utilizator cu acest cont)"
+ "Permiteți ca %1$s să creeze un nou utilizator folosind %2$s?"
+ "Adăugați un utilizator monitorizat"
+ "Adăugați o limbă""Regiunea preferată""Numele limbii""Sugerate"
- "Sugerate""Toate limbile""Toate regiunile"
- "Caută"
+ "Căutați""Aplicația nu este disponibilă""Momentan, aplicația %1$s nu este disponibilă. Aceasta este gestionată de %2$s."
- "Află mai multe"
- "Anulează întreruperea aplicației"
- "Activezi aplicațiile pentru lucru?"
- "Obține acces la aplicațiile și notificările pentru lucru"
- "Activează"
+ "Aflați mai multe"
+ "Anulați întreruperea aplicației"
+ "Activați aplicațiile pentru lucru?"
+ "Obțineți acces la aplicațiile pentru lucru și notificări"
+ "Activați""Aplicația nu este disponibilă""%1$s nu este disponibilă momentan.""%1$s nu este disponibilă""Necesită permisiune""Camera video nu este disponibilă"
- "Continuă pe telefon"
+ "Continuați pe telefon""Microfon indisponibil"
- "Aplicația Magazin Play nu este disponibilă""Setările pentru Android TV sunt indisponibile""Setările pentru tabletă sunt indisponibile""Setările pentru telefon sunt indisponibile"
- "Aplicația nu poate fi accesată pe %1$s momentan. Încearcă pe dispozitivul Android TV."
- "Aplicația nu poate fi accesată pe %1$s momentan. Încearcă pe tabletă."
- "Aplicația nu poate fi accesată pe %1$s momentan. Încearcă pe telefon."
- "Aplicația necesită securitate suplimentară. Încearcă pe dispozitivul Android TV."
- "Aplicația necesită securitate suplimentară. Încearcă pe tabletă."
- "Aplicația necesită securitate suplimentară. Încearcă pe telefon."
- "Nu se poate accesa pe %1$s. Încearcă pe dispozitivul Android TV."
- "Nu se poate accesa pe %1$s. Încearcă pe tabletă."
- "Nu se poate accesa pe %1$s. Încearcă pe telefon."
- "Această aplicație a fost creată pentru o versiune Android mai veche și e posibil să nu funcționeze corect. Încearcă să cauți actualizări sau contactează dezvoltatorul."
- "Caută actualizări"
- "Ai mesaje noi"
- "Deschide aplicația pentru SMS-uri ca să vezi"
+ "Aplicația nu se poate accesa pe %1$s. Încercați pe dispozitivul Android TV."
+ "Aplicația nu se poate accesa pe %1$s. Încercați pe tabletă."
+ "Aplicația nu se poate accesa pe %1$s. Încercați pe telefon."
+ "Aplicația nu poate fi accesată pe %1$s momentan. Încercați pe dispozitivul Android TV."
+ "Aplicația nu poate fi accesată pe %1$s momentan. Încercați pe tabletă."
+ "Aplicația nu poate fi accesată pe %1$s momentan. Încercați pe telefon."
+ "Aplicația necesită securitate suplimentară. Încercați pe dispozitivul Android TV."
+ "Aplicația necesită securitate suplimentară. Încercați pe tabletă."
+ "Aplicația necesită securitate suplimentară. Încercați pe telefon."
+ "Această aplicație a fost creată pentru o versiune Android mai veche și este posibil să nu funcționeze corect. Încercați să căutați actualizări sau contactați dezvoltatorul."
+ "Căutați actualizări"
+ "Aveți mesaje noi"
+ "Deschideți aplicația pentru SMS-uri ca să vizualizați""Unele funcții ar putea fi limitate""Profil de serviciu blocat"
- "Atinge ca să deblochezi"
+ "Atingeți ca să deblocați""Conectat la %1$s"
- "Atinge pentru a vedea fișierele"
- "Fixează"
- "Fixează %1$s"
- "Anulează fixarea"
- "Anulează fixarea pentru %1$s"
+ "Atingeți pentru a vedea fișierele"
+ "Fixați"
+ "Fixați %1$s"
+ "Anulați fixarea"
+ "Anulați fixarea pentru %1$s""Informații despre aplicație""−%1$s""Se pornește demonstrația…"
@@ -1988,30 +1982,30 @@
"Remedierea erorilor prin USB""oră""minut"
- "Setează ora"
- "Introdu o oră validă"
- "Introdu ora"
- "Pentru a introduce ora, comută la modul de introducere a textului."
- "Pentru a introduce ora, comută la modul ceas."
+ "Setați ora"
+ "Introduceți o oră validă"
+ "Introduceți ora"
+ "Pentru a introduce ora, comutați la modul de introducere a textului."
+ "Pentru a introduce ora, comutați la modul ceas.""Opțiuni de completare automată"
- "Salvează pentru completare automată"
+ "Salvați pentru completare automată""Conținutul nu poate fi completat automat""Nicio sugestie de completare automată""{count,plural, =1{O sugestie de completare automată}few{# sugestii de completare automată}other{# de sugestii de completare automată}}"
- "Salvezi în ""%1$s""?"
- "Salvezi %1$s în ""%2$s""?"
- "Salvezi %1$s și %2$s în ""%3$s""?"
- "Salvezi %1$s, %2$s și %3$s în ""%4$s""?"
- "Actualizezi în ""%1$s""?"
- "Actualizezi %1$s în ""%2$s""?"
- "Actualizezi %1$s și %2$s în ""%3$s""?"
- "Actualizezi aceste articole în ""%4$s"": %1$s, %2$s și %3$s?"
- "Salvează"
+ "Salvați în ""%1$s""?"
+ "Salvați %1$s în ""%2$s""?"
+ "Salvați %1$s și %2$s în ""%3$s""?"
+ "Salvați %1$s, %2$s și %3$s în ""%4$s""?"
+ "Actualizați în ""%1$s""?"
+ "Actualizați %1$s în ""%2$s""?"
+ "Actualizați %1$s și %2$s în ""%3$s""?"
+ "Actualizați aceste articole în ""%4$s"": %1$s, %2$s și %3$s?"
+ "Salvați""Nu, mulțumesc""Nu acum""Niciodată"
- "Actualizează"
- "Continuă"
+ "Actualizați"
+ "Continuați""parolă""adresă""card de credit"
@@ -2020,11 +2014,11 @@
"card""nume de utilizator""adresă de e-mail"
- "Păstrează-ți calmul și caută un adăpost în apropiere."
- "Părăsește imediat zonele de coastă și din apropierea râurilor și îndreaptă-te spre un loc mai sigur, cum ar fi o zonă aflată la înălțime."
- "Păstrează-ți calmul și caută un adăpost în apropiere."
+ "Păstrați-vă calmul și căutați un adăpost în apropiere."
+ "Părăsiți imediat zonele de coastă și din apropierea râurilor și îndreptați-vă spre un loc mai sigur, cum ar fi o zonă aflată la înălțime."
+ "Păstrați-vă calmul și căutați un adăpost în apropiere.""Testarea mesajelor de urgență"
- "Răspunde"
+ "Răspundeți""Cardul SIM nu este permis pentru voce""Cardul SIM nu este activat pentru voce"
@@ -2041,48 +2035,48 @@
"Nu s-a putut restabili comanda rapidă din cauza nepotrivirii semnăturii aplicației""Nu s-a putut restabili comanda rapidă""Comanda rapidă este dezactivată"
- "DEZINSTALEAZĂ"
- "Deschide oricum"
+ "DEZINSTALAȚI"
+ "Deschideți oricum""Aplicație dăunătoare detectată"
- "Permiți ca %s să acceseze toate jurnalele dispozitivului?"
- "Permite accesul o dată"
- "Nu permite"
- "Jurnalele dispozitivului înregistrează activitatea de pe dispozitivul tău. Aplicațiile pot folosi aceste jurnale pentru a identifica și a remedia probleme.\n\nUnele jurnale pot să conțină informații sensibile, prin urmare permite accesul la toate jurnalele dispozitivului doar aplicațiilor în care ai încredere. \n\nDacă nu permiți accesul aplicației la toate jurnalele dispozitivului, aceasta poate în continuare să acceseze propriile jurnale. Este posibil ca producătorul dispozitivului să acceseze în continuare unele jurnale sau informații de pe dispozitiv."
- "Jurnalele dispozitivului înregistrează activitatea de pe acesta. Aplicațiile pot folosi aceste jurnale pentru a identifica și a remedia probleme.\n\nUnele jurnale pot să conțină informații sensibile, prin urmare permite accesul la toate jurnalele dispozitivului doar aplicațiilor în care ai încredere. \n\nDacă nu permiți accesul aplicației la toate jurnalele dispozitivului, aceasta poate în continuare să acceseze propriile jurnale. E posibil ca producătorul dispozitivului să acceseze în continuare unele jurnale sau informații de pe dispozitiv.\n\nAflă mai multe la g.co/android/devicelogs."
+ "Permiteți ca %s să acceseze toate jurnalele dispozitivului?"
+ "Permiteți accesul o dată"
+ "Nu permiteți"
+ "Jurnalele dispozitivului înregistrează activitatea de pe dispozitivul dvs. Aplicațiile pot folosi aceste jurnale pentru a identifica și a remedia probleme.\n\nUnele jurnale pot să conțină informații sensibile, prin urmare permiteți accesul la toate jurnalele dispozitivului doar aplicațiilor în care aveți încredere. \n\nDacă nu permiteți accesul aplicației la toate jurnalele dispozitivului, aceasta poate în continuare să acceseze propriile jurnale. Este posibil ca producătorul dispozitivului să acceseze în continuare unele jurnale sau informații de pe dispozitiv. Aflați mai multe""Nu mai afișa""%1$s vrea să afișeze porțiuni din %2$s"
- "Editează"
+ "Editați""Apelurile și notificările vor vibra""Apelurile și notificările vor avea sunetul dezactivat""Modificări de sistem""Nu deranja""Funcția nouă Nu deranja ascunde notificările"
- "Atinge ca să afli mai multe și să modifici"
+ "Atingeți ca să aflați mai multe și să modificați""Funcția Nu deranja s-a schimbat"
- "Atinge pentru a verifica ce este blocat."
- "Verifică setările pentru notificări"
- "Începând cu Android 13, aplicațiile pe care le instalezi necesită permisiunea de a trimite notificări. Atinge ca să modifici permisiunea pentru aplicațiile existente."
+ "Atingeți pentru a verifica ce este blocat."
+ "Examinați setările pentru notificări"
+
+ "Mai târziu"
- "Închide"
+ "Închideți""Sistem""Setări""Cameră foto""Microfon""se afișează peste alte aplicații de pe ecran"
- "Oferă feedback"
- "Notificarea a fost promovată la Prestabilită. Atinge pentru a oferi feedback."
- "Notificarea a fost mutată în jos la Silențioasă. Atinge pentru a oferi feedback."
- "Notificarea a fost mutată la un nivel superior. Atinge pentru a oferi feedback."
- "Notificarea a fost mutată la un nivel inferior. Atinge pentru a oferi feedback."
+ "Oferiți feedback"
+ "Notificarea a fost promovată la Prestabilită. Atingeți pentru a oferi feedback."
+ "Notificarea a fost mutată în jos la Silențioasă. Atingeți pentru a oferi feedback."
+ "Notificarea a fost mutată la un nivel superior. Atingeți pentru a oferi feedback."
+ "Notificarea a fost mutată la un nivel inferior. Atingeți pentru a oferi feedback.""Notificări optimizate""Acțiunile și răspunsurile sugerate sunt acum trimise prin notificări optimizate. Notificările adaptive Android nu mai sunt acceptate.""OK"
- "Dezactivează"
- "Află mai multe"
- "Notificările optimizate au înlocuit Notificările adaptive Android de pe Android 12. Această funcție afișează acțiuni și răspunsuri sugerate și organizează notificările.\n\nNotificările optimizate pot accesa conținutul notificărilor, inclusiv informații cu caracter personal, precum mesajele și numele persoanelor de contact. În plus, funcția poate să închidă sau să răspundă la notificări, de exemplu, să răspundă la apeluri telefonice și să gestioneze opțiunea Nu deranja."
+ "Dezactivați"
+ "Aflați mai multe"
+ "Notificările optimizate au înlocuit Notificările adaptive Android de pe Android 12. Această funcție afișează acțiuni și răspunsuri sugerate și vă organizează notificările.\n\nNotificările optimizate pot accesa conținutul notificărilor, inclusiv informații cu caracter personal, precum mesajele și numele persoanelor de contact. În plus, funcția poate să închidă sau să răspundă la notificări, de exemplu, să răspundă la apeluri telefonice și să gestioneze opțiunea Nu deranja.""Notificare pentru informații despre modul Rutină""Bateria se poate descărca înainte de încărcarea obișnuită"
- "Economisirea bateriei este activată pentru a mări autonomia"
+ "Economisirea bateriei este activată pentru a prelungi durata de funcționare a bateriei""Economisirea bateriei""Economisirea bateriei a fost dezactivată""Telefonul este încărcat suficient. Funcțiile nu mai sunt limitate."
@@ -2124,7 +2118,7 @@
"Comandă rapidă de accesibilitate de pe ecran""Selector de comenzi rapide de accesibilitate de pe ecran""Comandă rapidă de accesibilitate"
- "Închide fereastra de notificări"
+ "Închideți fereastra de notificări""Dpad sus""Dpad jos""Dpad stânga"
@@ -2147,35 +2141,35 @@
"Acest conținut nu poate fi trimis cu aplicații personale""Acest conținut nu poate fi deschis cu aplicații personale""Profilul de serviciu este întrerupt"
- "Atinge pentru a activa"
+ "Atingeți pentru a activa""Nicio aplicație pentru lucru""Nicio aplicație personală"
- "Deschizi %s în profilul personal?"
- "Deschizi %s în profilul de serviciu?"
- "Folosește browserul personal"
- "Folosește browserul de serviciu"
+ "Deschideți %s în profilul personal?"
+ "Deschideți %s în profilul de serviciu?"
+ "Folosiți browserul personal"
+ "Folosiți browserul de serviciu""Codul PIN de deblocare SIM privind rețeaua""Codul PIN de deblocare SIM privind subsetul de rețea""Codul PIN de deblocare SIM corporativă""Codul PIN de deblocare SIM privind furnizorul de servicii""Codul PIN de deblocare SIM"
- "Introdu codul PUK"
- "Introdu codul PUK"
- "Introdu codul PUK"
- "Introdu codul PUK"
- "Introdu codul PUK"
+ "Introduceți codul PUK"
+ "Introduceți codul PUK"
+ "Introduceți codul PUK"
+ "Introduceți codul PUK"
+ "Introduceți codul PUK""Codul PIN de deblocare RUIM Network1""Codul PIN de deblocare RUIM Network2""Codul PIN de deblocare RUIM Hrpd""Codul PIN de deblocare RUIM corporativă""Codul PIN de deblocare RUIM privind furnizorii de servicii""Codul PIN de deblocare RUIM"
- "Introdu codul PUK"
- "Introdu codul PUK"
- "Introdu codul PUK"
- "Introdu codul PUK"
- "Introdu codul PUK"
- "Introdu codul PUK"
+ "Introduceți codul PUK"
+ "Introduceți codul PUK"
+ "Introduceți codul PUK"
+ "Introduceți codul PUK"
+ "Introduceți codul PUK"
+ "Introduceți codul PUK""Codul PIN de deblocare SPN""Codul PIN de deblocare privind furnizorul de servicii și Equivalent Home PLMN""Codul PIN de deblocare ICCID"
@@ -2267,28 +2261,27 @@
"Noi setări de mărire"
- "Acum poți mări o parte a ecranului"
- "Activează din Setări"
- "Închide"
- "Deblochează microfonul dispozitivului"
- "Deblochează camera dispozitivului"
+ "Acum puteți mări o parte a ecranului"
+ "Activați din Setări"
+ "Respingeți"
+ "Deblocați microfonul dispozitivului"
+ "Deblocați camera dispozitivului""Pentru <b>%s</b> și toate aplicațiile și serviciile"
- "Deblochează"
+ "Deblocați""Confidențialitatea privind senzorii""Pictograma aplicației""Imaginea de branding a aplicației"
- "Verifică setările pentru acces"
- "%s poate să vadă și să controleze ecranul. Atinge pentru a verifica."
+ "Verificați setările pentru acces"
+ "%s poate să vadă și să vă controleze ecranul. Atingeți pentru a examina.""%1$s a fost tradus.""Mesaj tradus din %1$s în %2$s.""Activitate de fundal""O aplicație consumă bateria""O aplicație este încă activă"
- "%1$s rulează în fundal. Atinge pentru a gestiona utilizarea bateriei."
- "%1$s poate afecta autonomia bateriei. Atinge pentru a examina aplicațiile active."
- "Verifică aplicațiile active"
+ "%1$s rulează în fundal. Atingeți pentru a gestiona utilizarea bateriei."
+ "%1$s poate afecta autonomia bateriei. Atingeți pentru a examina aplicațiile active."
+ "Verificați aplicațiile active""Nu se poate accesa camera foto a telefonului de pe %1$s""Nu se poate accesa camera foto a tabletei de pe %1$s"
- "Nu se poate accesa în timpul streamingului. Încearcă pe telefon."
- "Prestabilit de sistem"
+ "Limba sistemului"
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 489d40f776c790d8bbca7ba7a8375b68be0048c0..262e3e7a6b94d6e635799b83cede0f72ee326edd 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -21,6 +21,11 @@
"Б"
+ "КБ"
+ "МБ"
+ "ГБ"
+ "TБ"
+ "ПБ""%1$s%2$s""<Без названия>""(Нет номера телефона)"
@@ -28,7 +33,6 @@
"Голосовая почта""MSISDN1""Неполадки подключения или неверный код MMI."
- "Функция не поддерживается.""Операция возможна только для разрешенных номеров.""Вы не можете изменить настройки переадресации вызовов, поскольку находитесь в роуминге.""Служба включена."
@@ -43,8 +47,8 @@
"Введенные PIN-коды не совпадают.""Введите PIN-код (от 4 до 8 цифр).""Введите PUK-код из 8 или более цифр."
- "SIM-карта заблокирована с помощью PUK-кода. Введите его для разблокировки."
- "Введите PUK2-код для разблокировки SIM-карты."
+ "SIM-карта заблокирована с помощью кода PUK. Для разблокировки введите код PUK."
+ "Для разблокировки SIM-карты введите PUK2.""Произошла ошибка. Включите блокировку SIM-карты или карты R-UIM."Осталась %d попытка. После этого SIM-карта будет заблокирована.
@@ -88,7 +92,7 @@
"Оповещения""Переадресация вызовов""Режим экстренных обратных вызовов"
- "Состояние мобильного интернета"
+ "Состояние мобильного Интернета""SMS""Голосовые сообщения""Звонки по Wi-Fi"
@@ -264,7 +268,7 @@
"Настройки""Помощник""Аудиоподсказки"
- "Блокировка входа"
+ "Блокировка"">999""Новое уведомление""Виртуальная клавиатура"
@@ -303,12 +307,12 @@
"доступ к календарю""SMS""отправлять и просматривать SMS-сообщения"
- "Файлы"
- "доступ к файлам на вашем устройстве"
- "Музыка и аудио"
- "доступ к музыке и аудио на вашем устройстве"
- "Фото и видео"
- "доступ к фотографиям и видео на вашем устройстве"
+ "Файлы и документы"
+ "Доступ к файлам и документам на вашем устройстве"
+ "Музыка и другие аудиозаписи"
+ "доступ к аудиофайлам на вашем устройстве"
+ "Фото и видео"
+ "доступ к изображениям и видеофайлам на вашем устройстве""Микрофон""записывать аудио""Физическая активность"
@@ -348,7 +352,7 @@
"Показ уведомлений в полноэкранном режиме на заблокированном устройстве""Приложение сможет показывать уведомления в полноэкранном режиме на заблокированном устройстве""Создание ярлыков"
- "приложения смогут добавлять ярлыки на главный экран без вмешательства пользователя."
+ "Приложение сможет добавлять ярлыки на главный экран без вмешательства пользователя.""Удаление ярлыков""Приложение сможет удалять ярлыки с главного экрана без вмешательства пользователя.""Перенаправление исходящих вызовов"
@@ -584,16 +588,15 @@
"Использовать блокировку экрана""Чтобы продолжить, разблокируйте экран.""Плотно прижмите палец к сканеру."
- "Не удалось распознать отпечаток пальца. Повторите попытку."
+ "Не удалось распознать отпечаток. Повторите попытку.""Очистите сканер отпечатков пальцев и повторите попытку.""Очистите сканер и повторите попытку.""Плотно прижмите палец к сканеру.""Вы перемещали палец слишком медленно. Повторите попытку.""Попробуйте сохранить отпечаток другого пальца.""Слишком светло."
- "Вы нажали кнопку питания.""Попробуйте изменить положение пальца."
- "Каждый раз немного меняйте положение пальца"
+ "Каждый раз немного меняйте положение пальца.""Отпечаток не распознан."
@@ -603,17 +606,16 @@
"Лицо распознано, нажмите кнопку \"Подтвердить\"""Сканер недоступен""Не удалось сохранить отпечаток."
- "Время настройки отпечатка пальца истекло. Повторите попытку."
+ "Превышено время ожидания. Повторите попытку.""Операция с отпечатком отменена.""Операция с отпечатком пальца отменена пользователем."
- "Слишком много попыток. Используйте другой способ разблокировки экрана."
- "Слишком много попыток. Используйте другой способ разблокировки экрана."
- "Не удалось распознать отпечаток пальца. Повторите попытку."
+ "Слишком много попыток. Повторите позже."
+ "Слишком много попыток. Сканер отпечатков пальцев отключен."
+ "Повторите попытку.""Нет отсканированных отпечатков пальцев""На этом устройстве нет сканера отпечатков пальцев.""Сканер отпечатков пальцев временно отключен.""Невозможно использовать сканер отпечатков пальцев. Обратитесь в сервисный центр."
- "Нажата кнопка питания.""Отпечаток %d""Использовать отпечаток пальца""Использовать отпечаток пальца или блокировку экрана"
@@ -634,33 +636,26 @@
"Разблокировка по отпечатку пальца""Невозможно использовать сканер отпечатков пальцев""Обратитесь в сервисный центр."
- "Невозможно создать модель лица. Повторите попытку."
+ "Не удалось собрать данные. Повторите попытку.""Слишком светло. Сделайте освещение менее ярким."
- "Недостаточно света"
- "Переместите телефон дальше от лица"
- "Переместите телефон ближе к лицу"
- "Переместите телефон выше"
- "Переместите телефон ниже"
- "Переместите телефон левее"
- "Переместите телефон правее"
+ "Слишком темно. Сделайте освещение ярче."
+ "Переместите телефон дальше."
+ "Переместите телефон ближе."
+ "Переместите телефон выше."
+ "Переместите телефон ниже."
+ "Переместите телефон влево."
+ "Переместите телефон вправо.""Смотрите прямо на устройство."
- "Вашего лица не видно. Держите телефон на уровне глаз"
+ "Держите телефон прямо перед лицом.""Не перемещайте устройство. Держите его неподвижно.""Повторите попытку."
- "Не удалось распознать лицо. Повторите попытку."
- "Немного измените положение головы"
- "Смотрите прямо на телефон"
- "Смотрите прямо на телефон"
- "Смотрите прямо на телефон"
- "Ваше лицо плохо видно"
+ "Не удалось распознать лицо. Повторите попытку."
+ "Слишком похожее выражение лица. Измените позу."
+ "Держите голову ровнее."
+ "Не наклоняйте голову слишком сильно."
+ "Держите голову ровнее."
+ "Ваше лицо плохо видно.""Протрите верхнюю часть экрана (в том числе черную панель)."
-
-
-
-
- "Невозможно создать модель лица. Повторите попытку."
- "Обнаружены темные очки. Лицо должно быть полностью видно"
- "Часть лица закрыта. Оно должно быть полностью видно.""Не удалось распознать лицо. Сканер недоступен."
@@ -926,14 +921,14 @@
"Повторите попытку""Разблок. для доступа ко всем функциям и данным""Все попытки войти с помощью фейсконтроля использованы"
- "SIM-карта отсутствует"
- "В планшете отсутствует SIM-карта."
- "В устройстве Android TV отсутствует SIM-карта."
- "В телефоне отсутствует SIM-карта."
- "Добавьте SIM-карту."
- "SIM-карта отсутствует или не распознана. Добавьте SIM-карту."
- "SIM-карту невозможно использовать."
- "SIM-карта была окончательно деактивирована.\n Чтобы получить новую, обратитесь к своему оператору мобильной связи."
+ "Нет SIM-карты"
+ "SIM-карта не установлена."
+ "В устройстве Android TV нет SIM-карты."
+ "SIM-карта не установлена."
+ "Вставьте SIM-карту."
+ "SIM-карта отсутствует или недоступна. Вставьте SIM-карту."
+ "SIM-карта непригодна к использованию."
+ "SIM-карта окончательно заблокирована.\nЧтобы получить новую, обратитесь к своему оператору.""Предыдущий трек""Следующий трек""Приостановить"
@@ -943,10 +938,10 @@
"Перемотать вперед""Только экстренные вызовы""Сеть заблокирована"
- "SIM-карта заблокирована с помощью PUK-кода."
+ "SIM-карта заблокирована с помощью кода PUK.""Ознакомьтесь с руководством пользователя или свяжитесь со службой поддержки."
- "SIM-карта заблокирована."
- "Разблокировка SIM-карты…"
+ "SIM-карта заблокирована"
+ "Разблокировка SIM-карты…""Вы %1$d раз неверно указали графический ключ. \n\nПовтор через %2$d сек.""Вы %1$d раз неверно указали пароль. \n\nПовтор через %2$d сек.""Вы %1$d раз неверно указали PIN-код. \n\nПовтор через %2$d сек."
@@ -1163,8 +1158,8 @@
"Отмена""Внимание!""Загрузка…"
- "Включено"
- "Выключено"
+ "I"
+ "O""отмечено""не отмечено""выбрано"
@@ -1248,9 +1243,10 @@
"Подготовка приложения \"%1$s\"...""Запуск приложений.""Окончание загрузки..."
+ "Продолжить настройку?""Вы нажали кнопку питания. Обычно это приводит к отключению экрана.\n\nПри добавлении отпечатка пальца слегка прикоснитесь к кнопке."
- "Для завершения нужно отключить экран"
- "Отключить"
+ "Отключить экран"
+ "Продолжить настройку""Продолжить сканирование отпечатка?""Вы нажали кнопку питания. Обычно это приводит к отключению экрана.\n\nЧтобы отсканировать отпечаток пальца, слегка прикоснитесь к кнопке.""Отключить экран"
@@ -1329,10 +1325,10 @@
"Это можно изменить позже в разделе настроек \"Приложения\".""Разрешать всегда""Не разрешать"
- "SIM-карта извлечена"
- "Чтобы воспользоваться мобильной сетью, установите действующую SIM-карту и перезапустите устройство."
+ "SIM-карта удалена"
+ "Пока вы не вставите действующую SIM-карту, мобильная сеть будет недоступна.""Готово"
- "SIM-карта добавлена"
+ "SIM-карта добавлена""Перезагрузите устройство для доступа к мобильной сети.""Перезапустить""Включить мобильную связь"
@@ -1403,16 +1399,16 @@
"Нажмите, чтобы настроить.""Выберите, чтобы настроить.""Возможно, потребуется отформатировать устройство. Нажмите, чтобы извлечь его."
- "Хранение фото, видео, музыки и не только."
+ "Для переноса фотографий и других файлов""Посмотрите медиафайлы.""Проблема с накопителем (%s)""%s не работает""Нажмите здесь, чтобы исправить.""Внешний носитель (%s) поврежден. Выберите, чтобы исправить.""Возможно, потребуется отформатировать устройство. Нажмите, чтобы извлечь его."
- "Обнаружено: %s"
+ "%s не поддерживается""%s не работает"
- "Нажмите, чтобы настроить."
+ "Устройство не поддерживает этот носитель (%s). Нажмите, чтобы настроить.""Выберите, чтобы настроить носитель (%s) в поддерживаемом формате.""Возможно, потребуется отформатировать устройство.""Карта \"%s\" извлечена неправильно"
@@ -1425,7 +1421,7 @@
"Извлечь""Обзор""Сменить устройство вывода"
- "Устройство \"%s\" не найдено"
+ "%s не найден""Подключите накопитель снова.""Перенос приложения %s""Перенос данных"
@@ -1611,7 +1607,7 @@
"Телевизор""Телефон""Динамики док-станции"
- "Внешнее устройство"
+ "HDMI""Наушники""USB""Система"
@@ -1644,7 +1640,7 @@
"SIM-карта заблокирована. Чтобы продолжить, введите PUK-код. За подробной информацией обратитесь к своему оператору связи.""Введите желаемый PIN-код""Введите PIN-код ещё раз"
- "Разблокировка SIM-карты…"
+ "Разблокировка SIM-карты…""Неверный PIN-код.""Введите PIN-код (от 4 до 8 цифр).""PUK-код должен содержать 8 символов."
@@ -1925,7 +1921,6 @@
"Региональные настройки""Введите название языка""Рекомендуемые"
- "Доступные регионы""Все языки""Все регионы""Поиск"
@@ -1943,19 +1938,18 @@
"Камера недоступна""Продолжите на телефоне""Микрофон недоступен"
- "Google Play недоступен""Настройки Android TV недоступны""Настройки планшета недоступны""Настройки телефона недоступны"
- "Эта функция пока недоступна на устройстве %1$s. Используйте Android TV."
- "Эта функция пока недоступна на устройстве %1$s. Используйте планшет."
- "На устройстве %1$s эта функция пока недоступна. Используйте телефон."
+ "Эта функция недоступна на устройстве %1$s. Используйте Android TV."
+ "Эта функция недоступна на устройстве %1$s. Используйте планшет."
+ "Эта функция недоступна на устройстве %1$s. Используйте телефон."
+ "Эта функция пока недоступна на устройстве %1$s. Используйте Android TV."
+ "Эта функция пока недоступна на устройстве %1$s. Используйте планшет."
+ "Эта функция пока недоступна на устройстве %1$s. Используйте телефон.""Это приложение запрашивает дополнительные меры защиты. Используйте Android TV.""Это приложение запрашивает дополнительные меры защиты. Используйте планшет.""Это приложение запрашивает дополнительные меры защиты. Используйте телефон."
- "Эта функция недоступна на устройстве %1$s. Используйте Android TV."
- "Эта функция недоступна на устройстве %1$s. Используйте планшет."
- "На устройстве %1$s эта функция недоступна. Используйте телефон.""Это приложение было создано для более ранней версии Android и может работать со сбоями. Проверьте наличие обновлений или свяжитесь с разработчиком.""Проверить обновления""Новые сообщения"
@@ -2048,8 +2042,7 @@
"Разрешить приложению \"%s\" доступ ко всем журналам устройства?""Разрешить разовый доступ""Запретить"
- "В журналы записывается информация о том, что происходит на устройстве. Приложения могут использовать их, чтобы находить и устранять неполадки.\n\nТак как некоторые журналы могут содержать конфиденциальную информацию, доступ ко всем журналам следует предоставлять только тем приложениям, которым вы доверяете. \n\nЕсли вы не предоставите такой доступ этому приложению, оно по-прежнему сможет просматривать свои журналы. Не исключено, что некоторые журналы или сведения на вашем устройстве будут по-прежнему доступны его производителю."
- "В журналы записывается информация о том, что происходит на устройстве. Приложения могут использовать их, чтобы находить и устранять неполадки.\n\nТак как некоторые журналы могут содержать конфиденциальную информацию, доступ ко всем журналам следует предоставлять только тем приложениям, которым вы доверяете. \n\nЕсли вы не предоставите такой доступ этому приложению, оно по-прежнему сможет просматривать свои журналы. Также некоторые журналы или сведения на вашем устройстве могут быть доступны его производителю.\n\nПодробнее: g.co/android/devicelogs."
+ "В журналы записывается информация о том, что происходит на устройстве. Приложения могут использовать их, чтобы находить и устранять неполадки.\n\nТак как некоторые журналы могут содержать конфиденциальную информацию, доступ ко всем журналам следует предоставлять только тем приложениям, которым вы доверяете. \n\nЕсли вы не предоставите такой доступ этому приложению, оно по-прежнему сможет просматривать свои журналы. Не исключено, что некоторые журналы или сведения на вашем устройстве будут по-прежнему доступны его производителю. Подробнее""Больше не показывать""Приложение \"%1$s\" запрашивает разрешение на показ фрагментов приложения \"%2$s\".""Изменить"
@@ -2062,7 +2055,8 @@
"Настройки режима \"Не беспокоить\" изменены""Нажмите, чтобы проверить настройки.""Проверьте настройки уведомлений"
- "В Android 13 и более поздних версий приложения могут отправлять вам уведомления только в том случае, если вы предоставили им такое разрешение. Нажмите, чтобы настроить разрешения для установленных приложений."
+
+ "Напомнить позже""Закрыть""Система"
@@ -2288,8 +2282,7 @@
"\"%1$s\" работает в фоновом режиме. Нажмите, чтобы изменить настройки, связанные с расходом заряда батареи.""Приложение \"%1$s\" может влиять на время работы батареи. Нажмите, чтобы увидеть активные приложения.""Проверить активные приложения"
- "У устройства %1$s нет доступа к камере телефона."
+ "У устройства \"%1$s\" нет доступа к камере телефона.""У устройства \"%1$s\" нет доступа к камере планшета."
- "Этот контент недоступен во время трансляции. Используйте телефон."
- "Системные настройки по умолчанию"
+ "Язык системы"
diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml
index 6effa0d7a4666329a43b4e7d2cde606e432b2474..2e2d1371acb07417ef2864982da6f81c6edf23e8 100644
--- a/core/res/res/values-si/strings.xml
+++ b/core/res/res/values-si/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<නම් යොදා නැත>""(දුරකථන අංකයක් නොමැත)"
@@ -28,7 +33,6 @@
"කටහඬ තැපෑල""MSISDN1""සම්බන්ධතා ගැටළුවක් හෝ අවලංගු MMI කේතයකි."
- "විශේෂාංගය සහාය නොදක්වයි.""ස්ථාවර ඇමතීම් අංක වලට පමණක් මෙහෙයුම සීමාකර ඇත.""ඔබ රෝමිං තුළ සිටින අතරතුර ඔබේ දුරකථනයෙන් ඇමතුම් ප්රතියොමු සැකසීම් වෙනස් කළ නොහැකිය.""සේවාව සබල කරන ලදි."
@@ -43,8 +47,8 @@
"ඔබ ටයිප් කල PIN නොගැළපේ.""4 සිට 8 දක්වා අංක සහිත PIN එකක් ටයිප් කරන්න.""අංක 8 ක් හෝ ඊට වැඩි PUK එකක් ටයිප් කරන්න."
- "ඔබේ SIM එක PUK-අගුළු දමා ඇත. එය අගුළු ඇරීමට PUK කේතය ටයිප් කරන්න."
- "SIM අවහිර කිරීම ඉවත් කිරීමට PUK2 ටයිප් කරන්න."
+ "ඔබගේ SIM පත පතට PUK අගුළු වැටී ඇත. එම අගුල ඇරීමට PUK කේතය ටයිප් කරන්න."
+ "SIM පතේ අගුළු ඇරීමට PUK2 ටයිප් කරන්න.""අසාර්ථකයි, SIM/RUIM අඟුල සබල කරන්න."ඔබේ SIM කාඩ් පත අඟුළු වැටීමට පෙර තවත් උත්සාහයන් %d ක් ඉතිරිව ඇත.
@@ -301,12 +305,12 @@
"ඔබේ දින දර්ශනයට පිවිසෙන්න""කෙටි පණිවිඩ""SMS පණිවිඩ යැවීම සහ බැලීම"
- "ගොනු"
- "ඔබගේ උපාංගයේ ගොනු වෙත ප්රවේශය"
- "සංගීතය සහ ශ්රව්ය"
- "ඔබගේ උපාංගයේ සංගීතය සහ ශ්රව්ය වෙත ප්රවේශ වන්න"
- "ඡායාරූප සහ වීඩියෝ"
- "ඔබගේ උපාංගයේ ඡායාරූප සහ වීඩියෝ වෙත ප්රවේශ වන්න"
+ "ගොනු සහ ලේඛන"
+ "ඔබගේ උපාංගයේ ගොනු සහ ලේඛන වෙත ප්රවේශ වන්න"
+ "සංගීතය සහ වෙනත් ශ්රව්ය"
+ "ඔබගේ උපාංගයෙහි ඇති ශ්රව්ය ගොනුවලට ප්රවේශ වන්න"
+ "ඡායාරූප සහ වීඩියෝ"
+ "ඔබගේ උපාංගයෙහි ඇති රූප සහ වීඩියෝ ගොනුවලට ප්රවේශ වන්න""මයික්රොෆෝනය""ශ්රව්ය පටිගත කරන්න""ශාරීරික ක්රියාකාරකම"
@@ -582,14 +586,13 @@
"තිර අගුල භාවිත කරන්න""ඉදිරියට යාමට ඔබගේ තිර අගුල ඇතුළත් කරන්න""සංවේදකය මත තදින් ඔබන්න"
- "ඇඟිලි සලකුණ හඳුනා ගත නොහැක. නැවත උත්සාහ කරන්න."
+ "ඇඟිලි සලකුණ පිරිසැකසීමට නොහැකි විය. කරුණාකර නැවත උත්සාහ කරන්න.""ඇඟිලි සලකුණු සංවේදකය පිරිසිදු කර නැවත උත්සාහ කරන්න""සංවේදකය පිරිසිදු කර නැවත උත්සාහ කරන්න""සංවේදකය මත තදින් ඔබන්න""ඇඟිල්ල වඩා සෙමෙන් ගෙන යන ලදි. කරුණාකර නැවත උත්සාහ කරන්න.""තවත් ඇඟිලි සලකුණක් උත්සාහ කරන්න""දීප්තිය වැඩියි"
- "බල එබීම අනාවරණය විය""සීරුමාරු කිරීම උත්සාහ කරන්න""එක් එක් අවස්ථාවේ ඔබගේ ඇඟිල්ලේ පිහිටීම මදක් වෙනස් කරන්න"
@@ -601,17 +604,16 @@
"මුහුණ සත්යාපනය කරන ලදී, කරුණාකර තහවුරු කරන්න ඔබන්න""ඇඟිලි සලකුණු දෘඪාංගය ලද නොහැකිය.""ඇඟිලි සලකුණ පිහිටුවිය නොහැකිය"
- "ඇඟිලි සලකුණු පිහිටුවීම කාලය නිමා විය. නැවත උත්සාහ කරන්න."
+ "ඇඟිලි සලකුණු කාල නිමාව ළඟා විය. නැවත උත්සාහ කරන්න.""ඇඟිලි සලකුණු මෙහෙයුම අවලංගු කරන ලදී.""පරිශීලක විසින් ඇඟිලි සලකුණු මෙහෙයුම අවසන් කරන ලදී."
- "උත්සාහ ගණන ඉතා වැඩියි. ඒ වෙනුවට තිර අගුල භාවිත කරන්න."
- "උත්සාහ ගණන ඉතා වැඩියි. ඒ වෙනුවට තිර අගුල භාවිත කරන්න."
- "ඇඟිලි සලකුණ සැකසීමට නොහැක. නැවත උත්සාහ කරන්න."
+ "උත්සාහයන් ඉතා වැඩි ගණනකි. කරුණාකර පසුව නැවත උත්සාහ කරන්න."
+ "උත්සාහයන් ඉතා වැඩි ගණනකි. ඇඟිලි සලකුණු සංවේදකය අබල කරන ලදී."
+ "නැවත උත්සාහ කරන්න.""ඇඟිලි සලකුණු ඇතුළත් කර නොමැත.""මෙම උපාංගයේ ඇඟිලි සලකුණු සංවේදකයක් නොමැත.""සංවේදකය තාවකාලිකව අබල කර ඇත.""ඇඟිලි සලකුණු සංවේදකය භාවිත කළ නොහැකිය. අළුත්වැඩියා සැපයුම්කරුවෙකු බලන්න"
- "බල බොත්තම ඔබා ඇත""ඇඟිලි %d""ඇඟිලි සලකුණ භාවිත කරන්න""ඇඟිලි සලකුණ හෝ තිර අගුල භාවිත කරන්න"
@@ -632,33 +634,26 @@
"ඇඟිලි සලකුණු අගුළු හැරීම""ඇඟිලි සලකුණු සංවේදකය භාවිත කළ නොහැකිය""අළුත්වැඩියා සැපයුම්කරුවෙකු බලන්න."
- "ඔබගේ මුහුණු ආකෘතිය තැනිය නොහැකිය. නැවත උත්සාහ කරන්න."
+ "නිරවද්ය මුහුණු දත්ත ගත නොහැකි විය. නැවත උත්සාහ කරන්න.""දීප්තිය වැඩියි. තවත් මඳ ආලෝකය උත්සාහ කරන්න."
- "ප්රමාණවත් ආලෝකයක් නැත"
- "දුරකථනය තවත් ඈතට ගෙන යන්න"
- "දුරකථනය තවත් සමීපයට ගෙන එන්න"
- "දුරකථනය තවත් ඉහළට ගෙන යන්න"
- "දුරකථනය තවත් පහළට ගෙන යන්න"
- "දුරකථනය ඔබගේ වම් පසට ගෙන යන්න"
- "දුරකථනය ඔබගේ දකුණු පසට ගෙන යන්න"
+ "ඉතා අඳුරුයි. තවත් දීප්තිමත් ආලෝකය උත්සාහ කරන්න."
+ "දුරකථනය තවත් දුරට ගෙන යන්න."
+ "දුරකථනය තවත් සමීපව ගෙන යන්න."
+ "දුරකථනය ඉහළට ගෙන යන්න."
+ "දුරකථනය පහළට ගෙන යන්න."
+ "දුරකථනය වමට ගෙන යන්න."
+ "දුරකථනය දකුණට ගෙන යන්න.""ඔබේ උපාංගය වෙත තවත් ඍජුව බලන්න."
- "ඔබගේ මුහුණ දැකිය නොහැකිය. ඔබගේ දුරකථනය ඇස් මට්ටමින් අල්ලා ගන්න."
+ "ඔබේ මුහුණ දුරකථනයට සෘජුවම ඉදිරියෙන් ස්ථානගත කරන්න.""චලනය ඉතා වැඩියි. දුරකථනය ස්ථිරව අල්ලා සිටින්න.""ඔබේ මුහුණ යළි ලියාපදිංචි කරන්න."
- "මුහුණ හඳුනා ගත නොහැකිය. නැවත උත්සාහ කරන්න."
- "ඔබගේ හිසෙහි පිහිටීම මදක් වෙනස් කරන්න"
- "ඔබගේ දුරකථනය දෙස වඩාත් ඍජුව බලන්න"
- "ඔබගේ දුරකථනය දෙස වඩාත් ඍජුව බලන්න"
- "ඔබගේ දුරකථනය දෙස වඩාත් ඍජුව බලන්න"
+ "තවදුරටත් මුහුණ හඳුනාගත නොහැක. නැවත උත්සාහ කරන්න."
+ "ඉතා සමානයි, ඔබේ හැඩ ගැසීම වෙනස් කරන්න."
+ "ඔබේ හිස ටිකක් අඩුවෙන් කරකවන්න."
+ "ඔබගේ හිස ටිකක් අඩුවෙන් ඇල කරන්න."
+ "ඔබේ හිස ටිකක් අඩුවෙන් කරකවන්න.""ඔබේ මුහුණ සඟවන කිසිවක් ඉවත් කරන්න.""කලු තීරුව ඇතුළුව, ඔබේ තිරයෙහි මුදුන පිරිසිදු කරන්න"
-
-
-
-
- "ඔබගේ මුහුණු ආකෘතිය තැනිය නොහැකිය. නැවත උත්සාහ කරන්න."
- "අඳුරු කණ්ණාඩි අනාවරණය කර ගන්නා ලදි. ඔබගේ මුහුණ සම්පූර්ණයෙන් දෘශ්යමාන විය යුතුය."
- "මුහුණු ආවරණය අනාවරණය කර ගන්නා ලදි. ඔබගේ මුහුණ සම්පූර්ණයෙන් දෘශ්යමාන විය යුතුය.""මුහුණ සත්යාපනය කළ නොහැක. දෘඩාංගය නොමැත."
@@ -924,14 +919,14 @@
"නැවත උත්සාහ කරන්න""සියලු විශේෂාංග සහ දත්ත අනවහිර කරන්න""මුහුණෙන් අගුළු හැරීමේ උපරිම ප්රයන්තයන් ගණන ඉක්මවා ඇත"
- "SIM නැත"
- "ටැබ්ලටයේ SIM නැත."
- "ඔබේ Android TV උපාංගයේ SIM නැත."
- "දුරකථනයේ SIM නැත."
- "SIM එකක් එක් කරන්න."
- "SIM අස්ථානගතයි හෝ කියවිය නොහැක. SIM එකක් එක් කරන්න."
- "භාවිත කළ නොහැකි SIM."
- "ඔබේ SIM ස්ථිරවම අක්රිය කර ඇත.\n වෙනත් SIM පතක් සඳහා ඔබේ රැහැන් රහිත සේවා සපයන්නා අමතන්න."
+ "SIM පත නැත"
+ "ටැබ්ලටයේ SIM පත නොමැත."
+ "ඔබගේ Android TV උපාංගයේ SIM කාඩ්පතක් නොමැත."
+ "දුරකථනය තුළ SIM පත නැත."
+ "SIM පතක් ඇතුල් කරන්න."
+ "SIM පත නොමැත හෝ කියවිය නොහැක. SIM පතක් ඇතුලත් කරන්න."
+ "භාවිතා කළ නොහැකි SIM පත."
+ "ඔබගේ SIM පත ස්ථිරව අබල කර තිබේ.\n වෙනත් SIM පතක් සඳහා ඔබගේ සේවාදායකයා සම්බන්ධ කරගන්න.""පෙර ගීතය""ඊළඟ ගීතය""විරාමය"
@@ -941,10 +936,10 @@
"වේගයෙන් ඉදිරියට යන""හදිසි ඇමතුම් පමණි""ජාලය අගුළු දමා ඇත"
- "SIM PUK-අගුළු දමා ඇත."
+ "SIM පත PUK අගුළු දමා ඇත.""පරිශීලක උපදේශය බලන්න හෝ පරිභෝගික සේවාව අමතන්න."
- "SIM අගුළු දමා ඇත."
- "SIM අගුළු අරිමින්…"
+ "SIM පත අගුළු දමා ඇත."
+ "SIM පත අගුළු අරිමින්...""ඔබ %1$d වාරයක් අගුළු ඇරීමේ රටාව වැරදියට ඇඳ ඇත. \n\nතත්පර %2$d ක් ඇතුළත නැවත උත්සාහ කරන්න.""ඔබ මුරපදය වාර %1$d ක් වැරදියට ටයිප්කොට ඇත. \n\nතත්පර %2$d කින් නැවත උත්සහ කරන්න.""ඔබ PIN අංකය %1$d වාරයක් වැරදියට ටයිප් කොට ඇත.\n\n තත්පර %2$d ක් ඇතුළත නැවත උත්සාහ කරන්න."
@@ -1246,9 +1241,10 @@
"%1$s සූදානම් කරමින්.""යෙදුම් ආරම්භ කරමින්.""ඇරඹුම අවසාන කරමින්."
+ "පිහිටුවීම දිගටම කරන්නද?""ඔබ බල බොත්තම එබුවේය — සාමාන්යයෙන් මෙය තිරය ක්රියාවිරහිත කරයි.\n\nඔබගේ ඇඟිලි සලකුණ පිහිටුවන අතරතුර සැහැල්ලුවෙන් තට්ටු කිරීමට උත්සාහ කරන්න."
- "පිහිටුවීම නිම කිරීමට, තිරය අක්රිය කරන්න"
- "ක්රියාවිරහිත කරන්න"
+ "තිරය අක්රිය කරන්න"
+ "පිහිටුවීම දිගටම කර.""ඔබගේ ඇඟිලි සලකුණ සත්යාපනය දිගටම කරන්නද?""ඔබ බල බොත්තම එබුවේය — සාමාන්යයෙන් මෙය තිරය ක්රියාවිරහිත කරයි.\n\nඔබගේ ඇඟිලි සලකුණ සත්යාපනය කිරීමට සැහැල්ලුවෙන් තට්ටු කිරීමට උත්සාහ කරන්න.""තිරය අක්රිය කරන්න"
@@ -1327,10 +1323,10 @@
"ඔබට මෙය සැකසීම් තුළ වෙනස්කර ගැනීම පසුව කළ හැක > යෙදුම්""සැමවිටම ඉඩ දෙන්න""කිසිදා අවසර නොදෙන්න"
- "SIM ඉවත් කරන ලදි"
- "ඔබ වලංගු SIM එකකින් නැවත ආරම්භ කරන තෙක් ජංගම ජාලය නොතිබෙනු ඇත."
+ "SIM පත ඉවත් කරන ලදි"
+ "ඔබ ඇතුළත් කරන ලද වලංගු SIM පත සමඟ නැවත ඇරඹීම කරන තුරු ජංගම ජාලය නොතිබේ.""හරි"
- "SIM එක් කෙරිණි"
+ "SIM පතක් එකතු කරන ලදි""ජංගම ජාලයට ප්රවේශ වීමට ඔබගේ උපාංගය නැවත අරඹන්න.""යළි අරඹන්න""ජංගම සේවාව සක්රිය කරන්න"
@@ -1401,16 +1397,16 @@
"පිහිටුවීමට තට්ටු කරන්න""පිහිටුවීමට තෝරන්න""ඔබට උපාංගය නැවත හැඩගැන්වීමට අවශ්ය විය හැකිය. ඉවත් කිරීමට තට්ටු කරන්න."
- "ඡායාරූප, වීඩියෝ, සංගීතය සහ තවත් දේ ගබඩා කිරීම සඳහා"
+ "ඡායාරූප සහ මාධ්ය හුවමාරු කිරීම සඳහා""මාධ්ය ගොනු බ්රවුස් කරන්න""%s සමගින් වන ගැටලුව""%s ක්රියා නොකරයි""විසඳීමට තට්ටු කරන්න""%s දූෂිතයි. විසඳීමට තට්ටු කරන්න.""ඔබට උපාංගය නැවත හැඩගැන්වීමට අවශ්ය විය හැකිය. ඉවත් කිරීමට තට්ටු කරන්න."
- "%s අනාවරණය කර ඇත"
+ "සහාය නොදක්වන %s""%s ක්රියා නොකරයි"
- "පිහිටුවීමට තට්ටු කරන්න ."
+ "මෙම උපාංගය මෙම %s සඳහා සහාය නොදක්වයි. සහාය දක්වන ආකෘතියකින් පිහිටුවීමට තට්ටු කරන්න.""සහාය දක්වන ආකෘතියකින් %s පිහිටුවීමට තෝරන්න.""ඔබට උපාංගය නැවත හැඩගැන්වීමට අවශ්ය විය හැකිය""%s අනපේක්ෂිතව ඉවත් කරන ලදි"
@@ -1609,7 +1605,7 @@
"රූපවාහිනී""දුරකථනය""නාදක ඩොක් කරන්න"
- "බාහිර උපාංගය"
+ "HDMI""ඉස් බණු""USB""පද්ධතිය"
@@ -1642,7 +1638,7 @@
"දැන් SIM එක අබල කර ඇත. ඉදිරියට යාමට PUK කේතය යොදන්න. විස්තර සඳහා වාහකයා අමතන්න.""අපේක්ෂිත PIN කේතය ඇතුළත් කරන්න""අපේක්ෂිත PIN කේතය ස්ථිර කරන්න"
- "SIM අගුළු අරිමින්…"
+ "SIM පත අගුළු අරිමින්...""වැරදි PIN කේතයකි.""අංක 4 සිට 8 අතර වන PIN එකක් ටයිප් කරන්න.""PUK කේතය අංක 8 ක් විය යුතුය."
@@ -1923,7 +1919,6 @@
"ප්රදේශ මනාපය""භාෂා නම ටයිප් කරන්න""යෝජිත"
- "යෝජිත""සියලු භාෂා""සියලු ප්රදේශ""සෙවීම"
@@ -1941,19 +1936,18 @@
"කැමරාව ලබා ගත නොහැකිය""දුරකථනයෙන් දිගටම කර ගෙන යන්න""මයික්රෆෝනය ලබා ගත නොහැකිය"
- "Play Store නොමැත""Android TV සැකසීම් ලබා ගත නොහැකිය""ටැබ්ලට් සැකසීම් ලබා ගත නොහැකිය""දුරකථන සැකසීම් ලබා ගත නොහැකිය"
- "මේ අවස්ථාවේදී මෙයට ඔබගේ %1$s හි ප්රවේශ විය නොහැකිය. ඒ වෙනුවට ඔබගේ Android TV උපාංගයෙහි උත්සාහ කරන්න."
- "මේ අවස්ථාවේදී මෙයට ඔබගේ %1$s හි ප්රවේශ විය නොහැකිය. ඒ වෙනුවට ඔබගේ ටැබ්ලටයෙහි උත්සාහ කරන්න."
- "මේ අවස්ථාවේදී මෙයට ඔබගේ %1$s හි ප්රවේශ විය නොහැකිය. ඒ වෙනුවට ඔබගේ දුරකථනයෙහි උත්සාහ කරන්න."
+ "මෙයට ඔබගේ %1$s හිදී ප්රවේශ විය නොහැකිය. ඒ වෙනුවට ඔබගේ Android TV උපාංගයෙහි උත්සාහ කරන්න."
+ "මෙයට ඔබගේ %1$s හිදී ප්රවේශ විය නොහැකිය. ඒ වෙනුවට ඔබගේ ටැබ්ලටයෙහි උත්සාහ කරන්න."
+ "මෙයට ඔබගේ %1$s හිදී ප්රවේශ විය නොහැකිය. ඒ වෙනුවට ඔබගේ දුරකථනයෙහි උත්සාහ කරන්න."
+ "මේ අවස්ථාවේදී මෙයට ඔබගේ %1$s හිදී ප්රවේශ විය නොහැකිය. ඒ වෙනුවට ඔබගේ Android TV උපාංගයෙහි උත්සාහ කරන්න."
+ "මේ අවස්ථාවේදී මෙයට ඔබගේ %1$s හිදී ප්රවේශ විය නොහැකිය. ඒ වෙනුවට ඔබගේ ටැබ්ලටයෙහි උත්සාහ කරන්න."
+ "මේ අවස්ථාවේදී මෙයට ඔබගේ %1$s හිදී ප්රවේශ විය නොහැකිය. ඒ වෙනුවට ඔබගේ දුරකථනයෙහි උත්සාහ කරන්න.""මෙම යෙදුම අමතර ආරක්ෂාවක් ඉල්ලා සිටී. ඒ වෙනුවට ඔබගේ Android TV උපාංගයෙහි උත්සාහ කරන්න.""මෙම යෙදුම අමතර ආරක්ෂාවක් ඉල්ලා සිටී. ඒ වෙනුවට ඔබගේ ටැබ්ලටයෙහි උත්සාහ කරන්න.""මෙම යෙදුම අමතර ආරක්ෂාවක් ඉල්ලා සිටී. ඒ වෙනුවට ඔබගේ දුරකථනයෙහි උත්සාහ කරන්න."
- "මෙයට ඔබේ %1$s මත ප්රවේශ විය නොහැක. ඒ වෙනුවට ඔබේ Android TV උපාංගයෙහි උත්සාහ කරන්න."
- "මෙයට ඔබේ %1$s මත ප්රවේශ විය නොහැක. ඒ වෙනුවට ඔබේ ටැබ්ලටයෙහි උත්සාහ කරන්න."
- "මෙයට ඔබේ %1$s මත ප්රවේශ විය නොහැක. ඒ වෙනුවට ඔබේ දුරකථනයෙහි උත්සාහ කරන්න.""මෙම යෙදුම Android හි පැරණි අනුවාදයක් සඳහා තනා ඇති අතර නිසියාකාරව ක්රියා නොකරනු ඇත. යාවත්කාලීන සඳහා පරික්ෂා කිරීම උත්සාහ කරන්න, නැතහොත් සංවර්ධක අමතන්න.""යාවත්කාලීන සඳහා පරික්ෂා කරන්න""ඔබට නව පණිවිඩ තිබේ"
@@ -2046,8 +2040,7 @@
"%s හට සියලු උපාංග ලොග ප්රවේශ වීමට ඉඩ දෙන්නද?""එක් වරක් ප්රවේශය ඉඩ දෙන්න""ඉඩ නොදෙන්න"
- "උපාංග ලොග ඔබේ උපාංගයෙහි සිදු වන දේ වාර්තා කරයි. ගැටලු සොයා ගැනීමට සහ නිරාකරණයට යෙදුම්වලට මෙම ලොග භාවිතා කළ හැක.\n\nසමහර ලොගවල සංවේදී තතු අඩංගු විය හැකි බැවින්, ඔබ විශ්වාස කරන යෙදුම්වලට පමණක් සියලු උපාංග ලොග වෙත ප්රවේශ වීමට ඉඩ දෙන්න. \n\nඔබ මෙම යෙදුමට සියලු උපාංග ලොග වෙත ප්රවේශ වීමට ඉඩ නොදෙන්නේ නම්, එයට තවමත් එහිම ලොග වෙත ප්රවේශ විය හැක. ඔබේ උපාංග නිෂ්පාදකයාට තවමත් ඔබේ උපාංගයෙහි සමහර ලොග හෝ තතු වෙත ප්රවේශ විය හැක."
- "උපාංග ලොග ඔබේ උපාංගයෙහි සිදු වන දේ වාර්තා කරයි. ගැටලු සොයා ගැනීමට සහ නිරාකරණයට යෙදුම්වලට මෙම ලොග භාවිතා කළ හැක.\n\nසමහර ලොගවල සංවේදී තතු අඩංගු විය හැකි බැවින්, ඔබ විශ්වාස කරන යෙදුම්වලට පමණක් සියලු උපාංග ලොග වෙත ප්රවේශ වීමට ඉඩ දෙන්න. \n\nඔබ මෙම යෙදුමට සියලු උපාංග ලොග වෙත ප්රවේශ වීමට ඉඩ නොදෙන්නේ නම්, එයට තවමත් එහිම ලොග වෙත ප්රවේශ විය හැක. ඔබේ උපාංග නිෂ්පාදකයාට තවමත් ඔබේ උපාංගයෙහි සමහර ලොග හෝ තතු වෙත ප්රවේශ විය හැක.\n\ng.co/android/devicelogs හි දී තව දැන ගන්න."
+ "උපාංග ලොග ඔබගේ උපාංගයේ සිදු වන දේ වාර්තා කරයි. ගැටලු සොයා ගැනීමට සහ විසඳීමට යෙදුම්වලට මෙම ලොග භාවිත කළ හැකිය.\n\nසමහර ලොගවල සංවේදී තොරතුරු අඩංගු විය හැකිය, එබැවින් ඔබ විශ්වාස කරන යෙදුම්වලට පමණක් සියලු උපාංග ලොග වෙත ප්රවේශ වීමට ඉඩ දෙන්න. \n\nඔබ මෙම යෙදුමට සියලු උපාංග ලොග වෙත ප්රවේශ වීමට ඉඩ නොදෙන්නේ නම්, එයට තවමත් එහිම ලොග වෙත ප්රවේශ විය හැකිය. ඔබගේ උපාංග නිෂ්පාදකයාට තවමත් ඔබගේ උපාංගයේ සමහර ලොග හෝ තොරතුරු වෙත ප්රවේශ විය හැකිය. තව දැන ගන්න""නැවත නොපෙන්වන්න""%1$s හට කොටස් %2$sක් පෙන්වීමට අවශ්යයි""සංස්කරණය"
@@ -2060,7 +2053,8 @@
"බාධා නොකරන්න වෙනස් කර ඇත""අවහිර කර ඇති දේ පරීක්ෂා කිරීමට තට්ටු කරන්න.""දැනුම්දීම් සැකසීම් සමාලෝචනය කරන්න"
- "Android 13 හි සිට ආරම්භ වෙමින්, ඔබ ස්ථාපනය කරන යෙදුම්වලට දැනුම්දීම් යැවීමට ඔබගේ අවසරය අවශ්ය වේ. තිබෙන යෙදුම් සඳහා මෙම අවසරය වෙනස් කිරීමට තට්ටු කරන්න."
+
+ "මට පසුව මතක් කරන්න""ඉවත ලන්න""පද්ධතිය"
@@ -2288,6 +2282,5 @@
"සක්රිය යෙදුම් පරීක්ෂා කරන්න""ඔබගේ %1$s වෙතින් දුරකථනයේ කැමරාවට ප්රවේශ විය නොහැකිය""ඔබගේ %1$s වෙතින් ටැබ්ලටයේ කැමරාවට ප්රවේශ විය නොහැකිය"
- "ප්රවාහය කරන අතරේ මෙයට ප්රවේශ විය නොහැක. ඒ වෙනුවට ඔබේ දුරකථනයෙහි උත්සාහ කරන්න."
- "පද්ධති පෙරනිමිය"
+ "පද්ධති භාෂාව"
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index 6ee726a1240c46053370068fc6512d10171bd789..0a89e528c7b9ad53069858edef4111b76c2f173e 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Bez mena>""(žiadne telefónne číslo)"
@@ -28,7 +33,6 @@
"Hlasová schránka""MSISDN1""Problém s pripojením alebo neplatný kód MMI."
- "Funkcia nie je podporovaná.""Operácia je obmedzená len na povolené čísla.""Nastavenia presmerovania hovorov nie je možné zmeniť z telefónu počas roamingu.""Služba bola povolená."
@@ -43,8 +47,8 @@
"Zadané kódy PIN sa nezhodujú.""Zadajte kód PIN s dĺžkou 4 až 8 číslic.""Zadajte kód PUK, ktorý má 8 alebo viac čísel."
- "SIM karta je uzamknutá kódom PUK. Zadaním kódu PUK ju odomknite."
- "Ak chcete SIM kartu odblokovať, zadajte kód PUK2."
+ "SIM karta je uzamknutá pomocou kódu PUK. Odomknite ju zadaním kódu PUK."
+ "Ak chcete odblokovať SIM kartu, zadajte kód PUK2.""Neúspešné, povoľte uzamknutie SIM/RUIM."Zostávajú vám %d pokusy, potom sa vaša SIM karta uzamkne.
@@ -303,12 +307,12 @@
"prístup ku kalendáru""SMS""posielanie a zobrazovanie SMS"
- "Súbory"
- "dostať sa k súborom vo vašom zariadení"
- "Hudba a zvuk"
- "prístup k hudbe a zvuku vo vašom zariadení"
- "Fotky a videá"
- "prístup k fotkám a videám vo vašom zariadení"
+ "Súbory a dokumenty"
+ "prístup k súborom a dokumentom vo vašom zariadení"
+ "Hudba a iné zvuky"
+ "prístup k zvukovým súborom vo vašom zariadení"
+ "Fotky a videá"
+ "prístup k súborom obrázka a videosúborom vo vašom zariadení""Mikrofón""nahrávanie zvuku""Fyzická aktivita"
@@ -330,7 +334,7 @@
"Zapnúť funkciu Preskúmanie dotykom""Po klepnutí na položku sa vysloví jej názov a obrazovku je možné preskúmať pomocou gest.""Sledovať zadávaný text"
- "Sledovanie zahŕňa osobné údaje, ako sú čísla kreditných kariet a heslá."
+ "Sledovanie zahŕňa osobné údaje ako sú čísla kreditných kariet a heslá.""Ovládať priblíženie obrazovky""Ovládajte umiestnenie a úroveň priblíženia obrazovky.""Gestá"
@@ -347,8 +351,8 @@
"Umožňuje aplikácii rozbaliť alebo zbaliť stavový riadok.""zobrazovanie upozornení ako aktivít na celej obrazovke v uzamknutom zariadení""Táto možnosť umožňuje aplikácii zobrazovať upozornenia ako aktivity na celej obrazovke v uzamknutom zariadení"
- "Inštalovať odkazy"
- "povoliť aplikácii pridať odkazy na ploche bez zásahu používateľa."
+ "inštalovať odkazy"
+ "Povoľuje aplikácii pridať odkazy na ploche bez zásahu používateľa.""odinštalovať odkazy""Povoľuje aplikácii odstrániť odkazy na ploche bez zásahu používateľa.""presmerovať odchádzajúce hovory"
@@ -584,14 +588,13 @@
"Použiť zámku obrazovky""Pokračujte zadaním zámky obrazovky""Pevne pridržte senzor"
- "Odtlačok prsta sa nedá rozpoznať. Skúste to znova."
+ "Odtlačok prsta sa nepodarilo spracovať. Skúste to znova.""Vyčistite senzor odtlačkov prstov a skúste to znova""Vyčistite senzor a skúste to znova""Pevne pridržte senzor""Pohli ste prstom príliš pomaly. Skúste to znova.""Vyskúšajte iný odtlačok prsta""Príliš jasno"
- "Bolo zistené stlačenie vypínača""Vyskúšajte upraviť""Zakaždým trocha zmeňte pozíciu prsta"
@@ -603,17 +606,16 @@
"Tvár bola overená, stlačte tlačidlo potvrdenia""Hardvér na snímanie odtlačku prsta nie je k dispozícii""Odtlačok prsta sa nedá nastaviť"
- "Nastavenie odtlačku prsta vypršalo. Skúste to znova."
+ "Časový limit rozpoznania odtlačku prsta vypršal. Skúste to znova.""Operácia týkajúca sa odtlačku prsta bola zrušená""Overenie odtlačku prsta zrušil používateľ."
- "Príliš veľa pokusov. Použite radšej zámku obrazovky."
- "Príliš veľa pokusov. Použite radšej zámku obrazovky."
- "Odtlačok prsta sa nedá spracovať. Skúste to znova."
+ "Príliš veľa pokusov. Skúste to neskôr."
+ "Príliš veľa pokusov. Senzor odtlačkov prstov bol deaktivovaný."
+ "Skúste to znova""Neregistrovali ste žiadne odtlačky prstov.""Toto zariadenie nemá senzor odtlačkov prstov.""Senzor je dočasne vypnutý.""Senzor odtlačkov prstov nie je možné používať. Navštívte poskytovateľa opráv."
- "Bol stlačený vypínač""Prst: %d""Použiť odtlačok prsta""Použiť odtlačok prsta alebo zámku obrazovky"
@@ -634,33 +636,26 @@
"Odomknutie odtlačkom prsta""Senzor odtlačkov prstov nie je možné používať""Navštívte poskytovateľa opráv."
- "Model tváre sa nedá vytvoriť. Skúste to znova."
+ "Nepodarilo sa nasnímať presné údaje o tvári. Skúste to znova.""Príliš veľa svetla. Skúste jemnejšie osvetlenie."
- "Nie je dostatok svetla"
- "Oddiaľte telefón"
- "Priblížte telefón"
- "Posuňte telefón vyššie"
- "Posuňte telefón nižšie"
- "Posuňte telefón doľava"
- "Posuňte telefón doprava"
+ "Príliš veľká tma. Skúste lepšie osvetlenie."
+ "Oddiaľte telefón."
+ "Priblížte telefón."
+ "Posuňte telefón vyššie."
+ "Posuňte telefón nižšie."
+ "Posuňte telefón doľava."
+ "Posuňte telefón doprava.""Pozrite sa priamejšie na zariadenie."
- "Nie je vidieť vašu tvár. Držte telefón na úrovni očí."
+ "Umiestnite svoju tvár priamo pred telefón.""Priveľa pohybu. Nehýbte telefónom.""Znova zaregistrujte svoju tvár."
- "Tvár sa nedá rozpoznať. Skúste to znova."
- "Trocha zmeňte pozíciu hlavy"
- "Pozrite sa na telefón priamejšie"
- "Pozrite sa na telefón priamejšie"
- "Pozrite sa na telefón priamejšie"
+ "Tvár už nie je možné rozpoznať. Skúste to znova."
+ "Príliš rovnaké, zmeňte postoj."
+ "Otočte hlavu o niečo menej."
+ "Nakloňte hlavu trocha menej."
+ "Otočte hlavu o niečo menej.""Odstráňte všetko, čo vám zakrýva tvár.""Vyčistite hornú časť obrazovky vrátane čierneho panela"
-
-
-
-
- "Model tváre sa nedá vytvoriť. Skúste to znova."
- "Boli rozpoznané tmavé okuliare. Musí vám byť vidieť celú tvár."
- "Bolo rozpoznané rúško. Musí vám byť vidieť celú tvár.""Tvár sa nedá overiť. Hardvér nie je k dispozícii."
@@ -926,14 +921,14 @@
"Skúsiť znova""Všetky funkcie a dáta získate po odomknutí""Prekročili ste maximálny povolený počet pokusov o odomknutie tvárou"
- "Žiadna SIM karta"
- "V tablete nie je SIM karta."
- "V zariadení Android TV nie je SIM karta."
- "V telefóne nie je SIM karta."
- "Pridajte SIM kartu."
- "SIM karta chýba alebo sa nedá čítať. Pridajte SIM kartu."
- "Nepoužiteľná SIM karta."
- "Vaša SIM karta bola natrvalo deaktivovaná.\n Požiadajte svojho poskytovateľa bezdrôtových služieb o ďalšiu SIM kartu."
+ "Žiadna SIM karta"
+ "V tablete nie je žiadna SIM karta."
+ "V zariadení Android TV nie je SIM karta."
+ "V telefóne nie je žiadna SIM karta."
+ "Vložte SIM kartu."
+ "SIM karta chýba alebo sa z nej nedá čítať. Vložte SIM kartu."
+ "SIM karta je nepoužiteľná."
+ "Vaša SIM karta bola natrvalo zakázaná.\nAk chcete získať inú SIM kartu, kontaktujte svojho operátora.""Predchádzajúca stopa""Ďalšia stopa""Pozastaviť"
@@ -943,10 +938,10 @@
"Pretočiť dopredu""Len tiesňové volania""Sieť je zablokovaná"
- "SIM karta je uzamknutá kódom PUK."
+ "SIM karta je uzamknutá pomocou kódu PUK.""Prečítajte si Príručku používateľa alebo kontaktujte podporu zákazníka."
- "SIM karta je uzamknutá."
- "SIM karta sa odomyká…"
+ "SIM karta je uzamknutá."
+ "Prebieha odomykanie SIM karty...""%1$d-krát ste použili nesprávny bezpečnostný vzor. \n\nSkúste to znova o %2$d s.""%1$d-krát ste zadali nesprávne heslo. \n\nSkúste to znova o %2$d s.""%1$d-krát ste zadali nesprávny kód PIN. \n\nSkúste to znova o %2$d s."
@@ -988,7 +983,7 @@
"Výber používateľa""Stav""Fotoaparát"
- "Ovládanie médií"
+ "Ovládacie prvky médií""Zmena usporiadania miniaplikácií sa začala.""Zmena usporiadania miniaplikácií sa skončila.""Miniaplikácia %1$s bola odstránená."
@@ -1248,9 +1243,10 @@
"Pripravuje sa aplikácia %1$s.""Prebieha spúšťanie aplikácií.""Prebieha dokončovanie spúšťania."
+ "Chcete pokračovať v nastavovaní?""Stlačili ste vypínač. Obvykle tým vypnete obrazovku.\n\nPri nastavovaní odtlačku prsta skúste klepnúť jemne."
- "Nastavovanie ukončíte vypnutím obrazovky"
- "Vypnúť"
+ "Vypnúť obrazovku"
+ "Pokračovať v nastav.""Pokračovať v overovaní odtlačku prsta?""Stlačili ste vypínač. Obvykle tým vypnete obrazovku.\n\nAk chcete overiť odtlačok prsta, skúste klepnúť jemne.""Vypnúť obrazovku"
@@ -1329,10 +1325,10 @@
"Zmena v časti Nastavenia > Aplikácie""Vždy povoliť""Nikdy nepovoliť"
- "SIM karta bola odstránená"
- "Mobilná sieť bude nedostupná, kým nepoužijete platnú SIM kartu."
+ "SIM karta bola odobraná"
+ "Mobilná sieť nebude k dispozícii, kým nevložíte platnú SIM kartu a zariadenie nereštartujete.""Hotovo"
- "Bola pridaná SIM karta"
+ "Bola pridaná SIM karta""Ak chcete získať prístup k mobilnej sieti, reštartujte svoje zariadenie.""Reštartovať""Aktivovať mobilnú službu"
@@ -1403,16 +1399,16 @@
"Klepnutím médium nastavte""Vyberte a nastavte""Zariadenie možno bude potrebné preformátovať. Klepnutím ho vysuniete."
- "Na ukladanie fotiek, vdieí, hudby a ďalšieho obsahu"
+ "Na prenos fotiek a médií""Prehliadajte súbory médií""Problém s médiom %s""%s nefunguje""Problém odstránite klepnutím""Médium %s je poškodené. Vyberte ho a vyriešte problém.""Zariadenie možno bude potrebné preformátovať. Klepnutím ho vysuniete."
- "Bolo rozpoznané médium %s"
+ "Nepodporované úložisko %s""%s nefunguje"
- "Nastavte klepnutím."
+ "Toto zariadenie nepodporuje úložisko %s. Klepnutím ho nastavíte v podporovanom formáte.""Vyberte a vytvorte tak %s v podporovanom formáte.""Zariadenie možno bude potrebné preformátovať""Úl. %s bolo neočakávane odobraté"
@@ -1611,7 +1607,7 @@
"Televízor""Telefón""Reproduktory doku"
- "Externé zariadenie"
+ "HDMI""Slúchadlá""USB""Systém"
@@ -1644,7 +1640,7 @@
"SIM karta je teraz zakázaná. Ak chcete pokračovať, zadajte kód PUK. Podrobné informácie získate od operátora.""Zadajte požadovaný kód PIN""Potvrďte požadovaný kód PIN"
- "SIM karta sa odomyká…"
+ "Prebieha odomykanie SIM karty...""Nesprávny kód PIN.""Zadajte kód PIN s dĺžkou 4 až 8 číslic.""Kód PUK musí obsahovať 8 číslic."
@@ -1850,7 +1846,7 @@
"3. %1$s do práce""Pred odopnutím požiadať o číslo PIN""Pred uvoľnením požiadať o bezpečnostný vzor"
- "Pred odopnutím požiadať o heslo"
+ "Pred uvoľnením požiadať o heslo""Nainštaloval správca""Aktualizoval správca""Odstránil správca"
@@ -1925,7 +1921,6 @@
"Preferovaný región""Zadajte názov jazyka""Navrhované"
- "Navrhované""Všetky jazyky""Všetky oblasti""Vyhľadávanie"
@@ -1943,19 +1938,18 @@
"Kamera nie je k dispozícii""Pokračujte v telefóne""Mikrofón nie je k dispozícii"
- "Obchod Play nie je k dispozícii""Nastavenia zariadenia Android TV nie sú k dispozícii""Nastavenia tabletu nie sú k dispozícii""Nastavenia telefónu nie sú k dispozícii"
- "V zariadení %1$s momentálne nemáte k tomuto obsahu prístup. Skúste namiesto toho použiť zariadenie Android TV."
- "V zariadení %1$s momentálne nemáte k tomuto obsahu prístup. Skúste namiesto toho použiť tablet."
- "V zariadení %1$s momentálne nemáte k tomuto obsahu prístup. Skúste použiť telefón."
+ "V zariadení %1$s momentálne nemáte prístup k tomuto obsahu. Skúste namiesto toho použiť zariadenie Android TV."
+ "V zariadení %1$s momentálne nemáte prístup k tomuto obsahu. Skúste namiesto toho použiť tablet."
+ "V zariadení %1$s momentálne nemáte prístup k tomuto obsahu. Skúste namiesto toho použiť telefón."
+ "V zariadení %1$s momentálne nemáte prístup k tomuto obsahu. Skúste namiesto toho použiť zariadenie Android TV."
+ "V zariadení %1$s momentálne nemáte prístup k tomuto obsahu. Skúste namiesto toho použiť tablet."
+ "V zariadení %1$s momentálne nemáte prístup k tomuto obsahu. Skúste namiesto toho použiť telefón.""Táto aplikácia požaduje dodatočné zabezpečenie. Skúste namiesto toho použiť zariadenie Android TV.""Táto aplikácia požaduje dodatočné zabezpečenie. Skúste namiesto toho použiť tablet."
- "Táto aplikácia požaduje dodatočné zabezpečenie. Skúste použiť telefón."
- "V zariadení %1$s momentálne nemáte prístup k tomuto obsahu. Skúste namiesto toho použiť zariadenie Android TV."
- "V zariadení %1$s momentálne nemáte prístup k tomuto obsahu. Skúste namiesto toho použiť tablet."
- "V zariadení %1$s momentálne nemáte prístup k tomuto obsahu. Skúste použiť telefón."
+ "Táto aplikácia požaduje dodatočné zabezpečenie. Skúste namiesto toho použiť telefón.""Táto aplikácia bola zostavená pre staršiu verziu Androidu a nemusí správne fungovať. Skúste skontrolovať dostupnosť aktualizácií alebo kontaktovať vývojára.""Skontrolovať dostupnosť aktualizácie""Máte nové správy."
@@ -2048,8 +2042,7 @@
"Chcete povoliť aplikácii %s prístup k všetkým denníkom zariadenia?""Povoliť jednorazový prístup""Nepovoliť"
- "Denníky zariadenia zaznamenávajú, čo sa deje vo vašom zariadení. Aplikácie môžu pomocou týchto denníkov vyhľadávať a riešiť problémy.\n\nNiektoré denníky môžu obsahovať citlivé údaje, preto povoľte prístup k všetkým denníkom zariadenia iba dôveryhodným aplikáciám. \n\nAk tejto aplikácii nepovolíte prístup k všetkým denníkom zariadenia, stále bude mať prístup k vlastným denníkom. Výrobca vášho zariadenia bude mať naďalej prístup k niektorým denníkom alebo informáciám vo vašom zariadení."
- "Denníky zariadenia zaznamenávajú, čo sa deje vo vašom zariadení. Aplikácie môžu pomocou týchto denníkov vyhľadávať a riešiť problémy.\n\nNiektoré denníky môžu obsahovať citlivé údaje, preto povoľte prístup k všetkým denníkom zariadenia iba dôveryhodným aplikáciám. \n\nAk tejto aplikácii nepovolíte prístup k všetkým denníkom zariadenia, stále bude mať prístup k vlastným denníkom. Výrobca vášho zariadenia bude mať naďalej prístup k niektorým denníkom alebo informáciám vo vašom zariadení.\n\nViac sa dozviete na g.co/android/devicelogs."
+ "Denníky zariadenia zaznamenávajú, čo sa deje vo vašom zariadení. Aplikácie môžu pomocou týchto denníkov vyhľadávať a riešiť problémy.\n\nNiektoré denníky môžu obsahovať citlivé údaje, preto povoľte prístup k všetkým denníkom zariadenia iba dôveryhodným aplikáciám. \n\nAk tejto aplikácii nepovolíte prístup k všetkým denníkom zariadenia, stále bude mať prístup k vlastným denníkom. Výrobca vášho zariadenia bude mať naďalej prístup k niektorým denníkom alebo informáciám vo vašom zariadení. Ďalšie informácie""Už nezobrazovať""%1$s chce zobrazovať rezy z aplikácie %2$s""Upraviť"
@@ -2062,12 +2055,13 @@
"Režim bez vyrušení sa zmenil""Klepnutím skontrolujete, čo je blokované.""Kontrola nastavení upozornení"
- "V Androide verzie 13 a novších vyžadujú nainštalované aplikácie povolenie, aby mohli odosielať upozornenia. Klepnutím môžete zmeniť toto povolenie pre existujúce aplikácie."
+
+ "Pripomenúť neskôr""Zavrieť""Systém""Nastavenia"
- "Kamera"
+ "Fotoaparát""Mikrofón""sa zobrazuje cez ďalšie aplikácie na obrazovke""Poskytnúť spätnú väzbu"
@@ -2272,7 +2266,7 @@
"Zapnúť v Nastaveniach""Zavrieť""Odblokujte mikrofón zariadenia"
- "Odblokujte kameru zariadenia"
+ "Odblokujte fotoaparát zariadenia""Pre aplikáciu <b>%s</b> a všetky aplikácie a služby""Odblokovať""Ochrana súkromia senzorov"
@@ -2290,6 +2284,5 @@
"Skontrolovať aktívne aplikácie""V zariadení %1$s nemáte prístup ku kamere telefónu""V zariadení %1$s nemáte prístup ku kamere tabletu"
- "K tomuto obsahu nie je počas streamovania prístup. Skúste použiť telefón."
- "Predvolené systémom"
+ "Jazyk systému"
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index b2bb05250964ac3e0967bb6b38a6a1f756480f74..60e41d88f94c152dc54dceb09ad9c66990e55476 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "KB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Brez naslova>""(Ni telefonske številke)"
@@ -28,7 +33,6 @@
"Glasovna pošta""MSISDN1""Težava s povezavo ali neveljavna koda MMI."
- "Funkcija ni podprta.""Operacija je omejena na dovoljene telefonske številke, za katere ne velja zapora odhodnega klica.""Nastavitev preusmerjanja klicev ni mogoče spremeniti v telefonu med gostovanjem v tujem omrežju.""Storitev je omogočena."
@@ -43,8 +47,8 @@
"Vneseni številki PIN se ne ujemata.""Vnesite PIN, ki vsebuje od štiri do osem številk.""Vnesite 8- ali več mestni PUK."
- "Kartica SIM je zaklenjena s kodo PUK. Če jo želite odkleniti, vnesite kodo PUK."
- "Vnesite kodo PUK2 za odblokiranje kartice SIM."
+ "Kartica SIM je zaklenjena s kodo PUK. Če jo želite odkleniti, vnesite kodo PUK."
+ "Če želite odstraniti blokiranje kartice SIM, vnesite PUK2.""Ni uspelo. Omogočite zaklepanje kartice SIM/RUIM."Na voljo imate še %d poskus. Potem se bo kartica SIM zaklenila.
@@ -303,12 +307,12 @@
"dostop do koledarja""SMS""pošiljanje in ogled sporočil SMS"
- "Datoteke"
- "dostop do datotek v napravi"
- "Glasba in zvok"
- "dostop do glasbe in zvoka v napravi"
- "Fotografije in videoposnetki"
- "dostop do fotografij in videoposnetkov v napravi"
+ "Datoteke in dokumenti"
+ "dostop do datotek in dokumentov v napravi"
+ "Glasba in drugi zvočni posnetki"
+ "dostop do zvočnih datotek v napravi"
+ "Fotografije in videoposnetki"
+ "dostop do slik in videodatotek v napravi""Mikrofon""snemanje zvoka""Telesna dejavnost"
@@ -347,7 +351,7 @@
"Aplikaciji omogoča razširjanje ali strnjevanje vrstice stanja.""Prikaz obvestil kot celozaslonskih dejavnosti v zaklenjeni napravi""Aplikaciji dovoli, da prikaže obvestila kot celozaslonske dejavnosti v zaklenjeni napravi."
- "Nameščanje bližnjic"
+ "nameščanje bližnjic""Aplikaciji omogoča dodajanje bližnjic na začetni zaslon brez posredovanja uporabnika.""odstranjevanje bližnjic""Aplikaciji omogoča odstranjevanje bližnjic z začetnega zaslona brez posredovanja uporabnika."
@@ -584,14 +588,13 @@
"Uporaba odklepanja s poverilnico""Odklenite zaslon, če želite nadaljevati.""Prst dobro pridržite na tipalu."
- "Prstnega odtisa ni mogoče prepoznati. Poskusite znova."
+ "Prstnega odtisa ni bilo mogoče obdelati. Poskusite znova.""Očistite tipalo prstnih odtisov in poskusite znova.""Očistite tipalo in poskusite znova.""Prst dobro pridržite na tipalu.""Prepočasen premik prsta. Poskusite znova.""Poskusite z drugim prstnim odtisom.""Presvetlo je."
- "Zaznan je bil pritisk gumba za vklop.""Poskusite popraviti položaj prsta.""Vsakič nekoliko spremenite položaj prsta."
@@ -603,17 +606,16 @@
"Pristnost obraza je preverjena. Pritisnite gumb »Potrdi«.""Strojna oprema za prstne odtise ni na voljo.""Prstnega odtisa ni mogoče nastaviti."
- "Čas za nastavitev prstnega odtisa je potekel. Poskusite znova."
+ "Dosežena časovna omejitev za prstni odtis. Poskusite znova.""Dejanje s prstnim odtisom je bilo preklicano.""Dejanje s prstnim odtisom je preklical uporabnik."
- "Preveč poskusov. Odklenite z načinom za zaklepanje zaslona."
- "Preveč poskusov. Odklenite z zaklepanjem zaslona."
- "Prstnega odtisa ni mogoče obdelati. Poskusite znova."
+ "Preveč poskusov. Poskusite znova pozneje."
+ "Preveč poskusov. Tipalo prstnih odtisov je onemogočeno."
+ "Poskusite znova.""Ni registriranih prstnih odtisov.""Ta naprava nima tipala prstnih odtisov.""Tipalo je začasno onemogočeno.""Tipala prstnih odtisov ni mogoče uporabiti. Obiščite ponudnika popravil."
- "Gumb za vklop je pritisnjen.""Prst %d""Uporaba prstnega odtisa""Uporaba prstnega odtisa ali odklepanja s poverilnico"
@@ -634,33 +636,26 @@
"Odklepanje s prstnim odtisom""Tipala prstnih odtisov ni mogoče uporabiti""Obiščite ponudnika popravil."
- "Modela obraza ni mogoče ustvariti. Poskusite znova."
+ "Točnih podatkov o obrazu ni bilo mogoče zajeti. Poskusite znova.""Presvetlo. Poskusite z blažjo osvetlitvijo."
- "Premalo svetlobe"
- "Telefon nekoliko odmaknite."
- "Bolj približajte telefon."
- "Telefon premaknite višje."
- "Telefon premaknite nižje."
- "Telefon premaknite v svojo levo."
- "Telefon premaknite v svojo desno."
+ "Pretemno. Poskusite z močnejšo osvetlitvijo."
+ "Telefon nekoliko odmaknite."
+ "Bolj približajte telefon."
+ "Telefon pomaknite višje."
+ "Telefon premaknite nižje."
+ "Telefon premaknite v levo."
+ "Telefon premaknite v desno.""Glejte bolj naravnost v napravo."
- "Obraz ni viden. Držite telefon v višini oči."
+ "Obraz nastavite naravnost pred telefon.""Preveč se premikate. Držite telefon pri miru.""Znova registrirajte svoj obraz."
- "Obraza ni mogoče prepoznati. Poskusite znova."
- "Nekoliko spremenite položaj glave."
- "Glejte bolj naravnost v telefon."
- "Glejte bolj naravnost v telefon."
- "Glejte bolj naravnost v telefon."
+ "Obraza ni več mogoče prepoznati. Poskusite znova."
+ "Preveč podobno, spremenite položaj."
+ "Glejte malce bolj naravnost."
+ "Obraz nastavite bolj naravnost."
+ "Glejte malce bolj naravnost.""Umaknite vse, kar vam morda zakriva obraz.""Očistite vrhnji del zaslona, vključno s črno vrstico"
-
-
-
-
- "Modela obraza ni mogoče ustvariti. Poskusite znova."
- "Zaznana so temna očala. Videti se mora cel obraz."
- "Zaznano je, da je obraz prekrit. Videti se mora cel obraz.""Obraza ni mogoče preveriti. Str. opr. ni na voljo."
@@ -926,14 +921,14 @@
"Poskusite znova""Odklenite za dostop do vseh funkcij in podatkov""Presegli ste dovoljeno število poskusov odklepanja z obrazom"
- "Ni kartice SIM."
- "V tabličnem računalniku ni kartice SIM."
- "V napravi Android TV ni kartice SIM."
- "V telefonu ni kartice SIM."
- "Dodajte kartico SIM."
- "Ni kartice SIM ali je ni mogoče prebrati. Dodajte kartico SIM."
- "Kartica SIM je neuporabna."
- "Vaša kartica SIM je bila trajno deaktivirana.\n Za drugo kartico SIM se obrnite na ponudnika brezžičnih storitev."
+ "Ni kartice SIM"
+ "V tabličnem računalniku ni kartice SIM."
+ "V napravi Android TV ni kartice SIM."
+ "V telefonu ni kartice SIM."
+ "Vstavite kartico SIM."
+ "Ni kartice SIM ali je ni mogoče prebrati. Vstavite kartico SIM."
+ "Neuporabna kartica SIM."
+ "Kartica SIM je trajno onemogočena.\n Če želite dobiti drugo kartico SIM, se obrnite na ponudnika brezžičnih storitev.""Prejšnja skladba""Naslednja skladba""Zaustavi"
@@ -943,10 +938,10 @@
"Previj naprej""Le klici v sili""Omrežje je zaklenjeno"
- "Kartica SIM je zaklenjena s kodo PUK."
+ "Kartica SIM je zaklenjena s kodo PUK.""Preberite uporabniški priročnik ali se obrnite na oddelek za skrb za stranke."
- "Kartica SIM je zaklenjena."
- "Odklepanje kartice SIM …"
+ "Kartica SIM je zaklenjena."
+ "Odklepanje kartice SIM ...""Vzorec za odklepanje ste nepravilno narisali %1$d-krat. \n\nPoskusite znova čez %2$d s.""Geslo ste %1$d-krat vnesli napačno. \n\nZnova poskusite čez %2$d s.""PIN ste %1$d-krat vnesli napačno. \n\nZnova poskusite čez %2$d s."
@@ -1248,9 +1243,10 @@
"Pripravljanje aplikacije %1$s.""Zagon aplikacij.""Dokončevanje zagona."
+ "Ali želite nadaljevati nastavitev?""Pritisnili ste gumb za vklop, s čimer običajno izklopite zaslon.\n\nPoskusite se narahlo dotakniti med nastavljanjem prstnega odtisa."
- "Za končanje nastavitve izklopite zaslon."
- "Izklopi"
+ "Izklopi zaslon"
+ "Nadaljuj nastavitev""Želite nadaljevati preverjanje prstnega odtisa?""Pritisnili ste gumb za vklop, s čimer običajno izklopite zaslon.\n\nZa preverjanje prstnega odtisa se poskusite narahlo dotakniti.""Izklopi zaslon"
@@ -1329,10 +1325,10 @@
"To lahko pozneje spremenite v Nastavitve > Aplikacije""Vedno dovoli""Nikoli ne dovoli"
- "Kartica SIM je bila odstranjena"
- "Mobilno omrežje ne bo na voljo, dokler naprave vnovič ne zaženete z veljavno kartico SIM."
+ "Kartica SIM odstranjena"
+ "Mobilno omrežje ne bo na voljo, dokler naprave vnovič ne zaženete z veljavno kartico SIM.""Dokončano"
- "Kartica SIM je bila dodana"
+ "Kartica SIM dodana""Za dostop do mobilnega omrežja znova zaženite napravo.""Vnovičen zagon""Aktivirajte mobilno storitev"
@@ -1403,16 +1399,16 @@
"Dotaknite se, če želite nastaviti""Izberite, če želite nastaviti.""Napravo boste morda morali znova formatirati. Če jo želite izvreči, se dotaknite."
- "Za shranjevanje fotografij, videoposnetkov, glasbe in druge vsebine."
+ "Za prenos fotografij in predstavnosti""Brskajte po predstavnostnih datotekah.""Težava z nosilcem %s""Naprava %s ne deluje""Dotaknite se, da to popravite""Nosilec %s je pokvarjen. Izberite, če ga želite popraviti.""Napravo boste morda morali znova formatirati. Če jo želite izvreči, se dotaknite."
- "Zaznana je bila naprava %s"
+ "Nepodprta naprava za shran. %s""Naprava %s ne deluje"
- "Dotaknite se za nastavitev."
+ "Ta naprava ne podpira tega nosilca %s. Dotaknite se, če želite nastaviti v podprti obliki.""Izberite, da nastavite »%s« v podprti obliki.""Napravo boste morda morali znova formatirati""Shramba %s nepričak. odstranjena"
@@ -1611,7 +1607,7 @@
"Televizor""Telefon""Zvočniki stojala"
- "Zunanja naprava"
+ "HDMI""Slušalke""USB""Sistem"
@@ -1644,7 +1640,7 @@
"Kartica SIM je onemogočena. Če želite nadaljevati, vnesite kodo PUK. Za dodatne informacije se obrnite na operaterja.""Vnesite želeno kodo PIN""Potrdite želeno kodo PIN"
- "Odklepanje kartice SIM …"
+ "Odklepanje kartice SIM ...""Napačna koda PIN.""Vnesite PIN, ki vsebuje od štiri do osem številk.""Koda PUK mora biti 8-mestno število."
@@ -1703,7 +1699,7 @@
"Inverzija barv""Popravljanje barv""Enoročni način"
- "Zelo zatemnjen zaslon"
+ "Zelo zatemnjeno""Tipki za glasnost sta pridržani. Storitev %1$s je vklopljena.""Tipki za glasnost sta pridržani. Storitev %1$s je izklopljena.""Za uporabo storitve %1$s pritisnite obe tipki za glasnost in ju pridržite tri sekunde"
@@ -1925,7 +1921,6 @@
"Nastavitev območja""Vnesite ime jezika""Predlagano"
- "Predlagano""Vsi jeziki""Vse regije""Išči"
@@ -1943,19 +1938,18 @@
"Fotoaparat ni na voljo""Nadaljevanje v telefonu""Mikrofon ni na voljo"
- "Trgovina Play ni na voljo""Nastavitve naprave Android TV niso na voljo""Nastavitve tabličnega računalnika niso na voljo""Nastavitve telefona niso na voljo"
- "V napravi %1$s trenutno ni mogoče dostopati do te vsebine. Poskusite z napravo Android TV."
- "V napravi %1$s trenutno ni mogoče dostopati do te vsebine. Poskusite s tabličnim računalnikom."
- "V napravi %1$s trenutno ni mogoče dostopati do te vsebine. Poskusite s telefonom."
+ "V napravi %1$s ni mogoče dostopati do te vsebine. Poskusite z napravo Android TV."
+ "V napravi %1$s ni mogoče dostopati do te vsebine. Poskusite s tabličnim računalnikom."
+ "V napravi %1$s ni mogoče dostopati do te vsebine. Poskusite s telefonom."
+ "V napravi %1$s trenutno ni mogoče dostopati do te vsebine. Poskusite z napravo Android TV."
+ "V napravi %1$s trenutno ni mogoče dostopati do te vsebine. Poskusite s tabličnim računalnikom."
+ "V napravi %1$s trenutno ni mogoče dostopati do te vsebine. Poskusite s telefonom.""Ta aplikacija zahteva dodatno varnost. Poskusite z napravo Android TV.""Ta aplikacija zahteva dodatno varnost. Poskusite s tabličnim računalnikom.""Ta aplikacija zahteva dodatno varnost. Poskusite s telefonom."
- "V napravi %1$s ni mogoče dostopati do te vsebine. Poskusite z napravo Android TV."
- "V napravi %1$s ni mogoče dostopati do te vsebine. Poskusite s tabličnim računalnikom."
- "V napravi %1$s ni mogoče dostopati do te vsebine. Poskusite s telefonom.""Ta aplikacija je bila zasnovana za starejšo različico Androida in morda ne bo delovala pravilno. Preverite, ali so na voljo posodobitve, ali pa se obrnite na razvijalca.""Preveri, ali je na voljo posodobitev""Imate nova sporočila."
@@ -2048,8 +2042,7 @@
"Ali aplikaciji %s dovolite dostop do vseh dnevnikov naprave?""Dovoli enkratni dostop""Ne dovoli"
- "V dnevnikih naprave se beleži dogajanje v napravi. Aplikacije lahko te dnevnike uporabijo za iskanje in odpravljanje težav.\n\nNekateri dnevniki morda vsebujejo občutljive podatke, zato dostop do vseh dnevnikov naprave omogočite le aplikacijam, ki jim zaupate. \n\nČe tej aplikaciji ne dovolite dostopa do vseh dnevnikov naprave, bo aplikacija kljub temu lahko dostopala do svojih dnevnikov. Proizvajalec naprave bo morda lahko kljub temu dostopal do nekaterih dnevnikov ali podatkov v napravi."
- "V dnevnikih naprave se beleži dogajanje v napravi. Aplikacije lahko te dnevnike uporabijo za iskanje in odpravljanje težav.\n\nNekateri dnevniki morda vsebujejo občutljive podatke, zato dostop do vseh dnevnikov naprave omogočite le aplikacijam, ki jim zaupate. \n\nČe tej aplikaciji ne dovolite dostopa do vseh dnevnikov naprave, bo aplikacija kljub temu lahko dostopala do svojih dnevnikov. Proizvajalec naprave bo morda lahko kljub temu dostopal do nekaterih dnevnikov ali podatkov v napravi.\n\nPreberite več o tem na g.co/android/devicelogs."
+ "V dnevnikih naprave se beleži dogajanje v napravi. Aplikacije lahko te dnevnike uporabijo za iskanje in odpravljanje težav.\n\nNekateri dnevniki morda vsebujejo občutljive podatke, zato dostop do vseh dnevnikov naprave omogočite le aplikacijam, ki jim zaupate. \n\nČe tej aplikaciji ne dovolite dostopa do vseh dnevnikov naprave, bo aplikacija kljub temu lahko dostopala do svojih dnevnikov. Proizvajalec naprave bo morda lahko kljub temu dostopal do nekaterih dnevnikov ali podatkov v napravi. Več o tem""Ne prikaži več""Aplikacija %1$s želi prikazati izreze aplikacije %2$s""Uredi"
@@ -2062,7 +2055,8 @@
"Način »ne moti« je spremenjen""Dotaknite se, da preverite, kaj je blokirano.""Preglejte nastavitve obvestil"
- "V Androidu 13 in novejših različicah bodo aplikacije, ki jih namestite, za pošiljanje obvestil potrebovale vaše dovoljenje. Dotaknite se, če želite spremeniti to dovoljenje za obstoječe aplikacije."
+
+ "Opomni me pozneje""Opusti""Sistem"
@@ -2290,6 +2284,5 @@
"Preverite aktivne aplikacije""Ni mogoče dostopati do fotoaparata telefona prek naprave %1$s.""Ni mogoče dostopati do fotoaparata tabličnega računalnika prek naprave %1$s."
- "Do te vsebine ni mogoče dostopati med pretočnim predvajanjem. Poskusite s telefonom."
- "Sistemsko privzeto"
+ "Sistemski jezik"
diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml
index d769ed7c452f1ce4ddbc50d5f6a1b181319d4762..348f1c9a74b4e5f751e8dd639b10fd0fe7cebea2 100644
--- a/core/res/res/values-sq/strings.xml
+++ b/core/res/res/values-sq/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "terabajt"
+ "petabajt""%1$s%2$s""<Pa titull>""(Nuk ka numër telefoni)"
@@ -28,7 +33,6 @@
"Posta zanore""MSISDN1""Problem në lidhje ose kod i pavlefshëm MMI-je."
- "Veçoria nuk mbështetet.""Veprimi është i kufizuar vetëm kundrejt numrave me telefonim të përzgjedhur""Cilësimet e transferimit të telefonatave nuk mund të ndryshohen nga telefoni yt kur je në roaming.""Shërbimi u aktivizua."
@@ -43,8 +47,8 @@
"PIN-et që shkrove nuk përputhen.""Shkruaj një PIN nga 4 deri në 8 numra.""Shkruaj një PUK me 8 numra ose më të gjatë."
- "Karta jote SIM është e kyçur me PUK. Shkruaj kodin PUK për ta shkyçur."
- "Shkruaj kodin PUK2 për të zhbllokuar kartën SIM."
+ "Karta jote SIM nuk është e kyçur me PUK. Shkruaj kodin PUK për ta shkyçur."
+ "Shkruaj kodin PUK2 për të shkyçur kartën SIM.""Pa sukses! Aktivizo kyçjen e SIM/RUIM."Të kanë mbetur edhe %d tentativa para se karta SIM të kyçet.
@@ -301,12 +305,12 @@
"qasje te kalendari yt""SMS""dërgo dhe shiko mesazhet SMS"
- "Skedarët"
- "qasje te skedarët në pajisjen tënde"
- "Muzika dhe audioja"
- "të qaset te muzika dhe audioja në pajisjen tënde"
- "Fotografitë dhe videot"
- "të qaset te fotografitë dhe videot në pajisjen tënde"
+ "Skedarët dhe dokumentet"
+ "përfito qasje te skedarët dhe dokumentet në pajisjen tënde"
+ "Muzikë dhe audio të tjera"
+ "të ketë qasje te skedarët audio në pajisjen tënde"
+ "Fotografitë dhe videot"
+ "të ketë qasje te skedarët e imazheve dhe videove në pajisjen tënde""Mikrofoni""regjistro audio""Aktiviteti fizik"
@@ -323,20 +327,20 @@
"qasu tek të dhënat e sensorëve rreth shenjave të tua jetësore""Njoftimet""shfaq njoftimet"
- "Të nxjerrë përmbajtjen e dritares"
+ "Nxjerrë përmbajtjen e dritares""Inspekton përmbajtjen e dritares me të cilën po ndërvepron."
- "Të aktivizojë veçorinë \"Eksploro me prekje\""
+ "Aktivizojë funksionin \"Eksploro me prekje\"""Artikujt e trokitur do të lexohen me zë të lartë dhe ekrani mund të eksplorohet duke përdorur gjestet."
- "Të vëzhgojë tekstin që shkruan"
+ "Vëzhgojë tekstin që shkruan""Përfshin të dhëna personale, si numrat e kartave të kreditit dhe fjalëkalimet."
- "Të kontrollojë zmadhimin e ekranit"
- "Kontrollon nivelin dhe pozicionimin e zmadhimit të ekranit."
+ "Kontrollo zmadhimin e ekranit"
+ "Kontrollo nivelin dhe pozicionimin e zmadhimit të ekranit.""Kryen gjeste""Mund të trokasë, rrëshqasë, bashkojë gishtat dhe kryejë gjeste të tjera.""Gjestet e gjurmës së gishtit""Mund të regjistrojë gjestet e kryera në sensorin e gjurmës së gishtit të pajisjes.""Nxirr një pamje të ekranit"
- "Mund të nxjerrë një pamje e ekranit."
+ "Mund të nxirret një pamje e ekranit.""çaktivizo ose modifiko shiritin e statusit""Lejon aplikacionin të çaktivizojë shiritin e statusit dhe të heqë ikonat e sistemit.""të bëhet shiriti i statusit"
@@ -582,14 +586,13 @@
"Përdor kyçjen e ekranit""Fut kyçjen e ekranit për të vazhduar""Shtyp fort te sensori"
- "Nuk mund ta dallojë gjurmën e gishtit. Provo përsëri."
+ "Gjurma e gishtit nuk mund të përpunohej. Provo përsëri.""Pastro sensorin e gjurmës së gishtit dhe provo sërish""Pastro sensorin dhe provo sërish""Shtyp fort te sensori""Gishti lëvizi shumë ngadalë. Provo përsëri.""Provo një gjurmë gishti tjetër""Me shumë ndriçim"
- "U zbulua shtypja e \"Energjisë\"""Provo ta rregullosh""Ndrysho pak pozicionin e gishtit çdo herë"
@@ -601,17 +604,16 @@
"Fytyra u vërtetua, shtyp \"Konfirmo\"""Hardueri i gjurmës së gishtit nuk mundësohet.""Nuk mund të konfigurohet gjurma e gishtit"
- "Konfigurimi i gjurmës së gishtit skadoi. Provo përsëri."
+ "Koha e veprimit për gjurmën e gishtit skadoi. Provo përsëri.""Operacioni i gjurmës së gishtit u anulua.""Veprimi i gjurmës së gishtit u anulua nga përdoruesi."
- "Shumë përpjekje. Përdor më mirë kyçjen e ekranit."
- "Shumë përpjekje. Përdor më mirë kyçjen e ekranit."
- "Gjurma e gishtit nuk mund të përpunohet. Provo përsëri."
+ "Keni bërë shumë tentativa. Provo përsëri më vonë."
+ "Shumë përpjekje. Sensori i gjurmës së gishtit u çaktivizua."
+ "Provo përsëri.""Nuk ka asnjë gjurmë gishti të regjistruar.""Kjo pajisje nuk ka sensor të gjurmës së gishtit.""Sensori është çaktivizuar përkohësisht.""Sensori i gjurmës së gishtit nuk mund të përdoret. Vizito një ofrues të shërbimit të riparimit"
- "Butoni i energjisë u shtyp""Gishti %d""Përdor gjurmën e gishtit""Përdor gjurmën e gishtit ose kyçjen e ekranit"
@@ -632,33 +634,26 @@
"Shkyçja me gjurmën e gishtit""Sensori i gjurmës së gishtit nuk mund të përdoret""Vizito një ofrues të shërbimit të riparimit."
- "Modeli i fytyrës nuk krijohet. Provo sërish."
+ "S\'mund të regjistroheshin të dhëna të sakta të fytyrës. Provo përsëri.""Me shumë ndriçim. Provo një ndriçim më të butë."
- "Nuk ka dritë të mjaftueshme"
- "Lëvize telefonin më larg"
- "Lëvize telefonin më afër"
- "Lëvize telefonin më lart"
- "Lëvize telefonin më poshtë"
- "Lëvize telefonin në të majtën tënde"
- "Lëvize telefonin në të djathtën tënde"
+ "Shumë i errët. Provo një ndriçim më të fortë."
+ "Lëvize telefonin më larg."
+ "Afroje telefonin."
+ "Ngrije telefonin më lart."
+ "Ule telefonin më poshtë."
+ "Lëvize telefonin majtas."
+ "Lëvize telefonin djathtas""Shiko më drejt në pajisjen tënde."
- "Fytyra jote nuk mund të shihet. Mbaje telefonin në nivelin e syve."
+ "Pozicionoje fytyrën tënde direkt përpara telefonit.""Ka shumë lëvizje. Mbaje telefonin të palëvizur.""Regjistroje përsëri fytyrën tënde."
- "Fytyra nuk mund të njihet. Provo sërish."
- "Ndrysho pak pozicionin e kokës"
- "Shiko më drejtpërdrejt telefonin"
- "Shiko më drejtpërdrejt telefonin"
- "Shiko më drejtpërdrejt telefonin"
+ "Fytyra nuk mund të njihet më. Provo përsëri."
+ "Tepër e ngjashme, ndrysho pozën"
+ "Ktheje kokën pak më pak."
+ "Anoje kokën më pak."
+ "Ktheje kokën pak më pak.""Hiq gjithçka që fsheh fytyrën tënde.""Pastro kreun e ekranit, duke përfshirë shiritin e zi"
-
-
-
-
- "Modeli i fytyrës nuk krijohet. Provo sërish."
- "U zbuluan syze të errëta. Fytyra jote duhet të jetë plotësisht e dukshme."
- "U zbulua mbulim i fytyrës. Fytyra jote duhet të jetë plotësisht e dukshme.""Fytyra s\'mund të verifikohet. Hardueri nuk ofrohet."
@@ -924,14 +919,14 @@
"Provo sërish""Shkyçe për të gjitha funksionet dhe të dhënat""Përpjektet maksimale të \"Shkyçjes me fytyrë\" u tejkaluan"
- "Nuk ka kartë SIM"
- "Nuk ka kartë SIM në tablet."
- "Nuk ka kartë SIM në pajisjen tënde Android TV."
- "Nuk ka kartë SIM në telefon."
- "Shto një kartë SIM."
- "Karta SIM mungon ose është e palexueshme. Shto një kartë SIM."
- "Kartë SIM e papërdorshme."
- "Karta jote SIM është çaktivizuar përgjithmonë.\n Kontakto me ofruesin e shërbimit me valë për një kartë tjetër SIM."
+ "Nuk ka kartë SIM"
+ "Nuk ka kartë SIM në tablet."
+ "Nuk ka kartë SIM në pajisjen tënde Android TV."
+ "Nuk ka kartë SIM në telefon."
+ "Fut një kartë SIM."
+ "Karta SIM mungon ose është e palexueshme. Fut një kartë të re SIM."
+ "Karta SIM është e papërdorshme."
+ "Karta jote SIM është çaktivizuar përgjithnjë.\n Kontakto ofruesin e shërbimit valor për një tjetër kartë SIM.""Kënga e mëparshme""Kënga tjetër""Pauzë"
@@ -941,10 +936,10 @@
"Përparo me shpejtësi""Vetëm telefonata urgjente""Rrjeti është i kyçur"
- "Karta SIM është e kyçur me PUK."
+ "Karta SIM është e kyçur me PUK.""Shiko \"Manualin e përdorimit\" ose kontakto \"Kujdesin ndaj klientit\"."
- "Karta SIM është e kyçur."
- "Karta SIM po shkyçet…"
+ "Karta SIM është e kyçur."
+ "Po shkyç kartën SIM…""Ke tentuar %1$d herë pa sukses për të vizatuar motivin tënd.\n\nProvo sërish për %2$d sekonda.""E ke shkruar %1$d herë gabim fjalëkalimin. \n\nProvo sërish për %2$d sekonda.""E ke shkruar %1$d herë gabimisht PIN-in tënd.\n\nProvo sërish për %2$d sekonda."
@@ -1246,9 +1241,10 @@
"Po përgatit %1$s.""Aplikacionet e fillimit.""Po përfundon nisjen."
+ "Të vazhdohet konfigurimi?""Shtype butonin e energjisë — zakonisht, kjo e fik ekranin.\n\nProvo të trokasësh lehtë ndërkohë që konfiguron gjurmën e gishtit."
- "Përfundo konfigurimin; fik ekranin"
- "Çaktivizo"
+ "Fik ekranin"
+ "Vazhdo konfigurimin""Të vazhdohet verifikimi i gjurmës?""Shtype butonin e energjisë — zakonisht, kjo e fik ekranin.\n\nProvo të trokasësh lehtë për të verifikuar gjurmën e gishtit.""Fik ekranin"
@@ -1306,7 +1302,7 @@
"të dhënat celulare""Wi-Fi"
- "Bluetooth-i"
+ "Bluetooth""Eternet""VPN"
@@ -1327,10 +1323,10 @@
"Këtë mund ta ndryshosh më vonë te \"Cilësimet\" > \"Aplikacionet\"""Lejo gjithmonë""Mos lejo asnjëherë"
- "Karta SIM u hoq"
- "Rrjeti celular nuk do të ofrohet deri sa ta rinisësh me një kartë të vlefshme SIM."
+ "Karta SIM u hoq"
+ "Rrjeti celular nuk do të mundësohet derisa ta rinisësh pajisjen me një kartë të vlefshme SIM në të.""U krye"
- "Karta SIM u shtua"
+ "Karta SIM u shtua""Rinise pajisjen për të pasur qasje në rrjetin celular.""Rifillo""Aktivizo shërbimin celular"
@@ -1401,16 +1397,16 @@
"Trokit për ta konfiguruar""Zgjidhe për ta konfiguruar""Mund të jetë nevoja ta riformatosh pajisjen. Trokit për ta nxjerrë."
- "Për ruajtjen e fotografive, videove, muzikës etj."
+ "Për transferimin e fotografive dhe skedarëve të tjerë""Shfleto skedarët e medias""Problem me %s""%s nuk punon""Trokit për ta rregulluar""%s është dëmtuar. Zgjidh për ta rregulluar.""Mund të jetë nevoja ta riformatosh pajisjen. Trokit për ta nxjerrë."
- "U zbulua %s"
+ "%s nuk mbështetet""%s nuk punon"
- "Trokit për të konfiguruar"
+ "Kjo pajisje nuk e mbështet këtë %s. Trokit për ta konfiguruar në një format të mbështetur.""Zgjidh të konfigurosh %s në një format të mbështetur.""Mund të jetë nevoja ta riformatosh pajisjen""%s u hoq papritur"
@@ -1460,7 +1456,7 @@
"Shko""Kërko""Dërgo"
- "Para"
+ "Përpara""U krye""I mëparshëm""Ekzekuto"
@@ -1501,7 +1497,7 @@
"Aplikacioni i drejtimit të makinës është në ekzekutim""Trokit për të dalë nga aplikacioni i drejtimit të makinës.""Prapa"
- "Para"
+ "Përpara""Kapërce""Asnjë përputhje""Gjej brenda faqes"
@@ -1609,7 +1605,7 @@
"Televizori""Telefon""Altoparlantët e stacionit"
- "Pajisje e jashtme"
+ "HDMI""Kufjet""USB""Sistemi"
@@ -1642,7 +1638,7 @@
"Karta SIM tani është e çaktivizuar. Fut kodin PUK për të vazhduar. Kontakto operatorin për detaje.""Fut kodin e dëshiruar të PIN-it""Konfirmo kodin e dëshiruar PIN"
- "Karta SIM po shkyçet…"
+ "Po shkyç kartën SIM…""Kodi PIN është i pasaktë.""Shkruaj një PIN me 4 deri në 8 numra.""Kodi PUK duhet të jetë me 8 numra."
@@ -1923,7 +1919,6 @@
"Preferenca e rajonit""Shkruaj emrin e gjuhës""Sugjeruar"
- "Të sugjeruara""Të gjitha gjuhët""Të gjitha rajonet""Kërko"
@@ -1941,19 +1936,18 @@
"Kamera nuk ofrohet""Vazhdo në telefon""Mikrofoni nuk ofrohet"
- "\"Dyqani i Play\" nuk ofrohet""Cilësimet e Android TV nuk ofrohen""Cilësimet e tabletit nuk ofrohen""Cilësimet e telefonit nuk ofrohen"
- "Qasja është e pamundur në %1$s për momentin. Provoje në pajisjen Android TV më mirë."
- "Qasja është e pamundur në %1$s për momentin. Provoje në tablet më mirë."
- "Qasja është e pamundur në %1$s për momentin. Provoje në telefon më mirë."
+ "Qasja është e pamundur në %1$s. Provoje në pajisjen Android TV më mirë."
+ "Qasja është e pamundur në %1$s. Provoje në tablet më mirë."
+ "Qasja është e pamundur në %1$s. Provoje në telefon më mirë."
+ "Qasja është e pamundur në %1$s për momentin. Provoje në pajisjen Android TV më mirë."
+ "Qasja është e pamundur në %1$s për momentin. Provoje në tablet më mirë."
+ "Qasja është e pamundur në %1$s për momentin. Provoje në telefon më mirë.""Ky aplikacion po kërkon siguri shtesë. Provoje në pajisjen Android TV më mirë.""Ky aplikacion po kërkon siguri shtesë. Provoje në tablet më mirë.""Ky aplikacion po kërkon siguri shtesë. Provoje në telefon më mirë."
- "Qasja është e pamundur në %1$s. Provoje në pajisjen Android TV më mirë."
- "Qasja është e pamundur në %1$s. Provoje në tablet më mirë."
- "Qasja është e pamundur në %1$s. Provoje në telefon më mirë.""Ky aplikacion është ndërtuar për një version më të vjetër të Android dhe mund të mos funksionojë mirë. Provo të kontrollosh për përditësime ose kontakto me zhvilluesin.""Kontrollo për përditësim""Ke mesazhe të reja"
@@ -2046,8 +2040,7 @@
"Të lejohet që %s të ketë qasje te të gjitha evidencat e pajisjes?""Lejo qasjen vetëm për një herë""Mos lejo"
- "Evidencat e pajisjes regjistrojnë çfarë ndodh në pajisjen tënde. Aplikacionet mund t\'i përdorin këto evidenca për të gjetur dhe rregulluar problemet.\n\nDisa evidenca mund të përmbajnë informacione delikate, ndaj lejo vetëm aplikacionet që u beson të kenë qasje te të gjitha evidencat e pajisjes. \n\nNëse nuk e lejon këtë aplikacion që të ketë qasje te të gjitha evidencat e pajisjes, ai mund të vazhdojë të ketë qasje tek evidencat e tij. Prodhuesi i pajisjes sate mund të jetë ende në gjendje që të ketë qasje te disa evidenca ose informacione në pajisjen tënde."
- "Evidencat e pajisjes regjistrojnë çfarë ndodh në pajisjen tënde. Aplikacionet mund t\'i përdorin këto evidenca për të gjetur dhe rregulluar problemet.\n\nDisa evidenca mund të përmbajnë informacione delikate, ndaj lejo vetëm aplikacionet që u beson të kenë qasje te të gjitha evidencat e pajisjes. \n\nNëse nuk e lejon këtë aplikacion që të ketë qasje te të gjitha evidencat e pajisjes, ai mund të vazhdojë të ketë qasje tek evidencat e tij. Prodhuesi i pajisjes sate mund të jetë ende në gjendje që të ketë qasje te disa evidenca ose informacione në pajisjen tënde.\n\nMëso më shumë në g.co/android/devicelogs."
+ "Evidencat e pajisjes regjistrojnë çfarë ndodh në pajisjen tënde. Aplikacionet mund t\'i përdorin këto evidenca për të gjetur dhe rregulluar problemet.\n\nDisa evidenca mund të përmbajnë informacione delikate, ndaj lejo vetëm aplikacionet që u beson të kenë qasje te të gjitha evidencat e pajisjes. \n\nNëse nuk e lejon këtë aplikacion që të ketë qasje tek të gjitha evidencat e pajisjes, ai mund të vazhdojë të ketë qasje tek evidencat e tij. Prodhuesi i pajisjes sate mund të jetë ende në gjendje që të ketë qasje te disa evidenca ose informacione në pajisjen tënde. Mëso më shumë""Mos e shfaq më""%1$s dëshiron të shfaqë pjesë të %2$s""Modifiko"
@@ -2060,7 +2053,8 @@
"\"Mos shqetëso\" ka ndryshuar""Trokit për të shënuar atë që është bllokuar""Rishiko cilësimet e njoftimeve"
- "Nga Android 13, aplikacionet që instalon kanë nevojë për lejen tënde për të dërguar njoftime. Trokit për ta ndryshuar këtë leje për aplikacionet ekzistuese."
+
+ "Më kujto më vonë""Hiq""Sistemi"
@@ -2288,6 +2282,5 @@
"Kontrollo aplikacionet aktive""Nuk mund të qasesh në kamerën e telefonit tënd nga %1$s""Nuk mund të qasesh në kamerën e tabletit tënd nga %1$s"
- "Nuk mund të kesh qasje në të gjatë transmetimit. Provoje në telefon më mirë."
- "Parazgjedhja e sistemit"
+ "Gjuha e sistemit"
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 80cd0c2bdfd1a242e666d989f40a19ea7e1972b2..ca94da59288ab64cfe3f01928093cee7905980b5 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Без имена>""(Нема броја телефона)"
@@ -28,7 +33,6 @@
"Гласовна пошта""MSISDN1""Проблеми са везом или неважећи MMI кôд."
- "Функција није подржана.""Рад је ограничен само на бројеве фиксног бирања.""Не можете да промените подешавања преусмеравања позива са телефона док сте у ромингу.""Услуга је омогућена."
@@ -43,8 +47,8 @@
"PIN кодови које сте унели се не подударају.""Откуцајте PIN који има од 4 до 8 бројева.""Унесите PUK који се састоји од 8 цифара или више."
- "SIM је закључан PUK-ом. Унесите PUK да бисте га откључали."
- "Унесите PUK2 да бисте одблокирали SIM."
+ "SIM картица је закључана PUK кодом. Унесите PUK кôд да бисте је откључали."
+ "Унесите PUK2 да бисте одблокирали SIM картицу.""Није успело. Омогућите закључавање SIM/RUIM картице."Имате још %d покушај пре него што се SIM картица закључа.
@@ -302,12 +306,12 @@
"приступи календару""SMS""шаље и прегледа SMS поруке"
- "Фајлови"
- "приступ фајловима на уређају"
- "Музика и звук"
- "приступ музици и аудио садржају на уређају"
- "Слике и видео снимци"
- "приступ сликама и видео снимцима на уређају"
+ "Фајлови и документи"
+ "приступање фајловима и документима на уређају"
+ "Музика и други аудио садржај"
+ "приступ аудио фајловима на уређају"
+ "Слике и видео снимци"
+ "приступ сликама и видео фајловима на уређају""Микрофон""снима звук""Физичке активности"
@@ -347,7 +351,7 @@
"приказује обавештења као активности преко целог екрана на закључаном уређају""Омогућава апликацији да на закључаном уређају приказује обавештења као активности преко целог екрана.""Инсталирање пречица"
- "да додају пречице на почетни екран без интервенције корисника."
+ "Омогућава апликацији да додаје пречице на почетни екран без интервенције корисника.""деинсталирање пречица""Омогућава апликацији да уклања пречице са почетног екрана без интервенције корисника.""преусмеравање одлазних позива"
@@ -583,16 +587,15 @@
"Користите закључавање екрана""Употребите закључавање екрана да бисте наставили""Јако притисните сензор"
- "Препознавање отиска прста није успело. Пробајте поново."
+ "Није успела обрада отиска прста. Пробајте поново.""Обришите сензор за отисак прста и пробајте поново""Обришите сензор и пробајте поново""Јако притисните сензор""Превише споро сте померили прст. Пробајте поново.""Пробајте са другим отиском прста""Превише је светло"
- "Откривен је притисак дугмета за укључивање""Пробајте да прилагодите"
- "Сваки пут помало промените положај прста"
+ "Сваки пут лагано промените положај прста""Отисак прста није препознат"
@@ -602,17 +605,16 @@
"Лице је потврђено. Притисните Потврди""Хардвер за отиске прстију није доступан.""Подешавање отиска прста није успело"
- "Време за подешавање отиска прста је истекло. Пробајте поново."
+ "Временско ограничење за отисак прста је истекло. Пробајте поново.""Радња са отиском прста је отказана.""Корисник је отказао радњу са отиском прста."
- "Превише покушаја. Користите закључавање екрана уместо тога."
- "Превише покушаја. Користите закључавање екрана уместо тога."
- "Обрађивање отиска прста није успело. Пробајте поново."
+ "Превише покушаја. Пробајте поново касније."
+ "Превише покушаја. Сензор за отисак прста је онемогућен."
+ "Пробајте поново.""Није регистрован ниједан отисак прста.""Овај уређај нема сензор за отисак прста.""Сензор је привремено онемогућен.""Не можете да користите сензор за отисак прста. Посетите добављача за поправке"
- "Притиснуто је дугме за укључивање""Прст %d""Користите отисак прста""Користите отисак прста или закључавање екрана"
@@ -633,33 +635,26 @@
"Откључавање отиском прста""Не можете да користите сензор за отисак прста""Посетите добављача за поправке."
- "Прављење модела лица није успело. Пробајте поново."
+ "Снимање лица није успело. Пробајте поново.""Превише је светло. Пробајте са слабијим осветљењем."
- "Нема довољно светла"
- "Удаљите телефон"
- "Приближите телефон"
- "Померите телефон нагоре"
- "Померите телефон надоле"
- "Померите телефон улево"
- "Померите телефон удесно"
+ "Претамно је. Пробајте са јачим осветљењем."
+ "Удаљите телефон."
+ "Приближите телефон."
+ "Померите телефон нагоре."
+ "Померите телефон надоле."
+ "Померите телефон улево."
+ "Померите телефон удесно.""Гледајте право у уређај."
- "Не види се лице. Држите телефон у висини очију."
+ "Поставите лице директно испред телефона""Много се померате. Држите телефон мирно.""Поново региструјте лице."
- "Лице није препознато. Пробајте поново."
- "Мало померите главу"
- "Гледајте право у телефон"
- "Гледајте право у телефон"
- "Гледајте право у телефон"
+ "Више не може да се препозна лице. Пробајте поново."
+ "Превише је слично, промените позу."
+ "Мало мање померите главу."
+ "Мало мање нагните главу."
+ "Мало мање померите главу.""Уклоните све што вам заклања лице.""Очистите горњи део екрана, укључујући црну траку"
-
-
-
-
- "Прављење модела лица није успело. Пробајте поново."
- "Откривене су тамне наочари. Лице мора да буде потпуно видљиво."
- "Откривено је прекривање лица. Лице мора да буде потпуно видљиво.""Провера лица није успела. Хардвер није доступан."
@@ -925,14 +920,14 @@
"Пробајте поново""Откључај за све функције и податке""Премашен је највећи дозвољени број покушаја Откључавања лицем"
- "Нема SIM-а"
- "Нема SIM-а у таблету."
- "Нема SIM-а у Android TV уређају."
- "Нема SIM-а у телефону."
- "Додајте SIM."
- "SIM недостаје или не може да се прочита. Додајте SIM."
- "Неупотребљив SIM."
- "SIM је трајно деактивиран.\n Обратите се добављачу услуге бежичне телефоније да бисте добили други SIM."
+ "Нема SIM картице"
+ "У таблету нема SIM картице."
+ "Нема SIM картице у Android TV уређају."
+ "У телефон није уметнута SIM картица."
+ "Уметните SIM картицу."
+ "SIM недостаје или не може да се прочита. Уметните SIM картицу."
+ "SIM картица је неупотребљива."
+ "SIM картица је трајно онемогућена.\n Обратите се добављачу услуге бежичне мреже да бисте добили другу SIM картицу.""Претходна песма""Следећа песма""Пауза"
@@ -942,10 +937,10 @@
"Премотај унапред""Само хитни позиви""Мрежа је закључана"
- "SIM је закључан PUK-ом."
+ "SIM картица је закључана PUK кодом.""Погледајте Кориснички водич или контактирајте Корисничку подршку."
- "SIM је закључан."
- "Откључава се SIM…"
+ "SIM картица је закључана."
+ "Откључавање SIM картице…""%1$d пута сте неправилно нацртали шаблон за откључавање. \n\nПробајте поново за %2$d секунде/и.""%1$d пута сте погрешно унели лозинку. \n\nПробајте поново за %2$d секунде/и.""%1$d пута сте погрешно унели PIN. \n\nПробајте поново за %2$d секунде/и."
@@ -1247,9 +1242,10 @@
"Припрема се %1$s.""Покретање апликација.""Завршавање покретања."
+ "Желите ли да наставите са подешавањем?""Притиснули сте дугме за укључивање – тиме обично искључујете екран.\n\nПробајте лагано да додирнете док подешавате отисак прста."
- "Завршите подешавање искључивањем екрана"
- "Искључи"
+ "Искључи екран"
+ "Настави подешавање""Настављате верификацију отиска прста?""Притиснули сте дугме за укључивање – тиме обично искључујете екран.\n\nПробајте лагано да додирнете да бисте верификовали отисак прста.""Искључи екран"
@@ -1328,10 +1324,10 @@
"Ово можете да промените касније у Подешавања > Апликације""Увек дозволи""Никада не дозволи"
- "SIM је уклоњен"
- "Мобилна мрежа неће бити доступна док не рестартујете уз важећи SIM."
+ "SIM картица је уклоњена"
+ "Мобилна мрежа неће бити доступна док не покренете систем поново уз уметање важеће SIM картице.""Готово"
- "SIM је додат"
+ "SIM картица је додата""Рестартујте уређај да бисте могли да приступите мобилној мрежи.""Рестартуј""Активирајте мобилну услугу"
@@ -1360,8 +1356,8 @@
"Повезани уређај се пуни. Додирните за још опција.""Откривена је аналогна додатна опрема за аудио садржај""Прикључени уређај није компатибилан са овим телефоном. Додирните да бисте сазнали више."
- "Повезано је отклањање грешака са USB-а"
- "Додирните да бисте га искључили"
+ "Отклањање грешака са USB-а је омогућено"
+ "Додирните да бисте искључили отклањање грешака са USB-а""Изаберите да бисте онемогућили отклањања грешака са USB-а.""Бежично отклањање грешака је повезано""Додирните да бисте искључили бежично отклањање грешака"
@@ -1402,16 +1398,16 @@
"Додирните да бисте подесили""Изаберите да бисте подесили""Можда морате да реформатирате уређај. Додирните да бисте избацили."
- "За чување слика, видео снимака, музике и другог садржаја"
+ "За пренос слика и медија""Прегледајте медијске фајлове""Проблем са: %s""%s не ради""Додирните да бисте исправили""Медиј %s је оштећен. Изаберите да га поправите.""Можда морате да реформатирате уређај. Додирните да бисте избацили."
- "Откривенo: %s"
+ "Уређај %s није подржан""%s не ради"
- "Додирните да бисте подесили."
+ "Овај уређај не подржава овај уређај %s. Додирните да бисте подесили подржани формат.""Изаберите да бисте подесили уређај %s у подржаном формату.""Можда морате да реформатирате уређај""Уређај %s је неочекивано уклоњен"
@@ -1610,7 +1606,7 @@
"ТВ""Телефон""Звучници базне станице"
- "Спољни уређај"
+ "HDMI""Слушалице""USB""Систем"
@@ -1643,7 +1639,7 @@
"SIM картица је сада онемогућена. Унесите PUK кôд да бисте наставили. За детаље контактирајте оператера.""Унесите жељени PIN кôд""Потврдите жељени PIN кôд"
- "Откључава се SIM…"
+ "Откључавање SIM картице…""PIN кôд је нетачан.""Унесите PIN који има од 4 до 8 бројева.""PUK кôд треба да има 8 бројева."
@@ -1924,7 +1920,6 @@
"Подешавање региона""Унесите назив језика""Предложени"
- "Предложено""Сви језици""Сви региони""Претражи"
@@ -1942,19 +1937,18 @@
"Камера није доступна""Наставите на телефону""Микрофон је недоступан"
- "Play продавница није доступна""Подешавања Android TV-а су недоступна""Подешавања таблета су недоступна""Подешавања телефона су недоступна"
- "Овој апликацији тренутно не може да се приступи са уређаја %1$s. Пробајте на Android TV уређају."
- "Овој апликацији тренутно не може да се приступи са уређаја %1$s. Пробајте на таблету."
- "Овој апликацији тренутно не може да се приступи са уређаја %1$s. Пробајте на телефону."
+ "Овој апликацији не може да се приступи са уређаја %1$s. Пробајте на Android TV уређају."
+ "Овој апликацији не може да се приступи са уређаја %1$s. Пробајте на таблету."
+ "Овој апликацији не може да се приступи са уређаја %1$s. Пробајте на телефону."
+ "Овој апликацији тренутно не може да се приступи са уређаја %1$s. Пробајте на Android TV уређају."
+ "Овој апликацији тренутно не може да се приступи са уређаја %1$s. Пробајте на таблету."
+ "Овој апликацији тренутно не може да се приступи са уређаја %1$s. Пробајте на телефону.""Ова апликација захтева додатну безбедност. Пробајте на Android TV уређају.""Ова апликација захтева додатну безбедност. Пробајте на таблету.""Ова апликација захтева додатну безбедност. Пробајте на телефону."
- "Овој апликацији не може да се приступи са уређаја %1$s. Пробајте на Android TV уређају."
- "Овој апликацији не може да се приступи са уређаја %1$s. Пробајте на таблету."
- "Овој апликацији не може да се приступи са уређаја %1$s. Пробајте на телефону.""Ова апликација је направљена за старију верзију Android-а, па можда неће радити исправно. Потражите ажурирања или контактирајте програмера.""Потражи ажурирање""Имате нове поруке"
@@ -2047,8 +2041,7 @@
"Желите да дозволите апликацији %s да приступа свим евиденцијама уређаја?""Дозволи једнократан приступ""Не дозволи"
- "Евиденције уређаја региструју шта се дешава на уређају. Апликације могу да користе те евиденције да би пронашле и решиле проблеме.\n\nНеке евиденције могу да садрже осетљиве информације, па приступ свим евиденцијама уређаја треба да дозвољавате само апликацијама у које имате поверења. \n\nАко не дозволите овој апликацији да приступа свим евиденцијама уређаја, она и даље може да приступа сопственим евиденцијама. Произвођач уређаја ће можда и даље моћи да приступа неким евиденцијама или информацијама на уређају."
- "Евиденције уређаја региструју шта се дешава на уређају. Апликације могу да користе те евиденције да би пронашле и решиле проблеме.\n\nНеке евиденције могу да садрже осетљиве информације, па приступ свим евиденцијама уређаја треба да дозвољавате само апликацијама у које имате поверења. \n\nАко не дозволите овој апликацији да приступа свим евиденцијама уређаја, она и даље може да приступа сопственим евиденцијама. Произвођач уређаја ће можда и даље моћи да приступа неким евиденцијама или информацијама на уређају.\n\nСазнајте више на g.co/android/devicelogs."
+ "Евиденције уређаја региструју шта се дешава на уређају. Апликације могу да користе те евиденције да би пронашле и решиле проблеме.\n\nНеке евиденције могу да садрже осетљиве информације, па приступ свим евиденцијама уређаја треба да дозвољавате само апликацијама у које имате поверења. \n\nАко не дозволите овој апликацији да приступа свим евиденцијама уређаја, она и даље може да приступа сопственим евиденцијама. Произвођач уређаја ће можда и даље моћи да приступа неким евиденцијама или информацијама на уређају. Сазнајте више""Не приказуј поново""Апликација %1$s жели да приказује исечке из апликације %2$s""Измени"
@@ -2061,7 +2054,8 @@
"Режим Не узнемиравај је промењен""Додирните да бисте проверили шта је блокирано.""Прегледајте подешавања обавештења"
- "Од Android-а 13 апликације које инсталирате морају да имају дозволу за слање обавештења. Додирните да бисте променили ову дозволу за постојеће апликације."
+
+ "Подсети ме касније""Одбаци""Систем"
@@ -2289,6 +2283,5 @@
"Проверите активне апликације""Не може да се приступи камери телефона са %1$s уређаја""Не може да се приступи камери таблета са %1$s уређаја"
- "Овом не можете да приступате током стримовања. Пробајте на телефону."
- "Подразумевани системски"
+ "Језик система"
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index c1c352281d7ccdc84b7c4f6a69b180e0a2dce0b3..3dad8dfd4772ee6aaea25db98850d4124009a3fc 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Okänd>""(Inget telefonnummer)"
@@ -28,7 +33,6 @@
"Röstbrevlåda""MSISDN1""Anslutningsproblem eller ogiltig MMI-kod."
- "Funktionen stöds inte.""Endast fasta nummer kan användas.""Det går inte att ändra inställningarna för vidarebefordran av samtal medan mobilen är i roaming-läge.""Tjänsten har aktiverats."
@@ -43,8 +47,8 @@
"PIN-koderna som du angav matchar inte.""Ange en PIN-kod som är 4 till 8 siffror.""Ange en PUK-kod med minst 8 siffror."
- "SIM-kortet har låsts med PUK-kod. Ange PUK-koden för att låsa upp det."
- "Ange PUK2-koden för att återaktivera SIM-kortet."
+ "Ditt SIM-kort är PUK-låst. Ange PUK-koden om du vill låsa upp det."
+ "Ange PUK2-koden för att häva spärren av SIM-kortet.""Försöket misslyckades. Aktivera SIM-/RUIM-lås."Du har %d försök kvar innan SIM-kortet låses.
@@ -238,7 +242,7 @@
"Telefonalternativ""Skärmlås""Stäng av"
- "Av/på"
+ "Strömbrytare""Starta om""Nödsituation""Felrapport"
@@ -301,12 +305,12 @@
"få tillgång till din kalender""Sms""skicka och visa sms"
- "Filer"
- "få åtkomst till filer på enheten"
- "Musik och ljud"
- "få åtkomst till musik och ljud på enheten"
- "Foton och videor"
- "få åtkomst till foton och videor på enheten"
+ "Filer och dokument"
+ "visa filer och dokument på enheten"
+ "Musik och övrigt ljud"
+ "komma åt ljudfiler på din enhet"
+ "Foton och videor"
+ "komma åt bilder och videofiler på din enhet""Mikrofon""spela in ljud""Fysisk aktivitet"
@@ -336,7 +340,7 @@
"Fingeravtrycksrörelser""Kan registrera rörelser som utförs med hjälp av enhetens fingeravtryckssensor.""Ta skärmbild"
- "Kan ta en skärmbild av skärmen."
+ "Du kan ta en skärmbild av skärmen.""inaktivera eller ändra statusfält""Tillåter att appen inaktiverar statusfältet eller lägger till och tar bort systemikoner.""visas i statusfältet"
@@ -345,7 +349,7 @@
"Tillåter att appen expanderar eller komprimerar statusfältet.""visa aviseringar som aktiviteter i helskärm på en låst enhet""Tillåter att appen visar aviseringar som aktiviteter i helskärm på en låst enhet"
- "Installera genvägar"
+ "installera genvägar""Tillåter att en app lägger till genvägar på startskärmen utan åtgärd från användaren.""avinstallera genvägar""Tillåter att appen tar bort genvägar på startskärmen utan åtgärd från användaren."
@@ -582,14 +586,13 @@
"Använd skärmlåset""Fortsätt med hjälp av ditt skärmlås""Tryck på sensorn med ett stadigt tryck"
- "Fingeravtrycket kändes inte igen. Försök igen."
+ "Det gick inte att bearbeta fingeravtrycket. Försök igen.""Rengör fingeravtryckssensorn och försök igen""Rengör sensorn och försök igen"
- "Tryck hårt på sensorn"
+ "Tryck på sensorn med ett stadigt tryck""Du rörde fingret för långsamt. Försök igen.""Testa ett annat fingeravtryck""Det är för ljust"
- "Tryckning registrerades""Testa att justera fingeravtrycket""Flytta fingret lite varje gång"
@@ -601,17 +604,16 @@
"Ansiktet har autentiserats. Tryck på Bekräfta""Det finns ingen maskinvara för fingeravtryck.""Det gick inte att konfigurera fingeravtryck"
- "Fingeravtryckskonfigurering nådde tidsgränsen. Försök igen."
+ "Tidsgränsen för fingeravtrycket har uppnåtts. Försök igen.""Fingeravtrycksåtgärden avbröts.""Fingeravtrycksåtgärden avbröts av användaren."
- "För många försök. Använd låsskärmen i stället."
- "För många försök. Använd låsskärmen i stället."
- "Det gick inte att bearbeta fingeravtrycket. Försök igen."
+ "Du har gjort för många försök. Försök igen senare."
+ "Du har försökt för många gånger. Fingeravtryckssensorn har inaktiverats."
+ "Försök igen.""Inga fingeravtryck har registrerats.""Enheten har ingen fingeravtryckssensor.""Sensorn har tillfälligt inaktiverats.""Det går inte att använda fingeravtryckssensorn. Besök ett reparationsställe"
- "Av/på-knappen nedtryckt""Finger %d""Använd ditt fingeravtryck""Använd ditt fingeravtryck eller skärmlåset"
@@ -632,33 +634,26 @@
"Fingeravtryckslås""Det går inte att använda fingeravtryckssensorn""Besök ett reparationsställe."
- "Ansiktsmodellen kunde inte skapas. Försök igen."
+ "Det gick inte att fånga ansiktsdata. Försök igen.""Det är för ljust. Testa lägre belysning."
- "För lite ljus"
- "Flytta telefonen längre bort"
- "För telefonen närmare"
- "Höj telefonen"
- "Sänk telefonen"
- "Flytta telefonen åt vänster"
- "Flytta telefonen åt höger"
+ "Det är för mörkt. Testa med bättre belysning."
+ "Flytta mobilen längre bort."
+ "För mobilen närmare."
+ "Höj mobilen."
+ "Sänk mobilen."
+ "Flytta mobilen åt vänster."
+ "Flytta mobilen åt höger.""Titta rakt på enheten."
- "Ansiktet syns inte. Håll telefonen i ögonhöjd."
+ "Ha ansiktet direkt framför telefonen.""För mycket rörelse. Håll mobilen stilla.""Registrera ansiktet på nytt."
- "Ansiktet kändes inte igen. Försök igen."
- "Rör lite på huvudet"
- "Titta rakt på telefonen"
- "Titta rakt på telefonen"
- "Titta rakt på telefonen"
+ "Ansiktet kan inte längre kännas igen. Försök igen."
+ "För likt. Ändra ansiktsposition."
+ "Vrid mindre på huvudet."
+ "Vinkla huvudet mindre."
+ "Vrid mindre på huvudet.""Ta bort allt som täcker ansiktet.""Rengör skärmens överkant, inklusive det svarta fältet"
-
-
-
-
- "Ansiktsmodellen kunde inte skapas. Försök igen."
- "Mörka glasögon identifierades. Hela ansiktet måste synas."
- "Något som täcker ansiktet identifierades. Hela ansiktet måste synas.""Ansiktsverifiering går ej. Otillgänglig maskinvara."
@@ -924,14 +919,14 @@
"Försök igen""Lås upp för alla funktioner och all data""Du har försökt låsa upp med ansiktslås för många gånger"
- "Inget SIM-kort"
- "Inget SIM-kort i surfplattan."
- "Inget SIM-kort i Android TV-enheten."
- "Inget SIM-kort i telefonen."
- "Lägg till ett SIM-kort."
- "SIM-kort saknas eller går inte att läsa. Lägg till ett SIM-kort."
- "SIM-kortet går inte att använda."
- "Ditt SIM-kort har inaktiverats permanent.\n Kontakta din operatör och be om ett nytt SIM-kort."
+ "Inget SIM-kort"
+ "Inget SIM-kort i surfplattan."
+ "Inget SIM-kort i Android TV-enheten."
+ "Inget SIM-kort i telefonen."
+ "Sätt i ett SIM-kort."
+ "SIM-kort saknas eller kan inte läsas. Sätt i ett SIM-kort."
+ "Oanvändbart SIM-kort."
+ "SIM-kortet har inaktiverats permanent.\n Beställ ett nytt SIM-kort från din operatör.""Föregående spår""Nästa spår""Pausa"
@@ -941,10 +936,10 @@
"Snabbspola framåt""Endast nödsamtal""Nätverk låst"
- "SIM-kortet har låsts med PUK-kod."
+ "SIM-kortet är PUK-låst.""Se användarhandboken eller kontakta kundtjänst."
- "SIM-kortet är låst."
- "SIM-kortet låses upp …"
+ "SIM-kortet är låst."
+ "Låser upp SIM-kort…""Du har ritat ditt grafiska lösenord fel %1$d gånger. \n\nFörsök igen om %2$d sekunder.""Du har angett fel lösenord %1$d gånger. \n\nFörsök igen om %2$d sekunder.""Du har angett fel lösenord %1$d gånger. \n\nFörsök igen om %2$d sekunder."
@@ -1168,7 +1163,7 @@
"valt""inte valt""pågår"
- "Slutför åtgärd med"
+ "Slutför åtgärd genom att använda""Slutför åtgärden med %1$s""Slutför åtgärd""Öppna med"
@@ -1246,11 +1241,12 @@
"%1$s förbereds.""Appar startas.""Uppgraderingen är klar."
- "Du tryckte på av/på-knappen, vilket vanligtvis stänger av skärmen.\n\nTesta att trycka lätt när du konfigurerar fingeravtrycket."
- "Stäng av skärmen för att avbryta"
- "Stäng av"
+ "Vill du fortsätta med konfigureringen?"
+ "Du tryckte på strömbrytaren, vilket vanligtvis stänger av skärmen.\n\nTesta att trycka lätt när du konfigurerar fingeravtrycket."
+ "Stäng av skärmen"
+ "Fortsätt konfigurera""Vill du verifiera ditt fingeravtryck?"
- "Du tryckte på av/på-knappen, vilket vanligtvis stänger av skärmen.\n\nTesta att trycka lätt för att verifiera ditt fingeravtryck."
+ "Du tryckte på strömbrytaren, vilket vanligtvis stänger av skärmen.\n\nTesta att trycka lätt för att verifiera ditt fingeravtryck.""Stäng av skärmen""Fortsätt""%1$s körs"
@@ -1327,10 +1323,10 @@
"Du kan ändra detta senare i Inställningar > Appar""Tillåt alltid""Tillåt aldrig"
- "SIM-kort har tagits bort"
- "Mobilnätverket är inte tillgängligt förrän du startar om med ett giltigt SIM-kort."
+ "SIM-kortet togs bort"
+ "Det mobila nätverket kommer inte att vara tillgängligt förrän du startar om med ett giltigt SIM-kort.""Klar"
- "SIM-kort har lagts till"
+ "SIM-kort lades till""Du måste starta om enheten för att ansluta till det mobila nätverket.""Starta om""Aktivera mobiltjänst"
@@ -1401,16 +1397,16 @@
"Tryck för att konfigurera""Välj för att konfigurera""Du måste eventuellt formatera om enheten. Tryck för att mata ut."
- "För lagring av foton, videor, musik och mer"
+ "För överföring av foton och media""Bläddra bland mediefiler""Problem med %s""%s fungerar inte""Tryck och åtgärda""%s har skadats. Välj för att åtgärda.""Du måste eventuellt formatera om enheten. Tryck för att mata ut."
- "%s identifierades"
+ "%s stöds inte""%s fungerar inte"
- "Tryck för att konfigurera."
+ "Enheten har inte stöd för %s. Tryck här om du vill konfigurera i ett format som stöds.""Välj för att konfigurera %s i ett format som stöds.""Du måste eventuellt formatera om enheten""%s togs bort oväntat"
@@ -1481,7 +1477,7 @@
"Tillgänglighet""Bakgrund""Ändra bakgrund"
- "Aviseringslyssnare"
+ "Meddelandelyssnare""Lyssnare för VR""Leverantör""Rankningstjänst för aviseringar"
@@ -1609,7 +1605,7 @@
"TV""Mobil""Dockningsstationens högtalare"
- "Extern enhet"
+ "HDMI""Hörlurar""USB""System"
@@ -1642,7 +1638,7 @@
"SIM-kortet är nu inaktiverat. Ange PUK-koden för att fortsätta. Kontakta operatören om du vill ha mer information.""Ange önskad PIN-kod""Bekräfta önskad PIN-kod"
- "SIM-kortet låses upp …"
+ "Låser upp SIM-kort …""Fel PIN-kod.""Ange en PIN-kod med 4 till 8 siffror.""PUK-koden ska vara åtta siffror."
@@ -1923,7 +1919,6 @@
"Regionsinställningar""Ange språk""Förslag"
- "Förslag""Alla språk""Alla regioner""Sök"
@@ -1941,19 +1936,18 @@
"Kameran är inte tillgänglig""Fortsätt på telefonen""Mikrofonen är inte tillgänglig"
- "Play Butik är inte tillgängligt""Inställningarna för Android TV är inte tillgängliga""Surfplattans inställningar är inte tillgängliga""Telefonens inställningar är inte tillgängliga"
- "Det går inte att streama detta till %1$s för närvarande. Testa med Android TV-enheten i stället."
- "Det går inte att streama detta till %1$s för närvarande. Testa med surfplattan i stället."
- "Det går inte att streama detta till %1$s för närvarande. Testa med telefonen i stället."
+ "Det går inte att streama detta till %1$s. Testa med Android TV-enheten i stället."
+ "Det går inte att streama detta till %1$s. Testa med surfplattan i stället."
+ "Det går inte att streama detta till %1$s. Testa med telefonen i stället."
+ "Det går inte att streama detta till %1$s för närvarande. Testa med Android TV-enheten i stället."
+ "Det går inte att streama detta till %1$s för närvarande. Testa med surfplattan i stället."
+ "Det går inte att streama detta till %1$s för närvarande. Testa med telefonen i stället.""Appen begär ytterligare säkerhet. Testa med Android TV-enheten i stället.""Appen begär ytterligare säkerhet. Testa med surfplattan i stället.""Appen begär ytterligare säkerhet. Testa med telefonen i stället."
- "Det går inte att streama detta till %1$s. Testa med Android TV-enheten i stället."
- "Det går inte att streama detta till %1$s. Testa med surfplattan i stället."
- "Det går inte att streama detta till %1$s. Testa med telefonen i stället.""Appen har utvecklats för en äldre version av Android och kanske inte fungerar som den ska. Testa att söka efter uppdateringar eller kontakta utvecklaren.""Sök efter uppdateringar""Du har nya meddelanden"
@@ -2046,8 +2040,7 @@
"Vill du tillåta att %s får åtkomst till alla enhetsloggar?""Tillåt engångsåtkomst""Tillåt inte"
- "I enhetsloggar registreras vad som händer på enheten. Appar kan använda dessa loggar för att hitta och åtgärda problem.\n\nVissa loggar kan innehålla känsliga uppgifter, så du ska bara bevilja appar du litar på åtkomst till alla enhetsloggar. \n\nEn app har åtkomst till sina egna loggar även om du inte ger den åtkomst till alla enhetsloggar. Enhetens tillverkare kan fortfarande ha åtkomst till vissa loggar eller viss information på enheten."
- "Enhetsloggar registrerar vad som händer på enheten. Appar kan använda dessa loggar för att hitta och åtgärda problem.\n\nVissa loggar kan innehålla känsliga uppgifter, så du ska bara bevilja appar du litar på åtkomst till alla enhetsloggar. \n\nEn app har åtkomst till sina egna loggar även om du inte ger den åtkomst till alla enhetsloggar. Enhetens tillverkare kan fortfarande ha åtkomst till vissa loggar eller viss information på enheten.\n\nLäs mer på g.co/android/devicelogs."
+ "I enhetsloggar registreras vad som händer på enheten. Appar kan använda dessa loggar för att hitta och åtgärda problem.\n\nVissa loggar kan innehålla känsliga uppgifter, så du ska bara bevilja appar du litar på åtkomst till alla enhetsloggar. \n\nEn app har åtkomst till sina egna loggar även om du inte ger den åtkomst till alla enhetsloggar. Enhetens tillverkare kan fortfarande ha åtkomst till vissa loggar eller viss information på enheten. Läs mer""Visa inte igen""%1$s vill kunna visa bitar av %2$s""Redigera"
@@ -2060,7 +2053,8 @@
"Stör ej har ändrats""Tryck om du vill se vad som blockeras.""Granska aviseringsinställningarna"
- "I Android 13 behöver appar som du installerar behörighet att skicka aviseringar. Tryck om du vill ändra denna behörighet för befintliga appar."
+
+ "Påminn mig senare""Stäng""System"
@@ -2272,7 +2266,7 @@
"Återaktivera enhetens mikrofon""Återaktivera enhetens kamera""För <b>%s</b> och alla appar och tjänster"
- "Avblockera"
+ "Återaktivera""Sensorintegritet""Appikon""Appens varumärkesbild"
@@ -2288,6 +2282,5 @@
"Kontrollera aktiva appar""Telefonens kamera kan inte användas från %1$s""Surfplattans kamera kan inte användas från %1$s"
- "Det går inte att komma åt innehållet när du streamar. Testa med telefonen i stället."
- "Systemets standardinställning"
+ "Systemets språkinställning"
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index 2403740871add3a74494249093218d5b9451a92e..9b197ffecdb70693909f73e823c8765151d6d2b8 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%2$s%1$s""<Haina jina>""(Hakuna nambari ya simu)"
@@ -28,7 +33,6 @@
"Ujumbe wa sauti""MSISDN1""Tatizo la muunganisho au msimbo batili MMI."
- "Kipengele hakitumiki.""Ni matumizi yanayohusisha nambari za simu zilizobainishwa pekee yatakayowezekana.""Haiwezi kubadilisha mipangilio ya kusambaza simu kutoka kwenye simu yako ukiwa unatumia mitandao mingine.""Huduma iliwezeshwa"
@@ -43,8 +47,8 @@
"PIN ulizoingiza haziambatani.""Chapisha PIN ambayo ina nambari 4 hadi 8.""Andika PUK ambayo ina urefu wa nambari 8 au zaidi."
- "SIM yako imefungwa kwa PUK. Andika msimbo wa PUK ili kuifungua."
- "Andika PUK2 ili uondoe kizuizi kwenye SIM."
+ "Kadi yako ya SIM imefungwa na PUK. Anika msimbo wa PUK ili kuifungua."
+ "Chapisha PUK2 ili kufungua SIM kadi.""Imeshindwa, washa ufungaji wa SIM/RUIM."Umebakisha majaribio %d kabla SIM haijafungwa.
@@ -301,12 +305,12 @@
"ifikie kalenda yako""SMS""itume na iangalie SMS"
- "Faili"
- "fikia faili kwenye kifaa chako"
- "Muziki na sauti"
- "fikia muziki na sauti kwenye kifaa chako"
- "Picha na video"
- "fikia picha na video kwenye kifaa chako"
+ "Faili na hati"
+ "fikia faili na hati kwenye kifaa chako"
+ "Muziki na sauti nyingine"
+ "fikia faili za sauti kwenye kifaa chako"
+ "Picha na video"
+ "fikia faili za picha na video kwenye kifaa chako""Maikrofoni""irekodi sauti""Mazoezi ya mwili"
@@ -319,7 +323,7 @@
"kusoma na kuandika kumbukumbu za simu""Simu""piga na udhibiti simu"
- "Vitambuzi vya shughuli za mwili"
+ "Vitambua shughuli za mwili""fikia data ya kitambuzi kuhusu alama zako muhimu""Arifa""kuonyesha arifa"
@@ -582,14 +586,13 @@
"Tumia mbinu ya kufunga skrini""Weka mbinu yako ya kufunga skrini ili uendelee""Bonyeza kwa uthabiti kwenye kitambuzi"
- "Imeshindwa kutambua alama ya kidole. Jaribu tena."
+ "Imeshindwa kuchakata alama ya kidole. Tafadhali jaribu tena.""Safisha kitambua alama ya kidole kisha ujaribu tena""Safisha kitambuzi kisha ujaribu tena""Bonyeza kwa nguvu kwenye kitambuzi""Kidole kilisogezwa polepole zaidi. Tafadhali jaribu tena.""Jaribu alama nyingine ya kidole""Inang\'aa mno"
- "Kubonyeza kitufe cha kuwasha/kuzima kumetambuliwa""Jaribu kurekebisha""Badilisha mkao wa kidole chako kiasi kila wakati"
@@ -601,17 +604,16 @@
"Uso umethibitishwa, tafadhali bonyeza thibitisha""Maunzi ya alama ya kidole hayapatikani.""Imeshindwa kuweka mipangilio ya alama ya kidole"
- "Muda wa kuweka alama ya kidole umeisha. Jaribu tena."
+ "Muda wa kuweka alama ya kidole umekwisha. Jaribu tena.""Mchakato wa alama ya kidole umeghairiwa.""Mtumiaji ameghairi uthibitishaji wa alama ya kidole."
- "Umejaribu mara nyingi mno. Badala yake, tumia mbinu ya kufunga skrini."
- "Umejaribu mara nyingi mno. Badala yake, tumia mbinu ya kufunga skrini."
- "Imeshindwa kutambua alama ya kidole. Jaribu tena."
+ "Majaribio mengi mno. Jaribu tena baadaye."
+ "Majaribio mengi mno. Kitambua alama ya kidole kimezimwa."
+ "Jaribu tena.""Hakuna alama za vidole zilizojumuishwa.""Kifaa hiki hakina kitambua alama ya kidole.""Kitambuzi kimezimwa kwa muda.""Imeshindwa kutumia kitambua alama ya kidole. Tembelea mtoa huduma za urekebishaji"
- "Kitufe cha kuwasha au kuzima kimebonyezwa""Kidole cha %d""Tumia alama ya kidole""Tumia alama ya kidole au mbinu ya kufunga skrini"
@@ -632,33 +634,26 @@
"Kufungua kwa Alama ya Kidole""Imeshindwa kutumia kitambua alama ya kidole""Tembelea mtoa huduma za urekebishaji."
- "Imeshindwa kuunda muundo wa uso wako. Jaribu tena."
+ "Imeshindwa kunasa data sahihi ya uso. Jaribu tena.""Inang\'aa mno. Jaribu mwangaza hafifu"
- "Hakuna mwangaza wa kutosha"
- "Sogeza simu mbali kiasi"
- "Sogeza simu karibu"
- "Sogeza simu juu zaidi"
- "Sogeza simu chini"
- "Sogeza simu upande wako wa kushoto"
- "Sogeza simu upande wako wa kulia"
+ "Hakuna mwangaza wa kutosha. Jaribu kuongeza mwangaza."
+ "Sogeza simu mbali kiasi."
+ "Sogeza simu karibu."
+ "Sogeza simu juu zaidi."
+ "Sogeza simu chini."
+ "Sogeza simu upande wa kushoto."
+ "Sogeza simu upande wa kulia.""Tafadhali angalia kifaa chako moja kwa moja."
- "Imeshindwa kuona uso wako. Shikilia simu yako ikilingana na macho."
+ "Weka uso wako moja kwa moja mbele ya simu.""Inatikisika sana. Ishike simu iwe thabiti.""Tafadhali sajili uso wako tena."
- "Imeshindwa kutambua uso. Jaribu tena."
- "Badilisha nafasi ya kichwa chako kidogo"
- "Angalia simu yako moja kwa moja"
- "Angalia simu yako moja kwa moja"
- "Angalia simu yako moja kwa moja"
+ "Haiwezi tena kutambua uso. Jaribu tena."
+ "Inafanana sana, tafadhali badilisha mkao wako."
+ "Geuza kichwa chako kidogo."
+ "Inamisha kichwa chako kiasi."
+ "Geuza kichwa chako kidogo.""Ondoa kitu chochote kinachoficha uso wako.""Safisha sehemu ya juu ya skrini yako, ikiwa ni pamoja na upau mweusi"
-
-
-
-
- "Imeshindwa kuunda muundo wa uso wako. Jaribu tena."
- "Vioo vyeusi vimetambuliwa. Ni lazima uso wako wote uonekane."
- "Kifuniko cha uso kimetambuliwa. Ni lazima uso wako wote uonekane.""Imeshindwa kuthibitisha uso. Maunzi hayapatikani."
@@ -924,14 +919,14 @@
"Jaribu tena""Fungua kifaa ili upate data na vipengele vyote""Umepitisha idadi ya juu ya mara ambazo unaweza kujaribu kufungua kwa uso"
- "Hakuna SIM"
- "Hakuna SIM kwenye kompyuta kibao."
- "Hakuna SIM kwenye kifaa chako cha Android TV."
- "Hakuna SIM kwenye simu."
- "Weka SIM."
- "SIM haipo au haiwezi kusomwa. Weka SIM."
- "SIM haiwezi kutumika."
- "SIM kadi yako imefungwa kabisa.\n wasiliana na mtoa huduma wako wa pasi waya ili upate SIM nyingine."
+ "Hakuna SIM kadi"
+ "Hakuna SIM kadi katika kompyuta ndogo."
+ "Hakuna SIM kadi kwenye kifaa chako cha Android TV."
+ "Hakuna SIM kadi kwenye simu."
+ "Weka SIM kadi."
+ "SIM kadi haipatikani au haisomeki. Tafadhali weka SIM kadi."
+ "SIM kadi isiyotumika."
+ "SIM kadi yako imelemezwa kabisa.\n Wasiliana na mtoa huduma wako wa pasi waya ili upate SIM kadi nyingine.""Wimbo uliotangulia""Wimbo unaofuata""Sitisha"
@@ -941,10 +936,10 @@
"Peleka mbele kwa kasi""Simu za dharura pekee""Mtandao umefungwa"
- "SIM imefungwa kwa PUK."
+ "SIM kadi imefungwa kwa PUK.""Angalia Mwongozo wa Mtumiaji au wasiliana na Huduma ya Wateja."
- "SIM imefungwa."
- "Inafungua SIM…"
+ "SIM kadi imefungwa."
+ "Inafungua SIM kadi...""Umekosea katika kuchora ruwaza yako ya kufungua mara %1$d. \n\n Jaribu tena kwa sekunde %2$d.""Umekosea mara %1$d katika kuingiza nenosiri lako. \n\n Jaribu tena katika sekunde %2$d.""Umekosea katika kuingiza PIN yako mara %1$d. \n\n Jaribu tena katika sekunde %2$d."
@@ -1246,9 +1241,10 @@
"Inaandaa %1$s.""Programu zinaanza""Inamaliza kuwasha."
+ "Ungependa kuendelea kuweka mipangilio?""Umebonyeza kitufe cha kuwasha/kuzima — kwa kawaida, hali hii huzima skrini.\n\nJaribu kugusa taratibu unapoweka mipangilio ya alama ya kidole chako."
- "Kusitisha kuweka alama ya kidole, zima skrini"
- "Zima"
+ "Zima skrini"
+ "Endelea kuweka mipangilio""Utaendelea kuthibitisha alama ya kidole chako?""Umebonyeza kitufe cha kuwasha/kuzima — kwa kawaida, hali hii huzima skrini.\n\nJaribu kugusa taratibu ili uthibitishe alama ya kidole chako.""Zima skrini"
@@ -1327,10 +1323,10 @@
"Unaweza kubadilisha hii baadaye kwenye Mipangilio > Programu""Ruhusu Kila Wakati""Usiruhusu Kamwe"
- "Umeondoa SIM"
- "Mtandao wa simu hautapatikana hadi utakapozima kisha uwashe tena kifaa kikiwa na SIM sahihi."
+ "SIM kadi imeondolewa"
+ "mtandao wa simu hutapatika hadi uanzishe upya na SIM kadi halali iliyoingizwa.""Nimemaliza"
- "Umeweka SIM"
+ "SIM kadi imeongezwa""Anzisha upya kifaa chako ili kufikia mtandao wa simu.""Washa upya""Washa huduma ya simu za mkononi"
@@ -1401,16 +1397,16 @@
"Gusa ili uweke mipangilio""Chagua ili uweke mipangilio""Huenda ukahitaji kubadilisha mipangilio ya kifaa. Gusa ili uondoe."
- "Kwa ajili ya kuhifadhi picha, video, muziki na zaidi"
+ "Kwa ajili ya kuhamisha picha na maudhui""Vinjari faili za maudhui""Tatizo limetokea kwenye %s""%s haifanyi kazi""Gusa ili urekebishe""%s imeharibika. Ichague ili uirekebishe.""Huenda ukahitaji kubadilisha mipangilio ya kifaa. Gusa ili uondoe."
- "Imetambua %s"
+ "%s isiyotumika""%s haifanyi kazi"
- "Gusa ili uweke mipangilio ."
+ "Kifaa hiki hakitumii %s. Gusa ili uweke mipangilio ya muundo unaoweza kutumika.""Chagua ili uweke mipangilio ya %s katika muundo unaoweza kutumika.""Huenda ukahitaji kubadilisha mipangilio ya kifaa""%s imeondolewa bila kutarajiwa"
@@ -1564,7 +1560,7 @@
"%1$s, %2$s, %3$s""Hifadhi ya ndani ya pamoja""Kadi ya SD"
- "Kadi ya SD ya %s"
+ "Kadi ya SD iliyotengenezwa na %s""Hifadhi ya USB""Hifadhi ya USB iliyotengenezwa na %s""Hifadhi ya USB"
@@ -1609,7 +1605,7 @@
"Runinga""Simu""Vipasa sauti vya kituo"
- "Kifaa cha Nje"
+ "HDMI""Vipokeasauti""USB""Mfumo"
@@ -1642,7 +1638,7 @@
"SIM sasa imelemazwa. Ingiza msimbo wa PUK ili kuendelea. Wasiliana na mtoa huduma kwa maelezo.""Weka nambari yako ya PIN""Thibitisha nambari ya PIN uliyoweka"
- "Inafungua SIM…"
+ "Inafungua SIM kadi...""Nambari ya PIN uliyoweka si sahihi.""Charaza PIN iliyo na tarakimu kati ya 4 na 8.""Msimbo wa PUK lazima uwe na tarakimu 8."
@@ -1685,9 +1681,9 @@
"Ungependa kuruhusu %1$s idhibiti kifaa chako kikamilifu?""Udhibiti kamili unafaa kwa programu zinazokusaidia kwa mahitaji ya ufikivu, ila si kwa programu nyingi.""Kuangalia na kudhibiti skrini"
- "Inaweza kusoma maudhui yote kwenye skrini na kuonyesha maudhui kwenye programu zingine."
+ "Kinaweza kusoma maudhui yote kwenye skrini na kuonyesha maudhui kwenye programu zingine.""Kuangalia na kutekeleza vitendo"
- "Inaweza kufuatilia mawasiliano yako na programu au kitambuzi cha maunzi na kuwasiliana na programu zingine kwa niaba yako."
+ "Kinaweza kufuatilia mawasiliano yako na programu au kitambuzi cha maunzi na kuwasiliana na programu zingine kwa niaba yako.""Ruhusu""Kataa""Gusa kipengele ili uanze kukitumia:"
@@ -1923,7 +1919,6 @@
"Mapendeleo ya eneo""Weka jina la lugha""Zinazopendekezwa"
- "Yanayopendekezwa""Lugha zote""Maeneo yote""Tafuta"
@@ -1941,19 +1936,18 @@
"Kamera haipatikani""Endelea kwenye simu""Maikrofoni haipatikani"
- "Huduma ya Duka la Google Play haipatikani""Mipangilio ya Android TV haipatikani""Mipangilio ya kompyuta kibao haipatikani""Mipangilio ya simu haipatikani"
- "Programu hii haiwezi kufikiwa kwenye %1$s kwa muda huu. Badala yake jaribu kwenye kifaa chako cha Android TV."
- "Programu hii haiwezi kufikiwa kwenye %1$s kwa muda huu. Badala yake jaribu kwenye kompyuta kibao yako."
- "Programu hii haiwezi kufikiwa kwenye %1$s kwa muda huu. Badala yake jaribu kwenye simu yako."
+ "Huwezi kufikia programu hii kwenye %1$s chako. Badala yake jaribu kwenye kifaa chako cha Android TV."
+ "Huwezi kufikia programu hii kwenye %1$s chako. Badala yake jaribu kwenye kompyuta yako kibao."
+ "Huwezi kufikia programu hii kwenye %1$s chako. Badala yake jaribu kwenye simu yako."
+ "Huwezi kufikia programu hii kwenye %1$s chako kwa muda huu. Badala yake jaribu kwenye kifaa chako cha Android TV."
+ "Huwezi kufikia programu hii kwenye %1$s chako kwa muda huu. Badala yake jaribu kwenye kompyuta yako kibao."
+ "Huwezi kufikia programu hii kwenye %1$s chako kwa muda huu. Badala yake jaribu kwenye simu yako.""Programu hii inaomba usalama wa ziada. Badala yake jaribu kwenye kifaa chako cha Android TV.""Programu hii inaomba usalama wa ziada. Badala yake jaribu kwenye kompyuta yako kibao.""Programu hii inaomba usalama wa ziada. Badala yake jaribu kwenye simu yako."
- "Huwezi kufikia mipangilio hii kwenye %1$s yako. Badala yake jaribu kwenye kifaa chako cha Android TV."
- "Huwezi kufikia mipangilio hii kwenye %1$s yako. Badala yake jaribu kwenye kompyuta yako kibao."
- "Huwezi kufikia mipangilio hii kwenye %1$s yako. Badala yake jaribu kwenye simu yako.""Programu hii iliundwa kwa ajili ya toleo la zamani la Android na huenda isifanye kazi vizuri. Jaribu kuangalia masasisho au uwasiliane na msanidi programu.""Angalia masasisho""Una ujumbe mpya"
@@ -2046,8 +2040,7 @@
"Ungependa kuruhusu %s ifikie kumbukumbu zote za kifaa?""Ruhusu ufikiaji wa mara moja""Usiruhusu"
- "Kumbukumbu za kifaa zinarekodi kinachofanyika kwenye kifaa chako. Programu zinaweza kutumia kumbukumbu hizi ili kutambua na kurekebisha hitilafu.\n\nBaadhi ya kumbukumbu huenda zikawa na taarifa nyeti, hivyo ruhusu tu programu unazoziamini kufikia kumbukumbu zote za kifaa. \n\nIwapo hutaruhusu programu hii ifikie kumbukumbu zote za kifaa, bado inaweza kufikia kumbukumbu zake yenyewe. Huenda mtengenezaji wa kifaa chako bado akaweza kufikia baadhi ya kumbukumbu au taarifa zilizopo kwenye kifaa chako."
- "Kumbukumbu za kifaa hurekodi kinachofanyika kwenye kifaa chako. Programu zinaweza kutumia kumbukumbu hizi ili kutambua na kurekebisha hitilafu.\n\nBaadhi ya kumbukumbu huenda zikawa na taarifa nyeti, hivyo ruhusu tu programu unazoziamini kufikia kumbukumbu zote za kifaa. \n\nIwapo hutaruhusu programu hii ifikie kumbukumbu zote za kifaa, bado inaweza kufikia kumbukumbu zake yenyewe. Huenda mtengenezaji wa kifaa chako bado akaweza kufikia baadhi ya kumbukumbu au taarifa zilizopo kwenye kifaa chako.\n\nPata maelezo zaidi kwenye g.co/android/devicelogs."
+ "Kumbukumbu za kifaa hurekodi kinachofanyika kwenye kifaa chako. Programu zinaweza kutumia kumbukumbu hizi ili kutambua na kurekebisha hitilafu.\n\nBaadhi ya kumbukumbu huenda zikawa na taarifa nyeti, hivyo ruhusu tu programu unazoziamini kufikia kumbukumbu zote za kifaa. \n\nIwapo hutaruhusu programu hii ifikie kumbukumbu zote za kifaa, bado inaweza kufikia kumbukumbu zake yenyewe. Mtengenezaji wa kifaa chako bado anaweza kufikia baadhi ya kumbukumbu au taarifa zilizopo kwenye kifaa chako. Pata maelezo zaidi""Usionyeshe tena""%1$s inataka kuonyesha vipengee %2$s""Badilisha"
@@ -2060,7 +2053,8 @@
"Kipengele cha Usinisumbue kimebadilishwa""Gusa ili uangalie kipengee ambacho kimezuiwa.""Kagua mipangilio ya arifa"
- "Kuanzia Android toleo la 13, programu unazosakinisha zitahitaji ruhusa yako ili zitume arifa. Gusa ili ubadilishe ruhusa hii kwa programu zilizopo."
+
+ "Nikumbushe baadaye""Ondoa""Mfumo"
@@ -2286,8 +2280,7 @@
"%1$s inatumika chinichini. Gusa ili udhibiti matumizi ya betri.""%1$s inaweza kuathiri muda wa matumizi ya betri. Gusa ili ukague programu zinazotumika.""Angalia programu zinazotumika"
- "Huwezi kufikia kamera ya simu kutoka kwenye %1$s yako"
+ "Haiwezi kufikia kamera ya simu kutoka kwenye %1$s yako""Haiwezi kufikia kamera ya kompyuta kibao kutoka kwenye %1$s yako"
- "Huwezi kufikia maudhui haya unapotiririsha. Badala yake jaribu kwenye simu yako."
- "Chaguomsingi la mfumo"
+ "Lugha ya mfumo"
diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml
index a479e1f4d9dd8b98faa40769d143172825fd599e..6acb12649856753ea64b5bdc88452b9ef5e22109 100644
--- a/core/res/res/values-ta/strings.xml
+++ b/core/res/res/values-ta/strings.xml
@@ -21,6 +21,11 @@
"பை."
+ "கி.பை."
+ "மெ.பை."
+ "ஜி.பை."
+ "டெ.பை."
+ "பெ.பை.""%1$s%2$s""<பெயரிடப்படாதது>""(தொலைபேசி எண் இல்லை)"
@@ -28,7 +33,6 @@
"குரலஞ்சல்""MSISDN1""இணைப்பு சிக்கல் அல்லது தவறான MMI குறியீடு."
- "அம்சம் ஆதரிக்கப்படவில்லை.""நிலையான அழைப்பு எண்களுக்கு மட்டுமே எனச் செயல்பாடு வரையறுக்கப்பட்டுள்ளது.""ரோமிங்கில் இருக்கும் போது, உங்கள் மொபைலிலிருந்து அழைப்புப் பகிர்வு அமைப்புகளை மாற்ற முடியாது.""சேவை இயக்கப்பட்டுள்ளது."
@@ -43,8 +47,8 @@
"உள்ளிட்ட பின்கள் பொருந்தவில்லை.""4 இலிருந்து 8 எண்கள் வரையுள்ள பின் ஐத் தட்டச்சு செய்யவும்.""8 அல்லது அதற்கு மேல் எண்கள் உள்ள PUK ஐத் தட்டச்சு செய்யவும்."
- "உங்கள் சிம் PUK-லாக் செய்யப்பட்டுள்ளது. அதை அன்லாக் செய்ய PUK குறியீட்டை உள்ளிடுங்கள்."
- "சிம் தடுப்பை நீக்க PUK2 என உள்ளிடவும்."
+ "உங்கள் சிம் கார்டு PUK பூட்டுதல் செய்யப்பட்டுள்ளது. அதை அன்லாக் செய்ய PUK குறியீட்டை உள்ளிடவும்."
+ "சிம் கார்டைத் தடுப்பு நீக்க PUK2 ஐ உள்ளிடவும்.""தோல்வி, சிம்/RUIM பூட்டை இயக்கவும்."சிம் பூட்டப்படுவதற்கு முன், நீங்கள் %d முறை முயற்சிக்கலாம்.
@@ -301,12 +305,12 @@
"கேலெண்டரை அணுகலாம்""SMS""SMS அனுப்பலாம், வந்த SMSகளைப் பார்க்கலாம்"
- "ஃபைல்கள்"
- "உங்கள் சாதனத்திலுள்ள ஃபைல்களை அணுகும்"
- "இசையும் ஆடியோவும்"
- "உங்கள் சாதனத்திலுள்ள இசையையும் ஆடியோவையும் அணுகும்"
- "படங்களும் வீடியோக்களும்"
- "உங்கள் சாதனத்திலுள்ள படங்களையும் வீடியோக்களையும் அணுகும்"
+ "ஃபைல்கள் & ஆவணங்கள்"
+ "சாதனத்திலுள்ள ஃபைல்களையும் ஆவணங்களையும் அணுகும்"
+ "இசை & பிற ஆடியோ"
+ "உங்கள் சாதனத்திலுள்ள ஆடியோ ஃபைல்களை அணுகும்"
+ "படங்கள் & வீடியோக்கள்"
+ "உங்கள் சாதனத்திலுள்ள படங்களையும் வீடியோ ஃபைல்களையும் அணுகும்""மைக்ரோஃபோன்""ஒலிப் பதிவு செய்யலாம்""உடல் செயல்பாடுகள்"
@@ -327,7 +331,7 @@
"நீங்கள் பணியாற்றிக் கொண்டிருக்கும் சாளரத்தின் உள்ளடக்கத்தைப் பார்க்கலாம்.""தொடுவதன் மூலம் அறிவதை இயக்கும்""தட்டிய உள்ளடக்கம் சத்தமாகப் படிக்கப்படும், சைகைகளைப் பயன்படுத்தி திரையில் உலாவலாம்."
- "நீங்கள் டைப் செய்யும் வார்த்தையைக் கவனிக்கும்."
+ "நீங்கள் தட்டச்சு செய்யும் உரையைக் கவனிக்கும்""கிரெடிட் கார்டு எண்கள் மற்றும் கடவுச்சொற்கள் போன்ற தனிப்பட்ட தகவலும் உள்ளடங்கும்.""திரை பெரிதாவதைக் கட்டுப்படுத்தும்""திரையின் ஜூம் அளவையும் நிலையையும் கட்டுப்படுத்தலாம்."
@@ -582,14 +586,13 @@
"திரைப் பூட்டைப் பயன்படுத்து""தொடர்வதற்கு உங்கள் திரைப் பூட்டை உள்ளிடுங்கள்""சென்சாரின் மீது நன்றாக அழுத்தவும்"
- "கைரேகையை அடையாளம் காண முடியவில்லை. மீண்டும் முயலவும்."
+ "கைரேகையைச் செயலாக்க முடியவில்லை. மீண்டும் முயலவும்.""கைரேகை சென்சாரைச் சுத்தம் செய்துவிட்டு மீண்டும் முயலவும்""சென்சாரைச் சுத்தம் செய்துவிட்டு மீண்டும் முயலவும்""சென்சாரின் மீது நன்றாக அழுத்தவும்""விரலை மிகவும் மெதுவாக நகர்த்திவிட்டீர்கள். மீண்டும் முயற்சிக்கவும்.""வேறு கைரேகையை முயலவும்""அதிக வெளிச்சமாக உள்ளது"
- "பவர் பட்டனை அழுத்தியது கண்டறியப்பட்டது""விரலைச் சரியாக வைக்கவும்""ஒவ்வொரு முறையும் விரலின் நிலையைச் சிறிதளவு மாற்றுங்கள்"
@@ -601,17 +604,16 @@
"முகம் அங்கீகரிக்கப்பட்டது. ’உறுதிப்படுத்துக’ என்பதை அழுத்துக""கைரேகை வன்பொருள் இல்லை.""கைரேகையை அமைக்க முடியவில்லை"
- "கைரேகை அமைவுக்கான நேரம் முடிந்துவிட்டது. மீண்டும் முயலவும்."
+ "கைரேகைக்கான நேரம் முடிந்தது. மீண்டும் முயலவும்.""கைரேகை செயல்பாடு ரத்துசெய்யப்பட்டது.""பயனர், கைரேகை உறுதிப்படுத்துதலை ரத்துசெய்தார்."
- "பலமுறை முயன்றுவிட்டீர்கள். இதற்குப் பதிலாகத் திரைப்பூட்டைப் பயன்படுத்தவும்."
- "பலமுறை முயன்றுவிட்டீர்கள். இதற்குப் பதிலாகத் திரைப்பூட்டைப் பயன்படுத்தவும்."
- "கைரேகையைச் செயலாக்க முடியவில்லை. மீண்டும் முயலவும்."
+ "அதிகமான முயற்சிகள். பிறகு முயற்சிக்கவும்."
+ "பலமுறை முயன்றுவிட்டீர்கள். கைரேகை சென்சார் முடக்கப்பட்டது."
+ "மீண்டும் முயற்சிக்கவும்.""கைரேகைப் பதிவுகள் எதுவும் இல்லை.""இந்தச் சாதனத்தில் கைரேகை சென்சார் இல்லை.""சென்சார் தற்காலிகமாக முடக்கப்பட்டுள்ளது.""கைரேகை சென்சாரைப் பயன்படுத்த முடியவில்லை. பழுதுபார்ப்புச் சேவை வழங்குநரைத் தொடர்புகொள்ளவும்"
- "பவர் பட்டன் அழுத்தப்பட்டுள்ளது""கைரேகை %d""கைரேகையைப் பயன்படுத்து""கைரேகையையோ திரைப் பூட்டையோ பயன்படுத்து"
@@ -632,33 +634,26 @@
"கைரேகை அன்லாக்""கைரேகை சென்சாரைப் பயன்படுத்த முடியவில்லை""பழுதுபார்ப்புச் சேவை வழங்குநரைத் தொடர்புகொள்ளவும்."
- "முகத் தோற்றம் பதிவாகவில்லை. மீண்டும் முயலவும்."
+ "முகம் தெளிவாகப் பதிவாகவில்லை. மீண்டும் முயலவும்.""அதிக ஒளிர்வு. மிதமான ஒளியில் முயலவும்."
- "போதிய வெளிச்சம் இல்லை"
- "மொபைலை முகத்தில் இருந்து தள்ளிப் பிடிக்கவும்"
- "மொபைலை அருகில் நகர்த்தவும்"
- "மொபைலை மேலே நகர்த்தவும்"
- "மொபைலைக் கீழே நகர்த்தவும்"
- "மொபைலை இடதுபுறம் நகர்த்தவும்"
- "மொபைலை வலதுபுறம் நகர்த்தவும்"
+ "இருட்டாக உள்ளது. பிரகாசமான ஒளியில் முயலவும்."
+ "மொபைலை முகத்தில் இருந்து தள்ளிப் பிடிக்கவும்."
+ "மொபைலை அருகில் நகர்த்தவும்."
+ "மொபைலை மேலே நகர்த்தவும்."
+ "மொபைலைக் கீழே நகர்த்தவும்."
+ "மொபைலை இடப்புறம் நகர்த்தவும்."
+ "மொபைலை வலப்புறம் நகர்த்தவும்.""முழுமுகம் தெரியுமாறு நேராகப் பார்க்கவும்."
- "முகம் சரியாகத் தெரியவில்லை. மொபைலைக் கண்களுக்கு நேராகப் பிடிக்கவும்."
+ "முகத்தை மொபைலுக்கு நேராக வைக்கவும்.""அதிகமாக அசைகிறது. மொபைலை அசைக்காமல் பிடிக்கவும்.""உங்கள் முகத்தை மீண்டும் பதிவுசெய்யுங்கள்."
- "முகத்தை அடையாளம் காண இயலவில்லை. மீண்டும் முயலவும்."
- "தலையின் நிலையைச் சிறிதளவு மாற்றவும்"
- "உங்கள் மொபைலை நேராகப் பார்க்கவும்"
- "உங்கள் மொபைலை நேராகப் பார்க்கவும்"
- "உங்கள் மொபைலை நேராகப் பார்க்கவும்"
+ "முகத்தைக் கண்டறிய இயலவில்லை. மீண்டும் முயலவும்."
+ "மீண்டும் அதே போஸ் தருகிறீர்கள், வேறு முயலுங்கள்."
+ "தலையை லேசாகத் திருப்பவும்."
+ "உங்கள் தலையை லேசாகச் சாய்க்கவும்."
+ "உங்கள் தலையைச் சற்றுத் திருப்பவும்.""உங்கள் முகத்தை மறைக்கும் அனைத்தையும் நீக்குக.""திரையையும் அதிலுள்ள கருப்புப் பட்டியையும் சுத்தம் செய்யவும்"
-
-
-
-
- "முகத் தோற்றம் பதிவாகவில்லை. மீண்டும் முயலவும்."
- "அடர் நிறக் கண்ணாடிகள் கண்டறியப்பட்டுள்ளது. உங்கள் முகத்தை முழுமையாகக் காட்டவும்."
- "முகம் மறைக்கப்பட்டுள்ளது. உங்கள் முகத்தை முழுமையாகக் காட்டவும்.""முகத்தைச் சரிபார்க்க இயலவில்லை. வன்பொருள் இல்லை."
@@ -924,14 +919,14 @@
"மீண்டும் முயற்சிக்கவும்""எல்லா அம்சங்கள் & தரவை பெற, சாதனத்தை அன்லாக் செய்யவும்""முகம் காட்டித் திறத்தல் அம்சத்தை அதிகமுறை பயன்படுத்துவிட்டீர்கள்"
- "சிம் இல்லை"
- "டேப்லெட்டில் சிம் இல்லை."
- "உங்கள் Android TV சாதனத்தில் சிம் இல்லை."
- "மொபைலில் சிம் இல்லை."
- "சிம்மைச் சேருங்கள்."
- "சிம் இல்லை அல்லது படிக்கக்கூடியதாக இல்லை. சிம்மைச் சேருங்கள்."
- "பயன்படுத்த முடியாத சிம்."
- "உங்கள் சிம் நிரந்தரமாக முடக்கப்பட்டுள்ளது.\n மற்றொரு சிம்மிற்கான உங்கள் வயர்லெஸ் சேவை வழங்குநரைத் தொடர்புகொள்ளுங்கள்."
+ "சிம் கார்டு இல்லை"
+ "டேப்லெட்டில் சிம் கார்டு இல்லை."
+ "Android TVயில் SIM கார்டு இல்லை."
+ "தொலைபேசியில் சிம் கார்டு இல்லை."
+ "சிம் கார்டைச் செருகவும்."
+ "சிம் கார்டு இல்லை அல்லது படிக்கக்கூடியதாக இல்லை. சிம் கார்டைச் செருகவும்."
+ "பயன்படுத்த முடியாத சிம் கார்டு."
+ "உங்கள் சிம் கார்டு நிரந்தரமாக முடக்கப்பட்டது.\n மற்றொரு சிம் கார்டிற்காக உங்கள் வயர்லெஸ் சேவை வழங்குநரைத் தொடர்புகொள்ளவும்.""முந்தைய டிராக்""அடுத்த டிராக்""இடைநிறுத்து"
@@ -941,10 +936,10 @@
"முன்னே செல்""அவசர அழைப்புகள் மட்டும்""நெட்வொர்க் பூட்டப்பட்டது"
- "சிம் PUK-லாக் செய்யப்பட்டுள்ளது."
+ "சிம் கார்டு PUK பூட்டுதல் செய்யப்பட்டுள்ளது.""பயனர் கையேட்டைப் பார்க்கவும் அல்லது வாடிக்கையாளர் சேவையைத் தொடர்புகொள்ளவும்."
- "சிம் லாக் செய்யப்பட்டுள்ளது."
- "சிம்மை அன்லாக் செய்கிறது…"
+ "சிம் கார்டு பூட்டப்பட்டுள்ளது."
+ "சிம் கார்டைத் திறக்கிறது...""அன்லாக் பேட்டர்னை %1$d முறை தவறாக வரைந்துள்ளீர்கள். \n\n%2$d வினாடிகள் கழித்து முயற்சிக்கவும்.""உங்கள் கடவுச்சொல்லை %1$d முறை தவறாக உள்ளிட்டீர்கள். \n\n%2$d வினாடிகள் கழித்து முயற்சிக்கவும்.""உங்கள் பின்னை %1$d முறை தவறாக உள்ளிட்டீர்கள். \n\n%2$d வினாடிகள் கழித்து முயற்சிக்கவும்."
@@ -1246,9 +1241,10 @@
"%1$sஐத் தயார்செய்கிறது.""ஆப்ஸ் தொடங்கப்படுகின்றன.""துவக்குதலை முடிக்கிறது."
+ "அமைவைத் தொடரவா?""நீங்கள் பவர் பட்டனை அழுத்தியுள்ளீர்கள் — வழக்கமாக இது திரையை ஆஃப் செய்யும்.\n\nஉங்கள் கைரேகையை அமைக்கும்போது மெதுவாகத் தொடுங்கள்."
- "அமைவை நிறைவுசெய்ய திரையை முடக்குங்கள்"
- "முடக்கு"
+ "திரையை ஆஃப் செய்"
+ "அமைவைத் தொடர்க""கைரேகைச் சரிபார்ப்பைத் தொடரவா?""நீங்கள் பவர் பட்டனை அழுத்தியுள்ளீர்கள் — வழக்கமாக இது திரையை ஆஃப் செய்யும்.\n\nஉங்கள் கைரேகையைச் சரிபார்க்க மெதுவாகத் தொடுங்கள்.""திரையை ஆஃப் செய்"
@@ -1327,10 +1323,10 @@
"அமைப்பு > ஆப்ஸ் என்பதில் பிறகு நீங்கள் மாற்றலாம்""எப்போதும் அனுமதி""ஒருபோதும் அனுமதிக்காதே"
- "சிம் அகற்றப்பட்டது"
- "நீங்கள் சரியான சிம்முடன் மீண்டும் தொடங்கும் வரை மொபைல் நெட்வொர்க் கிடைக்காது."
+ "சிம் கார்டு அகற்றப்பட்டது"
+ "செருக்கப்பட்ட சரியான சிம் கார்டு உடன் மறுதொடக்கம் செய்யும்வரை மொபைல் நெட்வொர்க் கிடைக்காது.""முடிந்தது"
- "சிம் சேர்க்கப்பட்டது"
+ "சிம் கார்டு சேர்க்கப்பட்டது""மொபைல் நெட்வொர்க்கை அணுக உங்கள் சாதனத்தை மறுதொடக்கம் செய்யவும்.""மீண்டும் தொடங்கு""மொபைல் சேவையை இயக்கு"
@@ -1401,16 +1397,16 @@
"அமைக்க, தட்டவும்""அமைக்கத் தேர்ந்தெடுங்கள்""சாதனத்தை ரீஃபார்மேட் செய்ய வேண்டியிருக்கும். வெளியேற்ற தட்டவும்."
- "படங்கள், வீடியோக்கள், இசை மற்றும் பலவற்றைச் சேமிப்பதற்கு"
+ "படங்களையும் மீடியாவையும் மாற்றலாம்""மீடியா ஃபைல்களை உலாவுக""%s இல் சிக்கல்""%s வேலை செய்யவில்லை""சரிசெய்ய, தட்டவும்""%s சிதைந்துள்ளது. சரிசெய்ய, தேர்ந்தெடுக்கவும்.""சாதனத்தை ரீஃபார்மேட் செய்ய வேண்டியிருக்கும். வெளியேற்ற தட்டவும்."
- "%s கண்டறியப்பட்டுள்ளது"
+ "ஆதரிக்கப்படாத %s""%s வேலை செய்யவில்லை"
- "அமைக்க தட்டுங்கள்."
+ "சாதனம் இந்த %sஐ ஆதரிக்கவில்லை. ஆதரிக்கப்படும் வடிவமைப்பில் அமைக்க, தட்டவும்.""ஆதரிக்கப்படும் வடிவத்தில் %s ஐ அமைக்கத் தேர்ந்தெடுங்கள்.""சாதனத்தை ரீஃபார்மேட் செய்ய வேண்டியிருக்கும்""%s அகற்றப்பட்டது"
@@ -1609,7 +1605,7 @@
"டிவி""ஃபோன்""மொபைல் வைக்கும் கருவியின் ஸ்பீக்கர்கள்"
- "வெளிப்புறச் சாதனம்"
+ "HDMI""ஹெட்ஃபோன்கள்""USB""சிஸ்டம்"
@@ -1642,7 +1638,7 @@
"சிம் தற்போது முடக்கப்பட்டுள்ளது. தொடர்வதற்கு PUK குறியீட்டை உள்ளிடவும். விவரங்களுக்கு மொபைல் நிறுவனங்களைத் தொடர்புகொள்ளவும்.""விரும்பிய பின் குறியீட்டை உள்ளிடவும்""விரும்பிய பின் குறியீட்டை உறுதிப்படுத்தவும்"
- "சிம்மை அன்லாக் செய்கிறது…"
+ "சிம் கார்டின் தடையைநீக்குகிறது...""தவறான பின் குறியீடு.""4 இலிருந்து 8 எண்கள் வரையுள்ள பின்னை உள்ளிடவும்.""PUK குறியீட்டில் 8 எழுத்துக்குறிகள் இருக்க வேண்டும்."
@@ -1716,7 +1712,7 @@
"%1$sக்கு மாறுகிறது…""%1$s வெளியேறுகிறார்…""உரிமையாளர்"
- "கெஸ்ட்"
+ "விருந்தினர்""பிழை""உங்கள் நிர்வாகி இந்த மாற்றத்தை அனுமதிக்கவில்லை""இந்தச் செயலைச் செய்ய ஆப்ஸ் எதுவுமில்லை"
@@ -1923,7 +1919,6 @@
"மண்டல விருப்பம்""மொழி பெயரை உள்ளிடுக""பரிந்துரைகள்"
- "பரிந்துரைக்கப்படுபவை""எல்லா மொழிகளும்""எல்லா மண்டலங்களும்""தேடு"
@@ -1941,19 +1936,18 @@
"கேமராவைப் பயன்படுத்த முடியாது""மொபைலில் தொடருங்கள்""மைக்ரோஃபோனைப் பயன்படுத்த முடியாது"
- "Play Store கிடைக்கவில்லை""Android TV அமைப்புகளைப் பயன்படுத்த முடியாது""டேப்லெட் அமைப்புகளைப் பயன்படுத்த முடியாது""மொபைல் அமைப்புகளைப் பயன்படுத்த முடியாது"
- "தற்போது உங்கள் %1$s சாதனத்தில் இதை அணுக முடியாது. அதற்குப் பதிலாக Android TV சாதனத்தில் பயன்படுத்திப் பாருங்கள்."
- "தற்போது உங்கள் %1$s சாதனத்தில் இதை அணுக முடியாது. அதற்குப் பதிலாக உங்கள் டேப்லெட்டில் பயன்படுத்திப் பாருங்கள்."
- "தற்போது உங்கள் %1$s சாதனத்தில் இதை அணுக முடியாது. அதற்குப் பதிலாக உங்கள் மொபைலில் பயன்படுத்திப் பாருங்கள்."
+ "உங்கள் %1$s சாதனத்தில் இதை அணுக முடியாது. அதற்குப் பதிலாக உங்கள் Android TV சாதனத்தில் பயன்படுத்திப் பார்க்கவும்."
+ "உங்கள் %1$s சாதனத்தில் இதை அணுக முடியாது. அதற்குப் பதிலாக உங்கள் டேப்லெட்டில் பயன்படுத்திப் பார்க்கவும்."
+ "உங்கள் %1$s சாதனத்தில் இதை அணுக முடியாது. அதற்குப் பதிலாக உங்கள் மொபைலில் பயன்படுத்திப் பார்க்கவும்."
+ "தற்போது உங்கள் %1$s சாதனத்தில் இதை அணுக முடியாது. அதற்குப் பதிலாக உங்கள் Android TV சாதனத்தில் பயன்படுத்திப் பார்க்கவும்."
+ "தற்போது உங்கள் %1$s சாதனத்தில் இதை அணுக முடியாது. அதற்குப் பதிலாக உங்கள் டேப்லெட்டில் பயன்படுத்திப் பார்க்கவும்."
+ "தற்போது உங்கள் %1$s சாதனத்தில் இதை அணுக முடியாது. அதற்குப் பதிலாக உங்கள் மொபைலில் பயன்படுத்திப் பார்க்கவும்.""இந்த ஆப்ஸ் கூடுதல் பாதுகாப்பைக் கோருகிறது. அதற்குப் பதிலாக உங்கள் Android TV சாதனத்தில் பயன்படுத்திப் பார்க்கவும்.""இந்த ஆப்ஸ் கூடுதல் பாதுகாப்பைக் கோருகிறது. அதற்குப் பதிலாக உங்கள் டேப்லெட்டில் பயன்படுத்திப் பார்க்கவும்.""இந்த ஆப்ஸ் கூடுதல் பாதுகாப்பைக் கோருகிறது. அதற்குப் பதிலாக உங்கள் மொபைலில் பயன்படுத்திப் பார்க்கவும்."
- "உங்கள் %1$s சாதனத்தில் இதை அணுக முடியாது. அதற்குப் பதிலாக உங்கள் Android TV சாதனத்தில் முயன்று பாருங்கள்."
- "உங்கள் %1$s சாதனத்தில் இதை அணுக முடியாது. அதற்குப் பதிலாக உங்கள் டேப்லெட்டில் முயன்று பாருங்கள்."
- "உங்கள் %1$s சாதனத்தில் இதை அணுக முடியாது. அதற்குப் பதிலாக உங்கள் மொபைலில் முயன்று பாருங்கள்.""இந்த ஆப்ஸ் Android இன் பழைய பதிப்புக்காக உருவாக்கப்பட்டதால், சரியாக வேலை செய்யாமல் போகலாம். புதுப்பிப்புகள் ஏதேனும் உள்ளதா எனப் பார்க்கவும் அல்லது டெவெலப்பரைத் தொடர்புகொள்ளவும்.""புதுப்பிப்பு உள்ளதா எனப் பார்""புதிய செய்திகள் வந்துள்ளன"
@@ -2046,8 +2040,7 @@
"சாதனப் பதிவுகள் அனைத்தையும் %s அணுக அனுமதிக்கவா?""ஒருமுறை அணுகலை அனுமதி""அனுமதிக்க வேண்டாம்"
- "உங்கள் சாதனத்தில் நடப்பவற்றைச் சாதனப் பதிவுகள் ரெக்கார்டு செய்யும். சிக்கல்களைக் கண்டறிந்து சரிசெய்ய ஆப்ஸ் இந்தப் பதிவுகளைப் பயன்படுத்தலாம்.\n\nபாதுகாக்கப்பட வேண்டிய தகவல்கள் சில பதிவுகளில் இருக்கக்கூடும் என்பதால் சாதனப் பதிவுகள் அனைத்தையும் அணுக நீங்கள் நம்பும் ஆப்ஸை மட்டும் அனுமதிக்கவும். \n\nசாதனப் பதிவுகள் அனைத்தையும் அணுக இந்த ஆப்ஸை அனுமதிக்கவில்லை என்றாலும் அதற்குச் சொந்தமான பதிவுகளை அதனால் அணுக முடியும். உங்கள் சாதனத்திலுள்ள சில பதிவுகளையோ தகவல்களையோ சாதன உற்பத்தியாளரால் தொடர்ந்து அணுக முடியும்."
- "உங்கள் சாதனத்தில் நடப்பவற்றைச் சாதனப் பதிவுகள் ரெக்கார்டு செய்யும். சிக்கல்களைக் கண்டறிந்து சரிசெய்ய ஆப்ஸால் இந்தப் பதிவுகளைப் பயன்படுத்த முடியும்.\n\nபாதுகாக்கப்பட வேண்டிய தகவல்கள், சில பதிவுகளில் இருக்கக்கூடும் என்பதால் சாதனப் பதிவுகள் அனைத்தையும் அணுக உங்களுக்கு நம்பகமான ஆப்ஸை மட்டும் அனுமதிக்கவும். \n\nசாதனப் பதிவுகள் அனைத்தையும் அணுக இந்த ஆப்ஸை நீங்கள் அனுமதிக்கவில்லை என்றாலும் அதற்குச் சொந்தமான பதிவுகளை அதனால் அணுக முடியும். உங்கள் சாதனத்திலுள்ள சில பதிவுகளையோ தகவல்களையோ சாதன உற்பத்தியாளரால் தொடர்ந்து அணுக முடியும்.\n\n மேலும் அறிந்துகொள்ள g.co/android/devicelogs இணைப்பிற்குச் செல்லுங்கள்."
+ "உங்கள் சாதனத்தில் நடப்பவற்றைச் சாதனப் பதிவுகள் ரெக்கார்டு செய்யும். சிக்கல்களைக் கண்டறிந்து சரிசெய்ய ஆப்ஸ் இந்தப் பதிவுகளைப் பயன்படுத்தலாம்.\n\nபாதுகாக்கப்பட வேண்டிய தகவல்கள் சில பதிவுகளில் இருக்கக்கூடும் என்பதால் சாதனப் பதிவுகள் அனைத்தையும் அணுக நீங்கள் நம்பும் ஆப்ஸை மட்டும் அனுமதிக்கவும். \n\nசாதனப் பதிவுகள் அனைத்தையும் அணுக இந்த ஆப்ஸை அனுமதிக்கவில்லை என்றாலும் அதற்குச் சொந்தமான பதிவுகளை அதனால் அணுக முடியும். சாதன உற்பத்தியாளர் உங்கள் சாதனத்திலுள்ள சில பதிவுகளையோ தகவல்களையோ தொடர்ந்து அணுகக்கூடும். மேலும் அறிக""மீண்டும் காட்டாதே""%2$s ஆப்ஸின் விழிப்பூட்டல்களைக் காண்பிக்க, %1$s அனுமதி கேட்கிறது""திருத்து"
@@ -2060,7 +2053,8 @@
"தொந்தரவு செய்ய வேண்டாம் அமைப்புகள் மாற்றப்பட்டன""எவற்றையெல்லாம் தடுக்கிறது என்பதைப் பார்க்க, தட்டவும்.""அறிவிப்பு அமைப்புகளை மதிப்பாய்வு செய்யுங்கள்"
- "Android 13 பதிப்பு முதல், நீங்கள் நிறுவுகின்ற ஆப்ஸ் உங்களுக்கு அறிவிப்புகளை அனுப்ப அனுமதி தேவை. ஏற்கெனவே உள்ள ஆப்ஸுக்கு இந்த அனுமதியை மாற்ற தட்டவும்."
+
+ "பின்னர் நினைவூட்டு""நிராகரி""சிஸ்டம்"
@@ -2288,6 +2282,5 @@
"செயலிலுள்ள ஆப்ஸைப் பாருங்கள்""உங்கள் %1$s சாதனத்திலிருந்து மொபைலின் கேமராவை அணுக முடியாது""உங்கள் %1$s சாதனத்திலிருந்து டேப்லெட்டின் கேமராவை அணுக முடியாது"
- "ஸ்ட்ரீமின்போது இதை அணுக முடியாது. அதற்குப் பதிலாக உங்கள் மொபைலில் பயன்படுத்திப் பார்க்கவும்."
- "சிஸ்டத்தின் இயல்பு"
+ "சிஸ்டம் மொழி"
diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml
index b3c88a93cc4df41fbcb3f9619838c49524160aa8..3024ee8d8dc15e1e21849f0c7d49667c1d72d2b1 100644
--- a/core/res/res/values-te/strings.xml
+++ b/core/res/res/values-te/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<శీర్షిక లేనిది>""(ఫోన్ నంబర్ లేదు)"
@@ -28,7 +33,6 @@
"వాయిస్ మెయిల్""MSISDN1""కనెక్షన్ సమస్య లేదా చెల్లని MMI కోడ్."
- "ప్రస్తుత మొబైల్ నెట్వర్క్లో ఫీచర్ సపోర్ట్ చేయడం లేదు.""చర్య స్థిరమైన డయలింగ్ నంబర్లకు మాత్రమే పరిమితం చేయబడింది.""మీరు రోమింగ్లో ఉన్నప్పుడు మీ ఫోన్ నుండి కాల్ ఫార్వార్డింగ్ సెట్టింగ్లను మార్చలేరు.""సేవ ప్రారంభించబడింది."
@@ -43,8 +47,8 @@
"మీరు టైప్ చేసిన పిన్లు సరిపోలలేదు.""4 నుండి 8 సంఖ్యలు ఉండే పిన్ను టైప్ చేయండి.""8 సంఖ్యలు లేదా అంతకంటే పొడవు ఉండే PUKని టైప్ చేయండి."
- "మీ SIM PUK-లాక్ చేయబడింది. దీన్ని అన్లాక్ చేయడానికి PUK కోడ్ను టైప్ చేయండి."
- "SIMను అన్బ్లాక్ చేయడానికి PUK2 అని టైప్ చేయండి."
+ "మీ సిమ్ కార్డు PUK-లాక్ చేయబడింది. దీన్ని అన్లాక్ చేయడానికి PUK కోడ్ను టైప్ చేయండి."
+ "సిమ్ కార్డును అన్బ్లాక్ చేయడానికి PUK2ని టైప్ చేయండి.""వైఫల్యం, సిమ్/RUIM లాక్ను ప్రారంభించండి."SIM లాక్ కాకుండా ఉండటానికి మీకు %d ప్రయత్నాలు మిగిలి ఉన్నాయి.
@@ -65,7 +69,7 @@
"కాలింగ్ నంబర్ పరిమితం చేయబడింది""మూడు మార్గాల కాలింగ్""అవాంఛిత అంతరాయ కాల్స్ల తిరస్కరణ"
- "కాలింగ్ నంబర్ డెలివరీ"
+ "కాలింగ్ నంబర్ బట్వాడా""అంతరాయం కలిగించవద్దు""కాలర్ ID ఆటోమేటిక్లపై పరిమితి ఉంటుంది. తర్వాత కాల్: పరిమితి ఉంటుంది""కాలర్ ID ఆటోమేటిక్లపై పరిమితి ఉంటుంది. తర్వాత కాల్: పరిమితి లేదు"
@@ -145,11 +149,11 @@
"%s బ్యాకప్ కాలింగ్"
- "{0}: ఫార్వర్డ్ చేయబడలేదు"
+ "{0}: ఫార్వార్డ్ చేయబడలేదు""{0}: {1}""{0}: {2} సెకన్ల తర్వాత {1}"
- "{0}: ఫార్వర్డ్ చేయబడలేదు"
- "{0}: ఫార్వర్డ్ చేయబడలేదు"
+ "{0}: ఫార్వార్డ్ చేయబడలేదు"
+ "{0}: ఫార్వార్డ్ చేయబడలేదు""లక్షణం కోడ్ పూర్తయింది.""కనెక్షన్ సమస్య లేదా లక్షణం కోడ్ చెల్లదు.""సరే"
@@ -283,7 +287,7 @@
"USB కనెక్షన్""యాప్ అమలవుతోంది""బ్యాటరీని ఉపయోగిస్తున్న యాప్లు"
- "మ్యాగ్నిఫికేషన్"
+ "మాగ్నిఫికేషన్""యాక్సెసిబిలిటీ వినియోగం""%1$s బ్యాటరీని ఉపయోగిస్తోంది""%1$d యాప్లు బ్యాటరీని ఉపయోగిస్తున్నాయి"
@@ -300,17 +304,17 @@
"క్యాలెండర్""మీ క్యాలెండర్ను యాక్సెస్ చేయడానికి""SMS"
- "SMS మెసేజ్లను పంపడం, చూడటం"
- "ఫైల్స్"
- "మీ పరికరంలోని ఫైల్స్ని యాక్సెస్ చేస్తుంది"
- "మ్యూజిక్, ఆడియో"
- "మీ పరికరంలో మ్యూజిక్, ఆడియోను యాక్సెస్ చేయండి"
- "ఫోటోలు, వీడియోలు"
- "మీ పరికరంలో ఫోటోలు, వీడియోలను యాక్సెస్ చేయండి"
+ "SMS మెసేజ్లను పంపడం, వీక్షించడం"
+ "ఫైల్స్ & డాక్యుమెంట్లు"
+ "మీ పరికరంలోని ఫైల్లు, డాక్యుమెంట్లను యాక్సెస్ చేయండి"
+ "మ్యూజిక్ & ఇతర ఆడియో"
+ "మీ పరికరంలోని ఆడియో ఫైల్లను యాక్సెస్ చేయండి"
+ "ఫోటోలు & వీడియోలు"
+ "మీ పరికరంలోని ఇమేజ్లు, వీడియో ఫైల్లను యాక్సెస్ చేయండి""మైక్రోఫోన్""ఆడియోను రికార్డ్ చేయడానికి""ఫిజికల్ యాక్టివిటీ"
- "ఫిజికల్ యాక్టివిటీని యాక్సెస్ చేయండి"
+ "భౌతిక యాక్టివిటీని యాక్సెస్ చేయండి""కెమెరా""చిత్రాలను తీయడానికి మరియు వీడియోను రికార్డ్ చేయడానికి""సమీపంలోని పరికరాలు"
@@ -320,16 +324,16 @@
"ఫోన్""ఫోన్ కాల్స్ చేయడం మరియు నిర్వహించడం""శరీర సెన్సార్లు"
- "మీ అత్యంత కీలకమైన గుర్తుల గురించి సెన్సార్ డేటాను యాక్సెస్ చేస్తుంది"
+ "మీ అత్యంత కీలకమైన గుర్తుల గురించి సెన్సార్ డేటాని యాక్సెస్ చేస్తుంది""నోటిఫికేషన్లు""నోటిఫికేషన్లను చూపండి""విండో కంటెంట్ను తిరిగి పొందుతుంది""మీరు పరస్పర చర్య చేస్తున్న విండో కంటెంట్ను పరిశీలిస్తుంది."
- "తాకడం ద్వారా విశ్లేషణను ఆన్ చేయండి"
+ "తాకడం ద్వారా విశ్లేషణను ప్రారంభిస్తుంది""నొక్కిన అంశాలు బిగ్గరగా చదివి వినిపించబడతాయి మరియు సంజ్ఞలను ఉపయోగించి స్క్రీన్ను విశ్లేషించవచ్చు.""మీరు టైప్ చేస్తున్న వచనాన్ని పరిశీలిస్తుంది""క్రెడిట్ కార్డు నంబర్లు మరియు పాస్వర్డ్ల వంటి వ్యక్తిగత డేటాను కలిగి ఉంటుంది."
- "డిస్ప్లే మ్యాగ్నిఫికేషన్ను నియంత్రించండి"
+ "డిస్ప్లే మాగ్నిఫికేషన్ను నియంత్రించండి""డిస్ప్లే జూమ్ స్థాయి మరియు స్థానాన్ని నియంత్రిస్తుంది.""సంజ్ఞలను చేయడం""నొక్కగలరు, స్వైప్ చేయగలరు, స్క్రీన్పై రెండు వేళ్లను ఉంచి ఆ వేళ్లను దగ్గరకు లేదా దూరానికి లాగగలరు మరియు ఇతర సంజ్ఞలను చేయగలరు."
@@ -341,7 +345,7 @@
"స్టేటస్ బార్ను డిజేబుల్ చేయడానికి లేదా సిస్టమ్ చిహ్నాలను జోడించడానికి మరియు తీసివేయడానికి యాప్ను అనుమతిస్తుంది.""స్టేటస్ పట్టీగా ఉండటం""స్టేటస్ బార్ ఉండేలా చేయడానికి యాప్ను అనుమతిస్తుంది."
- "స్టేటస్ బార్ను విస్తరింపజేయడం/కుదించడం"
+ "స్టేటస్ పట్టీని విస్తరింపజేయడం/కుదించడం""స్టేటస్ బార్ను విస్తరింపజేయడానికి లేదా కుదించడానికి యాప్ను అనుమతిస్తుంది.""లాక్ చేసి ఉన్న పరికరంలో నోటిఫికేషన్లను ఫుల్ స్క్రీన్ యాక్టివిటీలుగా డిస్ప్లే చేస్తుంది""లాక్ చేసి ఉన్న పరికరంలో నోటిఫికేషన్లను ఫుల్ స్క్రీన్ యాక్టివిటీలుగా డిస్ప్లే చేయడానికి యాప్ను అనుమతిస్తుంది"
@@ -359,13 +363,13 @@
"MMS మెసేజ్లను స్వీకరించడానికి, ప్రాసెస్ చేయడానికి యాప్ను అనుమతిస్తుంది. మీ డివైజ్కు వచ్చిన మెసేజ్లను మీకు చూపకుండానే యాప్ పర్యవేక్షించగలదని లేదా తొలగించగలదని దీని అర్థం.""సెల్ ప్రసార మెసేజ్లను ఫార్వర్డ్ చేయడం""సెల్ ప్రసార మెసేజ్లను స్వీకరించినప్పుడు, వాటిని ఫార్వర్డ్ చేయడానికి సెల్ ప్రసార మాడ్యూల్కు కట్టుబడి ఉండేందుకు యాప్ను అనుమతిస్తుంది. ఎమర్జెన్సీ పరిస్థితుల గురించి మిమ్మల్ని హెచ్చరించడానికి కొన్ని లొకేషన్లలో సెల్ ప్రసార అలర్ట్లు డెలివరీ చేయబడతాయి. ఎమర్జెన్సీ సెల్ ప్రసార అలర్ట్ను స్వీకరించినప్పుడు హానికరమైన యాప్లు మీ పరికరం పనితీరుకు లేదా నిర్వహణకు ఆటంకం కలిగించే అవకాశం ఉంది."
- "కొనసాగుతున్న కాల్స్ను మేనేజ్ చేయండి"
+ "కొనసాగుతున్న కాల్స్ను మేనేజ్ చేయి""మీ పరికరంలో కొనసాగుతున్న కాల్స్ను చూడటానికి అలాగే వాటిని కంట్రోల్ చేయడానికి ఒక యాప్కు అనుమతిస్తోంది.""సెల్ ప్రసార మెసేజ్లను చదవడం""మీ పరికరం స్వీకరించిన సెల్ ప్రసార మెసేజ్లను చదవడానికి యాప్ను అనుమతిస్తుంది. ఎమర్జెన్సీ పరిస్థితుల గురించి మిమ్మల్ని హెచ్చరించడానికి కొన్ని లొకేషన్లలో సెల్ ప్రసార అలర్ట్లు డెలివరీ చేయబడతాయి. ఎమర్జెన్సీ సెల్ ప్రసార అలర్ట్ను స్వీకరించినప్పుడు హానికరమైన యాప్లు మీ పరికరం పనితీరుకు లేదా నిర్వహణకు ఆటంకం కలిగించే అవకాశం ఉంది.""చందా చేయబడిన ఫీడ్లను చదవడం""ప్రస్తుతం సింక్ చేసిన ఫీడ్ల గురించి వివరాలను పొందడానికి యాప్ను అనుమతిస్తుంది."
- "SMS మెసేజ్లను పంపడం, చూడటం"
+ "SMS మెసేజ్లను పంపడం, వీక్షించడం""SMS మెసేజ్లు పంపడానికి యాప్ను అనుమతిస్తుంది. దీని వలన ఊహించని ఛార్జీలు విధించబడవచ్చు. హానికరమైన యాప్లు మీ నిర్ధారణ లేకుండానే మెసేజ్లను పంపడం ద్వారా మీకు డబ్బు ఖర్చయ్యేలా చేయవచ్చు.""మీ టెక్స్ట్ మెసేజ్లు (SMS లేదా MMS) చదవడం""ఈ యాప్ మీ టాబ్లెట్లో స్టోర్ చేసిన అన్ని SMS (టెక్స్ట్) మెసేజ్లను చదవగలదు."
@@ -411,7 +415,7 @@
"టాబ్లెట్లో నిల్వ చేసిన మీ కాంటాక్ట్లకు సంబంధించిన డేటాను చదవడానికి యాప్ను అనుమతిస్తుంది. కాంటాక్ట్లను క్రియేట్ చేసిన మీ టాబ్లెట్లోని ఖాతాలకు కూడా యాప్లకు యాక్సెస్ ఉంటుంది. ఇందులో మీరు ఇన్స్టాల్ చేసిన యాప్ల ద్వారా క్రియేట్ చేయబడిన ఖాతాలు ఉండవచ్చు. ఈ అనుమతి, మీ కాంటాక్ట్ డేటాను సేవ్ చేయడానికి యాప్లను అనుమతిస్తుంది, హానికరమైన యాప్లు మీకు తెలియకుండానే కాంటాక్ట్ డేటాను షేర్ చేయవచ్చు.""మీ Android TV పరికరంలో నిల్వ చేసిన కాంటాక్ట్లకు సంబంధించిన డేటాను చదవడానికి యాప్ను అనుమతిస్తుంది. కాంటాక్ట్లను క్రియేట్ చేసిన మీ Android TV పరికరంలోని ఖాతాలకు కూడా యాప్లకు యాక్సెస్ ఉంటుంది. ఇందులో మీరు ఇన్స్టాల్ చేసిన యాప్ల ద్వారా క్రియేట్ చేయబడిన ఖాతాలు ఉండవచ్చు. ఈ అనుమతి, మీ కాంటాక్ట్ డేటాను సేవ్ చేయడానికి యాప్లను అనుమతిస్తుంది, హానికరమైన యాప్లు మీకు తెలియకుండానే కాంటాక్ట్ డేటాను షేర్ చేయవచ్చు.""ఫోన్లో నిల్వ చేసిన మీ కాంటాక్ట్లకు సంబంధించిన డేటాను చదవడానికి యాప్ను అనుమతిస్తుంది. కాంటాక్ట్లను క్రియేట్ చేసిన మీ ఫోన్లోని ఖాతాలను కూడా యాప్లు యాక్సెస్ చేయగలవు. ఇందులో మీరు ఇన్స్టాల్ చేసిన యాప్ల ద్వారా క్రియేట్ చేయబడిన ఖాతాలు ఉండవచ్చు. ఈ అనుమతి, మీ కాంటాక్ట్ డేటాను సేవ్ చేయడానికి యాప్లను అనుమతిస్తుంది, హానికరమైన యాప్లు మీకు తెలియకుండానే కాంటాక్ట్ డేటాను షేర్ చేయవచ్చు."
- "మీ కాంటాక్ట్లను ఎడిట్ చేయడం"
+ "మీ కాంటాక్ట్లను సవరించడం""మీ టాబ్లెట్లో నిల్వ చేసి ఉన్న కాంటాక్ట్లకు సంబంధించిన డేటాను ఎడిట్ చేయడానికి యాప్ను అనుమతిస్తుంది. ఈ అనుమతి, కాంటాక్ట్ డేటాను తొలగించడానికి యాప్లను అనుమతిస్తుంది.""మీ Android TV పరికరంలో నిల్వ చేసి ఉన్న కాంటాక్ట్లకు సంబంధించిన డేటాను ఎడిట్ చేయడానికి యాప్ను అనుమతిస్తుంది. ఈ అనుమతి, కాంటాక్ట్ డేటాను తొలగించడానికి యాప్లను అనుమతిస్తుంది.""మీ ఫోన్లో నిల్వ చేసి ఉన్న కాంటాక్ట్లకు సంబంధించిన డేటాను ఎడిట్ చేయడానికి యాప్ను అనుమతిస్తుంది. ఈ అనుమతి, కాంటాక్ట్ డేటాను తొలగించడానికి యాప్లను అనుమతిస్తుంది."
@@ -429,7 +433,7 @@
"ఈ యాప్ మీ టాబ్లెట్లో నిల్వ చేసిన క్యాలెండర్ ఈవెంట్లన్నీ చదవగలదు మరియు మీ క్యాలెండర్ డేటాను షేర్ చేయగలదు లేదా సేవ్ చేయగలదు.""ఈ యాప్ మీ Android TV పరికరంలో నిల్వ చేసిన క్యాలెండర్ ఈవెంట్లన్నీ చదవగలదు, మీ క్యాలెండర్ డేటాను షేర్ చేయగలదు లేదా సేవ్ చేయగలదు.""ఈ యాప్ మీ ఫోన్లో నిల్వ చేసిన క్యాలెండర్ ఈవెంట్లన్నీ చదవగలదు మరియు మీ క్యాలెండర్ డేటాను షేర్ చేయగలదు లేదా సేవ్ చేయగలదు."
- "యజమానికి తెలియకుండానే క్యాలెండర్ ఈవెంట్లను జోడించి లేదా ఎడిట్ చేసి, అతిథులకు ఈమెయిల్ పంపడం"
+ "యజమానికి తెలియకుండానే క్యాలెండర్ ఈవెంట్లను జోడించి లేదా సవరించి, అతిథులకు ఈమెయిల్ పంపడం""ఈ యాప్ మీ టాబ్లెట్లో క్యాలెండర్ ఈవెంట్లను జోడించగలదు, తీసివేయగలదు లేదా మార్చగలదు. ఈ యాప్ క్యాలెండర్ ఓనర్ల నుండి వచ్చినట్లుగా మెసేజ్లను పంపగలదు లేదా ఈవెంట్లను వాటి ఓనర్లకు తెలియకుండానే మార్చగలదు.""ఈ యాప్ మీ Android TV పరికరంలో క్యాలెండర్ ఈవెంట్లను జోడించగలదు, తీసివేయగలదు లేదా మార్చగలదు. ఈ యాప్ క్యాలెండర్ ఓనర్ల నుండి వచ్చినట్లుగా మెసేజ్లను పంపగలదు లేదా ఈవెంట్లను వాటి ఓనర్లకు తెలియకుండానే మార్చగలదు.""ఈ యాప్ మీ ఫోన్లో క్యాలెండర్ ఈవెంట్లను జోడించగలదు, తీసివేయగలదు లేదా మార్చగలదు. ఈ యాప్ క్యాలెండర్ ఓనర్ల నుండి వచ్చినట్లుగా మెసేజ్లను పంపగలదు, లేదా ఈవెంట్లను వాటి ఓనర్లకు తెలియకుండానే మార్చగలదు."
@@ -467,7 +471,7 @@
"IMS కాల్ సేవ యాక్సెస్ అనుమతి""మీ ప్రమేయం లేకుండా కాల్స్ చేయడం కోసం IMS సేవను ఉపయోగించడానికి యాప్ను అనుమతిస్తుంది.""ఫోన్ స్టేటస్ మరియు గుర్తింపుని చదవడం"
- "పరికరం యొక్క ఫోన్ ఫీచర్లను యాక్సెస్ చేయడానికి యాప్ను అనుమతిస్తుంది. ఈ అనుమతి ఫోన్ నంబర్ మరియు పరికరం IDలను, కాల్ యాక్టివ్గా ఉందా లేదా అనే విషయాన్ని మరియు కాల్ ద్వారా కనెక్ట్ చేయబడిన రిమోట్ నంబర్ను కనుగొనడానికి యాప్ను అనుమతిస్తుంది."
+ "పరికరం యొక్క ఫోన్ ఫీచర్లను యాక్సెస్ చేయడానికి యాప్ను అనుమతిస్తుంది. ఈ అనుమతి ఫోన్ నంబర్ మరియు పరికరం IDలను, కాల్ సక్రియంగా ఉందా లేదా అనే విషయాన్ని మరియు కాల్ ద్వారా కనెక్ట్ చేయబడిన రిమోట్ నంబర్ను కనుగొనడానికి యాప్ను అనుమతిస్తుంది.""ప్రాథమిక టెలిఫోన్ స్టేటస్, గుర్తింపును చదవండి""పరికరం తాలూకు ప్రాథమిక టెలిఫోన్ ఫీచర్లను యాక్సెస్ చేయడానికి యాప్ను అనుమతిస్తుంది.""కాల్స్ను సిస్టమ్ ద్వారా వెళ్లేలా చేయి"
@@ -495,7 +499,7 @@
"వాల్పేపర్ను సెట్ చేయడం""సిస్టమ్ వాల్పేపర్ను సెట్ చేయడానికి యాప్ను అనుమతిస్తుంది.""మీ వాల్పేపర్ పరిమాణాన్ని సర్దుబాటు చేయడం"
- "సిస్టమ్ వాల్పేపర్ సైజ్ సూచనలను సెట్ చేయడానికి యాప్ను అనుమతిస్తుంది."
+ "సిస్టమ్ వాల్పేపర్ పరిమాణం సూచనలను సెట్ చేయడానికి యాప్ను అనుమతిస్తుంది.""సమయ మండలిని సెట్ చేయడం""టాబ్లెట్ యొక్క సమయ మండలిని మార్చడానికి యాప్ను అనుమతిస్తుంది.""మీ Android TV పరికరం సమయ మండలిని మార్చడానికి యాప్ని అనుమతిస్తుంది."
@@ -504,16 +508,16 @@
"టాబ్లెట్కు తెలిసిన ఖాతాల లిస్ట్ను పొందడానికి యాప్ను అనుమతిస్తుంది. దీనిలో మీరు ఇన్స్టాల్ చేసిన యాప్ల ద్వారా క్రియేట్ చేయబడిన ఖాతాలు ఏవైనా ఉండవచ్చు.""మీ Android TV పరికరానికి తెలిసిన ఖాతాల లిస్ట్ను పొందడానికి యాప్ను అనుమతిస్తుంది. దీనిలో మీరు ఇన్స్టాల్ చేసిన యాప్ల ద్వారా క్రియేట్ చేయబడిన ఖాతాలు ఏవైనా ఉండవచ్చు.""ఫోన్కు తెలిసిన ఖాతాల లిస్ట్ను పొందడానికి యాప్ను అనుమతిస్తుంది. దీనిలో మీరు ఇన్స్టాల్ చేసిన యాప్ల ద్వారా క్రియేట్ చేయబడిన ఖాతాలు ఏవైనా ఉండవచ్చు."
- "నెట్వర్క్ కనెక్షన్లను చూడటం"
- "ఏ నెట్వర్క్లు ఉన్నాయి మరియు కనెక్ట్ చేయబడ్డాయి వంటి నెట్వర్క్ కనెక్షన్ల గురించి సమాచారాన్ని చూడటానికి యాప్ను అనుమతిస్తుంది."
+ "నెట్వర్క్ కనెక్షన్లను వీక్షించడం"
+ "ఏ నెట్వర్క్లు ఉన్నాయి మరియు కనెక్ట్ చేయబడ్డాయి వంటి నెట్వర్క్ కనెక్షన్ల గురించి సమాచారాన్ని వీక్షించడానికి యాప్ను అనుమతిస్తుంది.""నెట్వర్క్ను పూర్తిగా యాక్సెస్ చేయగలగడం""నెట్వర్క్ సాకెట్లను క్రియేట్ చేయడానికి మరియు అనుకూల నెట్వర్క్ ప్రోటోకాల్లను ఉపయోగించడానికి యాప్ను అనుమతిస్తుంది. బ్రౌజర్ మరియు ఇతర యాప్లు ఇంటర్నెట్కు డేటా పంపడానికి మార్గాలను అందిస్తాయి, కనుక ఇంటర్నెట్కు డేటా పంపడానికి ఈ అనుమతి అవసరం లేదు.""నెట్వర్క్ కనెక్టివిటీని మార్చడం""నెట్వర్క్ కనెక్టివిటీ యొక్క స్థితిని మార్చడానికి యాప్ను అనుమతిస్తుంది.""టీథర్ చేయబడిన కనెక్టివిటీని మార్చడం""టీథర్ చేసిన నెట్వర్క్ కనెక్టివిటీ యొక్క స్థితిని మార్చడానికి యాప్ను అనుమతిస్తుంది."
- "Wi-Fi కనెక్షన్లను చూడటం"
- "Wi-Fi ప్రారంభించబడిందా, లేదా మరియు కనెక్ట్ చేయబడిన Wi-Fi పరికరాల పేరు వంటి Wi-Fi నెట్వర్కింగ్ గురించి సమాచారాన్ని చూడటానికి యాప్ను అనుమతిస్తుంది."
+ "Wi-Fi కనెక్షన్లను వీక్షించడం"
+ "Wi-Fi ప్రారంభించబడిందా, లేదా మరియు కనెక్ట్ చేయబడిన Wi-Fi పరికరాల పేరు వంటి Wi-Fi నెట్వర్కింగ్ గురించి సమాచారాన్ని వీక్షించడానికి యాప్ను అనుమతిస్తుంది.""Wi-Fiకి కనెక్ట్ చేయడం మరియు దాని నుండి డిస్కనెక్ట్ చేయడం""Wi-Fi యాక్సెస్ స్థానాలకు కనెక్ట్ చేయడానికి మరియు వాటి నుండి డిస్కనెక్ట్ చేయడానికి మరియు Wi-Fi నెట్వర్క్ల కోసం పరికర కాన్ఫిగరేషన్కు మార్పులు చేయడానికి యాప్ను అనుమతిస్తుంది.""Wi-Fi Multicast స్వీకరణను అనుమతించడం"
@@ -531,9 +535,9 @@
"మీ Android TV పరికరాన్ని WiMAX నెట్వర్క్లకు కనెక్ట్ చేయడానికి లేదా డిస్కనెక్ట్ చేయడానికి యాప్ని అనుమతిస్తుంది.""WiMAX నెట్వర్క్లకు ఫోన్ను కనెక్ట్ చేయడానికి మరియు వాటి నుండి ఫోన్ను డిస్కనెక్ట్ చేయడానికి యాప్ను అనుమతిస్తుంది.""బ్లూటూత్ పరికరాలతో జత చేయడం"
- "టాబ్లెట్లో బ్లూటూత్ యొక్క కాన్ఫిగరేషన్ను చూడటానికి మరియు జత చేయబడిన పరికరాలతో కనెక్షన్లను ఏర్పాటు చేయడానికి మరియు ఆమోదించడానికి యాప్ను అనుమతిస్తుంది."
+ "టాబ్లెట్లో బ్లూటూత్ యొక్క కాన్ఫిగరేషన్ను వీక్షించడానికి మరియు జత చేయబడిన పరికరాలతో కనెక్షన్లను ఏర్పాటు చేయడానికి మరియు ఆమోదించడానికి యాప్ను అనుమతిస్తుంది.""మీ Android TV పరికరం బ్లూటూత్ యొక్క కాన్ఫిగరేషన్ను చూడడానికి, జత చేయబడిన పరికరాలతో కనెక్షన్లను ఏర్పాటు చేయడానికి మరియు ఆమోదించడానికి యాప్ను అనుమతిస్తుంది."
- "ఫోన్లో బ్లూటూత్ యొక్క కాన్ఫిగరేషన్ను చూడటానికి మరియు జత చేయబడిన పరికరాలతో కనెక్షన్లను ఏర్పాటు చేయడానికి మరియు ఆమోదించడానికి యాప్ను అనుమతిస్తుంది."
+ "ఫోన్లో బ్లూటూత్ యొక్క కాన్ఫిగరేషన్ను వీక్షించడానికి మరియు జత చేయబడిన పరికరాలతో కనెక్షన్లను ఏర్పాటు చేయడానికి మరియు ఆమోదించడానికి యాప్ను అనుమతిస్తుంది.""సమీపంలోని బ్లూటూత్ పరికరాలను కనుగొని పెయిర్ చేయండి""సమీపంలోని బ్లూటూత్ పరికరాలను కనుగొనడానికి, పెయిర్ చేయడానికి యాప్ను అనుమతిస్తుంది""పెయిర్ చేసిన బ్లూటూత్ పరికరాలకు కనెక్ట్ అవ్వండి"
@@ -554,9 +558,9 @@
"ఇది మీ స్క్రీన్ లాక్ పాస్వర్డ్ సంక్లిష్టత స్థాయి (తీవ్రంగా ఉండాలా, ఓ మోస్తరుగా ఉండాలా, తక్కువ తీవ్రంగా ఉండాలా లేదా అస్సలు తీవ్రత ఉండకూడదా) తెలుసుకోవడానికి యాప్ను అనుమతిస్తుంది, అంటే పొడుగు ఎంత ఉండాలి, ఏ రకమైన స్క్రీన్ లాక్ పధ్ధతి అనుసరించాలో సూచిస్తుంది. అలాగే, స్క్రీన్ లాక్ పాస్వర్డ్ సంక్లిష్టతను ఏ స్థాయికి సెట్ చేసుకుంటే బాగుంటుందో కూడా వినియోగదారులకు యాప్ సూచించగలదు, కానీ వినియోగదారులు నిరభ్యంతరంగా ఆ సూచనలను పట్టించుకోకుండా వారి ఇష్టం మేరకు చక్కగా సెట్ చేసుకోవచ్చు. ఇంకో ముఖ్య విషయం, స్క్రీన్ లాక్ అన్నది సాదా వచన రూపంలో నిల్వ చేయబడదు, కనుక ఖచ్చితమైన పాస్వర్డ్ ఏమిటనేది యాప్కు తెలియదు.""నోటిఫికేషన్లను చూపండి""నోటిఫికేషన్లను చూపించడానికి యాప్ను అనుమతించండి"
- "బయోమెట్రిక్ హార్డ్వేర్ని ఉపయోగించండి"
+ "బయోమెట్రిక్ హార్డ్వేర్ని ఉపయోగించు""ప్రమాణీకరణ కోసం బయోమెట్రిక్ హార్డ్వేర్ను ఉపయోగించడానికి యాప్ని అనుమతిస్తుంది"
- "వేలిముద్ర హార్డ్వేర్ని మేనేజ్ చేయడానికి అనుమతి"
+ "వేలిముద్ర హార్డ్వేర్ని నిర్వహించడానికి అనుమతి""వినియోగం కోసం వేలిముద్ర టెంప్లేట్లను జోడించే, తొలగించే పద్ధతులను అమలు చేయడానికి యాప్ను అనుమతిస్తుంది.""వేలిముద్ర హార్డ్వేర్ని ఉపయోగించడానికి అనుమతి""ప్రామాణీకరణ కోసం వేలిముద్ర హార్డ్వేర్ను ఉపయోగించడానికి యాప్ను అనుమతిస్తుంది"
@@ -582,14 +586,13 @@
"స్క్రీన్ లాక్ను ఉపయోగించండి""కొనసాగించడానికి మీ స్క్రీన్ లాక్ను ఎంటర్ చేయండి""సెన్సార్ మీద గట్టిగా నొక్కండి"
- "వేలిముద్రను గుర్తించడం సాధ్యపడదు. మళ్లీ ట్రై చేయండి."
+ "వేలిముద్రను ప్రాసెస్ చేయడం సాధ్యపడలేదు. దయచేసి మళ్లీ ప్రయత్నించండి.""వేలిముద్ర సెన్సార్ను క్లీన్ చేసి, మళ్లీ ట్రై చేయండి""సెన్సార్ను క్లీన్ చేసి, మళ్లీ ట్రై చేయండి""సెన్సార్ మీద గట్టిగా నొక్కండి""వేలిని చాలా నెమ్మదిగా కదిలించారు. దయచేసి మళ్లీ ప్రయత్నించండి.""మరొక వేలిముద్రను ట్రై చేయండి""వెలుతురు అధికంగా ఉంది"
- "పవర్ బటన్ కనుగొనబడింది""సర్దుబాటు చేయడానికి ట్రై చేయండి""ప్రతిసారీ మీ వేళ్ల స్థానాన్ని కొద్దిగా మార్చండి"
@@ -601,17 +604,16 @@
"ముఖం ప్రమాణీకరించబడింది, దయచేసి ధృవీకరించును నొక్కండి""వేలిముద్ర హార్డ్వేర్ అందుబాటులో లేదు.""వేలిముద్రను సెటప్ చేయడం సాధ్యం కాదు"
- "వేలిముద్ర సెటప్ సమయం ముగిసింది. మళ్లీ ట్రై చేయండి."
+ "వేలిముద్ర గడువు సమయం చేరుకుంది. మళ్లీ ప్రయత్నించండి.""వేలిముద్ర యాక్టివిటీ రద్దయింది.""వేలిముద్ర చర్యని వినియోగదారు రద్దు చేశారు."
- "చాలా ఎక్కువ సార్లు ప్రయత్నించారు. బదులుగా స్క్రీన్ లాక్ను ఉపయోగించండి."
- "చాలా ఎక్కువ సార్లు ప్రయత్నించారు. బదులుగా స్క్రీన్ లాక్ను ఉపయోగించండి."
- "వేలిముద్రను ప్రాసెస్ చేయడం సాధ్యపడదు. మళ్లీ ట్రై చేయండి."
+ "చాలా ఎక్కువ ప్రయత్నాలు చేశారు. తర్వాత మళ్లీ ప్రయత్నించండి."
+ "అనేకసార్లు ప్రయత్నించారు. వేలిముద్ర సెన్సార్ నిలిపివేయబడింది."
+ "మళ్లీ ప్రయత్నించండి.""వేలిముద్రలు నమోదు చేయబడలేదు.""ఈ పరికరంలో వేలిముద్ర సెన్సార్ ఎంపిక లేదు.""సెన్సార్ తాత్కాలికంగా డిజేబుల్ చేయబడింది.""వేలిముద్ర సెన్సార్ను ఉపయోగించడం సాధ్యం కాదు. రిపెయిర్ ప్రొవైడర్ను సందర్శించండి"
- "Power button pressed""వేలు %d""వేలిముద్రను ఉపయోగించండి""వేలిముద్ర లేదా స్క్రీన్ లాక్ను ఉపయోగించండి"
@@ -632,33 +634,26 @@
"వేలిముద్ర అన్లాక్""వేలిముద్ర సెన్సార్ను ఉపయోగించడం సాధ్యం కాదు""రిపెయిర్ ప్రొవైడర్ను సందర్శించండి."
- "మీ ఫేస్మోడల్ క్రియేషన్ కుదరదు. మళ్లీ ట్రై చేయండి."
+ "ముఖం డేటా సరిగ్గా రాలేదు. మళ్లీ ప్రయత్నించండి.""వెలుతురు అధికంగా ఉంది. తక్కువ ఉండేలా చూడండి."
- "తగిన కాంతి లేదు"
- "ఫోన్ను కాస్త దూరంగా జరపండి"
- "ఫోన్ను దగ్గరగా పట్టుకోండి"
- "ఫోన్ను పైకి పట్టుకోండి"
- "ఫోన్ను కిందికి దించండి"
- "ఫోన్ను మీ ఎడమ వైపునకు జరపండి"
- "ఫోన్ను మీ కుడి వైపునకు జరపండి"
+ "చాలా చీకటిగా ఉంది. బాగా వెలుతురులో ప్రయత్నించండి."
+ "ఫోన్ను కాస్త దూరంగా పట్టుకోండి."
+ "ఫోన్ను దగ్గరగా పట్టుకోండి"
+ "ఫోన్ను పైకి పట్టుకోండి."
+ "ఫోన్ను కిందికి దించండి."
+ "ఫోన్ను ఎడమవైపునకు జరపండి."
+ "ఫోన్ను కుడివైపునకు జరపండి.""దయచేసి మీ పరికరం వైపు మరింత నేరుగా చూడండి."
- "మీ ముఖం కనిపించడం లేదు. మీ ఫోన్ను కంటి స్థాయిలో పట్టుకోండి."
+ "మీ ముఖాన్ని ఫోన్కు ఎదురుగా ఉంచండి.""బాగా కదుపుతున్నారు. ఫోన్ను స్థిరంగా పట్టుకోండి""దయచేసి మీ ముఖాన్ని మళ్లీ నమోదు చేయండి."
- "ముఖం గుర్తించబడలేదు. మళ్లీ ట్రై చేయండి."
- "మీ తల స్థానాన్ని కొద్దిగా మార్చండి"
- "మీ ఫోన్ వైపు మరింత నేరుగా చూడండి"
- "మీ ఫోన్ వైపు మరింత నేరుగా చూడండి"
- "మీ ఫోన్ వైపు మరింత నేరుగా చూడండి"
- "మీ ముఖానికి అడ్డుగా ఉన్నవాటిని తీసివేయండి."
- "నల్లని బార్తో సహా మీ స్క్రీన్ పైభాగం అంతటినీ శుభ్రంగా తుడవండి"
-
-
-
-
- "మీ ఫేస్మోడల్ క్రియేషన్ కుదరదు. మళ్లీ ట్రై చేయండి."
- "డార్క్ గ్లాసెస్ గుర్తించబడ్డాయి. మీ ముఖం పూర్తిగా కనిపించాలి."
- "ముఖం కవర్ చేయబడింది. మీ ముఖం పూర్తిగా కనిపించాలి."
+ "ఇక ముఖం గుర్తించలేదు. మళ్లీ ప్రయత్నించండి."
+ "ఒకే మాదిరిగా ఉంది, దయచేసి భంగిమను మార్చండి."
+ "మీ తలను ఇంకాస్త తక్కువ తిప్పండి."
+ "మీ తలను కొంచెం తక్కువగా వంపండి."
+ "మీ తలను ఎడమ/కుడి వైపుగా ఇంకాస్త తిప్పండి."
+ "మీ ముఖానికి అడ్డుగా ఉన్నవాటిని తీసివేస్తుంది."
+ "నల్లని పట్టీతో సహా మీ స్క్రీన్ పైభాగం అంతటినీ శుభ్రంగా తుడవండి""ముఖం ధృవీకరించలేరు. హార్డ్వేర్ అందుబాటులో లేదు."
@@ -687,7 +682,7 @@
"\'సింక్\'ను ఆన్, ఆఫ్ల మధ్య టోగుల్ చేయడం""ఖాతా యొక్క సింక్ సెట్టింగ్లను ఎడిట్ చేయడానికి యాప్ను అనుమతిస్తుంది. ఉదాహరణకు, ఇది ఒక ఖాతాతో వ్యక్తుల యాప్ యొక్క సింక్ను ప్రారంభించడానికి ఉపయోగించబడవచ్చు.""సింక్ గణాంకాలను చదవగలగడం"
- "ఖాతా యొక్క సింక్ గణాంకాలను అలాగే సింక్ ఈవెంట్ల హిస్టరీని మరియు ఎంత డేటా సింక్ చేయబడింది అనేవాటిని చదవడానికి యాప్ను అనుమతిస్తుంది."
+ "ఖాతా యొక్క సింక్ గణాంకాలను అలాగే సింక్ ఈవెంట్ల చరిత్రను మరియు ఎంత డేటా సమకాలీకరించబడింది అనేవాటిని చదవడానికి యాప్ను అనుమతిస్తుంది.""మీ షేర్ చేసిన నిల్వ యొక్క కంటెంట్లను చదువుతుంది""మీ షేర్ చేసిన నిల్వ యొక్క కంటెంట్లను చదవడానికి యాప్ను అనుమతిస్తుంది.""షేర్ చేయబడిన స్టోరేజ్ నుండి ఆడియో ఫైల్లను చదవండి"
@@ -705,7 +700,7 @@
"కొత్త టెలికామ్ కనెక్షన్లను నమోదు చేయడం""కొత్త టెలికామ్ కనెక్షన్లను నమోదు చేయడానికి యాప్ను అనుమతిస్తుంది.""టెలికామ్ కనెక్షన్లను నిర్వహించడం"
- "టెలికామ్ కనెక్షన్లను మేనేజ్ చేయడానికి యాప్ను అనుమతిస్తుంది."
+ "టెలికామ్ కనెక్షన్లను నిర్వహించడానికి యాప్ను అనుమతిస్తుంది.""ఇన్-కాల్ స్క్రీన్తో పరస్పర చర్య చేయడం""వినియోగదారునికి ఇన్-కాల్ స్క్రీన్ ఎప్పుడు, ఎలా కనిపించాలనే దాన్ని నియంత్రించడానికి యాప్ను అనుమతిస్తుంది.""టెలిఫోన్ సేవలతో పరస్పర చర్య చేయడం"
@@ -715,8 +710,8 @@
"చారిత్రక నెట్వర్క్ వినియోగాన్ని చదవడం""నిర్దిష్ట నెట్వర్క్లు మరియు యాప్ల కోసం చారిత్రాత్మక నెట్వర్క్ వినియోగాన్ని చదవడానికి యాప్ను అనుమతిస్తుంది.""నెట్వర్క్ విధానాన్ని నిర్వహించడం"
- "నెట్వర్క్ విధానాలను మేనేజ్ చేయడానికి మరియు యాప్-నిర్దిష్ట నిబంధనలను నిర్వచించడానికి యాప్ను అనుమతిస్తుంది."
- "నెట్వర్క్ వినియోగ అకౌంటింగ్ను ఎడిట్ చేయడం"
+ "నెట్వర్క్ విధానాలను నిర్వహించడానికి మరియు యాప్-నిర్దిష్ట నిబంధనలను నిర్వచించడానికి యాప్ను అనుమతిస్తుంది."
+ "నెట్వర్క్ వినియోగ అకౌంటింగ్ను సవరించడం""యాప్లలో నెట్వర్క్ వినియోగం ఎలా గణించాలనే దాన్ని ఎడిట్ చేయడానికి యాప్ను అనుమతిస్తుంది. సాధారణ యాప్ల ద్వారా ఉపయోగించడానికి ఉద్దేశించినది కాదు.""నోటిఫికేషన్లను యాక్సెస్ చేయడం""నోటిఫికేషన్లను, ఇతర యాప్ల ద్వారా పోస్ట్ చేయబడిన వాటిని తిరిగి పొందడానికి, పరిశీలించడానికి మరియు క్లియర్ చేయడానికి యాప్ను అనుమతిస్తుంది."
@@ -924,27 +919,27 @@
"మళ్లీ ప్రయత్నించండి""అన్ని లక్షణాలు మరియు డేటా కోసం అన్లాక్ చేయండి""ఫేస్ అన్లాక్ ప్రయత్నాల గరిష్ఠ పరిమితిని మించిపోయారు"
- "SIM లేదు"
- "టాబ్లెట్లో SIM లేదు."
- "మీ Android TV పరికరంలో SIM లేదు."
- "ఫోన్లో SIM లేదు."
- "SIMను జోడించండి."
- "SIM మిస్ అయ్యింది లేదా ఆమోదయోగ్యం కాదు. SIMను జోడించండి."
- "వినియోగించలేని SIM."
- "మీ SIM శాశ్వతంగా డీయాక్టివేట్ చేయబడింది.\n మరో SIMను పొందడం కోసం మీ వైర్లెస్ సర్వీస్ ప్రొవైడర్ను సంప్రదించండి."
+ "సిమ్ కార్డు లేదు"
+ "టాబ్లెట్లో సిమ్ కార్డు లేదు."
+ "మీ Android TV పరికరంలో SIM కార్డ్ లేదు."
+ "ఫోన్లో సిమ్ కార్డు లేదు."
+ "సిమ్ కార్డును చొప్పించండి."
+ "సిమ్ కార్డు లేదు లేదా చదవగలిగేలా లేదు. సిమ్ కార్డును చొప్పించండి."
+ "నిరుపయోగ సిమ్ కార్డు."
+ "మీ SIM కార్డ్ శాశ్వతంగా నిలిపివేయబడింది.\n మరో SIM కార్డ్ని పొందడం కోసం మీ వైర్లెస్ సేవా ప్రదాతను సంప్రదించండి.""మునుపటి ట్రాక్""తర్వాత ట్రాక్""పాజ్ చేయి""ప్లే చేయి""ఆపివేయి""రివైండ్ చేయి"
- "వేగంగా ఫార్వర్డ్ చేయి"
+ "వేగంగా ఫార్వార్డ్ చేయి""ఎమర్జెన్సీ కాల్స్ మాత్రమే""నెట్వర్క్ లాక్ చేయబడింది"
- "SIM PUK లాక్ చేయబడింది."
+ "సిమ్ కార్డు PUK-లాక్ చేయబడింది.""వినియోగదారు గైడ్ను చూడండి లేదా కస్టమర్ కేర్ను సంప్రదించండి."
- "SIM లాక్ చేయబడింది."
- "SIMను అన్లాక్ చేస్తోంది…"
+ "సిమ్ కార్డు లాక్ చేయబడింది."
+ "సిమ్ కార్డును అన్లాక్ చేస్తోంది…""మీరు మీ అన్లాక్ నమూనాను %1$d సార్లు తప్పుగా గీసారు. \n\n%2$d సెకన్లలో మళ్లీ ప్రయత్నించండి.""మీరు మీ పాస్వర్డ్ను %1$d సార్లు తప్పుగా టైప్ చేశారు. \n\n%2$d సెకన్లలో మళ్లీ ప్రయత్నించండి.""మీరు మీ పిన్ను %1$d సార్లు తప్పుగా టైప్ చేశారు. \n\n%2$d సెకన్లలో మళ్లీ ప్రయత్నించండి."
@@ -967,7 +962,7 @@
"సైన్ ఇన్ చేయండి""వినియోగదారు పేరు లేదా పాస్వర్డ్ చెల్లదు.""మీ వినియోగదారు పేరు లేదా పాస్వర్డ్ను మర్చిపోయారా?\n""google.com/accounts/recovery""ని సందర్శించండి."
- "చెక్ చేస్తోంది..."
+ "తనిఖీ చేస్తోంది...""అన్లాక్ చేయండి""ధ్వని ఆన్లో ఉంది""ధ్వని ఆఫ్లో ఉంది"
@@ -1038,9 +1033,9 @@
"పారిష్""ప్రాంతం""ఎమిరేట్"
- "మీ వెబ్ బుక్మార్క్లు మరియు హిస్టరీని చదవడం"
- "బ్రౌజర్ సందర్శించిన అన్ని URLల హిస్టరీ గురించి మరియు అన్ని బ్రౌజర్ బుక్మార్క్ల గురించి చదవడానికి యాప్ను అనుమతిస్తుంది. గమనిక: ఈ అనుమతి మూడవ పక్షం బ్రౌజర్లు లేదా వెబ్ బ్రౌజింగ్ సామర్థ్యాలు గల ఇతర యాప్ల ద్వారా అమలు చేయబడకపోవచ్చు."
- "వెబ్ బుక్మార్క్లు మరియు హిస్టరీని రాయడం"
+ "మీ వెబ్ బుక్మార్క్లు మరియు చరిత్రను చదవడం"
+ "బ్రౌజర్ సందర్శించిన అన్ని URLల చరిత్ర గురించి మరియు అన్ని బ్రౌజర్ బుక్మార్క్ల గురించి చదవడానికి యాప్ను అనుమతిస్తుంది. గమనిక: ఈ అనుమతి మూడవ పక్షం బ్రౌజర్లు లేదా వెబ్ బ్రౌజింగ్ సామర్థ్యాలు గల ఇతర యాప్ల ద్వారా అమలు చేయబడకపోవచ్చు."
+ "వెబ్ బుక్మార్క్లు మరియు చరిత్రను రాయడం""మీ టాబ్లెట్లో నిల్వ చేయబడిన బ్రౌజర్ హిస్టరీని, బుక్మార్క్లను ఎడిట్ చేయడానికి యాప్ను అనుమతిస్తుంది. ఇది బ్రౌజర్ డేటాను ఎరేజ్ చేయడానికి లేదా ఎడిట్ చేయడానికి యాప్ను అనుమతించవచ్చు. గమనిక: ఈ అనుమతిని థర్డ్ పార్టీ బ్రౌజర్లు లేదా వెబ్ బ్రౌజింగ్ సామర్థ్యాలు గల ఇతర యాప్లు అమలు చేయకపోవచ్చు.""మీ Android TV పరికరంలో నిల్వ చేసిన బ్రౌజర్ హిస్టరీ లేదా బుక్మార్క్లను ఎడిట్ చేయడానికి యాప్ని అనుమతిస్తుంది. ఇది బ్రౌజర్ డేటాను తీసివేయడానికి లేదా ఎడిట్ చేయడానికి యాప్ని అనుమతించవచ్చు. గమనిక: ఈ అనుమతి మూడవ-పక్ష బ్రౌజర్లు లేదా వెబ్ బ్రౌజింగ్ సామర్థ్యాలు గల ఇతర యాప్ల ద్వారా అమలు కాకపోవచ్చు.""మీ ఫోన్లో నిల్వ చేయబడిన బ్రౌజర్ హిస్టరీని లేదా బుక్మార్క్లను ఎడిట్ చేయడానికి యాప్ను అనుమతిస్తుంది. ఇది బ్రౌజర్ డేటాను ఎరేజ్ చేయడానికి లేదా ఎడిట్ చేయడానికి యాప్ను అనుమతించవచ్చు. గమనిక: ఈ అనుమతి మూడవ పక్షం బ్రౌజర్లు లేదా వెబ్ బ్రౌజింగ్ సామర్థ్యాలు గల ఇతర యాప్ల ద్వారా అమలు చేయబడకపోవచ్చు."
@@ -1048,7 +1043,7 @@
"ఇన్స్టాల్ చేయబడిన అలారం గడియారం యాప్లో అలారంను సెట్ చేయడానికి యాప్ను అనుమతిస్తుంది. కొన్ని అలారం గల గడియారం యాప్లు ఈ ఫీచర్ను అమలు చేయకపోవచ్చు.""వాయిస్ మెయిల్ను జోడించడం""మీ వాయిస్ మెయిల్ ఇన్బాక్స్కు మెసేజ్లను జోడించడానికి యాప్ను అనుమతిస్తుంది."
- "బ్రౌజర్ భౌగోళిక స్థానం అనుమతులను ఎడిట్ చేయడం"
+ "బ్రౌజర్ భౌగోళిక స్థానం అనుమతులను సవరించడం""బ్రౌజర్ యొక్క భౌగోళిక లొకేషన్ అనుమతులను ఎడిట్ చేయడానికి యాప్ను అనుమతిస్తుంది. హానికరమైన యాప్లు ఏకపక్ష వెబ్ సైట్లకు లొకేషన్ సమాచారాన్ని అనుమతించడానికి దీన్ని ఉపయోగించవచ్చు.""మీరు బ్రౌజర్ ఈ పాస్వర్డ్ను గుర్తుపెట్టుకోవాలని కోరుకుంటున్నారా?""ఇప్పుడు కాదు"
@@ -1076,7 +1071,7 @@
"సెర్చ్ చేయండి...""సెర్చ్""సెర్చ్ క్వెరీ"
- "ప్రశ్నను క్లియర్ చేయండి"
+ "ప్రశ్నను క్లియర్ చేయి""ప్రశ్నని సమర్పించండి""వాయిస్ సెర్చ్""తాకడం ద్వారా విశ్లేషణను ప్రారంభించాలా?"
@@ -1131,20 +1126,20 @@
"%1$02d:%2$02d""%1$d:%2$02d:%3$02d""అన్నింటినీ ఎంచుకోండి"
- "కత్తిరించండి"
- "కాపీ చేయండి"
+ "కత్తిరించు"
+ "కాపీ చేయి""క్లిప్బోర్డ్కు కాపీ చేయడంలో విఫలమైంది"
- "పేస్ట్ చేయండి"
- "సాదా వచనం లాగా పేస్ట్ చేయండి"
+ "అతికించు"
+ "సాదా వచనం లాగా అతికించు""భర్తీ చేయండి...""తొలగించండి""URLని కాపీ చేయి""వచనాన్ని ఎంచుకోండి"
- "చర్య రద్దు చేయండి"
- "చర్యను రిపీట్ చేయి"
+ "చర్య రద్దు చేయి"
+ "చర్యను పునరావృతం చేయి""ఆటోఫిల్""వచన ఎంపిక"
- "నిఘంటువుకు జోడించండి"
+ "నిఘంటువుకు జోడించు""తొలగించండి""ఇన్పుట్ పద్ధతి""వచనానికి సంబంధించిన చర్యలు"
@@ -1196,7 +1191,7 @@
"చిత్రాన్ని క్యాప్చర్ చేయి""ఈ చర్యకు ఆటోమేటిక్గా ఉపయోగించండి.""వేరొక యాప్ను ఉపయోగించండి"
- "సిస్టమ్ సెట్టింగ్లు > యాప్లు > డౌన్లోడ్ చేయబడినవిలో ఆటోమేటిక్ను క్లియర్ చేయండి."
+ "సిస్టమ్ సెట్టింగ్లు > యాప్లు > డౌన్లోడ్ చేయబడినవిలో ఆటోమేటిక్ను క్లియర్ చేయి.""చర్యను ఎంచుకోండి""USB పరికరం కోసం యాప్ను ఎంచుకోండి""ఈ చర్యను అమలు చేయగల యాప్లు ఏవీ లేవు."
@@ -1229,7 +1224,7 @@
"ఎల్లప్పుడూ చూపు""Android OS యొక్క అననుకూల వెర్షన్ కోసం %1$s రూపొందించబడింది మరియు ఊహించని సమస్యలు తలెత్తవచ్చు. యాప్ యొక్క అప్డేట్ చేసిన వెర్షన్ అందుబాటులో ఉండవచ్చు.""ఎల్లప్పుడూ చూపు"
- "అప్డేట్ కోసం చెక్ చేయండి"
+ "అప్డేట్ కోసం చెక్ చేయి""%1$s యాప్ (%2$s ప్రాసెస్) అది స్వయంగా అమలు చేసే ఖచ్చితమైన మోడ్ విధానాన్ని ఉల్లంఘించింది.""ప్రక్రియ %1$s అది స్వయంగా అమలు చేసే ఖచ్చితమైన మోడ్ విధానాన్ని ఉల్లంఘించింది.""ఫోన్ అప్డేట్ అవుతోంది…"
@@ -1246,9 +1241,10 @@
"%1$sని సిద్ధం చేస్తోంది.""యాప్లను ప్రారంభిస్తోంది.""బూట్ను ముగిస్తోంది."
+ "సెటప్ను కొనసాగించాలా?""మీరు పవర్ బటన్ను నొక్కారు — ఇది సాధారణంగా స్క్రీన్ను ఆఫ్ చేస్తుంది.\n\nమీ వేలిముద్రను సెటప్ చేస్తున్నప్పుడు తేలికగా ట్యాప్ చేయడానికి ట్రై చేయండి."
- "సెటప్ ముగించడానికి, స్క్రీన్ను ఆఫ్ చేయి"
- "ఆఫ్ చేయండి"
+ "స్క్రీన్ను ఆఫ్ చేయి"
+ "సెటప్ను కొనసాగించు""మీ వేలిముద్ర వెరిఫైను కొనసాగించాలా?""మీరు పవర్ బటన్ను నొక్కారు — ఇది సాధారణంగా స్క్రీన్ను ఆఫ్ చేస్తుంది.\n\nమీ వేలిముద్రను వెరిఫై చేయడానికి తేలికగా ట్యాప్ చేయడం ట్రై చేయండి.""స్క్రీన్ను ఆఫ్ చేయి"
@@ -1325,15 +1321,15 @@
"రద్దు చేయండి""నా ఎంపికను గుర్తుంచుకో""మీరు దీన్ని తర్వాత సెట్టింగ్లు > అనువర్తనాలులో మార్చవచ్చు"
- "ఎల్లప్పుడూ అనుమతించండి"
+ "ఎల్లప్పుడూ అనుమతించు""ఎప్పటికీ అనుమతించవద్దు"
- "SIM తీసివేయబడింది"
- "మీరు చెల్లుబాటు అయ్యే SIMతో రీస్టార్ట్ చేసే వరకు మొబైల్ నెట్వర్క్ అందుబాటులో ఉండదు."
+ "సిమ్ కార్డు తీసివేయబడింది"
+ "మీరు చెల్లుబాటు అయ్యే సిమ్ కార్డును చొప్పించి పునఃప్రారంభించే వరకు మొబైల్ నెట్వర్క్ అందుబాటులో ఉండదు.""పూర్తయింది"
- "SIM జోడించబడింది"
+ "సిమ్ కార్డు జోడించబడింది""మొబైల్ నెట్వర్క్ను యాక్సెస్ చేయడానికి మీ పరికరాన్ని పునఃప్రారంభించండి.""రీస్టార్ట్ చేయండి"
- "మొబైల్ సేవను యాక్టివేట్ చేయండి"
+ "మొబైల్ సేవను సక్రియం చేయండి""మీ కొత్త SIMని సక్రియం చేయడానికి క్యారియర్ యాప్ను డౌన్లోడ్ చేయండి""మీ కొత్త SIMని సక్రియం చేయడం కోసం %1$s యాప్ని డౌన్లోడ్ చేయండి""యాప్ని డౌన్లోడ్ చేయి"
@@ -1368,7 +1364,7 @@
"పరీక్ష నియంత్రణ మోడ్ ప్రారంభించబడింది""పరీక్ష నియంత్రణ మోడ్ను నిలిపివేయడానికి ఫ్యాక్టరీ రీసెట్ను అమలు చేయండి.""సీరియల్ కన్సోల్ ప్రారంభించబడింది"
- "పని తీరు ప్రభావితమైంది. నిలిపివేయడానికి, బూట్లోడర్ను చెక్ చేయండి."
+ "పని తీరు ప్రభావితమైంది. నిలిపివేయడానికి, బూట్లోడర్ను తనిఖీ చేయండి.""ప్రయోగాత్మక MTE ఎనేబుల్ చేయబడింది""పనితీరు, స్థిరత్వం ప్రభావితం కావచ్చు. డిజేబుల్ చేయడానికి రీబూట్ చేయండి. arm64.memtag.bootctlని ఉపయోగించి ఎనేబుల్ చేసినట్లయితే, దాన్ని ముందుగా ఏదీ లేనిదిగా సెట్ చేయండి.""USB పోర్ట్లో ద్రవ లేదా వ్యర్థ పదార్థాలు ఉన్నాయి"
@@ -1382,7 +1378,7 @@
"షేర్ చేయి""తిరస్కరిస్తున్నాను""ఇన్పుట్ పద్ధతిని ఎంచుకోండి"
- "దీన్ని భౌతిక కీబోర్డ్ యాక్టివ్గా ఉన్నప్పుడు స్క్రీన్పై ఉంచుతుంది"
+ "దీన్ని భౌతిక కీబోర్డ్ సక్రియంగా ఉన్నప్పుడు స్క్రీన్పై ఉంచుతుంది""వర్చువల్ కీబోర్డ్ను చూపు""భౌతిక కీబోర్డుని కాన్ఫిగర్ చేయండి""భాష మరియు లేఅవుట్ను ఎంచుకోవడానికి నొక్కండి"
@@ -1393,7 +1389,7 @@
"%s ఇతర యాప్లలో చూపబడుతోంది""%s ఈ లక్షణాన్ని ఉపయోగించకూడదు అని మీరు అనుకుంటే, సెట్టింగ్లను తెరవడానికి ట్యాప్ చేసి, దీన్ని ఆఫ్ చేయండి.""ఆఫ్ చేయి"
- "%sని చెక్ చేస్తోంది…"
+ "%sని తనిఖీ చేస్తోంది…""ప్రస్తుత కంటెంట్ సమీక్షించబడుతోంది""మీడియా స్టోరేజ్ను విశ్లేషిస్తోంది""కొత్త %s"
@@ -1401,16 +1397,16 @@
"సెటప్ చేయడానికి నొక్కండి""సెటప్ చేయడానికి ఎంచుకోండి""మీరు పరికరాన్ని తిరిగి ఫార్మాట్ చేయాల్సి ఉంటుంది. తొలగించడానికి ట్యాప్ చేయండి"
- "ఫోటోలు, వీడియోలు, మ్యూజిక్ ఇంకా మరిన్నింటిని స్టోర్ చేయడానికి నోటిఫికేషన్ బాడీని ఉపయోగించండి"
+ "ఫోటోలు, మీడియాను బదిలీ చేయడానికి""మీడియా ఫైల్స్ను బ్రౌజ్ చేయండి""%sతో సమస్య ఉంది""%s పని చేయటం లేదు""పరిష్కరించడానికి నొక్కండి""%s పాడైంది. సరిచేయడానికి ఎంచుకోండి.""మీరు పరికరాన్ని తిరిగి ఫార్మాట్ చేయాల్సి ఉంటుంది. తొలగించడానికి ట్యాప్ చేయండి"
- "%s గుర్తించబడింది"
+ "%sకి మద్దతు లేదు""%s పని చేయటం లేదు"
- "సెటప్ చేయడానికి ట్యాప్ చేయండి ."
+ "ఈ పరికరం ఈ %sకు సపోర్ట్ ఇవ్వదు. సపోర్ట్ ఉన్న ఫార్మాట్లో సెటప్ చేయడానికి నొక్కండి.""సపోర్ట్ చేసే ఫార్మాట్లో %sను సెటప్ చేయడానికి ఎంచుకోండి.""మీరు పరికరాన్ని తిరిగి ఫార్మాట్ చేయాల్సి ఉంటుంది""%s ఊహించని విధంగా తీసివేయబడింది"
@@ -1420,7 +1416,7 @@
"%sని తొలగిస్తోంది""తీసివేయవద్దు""సెటప్ చేయండి"
- "తొలగించండి"
+ "తొలగించు""విశ్లేషించు""అవుట్పుట్ మార్చండి""%s కనుగొనబడటం లేదు"
@@ -1433,7 +1429,7 @@
"కంటెంట్ని తరలించడానికి మళ్లీ ప్రయత్నించండి""తీసివేయబడింది""తొలగించబడింది"
- "చెక్ చేస్తోంది..."
+ "తనిఖీ చేస్తోంది...""సిద్ధంగా ఉంది""చదవడానికి మాత్రమే""అసురక్షితంగా తీసివేయబడింది"
@@ -1442,14 +1438,14 @@
"తొలగిస్తోంది…""ఫార్మాట్ చేస్తోంది...""చొప్పించబడలేదు"
- "మ్యాచ్ అయ్యే కార్యాచరణలు కనుగొనబడలేదు."
+ "సరిపోలే కార్యాచరణలు కనుగొనబడలేదు.""మీడియా అవుట్పుట్ను మళ్లించడం""మీడియా అవుట్పుట్ను ఇతర బాహ్య పరికరాలకు మళ్లించడానికి యాప్ను అనుమతిస్తుంది.""ఇన్స్టాల్ సెషన్లను చదవడం""ఇన్స్టాల్ సెషన్లను చదవడానికి యాప్ను అనుమతిస్తుంది. ఇది సక్రియ ప్యాకేజీ ఇన్స్టాలేషన్ల గురించి వివరాలను చూడటానికి యాప్ను అనుమతిస్తుంది.""ఇన్స్టాల్ ప్యాకేజీలను రిక్వెస్ట్ చేయడం""ప్యాకేజీల ఇన్స్టాలేషన్ రిక్వెస్ట్ చేయడానికి యాప్ను అనుమతిస్తుంది."
- "ప్యాకేజీలను తొలగించడానికి రిక్వెస్ట్ చేయండి"
+ "ప్యాకేజీలను తొలగించడానికి అభ్యర్థించు""ప్యాకేజీల తొలగింపును రిక్వెస్ట్ చేయడానికి యాప్ను అనుమతిస్తుంది.""బ్యాటరీ అనుకూలీకరణలను విస్మరించడానికి అడగాలి""ఆ యాప్ కోసం బ్యాటరీ అనుకూలీకరణలు విస్మరించేలా అనుమతి కోరడానికి యాప్ను అనుమతిస్తుంది."
@@ -1487,8 +1483,8 @@
"నోటిఫికేషన్ ర్యాంకర్ సేవ""VPN సక్రియం చేయబడింది""%s ద్వారా VPN సక్రియం చేయబడింది"
- "నెట్వర్క్ను మేనేజ్ చేయడానికి నొక్కండి."
- "%sకు కనెక్ట్ చేయబడింది. నెట్వర్క్ను మేనేజ్ చేయడానికి నొక్కండి."
+ "నెట్వర్క్ను నిర్వహించడానికి నొక్కండి."
+ "%sకు కనెక్ట్ చేయబడింది. నెట్వర్క్ను నిర్వహించడానికి నొక్కండి.""ఎల్లప్పుడూ-ఆన్లో ఉండే VPN కనెక్ట్ చేయబడుతోంది…""ఎల్లప్పుడూ-ఆన్లో ఉండే VPN కనెక్ట్ చేయబడింది""ఎల్లప్పుడూ ఆన్లో ఉండే VPN నుండి డిస్కనెక్ట్ చేయబడింది"
@@ -1502,7 +1498,7 @@
"డ్రైవింగ్ యాప్ నుండి నిష్క్రమించడం కోసం నొక్కండి.""వెనుకకు""తర్వాత"
- "స్కిప్ చేయండి"
+ "దాటవేయి""సరిపోలికలు లేవు""పేజీలో కనుగొనండి""{count,plural, =1{# మ్యాచ్}other{#లో {total}}}"
@@ -1511,8 +1507,8 @@
"షేర్""కనుగొనండి""వెబ్ సెర్చ్"
- "తదుపరిదాన్ని కనుగొనండి"
- "మునుపటిదాన్ని కనుగొనండి"
+ "తదుపరిదాన్ని కనుగొను"
+ "మునుపటిదాన్ని కనుగొను""%s నుండి లొకేషన్ రిక్వెస్ట్""లొకేషన్ రిక్వెస్ట్""%1$s (%2$s) ద్వారా రిక్వెస్ట్ చేయబడింది"
@@ -1520,7 +1516,7 @@
"కాదు""తొలగింపు పరిమితి మించిపోయింది""%2$s, ఖాతా %3$sకి సంబంధించి %1$d తొలగించబడే అంశాలు ఉన్నాయి. మీరు ఏమి చేయాలనుకుంటున్నారు?"
- "అంశాలను తొలగించండి"
+ "అంశాలను తొలగించు""తొలగింపులను చర్య రద్దు చేయండి""ఇప్పటికీ ఏమీ చేయవద్దు""ఖాతాను ఎంచుకోండి"
@@ -1580,8 +1576,8 @@
"నేపథ్య డేటా పరిమితం చేయబడింది""నియంత్రణ తీసివేయడానికి నొక్కండి.""అధిక మొబైల్ డేటా వినియోగం"
- "మీ యాప్లు సాధారణం కంటే ఎక్కువ డేటాను ఉపయోగించాయి"
- "%s సాధారణం కంటే ఎక్కువ డేటాను ఉపయోగించింది"
+ "మీ యాప్లు సాధారణం కంటే ఎక్కువ డేటాని ఉపయోగించాయి"
+ "%s సాధారణం కంటే ఎక్కువ డేటాని ఉపయోగించింది""సెక్యూరిటీ సర్టిఫికెట్""ఈ సర్టిఫికెట్ చెల్లుబాటు అవుతుంది.""దీనికి జారీ చేయబడింది:"
@@ -1609,7 +1605,7 @@
"టీవీ""ఫోన్""డాక్ స్పీకర్లు"
- "బాహ్య పరికరం"
+ "HDMI""హెడ్ఫోన్లు""USB""సిస్టమ్"
@@ -1642,11 +1638,11 @@
"సిమ్ ఇప్పుడు నిలిపివేయబడింది. కొనసాగడానికి PUK కోడ్ను నమోదు చేయండి. వివరాల కోసం క్యారియర్ను సంప్రదించండి.""కోరుకునే పిన్ కోడ్ను నమోదు చేయండి""కావల్సిన పిన్ కోడ్ను నిర్ధారించండి"
- "SIMను అన్లాక్ చేస్తోంది…"
+ "సిమ్ కార్డును అన్లాక్ చేస్తోంది…""చెల్లని పిన్ కోడ్.""4 నుండి 8 సంఖ్యలు ఉండే పిన్ను టైప్ చేయండి.""PUK కోడ్ 8 సంఖ్యలు ఉండాలి."
- "సరైన PUK కోడ్ను మళ్లీ నమోదు చేయండి. రిపీట్ ప్రయత్నాల వలన సిమ్ శాశ్వతంగా నిలిపివేయబడుతుంది."
+ "సరైన PUK కోడ్ను మళ్లీ నమోదు చేయండి. పునరావృత ప్రయత్నాల వలన సిమ్ శాశ్వతంగా నిలిపివేయబడుతుంది.""పిన్ కోడ్లు సరిపోలలేదు""చాలా ఎక్కువ ఆకృతి ప్రయత్నాలు చేశారు""అన్లాక్ చేయడానికి, మీ Google ఖాతాతో సైన్ ఇన్ చేయండి."
@@ -1655,7 +1651,7 @@
"సైన్ ఇన్ చేయండి""చెల్లని వినియోగదారు పేరు లేదా పాస్వర్డ్.""మీ వినియోగదారు పేరు లేదా పాస్వర్డ్ను మర్చిపోయారా?\n""google.com/accounts/recovery""ని సందర్శించండి."
- "ఖాతాను చెక్ చేస్తోంది…"
+ "ఖాతాను తనిఖీ చేస్తోంది…""మీరు మీ పిన్ను %1$d సార్లు తప్పుగా టైప్ చేశారు. \n\n%2$d సెకన్లలో మళ్లీ ప్రయత్నించండి.""మీరు మీ పాస్వర్డ్ను %1$d సార్లు తప్పుగా టైప్ చేశారు. \n\n%2$d సెకన్లలో మళ్లీ ప్రయత్నించండి.""మీరు మీ అన్లాక్ నమూనాను %1$d సార్లు తప్పుగా గీసారు. \n\n%2$d సెకన్లలో మళ్లీ ప్రయత్నించండి."
@@ -1669,7 +1665,7 @@
"మీరు మీ అన్లాక్ నమూనాను %1$d సార్లు తప్పుగా గీశారు. మరో %2$d విఫల ప్రయత్నాల తర్వాత మీ Android TV పరికరాన్ని ఈమెయిల్ ఖాతా ద్వారా అన్లాక్ చేయాల్సిందిగా మిమ్మల్ని కోరడం జరుగుతుంది.\n\n %3$d సెకన్లలో మళ్లీ ప్రయత్నించండి.""మీరు మీ అన్లాక్ నమూనాను %1$d సార్లు తప్పుగా గీసారు. మరో %2$d విఫల ప్రయత్నాల తర్వాత, ఈమెయిల్ ఖాతాను ఉపయోగించి మీ ఫోన్ను అన్లాక్ చేయాల్సిందిగా మిమ్మల్ని అడుగుతారు.\n\n %3$d సెకన్లలో మళ్లీ ప్రయత్నించండి."" — "
- "తీసివేయండి"
+ "తీసివేయి""వాల్యూమ్ను సిఫార్సు చేయబడిన స్థాయి కంటే ఎక్కువగా పెంచాలా?\n\nసుదీర్ఘ వ్యవధుల పాటు అధిక వాల్యూమ్లో వినడం వలన మీ వినికిడి శక్తి దెబ్బ తినవచ్చు.""యాక్సెస్ సామర్థ్యం షార్ట్కట్ను ఉపయోగించాలా?""షార్ట్కట్ ఆన్ చేసి ఉన్నప్పుడు, రెండు వాల్యూమ్ బటన్లను 3 సెకన్ల పాటు నొక్కి ఉంచితే యాక్సెస్ సౌలభ్య ఫీచర్ ప్రారంభం అవుతుంది."
@@ -1684,24 +1680,24 @@
"ఆఫ్""%1$sకి మీ పరికరంపై పూర్తి కంట్రోల్ను ఇవ్వాలనుకుంటున్నారా?""అవసరమైన యాక్సెసిబిలిటీ కోసం యాప్లకు పూర్తి కంట్రోల్ ఇవ్వడం తగిన పనే అయినా, అన్ని యాప్లకు అలా ఇవ్వడం సరికాదు."
- "స్క్రీన్ను చూసి, కంట్రోల్ చేయగలగడం"
+ "స్క్రీన్ను చూసి, కంట్రోల్ చేయడం""స్క్రీన్పై ఉండే కంటెంట్ మొత్తాన్ని చదవగలుగుతుంది మరియు ఇతర యాప్లలో కూడా ఈ కంటెంట్ను ప్రదర్శిస్తుంది."
- "చర్యలను చూసి, అమలు చేయగలగడం"
+ "చర్యలను చూసి, అమలు చేయండి""మీరు ఒక యాప్తో చేసే ఇంటరాక్షన్లను లేదా హార్డ్వేర్ సెన్సార్ను ట్రాక్ చేస్తూ మీ తరఫున యాప్లతో ఇంటరాక్ట్ చేయగలదు."
- "అనుమతించండి"
+ "అనుమతించు""నిరాకరించు""ఫీచర్ని ఉపయోగించడం ప్రారంభించడానికి, దాన్ని ట్యాప్ చేయండి:""యాక్సెసిబిలిటీ బటన్తో ఉపయోగించడానికి ఫీచర్లను ఎంచుకోండి""వాల్యూమ్ కీ షార్ట్కట్తో ఉపయోగించడానికి ఫీచర్లను ఎంచుకోండి""%s ఆఫ్ చేయబడింది"
- "షార్ట్కట్లను ఎడిట్ చేయండి"
+ "షార్ట్కట్లను ఎడిట్ చేయి""పూర్తయింది""షార్ట్కట్ను ఆఫ్ చేయి"
- "షార్ట్కట్ను ఉపయోగించండి"
+ "షార్ట్కట్ను ఉపయోగించు""కలర్ మార్పిడి""కలర్ కరెక్షన్""వన్-హ్యాండెడ్ మోడ్"
- "ఎక్స్ట్రా డిమ్"
+ "కాంతిని మరింత డిమ్ చేయడం""వాల్యూమ్ కీలు నొక్కి ఉంచబడ్డాయి. %1$s ఆన్ చేయబడింది""వాల్యూమ్ కీలు నొక్కి ఉంచబడ్డాయి. %1$s ఆఫ్ చేయబడింది""%1$sని ఉపయోగించడానికి వాల్యూమ్ కీలు రెండింటినీ 3 సెకన్లు నొక్కి ఉంచండి"
@@ -1711,7 +1707,7 @@
"ఫీచర్ల మధ్య మారడానికి, యాక్సెసిబిలిటీ బటన్ను నొక్కి & పట్టుకోండి.""ఫీచర్ల మధ్య మారడానికి, రెండు చేతి వేళ్ళతో పైకి స్వైప్ చేసి పట్టుకోండి.""ఫీచర్ల మధ్య మారడానికి, మూడు చేతి వేళ్ళతో పైకి స్వైప్ చేసి పట్టుకోండి."
- "మ్యాగ్నిఫికేషన్"
+ "మాగ్నిఫికేషన్""ప్రస్తుత వినియోగదారు %1$s.""%1$s యూజర్కు స్విచ్ అవుతోంది…""%1$sని లాగ్ అవుట్ చేస్తోంది…"
@@ -1719,7 +1715,7 @@
"గెస్ట్""ఎర్రర్""ఈ మార్పును మీ నిర్వాహకులు అనుమతించలేదు"
- "ఈ చర్యను మేనేజ్ చేయడానికి యాప్ ఏదీ కనుగొనబడలేదు"
+ "ఈ చర్యను నిర్వహించడానికి యాప్ ఏదీ కనుగొనబడలేదు""ఉపసంహరించండి""ISO A0""ISO A1"
@@ -1819,7 +1815,7 @@
"రద్దు చేయబడింది""కంటెంట్ను వ్రాయడంలో ఎర్రర్""తెలియదు"
- "ప్రింట్ సర్వీసు ప్రారంభించబడలేదు"
+ "ముద్రణ సేవ ప్రారంభించబడలేదు""%s సేవ ఇన్స్టాల్ చేయబడింది""ప్రారంభించడానికి నొక్కండి""నిర్వాహకుల పిన్ను నమోదు చేయండి"
@@ -1850,7 +1846,7 @@
"అన్పిన్ చేయడానికి ముందు అన్లాక్ ఆకృతి కోసం అడుగు""అన్పిన్ చేయడానికి ముందు పాస్వర్డ్ కోసం అడుగు""మీ నిర్వాహకులు ఇన్స్టాల్ చేశారు"
- "మీ నిర్వాహకులు అప్డేట్ చేశారు"
+ "మీ నిర్వాహకులు నవీకరించారు""మీ నిర్వాహకులు తొలగించారు""సరే""బ్యాటరీ సేవర్ ముదురు రంగు రూపాన్ని ఆన్ చేసి, బ్యాక్గ్రౌండ్ యాక్టివిటీ, కొన్ని విజువల్ ఎఫెక్ట్లు, నిర్దిష్ట ఫీచర్లు, ఇంకా కొన్ని నెట్వర్క్ కనెక్షన్లను పరిమితం చేస్తుంది లేదా ఆఫ్ చేస్తుంది."
@@ -1923,7 +1919,6 @@
"ప్రాంతం ప్రాధాన్యత""భాష పేరును టైప్ చేయండి""సూచించినవి"
- "సూచించబడినవి""అన్ని భాషలు""అన్ని ప్రాంతాలు""సెర్చ్"
@@ -1941,28 +1936,27 @@
"కెమెరా అందుబాటులో లేదు""ఫోన్లో కొనసాగించండి""మైక్రోఫోన్ అందుబాటులో లేదు"
- "Play Store అందుబాటులో లేదు""Android TV సెట్టింగ్లు అందుబాటులో లేవు""టాబ్లెట్ సెట్టింగ్లు అందుబాటులో లేవు""ఫోన్ సెట్టింగ్లు అందుబాటులో లేవు"
- "ఈ సమయంలో మీ %1$sలో దీన్ని యాక్సెస్ చేయడం సాధ్యపడదు. బదులుగా మీ Android TV పరికరంలో ట్రై చేయండి."
- "ఈ సమయంలో మీ %1$sలో దీన్ని యాక్సెస్ చేయడం సాధ్యపడదు. బదులుగా మీ టాబ్లెట్లో ట్రై చేయండి."
- "ఈ సమయంలో మీ %1$sలో దీన్ని యాక్సెస్ చేయడం సాధ్యపడదు. బదులుగా మీ ఫోన్లో ట్రై చేయండి."
+ "మీ %1$sలో దీన్ని యాక్సెస్ చేయడం సాధ్యపడదు. బదులుగా మీ Android TV పరికరంలో ట్రై చేయండి."
+ "మీ %1$sలో దీన్ని యాక్సెస్ చేయడం సాధ్యపడదు. బదులుగా మీ టాబ్లెట్లో ట్రై చేయండి."
+ "మీ %1$sలో దీన్ని యాక్సెస్ చేయడం సాధ్యపడదు. బదులుగా మీ ఫోన్లో ట్రై చేయండి."
+ "ఈ సమయంలో మీ %1$sలో దీన్ని యాక్సెస్ చేయడం సాధ్యపడదు. బదులుగా మీ Android TV పరికరంలో ట్రై చేయండి."
+ "ఈ సమయంలో మీ %1$sలో దీన్ని యాక్సెస్ చేయడం సాధ్యపడదు. బదులుగా మీ టాబ్లెట్లో ట్రై చేయండి."
+ "ఈ సమయంలో మీ %1$sలో దీన్ని యాక్సెస్ చేయడం సాధ్యపడదు. బదులుగా మీ ఫోన్లో ట్రై చేయండి.""ఈ యాప్ అదనపు సెక్యూరిటీ కోసం రిక్వెస్ట్ చేస్తోంది. బదులుగా మీ Android TV పరికరంలో ట్రై చేయండి.""ఈ యాప్ అదనపు సెక్యూరిటీ కోసం రిక్వెస్ట్ చేస్తోంది. బదులుగా మీ టాబ్లెట్లో ట్రై చేయండి.""ఈ యాప్ అదనపు సెక్యూరిటీ కోసం రిక్వెస్ట్ చేస్తోంది. బదులుగా మీ ఫోన్లో ట్రై చేయండి."
- "మీ %1$sలో దీన్ని యాక్సెస్ చేయడం సాధ్యపడదు. బదులుగా మీ Android TV పరికరంలో ట్రై చేయండి."
- "మీ %1$sలో దీన్ని యాక్సెస్ చేయడం సాధ్యపడదు. బదులుగా మీ టాబ్లెట్లో ట్రై చేయండి."
- "మీ %1$sలో దీన్ని యాక్సెస్ చేయడం సాధ్యపడదు. బదులుగా మీ ఫోన్లో ట్రై చేయండి."
- "ఈ యాప్ పాత వెర్షన్ Android కోసం రూపొందించబడింది మరియు అది సరిగ్గా పని చేయకపోవచ్చు. అప్డేట్ల కోసం చెక్ చేయడానికి ప్రయత్నించండి లేదా డెవలపర్ని సంప్రదించండి."
- "అప్డేట్ కోసం చెక్ చేయండి"
+ "ఈ యాప్ పాత వెర్షన్ Android కోసం రూపొందించబడింది మరియు అది సరిగ్గా పని చేయకపోవచ్చు. అప్డేట్ల కోసం తనిఖీ చేయడానికి ప్రయత్నించండి లేదా డెవలపర్ని సంప్రదించండి."
+ "అప్డేట్ కోసం తనిఖీ చేయండి""మీకు కొత్త మెసేజ్లు ఉన్నాయి"
- "చూడటానికి SMS యాప్ను తెరవండి"
+ "వీక్షించడానికి SMS యాప్ను తెరవండి""కొంత ఫంక్షనాలిటీ పరిమితం కావచ్చు""కార్యాలయ ప్రొఫైల్ లాక్ అయింది""కార్యాలయ ప్రొఫైల్ అన్లాక్ చేయుటకు నొక్కండి""%1$sకి కనెక్ట్ చేయబడింది"
- "ఫైళ్లను చూడటానికి నొక్కండి"
+ "ఫైళ్లను వీక్షించడానికి నొక్కండి""పిన్ చేయి""%1$sను పిన్ చేయండి""అన్పిన్ చేయి"
@@ -1976,7 +1970,7 @@
"సాధనం చిట్కా""గేమ్లు""సంగీతం & ఆడియో"
- "సినిమాలు & వీడియో"
+ "చలనచిత్రాలు & వీడియో""ఫోటోలు, ఇమేజ్లు""సామాజికం & కమ్యూనికేషన్""వార్తలు & వార్తాపత్రికలు"
@@ -2005,7 +1999,7 @@
"%1$sని ""%2$s""లో అప్డేట్ చేయాలా?""%1$s మరియు %2$sని ""%3$s""లో అప్డేట్ చేయాలా?""ఈ అంశాలను ""%4$s""లో అప్డేట్ చేయాలా: %1$s, %2$s మరియు %3$s ?"
- "సేవ్ చేయండి"
+ "సేవ్ చేయి""వద్దు, ధన్యవాదాలు""ఇప్పుడు కాదు""ఎప్పుడూ వద్దు"
@@ -2046,8 +2040,7 @@
"అన్ని పరికర లాగ్లను యాక్సెస్ చేయడానికి %sను అనుమతించాలా?""వన్-టైమ్ యాక్సెస్ను అనుమతించండి""అనుమతించవద్దు"
- "మీ పరికరంలో జరిగే దాన్ని పరికర లాగ్లు రికార్డ్ చేస్తాయి. సమస్యలను కనుగొని, పరిష్కరించడానికి యాప్లు ఈ లాగ్లను ఉపయోగిస్తాయి.\n\nకొన్ని లాగ్లలో గోప్యమైన సమాచారం ఉండవచ్చు, కాబట్టి మీరు విశ్వసించే యాప్లను మాత్రమే అన్ని పరికర లాగ్లను యాక్సెస్ చేయడానికి అనుమతించండి. \n\nఅన్ని పరికర లాగ్లను యాక్సెస్ చేయడానికి మీరు ఈ యాప్ను అనుమతించకపోతే, అది తన స్వంత లాగ్లను ఇప్పటికి యాక్సెస్ చేయగలదు. మీ పరికర తయారీదారు ఇప్పటికీ మీ పరికరంలో కొన్ని లాగ్లు లేదా సమాచారాన్ని యాక్సెస్ చేయగలరు."
- "మీ పరికరంలో జరిగే దాన్ని పరికర లాగ్లు రికార్డ్ చేస్తాయి. సమస్యలను కనుగొని, పరిష్కరించడానికి యాప్లు ఈ లాగ్లను ఉపయోగిస్తాయి.\n\nకొన్ని లాగ్లలో గోప్యమైన సమాచారం ఉండవచ్చు, కాబట్టి మీరు విశ్వసించే యాప్లను మాత్రమే అన్ని పరికర లాగ్లను యాక్సెస్ చేయడానికి అనుమతించండి. \n\nఅన్ని పరికర లాగ్లను యాక్సెస్ చేయడానికి మీరు ఈ యాప్ను అనుమతించకపోతే, అది తన స్వంత లాగ్లను ఇప్పటికి యాక్సెస్ చేయగలదు. మీ పరికర తయారీదారు ఇప్పటికీ మీ పరికరంలో కొన్ని లాగ్లు లేదా సమాచారాన్ని యాక్సెస్ చేయగలరు.\n\ng.co/android/devicelogsలో దీని గురించి మరింత తెలుసుకోండి."
+ "మీ పరికరంలో జరిగే దాన్ని పరికర లాగ్లు రికార్డ్ చేస్తాయి. సమస్యలను కనుగొని, పరిష్కరించడానికి యాప్లు ఈ లాగ్లను ఉపయోగిస్తాయి.\n\nకొన్ని లాగ్లలో గోప్యమైన సమాచారం ఉండవచ్చు, కాబట్టి మీరు విశ్వసించే యాప్లను మాత్రమే అన్ని పరికర లాగ్లను యాక్సెస్ చేయడానికి అనుమతించండి. \n\nఅన్ని పరికర లాగ్లను యాక్సెస్ చేయడానికి మీరు ఈ యాప్ను అనుమతించకపోతే, అది తన స్వంత లాగ్లను ఇప్పటికి యాక్సెస్ చేయగలదు. మీ పరికర తయారీదారు ఇప్పటికీ మీ పరికరంలో కొన్ని లాగ్లు లేదా సమాచారాన్ని యాక్సెస్ చేయగలరు. మరింత తెలుసుకోండి""మళ్లీ చూపవద్దు""%1$s%2$s స్లైస్లను చూపించాలనుకుంటోంది""ఎడిట్ చేయండి"
@@ -2058,9 +2051,10 @@
"కొత్తది: అంతరాయం కలిగించవద్దు నోటిఫికేషన్లను దాస్తోంది""మరింత తెలుసుకోవడానికి మరియు మార్చడానికి నొక్కండి.""అంతరాయం కలిగించవద్దు మార్చబడింది"
- "బ్లాక్ చేయబడిన దాన్ని చెక్ చేయడానికి నొక్కండి."
+ "బ్లాక్ చేయబడిన దాన్ని తనిఖీ చేయడానికి నొక్కండి.""నోటిఫికేషన్ సెట్టింగ్లను రివ్యూ చేయండి"
- "Android 13తో మొదలుకుని, మీరు ఇన్స్టాల్ చేసే యాప్లకు నోటిఫికేషన్లను పంపడానికి మీ అనుమతి అవసరం. ఇప్పటికే ఉన్న యాప్ల కోసం ఈ అనుమతిని మార్చడానికి ట్యాప్ చేయండి."
+
+ "తర్వాత గుర్తు చేయి""విస్మరించండి""సిస్టమ్"
@@ -2068,7 +2062,7 @@
"కెమెరా""మైక్రోఫోన్""మీ స్క్రీన్పై ఇతర యాప్ల ద్వారా ప్రదర్శించబడుతోంది"
- "ఫీడ్బ్యాక్ ఇవ్వండి"
+ "ఫీడ్బ్యాక్ను అందించండి""ఈ నోటిఫికేషన్, ఆటోమేటిక్ సెట్టింగ్కు ప్రమోట్ చేయబడింది. ఫీడ్బ్యాక్ను అందించడానికి ట్యాప్ చేయండి.""ఈ నోటిఫికేషన్ స్థాయి నిశ్శబ్దంగా ఉండేలా తగ్గించబడింది. ఫీడ్బ్యాక్ను అందించడానికి ట్యాప్ చేయండి.""ఈ నోటిఫికేషన్కు ఎక్కువ ర్యాంక్ ఇవ్వబడింది. ఫీడ్బ్యాక్ను అందించడానికి ట్యాప్ చేయండి."
@@ -2146,13 +2140,13 @@
"ఈ కంటెంట్ వ్యక్తిగత యాప్తో షేర్ చేయడం సాధ్యం కాదు""ఈ కంటెంట్ వ్యక్తిగత యాప్తో తెరవడం సాధ్యం కాదు""వర్క్ ప్రొఫైల్ పాజ్ చేయబడింది"
- "ఆన్ చేయడానికి ట్యాప్ చేయండి"
+ "ఆన్ చేయడానికి ట్యాప్ చేయి""వర్క్ యాప్లు లేవు""వ్యక్తిగత యాప్లు లేవు""%sను మీ వ్యక్తిగత ప్రొఫైల్లో తెరవాలా?""%sను మీ వర్క్ ప్రొఫైల్లో తెరవాలా?"
- "వ్యక్తిగత బ్రౌజర్ను ఉపయోగించండి"
- "వర్క్ బ్రౌజర్ను ఉపయోగించండి"
+ "వ్యక్తిగత బ్రౌజర్ను ఉపయోగించు"
+ "వర్క్ బ్రౌజర్ను ఉపయోగించు""SIM నెట్వర్క్ అన్లాక్ పిన్""SIM నెట్వర్క్ సబ్సెట్ అన్లాక్ పిన్""SIM కార్పొరేట్ అన్లాక్ పిన్"
@@ -2266,7 +2260,7 @@
"కొత్త మ్యాగ్నిఫికేషన్ సెట్టింగ్లు"
- "మీరు ఇప్పుడు మీ స్క్రీన్ కొంత భాగాన్ని మ్యాగ్నిఫై చేయవచ్చు"
+ "మీరు ఇప్పుడు మీ స్క్రీన్ కొంత భాగాన్ని మాగ్నిఫై చేయవచ్చు""సెట్టింగ్లలో ఆన్ చేయండి""విస్మరించు""పరికరం మైక్రోఫోన్ను అన్బ్లాక్ చేయండి"
@@ -2288,6 +2282,5 @@
"యాక్టివ్గా ఉన్న యాప్లను చెక్ చేయండి""మీ %1$s నుండి ఫోన్ కెమెరాను యాక్సెస్ చేయడం సాధ్యపడదు""మీ %1$s నుండి టాబ్లెట్ కెమెరాను యాక్సెస్ చేయడం సాధ్యపడదు"
- "స్ట్రీమింగ్ చేస్తున్నప్పుడు దీన్ని యాక్సెస్ చేయడం సాధ్యపడదు. బదులుగా మీ ఫోన్లో ట్రై చేయండి."
- "సిస్టమ్ ఆటోమేటిక్ సెట్టింగ్"
+ "సిస్టమ్ భాష"
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index a853ef135bbe6ee984c625cb41f318d09aea8397..8df4a05ecdf5c821622d5adb73f222f3ef238e70 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<ไม่มีชื่อ>""(ไม่มีหมายเลขโทรศัพท์)"
@@ -28,7 +33,6 @@
"ข้อความเสียง""MSISDN1""ปัญหาการเชื่อมต่อหรือรหัส MMI ไม่ถูกต้อง"
- "ไม่รองรับฟีเจอร์""การดำเนินการถูกจำกัดไว้ที่การจำกัดหมายเลขโทรออกเท่านั้น""ไม่สามารถเปลี่ยนการตั้งค่าการโอนสายจากโทรศัพท์ในขณะที่โรมมิ่ง""เปิดใช้งานบริการแล้ว"
@@ -43,8 +47,8 @@
"PIN ที่คุณพิมพ์ไม่ตรงกัน""พิมพ์ PIN ซึ่งเป็นเลข 4-8 หลัก""พิมพ์รหัส PUK ซึ่งต้องเป็นตัวเลขอย่างน้อย 8 หลัก"
- "SIM ถูกล็อกด้วย PUK พิมพ์รหัส PUK เพื่อปลดล็อก"
- "พิมพ์ PUK2 เพื่อเลิกบล็อก SIM"
+ "ซิมการ์ดของคุณถูกล็อกด้วย PUK พิมพ์รหัส PUK เพื่อปลดล็อก"
+ "พิมพ์ PUK2 เพื่อยกเลิกการปิดกั้นซิมการ์ด""ไม่สำเร็จ เปิดใช้การล็อกซิม/RUIM"คุณพยายามได้อีก %d ครั้งก่อนที่ซิมจะล็อก
@@ -266,7 +270,7 @@
"999+""การแจ้งเตือนใหม่""แป้นพิมพ์เสมือน"
- "แป้นพิมพ์จริง"
+ "แป้นพิมพ์บนเครื่อง""ความปลอดภัย""โหมดรถยนต์""สถานะบัญชี"
@@ -301,12 +305,12 @@
"เข้าถึงปฏิทิน""SMS""ส่งและดูข้อความ SMS"
- "ไฟล์"
- "เข้าถึงไฟล์ในอุปกรณ์"
- "เพลงและเสียง"
- "เข้าถึงเพลงและเสียงในอุปกรณ์ได้"
- "รูปภาพและวิดีโอ"
- "เข้าถึงรูปภาพและวิดีโอในอุปกรณ์ได้"
+ "ไฟล์และเอกสาร"
+ "เข้าถึงไฟล์และเอกสารในอุปกรณ์"
+ "เพลงและเสียงอื่นๆ"
+ "เข้าถึงไฟล์เสียงในอุปกรณ์"
+ "รูปภาพและวิดีโอ"
+ "เข้าถึงไฟล์ภาพและวิดีโอในอุปกรณ์""ไมโครโฟน""บันทึกเสียง""การเคลื่อนไหวร่างกาย"
@@ -582,14 +586,13 @@
"ใช้การล็อกหน้าจอ""ป้อนข้อมูลการล็อกหน้าจอเพื่อดำเนินการต่อ""กดเซ็นเซอร์ให้แน่น"
- "ไม่รู้จักลายนิ้วมือ โปรดลองอีกครั้ง"
+ "ประมวลผลลายนิ้วมือไม่ได้ โปรดลองอีกครั้ง""ทำความสะอาดเซ็นเซอร์ลายนิ้วมือแล้วลองอีกครั้ง""ทำความสะอาดเซ็นเซอร์แล้วลองอีกครั้ง""กดเซ็นเซอร์ให้แน่น""นิ้วเคลื่อนที่ช้าเกินไป โปรดลองอีกครั้ง""ลองลายนิ้วมืออื่น""สว่างเกินไป"
- "ตรวจพบว่ามีการกดปุ่มเปิด/ปิด""ลองปรับการวางนิ้ว""เปลี่ยนตำแหน่งของนิ้วเล็กน้อยไปเรื่อยๆ ทุกครั้ง"
@@ -601,17 +604,16 @@
"ตรวจสอบสิทธิ์ใบหน้าแล้ว โปรดกดยืนยัน""ฮาร์ดแวร์ลายนิ้วมือไม่พร้อมใช้งาน""ตั้งค่าลายนิ้วมือไม่ได้"
- "การตั้งค่าลายนิ้วมือหมดเวลา โปรดลองอีกครั้ง"
+ "หมดเวลาใช้ลายนิ้วมือแล้ว โปรดลองอีกครั้ง""ยกเลิกการทำงานของลายนิ้วมือ""ผู้ใช้ยกเลิกการทำงานของลายนิ้วมือ"
- "ลองหลายครั้งเกินไป ใช้การล็อกหน้าจอแทน"
- "ลองหลายครั้งเกินไป ใช้การล็อกหน้าจอแทน"
- "ประมวลผลลายนิ้วมือไม่ได้ โปรดลองอีกครั้ง"
+ "ดำเนินการหลายครั้งเกินไป ลองอีกครั้งในภายหลัง"
+ "ลองหลายครั้งเกินไป ปิดใช้เซ็นเซอร์ลายนิ้วมือแล้ว"
+ "ลองอีกครั้ง""ไม่มีลายนิ้วมือที่ลงทะเบียน""อุปกรณ์นี้ไม่มีเซ็นเซอร์ลายนิ้วมือ""ปิดใช้เซ็นเซอร์ชั่วคราวแล้ว""ใช้เซ็นเซอร์ลายนิ้วมือไม่ได้ โปรดติดต่อผู้ให้บริการซ่อม"
- "กดปุ่มเปิด/ปิดแล้ว""นิ้ว %d""ใช้ลายนิ้วมือ""ใช้ลายนิ้วมือหรือการล็อกหน้าจอ"
@@ -632,33 +634,26 @@
"ปลดล็อกด้วยลายนิ้วมือ""ใช้เซ็นเซอร์ลายนิ้วมือไม่ได้""โปรดติดต่อผู้ให้บริการซ่อม"
- "สร้างรูปแบบใบหน้าไม่ได้ โปรดลองอีกครั้ง"
+ "บันทึกข้อมูลใบหน้าที่ถูกต้องไม่ได้ ลองอีกครั้ง""สว่างเกินไป ลองหาตำแหน่งที่แสงน้อยกว่านี้"
- "แสงสว่างไม่เพียงพอ"
- "ถือโทรศัพท์ให้ห่างกว่านี้"
- "ถือโทรศัพท์ให้ใกล้กว่านี้"
- "ยกโทรศัพท์ให้สูงขึ้น"
- "ถือโทรศัพท์ให้ต่ำลง"
- "เลื่อนโทรศัพท์ไปทางซ้าย"
- "เลื่อนโทรศัพท์ไปทางขวา"
+ "มืดเกินไป ลองหาตำแหน่งที่สว่างขึ้น"
+ "เลื่อนโทรศัพท์ออกไปไกลกว่านี้"
+ "เลื่อนโทรศัพท์เข้าไปใกล้กว่านี้"
+ "ยกโทรศัพท์ให้สูงขึ้น"
+ "ถือโทรศัพท์ให้ต่ำลง"
+ "เลื่อนโทรศัพท์ไปทางซ้าย"
+ "เลื่อนโทรศัพท์ไปทางขวา""โปรดมองตรงมาที่อุปกรณ์"
- "ไม่เห็นใบหน้า ถือโทรศัพท์ไว้ที่ระดับสายตา"
+ "หันหน้าให้ตรงกับโทรศัพท์""มีการเคลื่อนไหวมากเกินไป ถือโทรศัพท์นิ่งๆ""โปรดลงทะเบียนใบหน้าอีกครั้ง"
- "ไม่รู้จักใบหน้า โปรดลองอีกครั้ง"
- "เปลี่ยนตำแหน่งของศีรษะเล็กน้อย"
- "โปรดมองตรงมาที่โทรศัพท์"
- "โปรดมองตรงมาที่โทรศัพท์"
- "โปรดมองตรงมาที่โทรศัพท์"
+ "จำใบหน้าไม่ได้แล้ว ลองอีกครั้ง"
+ "ใกล้เคียงเกินไป โปรดเปลี่ยนท่าโพส"
+ "จัดตำแหน่งศีรษะให้ตรง"
+ "ปรับมุมศีรษะให้ตรง"
+ "จัดตำแหน่งศีรษะให้ตรง""เอาสิ่งที่ปิดบังใบหน้าออก""ทำความสะอาดด้านบนของหน้าจอ รวมถึงแถบสีดำ"
-
-
-
-
- "สร้างรูปแบบใบหน้าไม่ได้ โปรดลองอีกครั้ง"
- "ตรวจพบแว่นตาดำ ต้องมองเห็นใบหน้าของคุณทั้งหมด"
- "ตรวจพบหน้ากากอนามัย ต้องมองเห็นใบหน้าของคุณทั้งหมด""ยืนยันใบหน้าไม่ได้ ฮาร์ดแวร์ไม่พร้อมใช้งาน"
@@ -924,14 +919,14 @@
"ลองอีกครั้ง""ปลดล็อกฟีเจอร์และข้อมูลทั้งหมด""ลองใช้การปลดล็อกด้วยใบหน้าเกินจำนวนครั้งที่กำหนดแล้ว"
- "ไม่มี SIM"
- "ไม่มี SIM ในแท็บเล็ต"
- "ไม่มี SIM ในอุปกรณ์ Android TV"
- "ไม่มี SIM ในโทรศัพท์"
- "โปรดใส่ SIM"
- "ไม่มี SIM หรืออ่านไม่ได้ โปรดใส่ SIM"
- "SIM ใช้งานไม่ได้"
- "ปิดใช้งาน SIM อย่างถาวรแล้ว\n ติดต่อผู้ให้บริการไร้สายของคุณเพื่อรับ SIM ใหม่"
+ "ไม่มีซิมการ์ด"
+ "ไม่มีซิมการ์ดในแท็บเล็ต"
+ "ไม่มีซิมการ์ดในอุปกรณ์ Android TV"
+ "ไม่มีซิมการ์ดในโทรศัพท์"
+ "ใส่ซิมการ์ด"
+ "ไม่มีซิมการ์ดหรือไม่สามารถอ่านได้ โปรดใส่ซิมการ์ด"
+ "ซิมการ์ดใช้ไม่ได้"
+ "ซิมการ์ดของคุณถูกปิดใช้งานอย่างถาวร\nติดต่อผู้ให้บริการไร้สายของคุณเพื่อรับซิมการ์ดอีกอันหนึ่ง""แทร็กก่อนหน้า""แทร็กถัดไป""หยุดชั่วคราว"
@@ -941,10 +936,10 @@
"กรอไปข้างหน้า""โทรฉุกเฉินเท่านั้น""ล็อกเครือข่ายไว้"
- "SIM ถูกล็อกด้วย PUK"
+ "ซิมการ์ดถูกล็อกด้วย PUK""ดูคู่มือผู้ใช้หรือติดต่อศูนย์บริการลูกค้า"
- "SIM ถูกล็อก"
- "กำลังปลดล็อก SIM…"
+ "ซิมการ์ดถูกล็อก"
+ "กำลังปลดล็อกซิมการ์ด…""คุณวาดรูปแบบการปลดล็อกไม่ถูกต้องไป %1$d ครั้งแล้ว\n\nโปรดลองอีกครั้งในอีก %2$d วินาที""คุณพิมพ์รหัสผ่านไม่ถูกต้องไป %1$d ครั้งแล้ว\n\nลองอีกครั้งใน %2$d วินาที""คุณพิมพ์ PIN ไม่ถูกต้องไป %1$d ครั้งแล้ว\n\nลองอีกครั้งใน %2$d วินาที"
@@ -1246,9 +1241,10 @@
"กำลังเตรียม %1$s""กำลังเริ่มต้นแอปพลิเคชัน""เสร็จสิ้นการบูต"
+ "ตั้งค่าต่อไหม""คุณกดปุ่มเปิด/ปิดซึ่งโดยปกติจะเป็นการปิดหน้าจอ\n\nลองแตะเบาๆ ขณะตั้งค่าลายนิ้วมือ"
- "ปิดหน้าจอเพื่อสิ้นสุดการตั้งค่า"
- "ปิด"
+ "ปิดหน้าจอ"
+ "ตั้งค่าต่อ""ยืนยันลายนิ้วมือต่อไหม""คุณกดปุ่มเปิด/ปิดซึ่งโดยปกติจะเป็นการปิดหน้าจอ\n\nลองแตะเบาๆ เพื่อยืนยันลายนิ้วมือ""ปิดหน้าจอ"
@@ -1327,10 +1323,10 @@
"คุณสามารถเปลี่ยนค่านี้ภายหลังในการตั้งค่า > แอปพลิเคชัน""อนุญาตทุกครั้ง""ไม่อนุญาตเลย"
- "นำ SIM ออกแล้ว"
- "เครือข่ายมือถือจะใช้งานไม่ได้จนกว่าคุณจะรีสตาร์ทโดยใส่ SIM ที่ถูกต้องแล้ว"
+ "นำซิมการ์ดออกแล้ว"
+ "เครือข่ายมือถือจะไม่สามารถใช้งานได้จนกว่าคุณจะรีสตาร์ทโดยใส่ซิมการ์ดที่ถูกต้องแล้ว""เสร็จสิ้น"
- "ใส่ SIM แล้ว"
+ "เพิ่มซิมการ์ดแล้ว""รีสตาร์ทอุปกรณ์ของคุณเพื่อเข้าถึงเครือข่ายมือถือ""รีสตาร์ท""เปิดใช้งานบริการมือถือ"
@@ -1401,16 +1397,16 @@
"แตะเพื่อตั้งค่า""เลือกเพื่อตั้งค่า""คุณอาจต้องฟอร์แมตอุปกรณ์นี้ใหม่ แตะเพื่อนำอุปกรณ์ออก"
- "สำหรับการจัดเก็บรูปภาพ วิดีโอ เพลง และอื่นๆ"
+ "สำหรับการโอนรูปภาพและสื่อ""เรียกดูไฟล์สื่อ""ปัญหาเกี่ยวกับ %s""%s ใช้งานไม่ได้""แตะเพื่อแก้ไข""%s เสียหาย เลือกเพื่อแก้ไข""คุณอาจต้องฟอร์แมตอุปกรณ์นี้ใหม่ แตะเพื่อนำอุปกรณ์ออก"
- "ตรวจพบ%s"
+ "ไม่สนับสนุน %s""%s ใช้งานไม่ได้"
- "แตะเพื่อตั้งค่า"
+ "อุปกรณ์นี้ไม่สนับสนุน %s นี้ แตะเพื่อตั้งค่าในรูปแบบที่สนับสนุน""เลือกเพื่อตั้งค่า%s ในรูปแบบที่รองรับ""คุณอาจต้องฟอร์แมตอุปกรณ์นี้ใหม่""%s ถูกนำออกไปโดยไม่คาดคิด"
@@ -1423,7 +1419,7 @@
"นำอุปกรณ์ออก""สำรวจ""เปลี่ยนเอาต์พุต"
- "ไม่มี%s"
+ "ไม่มี %s""ใส่อุปกรณ์อีกครั้ง""กำลังย้าย %s""กำลังย้ายข้อมูล"
@@ -1609,7 +1605,7 @@
"ทีวี""โทรศัพท์""ลำโพงแท่นชาร์จ"
- "อุปกรณ์ภายนอก"
+ "HDMI""หูฟัง""USB""ระบบ"
@@ -1642,7 +1638,7 @@
"ซิมการ์ดถูกปิดใช้งานแล้วในตอนนี้ ป้อนรหัส PUK เพื่อดำเนินการต่อ โปรดติดต่อผู้ให้บริการสำหรับรายละเอียด""ป้อนรหัส PIN ที่ต้องการ""ยืนยันรหัส PIN ที่ต้องการ"
- "กำลังปลดล็อก SIM…"
+ "กำลังปลดล็อกซิมการ์ด…""รหัส PIN ไม่ถูกต้อง""พิมพ์ PIN ซึ่งเป็นเลข 4 ถึง 8 หลัก""รหัส PUK ต้องเป็นตัวเลข 8 หลัก"
@@ -1683,7 +1679,7 @@
"เปิด""ปิด""อนุญาตให้ %1$s ควบคุมอุปกรณ์อย่างเต็มที่ไหม"
- "การควบคุมอย่างเต็มที่เหมาะสำหรับแอปเกี่ยวกับความช่วยเหลือพิเศษ แต่ไม่เหมาะสำหรับแอปส่วนใหญ่"
+ "การควบคุมอย่างเต็มที่เหมาะสำหรับแอปที่ช่วยคุณในเรื่องความต้องการความช่วยเหลือพิเศษแต่ไม่เหมาะสำหรับแอปส่วนใหญ่""ดูและควบคุมหน้าจอ""การควบคุมนี้สามารถอ่านเนื้อหาทั้งหมดบนหน้าจอและแสดงเนื้อหาทับแอปอื่นๆ""ดูและดำเนินการ"
@@ -1713,10 +1709,10 @@
"หากต้องการสลับระหว่างฟีเจอร์ต่างๆ ให้ใช้ 3 นิ้วเลื่อนขึ้นแล้วค้างไว้""การขยาย""ผู้ใช้ปัจจุบัน %1$s"
- "กำลังเปลี่ยนเป็น%1$s…"
+ "กำลังเปลี่ยนเป็น %1$s…""กำลังออกจากระบบ %1$s…""เจ้าของ"
- "ผู้ใช้ชั่วคราว"
+ "ผู้มาเยือน""ข้อผิดพลาด""ผู้ดูแลระบบไม่อนุญาตให้ทำการเปลี่ยนแปลงนี้""ไม่พบแอปพลิเคชันสำหรับการทำงานนี้"
@@ -1923,7 +1919,6 @@
"ค่ากำหนดภูมิภาค""พิมพ์ชื่อภาษา""แนะนำ"
- "แนะนำ""ทุกภาษา""ภูมิภาคทั้งหมด""ค้นหา"
@@ -1941,19 +1936,18 @@
"กล้องไม่พร้อมใช้งาน""ดำเนินการต่อบนโทรศัพท์""ไมโครโฟนไม่พร้อมใช้งาน"
- "Play Store ไม่พร้อมให้บริการ""การตั้งค่า Android TV ไม่พร้อมใช้งาน""การตั้งค่าแท็บเล็ตไม่พร้อมใช้งาน""การตั้งค่าโทรศัพท์ไม่พร้อมใช้งาน"
- "เข้าถึงแอปนี้ใน %1$s ของคุณไม่ได้ในขณะนี้ โปรดลองเข้าถึงในอุปกรณ์ Android TV แทน"
- "เข้าถึงแอปนี้ใน %1$s ของคุณไม่ได้ในขณะนี้ โปรดลองเข้าถึงในแท็บเล็ตแทน"
- "เข้าถึงแอปนี้ใน %1$s ของคุณไม่ได้ในขณะนี้ โปรดลองเข้าถึงในโทรศัพท์แทน"
+ "เข้าถึงแอปนี้ใน %1$s ของคุณไม่ได้ โปรดลองเข้าถึงในอุปกรณ์ Android TV แทน"
+ "เข้าถึงแอปนี้ใน %1$s ของคุณไม่ได้ โปรดลองเข้าถึงในแท็บเล็ตแทน"
+ "เข้าถึงแอปนี้ใน %1$s ของคุณไม่ได้ โปรดลองเข้าถึงในโทรศัพท์แทน"
+ "เข้าถึงแอปนี้ใน %1$s ของคุณไม่ได้ในขณะนี้ โปรดลองเข้าถึงในอุปกรณ์ Android TV แทน"
+ "เข้าถึงแอปนี้ใน %1$s ของคุณไม่ได้ในขณะนี้ โปรดลองเข้าถึงในแท็บเล็ตแทน"
+ "เข้าถึงแอปนี้ใน %1$s ของคุณไม่ได้ในขณะนี้ โปรดลองเข้าถึงในโทรศัพท์แทน""แอปนี้มีการขอการรักษาความปลอดภัยเพิ่มเติม โปรดลองเข้าถึงในอุปกรณ์ Android TV แทน""แอปนี้มีการขอการรักษาความปลอดภัยเพิ่มเติม โปรดลองเข้าถึงในแท็บเล็ตแทน""แอปนี้มีการขอการรักษาความปลอดภัยเพิ่มเติม โปรดลองเข้าถึงในโทรศัพท์แทน"
- "เข้าถึงการตั้งค่านี้ใน %1$s ของคุณไม่ได้ โปรดลองเข้าถึงในอุปกรณ์ Android TV แทน"
- "เข้าถึงการตั้งค่านี้ใน %1$s ของคุณไม่ได้ โปรดลองเข้าถึงในแท็บเล็ตแทน"
- "เข้าถึงการตั้งค่านี้ใน %1$s ของคุณไม่ได้ โปรดลองเข้าถึงในโทรศัพท์แทน""แอปนี้สร้างขึ้นเพื่อ Android เวอร์ชันเก่าและอาจทำงานผิดปกติ โปรดลองตรวจหาการอัปเดตหรือติดต่อนักพัฒนาซอฟต์แวร์""ตรวจสอบอัปเดต""คุณมีข้อความใหม่"
@@ -1964,7 +1958,7 @@
"เชื่อมต่อ %1$s แล้ว""แตะเพื่อดูไฟล์""ปักหมุด"
- "ปักหมุด %1$s"
+ "ตรึง %1$s""เลิกปักหมุด""เลิกปักหมุด %1$s""ข้อมูลแอป"
@@ -2046,8 +2040,7 @@
"อนุญาตให้ %s เข้าถึงบันทึกทั้งหมดของอุปกรณ์ใช่ไหม""อนุญาตสิทธิ์เข้าถึงแบบครั้งเดียว""ไม่อนุญาต"
- "บันทึกของอุปกรณ์เก็บข้อมูลสิ่งที่เกิดขึ้นในอุปกรณ์ แอปสามารถใช้บันทึกเหล่านี้เพื่อค้นหาและแก้ไขปัญหา\n\nบันทึกบางรายการอาจมีข้อมูลที่ละเอียดอ่อน คุณจึงควรอนุญาตเฉพาะแอปที่เชื่อถือได้ให้เข้าถึงบันทึกทั้งหมดของอุปกรณ์ \n\nหากคุณไม่อนุญาตให้แอปนี้เข้าถึงบันทึกทั้งหมดของอุปกรณ์ แอปจะยังเข้าถึงบันทึกของตัวเองได้อยู่ ผู้ผลิตอุปกรณ์อาจยังเข้าถึงบันทึกหรือข้อมูลบางรายการในอุปกรณ์ของคุณได้"
- "บันทึกของอุปกรณ์เก็บข้อมูลสิ่งที่เกิดขึ้นในอุปกรณ์ แอปสามารถใช้บันทึกเหล่านี้เพื่อค้นหาและแก้ไขปัญหา\n\nบันทึกบางรายการอาจมีข้อมูลที่ละเอียดอ่อน คุณจึงควรอนุญาตเฉพาะแอปที่เชื่อถือได้ให้เข้าถึงบันทึกทั้งหมดของอุปกรณ์\n\nหากคุณไม่อนุญาตให้แอปนี้เข้าถึงบันทึกทั้งหมดของอุปกรณ์ แอปจะยังเข้าถึงบันทึกของตัวเองได้อยู่ ผู้ผลิตอุปกรณ์อาจยังเข้าถึงบันทึกหรือข้อมูลบางรายการในอุปกรณ์ได้\n\nดูข้อมูลเพิ่มเติมที่ g.co/android/devicelogs"
+ "บันทึกของอุปกรณ์เก็บข้อมูลสิ่งที่เกิดขึ้นในอุปกรณ์ แอปสามารถใช้บันทึกเหล่านี้เพื่อค้นหาและแก้ไขปัญหา\n\nบันทึกบางรายการอาจมีข้อมูลที่ละเอียดอ่อน คุณจึงควรอนุญาตเฉพาะแอปที่เชื่อถือได้ให้เข้าถึงบันทึกทั้งหมดของอุปกรณ์ \n\nหากคุณไม่อนุญาตให้แอปนี้เข้าถึงบันทึกทั้งหมดของอุปกรณ์ แอปจะยังเข้าถึงบันทึกของตัวเองได้อยู่ ผู้ผลิตอุปกรณ์อาจยังเข้าถึงบันทึกหรือข้อมูลบางรายการในอุปกรณ์ของคุณได้ ดูข้อมูลเพิ่มเติม""ไม่ต้องแสดงอีก""%1$s ต้องการแสดงส่วนต่างๆ ของ %2$s""แก้ไข"
@@ -2060,7 +2053,8 @@
"เปลี่ยน \"ห้ามรบกวน\" แล้ว""แตะเพื่อดูรายการที่ถูกบล็อก""ตรวจสอบการตั้งค่าการแจ้งเตือน"
- "ตั้งแต่ Android 13 เป็นต้นไป แอปที่คุณติดตั้งจะต้องได้รับสิทธิ์จากคุณเพื่อส่งการแจ้งเตือน แตะเพื่อเปลี่ยนแปลงสิทธิ์นี้สำหรับแอปที่มีอยู่"
+
+ "เตือนภายหลัง""ปิด""ระบบ"
@@ -2110,7 +2104,7 @@
"{count,plural, =1{{file_name} + # ไฟล์}other{{file_name} + # ไฟล์}}""ไม่พบใครที่แนะนำให้แชร์ด้วย""รายชื่อแอป"
- "แอปนี้ไม่ได้รับอนุญาตให้บันทึกเสียงแต่อาจเก็บเสียงผ่านอุปกรณ์ USB นี้ได้"
+ "แอปนี้ไม่ได้รับอนุญาตให้บันทึกเสียงแต่จะบันทึกเสียงผ่านอุปกรณ์ USB นี้ได้""หน้าแรก""กลับ""แอปล่าสุด"
@@ -2288,6 +2282,5 @@
"ตรวจสอบแอปที่ใช้งานอยู่""เข้าถึงกล้องของโทรศัพท์จาก %1$s ไม่ได้""เข้าถึงกล้องของแท็บเล็ตจาก %1$s ไม่ได้"
- "เข้าถึงเนื้อหานี้ไม่ได้ขณะที่สตรีมมิง โปรดลองเข้าถึงในโทรศัพท์แทน"
- "ค่าเริ่มต้นของระบบ"
+ "ภาษาของระบบ"
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index 791a4f6ef897a1bb18e4f7332d2ba6c6c018f7be..f1f8b93b1bce6b7ac072adbb48cf8e64ce045825 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Walang pamagat>""(Walang numero ng telepono)"
@@ -28,7 +33,6 @@
"Voicemail""MSISDN1""Problema sa koneksyon o di-wastong MMI code."
- "Hindi sinusuportahan ang feature.""Pinaghihigpitan ang pagpapatakbo sa mga fixed dialing number lang.""Hindi maaaring baguhin ang mga setting ng pagpapasa ng tawag mula sa iyong telepono habang naka-roaming ka.""Pinagana ang serbisyo."
@@ -43,8 +47,8 @@
"Hindi nagtutugma ang na-type mong mga PIN.""Mag-type ng PIN na 4 hanggang 8 numero.""Mag-type ng PUK na may 8 numbero o mas mahaba."
- "Na-PUK lock ang iyong SIM. I-type ang PUK code para i-unlock ito."
- "I-type ang PUK2 para i-unblock ang SIM."
+ "Na-PUK-lock ang iyong SIM card. I-type ang PUK code upang i-unlock ito."
+ "I-type ang PUK2 upang i-unblock ang SIM card.""Hindi matagumpay, i-enable ang SIM/RUIM Lock."Mayroon kang %d natitirang pagsubok bago ma-lock ang SIM.
@@ -301,12 +305,12 @@
"i-access ang iyong kalendaryo""SMS""magpadala at tumingin ng mga mensaheng SMS"
- "Mga File"
- "i-access ang mga file sa iyong device"
- "Musika at audio"
- "mag-access ng musika at audio sa iyong device"
- "Mga larawan at video"
- "mag-access ng mga larawan at video sa iyong device"
+ "Mga file at dokumento"
+ "i-access ang mga file at dokumento sa iyong device"
+ "Musika at iba pang audio"
+ "mag-access ng mga audio file sa iyong device"
+ "Mga larawan at video"
+ "mag-access ng mga larawan at video file sa iyong device""Mikropono""mag-record ng audio""Pisikal na aktibidad"
@@ -582,14 +586,13 @@
"Gumamit ng lock ng screen""Ilagay ang iyong lock ng screen para magpatuloy""Pumindot nang madiin sa sensor"
- "Hindi makilala ang fingerprint. Subukan ulit."
+ "Hindi maproseso ang fingerprint. Pakisubukan ulit.""Linisin ang sensor para sa fingerprint at subukan ulit""Linisin ang sensor at subukan ulit""Pumindot nang madiin sa sensor""Masyadong mabagal ang paggalaw ng daliri. Pakisubukan ulit.""Sumubok ng ibang fingerprint""Masyadong maliwanag"
- "May na-detect na pagpindot sa Power""Subukang isaayos""Bahagyang baguhin ang posisyon ng iyong daliri sa bawat pagkakataon"
@@ -601,17 +604,16 @@
"Na-authenticate ang mukha, pakipindot ang kumpirmahin""Hindi available ang hardware na ginagamitan ng fingerprint.""Hindi ma-set up ang fingerprint"
- "Nag-time out ang pag-set up ng fingerprint. Subukan ulit."
+ "Nag-time out ang fingerprint. Subukang muli.""Nakansela ang operasyong ginagamitan ng fingerprint.""Kinansela ng user ang operasyon sa fingerprint."
- "Masyadong maraming pagsubok. Gamitin na lang ang lock ng screen."
- "Masyadong maraming pagsubok. Gamitin na lang ang lock ng screen."
- "Hindi maproseso ang fingerprint. Subukan ulit."
+ "Napakaraming pagtatangka. Subukan ulit sa ibang pagkakataon."
+ "Masyadong maraming beses sumubok. Na-disable ang sensor para sa fingerprint."
+ "Subukang muli.""Walang naka-enroll na fingerprint.""Walang sensor ng fingerprint ang device na ito.""Pansamantalang na-disable ang sensor.""Hindi magamit ang sensor para sa fingerprint. Bumisita sa provider ng pag-aayos"
- "Napindot ang power button""Daliri %d""Gumamit ng fingerprint""Gumamit ng fingerprint o lock ng screen"
@@ -632,33 +634,26 @@
"Pag-unlock Gamit ang Fingerprint""Hindi magamit ang sensor para sa fingerprint""Bumisita sa provider ng pag-aayos."
- "Hindi magawa ang iyong face model. Subukan ulit."
+ "Hindi makakuha ng tamang face data. Subukang muli.""Masyadong maliwanag. Subukang bawasan ang liwanag."
- "Hindi sapat ang liwanag"
- "Ilayo pa ang telepono"
- "Ilapit pa ang telepono"
- "Itaas pa ang telepono"
- "Ibaba pa ang telepono"
- "Iusog pakaliwa ang telepono mo"
- "Iusog pakanan ang telepono mo"
+ "Masyadong madilim. Subukan sa mas maliwanag."
+ "Ilayo pa ang telepono."
+ "Ilapit pa ang telepono."
+ "Itaas pa ang telepono."
+ "Ibaba pa ang telepono."
+ "Igalaw ang telepono pakaliwa."
+ "Igalaw ang telepono pakanan.""Tumingin nang mas direkta sa iyong device."
- "Hindi makita ang mukha mo. Hawakan ang telepono mo nang kapantay ng mata."
+ "Itapat ang mukha mo sa mismong harap ng telepono.""Masyadong magalaw. Hawakang mabuti ang telepono.""Paki-enroll muli ang iyong mukha."
- "Hindi makilala ang mukha. Subukan ulit."
- "Bahagyang baguhin ang posisyon ng iyong ulo"
- "Tumingin nang mas direkta sa iyong telepono"
- "Tumingin nang mas direkta sa iyong telepono"
- "Tumingin nang mas direkta sa iyong telepono"
+ "Hindi na makilala ang mukha. Subukang muli."
+ "Masyadong magkatulad, pakibago ang pose mo."
+ "Huwag masyadong lumingon."
+ "Bawasan ang pag-tilt ng iyong ulo."
+ "Huwag masyadong lumingon.""Alisin ang anumang humaharang sa iyong mukha.""Linisin ang itaas ng iyong screen, kasama ang itim na bar"
-
-
-
-
- "Hindi magawa ang iyong face model. Subukan ulit."
- "May na-detect na madilim na salamin. Dapat ganap na nakikita ang iyong mukha."
- "May na-detect na pantakip sa mukha. Dapat ganap na nakikita ang iyong mukha.""Di ma-verify ang mukha. Di available ang hardware."
@@ -924,14 +919,14 @@
"Subukang muli""I-unlock para sa lahat ng feature at data""Nalagpasan na ang maximum na mga pagtatangka sa Pag-unlock Gamit ang Mukha"
- "Walang SIM"
- "Walang SIM sa tablet."
- "Walang SIM sa iyong Android TV device."
- "Walang SIM sa telepono."
- "Magdagdag ng SIM."
- "Wala o hindi nababasa ang SIM. Magdagdag ng SIM."
- "Hindi magagamit na SIM."
- "Permanenteng na-deactivate ang iyong SIM.\n Makipag-ugnayan sa iyong service provider ng wireless para sa isa pang SIM."
+ "Walang SIM card"
+ "Walang SIM card sa tablet."
+ "Walang SIM card sa iyong Android TV device."
+ "Walang SIM card sa telepono."
+ "Maglagay ng isang SIM card."
+ "Nawawala o hindi nababasa ang SIM card. Maglagay ng isang SIM card."
+ "Hindi nagagamit na SIM card."
+ "Ang iyong SIM card ay permanenteng naka-disable.\n Makipag-ugnay sa iyong wireless service provider para sa isa pang SIM card.""Nakaraang track""Susunod na track""I-pause"
@@ -941,10 +936,10 @@
"I-fast forward""Mga pang-emergency na tawag lang""Naka-lock ang network"
- "Naka-PUK lock ang SIM."
+ "Naka-PUK-lock ang SIM card.""Tingnan ang Gabay ng User o makipag-ugnay sa Pangangalaga sa Customer."
- "Naka-lock ang SIM."
- "Ina-unlock ang SIM…"
+ "Naka-lock ang SIM card."
+ "Ina-unlock ang SIM card…""Mali mong naguhit ang iyong pattern sa pag-unlock nang %1$d (na) beses. \n\nSubukang muli sa loob ng %2$d (na) segundo.""Na-type mo nang mali ang iyong password nang %1$d (na) beses. \n\nSubukang muli sa loob ng %2$d (na) segundo.""Na-type mo nang mali ang iyong PIN nang %1$d (na) beses. \n\nSubukang muli sa loob ng %2$d (na) segundo."
@@ -984,7 +979,7 @@
"Pinaliit ang bahagi ng pag-unlock.""%1$s widget.""Tagapili ng user"
- "Status"
+ "Katayuan""Camera""Mga kontrol ng media""Nagsimula na ang pagbabago ng ayos ng widget."
@@ -1246,9 +1241,10 @@
"Ihinahanda ang %1$s.""Sinisimulan ang apps.""Pagtatapos ng pag-boot."
+ "Ituloy ang pag-set up?""Pinindot mo ang power button — karaniwan nitong ino-off ang screen.\n\nSubukang i-tap habang sine-set up ang iyong fingerprint."
- "I-off ang screen para tapusin ang setup"
- "I-off"
+ "I-off ang screen"
+ "Ituloy ang setup""Magpatuloy sa pag-verify ng fingerprint?""Pinindot mo ang power button — karaniwan nitong ino-off ang screen.\n\nSubukang i-tap para i-verify ang iyong fingerprint.""I-off ang screen"
@@ -1327,10 +1323,10 @@
"Mapapalitan mo ito sa ibang pagkakataon sa Mga Setting > Apps""Palaging Payagan""Huwag kailanman Payagan"
- "Naalis ang SIM"
- "Hindi magiging available ang mobile network hanggang sa mag-restart ka gamit ang valid na SIM."
+ "Naalis ang SIM card"
+ "Hindi magiging available ang mobile network hanggang mag-restart ka gamit ang isang may-bisang SIM card""Tapos na"
- "Naidagdag ang SIM"
+ "Idinagdag ang SIM card""I-restart ang iyong device upang ma-access ang mobile network.""I-restart""I-activate ang serbisyo sa mobile"
@@ -1401,16 +1397,16 @@
"Mag-tap para i-set up""Piliin para i-set up""Baka kailanganin mong i-reformat ang device. I-tap para i-eject."
- "Para sa pag-store ng mga larawan, video, musika, at higit pa"
+ "Para sa paglilipat ng mga larawan at media""Mag-browse ng mga media file""Isyu sa %s""Hindi gumagana ang %s""Mag-tap para ayusin""Sira ang %s. Piliin upang ayusin.""Baka kailanganin mong i-reformat ang device. I-tap para i-eject."
- "May na-detect na %s"
+ "Hindi sinusuportahang %s""Hindi gumagana ang %s"
- "I-tap para i-set up."
+ "Hindi sinusuportahan ng device na ito ang %s na ito. I-tap upang i-set up sa isang sinusuportahang format.""Piliin para i-set up ang %s sa isang sinusuportahang format.""Baka kailanganin mong i-reformat ang device""Hindi inaasahang naalis ang %s"
@@ -1424,7 +1420,7 @@
"I-explore""Ilipat ang output""Nawawala ang %s"
- "Ikabit ulit ang device"
+ "Ikabit muli ang device""Inililipat ang %s""Naglilipat ng data""Tapos na ang paglipat ng content"
@@ -1609,7 +1605,7 @@
"TV""Telepono""Mga speaker ng dock"
- "External na Device"
+ "HDMI""Mga Headphone""USB""System"
@@ -1642,7 +1638,7 @@
"Hindi na pinagana ang SIM ngayon. Maglagay ng PUK code upang magpatuloy. Makipag-ugnay sa carrier para sa mga detalye.""Ilagay ang ninanais na PIN code""Kumpirmahin ang ninanais na PIN code"
- "Ina-unlock ang SIM…"
+ "Ina-unlock ang SIM card…""Hindi tamang PIN code.""Mag-type ng PIN na 4 hanggang 8 numero.""8 numero dapat ang PUK code."
@@ -1923,7 +1919,6 @@
"Kagustuhan sa rehiyon""I-type ang wika""Iminumungkahi"
- "Iminumungkahi""Lahat ng wika""Lahat ng rehiyon""Maghanap"
@@ -1941,19 +1936,18 @@
"Hindi available ang camera""Magpatuloy sa telepono""Hindi available ang mikropono"
- "Hindi available ang Play Store""Hindi available ang mga setting ng Android TV""Hindi available ang mga setting ng tablet""Hindi available ang mga setting ng telepono"
- "Hindi ito maa-access sa iyong %1$s sa ngayon. Subukan na lang sa iyong Android TV device."
- "Hindi ito maa-access sa iyong %1$s sa ngayon. Subukan na lang sa iyong tablet."
- "Hindi ito maa-access sa iyong %1$s sa ngayon. Subukan na lang sa iyong telepono."
+ "Hindi ito maa-access sa iyong %1$s. Subukan na lang sa iyong Android TV device."
+ "Hindi ito maa-access sa iyong %1$s. Subukan na lang sa iyong tablet."
+ "Hindi ito maa-access sa iyong %1$s. Subukan na lang sa iyong telepono."
+ "Hindi ito maa-access sa iyong %1$s sa ngayon. Subukan na lang sa iyong Android TV device."
+ "Hindi ito maa-access sa iyong %1$s sa ngayon. Subukan na lang sa iyong tablet."
+ "Hindi ito maa-access sa iyong %1$s sa ngayon. Subukan na lang sa iyong telepono.""Humihiling ng karagdagang seguridad ang app na ito. Subukan na lang sa iyong Android TV device.""Humihiling ng karagdagang seguridad ang app na ito. Subukan na lang sa iyong tablet.""Humihiling ng karagdagang seguridad ang app na ito. Subukan na lang sa iyong telepono."
- "Hindi ito maa-access sa iyong %1$s. Subukan na lang sa iyong Android TV device."
- "Hindi ito maa-access sa iyong %1$s. Subukan na lang sa iyong tablet."
- "Hindi ito maa-access sa iyong %1$s. Subukan na lang sa iyong telepono.""Ang app na ito ay ginawa para sa mas lumang bersyon ng Android at maaaring hindi gumana nang maayos. Subukang tingnan kung may mga update, o makipag-ugnayan sa developer.""Tingnan kung may update""Mayroon kang mga bagong mensahe"
@@ -2046,8 +2040,7 @@
"Payagan ang %s na i-access ang lahat ng log ng device?""Payagan ang isang beses na pag-access""Huwag payagan"
- "Nire-record ng mga log ng device kung ano ang nangyayari sa iyong device. Magagamit ng mga app ang mga log na ito para maghanap at mag-ayos ng mga isyu.\n\nPosibleng maglaman ang ilang log ng sensitibong impormasyon, kaya ang mga app lang na pinagkakatiwalaan mo ang payagang maka-access sa lahat ng log ng device. \n\nKung hindi mo papayagan ang app na ito na i-access ang lahat ng log ng device, maa-access pa rin nito ang mga sarili nitong log. Posible pa ring ma-access ng manufacturer ng iyong device ang ilang log o impormasyon sa device mo."
- "Nire-record ng mga log ng device kung ano ang nangyayari sa iyong device. Magagamit ng mga app ang mga log na ito para maghanap at mag-ayos ng mga isyu.\n\nPosibleng maglaman ang ilang log ng sensitibong impormasyon, kaya ang mga app lang na pinagkakatiwalaan mo ang payagang maka-access sa lahat ng log ng device. \n\nKung hindi mo papayagan ang app na ito na i-access ang lahat ng log ng device, maa-access pa rin nito ang mga sarili nitong log. Posible pa ring ma-access ng manufacturer ng iyong device ang ilang log o impormasyon sa device mo.\n\nMatuto pa sa g.co/android/devicelogs."
+ "Nire-record ng mga log ng device kung ano ang nangyayari sa iyong device. Magagamit ng mga app ang mga log na ito para maghanap at mag-ayos ng mga isyu.\n\nPosibleng maglaman ang ilang log ng sensitibong impormasyon, kaya ang mga app lang na pinagkakatiwalaan mo ang payagang maka-access sa lahat ng log ng device. \n\nKung hindi mo papayagan ang app na ito na i-access ang lahat ng log ng device, maa-access pa rin nito ang mga sarili nitong log. Posible pa ring ma-access ng manufacturer ng iyong device ang ilang log o impormasyon sa device mo. Matuto pa""Huwag ipakita ulit""Gustong ipakita ng %1$s ang mga slice ng %2$s""I-edit"
@@ -2060,7 +2053,8 @@
"Binago ang Huwag Istorbohin""I-tap para tingnan kung ano ang naka-block.""Suriin ang mga setting ng notification"
- "Simula sa Android 13, kakailanganin na ng mga app na ii-install mo ang iyong pahintulot para makapagpadala ng mga notification. I-tap para baguhin ang pahintulot na ito para sa mga kasalukuyang app."
+
+ "Ipaalala mamaya""I-dismiss""System"
@@ -2288,6 +2282,5 @@
"Tingnan ang mga aktibong app""Hindi ma-access ang camera ng telepono mula sa iyong %1$s""Hindi ma-access ang camera ng tablet mula sa iyong %1$s"
- "Hindi ito puwedeng i-access habang nagsi-stream. Subukan na lang sa iyong telepono."
- "Default ng system"
+ "Wika ng system"
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 4913eca807d76f0cac2a6640c697199d6eeda5eb..e05921a1f34bbf3322ea2b625feb3795e0495ef8 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Adsız>""(Telefon numarası yok)"
@@ -28,7 +33,6 @@
"Sesli Mesaj""MSISDN1""Bağlantı sorunu veya geçersiz MMI kodu."
- "Özellik desteklenmiyor.""İşlem sadece sabit arama numaralarıyla sınırlandırılmıştır.""Dolaşımdayken telefonunuzdan çağrı yönlendirme ayarları değiştirilemiyor.""Hizmet etkindi."
@@ -43,8 +47,8 @@
"Girdiğiniz PIN\'ler eşleşmiyor""4 ila 8 rakamdan oluşan bir PIN girin.""8 veya daha uzun basamaklı bir PUK kodu yazın."
- "SIM\'inizin PUK kilidi devrede. Kilidi açmak için PUK kodunu yazın."
- "SIM\'in engellemesini kaldırmak için PUK2 kodunu yazın."
+ "SIM kartınızın PUK kilidi devrede. Kilidi açmak için PUK kodunu yazın."
+ "Engellenen SIM kartı açmak için PUK2 kodunu yazın.""Başarısız. SIM/RUIM Kilidini etkinleştirin."SIM kilitlenmeden önce %d deneme hakkınız kaldı.
@@ -301,12 +305,12 @@
"takviminize erişme""SMS""SMS mesajları gönderme ve görüntüleme"
- "Dosyalar"
- "cihazınızdaki dosyalara erişme"
- "Müzik ve ses"
- "cihazınızdaki müziklere ve seslere erişme"
- "Fotoğraflar ve videolar"
- "cihazınızdaki fotoğraflara ve videolara erişme"
+ "Dosyalar ve dokümanlar"
+ "cihazınızdaki dosyalara ve dokümanlara erişme"
+ "Müzik ve diğer sesler"
+ "cihazınızdaki ses dosyalarına erişme"
+ "Fotoğraflar ve videolar"
+ "cihazınızdaki resim ve video dosyalarına erişme""Mikrofon""ses kaydetme""Fiziksel aktivite"
@@ -582,14 +586,13 @@
"Ekran kilidi kullan""Devam etmek için ekran kilidinizi girin""Sensöre sıkıca bastırın"
- "Parmak izi tanınamadı. Tekrar deneyin."
+ "Parmak izi işlenemedi. Lütfen tekrar deneyin.""Parmak izi sensörünü temizleyip tekrar deneyin""Sensörü temizleyip tekrar deneyin""Sensöre sıkıca bastırın""Parmak hareketi çok yavaştı. Lütfen tekrar deneyin.""Başka bir parmak izi deneyin""Çok parlak"
- "Güç düğmesine basma algılandı""Ayarlamayı deneyin""Her defasında parmağınızın konumunu biraz değiştirin"
@@ -601,17 +604,16 @@
"Yüz kimliği doğrulandı, lütfen onayla\'ya basın""Parmak izi donanımı kullanılamıyor.""Parmak izi ayarlanamıyor"
- "Parmak izi kurulumu zaman aşımına uğradı. Tekrar deneyin."
+ "Parmak izi için zaman aşımı oluştu. Tekrar deneyin.""Parmak izi işlemi iptal edildi.""Parmak izi işlemi kullanıcı tarafından iptal edildi."
- "Çok fazla deneme yapıldı. Bunun yerine ekran kilidini kullanın."
- "Çok fazla deneme yapıldı. Bunun yerine ekran kilidini kullanın."
- "Parmak izi işlenemiyor. Tekrar deneyin."
+ "Çok fazla deneme yapıldı. Daha sonra tekrar deneyin."
+ "Çok fazla deneme yapıldı. Parmak izi sensörü devre dışı bırakıldı."
+ "Tekrar deneyin.""Parmak izi kaydedilmedi.""Bu cihazda parmak izi sensörü yok.""Sensör geçici olarak devre dışı bırakıldı.""Parmak izi sensörü kullanılamıyor. Bir onarım hizmeti sağlayıcıyı ziyaret edin"
- "Güç düğmesine basıldı""%d. parmak""Parmak izi kullan""Parmak izi veya ekran kilidi kullan"
@@ -624,7 +626,7 @@
"Yüz Tanıma Kilidi""Yüz Tanıma Kilidi sorunu""Yüz modelinizi silmek için dokunup ardından yüzünüzü yeniden ekleyin"
- "Yüz Tanıma Kilidi\'ni kurun"
+ "Yüz Tanıma Kilidi\'ni kurma""Telefonunuza bakarak kilidini açın""Yüz Tanıma Kilidi\'ni kullanmak için Ayarlar > Gizlilik bölümünden ""Kamera erişimi""\'ni açın""Kilidi açmak için daha fazla yöntem ayarlayın"
@@ -632,33 +634,26 @@
"Parmak İzi Kilidi""Parmak izi sensörü kullanılamıyor""Bir onarım hizmeti sağlayıcıyı ziyaret edin."
- "Yüzünüzün modeli oluşturulamıyor. Tekrar deneyin."
+ "Doğru yüz verileri yakalanamadı. Tekrar deneyin.""Çok parlak. Parlaklığı daha az bir ışıklandırma deneyin."
- "Yeterli ışık yok"
- "Telefonu uzaklaştırın"
- "Telefonu yaklaştırın"
- "Telefonu daha yukarı kaldırın"
- "Telefonu daha aşağı indirin"
- "Telefonu solunuza kaydırın"
- "Telefonu sağınıza kaydırın"
+ "Çok karanlık. Daha parlak ışıkta deneyin."
+ "Telefonu uzaklaştırın."
+ "Telefonu yaklaştırın."
+ "Telefonu yukarı kaldırın."
+ "Telefonu aşağı indirin."
+ "Telefonu sola hareket ettirin."
+ "Telefonu sağa hareket ettirin.""Lütfen cihazınıza daha doğrudan bakın."
- "Yüzünüz görünmüyor. Telefonunuzu göz hizasında tutun."
+ "Yüzünüz telefonun tam karşısına gelmelidir.""Çok fazla hareket ediyorsunuz. Telefonu sabit tutun.""Lütfen yüzünüzü yeniden kaydedin."
- "Yüz tanınamadı. Tekrar deneyin."
- "Başınızın konumunu hafifçe değiştirin"
- "Telefonunuza daha doğrudan bakın"
- "Telefonunuza daha doğrudan bakın"
- "Telefonunuza daha doğrudan bakın"
+ "Yüz artık tanınamıyor. Tekrar deneyin."
+ "Duruşunuz çok benzer, lütfen pozunuzu değiştirin."
+ "Başınızı biraz daha az çevirin."
+ "Başınızı biraz daha az eğin."
+ "Başınızı biraz daha az çevirin.""Yüzünüzün görünmesini engelleyen şeyleri kaldırın.""Siyah çubuk da dahil olmak üzere ekranınızın üst kısmını temizleyin"
-
-
-
-
- "Yüzünüzün modeli oluşturulamıyor. Tekrar deneyin."
- "Koyu renk gözlükler algılandı. Yüzünüz tamamen görünür olmalıdır."
- "Yüzünüzü kapattığınız algılandı. Yüzünüz tamamen görünür olmalıdır.""Yüz doğrulanamıyor. Donanım kullanılamıyor."
@@ -924,14 +919,14 @@
"Tekrar deneyin""Tüm özellikler ve veriler için kilidi açın""Yüz Tanıma Kilidi için maksimum deneme sayısı aşıldı"
- "SIM yok"
- "Tablette SIM yok."
- "Android TV cihazınızda SIM yok."
- "Telefonda SIM yok."
- "SIM ekleyin."
- "SIM yok veya okunamıyor. SIM ekleyin."
- "Kullanılamayan SIM."
- "SIM\'iniz kalıcı olarak devre dışı bırakıldı.\n Başka bir SIM için kablosuz servis sağlayıcınızla iletişime geçin."
+ "SIM kart yok"
+ "Tablette SIM kart yok."
+ "Android TV cihazınızda SIM kart yok."
+ "Telefonda SIM kart yok."
+ "SIM kartı takın."
+ "SIM kart yok veya okunamıyor. Bir SIM kart takın."
+ "Kullanılamayan SIM kartı"
+ "SIM kartınız kalıcı olarak devre dışı bırakıldı.\n Başka bir SIM kart için kablosuz servis sağlayıcınıza başvurun.""Önceki parça""Sonraki parça""Duraklat"
@@ -941,10 +936,10 @@
"İleri sar""Yalnızca acil aramalar için""Ağ kilitli"
- "SIM\'in PUK kilidi devrede."
+ "SIM kart PUK kilidi devrede.""Kullanıcı Rehberi\'ne bakın veya Müşteri Hizmetleri\'ne başvurun."
- "SIM kilitli."
- "SIM\'in kilidi açılıyor…"
+ "SIM kart kilitli."
+ "SIM kart kilidi açılıyor…""Kilit açma deseninizi %1$d kez yanlış çizdiniz. \n\n%2$d saniye içinde tekrar deneyin.""Şifrenizi %1$d kez yanlış yazdınız. \n\n%2$d saniye içinde tekrar deneyin.""PIN kodunuzu %1$d kez yanlış girdiniz. \n\n%2$d saniye içinde tekrar deneyin."
@@ -1246,9 +1241,10 @@
"%1$s hazırlanıyor.""Uygulamalar başlatılıyor""Açılış tamamlanıyor."
+ "Kuruluma devam edilsin mi?""Güç düğmesine bastınız. Bu düğmeye basıldığında genellikle ekran kapanır.\n\nParmak izinizi tanımlarken hafifçe dokunmayı deneyin."
- "Ekranı kapatarak kurulumu sonlandırın"
- "Kapat"
+ "Ekranı kapat"
+ "Kuruluma devam et""Parmak izi doğrulamaya devam edilsin mi?""Güç düğmesine bastınız. Bu düğmeye basıldığında genellikle ekran kapanır.\n\nParmak izinizi doğrulamak için hafifçe dokunmayı deneyin.""Ekranı kapat"
@@ -1327,10 +1323,10 @@
"Bu ayarı daha sonra Ayarlar > Uygulamalar\'dan değiştirebilirsiniz.""Her Zaman İzin Ver""Asla İzin Verme"
- "SIM kaldırıldı"
- "Geçerli bir SIM ile yeniden başlatana kadar mobil ağ kullanılamayacak."
+ "SIM kart çıkarıldı"
+ "Geçerli bir SIM kart yerleştirilmiş olarak yeniden başlatana kadar mobil ağ kullanılamayacak.""Bitti"
- "SIM eklendi"
+ "SIM kart eklendi""Mobil ağa erişmek için cihazınızı yeniden başlatın.""Yeniden başlat""Mobil hizmeti etkinleştirin"
@@ -1401,16 +1397,16 @@
"Ayarlamak için dokunun""Kurmak için harici medyayı seçin""Cihazı yeniden biçimlendirmeniz gerekebilir. Çıkarmak için dokunun."
- "Fotoğraf, video, müzik ve daha fazlasını depolamak için"
+ "Fotoğraf ve medya aktarmak için""Medya dosyalarına göz atın""%s medyasında sorun oluştu""%s çalışmıyor""Düzeltmek için dokunun""%s bozuk. Düzeltmek için seçin.""Cihazı yeniden biçimlendirmeniz gerekebilir. Çıkarmak için dokunun."
- "%s algılandı"
+ "Desteklenmeyen %s""%s çalışmıyor"
- "Ayarlamak için dokunun."
+ "Bu cihaz, bu %s ortamını desteklemiyor. Desteklenen bir biçimde kurmak için dokunun.""%s kurulumunu desteklenen biçimde yapmak için seçin.""Cihazı yeniden biçimlendirmeniz gerekebilir""%s beklenmedik şekilde çıkarıldı"
@@ -1592,7 +1588,7 @@
"Geçerlilik:""Yayınlanma tarihi:""Sona erme tarihi:"
- "Seri numarası:"
+ "Seri numara:""Parmak izleri:""SHA-256 parmak izi:""SHA-1 parmak izi:"
@@ -1609,7 +1605,7 @@
"TV""Telefon""Yuva hoparlörleri"
- "Harici Cihaz"
+ "HDMI""Kulaklıklar""USB""Sistem"
@@ -1642,7 +1638,7 @@
"SIM kart artık devre dışı bırakıldı. Devam etmek için PUK kodunu girin. Ayrıntılı bilgi için operatörle bağlantı kurun.""İstenen PIN kodunu girin""İstenen PIN kodunu onaylayın"
- "SIM\'in kilidi açılıyor…"
+ "SIM kart kilidi açılıyor…""Yanlış PIN kodu.""4-8 rakamdan oluşan bir PIN girin.""PUK kodu 8 basamaklı bir sayı olmalıdır."
@@ -1923,7 +1919,6 @@
"Bölge tercihi""Dil adını yazın""Önerilen"
- "Önerilen""Tüm diller""Tüm bölgeler""Ara"
@@ -1941,19 +1936,18 @@
"Kamera kullanılamıyor""İşleme telefonda devam edin""Mikrofon kullanılamıyor"
- "Play Store kullanılamıyor""Android TV ayarları kullanılamıyor""Tablet ayarları kullanılamıyor""Telefon ayarları kullanılamıyor"
- "Bu uygulamaya şu anda %1$s cihazınızdan erişilemiyor. Bunun yerine Android TV cihazınızı kullanmayı deneyin."
- "Bu uygulamaya şu anda %1$s cihazınızdan erişilemiyor. Bunun yerine tabletinizi kullanmayı deneyin."
- "Bu uygulamaya şu anda %1$s cihazınızdan erişilemiyor. Bunun yerine telefonunuzu kullanmayı deneyin."
+ "Bu uygulamaya %1$s cihazınızdan erişilemiyor. Bunun yerine Android TV cihazınızı kullanmayı deneyin."
+ "Bu uygulamaya %1$s cihazınızdan erişilemiyor. Bunun yerine tabletinizi kullanmayı deneyin."
+ "Bu uygulamaya %1$s cihazınızdan erişilemiyor. Bunun yerine telefonunuzu kullanmayı deneyin."
+ "Bu uygulamaya şu anda %1$s cihazınızdan erişilemiyor. Bunun yerine Android TV cihazınızı kullanmayı deneyin."
+ "Bu uygulamaya şu anda %1$s cihazınızdan erişilemiyor. Bunun yerine tabletinizi kullanmayı deneyin."
+ "Bu uygulamaya şu anda %1$s cihazınızdan erişilemiyor. Bunun yerine telefonunuzu kullanmayı deneyin.""Bu uygulama daha fazla güvenlik istiyor. Bunun yerine Android TV cihazınızı kullanmayı deneyin.""Bu uygulama daha fazla güvenlik istiyor. Bunun yerine tabletinizi kullanmayı deneyin.""Bu uygulama daha fazla güvenlik istiyor. Bunun yerine telefonunuzu kullanmayı deneyin."
- "Bu uygulamaya %1$s cihazınızdan erişilemiyor. Bunun yerine Android TV cihazınızı kullanmayı deneyin."
- "Bu uygulamaya %1$s cihazınızdan erişilemiyor. Bunun yerine tabletinizi kullanmayı deneyin."
- "Bu uygulamaya %1$s cihazınızdan erişilemiyor. Bunun yerine telefonunuzu kullanmayı deneyin.""Bu uygulama Android\'in daha eski bir sürümü için oluşturuldu ve düzgün çalışmayabilir. Güncellemeleri kontrol etmeyi deneyin veya geliştiriciyle iletişime geçin.""Güncellemeleri denetle""Yeni mesajlarınız var"
@@ -2046,8 +2040,7 @@
"%s uygulamasının tüm cihaz günlüklerine erişmesine izin verilsin mi?""Tek seferlik erişim izni ver""İzin verme"
- "Cihaz günlükleri, cihazınızda olanları kaydeder. Uygulamalar, sorunları bulup düzeltmek için bu günlükleri kullanabilir.\n\nBazı günlükler hassas bilgiler içerebileceği için yalnızca güvendiğiniz uygulamaların tüm cihaz günlüklerine erişmesine izin verin. \n\nBu uygulamanın tüm cihaz günlüklerine erişmesine izin vermeseniz de kendi günlüklerine erişmeye devam edebilir. Ayrıca, cihaz üreticiniz de cihazınızdaki bazı günlüklere veya bilgilere erişmeye devam edebilir."
- "Cihaz günlükleri, cihazınızda olanları kaydeder. Uygulamalar, sorunları bulup düzeltmek için bu günlükleri kullanabilir.\n\nBazı günlükler hassas bilgiler içerebileceği için yalnızca güvendiğiniz uygulamaların tüm cihaz günlüklerine erişmesine izin verin. \n\nBu uygulamanın tüm cihaz günlüklerine erişmesine izin vermeseniz de kendi günlüklerine erişmeye devam edebilir. Ayrıca, cihaz üreticiniz de cihazınızdaki bazı günlüklere veya bilgilere erişmeye devam edebilir.\n\nDaha fazla bilgiyi g.co/android/devicelogs sayfasında bulabilirsiniz."
+ "Cihaz günlükleri, cihazınızda olanları kaydeder. Uygulamalar, sorunları bulup düzeltmek için bu günlükleri kullanabilir.\n\nBazı günlükler hassas bilgiler içerebileceği için yalnızca güvendiğiniz uygulamaların tüm cihaz günlüklerine erişmesine izin verin. \n\nBu uygulamanın tüm cihaz günlüklerine erişmesine izin vermeseniz de kendi günlüklerine erişmeye devam edebilir. Ayrıca, cihaz üreticiniz de cihazınızdaki bazı günlüklere veya bilgilere erişmeye devam edebilir. Daha fazla bilgi""Bir daha gösterme""%1$s uygulaması, %2$s dilimlerini göstermek istiyor""Düzenle"
@@ -2060,7 +2053,8 @@
"Rahatsız Etmeyin modu değişti""Nelerin engellendiğini kontrol etmek için dokunun.""Bildirim ayarlarını inceleyin"
- "Android 13\'te başlayarak yüklediğiniz uygulamaların bildirim gönderebilmesi için izniniz gereklidir. Mevcut uygulamalarda bu izni değiştirmek için dokunun."
+
+ "Sonra hatırlat""Kapat""Sistem"
@@ -2074,11 +2068,11 @@
"Bu bildirimin önem derecesi yükseltildi. Geri bildirimde bulunmak için dokunun.""Bu bildirimin önem derecesi düşürüldü. Geri bildirimde bulunmak için dokunun.""Gelişmiş bildirimler"
- "Önerilen işlemler ve yanıtlar artık gelişmiş bildirimler tarafından sağlanıyor. Android Uyarlanabilir Bildirimler artık desteklenmiyor."
+ "Önerilen işlemler ve yanıtlar artık gelişmiş bildirimler tarafından sağlanıyor. Android Uyarlamalı Bildirimler artık desteklenmiyor.""Tamam""Kapat""Daha fazla bilgi"
- "Gelişmiş bildirimler, Android 12\'de Android Uyarlanabilir Bildirimler\'in yerini aldı. Bu özellik, önerilen işlem ve yanıtları gösterir ve bildirimlerinizi organize eder.\n\nGelişmiş bildirimler, kişiler ve mesajlar gibi kişisel bilgiler dahil olmak üzere tüm bildirim içeriklerine erişebilir. Bu özellik ayrıca bildirimleri kapatabilir veya telefon aramalarını yanıtlamak ve Rahatsız Etmeyin modunu kontrol etmek gibi işlemlerle bildirimlere yanıt verebilir."
+ "Gelişmiş bildirimler, Android 12\'de Android Uyarlamalı Bildirimler\'in yerini aldı. Bu özellik, önerilen işlem ve yanıtları gösterir ve bildirimlerinizi organize eder.\n\nGelişmiş bildirimler, kişiler ve mesajlar gibi kişisel bilgiler dahil olmak üzere tüm bildirim içeriklerine erişebilir. Bu özellik ayrıca bildirimleri kapatabilir veya telefon aramalarını yanıtlamak ve Rahatsız Etmeyin modunu kontrol etmek gibi işlemlerle bildirimlere yanıt verebilir.""Rutin Modu bilgi bildirimi""Pil normal şarjdan önce bitebilir""Pilin ömrünü uzatmak için Pil Tasarrufu etkinleştirildi"
@@ -2288,6 +2282,5 @@
"Etkin uygulamaları kontrol edin""%1$s cihazınızdan telefonun kamerasına erişilemiyor""%1$s cihazınızdan tabletin kamerasına erişilemiyor"
- "Canlı oynatılırken bu içeriğe erişilemez. Bunun yerine telefonunuzu kullanmayı deneyin."
- "Sistem varsayılanı"
+ "Sistem dili"
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 5be4299194e11c586672f29a9105ce0b9258732f..7ea34f5299ddb2e6a1d6ca8d74cc37ec910bbf4f 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -21,6 +21,11 @@
"Б"
+ "КБ"
+ "МБ"
+ "ГБ"
+ "ТБ"
+ "Пб""%1$s%2$s""<Без назви>""(Немає номера тел.)"
@@ -28,7 +33,6 @@
"Голосова пошта""MSISDN1""Пробл. підключення чи недійсний код MMI."
- "Функція не підтримується.""Операція лише для номерів фіксованого набору.""У роумінгу на телефоні не можна змінити налаштування переадресації викликів.""Послугу ввімкнено."
@@ -43,8 +47,8 @@
"Введені PIN-коди не збігаються.""Введіть PIN, який скл. з 4-8 цифр.""Введіть PUK-код із 8 або більше цифр."
- "SIM-карту заблоковано PUK-кодом. Введіть PUK-код, щоб розблокувати її."
- "Введіть PUK2-код, щоб розблокувати SIM-карту."
+ "SIM-карта заблок. PUK-кодом. Введіть PUK-код, щоб її розблок."
+ "Введ. PUK2, щоб розбл. SIM-карту.""Помилка. Увімкніть блокування SIM/RUIM."У вас залишилась %d спроба. Після цього SIM-карту буде заблоковано.
@@ -303,12 +307,12 @@
"отримувати доступ до календаря""SMS""надсилати та переглядати SMS-повідомлення"
- "Файли"
- "отримувати доступ до файлів на пристрої"
- "Музика й аудіо"
- "отримувати доступ до музики й аудіо на пристрої"
- "Фото й відео"
- "отримувати доступ до фото й відео на пристрої"
+ "Файли та документи"
+ "отримувати доступ до файлів і документів на вашому пристрої"
+ "Музика й інше аудіо"
+ "отримувати доступ до аудіофайлів на вашому пристрої"
+ "Фото й відео"
+ "отримувати доступ до відеофайлів на вашому пристрої""Мікрофон""записувати аудіо""Фізична активність"
@@ -328,7 +332,7 @@
"Отримувати вміст вікна""Перевіряти вміст вікна, з яким ви взаємодієте.""Увімкнути функцію дослідження дотиком"
- "Озвучувати елементи, яких торкаються, і здійснювати навігацію екраном за допомогою жестів."
+ "Активувати голосові підказки для елементів, яких торкаються, і користуватися інтерфейсом за допомогою жестів.""Переглядати текст, який ви вводите""Включає особисті дані, як-от номери кредитних карток і паролі.""Контролювати збільшення екрана"
@@ -347,7 +351,7 @@
"Дозволяє програмі розгортати чи згортати рядок стану.""Показувати сповіщення як активності на весь екран заблокованого пристрою""Додаток зможе показувати сповіщення як активності на весь екран заблокованого пристрою"
- "Створювати ярлики"
+ "створення ярликів""Дозволяє програмі самостійно додавати ярлики на головний екран.""видаляти ярлики""Дозволяє програмі самостійно вилучати ярлики з головного екрана."
@@ -584,14 +588,13 @@
"Доступ розблокуванням екрана""Щоб продовжити, введіть дані для розблокування екрана""Міцно притисніть палець до сканера"
- "Відбиток пальця не розпізнано. Повторіть спробу."
+ "Не вдалось обробити відбиток пальця. Повторіть спробу.""Очистьте сканер відбитків пальців і повторіть спробу""Очистьте сканер і повторіть спробу""Міцно притисніть палець до сканера""Ви провели пальцем надто повільно. Повторіть спробу.""Спробуйте інший відбиток пальця""Надто яскраво"
- "Виявлено натискання кнопки живлення""Спробуйте відкоригувати відбиток пальця""Щоразу трохи змінюйте положення пальця"
@@ -603,17 +606,16 @@
"Обличчя автентифіковано. Натисніть \"Підтвердити\"""Сканер відбитків пальців недоступний.""Не вдалося створити відбиток пальця"
- "Час очікування для налаштування відбитка пальця минув. Повторіть спробу."
+ "Час очікування відбитка пальця минув. Повторіть спробу.""Дію з відбитком пальця скасовано.""Користувач скасував дію з відбитком пальця."
- "Забагато спроб. Використайте натомість розблокування екрана."
- "Забагато спроб. Використайте натомість розблокування екрана."
- "Не вдалось обробити відбиток пальця. Повторіть спробу."
+ "Забагато спроб. Спробуйте пізніше."
+ "Забагато спроб. Сканер відбитків пальців вимкнено."
+ "Повторіть спробу.""Відбитки пальців не зареєстровано.""На цьому пристрої немає сканера відбитків пальців.""Датчик тимчасово вимкнено.""Не вдається скористатися сканером відбитків пальців. Зверніться до постачальника послуг із ремонту."
- "Натиснуто кнопку живлення""Відбиток пальця %d""Доступ за відбитком пальця""Використовувати відбиток пальця або дані для розблокування екрана"
@@ -634,33 +636,26 @@
"Розблокування відбитком пальця""Не вдається скористатися сканером відбитків пальців""Зверніться до постачальника послуг із ремонту."
- "Модель обличчя не створено. Повторіть спробу."
+ "Не вдалося чітко зняти обличчя. Повторіть спробу.""Занадто яскраво. Потрібно менше світла."
- "Замало світла"
- "Тримайте телефон далі від обличчя"
- "Тримайте телефон ближче до обличчя"
- "Підніміть телефон вище"
- "Опустіть телефон нижче"
- "Посуньте телефон лівіше"
- "Посуньте телефон правіше"
+ "Занадто темно. Потрібно більше світла."
+ "Тримайте телефон далі від обличчя."
+ "Тримайте телефон ближче до обличчя."
+ "Тримайте телефон вище."
+ "Тримайте телефон нижче."
+ "Тримайте телефон лівіше."
+ "Тримайте телефон правіше.""Дивіться просто на пристрій."
- "Обличчя не видно. Утримуйте телефон на рівні очей."
+ "Тримайте телефон просто перед обличчям.""Забагато рухів. Тримайте телефон нерухомо.""Повторно проскануйте обличчя."
- "Обличчя не розпізнано. Повторіть спробу."
- "Трохи змініть положення голови"
- "Дивіться на телефон прямо"
- "Дивіться на телефон прямо"
- "Дивіться на телефон прямо"
+ "Розпізнати обличчя вже не вдається. Повторіть спробу."
+ "Надто схоже на попередню спробу, змініть позу."
+ "Трохи перемістіть обличчя."
+ "Трохи зменште нахил голови."
+ "Трохи поверніть обличчя.""Приберіть об’єкти, які затуляють ваше обличчя.""Очистьте верхню частину екрана, зокрема чорну панель"
-
-
-
-
- "Не вдається створити модель обличчя. Повторіть спробу."
- "Виявлено темні окуляри. Обличчя має бути видно повністю."
- "Виявлено аксесуар, який закриває обличчя. Обличчя має бути видно повністю.""Не вдається перевірити обличчя. Апаратне забезпечення недоступне."
@@ -926,14 +921,14 @@
"Повторіть спробу""Розблокуйте, щоб бачити всі функції й дані""Перевищено максимальну кількість спроб розблокування за допомогою функції \"Фейсконтроль\""
- "Немає SIM-карти"
- "У планшеті немає SIM-карти."
- "У пристрої Android TV немає SIM-карти."
- "У телефоні немає SIM-карти."
- "Додайте SIM-карту."
- "SIM-карта відсутня або недоступна для читання. Додайте SIM-карту."
- "Непридатна SIM-карта."
- "SIM-карту деактивовано назавжди.\n Щоб отримати іншу, зверніться до свого постачальника послуг бездротового зв’язку."
+ "Відсутня SIM-карта"
+ "У пристр. нема SIM-карти."
+ "До пристрою Android TV не підключено SIM-карту."
+ "У тел. немає SIM-карти."
+ "Вставте SIM-карту."
+ "SIM-карта відсутня або недоступна для читання. Вставте SIM-карту."
+ "Непридатна SIM-карта."
+ "Вашу SIM-карту вимкнено назавжди.\n Зверніться до свого постачальника послуг бездротового зв’язку, щоб отримати іншу SIM-карту.""Попередня композиція""Наступна композиція""Пауза"
@@ -943,10 +938,10 @@
"Перемотати вперед""Лише екстрені виклики""Мережу заблок."
- "SIM-карту заблоковано PUK-кодом."
+ "SIM-карту заблоковано PUK.""Перегляньте посібник користувача чи зверніться до служби підтримки."
- "SIM-карту заблоковано."
- "Розблокування SIM-карти…"
+ "SIM-карту заблок-но."
+ "Розблокув. SIM-карти…""Ключ розблокування неправильно намальовано стільки разів: %1$d. \n\nПовторіть спробу через %2$d сек.""Пароль неправильно введено стільки разів: %1$d.\n\nПовторіть спробу через %2$d сек.""PIN-код неправильно введено стільки разів: %1$d.\n\nПовторіть спробу через %2$d сек."
@@ -1079,7 +1074,7 @@
"Пошук""Пошуковий запит""Очистити запит"
- "Надіслати запит"
+ "Наіслати запит""Голосовий пошук""Увімкнути дослідження дотиком?""%1$s хоче ввімкнути функцію дослідження дотиком. Увімкнувши функцію дослідження дотиком, можна чути або бачити опис елемента, розташованого під вашим пальцем, або виконувати жести для взаємодії з планшетним ПК."
@@ -1163,8 +1158,8 @@
"Скасувати""Увага""Завантаження..."
- "УВІМКНЕНО"
- "ВИМКНЕНО"
+ "УВІМК"
+ "ВИМК""вибрано""не вибрано""вибрано"
@@ -1248,9 +1243,10 @@
"Підготовка додатка %1$s.""Запуск програм.""Завершення завантаження."
+ "Продовжити реєстрацію?""Ви натиснули кнопку живлення – зазвичай після цього вимикається екран.\n\nЩоб зареєструвати відбиток пальця, спробуйте лише злегка торкнутися датчика."
- "Щоб завершити, вимкніть екран"
- "Вимкнути"
+ "Вимкнути екран"
+ "Додати відбиток""Продовжити підтвердження відбитка?""Ви натиснули кнопку живлення – зазвичай після цього вимикається екран.\n\nЩоб підтвердити відбиток пальця, спробуйте лише злегка торкнутися датчика.""Вимкнути екран"
@@ -1329,10 +1325,10 @@
"Можна змінити згодом у Налаштування > Програми""Завжди дозволяти""Ніколи не дозволяти"
- "SIM-карту вилучено"
- "Мобільна мережа буде недоступна, доки ви не вставите дійсну SIM-карту й не перезапустите пристрій."
+ "SIM-карту вилучено"
+ "Мобільна мережа буде недоступна, поки ви не здійсните перезапуск, вставивши дійсну SIM-карту.""Готово"
- "SIM-карту додано"
+ "SIM-карту додано""Перезапустіть пристрій, щоб отримати доступ до мобільної мережі.""Перезапустити""Активувати мобільну службу"
@@ -1403,16 +1399,16 @@
"Торкніться, щоб налаштувати""Виберіть, щоб налаштувати""Можливо, пристрій доведеться відформатувати. Натисніть, щоб вилучити."
- "Для зберігання фотографій, відео, музики тощо"
+ "Для перенесення фотографій і медіафайлів""Перегляньте файли на носії""Проблема з носієм (%s)""%s не працює""Торкніться, щоб виправити""Пристрій %s пошкоджено. Виберіть, щоб виправити.""Можливо, пристрій доведеться відформатувати. Натисніть, щоб вилучити."
- "Знайдено пристрій (%s)"
+ "%s не підтримується""%s не працює"
- "Натисніть, щоб налаштувати"
+ "%s не підтримується цим пристроєм. Торкніться, щоб налаштувати підтримуваний формат.""Виберіть, щоб налаштувати носій (%s) у підтримуваному форматі.""Можливо, пристрій доведеться відформатувати""%s несподівано вийнято"
@@ -1483,7 +1479,7 @@
"Спеціальні можливості""Фоновий мал.""Змінити фоновий малюнок"
- "Сервіс читання сповіщень"
+ "Служба читання сповіщень""VR-режим""Постачальник умов""Служба встановлення пріоритетності сповіщень"
@@ -1611,7 +1607,7 @@
"Телевізор""Телефон""Динаміки док-станції"
- "Зовнішній пристрій"
+ "HDMI""Навушники""USB""Система"
@@ -1644,7 +1640,7 @@
"Зараз SIM-карту вимкнено. Введіть PUK-код, щоб продовжити. Зв’яжіться з оператором, щоб дізнатися більше.""Введіть потрібний PIN-код""Підтвердьте потрібний PIN-код"
- "Розблокування SIM-карти…"
+ "Розблокування SIM-карти…""Неправильний PIN-код.""Введіть PIN-код із 4–8 цифр.""PUK-код має складатися з 8 цифр."
@@ -1687,7 +1683,7 @@
"Надати сервісу %1$s повний доступ до вашого пристрою?""Повний доступ доречний для додатків, які надають спеціальні можливості, але його не варто відкривати для більшості інших додатків.""Перегляд і контроль екрана"
- "Цей сервіс може переглядати всі дані на екрані й показувати контент поверх інших додатків."
+ "Цей сервіс може переглядати всі дані на екрані й показувати вміст над іншими додатками.""Перегляд і виконання дій""Цей сервіс може відстежувати вашу взаємодію з додатком чи апаратним датчиком, а також взаємодіяти з додатками від вашого імені.""Дозволити"
@@ -1925,7 +1921,6 @@
"Вибір регіону""Введіть назву мови""Рекомендовані"
- "Пропоновані""Усі мови""Усі регіони""Пошук"
@@ -1943,19 +1938,18 @@
"Камера недоступна""Продовжте на телефоні""Мікрофон недоступний"
- "Додаток Play Маркет недоступний""Налаштування Android TV недоступні""Налаштування планшета недоступні""Налаштування телефона недоступні"
- "Цей додаток зараз недоступний на вашому %1$s. Спробуйте натомість скористатися пристроєм Android TV."
- "Цей додаток зараз недоступний на вашому %1$s. Спробуйте натомість скористатися планшетом."
- "Цей додаток зараз недоступний на вашому %1$s. Спробуйте натомість скористатися телефоном."
+ "Цей додаток недоступний на вашому пристрої (%1$s). Спробуйте натомість скористатися пристроєм Android TV."
+ "Цей додаток недоступний на вашому пристрої (%1$s). Спробуйте натомість скористатися планшетом."
+ "Цей додаток недоступний на вашому пристрої (%1$s). Спробуйте натомість скористатися телефоном."
+ "Цей додаток зараз недоступний на вашому пристрої (%1$s). Спробуйте натомість скористатися пристроєм Android TV."
+ "Цей додаток зараз недоступний на вашому пристрої (%1$s). Спробуйте натомість скористатися планшетом."
+ "Цей додаток зараз недоступний на вашому пристрої (%1$s). Спробуйте натомість скористатися телефоном.""Цьому додатку потрібен додатковий рівень безпеки. Спробуйте натомість скористатися пристроєм Android TV.""Цьому додатку потрібен додатковий рівень безпеки. Спробуйте натомість скористатися планшетом.""Цьому додатку потрібен додатковий рівень безпеки. Спробуйте натомість скористатися телефоном."
- "Немає доступу на вашому пристрої (%1$s). Спробуйте натомість скористатися пристроєм Android TV."
- "Немає доступу на вашому пристрої (%1$s). Спробуйте натомість скористатися планшетом."
- "Немає доступу на вашому пристрої (%1$s). Спробуйте натомість скористатися телефоном.""Цей додаток створений для старішої версії Android і може працювати неналежним чином. Спробуйте знайти оновлення або зв’яжіться з розробником.""Шукати оновлення""У вас є нові повідомлення"
@@ -2048,8 +2042,7 @@
"Надати додатку %s доступ до всіх журналів пристрою?""Надати доступ лише цього разу""Не дозволяти"
- "У журналах пристрою реєструється все, що відбувається на ньому. За допомогою цих журналів додатки можуть виявляти й усувати проблеми.\n\nДеякі журнали можуть містити конфіденційні дані, тому надавати доступ до всіх журналів пристрою слід лише надійним додаткам. \n\nЯкщо додаток не має доступу до всіх журналів пристрою, він усе одно може використовувати власні журнали. Виробник вашого пристрою все одно може використовувати деякі журнали чи інформацію на ньому."
- "У журналах пристрою реєструється все, що відбувається на ньому. За допомогою цих журналів додатки можуть виявляти й усувати проблеми.\n\nДеякі журнали можуть містити конфіденційні дані, тому надавати доступ до всіх журналів пристрою слід лише надійним додаткам. \n\nЯкщо додаток не має доступу до всіх журналів пристрою, він усе одно може використовувати власні журнали. Виробник вашого пристрою все одно може використовувати деякі журнали чи інформацію на ньому.\n\nДокладніше: g.co/android/devicelogs."
+ "У журналах пристрою реєструється все, що відбувається на ньому. За допомогою цих журналів додатки можуть виявляти й усувати проблеми.\n\nДеякі журнали можуть містити конфіденційні дані, тому надавати доступ до всіх журналів пристрою слід лише надійним додаткам. \n\nЯкщо додаток не має доступу до всіх журналів пристрою, він усе одно може використовувати власні журнали. Виробник вашого пристрою все одно може використовувати деякі журнали чи інформацію на ньому. Докладніше""Більше не показувати""%1$s хоче показати фрагменти додатка %2$s""Редагувати"
@@ -2062,7 +2055,8 @@
"Налаштування режиму \"Не турбувати\" змінено""Торкніться, щоб перевірити, що заблоковано.""Перегляньте налаштування сповіщень"
- "Починаючи з ОС Android 13, установленим додаткам потрібно надати дозвіл, щоб вони могли надсилати сповіщення. Натисніть, щоб змінити цей дозвіл для наявних додатків."
+
+ "Нагадати пізніше""Закрити""Система"
@@ -2081,7 +2075,7 @@
"Вимкнути""Докладніше""В Android 12 адаптивні сповіщення замінено на покращені. Ця функція допомагає впорядковувати сповіщення й показує в них пропоновані дії та відповіді.\n\nПокращені сповіщення надають доступ до вмісту сповіщень, зокрема до такої особистої інформації, як повідомлення й імена контактів. Ця функція може автоматично закривати сповіщення чи реагувати на них, наприклад відповідати на телефонні дзвінки або керувати режимом \"Не турбувати\"."
- "Сповіщення про програму"
+ "Сповіщення про послідовнсть дій""Акумулятор може розрядитися раніше ніж зазвичай""Режим енергозбереження активовано для збільшення часу роботи акумулятора""Режим енергозбереження"
@@ -2110,7 +2104,7 @@
"У режимі польоту Bluetooth залишатиметься ввімкненим""Завантаження""{count,plural, =1{{file_name} і ще # файл}one{{file_name} і ще # файл}few{{file_name} і ще # файли}many{{file_name} і ще # файлів}other{{file_name} і ще # файлу}}"
- "Немає рекомендацій про те, з ким поділитися"
+ "Немає рекомендацій щодо людей, з якими можна поділитися""Список додатків""Цей додаток не має дозволу на запис, але він може фіксувати звук через цей USB-пристрій.""На головний екран"
@@ -2290,6 +2284,5 @@
"Перевірте активні додатки""Не вдається отримати доступ до камери телефона з пристрою %1$s""Не вдається отримати доступ до камери планшета з пристрою %1$s"
- "Цей контент недоступний під час потокового передавання. Спробуйте натомість скористатися телефоном."
- "Налаштування системи за умовчанням"
+ "Мова системи"
diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml
index d6dc5ddce4cb3b64c65d326bd5e24334c821e6a3..6661010e92c75c76cc55a0a527271957bd6f46f5 100644
--- a/core/res/res/values-ur/strings.xml
+++ b/core/res/res/values-ur/strings.xml
@@ -21,6 +21,11 @@
"بائٹس"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s"">بلا عنوان<""(کوئی فون نمبر نہیں ہے)"
@@ -28,7 +33,6 @@
"صوتی میل""MSISDN1""کنکشن مسئلہ یا غلط MMI کوڈ۔"
- "خصوصیت تعاون یافتہ نہیں ہے۔""آپریشن صرف متعین ڈائلنگ نمبرز تک محدود ہے۔""جب آپ رومنگ پر ہوں تو اپنے فون سے کال فارورڈنگ کی ترتیبات تبدیل نہیں کی جا سکتیں۔""سروس فعال کی گئی۔"
@@ -43,8 +47,8 @@
"آپ نے جو PINs ٹائپ کیے وہ مماثل نہیں ہیں۔""4 سے 8 نمبرز والا ایک PIN ٹائپ کریں۔""8 یا اس سے زیادہ نمبرز والا PUK ٹائپ کریں۔"
- "آپ کا SIM PUK مقفل ہے۔ PUK کوڈ کو غیر مقفل کرنے کیلئے اسے ٹائپ کریں۔"
- "SIM کو غیر مسدود کرنے کے لیے PUK2 ٹائپ کریں۔"
+ "آپ کا SIM کارڈ PUK مقفل ہے۔ PUK کوڈ کو غیر مقفل کرنے کیلئے اسے ٹائپ کریں۔"
+ "SIM کارڈ غیر مسدود کرنے کیلئے PUK2 ٹائپ کریں۔""ناکام، SIM/RUIM لاک کو فعال کریں۔"آپ کے پاس %d کوششیں بچی ہیں، اس کے بعد SIM مقفل ہو جائے گا۔
@@ -301,12 +305,12 @@
"اپنے کیلنڈر تک رسائی حاصل کریں""SMS""SMS پیغامات بھیجیں اور دیکھیں"
- "فائلیں"
- "آپ کے آلے پر موجود فائلز تک رسائل حاصل کریں"
- "موسیقی اور آڈیو"
- "اپنے آلے پر موسیقی اور آڈیو تک رسائی حاصل کریں"
- "تصاویر اور ویڈیوز"
- "اپنے آلے پر تصاویر اور ویڈیوز تک رسائی حاصل کریں"
+ "فائلز اور دستاویزات"
+ "آپ کے آلے پر فائلز اور دستاویزات تک رسائی حاصل کریں"
+ "موسیقی اور دیگر آڈیو"
+ "آپ کے آلے پر آڈیو فائلز تک رسائی حاصل کریں"
+ "تصاویر اور ویڈیوز"
+ "آپ کے آلے پر تصاویر اور ویڈیو فائلز تک رسائی حاصل کریں""مائیکروفون""آڈیو ریکارڈ کریں""جسمانی سرگرمی"
@@ -582,14 +586,13 @@
"اسکرین لاک استعمال کریں""جاری رکھنے کے لیے اپنا اسکرین لاک درج کریں""سینسر پر اچھی طرح دبائیں"
- "فنگر پرنٹ کی شناخت نہیں کی جا سکی۔ دوبارہ کوشش کریں۔"
+ "فنگر پرنٹ پر کارروائی نہیں کی جا سکی۔ براہ کرم دوبارہ کوشش کریں۔""فنگر پرنٹ سینسر صاف کریں اور دوبارہ کوشش کریں""سینسر صاف کریں اور دوبارہ کوشش کریں""سینسر پر اچھی طرح دبائیں""انگلی کو بہت آہستہ ہٹایا گیا۔ براہ کرم دوبارہ کوشش کریں۔""دوسرا فنگر پرنٹ آزمائیں""کافی روشنی ہے"
- "پاور پریس کا پتہ چلا""ایڈجسٹ کرنے کی کوشش کریں""ہر بار اپنی انگلی کی پوزیشن کو تھوڑا تبدیل کریں"
@@ -601,17 +604,16 @@
"چہرے کی تصدیق ہو گئی، براہ کرم \'تصدیق کریں\' کو دبائيں""فنگر پرنٹ ہارڈ ویئر دستیاب نہیں ہے۔""فنگر پرنٹ کو سیٹ اپ نہیں کیا جا سکا"
- "فنگر پرنٹ کے سیٹ اپ کا وقت ختم ہو گیا۔ دوبارہ کوشش کریں۔"
+ "فنگر پرنٹ کی میعاد ختم ہوگئی۔ دوبارہ کوشش کریں۔""فنگر پرنٹ کی کارروائی منسوخ ہوگئی۔""صارف نے فنگر پرنٹ کی کارروائی منسوخ کر دی۔"
- "کافی زیادہ کوششیں۔ اس کے بجائے اسکرین لاک کا استعمال کریں۔"
- "کافی زیادہ کوششیں۔ اس کے بجائے اسکرین لاک کا استعمال کریں۔"
- "فنگر پرنٹ پروسیس نہیں ہو سکتا۔ دوبارہ کوشش کریں۔"
+ "کافی زیادہ کوششیں کی گئیں۔ بعد میں دوبارہ کوشش کریں۔"
+ "کافی زیادہ کوششیں۔ فنگر پرنٹ سینسر غیر فعال ہو گیا۔"
+ "دوبارہ کوشش کریں۔""کوئی فنگر پرنٹ مندرج شدہ نہیں ہے۔""اس آلہ میں فنگر پرنٹ سینسر نہیں ہے۔""سینسر عارضی طور غیر فعال ہے۔""فنگر پرنٹ سینسر کا استعمال نہیں کر سکتے۔ ایک مرمت فراہم کنندہ کو ملاحظہ کریں"
- "پاور بٹن دبایا گیا""انگلی %d""فنگر پرنٹ استعمال کریں""فنگر پرنٹ یا اسکرین لاک استعمال کریں"
@@ -632,33 +634,26 @@
"فنگر پرنٹ اَن لاک""فنگر پرنٹ سینسر کا استعمال نہیں کر سکتے""ایک مرمت فراہم کنندہ کو ملاحظہ کریں۔"
- "آپکے چہرے کا ماڈل تخلیق نہیں ہو سکا۔ پھر کوشش کریں۔"
+ "چہرے کا درست ڈيٹا کیپچر نہیں ہو سکا۔ پھر آزمائيں۔""کافی روشنی ہے۔ ہلکی روشنی میں آزمائیں۔"
- "کافی روشنی نہیں ہے"
- "فون کو تھوڑا دور کریں"
- "فون کو تھوڑا قریب کریں"
- "فون کو تھوڑا اوپر لے جائیں"
- "فون تھوڑا نیچے کریں"
- "فون کو اپنی بائیں جانب لے جائیں"
- "فون کو اپنی دائیں جانب لے جائیں"
+ "کافی اندھیرا ہے۔ تیز روشنی میں آزمائیں۔"
+ "فون کو تھوڑا دور کریں۔"
+ "فون کو تھوڑا قریب کریں۔"
+ "فون کو تھوڑا اوپر لے جائیں۔"
+ "فون تھوڑا نیچے کریں۔"
+ "فون کو بائیں جانب لے جائيں۔"
+ "فون کو دائیں جانب لے جائیں۔""براہ کرم اپنے آلہ کی طرف چہرے کو سیدھا رکھیں۔"
- "آپ کا چہرہ دکھائی نہیں دے رہا۔ اپنے فون کو آنکھ کی سطح پر پکڑیں۔"
+ "اپنے چہرے کو براہ راست فون کے سامنے رکھیں۔""کافی حرکت ہو رہی ہے۔ فون کو مضبوطی سے پکڑیں۔""براہ کرم اپنے چہرے کو دوبارہ مندرج کریں۔"
- "چہرے کی شناخت نہیں ہو سکی۔ پھر کوشش کریں۔"
- "اپنے سر کی پوزیشن کو تھوڑا تبدیل کریں"
- "اپنے فون کی طرف چہرے کو سیدھا رکھیں"
- "اپنے فون کی طرف چہرے کو سیدھا رکھیں"
- "اپنے فون کی طرف چہرے کو سیدھا رکھیں"
+ "اب چہرے کی شناخت نہیں کر سکتے۔ پھر آزمائيں۔"
+ "کافی ملتا جلتا ہے، براہ کرم اپنا پوز بدلیں۔"
+ "اپنا سر تھوڑا کم کریں۔"
+ "اپنا سر تھوڑا کم جھکائیں۔"
+ "اپنا سر تھوڑا کم کریں۔""آپ کے چہرہ کو چھپانے والی ہر چیز کو ہٹائیں۔""سیاہ بار سمیت، اپنی اسکرین کے اوپری حصے کو صاف کریں"
-
-
-
-
- "آپکے چہرے کا ماڈل تخلیق نہیں ہو سکا۔ پھر کوشش کریں۔"
- "گہرے چشمے کا پتہ چلا۔ آپ کا چہرہ مکمل طور پر دکھائی دینا ضروری ہے۔"
- "چہرے کو ڈھانپنے کا پتہ چلا۔ آپ کا چہرہ مکمل طور پر دکھائی دینا ضروری ہے۔""چہرے کی توثیق نہیں کی جا سکی۔ ہارڈ ویئر دستیاب نہیں ہے۔"
@@ -924,14 +919,14 @@
"دوبارہ کوشش کریں""تمام خصوصیات اور ڈیٹا کیلئے غیر مقفل کریں""فیس اَنلاک کی زیادہ سے زیادہ کوششوں سے تجاوز کرگیا"
- "کوئی SIM نہیں ہے"
- "ٹیبلیٹ میں کوئی SIM نہیں ہے۔"
- "آپ کے Android TV آلے میں SIM نہیں ہے۔"
- "فون میں کوئی SIM نہيں ہے۔"
- "ایک SIM شامل کریں۔"
- "SIM غائب ہے یا پڑھنے لائق نہیں ہے۔ ایک SIM شامل کریں۔"
- "ناقابل استعمال SIM۔"
- "آپ کے SIM کو مستقل طور پر غیر فعال کر دیا گیا ہے۔\n کسی دوسرے SIM کیلئے اپنے وائرلیس سروس فراہم کنندہ سے رابطہ کریں۔"
+ "کوئی SIM کارڈ نہیں ہے"
+ "ٹیبلیٹ میں کوئی SIM کارڈ نہیں ہے۔"
+ "آپ کے Android TV آلہ میں SIM کارڈ نہیں ہے۔"
+ "فون میں کوئی SIM کارڈ نہیں ہے۔"
+ "ایک SIM کارڈ داخل کریں۔"
+ "SIM کارڈ غائب ہے یا پڑھنے لائق نہیں ہے۔ ایک SIM کارڈ داخل کریں۔"
+ "ناقابل استعمال SIM کارڈ۔"
+ "آپ کا SIM کارڈ مستقل طور پر غیر فعال کر دیا گیا ہے۔\n کسی دوسرے SIM کارڈ کیلئے اپنے وائرلیس سروس فراہم کنندہ سے رابطہ کریں۔""پچھلا ٹریک""اگلا ٹریک""موقوف کریں"
@@ -941,10 +936,10 @@
"تیزی سے فارورڈ کریں""صرف ہنگامی کالز""نیٹ ورک مقفل ہو گیا"
- "آپ کا SIM PUK مقفل ہے۔"
+ "SIM کارڈ PUK مقفل ہے۔""رہنمائے صارف دیکھیں یا کسٹمر کیئر سے رابطہ کریں۔"
- "SIM مقفل ہے۔"
- "SIM کو غیر مقفل کیا جا رہا ہے…"
+ "SIM کارڈ مقفل ہے۔"
+ "SIM کارڈ غیر مقفل ہو رہا ہے…""آپ نے اپنا غیر مقفل کرنے کا پیٹرن %1$d بار غلط طریقے سے ڈرا کیا ہے۔ \n\n %2$d سیکنڈ میں دوبارہ کوشش کریں۔""آپ نے اپنا پاس ورڈ %1$d بار غلط طریقے سے ٹائپ کیا ہے۔ \n\n %2$d سیکنڈ میں دوبارہ کوشش کریں۔""آپ نے %1$d بار اپنا PIN غلط طریقے سے ٹائپ کیا ہے۔ \n\n %2$d سیکنڈ میں دوبارہ کوشش کریں۔"
@@ -1246,9 +1241,10 @@
"%1$s تیار ہو رہی ہے۔""ایپس شروع ہو رہی ہیں۔""بوٹ مکمل ہو رہا ہے۔"
+ "سیٹ اپ جاری رکھیں؟""آپ نے پاور بٹن دبایا — اس سے عام طور پر اسکرین آف ہو جاتی ہے۔\n\nاپنے فنگر پرنٹ کو سیٹ اپ کرنے کے دوران ہلکا سا تھپتھپانے کی کوشش کریں۔"
- "سیٹ اپ ختم کرنے کیلئے، اسکرین آف کریں"
- "آف کریں"
+ "اسکرین آف کریں"
+ "سیٹ اپ جاری رکھیں""اپنے فنگر پرنٹ کی توثیق کرنا جاری رکھیں؟""آپ نے پاور بٹن دبایا — اس سے عام طور پر اسکرین آف ہو جاتی ہے۔\n\nاپنے فنگر پرنٹ کی توثیق کرنے کے لیے ہلکا سا تھپتھپانے کی کوشش کریں۔""اسکرین آف کریں"
@@ -1327,10 +1323,10 @@
"آپ اسے ترتیبات > ایپس میں تبدیل کرسکتے ہیں""ہمیشہ اجازت دیں""کبھی بھی اجازت نہ دیں"
- "SIM کو ہٹا دیا گیا"
- "جب تک آپ ایک درست SIM کے ساتھ ری اسٹارٹ نہیں کر لیتے، تب تک موبائل نیٹ ورک غیر دستیاب ہوگا۔"
+ "SIM کارڈ ہٹا دیا گیا"
+ "جب تک آپ داخل کردہ درست SIM کارڈ کے ساتھ دوبارہ شروع نہیں کر لیتے، موبائل نیٹ ورک غیر دستیاب رہے گا۔""ہو گیا"
- "SIM شامل کیا گیا"
+ "SIM شامل کیا گیا""موبائل نیٹ ورک تک رسائی کیلئے اپنا آلہ دوبارہ سٹارٹ کریں۔""ری سٹارٹ""موبائل سروس فعال کریں"
@@ -1401,16 +1397,16 @@
"سیٹ اپ کرنے کیلئے تھپتھپائیں""سیٹ اپ کرنے کے لیے منتخب کریں""آپ کو آلے کو پھر سے فارمیٹ کرنے کی ضرورت پیش آ سکتی ہے۔ خارج کرنے کے لیے تھپتھپائیں۔"
- "تصاویر، ویڈیوز، موسیقی وغیرہ کو اسٹور کرنے کے لئے"
+ "تصاویر اور میڈیا منتقل کرنے کیلئے""میڈیا فائلز کو براؤز کریں""%s کے ساتھ مسئلہ""%s کام نہیں کر رہا ہے""درست کرنے کیلئے تھپتھپائیں""%s خراب ہے۔ اسے ٹھیک کرنے کیلئے منتخب کریں۔""آپ کو آلے کو پھر سے فارمیٹ کرنے کی ضرورت پیش آ سکتی ہے۔ خارج کرنے کے لیے تھپتھپائیں۔"
- "%s کا پتا چلا"
+ "غیر تعاون یافتہ %s""%s کام نہیں کر رہا ہے"
- "سیٹ اپ کرنے کیلئے تھپتھپائیں ۔"
+ "یہ آلہ %s کو سپورٹ نہیں کرتا۔ ایک سپورٹ یافتہ فارمیٹ میں سیٹ اپ کرنے کیلئے تھپتھپائیں۔""سپورٹ یافتہ فارمیٹ میں %s سیٹ اپ کرنے کے لیے منتخب کریں۔""آپ کو آلے کو پھر سے فارمیٹ کرنے کی ضرورت پیش آ سکتی ہے""%s غیر متوقع طور پر ہٹا دیا گیا"
@@ -1609,7 +1605,7 @@
"TV""فون""ڈاک اسپیکرز"
- "بیرونی آلہ"
+ "HDMI""ہیڈ فونز""USB""سسٹم"
@@ -1620,7 +1616,7 @@
"اسکرین کو آلہ پر کاسٹ کریں""آلات تلاش کر رہا ہے…""ترتیبات"
- "منقطع کریں"
+ "غیر مربوط کریں""اسکین کر رہا ہے…""مربوط ہو رہا ہے…""دستیاب"
@@ -1642,7 +1638,7 @@
"SIM اب غیر فعال ہوگیا ہے۔ جاری رکھنے کیلئے PUK کوڈ درج کریں۔ تفصیلات کیلئے کیریئر سے رابطہ کریں۔""پسندیدہ PIN کوڈ درج کریں""پسندیدہ PIN کوڈ کی توثیق کریں"
- "SIM کو غیر مقفل کیا جا رہا ہے…"
+ "SIM کارڈ غیر مقفل کیا جا رہا ہے…""غلط PIN کوڈ۔""ایسا PIN ٹائپ کریں جو 4 تا 8 نمبرز کا ہو۔""PUK کوڈ 8 نمبرز کا ہونا چاہئے۔"
@@ -1685,9 +1681,9 @@
"%1$s کو آپ کے آلے کا مکمل کنٹرول حاصل کرنے کی اجازت دیں؟""مکمل کنٹرول ان ایپس کے لیے مناسب ہے جو ایکسیسبیلٹی کی ضروریات میں آپ کی مدد کرتی ہیں، لیکن زیادہ تر ایپس کیلئے مناسب نہیں۔""اسکرین کو دیکھیں اور کنٹرول کریں"
- "یہ اسکرین پر موجود تمام مواد کو پڑھ سکتا ہے اور دیگر ایپس پر مواد کو ڈسپلے کر سکتا ہے۔"
+ "یہ تمام مواد کو اسکرین پر پڑھ اور دیگر ایپس پر مواد کو ڈسپلے کر سکتا ہے۔""کارروائیاں دیکھیں اور انجام دیں"
- "یہ کسی ایپ یا ہارڈویئر سینسر کے ساتھ آپ کے تعاملات کو ٹریک کر سکتا ہے، اور آپ کی طرف سے ایپس کے ساتھ تعامل کر سکتا ہے۔"
+ "یہ آپ کے تعاملات کو ایپ یا ہارڈویئر سینسر کے ذریعے ٹریک کر سکتا ہے، اور آپ کی طرف سے ایپ کے ساتھ تعمل کر سکتا ہے۔""اجازت دیں""مسترد کریں""ایک خصوصیت کا استعمال شروع کرنے کیلئے اسے تھپتھپائیں:"
@@ -1701,7 +1697,7 @@
"رنگوں کی تقلیب""رنگ کی تصحیح""ایک ہاتھ کی وضع"
- "اضافی مدھم"
+ "اضافی دھندلا""والیوم کی کلیدوں کو دبائے رکھا گیا۔ %1$s آن ہے۔""والیوم کی کلیدوں کو دبائے رکھا گیا۔ %1$s آف ہے۔""%1$s کا استعمال کرنے کے لیے 3 سیکنڈ تک والیوم کی دونوں کلیدوں کو چھوئیں اور دبائے رکھیں"
@@ -1923,7 +1919,6 @@
"علاقہ کی ترجیح""زبان کا نام ٹائپ کریں""تجویز کردہ"
- "تجویز کردہ""سبھی زبانیں""تمام علاقے""تلاش"
@@ -1941,19 +1936,18 @@
"کیمرا دستیاب نہیں ہے""فون پر جاری رکھیں""مائیکروفون دستیاب نہیں ہے"
- "Play اسٹور دستیاب نہیں ہے""Android TV کی ترتیبات دستیاب نہیں ہے""ٹیبلیٹ کی ترتیبات دستیاب نہیں ہے""فون کی ترتیبات دستیاب نہیں ہے"
- "اس وقت آپ کے %1$s پر اس تک رسائی نہیں مل سکتی۔ اس کے بجائے اپنے Android TV آلے پر کوشش کریں۔"
- "اس وقت آپ کے %1$s پر اس تک رسائی نہیں مل سکتی۔ اس کے بجائے اپنے ٹیبلیٹ پر کوشش کریں۔"
- "اس وقت آپ کے %1$s پر اس تک رسائی نہیں مل سکتی۔ اس کے بجائے اپنے فون پر کوشش کریں۔"
+ "آپ کے %1$s پر اس تک رسائی حاصل نہیں ہو سکتی۔ اس کے بجائے اپنے Android TV آلے پر کوشش کریں۔"
+ "آپ کے %1$s پر اس تک رسائی حاصل نہیں ہو سکتی۔ اس کے بجائے اپنے ٹیبلیٹ پر کوشش کریں۔"
+ "آپ کے %1$s پر اس تک رسائی حاصل نہیں ہو سکتی۔ اس کے بجائے اپنے فون پر کوشش کریں۔"
+ "اس وقت آپ کے %1$s پر اس تک رسائی حاصل نہیں ہو سکتی۔ اس کے بجائے اپنے Android TV آلے پر کوشش کریں۔"
+ "اس وقت آپ کے %1$s پر اس تک رسائی حاصل نہیں ہو سکتی۔ اس کے بجائے اپنے ٹیبلیٹ پر کوشش کریں۔"
+ "اس وقت آپ کے %1$s پر اس تک رسائی حاصل نہیں ہو سکتی۔ اس کے بجائے اپنے فون پر کوشش کریں۔""یہ ایپ اضافی سیکیورٹی کی درخواست کر رہی ہے۔ اس کے بجائے اپنے Android TV آلے پر کوشش کریں۔""یہ ایپ اضافی سیکیورٹی کی درخواست کر رہی ہے۔ اس کے بجائے اپنے ٹیبلیٹ پر کوشش کریں۔""یہ ایپ اضافی سیکیورٹی کی درخواست کر رہی ہے۔ اس کے بجائے اپنے فون پر کوشش کریں۔"
- "آپ کے %1$s پر اس تک رسائی حاصل نہیں ہو سکتی۔ اس کے بجائے اپنے Android TV آلے پر کوشش کریں۔"
- "آپ کے %1$s پر اس تک رسائی حاصل نہیں ہو سکتی۔ اس کے بجائے اپنے ٹیبلیٹ پر کوشش کریں۔"
- "آپ کے %1$s پر اس تک رسائی حاصل نہیں ہو سکتی۔ اس کے بجائے اپنے فون پر کوشش کریں۔""یہ ایپ Android کے پرانے ورژن کے لئے بنائی گئی ہے اور ہو سکتا ہے صحیح طور پر کام نہ کرے۔ اپ ڈیٹس چیک کر کے آزمائیں یا ڈویلپر سے رابطہ کریں۔""اپ ڈیٹ چیک کریں""آپ کے پاس نئے پیغامات ہیں"
@@ -1984,7 +1978,7 @@
"پروڈکٹیوٹی""ایکسیسبیلٹی""آلہ کی اسٹوریج"
- "USB ڈیبگنگ"
+ "USB ڈیبگ کرنا""گھنٹہ""منٹ""وقت سیٹ کریں"
@@ -2043,11 +2037,10 @@
"اَن انسٹال کریں""بہر صورت کھولیں""ضرر رساں ایپ کا پتہ چلا"
- "%s کو آلے کے تمام لاگز تک رسائی کی اجازت دیں؟"
+ "%s کو آلے کے تمام لاگز تک رسائی کی اجازت دیں؟""یک وقتی رسائی کی اجازت دیں""اجازت نہ دیں"
- "آپ کے آلے پر جو ہوتا ہے آلے کے لاگز اسے ریکارڈ کر لیتے ہیں۔ ایپس ان لاگز کا استعمال مسائل کو تلاش کرنے اور ان کو حل کرنے کے لیے کر سکتی ہیں۔\n\nکچھ لاگز میں حساس معلومات شامل ہو سکتی ہیں، اس لیے صرف اپنے بھروسے مند ایپس کو ہی آلے کے تمام لاگز تک رسائی کی اجازت دیں۔ \n\nاگر آپ اس ایپ کو آلے کے تمام لاگز تک رسائی کی اجازت نہیں دیتے ہیں تب بھی یہ اپنے لاگز تک رسائی حاصل کر سکتی ہے۔ آپ کے آلے کا مینوفیکچرر اب بھی آپ کے آلے پر کچھ لاگز یا معلومات تک رسائی حاصل کر سکتا ہے۔"
- "آپ کے آلے پر جو ہوتا ہے آلے کے لاگز اسے ریکارڈ کر لیتے ہیں۔ ایپس ان لاگز کا استعمال مسائل کو تلاش کرنے اور ان کو حل کرنے کے لیے کر سکتی ہیں۔\n\nکچھ لاگز میں حساس معلومات شامل ہو سکتی ہیں، اس لیے صرف اپنی بھروسے مند ایپس کو ہی آلے کے تمام لاگز تک رسائی کی اجازت دیں۔ \n\nاگر آپ اس ایپ کو آلے کے تمام لاگز تک رسائی کی اجازت نہیں دیتے ہیں تب بھی یہ اپنے لاگز تک رسائی حاصل کر سکتی ہے۔ آپ کے آلے کا مینوفیکچرر اب بھی آپ کے آلے پر کچھ لاگز یا معلومات تک رسائی حاصل کر سکتا ہے۔\n\nمزید جاننے کیلئے g.co/android/devicelogs ملاحظہ کریں۔"
+ "آپ کے آلے پر جو ہوتا ہے آلے کے لاگز اسے ریکارڈ کر لیتے ہیں۔ ایپس ان لاگز کا استعمال مسائل کو تلاش کرنے اور ان کو حل کرنے کے لیے کر سکتی ہیں۔\n\nکچھ لاگز میں حساس معلومات شامل ہو سکتی ہیں، اس لیے صرف اپنے بھروسے مند ایپس کو ہی آلے کے تمام لاگز تک رسائی کی اجازت دیں۔ \n\nاگر آپ اس ایپ کو آلے کے تمام لاگز تک رسائی کی اجازت نہیں دیتے ہیں تب بھی یہ اپنے لاگز تک رسائی حاصل کر سکتی ہے۔ آپ کے آلے کا مینوفیکچرر اب بھی آپ کے آلے پر کچھ لاگز یا معلومات تک رسائی حاصل کر سکتا ہے۔ مزید جانیں""دوبارہ نہ دکھائیں""%1$s%2$s کے سلائسز دکھانا چاہتی ہے""ترمیم کریں"
@@ -2060,7 +2053,8 @@
"\'ڈسٹرب نہ کریں\' تبدیل ہو گيا ہے""مسدود کی گئی چیزوں کو چیک کرنے کے لیے تھپتھپائیں۔""اطلاع کی ترتیبات کا جائزہ لیں"
- "Android 13 کے ساتھ اب آپ جو بھی ایپس انسٹال کریں گے انہیں اطلاعات بھیجنے کے لیے آپ کی اجازت درکار ہوگی۔ موجودہ ایپس کے لیے اس اجازت کو تبدیل کرنے کی خاطر تھپتھپائیں۔"
+
+ "بعد میں یاد دلائیں""برخاست کریں""سسٹم"
@@ -2288,6 +2282,5 @@
"فعال ایپس چیک کریں""آپ کے %1$s سے فون کے کیمرا تک رسائی حاصل نہیں کی جا سکتی""آپ کے %1$s سے ٹیبلیٹ کے کیمرا تک رسائی حاصل نہیں کی جا سکتی"
- "سلسلہ بندی کے دوران اس تک رسائی حاصل نہیں کی جا سکتی۔ اس کے بجائے اپنے فون پر کوشش کریں۔"
- "سسٹم ڈیفالٹ"
+ "سسٹم کی زبان"
diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml
index eb4bfb392c04bb1f4a54e7aa8efd23f8d6b9ea2c..2fda2ee47fcd2517ffe95aed3024a0cbb45124a1 100644
--- a/core/res/res/values-uz/strings.xml
+++ b/core/res/res/values-uz/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "KB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Nomsiz>""(Telefon raqami yo‘q)"
@@ -28,7 +33,6 @@
"Ovozli pochta""MSISDN1""Tarmoqda xato yoki MMI kod noto‘g‘ri."
- "Ishlamaydigan funksiya.""Bu amal faqat ruxsat etilgan raqamlar uchun mavjud.""Rouming vaqtida telefondagi chaqiruvni boshqa raqamga uzatish sozlamalarini o‘zgartirib bo‘lmadi.""Xizmat yoqildi."
@@ -43,8 +47,8 @@
"Siz kiritgan PIN-kodlar bir-biriga mos kelmadi.""4 tadan 8 tagacha bo‘lgan PIN kodni kiriting.""8 ta yoki ko‘proq bo‘lgan PUK kodni kiriting."
- "SIM karta PUK kod bilan qulflangan. Uni qulfdan chiqarish uchun PUK kodni tering."
- "SIM kartani blokdan chiqarish uchun PUK2 kodni tering."
+ "SIM kartangiz PUK kod bilan qulflangan. Uni qulfdan chiqarish uchun PUK kodni tering."
+ "SIM kartani blokdan chiqarish uchun PUK2 raqamini kiriting.""Ishlamadi, SIM/RUIM qulfni yoqish."Yana %d ta muvaffaqiyatsiz urinishdan so‘ng SIM karta qulflanadi.
@@ -301,12 +305,12 @@
"taqvimingizga kirish""SMS""SMS xabarlarni yuborish va ko‘rish"
- "Fayllar"
- "qurilmangizdagi fayllarga kirish"
- "Musiqa va audio"
- "qurilmadagi musiqa va audioga ruxsat"
- "Video va suratlar"
- "qurilmadagi rasm va videolarga ruxsat"
+ "Fayl va hujjatlar"
+ "qurilmangizdagi fayl va hujjatlarga kirish"
+ "Musiqa va boshqa audio"
+ "qurilmangizdagi audio fayllarga kirish"
+ "Suratlar va videolar"
+ "qurilmangizdagi rasm va video fayllarga kirish""Mikrofon""ovoz yozib olish""Jismoniy harakatlar"
@@ -582,14 +586,13 @@
"Ekran qulfi""Ekran qulfini kiritish bilan davom eting""Sensorni mahkam bosing"
- "Bu barmoq izi notanish. Qayta urining."
+ "Barmoq izi aniqlanmadi. Qaytadan urining.""Barmoq izi skanerini tozalang va qayta urining""Sensorni tozalang va qayta urining""Sensorni mahkam bosing""Barmoq juda sekin harakatlandi. Qayta urinib ko‘ring.""Boshqa barmoq izi bilan urining""Juda yorqin"
- "Quvvat tugmasi bosildi""Moslashga urining""Barmoqni har safar biroz surib joylang"
@@ -601,17 +604,16 @@
"Yuzingiz aniqlandi, tasdiqlash uchun bosing""Barmoq izi skaneri ish holatida emas.""Barmoq izi sozlanmadi"
- "Barmoq izini sozlash vaqti tugadi. Qayta urining."
+ "Barmoq izini aniqlash vaqti tugab qoldi. Qayta urinib ko‘ring.""Barmoq izi tekshiruvi bekor qilindi.""Barmoq izi amali foydalanuvchi tomonidan bekor qilindi"
- "Juda koʻp urinildi. Ekran qulfi orqali urining."
- "Juda koʻp urinildi. Ekran qulfi orqali urining."
- "Barmoq izi tekshirilmadi. Qayta urining."
+ "Urinishlar soni ko‘payib ketdi. Keyinroq qayta urinib ko‘ring."
+ "Urinishlar soni ko‘payib ketdi. Barmoq izi skaneri bloklandi."
+ "Qayta urinib ko‘ring.""Hech qanday barmoq izi qayd qilinmagan.""Bu qurilmada barmoq izi skaneri mavjud emas.""Sensor vaqtincha faol emas.""Barmoq izi skaneridan foydalanish imkonsiz. Xizmat koʻrsatish markaziga murojaat qiling"
- "Quvvat tugmasi bosildi""Barmoq izi %d""Barmoq izi ishlatish""Barmoq izi yoki ekran qulfi"
@@ -632,33 +634,26 @@
"Barmoq izi bilan ochish""Barmoq izi skaneridan foydalanish imkonsiz""Xizmat koʻrsatish markaziga murojaat qiling."
- "Yuzingiz modeli yaratilmadi. Qayta urining."
+ "Yuz ravshan suratga olinmadi. Qaytadan urining.""Juda yorqin. Biroz soyaroq joy tanlang."
- "Yorugʻlik yetarli emas"
- "Telefonni biroz uzoqroq tuting"
- "Telefonni yaqinroq tuting"
- "Telefonni teparoq tuting"
- "Telefonni pastroq tuting"
- "Telefonni chaproq tuting"
- "Telefonni oʻngroq tuting"
+ "Juda qorongʻi. Atrofingizni yoriting."
+ "Telefonni biroz uzoqroq tuting."
+ "Telefonni yaqinroq tuting."
+ "Telefonni teparoq tuting."
+ "Telefonni pastroq tushiring."
+ "Telefonni chapga suring."
+ "Telefonni oʻngga suring.""Qurilmaga tik qarang."
- "Yuzingiz koʻrinmayapti. Telefonni koʻz balandligida tuting."
+ "Telefonni yuzingizga tik qarating.""Ortiqcha harakatlanmoqda. Qimirlatmasdan ushlang.""Yuzingizni qaytadan qayd qildiring."
- "Yuz aniqlanmadi. Qayta urining."
- "Boshingiz holatini biroz oʻzgartiring"
- "Telefonga tik qarab turing"
- "Telefonga tik qarab turing"
- "Telefonga tik qarab turing"
+ "Yuz tanilmadi. Qaytadan urining."
+ "Yuz ifodasi oldingiday. Holatingizni oʻzgartiring."
+ "Boshingizni asta buring."
+ "Boshingizni asta qiyalang."
+ "Boshingizni asta buring.""Yuzingizni berkitayotgan narsalarni olib tashlang.""Ekranning yuqori qismini, shuningdek, qora panelni ham tozalang"
-
-
-
-
- "Yuzingiz modeli yaratilmadi. Qayta urining."
- "Qora koʻzoynak aniqlandi. Yuzingiz toʻliq koʻrinishi kerak."
- "Yuzning bir qismi yopilib qolgan. Yuzingiz toʻliq koʻrinishi kerak.""Yuzingiz tasdiqlanmadi. Qurilma ishlamayapti."
@@ -924,14 +919,14 @@
"Qaytadan urining""Barcha funksiya va ma’lumotlar uchun qulfdan chiqaring""Yuz bilan ochishga urinish miqdoridan oshib ketdi"
- "SIM kartasiz"
- "Planshetda SIM karta topilmadi."
- "Android TV qurilmasida SIM karta topilmadi."
- "Telefonda SIM karta topilmadi."
- "SIM karta qoʻshish."
- "SIM karta topilmadi yoki oʻqilmadi. SIM karta qoʻshish."
- "Ishlamaydigan SIM."
- "SIM karta butunlay faolsizlantirildi.\n Boshqa SIM karta olish uchun simsiz aloqa operatoriga murojaat qiling."
+ "SIM karta solinmagan"
+ "Planshetingizda SIM karta yo‘q."
+ "Android TV qurilmangizda SIM karta topilmadi."
+ "Telefoningizda SIM karta yo‘q."
+ "SIM kartani soling."
+ "SIM karta solinmagan yoki u yaroqsiz. SIM kartani soling."
+ "Foydalanib bo‘lmaydigan SIM karta."
+ "SIM kartangiz butunlay bloklab qo‘yilgan.\n Yangi SIM karta olish uchun aloqa operatoringiz bilan bog‘laning.""Avvalgi musiqa""Keyingi musiqa""To‘xtatib turish"
@@ -941,10 +936,10 @@
"Oldinga o‘tkazish""Faqat favqulodda chaqiruvlar""Tarmoq qulflangan"
- "SIM karta PUK kod bilan qulflangan."
+ "SIM karta PUK kod bilan qulflangan.""Foydalanuvchi qo‘llanmasiga qarang yoki Abonentlarni qo‘llab-quvvatlash markaziga murojaat qiling."
- "SIM karta qulflandi."
- "SIM karta qulfdan chiqarilmoqda…"
+ "SIM karta qulflangan."
+ "SIM karta qulfdan chiqarilmoqda…""Siz grafik kalitni %1$d marta noto‘g‘ri kiritdingiz. \n\n%2$d soniyadan so‘ng qayta urining.""Siz parolni %1$d marta noto‘g‘ri kiritdingiz. \n\n %2$d soniyadan so‘ng qayta urining.""Siz PIN-kodni %1$d marta noto‘g‘ri kiritdingiz. \n\n %2$d soniyadan so‘ng qayta urining."
@@ -1246,9 +1241,10 @@
"%1$s tayyorlanmoqda.""Ilovalar ishga tushirilmoqda.""Tizimni yuklashni tugatish."
+ "Sozlashni davom ettirasizmi?""Quvvat tugmasini bosdingiz — bu odatda ekranni oʻchiradi.\n\nBarmoq izini qoʻshish vaqtida tugmaga yengilgina tegining."
- "Sozlashni yakunlash uchun ekranni oʻchiring"
- "Faolsizlantirish"
+ "Ekranni oʻchirish"
+ "Sozlashni davom ettirish""Barmoq izi tasdiqlashda davom etilsinmi?""Quvvat tugmasini bosdingiz. Bu odatda ekranni oʻchiradi.\n\nBarmoq izingizni tasdiqlash uchun tugmaga yengilgina tegining.""Ekranni oʻchirish"
@@ -1327,10 +1323,10 @@
"Buni keyinroq Sozlamalar > Ilovalar menyusidan o‘zgartirishingiz mumkin""Doim ruxsat""Ruxsat berilmasin"
- "SIM karta olindi"
- "Yaroqli SIM karta joylanib, qurilma qayta ishga tushmasa, mobil tarmoq ishlamaydi."
+ "SIM karta olib tashlandi"
+ "Ishlaydigan SIM kartani qo‘yib, qurilmangizni qaytadan ishga tushirmasangiz, mobayl tarmoq mavjud bo‘lmaydi.""Tayyor"
- "SIM karta qoʻshildi"
+ "SIM karta qo‘shildi""Uyali tarmoqqa ulanish uchun qurilmangizni o‘chirib-yoqing.""Qayta ishga tushirish""Mobil xizmatni faollashtirish"
@@ -1382,7 +1378,7 @@
"BAHAM KO‘RISH""RAD ETISH""Matn kiritish usulini tanlang"
- "Tashqi klaviatura ulanganida ekranda chiqib turadi"
+ "Jismoniy klaviatura ulanganida ekranda chiqib turadi""Virtual klaviatura""Tashqi klaviaturani sozlash""Til va sxemani belgilash uchun bosing"
@@ -1401,16 +1397,16 @@
"Sozlash uchun bosing""Sozlash uchun tanlang""Qurilmani qayta formatlashingiz lozim. Chiqarib tashlash uchun bosing."
- "Rasm, video, musiqa va boshqalarni saqlash uchun"
+ "Rasm va boshqa fayllarni o‘tkazish""Media fayl tanlash""%s bilan muammo""%s ishlamayapti""Tuzatish uchun bosing""%s: buzilgan. Tuzatish uchun uni tanlang.""Qurilmani qayta formatlashingiz lozim. Chiqarib tashlash uchun bosing."
- "%s aniqlandi"
+ "%s qo‘llab-quvvatlanmaydi""%s ishlamayapti"
- "Sozlash uchun bosing"
+ "Bu xotira qurilmasi (%s) qo‘llab-quvvatlanmaydi. Uni mos keladigan formatda sozlash uchun bu yerga bosing.""Xotira qurilmasini (%s) mos formatda sozlash uchun buni tanlang.""Qurilmani qayta formatlashingiz lozim""%s kutilmaganda chiqarib olindi"
@@ -1421,10 +1417,10 @@
"Chiqarib olinmasin""Sozlash""Chiqarish"
- "Ochish"
+ "O‘rganish""Audio chiqishni almashtirish""%s topilmadi"
- "Qurilmani qayta ulang"
+ "Qurilmani yana ulang""%s ko‘chirib o‘tkazilmoqda""Ma’lumotlar ko‘chirilmoqda""Kontent ko‘chirildi"
@@ -1591,7 +1587,7 @@
"Tegishli:""Yaroqliligi:""Chiqarilgan sanasi:"
- "Muddati:"
+ "Amal qilish muddati:""Serial raqam:""Barmoq izlari:""SHA-256 barmoq izi:"
@@ -1609,7 +1605,7 @@
"TV""Telefon""Taglik karnaylar"
- "Tashqi qurilma"
+ "HDMI""Quloq karnaychalari""USB""Tizim"
@@ -1642,7 +1638,7 @@
"SIM karta hozir o‘chirilgan. Davom etish uchun PUK kodni kiriting. To‘liqroq ma’lumot olish uchun tarmoq operatori bilan bog‘laning.""So‘ralgan PIN kodni kiriting""So‘ralgan PIN kodni tasdiqlang"
- "SIM karta qulfdan chiqarilmoqda…"
+ "SIM karta qulfi ochilmoqda…""Xato PIN kodi.""4 tadan 8 ta raqamgacha bo‘lgan PIN kodni kiriting.""PUK kod 8 ta raqam bo‘lishi shart."
@@ -1923,7 +1919,6 @@
"Hudud sozlamalari""Til nomini kiriting""Taklif etiladi"
- "Tavsiya etiladi""Barcha tillar""Barcha hududlar""Qidiruv"
@@ -1941,19 +1936,18 @@
"Kamera ishlamayapti""Telefonda davom ettirish""Mikrofon ishlamayapti"
- "Play Market ishlamayapti""Android TV sozlamalari ishlamayapti""Planshet sozlamalari ishlamayapti""Telefon sozlamalari ishlamayapti"
- "Ayni vaqtda bu translatsiya %1$s qurilmangizda ishlamaydi. Android TV qurilmasi orqali urinib koʻring."
- "Ayni vaqtda bu translatsiya %1$s qurilmangizda ishlamaydi. Planshet orqali urinib koʻring."
- "Ayni vaqtda bu translatsiya %1$s qurilmangizda ishlamaydi. Telefon orqali urininb koʻring."
+ "Bu %1$s qurilmangizda ochilmaydi. Android TV qurilmasi orqali urinib koʻring."
+ "Bu %1$s qurilmangizda ochilmaydi. Planshet orqali urinib koʻring."
+ "Bu %1$s qurilmangizda ochilmaydi. Telefon orqali urininb koʻring."
+ "Ayni vaqtda bu translatsiya %1$s qurilmangizda ishlamaydi. Android TV qurilmasi orqali urinib koʻring."
+ "Ayni vaqtda bu translatsiya %1$s qurilmangizda ishlamaydi. Planshet orqali urinib koʻring."
+ "Ayni vaqtda bu translatsiya %1$s qurilmangizda ishlamaydi. Telefon orqali urininb koʻring.""Bu ilova qoʻshimcha himoyani talab qilmoqda. Android TV qurilmasi orqali urinib koʻring.""Bu ilova qoʻshimcha himoyani talab qilmoqda. Planshet orqali urinib koʻring.""Bu ilova qoʻshimcha himoyani talab qilmoqda. Telefon orqali urininb koʻring."
- "Bu %1$s qurilmangizda ochilmaydi. Android TV qurilmasi orqali urinib koʻring."
- "Bu %1$s qurilmangizda ochilmaydi. Planshet orqali urinib koʻring."
- "Bu %1$s qurilmangizda ochilmaydi. Telefon orqali urininb koʻring.""Bu ilova eskiroq Android versiyalariga chiqarilgan va xato ishlashi mumkin. Yangilanishlarini tekshiring yoki dasturchi bilan bog‘laning.""Yangilanish borligini tekshirish""Sizga yangi SMS keldi"
@@ -2043,11 +2037,10 @@
"O‘CHIRIB TASHLASH""BARIBIR OCHILSIN""Zararli ilova aniqlandi"
- "%s uchun qurilmadagi barcha jurnallarga kirish ruxsati berilsinmi?"
- "Bir martalik ruxsat berish"
+ "%s ilovasiga qurilmadagi barcha jurnal qaydlariga ruxsat berilsinmi?"
+ "Bir matalik foydalanishga ruxsat berish""Rad etish"
- "Qurilma jurnaliga qurilma bilan yuz bergan hodisalar qaydlari yoziladi. Ilovalar bu jurnal qaydlari yordamida muammolarni topishi va bartaraf qilishi mumkin.\n\nAyrim jurnal qaydlarida maxfiy axborotlar yozilishi mumkin, shu sababli qurilmadagi barcha jurnal qaydlariga ruxsatni faqat ishonchli ilovalarga bering. \n\nBu ilovaga qurilmadagi barcha jurnal qaydlariga ruxsat berilmasa ham, u oʻzining jurnalini ocha oladi. Qurilma ishlab chiqaruvchisi ham ayrim jurnallar yoki qurilma haqidagi axborotlarni ocha oladi."
- "Qurilma jurnaliga qurilma bilan yuz bergan hodisalar qaydlari yoziladi. Ilovalar bu jurnal qaydlari yordamida muammolarni topishi va bartaraf qilishi mumkin.\n\nAyrim jurnal qaydlarida maxfiy axborotlar yozilishi mumkin, shu sababli qurilmadagi barcha jurnal qaydlariga ruxsatni faqat ishonchli ilovalarga bering. \n\nBu ilovaga qurilmadagi barcha jurnal qaydlariga ruxsat berilmasa ham, u oʻzining jurnalini ocha oladi. Qurilma ishlab chiqaruvchisi ham ayrim jurnallar yoki qurilma haqidagi axborotlarni ocha oladi.\n\nBatafsil: g.co/android/devicelogs."
+ "Qurilma jurnaliga qurilma bilan yuz bergan hodisalar qaydlari yoziladi. Ilovalar bu jurnal qaydlari yordamida muammolarni topishi va bartaraf qilishi mumkin.\n\nAyrim jurnal qaydlarida maxfiy axborotlar yozilishi mumkin, shu sababli qurilmadagi barcha jurnal qaydlariga ruxsatni faqat ishonchli ilovalarga bering. \n\nBu ilovaga qurilmadagi barcha jurnal qaydlariga ruxsat berilmasa ham, u oʻzining jurnalini ocha oladi. Qurilma ishlab chiqaruvchisi ham ayrim jurnallar yoki qurilma haqidagi axborotlarni ocha oladi. Batafsil""Boshqa chiqmasin""%1$s ilovasi %2$s ilovasidan fragmentlar ko‘rsatish uchun ruxsat so‘ramoqda""Tahrirlash"
@@ -2060,7 +2053,8 @@
"Bezovta qilinmasin rejimi sozlamalari o‘zgartirildi""Nimalar bloklanganini tekshirish uchun bosing""Bildirishnoma sozlamalarini tekshiring"
- "Android 13 versiyasidan boshlab, oʻrnatiladigan ilovalar bildirishnoma yuborish uchun sizdan ruxsat oladi. Mavjud ilovalarda ushbu ruxsatni oʻzgartirish uchun bosing."
+
+ "Keyinroq eslatilsin""Yopish""Tizim"
@@ -2288,6 +2282,5 @@
"Faol ilovalarni tekshiring""%1$s qurilmasidan telefonning kamerasiga kirish imkonsiz""%1$s qurilmasidan planshetning kamerasiga kirish imkonsiz"
- "Bu kontent striming vaqtida ochilmaydi. Telefon orqali urininb koʻring."
- "Tizim standarti"
+ "Tizim tili"
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 7e89e0d513825d994e97052e1cce6ebd7636152f..32558965c3c1a15e48780e85bbcce148390840f6 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Không có tiêu đề>""(Không có số điện thoại nào)"
@@ -28,7 +33,6 @@
"Thư thoại""MSISDN1""Sự cố kết nối hoặc mã MMI không hợp lệ."
- "Tính năng không được hỗ trợ.""Chỉ hạn chế thao tác đối với số quay số định sẵn.""Không thể thay đổi cài đặt chuyển tiếp cuộc gọi từ điện thoại của bạn khi bạn đang chuyển vùng.""Dịch vụ đã được bật."
@@ -43,8 +47,8 @@
"Mã PIN bạn đã nhập không khớp.""Nhập mã PIN có từ 4 đến 8 số.""Nhập PUK có từ 8 số trở lên."
- "SIM của bạn đang bị khoá PUK. Hãy nhập mã PUK để mở khoá."
- "Hãy nhập mã PUK2 để mở khoá SIM."
+ "Thẻ SIM của bạn đã bị khóa PUK. Nhập mã PUK để mở khóa thẻ SIM đó."
+ "Nhập mã PUK2 để bỏ chặn thẻ SIM.""Không thành công, kích hoạt tính năng khóa SIM/RUIM."Bạn còn %d lần thử trước khi SIM bị khóa.
@@ -301,12 +305,12 @@
"truy cập lịch của bạn""Tin nhắn SMS""gửi và xem tin nhắn SMS"
- "Tệp"
- "truy cập tệp trên thiết bị của bạn"
- "Nhạc và âm thanh"
- "truy cập vào âm nhạc và âm thanh trên thiết bị của bạn"
- "Ảnh và video"
- "truy cập vào ảnh và video trên thiết bị của bạn"
+ "Tệp và tài liệu"
+ "truy cập vào các tệp và tài liệu trên thiết bị của bạn"
+ "Nhạc và âm thanh khác"
+ "truy cập vào tệp âm thanh trên thiết bị"
+ "Ảnh và video"
+ "truy cập vào tệp hình ảnh và video trên thiết bị""Micrô""ghi âm""Hoạt động thể chất"
@@ -325,7 +329,7 @@
"hiển thị thông báo""Truy xuất nội dung cửa sổ""Kiểm tra nội dung của cửa sổ bạn đang tương tác."
- "Bật tính năng Khám phá bằng cách chạm"
+ "Bật Khám phá bằng cách chạm""Đọc to các mục được nhấn và cho phép khám phá màn hình bằng cử chỉ.""Quan sát nội dung bạn nhập""Bao gồm dữ liệu cá nhân chẳng hạn như số thẻ tín dụng và mật khẩu."
@@ -582,14 +586,13 @@
"Dùng phương thức khóa màn hình""Hãy nhập phương thức khóa màn hình của bạn để tiếp tục""Nhấn chắc trên cảm biến"
- "Không nhận dạng được vân tay. Hãy thử lại."
+ "Không thể xử lý vân tay. Vui lòng thử lại.""Hãy vệ sinh cảm biến vân tay rồi thử lại""Vệ sinh cảm biến rồi thử lại""Nhấn chắc trên cảm biến""Di chuyển ngón tay quá chậm. Vui lòng thử lại.""Hãy thử một vân tay khác""Quá sáng"
- "Phát hiện thấy thao tác nhấn nút Nguồn""Hãy thử điều chỉnh""Mỗi lần, hãy thay đổi vị trí ngón tay một chút"
@@ -601,17 +604,16 @@
"Đã xác thực khuôn mặt, vui lòng nhấn để xác nhận""Phần cứng vân tay không khả dụng.""Không thể thiết lập vân tay"
- "Hết thời gian thiết lập vân tay. Hãy thử lại."
+ "Đã hết thời gian chờ vân tay. Hãy thử lại.""Thao tác dùng dấu vân tay bị hủy.""Người dùng đã hủy thao tác dùng dấu vân tay."
- "Bạn đã thử quá nhiều lần. Hãy dùng phương thức khoá màn hình."
- "Bạn đã thử quá nhiều lần. Hãy dùng phương thức khoá màn hình."
- "Không xử lý được vân tay. Hãy thử lại."
+ "Quá nhiều lần thử. Hãy thử lại sau."
+ "Quá nhiều lần thử. Cảm biến vân tay đã bị tắt."
+ "Thử lại.""Chưa đăng ký vân tay.""Thiết bị này không có cảm biến vân tay.""Đã tạm thời tắt cảm biến.""Không thể dùng cảm biến vân tay. Hãy liên hệ với một nhà cung cấp dịch vụ sửa chữa"
- "Đã nhấn nút nguồn""Ngón tay %d""Dùng vân tay""Dùng vân tay hoặc phương thức khóa màn hình"
@@ -632,33 +634,26 @@
"Mở khóa bằng vân tay""Không thể dùng cảm biến vân tay""Hãy liên hệ với một nhà cung cấp dịch vụ sửa chữa."
- "Không thể tạo mẫu khuôn mặt của bạn. Hãy thử lại."
+ "Không thể ghi lại đúng dữ liệu mặt. Hãy thử lại.""Quá sáng. Hãy thử giảm độ sáng."
- "Không đủ ánh sáng"
- "Đưa điện thoại ra xa hơn"
- "Đưa điện thoại lại gần hơn"
- "Nâng điện thoại lên cao hơn"
- "Hạ thấp điện thoại xuống"
- "Đưa điện thoại sang bên trái"
- "Đưa điện thoại sang bên phải"
+ "Quá tối. Hãy thử tăng độ sáng."
+ "Đưa điện thoại ra xa hơn."
+ "Đưa điện thoại lại gần hơn."
+ "Nâng điện thoại lên cao hơn."
+ "Hạ thấp điện thoại xuống."
+ "Đưa điện thoại sang bên trái."
+ "Đưa điện thoại sang bên phải.""Vui lòng nhìn thẳng vào thiết bị."
- "Không phát hiện thấy khuôn mặt của bạn. Hãy cầm điện thoại ngang tầm mắt"
+ "Hướng thẳng khuôn mặt về phía trước điện thoại.""Thiết bị di chuyển quá nhiều. Giữ yên thiết bị.""Vui lòng đăng ký lại khuôn mặt của bạn."
- "Không thể nhận dạng khuôn mặt. Hãy thử lại."
- "Nghiêng đầu của bạn một chút"
- "Nhìn thẳng vào điện thoại"
- "Nhìn thẳng vào điện thoại"
- "Nhìn thẳng vào điện thoại"
+ "Không nhận ra khuôn mặt. Hãy thử lại."
+ "Khuôn mặt quá giống nhau, vui lòng đổi tư thế."
+ "Hãy bớt di chuyển đầu."
+ "Hãy bớt ngửa hoặc cúi đầu."
+ "Hãy bớt di chuyển đầu.""Hãy loại bỏ mọi thứ che khuất khuôn mặt bạn.""Vệ sinh phần đầu màn hình, bao gồm cả thanh màu đen"
-
-
-
-
- "Không thể tạo mẫu khuôn mặt của bạn. Hãy thử lại."
- "Đã phát hiện thấy kính râm. Toàn bộ khuôn mặt của bạn phải được trông thấy rõ ràng."
- "Đã phát hiện khuôn mặt bị che khuất. Toàn bộ khuôn mặt của bạn phải được hiển thị.""Không thể xác minh khuôn mặt. Phần cứng không có sẵn."
@@ -791,7 +786,7 @@
"Nhà riêng""Di động"
- "Nơi làm việc"
+ "Cơ quan""Số fax cơ quan""Số fax nhà riêng""Số máy nhắn tin"
@@ -800,24 +795,24 @@
"Nhà riêng"
- "Nơi làm việc"
+ "Cơ quan""Khác""Tùy chỉnh""Nhà riêng"
- "Nơi làm việc"
+ "Cơ quan""Khác""Tùy chỉnh""Nhà riêng"
- "Nơi làm việc"
+ "Cơ quan""Khác""Tùy chỉnh"
- "Nơi làm việc"
+ "Cơ quan""Khác""Tùy chỉnh"
@@ -834,7 +829,7 @@
"Tùy chỉnh""Nhà riêng""Di động"
- "Nơi làm việc"
+ "Cơ quan""Số fax cơ quan""Số fax nhà riêng""Số máy nhắn tin"
@@ -858,16 +853,16 @@
"Khác""Tùy chỉnh""Nhà riêng"
- "Nơi làm việc"
+ "Cơ quan""Khác""Di Động""Tùy chỉnh""Nhà riêng"
- "Nơi làm việc"
+ "Cơ quan""Khác""Tùy chỉnh""Nhà riêng"
- "Nơi làm việc"
+ "Cơ quan""Khác""Tùy chỉnh""AIM"
@@ -879,7 +874,7 @@
"ICQ""Jabber""NetMeeting"
- "Nơi làm việc"
+ "Cơ quan""Khác""Tùy chỉnh""Tùy chỉnh"
@@ -899,7 +894,7 @@
"Vợ/chồng""Tùy chỉnh""Nhà riêng"
- "Nơi làm việc"
+ "Cơ quan""Khác""Không tìm thấy ứng dụng nào để xem liên hệ này.""Nhập mã PIN"
@@ -924,14 +919,14 @@
"Thử lại""Mở khóa đối với tất cả các tính năng và dữ liệu""Đã vượt quá số lần Mở khóa bằng khuôn mặt tối đa"
- "Không có SIM"
- "Không có SIM nào trong máy tính bảng."
- "Không có SIM nào trong thiết bị Android TV."
- "Không có SIM nào trong điện thoại."
- "Hãy thêm SIM."
- "Không tìm thấy hoặc không đọc được SIM. Hãy thêm SIM."
- "SIM không sử dụng được."
- "SIM của bạn đã bị vô hiệu hoá vĩnh viễn.\n Hãy liên hệ với nhà cung cấp dịch vụ viễn thông không dây của bạn để yêu cầu cấp SIM khác."
+ "Không có thẻ SIM nào"
+ "Không có thẻ SIM nào trong máy tính bảng."
+ "Thiết bị Android TV không có thẻ SIM."
+ "Không có thẻ SIM nào trong điện thoại."
+ "Hãy lắp thẻ SIM."
+ "Thẻ SIM bị thiếu hoặc không thể đọc được. Vui lòng lắp thẻ SIM."
+ "Thẻ SIM không sử dụng được."
+ "Thẻ SIM của bạn đã bị vô hiệu hóa vĩnh viễn .\n Hãy liên hệ với nhà cung cấp dịch vụ không dây của bạn để lấy thẻ SIM khác.""Bản nhạc trước""Bản nhạc tiếp theo""Tạm dừng"
@@ -941,10 +936,10 @@
"Tua đi""Chỉ cuộc gọi khẩn cấp""Mạng đã khóa"
- "SIM này đang bị khoá PUK."
+ "Thẻ SIM đã bị khóa PUK.""Vui lòng xem Hướng dẫn người dùng hoặc liên hệ với Bộ phận chăm sóc khách hàng."
- "SIM này đang bị khoá."
- "Đang mở khoá SIM…"
+ "Thẻ SIM đã bị khóa."
+ "Đang mở khóa thẻ SIM…""Bạn đã %1$d lần vẽ không chính xác hình mở khóa. \n\nVui lòng thử lại sau %2$d giây.""Bạn đã %1$d lần nhập sai mật khẩu. \n\nHãy thử lại sau %2$d giây.""Bạn đã nhập sai mã PIN %1$d lần. \n\nHãy thử lại sau %2$d giây."
@@ -1205,7 +1200,7 @@
"%1$s tiếp tục dừng""%1$s tiếp tục dừng""Mở lại ứng dụng"
- "Gửi ý kiến phản hồi"
+ "Gửi phản hồi""Đóng""Tắt tiếng cho đến khi thiết bị khởi động lại""Đợi"
@@ -1229,7 +1224,7 @@
"Luôn hiển thị""%1$s được xây dựng cho phiên bản không tương thích của hệ điều hành Android và có thể hoạt động không như mong đợi. Bạn có thể sử dụng phiên bản cập nhật của ứng dụng.""Luôn hiển thị"
- "Kiểm tra để tìm bản cập nhật"
+ "Kiểm tra bản cập nhật""Ứng dụng %1$s (quá trình %2$s) đã vi phạm chính sách StrictMode tự thi hành của mình.""Quá trình %1$s đã vi phạm chính sách StrictMode tự thi hành của mình.""Điện thoại đang cập nhật…"
@@ -1246,9 +1241,10 @@
"Đang chuẩn bị %1$s.""Khởi động ứng dụng.""Hoàn tất khởi động."
+ "Tiếp tục thiết lập?""Bạn đã nhấn nút nguồn – thao tác này thường tắt màn hình.\n\nHãy thử nhấn nhẹ khi thiết lập vân tay của bạn."
- "Để kết thúc thiết lập, hãy tắt màn hình"
- "Tắt"
+ "Tắt màn hình"
+ "Tiếp tục thiết lập""Tiếp tục xác minh vân tay của bạn?""Bạn đã nhấn nút nguồn – thao tác này thường tắt màn hình.\n\nHãy thử nhấn nhẹ để xác minh vân tay.""Tắt màn hình"
@@ -1327,10 +1323,10 @@
"Bạn có thể thay đổi cài đặt này sau trong Cài đặt > Ứng dụng""Luôn cho phép""Không bao giờ cho phép"
- "Đã xoá SIM"
- "Bạn sẽ không dùng được mạng di động cho đến khi khởi động lại bằng một SIM hợp lệ."
+ "Đã xóa thẻ SIM"
+ "Mạng di động sẽ không khả dụng cho đến khi bạn khởi động lại với thẻ SIM hợp lệ được lắp.""Xong"
- "Đã thêm SIM"
+ "Đã thêm thẻ SIM""Khởi động lại thiết bị của bạn để truy cập mạng di động.""Khởi động lại""Kích hoạt dịch vụ di động"
@@ -1401,16 +1397,16 @@
"Hãy nhấn để thiết lập""Chọn để thiết lập""Bạn có thể phải định dạng lại thiết bị. Nhấn để ngắt kết nối."
- "Để lưu trữ ảnh, video, nhạc và nhiều nội dung khác"
+ "Để chuyển ảnh và phương tiện""Duyệt xem các tệp nội dung nghe nhìn""Vấn đề với %s""%s không hoạt động""Hãy nhấn để sửa""%s bị lỗi. Chọn để sửa.""Bạn có thể phải định dạng lại thiết bị. Nhấn để ngắt kết nối."
- "Đã phát hiện %s"
+ "%s không được hỗ trợ""%s không hoạt động"
- "Nhấn để thiết lập."
+ "Thiết bị này không hỗ trợ %s này. Nhấn để thiết lập ở định dạng được hỗ trợ.""Chọn để thiết lập %s ở một định dạng được hỗ trợ.""Bạn có thể phải định dạng lại thiết bị""Đã tháo đột ngột %s"
@@ -1420,7 +1416,7 @@
"Đang ngắt kết nối %s""Không tháo""Thiết lập"
- "Ngắt kết nối"
+ "Tháo""Khám phá""Chuyển đổi đầu ra""%s bị thiếu"
@@ -1609,7 +1605,7 @@
"TV""Điện thoại""Loa đế"
- "Thiết bị bên ngoài"
+ "HDMI""Tai nghe""USB""Hệ thống"
@@ -1642,7 +1638,7 @@
"SIM hiện bị vô hiệu hóa. Nhập mã PUK để tiếp tục. Liên hệ với nhà cung cấp dịch vụ để biết chi tiết.""Nhập mã PIN mong muốn""Xác nhận mã PIN mong muốn"
- "Đang mở khoá SIM…"
+ "Đang mở khóa thẻ SIM…""Mã PIN không chính xác.""Nhập mã PIN có từ 4 đến 8 số.""Mã PUK phải có 8 số."
@@ -1923,7 +1919,6 @@
"Tùy chọn khu vực""Nhập tên ngôn ngữ""Đề xuất"
- "Ðề xuất""Tất cả ngôn ngữ""Tất cả khu vực""Tìm kiếm"
@@ -1941,21 +1936,20 @@
"Không dùng được máy ảnh""Tiếp tục trên điện thoại""Không dùng được micrô"
- "Cửa hàng Play không có sẵn""Không dùng được các chế độ cài đặt của Android TV""Không dùng được các chế độ cài đặt của máy tính bảng""Không dùng được các chế độ cài đặt của điện thoại"
- "Hiện tại, bạn không thể truy cập vào ứng dụng này trên %1$s. Hãy thử trên thiết bị Android TV."
- "Hiện tại, bạn không thể truy cập vào ứng dụng này trên %1$s. Hãy thử trên máy tính bảng."
- "Hiện tại, bạn không thể truy cập vào ứng dụng này trên %1$s. Hãy thử trên điện thoại."
+ "Hiện tại, bạn không thể truy cập vào ứng dụng này trên %1$s. Hãy thử trên thiết bị Android TV."
+ "Hiện tại, bạn không thể truy cập vào ứng dụng này trên %1$s. Hãy thử trên máy tính bảng."
+ "Hiện tại, bạn không thể truy cập vào ứng dụng này trên %1$s. Hãy thử trên điện thoại."
+ "Hiện tại, bạn không thể truy cập vào ứng dụng này trên %1$s. Hãy thử trên thiết bị Android TV."
+ "Hiện tại, bạn không thể truy cập vào ứng dụng này trên %1$s. Hãy thử trên máy tính bảng."
+ "Hiện tại, bạn không thể truy cập vào ứng dụng này trên %1$s. Hãy thử trên điện thoại.""Ứng dụng này đang yêu cầu tính năng bảo mật bổ sung. Hãy thử trên thiết bị Android TV.""Ứng dụng này đang yêu cầu tính năng bảo mật bổ sung. Hãy thử trên máy tính bảng.""Ứng dụng này đang yêu cầu tính năng bảo mật bổ sung. Hãy thử trên điện thoại."
- "Hiện tại, bạn không thể truy cập vào ứng dụng này trên %1$s. Hãy thử trên thiết bị Android TV."
- "Hiện tại, bạn không thể truy cập vào ứng dụng này trên %1$s. Hãy thử trên máy tính bảng."
- "Hiện tại, bạn không thể truy cập vào ứng dụng này trên %1$s. Hãy thử trên điện thoại.""Ứng dụng này được xây dựng cho một phiên bản Android cũ hơn và có thể hoạt động không bình thường. Hãy thử kiểm tra các bản cập nhật hoặc liên hệ với nhà phát triển."
- "Kiểm tra để tìm bản cập nhật"
+ "Kiểm tra bản cập nhật""Bạn có tin nhắn mới""Mở ứng dụng SMS để xem""Một số chức năng có thể bị hạn chế"
@@ -2046,8 +2040,7 @@
"Cho phép %s truy cập vào tất cả các nhật ký thiết bị?""Cho phép truy cập một lần""Không cho phép"
- "Nhật ký thiết bị ghi lại những hoạt động diễn ra trên thiết bị. Các ứng dụng có thể dùng nhật ký này để tìm và khắc phục sự cố.\n\nMột số nhật ký có thể chứa thông tin nhạy cảm, vì vậy, bạn chỉ nên cấp quyền truy cập vào toàn bộ nhật ký thiết bị cho những ứng dụng mà mình tin cậy. \n\nNếu bạn không cho phép ứng dụng này truy cập vào toàn bộ nhật ký thiết bị, thì ứng dụng vẫn có thể truy cập vào nhật ký của chính nó. Nhà sản xuất thiết bị vẫn có thể truy cập vào một số nhật ký hoặc thông tin trên thiết bị của bạn."
- "Nhật ký thiết bị ghi lại những hoạt động diễn ra trên thiết bị. Các ứng dụng có thể dùng các nhật ký này để tìm và khắc phục sự cố.\n\nMột số nhật ký có thể chứa thông tin nhạy cảm, vì vậy, bạn chỉ nên cấp quyền truy cập vào mọi nhật ký thiết bị cho những ứng dụng mà mình tin cậy. \n\nNếu bạn không cho phép ứng dụng này truy cập vào toàn bộ nhật ký thiết bị, thì ứng dụng vẫn có thể truy cập vào nhật ký của chính nó. Nhà sản xuất thiết bị vẫn có thể truy cập vào một số nhật ký hoặc thông tin trên thiết bị của bạn.\n\nTìm hiểu thêm tại g.co/android/devicelogs."
+ "Nhật ký thiết bị ghi lại những hoạt động diễn ra trên thiết bị. Các ứng dụng có thể dùng nhật ký này để tìm và khắc phục sự cố.\n\nMột số nhật ký có thể chứa thông tin nhạy cảm, vì vậy, bạn chỉ nên cấp quyền truy cập vào mọi nhật ký trên thiết bị cho những ứng dụng mà mình tin cậy. \n\nNếu bạn không cho phép ứng dụng này truy cập vào mọi nhật ký trên thiết bị, thì ứng dụng vẫn có thể truy cập vào nhật ký của chính nó. Nhà sản xuất thiết bị vẫn có thể truy cập vào một số nhật ký hoặc thông tin trên thiết bị của bạn. Tìm hiểu thêm""Không hiện lại""%1$s muốn hiển thị các lát của %2$s""Chỉnh sửa"
@@ -2060,7 +2053,8 @@
"Cài đặt Không làm phiền đã thay đổi""Nhấn để xem những thông báo bị chặn.""Xem lại chế độ cài đặt thông báo"
- "Bắt đầu trên Android 13, các ứng dụng bạn cài đặt sẽ cần bạn cấp quyền để gửi thông báo. Hãy nhấn để thay đổi quyền này cho các ứng dụng hiện có."
+
+ "Nhắc tôi sau""Đóng""Hệ thống"
@@ -2288,6 +2282,5 @@
"Xem các ứng dụng đang hoạt động""Không truy cập được vào máy ảnh trên điện thoại từ %1$s của bạn""Không truy cập được vào máy ảnh trên máy tính bảng từ %1$s của bạn"
- "Bạn không thể truy cập vào nội dung này trong khi phát trực tuyến. Hãy thử trên điện thoại."
- "Theo chế độ mặc định của hệ thống"
+ "Ngôn ngữ hệ thống"
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 93fc1331f0e02228429ffe9107a9a03bd305201e..fc750682b90cead695b05d441cf7af2ceed36682 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<未命名>""(无电话号码)"
@@ -28,7 +33,6 @@
"语音信箱""MSISDN1""出现连接问题或 MMI 码无效。"
- "不支持此功能。""只能对固定拨号号码执行此类操作。""漫游时无法通过您的手机来更改来电转接设置。""已启用服务。"
@@ -43,8 +47,8 @@
"您输入的PIN码不一致。""输入一个4至8位数的PIN码。""请输入至少8位数字的PUK码。"
- "您的 SIM 卡已用 PUK 码锁定。请输入 PUK 码将其解锁。"
- "请输入 PUK2 码以解锁 SIM 卡。"
+ "您的 SIM 卡已用 PUK 码锁定。请输入 PUK 码将其解锁。"
+ "输入 PUK2 码以解锁 SIM 卡。""失败,请开启 SIM/RUIM 卡锁定设置。"您还可尝试 %d 次。如果仍不正确,SIM 卡将被锁定。
@@ -301,12 +305,12 @@
"访问您的日历""短信""发送和查看短信"
- "文件"
- "访问您设备上的文件"
- "音乐和音频"
- "访问您设备上的音乐和音频"
- "照片和视频"
- "访问您设备上的照片和视频"
+ "文件和文档"
+ "访问您设备上的文件和文档"
+ "音乐和其他音频"
+ "访问您设备上的音频文件"
+ "照片和视频"
+ "访问您设备上的图片和视频文件""麦克风""录制音频""身体活动"
@@ -582,16 +586,15 @@
"使用屏幕锁定凭据""输入您的屏幕锁定凭据才能继续""请用力按住传感器"
- "无法识别指纹,请重试。"
+ "无法处理指纹,请重试。""请清洁指纹传感器,然后重试""请清洁传感器,然后重试""请用力按住传感器""手指移动太慢,请重试。""请试试其他指纹""光线太亮"
- "检测到按下“电源”按钮的操作""请尝试调整指纹"
- "每次放手指时,请略微变换手指的位置"
+ "请在每次放手指时略微更改手指的位置""未能识别指纹"
@@ -601,17 +604,16 @@
"面孔已验证,请按确认按钮""指纹硬件无法使用。""无法设置指纹"
- "指纹设置已超时,请重试。"
+ "指纹录入操作超时,请重试。""指纹操作已取消。""用户取消了指纹操作。"
- "尝试次数过多,请通过屏幕锁定功能解锁。"
- "尝试次数过多,请通过屏幕锁定功能解锁。"
- "无法处理指纹,请重试。"
+ "尝试次数过多,请稍后重试。"
+ "尝试次数过多。指纹传感器已停用。"
+ "请重试。""未注册任何指纹。""此设备没有指纹传感器。""传感器已暂时停用。""无法使用指纹传感器。请联系维修服务提供商"
- "已按下电源按钮""手指 %d""使用指纹""使用指纹或屏幕锁定凭据"
@@ -632,33 +634,26 @@
"指纹解锁""无法使用指纹传感器""请联系维修服务提供商。"
- "无法创建您的脸部模型,请重试。"
+ "无法捕获准确的人脸数据,请重试。""亮度过高,请尝试使用较柔和的亮度。"
- "光线不足"
- "请将手机拿远一点"
- "请将手机拿近一点"
- "请将手机举高一点"
- "请将手机拿低一点"
- "请将手机向左移动"
- "请将手机向右移动"
+ "亮度不足,请尝试将光线调亮。"
+ "请将手机拿远一点。"
+ "请将手机拿近一点。"
+ "请将手机举高一点。"
+ "请将手机拿低一点。"
+ "请将手机向左移动。"
+ "请将手机向右移动。""请直视您的设备。"
- "看不清您的脸部,请将手机举到与眼睛齐平的位置。"
+ "请将你的面部正对手机。""摄像头过于晃动。请将手机拿稳。""请重新注册您的面孔。"
- "无法识别人脸,请重试。"
- "请略微调整头部的位置"
- "请尽量直视手机"
- "请尽量直视手机"
- "请尽量直视手机"
+ "已无法识别人脸,请重试。"
+ "与先前的姿势太相近,请换一个姿势。"
+ "请将您的头稍微上下倾斜。"
+ "请稍微抬头或低头。"
+ "请将您的头稍微左右旋转。""请移除所有遮挡您面部的物体。""请将屏幕顶部(包括黑色条栏)清理干净"
-
-
-
-
- "无法创建您的脸部模型,请重试。"
- "检测到墨镜,您的脸部必须完全可见。"
- "检测到脸部有遮挡物,您的脸部必须完全可见。""无法验证人脸。硬件无法使用。"
@@ -924,14 +919,14 @@
"重试""解锁即可使用所有功能和数据""已超过“人脸解锁”尝试次数上限"
- "没有 SIM 卡"
- "平板电脑中没有 SIM 卡。"
- "您的 Android TV 设备中没有 SIM 卡。"
- "手机中没有 SIM 卡。"
- "请插入 SIM 卡。"
- "SIM 卡缺失或无法读取。请插入 SIM 卡。"
- "SIM 卡无法使用。"
- "您的 SIM 卡已被永久停用。\n请与您的无线服务提供商联系,以便重新获取一张 SIM 卡。"
+ "没有 SIM 卡"
+ "平板电脑中没有SIM卡。"
+ "您的 Android TV 设备中没有 SIM 卡。"
+ "手机中无SIM卡"
+ "请插入SIM卡"
+ "SIM卡缺失或无法读取。请插入SIM卡。"
+ "SIM卡无法使用。"
+ "您的SIM卡已永久停用。\n请与您的无线服务提供商联系,以便重新获取一张SIM卡。""上一首""下一曲""暂停"
@@ -941,10 +936,10 @@
"快进""只能拨打紧急呼救电话""网络已锁定"
- "SIM 卡已用 PUK 码锁定。"
+ "SIM 卡已用 PUK 码锁定。""请参阅《用户指南》或与客服人员联系。"
- "SIM 卡已被锁定。"
- "正在解锁 SIM 卡…"
+ "SIM 卡已被锁定。"
+ "正在解锁 SIM 卡...""您已连续 %1$d 次画错解锁图案。\n\n请在 %2$d 秒后重试。""您已连续 %1$d 次输错密码。\n\n请在 %2$d 秒后重试。""您已经%1$d次输错了PIN码。\n\n请在%2$d秒后重试。"
@@ -1246,9 +1241,10 @@
"正在准备升级%1$s。""正在启动应用。""即将完成启动。"
+ "要继续设置吗?""您已按电源按钮,这通常会关闭屏幕。\n\n请尝试在设置指纹时轻轻按一下。"
- "若要结束设置,请关闭屏幕"
- "关闭"
+ "关闭屏幕"
+ "继续设置""要继续验证您的指纹吗?""您已按电源按钮,这通常会关闭屏幕。\n\n请尝试轻轻按一下来验证您的指纹。""关闭屏幕"
@@ -1327,10 +1323,10 @@
"之后,您可以在“设置”>“应用”中更改此设置""始终允许""永不允许"
- "已取出 SIM 卡"
- "移动网络不可用,请插入有效的 SIM 卡并重新启动。"
+ "已移除SIM卡"
+ "移动网络不可用。请插入有效的SIM卡并重新启动。""完成"
- "已插入 SIM 卡"
+ "已添加SIM卡""请重新启动您的设备,以便访问移动网络。""重新启动""激活移动网络服务"
@@ -1401,16 +1397,16 @@
"点按即可进行设置""选择即可设置""您可能需要重新格式化设备。点按即可弹出。"
- "用于存储照片、视频和音乐等"
+ "可用于传输照片和媒体文件""浏览媒体文件""%s出现问题""%s无法使用""点按即可修正问题""%s已损坏。选择即可进行修正。""您可能需要重新格式化设备。点按即可弹出。"
- "检测到%s"
+ "%s不受支持""%s无法使用"
- "点按即可设置。"
+ "该设备不支持此%s。点按即可使用支持的格式进行设置。""选择即可使用支持的格式设置%s。""您可能需要重新格式化设备""%s已意外移除"
@@ -1480,7 +1476,7 @@
"同步""无障碍""壁纸"
- "更换壁纸"
+ "更改壁纸""通知侦听器""VR 监听器""条件提供程序"
@@ -1558,7 +1554,7 @@
"滑动手柄。触摸并按住。""滑动解锁。""导航首页"
- "返回"
+ "向上导航""更多选项""%1$s:%2$s""%1$s - %2$s:%3$s"
@@ -1609,15 +1605,15 @@
"电视""手机""基座扬声器"
- "外部设备"
+ "HDMI""耳机""USB""系统""蓝牙音频""无线显示"
- "投放"
+ "投射""连接到设备"
- "将屏幕投放到设备上"
+ "将屏幕投射到设备上""正在搜索设备…""设置""断开连接"
@@ -1642,7 +1638,7 @@
"SIM卡已被停用,需要输入PUK码才能继续使用。有关详情,请联系您的运营商。""请输入所需的PIN码""请确认所需的PIN码"
- "正在解锁 SIM 卡…"
+ "正在解锁SIM卡...""PIN码有误。""请输入4至8位数的PIN码。""PUK码应包含8位数字。"
@@ -1682,7 +1678,7 @@
"不开启""已开启""已关闭"
- "要允许“%1$s”完全控制您的设备吗?"
+ "要允许%1$s完全控制您的设备吗?""对于能满足您的无障碍功能需求的应用,可授予其完全控制权限;但对大部分应用来说,都不适合授予此权限。""查看和控制屏幕""此功能可以读出屏幕上的所有内容,并在其他应用上层显示内容。"
@@ -1923,7 +1919,6 @@
"区域偏好设置""输入语言名称""建议语言"
- "推荐地区""所有语言""所有国家/地区""搜索"
@@ -1941,19 +1936,18 @@
"无法使用摄像头""继续在手机上操作""无法使用麦克风"
- "无法使用 Play 商店""无法使用 Android TV 设置""无法使用平板电脑设置""无法使用手机设置"
- "目前无法在您的%1$s上访问此内容。您可以尝试在 Android TV 设备上访问。"
- "目前无法在您的%1$s上访问此内容。您可以尝试在平板电脑上访问。"
- "目前无法在您的%1$s上访问此内容。您可以尝试在手机上访问。"
+ "无法在您的%1$s上访问此应用,您可以尝试在 Android TV 设备上访问。"
+ "无法在您的%1$s上访问此应用,您可以尝试在平板电脑上访问。"
+ "无法在您的%1$s上访问此应用,您可以尝试在手机上访问。"
+ "目前无法在您的%1$s上访问此应用,您可以尝试在 Android TV 设备上访问。"
+ "目前无法在您的%1$s上访问此应用,您可以尝试在平板电脑上访问。"
+ "目前无法在您的%1$s上访问此应用,您可以尝试在手机上访问。""此应用要求进行额外的安全性验证,您可以尝试在 Android TV 设备上访问。""此应用要求进行额外的安全性验证,您可以尝试在平板电脑上访问。""此应用要求进行额外的安全性验证,您可以尝试在手机上访问。"
- "无法在您的%1$s上访问此设置,您可以尝试在 Android TV 设备上访问。"
- "无法在您的%1$s上访问此设置,您可以尝试在平板电脑上访问。"
- "无法在您的%1$s上访问此设置,您可以尝试在手机上访问。""此应用专为旧版 Android 打造,因此可能无法正常运行。请尝试检查更新或与开发者联系。""检查更新""您有新消息"
@@ -1963,7 +1957,7 @@
"点按即可解锁工作资料""已连接到%1$s""点按即可查看文件"
- "置顶"
+ "固定""将%1$s置顶""取消固定""取消置顶%1$s"
@@ -2046,8 +2040,7 @@
"允许“%s”访问所有设备日志吗?""允许访问一次""不允许"
- "设备日志会记录设备上发生的活动。应用可以使用这些日志查找和修复问题。\n\n部分日志可能包含敏感信息,因此请仅允许您信任的应用访问所有设备日志。\n\n如果您不授予此应用访问所有设备日志的权限,它仍然可以访问自己的日志。您的设备制造商可能仍然能够访问设备上的部分日志或信息。"
- "设备日志会记录设备上发生的活动。应用可以使用这些日志查找和修复问题。\n\n部分日志可能包含敏感信息,因此请仅允许您信任的应用访问所有设备日志。\n\n如果您不授予此应用访问所有设备日志的权限,它仍然可以访问自己的日志。您的设备制造商可能仍然能够访问设备上的部分日志或信息。\n\n如需了解详情,请访问 g.co/android/devicelogs。"
+ "设备日志会记录设备上发生的活动。应用可以使用这些日志查找和修复问题。\n\n部分日志可能包含敏感信息,因此请仅允许您信任的应用访问所有设备日志。\n\n如果您不授予此应用访问所有设备日志的权限,它仍然可以访问自己的日志。您的设备制造商可能仍然能够访问您设备上的部分日志或信息。了解详情""不再显示""“%1$s”想要显示“%2$s”图块""编辑"
@@ -2060,7 +2053,8 @@
"“勿扰”设置有变更""点按即可查看屏蔽内容。""查看通知设置"
- "从 Android 13 开始,您安装的应用需要您授予相应权限才能发送通知。点按即可为现有应用更改此权限。"
+
+ "稍后提醒我""关闭""系统"
@@ -2288,6 +2282,5 @@
"查看使用中的应用""无法从%1$s上访问手机的摄像头""无法从%1$s上访问平板电脑的摄像头"
- "流式传输时无法访问此内容。您可以尝试在手机上访问。"
- "系统默认设置"
+ "系统语言"
diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml
index 82dfc83eaea628b383d952b0b091c8a726ec69ac..7cfedb692a5263babc2aac37984717cbb80fd9b6 100644
--- a/core/res/res/values-zh-rHK/strings.xml
+++ b/core/res/res/values-zh-rHK/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<未命名>""(沒有電話號碼)"
@@ -28,7 +33,6 @@
"留言信箱""MSISDN1""連線發生問題或 MMI 碼無效。"
- "不支援的功能。""僅限對固定撥號號碼執行這項運作。""使用漫遊服務時,不可從手機變更來電轉駁設定。""服務已啟用。"
@@ -43,8 +47,8 @@
"您輸入的 PIN 碼不符。""請輸入一個 4 至 8 位數的 PIN。""輸入 8 位數以上的 PUK。"
- "SIM 卡已使用 PUK 鎖定,請輸入 PUK 解鎖。"
- "請輸入 PUK2 解鎖 SIM 卡。"
+ "您的 SIM 卡已鎖定 PUK,請輸入 PUK 碼以解除鎖定。"
+ "輸入 PUK2 為 SIM 卡解除封鎖。""操作失敗,請啟用「SIM/RUIM 鎖定」。"您還有 %d 次機會輸入。如果仍然輸入錯誤,SIM 卡將會被鎖定。
@@ -301,12 +305,12 @@
"存取您的日曆""短訊""傳送和查看短訊"
- "檔案"
- "存取裝置上的檔案"
- "音樂和音訊"
- "在裝置上使用音樂和音訊"
- "相片和影片"
- "在裝置上使用相片和影片"
+ "檔案和文件"
+ "存取裝置上的檔案和文件"
+ "音樂和其他音訊"
+ "存取裝置上的音訊檔案"
+ "相片和影片"
+ "存取裝置上的圖片和影片檔案""麥克風""錄音""體能活動"
@@ -582,14 +586,13 @@
"使用螢幕鎖定""如要繼續操作,請輸入螢幕鎖定解鎖憑證""請用力按住感應器"
- "無法辨識指紋,請再試一次。"
+ "無法處理指紋。請再試一次。""請清潔指紋感應器,然後再試一次""請清潔感應器,然後再試一次""請用力按住感應器""手指移動太慢,請重試。""改用其他指紋""太亮"
- "偵測到按下開關按鈕""嘗試調整""每次掃瞄時請稍微變更手指的位置"
@@ -601,17 +604,16 @@
"面孔已經驗證,請㩒一下 [確認]""無法使用指紋軟件。""無法設定指紋"
- "指紋設定逾時,請再試一次。"
+ "指紋已逾時。請再試一次。""指紋操作已取消。""使用者已取消指紋操作。"
- "嘗試次數過多,請改用螢幕鎖定功能。"
- "嘗試次數過多,請改用螢幕鎖定功能。"
- "無法處理指紋,請再試一次。"
+ "嘗試次數過多,請稍後再試。"
+ "嘗試次數過多,指紋感應器已停用。"
+ "再試一次。""未註冊任何指紋""此裝置沒有指紋感應器。""感應器已暫時停用。""無法使用指紋感應器。請諮詢維修服務供應商"
- "已按下開關按鈕""手指 %d""使用指紋鎖定""使用指紋或螢幕鎖定"
@@ -632,56 +634,49 @@
"指紋解鎖""無法使用指紋感應器""請諮詢維修服務供應商。"
- "無法建立面部模型,請再試一次。"
+ "無法擷取準確的臉容資料。請再試一次。""影像太亮。請嘗試在更暗的環境下使用。"
- "光線不足"
- "請將手機移開一點"
- "請將手機移近一點"
- "請將手機向上移"
- "請將手機向下移"
- "請將手機向左移"
- "請將手機向右移"
+ "影像太暗。請嘗試在更明亮的環境下使用。"
+ "請將手機移遠一點。"
+ "請將手機移近一點。"
+ "請將手機向上移。"
+ "請將手機向下移。"
+ "請將手機向左移。"
+ "請將手機向右移。""請以更直視的角度看著裝置。"
- "看不到面孔,請將手機放在視線水平。"
+ "將手機對準您的臉孔正面。""裝置不夠穩定。請拿穩手機。"
- "請重新註冊面孔。"
- "無法辨識面孔,請再試一次。"
- "請稍為轉換頭部的位置"
- "正面望向手機"
- "正面望向手機"
- "正面望向手機"
- "移開遮住面孔的任何物件。"
+ "請重新註冊臉孔。"
+ "無法再識別臉孔。請再試一次。"
+ "臉孔位置太相近,請改變您的姿勢。"
+ "減少頭部左右轉動幅度。"
+ "減少頭部傾斜幅度。"
+ "減少頭部左右轉動幅度。"
+ "移除遮住您臉孔的任何東西。""請清理螢幕頂部,包括黑色列"
-
-
-
-
- "無法建立面部模型,請再試一次。"
- "偵測到深色眼鏡。您必須展示整個面孔。"
- "偵測到面部遮蓋物。您必須展示整個面孔。"
- "無法驗證面孔,硬件無法使用。"
+ "無法驗證臉孔,硬件無法使用。""請再次嘗試「面孔解鎖」""無法儲存新的臉容資料,請先刪除舊資料。"
- "面孔操作已取消。"
+ "臉孔操作已取消。""使用者已取消「面孔解鎖」""嘗試次數過多,請稍後再試。""嘗試次數過多,因此系統已停用「面孔解鎖」。""嘗試次數過多,請改為解除螢幕鎖定來驗證身分。"
- "無法驗證面孔。請再試一次。"
+ "無法驗證臉孔。請再試一次。""您尚未設定「面孔解鎖」""此裝置不支援「面孔解鎖」""感應器已暫時停用。"
- "面孔 %d"
+ "臉孔 %d""使用「面孔解鎖」"
- "使用面孔或螢幕鎖定"
+ "使用臉孔或螢幕鎖定""如要繼續操作,請使用您的面孔驗證身分""請使用面孔解鎖或螢幕鎖定功能驗證身分,才能繼續操作""發生錯誤,請再試一次。"
- "面孔圖示"
+ "臉孔圖示""讀取同步處理設定""允許應用程式讀取帳戶的同步設定,例如確定「通訊錄」應用程式是否和某個帳戶保持同步。""開啟和關閉同步功能"
@@ -916,7 +911,7 @@
"螢幕已鎖定。""按選單鍵解鎖或撥打緊急電話。""按選單鍵解鎖。"
- "畫出解鎖圖案來為螢幕解鎖"
+ "畫出解鎖圖形以解除鎖定螢幕""緊急電話""返回通話""正確!"
@@ -924,14 +919,14 @@
"再試一次""解鎖即可使用所有功能和資料""已超過面孔解鎖嘗試次數上限"
- "沒有 SIM 卡"
- "平板電腦中沒有 SIM 卡。"
- "Android TV 裝置中沒有 SIM 卡。"
- "手機中沒有 SIM 卡。"
- "請新增 SIM 卡。"
- "找不到 SIM 卡或 SIM 卡無法讀取,請新增 SIM 卡。"
- "SIM 卡無法使用。"
- "SIM 卡已永久停用。\n請向無線服務供應商索取其他 SIM 卡。"
+ "找不到 SIM 卡"
+ "平板電腦中沒有 SIM 卡。"
+ "Android TV 裝置中沒有 SIM 卡。"
+ "手機中沒有 SIM 卡。"
+ "請插入 SIM 卡。"
+ "找不到 SIM 卡或無法讀取 SIM 卡,請插入 SIM 卡。"
+ "SIM 卡無法使用。"
+ "您的 SIM 卡已被永久停用。\n請與您的無線服務供應商聯絡,以取得另一張 SIM 卡。""上一首曲目""下一首曲目""暫停"
@@ -941,10 +936,10 @@
"向前快轉""只可撥打緊急電話""網絡已鎖定"
- "SIM 卡已使用 PUK 鎖定。"
+ "SIM 卡處於 PUK 鎖定狀態。""請參閱使用者指南或與客戶服務中心聯絡。"
- "SIM 卡已鎖定。"
- "正在解鎖 SIM 卡…"
+ "SIM 卡處於鎖定狀態。"
+ "正在解除 SIM 卡鎖定...""您已畫錯解鎖圖案 %1$d 次。\n\n請在 %2$d 秒後再試一次。""您已輸入錯誤的密碼 %1$d 次。\n\n請在 %2$d 秒後再試一次。""您已輸入錯誤的 PIN 碼 %1$d 次。\n\n請在 %2$d 秒後再試一次。"
@@ -958,7 +953,7 @@
"您已 %d 次無法解鎖 Android TV 裝置,Android TV 裝置現在將回復原廠設定。""您嘗試解除這部手機的鎖定已失敗 %d 次。手機現在會重設為原廠預設值。""%d 秒後再試一次。"
- "忘記圖案?"
+ "忘記圖形?""帳戶解鎖""圖案嘗試次數過多""如要解鎖,請以 Google 帳戶登入。"
@@ -1246,9 +1241,10 @@
"正在準備 %1$s。""正在啟動應用程式。""啟動完成。"
+ "要繼續設定嗎?""您已按下開關按鈕,這麼做通常會關閉螢幕。\n\n設定指紋時請嘗試輕按開關按鈕。"
- "如要結束設定,請關閉螢幕"
- "關閉"
+ "關閉螢幕"
+ "繼續設定""要繼續驗證指紋嗎?""您已按下開關按鈕,這麼做通常會關閉螢幕。\n\n嘗試輕按開關按鈕以驗證指紋。""關閉螢幕"
@@ -1327,10 +1323,10 @@
"您日後可以在 [設定] > [應用程式] 中更改這項設定""一律允許""絕不允許"
- "已移除 SIM 卡"
- "您必須重新啟動並新增有效的 SIM 卡,才能使用流動網絡。"
+ "SIM 卡已移除"
+ "您必須先以插入有效的 SIM 卡來重新啟動手機,才能使用流動網絡。""完成"
- "已新增 SIM 卡"
+ "SIM 卡已新增""重新啟動裝置,才能使用流動網絡。""重新啟動""啟動流動服務"
@@ -1401,16 +1397,16 @@
"輕按即可設定""選取即可設定""您可能需要將裝置重新格式化。輕按即可退出。"
- "用於儲存相片、影片、音樂等"
+ "用於轉移相片和媒體""瀏覽媒體檔案""%s發生問題""「%s」無法運作""輕按即可修正問題""%s已損毀。選取即可修正。""您可能需要將裝置重新格式化。輕按即可退出。"
- "已偵測到「%s」"
+ "不支援的 %s""「%s」無法運作"
- "輕按即可設定。"
+ "此裝置並不支援此 %s。輕按即可在支援的格式設定。""選取即可使用支援的格式設定 %s。""您可能需要將裝置重新格式化""%s被意外移除"
@@ -1563,7 +1559,7 @@
"%1$s:%2$s""%1$s (%2$s):%3$s""內部共用儲存空間"
- "SD 卡"
+ "SD 記憶卡""%s SD 卡""USB 驅動器""%s USB 驅動器"
@@ -1609,7 +1605,7 @@
"電視""手機""插座喇叭"
- "外部裝置"
+ "HDMI""耳機""USB""系統"
@@ -1631,8 +1627,8 @@
"重疊效果 #%1$d""%1$s:%2$dx%3$d,%4$d dpi""(安全)"
- "忘記了圖案"
- "圖案錯誤"
+ "忘記圖案"
+ "圖形不對""密碼錯誤""PIN 錯誤""畫出圖案"
@@ -1642,7 +1638,7 @@
"SIM 卡現已停用,請輸入 PUK 碼以繼續。詳情請與流動網絡供應商聯絡。""輸入所需的 PIN 碼""確認所需的 PIN 碼"
- "正在解鎖 SIM 卡…"
+ "正在解開上鎖的 SIM 卡...""PIN 碼不正確。""請輸入一個 4 至 8 位數的 PIN 碼。""PUK 碼應由 8 位數字組成。"
@@ -1682,8 +1678,8 @@
"不要開啟""開啟""關閉"
- "允許 %1$s 完全控制您的裝置?"
- "對於為您提供無障礙功能的應用程式,您可授予完整控制權,但大部分應用程式都不應獲授予此權限。"
+ "要允許 %1$s 完全控制您的裝置嗎?"
+ "為您提供所需無障礙功能的應用程式有權完全控制您的裝置,但大部分應用程式均沒有此權限。""查看和控制螢幕""這項功能可以讀出螢幕上的所有內容,並透過其他應用程式顯示內容。""查看和執行動作"
@@ -1847,7 +1843,7 @@
"第二個工作%1$s""第三個工作%1$s""取消固定時必須輸入 PIN"
- "取消固定時必須提供解鎖圖案"
+ "取消固定時必須提供解鎖圖形""取消固定時必須輸入密碼""已由您的管理員安裝""已由您的管理員更新"
@@ -1923,7 +1919,6 @@
"地區偏好設定""輸入語言名稱""建議"
- "建議的語言""所有語言""所有國家/地區""搜尋"
@@ -1941,19 +1936,18 @@
"無法使用相機""請繼續透過手機操作""無法使用麥克風"
- "無法使用「Play 商店」""無法使用 Android TV 設定""無法使用平板電腦設定""無法使用手機設定"
- "目前無法在 %1$s 上存取此應用程式,請改用 Android TV 裝置存取。"
- "目前無法在 %1$s 上存取此應用程式,請改用平板電腦存取。"
- "目前無法在 %1$s 上存取此應用程式,請改用手機存取。"
+ "無法在 %1$s 上存取此應用程式,請改用 Android TV 裝置。"
+ "無法在 %1$s 上存取此應用程式,請改用平板電腦。"
+ "無法在 %1$s 上存取此應用程式,請改用手機。"
+ "目前無法在 %1$s 上存取此應用程式,請改用 Android TV 裝置。"
+ "目前無法在 %1$s 上存取此應用程式,請改用平板電腦。"
+ "目前無法在 %1$s 上存取此應用程式,請改用手機。""此應用程式要求額外的安全措施,請改用 Android TV 裝置。""此應用程式要求額外的安全措施,請改用平板電腦。""此應用程式要求額外的安全措施,請改用手機。"
- "無法在 %1$s 上存取此應用程式,請改用 Android TV 裝置。"
- "無法在 %1$s 上存取此應用程式,請改用平板電腦。"
- "無法在 %1$s 上存取此應用程式,請改用手機。""此應用程式專為舊版 Android 打造,因此可能無法正常運作。請嘗試檢查更新,或與開發人員聯絡。""檢查更新""您有新的訊息"
@@ -2046,8 +2040,7 @@
"要允許「%s」存取所有裝置記錄嗎?""允許存取一次""不允許"
- "裝置記錄會記下裝置上的活動。應用程式可透過這些記錄找出並修正問題。\n\n部分記錄可能包含敏感資料,因此請只允許信任的應用程式存取所有裝置記錄。\n\n如果不允許此應用程式存取所有裝置記錄,此應用程式仍能存取自己的記錄,且裝置製造商可能仍可存取裝置上的部分記錄或資料。"
- "裝置記錄會記下裝置上的活動。應用程式可使用這些記錄找出並修正問題。\n\n有些記錄可能包含敏感資料,因此建議只允許信任的應用程式存取所有裝置記錄。\n\n如果不允許此應用程式存取所有裝置記錄,此應用程式仍能存取自己的記錄。您的裝置製造商可能仍可存取裝置上的一些記錄或資料。\n\n詳情請瀏覽 g.co/android/devicelogs。"
+ "裝置記錄會記下裝置上的活動。應用程式可透過這些記錄找出並修正問題。\n\n部分記錄可能包含敏感資料,因此請只允許信任的應用程式存取所有裝置記錄。\n\n如果不允許此應用程式存取所有裝置記錄,此應用程式仍能存取自己的記錄,且裝置製造商可能仍可存取裝置上的部分記錄或資料。瞭解詳情""不要再顯示""「%1$s」想顯示「%2$s」的快訊""編輯"
@@ -2060,7 +2053,8 @@
"請勿騷擾已變更""輕按即可查看封鎖內容。""查看通知設定"
- "由 Android 13 開始,您安裝的應用程式須獲得授權才能傳送通知。輕按即可變更現有應用程式的這項權限。"
+
+ "稍後提醒我""關閉""系統"
@@ -2288,6 +2282,5 @@
"查看使用中的應用程式""無法從 %1$s 存取手機的相機""無法從 %1$s 存取平板電腦的相機"
- "串流播放時無法使用,請改用手機。"
- "系統預設"
+ "系統語言"
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 3573846040b6fcbb79cdff3768f82d9f06373606..4ecd755d63680c2acfd98adb6cee5bf2359d4a3a 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "KB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<未命名>""(沒有電話號碼)"
@@ -28,7 +33,6 @@
"語音留言""MSISDN1""連線發生問題或錯誤的 MMI 碼。"
- "不支援的功能。""僅限對固定撥號號碼執行此作業。""漫遊時無法透過你的手機變更來電轉接設定。""服務已啟用。"
@@ -43,8 +47,8 @@
"你輸入的 PIN 碼不符。""輸入 4~8 個數字的 PIN。""輸入 8 位數以上的 PUK。"
- "SIM 卡已使用 PUK 碼鎖定,請輸入 PUK 碼解鎖。"
- "請輸入 PUK2 解鎖 SIM 卡。"
+ "SIM 卡的 PUK 已鎖定。請輸入 PUK 碼解除鎖定。"
+ "請輸入 PUK2 以解鎖 SIM 卡。""操作失敗,請啟用 SIM/RUIM 鎖定。"你還可以再試 %d 次。如果仍然失敗,SIM 卡將被鎖定。
@@ -279,7 +283,7 @@
"VPN 狀態""來自 IT 管理員的快訊""快訊"
- "零售商展示模式"
+ "零售商示範模式""USB 連線""應用程式執行中""正在耗用電量的應用程式"
@@ -301,12 +305,12 @@
"存取你的日曆""簡訊""傳送及查看簡訊"
- "檔案"
- "存取裝置上的檔案"
- "音樂和音訊"
- "存取裝置上的音樂和音訊"
- "相片和影片"
- "存取裝置上的相片和影片"
+ "檔案與文件"
+ "存取裝置上的檔案與文件"
+ "音樂和其他音訊"
+ "存取裝置上的音訊檔案"
+ "相片和影片"
+ "存取裝置上的圖片和影片檔案""麥克風""錄音""體能活動"
@@ -582,16 +586,15 @@
"使用螢幕鎖定功能""如要繼續操作,請輸入螢幕鎖定憑證""請確實按住感應器"
- "無法辨識指紋,請再試一次。"
+ "無法處理指紋,請再試一次。""請清潔指紋感應器,然後再試一次""清潔感應器,然後再試一次""請確實按住感應器""手指移動速度過慢,請再試一次。""改用其他指紋""太亮"
- "偵測到按下電源鍵""請試著調整"
- "每次掃描時請稍微改變手指的位置"
+ "每次掃描時請稍微變更手指的位置""指紋辨識失敗"
@@ -601,17 +604,16 @@
"臉孔驗證成功,請按下 [確認] 按鈕""指紋硬體無法使用。""無法設定指紋"
- "指紋設定逾時,請再試一次。"
+ "指紋處理作業逾時,請再試一次。""指紋作業已取消。""使用者已取消指紋驗證作業。"
- "嘗試次數過多,請改用螢幕鎖定功能。"
- "嘗試次數過多,請改用螢幕鎖定功能。"
- "無法處理指紋,請再試一次。"
+ "嘗試次數過多,請稍後再試。"
+ "嘗試次數過多,指紋感應器已停用。"
+ "請再試一次。""未登錄任何指紋。""這個裝置沒有指紋感應器。""感應器已暫時停用。""指紋感應器無法使用,請洽詢維修供應商"
- "已按下電源鍵""手指 %d""使用指紋""使用指紋或螢幕鎖定功能"
@@ -632,33 +634,26 @@
"指紋解鎖""指紋感應器無法使用""請洽詢維修供應商。"
- "無法建立臉部模型,請再試一次。"
+ "無法擷取精準臉孔資料,請再試一次。""亮度過高,請嘗試使用較柔和的照明方式。"
- "光線不足"
- "請將手機拿遠一點"
- "請將手機拿近一點"
- "請將手機舉高一點"
- "請將手機拿低一點"
- "請將手機向左移"
- "請將手機向右移"
+ "亮度不足,請嘗試使用較明亮的照明方式。"
+ "請將手機拿遠一點。"
+ "請將手機拿近一點。"
+ "請將手機舉高一點。"
+ "請將手機拿低一點。"
+ "請將手機向左移動。"
+ "請將手機向右移動。""請儘可能直視裝置正面。"
- "未偵測到你的臉,請將手機舉到與視線同高。"
+ "將你的臉孔正對手機。""鏡頭過度晃動,請拿穩手機。""請重新註冊你的臉孔。"
- "無法辨識這張臉,請再試一次。"
- "請稍微改變頭部位置"
- "請盡可能直視手機"
- "請盡可能直視手機"
- "請盡可能直視手機"
+ "已無法辨識臉孔,請再試一次。"
+ "與先前的姿勢太相似,請換一個姿勢。"
+ "請將你的頭部稍微向左或向右轉動。"
+ "請稍微抬頭或低頭。"
+ "請將你的頭部稍微向左或向右旋轉。""請移除任何會遮住臉孔的物體。""請清理螢幕頂端,包括黑色橫列"
-
-
-
-
- "無法建立臉部模型,請再試一次。"
- "偵測到墨鏡,請露出整張臉。"
- "偵測到有物品遮住臉,請露出整張臉。""相關硬體無法使用,因此無法驗證臉孔。"
@@ -924,14 +919,14 @@
"再試一次""解鎖即可使用所有功能和資料""已超過人臉解鎖嘗試次數上限"
- "沒有 SIM 卡"
- "平板電腦中沒有 SIM 卡。"
- "Android TV 裝置中沒有 SIM 卡。"
- "手機中沒有 SIM 卡。"
- "請新增 SIM 卡。"
- "找不到 SIM 卡或 SIM 卡無法讀取,請新增 SIM 卡。"
- "SIM 卡無法使用。"
- "SIM 卡已永久停用。\n 請向無線服務供應商索取其他 SIM 卡。"
+ "找不到 SIM 卡"
+ "平板電腦中沒有 SIM 卡。"
+ "Android TV 裝置中沒有 SIM 卡。"
+ "手機未插入 SIM 卡。"
+ "插入 SIM 卡。"
+ "找不到或無法讀取 SIM 卡。請插入 SIM 卡。"
+ "SIM 卡無法使用。"
+ "你的 SIM 卡已遭永久停用。\n請與你的無線網路服務供應商聯絡,以取得其他 SIM 卡。""上一首曲目""下一首曲目""暫停"
@@ -941,10 +936,10 @@
"快轉""僅可撥打緊急電話""網路已鎖定"
- "SIM 卡已使用 PUK 碼鎖定。"
+ "SIM 的 PUK 已鎖定。""參閱《使用者指南》或與客戶服務中心聯絡。"
- "SIM 卡已鎖定。"
- "正在解鎖 SIM 卡…"
+ "SIM 卡已鎖定。"
+ "解鎖 SIM 卡中…""你的解鎖圖案已畫錯 %1$d 次。\n\n請在 %2$d 秒後再試一次。""你的密碼已輸錯 %1$d 次。\n\n請在 %2$d 秒後再試一次。""你的 PIN 已輸錯 %1$d 次。\n\n請在 %2$d 秒後再試一次。"
@@ -1246,9 +1241,10 @@
"正在準備升級「%1$s」。""正在啟動應用程式。""啟動完成。"
+ "要繼續設定嗎?""你已按下電源鍵,這麼做通常會關閉螢幕。\n\n設定指紋時請試著減輕觸碰電源鍵的力道。"
- "如要結束設定,請關閉螢幕"
- "關閉"
+ "關閉螢幕"
+ "繼續設定""要繼續驗證指紋嗎?""你已按下電源鍵,這麼做通常會關閉螢幕。\n\n驗證指紋時,請試著減輕觸碰電源鍵的力道。""關閉螢幕"
@@ -1327,10 +1323,10 @@
"你日後可在 [設定] > [應用程式] 中進行變更。""一律允許""一律不允許"
- "已移除 SIM 卡"
- "你必須重新啟動並新增有效的 SIM 卡,才能使用行動網路。"
+ "SIM 卡已移除"
+ "你必須先插入有效的 SIM 卡再重新啟動手機,才能使用行動網路。""完成"
- "已新增 SIM 卡"
+ "SIM 卡已新增""請重新啟動裝置,才能使用行動網路。""重新啟動""啟用行動服務"
@@ -1401,16 +1397,16 @@
"輕觸即可進行設定""選取即可設定""你可能要將裝置重新格式化。輕觸即可退出裝置。"
- "用於儲存相片、影片、音樂等"
+ "可用於傳輸相片和媒體""瀏覽媒體檔案""%s發生問題""「%s」無法運作""輕觸即可修正問題""%s已損毀。選取即可進行修正。""你可能要將裝置重新格式化。輕觸即可退出裝置。"
- "偵測到「%s」"
+ "不支援的「%s」""「%s」無法運作"
- "輕觸即可設定。"
+ "此裝置不支援這個 %s。輕觸即可使用支援的格式進行設定。""選取即可使用支援的格式設定「%s」。""你可能要將裝置重新格式化""意外移除「%s」"
@@ -1609,7 +1605,7 @@
"電視""手機""座架喇叭"
- "外部裝置"
+ "HDMI""耳機""USB""系統"
@@ -1642,7 +1638,7 @@
"SIM 卡已遭停用,必須輸入 PUK 碼才能繼續使用。詳情請洽你的電信業者。""輸入所需的 PIN 碼""確認所需的 PIN 碼"
- "正在解鎖 SIM 卡…"
+ "正在解除 SIM 卡鎖定...""PIN 碼不正確。""請輸入 4 到 8 碼的 PIN。""PUK 碼必須為 8 碼。"
@@ -1923,7 +1919,6 @@
"地區偏好設定""請輸入語言名稱""建議語言"
- "建議的語言""所有語言""所有地區""搜尋"
@@ -1941,19 +1936,18 @@
"無法使用相機""請繼續在手機上操作""無法使用麥克風"
- "無法存取 Play 商店""無法使用 Android TV 設定""無法使用平板電腦設定""無法使用手機設定"
- "目前無法在 %1$s 上存取這個應用程式,請改用 Android TV 裝置。"
- "目前無法在 %1$s 上存取這個項目,請改用平板電腦。"
- "目前無法在 %1$s 上存取這個應用程式,請改用手機。"
+ "無法在 %1$s 上存取這個應用程式,請改用 Android TV 裝置。"
+ "無法在 %1$s 上存取這個應用程式,請改用平板電腦。"
+ "無法在 %1$s 上存取這個應用程式,請改用手機。"
+ "目前無法在 %1$s 上存取這個應用程式,請改用 Android TV 裝置。"
+ "目前無法在 %1$s 上存取這個應用程式,請改用平板電腦。"
+ "目前無法在 %1$s 上存取這個應用程式,請改用手機。""這個應用程式要求進行額外的安全性驗證,請改用 Android TV 裝置。""這個應用程式要求進行額外的安全性驗證,請改用平板電腦。""這個應用程式要求進行額外的安全性驗證,請改用手機。"
- "無法在 %1$s 上存取這個應用程式,請改用 Android TV 裝置。"
- "無法在 %1$s 上存取這個項目,請改用平板電腦。"
- "無法在 %1$s 上存取這個應用程式,請改用手機。""這個應用程式是專為舊版 Android 所打造,因此可能無法正常運作。請嘗試檢查更新,或是與開發人員聯絡。""檢查更新""你有新訊息"
@@ -2044,10 +2038,9 @@
"仍要開啟""偵測到有害應用程式""要允許「%s」存取所有裝置記錄嗎?"
- "允許一次性存取"
+ "允許存取一次""不允許"
- "系統會透過裝置記錄記下裝置上的活動。應用程式可以根據這些記錄找出問題並進行修正。\n\n某些記錄可能含有機密資訊,因此請勿讓不信任的應用程式存取所有裝置記錄。\n\n即使你不允許這個應用程式存取所有裝置記錄,這個應用程式仍能存取自己的記錄,而且裝置製造商或許仍可存取裝置的某些記錄或資訊。"
- "裝置記錄會記下裝置上的活動。應用程式可以根據這些記錄找出問題並進行修正。\n\n由於某些記錄可能含有機密資訊,建議只讓信任的應用程式存取所有裝置記錄。\n\n如果你不允許這個應用程式存取所有裝置記錄,這個應用程式仍可存取屬於自己的記錄,而裝置製造商也或許還是可以存取裝置的某些記錄或資訊。\n\n請參閱以下網址瞭解詳情:g.co/android/devicelogs。"
+ "系統會透過裝置記錄記下裝置上的活動。應用程式可以根據這些記錄找出問題並進行修正。\n\n某些記錄可能含有機密資訊,因此請勿讓不信任的應用程式存取所有裝置記錄。\n\n即使你不允許這個應用程式存取所有裝置記錄,這個應用程式仍能存取自己的記錄,而且裝置製造商或許仍可存取裝置的某些記錄或資訊。瞭解詳情""不要再顯示""「%1$s」想要顯示「%2$s」的區塊""編輯"
@@ -2060,7 +2053,8 @@
"「零打擾」設定已變更""輕觸即可查看遭封鎖的項目。""查看通知設定"
- "從 Android 13 開始,你安裝的應用程式必須獲得授權,才能傳送通知。輕觸即可為現有應用程式變更這項權限。"
+
+ "稍後提醒我""關閉""系統"
@@ -2284,10 +2278,9 @@
"某個應用程式正在耗用大量電力""某個應用程式目前仍在運作""「%1$s」正在背景運作。輕觸即可管理電池用量。"
- "「%1$s」應用程式可能會影響電池續航力,輕觸即可查看運作中的應用程式。"
- "查看運作中的應用程式"
+ "「%1$s」應用程式可能會影響電池續航力。輕觸即可查看使用中的應用程式。"
+ "查看使用中的應用程式""無法從 %1$s 存取手機的相機""無法從 %1$s 存取平板電腦的相機"
- "串流播放時無法存取這項內容,請改用手機。"
- "系統預設"
+ "系統語言"
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index b7e02dc41bd66a34763aa5093b4470025ad939ec..e5f8670e941097e35c63ba50ffab5a7f45718ff9 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -21,6 +21,11 @@
"B"
+ "kB"
+ "MB"
+ "GB"
+ "TB"
+ "PB""%1$s%2$s""<Akunasihloko>""(Ayikho inombolo yefoni)"
@@ -28,7 +33,6 @@
"Ivoyisimeyili""MSISDN1""Inkinga yoxhumano noma ikhadi ye-MMI engalungile."
- "Isakhi asisekelwa.""Umsebenzi uvinjelwe ekudayeleni izinombolo ezingaguquki kuphela.""Ayikwazi ukushintsha izilungiselelo zokudluliselwa kwekholi kusuka efonini yakho ngenkathi uzula.""Isevisi ivaliwe."
@@ -43,8 +47,8 @@
"Ama-PIN owafakile awafani.""Thayipha i-PIN enezinombolo ezingu-4 kuya kwezingu-8.""Thayipha i-PUK enezinombolo ezingu-8 noma ngaphezu."
- "Ikhadi lakho le-SIM livalwe nge-PUK. Thayipha ikhodi ye-PUK ukulivula."
- "Thayipha i-PUK2 ukuze uvule i-SIM."
+ "Ikhadi lakho le-SIM livalwe nge-PUK. Thayipha ikhodi ye-PUK ukulivula."
+ "Thayipha i-PUK2 ukuze uvule ikhadi le-SIM.""Akuphumelelanga, nika amandla ukhiye we-SIM/RUIM."Unemizamo engu-%d esele ngaphambi kokuthi i-SIM ikhiywe.
@@ -301,12 +305,12 @@
"finyelela kukhalenda yakho""I-SMS""thumela uphinde ubuke imilayezo ye-SMS"
- "Amafayela"
- "finyelela amafayela kudivayisi yakho"
- "Umculo nomsindo"
- "finyelela umculo nomsindo kudivayisi yakho"
- "Izithombe namavidiyo"
- "finyelela izithombe namavidiyo kudivayisi yakho"
+ "Amafayela namadokhumenti"
+ "finyelela amafayela namadokhumenti kudivayisi yakho"
+ "Umculo neminye imisindo"
+ "finyelela amafayela okulalelwayo edivayisini yakho"
+ "Izithombe namavidiyo"
+ "finyelela amafayela emifanekiso namavidiyo edivayisini yakho""I-Microphone""rekhoda ividiyo""Umsebenzi womzimba"
@@ -582,14 +586,13 @@
"Sebenzisa isikhiya sesikrini""Faka ukukhiya isikrini kwakho ukuze uqhubeke""Cindezela ngokuqinile kunzwa"
- "Ayisazi isigxivizo somunwe. Zama futhi."
+ "Ayikwazanga ukucubungula izigxivizo zeminwe. Sicela uzame futhi.""Hlanza inzwa yesigxivizo somunwe bese uzame futhi""Hlanza inzwa bese uzame futhi""Cindezela ngokuqinile kunzwa""Umnwe uhanjiswe kancane kakhulu. Sicela uzame futhi.""Zama ezinye izigxivizo zeminwe""Kukhanya kakhulu"
- "Ukucindezela kwamandla kutholiwe""Zama ukulungisa""Shintsha indawo yomunwe wakho kancane isikhathi ngasinye"
@@ -601,17 +604,16 @@
"Ukuqinisekiswa kobuso, sicela ucindezele okuthi qinisekisa""Izingxenyekazi zekhompuyutha zezigxivizo zeminwe azitholakali.""Ayikwazi ukusetha izigxivizo zeminwe"
- "Ukusethwa kwesigxivizo somunwe kuphelelwe yisikhathi Zama futhi."
+ "Kufinyelelwe isikhathi sokuvala sezigxivizo zeminwe. Zama futhi""Ukusebenza kwezigxivizo zeminwe kukhanseliwe.""Umsebenzi wezigxivizo zomunwe ukhanselwe umsebenzisi."
- "Imizamo eminingi kakhulu. Sebenzisa ukukhiya isikrini kunalokho."
- "Imizamo eminingi kakhulu. Sebenzisa ukukhiya isikrini kunalokho."
- "Ayikwazi ukucubungula isigxivizo somunwe. Zama futhi."
+ "Imizamo eminingi kakhulu. Zama futhi emuva kwesikhathi."
+ "Imizamo eminingi kakhulu. Inzwa yezigxivizo zeminwe ikhutshaziwe."
+ "Zama futhi.""Azikho izigxivizo zeminwe ezibhalisiwe.""Le divayisi ayinayo inzwa yezigxivizo zeminwe.""Inzwa ikhutshazwe okwesikhashana.""Ayikwazi ukusebenzisa inzwa yesigxivizo somunwe. Vakashela umhlinzeki wokulungisa"
- "Inkinobho yamandla icindezelwe""Umunwe ongu-%d""Sebenzisa izigxivizo zeminwe""Sebenzisa izigxivizo zeminwe noma ukukhiya isikrini"
@@ -621,7 +623,7 @@
"Kunento engahambanga kahle. Zama futhi.""Isithonjana sezigxivizo zeminwe"
- "Ukuvula ngobuso"
+ "Ukuvula ubuso""Inkinga Ngokuvula ngobuso""Thepha ukuze usule imodeli yakho yobuso, bese wengeza futhi ubuso""Setha Ukuvula ngobuso"
@@ -632,33 +634,26 @@
"Ukuvula ngesigxivizo somunwe""Ayikwazi ukusebenzisa inzwa yesigxivizo somunwe""Vakashela umhlinzeki wokulungisa."
- "Ayikwazi ukusungula imodeli yobuso bakho. Zama futhi."
+ "Ayikwazanga ukuthwebula idatha enembile yobuso. Zama futhi.""Kukhanya kakhulu. Zama ukukhanya okuthambile."
- "Ukukhanya okunganele"
- "Yisa ifoni kude"
- "Sondeza ifoni eduze"
- "Yisa ifoni phezulu"
- "Yisa ifoni phansi"
- "Yisa ifoni ngakwesokunxele sakho"
- "Yisa ifoni ngakwesokudla sakho"
+ "Kumnyama kakhulu Zama ukukhanyisa okukhanyayo."
+ "Hambisa ifoni kude."
+ "Sondeza ifoni eduze."
+ "Hambisa ifoni phezulu."
+ "Hambisa ifoni ngaphansi."
+ "Hambisa ifoni ngakwesokunxele."
+ "Hambisa ifoni ngakwesokudla.""Sicela ubheke ngokuqondile kakhulu kudivayisi yakho."
- "Ayikwazi ukubona ubuso bakho. Bamba ifoni yakho iqondane namehlo"
+ "Beka ubuso bakho ngqo phambi kwefoni.""Ukunyakaza okuningi kakhulu. Bamba ifoni iqine.""Sicela uphinde ubhalise ubuso bakho."
- "Ayikwazi ukubona ubuso. Zama futhi."
- "Shintsha indawo yekhanda lakho kancane"
- "Bheka ngqo kakhulu kufoni yakho"
- "Bheka ngqo kakhulu kufoni yakho"
- "Bheka ngqo kakhulu kufoni yakho"
+ "Ayisakwazi ukubona ubuso. Zama futhi."
+ "Kufana kakhulu, sicela ushintshe ukuma kwakho."
+ "Jikisa ikhanda lakho kancane."
+ "Tshekisa kancane ikhanda lakho."
+ "Jikisa ikhanda lakho kancane.""Susa noma yini efihle ubuso bakho.""Hlanza okuphezulu kwesikrini sakho, kufaka phakathi ibha emnyama"
-
-
-
-
- "Ayikwazi ukusungula imodeli yobuso bakho. Zama futhi."
- "Kutholwe izibuko ezimnyama. Ubuso bakho kufanele bubonakale ngokugcwele."
- "Kutholwe ukumbozwa kobuso. Ubuso bakho kufanele bubonakale ngokugcwele.""Ayikwazi ukuqinisekisa ubuso. Izingxenyekazi zekhompyutha azitholakali."
@@ -924,14 +919,14 @@
"Zama futhi""Vulela zonke izici nedatha""Ukuzama Kokuvula ngobuso sekweqe umkhawulo"
- "Ayikho i-SIM"
- "Ayikho i-SIM kuthebhulethi."
- "Alikho ikhadi le-SIM card kudivayisi yakho ye-Android TV."
- "Ayikho i-SIM efonini."
- "engeza i-SIM"
- "I-SIM ayitholakali noma ayifundeki. engeza i-SIM"
- "I-SIM engasebenziseki."
- "I-SIM yakho iyekiswe ukusebenza unomphela.\n Xhumana nomhlinzeki wakho wesevisi ngokungenazintambo ukuze uthole enye i-SIM."
+ "Alikho ikhadi le-SIM."
+ "Alikho ikhadi le-SIM efonini."
+ "Ayikho i-SIM card kudivayisi yakho ye-Android TV."
+ "Alikho ikhadi le-SIM efonini."
+ "Faka ikhadi le-SIM."
+ "Ikhadi le-SIM alitholakali noma alifundeki. Sicela ufake ikhadi le-SIM."
+ "Ikhadi le-SIM elingasetshenzisiwe."
+ "I-SIM khadi ykho isiyenziwe ukuthi ingasebenzi unomphela.\n Xhumana nomhlinzeki wakho wokuxhumana okungenazintambo ukuze uthole enye i-SIM khadi.""Ithrekhi yangaphambilini""Ithrekhi elandelayo""Misa isikhashana"
@@ -941,10 +936,10 @@
"Ukudlulisa ngokushesha""Amakholi aphuthumayo kuphela""Inethiwekhi ivaliwe"
- "I-SIM ikhiyiwe nge-PUK."
+ "Ikhadi le-SIM livalwe nge-PUK.""Sicela ubone Isiqondisi Somsebenzisi noma xhumana Nokunakekela Ikhasimende"
- "I-SIM ikhiyiwe."
- "Ivula i-SIM…"
+ "Ikhadi le-SIM livaliwe."
+ "Ivula ikhadi le-SIM...""Udwebe iphathini yakho yokuvula ngendlela engafanele izinkathi ezingu-%1$d. \n\n Zama futhi emuva kwamasekhondi angu-%2$d""Ubhale iphasiwedi yakho ngendlela engafanele %1$d izikhathi. \n\nZama futhi %2$d imizuzwna.""Ubhale i-PIN ykho ngendlela engafanele %1$d izikhathi. \n\nZama futhi emuva kwamasekhondi angu-%2$d."
@@ -1246,9 +1241,10 @@
"Ukulungisela i-%1$s.""Qalisa izinhlelo zokusebenza.""Qedela ukuqala kabusha."
+ "Qhubeka nokusetha?""Ucindezele inkinobho yamandla — lokhu kuvame ukuvala isikrini.\n\nZama ukuthepha kancane ngenkathi usetha isigxivizo sakho somunwe."
- "Ukuze umise ukusetha, vala isikrini"
- "Vala"
+ "Vala isikrini"
+ "Qhubeka nokusetha""Qhubeka uqinisekise isigxivizo sakho somunwe?""Ucindezele inkinobho yamandla — lokhu kuvame ukuvala isikrini.\n\nZama ukuthepha kancane ukuze uqinisekise isigxivizo sakho somunwe.""Vala isikrini"
@@ -1327,10 +1323,10 @@
"Ungashintsha lokhu kamuva kuzilungiselelo > izinhlelo zokusebenza""Vumela njalo?""Ungavumeli"
- "I-SIM isusiwe"
- "The mobile network will be unavailable until you restart with a valid SIM.-"
+ "Ikhadi le-SIM likhishiwe"
+ "Inethiwekhi yeselula ngeke itholakale kuwena kuze kube uqala kabusha ufake ikhadi le-SIM elifanele.""Kwenziwe"
- "I-SIM yengeziwe"
+ "Ikhadi le-SIM lengeziwe""Kufanele uqalise kabusha idivaysi yakho ukuze ungene kuhleloxhumano yeselula.""Qala phansi""Yenza kusebenze isevisi yeselula"
@@ -1401,16 +1397,16 @@
"Thepha ukuze usethe""Khetha ukuze usethe""Kungase kudingeke ukuthi ufomethe kabusha idivayisi. Thepha ukuze ukhiphe."
- "Isitoreji sezithombe, amavidiyo, umculo nokuningi"
+ "Ukuze kudluliselwe izithombe nemidiya""Phequlula amafayela wemidiya""Inkinga ngo-%s""I-%s ayisebenzi""Thepha ukuze ulungise""%s yonakele. Khetha ukulungisa.""Kungase kudingeke ukuthi ufomethe kabusha idivayisi. Thepha ukuze ukhiphe."
- "I-%s itholiwe"
+ "Akusekelwe %s""I-%s ayisebenzi"
- "Thepha ukuze usethe ."
+ "Le divayisi ayisekeli le %s. Thepha ukuze usethe ngefomethi esekelwayo.""Khetha ukusetha i-%s ngefomethi esekelwayo.""Kungase kudingeke ukuthi ufomethe kabusha idivayisi""I-%s isuswe ngokungalindelekile"
@@ -1609,7 +1605,7 @@
"I-TV""Ifoni""Izipikha ze-Dock"
- "Idivayisi Yangaphandle"
+ "HDMI""Ama-headphone""I-USB""Isistimu"
@@ -1642,7 +1638,7 @@
"I-SIM manje ikhutshaziwe. Faka ikhodi ye-PUK ukuze uqhubeke. Xhumana nenkampani yenethiwekhi ngemininingwane.""Faka iphinikhodi oyithandayo""Qiniseka iphinikhodi oyithandayo"
- "Ivula i-SIM…"
+ "Ivula ikhadi le-SIM...""Iphinikhodi engalungile.""Thayipha iphinikhodi enezinombolo ezingu-4 kuya kwezingu-8.""Ikhodi ye-PUK kumele ibe yizinombolo ezingu-8."
@@ -1923,7 +1919,6 @@
"Okuncamelayo kwesifunda""Thayipha igama lolimi""Okuphakanyisiwe"
- "Okuphakanyisiwe""Zonke izilimi""Zonke izifunda""Sesha"
@@ -1941,19 +1936,18 @@
"Ikhamera ayitholakali""Qhubeka kufoni""Imakrofoni ayitholakali"
- "I-Google Play ayitholakali""Amasethingi e-Android TV awatholakali""Amasethingi ethebulethi awatholakali""Amasethingi efoni awatholakali"
- "Lokhu akukwazi ukufinyelelwa ku-%1$s yakho ngalesi sikhathi. Zama kudivayisi yakho ye-Android TV kunalokho."
- "Lokhu akukwazi ukufinyelelwa ku-%1$s yakho ngalesi sikhathi. Zama kuthebhulethi yakho kunalokho."
- "Lokhu akukwazi ukufinyelelwa ku-%1$s yakho ngalesi sikhathi. Zama efonini yakho kunalokho."
+ "Lokhu akukwazi ukufinyelelwa ku-%1$s yakho. Zama kudivayisi yakho ye-Android TV kunalokho."
+ "Lokhu akukwazi ukufinyelelwa ku-%1$s yakho. Zama kuthebhulethi yakho kunalokho."
+ "Lokhu akukwazi ukufinyelelwa ku-%1$s yakho. Zama efonini yakho kunalokho."
+ "Lokhu akukwazi ukufinyelelwa ku-%1$s yakho ngalesi sikhathi. Zama kudivayisi yakho ye-Android TV kunalokho."
+ "Lokhu akukwazi ukufinyelelwa ku-%1$s yakho ngalesi sikhathi. Zama kuthebhulethi yakho kunalokho."
+ "Lokhu akukwazi ukufinyelelwa ku-%1$s yakho ngalesi sikhathi. Zama efonini yakho kunalokho.""Le app icela ukuvikeleka okwengeziwe. Zama kudivayisi yakho ye-Android TV kunalokho.""Le app icela ukuvikeleka okwengeziwe. Zama kuthebhulethi yakho kunalokho.""Le app icela ukuvikeleka okwengeziwe. Zama efonini yakho kunalokho."
- "Lokhu akukwazi ukufinyelelwa ku-%1$s yakho. Zama kudivayisi yakho ye-Android TV kunalokho."
- "Lokhu akukwazi ukufinyelelwa ku-%1$s yakho. Zama kuthebulethi yakho kunalokho."
- "Lokhu akukwazi ukufinyelelwa ku-%1$s yakho. Zama efonini yakho kunalokho.""Lolu hlelo lokusebenza belakhelwe inguqulo endala ye-Android futhi kungenzeka lungasebenzi kahle. Zama ukuhlolela izibuyekezo, noma uxhumane nonjiniyela.""Hlola izibuyekezo""Unemilayezo emisha"
@@ -2046,8 +2040,7 @@
"Vumela i-%s ukuba ifinyelele wonke amalogu edivayisi?""Vumela ukufinyelela kwesikhathi esisodwa""Ungavumeli"
- "Amalogu edivayisi arekhoda okwenzekayo kudivayisi yakho. Ama-app angasebenzisa lawa malogu ukuze athole futhi alungise izinkinga.\n\nAmanye amalogu angase aqukathe ulwazi olubucayi, ngakho vumela ama-app owathembayo kuphela ukuthi afinyelele wonke amalogu edivayisi. \n\nUma ungayivumeli le app ukuthi ifinyelele wonke amalogu wedivayisi, isengakwazi ukufinyelela amalogu wayo. Umkhiqizi wedivayisi yakho usengakwazi ukufinyelela amanye amalogu noma ulwazi kudivayisi yakho."
- "Amalogu edivayisi arekhoda okwenzekayo kudivayisi yakho. Ama-app angasebenzisa lawa malogu ukuze athole futhi alungise izinkinga.\n\nAmanye amalogu angase aqukathe ulwazi olubucayi, ngakho vumela ama-app owathembayo kuphela ukuthi afinyelele wonke amalogu edivayisi. \n\nUma ungayivumeli le app ukuthi ifinyelele wonke amalogu wedivayisi, isengakwazi ukufinyelela amalogu wayo. Umkhiqizi wedivayisi yakho usengakwazi ukufinyelela amanye amalogu noma ulwazi kudivayisi yakho.\n\nFunda kabanzi ku-g.co/android/devicelogs."
+ "Amalogu edivayisi arekhoda okwenzekayo kudivayisi yakho. Ama-app angasebenzisa lawa malogu ukuze athole futhi alungise izinkinga.\n\nAmanye amalogu angase aqukathe ulwazi olubucayi, ngakho vumela ama-app owathembayo kuphela ukuthi afinyelele wonke amalogu edivayisi. \n\nUma ungayivumeli le app ukuthi ifinyelele wonke amalogu wedivayisi, isengakwazi ukufinyelela amalogu wayo. Umkhiqizi wedivayisi yakho usengakwazi ukufinyelela amanye amalogu noma ulwazi kudivayisi yakho. Funda kabanzi""Ungabonisi futhi""I-%1$s ifuna ukubonisa izingcezu ze-%2$s""Hlela"
@@ -2060,7 +2053,8 @@
"Ukungaphazamisi kushintshile""Thepha ukuze uhlole ukuthi yini evinjelwe.""Buyekeza amasethingi wesaziso"
- "Kusukela ku-Android 13, ama-app owafakayo adinga imvume yakho yokuthumela izaziso. Thepha ukuze ushintshe le mvume yama-app akhona kakade."
+
+ "Ngikhumbuze ngesinye isikhathi""Chitha""Isistimu"
@@ -2288,6 +2282,5 @@
"Hlola ama-app asebenzayo""Ayikwazi ukufinyelela ikhamera yefoni kusuka ku-%1$s yakho""Ayikwazi ukufinyelela ikhamera yethebulethi kusuka ku-%1$s yakho"
- "Lokhu akukwazi ukufinyelelwa ngenkathi usakaza. Zama efonini yakho kunalokho."
- "Okuzenzakalelayo kwesistimu"
+ "Ulimi lwesistimu"
diff --git a/core/res/res/values/bools.xml b/core/res/res/values/bools.xml
index 4b27bf2849fb41bbcca3269986dd29b76a5ec425..fe296c70409572644be20f787ff9017d377c3c5f 100644
--- a/core/res/res/values/bools.xml
+++ b/core/res/res/values/bools.xml
@@ -18,7 +18,6 @@
truefalsetrue
- falsetruetruefalse
diff --git a/core/res/res/values/colors.xml b/core/res/res/values/colors.xml
index d5875f547e91cbdd3d31e3bc1329ede77aeedff3..b83d3b4ea298f30d831da5c868c84b42e5325969 100644
--- a/core/res/res/values/colors.xml
+++ b/core/res/res/values/colors.xml
@@ -150,6 +150,8 @@
#757575@color/notification_default_color
+ 0.38
+ 0.12@color/notification_secondary_text_color_current
diff --git a/core/res/res/values/colors_material.xml b/core/res/res/values/colors_material.xml
index ea6e1f182fbff9765be7f752d5c07a8acc32f3a6..a99ba152510e994a9664220ef7772470c379ca9e 100644
--- a/core/res/res/values/colors_material.xml
+++ b/core/res/res/values/colors_material.xml
@@ -72,8 +72,8 @@
.70.60
- 0.10
- 0.10
+ 0.5
+ 0.50.10
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 4b05f99f82426a16c1aba2d709bbf5758975b54d..96578ef9d5dbaf963f0fba63c13150fee11670f9 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -560,6 +560,10 @@
rotations as the default behavior. -->
false
+
+ false
+
false
+
+
+
+
+
@@ -652,10 +666,34 @@
-->
+
+
+
+
+
false
+
+ false
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
@@ -687,20 +725,22 @@
mode. -->
1000
+
+ 1000
+
true
-
+
@@ -729,6 +769,11 @@
we rely on gravity to determine the effective orientation. -->
true
+
+ false
+
true
+
+ 3000
+
+
+
+
+
false
-
- true
+
+ false7
@@ -4944,9 +4997,8 @@
true
-
- false
+
+ false
+
+
+
+
+
@@ -5268,6 +5325,10 @@
false
+
+ false
+
false
+
+ false
+
false
@@ -5340,10 +5404,20 @@
split screen. -->
false
+
+ false
+
false
+
+ false
+
false
@@ -6021,4 +6095,17 @@
+
+
+ false
+
+
+ -1
+
+
+ false
+
+
+ false
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 8a1b74d33065465e6adebb4851e3b923de1c3f1b..29fb0d5524d8539e9a86efa58584f4d29a19c89b 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -968,6 +968,11 @@
Can take a screenshot of the display.
+
+
+
+ Preview, %1$s
+
@@ -5147,6 +5152,14 @@
Got it
+
+ Rotate for a better view
+
+
+ Exit split screen for a better view
+
Done
@@ -2719,7 +2727,7 @@
-
+
@@ -2834,7 +2842,6 @@
-
@@ -3298,7 +3305,10 @@
+
+
+
@@ -3350,6 +3360,7 @@
+
@@ -3431,6 +3442,12 @@
+
+
+
+
@@ -4010,9 +4027,15 @@
+
+
+
+
+
+
@@ -4193,6 +4216,7 @@
+
@@ -4267,6 +4291,8 @@
+
+
@@ -4485,6 +4511,7 @@
+
@@ -4493,9 +4520,12 @@
+
+
+
@@ -4911,5 +4941,8 @@
+
+
+
diff --git a/core/tests/coretests/AndroidManifest.xml b/core/tests/coretests/AndroidManifest.xml
index 3e4b1cc87ef8e0bab0ad2af6d245daeaa19431b4..e96c64206c45191ae81104a861168d38e088667f 100644
--- a/core/tests/coretests/AndroidManifest.xml
+++ b/core/tests/coretests/AndroidManifest.xml
@@ -1414,6 +1414,7 @@
+
diff --git a/core/tests/coretests/src/android/app/PropertyInvalidatedCacheTests.java b/core/tests/coretests/src/android/app/PropertyInvalidatedCacheTests.java
index ed2b10117308b87d6aacb2ad2a18f1d51784dea9..3768063f2a915cbe725aefc9e70fdb8166328956 100644
--- a/core/tests/coretests/src/android/app/PropertyInvalidatedCacheTests.java
+++ b/core/tests/coretests/src/android/app/PropertyInvalidatedCacheTests.java
@@ -368,4 +368,20 @@ public class PropertyInvalidatedCacheTests {
PropertyInvalidatedCache.MODULE_BLUETOOTH, "getState");
assertEquals(n1, "cache_key.bluetooth.get_state");
}
+
+ @Test
+ public void testOnTrimMemory() {
+ TestCache cache = new TestCache(MODULE, "trimMemoryTest");
+ // The cache is not active until it has been invalidated once.
+ cache.invalidateCache();
+ // Populate the cache with six entries.
+ for (int i = 0; i < 6; i++) {
+ cache.query(i);
+ }
+ // The maximum number of entries in TestCache is 4, so even though six entries were
+ // created, only four are retained.
+ assertEquals(4, cache.size());
+ PropertyInvalidatedCache.onTrimMemory();
+ assertEquals(0, cache.size());
+ }
}
diff --git a/core/tests/coretests/src/android/view/contentcapture/ContentCaptureManagerTest.java b/core/tests/coretests/src/android/view/contentcapture/ContentCaptureManagerTest.java
index eae1bbc930d4abdb0202e916ff0d3e811a91beca..17ed4c478350984becc6429b1346f0abfacba737 100644
--- a/core/tests/coretests/src/android/view/contentcapture/ContentCaptureManagerTest.java
+++ b/core/tests/coretests/src/android/view/contentcapture/ContentCaptureManagerTest.java
@@ -15,6 +15,8 @@
*/
package android.view.contentcapture;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.Mockito.mock;
import static org.testng.Assert.assertThrows;
@@ -54,4 +56,19 @@ public class ContentCaptureManagerTest {
assertThrows(NullPointerException.class, () -> manager.removeData(null));
}
+
+ @Test
+ @SuppressWarnings("GuardedBy")
+ public void testFlushViewTreeAppearingEventDisabled_setAndGet() {
+ final IContentCaptureManager mockService = mock(IContentCaptureManager.class);
+ final ContentCaptureOptions options = new ContentCaptureOptions(null);
+ final ContentCaptureManager manager =
+ new ContentCaptureManager(mMockContext, mockService, options);
+
+ assertThat(manager.getFlushViewTreeAppearingEventDisabled()).isFalse();
+ manager.setFlushViewTreeAppearingEventDisabled(true);
+ assertThat(manager.getFlushViewTreeAppearingEventDisabled()).isTrue();
+ manager.setFlushViewTreeAppearingEventDisabled(false);
+ assertThat(manager.getFlushViewTreeAppearingEventDisabled()).isFalse();
+ }
}
diff --git a/core/tests/coretests/src/android/window/WindowOnBackInvokedDispatcherTest.java b/core/tests/coretests/src/android/window/WindowOnBackInvokedDispatcherTest.java
index f370ebd9454551ed94c6e8b1a0fad5af9756bbfe..9d6b29e5c072a923207c8dae1415ffbd1bfbaf24 100644
--- a/core/tests/coretests/src/android/window/WindowOnBackInvokedDispatcherTest.java
+++ b/core/tests/coretests/src/android/window/WindowOnBackInvokedDispatcherTest.java
@@ -17,6 +17,7 @@
package android.window;
import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.times;
@@ -60,8 +61,8 @@ public class WindowOnBackInvokedDispatcherTest {
private OnBackAnimationCallback mCallback1;
@Mock
private OnBackAnimationCallback mCallback2;
- @Mock
- private BackEvent mBackEvent;
+ private final BackMotionEvent mBackEvent = new BackMotionEvent(
+ 0, 0, 0, BackEvent.EDGE_LEFT, null);
@Before
public void setUp() throws Exception {
@@ -89,12 +90,12 @@ public class WindowOnBackInvokedDispatcherTest {
captor.capture());
captor.getAllValues().get(0).getCallback().onBackStarted(mBackEvent);
waitForIdle();
- verify(mCallback1).onBackStarted(mBackEvent);
+ verify(mCallback1).onBackStarted(any(BackEvent.class));
verifyZeroInteractions(mCallback2);
captor.getAllValues().get(1).getCallback().onBackStarted(mBackEvent);
waitForIdle();
- verify(mCallback2).onBackStarted(mBackEvent);
+ verify(mCallback2).onBackStarted(any(BackEvent.class));
verifyNoMoreInteractions(mCallback1);
}
@@ -114,7 +115,7 @@ public class WindowOnBackInvokedDispatcherTest {
assertEquals(captor.getValue().getPriority(), OnBackInvokedDispatcher.PRIORITY_OVERLAY);
captor.getValue().getCallback().onBackStarted(mBackEvent);
waitForIdle();
- verify(mCallback1).onBackStarted(mBackEvent);
+ verify(mCallback1).onBackStarted(any(BackEvent.class));
}
@Test
@@ -152,6 +153,6 @@ public class WindowOnBackInvokedDispatcherTest {
verify(mWindowSession).setOnBackInvokedCallbackInfo(Mockito.eq(mWindow), captor.capture());
captor.getValue().getCallback().onBackStarted(mBackEvent);
waitForIdle();
- verify(mCallback2).onBackStarted(mBackEvent);
+ verify(mCallback2).onBackStarted(any(BackEvent.class));
}
}
diff --git a/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutChooserActivityTest.java b/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutChooserActivityTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..973b904c9344fa856304b0037b9fda119cac2d0c
--- /dev/null
+++ b/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutChooserActivityTest.java
@@ -0,0 +1,182 @@
+/*
+ * Copyright (C) 2022 The Android Open Source 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.
+ */
+
+package com.android.internal.accessibility;
+
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.action.ViewActions.click;
+import static androidx.test.espresso.action.ViewActions.doubleClick;
+import static androidx.test.espresso.action.ViewActions.scrollTo;
+import static androidx.test.espresso.action.ViewActions.swipeUp;
+import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist;
+import static androidx.test.espresso.assertion.ViewAssertions.matches;
+import static androidx.test.espresso.matcher.RootMatchers.isDialog;
+import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.withClassName;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.espresso.matcher.ViewMatchers.withText;
+
+import static org.hamcrest.Matchers.allOf;
+import static org.hamcrest.Matchers.endsWith;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.when;
+
+import android.accessibilityservice.AccessibilityServiceInfo;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
+import android.os.Handler;
+import android.view.accessibility.AccessibilityManager;
+import android.view.accessibility.IAccessibilityManager;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.test.core.app.ActivityScenario;
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.internal.R;
+import com.android.internal.accessibility.dialog.AccessibilityShortcutChooserActivity;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+
+import java.util.Collections;
+
+/**
+ * Tests for {@link AccessibilityShortcutChooserActivity}.
+ */
+@RunWith(AndroidJUnit4.class)
+public class AccessibilityShortcutChooserActivityTest {
+ private static final String ONE_HANDED_MODE = "One-Handed mode";
+ private static final String TEST_LABEL = "TEST_LABEL";
+ private static final ComponentName TEST_COMPONENT_NAME = new ComponentName("package", "class");
+
+ @Rule
+ public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+ @Mock
+ private AccessibilityServiceInfo mAccessibilityServiceInfo;
+ @Mock
+ private ResolveInfo mResolveInfo;
+ @Mock
+ private ServiceInfo mServiceInfo;
+ @Mock
+ private ApplicationInfo mApplicationInfo;
+ @Mock
+ private IAccessibilityManager mAccessibilityManagerService;
+
+ @Test
+ public void doubleClickTestServiceAndClickDenyButton_permissionDialogDoesNotExist()
+ throws Exception {
+ configureTestService();
+ final ActivityScenario scenario =
+ ActivityScenario.launch(TestAccessibilityShortcutChooserActivity.class);
+ scenario.moveToState(Lifecycle.State.CREATED);
+ scenario.moveToState(Lifecycle.State.STARTED);
+ scenario.moveToState(Lifecycle.State.RESUMED);
+
+ onView(withText(R.string.accessibility_select_shortcut_menu_title)).inRoot(
+ isDialog()).check(matches(isDisplayed()));
+ onView(withText(R.string.edit_accessibility_shortcut_menu_button)).perform(click());
+ onView(withText(TEST_LABEL)).perform(scrollTo(), doubleClick());
+ onView(withId(R.id.accessibility_permission_enable_deny_button)).perform(scrollTo(),
+ click());
+
+ onView(withId(R.id.accessibility_permissionDialog_title)).inRoot(isDialog()).check(
+ doesNotExist());
+ scenario.moveToState(Lifecycle.State.DESTROYED);
+ }
+
+ @Test
+ public void popEditShortcutMenuList_oneHandedModeEnabled_shouldBeInListView() {
+ TestUtils.setOneHandedModeEnabled(this, /* enabled= */ true);
+ final ActivityScenario scenario =
+ ActivityScenario.launch(TestAccessibilityShortcutChooserActivity.class);
+ scenario.moveToState(Lifecycle.State.CREATED);
+ scenario.moveToState(Lifecycle.State.STARTED);
+ scenario.moveToState(Lifecycle.State.RESUMED);
+
+ onView(withText(R.string.accessibility_select_shortcut_menu_title)).inRoot(
+ isDialog()).check(matches(isDisplayed()));
+ onView(withText(R.string.edit_accessibility_shortcut_menu_button)).perform(click());
+ onView(allOf(withClassName(endsWith("ListView")), isDisplayed())).perform(swipeUp());
+ InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+
+ onView(withText(ONE_HANDED_MODE)).inRoot(isDialog()).check(matches(isDisplayed()));
+ scenario.moveToState(Lifecycle.State.DESTROYED);
+ }
+
+ @Test
+ public void popEditShortcutMenuList_oneHandedModeDisabled_shouldNotBeInListView() {
+ TestUtils.setOneHandedModeEnabled(this, /* enabled= */ false);
+ final ActivityScenario scenario =
+ ActivityScenario.launch(TestAccessibilityShortcutChooserActivity.class);
+ scenario.moveToState(Lifecycle.State.CREATED);
+ scenario.moveToState(Lifecycle.State.STARTED);
+ scenario.moveToState(Lifecycle.State.RESUMED);
+
+ onView(withText(R.string.accessibility_select_shortcut_menu_title)).inRoot(
+ isDialog()).check(matches(isDisplayed()));
+ onView(withText(R.string.edit_accessibility_shortcut_menu_button)).perform(click());
+ onView(allOf(withClassName(endsWith("ListView")), isDisplayed())).perform(swipeUp());
+ InstrumentationRegistry.getInstrumentation().waitForIdleSync();
+
+ onView(withText(ONE_HANDED_MODE)).inRoot(isDialog()).check(doesNotExist());
+ scenario.moveToState(Lifecycle.State.DESTROYED);
+ }
+
+ private void configureTestService() throws Exception {
+ when(mAccessibilityServiceInfo.getResolveInfo()).thenReturn(mResolveInfo);
+ mResolveInfo.serviceInfo = mServiceInfo;
+ mServiceInfo.applicationInfo = mApplicationInfo;
+ when(mResolveInfo.loadLabel(any(PackageManager.class))).thenReturn(TEST_LABEL);
+ when(mAccessibilityServiceInfo.getComponentName()).thenReturn(TEST_COMPONENT_NAME);
+ when(mAccessibilityManagerService.getInstalledAccessibilityServiceList(
+ anyInt())).thenReturn(Collections.singletonList(mAccessibilityServiceInfo));
+
+ TestAccessibilityShortcutChooserActivity.setupForTesting(mAccessibilityManagerService);
+ }
+
+ /**
+ * Used for testing.
+ */
+ public static class TestAccessibilityShortcutChooserActivity extends
+ AccessibilityShortcutChooserActivity {
+ private static IAccessibilityManager sAccessibilityManagerService;
+
+ public static void setupForTesting(IAccessibilityManager accessibilityManagerService) {
+ sAccessibilityManagerService = accessibilityManagerService;
+ }
+
+ @Override
+ public Object getSystemService(String name) {
+ if (Context.ACCESSIBILITY_SERVICE.equals(name)
+ && sAccessibilityManagerService != null) {
+ return new AccessibilityManager(this, new Handler(getMainLooper()),
+ sAccessibilityManagerService, /* userId= */ 0, /* serviceConnect= */ true);
+ }
+
+ return super.getSystemService(name);
+ }
+ }
+}
diff --git a/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java b/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java
index 6baf3056be32039dde0b2768070bac6c638fec21..c92ae2c98f9adc4042639cc64a7e36233abb5210 100644
--- a/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java
+++ b/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java
@@ -21,6 +21,11 @@ import static android.provider.Settings.Secure.ACCESSIBILITY_SHORTCUT_ON_LOCK_SC
import static android.provider.Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHORTCUT_KEY;
+import static com.android.internal.accessibility.AccessibilityShortcutController.COLOR_INVERSION_COMPONENT_NAME;
+import static com.android.internal.accessibility.AccessibilityShortcutController.DALTONIZER_COMPONENT_NAME;
+import static com.android.internal.accessibility.AccessibilityShortcutController.ONE_HANDED_COMPONENT_NAME;
+import static com.android.internal.accessibility.AccessibilityShortcutController.REDUCE_BRIGHT_COLORS_COMPONENT_NAME;
+
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
@@ -203,6 +208,17 @@ public class AccessibilityShortcutControllerTest {
when(mAlertDialog.getWindow()).thenReturn(window);
when(mTextToSpeech.getVoice()).thenReturn(mVoice);
+
+ // Clears the sFrameworkShortcutFeaturesMap field which was not properly initialized
+ // during testing.
+ try {
+ Field field = AccessibilityShortcutController.class.getDeclaredField(
+ "sFrameworkShortcutFeaturesMap");
+ field.setAccessible(true);
+ field.set(window, null);
+ } catch (Exception e) {
+ throw new RuntimeException("Unable to set sFrameworkShortcutFeaturesMap", e);
+ }
}
@AfterClass
@@ -428,11 +444,10 @@ public class AccessibilityShortcutControllerTest {
}
@Test
- public void getFrameworkFeatureMap_shouldBeNonNullAndUnmodifiable() {
- Map
+ public void getFrameworkFeatureMap_shouldBeUnmodifiable() {
+ final Map
frameworkFeatureMap =
AccessibilityShortcutController.getFrameworkShortcutFeaturesMap();
- assertTrue("Framework features not supported", frameworkFeatureMap.size() > 0);
try {
frameworkFeatureMap.clear();
@@ -442,6 +457,39 @@ public class AccessibilityShortcutControllerTest {
}
}
+ @Test
+ public void getFrameworkFeatureMap_containsExpectedDefaultKeys() {
+ final Map
+ frameworkFeatureMap =
+ AccessibilityShortcutController.getFrameworkShortcutFeaturesMap();
+
+ assertTrue(frameworkFeatureMap.containsKey(COLOR_INVERSION_COMPONENT_NAME));
+ assertTrue(frameworkFeatureMap.containsKey(DALTONIZER_COMPONENT_NAME));
+ assertTrue(frameworkFeatureMap.containsKey(REDUCE_BRIGHT_COLORS_COMPONENT_NAME));
+ }
+
+ @Test
+ public void getFrameworkFeatureMap_oneHandedModeEnabled_containsExpectedKey() {
+ TestUtils.setOneHandedModeEnabled(this, /* enabled= */ true);
+
+ final Map
+ frameworkFeatureMap =
+ AccessibilityShortcutController.getFrameworkShortcutFeaturesMap();
+
+ assertTrue(frameworkFeatureMap.containsKey(ONE_HANDED_COMPONENT_NAME));
+ }
+
+ @Test
+ public void getFrameworkFeatureMap_oneHandedModeDisabled_containsExpectedKey() {
+ TestUtils.setOneHandedModeEnabled(this, /* enabled= */ false);
+
+ final Map
+ frameworkFeatureMap =
+ AccessibilityShortcutController.getFrameworkShortcutFeaturesMap();
+
+ assertFalse(frameworkFeatureMap.containsKey(ONE_HANDED_COMPONENT_NAME));
+ }
+
@Test
public void testOnAccessibilityShortcut_forServiceWithNoSummary_doesNotCrash()
throws Exception {
diff --git a/core/tests/coretests/src/com/android/internal/accessibility/TestUtils.java b/core/tests/coretests/src/com/android/internal/accessibility/TestUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..ff014add793a3a2f86a7363b8b8e278c68d88198
--- /dev/null
+++ b/core/tests/coretests/src/com/android/internal/accessibility/TestUtils.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2022 The Android Open Source 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.
+ */
+
+package com.android.internal.accessibility;
+
+import com.android.internal.os.RoSystemProperties;
+
+import java.lang.reflect.Field;
+
+/**
+ * Test utility methods.
+ */
+public class TestUtils {
+
+ /**
+ * Sets the {@code enabled} of the given OneHandedMode flags to simulate device behavior.
+ */
+ public static void setOneHandedModeEnabled(Object obj, boolean enabled) {
+ try {
+ final Field field = RoSystemProperties.class.getDeclaredField(
+ "SUPPORT_ONE_HANDED_MODE");
+ field.setAccessible(true);
+ field.setBoolean(obj, enabled);
+ } catch (ReflectiveOperationException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/core/tests/coretests/src/com/android/internal/app/procstats/ProcessStatsTest.java b/core/tests/coretests/src/com/android/internal/app/procstats/ProcessStatsTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..61899143b9c5e9618a0f860450643d793320bdb1
--- /dev/null
+++ b/core/tests/coretests/src/com/android/internal/app/procstats/ProcessStatsTest.java
@@ -0,0 +1,204 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.internal.app.procstats;
+
+import static com.android.internal.app.procstats.ProcessStats.STATE_TOP;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.MockitoAnnotations.initMocks;
+
+import android.app.ActivityManager;
+
+import androidx.test.filters.SmallTest;
+
+import com.android.internal.util.FrameworkStatsLog;
+
+import junit.framework.TestCase;
+
+import org.junit.Before;
+import org.mockito.Mock;
+
+import java.util.concurrent.TimeUnit;
+
+/** Provides test cases for ProcessStats. */
+public class ProcessStatsTest extends TestCase {
+
+ private static final String APP_1_PACKAGE_NAME = "com.android.testapp";
+ private static final int APP_1_UID = 5001;
+ private static final long APP_1_VERSION = 10;
+ private static final String APP_1_PROCESS_NAME = "com.android.testapp.p";
+ private static final String APP_1_SERVICE_NAME = "com.android.testapp.service";
+
+ private static final String APP_2_PACKAGE_NAME = "com.android.testapp2";
+ private static final int APP_2_UID = 5002;
+ private static final long APP_2_VERSION = 30;
+ private static final String APP_2_PROCESS_NAME = "com.android.testapp2.p";
+
+ private static final long NOW_MS = 123000;
+ private static final int DURATION_SECS = 6;
+
+ @Mock StatsEventOutput mStatsEventOutput;
+
+ @Before
+ public void setUp() {
+ initMocks(this);
+ }
+
+ @SmallTest
+ public void testDumpProcessState() throws Exception {
+ ProcessStats processStats = new ProcessStats();
+ processStats.getProcessStateLocked(
+ APP_1_PACKAGE_NAME, APP_1_UID, APP_1_VERSION, APP_1_PROCESS_NAME);
+ processStats.getProcessStateLocked(
+ APP_2_PACKAGE_NAME, APP_2_UID, APP_2_VERSION, APP_2_PROCESS_NAME);
+ processStats.dumpProcessState(FrameworkStatsLog.PROCESS_STATE, mStatsEventOutput);
+ verify(mStatsEventOutput)
+ .write(
+ eq(FrameworkStatsLog.PROCESS_STATE),
+ eq(APP_1_UID),
+ eq(APP_1_PROCESS_NAME),
+ anyInt(),
+ anyInt(),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0));
+ verify(mStatsEventOutput)
+ .write(
+ eq(FrameworkStatsLog.PROCESS_STATE),
+ eq(APP_2_UID),
+ eq(APP_2_PROCESS_NAME),
+ anyInt(),
+ anyInt(),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0));
+ }
+
+ @SmallTest
+ public void testNonZeroProcessStateDuration() throws Exception {
+ ProcessStats processStats = new ProcessStats();
+ ProcessState processState =
+ processStats.getProcessStateLocked(
+ APP_1_PACKAGE_NAME, APP_1_UID, APP_1_VERSION, APP_1_PROCESS_NAME);
+ processState.setCombinedState(STATE_TOP, NOW_MS);
+ processState.commitStateTime(NOW_MS + TimeUnit.SECONDS.toMillis(DURATION_SECS));
+ processStats.dumpProcessState(FrameworkStatsLog.PROCESS_STATE, mStatsEventOutput);
+ verify(mStatsEventOutput)
+ .write(
+ eq(FrameworkStatsLog.PROCESS_STATE),
+ eq(APP_1_UID),
+ eq(APP_1_PROCESS_NAME),
+ anyInt(),
+ anyInt(),
+ eq(0),
+ eq(DURATION_SECS),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0));
+ }
+
+ @SmallTest
+ public void testDumpBoundFgsDuration() throws Exception {
+ ProcessStats processStats = new ProcessStats();
+ ProcessState processState =
+ processStats.getProcessStateLocked(
+ APP_1_PACKAGE_NAME, APP_1_UID, APP_1_VERSION, APP_1_PROCESS_NAME);
+ processState.setState(ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE,
+ ProcessStats.ADJ_MEM_FACTOR_NORMAL, NOW_MS, /* pkgList */ null);
+ processState.commitStateTime(NOW_MS + TimeUnit.SECONDS.toMillis(DURATION_SECS));
+ processStats.dumpProcessState(FrameworkStatsLog.PROCESS_STATE, mStatsEventOutput);
+ verify(mStatsEventOutput)
+ .write(
+ eq(FrameworkStatsLog.PROCESS_STATE),
+ eq(APP_1_UID),
+ eq(APP_1_PROCESS_NAME),
+ anyInt(),
+ anyInt(),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(DURATION_SECS),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(0));
+ }
+
+ @SmallTest
+ public void testDumpProcessAssociation() throws Exception {
+ ProcessStats processStats = new ProcessStats();
+ AssociationState associationState =
+ processStats.getAssociationStateLocked(
+ APP_1_PACKAGE_NAME,
+ APP_1_UID,
+ APP_1_VERSION,
+ APP_1_PROCESS_NAME,
+ APP_1_SERVICE_NAME);
+ AssociationState.SourceState sourceState =
+ associationState.startSource(APP_2_UID, APP_2_PROCESS_NAME, APP_2_PACKAGE_NAME);
+ sourceState.stop();
+ processStats.dumpProcessAssociation(
+ FrameworkStatsLog.PROCESS_ASSOCIATION, mStatsEventOutput);
+ verify(mStatsEventOutput)
+ .write(
+ eq(FrameworkStatsLog.PROCESS_ASSOCIATION),
+ eq(APP_2_UID),
+ eq(APP_2_PROCESS_NAME),
+ eq(APP_1_UID),
+ eq(APP_1_SERVICE_NAME),
+ anyInt(),
+ anyInt(),
+ eq(0),
+ eq(0),
+ eq(0),
+ eq(APP_1_PROCESS_NAME));
+ }
+
+ @SmallTest
+ public void testSafelyResetClearsProcessInUidState() throws Exception {
+ ProcessStats processStats = new ProcessStats();
+ ProcessState processState =
+ processStats.getProcessStateLocked(
+ APP_1_PACKAGE_NAME, APP_1_UID, APP_1_VERSION, APP_1_PROCESS_NAME);
+ processState.makeActive();
+ UidState uidState = processStats.mUidStates.get(APP_1_UID);
+ assertTrue(uidState.isInUse());
+ processState.makeInactive();
+ uidState.resetSafely(NOW_MS);
+ processState.makeActive();
+ assertFalse(uidState.isInUse());
+ }
+}
diff --git a/core/tests/coretests/src/com/android/internal/config/sysui/OWNERS b/core/tests/coretests/src/com/android/internal/config/sysui/OWNERS
new file mode 100644
index 0000000000000000000000000000000000000000..2e96c97c8bb352f425747ce548ea1a34f89f0dc0
--- /dev/null
+++ b/core/tests/coretests/src/com/android/internal/config/sysui/OWNERS
@@ -0,0 +1 @@
+include /packages/SystemUI/OWNERS
diff --git a/core/tests/coretests/src/com/android/internal/config/sysui/SystemUiSystemPropertiesFlagsTest.java b/core/tests/coretests/src/com/android/internal/config/sysui/SystemUiSystemPropertiesFlagsTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..6b9d39ceb79a8afabbbb237c10c5d1d2c0f11dca
--- /dev/null
+++ b/core/tests/coretests/src/com/android/internal/config/sysui/SystemUiSystemPropertiesFlagsTest.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.internal.config.sysui;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import androidx.test.filters.SmallTest;
+
+import com.android.internal.config.sysui.SystemUiSystemPropertiesFlags.Flag;
+import com.android.internal.config.sysui.SystemUiSystemPropertiesFlags.FlagResolver;
+
+import junit.framework.TestCase;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@SmallTest
+public class SystemUiSystemPropertiesFlagsTest extends TestCase {
+
+ public class TestableDebugResolver extends SystemUiSystemPropertiesFlags.DebugResolver {
+ final Map mTestData = new HashMap<>();
+
+ @Override
+ public boolean getBoolean(String key, boolean defaultValue) {
+ Boolean testValue = mTestData.get(key);
+ return testValue == null ? defaultValue : testValue;
+ }
+
+ public void set(Flag flag, Boolean value) {
+ mTestData.put(flag.mSysPropKey, value);
+ }
+ }
+
+ private FlagResolver mProdResolver;
+ private TestableDebugResolver mDebugResolver;
+
+ private Flag mReleasedFlag;
+ private Flag mTeamfoodFlag;
+ private Flag mDevFlag;
+
+ public void setUp() {
+ mProdResolver = new SystemUiSystemPropertiesFlags.ProdResolver();
+ mDebugResolver = new TestableDebugResolver();
+ mReleasedFlag = SystemUiSystemPropertiesFlags.releasedFlag("mReleasedFlag");
+ mTeamfoodFlag = SystemUiSystemPropertiesFlags.teamfoodFlag("mTeamfoodFlag");
+ mDevFlag = SystemUiSystemPropertiesFlags.devFlag("mDevFlag");
+ }
+
+ public void tearDown() {
+ SystemUiSystemPropertiesFlags.TEST_RESOLVER = null;
+ }
+
+ public void testProdResolverReturnsDefault() {
+ assertThat(mProdResolver.isEnabled(mReleasedFlag)).isTrue();
+ assertThat(mProdResolver.isEnabled(mTeamfoodFlag)).isFalse();
+ assertThat(mProdResolver.isEnabled(mDevFlag)).isFalse();
+ }
+
+ public void testDebugResolverAndReleasedFlag() {
+ assertThat(mDebugResolver.isEnabled(mReleasedFlag)).isTrue();
+
+ mDebugResolver.set(mReleasedFlag, false);
+ assertThat(mDebugResolver.isEnabled(mReleasedFlag)).isFalse();
+
+ mDebugResolver.set(mReleasedFlag, true);
+ assertThat(mDebugResolver.isEnabled(mReleasedFlag)).isTrue();
+ }
+
+ private void assertTeamfoodFlag(Boolean flagValue, Boolean teamfood, boolean expected) {
+ mDebugResolver.set(mTeamfoodFlag, flagValue);
+ mDebugResolver.set(SystemUiSystemPropertiesFlags.TEAMFOOD, teamfood);
+ assertThat(mDebugResolver.isEnabled(mTeamfoodFlag)).isEqualTo(expected);
+ }
+
+ public void testDebugResolverAndTeamfoodFlag() {
+ assertTeamfoodFlag(null, null, false);
+ assertTeamfoodFlag(true, null, true);
+ assertTeamfoodFlag(false, null, false);
+ assertTeamfoodFlag(null, true, true);
+ assertTeamfoodFlag(true, true, true);
+ assertTeamfoodFlag(false, true, false);
+ assertTeamfoodFlag(null, false, false);
+ assertTeamfoodFlag(true, false, true);
+ assertTeamfoodFlag(false, false, false);
+ }
+
+ public void testDebugResolverAndDevFlag() {
+ assertThat(mDebugResolver.isEnabled(mDevFlag)).isFalse();
+
+ mDebugResolver.set(mDevFlag, true);
+ assertThat(mDebugResolver.isEnabled(mDevFlag)).isTrue();
+
+ mDebugResolver.set(mDevFlag, false);
+ assertThat(mDebugResolver.isEnabled(mDevFlag)).isFalse();
+ }
+}
diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryStatsNoteTest.java b/core/tests/coretests/src/com/android/internal/os/BatteryStatsNoteTest.java
index 52feac5a585a7e9c61a5a78d95ceec91853eeda1..4c9b2b7f5dd67a14679326cd64fee360737e65aa 100644
--- a/core/tests/coretests/src/com/android/internal/os/BatteryStatsNoteTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/BatteryStatsNoteTest.java
@@ -360,6 +360,7 @@ public class BatteryStatsNoteTest extends TestCase {
// map of ActivityManager process states and how long to simulate run time in each state
Map stateRuntimeMap = new HashMap();
stateRuntimeMap.put(ActivityManager.PROCESS_STATE_TOP, 1111);
+ stateRuntimeMap.put(ActivityManager.PROCESS_STATE_BOUND_TOP, 7382);
stateRuntimeMap.put(ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE, 1234);
stateRuntimeMap.put(ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE, 2468);
stateRuntimeMap.put(ActivityManager.PROCESS_STATE_TOP_SLEEPING, 7531);
@@ -396,7 +397,8 @@ public class BatteryStatsNoteTest extends TestCase {
actualRunTimeUs = uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_FOREGROUND_SERVICE,
elapsedTimeUs, STATS_SINCE_CHARGED);
- expectedRunTimeMs = stateRuntimeMap.get(ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE);
+ expectedRunTimeMs = stateRuntimeMap.get(ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE)
+ + stateRuntimeMap.get(ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE);
assertEquals(expectedRunTimeMs * 1000, actualRunTimeUs);
actualRunTimeUs = uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_TOP_SLEEPING,
@@ -406,8 +408,7 @@ public class BatteryStatsNoteTest extends TestCase {
actualRunTimeUs = uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_FOREGROUND,
elapsedTimeUs, STATS_SINCE_CHARGED);
- expectedRunTimeMs = stateRuntimeMap.get(ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND)
- + stateRuntimeMap.get(ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE);
+ expectedRunTimeMs = stateRuntimeMap.get(ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND);
assertEquals(expectedRunTimeMs * 1000, actualRunTimeUs);
actualRunTimeUs = uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_BACKGROUND,
@@ -415,7 +416,8 @@ public class BatteryStatsNoteTest extends TestCase {
expectedRunTimeMs = stateRuntimeMap.get(ActivityManager.PROCESS_STATE_TRANSIENT_BACKGROUND)
+ stateRuntimeMap.get(ActivityManager.PROCESS_STATE_BACKUP)
+ stateRuntimeMap.get(ActivityManager.PROCESS_STATE_SERVICE)
- + stateRuntimeMap.get(ActivityManager.PROCESS_STATE_RECEIVER);
+ + stateRuntimeMap.get(ActivityManager.PROCESS_STATE_RECEIVER)
+ + stateRuntimeMap.get(ActivityManager.PROCESS_STATE_BOUND_TOP);
assertEquals(expectedRunTimeMs * 1000, actualRunTimeUs);
actualRunTimeUs = uid.getProcessStateTime(BatteryStats.Uid.PROCESS_STATE_CACHED,
diff --git a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsProviderTest.java b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsProviderTest.java
index 354b93709976282337aa20e70ecb29d25262c0be..2742861351747ee37eb166b9da2ab672485fc751 100644
--- a/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsProviderTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/BatteryUsageStatsProviderTest.java
@@ -78,9 +78,9 @@ public class BatteryUsageStatsProviderTest {
batteryUsageStats.getUidBatteryConsumers();
final UidBatteryConsumer uidBatteryConsumer = uidBatteryConsumers.get(0);
assertThat(uidBatteryConsumer.getTimeInStateMs(UidBatteryConsumer.STATE_FOREGROUND))
- .isEqualTo(60 * MINUTE_IN_MS);
+ .isEqualTo(20 * MINUTE_IN_MS);
assertThat(uidBatteryConsumer.getTimeInStateMs(UidBatteryConsumer.STATE_BACKGROUND))
- .isEqualTo(10 * MINUTE_IN_MS);
+ .isEqualTo(40 * MINUTE_IN_MS);
assertThat(uidBatteryConsumer.getConsumedPower(BatteryConsumer.POWER_COMPONENT_AUDIO))
.isWithin(PRECISION).of(2.0);
assertThat(
@@ -121,22 +121,44 @@ public class BatteryUsageStatsProviderTest {
private BatteryStatsImpl prepareBatteryStats() {
BatteryStatsImpl batteryStats = mStatsRule.getBatteryStats();
- batteryStats.noteActivityResumedLocked(APP_UID,
- 10 * MINUTE_IN_MS, 10 * MINUTE_IN_MS);
- batteryStats.noteUidProcessStateLocked(APP_UID, ActivityManager.PROCESS_STATE_TOP,
- 10 * MINUTE_IN_MS, 10 * MINUTE_IN_MS);
- batteryStats.noteActivityPausedLocked(APP_UID,
- 30 * MINUTE_IN_MS, 30 * MINUTE_IN_MS);
- batteryStats.noteUidProcessStateLocked(APP_UID, ActivityManager.PROCESS_STATE_SERVICE,
- 30 * MINUTE_IN_MS, 30 * MINUTE_IN_MS);
- batteryStats.noteUidProcessStateLocked(APP_UID,
- ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE,
- 40 * MINUTE_IN_MS, 40 * MINUTE_IN_MS);
- batteryStats.noteUidProcessStateLocked(APP_UID,
- ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE,
- 50 * MINUTE_IN_MS, 50 * MINUTE_IN_MS);
- batteryStats.noteUidProcessStateLocked(APP_UID, ActivityManager.PROCESS_STATE_CACHED_EMPTY,
- 80 * MINUTE_IN_MS, 80 * MINUTE_IN_MS);
+ mStatsRule.setTime(10 * MINUTE_IN_MS, 10 * MINUTE_IN_MS);
+ synchronized (batteryStats) {
+ batteryStats.noteActivityResumedLocked(APP_UID);
+ }
+
+ mStatsRule.setTime(10 * MINUTE_IN_MS, 10 * MINUTE_IN_MS);
+ synchronized (batteryStats) {
+ batteryStats.noteUidProcessStateLocked(APP_UID, ActivityManager.PROCESS_STATE_TOP);
+ }
+ mStatsRule.setTime(30 * MINUTE_IN_MS, 30 * MINUTE_IN_MS);
+ synchronized (batteryStats) {
+ batteryStats.noteActivityPausedLocked(APP_UID);
+ }
+ mStatsRule.setTime(30 * MINUTE_IN_MS, 30 * MINUTE_IN_MS);
+ synchronized (batteryStats) {
+ batteryStats.noteUidProcessStateLocked(APP_UID,
+ ActivityManager.PROCESS_STATE_SERVICE);
+ }
+ mStatsRule.setTime(40 * MINUTE_IN_MS, 40 * MINUTE_IN_MS);
+ synchronized (batteryStats) {
+ batteryStats.noteUidProcessStateLocked(APP_UID,
+ ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE);
+ }
+ mStatsRule.setTime(50 * MINUTE_IN_MS, 50 * MINUTE_IN_MS);
+ synchronized (batteryStats) {
+ batteryStats.noteUidProcessStateLocked(APP_UID,
+ ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE);
+ }
+ mStatsRule.setTime(60 * MINUTE_IN_MS, 60 * MINUTE_IN_MS);
+ synchronized (batteryStats) {
+ batteryStats.noteUidProcessStateLocked(APP_UID,
+ ActivityManager.PROCESS_STATE_BOUND_TOP);
+ }
+ mStatsRule.setTime(70 * MINUTE_IN_MS, 70 * MINUTE_IN_MS);
+ synchronized (batteryStats) {
+ batteryStats.noteUidProcessStateLocked(APP_UID,
+ ActivityManager.PROCESS_STATE_CACHED_EMPTY);
+ }
batteryStats.noteFlashlightOnLocked(APP_UID, 1000, 1000);
batteryStats.noteFlashlightOffLocked(APP_UID, 5000, 5000);
diff --git a/core/tests/coretests/src/com/android/internal/os/MobileRadioPowerCalculatorTest.java b/core/tests/coretests/src/com/android/internal/os/MobileRadioPowerCalculatorTest.java
index 00ac1985f897d12eb2e7175a66d3853bc860da52..0bdf491e63776a0e048f08817977a6a1529fd78d 100644
--- a/core/tests/coretests/src/com/android/internal/os/MobileRadioPowerCalculatorTest.java
+++ b/core/tests/coretests/src/com/android/internal/os/MobileRadioPowerCalculatorTest.java
@@ -245,6 +245,8 @@ public class MobileRadioPowerCalculatorTest {
stats.noteNetworkInterfaceForTransports("cellular",
new int[]{NetworkCapabilities.TRANSPORT_CELLULAR});
+ stats.notePhoneOnLocked(9800, 9800);
+
// Note application network activity
NetworkStats networkStats = new NetworkStats(10000, 1)
.addEntry(new NetworkStats.Entry("cellular", APP_UID, 0, 0,
@@ -257,27 +259,33 @@ public class MobileRadioPowerCalculatorTest {
mStatsRule.setTime(12_000, 12_000);
- MobileRadioPowerCalculator calculator =
+ MobileRadioPowerCalculator mobileRadioPowerCalculator =
new MobileRadioPowerCalculator(mStatsRule.getPowerProfile());
-
- mStatsRule.apply(calculator);
+ PhonePowerCalculator phonePowerCalculator =
+ new PhonePowerCalculator(mStatsRule.getPowerProfile());
+ mStatsRule.apply(mobileRadioPowerCalculator, phonePowerCalculator);
UidBatteryConsumer uidConsumer = mStatsRule.getUidBatteryConsumer(APP_UID);
assertThat(uidConsumer.getConsumedPower(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO))
- .isWithin(PRECISION).of(1.53934);
+ .isWithin(PRECISION).of(1.38541);
assertThat(uidConsumer.getPowerModel(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO))
.isEqualTo(BatteryConsumer.POWER_MODEL_MEASURED_ENERGY);
BatteryConsumer deviceConsumer = mStatsRule.getDeviceBatteryConsumer();
// 10_000_000 micro-Coulomb * 1/1000 milli/micro * 1/3600 hour/second = 2.77778 mAh
assertThat(deviceConsumer.getConsumedPower(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO))
- .isWithin(PRECISION).of(2.77778);
+ .isWithin(PRECISION).of(2.5);
assertThat(deviceConsumer.getPowerModel(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO))
.isEqualTo(BatteryConsumer.POWER_MODEL_MEASURED_ENERGY);
+ assertThat(deviceConsumer.getConsumedPower(BatteryConsumer.POWER_COMPONENT_PHONE))
+ .isWithin(PRECISION).of(0.27778);
+ assertThat(deviceConsumer.getPowerModel(BatteryConsumer.POWER_COMPONENT_PHONE))
+ .isEqualTo(BatteryConsumer.POWER_MODEL_MEASURED_ENERGY);
+
BatteryConsumer appsConsumer = mStatsRule.getAppsBatteryConsumer();
assertThat(appsConsumer.getConsumedPower(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO))
- .isWithin(PRECISION).of(1.53934);
+ .isWithin(PRECISION).of(1.38541);
assertThat(appsConsumer.getPowerModel(BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO))
.isEqualTo(BatteryConsumer.POWER_MODEL_MEASURED_ENERGY);
}
diff --git a/core/tests/screenshothelpertests/Android.bp b/core/tests/screenshothelpertests/Android.bp
index 37af99c58d427b77877aaba0917616c720c44bf3..3c71e6e4247b733236a8d1eacdb0887a1cace15d 100644
--- a/core/tests/screenshothelpertests/Android.bp
+++ b/core/tests/screenshothelpertests/Android.bp
@@ -13,7 +13,7 @@ android_test {
srcs: [
"src/**/*.java",
],
-
+
static_libs: [
"frameworks-base-testutils",
"androidx.test.runner",
@@ -21,6 +21,7 @@ android_test {
"androidx.test.ext.junit",
"mockito-target-minus-junit4",
"platform-test-annotations",
+ "testng",
],
libs: [
diff --git a/core/tests/screenshothelpertests/src/com/android/internal/util/ScreenshotHelperTest.java b/core/tests/screenshothelpertests/src/com/android/internal/util/ScreenshotHelperTest.java
index 2719431a536e414f5cbaef162005455f6a03aedf..5c9894ebd5900329349dee999288411df7e7c4d5 100644
--- a/core/tests/screenshothelpertests/src/com/android/internal/util/ScreenshotHelperTest.java
+++ b/core/tests/screenshothelpertests/src/com/android/internal/util/ScreenshotHelperTest.java
@@ -17,6 +17,7 @@
package com.android.internal.util;
import static android.view.WindowManager.TAKE_SCREENSHOT_FULLSCREEN;
+import static android.view.WindowManager.TAKE_SCREENSHOT_PROVIDED_IMAGE;
import static junit.framework.Assert.assertNull;
import static junit.framework.Assert.fail;
@@ -31,9 +32,11 @@ import static org.mockito.Mockito.mock;
import android.content.ComponentName;
import android.content.Context;
import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.ColorSpace;
import android.graphics.Insets;
import android.graphics.Rect;
-import android.os.Bundle;
+import android.hardware.HardwareBuffer;
import android.os.Handler;
import android.os.Looper;
import android.view.WindowManager;
@@ -79,30 +82,48 @@ public final class ScreenshotHelperTest {
@Test
public void testFullscreenScreenshot() {
- mScreenshotHelper.takeScreenshot(TAKE_SCREENSHOT_FULLSCREEN,
+ mScreenshotHelper.takeScreenshot(
WindowManager.ScreenshotSource.SCREENSHOT_OTHER, mHandler, null);
}
+ @Test
+ public void testFullscreenScreenshotRequest() {
+ ScreenshotRequest request = new ScreenshotRequest.Builder(
+ TAKE_SCREENSHOT_FULLSCREEN, WindowManager.ScreenshotSource.SCREENSHOT_OTHER)
+ .build();
+ mScreenshotHelper.takeScreenshot(request, mHandler, null);
+ }
+
@Test
public void testProvidedImageScreenshot() {
- mScreenshotHelper.provideScreenshot(
- new Bundle(), new Rect(), Insets.of(0, 0, 0, 0), 1, 1, new ComponentName("", ""),
- WindowManager.ScreenshotSource.SCREENSHOT_OTHER, mHandler, null);
+ HardwareBuffer buffer = HardwareBuffer.create(
+ 10, 10, HardwareBuffer.RGBA_8888, 1, HardwareBuffer.USAGE_GPU_SAMPLED_IMAGE);
+ Bitmap bitmap = Bitmap.wrapHardwareBuffer(buffer, ColorSpace.get(ColorSpace.Named.SRGB));
+ ScreenshotRequest request = new ScreenshotRequest.Builder(
+ TAKE_SCREENSHOT_PROVIDED_IMAGE, WindowManager.ScreenshotSource.SCREENSHOT_OTHER)
+ .setTopComponent(new ComponentName("", ""))
+ .setTaskId(1)
+ .setUserId(1)
+ .setBitmap(bitmap)
+ .setBoundsOnScreen(new Rect())
+ .setInsets(Insets.NONE)
+ .build();
+ mScreenshotHelper.takeScreenshot(request, mHandler, null);
}
@Test
public void testScreenshotTimesOut() {
long timeoutMs = 10;
+ ScreenshotRequest request = new ScreenshotRequest.Builder(
+ TAKE_SCREENSHOT_FULLSCREEN, WindowManager.ScreenshotSource.SCREENSHOT_OTHER)
+ .build();
CountDownLatch lock = new CountDownLatch(1);
- mScreenshotHelper.takeScreenshot(TAKE_SCREENSHOT_FULLSCREEN,
- WindowManager.ScreenshotSource.SCREENSHOT_OTHER,
- mHandler,
- timeoutMs,
+ mScreenshotHelper.takeScreenshotInternal(request, mHandler,
uri -> {
assertNull(uri);
lock.countDown();
- });
+ }, timeoutMs);
try {
// Add tolerance for delay to prevent flakes.
diff --git a/core/tests/screenshothelpertests/src/com/android/internal/util/ScreenshotRequestTest.java b/core/tests/screenshothelpertests/src/com/android/internal/util/ScreenshotRequestTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..89acbc7986fb9f599d494ea07412112163e5674b
--- /dev/null
+++ b/core/tests/screenshothelpertests/src/com/android/internal/util/ScreenshotRequestTest.java
@@ -0,0 +1,145 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.internal.util;
+
+import static android.app.ActivityTaskManager.INVALID_TASK_ID;
+import static android.os.UserHandle.USER_NULL;
+import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_OTHER;
+import static android.view.WindowManager.TAKE_SCREENSHOT_FULLSCREEN;
+import static android.view.WindowManager.TAKE_SCREENSHOT_PROVIDED_IMAGE;
+
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertNull;
+import static junit.framework.Assert.assertTrue;
+
+import static org.testng.Assert.assertThrows;
+
+import android.content.ComponentName;
+import android.graphics.Bitmap;
+import android.graphics.ColorSpace;
+import android.graphics.Insets;
+import android.graphics.Rect;
+import android.hardware.HardwareBuffer;
+import android.os.Parcel;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public final class ScreenshotRequestTest {
+ private final ComponentName mComponentName =
+ new ComponentName("android.test", "android.test.Component");
+
+ @Test
+ public void testSimpleScreenshot() {
+ ScreenshotRequest in =
+ new ScreenshotRequest.Builder(TAKE_SCREENSHOT_FULLSCREEN, SCREENSHOT_OTHER).build();
+
+ Parcel parcel = Parcel.obtain();
+ in.writeToParcel(parcel, 0);
+ parcel.setDataPosition(0);
+ ScreenshotRequest out = ScreenshotRequest.CREATOR.createFromParcel(parcel);
+
+ assertEquals(TAKE_SCREENSHOT_FULLSCREEN, out.getType());
+ assertEquals(SCREENSHOT_OTHER, out.getSource());
+ assertNull("Top component was expected to be null", out.getTopComponent());
+ assertEquals(INVALID_TASK_ID, out.getTaskId());
+ assertEquals(USER_NULL, out.getUserId());
+ assertNull("Bitmap was expected to be null", out.getBitmap());
+ assertNull("Bounds were expected to be null", out.getBoundsInScreen());
+ assertEquals(Insets.NONE, out.getInsets());
+ }
+
+ @Test
+ public void testProvidedScreenshot() {
+ Bitmap bitmap = makeHardwareBitmap(50, 50);
+ ScreenshotRequest in =
+ new ScreenshotRequest.Builder(TAKE_SCREENSHOT_PROVIDED_IMAGE, SCREENSHOT_OTHER)
+ .setTopComponent(mComponentName)
+ .setTaskId(2)
+ .setUserId(3)
+ .setBitmap(bitmap)
+ .setBoundsOnScreen(new Rect(10, 10, 60, 60))
+ .setInsets(Insets.of(2, 3, 4, 5))
+ .build();
+
+ Parcel parcel = Parcel.obtain();
+ in.writeToParcel(parcel, 0);
+ parcel.setDataPosition(0);
+ ScreenshotRequest out = ScreenshotRequest.CREATOR.createFromParcel(parcel);
+
+ assertEquals(TAKE_SCREENSHOT_PROVIDED_IMAGE, out.getType());
+ assertEquals(SCREENSHOT_OTHER, out.getSource());
+ assertEquals(mComponentName, out.getTopComponent());
+ assertEquals(2, out.getTaskId());
+ assertEquals(3, out.getUserId());
+ assertTrue("Bitmaps should be equal", out.getBitmap().sameAs(bitmap));
+ assertEquals(new Rect(10, 10, 60, 60), out.getBoundsInScreen());
+ assertEquals(Insets.of(2, 3, 4, 5), out.getInsets());
+ }
+
+ @Test
+ public void testProvidedScreenshot_nullBitmap() {
+ ScreenshotRequest.Builder inBuilder =
+ new ScreenshotRequest.Builder(TAKE_SCREENSHOT_PROVIDED_IMAGE, SCREENSHOT_OTHER)
+ .setTopComponent(mComponentName)
+ .setTaskId(2)
+ .setUserId(3)
+ .setBoundsOnScreen(new Rect(10, 10, 60, 60))
+ .setInsets(Insets.of(2, 3, 4, 5));
+
+ assertThrows(IllegalStateException.class, inBuilder::build);
+ }
+
+ @Test
+ public void testFullScreenshot_withBitmap() {
+ // A bitmap added to a FULLSCREEN request will be ignored, but it's technically valid
+ Bitmap bitmap = makeHardwareBitmap(50, 50);
+ ScreenshotRequest in =
+ new ScreenshotRequest.Builder(TAKE_SCREENSHOT_FULLSCREEN, SCREENSHOT_OTHER)
+ .setBitmap(bitmap)
+ .build();
+
+ Parcel parcel = Parcel.obtain();
+ in.writeToParcel(parcel, 0);
+ parcel.setDataPosition(0);
+ ScreenshotRequest out = ScreenshotRequest.CREATOR.createFromParcel(parcel);
+
+ assertEquals(TAKE_SCREENSHOT_FULLSCREEN, out.getType());
+ assertEquals(SCREENSHOT_OTHER, out.getSource());
+ assertNull(out.getTopComponent());
+ assertEquals(INVALID_TASK_ID, out.getTaskId());
+ assertEquals(USER_NULL, out.getUserId());
+ assertTrue("Bitmaps should be equal", out.getBitmap().sameAs(bitmap));
+ assertNull("Bounds expected to be null", out.getBoundsInScreen());
+ assertEquals(Insets.NONE, out.getInsets());
+ }
+
+ @Test
+ public void testInvalidType() {
+ assertThrows(IllegalArgumentException.class,
+ () -> new ScreenshotRequest.Builder(5, 2).build());
+ }
+
+ private Bitmap makeHardwareBitmap(int width, int height) {
+ HardwareBuffer buffer = HardwareBuffer.create(
+ width, height, HardwareBuffer.RGBA_8888, 1, HardwareBuffer.USAGE_GPU_SAMPLED_IMAGE);
+ return Bitmap.wrapHardwareBuffer(buffer, ColorSpace.get(ColorSpace.Named.SRGB));
+ }
+}
diff --git a/data/etc/com.android.systemui.xml b/data/etc/com.android.systemui.xml
index e0e13f59b706588c9611182ec92c7f520454a77d..6dcee6d8bd311cf48a2ae137998fe2a82a96d1af 100644
--- a/data/etc/com.android.systemui.xml
+++ b/data/etc/com.android.systemui.xml
@@ -49,6 +49,7 @@
+
diff --git a/data/etc/privapp-permissions-platform.xml b/data/etc/privapp-permissions-platform.xml
index ff42fb52d8e7346005b3fa2cec7742971372a7ab..5703b6f687eed3c1a13e3c08cf76ed21647f1a07 100644
--- a/data/etc/privapp-permissions-platform.xml
+++ b/data/etc/privapp-permissions-platform.xml
@@ -306,6 +306,7 @@ applications that come with the platform
+
@@ -516,6 +517,12 @@ applications that come with the platform
+
+
+
+
+
+
diff --git a/data/etc/services.core.protolog.json b/data/etc/services.core.protolog.json
index f47d9c6e0c2d65d843d589daa970a40c586e5a1e..334a7275ebe2822b2b8858f434fa6e923a083fb7 100644
--- a/data/etc/services.core.protolog.json
+++ b/data/etc/services.core.protolog.json
@@ -469,6 +469,18 @@
"group": "WM_DEBUG_TASKS",
"at": "com\/android\/server\/wm\/RecentTasks.java"
},
+ "-1643780158": {
+ "message": "Saving original orientation before camera compat, last orientation is %d",
+ "level": "VERBOSE",
+ "group": "WM_DEBUG_ORIENTATION",
+ "at": "com\/android\/server\/wm\/DisplayRotationCompatPolicy.java"
+ },
+ "-1639406696": {
+ "message": "NOSENSOR override detected",
+ "level": "VERBOSE",
+ "group": "WM_DEBUG_ORIENTATION",
+ "at": "com\/android\/server\/wm\/DisplayRotationReversionController.java"
+ },
"-1638958146": {
"message": "Removing activity %s from task=%s adding to task=%s Callers=%s",
"level": "INFO",
@@ -751,6 +763,12 @@
"group": "WM_DEBUG_IME",
"at": "com\/android\/server\/wm\/ImeInsetsSourceProvider.java"
},
+ "-1397175017": {
+ "message": "Other orientation overrides are in place: not reverting",
+ "level": "VERBOSE",
+ "group": "WM_DEBUG_ORIENTATION",
+ "at": "com\/android\/server\/wm\/DisplayRotationReversionController.java"
+ },
"-1394745488": {
"message": "ControlAdapter onAnimationCancelled mSource: %s mControlTarget: %s",
"level": "INFO",
@@ -1051,6 +1069,12 @@
"group": "WM_DEBUG_ORIENTATION",
"at": "com\/android\/server\/wm\/WindowContainer.java"
},
+ "-1104347731": {
+ "message": "Setting requested orientation %s for %s",
+ "level": "VERBOSE",
+ "group": "WM_DEBUG_ORIENTATION",
+ "at": "com\/android\/server\/wm\/ActivityRecord.java"
+ },
"-1103716954": {
"message": "Not removing %s due to exit animation",
"level": "VERBOSE",
@@ -1663,6 +1687,12 @@
"group": "WM_DEBUG_WINDOW_TRANSITIONS",
"at": "com\/android\/server\/wm\/Transition.java"
},
+ "-529187878": {
+ "message": "Reverting orientation after camera compat force rotation",
+ "level": "VERBOSE",
+ "group": "WM_DEBUG_ORIENTATION",
+ "at": "com\/android\/server\/wm\/DisplayRotationCompatPolicy.java"
+ },
"-521613870": {
"message": "App died during pause, not stopping: %s",
"level": "VERBOSE",
@@ -2359,6 +2389,12 @@
"group": "WM_DEBUG_FOCUS_LIGHT",
"at": "com\/android\/server\/wm\/WindowManagerService.java"
},
+ "138097009": {
+ "message": "NOSENSOR override is absent: reverting",
+ "level": "VERBOSE",
+ "group": "WM_DEBUG_ORIENTATION",
+ "at": "com\/android\/server\/wm\/DisplayRotationReversionController.java"
+ },
"140319294": {
"message": "IME target changed within ActivityRecord",
"level": "DEBUG",
@@ -3331,6 +3367,12 @@
"group": "WM_DEBUG_STATES",
"at": "com\/android\/server\/wm\/TaskFragment.java"
},
+ "1015746067": {
+ "message": "Display id=%d is ignoring orientation request for %d, return %d following a per-app override for %s",
+ "level": "VERBOSE",
+ "group": "WM_DEBUG_ORIENTATION",
+ "at": "com\/android\/server\/wm\/DisplayContent.java"
+ },
"1022095595": {
"message": "TaskFragment info changed name=%s",
"level": "VERBOSE",
diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java
index 14dc6a2513a0b73b929c60050e3b405570c1ecd6..6b1cf8b1ed2af1e221305eabf9ac391b5fbfbd1c 100644
--- a/graphics/java/android/graphics/drawable/RippleDrawable.java
+++ b/graphics/java/android/graphics/drawable/RippleDrawable.java
@@ -23,7 +23,6 @@ import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.SOURCE;
import android.animation.ValueAnimator;
-import android.annotation.ColorInt;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -983,9 +982,9 @@ public class RippleDrawable extends LayerDrawable {
RippleShader shader = new RippleShader();
// Grab the color for the current state and cut the alpha channel in
// half so that the ripple and background together yield full alpha.
- final int color = clampAlpha(mMaskColorFilter == null
+ final int color = mMaskColorFilter == null
? mState.mColor.getColorForState(getState(), Color.BLACK)
- : mMaskColorFilter.getColor());
+ : mMaskColorFilter.getColor();
final int effectColor = mState.mEffectColor.getColorForState(getState(), Color.MAGENTA);
final float noisePhase = AnimationUtils.currentAnimationTimeMillis();
shader.setColor(color, effectColor);
@@ -1008,13 +1007,6 @@ public class RippleDrawable extends LayerDrawable {
return properties;
}
- private int clampAlpha(@ColorInt int color) {
- if (Color.alpha(color) < 128) {
- return (color & 0x00FFFFFF) | 0x80000000;
- }
- return color;
- }
-
@Override
public void invalidateSelf() {
invalidateSelf(true);
@@ -1229,7 +1221,7 @@ public class RippleDrawable extends LayerDrawable {
// Grab the color for the current state and cut the alpha channel in
// half so that the ripple and background together yield full alpha.
- final int color = clampAlpha(mState.mColor.getColorForState(getState(), Color.BLACK));
+ final int color = mState.mColor.getColorForState(getState(), Color.BLACK);
final Paint p = mRipplePaint;
if (mMaskColorFilter != null) {
diff --git a/libs/WindowManager/Jetpack/Android.bp b/libs/WindowManager/Jetpack/Android.bp
index dc4b5636a246e1dc936e96b271ea2914b4257752..a5b192cd7ceb730f58a19760ad874065aab29f53 100644
--- a/libs/WindowManager/Jetpack/Android.bp
+++ b/libs/WindowManager/Jetpack/Android.bp
@@ -63,6 +63,12 @@ android_library_import {
sdk_version: "current",
}
+android_library_import {
+ name: "window-extensions-core",
+ aars: ["window-extensions-core-release.aar"],
+ sdk_version: "current",
+}
+
java_library {
name: "androidx.window.extensions",
srcs: [
@@ -70,7 +76,10 @@ java_library {
"src/androidx/window/util/**/*.java",
"src/androidx/window/common/**/*.java",
],
- static_libs: ["window-extensions"],
+ static_libs: [
+ "window-extensions",
+ "window-extensions-core",
+ ],
installable: true,
sdk_version: "core_platform",
system_ext_specific: true,
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/WindowExtensionsImpl.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/WindowExtensionsImpl.java
index 54edd9ec4335871d110c4a87421f9ae5996baae6..666b472c3716fca645382d544306e3ef16714f99 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/WindowExtensionsImpl.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/WindowExtensionsImpl.java
@@ -48,7 +48,7 @@ public class WindowExtensionsImpl implements WindowExtensions {
// TODO(b/241126279) Introduce constants to better version functionality
@Override
public int getVendorApiLevel() {
- return 1;
+ return 2;
}
@NonNull
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/area/WindowAreaComponentImpl.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/area/WindowAreaComponentImpl.java
index 3adae7006369d15a10b012311d3818a16be21d12..9118ee2bf125c6080bc9525a1d1a7d7b59c1ed9a 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/area/WindowAreaComponentImpl.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/area/WindowAreaComponentImpl.java
@@ -25,12 +25,12 @@ import android.hardware.devicestate.DeviceStateRequest;
import android.util.ArraySet;
import androidx.annotation.NonNull;
+import androidx.window.extensions.core.util.function.Consumer;
import com.android.internal.R;
import com.android.internal.annotations.GuardedBy;
import java.util.concurrent.Executor;
-import java.util.function.Consumer;
/**
* Reference implementation of androidx.window.extensions.area OEM interface for use with
@@ -187,6 +187,10 @@ public class WindowAreaComponentImpl implements WindowAreaComponent,
@GuardedBy("mLock")
private int getCurrentStatus() {
+ if (mRearDisplayState == INVALID_DEVICE_STATE) {
+ return WindowAreaComponent.STATUS_UNSUPPORTED;
+ }
+
if (mRearDisplaySessionStatus == WindowAreaComponent.SESSION_STATE_ACTIVE
|| isRearDisplayActive()) {
return WindowAreaComponent.STATUS_UNAVAILABLE;
@@ -252,4 +256,37 @@ public class WindowAreaComponentImpl implements WindowAreaComponent,
}
}
}
+
+ @Override
+ public void addRearDisplayPresentationStatusListener(
+ @NonNull Consumer consumer) {
+ throw new UnsupportedOperationException(
+ "addRearDisplayPresentationStatusListener is not supported in API_VERSION=2");
+ }
+
+ @Override
+ public void removeRearDisplayPresentationStatusListener(
+ @NonNull Consumer consumer) {
+ throw new UnsupportedOperationException(
+ "removeRearDisplayPresentationStatusListener is not supported in API_VERSION=2");
+ }
+
+ @Override
+ public void startRearDisplayPresentationSession(@NonNull Activity activity,
+ @NonNull Consumer<@WindowAreaSessionState Integer> consumer) {
+ throw new UnsupportedOperationException(
+ "startRearDisplayPresentationSession is not supported in API_VERSION=2");
+ }
+
+ @Override
+ public void endRearDisplayPresentationSession() {
+ throw new UnsupportedOperationException(
+ "endRearDisplayPresentationSession is not supported in API_VERSION=2");
+ }
+
+ @Override
+ public ExtensionWindowAreaPresentation getRearDisplayPresentation() {
+ throw new UnsupportedOperationException(
+ "getRearDisplayPresentation is not supported in API_VERSION=2");
+ }
}
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/JetpackTaskFragmentOrganizer.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/JetpackTaskFragmentOrganizer.java
index 87fa63d7fe147039de53794d5fc423daa974bd67..00e13c94ea905557d0a1f364b986cdf30e929a43 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/JetpackTaskFragmentOrganizer.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/JetpackTaskFragmentOrganizer.java
@@ -191,10 +191,25 @@ class JetpackTaskFragmentOrganizer extends TaskFragmentOrganizer {
*/
void createTaskFragment(@NonNull WindowContainerTransaction wct, @NonNull IBinder fragmentToken,
@NonNull IBinder ownerToken, @NonNull Rect bounds, @WindowingMode int windowingMode) {
+ createTaskFragment(wct, fragmentToken, ownerToken, bounds, windowingMode,
+ null /* pairedActivityToken */);
+ }
+
+ /**
+ * @param ownerToken The token of the activity that creates this task fragment. It does not
+ * have to be a child of this task fragment, but must belong to the same task.
+ * @param pairedActivityToken The token of the activity that will be reparented to this task
+ * fragment. When it is not {@code null}, the task fragment will be
+ * positioned right above it.
+ */
+ void createTaskFragment(@NonNull WindowContainerTransaction wct, @NonNull IBinder fragmentToken,
+ @NonNull IBinder ownerToken, @NonNull Rect bounds, @WindowingMode int windowingMode,
+ @Nullable IBinder pairedActivityToken) {
final TaskFragmentCreationParams fragmentOptions = new TaskFragmentCreationParams.Builder(
getOrganizerToken(), fragmentToken, ownerToken)
.setInitialBounds(bounds)
.setWindowingMode(windowingMode)
+ .setPairedActivityToken(pairedActivityToken)
.build();
createTaskFragment(wct, fragmentOptions);
}
@@ -216,8 +231,10 @@ class JetpackTaskFragmentOrganizer extends TaskFragmentOrganizer {
private void createTaskFragmentAndReparentActivity(@NonNull WindowContainerTransaction wct,
@NonNull IBinder fragmentToken, @NonNull IBinder ownerToken, @NonNull Rect bounds,
@WindowingMode int windowingMode, @NonNull Activity activity) {
- createTaskFragment(wct, fragmentToken, ownerToken, bounds, windowingMode);
- wct.reparentActivityToTaskFragment(fragmentToken, activity.getActivityToken());
+ final IBinder reparentActivityToken = activity.getActivityToken();
+ createTaskFragment(wct, fragmentToken, ownerToken, bounds, windowingMode,
+ reparentActivityToken);
+ wct.reparentActivityToTaskFragment(fragmentToken, reparentActivityToken);
}
void setAdjacentTaskFragments(@NonNull WindowContainerTransaction wct,
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java
index 1cd3ea5592e3bd3a554c47b70c4f6e696ba3c9af..569eb801989bc05136b24a25069ca591e379a750 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java
@@ -77,6 +77,9 @@ import androidx.annotation.Nullable;
import androidx.window.common.CommonFoldingFeature;
import androidx.window.common.DeviceStateManagerFoldingFeatureProducer;
import androidx.window.common.EmptyLifecycleCallbacksAdapter;
+import androidx.window.extensions.WindowExtensionsImpl;
+import androidx.window.extensions.core.util.function.Consumer;
+import androidx.window.extensions.core.util.function.Function;
import androidx.window.extensions.embedding.TransactionManager.TransactionRecord;
import androidx.window.extensions.layout.WindowLayoutComponentImpl;
@@ -87,7 +90,6 @@ import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.Executor;
-import java.util.function.Consumer;
/**
* Main controller class that manages split states and presentation.
@@ -113,7 +115,7 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
/**
* A developer-defined {@link SplitAttributes} calculator to compute the current
* {@link SplitAttributes} with the current device and window states.
- * It is registered via {@link #setSplitAttributesCalculator(SplitAttributesCalculator)}
+ * It is registered via {@link #setSplitAttributesCalculator(Function)}
* and unregistered via {@link #clearSplitAttributesCalculator()}.
* This is called when:
*
@@ -126,7 +128,7 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
*/
@GuardedBy("mLock")
@Nullable
- private SplitAttributesCalculator mSplitAttributesCalculator;
+ private Function mSplitAttributesCalculator;
/**
* Map from Task id to {@link TaskContainer} which contains all TaskFragment and split pair info
@@ -139,6 +141,7 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
final SparseArray mTaskContainers = new SparseArray<>();
/** Callback to Jetpack to notify about changes to split states. */
+ @GuardedBy("mLock")
@Nullable
private Consumer> mEmbeddingCallback;
private final List mLastReportedSplitStates = new ArrayList<>();
@@ -164,7 +167,8 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
foldingFeatureProducer.addDataChangedCallback(new FoldingFeatureListener());
}
- private class FoldingFeatureListener implements Consumer> {
+ private class FoldingFeatureListener
+ implements java.util.function.Consumer> {
@Override
public void accept(List foldingFeatures) {
synchronized (mLock) {
@@ -205,7 +209,8 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
}
@Override
- public void setSplitAttributesCalculator(@NonNull SplitAttributesCalculator calculator) {
+ public void setSplitAttributesCalculator(
+ @NonNull Function calculator) {
synchronized (mLock) {
mSplitAttributesCalculator = calculator;
}
@@ -220,7 +225,7 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
@GuardedBy("mLock")
@Nullable
- SplitAttributesCalculator getSplitAttributesCalculator() {
+ Function getSplitAttributesCalculator() {
return mSplitAttributesCalculator;
}
@@ -233,9 +238,22 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
/**
* Registers the split organizer callback to notify about changes to active splits.
+ * @deprecated Use {@link #setSplitInfoCallback(Consumer)} starting with
+ * {@link WindowExtensionsImpl#getVendorApiLevel()} 2.
*/
+ @Deprecated
@Override
- public void setSplitInfoCallback(@NonNull Consumer> callback) {
+ public void setSplitInfoCallback(
+ @NonNull java.util.function.Consumer> callback) {
+ Consumer> oemConsumer = callback::accept;
+ setSplitInfoCallback(oemConsumer);
+ }
+
+ /**
+ * Registers the split organizer callback to notify about changes to active splits.
+ * @since {@link WindowExtensionsImpl#getVendorApiLevel()} 2
+ */
+ public void setSplitInfoCallback(Consumer> callback) {
synchronized (mLock) {
mEmbeddingCallback = callback;
updateCallbackIfNecessary();
@@ -1481,7 +1499,7 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
* Returns the active split that has the provided containers as primary and secondary or as
* secondary and primary, if available.
*/
- @VisibleForTesting
+ @GuardedBy("mLock")
@Nullable
SplitContainer getActiveSplitForContainers(
@NonNull TaskFragmentContainer firstContainer,
@@ -2138,4 +2156,30 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen
return configuration != null
&& configuration.windowConfiguration.getWindowingMode() == WINDOWING_MODE_PINNED;
}
+
+ @Override
+ public ActivityOptions setLaunchingActivityStack(@NonNull ActivityOptions options,
+ @NonNull IBinder token) {
+ throw new UnsupportedOperationException(
+ "setLaunchingActivityStack is not supported in API_VERSION=2");
+ }
+
+ @Override
+ public void finishActivityStacks(@NonNull Set activityStackTokens) {
+ throw new UnsupportedOperationException(
+ "finishActivityStacks is not supported in API_VERSION=2");
+ }
+
+ @Override
+ public void invalidateTopVisibleSplitAttributes() {
+ throw new UnsupportedOperationException(
+ "invalidateTopVisibleSplitAttributes is not supported in API_VERSION=2");
+ }
+
+ @Override
+ public void updateSplitAttributes(@NonNull IBinder splitInfoToken,
+ @NonNull SplitAttributes splitAttributes) {
+ throw new UnsupportedOperationException(
+ "updateSplitAttributes is not supported in API_VERSION=2");
+ }
}
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
index 14d244bbb6cee1300e2659ff4685ce435d3c7193..c23ac75e696f709a2bedf8f1923ccea95e214649 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitPresenter.java
@@ -43,11 +43,11 @@ import android.window.WindowContainerTransaction;
import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.window.extensions.core.util.function.Function;
import androidx.window.extensions.embedding.SplitAttributes.SplitType;
import androidx.window.extensions.embedding.SplitAttributes.SplitType.ExpandContainersSplitType;
import androidx.window.extensions.embedding.SplitAttributes.SplitType.HingeSplitType;
import androidx.window.extensions.embedding.SplitAttributes.SplitType.RatioSplitType;
-import androidx.window.extensions.embedding.SplitAttributesCalculator.SplitAttributesCalculatorParams;
import androidx.window.extensions.embedding.TaskContainer.TaskProperties;
import androidx.window.extensions.layout.DisplayFeature;
import androidx.window.extensions.layout.FoldingFeature;
@@ -268,10 +268,11 @@ class SplitPresenter extends JetpackTaskFragmentOrganizer {
container = mController.newContainer(activity, taskId);
final int windowingMode = mController.getTaskContainer(taskId)
.getWindowingModeForSplitTaskFragment(bounds);
- createTaskFragment(wct, container.getTaskFragmentToken(), activity.getActivityToken(),
- bounds, windowingMode);
+ final IBinder reparentActivityToken = activity.getActivityToken();
+ createTaskFragment(wct, container.getTaskFragmentToken(), reparentActivityToken,
+ bounds, windowingMode, reparentActivityToken);
wct.reparentActivityToTaskFragment(container.getTaskFragmentToken(),
- activity.getActivityToken());
+ reparentActivityToken);
} else {
resizeTaskFragmentIfRegistered(wct, container, bounds);
final int windowingMode = mController.getTaskContainer(taskId)
@@ -551,11 +552,12 @@ class SplitPresenter extends JetpackTaskFragmentOrganizer {
@NonNull SplitRule rule, @Nullable Pair minDimensionsPair) {
final Configuration taskConfiguration = taskProperties.getConfiguration();
final WindowMetrics taskWindowMetrics = getTaskWindowMetrics(taskConfiguration);
- final SplitAttributesCalculator calculator = mController.getSplitAttributesCalculator();
+ final Function calculator =
+ mController.getSplitAttributesCalculator();
final SplitAttributes defaultSplitAttributes = rule.getDefaultSplitAttributes();
- final boolean isDefaultMinSizeSatisfied = rule.checkParentMetrics(taskWindowMetrics);
+ final boolean areDefaultConstraintsSatisfied = rule.checkParentMetrics(taskWindowMetrics);
if (calculator == null) {
- if (!isDefaultMinSizeSatisfied) {
+ if (!areDefaultConstraintsSatisfied) {
return EXPAND_CONTAINERS_ATTRIBUTES;
}
return sanitizeSplitAttributes(taskProperties, defaultSplitAttributes,
@@ -565,9 +567,9 @@ class SplitPresenter extends JetpackTaskFragmentOrganizer {
.getCurrentWindowLayoutInfo(taskProperties.getDisplayId(),
taskConfiguration.windowConfiguration);
final SplitAttributesCalculatorParams params = new SplitAttributesCalculatorParams(
- taskWindowMetrics, taskConfiguration, defaultSplitAttributes,
- isDefaultMinSizeSatisfied, windowLayoutInfo, rule.getTag());
- final SplitAttributes splitAttributes = calculator.computeSplitAttributesForParams(params);
+ taskWindowMetrics, taskConfiguration, windowLayoutInfo, defaultSplitAttributes,
+ areDefaultConstraintsSatisfied, rule.getTag());
+ final SplitAttributes splitAttributes = calculator.apply(params);
return sanitizeSplitAttributes(taskProperties, splitAttributes, minDimensionsPair);
}
@@ -659,21 +661,14 @@ class SplitPresenter extends JetpackTaskFragmentOrganizer {
@NonNull SplitAttributes splitAttributes) {
final Configuration taskConfiguration = taskProperties.getConfiguration();
final FoldingFeature foldingFeature = getFoldingFeature(taskProperties);
- final SplitType splitType = computeSplitType(splitAttributes, taskConfiguration,
- foldingFeature);
- final SplitAttributes computedSplitAttributes = new SplitAttributes.Builder()
- .setSplitType(splitType)
- .setLayoutDirection(splitAttributes.getLayoutDirection())
- .build();
- if (!shouldShowSplit(computedSplitAttributes)) {
+ if (!shouldShowSplit(splitAttributes)) {
return new Rect();
}
switch (position) {
case POSITION_START:
- return getPrimaryBounds(taskConfiguration, computedSplitAttributes, foldingFeature);
+ return getPrimaryBounds(taskConfiguration, splitAttributes, foldingFeature);
case POSITION_END:
- return getSecondaryBounds(taskConfiguration, computedSplitAttributes,
- foldingFeature);
+ return getSecondaryBounds(taskConfiguration, splitAttributes, foldingFeature);
case POSITION_FILL:
default:
return new Rect();
@@ -683,63 +678,76 @@ class SplitPresenter extends JetpackTaskFragmentOrganizer {
@NonNull
private Rect getPrimaryBounds(@NonNull Configuration taskConfiguration,
@NonNull SplitAttributes splitAttributes, @Nullable FoldingFeature foldingFeature) {
- if (!shouldShowSplit(splitAttributes)) {
+ final SplitAttributes computedSplitAttributes = updateSplitAttributesType(splitAttributes,
+ computeSplitType(splitAttributes, taskConfiguration, foldingFeature));
+ if (!shouldShowSplit(computedSplitAttributes)) {
return new Rect();
}
- switch (splitAttributes.getLayoutDirection()) {
+ switch (computedSplitAttributes.getLayoutDirection()) {
case SplitAttributes.LayoutDirection.LEFT_TO_RIGHT: {
- return getLeftContainerBounds(taskConfiguration, splitAttributes, foldingFeature);
+ return getLeftContainerBounds(taskConfiguration, computedSplitAttributes,
+ foldingFeature);
}
case SplitAttributes.LayoutDirection.RIGHT_TO_LEFT: {
- return getRightContainerBounds(taskConfiguration, splitAttributes, foldingFeature);
+ return getRightContainerBounds(taskConfiguration, computedSplitAttributes,
+ foldingFeature);
}
case SplitAttributes.LayoutDirection.LOCALE: {
final boolean isLtr = taskConfiguration.getLayoutDirection()
== View.LAYOUT_DIRECTION_LTR;
return isLtr
- ? getLeftContainerBounds(taskConfiguration, splitAttributes, foldingFeature)
- : getRightContainerBounds(taskConfiguration, splitAttributes,
+ ? getLeftContainerBounds(taskConfiguration, computedSplitAttributes,
+ foldingFeature)
+ : getRightContainerBounds(taskConfiguration, computedSplitAttributes,
foldingFeature);
}
case SplitAttributes.LayoutDirection.TOP_TO_BOTTOM: {
- return getTopContainerBounds(taskConfiguration, splitAttributes, foldingFeature);
+ return getTopContainerBounds(taskConfiguration, computedSplitAttributes,
+ foldingFeature);
}
case SplitAttributes.LayoutDirection.BOTTOM_TO_TOP: {
- return getBottomContainerBounds(taskConfiguration, splitAttributes, foldingFeature);
+ return getBottomContainerBounds(taskConfiguration, computedSplitAttributes,
+ foldingFeature);
}
default:
throw new IllegalArgumentException("Unknown layout direction:"
- + splitAttributes.getLayoutDirection());
+ + computedSplitAttributes.getLayoutDirection());
}
}
@NonNull
private Rect getSecondaryBounds(@NonNull Configuration taskConfiguration,
@NonNull SplitAttributes splitAttributes, @Nullable FoldingFeature foldingFeature) {
- if (!shouldShowSplit(splitAttributes)) {
+ final SplitAttributes computedSplitAttributes = updateSplitAttributesType(splitAttributes,
+ computeSplitType(splitAttributes, taskConfiguration, foldingFeature));
+ if (!shouldShowSplit(computedSplitAttributes)) {
return new Rect();
}
- switch (splitAttributes.getLayoutDirection()) {
+ switch (computedSplitAttributes.getLayoutDirection()) {
case SplitAttributes.LayoutDirection.LEFT_TO_RIGHT: {
- return getRightContainerBounds(taskConfiguration, splitAttributes, foldingFeature);
+ return getRightContainerBounds(taskConfiguration, computedSplitAttributes,
+ foldingFeature);
}
case SplitAttributes.LayoutDirection.RIGHT_TO_LEFT: {
- return getLeftContainerBounds(taskConfiguration, splitAttributes, foldingFeature);
+ return getLeftContainerBounds(taskConfiguration, computedSplitAttributes,
+ foldingFeature);
}
case SplitAttributes.LayoutDirection.LOCALE: {
final boolean isLtr = taskConfiguration.getLayoutDirection()
== View.LAYOUT_DIRECTION_LTR;
return isLtr
- ? getRightContainerBounds(taskConfiguration, splitAttributes,
+ ? getRightContainerBounds(taskConfiguration, computedSplitAttributes,
foldingFeature)
- : getLeftContainerBounds(taskConfiguration, splitAttributes,
+ : getLeftContainerBounds(taskConfiguration, computedSplitAttributes,
foldingFeature);
}
case SplitAttributes.LayoutDirection.TOP_TO_BOTTOM: {
- return getBottomContainerBounds(taskConfiguration, splitAttributes, foldingFeature);
+ return getBottomContainerBounds(taskConfiguration, computedSplitAttributes,
+ foldingFeature);
}
case SplitAttributes.LayoutDirection.BOTTOM_TO_TOP: {
- return getTopContainerBounds(taskConfiguration, splitAttributes, foldingFeature);
+ return getTopContainerBounds(taskConfiguration, computedSplitAttributes,
+ foldingFeature);
}
default:
throw new IllegalArgumentException("Unknown layout direction:"
@@ -747,6 +755,19 @@ class SplitPresenter extends JetpackTaskFragmentOrganizer {
}
}
+ /**
+ * Returns the {@link SplitAttributes} that update the {@link SplitType} to
+ * {@code splitTypeToUpdate}.
+ */
+ private static SplitAttributes updateSplitAttributesType(
+ @NonNull SplitAttributes splitAttributes, @NonNull SplitType splitTypeToUpdate) {
+ return new SplitAttributes.Builder()
+ .setSplitType(splitTypeToUpdate)
+ .setLayoutDirection(splitAttributes.getLayoutDirection())
+ .setAnimationBackgroundColor(splitAttributes.getAnimationBackgroundColor())
+ .build();
+ }
+
@NonNull
private Rect getLeftContainerBounds(@NonNull Configuration taskConfiguration,
@NonNull SplitAttributes splitAttributes, @Nullable FoldingFeature foldingFeature) {
@@ -839,7 +860,8 @@ class SplitPresenter extends JetpackTaskFragmentOrganizer {
}
@Nullable
- private FoldingFeature getFoldingFeature(@NonNull TaskProperties taskProperties) {
+ @VisibleForTesting
+ FoldingFeature getFoldingFeature(@NonNull TaskProperties taskProperties) {
final int displayId = taskProperties.getDisplayId();
final WindowConfiguration windowConfiguration = taskProperties.getConfiguration()
.windowConfiguration;
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentAnimationRunner.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentAnimationRunner.java
index dcc12ac075891f2043f4468b7fe9ca3c1be939dc..b917ac80256c506c628f5cd08fbf3e623ffedc76 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentAnimationRunner.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentAnimationRunner.java
@@ -215,6 +215,8 @@ class TaskFragmentAnimationRunner extends IRemoteAnimationRunner.Stub {
} else {
closingTargets.add(target);
closingWholeScreenBounds.union(target.screenSpaceBounds);
+ // Union the start bounds since this may be the ClosingChanging animation.
+ closingWholeScreenBounds.union(target.startBounds);
}
}
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentContainer.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentContainer.java
index 076856c373d62aac01066ec81f7fcd121413d0ff..17814c65e791ec5402935a9e3658479d589d6e31 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentContainer.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentContainer.java
@@ -141,12 +141,26 @@ class TaskFragmentContainer {
mToken = new Binder("TaskFragmentContainer");
mTaskContainer = taskContainer;
if (pairedPrimaryContainer != null) {
+ // The TaskFragment will be positioned right above the paired container.
if (pairedPrimaryContainer.getTaskContainer() != taskContainer) {
throw new IllegalArgumentException(
"pairedPrimaryContainer must be in the same Task");
}
final int primaryIndex = taskContainer.mContainers.indexOf(pairedPrimaryContainer);
taskContainer.mContainers.add(primaryIndex + 1, this);
+ } else if (pendingAppearedActivity != null) {
+ // The TaskFragment will be positioned right above the pending appeared Activity. If any
+ // existing TaskFragment is empty with pending Intent, it is likely that the Activity of
+ // the pending Intent hasn't been created yet, so the new Activity should be below the
+ // empty TaskFragment.
+ int i = taskContainer.mContainers.size() - 1;
+ for (; i >= 0; i--) {
+ final TaskFragmentContainer container = taskContainer.mContainers.get(i);
+ if (!container.isEmpty() || container.getPendingAppearedIntent() == null) {
+ break;
+ }
+ }
+ taskContainer.mContainers.add(i + 1, this);
} else {
taskContainer.mContainers.add(this);
}
@@ -500,6 +514,8 @@ class TaskFragmentContainer {
}
if (!shouldFinishDependent) {
+ // Always finish the placeholder when the primary is finished.
+ finishPlaceholderIfAny(wct, presenter);
return;
}
@@ -526,6 +542,28 @@ class TaskFragmentContainer {
mActivitiesToFinishOnExit.clear();
}
+ @GuardedBy("mController.mLock")
+ private void finishPlaceholderIfAny(@NonNull WindowContainerTransaction wct,
+ @NonNull SplitPresenter presenter) {
+ final List containersToRemove = new ArrayList<>();
+ for (TaskFragmentContainer container : mContainersToFinishOnExit) {
+ if (container.mIsFinished) {
+ continue;
+ }
+ final SplitContainer splitContainer = mController.getActiveSplitForContainers(
+ this, container);
+ if (splitContainer != null && splitContainer.isPlaceholderContainer()
+ && splitContainer.getSecondaryContainer() == container) {
+ // Remove the placeholder secondary TaskFragment.
+ containersToRemove.add(container);
+ }
+ }
+ mContainersToFinishOnExit.removeAll(containersToRemove);
+ for (TaskFragmentContainer container : containersToRemove) {
+ container.finish(false /* shouldFinishDependent */, presenter, wct, mController);
+ }
+ }
+
boolean isFinished() {
return mIsFinished;
}
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/layout/WindowLayoutComponentImpl.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/layout/WindowLayoutComponentImpl.java
index c9f870005eb95f0e4c6295140db658ceeb8f060e..8386131b177dde0449a4af6e5ffa6119cfe064da 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/layout/WindowLayoutComponentImpl.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/layout/WindowLayoutComponentImpl.java
@@ -45,6 +45,7 @@ import androidx.annotation.UiContext;
import androidx.window.common.CommonFoldingFeature;
import androidx.window.common.DeviceStateManagerFoldingFeatureProducer;
import androidx.window.common.EmptyLifecycleCallbacksAdapter;
+import androidx.window.extensions.core.util.function.Consumer;
import androidx.window.util.DataProducer;
import java.util.ArrayList;
@@ -53,7 +54,6 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
-import java.util.function.Consumer;
/**
* Reference implementation of androidx.window.extensions.layout OEM interface for use with
@@ -82,6 +82,10 @@ public class WindowLayoutComponentImpl implements WindowLayoutComponent {
private final Map mConfigurationChangeListeners =
new ArrayMap<>();
+ @GuardedBy("mLock")
+ private final Map, Consumer>
+ mJavaToExtConsumers = new ArrayMap<>();
+
private final TaskFragmentOrganizer mTaskFragmentOrganizer;
public WindowLayoutComponentImpl(@NonNull Context context,
@@ -95,7 +99,8 @@ public class WindowLayoutComponentImpl implements WindowLayoutComponent {
}
/** Registers to listen to {@link CommonFoldingFeature} changes */
- public void addFoldingStateChangedCallback(Consumer> consumer) {
+ public void addFoldingStateChangedCallback(
+ java.util.function.Consumer> consumer) {
synchronized (mLock) {
mFoldingFeatureProducer.addDataChangedCallback(consumer);
}
@@ -109,13 +114,27 @@ public class WindowLayoutComponentImpl implements WindowLayoutComponent {
*/
@Override
public void addWindowLayoutInfoListener(@NonNull Activity activity,
- @NonNull Consumer consumer) {
- addWindowLayoutInfoListener((Context) activity, consumer);
+ @NonNull java.util.function.Consumer consumer) {
+ final Consumer extConsumer = consumer::accept;
+ synchronized (mLock) {
+ mJavaToExtConsumers.put(consumer, extConsumer);
+ }
+ addWindowLayoutInfoListener(activity, extConsumer);
+ }
+
+ @Override
+ public void addWindowLayoutInfoListener(@NonNull @UiContext Context context,
+ @NonNull java.util.function.Consumer consumer) {
+ final Consumer extConsumer = consumer::accept;
+ synchronized (mLock) {
+ mJavaToExtConsumers.put(consumer, extConsumer);
+ }
+ addWindowLayoutInfoListener(context, extConsumer);
}
/**
- * Similar to {@link #addWindowLayoutInfoListener(Activity, Consumer)}, but takes a UI Context
- * as a parameter.
+ * Similar to {@link #addWindowLayoutInfoListener(Activity, java.util.function.Consumer)}, but
+ * takes a UI Context as a parameter.
*
* Jetpack {@link androidx.window.layout.ExtensionWindowLayoutInfoBackend} makes sure all
* consumers related to the same {@link Context} gets updated {@link WindowLayoutInfo}
@@ -156,6 +175,18 @@ public class WindowLayoutComponentImpl implements WindowLayoutComponent {
}
}
+ @Override
+ public void removeWindowLayoutInfoListener(
+ @NonNull java.util.function.Consumer consumer) {
+ final Consumer extConsumer;
+ synchronized (mLock) {
+ extConsumer = mJavaToExtConsumers.remove(consumer);
+ }
+ if (extConsumer != null) {
+ removeWindowLayoutInfoListener(extConsumer);
+ }
+ }
+
/**
* Removes a listener no longer interested in receiving updates.
*
diff --git a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/EmbeddingTestUtils.java b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/EmbeddingTestUtils.java
index 2f92a577baa216f159d725e8af2b5465a3dc82da..459ec9f89c4a017460478f9e0de0665e480b8f80 100644
--- a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/EmbeddingTestUtils.java
+++ b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/EmbeddingTestUtils.java
@@ -34,9 +34,11 @@ import android.content.res.Resources;
import android.graphics.Point;
import android.graphics.Rect;
import android.util.Pair;
+import android.view.WindowMetrics;
import android.window.TaskFragmentInfo;
import android.window.WindowContainerToken;
+import androidx.window.extensions.core.util.function.Predicate;
import androidx.window.extensions.embedding.SplitAttributes.SplitType;
import androidx.window.extensions.layout.DisplayFeature;
import androidx.window.extensions.layout.FoldingFeature;
@@ -107,7 +109,7 @@ public class EmbeddingTestUtils {
static SplitRule createSplitRule(@NonNull Activity primaryActivity,
@NonNull Intent secondaryIntent, boolean clearTop) {
final Pair targetPair = new Pair<>(primaryActivity, secondaryIntent);
- return new SplitPairRule.Builder(
+ return createSplitPairRuleBuilder(
activityPair -> false,
targetPair::equals,
w -> true)
@@ -144,7 +146,7 @@ public class EmbeddingTestUtils {
@NonNull Activity secondaryActivity, int finishPrimaryWithSecondary,
int finishSecondaryWithPrimary, boolean clearTop) {
final Pair targetPair = new Pair<>(primaryActivity, secondaryActivity);
- return new SplitPairRule.Builder(
+ return createSplitPairRuleBuilder(
targetPair::equals,
activityIntentPair -> false,
w -> true)
@@ -223,4 +225,26 @@ public class EmbeddingTestUtils {
displayFeatures.add(foldingFeature);
return new WindowLayoutInfo(displayFeatures);
}
+
+ static ActivityRule.Builder createActivityBuilder(
+ @NonNull Predicate activityPredicate,
+ @NonNull Predicate intentPredicate) {
+ return new ActivityRule.Builder(activityPredicate, intentPredicate);
+ }
+
+ static SplitPairRule.Builder createSplitPairRuleBuilder(
+ @NonNull Predicate> activitiesPairPredicate,
+ @NonNull Predicate> activityIntentPairPredicate,
+ @NonNull Predicate windowMetricsPredicate) {
+ return new SplitPairRule.Builder(activitiesPairPredicate, activityIntentPairPredicate,
+ windowMetricsPredicate);
+ }
+
+ static SplitPlaceholderRule.Builder createSplitPlaceholderRuleBuilder(
+ @NonNull Intent placeholderIntent, @NonNull Predicate activityPredicate,
+ @NonNull Predicate intentPredicate,
+ @NonNull Predicate windowMetricsPredicate) {
+ return new SplitPlaceholderRule.Builder(placeholderIntent, activityPredicate,
+ intentPredicate, windowMetricsPredicate);
+ }
}
diff --git a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitControllerTest.java b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitControllerTest.java
index 81c39571bffa2b2fa81afea8bf60a6feb6d429e9..0bf0bc85b511171986d91b83164ceaae20d52458 100644
--- a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitControllerTest.java
+++ b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitControllerTest.java
@@ -34,8 +34,11 @@ import static androidx.window.extensions.embedding.EmbeddingTestUtils.SPLIT_ATTR
import static androidx.window.extensions.embedding.EmbeddingTestUtils.TASK_BOUNDS;
import static androidx.window.extensions.embedding.EmbeddingTestUtils.TASK_ID;
import static androidx.window.extensions.embedding.EmbeddingTestUtils.TEST_TAG;
+import static androidx.window.extensions.embedding.EmbeddingTestUtils.createActivityBuilder;
import static androidx.window.extensions.embedding.EmbeddingTestUtils.createActivityInfoWithMinDimensions;
import static androidx.window.extensions.embedding.EmbeddingTestUtils.createMockTaskFragmentInfo;
+import static androidx.window.extensions.embedding.EmbeddingTestUtils.createSplitPairRuleBuilder;
+import static androidx.window.extensions.embedding.EmbeddingTestUtils.createSplitPlaceholderRuleBuilder;
import static androidx.window.extensions.embedding.EmbeddingTestUtils.createSplitRule;
import static androidx.window.extensions.embedding.EmbeddingTestUtils.createTestTaskContainer;
import static androidx.window.extensions.embedding.EmbeddingTestUtils.getSplitBounds;
@@ -432,7 +435,7 @@ public class SplitControllerTest {
@Test
public void testResolveStartActivityIntent_withoutLaunchingActivity() {
final Intent intent = new Intent();
- final ActivityRule expandRule = new ActivityRule.Builder(r -> false, i -> i == intent)
+ final ActivityRule expandRule = createActivityBuilder(r -> false, i -> i == intent)
.setShouldAlwaysExpand(true)
.build();
mSplitController.setEmbeddingRules(Collections.singleton(expandRule));
@@ -1170,7 +1173,7 @@ public class SplitControllerTest {
@Test
public void testHasSamePresentation() {
- SplitPairRule splitRule1 = new SplitPairRule.Builder(
+ SplitPairRule splitRule1 = createSplitPairRuleBuilder(
activityPair -> true,
activityIntentPair -> true,
windowMetrics -> true)
@@ -1178,7 +1181,7 @@ public class SplitControllerTest {
.setFinishPrimaryWithSecondary(DEFAULT_FINISH_PRIMARY_WITH_SECONDARY)
.setDefaultSplitAttributes(SPLIT_ATTRIBUTES)
.build();
- SplitPairRule splitRule2 = new SplitPairRule.Builder(
+ SplitPairRule splitRule2 = createSplitPairRuleBuilder(
activityPair -> true,
activityIntentPair -> true,
windowMetrics -> true)
@@ -1191,7 +1194,7 @@ public class SplitControllerTest {
SplitController.haveSamePresentation(splitRule1, splitRule2,
new WindowMetrics(TASK_BOUNDS, WindowInsets.CONSUMED)));
- splitRule2 = new SplitPairRule.Builder(
+ splitRule2 = createSplitPairRuleBuilder(
activityPair -> true,
activityIntentPair -> true,
windowMetrics -> true)
@@ -1355,7 +1358,7 @@ public class SplitControllerTest {
/** Setups a rule to always expand the given intent. */
private void setupExpandRule(@NonNull Intent expandIntent) {
- final ActivityRule expandRule = new ActivityRule.Builder(r -> false, expandIntent::equals)
+ final ActivityRule expandRule = createActivityBuilder(r -> false, expandIntent::equals)
.setShouldAlwaysExpand(true)
.build();
mSplitController.setEmbeddingRules(Collections.singleton(expandRule));
@@ -1363,7 +1366,7 @@ public class SplitControllerTest {
/** Setups a rule to always expand the given activity. */
private void setupExpandRule(@NonNull Activity expandActivity) {
- final ActivityRule expandRule = new ActivityRule.Builder(expandActivity::equals, i -> false)
+ final ActivityRule expandRule = createActivityBuilder(expandActivity::equals, i -> false)
.setShouldAlwaysExpand(true)
.build();
mSplitController.setEmbeddingRules(Collections.singleton(expandRule));
@@ -1371,7 +1374,7 @@ public class SplitControllerTest {
/** Setups a rule to launch placeholder for the given activity. */
private void setupPlaceholderRule(@NonNull Activity primaryActivity) {
- final SplitRule placeholderRule = new SplitPlaceholderRule.Builder(PLACEHOLDER_INTENT,
+ final SplitRule placeholderRule = createSplitPlaceholderRuleBuilder(PLACEHOLDER_INTENT,
primaryActivity::equals, i -> false, w -> true)
.setDefaultSplitAttributes(SPLIT_ATTRIBUTES)
.build();
diff --git a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitPresenterTest.java b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitPresenterTest.java
index 121e81394b2d761dd651f8454efa75a0d4ff0ea9..d286d23da750cd632a038d8e2c363611513c9ef7 100644
--- a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitPresenterTest.java
+++ b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/SplitPresenterTest.java
@@ -28,6 +28,7 @@ import static androidx.window.extensions.embedding.EmbeddingTestUtils.TASK_BOUND
import static androidx.window.extensions.embedding.EmbeddingTestUtils.TASK_ID;
import static androidx.window.extensions.embedding.EmbeddingTestUtils.createActivityInfoWithMinDimensions;
import static androidx.window.extensions.embedding.EmbeddingTestUtils.createMockTaskFragmentInfo;
+import static androidx.window.extensions.embedding.EmbeddingTestUtils.createSplitPairRuleBuilder;
import static androidx.window.extensions.embedding.EmbeddingTestUtils.createSplitRule;
import static androidx.window.extensions.embedding.EmbeddingTestUtils.createWindowLayoutInfo;
import static androidx.window.extensions.embedding.EmbeddingTestUtils.getSplitBounds;
@@ -76,6 +77,7 @@ import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
import androidx.window.common.DeviceStateManagerFoldingFeatureProducer;
+import androidx.window.extensions.core.util.function.Function;
import androidx.window.extensions.layout.WindowLayoutComponentImpl;
import androidx.window.extensions.layout.WindowLayoutInfo;
@@ -511,7 +513,7 @@ public class SplitPresenterTest {
final Activity secondaryActivity = createMockActivity();
final TaskFragmentContainer bottomTf = mController.newContainer(secondaryActivity, TASK_ID);
final TaskFragmentContainer primaryTf = mController.newContainer(mActivity, TASK_ID);
- final SplitPairRule rule = new SplitPairRule.Builder(pair ->
+ final SplitPairRule rule = createSplitPairRuleBuilder(pair ->
pair.first == mActivity && pair.second == secondaryActivity, pair -> false,
metrics -> true)
.setDefaultSplitAttributes(SPLIT_ATTRIBUTES)
@@ -529,7 +531,7 @@ public class SplitPresenterTest {
@Test
public void testComputeSplitAttributes() {
- final SplitPairRule splitPairRule = new SplitPairRule.Builder(
+ final SplitPairRule splitPairRule = createSplitPairRuleBuilder(
activityPair -> true,
activityIntentPair -> true,
windowMetrics -> windowMetrics.getBounds().equals(TASK_BOUNDS))
@@ -561,15 +563,36 @@ public class SplitPresenterTest {
SplitAttributes.SplitType.RatioSplitType.splitEqually()
)
).build();
+ final Function calculator =
+ params -> splitAttributes;
- mController.setSplitAttributesCalculator(params -> {
- return splitAttributes;
- });
+ mController.setSplitAttributesCalculator(calculator);
assertEquals(splitAttributes, mPresenter.computeSplitAttributes(taskProperties,
splitPairRule, null /* minDimensionsPair */));
}
+ @Test
+ public void testComputeSplitAttributesOnHingeSplitTypeOnDeviceWithoutFoldingFeature() {
+ final SplitAttributes hingeSplitAttrs = new SplitAttributes.Builder()
+ .setSplitType(new SplitAttributes.SplitType.HingeSplitType(
+ SplitAttributes.SplitType.RatioSplitType.splitEqually()))
+ .build();
+ final SplitPairRule splitPairRule = createSplitPairRuleBuilder(
+ activityPair -> true,
+ activityIntentPair -> true,
+ windowMetrics -> windowMetrics.getBounds().equals(TASK_BOUNDS))
+ .setFinishSecondaryWithPrimary(DEFAULT_FINISH_SECONDARY_WITH_PRIMARY)
+ .setFinishPrimaryWithSecondary(DEFAULT_FINISH_PRIMARY_WITH_SECONDARY)
+ .setDefaultSplitAttributes(hingeSplitAttrs)
+ .build();
+ final TaskContainer.TaskProperties taskProperties = getTaskProperty();
+ doReturn(null).when(mPresenter).getFoldingFeature(any());
+
+ assertEquals(hingeSplitAttrs, mPresenter.computeSplitAttributes(taskProperties,
+ splitPairRule, null /* minDimensionsPair */));
+ }
+
private Activity createMockActivity() {
final Activity activity = mock(Activity.class);
final Configuration activityConfig = new Configuration();
diff --git a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/TaskFragmentContainerTest.java b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/TaskFragmentContainerTest.java
index 7d9d8b0f3a06634ee03b2b6f91b17de5399741d4..78b85e642c13310ad02392ecebce0f8b8d355889 100644
--- a/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/TaskFragmentContainerTest.java
+++ b/libs/WindowManager/Jetpack/tests/unittest/src/androidx/window/extensions/embedding/TaskFragmentContainerTest.java
@@ -154,16 +154,51 @@ public class TaskFragmentContainerTest {
null /* pendingAppearedIntent */, taskContainer, mController,
null /* pairedPrimaryContainer */);
doReturn(container1).when(mController).getContainerWithActivity(mActivity);
- final WindowContainerTransaction wct = new WindowContainerTransaction();
// The activity is requested to be reparented, so don't finish it.
- container0.finish(true /* shouldFinishDependent */, mPresenter, wct, mController);
+ container0.finish(true /* shouldFinishDependent */, mPresenter, mTransaction, mController);
verify(mTransaction, never()).finishActivity(any());
- verify(mPresenter).deleteTaskFragment(wct, container0.getTaskFragmentToken());
+ verify(mPresenter).deleteTaskFragment(mTransaction, container0.getTaskFragmentToken());
verify(mController).removeContainer(container0);
}
+ @Test
+ public void testFinish_alwaysFinishPlaceholder() {
+ // Register container1 as a placeholder
+ final TaskContainer taskContainer = createTestTaskContainer();
+ final TaskFragmentContainer container0 = new TaskFragmentContainer(mActivity,
+ null /* pendingAppearedIntent */, taskContainer, mController,
+ null /* pairedPrimaryContainer */);
+ final TaskFragmentInfo info0 = createMockTaskFragmentInfo(container0, mActivity);
+ container0.setInfo(mTransaction, info0);
+ final Activity placeholderActivity = createMockActivity();
+ final TaskFragmentContainer container1 = new TaskFragmentContainer(placeholderActivity,
+ null /* pendingAppearedIntent */, taskContainer, mController,
+ null /* pairedPrimaryContainer */);
+ final TaskFragmentInfo info1 = createMockTaskFragmentInfo(container1, placeholderActivity);
+ container1.setInfo(mTransaction, info1);
+ final SplitAttributes splitAttributes = new SplitAttributes.Builder().build();
+ final SplitPlaceholderRule rule = new SplitPlaceholderRule.Builder(new Intent(),
+ mActivity::equals, (java.util.function.Predicate) i -> false,
+ (java.util.function.Predicate) w -> true)
+ .setDefaultSplitAttributes(splitAttributes)
+ .build();
+ mController.registerSplit(mTransaction, container0, mActivity, container1, rule,
+ splitAttributes);
+
+ // The placeholder TaskFragment should be finished even if the primary is finished with
+ // shouldFinishDependent = false.
+ container0.finish(false /* shouldFinishDependent */, mPresenter, mTransaction, mController);
+
+ assertTrue(container0.isFinished());
+ assertTrue(container1.isFinished());
+ verify(mPresenter).deleteTaskFragment(mTransaction, container0.getTaskFragmentToken());
+ verify(mPresenter).deleteTaskFragment(mTransaction, container1.getTaskFragmentToken());
+ verify(mController).removeContainer(container0);
+ verify(mController).removeContainer(container1);
+ }
+
@Test
public void testSetInfo() {
final TaskContainer taskContainer = createTestTaskContainer();
@@ -493,8 +528,6 @@ public class TaskFragmentContainerTest {
final TaskFragmentContainer tf1 = new TaskFragmentContainer(
null /* pendingAppearedActivity */, new Intent(), taskContainer, mController,
null /* pairedPrimaryTaskFragment */);
- taskContainer.mContainers.add(tf0);
- taskContainer.mContainers.add(tf1);
// When tf2 is created with using tf0 as pairedPrimaryContainer, tf2 should be inserted
// right above tf0.
@@ -505,6 +538,26 @@ public class TaskFragmentContainerTest {
assertEquals(2, taskContainer.indexOf(tf1));
}
+ @Test
+ public void testNewContainerWithPairedPendingAppearedActivity() {
+ final TaskContainer taskContainer = createTestTaskContainer();
+ final TaskFragmentContainer tf0 = new TaskFragmentContainer(
+ createMockActivity(), null /* pendingAppearedIntent */, taskContainer, mController,
+ null /* pairedPrimaryTaskFragment */);
+ final TaskFragmentContainer tf1 = new TaskFragmentContainer(
+ null /* pendingAppearedActivity */, new Intent(), taskContainer, mController,
+ null /* pairedPrimaryTaskFragment */);
+
+ // When tf2 is created with pendingAppearedActivity, tf2 should be inserted below any
+ // TaskFragment without any Activity.
+ final TaskFragmentContainer tf2 = new TaskFragmentContainer(
+ createMockActivity(), null /* pendingAppearedIntent */, taskContainer, mController,
+ null /* pairedPrimaryTaskFragment */);
+ assertEquals(0, taskContainer.indexOf(tf0));
+ assertEquals(1, taskContainer.indexOf(tf2));
+ assertEquals(2, taskContainer.indexOf(tf1));
+ }
+
@Test
public void testIsVisible() {
final TaskContainer taskContainer = createTestTaskContainer();
diff --git a/libs/WindowManager/Jetpack/window-extensions-core-release.aar b/libs/WindowManager/Jetpack/window-extensions-core-release.aar
new file mode 100644
index 0000000000000000000000000000000000000000..96ff840b984beaa757a2472732f7708104e1908a
Binary files /dev/null and b/libs/WindowManager/Jetpack/window-extensions-core-release.aar differ
diff --git a/libs/WindowManager/Jetpack/window-extensions-release.aar b/libs/WindowManager/Jetpack/window-extensions-release.aar
index 84ab4487feeec395ea3e30d21ef6669f6022f676..c3b6916121d057043f2be78037c22abd517101e7 100644
Binary files a/libs/WindowManager/Jetpack/window-extensions-release.aar and b/libs/WindowManager/Jetpack/window-extensions-release.aar differ
diff --git a/libs/WindowManager/Shell/Android.bp b/libs/WindowManager/Shell/Android.bp
index f615ad6e671b246a675a98f3d2238f007a81dcb6..c7c94246b96a01bf7629165244af1d4175007c0d 100644
--- a/libs/WindowManager/Shell/Android.bp
+++ b/libs/WindowManager/Shell/Android.bp
@@ -47,7 +47,9 @@ filegroup {
"src/com/android/wm/shell/sysui/ShellSharedConstants.java",
"src/com/android/wm/shell/common/TransactionPool.java",
"src/com/android/wm/shell/animation/Interpolators.java",
+ "src/com/android/wm/shell/pip/PipContentOverlay.java",
"src/com/android/wm/shell/startingsurface/SplashScreenExitAnimationUtils.java",
+ "src/com/android/wm/shell/draganddrop/DragAndDropConstants.java",
],
path: "src",
}
diff --git a/libs/WindowManager/Shell/res/color-night/taskbar_background.xml b/libs/WindowManager/Shell/res/color-night/taskbar_background.xml
new file mode 100644
index 0000000000000000000000000000000000000000..01df006f1bd294c1c80eb21cbbb6b19bd3cded57
--- /dev/null
+++ b/libs/WindowManager/Shell/res/color-night/taskbar_background.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/color/split_divider_background.xml b/libs/WindowManager/Shell/res/color/letterbox_restart_button_background_ripple.xml
similarity index 83%
rename from libs/WindowManager/Shell/res/color/split_divider_background.xml
rename to libs/WindowManager/Shell/res/color/letterbox_restart_button_background_ripple.xml
index 049980803ee3d771e9f56d56e1f94740582a62c6..a3ca74fac4e6c27c06920b42bc956b7d7ab5ae81 100644
--- a/libs/WindowManager/Shell/res/color/split_divider_background.xml
+++ b/libs/WindowManager/Shell/res/color/letterbox_restart_button_background_ripple.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/color/letterbox_restart_dismiss_button_background_ripple.xml b/libs/WindowManager/Shell/res/color/letterbox_restart_dismiss_button_background_ripple.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a3ca74fac4e6c27c06920b42bc956b7d7ab5ae81
--- /dev/null
+++ b/libs/WindowManager/Shell/res/color/letterbox_restart_dismiss_button_background_ripple.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/color/taskbar_background.xml b/libs/WindowManager/Shell/res/color/taskbar_background.xml
index b3d2602991062b07ad928101f56def4cbdf29598..876ee02a8adfcb2c87854468ca8ddf6302f389fe 100644
--- a/libs/WindowManager/Shell/res/color/taskbar_background.xml
+++ b/libs/WindowManager/Shell/res/color/taskbar_background.xml
@@ -16,5 +16,5 @@
-->
-
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/color/unfold_background.xml b/libs/WindowManager/Shell/res/color/unfold_background.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e33eb126012d5bb985355e41ad6d0f67585aaa53
--- /dev/null
+++ b/libs/WindowManager/Shell/res/color/unfold_background.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/drawable/caption_close_button.xml b/libs/WindowManager/Shell/res/drawable/caption_close_button.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e258564c70f7f4041520ba805e95d8f7ff15c9fd
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/caption_close_button.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
diff --git a/libs/WindowManager/Shell/res/drawable/caption_collapse_menu_button.xml b/libs/WindowManager/Shell/res/drawable/caption_collapse_menu_button.xml
new file mode 100644
index 0000000000000000000000000000000000000000..166552dcb9e831672d46340ac8cd2fb191ac2bf3
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/caption_collapse_menu_button.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
diff --git a/libs/WindowManager/Shell/res/drawable/caption_decor_title.xml b/libs/WindowManager/Shell/res/drawable/caption_decor_title.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6114ad6e277a6fc6292f8fd1f2b456d09ed84279
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/caption_decor_title.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
diff --git a/libs/WindowManager/Shell/res/drawable/caption_screenshot_button.xml b/libs/WindowManager/Shell/res/drawable/caption_screenshot_button.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7c86888f52263d4081700044207988f7a4e7ca69
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/caption_screenshot_button.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
diff --git a/libs/WindowManager/Shell/res/drawable/caption_select_button.xml b/libs/WindowManager/Shell/res/drawable/caption_select_button.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8c60c840717431fdca387b740cc88f3ac5bafe15
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/caption_select_button.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
diff --git a/libs/WindowManager/Shell/res/drawable/decor_handle_dark.xml b/libs/WindowManager/Shell/res/drawable/decor_handle_dark.xml
index c9f262398f683065073996690fd66683705e5810..27e0b184f4275fd765813a562f480dfbee7d00dc 100644
--- a/libs/WindowManager/Shell/res/drawable/decor_handle_dark.xml
+++ b/libs/WindowManager/Shell/res/drawable/decor_handle_dark.xml
@@ -17,9 +17,10 @@
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
- android:viewportHeight="24">
+ android:viewportHeight="24"
+ android:tint="@color/decor_button_dark_color">
+ android:fillColor="@android:color/white" android:pathData="M3,5V3H21V5Z"/>
diff --git a/libs/WindowManager/Shell/res/drawable/decor_minimize_button_dark.xml b/libs/WindowManager/Shell/res/drawable/decor_minimize_button_dark.xml
index 0bcaa530dc8030602771bbd33ab26eb2ee9165be..91edbf1a7bd4d4bca41e55df932979df06e43aa5 100644
--- a/libs/WindowManager/Shell/res/drawable/decor_minimize_button_dark.xml
+++ b/libs/WindowManager/Shell/res/drawable/decor_minimize_button_dark.xml
@@ -14,11 +14,11 @@
~ limitations under the License.
-->
+ android:width="32.0dp"
+ android:height="32.0dp"
+ android:viewportWidth="32.0"
+ android:viewportHeight="32.0"
+ android:tint="@color/decor_button_dark_color">
diff --git a/libs/WindowManager/Shell/res/drawable/desktop_mode_decor_menu_background.xml b/libs/WindowManager/Shell/res/drawable/desktop_mode_decor_menu_background.xml
index 416287d2cbb334ae28d24e08ef4ccc51dcbdd9a8..c6e634c6622c3f6af3dae7996ef272383b062d85 100644
--- a/libs/WindowManager/Shell/res/drawable/desktop_mode_decor_menu_background.xml
+++ b/libs/WindowManager/Shell/res/drawable/desktop_mode_decor_menu_background.xml
@@ -17,5 +17,6 @@
-
+
+
diff --git a/libs/WindowManager/Shell/res/drawable/desktop_mode_decor_title.xml b/libs/WindowManager/Shell/res/drawable/desktop_mode_decor_title.xml
index 416287d2cbb334ae28d24e08ef4ccc51dcbdd9a8..ef300604226186f007edaea62ce869eacba64b02 100644
--- a/libs/WindowManager/Shell/res/drawable/desktop_mode_decor_title.xml
+++ b/libs/WindowManager/Shell/res/drawable/desktop_mode_decor_title.xml
@@ -15,7 +15,8 @@
~ limitations under the License.
-->
-
diff --git a/libs/WindowManager/Shell/res/drawable/letterbox_education_dismiss_button_background_ripple.xml b/libs/WindowManager/Shell/res/drawable/letterbox_education_dismiss_button_background_ripple.xml
index 42572d64b96fde0ebe925a8071f61274096861f8..a2699681e6564dcd75901d1dff3aee513bf6883e 100644
--- a/libs/WindowManager/Shell/res/drawable/letterbox_education_dismiss_button_background_ripple.xml
+++ b/libs/WindowManager/Shell/res/drawable/letterbox_education_dismiss_button_background_ripple.xml
@@ -14,7 +14,30 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/libs/WindowManager/Shell/res/drawable/letterbox_restart_button_background_ripple.xml b/libs/WindowManager/Shell/res/drawable/letterbox_restart_button_background_ripple.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1f125148775dd9350f785339914874986bd1b8ad
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/letterbox_restart_button_background_ripple.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/drawable/letterbox_restart_checkbox_button.xml b/libs/WindowManager/Shell/res/drawable/letterbox_restart_checkbox_button.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c247c6e4c8cfb81b0f134bd2bd9a1b923cfa3c04
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/letterbox_restart_checkbox_button.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/drawable/letterbox_restart_checkbox_checked.xml b/libs/WindowManager/Shell/res/drawable/letterbox_restart_checkbox_checked.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4f97e2c7ea0d1b2d1b64be9631661e0d6aa3ee4a
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/letterbox_restart_checkbox_checked.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/drawable/letterbox_restart_checkbox_unchecked.xml b/libs/WindowManager/Shell/res/drawable/letterbox_restart_checkbox_unchecked.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bb14d1961e818de07a6ccef52bbab7ebae2bbc5a
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/letterbox_restart_checkbox_unchecked.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/drawable/letterbox_education_dismiss_button_background.xml b/libs/WindowManager/Shell/res/drawable/letterbox_restart_dialog_background.xml
similarity index 73%
rename from libs/WindowManager/Shell/res/drawable/letterbox_education_dismiss_button_background.xml
rename to libs/WindowManager/Shell/res/drawable/letterbox_restart_dialog_background.xml
index 0d8811357c058c79c41c673df8ba713e0075994d..e3c18a2db66feb6643d13b5490e607f393faad1f 100644
--- a/libs/WindowManager/Shell/res/drawable/letterbox_education_dismiss_button_background.xml
+++ b/libs/WindowManager/Shell/res/drawable/letterbox_restart_dialog_background.xml
@@ -1,6 +1,6 @@
-
-
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/drawable/letterbox_restart_dismiss_button_background_ripple.xml b/libs/WindowManager/Shell/res/drawable/letterbox_restart_dismiss_button_background_ripple.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3aa0981e45aaaefd8aae7423a39bc59ca2b0032c
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/letterbox_restart_dismiss_button_background_ripple.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/drawable/letterbox_restart_header_ic_arrows.xml b/libs/WindowManager/Shell/res/drawable/letterbox_restart_header_ic_arrows.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5053971a17d3a1cbd786e14d0c0633807cc52070
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/letterbox_restart_header_ic_arrows.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/drawable/letterbox_restart_ic_arrows.xml b/libs/WindowManager/Shell/res/drawable/letterbox_restart_ic_arrows.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b6e0172af1df2a83951ebf9f693bd0b1c95e4ad9
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/letterbox_restart_ic_arrows.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/drawable/reachability_education_ic_left_hand.xml b/libs/WindowManager/Shell/res/drawable/reachability_education_ic_left_hand.xml
new file mode 100644
index 0000000000000000000000000000000000000000..029d83881165644befee5e1e1846565c333e5f70
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/reachability_education_ic_left_hand.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/drawable/reachability_education_ic_right_hand.xml b/libs/WindowManager/Shell/res/drawable/reachability_education_ic_right_hand.xml
new file mode 100644
index 0000000000000000000000000000000000000000..592f899d2ecce881bc1e63b5106ff29dbda852c8
--- /dev/null
+++ b/libs/WindowManager/Shell/res/drawable/reachability_education_ic_right_hand.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/drawable/size_compat_restart_button.xml b/libs/WindowManager/Shell/res/drawable/size_compat_restart_button.xml
index 29945937788bb0a00e0e95e95ea8255d0a3b64e6..b3f8e801bac4efe2d32e1c7d24af6aacaa7cf026 100644
--- a/libs/WindowManager/Shell/res/drawable/size_compat_restart_button.xml
+++ b/libs/WindowManager/Shell/res/drawable/size_compat_restart_button.xml
@@ -25,12 +25,10 @@
android:fillAlpha="0.8"
android:pathData="M0,24 a24,24 0 1,0 48,0 a24,24 0 1,0 -48,0"/>
+ android:translateX="12"
+ android:translateY="12">
+ android:fillColor="@color/compat_controls_text"
+ android:pathData="M3,21V15H5V17.6L8.1,14.5L9.5,15.9L6.4,19H9V21ZM15,21V19H17.6L14.5,15.9L15.9,14.5L19,17.6V15H21V21ZM8.1,9.5 L5,6.4V9H3V3H9V5H6.4L9.5,8.1ZM15.9,9.5 L14.5,8.1 17.6,5H15V3H21V9H19V6.4Z"/>
diff --git a/libs/WindowManager/Shell/res/layout/caption_window_decor.xml b/libs/WindowManager/Shell/res/layout/caption_window_decor.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f3d219872001af05fe93f132ccdb4c3a8e24aeda
--- /dev/null
+++ b/libs/WindowManager/Shell/res/layout/caption_window_decor.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/layout/compat_mode_hint.xml b/libs/WindowManager/Shell/res/layout/compat_mode_hint.xml
index 44b2f45052ba342351d5cb75c304f463a46a0cd1..3d3c00381164470bb16c179009fce94cf748abe7 100644
--- a/libs/WindowManager/Shell/res/layout/compat_mode_hint.xml
+++ b/libs/WindowManager/Shell/res/layout/compat_mode_hint.xml
@@ -29,11 +29,15 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lineSpacingExtra="4sp"
+ android:letterSpacing="0.02"
android:background="@drawable/compat_hint_bubble"
android:padding="16dp"
android:textAlignment="viewStart"
android:textColor="@color/compat_controls_text"
- android:textSize="14sp"/>
+ android:textSize="14sp"
+ android:fontFamily="@*android:string/config_bodyFontFamily"
+ android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Subhead"
+ />
-
+
-
-
-
-
-
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/handle_menu"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:background="@drawable/desktop_mode_decor_menu_background"
+ android:divider="?android:attr/dividerHorizontal"
+ android:showDividers="middle"
+ android:dividerPadding="18dip">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor.xml b/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor.xml
index 2a4cc02f0925bc061fa17cbd858a69ba7d13a994..29cf1512e2e5dd8d612e891ab78b3729a0f5f839 100644
--- a/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor.xml
+++ b/libs/WindowManager/Shell/res/layout/desktop_mode_window_decor.xml
@@ -17,21 +17,20 @@
+ android:background="@drawable/decor_back_button_dark"/>
-
+ style="@style/LetterboxDialog">
@@ -69,6 +67,8 @@
android:text="@string/letterbox_education_dialog_title"
android:textAlignment="center"
android:textColor="@color/compat_controls_text"
+ android:fontFamily="@*android:string/config_bodyFontFamilyMedium"
+ android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Headline"
android:textSize="24sp"/>
-
-
+
diff --git a/libs/WindowManager/Shell/res/layout/letterbox_restart_dialog_layout.xml b/libs/WindowManager/Shell/res/layout/letterbox_restart_dialog_layout.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5aff4159e135a2bc0451332f70073f39a9de6fb2
--- /dev/null
+++ b/libs/WindowManager/Shell/res/layout/letterbox_restart_dialog_layout.xml
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/layout/reachability_ui_layout.xml b/libs/WindowManager/Shell/res/layout/reachability_ui_layout.xml
new file mode 100644
index 0000000000000000000000000000000000000000..49491a7b572c3b9739e08dd89df7668f66754fbb
--- /dev/null
+++ b/libs/WindowManager/Shell/res/layout/reachability_ui_layout.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/libs/WindowManager/Shell/res/values-af/strings.xml b/libs/WindowManager/Shell/res/values-af/strings.xml
index 3d50d2262bb8d08945eba574283ee4a8a2a97076..2476f65c7e5b0422ac573cb4b35a62395d914624 100644
--- a/libs/WindowManager/Shell/res/values-af/strings.xml
+++ b/libs/WindowManager/Shell/res/values-af/strings.xml
@@ -33,7 +33,6 @@
"Laat los""Program sal dalk nie met verdeelde skerm werk nie.""Program steun nie verdeelde skerm nie."
- "Hierdie app kan net in 1 venster oopgemaak word.""Program sal dalk nie op \'n sekondêre skerm werk nie.""Program steun nie begin op sekondêre skerms nie.""Skermverdeler"
@@ -73,23 +72,13 @@
"Borrel""Bestuur""Borrel is toegemaak."
- "Tik om hierdie program te herbegin vir ’n beter aansig."
+ "Tik om hierdie program te herbegin en maak volskerm oop.""Kamerakwessies?\nTik om aan te pas""Nie opgelos nie?\nTik om terug te stel""Geen kamerakwessies nie? Tik om toe te maak."
- "Sien en doen meer"
- "Sleep ’n ander program in vir verdeelde skerm"
- "Dubbeltik buite ’n program om dit te herposisioneer"
+ "Sommige programme werk beter in portret"
+ "Probeer een van hierdie opsies om jou spasie ten beste te benut"
+ "Draai jou toestel om dit volskerm te maak"
+ "Dubbeltik langs ’n program om dit te herposisioneer""Het dit"
- "Vou uit vir meer inligting."
- "Maksimeer"
- "Maak klein"
- "Maak toe"
- "Terug"
- "Handvatsel"
- "Volskerm"
- "Rekenaarmodus"
- "Verdeelde skerm"
- "Meer"
- "Sweef"
diff --git a/libs/WindowManager/Shell/res/values-af/strings_tv.xml b/libs/WindowManager/Shell/res/values-af/strings_tv.xml
index 6187ea46769cb33936c3a38dc7f2b96d81ee96f6..c87bec093cca80acedd40fdca70507fc3c08ee7f 100644
--- a/libs/WindowManager/Shell/res/values-af/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-af/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Beeld-in-beeld""(Titellose program)"
- "Maak toe"
+ "Maak PIP toe""Volskerm"
- "Skuif"
- "Vou uit"
- "Vou in"
+ "Skuif PIP"
+ "Vou PIP uit"
+ "Vou PIP in"" Dubbeldruk "" TUIS "" vir kontroles"
- "Prent-in-prent-kieslys"
- "Skuif links"
- "Skuif regs"
- "Skuif op"
- "Skuif af"
- "Klaar"
diff --git a/libs/WindowManager/Shell/res/values-am/strings.xml b/libs/WindowManager/Shell/res/values-am/strings.xml
index 70304aa9f562ca8b27a5ae4386579c3d65d0960f..f0c391cd6b99ca46cad78b4feda37cfc71ff2877 100644
--- a/libs/WindowManager/Shell/res/values-am/strings.xml
+++ b/libs/WindowManager/Shell/res/values-am/strings.xml
@@ -22,7 +22,7 @@
"ቅንብሮች""የተከፈለ ማያ ገጽን አስገባ""ምናሌ"
- "%s በሥዕል-ላይ-ሥዕል ውስጥ ነው"
+ "%s በስዕል-ላይ-ስዕል ውስጥ ነው""%s ይህን ባህሪ እንዲጠቀም ካልፈለጉ ቅንብሮችን ለመክፈት መታ ያድርጉና ያጥፉት።""አጫውት""ባለበት አቁም"
@@ -33,7 +33,6 @@
"Unstash""መተግበሪያ ከተከፈለ ማያ ገጽ ጋር ላይሠራ ይችላል""መተግበሪያው የተከፈለ ማያ ገጽን አይደግፍም።"
- "ይህ መተግበሪያ መከፈት የሚችለው በ1 መስኮት ብቻ ነው።""መተግበሪያ በሁለተኛ ማሳያ ላይ ላይሠራ ይችላል።""መተግበሪያ በሁለተኛ ማሳያዎች ላይ ማስጀመርን አይደግፍም።""የተከፈለ የማያ ገጽ ከፋይ"
@@ -73,23 +72,13 @@
"አረፋ""ያቀናብሩ""አረፋ ተሰናብቷል።"
- "ለተሻለ ዕይታ ይህን መተግበሪያ ዳግም ለማስነሳት መታ ያድርጉ።"
+ "ይህን መተግበሪያ ዳግም ለማስነሳት መታ ያድርጉ እና ወደ ሙሉ ማያ ገጽ ይሂዱ።""የካሜራ ችግሮች አሉ?\nዳግም ለማበጀት መታ ያድርጉ""አልተስተካከለም?\nለማህደር መታ ያድርጉ""ምንም የካሜራ ችግሮች የሉም? ለማሰናበት መታ ያድርጉ።"
- "ተጨማሪ ይመልከቱ እና ያድርጉ"
- "ለተከፈለ ማያ ገጽ ሌላ መተግበሪያ ይጎትቱ"
- "ቦታውን ለመቀየር ከመተግበሪያው ውጪ ሁለቴ መታ ያድርጉ"
+ "አንዳንድ መተግበሪያዎች በቁም ፎቶ ውስጥ በተሻለ ሁኔታ ይሰራሉ"
+ "ቦታዎን በአግባቡ ለመጠቀም ከእነዚህ አማራጮች ውስጥ አንዱን ይሞክሩ"
+ "ወደ የሙሉ ገጽ ዕይታ ለመሄድ መሣሪያዎን ያሽከርክሩት"
+ "ቦታውን ለመቀየር ከመተግበሪያው ቀጥሎ ላይ ሁለቴ መታ ያድርጉ""ገባኝ"
- "ለተጨማሪ መረጃ ይዘርጉ።"
- "አስፋ"
- "አሳንስ"
- "ዝጋ"
- "ተመለስ"
- "መያዣ"
- "ሙሉ ማያ"
- "የዴስክቶፕ ሁነታ"
- "የተከፈለ ማያ ገጽ"
- "ተጨማሪ"
- "ተንሳፋፊ"
diff --git a/libs/WindowManager/Shell/res/values-am/strings_tv.xml b/libs/WindowManager/Shell/res/values-am/strings_tv.xml
index 68ab15cb9e2bfe568f3cbc38771abee6cf7c85c6..d23353858de6d41f7b01f7f907681f587c757457 100644
--- a/libs/WindowManager/Shell/res/values-am/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-am/strings_tv.xml
@@ -17,18 +17,12 @@
- "ሥዕል-ላይ-ሥዕል"
+ "ስዕል-ላይ-ስዕል""(ርዕስ የሌለው ፕሮግራም)"
- "ዝጋ"
+ "PIPን ዝጋ""ሙሉ ማያ ገጽ"
- "ውሰድ"
- "ዘርጋ"
- "ሰብስብ"
+ "ፒአይፒ ውሰድ"
+ "ፒአይፒን ዘርጋ"
+ "ፒአይፒን ሰብስብ"" ለመቆጣጠሪያዎች ""መነሻ""ን ሁለቴ ይጫኑ"
- "የሥዕል-ላይ-ሥዕል ምናሌ።"
- "ወደ ግራ ውሰድ"
- "ወደ ቀኝ ውሰድ"
- "ወደ ላይ ውሰድ"
- "ወደ ታች ውሰድ"
- "ተጠናቅቋል"
diff --git a/libs/WindowManager/Shell/res/values-ar/strings.xml b/libs/WindowManager/Shell/res/values-ar/strings.xml
index 0f74aab789241004c9224674fc7eff2ca6c25953..aa4b3b7041107684193a1d3c514af0f828ad5728 100644
--- a/libs/WindowManager/Shell/res/values-ar/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ar/strings.xml
@@ -33,7 +33,6 @@
"إظهار""قد لا يعمل التطبيق بشكل سليم في وضع \"تقسيم الشاشة\".""التطبيق لا يتيح تقسيم الشاشة."
- "لا يمكن فتح هذا التطبيق إلا في نافذة واحدة.""قد لا يعمل التطبيق على شاشة عرض ثانوية.""لا يمكن تشغيل التطبيق على شاشات عرض ثانوية.""أداة تقسيم الشاشة"
@@ -73,23 +72,13 @@
"فقاعة""إدارة""تم إغلاق الفقاعة."
- "انقر لإعادة تشغيل هذا التطبيق للحصول على عرض أفضل."
+ "انقر لإعادة تشغيل هذا التطبيق والانتقال إلى وضع ملء الشاشة.""هل هناك مشاكل في الكاميرا؟\nانقر لإعادة الضبط.""ألم يتم حل المشكلة؟\nانقر للعودة""أليس هناك مشاكل في الكاميرا؟ انقر للإغلاق."
- "استخدام تطبيقات متعدّدة في وقت واحد"
- "اسحب تطبيقًا آخر لاستخدام وضع تقسيم الشاشة."
- "انقر مرّتين خارج تطبيق لتغيير موضعه."
+ "تعمل بعض التطبيقات على أكمل وجه في الشاشات العمودية"
+ "جرِّب تنفيذ أحد هذه الخيارات للاستفادة من مساحتك إلى أقصى حد."
+ "قم بتدوير الشاشة للانتقال إلى وضع ملء الشاشة."
+ "انقر مرتين بجانب التطبيق لتغيير موضعه.""حسنًا"
- "التوسيع للحصول على مزيد من المعلومات"
- "تكبير"
- "تصغير"
- "إغلاق"
- "رجوع"
- "مقبض"
- "ملء الشاشة"
- "وضع سطح المكتب"
- "تقسيم الشاشة"
- "المزيد"
- "نافذة عائمة"
diff --git a/libs/WindowManager/Shell/res/values-ar/strings_tv.xml b/libs/WindowManager/Shell/res/values-ar/strings_tv.xml
index 9c195a7386a9916e9e7c5010082cc8a62efc6f1c..a1ceda5fc987529f38137f3c3079a5b4857f89db 100644
--- a/libs/WindowManager/Shell/res/values-ar/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-ar/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"نافذة ضمن النافذة""(ليس هناك عنوان للبرنامج)"
- "إغلاق"
+ "إغلاق PIP""ملء الشاشة"
- "نقل"
- "توسيع"
- "تصغير"
+ "نقل نافذة داخل النافذة (PIP)"
+ "توسيع نافذة داخل النافذة (PIP)"
+ "تصغير نافذة داخل النافذة (PIP)"" انقر مرتين على "" الصفحة الرئيسية "" للوصول لعناصر التحكم."
- "قائمة نافذة ضمن النافذة"
- "نقل لليسار"
- "نقل لليمين"
- "نقل للأعلى"
- "نقل للأسفل"
- "تمّ"
diff --git a/libs/WindowManager/Shell/res/values-as/strings.xml b/libs/WindowManager/Shell/res/values-as/strings.xml
index a0213f42b1253dab8c2e872c3b956fb4c0053fbd..985d3b9b96fdd3c0d9c6a31e8c8fdd8f8afbf666 100644
--- a/libs/WindowManager/Shell/res/values-as/strings.xml
+++ b/libs/WindowManager/Shell/res/values-as/strings.xml
@@ -33,19 +33,18 @@
"দেখুৱাওক""এপ্টোৱে বিভাজিত স্ক্ৰীনৰ সৈতে কাম নকৰিব পাৰে।""এপ্টোৱে বিভাজিত স্ক্ৰীন সমৰ্থন নকৰে।"
- "এই এপ্টো কেৱল ১ খন ৱিণ্ড’ত খুলিব পাৰি।""গৌণ ডিছপ্লেত এপে সঠিকভাৱে কাম নকৰিব পাৰে।""গৌণ ডিছপ্লেত এপ্ লঞ্চ কৰিব নোৱাৰি।""স্প্লিট স্ক্ৰীনৰ বিভাজক""বাওঁফালৰ স্ক্ৰীনখন সম্পূৰ্ণ স্ক্ৰীন কৰক"
- "বাওঁফালৰ স্ক্ৰীনখন ৭০% কৰক"
- "বাওঁফালৰ স্ক্ৰীনখন ৫০% কৰক"
- "বাওঁফালৰ স্ক্ৰীনখন ৩০% কৰক"
+ "বাওঁফালৰ স্ক্ৰীণখন ৭০% কৰক"
+ "বাওঁফালৰ স্ক্ৰীণখন ৫০% কৰক"
+ "বাওঁফালৰ স্ক্ৰীণখন ৩০% কৰক""সোঁফালৰ স্ক্ৰীনখন সম্পূৰ্ণ স্ক্ৰীন কৰক""শীৰ্ষ স্ক্ৰীনখন সম্পূৰ্ণ স্ক্ৰীন কৰক"
- "শীর্ষ স্ক্ৰীনখন ৭০% কৰক"
- "শীর্ষ স্ক্ৰীনখন ৫০% কৰক"
- "শীর্ষ স্ক্ৰীনখন ৩০% কৰক"
+ "শীর্ষ স্ক্ৰীণখন ৭০% কৰক"
+ "শীর্ষ স্ক্ৰীণখন ৫০% কৰক"
+ "শীর্ষ স্ক্ৰীণখন ৩০% কৰক""তলৰ স্ক্ৰীনখন সম্পূৰ্ণ স্ক্ৰীন কৰক""এখন হাতেৰে ব্যৱহাৰ কৰা ম’ড ব্যৱহাৰ কৰা""বাহিৰ হ’বলৈ স্ক্ৰীনখনৰ একেবাৰে তলৰ পৰা ওপৰলৈ ছোৱাইপ কৰক অথবা এপ্টোৰ ওপৰত যিকোনো ঠাইত টিপক"
@@ -73,23 +72,13 @@
"বাবল""পৰিচালনা কৰক""বাবল অগ্ৰাহ্য কৰা হৈছে"
- "উন্নত ভিউৰ বাবে এপ্টো ৰিষ্টাৰ্ট কৰিবলৈ টিপক।"
+ "এপ্টো ৰিষ্টাৰ্ট কৰিবলৈ আৰু পূৰ্ণ স্ক্ৰীন ব্যৱহাৰ কৰিবলৈ টিপক।""কেমেৰাৰ কোনো সমস্যা হৈছে নেকি?\nপুনৰ খাপ খোৱাবলৈ টিপক""এইটো সমাধান কৰা নাই নেকি?\nপূৰ্বাৱস্থালৈ নিবলৈ টিপক""কেমেৰাৰ কোনো সমস্যা নাই নেকি? অগ্ৰাহ্য কৰিবলৈ টিপক।"
- "চাওক আৰু অধিক কৰক"
- "বিভাজিত স্ক্ৰীনৰ বাবে অন্য এটা এপ্ টানি আনি এৰক"
- "এপ্টোৰ স্থান সলনি কৰিবলৈ ইয়াৰ বাহিৰত দুবাৰ টিপক"
+ "কিছুমান এপে প’ৰ্ট্ৰেইট ম’ডত বেছি ভালকৈ কাম কৰে"
+ "আপোনাৰ spaceৰ পৰা পাৰ্যমানে উপকৃত হ’বলৈ ইয়াৰে এটা বিকল্প চেষ্টা কৰি চাওক"
+ "পূৰ্ণ স্ক্ৰীনলৈ যাবলৈ আপোনাৰ ডিভাইচটো ঘূৰাওক"
+ "এপ্টোৰ স্থান সলনি কৰিবলৈ ইয়াৰ কাষত দুবাৰ টিপক""বুজি পালোঁ"
- "অধিক তথ্যৰ বাবে বিস্তাৰ কৰক।"
- "সৰ্বাধিক মাত্ৰালৈ বঢ়াওক"
- "মিনিমাইজ কৰক"
- "বন্ধ কৰক"
- "উভতি যাওক"
- "হেণ্ডেল"
- "সম্পূৰ্ণ স্ক্ৰীন"
- "ডেস্কটপ ম’ড"
- "বিভাজিত স্ক্ৰীন"
- "অধিক"
- "ওপঙা"
diff --git a/libs/WindowManager/Shell/res/values-as/strings_tv.xml b/libs/WindowManager/Shell/res/values-as/strings_tv.xml
index 816b5b1c79dc475dbab4cea7fe22027cbb789318..8d7bd9f6a27e44ff35218c6bab393a6e58ae824e 100644
--- a/libs/WindowManager/Shell/res/values-as/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-as/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"চিত্ৰৰ ভিতৰত চিত্ৰ""(শিৰোনামবিহীন কাৰ্যক্ৰম)"
- "বন্ধ কৰক"
+ "পিপ বন্ধ কৰক""সম্পূৰ্ণ স্ক্ৰীন"
- "স্থানান্তৰ কৰক"
- "বিস্তাৰ কৰক"
- "সংকোচন কৰক"
+ "পিপ স্থানান্তৰ কৰক"
+ "পিপ বিস্তাৰ কৰক"
+ "পিপ সংকোচন কৰক"" নিয়ন্ত্ৰণৰ বাবে "" গৃহপৃষ্ঠা "" বুটামত দুবাৰ হেঁচক"
- "চিত্ৰৰ ভিতৰৰ চিত্ৰ মেনু।"
- "বাওঁফাললৈ নিয়ক"
- "সোঁফাললৈ নিয়ক"
- "ওপৰলৈ নিয়ক"
- "তললৈ নিয়ক"
- "হ’ল"
diff --git a/libs/WindowManager/Shell/res/values-az/strings.xml b/libs/WindowManager/Shell/res/values-az/strings.xml
index f842bfe13efc8ee31b30cf30c6a40f19c7caad61..8cd9b7a635ab39f52cf8add440f474e5a789b2db 100644
--- a/libs/WindowManager/Shell/res/values-az/strings.xml
+++ b/libs/WindowManager/Shell/res/values-az/strings.xml
@@ -33,7 +33,6 @@
"Güvənli məkandan çıxarın""Tətbiq bölünmüş ekran ilə işləməyə bilər.""Tətbiq ekran bölünməsini dəstəkləmir."
- "Bu tətbiq yalnız 1 pəncərədə açıla bilər.""Tətbiq ikinci ekranda işləməyə bilər.""Tətbiq ikinci ekranda başlamağı dəstəkləmir.""Bölünmüş ekran ayırıcısı"
@@ -73,23 +72,13 @@
"Qabarcıq""İdarə edin""Qabarcıqdan imtina edilib."
- "Toxunaraq bu tətbiqi yenidən başladın ki, daha görüntü əldə edəsiniz."
+ "Bu tətbiqi sıfırlayaraq tam ekrana keçmək üçün toxunun.""Kamera problemi var?\nBərpa etmək üçün toxunun""Düzəltməmisiniz?\nGeri qaytarmaq üçün toxunun""Kamera problemi yoxdur? Qapatmaq üçün toxunun."
- "Ardını görün və edin"
- "Bölünmüş ekrandan istifadə etmək üçün başqa tətbiqi sürüşdürüb gətirin"
- "Tətbiqin yerini dəyişmək üçün kənarına iki dəfə toxunun"
+ "Bəzi tətbiqlər portret rejimində daha yaxşı işləyir"
+ "Məkanınızdan maksimum yararlanmaq üçün bu seçimlərdən birini sınayın"
+ "Tam ekrana keçmək üçün cihazınızı fırladın"
+ "Tətbiqin yerini dəyişmək üçün yanına iki dəfə toxunun""Anladım"
- "Ətraflı məlumat üçün genişləndirin."
- "Böyüdün"
- "Kiçildin"
- "Bağlayın"
- "Geriyə"
- "Hər kəsə açıq istifadəçi adı"
- "Tam Ekran"
- "Masaüstü Rejimi"
- "Bölünmüş Ekran"
- "Ardı"
- "Üzən pəncərə"
diff --git a/libs/WindowManager/Shell/res/values-az/strings_tv.xml b/libs/WindowManager/Shell/res/values-az/strings_tv.xml
index ccb7a7069ad8c9967dcfc28c68ce153fc52410f8..87c46fa41a0139da866c642f7beb1ac006ecfff9 100644
--- a/libs/WindowManager/Shell/res/values-az/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-az/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Şəkil-içində-Şəkil""(Başlıqsız proqram)"
- "Bağlayın"
+ "PIP bağlayın""Tam ekran"
- "Köçürün"
- "Genişləndirin"
- "Yığcamlaşdırın"
+ "PIP tətbiq edin"
+ "PIP-ni genişləndirin"
+ "PIP-ni yığcamlaşdırın"" Nizamlayıcılar üçün "" ƏSAS SƏHİFƏ "" süçimini iki dəfə basın"
- "Şəkildə şəkil menyusu."
- "Sola köçürün"
- "Sağa köçürün"
- "Yuxarı köçürün"
- "Aşağı köçürün"
- "Hazırdır"
diff --git a/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml b/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml
index 540ae7ce69539a78f6e523191840ad0d67ce689d..49524c6085431e4233cf7a0a844c0bdc8a95b91b 100644
--- a/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-b+sr+Latn/strings.xml
@@ -33,7 +33,6 @@
"Uklonite iz tajne memorije""Aplikacija možda neće raditi sa podeljenim ekranom.""Aplikacija ne podržava podeljeni ekran."
- "Ova aplikacija može da se otvori samo u jednom prozoru.""Aplikacija možda neće funkcionisati na sekundarnom ekranu.""Aplikacija ne podržava pokretanje na sekundarnim ekranima.""Razdelnik podeljenog ekrana"
@@ -73,23 +72,13 @@
"Oblačić""Upravljajte""Oblačić je odbačen."
- "Dodirnite da biste restartovali ovu aplikaciju radi boljeg prikaza."
+ "Dodirnite da biste restartovali aplikaciju i prešli u režim celog ekrana.""Imate problema sa kamerom?\nDodirnite da biste ponovo uklopili""Problem nije rešen?\nDodirnite da biste vratili""Nemate problema sa kamerom? Dodirnite da biste odbacili."
- "Vidite i uradite više"
- "Prevucite drugu aplikaciju da biste koristili podeljeni ekran"
- "Dvaput dodirnite izvan aplikacije da biste promenili njenu poziciju"
+ "Neke aplikacije najbolje funkcionišu u uspravnom režimu"
+ "Isprobajte jednu od ovih opcija da biste na najbolji način iskoristili prostor"
+ "Rotirajte uređaj za prikaz preko celog ekrana"
+ "Dvaput dodirnite pored aplikacije da biste promenili njenu poziciju""Važi"
- "Proširite za još informacija."
- "Uvećajte"
- "Umanjite"
- "Zatvorite"
- "Nazad"
- "Identifikator"
- "Preko celog ekrana"
- "Režim za računare"
- "Podeljeni ekran"
- "Još"
- "Plutajuće"
diff --git a/libs/WindowManager/Shell/res/values-b+sr+Latn/strings_tv.xml b/libs/WindowManager/Shell/res/values-b+sr+Latn/strings_tv.xml
index 51a1262b1de77acb588f52861c78fc860668b470..c87f30611a0792d521c7fdb24d018690edc2d2c1 100644
--- a/libs/WindowManager/Shell/res/values-b+sr+Latn/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-b+sr+Latn/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Slika u slici""(Program bez naslova)"
- "Zatvori"
+ "Zatvori PIP""Ceo ekran"
- "Premesti"
- "Proširi"
- "Skupi"
+ "Premesti sliku u slici"
+ "Proširi sliku u slici"
+ "Skupi sliku u slici"" Dvaput pritisnite "" HOME "" za kontrole"
- "Meni Slika u slici."
- "Pomerite nalevo"
- "Pomerite nadesno"
- "Pomerite nagore"
- "Pomerite nadole"
- "Gotovo"
diff --git a/libs/WindowManager/Shell/res/values-be/strings.xml b/libs/WindowManager/Shell/res/values-be/strings.xml
index bea753837b7b44bf458a09d8227863aaeb62f801..1767e0d662412d2733f981112cec7b7921b729a6 100644
--- a/libs/WindowManager/Shell/res/values-be/strings.xml
+++ b/libs/WindowManager/Shell/res/values-be/strings.xml
@@ -33,7 +33,6 @@
"Паказаць""Праграма можа не працаваць у рэжыме падзеленага экрана.""Праграма не падтрымлівае функцыю дзялення экрана."
- "Гэту праграму можна адкрыць толькі ў адным акне.""Праграма можа не працаваць на дадатковых экранах.""Праграма не падтрымлівае запуск на дадатковых экранах.""Раздзяляльнік падзеленага экрана"
@@ -73,23 +72,13 @@
"Усплывальнае апавяшчэнне""Кіраваць""Усплывальнае апавяшчэнне адхілена."
- "Націсніце, каб перазапусціць гэту праграму для лепшага прагляду."
+ "Націсніце, каб перазапусціць гэту праграму і перайсці ў поўнаэкранны рэжым.""Праблемы з камерай?\nНацісніце, каб пераабсталяваць""Не ўдалося выправіць?\nНацісніце, каб аднавіць""Ніякіх праблем з камерай? Націсніце, каб адхіліць."
- "Адначасова выконвайце розныя задачы"
- "Перацягніце іншую праграму, каб выкарыстоўваць падзелены экран"
- "Двойчы націсніце экран па-за праграмай, каб перамясціць яе"
+ "Некаторыя праграмы лепш за ўсё працуюць у кніжнай арыентацыі"
+ "Каб эфектыўна выкарыстоўваць прастору, паспрабуйце адзін з гэтых варыянтаў"
+ "Каб перайсці ў поўнаэкранны рэжым, павярніце прыладу"
+ "Двойчы націсніце побач з праграмай, каб перамясціць яе""Зразумела"
- "Разгарнуць для дадатковай інфармацыі"
- "Разгарнуць"
- "Згарнуць"
- "Закрыць"
- "Назад"
- "Маркер"
- "На ўвесь экран"
- "Рэжым працоўнага стала"
- "Падзяліць экран"
- "Яшчэ"
- "Зрабіць рухомым акном"
diff --git a/libs/WindowManager/Shell/res/values-be/strings_tv.xml b/libs/WindowManager/Shell/res/values-be/strings_tv.xml
index 15a353c649d66de5cf25c8bf40002f81a14b9f11..3566bc3728207ef659a147aeae63df7d201339e0 100644
--- a/libs/WindowManager/Shell/res/values-be/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-be/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Відарыс у відарысе""(Праграма без назвы)"
- "Закрыць"
+ "Закрыць PIP""Поўнаэкранны рэжым"
- "Перамясціць"
- "Разгарнуць"
- "Згарнуць"
+ "Перамясціць PIP"
+ "Разгарнуць відарыс у відарысе"
+ "Згарнуць відарыс у відарысе"" Двойчы націсніце "" ГАЛОЎНЫ ЭКРАН "" для пераходу ў налады"
- "Меню рэжыму \"Відарыс у відарысе\"."
- "Перамясціць улева"
- "Перамясціць управа"
- "Перамясціць уверх"
- "Перамясціць уніз"
- "Гатова"
diff --git a/libs/WindowManager/Shell/res/values-bg/strings.xml b/libs/WindowManager/Shell/res/values-bg/strings.xml
index 59915e6b2a6e87984793caf7f742e2584c86acb4..c22fb86a4d4d395453c62201cd13795fa45ea554 100644
--- a/libs/WindowManager/Shell/res/values-bg/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bg/strings.xml
@@ -33,7 +33,6 @@
"Отмяна на съхраняването""Приложението може да не работи в режим на разделен екран.""Приложението не поддържа разделен екран."
- "Това приложение може да се отвори само в 1 прозорец.""Възможно е приложението да не работи на алтернативни дисплеи.""Приложението не поддържа използването на алтернативни дисплеи.""Разделител в режима за разделен екран"
@@ -73,23 +72,13 @@
"Балонче""Управление""Балончето е отхвърлено."
- "Докоснете, за да рестартирате това приложение с цел по-добър изглед."
+ "Докоснете, за да рестартирате това приложение в режим на цял екран.""Имате проблеми с камерата?\nДокоснете за ремонтиране""Проблемът не се отстрани?\nДокоснете за връщане в предишното състояние""Нямате проблеми с камерата? Докоснете, за да отхвърлите."
- "Преглеждайте и правете повече неща"
- "Преместете друго приложение с плъзгане, за да преминете в режим за разделен екран"
- "Докоснете два пъти извън дадено приложение, за да промените позицията му"
+ "Някои приложения работят най-добре във вертикален режим"
+ "Изпробвайте една от следните опции, за да се възползвате максимално от мястото на екрана"
+ "Завъртете екрана си, за да преминете в режим на цял екран"
+ "Докоснете два пъти дадено приложение, за да промените позицията му""Разбрах"
- "Разгъване за още информация."
- "Увеличаване"
- "Намаляване"
- "Затваряне"
- "Назад"
- "Манипулатор"
- "Цял екран"
- "Режим за настолни компютри"
- "Разделяне на екрана"
- "Още"
- "Плаващо"
diff --git a/libs/WindowManager/Shell/res/values-bg/strings_tv.xml b/libs/WindowManager/Shell/res/values-bg/strings_tv.xml
index 2b27a6927077011abfbf2360aad8450c4cd36e21..91049fd2cf021f6416ec77ba50911d64578b9988 100644
--- a/libs/WindowManager/Shell/res/values-bg/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-bg/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Картина в картината""(Програма без заглавие)"
- "Затваряне"
+ "Затваряне на PIP""Цял екран"
- "Преместване"
- "Разгъване"
- "Свиване"
+ "„Картина в картина“: Преместв."
+ "Разгъване на прозореца за PIP"
+ "Свиване на прозореца за PIP"" За достъп до контролите натиснете 2 пъти ""НАЧАЛО"
- "Меню за функцията „Картина в картината“."
- "Преместване наляво"
- "Преместване надясно"
- "Преместване нагоре"
- "Преместване надолу"
- "Готово"
diff --git a/libs/WindowManager/Shell/res/values-bn/strings.xml b/libs/WindowManager/Shell/res/values-bn/strings.xml
index 63c9684070b6a8732729b3e05c23eddd11be51b3..c0944e0584e6f9a10b4e64faa294401a3922cfa2 100644
--- a/libs/WindowManager/Shell/res/values-bn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bn/strings.xml
@@ -33,7 +33,6 @@
"আনস্ট্যাস করুন""অ্যাপটি স্প্লিট স্ক্রিনে কাজ নাও করতে পারে।""অ্যাপ্লিকেশান বিভক্ত-স্ক্রিন সমর্থন করে না৷"
- "এই অ্যাপটি শুধু ১টি উইন্ডোয় খোলা যেতে পারে।""সেকেন্ডারি ডিসপ্লেতে অ্যাপটি কাজ নাও করতে পারে।""সেকেন্ডারি ডিসপ্লেতে অ্যাপ লঞ্চ করা যাবে না।""বিভক্ত-স্ক্রিন বিভাজক"
@@ -73,23 +72,13 @@
"বাবল""ম্যানেজ করুন""বাবল বাতিল করা হয়েছে।"
- "আরও ভাল ভিউয়ের জন্য এই অ্যাপ রিস্টার্ট করতে ট্যাপ করুন।"
+ "এই অ্যাপ রিস্টার্ট করতে ট্যাপ করুন ও \'ফুল-স্ক্রিন\' মোড ব্যবহার করুন।""ক্যামেরা সংক্রান্ত সমস্যা?\nরিফিট করতে ট্যাপ করুন""এখনও সমাধান হয়নি?\nরিভার্ট করার জন্য ট্যাপ করুন""ক্যামেরা সংক্রান্ত সমস্যা নেই? বাতিল করতে ট্যাপ করুন।"
- "দেখুন ও আরও অনেক কিছু করুন"
- "স্প্লিট স্ক্রিনের জন্য অন্য অ্যাপে টেনে আনুন"
- "কোনও অ্যাপের স্থান পরিবর্তন করতে তার বাইরে ডবল ট্যাপ করুন"
+ "কিছু অ্যাপ \'পোর্ট্রেট\' মোডে সবচেয়ে ভাল কাজ করে"
+ "আপনার স্পেস সবচেয়ে ভালভাবে কাজে লাগাতে এইসব বিকল্পের মধ্যে কোনও একটি ব্যবহার করে দেখুন"
+ "\'ফুল স্ক্রিন\' মোডে যেতে ডিভাইস ঘোরান"
+ "কোনও অ্যাপের পাশে ডবল ট্যাপ করে সেটির জায়গা পরিবর্তন করুন""বুঝেছি"
- "আরও তথ্যের জন্য বড় করুন।"
- "বড় করুন"
- "ছোট করুন"
- "বন্ধ করুন"
- "ফিরে যান"
- "হাতল"
- "ফুলস্ক্রিন"
- "ডেস্কটপ মোড"
- "স্প্লিট স্ক্রিন"
- "আরও"
- "ফ্লোট"
diff --git a/libs/WindowManager/Shell/res/values-bn/strings_tv.xml b/libs/WindowManager/Shell/res/values-bn/strings_tv.xml
index 23c8ffabeede924cd5b0f5e9d1f77b43c43b5db3..792708d128a583c9813a7a5437c7fcf3fd367eaf 100644
--- a/libs/WindowManager/Shell/res/values-bn/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-bn/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"ছবির-মধ্যে-ছবি""(শিরোনামহীন প্রোগ্রাম)"
- "বন্ধ করুন"
+ "PIP বন্ধ করুন""পূর্ণ স্ক্রিন"
- "সরান"
- "বড় করুন"
- "আড়াল করুন"
+ "PIP সরান"
+ "PIP বড় করুন"
+ "PIP আড়াল করুন"" কন্ট্রোলের জন্য "" হোম "" বোতামে ডবল প্রেস করুন"
- "ছবির-মধ্যে-ছবি মেনু।"
- "বাঁদিকে সরান"
- "ডানদিকে সরান"
- "উপরে তুলুন"
- "নিচে নামান"
- "হয়ে গেছে"
diff --git a/libs/WindowManager/Shell/res/values-bs/strings.xml b/libs/WindowManager/Shell/res/values-bs/strings.xml
index b725efea6e48e20d9e6623cf24787e6a71da7588..ae01c641cc43151488e40b8e44978db8bad88148 100644
--- a/libs/WindowManager/Shell/res/values-bs/strings.xml
+++ b/libs/WindowManager/Shell/res/values-bs/strings.xml
@@ -33,10 +33,9 @@
"Vađenje iz stasha""Aplikacija možda neće raditi na podijeljenom ekranu.""Aplikacija ne podržava dijeljenje ekrana."
- "Ova aplikacija se može otvoriti samo u 1 prozoru.""Aplikacija možda neće raditi na sekundarnom ekranu.""Aplikacija ne podržava pokretanje na sekundarnim ekranima."
- "Razdjelnik podijeljenog ekrana"
+ "Razdjelnik ekrana""Lijevo cijeli ekran""Lijevo 70%""Lijevo 50%"
@@ -73,23 +72,13 @@
"Oblačić""Upravljaj""Oblačić je odbačen."
- "Dodirnite da ponovo pokrenete ovu aplikaciju radi boljeg prikaza."
+ "Dodirnite da ponovo pokrenete ovu aplikaciju i aktivirate prikaz preko cijelog ekrana.""Problemi s kamerom?\nDodirnite da ponovo namjestite""Nije popravljeno?\nDodirnite da vratite""Nema problema s kamerom? Dodirnite da odbacite."
- "Pogledajte i učinite više"
- "Prevucite još jednu aplikaciju za podijeljeni ekran"
- "Dvaput dodirnite izvan aplikacije da promijenite njen položaj"
+ "Određene aplikacije najbolje funkcioniraju u uspravnom načinu rada"
+ "Isprobajte jednu od ovih opcija da maksimalno iskoristite prostor"
+ "Zarotirajte uređaj da aktivirate prikaz preko cijelog ekrana"
+ "Dvaput dodirnite pored aplikacije da promijenite njen položaj""Razumijem"
- "Proširite za više informacija."
- "Maksimiziranje"
- "Minimiziranje"
- "Zatvaranje"
- "Nazad"
- "Identifikator"
- "Cijeli ekran"
- "Način rada radne površine"
- "Podijeljeni ekran"
- "Više"
- "Lebdeći"
diff --git a/libs/WindowManager/Shell/res/values-bs/strings_tv.xml b/libs/WindowManager/Shell/res/values-bs/strings_tv.xml
index 443fd620fd65a49932f4b8b4edeae1ccbff727f7..b7f0dca1b5a560ded64ad3e85d86819083ba87d7 100644
--- a/libs/WindowManager/Shell/res/values-bs/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-bs/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Slika u slici""(Program bez naslova)"
- "Zatvori"
+ "Zatvori sliku u slici""Cijeli ekran"
- "Premjesti"
- "Proširi"
- "Suzi"
+ "Pokreni sliku u slici"
+ "Proširi sliku u slici"
+ "Suzi sliku u slici"" Dvaput pritisnite "" POČETNI EKRAN "" za kontrole"
- "Meni za način rada slika u slici."
- "Pomjeranje ulijevo"
- "Pomjeranje udesno"
- "Pomjeranje nagore"
- "Pomjeranje nadolje"
- "Gotovo"
diff --git a/libs/WindowManager/Shell/res/values-ca/strings.xml b/libs/WindowManager/Shell/res/values-ca/strings.xml
index 034de1beb1e2c5001456bbd935ef28bf461d78d8..8a522b3e639782b5fefd7d82fa56a708a785f9fe 100644
--- a/libs/WindowManager/Shell/res/values-ca/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ca/strings.xml
@@ -22,7 +22,7 @@
"Configuració""Entra al mode de pantalla dividida""Menú"
- "%s està en mode d\'imatge sobre imatge"
+ "%s està en pantalla en pantalla""Si no vols que %s utilitzi aquesta funció, toca per obrir la configuració i desactiva-la.""Reprodueix""Posa en pausa"
@@ -33,7 +33,6 @@
"Deixa d\'amagar""És possible que l\'aplicació no funcioni amb la pantalla dividida.""L\'aplicació no admet la pantalla dividida."
- "Aquesta aplicació només pot obrir-se en 1 finestra.""És possible que l\'aplicació no funcioni en una pantalla secundària.""L\'aplicació no es pot obrir en pantalles secundàries.""Divisor de pantalles"
@@ -73,23 +72,13 @@
"Bombolla""Gestiona""La bombolla s\'ha ignorat."
- "Toca per reiniciar aquesta aplicació i obtenir una millor visualització."
+ "Toca per reiniciar aquesta aplicació i passar a pantalla completa.""Tens problemes amb la càmera?\nToca per resoldre\'ls""El problema no s\'ha resolt?\nToca per desfer els canvis""No tens cap problema amb la càmera? Toca per ignorar."
- "Consulta i fes més coses"
- "Arrossega una altra aplicació per utilitzar la pantalla dividida"
- "Fes doble toc fora d\'una aplicació per canviar-ne la posició"
+ "Algunes aplicacions funcionen millor en posició vertical"
+ "Prova una d\'aquestes opcions per treure el màxim profit de l\'espai"
+ "Gira el dispositiu per passar a pantalla completa"
+ "Fes doble toc al costat d\'una aplicació per canviar-ne la posició""Entesos"
- "Desplega per obtenir més informació."
- "Maximitza"
- "Minimitza"
- "Tanca"
- "Enrere"
- "Ansa"
- "Pantalla completa"
- "Mode d\'escriptori"
- "Pantalla dividida"
- "Més"
- "Flotant"
diff --git a/libs/WindowManager/Shell/res/values-ca/strings_tv.xml b/libs/WindowManager/Shell/res/values-ca/strings_tv.xml
index daa8c1d1d81255cc9eb791dc51375d469113dabb..1c560c7afa06ab3f8acc6a45938b32a63f59b065 100644
--- a/libs/WindowManager/Shell/res/values-ca/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-ca/strings_tv.xml
@@ -17,18 +17,12 @@
- "Imatge sobre imatge"
+ "Pantalla en pantalla""(Programa sense títol)"
- "Tanca"
+ "Tanca PIP""Pantalla completa"
- "Mou"
- "Desplega"
- "Replega"
+ "Mou pantalla en pantalla"
+ "Desplega pantalla en pantalla"
+ "Replega pantalla en pantalla"" Prem dos cops "" INICI "" per accedir als controls"
- "Menú d\'imatge sobre imatge."
- "Mou cap a l\'esquerra"
- "Mou cap a la dreta"
- "Mou cap amunt"
- "Mou cap avall"
- "Fet"
diff --git a/libs/WindowManager/Shell/res/values-cs/strings.xml b/libs/WindowManager/Shell/res/values-cs/strings.xml
index e5cb26f3e3b436137f07332b25a53e6e753d17e0..d0cf80aef38c9706791b4fff32a4cbe171e6a83e 100644
--- a/libs/WindowManager/Shell/res/values-cs/strings.xml
+++ b/libs/WindowManager/Shell/res/values-cs/strings.xml
@@ -33,7 +33,6 @@
"Zrušit uložení""Aplikace v režimu rozdělené obrazovky nemusí fungovat.""Aplikace nepodporuje režim rozdělené obrazovky."
- "Tuto aplikaci lze otevřít jen na jednom okně.""Aplikace na sekundárním displeji nemusí fungovat.""Aplikace nepodporuje spuštění na sekundárních displejích.""Čára rozdělující obrazovku"
@@ -73,23 +72,13 @@
"Bublina""Spravovat""Bublina byla zavřena."
- "Klepnutím tuto aplikaci kvůli lepšímu zobrazení restartujete."
+ "Klepnutím aplikaci restartujete a přejdete na režim celé obrazovky""Problémy s fotoaparátem?\nKlepnutím vyřešíte""Nepomohlo to?\nKlepnutím se vrátíte""Žádné problémy s fotoaparátem? Klepnutím zavřete."
- "Lepší zobrazení a více možností"
- "Přetáhnutím druhé aplikace použijete rozdělenou obrazovku"
- "Dvojitým klepnutím mimo aplikaci změníte její umístění"
+ "Některé aplikace fungují nejlépe na výšku"
+ "Pokud chcete maximálně využít prostor, vyzkoušejte jednu z těchto možností"
+ "Otočením zařízení přejděte do režimu celé obrazovky"
+ "Dvojitým klepnutím vedle aplikace změňte její umístění""OK"
- "Rozbalením zobrazíte další informace."
- "Maximalizovat"
- "Minimalizovat"
- "Zavřít"
- "Zpět"
- "Úchyt"
- "Celá obrazovka"
- "Režim počítače"
- "Rozdělená obrazovka"
- "Více"
- "Plovoucí"
diff --git a/libs/WindowManager/Shell/res/values-cs/strings_tv.xml b/libs/WindowManager/Shell/res/values-cs/strings_tv.xml
index 3ed85dce043342eddc7054126538a33d0b6afee7..9a8cc2b4d70e2af9721bd55e532fc7bd22876924 100644
--- a/libs/WindowManager/Shell/res/values-cs/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-cs/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Obraz v obraze""(Bez názvu)"
- "Zavřít"
+ "Ukončit obraz v obraze (PIP)""Celá obrazovka"
- "Přesunout"
- "Rozbalit"
- "Sbalit"
+ "Přesunout PIP"
+ "Rozbalit PIP"
+ "Sbalit PIP"" Ovládací prvky zobrazíte dvojitým stisknutím ""tlačítka plochy"
- "Nabídka režimu obrazu v obraze"
- "Přesunout doleva"
- "Přesunout doprava"
- "Přesunout nahoru"
- "Přesunout dolů"
- "Hotovo"
diff --git a/libs/WindowManager/Shell/res/values-da/strings.xml b/libs/WindowManager/Shell/res/values-da/strings.xml
index 46f7c6985ec2c72990ad19cde69b38ae282ff9e7..bb81c10c6e1bcc8afc3f65c785e88e4d19b5570f 100644
--- a/libs/WindowManager/Shell/res/values-da/strings.xml
+++ b/libs/WindowManager/Shell/res/values-da/strings.xml
@@ -33,7 +33,6 @@
"Vis""Appen fungerer muligvis ikke i opdelt skærm.""Appen understøtter ikke opdelt skærm."
- "Denne app kan kun åbnes i 1 vindue.""Appen fungerer muligvis ikke på sekundære skærme.""Appen kan ikke åbnes på sekundære skærme.""Adskiller til opdelt skærm"
@@ -73,23 +72,13 @@
"Boble""Administrer""Boblen blev lukket."
- "Tryk for at genstarte denne app, så visningen forbedres."
+ "Tryk for at genstarte denne app, og gå til fuld skærm.""Har du problemer med dit kamera?\nTryk for at gendanne det oprindelige format""Løste det ikke problemet?\nTryk for at fortryde""Har du ingen problemer med dit kamera? Tryk for at afvise."
- "Se og gør mere"
- "Træk en anden app hertil for at bruge opdelt skærm"
- "Tryk to gange uden for en app for at justere dens placering"
+ "Nogle apps fungerer bedst i stående format"
+ "Prøv én af disse muligheder for at få mest muligt ud af dit rum"
+ "Drej din enhed for at gå til fuld skærm"
+ "Tryk to gange ud for en app for at ændre dens placering""OK"
- "Udvid for at få flere oplysninger."
- "Maksimér"
- "Minimer"
- "Luk"
- "Tilbage"
- "Håndtag"
- "Fuld skærm"
- "Computertilstand"
- "Opdelt skærm"
- "Mere"
- "Svævende"
diff --git a/libs/WindowManager/Shell/res/values-da/strings_tv.xml b/libs/WindowManager/Shell/res/values-da/strings_tv.xml
index 09024428a82561c5fae73fa0f5d555c2a1ad415a..cba660ac723c44000bf3db9ae7d5c5026c7c5f7f 100644
--- a/libs/WindowManager/Shell/res/values-da/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-da/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Integreret billede""(Program uden titel)"
- "Luk"
+ "Luk integreret billede""Fuld skærm"
- "Flyt"
- "Udvid"
- "Skjul"
+ "Flyt PIP"
+ "Udvid PIP"
+ "Skjul PIP"" Tryk to gange på "" HJEM "" for at se indstillinger"
- "Menu for integreret billede."
- "Flyt til venstre"
- "Flyt til højre"
- "Flyt op"
- "Flyt ned"
- "Udfør"
diff --git a/libs/WindowManager/Shell/res/values-de/strings.xml b/libs/WindowManager/Shell/res/values-de/strings.xml
index 1269d362903d4e9399da935f029457d17c111c7c..c5d945a982ef9cb653d6e37e6de7a8394e10d66f 100644
--- a/libs/WindowManager/Shell/res/values-de/strings.xml
+++ b/libs/WindowManager/Shell/res/values-de/strings.xml
@@ -33,7 +33,6 @@
"Aus Stash entfernen""Die App funktioniert unter Umständen im Modus für geteilten Bildschirm nicht.""Das Teilen des Bildschirms wird in dieser App nicht unterstützt."
- "Diese App kann nur in einem einzigen Fenster geöffnet werden.""Die App funktioniert auf einem sekundären Display möglicherweise nicht.""Die App unterstützt den Start auf sekundären Displays nicht.""Bildschirmteiler"
@@ -73,23 +72,13 @@
"Bubble""Verwalten""Bubble verworfen."
- "Tippe, um diese App neu zu starten und die Ansicht zu verbessern."
+ "Tippe, um die App im Vollbildmodus neu zu starten.""Probleme mit der Kamera?\nZum Anpassen tippen.""Das Problem ist nicht behoben?\nZum Rückgängigmachen tippen.""Keine Probleme mit der Kamera? Zum Schließen tippen."
- "Mehr sehen und erledigen"
- "Weitere App hineinziehen, um den Bildschirm zu teilen"
- "Außerhalb einer App doppeltippen, um die Position zu ändern"
+ "Einige Apps funktionieren am besten im Hochformat"
+ "Mithilfe dieser Möglichkeiten kannst du dein Display optimal nutzen"
+ "Gerät drehen, um zum Vollbildmodus zu wechseln"
+ "Neben einer App doppeltippen, um die Position zu ändern""Ok"
- "Für weitere Informationen maximieren."
- "Maximieren"
- "Minimieren"
- "Schließen"
- "Zurück"
- "Ziehpunkt"
- "Vollbild"
- "Desktopmodus"
- "Geteilter Bildschirm"
- "Mehr"
- "Frei schwebend"
diff --git a/libs/WindowManager/Shell/res/values-de/strings_tv.xml b/libs/WindowManager/Shell/res/values-de/strings_tv.xml
index 18535c9d9338530f9dd76c20aa2ea241521d0427..02a1b66eb63ff5cac32cafccdbaf72201f8c534c 100644
--- a/libs/WindowManager/Shell/res/values-de/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-de/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Bild im Bild""(Kein Sendungsname gefunden)"
- "Schließen"
+ "PIP schließen""Vollbild"
- "Bewegen"
- "Maximieren"
- "Minimieren"
+ "BiB verschieben"
+ "BiB maximieren"
+ "BiB minimieren"" Für Steuerelemente zweimal ""STARTBILDSCHIRMTASTE"" drücken"
- "Menü „Bild im Bild“."
- "Nach links bewegen"
- "Nach rechts bewegen"
- "Nach oben bewegen"
- "Nach unten bewegen"
- "Fertig"
diff --git a/libs/WindowManager/Shell/res/values-el/strings.xml b/libs/WindowManager/Shell/res/values-el/strings.xml
index f8a69ef796b9b5fbfcbdd4ab36af8335666bd8d5..70f55058925c62b08f5a75430c0b8edc61a87289 100644
--- a/libs/WindowManager/Shell/res/values-el/strings.xml
+++ b/libs/WindowManager/Shell/res/values-el/strings.xml
@@ -33,7 +33,6 @@
"Κατάργηση απόκρυψης""Η εφαρμογή ενδέχεται να μην λειτουργεί με διαχωρισμό οθόνης.""Η εφαρμογή δεν υποστηρίζει διαχωρισμό οθόνης."
- "Αυτή η εφαρμογή μπορεί να ανοιχθεί μόνο σε 1 παράθυρο.""Η εφαρμογή ίσως να μην λειτουργήσει σε δευτερεύουσα οθόνη.""Η εφαρμογή δεν υποστηρίζει την εκκίνηση σε δευτερεύουσες οθόνες.""Διαχωριστικό οθόνης"
@@ -73,23 +72,13 @@
"Συννεφάκι""Διαχείριση""Το συννεφάκι παραβλέφθηκε."
- "Πατήστε για να επανεκκινήσετε αυτή την εφαρμογή για καλύτερη προβολή."
+ "Πατήστε για επανεκκίνηση αυτής της εφαρμογής και ενεργοποίηση πλήρους οθόνης.""Προβλήματα με την κάμερα;\nΠατήστε για επιδιόρθωση.""Δεν διορθώθηκε;\nΠατήστε για επαναφορά.""Δεν αντιμετωπίζετε προβλήματα με την κάμερα; Πατήστε για παράβλεψη."
- "Δείτε και κάντε περισσότερα"
- "Σύρετε σε μια άλλη εφαρμογή για διαχωρισμό οθόνης"
- "Πατήστε δύο φορές έξω από μια εφαρμογή για να αλλάξετε τη θέση της"
+ "Ορισμένες εφαρμογές λειτουργούν καλύτερα σε κατακόρυφο προσανατολισμό"
+ "Δοκιμάστε μία από αυτές τις επιλογές για να αξιοποιήσετε στο έπακρο τον χώρο σας."
+ "Περιστρέψτε τη συσκευή σας για μετάβαση σε πλήρη οθόνη."
+ "Πατήστε δύο φορές δίπλα σε μια εφαρμογή για να αλλάξετε τη θέση της.""Το κατάλαβα"
- "Ανάπτυξη για περισσότερες πληροφορίες."
- "Μεγιστοποίηση"
- "Ελαχιστοποίηση"
- "Κλείσιμο"
- "Πίσω"
- "Λαβή"
- "Πλήρης οθόνη"
- "Λειτουργία επιφάνειας εργασίας"
- "Διαχωρισμός οθόνης"
- "Περισσότερα"
- "Κινούμενο"
diff --git a/libs/WindowManager/Shell/res/values-el/strings_tv.xml b/libs/WindowManager/Shell/res/values-el/strings_tv.xml
index 5f8a004b0a1f355dfd27616f1bdd1469f4e4e7ce..24cd030cd754e374757827ec00b2405f5a139555 100644
--- a/libs/WindowManager/Shell/res/values-el/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-el/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Picture-in-Picture""(Δεν υπάρχει τίτλος προγράμματος)"
- "Κλείσιμο"
+ "Κλείσιμο PIP""Πλήρης οθόνη"
- "Μετακίνηση"
- "Ανάπτυξη"
- "Σύμπτυξη"
+ "Μετακίνηση PIP"
+ "Ανάπτυξη PIP"
+ "Σύμπτυξη PIP"" Πατήστε δύο φορές "" ΑΡΧΙΚΗ ΟΘΟΝΗ "" για στοιχεία ελέγχου"
- "Μενού λειτουργίας Picture-in-Picture."
- "Μετακίνηση αριστερά"
- "Μετακίνηση δεξιά"
- "Μετακίνηση επάνω"
- "Μετακίνηση κάτω"
- "Τέλος"
diff --git a/libs/WindowManager/Shell/res/values-en-rAU/strings.xml b/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
index 8e46c3e0999e0b771791c1da134882bdfaf40a73..0b5aefa5c72eb76940c988a5ba9e6a4f0bcc69e5 100644
--- a/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rAU/strings.xml
@@ -33,7 +33,6 @@
"Unstash""App may not work with split-screen.""App does not support split-screen."
- "This app can only be opened in one window.""App may not work on a secondary display.""App does not support launch on secondary displays.""Split screen divider"
@@ -73,23 +72,13 @@
"Bubble""Manage""Bubble dismissed."
- "Tap to restart this app for a better view."
+ "Tap to restart this app and go full screen.""Camera issues?\nTap to refit""Didn’t fix it?\nTap to revert""No camera issues? Tap to dismiss."
- "See and do more"
- "Drag in another app for split-screen"
- "Double-tap outside an app to reposition it"
+ "Some apps work best in portrait"
+ "Try one of these options to make the most of your space"
+ "Rotate your device to go full screen"
+ "Double-tap next to an app to reposition it""Got it"
- "Expand for more information."
- "Maximise"
- "Minimise"
- "Close"
- "Back"
- "Handle"
- "Full screen"
- "Desktop mode"
- "Split screen"
- "More"
- "Float"
diff --git a/libs/WindowManager/Shell/res/values-en-rAU/strings_tv.xml b/libs/WindowManager/Shell/res/values-en-rAU/strings_tv.xml
index 839789b22a1c5caaaa9df27f5f8c4d5056d2a864..82257b42814d8f4a5ec9aee0c456783828711c9d 100644
--- a/libs/WindowManager/Shell/res/values-en-rAU/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-en-rAU/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Picture-in-picture""(No title program)"
- "Close"
+ "Close PIP""Full screen"
- "Move"
- "Expand"
- "Collapse"
+ "Move PIP"
+ "Expand PIP"
+ "Collapse PIP"" Double-press "" HOME "" for controls"
- "Picture-in-picture menu"
- "Move left"
- "Move right"
- "Move up"
- "Move down"
- "Done"
diff --git a/libs/WindowManager/Shell/res/values-en-rCA/strings.xml b/libs/WindowManager/Shell/res/values-en-rCA/strings.xml
index 7cbbf64991cdfddf36211ac23b0eb7400b028b15..0b5aefa5c72eb76940c988a5ba9e6a4f0bcc69e5 100644
--- a/libs/WindowManager/Shell/res/values-en-rCA/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rCA/strings.xml
@@ -33,10 +33,9 @@
"Unstash""App may not work with split-screen.""App does not support split-screen."
- "This app can only be opened in 1 window.""App may not work on a secondary display.""App does not support launch on secondary displays."
- "Split-screen divider"
+ "Split screen divider""Left full screen""Left 70%""Left 50%"
@@ -65,31 +64,21 @@
"Don’t bubble conversation""Chat using bubbles""New conversations appear as floating icons, or bubbles. Tap to open bubble. Drag to move it."
- "Control bubbles anytime"
+ "Control bubbles at any time""Tap Manage to turn off bubbles from this app"
- "Got it"
+ "OK""No recent bubbles""Recent bubbles and dismissed bubbles will appear here""Bubble""Manage""Bubble dismissed."
- "Tap to restart this app for a better view."
+ "Tap to restart this app and go full screen.""Camera issues?\nTap to refit""Didn’t fix it?\nTap to revert""No camera issues? Tap to dismiss."
- "See and do more"
- "Drag in another app for split-screen"
- "Double-tap outside an app to reposition it"
+ "Some apps work best in portrait"
+ "Try one of these options to make the most of your space"
+ "Rotate your device to go full screen"
+ "Double-tap next to an app to reposition it""Got it"
- "Expand for more information."
- "Maximize"
- "Minimize"
- "Close"
- "Back"
- "Handle"
- "Fullscreen"
- "Desktop Mode"
- "Split Screen"
- "More"
- "Float"
diff --git a/libs/WindowManager/Shell/res/values-en-rCA/strings_tv.xml b/libs/WindowManager/Shell/res/values-en-rCA/strings_tv.xml
index 5a811e193cb498d20f33d6e6a0e7b35bef2bc338..82257b42814d8f4a5ec9aee0c456783828711c9d 100644
--- a/libs/WindowManager/Shell/res/values-en-rCA/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-en-rCA/strings_tv.xml
@@ -17,18 +17,12 @@
- "Picture-in-Picture"
+ "Picture-in-picture""(No title program)"
- "Close"
+ "Close PIP""Full screen"
- "Move"
- "Expand"
- "Collapse"
- " Double press "" HOME "" for controls"
- "Picture-in-Picture menu."
- "Move left"
- "Move right"
- "Move up"
- "Move down"
- "Done"
+ "Move PIP"
+ "Expand PIP"
+ "Collapse PIP"
+ " Double-press "" HOME "" for controls"
diff --git a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
index 8e46c3e0999e0b771791c1da134882bdfaf40a73..0b5aefa5c72eb76940c988a5ba9e6a4f0bcc69e5 100644
--- a/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rGB/strings.xml
@@ -33,7 +33,6 @@
"Unstash""App may not work with split-screen.""App does not support split-screen."
- "This app can only be opened in one window.""App may not work on a secondary display.""App does not support launch on secondary displays.""Split screen divider"
@@ -73,23 +72,13 @@
"Bubble""Manage""Bubble dismissed."
- "Tap to restart this app for a better view."
+ "Tap to restart this app and go full screen.""Camera issues?\nTap to refit""Didn’t fix it?\nTap to revert""No camera issues? Tap to dismiss."
- "See and do more"
- "Drag in another app for split-screen"
- "Double-tap outside an app to reposition it"
+ "Some apps work best in portrait"
+ "Try one of these options to make the most of your space"
+ "Rotate your device to go full screen"
+ "Double-tap next to an app to reposition it""Got it"
- "Expand for more information."
- "Maximise"
- "Minimise"
- "Close"
- "Back"
- "Handle"
- "Full screen"
- "Desktop mode"
- "Split screen"
- "More"
- "Float"
diff --git a/libs/WindowManager/Shell/res/values-en-rGB/strings_tv.xml b/libs/WindowManager/Shell/res/values-en-rGB/strings_tv.xml
index 839789b22a1c5caaaa9df27f5f8c4d5056d2a864..82257b42814d8f4a5ec9aee0c456783828711c9d 100644
--- a/libs/WindowManager/Shell/res/values-en-rGB/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-en-rGB/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Picture-in-picture""(No title program)"
- "Close"
+ "Close PIP""Full screen"
- "Move"
- "Expand"
- "Collapse"
+ "Move PIP"
+ "Expand PIP"
+ "Collapse PIP"" Double-press "" HOME "" for controls"
- "Picture-in-picture menu"
- "Move left"
- "Move right"
- "Move up"
- "Move down"
- "Done"
diff --git a/libs/WindowManager/Shell/res/values-en-rIN/strings.xml b/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
index 8e46c3e0999e0b771791c1da134882bdfaf40a73..0b5aefa5c72eb76940c988a5ba9e6a4f0bcc69e5 100644
--- a/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rIN/strings.xml
@@ -33,7 +33,6 @@
"Unstash""App may not work with split-screen.""App does not support split-screen."
- "This app can only be opened in one window.""App may not work on a secondary display.""App does not support launch on secondary displays.""Split screen divider"
@@ -73,23 +72,13 @@
"Bubble""Manage""Bubble dismissed."
- "Tap to restart this app for a better view."
+ "Tap to restart this app and go full screen.""Camera issues?\nTap to refit""Didn’t fix it?\nTap to revert""No camera issues? Tap to dismiss."
- "See and do more"
- "Drag in another app for split-screen"
- "Double-tap outside an app to reposition it"
+ "Some apps work best in portrait"
+ "Try one of these options to make the most of your space"
+ "Rotate your device to go full screen"
+ "Double-tap next to an app to reposition it""Got it"
- "Expand for more information."
- "Maximise"
- "Minimise"
- "Close"
- "Back"
- "Handle"
- "Full screen"
- "Desktop mode"
- "Split screen"
- "More"
- "Float"
diff --git a/libs/WindowManager/Shell/res/values-en-rIN/strings_tv.xml b/libs/WindowManager/Shell/res/values-en-rIN/strings_tv.xml
index 839789b22a1c5caaaa9df27f5f8c4d5056d2a864..82257b42814d8f4a5ec9aee0c456783828711c9d 100644
--- a/libs/WindowManager/Shell/res/values-en-rIN/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-en-rIN/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Picture-in-picture""(No title program)"
- "Close"
+ "Close PIP""Full screen"
- "Move"
- "Expand"
- "Collapse"
+ "Move PIP"
+ "Expand PIP"
+ "Collapse PIP"" Double-press "" HOME "" for controls"
- "Picture-in-picture menu"
- "Move left"
- "Move right"
- "Move up"
- "Move down"
- "Done"
diff --git a/libs/WindowManager/Shell/res/values-en-rXC/strings.xml b/libs/WindowManager/Shell/res/values-en-rXC/strings.xml
index b2720be3d8a0368901844f1ec659ecde018e6f24..5c3d0f65374a303a375be2bc3d337b4f78d5a717 100644
--- a/libs/WindowManager/Shell/res/values-en-rXC/strings.xml
+++ b/libs/WindowManager/Shell/res/values-en-rXC/strings.xml
@@ -33,7 +33,6 @@
"Unstash""App may not work with split-screen.""App does not support split-screen."
- "This app can only be opened in 1 window.""App may not work on a secondary display.""App does not support launch on secondary displays.""Split-screen divider"
@@ -73,23 +72,13 @@
"Bubble""Manage""Bubble dismissed."
- "Tap to restart this app for a better view."
+ "Tap to restart this app and go full screen.""Camera issues?\nTap to refit""Didn’t fix it?\nTap to revert""No camera issues? Tap to dismiss."
- "See and do more"
- "Drag in another app for split-screen"
- "Double-tap outside an app to reposition it"
+ "Some apps work best in portrait"
+ "Try one of these options to make the most of your space"
+ "Rotate your device to go full screen"
+ "Double-tap next to an app to reposition it""Got it"
- "Expand for more information."
- "Maximize"
- "Minimize"
- "Close"
- "Back"
- "Handle"
- "Fullscreen"
- "Desktop Mode"
- "Split Screen"
- "More"
- "Float"
diff --git a/libs/WindowManager/Shell/res/values-en-rXC/strings_tv.xml b/libs/WindowManager/Shell/res/values-en-rXC/strings_tv.xml
index 507e066e38120c9b803a223b90ffb6e61acf9288..a6e494cfed3c43aa6521c40bfef707c54b387db1 100644
--- a/libs/WindowManager/Shell/res/values-en-rXC/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-en-rXC/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Picture-in-Picture""(No title program)"
- "Close"
+ "Close PIP""Full screen"
- "Move"
- "Expand"
- "Collapse"
+ "Move PIP"
+ "Expand PIP"
+ "Collapse PIP"" Double press "" HOME "" for controls"
- "Picture-in-Picture menu."
- "Move left"
- "Move right"
- "Move up"
- "Move down"
- "Done"
diff --git a/libs/WindowManager/Shell/res/values-es-rUS/strings.xml b/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
index 47445a7a048811913c4799ae4e5f1c3fb328c1a0..e523ae53b0cc826d281575a038f64dfae1f48c58 100644
--- a/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
+++ b/libs/WindowManager/Shell/res/values-es-rUS/strings.xml
@@ -33,7 +33,6 @@
"Dejar de almacenar de manera segura""Es posible que la app no funcione en el modo de pantalla dividida.""La app no es compatible con la función de pantalla dividida."
- "Esta app solo puede estar abierta en 1 ventana.""Es posible que la app no funcione en una pantalla secundaria.""La app no puede iniciarse en pantallas secundarias.""Divisor de pantalla dividida"
@@ -73,23 +72,13 @@
"Cuadro""Administrar""Se descartó el cuadro."
- "Presiona para reiniciar esta app y tener una mejor vista."
+ "Presiona para reiniciar esta app y acceder al modo de pantalla completa.""¿Tienes problemas con la cámara?\nPresiona para reajustarla""¿No se resolvió?\nPresiona para revertir los cambios""¿No tienes problemas con la cámara? Presionar para descartar."
- "Aprovecha más"
- "Arrastra otra app para el modo de pantalla dividida"
- "Presiona dos veces fuera de una app para cambiar su ubicación"
+ "Algunas apps funcionan mejor en modo vertical"
+ "Prueba estas opciones para aprovechar al máximo tu espacio"
+ "Rota el dispositivo para ver la pantalla completa"
+ "Presiona dos veces junto a una app para cambiar su posición""Entendido"
- "Expande para obtener más información."
- "Maximizar"
- "Minimizar"
- "Cerrar"
- "Atrás"
- "Controlador"
- "Pantalla completa"
- "Modo de escritorio"
- "Pantalla dividida"
- "Más"
- "Flotante"
diff --git a/libs/WindowManager/Shell/res/values-es-rUS/strings_tv.xml b/libs/WindowManager/Shell/res/values-es-rUS/strings_tv.xml
index a2c27b79e04ce8fc6903cae908927fb823f2f337..458f6b15b857f1b0a49439ed204175dd22f1a525 100644
--- a/libs/WindowManager/Shell/res/values-es-rUS/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-es-rUS/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Pantalla en pantalla""(Sin título de programa)"
- "Cerrar"
+ "Cerrar PIP""Pantalla completa"
- "Mover"
- "Expandir"
- "Contraer"
+ "Mover PIP"
+ "Maximizar PIP"
+ "Minimizar PIP"" Presiona dos veces ""INICIO"" para ver los controles"
- "Menú de pantalla en pantalla"
- "Mover hacia la izquierda"
- "Mover hacia la derecha"
- "Mover hacia arriba"
- "Mover hacia abajo"
- "Listo"
diff --git a/libs/WindowManager/Shell/res/values-es/strings.xml b/libs/WindowManager/Shell/res/values-es/strings.xml
index 6c45231c32615fd88e1c3bba8366301f672ee0a6..9749607081905adbcf690b4d8aff735d29fd18d9 100644
--- a/libs/WindowManager/Shell/res/values-es/strings.xml
+++ b/libs/WindowManager/Shell/res/values-es/strings.xml
@@ -33,7 +33,6 @@
"No esconder""Es posible que la aplicación no funcione con la pantalla dividida.""La aplicación no admite la pantalla dividida."
- "Esta aplicación solo puede abrirse en una ventana.""Es posible que la aplicación no funcione en una pantalla secundaria.""La aplicación no se puede abrir en pantallas secundarias.""Dividir la pantalla"
@@ -47,10 +46,10 @@
"Superior 50%""Superior 30%""Pantalla inferior completa"
- "Usar modo Una mano"
+ "Usar Modo una mano""Para salir, desliza el dedo hacia arriba desde la parte inferior de la pantalla o toca cualquier zona que haya encima de la aplicación"
- "Iniciar modo Una mano"
- "Salir del modo Una mano"
+ "Iniciar Modo una mano"
+ "Salir del Modo una mano""Ajustes de las burbujas de %1$s""Menú adicional""Volver a añadir a la pila"
@@ -64,7 +63,7 @@
"Cerrar burbuja""No mostrar conversación en burbuja""Chatea con burbujas"
- "Las conversaciones nuevas aparecen como iconos flotantes llamados \"burbujas\". Toca una burbuja para abrirla. Arrástrala para moverla."
+ "Las conversaciones nuevas aparecen como iconos flotantes llamadas \"burbujas\". Toca una burbuja para abrirla. Arrástrala para moverla.""Controla las burbujas""Toca Gestionar para desactivar las burbujas de esta aplicación""Entendido"
@@ -73,23 +72,13 @@
"Burbuja""Gestionar""Burbuja cerrada."
- "Toca para reiniciar esta aplicación y obtener una mejor vista."
+ "Toca para reiniciar esta aplicación e ir a la pantalla completa.""¿Problemas con la cámara?\nToca para reajustar""¿No se ha solucionado?\nToca para revertir""¿No hay problemas con la cámara? Toca para cerrar."
- "Consulta más información y haz más"
- "Arrastra otra aplicación para activar la pantalla dividida"
- "Toca dos veces fuera de una aplicación para cambiarla de posición"
+ "Algunas aplicaciones funcionan mejor en vertical"
+ "Prueba una de estas opciones para sacar el máximo partido al espacio de tu pantalla"
+ "Gira el dispositivo para ir al modo de pantalla completa"
+ "Toca dos veces junto a una aplicación para cambiar su posición""Entendido"
- "Mostrar más información"
- "Maximizar"
- "Minimizar"
- "Cerrar"
- "Atrás"
- "Controlador"
- "Pantalla completa"
- "Modo Escritorio"
- "Pantalla dividida"
- "Más"
- "Flotante"
diff --git a/libs/WindowManager/Shell/res/values-es/strings_tv.xml b/libs/WindowManager/Shell/res/values-es/strings_tv.xml
index 75db421ec405f393cc2af5b6b8c391592b72eab0..0a690984dac55a09bdd7d605a3f0f405a5ea4f44 100644
--- a/libs/WindowManager/Shell/res/values-es/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-es/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Imagen en imagen""(Programa sin título)"
- "Cerrar"
+ "Cerrar PIP""Pantalla completa"
- "Mover"
- "Mostrar"
- "Contraer"
+ "Mover imagen en imagen"
+ "Mostrar imagen en imagen"
+ "Ocultar imagen en imagen"" Pulsa dos veces ""INICIO"" para ver los controles"
- "Menú de imagen en imagen."
- "Mover hacia la izquierda"
- "Mover hacia la derecha"
- "Mover hacia arriba"
- "Mover hacia abajo"
- "Hecho"
diff --git a/libs/WindowManager/Shell/res/values-et/strings.xml b/libs/WindowManager/Shell/res/values-et/strings.xml
index a8dc08cbbd2700b80d36141971f059b8c13118ce..a5f82a6452c452f29aa63d3e9cd09d6e21cd51fd 100644
--- a/libs/WindowManager/Shell/res/values-et/strings.xml
+++ b/libs/WindowManager/Shell/res/values-et/strings.xml
@@ -33,7 +33,6 @@
"Eemalda hoidlast""Rakendus ei pruugi poolitatud ekraaniga töötada.""Rakendus ei toeta jagatud ekraani."
- "Selle rakenduse saab avada ainult ühes aknas.""Rakendus ei pruugi teisesel ekraanil töötada.""Rakendus ei toeta teisestel ekraanidel käivitamist.""Ekraanijagaja"
@@ -73,23 +72,13 @@
"Mull""Halda""Mullist loobuti."
- "Puudutage, et see rakendus parema vaate jaoks taaskäivitada."
+ "Puudutage rakenduse taaskäivitamiseks ja täisekraanrežiimi aktiveerimiseks.""Kas teil on kaameraprobleeme?\nPuudutage ümberpaigutamiseks.""Kas probleemi ei lahendatud?\nPuudutage ennistamiseks.""Kas kaameraprobleeme pole? Puudutage loobumiseks."
- "Vaadake ja tehke rohkem"
- "Lohistage muusse rakendusse, et jagatud ekraanikuva kasutada"
- "Topeltpuudutage rakendusest väljaspool, et selle asendit muuta"
+ "Mõni rakendus töötab kõige paremini vertikaalpaigutuses"
+ "Proovige ühte neist valikutest, et oma ruumi parimal moel kasutada"
+ "Pöörake seadet, et aktiveerida täisekraanirežiim"
+ "Topeltpuudutage rakenduse kõrval, et selle asendit muuta""Selge"
- "Laiendage lisateabe saamiseks."
- "Maksimeeri"
- "Minimeeri"
- "Sule"
- "Tagasi"
- "Käepide"
- "Täisekraan"
- "Lauaarvuti režiim"
- "Jagatud ekraanikuva"
- "Rohkem"
- "Hõljuv"
diff --git a/libs/WindowManager/Shell/res/values-et/strings_tv.xml b/libs/WindowManager/Shell/res/values-et/strings_tv.xml
index e8fcb180c0c4e7c51ed85d63b7ff88326ea63562..dc0232303a70d10604a46706979056d649bad9d7 100644
--- a/libs/WindowManager/Shell/res/values-et/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-et/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Pilt pildis""(Programmi pealkiri puudub)"
- "Sule"
+ "Sule PIP""Täisekraan"
- "Teisalda"
- "Laienda"
- "Ahenda"
+ "Teisalda PIP-režiimi"
+ "Laienda PIP-akent"
+ "Ahenda PIP-aken"" Nuppude nägemiseks vajutage 2 korda nuppu ""AVAKUVA"
- "Menüü Pilt pildis."
- "Teisalda vasakule"
- "Teisalda paremale"
- "Teisalda üles"
- "Teisalda alla"
- "Valmis"
diff --git a/libs/WindowManager/Shell/res/values-eu/strings.xml b/libs/WindowManager/Shell/res/values-eu/strings.xml
index 9fbf0a0700193766ad2e0a01853685c265d89d8e..caa335a96222140e63a198df693d74a09d45ad21 100644
--- a/libs/WindowManager/Shell/res/values-eu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-eu/strings.xml
@@ -23,7 +23,7 @@
"Sartu pantaila zatituan""Menua""Pantaila txiki gainjarrian dago %s"
- "%s zerbitzuak eginbide hori erabiltzea nahi ez baduzu, sakatu hau ezarpenak ireki eta aukera desaktibatzeko."
+ "Ez baduzu nahi %s zerbitzuak eginbide hori erabiltzea, sakatu hau ezarpenak ireki eta aukera desaktibatzeko.""Erreproduzitu""Pausatu""Joan hurrengora"
@@ -33,7 +33,6 @@
"Ez gorde""Baliteke aplikazioak ez funtzionatzea pantaila zatituan.""Aplikazioak ez du onartzen pantaila zatitua"
- "Leiho bakar batean ireki daiteke aplikazioa.""Baliteke aplikazioak ez funtzionatzea bigarren mailako pantailetan.""Aplikazioa ezin da abiarazi bigarren mailako pantailatan.""Pantaila-zatitzailea"
@@ -73,23 +72,13 @@
"Burbuila""Kudeatu""Baztertu da globoa."
- "Hobeto ikusteko, sakatu hau aplikazioa berrabiarazteko."
+ "Saka ezazu aplikazioa berrabiarazteko, eta ezarri pantaila osoko modua.""Arazoak dauzkazu kamerarekin?\nBerriro doitzeko, sakatu hau.""Ez al da konpondu?\nLeheneratzeko, sakatu hau.""Ez daukazu arazorik kamerarekin? Baztertzeko, sakatu hau."
- "Ikusi eta egin gauza gehiago"
- "Pantaila zatituta ikusteko, arrastatu beste aplikazio bat"
- "Aplikazioaren posizioa aldatzeko, sakatu birritan haren kanpoaldea"
+ "Aplikazio batzuk orientazio bertikalean funtzionatzen dute hobekien"
+ "Pantailako eremuari ahalik eta etekinik handiena ateratzeko, probatu aukera hauetakoren bat"
+ "Pantaila osoko modua erabiltzeko, biratu gailua"
+ "Aplikazioaren posizioa aldatzeko, sakatu birritan haren ondoko edozein toki""Ados"
- "Informazio gehiago lortzeko, zabaldu hau."
- "Maximizatu"
- "Minimizatu"
- "Itxi"
- "Atzera"
- "Kontu-izena"
- "Pantaila osoa"
- "Ordenagailuetarako modua"
- "Pantaila zatitua"
- "Gehiago"
- "Leiho gainerakorra"
diff --git a/libs/WindowManager/Shell/res/values-eu/strings_tv.xml b/libs/WindowManager/Shell/res/values-eu/strings_tv.xml
index 07d75d2de9cd61dd87b2f27e4a61b64590e435b5..bce06da2c66f1a500806d211137f6d2e444c2ad9 100644
--- a/libs/WindowManager/Shell/res/values-eu/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-eu/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Pantaila txiki gainjarria""(Programa izengabea)"
- "Itxi"
+ "Itxi PIPa""Pantaila osoa"
- "Mugitu"
- "Zabaldu"
- "Tolestu"
+ "Mugitu pantaila txiki gainjarria"
+ "Zabaldu pantaila txiki gainjarria"
+ "Tolestu pantaila txiki gainjarria"" Kontrolatzeko aukerak atzitzeko, sakatu birritan "" HASIERA "
- "Pantaila txiki gainjarriaren menua."
- "Eraman ezkerrera"
- "Eraman eskuinera"
- "Eraman gora"
- "Eraman behera"
- "Eginda"
diff --git a/libs/WindowManager/Shell/res/values-fa/strings.xml b/libs/WindowManager/Shell/res/values-fa/strings.xml
index e7cb5f41a3ace5e2ded527107607e67139a6b931..761fb9ddeb2f97ae522c3b4a5c514a994e471494 100644
--- a/libs/WindowManager/Shell/res/values-fa/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fa/strings.xml
@@ -33,7 +33,6 @@
"لغو مخفیسازی""ممکن است برنامه با «صفحهٔ دونیمه» کار نکند.""برنامه از تقسیم صفحه پشتیبانی نمیکند."
- "این برنامه فقط در ۱ پنجره میتواند باز شود.""ممکن است برنامه در نمایشگر ثانویه کار نکند.""برنامه از راهاندازی در نمایشگرهای ثانویه پشتیبانی نمیکند.""تقسیمکننده صفحه"
@@ -73,23 +72,13 @@
"حباب""مدیریت""حبابک رد شد."
- "برای داشتن نمایی بهتر، ضربه بزنید تا این برنامه بازراهاندازی شود."
+ "برای بازراهاندازی این برنامه و تغییر به حالت تمامصفحه، ضربه بزنید.""دوربین مشکل دارد؟\nبرای تنظیم مجدد اندازه ضربه بزنید""مشکل برطرف نشد؟\nبرای برگرداندن ضربه بزنید""دوربین مشکلی ندارد؟ برای بستن ضربه بزنید."
- "از چندین برنامه بهطور همزمان استفاده کنید"
- "برای حالت صفحهٔ دونیمه، در برنامهای دیگر بکشید"
- "برای جابهجا کردن برنامه، بیرون از آن دوضربه بزنید"
+ "برخیاز برنامهها در حالت عمودی عملکرد بهتری دارند"
+ "با امتحان کردن یکی از این گزینهها، بیشترین بهره را از فضایتان ببرید"
+ "برای رفتن به حالت تمام صفحه، دستگاهتان را بچرخانید"
+ "در کنار برنامه دوضربه بزنید تا جابهجا شود""متوجهام"
- "برای اطلاعات بیشتر، گسترده کنید."
- "بزرگ کردن"
- "کوچک کردن"
- "بستن"
- "برگشتن"
- "دستگیره"
- "تمامصفحه"
- "حالت رایانه"
- "صفحهٔ دونیمه"
- "بیشتر"
- "شناور"
diff --git a/libs/WindowManager/Shell/res/values-fa/strings_tv.xml b/libs/WindowManager/Shell/res/values-fa/strings_tv.xml
index 03f51d01a3a824adfc92c769aa806fee88e3ca99..ff9a03c6cefbbe05c962909971c2a72a256044dc 100644
--- a/libs/WindowManager/Shell/res/values-fa/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-fa/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"تصویر در تصویر""(برنامه بدون عنوان)"
- "بستن"
+ "بستن PIP""تمام صفحه"
- "انتقال"
- "گسترده کردن"
- "جمع کردن"
+ "انتقال PIP (تصویر در تصویر)"
+ "گسترده کردن «تصویر در تصویر»"
+ "جمع کردن «تصویر در تصویر»"" برای کنترلها، دکمه ""صفحه اصلی"" را دوبار فشار دهید"
- "منوی تصویر در تصویر."
- "انتقال بهچپ"
- "انتقال بهراست"
- "انتقال بهبالا"
- "انتقال بهپایین"
- "تمام"
diff --git a/libs/WindowManager/Shell/res/values-fi/strings.xml b/libs/WindowManager/Shell/res/values-fi/strings.xml
index 86199f3cf0927424615cc81ea99e7e0edf172d43..c809b4879e71f9a43e9178caf643eafb898e6194 100644
--- a/libs/WindowManager/Shell/res/values-fi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fi/strings.xml
@@ -33,7 +33,6 @@
"Poista turvasäilytyksestä""Sovellus ei ehkä toimi jaetulla näytöllä.""Sovellus ei tue jaetun näytön tilaa."
- "Tämän sovelluksen voi avata vain yhdessä ikkunassa.""Sovellus ei ehkä toimi toissijaisella näytöllä.""Sovellus ei tue käynnistämistä toissijaisilla näytöillä.""Näytön jakaja"
@@ -73,23 +72,13 @@
"Kupla""Ylläpidä""Kupla ohitettu."
- "Napauta, niin sovellus käynnistyy uudelleen paremmin näytölle sopivana."
+ "Napauta, niin sovellus käynnistyy uudelleen ja siirtyy koko näytön tilaan.""Onko kameran kanssa ongelmia?\nKorjaa napauttamalla""Eikö ongelma ratkennut?\nKumoa napauttamalla""Ei ongelmia kameran kanssa? Hylkää napauttamalla."
- "Näe ja tee enemmän"
- "Käytä jaettua näyttöä vetämällä tähän toinen sovellus"
- "Kaksoisnapauta sovelluksen ulkopuolella, jos haluat siirtää sitä"
+ "Osa sovelluksista toimii parhaiten pystytilassa"
+ "Kokeile jotakin näistä vaihtoehdoista, jotta saat parhaan hyödyn näytön tilasta"
+ "Käännä laitetta, niin se siirtyy koko näytön tilaan"
+ "Kaksoisnapauta sovellusta, jos haluat siirtää sitä""OK"
- "Katso lisätietoja laajentamalla."
- "Suurenna"
- "Pienennä"
- "Sulje"
- "Takaisin"
- "Kahva"
- "Koko näyttö"
- "Työpöytätila"
- "Jaettu näyttö"
- "Lisää"
- "Kelluva ikkuna"
diff --git a/libs/WindowManager/Shell/res/values-fi/strings_tv.xml b/libs/WindowManager/Shell/res/values-fi/strings_tv.xml
index 24ab7d99e18076e1843d2a774a2ccc7bd7e60962..3e8bf903278095305d184230fb988147dc0465fc 100644
--- a/libs/WindowManager/Shell/res/values-fi/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-fi/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Kuva kuvassa""(Nimetön)"
- "Sulje"
+ "Sulje PIP""Koko näyttö"
- "Siirrä"
- "Laajenna"
- "Tiivistä"
+ "Siirrä PIP"
+ "Laajenna PIP"
+ "Tiivistä PIP"" Asetukset: paina ""ALOITUSNÄYTTÖPAINIKETTA"" kahdesti"
- "Kuva kuvassa ‑valikko."
- "Siirrä vasemmalle"
- "Siirrä oikealle"
- "Siirrä ylös"
- "Siirrä alas"
- "Valmis"
diff --git a/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml b/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml
index 1f3ac9ecbcca3b6a68aef881cb44bea488edebf7..62b2bb65a603e0c4379f4803d8447c97caddc7a4 100644
--- a/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml
@@ -33,7 +33,6 @@
"Retirer de la réserve""Il est possible que l\'application ne fonctionne pas en mode Écran partagé.""L\'application n\'est pas compatible avec l\'écran partagé."
- "Cette application ne peut être ouverte que dans une fenêtre.""Il est possible que l\'application ne fonctionne pas sur un écran secondaire.""L\'application ne peut pas être lancée sur des écrans secondaires.""Séparateur d\'écran partagé"
@@ -73,23 +72,13 @@
"Bulle""Gérer""Bulle ignorée."
- "Touchez pour redémarrer cette application afin d\'obtenir un meilleur affichage."
+ "Touchez pour redémarrer cette application et passer en plein écran.""Problèmes d\'appareil photo?\nTouchez pour réajuster""Problème non résolu?\nTouchez pour rétablir""Aucun problème d\'appareil photo? Touchez pour ignorer."
- "Voir et en faire plus"
- "Faites glisser une autre application pour utiliser l\'écran partagé"
- "Touchez deux fois à côté d\'une application pour la repositionner"
+ "Certaines applications fonctionnent mieux en mode portrait"
+ "Essayez l\'une de ces options pour tirer le meilleur parti de votre espace"
+ "Faites pivoter votre appareil pour passer en plein écran"
+ "Touchez deux fois à côté d\'une application pour la repositionner""OK"
- "Développer pour en savoir plus."
- "Agrandir"
- "Réduire"
- "Fermer"
- "Retour"
- "Identifiant"
- "Plein écran"
- "Mode Bureau"
- "Écran partagé"
- "Plus"
- "Flottant"
diff --git a/libs/WindowManager/Shell/res/values-fr-rCA/strings_tv.xml b/libs/WindowManager/Shell/res/values-fr-rCA/strings_tv.xml
index 87651ec711d9422042c712b129c9d197d186bbba..66e13b89c64baf0701701b66cbdb777fc1569ebc 100644
--- a/libs/WindowManager/Shell/res/values-fr-rCA/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-fr-rCA/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Incrustation d\'image""(Aucun programme de titre)"
- "Fermer"
+ "Fermer mode IDI""Plein écran"
- "Déplacer"
- "Développer"
- "Réduire"
+ "Déplacer l\'image incrustée"
+ "Développer l\'image incrustée"
+ "Réduire l\'image incrustée"" Appuyez deux fois sur "" ACCUEIL "" pour les commandes"
- "Menu d\'incrustation d\'image."
- "Déplacer vers la gauche"
- "Déplacer vers la droite"
- "Déplacer vers le haut"
- "Déplacer vers le bas"
- "OK"
diff --git a/libs/WindowManager/Shell/res/values-fr/strings.xml b/libs/WindowManager/Shell/res/values-fr/strings.xml
index f1dbb35dc7a79735c4ef2cd932d6bbb09434cc5c..b3e22af0a3e3fa30703bf1de783ae9ad99a881f7 100644
--- a/libs/WindowManager/Shell/res/values-fr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-fr/strings.xml
@@ -33,7 +33,6 @@
"Unstash""Il est possible que l\'application ne fonctionne pas en mode Écran partagé.""Application incompatible avec l\'écran partagé."
- "Cette appli ne peut être ouverte que dans 1 fenêtre.""Il est possible que l\'application ne fonctionne pas sur un écran secondaire.""L\'application ne peut pas être lancée sur des écrans secondaires.""Séparateur d\'écran partagé"
@@ -64,7 +63,7 @@
"Fermer la bulle""Ne pas afficher la conversation dans une bulle""Chatter en utilisant des bulles"
- "Les nouvelles conversations s\'affichent sous forme d\'icônes flottantes ou de bulles. Appuyez sur la bulle pour l\'ouvrir. Faites-la glisser pour la déplacer."
+ "Les nouvelles conversations s\'affichent sous forme d\'icônes flottantes ou bulles. Appuyez sur la bulle pour l\'ouvrir. Faites-la glisser pour la déplacer.""Contrôlez les bulles à tout moment""Appuyez sur \"Gérer\" pour désactiver les bulles de cette application""OK"
@@ -73,23 +72,13 @@
"Bulle""Gérer""Bulle fermée."
- "Appuyez pour redémarrer cette appli et avoir une meilleure vue."
+ "Appuyez pour redémarrer cette application et activer le mode plein écran.""Problèmes d\'appareil photo ?\nAppuyez pour réajuster""Problème non résolu ?\nAppuyez pour rétablir""Aucun problème d\'appareil photo ? Appuyez pour ignorer."
- "Voir et interagir plus"
- "Faites glisser une autre appli pour utiliser l\'écran partagé"
- "Appuyez deux fois en dehors d\'une appli pour la repositionner"
+ "Certaines applis fonctionnent mieux en mode Portrait"
+ "Essayez l\'une de ces options pour exploiter pleinement l\'espace"
+ "Faites pivoter l\'appareil pour passer en plein écran"
+ "Appuyez deux fois à côté d\'une appli pour la repositionner""OK"
- "Développez pour obtenir plus d\'informations"
- "Agrandir"
- "Réduire"
- "Fermer"
- "Retour"
- "Poignée"
- "Plein écran"
- "Mode ordinateur"
- "Écran partagé"
- "Plus"
- "Flottante"
diff --git a/libs/WindowManager/Shell/res/values-fr/strings_tv.xml b/libs/WindowManager/Shell/res/values-fr/strings_tv.xml
index 37863fb82295081d08bec897505d053693a0d8bd..ed9baf5b621561c45e8428ef89beff295b814f77 100644
--- a/libs/WindowManager/Shell/res/values-fr/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-fr/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Picture-in-picture""(Programme sans titre)"
- "Fermer"
+ "Fermer mode PIP""Plein écran"
- "Déplacer"
- "Développer"
- "Réduire"
+ "Déplacer le PIP"
+ "Développer la fenêtre PIP"
+ "Réduire la fenêtre PIP"" Menu de commandes : appuyez deux fois sur ""ACCUEIL"
- "Menu \"Picture-in-picture\"."
- "Déplacer vers la gauche"
- "Déplacer vers la droite"
- "Déplacer vers le haut"
- "Déplacer vers le bas"
- "OK"
diff --git a/libs/WindowManager/Shell/res/values-gl/strings.xml b/libs/WindowManager/Shell/res/values-gl/strings.xml
index 6e215a1f5b81043b92f3d32766b3e188bb89792d..b8e039602243e33147969ec55464e107f0f294e0 100644
--- a/libs/WindowManager/Shell/res/values-gl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-gl/strings.xml
@@ -33,7 +33,6 @@
"Non esconder""Pode que a aplicación non funcione coa pantalla dividida.""A aplicación non é compatible coa función de pantalla dividida."
- "Esta aplicación só se pode abrir en 1 ventá.""É posible que a aplicación non funcione nunha pantalla secundaria.""A aplicación non se pode iniciar en pantallas secundarias.""Divisor de pantalla dividida"
@@ -73,23 +72,13 @@
"Burbulla""Xestionar""Ignorouse a burbulla."
- "Toca o botón para reiniciar esta aplicación e gozar dunha mellor visualización."
+ "Toca o botón para reiniciar esta aplicación e abrila en pantalla completa.""Tes problemas coa cámara?\nToca para reaxustala""Non se solucionaron os problemas?\nToca para reverter o seu tratamento""Non hai problemas coa cámara? Tocar para ignorar."
- "Ver e facer máis"
- "Arrastra outra aplicación para usar a pantalla dividida"
- "Toca dúas veces fóra da aplicación para cambiala de posición"
+ "Algunhas aplicacións funcionan mellor en modo vertical"
+ "Proba unha destas opcións para sacar o máximo proveito do espazo da pantalla"
+ "Xira o dispositivo para ver o contido en pantalla completa"
+ "Toca dúas veces a carón dunha aplicación para cambiala de posición""Entendido"
- "Despregar para obter máis información."
- "Maximizar"
- "Minimizar"
- "Pechar"
- "Atrás"
- "Controlador"
- "Pantalla completa"
- "Modo de escritorio"
- "Pantalla dividida"
- "Máis"
- "Flotante"
diff --git a/libs/WindowManager/Shell/res/values-gl/strings_tv.xml b/libs/WindowManager/Shell/res/values-gl/strings_tv.xml
index 5d6de76c4deb7af74325e124975fd8269a628c8b..a057434d7853b7106b9b54510bbdb7f137d34c85 100644
--- a/libs/WindowManager/Shell/res/values-gl/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-gl/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Pantalla superposta""(Programa sen título)"
- "Pechar"
+ "Pechar PIP""Pantalla completa"
- "Mover"
- "Despregar"
- "Contraer"
+ "Mover pantalla superposta"
+ "Despregar pantalla superposta"
+ "Contraer pantalla superposta"" Preme ""INICIO"" dúas veces para acceder aos controis"
- "Menú de pantalla superposta."
- "Mover cara á esquerda"
- "Mover cara á dereita"
- "Mover cara arriba"
- "Mover cara abaixo"
- "Feito"
diff --git a/libs/WindowManager/Shell/res/values-gu/strings.xml b/libs/WindowManager/Shell/res/values-gu/strings.xml
index ad086bb1f7123397bc610817e61c6481aa274b0d..deda2d755e20bdaf5c23dfdc334f499845cd06ab 100644
--- a/libs/WindowManager/Shell/res/values-gu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-gu/strings.xml
@@ -33,7 +33,6 @@
"બતાવો""વિભાજિત-સ્ક્રીન સાથે ઍપ કદાચ કામ ન કરે.""ઍપ્લિકેશન સ્ક્રીન-વિભાજનનું સમર્થન કરતી નથી."
- "આ ઍપ માત્ર 1 વિન્ડોમાં ખોલી શકાય છે.""ઍપ્લિકેશન ગૌણ ડિસ્પ્લે પર કદાચ કામ ન કરે.""ઍપ્લિકેશન ગૌણ ડિસ્પ્લે પર લૉન્ચનું સમર્થન કરતી નથી.""સ્પ્લિટ-સ્ક્રીન વિભાજક"
@@ -73,23 +72,13 @@
"બબલ""મેનેજ કરો""બબલ છોડી દેવાયો."
- "વધુ સારા વ્યૂ માટે, આ ઍપને ફરી શરૂ કરવા ટૅપ કરો."
+ "આ ઍપ ફરીથી ચાલુ કરવા માટે ટૅપ કરીને પૂર્ણ સ્ક્રીન કરો.""કૅમેરામાં સમસ્યાઓ છે?\nફરીથી ફિટ કરવા માટે ટૅપ કરો""સુધારો નથી થયો?\nપહેલાંના પર પાછું ફેરવવા માટે ટૅપ કરો""કૅમેરામાં કોઈ સમસ્યા નથી? છોડી દેવા માટે ટૅપ કરો."
- "જુઓ અને બીજું ઘણું કરો"
- "સ્ક્રીન વિભાજન માટે કોઈ અન્ય ઍપમાં ખેંચો"
- "કોઈ ઍપની જગ્યા બદલવા માટે, તેની બહાર બે વાર ટૅપ કરો"
+ "અમુક ઍપ પોર્ટ્રેટ મોડમાં શ્રેષ્ઠ રીતે કાર્ય કરે છે"
+ "તમારી સ્પેસનો વધુને વધુ લાભ લેવા માટે, આ વિકલ્પોમાંથી કોઈ એક અજમાવો"
+ "પૂર્ણ સ્ક્રીન મોડ લાગુ કરવા માટે, તમારા ડિવાઇસને ફેરવો"
+ "કોઈ ઍપની જગ્યા બદલવા માટે, તેની બાજુમાં બે વાર ટૅપ કરો""સમજાઈ ગયું"
- "વધુ માહિતી માટે મોટું કરો."
- "મોટું કરો"
- "નાનું કરો"
- "બંધ કરો"
- "પાછળ"
- "હૅન્ડલ"
- "પૂર્ણસ્ક્રીન"
- "ડેસ્કટૉપ મોડ"
- "સ્ક્રીનને વિભાજિત કરો"
- "વધુ"
- "ફ્લોટિંગ વિન્ડો"
diff --git a/libs/WindowManager/Shell/res/values-gu/strings_tv.xml b/libs/WindowManager/Shell/res/values-gu/strings_tv.xml
index 6c1b9db73582f7e845296757fecfeadde0993086..d9525910e4c6d9f50fbfcb344ca8336b90b3403d 100644
--- a/libs/WindowManager/Shell/res/values-gu/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-gu/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"ચિત્રમાં-ચિત્ર""(કોઈ ટાઇટલ પ્રોગ્રામ નથી)"
- "બંધ કરો"
+ "PIP બંધ કરો""પૂર્ણ સ્ક્રીન"
- "ખસેડો"
- "મોટું કરો"
- "નાનું કરો"
+ "PIP ખસેડો"
+ "PIP મોટી કરો"
+ "PIP નાની કરો"" નિયંત્રણો માટે "" હોમ "" બટન પર બે વાર દબાવો"
- "ચિત્રમાં ચિત્ર મેનૂ."
- "ડાબે ખસેડો"
- "જમણે ખસેડો"
- "ઉપર ખસેડો"
- "નીચે ખસેડો"
- "થઈ ગયું"
diff --git a/libs/WindowManager/Shell/res/values-hi/strings.xml b/libs/WindowManager/Shell/res/values-hi/strings.xml
index bed39fb774007bf5881063939cb1e469804629b9..36b11514c7e54e475906361b534a69177458050f 100644
--- a/libs/WindowManager/Shell/res/values-hi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hi/strings.xml
@@ -33,7 +33,6 @@
"दिखाएं""ऐप्लिकेशन शायद स्प्लिट स्क्रीन मोड में काम न करे.""ऐप विभाजित स्क्रीन का समर्थन नहीं करता है."
- "इस ऐप्लिकेशन को सिर्फ़ एक विंडो में खोला जा सकता है.""हो सकता है कि ऐप प्राइमरी (मुख्य) डिस्प्ले के अलावा बाकी दूसरे डिस्प्ले पर काम न करे.""प्राइमरी (मुख्य) डिस्प्ले के अलावा बाकी दूसरे डिस्प्ले पर ऐप लॉन्च नहीं किया जा सकता.""विभाजित स्क्रीन विभाजक"
@@ -66,30 +65,20 @@
"बबल्स का इस्तेमाल करके चैट करें""नई बातचीत फ़्लोटिंग आइकॉन या बबल्स की तरह दिखेंगी. बबल को खोलने के लिए टैप करें. इसे एक जगह से दूसरी जगह ले जाने के लिए खींचें और छोड़ें.""जब चाहें, बबल्स को कंट्रोल करें"
- "इस ऐप्लिकेशन पर बबल्स को बंद करने के लिए \'मैनेज करें\' पर टैप करें"
+ "इस ऐप्लिकेशन पर बबल्स को बंद करने के लिए \'प्रबंधित करें\' पर टैप करें""ठीक है"
- "हाल ही के कोई बबल्स नहीं हैं"
+ "हाल ही के बबल्स मौजूद नहीं हैं""हाल ही के बबल्स और हटाए गए बबल्स यहां दिखेंगे""बबल""मैनेज करें""बबल खारिज किया गया."
- "टैप करके ऐप्लिकेशन को रीस्टार्ट करें और बेहतर व्यू पाएं."
+ "इस ऐप्लिकेशन को रीस्टार्ट करने और फ़ुल स्क्रीन पर देखने के लिए टैप करें.""क्या कैमरे से जुड़ी कोई समस्या है?\nफिर से फ़िट करने के लिए टैप करें""क्या समस्या ठीक नहीं हुई?\nपहले जैसा करने के लिए टैप करें""क्या कैमरे से जुड़ी कोई समस्या नहीं है? खारिज करने के लिए टैप करें."
- "पूरी जानकारी लेकर, बेहतर तरीके से काम करें"
- "स्प्लिट स्क्रीन के लिए, दूसरे ऐप्लिकेशन को खींचें और छोड़ें"
- "किसी ऐप्लिकेशन की जगह बदलने के लिए, उसके बाहर दो बार टैप करें"
+ "कुछ ऐप्लिकेशन, पोर्ट्रेट मोड में सबसे अच्छी तरह काम करते हैं"
+ "जगह का पूरा इस्तेमाल करने के लिए, इनमें से किसी एक विकल्प को आज़माएं"
+ "फ़ुल स्क्रीन मोड में जाने के लिए, डिवाइस को घुमाएं"
+ "किसी ऐप्लिकेशन की जगह बदलने के लिए, उसके बगल में दो बार टैप करें""ठीक है"
- "ज़्यादा जानकारी के लिए बड़ा करें."
- "बड़ा करें"
- "विंडो छोटी करें"
- "बंद करें"
- "वापस जाएं"
- "हैंडल"
- "फ़ुलस्क्रीन"
- "डेस्कटॉप मोड"
- "स्प्लिट स्क्रीन मोड"
- "ज़्यादा देखें"
- "फ़्लोट"
diff --git a/libs/WindowManager/Shell/res/values-hi/strings_tv.xml b/libs/WindowManager/Shell/res/values-hi/strings_tv.xml
index e0227253b2dc577dd928be6ba4d941bc45accbd8..d897ac73f80d213315576fd1d6c848ebc38c1583 100644
--- a/libs/WindowManager/Shell/res/values-hi/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-hi/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"पिक्चर में पिक्चर""(कोई शीर्षक कार्यक्रम नहीं)"
- "बंद करें"
+ "PIP बंद करें""फ़ुल स्क्रीन"
- "ले जाएं"
- "बड़ा करें"
- "छोटा करें"
+ "पीआईपी को दूसरी जगह लेकर जाएं"
+ "पीआईपी विंडो को बड़ा करें"
+ "पीआईपी विंडो को छोटा करें"" कंट्रोल मेन्यू पर जाने के लिए, "" होम बटन"" दो बार दबाएं"
- "पिक्चर में पिक्चर मेन्यू."
- "बाईं ओर ले जाएं"
- "दाईं ओर ले जाएं"
- "ऊपर ले जाएं"
- "नीचे ले जाएं"
- "हो गया"
diff --git a/libs/WindowManager/Shell/res/values-hr/strings.xml b/libs/WindowManager/Shell/res/values-hr/strings.xml
index 1446e70ecdfad83facee261e13f23c44d180ea7b..5ecc5585a6e9eb1b566fb4a75257692963b006fe 100644
--- a/libs/WindowManager/Shell/res/values-hr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hr/strings.xml
@@ -33,7 +33,6 @@
"Poništite sakrivanje""Aplikacija možda neće funkcionirati s podijeljenim zaslonom.""Aplikacija ne podržava podijeljeni zaslon."
- "Ova se aplikacija može otvoriti samo u jednom prozoru.""Aplikacija možda neće funkcionirati na sekundarnom zaslonu.""Aplikacija ne podržava pokretanje na sekundarnim zaslonima.""Razdjelnik podijeljenog zaslona"
@@ -73,23 +72,13 @@
"Oblačić""Upravljanje""Oblačić odbačen."
- "Dodirnite da biste ponovo pokrenuli tu aplikaciju kako biste bolje vidjeli."
+ "Dodirnite da biste ponovo pokrenuli tu aplikaciju i prikazali je na cijelom zaslonu.""Problemi s fotoaparatom?\nDodirnite za popravak""Problem nije riješen?\nDodirnite za vraćanje""Nemate problema s fotoaparatom? Dodirnite za odbacivanje."
- "Gledajte i učinite više"
- "Povucite drugu aplikaciju unutra da biste podijelili zaslon"
- "Dvaput dodirnite izvan aplikacije da biste je premjestili"
+ "Neke aplikacije najbolje funkcioniraju u portretnom usmjerenju"
+ "Isprobajte jednu od ovih opcija da biste maksimalno iskoristili prostor"
+ "Zakrenite uređaj radi prikaza na cijelom zaslonu"
+ "Dvaput dodirnite pored aplikacije da biste joj promijenili položaj""Shvaćam"
- "Proširite da biste saznali više."
- "Maksimiziraj"
- "Minimiziraj"
- "Zatvori"
- "Natrag"
- "Pokazivač"
- "Puni zaslon"
- "Stolni način rada"
- "Razdvojeni zaslon"
- "Više"
- "Plutajući"
diff --git a/libs/WindowManager/Shell/res/values-hr/strings_tv.xml b/libs/WindowManager/Shell/res/values-hr/strings_tv.xml
index a09e6e805f6323023c2002ac259ca728dec2e821..8f5f3164c4d7d04b583d3b1a210b3f5dedff0d77 100644
--- a/libs/WindowManager/Shell/res/values-hr/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-hr/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Slika u slici""(Program bez naslova)"
- "Zatvori"
+ "Zatvori PIP""Cijeli zaslon"
- "Premjesti"
- "Proširi"
- "Sažmi"
+ "Premjesti PIP"
+ "Proširi PIP"
+ "Sažmi PIP"" Dvaput pritisnite ""POČETNI ZASLON"" za kontrole"
- "Izbornik slike u slici."
- "Pomaknite ulijevo"
- "Pomaknite udesno"
- "Pomaknite prema gore"
- "Pomaknite prema dolje"
- "Gotovo"
diff --git a/libs/WindowManager/Shell/res/values-hu/strings.xml b/libs/WindowManager/Shell/res/values-hu/strings.xml
index 221c329020a020382810aa3aeae3093fe02dc727..2295250e285320a6663cf1e9b5adfbeb87a98c71 100644
--- a/libs/WindowManager/Shell/res/values-hu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hu/strings.xml
@@ -33,7 +33,6 @@
"Félretevés megszüntetése""Lehet, hogy az alkalmazás nem működik osztott képernyős nézetben.""Az alkalmazás nem támogatja az osztott képernyős nézetet."
- "Ez az alkalmazás csak egy ablakban nyitható meg.""Előfordulhat, hogy az alkalmazás nem működik másodlagos kijelzőn.""Az alkalmazást nem lehet másodlagos kijelzőn elindítani.""Elválasztó az osztott nézetben"
@@ -73,23 +72,13 @@
"Buborék""Kezelés""Buborék elvetve."
- "A jobb nézet érdekében koppintson az alkalmazás újraindításához."
+ "Koppintson az alkalmazás újraindításához és a teljes képernyős mód elindításához.""Kamerával kapcsolatos problémába ütközött?\nKoppintson a megoldáshoz.""Nem sikerült a hiba kijavítása?\nKoppintson a visszaállításhoz.""Nincsenek problémái kamerával? Koppintson az elvetéshez."
- "Több mindent láthat és tehet"
- "Húzzon ide egy másik alkalmazást az osztott képernyő használatához"
- "Koppintson duplán az alkalmazáson kívül az áthelyezéséhez"
+ "Egyes alkalmazások álló tájolásban működnek a leghatékonyabban"
+ "Próbálja ki az alábbi beállítások egyikét, hogy a legjobban ki tudja használni képernyő területét"
+ "A teljes képernyős mód elindításához forgassa el az eszközt"
+ "Koppintson duplán az alkalmazás mellett az áthelyezéséhez""Értem"
- "Kibontással további információkhoz juthat."
- "Teljes méret"
- "Kis méret"
- "Bezárás"
- "Vissza"
- "Fogópont"
- "Teljes képernyő"
- "Asztali üzemmód"
- "Osztott képernyő"
- "Továbbiak"
- "Lebegő"
diff --git a/libs/WindowManager/Shell/res/values-hu/strings_tv.xml b/libs/WindowManager/Shell/res/values-hu/strings_tv.xml
index 5e065c2ad4e72d2b5600c8f137624608814024aa..fc8d795891215c1a4836f3c3c113facfabc65ddf 100644
--- a/libs/WindowManager/Shell/res/values-hu/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-hu/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Kép a képben""(Cím nélküli program)"
- "Bezárás"
+ "PIP bezárása""Teljes képernyő"
- "Áthelyezés"
- "Kibontás"
- "Összecsukás"
+ "PIP áthelyezése"
+ "Kép a képben kibontása"
+ "Kép a képben összecsukása"" Vezérlők: "" KEZDŐKÉPERNYŐ "" gomb kétszer megnyomva"
- "Kép a képben menü."
- "Mozgatás balra"
- "Mozgatás jobbra"
- "Mozgatás felfelé"
- "Mozgatás lefelé"
- "Kész"
diff --git a/libs/WindowManager/Shell/res/values-hy/strings.xml b/libs/WindowManager/Shell/res/values-hy/strings.xml
index 7be9941d2a5e7878129b6ed1259ddbd7fc90d6f2..2089365390943e6f835ea1896d85189edf884be9 100644
--- a/libs/WindowManager/Shell/res/values-hy/strings.xml
+++ b/libs/WindowManager/Shell/res/values-hy/strings.xml
@@ -33,7 +33,6 @@
"Ցուցադրել""Հավելվածը չի կարող աշխատել տրոհված էկրանի ռեժիմում։""Հավելվածը չի աջակցում էկրանի տրոհումը:"
- "Այս հավելվածը հնարավոր է բացել միայն մեկ պատուհանում։""Հավելվածը կարող է չաշխատել լրացուցիչ էկրանի վրա""Հավելվածը չի աջակցում գործարկումը լրացուցիչ էկրանների վրա""Տրոհված էկրանի բաժանիչ"
@@ -73,23 +72,13 @@
"Պղպջակ""Կառավարել""Ամպիկը փակվեց։"
- "Հպեք՝ հավելվածը վերագործարկելու և ավելի հարմար տեսք ընտրելու համար։"
+ "Հպեք՝ հավելվածը վերագործարկելու և լիաէկրան ռեժիմին անցնելու համար։""Տեսախցիկի հետ կապված խնդիրնե՞ր կան։\nՀպեք՝ վերակարգավորելու համար։""Չհաջողվե՞ց շտկել։\nՀպեք՝ փոփոխությունները չեղարկելու համար։""Տեսախցիկի հետ կապված խնդիրներ չկա՞ն։ Փակելու համար հպեք։"
- "Միաժամանակ կատարեք մի քանի առաջադրանք"
- "Քաշեք մյուս հավելվածի մեջ՝ էկրանի տրոհումն օգտագործելու համար"
- "Կրկնակի հպեք հավելվածի կողքին՝ այն տեղափոխելու համար"
+ "Որոշ հավելվածներ լավագույնս աշխատում են դիմանկարի ռեժիմում"
+ "Փորձեք այս տարբերակներից մեկը՝ տարածքը հնարավորինս արդյունավետ օգտագործելու համար"
+ "Պտտեք սարքը՝ լիաէկրան ռեժիմին անցնելու համար"
+ "Կրկնակի հպեք հավելվածի կողքին՝ այն տեղափոխելու համար""Եղավ"
- "Ծավալեք՝ ավելին իմանալու համար։"
- "Ծավալել"
- "Ծալել"
- "Փակել"
- "Հետ"
- "Նշիչ"
- "Լիաէկրան"
- "Համակարգչի ռեժիմ"
- "Տրոհված էկրան"
- "Ավելին"
- "Լողացող պատուհան"
diff --git a/libs/WindowManager/Shell/res/values-hy/strings_tv.xml b/libs/WindowManager/Shell/res/values-hy/strings_tv.xml
index 7963abf8972b1c0c1c20de193bb36567d6d41d73..f5665b8dd1669eb0c593c769a801f112662b0376 100644
--- a/libs/WindowManager/Shell/res/values-hy/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-hy/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Նկար նկարի մեջ""(Առանց վերնագրի ծրագիր)"
- "Փակել"
+ "Փակել PIP-ն""Լիէկրան"
- "Տեղափոխել"
- "Ծավալել"
- "Ծալել"
+ "Տեղափոխել PIP-ը"
+ "Ծավալել PIP-ը"
+ "Ծալել PIP-ը"" Կարգավորումների համար կրկնակի սեղմեք ""ԳԼԽԱՎՈՐ ԷԿՐԱՆ"
- "«Նկար նկարի մեջ» ռեժիմի ընտրացանկ։"
- "Տեղափոխել ձախ"
- "Տեղափոխել աջ"
- "Տեղափոխել վերև"
- "Տեղափոխել ներքև"
- "Պատրաստ է"
diff --git a/libs/WindowManager/Shell/res/values-in/strings.xml b/libs/WindowManager/Shell/res/values-in/strings.xml
index 4e760ef6450c308b8a1d969075d233a211fb7efb..1b46b2fe2570bfaa730edea483062faf4ce6b2ae 100644
--- a/libs/WindowManager/Shell/res/values-in/strings.xml
+++ b/libs/WindowManager/Shell/res/values-in/strings.xml
@@ -33,7 +33,6 @@
"Batalkan stash""Aplikasi mungkin tidak berfungsi dengan layar terpisah.""App tidak mendukung layar terpisah."
- "Aplikasi ini hanya dapat dibuka di 1 jendela.""Aplikasi mungkin tidak berfungsi pada layar sekunder.""Aplikasi tidak mendukung peluncuran pada layar sekunder.""Pembagi layar terpisah"
@@ -73,23 +72,13 @@
"Balon""Kelola""Balon ditutup."
- "Ketuk untuk memulai ulang aplikasi ini agar mendapatkan tampilan yang lebih baik."
+ "Ketuk untuk memulai ulang aplikasi ini dan membuka layar penuh.""Masalah kamera?\nKetuk untuk memperbaiki""Tidak dapat diperbaiki?\nKetuk untuk mengembalikan""Tidak ada masalah kamera? Ketuk untuk menutup."
- "Lihat dan lakukan lebih banyak hal"
- "Tarik aplikasi lain untuk menggunakan layar terpisah"
- "Ketuk dua kali di luar aplikasi untuk mengubah posisinya"
+ "Beberapa aplikasi berfungsi paling baik dalam mode potret"
+ "Coba salah satu opsi berikut untuk mengoptimalkan area layar Anda"
+ "Putar perangkat untuk tampilan layar penuh"
+ "Ketuk dua kali di samping aplikasi untuk mengubah posisinya""Oke"
- "Luaskan untuk melihat informasi selengkapnya."
- "Maksimalkan"
- "Minimalkan"
- "Tutup"
- "Kembali"
- "Tuas"
- "Layar Penuh"
- "Mode Desktop"
- "Layar Terpisah"
- "Lainnya"
- "Mengambang"
diff --git a/libs/WindowManager/Shell/res/values-in/strings_tv.xml b/libs/WindowManager/Shell/res/values-in/strings_tv.xml
index 7d37154bb86c0881caf69ca7c8de103b9d48d431..a1535653f679f77e3bd579ae8871a5bd62254f05 100644
--- a/libs/WindowManager/Shell/res/values-in/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-in/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Picture-in-Picture""(Program tanpa judul)"
- "Tutup"
+ "Tutup PIP""Layar penuh"
- "Pindahkan"
- "Luaskan"
- "Ciutkan"
+ "Pindahkan PIP"
+ "Luaskan PIP"
+ "Ciutkan PIP"" Tekan dua kali "" HOME "" untuk membuka kontrol"
- "Menu Picture-in-Picture."
- "Pindahkan ke kiri"
- "Pindahkan ke kanan"
- "Pindahkan ke atas"
- "Pindahkan ke bawah"
- "Selesai"
diff --git a/libs/WindowManager/Shell/res/values-is/strings.xml b/libs/WindowManager/Shell/res/values-is/strings.xml
index 50d4ee7faed683a35a9d09a9f23544eecd2e68d3..a201c95137f384cf6f347447e0ebff6c875fc237 100644
--- a/libs/WindowManager/Shell/res/values-is/strings.xml
+++ b/libs/WindowManager/Shell/res/values-is/strings.xml
@@ -33,7 +33,6 @@
"Taka úr geymslu""Hugsanlega virkar forritið ekki með skjáskiptingu.""Forritið styður ekki að skjánum sé skipt."
- "Aðeins er hægt að opna þetta forrit í 1 glugga.""Hugsanlegt er að forritið virki ekki á öðrum skjá.""Forrit styður ekki opnun á öðrum skjá.""Skjáskipting"
@@ -73,23 +72,13 @@
"Blaðra""Stjórna""Blöðru lokað."
- "Ýta til að endurræsa forritið og fá betri sýn."
+ "Ýttu til að endurræsa forritið og sýna það á öllum skjánum.""Myndavélavesen?\nÝttu til að breyta stærð""Ennþá vesen?\nÝttu til að afturkalla""Ekkert myndavélavesen? Ýttu til að hunsa."
- "Sjáðu og gerðu meira"
- "Dragðu annað forrit inn til að nota skjáskiptingu"
- "Ýttu tvisvar utan við forrit til að færa það"
+ "Sum forrit virka best í skammsniði"
+ "Prófaðu einhvern af eftirfarandi valkostum til að nýta plássið sem best"
+ "Snúðu tækinu til að nota allan skjáinn"
+ "Ýttu tvisvar við hlið forritsins til að færa það""Ég skil"
- "Stækka til að sjá frekari upplýsingar."
- "Stækka"
- "Minnka"
- "Loka"
- "Til baka"
- "Handfang"
- "Allur skjárinn"
- "Skjáborðsstilling"
- "Skjáskipting"
- "Meira"
- "Reikult"
diff --git a/libs/WindowManager/Shell/res/values-is/strings_tv.xml b/libs/WindowManager/Shell/res/values-is/strings_tv.xml
index 1490cb98e03469b71fcf5b0132da0baf11a85d05..70ca1afe3aeaea284ca4133bf5f5ea1e71e607fb 100644
--- a/libs/WindowManager/Shell/res/values-is/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-is/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Mynd í mynd""(Efni án titils)"
- "Loka"
+ "Loka mynd í mynd""Allur skjárinn"
- "Færa"
- "Stækka"
- "Minnka"
+ "Færa innfellda mynd"
+ "Stækka innfellda mynd"
+ "Minnka innfellda mynd"" Ýttu tvisvar á "" HEIM "" til að opna stillingar"
- "Valmynd fyrir mynd í mynd."
- "Færa til vinstri"
- "Færa til hægri"
- "Færa upp"
- "Færa niður"
- "Lokið"
diff --git a/libs/WindowManager/Shell/res/values-it/strings.xml b/libs/WindowManager/Shell/res/values-it/strings.xml
index d2595f7682d2b3e168defaf257e9ff28c19fdfe7..7157ed088d30e124c126fa3290ea9e7a37d889c9 100644
--- a/libs/WindowManager/Shell/res/values-it/strings.xml
+++ b/libs/WindowManager/Shell/res/values-it/strings.xml
@@ -33,7 +33,6 @@
"Annulla accantonamento""L\'app potrebbe non funzionare con lo schermo diviso.""L\'app non supporta la modalità Schermo diviso."
- "Questa app può essere aperta soltanto in 1 finestra.""L\'app potrebbe non funzionare su un display secondario.""L\'app non supporta l\'avvio su display secondari.""Strumento per schermo diviso"
@@ -73,23 +72,13 @@
"Fumetto""Gestisci""Fumetto ignorato."
- "Tocca per riavviare quest\'app per una migliore visualizzazione."
+ "Tocca per riavviare l\'app e passare alla modalità a schermo intero.""Problemi con la fotocamera?\nTocca per risolverli""Il problema non si è risolto?\nTocca per ripristinare""Nessun problema con la fotocamera? Tocca per ignorare."
- "Visualizza più contenuti e fai di più"
- "Trascina in un\'altra app per usare lo schermo diviso"
- "Tocca due volte fuori da un\'app per riposizionarla"
+ "Alcune app funzionano in modo ottimale in verticale"
+ "Prova una di queste opzioni per ottimizzare lo spazio a tua disposizione"
+ "Ruota il dispositivo per passare alla modalità a schermo intero"
+ "Tocca due volte accanto a un\'app per riposizionarla""OK"
- "Espandi per avere ulteriori informazioni."
- "Ingrandisci"
- "Riduci a icona"
- "Chiudi"
- "Indietro"
- "Handle"
- "Schermo intero"
- "Modalità desktop"
- "Schermo diviso"
- "Altro"
- "Mobile"
diff --git a/libs/WindowManager/Shell/res/values-it/strings_tv.xml b/libs/WindowManager/Shell/res/values-it/strings_tv.xml
index a48516f2588efa429f1beaf519f433d916256ca3..cda627517872a4d4cb8b58a7cfe0803799cd45bb 100644
--- a/libs/WindowManager/Shell/res/values-it/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-it/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Picture in picture""(Programma senza titolo)"
- "Chiudi"
+ "Chiudi PIP""Schermo intero"
- "Sposta"
- "Espandi"
- "Comprimi"
+ "Sposta PIP"
+ "Espandi PIP"
+ "Comprimi PIP"" Premi due volte "" HOME "" per aprire i controlli"
- "Menu Picture in picture."
- "Sposta a sinistra"
- "Sposta a destra"
- "Sposta su"
- "Sposta giù"
- "Fine"
diff --git a/libs/WindowManager/Shell/res/values-iw/strings.xml b/libs/WindowManager/Shell/res/values-iw/strings.xml
index 883596ebcd6fdc3b777ca1612764cfc631e60988..52a6b06762226168faa8323fe7d1daddeb4ecabb 100644
--- a/libs/WindowManager/Shell/res/values-iw/strings.xml
+++ b/libs/WindowManager/Shell/res/values-iw/strings.xml
@@ -33,7 +33,6 @@
"ביטול ההסתרה הזמנית""ייתכן שהאפליקציה לא תפעל במסך מפוצל.""האפליקציה אינה תומכת במסך מפוצל."
- "ניתן לפתוח את האפליקציה הזו רק בחלון אחד.""ייתכן שהאפליקציה לא תפעל במסך משני.""האפליקציה אינה תומכת בהפעלה במסכים משניים.""מחלק מסך מפוצל"
@@ -73,23 +72,13 @@
"בועה""ניהול""הבועה נסגרה."
- "כדי לראות טוב יותר יש להקיש ולהפעיל את האפליקציה הזו מחדש."
+ "צריך להקיש כדי להפעיל מחדש את האפליקציה הזו ולעבור למסך מלא.""בעיות במצלמה?\nאפשר להקיש כדי לבצע התאמה מחדש""הבעיה לא נפתרה?\nאפשר להקיש כדי לחזור לגרסה הקודמת""אין בעיות במצלמה? אפשר להקיש כדי לסגור."
- "רוצה לראות ולעשות יותר?"
- "צריך לגרור אפליקציה אחרת כדי להשתמש במסך מפוצל"
- "צריך להקיש הקשה כפולה מחוץ לאפליקציה כדי למקם אותה מחדש"
+ "חלק מהאפליקציות פועלות בצורה הטובה ביותר במצב תצוגה לאורך"
+ "כדי להפיק את המרב משטח המסך, ניתן לנסות את אחת מהאפשרויות האלה"
+ "מסובבים את המכשיר כדי לעבור לתצוגה במסך מלא"
+ "מקישים הקשה כפולה ליד אפליקציה כדי למקם אותה מחדש""הבנתי"
- "מרחיבים כדי לקבל מידע נוסף."
- "הגדלה"
- "מזעור"
- "סגירה"
- "חזרה"
- "נקודת אחיזה"
- "מסך מלא"
- "ממשק המחשב"
- "מסך מפוצל"
- "עוד"
- "בלונים"
diff --git a/libs/WindowManager/Shell/res/values-iw/strings_tv.xml b/libs/WindowManager/Shell/res/values-iw/strings_tv.xml
index 2af1896d3c67311973707799f3dc0367ba1c68d5..30ce97b998ca5b81653752c9e7c830a297ff5701 100644
--- a/libs/WindowManager/Shell/res/values-iw/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-iw/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"תמונה בתוך תמונה""(תוכנית ללא כותרת)"
- "סגירה"
+ "סגירת PIP""מסך מלא"
- "העברה"
- "הרחבה"
- "כיווץ"
+ "העברת תמונה בתוך תמונה (PIP)"
+ "הרחבת חלון תמונה-בתוך-תמונה"
+ "כיווץ של חלון תמונה-בתוך-תמונה"" לחיצה כפולה על "" הלחצן הראשי "" תציג את אמצעי הבקרה"
- "תפריט \'תמונה בתוך תמונה\'."
- "הזזה שמאלה"
- "הזזה ימינה"
- "הזזה למעלה"
- "הזזה למטה"
- "סיום"
diff --git a/libs/WindowManager/Shell/res/values-ja/strings.xml b/libs/WindowManager/Shell/res/values-ja/strings.xml
index 6bb22a29e79be98fda366906909569374e32890f..5a25c24ba034526cbc8cd77578f405058f548786 100644
--- a/libs/WindowManager/Shell/res/values-ja/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ja/strings.xml
@@ -33,7 +33,6 @@
"表示""アプリは分割画面では動作しないことがあります。""アプリで分割画面がサポートされていません。"
- "このアプリはウィンドウが 1 つの場合のみ開くことができます。""アプリはセカンダリ ディスプレイでは動作しないことがあります。""アプリはセカンダリ ディスプレイでの起動に対応していません。""分割画面の分割線"
@@ -73,23 +72,13 @@
"バブル""管理""ふきだしが非表示になっています。"
- "タップしてこのアプリを再起動すると、表示が適切になります。"
+ "タップしてこのアプリを再起動すると、全画面表示になります。""カメラに関する問題の場合は、\nタップすると修正できます""修正されなかった場合は、\nタップすると元に戻ります""カメラに関する問題でない場合は、タップすると閉じます。"
- "表示を拡大して機能を強化"
- "分割画面にするにはもう 1 つのアプリをドラッグしてください"
- "位置を変えるにはアプリの外側をダブルタップしてください"
+ "アプリによっては縦向きにすると正常に動作します"
+ "スペースを最大限に活用するには、以下の方法のいずれかをお試しください"
+ "全画面表示にするにはデバイスを回転させてください"
+ "位置を変えるにはアプリの横をダブルタップしてください""OK"
- "開くと詳細が表示されます。"
- "最大化"
- "最小化"
- "閉じる"
- "戻る"
- "ハンドル"
- "全画面表示"
- "デスクトップ モード"
- "分割画面"
- "その他"
- "フローティング"
diff --git a/libs/WindowManager/Shell/res/values-ja/strings_tv.xml b/libs/WindowManager/Shell/res/values-ja/strings_tv.xml
index bc7dcb7aa029e7147f0f2b448f9e3cbc12046fce..e58e7bf6fabc404e167b5f792e811a966188d585 100644
--- a/libs/WindowManager/Shell/res/values-ja/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-ja/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"ピクチャー イン ピクチャー""(無題の番組)"
- "閉じる"
+ "PIP を閉じる""全画面表示"
- "移動"
- "開く"
- "閉じる"
+ "PIP を移動"
+ "PIP を開く"
+ "PIP を閉じる"" コントロールにアクセス: "" ホーム "" を 2 回押します"
- "ピクチャー イン ピクチャーのメニューです。"
- "左に移動"
- "右に移動"
- "上に移動"
- "下に移動"
- "完了"
diff --git a/libs/WindowManager/Shell/res/values-ka/strings.xml b/libs/WindowManager/Shell/res/values-ka/strings.xml
index 6cf7d7827ee93ae35d1ac24e2444ae78b60356e7..bff86fa6ffe28bb01511674602869345aeb96ea9 100644
--- a/libs/WindowManager/Shell/res/values-ka/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ka/strings.xml
@@ -33,7 +33,6 @@
"გადანახვის გაუქმება""აპმა შეიძლება არ იმუშაოს გაყოფილი ეკრანის რეჟიმში.""ეკრანის გაყოფა არ არის მხარდაჭერილი აპის მიერ."
- "ამ აპის გახსნა შესაძლებელია მხოლოდ 1 ფანჯარაში.""აპმა შეიძლება არ იმუშაოს მეორეულ ეკრანზე.""აპს არ გააჩნია მეორეული ეკრანის მხარდაჭერა.""გაყოფილი ეკრანის რეჟიმის გამყოფი"
@@ -73,23 +72,13 @@
"ბუშტი""მართვა""ბუშტი დაიხურა."
- "შეეხეთ, რომ გადატვირთოთ ეს აპი უკეთესი ხედისთვის."
+ "შეეხეთ ამ აპის გადასატვირთად და გადადით სრულ ეკრანზე.""კამერად პრობლემები აქვს?\nშეეხეთ გამოსასწორებლად""არ გამოსწორდა?\nშეეხეთ წინა ვერსიის დასაბრუნებლად""კამერას პრობლემები არ აქვს? შეეხეთ უარყოფისთვის."
- "მეტის ნახვა და გაკეთება"
- "ეკრანის გასაყოფად ჩავლებით გადაიტანეთ სხვა აპში"
- "ორმაგად შეეხეთ აპის გარშემო სივრცეს, რათა ის სხვაგან გადაიტანოთ"
+ "ზოგიერთი აპი უკეთ მუშაობს პორტრეტის რეჟიმში"
+ "გამოცადეთ ამ ვარიანტებიდან ერთ-ერთი, რათა მაქსიმალურად ისარგებლოთ თქვენი მეხსიერებით"
+ "მოატრიალეთ თქვენი მოწყობილობა სრული ეკრანის გასაშლელად"
+ "ორმაგად შეეხეთ აპის გვერდითა სივრცეს, რათა ის სხვაგან გადაიტანოთ""გასაგებია"
- "დამატებითი ინფორმაციისთვის გააფართოეთ."
- "მაქსიმალურად გაშლა"
- "ჩაკეცვა"
- "დახურვა"
- "უკან"
- "იდენტიფიკატორი"
- "სრულ ეკრანზე"
- "დესკტოპის რეჟიმი"
- "ეკრანის გაყოფა"
- "სხვა"
- "ფარფატი"
diff --git a/libs/WindowManager/Shell/res/values-ka/strings_tv.xml b/libs/WindowManager/Shell/res/values-ka/strings_tv.xml
index 898dac2aca88c4209724a755654b9e39b88a8a4b..b09686646c8b77eedcd1ac685bfc7b1db40dee94 100644
--- a/libs/WindowManager/Shell/res/values-ka/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-ka/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"ეკრანი ეკრანში""(პროგრამის სათაურის გარეშე)"
- "დახურვა"
+ "PIP-ის დახურვა""სრულ ეკრანზე"
- "გადაადგილება"
- "გაშლა"
- "ჩაკეცვა"
+ "PIP გადატანა"
+ "PIP-ის გაშლა"
+ "PIP-ის ჩაკეცვა"" მართვის საშუალებებზე წვდომისთვის ორმაგად დააჭირეთ "" მთავარ ღილაკს "
- "მენიუ „ეკრანი ეკრანში“."
- "მარცხნივ გადატანა"
- "მარჯვნივ გადატანა"
- "ზემოთ გადატანა"
- "ქვემოთ გადატანა"
- "მზადაა"
diff --git a/libs/WindowManager/Shell/res/values-kk/strings.xml b/libs/WindowManager/Shell/res/values-kk/strings.xml
index 216619a232fc186e0195519476dd35eba269387b..f57f3f581c8511ae152bde9c6195660bf8c07f4a 100644
--- a/libs/WindowManager/Shell/res/values-kk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-kk/strings.xml
@@ -33,7 +33,6 @@
"Көрсету""Қолданба экранды бөлу режимінде жұмыс істемеуі мүмкін.""Қодланба бөлінген экранды қолдамайды."
- "Бұл қолданбаны тек 1 терезеден ашуға болады.""Қолданба қосымша дисплейде жұмыс істемеуі мүмкін.""Қолданба қосымша дисплейлерде іске қосуды қолдамайды.""Бөлінген экран бөлгіші"
@@ -73,23 +72,13 @@
"Көпіршік""Басқару""Қалқыма хабар жабылды."
- "Ыңғайлы көріністі реттеу үшін қолданбаны түртіп, өшіріп қосыңыз."
+ "Бұл қолданбаны қайта қосып, толық экранға өту үшін түртіңіз.""Камерада қателер шықты ма?\nЖөндеу үшін түртіңіз.""Жөнделмеді ме?\nҚайтару үшін түртіңіз.""Камерада қателер шықпады ма? Жабу үшін түртіңіз."
- "Қосымша ақпаратты қарап, әрекеттер жасау"
- "Экранды бөлу үшін басқа қолданбаға сүйреңіз."
- "Қолданбаның орнын өзгерту үшін одан тыс жерді екі рет түртіңіз."
+ "Кейбір қолданба портреттік режимде жақсы жұмыс істейді"
+ "Экранды тиімді пайдалану үшін мына опциялардың бірін байқап көріңіз."
+ "Толық экранға ауысу үшін құрылғыңызды бұрыңыз."
+ "Қолданбаның орнын ауыстыру үшін жанынан екі рет түртіңіз.""Түсінікті"
- "Толығырақ ақпарат алу үшін терезені жайыңыз."
- "Жаю"
- "Кішірейту"
- "Жабу"
- "Артқа"
- "Идентификатор"
- "Толық экран"
- "Компьютер режимі"
- "Экранды бөлу"
- "Қосымша"
- "Қалқыма"
diff --git a/libs/WindowManager/Shell/res/values-kk/strings_tv.xml b/libs/WindowManager/Shell/res/values-kk/strings_tv.xml
index cdf564fb4ca045190e658d12ca24da00c7896a66..7bade0dff0d91e31430e25d5d7a152fd9cb19ed6 100644
--- a/libs/WindowManager/Shell/res/values-kk/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-kk/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Суреттегі сурет""(Атаусыз бағдарлама)"
- "Жабу"
+ "PIP жабу""Толық экран"
- "Жылжыту"
- "Жаю"
- "Жию"
+ "PIP клипін жылжыту"
+ "PIP терезесін жаю"
+ "PIP терезесін жию"" Басқару элементтері: "" НЕГІЗГІ ЭКРАН "" түймесін екі рет басыңыз."
- "\"Сурет ішіндегі сурет\" мәзірі."
- "Солға жылжыту"
- "Оңға жылжыту"
- "Жоғары жылжыту"
- "Төмен жылжыту"
- "Дайын"
diff --git a/libs/WindowManager/Shell/res/values-km/strings.xml b/libs/WindowManager/Shell/res/values-km/strings.xml
index 79aca620f3486d4a77575256f48e93f41f3feb4e..5c04f881fe0ed9df29966055e139c2a90e9cac32 100644
--- a/libs/WindowManager/Shell/res/values-km/strings.xml
+++ b/libs/WindowManager/Shell/res/values-km/strings.xml
@@ -33,7 +33,6 @@
"ឈប់លាក់ជាបណ្ដោះអាសន្ន""កម្មវិធីអាចនឹងមិនដំណើរការជាមួយមុខងារបំបែកអេក្រង់ទេ។""កម្មវិធីមិនគាំទ្រអេក្រង់បំបែកជាពីរទេ"
- "កម្មវិធីនេះអាចបើកនៅក្នុងវិនដូតែ 1 ប៉ុណ្ណោះ។""កម្មវិធីនេះប្រហែលជាមិនដំណើរការនៅលើអេក្រង់បន្ទាប់បន្សំទេ។""កម្មវិធីនេះមិនអាចចាប់ផ្តើមនៅលើអេក្រង់បន្ទាប់បន្សំបានទេ។""កម្មវិធីចែកអេក្រង់បំបែក"
@@ -73,23 +72,13 @@
"ពពុះ""គ្រប់គ្រង""បានច្រានចោលសារលេចឡើង។"
- "ចុចដើម្បីចាប់ផ្ដើមកម្មវិធីនេះឡើងវិញសម្រាប់ទិដ្ឋភាពកាន់តែប្រសើរ។"
+ "ចុចដើម្បីចាប់ផ្ដើមកម្មវិធីនេះឡើងវិញ រួចចូលប្រើពេញអេក្រង់។""មានបញ្ហាពាក់ព័ន្ធនឹងកាមេរ៉ាឬ?\nចុចដើម្បីដោះស្រាយ""មិនបានដោះស្រាយបញ្ហានេះទេឬ?\nចុចដើម្បីត្រឡប់""មិនមានបញ្ហាពាក់ព័ន្ធនឹងកាមេរ៉ាទេឬ? ចុចដើម្បីច្រានចោល។"
- "មើលឃើញ និងធ្វើបានកាន់តែច្រើន"
- "អូសកម្មវិធីមួយទៀតចូល ដើម្បីប្រើមុខងារបំបែកអេក្រង់"
- "ចុចពីរដងនៅក្រៅកម្មវិធី ដើម្បីប្ដូរទីតាំងកម្មវិធីនោះ"
+ "កម្មវិធីមួយចំនួនដំណើរការបានប្រសើរបំផុតក្នុងទិសដៅបញ្ឈរ"
+ "សាកល្បងជម្រើសមួយក្នុងចំណោមទាំងនេះ ដើម្បីទទួលបានអត្ថប្រយោជន៍ច្រើនបំផុតពីកន្លែងទំនេររបស់អ្នក"
+ "បង្វិលឧបករណ៍របស់អ្នក ដើម្បីចូលប្រើអេក្រង់ពេញ"
+ "ចុចពីរដងនៅជាប់កម្មវិធីណាមួយ ដើម្បីប្ដូរទីតាំងកម្មវិធីនោះ""យល់ហើយ"
- "ពង្រីកដើម្បីទទួលបានព័ត៌មានបន្ថែម។"
- "ពង្រីក"
- "បង្រួម"
- "បិទ"
- "ថយក្រោយ"
- "ឈ្មោះអ្នកប្រើប្រាស់"
- "អេក្រង់ពេញ"
- "មុខងារកុំព្យូទ័រ"
- "មុខងារបំបែកអេក្រង់"
- "ច្រើនទៀត"
- "អណ្ដែត"
diff --git a/libs/WindowManager/Shell/res/values-km/strings_tv.xml b/libs/WindowManager/Shell/res/values-km/strings_tv.xml
index 1a7ae813c1d390e09ddec66e8c39b35b78c51dd9..721be1fc1650b926063d4a3041babf733d07a568 100644
--- a/libs/WindowManager/Shell/res/values-km/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-km/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"រូបក្នុងរូប""(កម្មវិធីគ្មានចំណងជើង)"
- "បិទ"
+ "បិទ PIP""ពេញអេក្រង់"
- "ផ្លាស់ទី"
- "ពង្រីក"
- "បង្រួម"
+ "ផ្លាស់ទី PIP"
+ "ពង្រីក PIP"
+ "បង្រួម PIP"" ចុចពីរដងលើ""ប៊ូតុងដើម"" ដើម្បីបើកផ្ទាំងគ្រប់គ្រង"
- "ម៉ឺនុយរូបក្នុងរូប"
- "ផ្លាស់ទីទៅឆ្វេង"
- "ផ្លាស់ទីទៅស្តាំ"
- "ផ្លាស់ទីឡើងលើ"
- "ផ្លាស់ទីចុះក្រោម"
- "រួចរាល់"
diff --git a/libs/WindowManager/Shell/res/values-kn/strings.xml b/libs/WindowManager/Shell/res/values-kn/strings.xml
index 9e9333ea422c492661b1fcccce87308211074046..e91383caa0094f1ea9eefd83e332be16e29acd63 100644
--- a/libs/WindowManager/Shell/res/values-kn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-kn/strings.xml
@@ -33,7 +33,6 @@
"ಅನ್ಸ್ಟ್ಯಾಶ್ ಮಾಡಿ""ವಿಭಜಿಸಿದ ಸ್ಕ್ರೀನ್ನಲ್ಲಿ ಆ್ಯಪ್ ಕೆಲಸ ಮಾಡದೇ ಇರಬಹುದು.""ಅಪ್ಲಿಕೇಶನ್ ಸ್ಪ್ಲಿಟ್ ಸ್ಕ್ರೀನ್ ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ."
- "ಈ ಆ್ಯಪ್ ಅನ್ನು 1 ವಿಂಡೋದಲ್ಲಿ ಮಾತ್ರ ತೆರೆಯಬಹುದು.""ಸೆಕೆಂಡರಿ ಡಿಸ್ಪ್ಲೇಗಳಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ ಕಾರ್ಯ ನಿರ್ವಹಿಸದೇ ಇರಬಹುದು.""ಸೆಕೆಂಡರಿ ಡಿಸ್ಪ್ಲೇಗಳಲ್ಲಿ ಪ್ರಾರಂಭಿಸುವಿಕೆಯನ್ನು ಅಪ್ಲಿಕೇಶನ್ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ.""ಸ್ಪ್ಲಿಟ್-ಪರದೆ ಡಿವೈಡರ್"
@@ -73,23 +72,13 @@
"ಬಬಲ್""ನಿರ್ವಹಿಸಿ""ಬಬಲ್ ವಜಾಗೊಳಿಸಲಾಗಿದೆ."
- "ಉತ್ತಮ ವೀಕ್ಷಣೆಗಾಗಿ ಈ ಆ್ಯಪ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ."
+ "ಈ ಆ್ಯಪ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಲು ಮತ್ತು ಪೂರ್ಣ ಸ್ಕ್ರೀನ್ನಲ್ಲಿ ನೋಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ.""ಕ್ಯಾಮರಾ ಸಮಸ್ಯೆಗಳಿವೆಯೇ?\nಮರುಹೊಂದಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ""ಅದನ್ನು ಸರಿಪಡಿಸಲಿಲ್ಲವೇ?\nಹಿಂತಿರುಗಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ""ಕ್ಯಾಮರಾ ಸಮಸ್ಯೆಗಳಿಲ್ಲವೇ? ವಜಾಗೊಳಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ."
- "ನೋಡಿ ಮತ್ತು ಹೆಚ್ಚಿನದನ್ನು ಮಾಡಿ"
- "ಸ್ಪ್ಲಿಟ್ ಸ್ಕ್ರೀನ್ಗಾಗಿ ಮತ್ತೊಂದು ಆ್ಯಪ್ನಲ್ಲಿ ಎಳೆಯಿರಿ"
- "ಆ್ಯಪ್ ಒಂದರ ಸ್ಥಾನವನ್ನು ಬದಲಾಯಿಸಲು ಅದರ ಹೊರಗೆ ಡಬಲ್-ಟ್ಯಾಪ್ ಮಾಡಿ"
+ "ಕೆಲವು ಆ್ಯಪ್ಗಳು ಪೋರ್ಟ್ರೇಟ್ ಮೋಡ್ನಲ್ಲಿ ಅತ್ಯುತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ"
+ "ನಿಮ್ಮ ಸ್ಥಳಾವಕಾಶದ ಅತಿಹೆಚ್ಚು ಪ್ರಯೋಜನ ಪಡೆಯಲು ಈ ಆಯ್ಕೆಗಳಲ್ಲಿ ಒಂದನ್ನು ಬಳಸಿ ನೋಡಿ"
+ "ಪೂರ್ಣ ಸ್ಕ್ರೀನ್ಗೆ ಹೋಗಲು ನಿಮ್ಮ ಸಾಧನವನ್ನು ತಿರುಗಿಸಿ"
+ "ಆ್ಯಪ್ ಒಂದರ ಸ್ಥಾನವನ್ನು ಬದಲಾಯಿಸಲು ಅದರ ಪಕ್ಕದಲ್ಲಿ ಡಬಲ್-ಟ್ಯಾಪ್ ಮಾಡಿ""ಸರಿ"
- "ಇನ್ನಷ್ಟು ಮಾಹಿತಿಗಾಗಿ ವಿಸ್ತೃತಗೊಳಿಸಿ."
- "ಹಿಗ್ಗಿಸಿ"
- "ಕುಗ್ಗಿಸಿ"
- "ಮುಚ್ಚಿರಿ"
- "ಹಿಂದಕ್ಕೆ"
- "ಹ್ಯಾಂಡಲ್"
- "ಫುಲ್ಸ್ಕ್ರೀನ್"
- "ಡೆಸ್ಕ್ಟಾಪ್ ಮೋಡ್"
- "ಸ್ಪ್ಲಿಟ್ ಸ್ಕ್ರೀನ್"
- "ಇನ್ನಷ್ಟು"
- "ಫ್ಲೋಟ್"
diff --git a/libs/WindowManager/Shell/res/values-kn/strings_tv.xml b/libs/WindowManager/Shell/res/values-kn/strings_tv.xml
index 45de068c80a0af9123ed05d9e6e4017303379004..8310c8a1169ca362893cb1c6be4e1661ef95d63f 100644
--- a/libs/WindowManager/Shell/res/values-kn/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-kn/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ""(ಶೀರ್ಷಿಕೆ ರಹಿತ ಕಾರ್ಯಕ್ರಮ)"
- "ಮುಚ್ಚಿರಿ"
+ "PIP ಮುಚ್ಚಿ""ಪೂರ್ಣ ಪರದೆ"
- "ಸರಿಸಿ"
- "ವಿಸ್ತೃತಗೊಳಿಸಿ"
- "ಕುಗ್ಗಿಸಿ"
+ "PIP ಅನ್ನು ಸರಿಸಿ"
+ "ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರವನ್ನು ವಿಸ್ತರಿಸಿ"
+ "ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರವನ್ನು ಕುಗ್ಗಿಸಿ"" ಕಂಟ್ರೋಲ್ಗಳಿಗಾಗಿ "" ಹೋಮ್ "" ಅನ್ನು ಎರಡು ಬಾರಿ ಒತ್ತಿ"
- "ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ ಮೆನು."
- "ಎಡಕ್ಕೆ ಸರಿಸಿ"
- "ಬಲಕ್ಕೆ ಸರಿಸಿ"
- "ಮೇಲಕ್ಕೆ ಸರಿಸಿ"
- "ಕೆಳಗೆ ಸರಿಸಿ"
- "ಮುಗಿದಿದೆ"
diff --git a/libs/WindowManager/Shell/res/values-ko/strings.xml b/libs/WindowManager/Shell/res/values-ko/strings.xml
index f9b495a38f4fd7966a62e1f3342fae434e3dd08f..104ba3f22c960214cf6187ff16f548629c1a0a65 100644
--- a/libs/WindowManager/Shell/res/values-ko/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ko/strings.xml
@@ -33,7 +33,6 @@
"숨기기 취소""앱이 분할 화면에서 작동하지 않을 수 있습니다.""앱이 화면 분할을 지원하지 않습니다."
- "이 앱은 창 1개에서만 열 수 있습니다.""앱이 보조 디스플레이에서 작동하지 않을 수도 있습니다.""앱이 보조 디스플레이에서의 실행을 지원하지 않습니다.""화면 분할기"
@@ -73,23 +72,13 @@
"버블""관리""대화창을 닫았습니다."
- "보기를 개선하려면 탭하여 앱을 다시 시작합니다."
+ "탭하여 이 앱을 다시 시작하고 전체 화면으로 이동합니다.""카메라 문제가 있나요?\n해결하려면 탭하세요.""해결되지 않았나요?\n되돌리려면 탭하세요.""카메라에 문제가 없나요? 닫으려면 탭하세요."
- "더 많은 정보를 보고 더 많은 작업을 처리하세요"
- "화면 분할을 사용하려면 다른 앱을 드래그해 가져옵니다."
- "앱 위치를 조정하려면 앱 외부를 두 번 탭합니다."
+ "일부 앱은 세로 모드에서 가장 잘 작동함"
+ "공간을 최대한 이용할 수 있도록 이 옵션 중 하나를 시도해 보세요."
+ "전체 화면 모드로 전환하려면 기기를 회전하세요."
+ "앱 위치를 조정하려면 앱 옆을 두 번 탭하세요.""확인"
- "추가 정보는 펼쳐서 확인하세요."
- "최대화"
- "최소화"
- "닫기"
- "뒤로"
- "핸들"
- "전체 화면"
- "데스크톱 모드"
- "화면 분할"
- "더보기"
- "플로팅"
diff --git a/libs/WindowManager/Shell/res/values-ko/strings_tv.xml b/libs/WindowManager/Shell/res/values-ko/strings_tv.xml
index 9e8f1f1258a564b38be9fe71e79730a5b8660052..a3e055a515a1cdddcdde70768c242ef68118f931 100644
--- a/libs/WindowManager/Shell/res/values-ko/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-ko/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"PIP 모드""(제목 없는 프로그램)"
- "닫기"
+ "PIP 닫기""전체화면"
- "이동"
- "펼치기"
- "접기"
+ "PIP 이동"
+ "PIP 펼치기"
+ "PIP 접기"" 제어 메뉴에 액세스하려면 "" 홈 ""을 두 번 누르세요."
- "PIP 모드 메뉴입니다."
- "왼쪽으로 이동"
- "오른쪽으로 이동"
- "위로 이동"
- "아래로 이동"
- "완료"
diff --git a/libs/WindowManager/Shell/res/values-ky/strings.xml b/libs/WindowManager/Shell/res/values-ky/strings.xml
index 0858cfc0a652437d3a2030b099aa8eb1ce6f1212..8203622a33fcf4b768c5a1caa5fd0405000e481f 100644
--- a/libs/WindowManager/Shell/res/values-ky/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ky/strings.xml
@@ -19,7 +19,7 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Жабуу""Жайып көрсөтүү"
- "Параметрлер"
+ "Жөндөөлөр""Экранды бөлүү режимине өтүү""Меню""%s – сүрөт ичиндеги сүрөт"
@@ -33,7 +33,6 @@
"Сейфтен чыгаруу""Колдонмодо экран бөлүнбөшү мүмкүн.""Колдонмодо экран бөлүнбөйт."
- "Бул колдонмону 1 терезеде гана ачууга болот.""Колдонмо кошумча экранда иштебей коюшу мүмкүн.""Колдонмону кошумча экрандарда иштетүүгө болбойт.""Экранды бөлгүч"
@@ -51,16 +50,16 @@
"Чыгуу үчүн экранды ылдый жагынан өйдө сүрүңүз же колдонмонун өйдө жагын басыңыз""Бир кол режимин баштоо""Бир кол режиминен чыгуу"
- "%1$s калкып чыкма билдирмелер параметрлери"
+ "%1$s калкып чыкма билдирмелер жөндөөлөрү""Кошумча меню""Кайра топтомго кошуу""%2$s колдонмосунан %1$s""%2$s жана дагы %3$d колдонмодон %1$s""Жогорку сол жакка жылдыруу"
- "Жогорку оң жакка жылдыруу"
+ "Жогорку оң жакка жылдырыңыз""Төмөнкү сол жакка жылдыруу"
- "Төмөнкү оң жакка жылдыруу"
- "%1$s параметрлери"
+ "Төмөнкү оң жакка жылдырыңыз"
+ "%1$s жөндөөлөрү""Калкып чыкма билдирмени жабуу""Жазышууда калкып чыкма билдирмелер көрүнбөсүн""Калкып чыкма билдирмелер аркылуу маектешүү"
@@ -73,23 +72,13 @@
"Көбүк""Башкаруу""Калкып чыкма билдирме жабылды."
- "Жакшыраак көрүү үчүн бул колдонмону өчүрүп күйгүзүңүз. Ал үчүн таптап коюңуз."
+ "Бул колдонмону өчүрүп күйгүзүп, толук экранга өтүү үчүн таптап коюңуз.""Камерада маселелер келип чыктыбы?\nОңдоо үчүн таптаңыз""Оңдолгон жокпу?\nАртка кайтаруу үчүн таптаңыз""Камерада маселе жокпу? Этибарга албоо үчүн таптаңыз."
- "Көрүп, көбүрөөк нерселерди жасаңыз"
- "Экранды бөлүү үчүн башка колдонмону сүйрөңүз"
- "Колдонмону жылдыруу үчүн сырт жагын эки жолу таптаңыз"
+ "Айрым колдонмолорду тигинен иштетүү туура болот"
+ "Иш чөйрөсүнүн бардык мүмкүнчүлүктөрүн пайдалануу үчүн бул параметрлердин бирин колдонуп көрүңүз"
+ "Толук экран режимине өтүү үчүн түзмөктү буруңуз"
+ "Колдонмонун ракурсун өзгөртүү үчүн анын тушуна эки жолу басыңыз""Түшүндүм"
- "Толук маалымат алуу үчүн жайып көрүңүз."
- "Чоңойтуу"
- "Кичирейтүү"
- "Жабуу"
- "Артка"
- "Маркер"
- "Толук экран"
- "Компьютер режими"
- "Экранды бөлүү"
- "Дагы"
- "Калкыма"
diff --git a/libs/WindowManager/Shell/res/values-ky/strings_tv.xml b/libs/WindowManager/Shell/res/values-ky/strings_tv.xml
index 19fac5876bb0cb9129683029865c582f3b8b251c..887ac52c8e435c427d0b56ebb2410233a2d80b77 100644
--- a/libs/WindowManager/Shell/res/values-ky/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-ky/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Сүрөттөгү сүрөт""(Аталышы жок программа)"
- "Жабуу"
+ "PIP\'ти жабуу""Толук экран"
- "Жылдыруу"
- "Жайып көрсөтүү"
- "Жыйыштыруу"
+ "PIP\'ти жылдыруу"
+ "PIP\'ти жайып көрсөтүү"
+ "PIP\'ти жыйыштыруу"" Башкаруу элементтерин ачуу үчүн "" БАШКЫ БЕТ "" баскычын эки жолу басыңыз"
- "Сүрөт ичиндеги сүрөт менюсу."
- "Солго жылдыруу"
- "Оңго жылдыруу"
- "Жогору жылдыруу"
- "Төмөн жылдыруу"
- "Бүттү"
diff --git a/libs/WindowManager/Shell/res/values-lo/strings.xml b/libs/WindowManager/Shell/res/values-lo/strings.xml
index 8e42aa346669b44d3d9710261eefb3090d651bc3..24396786f9d805cbe15d64ed2c9bb61fd2e659e0 100644
--- a/libs/WindowManager/Shell/res/values-lo/strings.xml
+++ b/libs/WindowManager/Shell/res/values-lo/strings.xml
@@ -33,7 +33,6 @@
"ເອົາອອກຈາກບ່ອນເກັບສ່ວນຕົວ""ແອັບອາດໃຊ້ບໍ່ໄດ້ກັບການແບ່ງໜ້າຈໍ.""ແອັບບໍ່ຮອງຮັບໜ້າຈໍແບບແຍກກັນ."
- "ແອັບນີ້ສາມາດເປີດໄດ້ໃນ 1 ໜ້າຈໍເທົ່ານັ້ນ.""ແອັບອາດບໍ່ສາມາດໃຊ້ໄດ້ໃນໜ້າຈໍທີສອງ.""ແອັບບໍ່ຮອງຮັບການເປີດໃນໜ້າຈໍທີສອງ.""ຕົວຂັ້ນການແບ່ງໜ້າຈໍ"
@@ -73,23 +72,13 @@
"ຟອງ""ຈັດການ""ປິດ Bubble ໄສ້ແລ້ວ."
- "ແຕະເພື່ອຣີສະຕາດແອັບນີ້ເພື່ອມຸມມອງທີ່ດີຂຶ້ນ."
+ "ແຕະເພື່ອຣີສະຕາດແອັບນີ້ ແລະ ໃຊ້ແບບເຕັມຈໍ.""ມີບັນຫາກ້ອງຖ່າຍຮູບບໍ?\nແຕະເພື່ອປັບໃໝ່""ບໍ່ໄດ້ແກ້ໄຂມັນບໍ?\nແຕະເພື່ອແປງກັບຄືນ""ບໍ່ມີບັນຫາກ້ອງຖ່າຍຮູບບໍ? ແຕະເພື່ອປິດໄວ້."
- "ເບິ່ງ ແລະ ເຮັດຫຼາຍຂຶ້ນ"
- "ລາກແອັບອື່ນເຂົ້າມາເພື່ອແບ່ງໜ້າຈໍ"
- "ແຕະສອງເທື່ອໃສ່ນອກແອັບໃດໜຶ່ງເພື່ອຈັດຕຳແໜ່ງຂອງມັນຄືນໃໝ່"
+ "ແອັບບາງຢ່າງເຮັດວຽກໄດ້ດີທີ່ສຸດໃນໂໝດລວງຕັ້ງ"
+ "ໃຫ້ລອງຕົວເລືອກໃດໜຶ່ງເຫຼົ່ານີ້ເພື່ອໃຊ້ປະໂຫຍດຈາກພື້ນທີ່ຂອງທ່ານໃຫ້ໄດ້ສູງສຸດ"
+ "ໝຸນອຸປະກອນຂອງທ່ານເພື່ອໃຊ້ແບບເຕັມຈໍ"
+ "ແຕະສອງເທື່ອໃສ່ຖັດຈາກແອັບໃດໜຶ່ງເພື່ອຈັດຕຳແໜ່ງຂອງມັນຄືນໃໝ່""ເຂົ້າໃຈແລ້ວ"
- "ຂະຫຍາຍເພື່ອເບິ່ງຂໍ້ມູນເພີ່ມເຕີມ."
- "ຂະຫຍາຍໃຫຍ່ສຸດ"
- "ຫຍໍ້ລົງ"
- "ປິດ"
- "ກັບຄືນ"
- "ມືບັງຄັບ"
- "ເຕັມຈໍ"
- "ໂໝດເດັສທັອບ"
- "ແບ່ງໜ້າຈໍ"
- "ເພີ່ມເຕີມ"
- "ລອຍ"
diff --git a/libs/WindowManager/Shell/res/values-lo/strings_tv.xml b/libs/WindowManager/Shell/res/values-lo/strings_tv.xml
index 6cd0f37c516c247b0f1055953aa8d3691e122164..91c4a033356d5cb8204017ac4ea882fdb9531e45 100644
--- a/libs/WindowManager/Shell/res/values-lo/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-lo/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"ການສະແດງຜົນຊ້ອນກັນ""(ໂປຣແກຣມບໍ່ມີຊື່)"
- "ປິດ"
+ "ປິດ PIP""ເຕັມໜ້າຈໍ"
- "ຍ້າຍ"
- "ຂະຫຍາຍ"
- "ຫຍໍ້"
+ "ຍ້າຍ PIP"
+ "ຂະຫຍາຍ PIP"
+ "ຫຍໍ້ PIP ລົງ"" ກົດ "" HOME "" ສອງເທື່ອສຳລັບການຄວບຄຸມ"
- "ເມນູການສະແດງຜົນຊ້ອນກັນ."
- "ຍ້າຍໄປຊ້າຍ"
- "ຍ້າຍໄປຂວາ"
- "ຍ້າຍຂຶ້ນ"
- "ຍ້າຍລົງ"
- "ແລ້ວໆ"
diff --git a/libs/WindowManager/Shell/res/values-lt/strings.xml b/libs/WindowManager/Shell/res/values-lt/strings.xml
index dc9969095cf53fe81b1ec0bd6af0d99bbbb867da..e2ae643ad308695113064e0b91cb216e2dcfe57b 100644
--- a/libs/WindowManager/Shell/res/values-lt/strings.xml
+++ b/libs/WindowManager/Shell/res/values-lt/strings.xml
@@ -33,7 +33,6 @@
"Nebeslėpti""Programa gali neveikti naudojant išskaidyto ekrano režimą.""Programoje nepalaikomas skaidytas ekranas."
- "Šią programą galima atidaryti tik viename lange.""Programa gali neveikti antriniame ekrane.""Programa nepalaiko paleisties antriniuose ekranuose.""Skaidyto ekrano daliklis"
@@ -73,23 +72,13 @@
"Debesėlis""Tvarkyti""Debesėlio atsisakyta."
- "Palieskite, kad iš naujo paleistumėte šią programą ir matytumėte aiškiau."
+ "Palieskite, kad paleistumėte iš naujo šią programą ir įjungtumėte viso ekrano režimą.""Iškilo problemų dėl kameros?\nPalieskite, kad pritaikytumėte iš naujo""Nepavyko pataisyti?\nPalieskite, kad grąžintumėte""Nėra jokių problemų dėl kameros? Palieskite, kad atsisakytumėte."
- "Daugiau turinio ir funkcijų"
- "Vilkite kitoje programoje, kad galėtumėte naudoti išskaidyto ekrano režimą"
- "Dukart palieskite už programos ribų, kad pakeistumėte jos poziciją"
+ "Kai kurios programos geriausiai veikia stačiuoju režimu"
+ "Pabandykite naudoti vieną iš šių parinkčių, kad išnaudotumėte visą vietą"
+ "Pasukite įrenginį, kad įjungtumėte viso ekrano režimą"
+ "Dukart palieskite šalia programos, kad pakeistumėte jos poziciją""Supratau"
- "Išskleiskite, jei reikia daugiau informacijos."
- "Padidinti"
- "Sumažinti"
- "Uždaryti"
- "Atgal"
- "Rankenėlė"
- "Visas ekranas"
- "Stalinio kompiuterio režimas"
- "Išskaidyto ekrano režimas"
- "Daugiau"
- "Slankusis langas"
diff --git a/libs/WindowManager/Shell/res/values-lt/strings_tv.xml b/libs/WindowManager/Shell/res/values-lt/strings_tv.xml
index 52017dca2b941e7203e3fdbff4deb347da03c5fe..04265ca01b4819e32dab6e8a090ef135644cb7ab 100644
--- a/libs/WindowManager/Shell/res/values-lt/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-lt/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Vaizdas vaizde""(Programa be pavadinimo)"
- "Uždaryti"
+ "Uždaryti PIP""Visas ekranas"
- "Perkelti"
- "Išskleisti"
- "Sutraukti"
+ "Perkelti PIP"
+ "Iškleisti PIP"
+ "Sutraukti PIP"" Jei reikia valdiklių, dukart paspauskite ""PAGRINDINIS"
- "Vaizdo vaizde meniu."
- "Perkelti kairėn"
- "Perkelti dešinėn"
- "Perkelti aukštyn"
- "Perkelti žemyn"
- "Atlikta"
diff --git a/libs/WindowManager/Shell/res/values-lv/strings.xml b/libs/WindowManager/Shell/res/values-lv/strings.xml
index bd2eef42690b57a28a2a3d8efd3186988e317b95..a77160bc262a714634a7301c67b331179721f638 100644
--- a/libs/WindowManager/Shell/res/values-lv/strings.xml
+++ b/libs/WindowManager/Shell/res/values-lv/strings.xml
@@ -33,7 +33,6 @@
"Rādīt""Iespējams, lietotne nedarbosies ekrāna sadalīšanas režīmā.""Lietotnē netiek atbalstīta ekrāna sadalīšana."
- "Šo lietotni var atvērt tikai vienā logā.""Lietotne, iespējams, nedarbosies sekundārajā displejā.""Lietotnē netiek atbalstīta palaišana sekundārajos displejos.""Ekrāna sadalītājs"
@@ -73,23 +72,13 @@
"Burbulis""Pārvaldīt""Burbulis ir noraidīts."
- "Pieskarieties, lai restartētu šo lietotni un uzlabotu attēlojumu."
+ "Pieskarieties, lai restartētu šo lietotni un pārietu pilnekrāna režīmā.""Vai ir problēmas ar kameru?\nPieskarieties, lai tās novērstu.""Vai problēma netika novērsta?\nPieskarieties, lai atjaunotu.""Vai nav problēmu ar kameru? Pieskarieties, lai nerādītu."
- "Uzziniet un paveiciet vairāk"
- "Lai izmantotu sadalītu ekrānu, ievelciet vēl vienu lietotni"
- "Lai pārvietotu lietotni, veiciet dubultskārienu ārpus lietotnes"
+ "Dažas lietotnes vislabāk darbojas portreta režīmā"
+ "Izmēģiniet vienu no šīm iespējām, lai efektīvi izmantotu pieejamo vietu"
+ "Pagrieziet ierīci, lai aktivizētu pilnekrāna režīmu"
+ "Veiciet dubultskārienu blakus lietotnei, lai manītu tās pozīciju""Labi"
- "Izvērsiet, lai iegūtu plašāku informāciju."
- "Maksimizēt"
- "Minimizēt"
- "Aizvērt"
- "Atpakaļ"
- "Turis"
- "Pilnekrāna režīms"
- "Darbvirsmas režīms"
- "Sadalīt ekrānu"
- "Vairāk"
- "Peldošs"
diff --git a/libs/WindowManager/Shell/res/values-lv/strings_tv.xml b/libs/WindowManager/Shell/res/values-lv/strings_tv.xml
index 11abac6f61971ad11a120ef2ca2116a5fbe334e0..8c6191e00833e9d3bef26f9270aa882315533f93 100644
--- a/libs/WindowManager/Shell/res/values-lv/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-lv/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Attēls attēlā""(Programma bez nosaukuma)"
- "Aizvērt"
+ "Aizvērt PIP""Pilnekrāna režīms"
- "Pārvietot"
- "Izvērst"
- "Sakļaut"
+ "Pārvietot attēlu attēlā"
+ "Izvērst “Attēls attēlā” logu"
+ "Sakļaut “Attēls attēlā” logu"" Atvērt vadīklas: divreiz nospiediet pogu ""SĀKUMS"
- "Izvēlne attēlam attēlā."
- "Pārvietot pa kreisi"
- "Pārvietot pa labi"
- "Pārvietot augšup"
- "Pārvietot lejup"
- "Gatavs"
diff --git a/libs/WindowManager/Shell/res/values-mk/strings.xml b/libs/WindowManager/Shell/res/values-mk/strings.xml
index d133654ba7778c1b59ef5d6cab4b1d9987fe83da..bac0c9eee4c2642e6183e5c33a7118c46f1fe800 100644
--- a/libs/WindowManager/Shell/res/values-mk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mk/strings.xml
@@ -33,7 +33,6 @@
"Прикажете""Апликацијата може да не работи со поделен екран.""Апликацијата не поддржува поделен екран."
- "Апликацијава може да се отвори само во еден прозорец.""Апликацијата може да не функционира на друг екран.""Апликацијата не поддржува стартување на други екрани.""Разделник на поделен екран"
@@ -73,23 +72,13 @@
"Балонче""Управувајте""Балончето е отфрлено."
- "Допрете за да ја рестартирате апликацијава за подобар приказ."
+ "Допрете за да ја рестартирате апликацијава и да ја отворите на цел екран.""Проблеми со камерата?\nДопрете за да се совпадне повторно""Не се поправи?\nДопрете за враќање""Нема проблеми со камерата? Допрете за отфрлање."
- "Погледнете и направете повеќе"
- "Повлечете во друга апликација за поделен екран"
- "Допрете двапати надвор од некоја апликација за да ја преместите"
+ "Некои апликации најдобро работат во режим на портрет"
+ "Испробајте една од опцииве за да го извлечете максимумот од вашиот простор"
+ "Ротирајте го уредот за да отворите на цел екран"
+ "Допрете двапати до некоја апликација за да ја преместите""Сфатив"
- "Проширете за повеќе информации."
- "Зголеми"
- "Минимизирај"
- "Затвори"
- "Назад"
- "Прекар"
- "Цел екран"
- "Режим за компјутер"
- "Поделен екран"
- "Повеќе"
- "Лебдечко"
diff --git a/libs/WindowManager/Shell/res/values-mk/strings_tv.xml b/libs/WindowManager/Shell/res/values-mk/strings_tv.xml
index 21293223b88219ee952a3f47ffb63b93ff6eee49..beef1fef862b1c0baa4e0c3ffbeb395bd5482fcf 100644
--- a/libs/WindowManager/Shell/res/values-mk/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-mk/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Слика во слика""(Програма без наслов)"
- "Затвори"
+ "Затвори PIP""Цел екран"
- "Премести"
- "Прошири"
- "Собери"
+ "Премести PIP"
+ "Прошири ја сликата во слика"
+ "Собери ја сликата во слика"" Притиснете двапати на "" HOME "" за контроли"
- "Мени за „Слика во слика“."
- "Премести налево"
- "Премести надесно"
- "Премести нагоре"
- "Премести надолу"
- "Готово"
diff --git a/libs/WindowManager/Shell/res/values-ml/strings.xml b/libs/WindowManager/Shell/res/values-ml/strings.xml
index 16927bf19523d78809057b69255cc476a29fecdd..de0f837fcd3f72b9515536cadd5f88c743379d70 100644
--- a/libs/WindowManager/Shell/res/values-ml/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ml/strings.xml
@@ -33,7 +33,6 @@
"അൺസ്റ്റാഷ് ചെയ്യൽ""സ്ക്രീൻ വിഭജന മോഡിൽ ആപ്പ് പ്രവർത്തിച്ചേക്കില്ല.""സ്പ്ലിറ്റ്-സ്ക്രീനിനെ ആപ്പ് പിന്തുണയ്ക്കുന്നില്ല."
- "ഈ ആപ്പ് ഒരു വിൻഡോയിൽ മാത്രമേ തുറക്കാനാകൂ.""രണ്ടാം ഡിസ്പ്ലേയിൽ ആപ്പ് പ്രവർത്തിച്ചേക്കില്ല.""രണ്ടാം ഡിസ്പ്ലേകളിൽ സമാരംഭിക്കുന്നതിനെ ആപ്പ് അനുവദിക്കുന്നില്ല.""സ്പ്ലിറ്റ്-സ്ക്രീൻ ഡിവൈഡർ"
@@ -73,23 +72,13 @@
"ബബിൾ""മാനേജ് ചെയ്യുക""ബബിൾ ഡിസ്മിസ് ചെയ്തു."
- "മികച്ച കാഴ്ചയ്ക്കായി ഈ ആപ്പ് റീസ്റ്റാർട്ട് ചെയ്യാൻ ടാപ്പ് ചെയ്യുക."
+ "ഈ ആപ്പ് റീസ്റ്റാർട്ട് ചെയ്ത് പൂർണ്ണ സ്ക്രീനിലേക്ക് മാറാൻ ടാപ്പ് ചെയ്യുക.""ക്യാമറ പ്രശ്നങ്ങളുണ്ടോ?\nശരിയാക്കാൻ ടാപ്പ് ചെയ്യുക""അത് പരിഹരിച്ചില്ലേ?\nപുനഃസ്ഥാപിക്കാൻ ടാപ്പ് ചെയ്യുക""ക്യാമറാ പ്രശ്നങ്ങളൊന്നുമില്ലേ? നിരസിക്കാൻ ടാപ്പ് ചെയ്യുക."
- "കൂടുതൽ കാണുക, ചെയ്യുക"
- "സ്ക്രീൻ വിഭജന മോഡിന്, മറ്റൊരു ആപ്പ് വലിച്ചിടുക"
- "ആപ്പിന്റെ സ്ഥാനം മാറ്റാൻ അതിന് പുറത്ത് ഡബിൾ ടാപ്പ് ചെയ്യുക"
+ "ചില ആപ്പുകൾ പോർട്രെയ്റ്റിൽ മികച്ച രീതിയിൽ പ്രവർത്തിക്കുന്നു"
+ "നിങ്ങളുടെ ഇടം പരമാവധി പ്രയോജനപ്പെടുത്താൻ ഈ ഓപ്ഷനുകളിലൊന്ന് പരീക്ഷിക്കുക"
+ "പൂർണ്ണ സ്ക്രീനിലേക്ക് മാറാൻ ഈ ഉപകരണം റൊട്ടേറ്റ് ചെയ്യുക"
+ "ഒരു ആപ്പിന്റെ സ്ഥാനം മാറ്റാൻ, അതിന് തൊട്ടടുത്ത് ഡബിൾ ടാപ്പ് ചെയ്യുക""മനസ്സിലായി"
- "കൂടുതൽ വിവരങ്ങൾക്ക് വികസിപ്പിക്കുക."
- "വലുതാക്കുക"
- "ചെറുതാക്കുക"
- "അടയ്ക്കുക"
- "മടങ്ങുക"
- "ഹാൻഡിൽ"
- "പൂർണ്ണസ്ക്രീൻ"
- "ഡെസ്ക്ടോപ്പ് മോഡ്"
- "സ്ക്രീൻ വിഭജനം"
- "കൂടുതൽ"
- "ഫ്ലോട്ട്"
diff --git a/libs/WindowManager/Shell/res/values-ml/strings_tv.xml b/libs/WindowManager/Shell/res/values-ml/strings_tv.xml
index 549e39b211015be3e5953548e296a60cf18e1bfc..c2a532d09647fc23decf8954d29f260cc2cd00cc 100644
--- a/libs/WindowManager/Shell/res/values-ml/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-ml/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"ചിത്രത്തിനുള്ളിൽ ചിത്രം""(പേരില്ലാത്ത പ്രോഗ്രാം)"
- "അടയ്ക്കുക"
+ "PIP അടയ്ക്കുക""പൂര്ണ്ണ സ്ക്രീന്"
- "നീക്കുക"
- "വികസിപ്പിക്കുക"
- "ചുരുക്കുക"
+ "PIP നീക്കുക"
+ "PIP വികസിപ്പിക്കുക"
+ "PIP ചുരുക്കുക"" നിയന്ത്രണങ്ങൾക്കായി "" ഹോം "" രണ്ട് തവണ അമർത്തുക"
- "ചിത്രത്തിനുള്ളിൽ ചിത്രം മെനു."
- "ഇടത്തേക്ക് നീക്കുക"
- "വലത്തേക്ക് നീക്കുക"
- "മുകളിലേക്ക് നീക്കുക"
- "താഴേക്ക് നീക്കുക"
- "പൂർത്തിയായി"
diff --git a/libs/WindowManager/Shell/res/values-mn/strings.xml b/libs/WindowManager/Shell/res/values-mn/strings.xml
index 264f9a0a4db9c724214f26bdff27963851e93622..1205306e0833b98a26b3f554e089896855c46e69 100644
--- a/libs/WindowManager/Shell/res/values-mn/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mn/strings.xml
@@ -33,7 +33,6 @@
"Ил гаргах""Апп хуваагдсан дэлгэц дээр ажиллахгүй байж болзошгүй.""Энэ апп нь дэлгэц хуваах тохиргоог дэмждэггүй."
- "Энэ аппыг зөвхөн 1 цонхонд нээх боломжтой.""Апп хоёрдогч дэлгэцэд ажиллахгүй.""Аппыг хоёрдогч дэлгэцэд эхлүүлэх боломжгүй.""\"Дэлгэц хуваах\" хуваагч"
@@ -73,23 +72,13 @@
"Бөмбөлөг""Удирдах""Бөмбөлгийг үл хэрэгссэн."
- "Харагдах байдлыг сайжруулахын тулд энэ аппыг товшиж, дахин эхлүүлнэ үү."
+ "Энэ аппыг дахин эхлүүлж, бүтэн дэлгэцэд орохын тулд товшино уу.""Камерын асуудал гарсан уу?\nДахин тааруулахын тулд товшино уу""Үүнийг засаагүй юу?\nБуцаахын тулд товшино уу""Камерын асуудал байхгүй юу? Хаахын тулд товшино уу."
- "Харж илүү ихийг хий"
- "Дэлгэцийг хуваахын тулд өөр апп руу чирнэ үү"
- "Аппыг дахин байрлуулахын тулд гадна талд нь хоёр товшино"
+ "Зарим апп нь босоо чиглэлд хамгийн сайн ажилладаг"
+ "Орон зайгаа сайтар ашиглахын тулд эдгээр сонголтуудын аль нэгийг туршиж үзээрэй"
+ "Төхөөрөмжөө бүтэн дэлгэцээр үзэхийн тулд эргүүлнэ"
+ "Аппыг дахин байрлуулахын тулд хажууд нь хоёр товшино""Ойлголоо"
- "Нэмэлт мэдээлэл авах бол дэлгэнэ үү."
- "Томруулах"
- "Багасгах"
- "Хаах"
- "Буцах"
- "Бариул"
- "Бүтэн дэлгэц"
- "Дэлгэцийн горим"
- "Дэлгэцийг хуваах"
- "Бусад"
- "Хөвөгч"
diff --git a/libs/WindowManager/Shell/res/values-mn/strings_tv.xml b/libs/WindowManager/Shell/res/values-mn/strings_tv.xml
index 9a85d96ca60260e993b07d706941ae00ddda06aa..bf8c59b573599a1af3a6b032f247d66cec8bef9e 100644
--- a/libs/WindowManager/Shell/res/values-mn/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-mn/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Дэлгэц доторх дэлгэц""(Гарчиггүй хөтөлбөр)"
- "Хаах"
+ "PIP-г хаах""Бүтэн дэлгэц"
- "Зөөх"
- "Дэлгэх"
- "Хураах"
+ "PIP-г зөөх"
+ "PIP-г дэлгэх"
+ "PIP-г хураах"" Хяналтад хандах бол "" HOME "" дээр хоёр дарна уу"
- "Дэлгэцэн доторх дэлгэцийн цэс."
- "Зүүн тийш зөөх"
- "Баруун тийш зөөх"
- "Дээш зөөх"
- "Доош зөөх"
- "Болсон"
diff --git a/libs/WindowManager/Shell/res/values-mr/strings.xml b/libs/WindowManager/Shell/res/values-mr/strings.xml
index 7a475edcd964cb0bb4a4239e5fdb1e25806b1079..c91d06fdf3d50cf8247e7347f446ee7e565c6e4f 100644
--- a/libs/WindowManager/Shell/res/values-mr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-mr/strings.xml
@@ -33,7 +33,6 @@
"अनस्टॅश करा""अॅप कदाचित स्प्लिट स्क्रीनसह काम करू शकत नाही.""अॅप स्क्रीन-विभाजनास समर्थन देत नाही."
- "हे अॅप फक्त एका विंडोमध्ये उघडले जाऊ शकते.""दुसऱ्या डिस्प्लेवर अॅप कदाचित चालणार नाही.""दुसऱ्या डिस्प्लेवर अॅप लाँच होणार नाही.""विभाजित-स्क्रीन विभाजक"
@@ -73,23 +72,13 @@
"बबल""व्यवस्थापित करा""बबल डिसमिस केला."
- "अधिक चांगल्या व्ह्यूसाठी हे अॅप रीस्टार्ट करण्याकरिता टॅप करा."
+ "हे अॅप रीस्टार्ट करण्यासाठी आणि फुल स्क्रीन करण्यासाठी टॅप करा.""कॅमेराशी संबंधित काही समस्या आहेत का?\nपुन्हा फिट करण्यासाठी टॅप करा""निराकरण झाले नाही?\nरिव्हर्ट करण्यासाठी कृपया टॅप करा""कॅमेराशी संबंधित कोणत्याही समस्या नाहीत का? डिसमिस करण्यासाठी टॅप करा."
- "पहा आणि आणखी बरेच काही करा"
- "स्प्लिट-स्क्रीन वापरण्यासाठी दुसऱ्या ॲपमध्ये ड्रॅग करा"
- "ॲपची स्थिती पुन्हा बदलण्यासाठी, त्याच्या बाहेर दोनदा टॅप करा"
+ "काही ॲप्स पोर्ट्रेटमध्ये सर्वोत्तम काम करतात"
+ "तुमच्या स्पेसचा पुरेपूर वापर करण्यासाठी, यांपैकी एक पर्याय वापरून पहा"
+ "फुल स्क्रीन करण्यासाठी, तुमचे डिव्हाइस फिरवा"
+ "ॲपची स्थिती पुन्हा बदलण्यासाठी, त्याच्या शेजारी दोनदा टॅप करा""समजले"
- "अधिक माहितीसाठी विस्तार करा."
- "मोठे करा"
- "लहान करा"
- "बंद करा"
- "मागे जा"
- "हँडल"
- "फुलस्क्रीन"
- "डेस्कटॉप मोड"
- "स्प्लिट स्क्रीन"
- "आणखी"
- "फ्लोट"
diff --git a/libs/WindowManager/Shell/res/values-mr/strings_tv.xml b/libs/WindowManager/Shell/res/values-mr/strings_tv.xml
index a9779b3a3e89e64b42ff5c35cc7c2a40265f4d48..5d519b7afe9ad699b3e0cb1c8fa8771c9e001ca1 100644
--- a/libs/WindowManager/Shell/res/values-mr/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-mr/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"चित्रात-चित्र""(शीर्षक नसलेला कार्यक्रम)"
- "बंद करा"
+ "PIP बंद करा""फुल स्क्रीन"
- "हलवा"
- "विस्तार करा"
- "कोलॅप्स करा"
+ "PIP हलवा"
+ "PIP चा विस्तार करा"
+ "PIP कोलॅप्स करा"" नियंत्रणांसाठी "" होम "" दोनदा दाबा"
- "चित्रात-चित्र मेनू."
- "डावीकडे हलवा"
- "उजवीकडे हलवा"
- "वर हलवा"
- "खाली हलवा"
- "पूर्ण झाले"
diff --git a/libs/WindowManager/Shell/res/values-ms/strings.xml b/libs/WindowManager/Shell/res/values-ms/strings.xml
index be1dc24ccfcb76406536c2ea8b6bb2bbc9c29d2e..652a9919d1631a70688e715ad7f460c2d3988c65 100644
--- a/libs/WindowManager/Shell/res/values-ms/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ms/strings.xml
@@ -33,7 +33,6 @@
"Tunjukkan""Apl mungkin tidak berfungsi dengan skrin pisah.""Apl tidak menyokong skrin pisah."
- "Apl ini hanya boleh dibuka dalam 1 tetingkap.""Apl mungkin tidak berfungsi pada paparan kedua.""Apl tidak menyokong pelancaran pada paparan kedua.""Pembahagi skrin pisah"
@@ -73,23 +72,13 @@
"Gelembung""Urus""Gelembung diketepikan."
- "Ketik untuk memulakan semula apl ini untuk mendapatkan paparan yang lebih baik."
+ "Ketik untuk memulakan semula apl ini dan menggunakan skrin penuh.""Isu kamera?\nKetik untuk memuatkan semula""Isu tidak dibetulkan?\nKetik untuk kembali""Tiada isu kamera? Ketik untuk mengetepikan."
- "Lihat dan lakukan lebih"
- "Seret apl lain untuk skrin pisah"
- "Ketik dua kali di luar apl untuk menempatkan semula apl itu"
+ "Sesetengah apl berfungsi paling baik dalam mod potret"
+ "Cuba salah satu daripada pilihan ini untuk memanfaatkan ruang anda sepenuhnya"
+ "Putar peranti anda untuk beralih ke skrin penuh"
+ "Ketik dua kali bersebelahan apl untuk menempatkan semula apl""OK"
- "Kembangkan untuk mendapatkan maklumat lanjut."
- "Maksimumkan"
- "Minimumkan"
- "Tutup"
- "Kembali"
- "Pemegang"
- "Skrin penuh"
- "Mod Desktop"
- "Skrin Pisah"
- "Lagi"
- "Terapung"
diff --git a/libs/WindowManager/Shell/res/values-ms/strings_tv.xml b/libs/WindowManager/Shell/res/values-ms/strings_tv.xml
index 8fe992d9f3b95379fc1b86be29042ea8f6e331b9..08642c47c91a9b466aa838484bbde86cf43a4920 100644
--- a/libs/WindowManager/Shell/res/values-ms/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-ms/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Gambar dalam Gambar""(Program tiada tajuk)"
- "Tutup"
+ "Tutup PIP""Skrin penuh"
- "Alih"
- "Kembangkan"
- "Kuncupkan"
+ "Alihkan PIP"
+ "Kembangkan PIP"
+ "Kuncupkan PIP"" Tekan dua kali "" LAMAN UTAMA "" untuk mengakses kawalan"
- "Menu Gambar dalam Gambar."
- "Alih ke kiri"
- "Alih ke kanan"
- "Alih ke atas"
- "Alih ke bawah"
- "Selesai"
diff --git a/libs/WindowManager/Shell/res/values-my/strings.xml b/libs/WindowManager/Shell/res/values-my/strings.xml
index 7b2b7c5dd01ec30e05e0d9418ade31b3d7389291..15d182c6451eb6ebe13fdc29b459639974eb258b 100644
--- a/libs/WindowManager/Shell/res/values-my/strings.xml
+++ b/libs/WindowManager/Shell/res/values-my/strings.xml
@@ -33,7 +33,6 @@
"မသိုဝှက်ရန်""မျက်နှာပြင် ခွဲ၍ပြသခြင်းဖြင့် အက်ပ်သည် အလုပ်မလုပ်ပါ။""အက်ပ်သည် မျက်နှာပြင်ခွဲပြရန် ပံ့ပိုးထားခြင်းမရှိပါ။"
- "ဤအက်ပ်ကို ဝင်းဒိုး ၁ ခုတွင်သာ ဖွင့်နိုင်သည်။""ဤအက်ပ်အနေဖြင့် ဒုတိယဖန်သားပြင်ပေါ်တွင် အလုပ်လုပ်မည် မဟုတ်ပါ။""ဤအက်ပ်အနေဖြင့် ဖွင့်ရန်စနစ်ကို ဒုတိယဖန်သားပြင်မှ အသုံးပြုရန် ပံ့ပိုးမထားပါ။""မျက်နှာပြင်ခွဲခြမ်း ပိုင်းခြားပေးသည့်စနစ်"
@@ -67,29 +66,19 @@
"စကားဝိုင်းအသစ်များကို မျောနေသည့် သင်္ကေတများ သို့မဟုတ် ပူဖောင်းကွက်များအဖြစ် မြင်ရပါမည်။ ပူဖောင်းကွက်ကိုဖွင့်ရန် တို့ပါ။ ရွှေ့ရန် ၎င်းကို ဖိဆွဲပါ။""ပူဖောင်းကွက်ကို အချိန်မရွေး ထိန်းချုပ်ရန်""ဤအက်ပ်မှနေ၍ ပူဖောင်းများကို ပိတ်ရန်အတွက် \'စီမံရန်\' ကို တို့ပါ"
- "နားလည်ပြီ"
+ "ရပြီ""လတ်တလော ပူဖောင်းကွက်များ မရှိပါ""လတ်တလော ပူဖောင်းကွက်များနှင့် ပိတ်လိုက်သော ပူဖောင်းကွက်များကို ဤနေရာတွင် မြင်ရပါမည်""ပူဖောင်းဖောက်သံ""စီမံရန်""ပူဖောင်းကွက် ဖယ်လိုက်သည်။"
- "ပိုကောင်းသောမြင်ကွင်းအတွက် ဤအက်ပ်ပြန်စရန် တို့နိုင်သည်။"
+ "ဤအက်ပ်ကို ပြန်စပြီး ဖန်သားပြင်အပြည့်လုပ်ရန် တို့ပါ။""ကင်မရာပြဿနာလား။\nပြင်ဆင်ရန် တို့ပါ""ကောင်းမသွားဘူးလား။\nပြန်ပြောင်းရန် တို့ပါ""ကင်မရာပြဿနာ မရှိဘူးလား။ ပယ်ရန် တို့ပါ။"
- "ကြည့်ပြီး ပိုမိုလုပ်ဆောင်ပါ"
- "မျက်နှာပြင် ခွဲ၍ပြသနိုင်ရန် နောက်အက်ပ်တစ်ခုကို ဖိဆွဲပါ"
- "နေရာပြန်ချရန် အက်ပ်အပြင်ဘက်ကို နှစ်ချက်တို့ပါ"
- "နားလည်ပြီ"
- "နောက်ထပ်အချက်အလက်များအတွက် ချဲ့နိုင်သည်။"
- "ချဲ့ရန်"
- "ချုံ့ရန်"
- "ပိတ်ရန်"
- "နောက်သို့"
- "သုံးသူအမည်"
- "ဖန်သားပြင်အပြည့်"
- "ဒက်စ်တော့မုဒ်"
- "မျက်နှာပြင် ခွဲ၍ပြသရန်"
- "ပိုပြပါ"
- "မျှောရန်"
+ "အချို့အက်ပ်များသည် ဒေါင်လိုက်တွင် အကောင်းဆုံးလုပ်ဆောင်သည်"
+ "သင့်နေရာကို အကောင်းဆုံးအသုံးပြုနိုင်ရန် ဤရွေးစရာများထဲမှ တစ်ခုကို စမ်းကြည့်ပါ"
+ "ဖန်သားပြင်အပြည့်လုပ်ရန် သင့်စက်ကို လှည့်နိုင်သည်"
+ "အက်ပ်နေရာပြန်ချရန် ၎င်းဘေးတွင် နှစ်ချက်တို့နိုင်သည်"
+ "ရပြီ"
diff --git a/libs/WindowManager/Shell/res/values-my/strings_tv.xml b/libs/WindowManager/Shell/res/values-my/strings_tv.xml
index 105628d8149ee10b5bb40401810c9af9d93bb67e..e01daee115cac73415bce66c0397ed2e6ef158fa 100644
--- a/libs/WindowManager/Shell/res/values-my/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-my/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"နှစ်ခုထပ်၍ကြည့်ခြင်း""(ခေါင်းစဉ်မဲ့ အစီအစဉ်)"
- "ပိတ်ရန်"
+ "PIP ကိုပိတ်ပါ""မျက်နှာပြင် အပြည့်"
- "ရွှေ့ရန်"
- "ချဲ့ရန်"
- "လျှော့ပြရန်"
+ "PIP ရွှေ့ရန်"
+ "PIP ကို ချဲ့ရန်"
+ "PIP ကို လျှော့ပြပါ"" ထိန်းချုပ်မှုအတွက် "" ပင်မခလုတ် "" နှစ်ချက်နှိပ်ပါ"
- "နှစ်ခုထပ်၍ ကြည့်ခြင်းမီနူး။"
- "ဘယ်သို့ရွှေ့ရန်"
- "ညာသို့ရွှေ့ရန်"
- "အပေါ်သို့ရွှေ့ရန်"
- "အောက်သို့ရွှေ့ရန်"
- "ပြီးပြီ"
diff --git a/libs/WindowManager/Shell/res/values-nb/strings.xml b/libs/WindowManager/Shell/res/values-nb/strings.xml
index 3e18b4968464ce6cd7427b5cf846c20ebd9215bc..9fd42b2f129c3174beff935d38179d2bc3f55f6d 100644
--- a/libs/WindowManager/Shell/res/values-nb/strings.xml
+++ b/libs/WindowManager/Shell/res/values-nb/strings.xml
@@ -33,7 +33,6 @@
"Avslutt oppbevaring""Det kan hende at appen ikke fungerer med delt skjerm.""Appen støtter ikke delt skjerm."
- "Denne appen kan bare åpnes i ett vindu.""Appen fungerer kanskje ikke på en sekundær skjerm.""Appen kan ikke kjøres på sekundære skjermer.""Skilleelement for delt skjerm"
@@ -64,8 +63,8 @@
"Lukk boblen""Ikke vis samtaler i bobler""Chat med bobler"
- "Nye samtaler vises som flytende ikoner eller bobler. Trykk for å åpne en boble. Dra for å flytte den."
- "Kontroller bobler når som helst"
+ "Nye samtaler vises som flytende ikoner eller bobler. Trykk for å åpne bobler. Dra for å flytte dem."
+ "Kontrollér bobler når som helst""Trykk på Administrer for å slå av bobler for denne appen""Greit""Ingen nylige bobler"
@@ -73,23 +72,13 @@
"Boble""Administrer""Boblen er avvist."
- "Trykk for å starte denne appen på nytt for bedre visning."
+ "Trykk for å starte denne appen på nytt og vise den i fullskjerm.""Har du kameraproblemer?\nTrykk for å tilpasse""Ble ikke problemet løst?\nTrykk for å gå tilbake""Har du ingen kameraproblemer? Trykk for å lukke."
- "Se og gjør mer"
- "Dra inn en annen app for å bruke delt skjerm"
- "Dobbelttrykk utenfor en app for å flytte den"
+ "Noen apper fungerer best i stående format"
+ "Prøv et av disse alternativene for å få mest mulig ut av plassen din"
+ "Roter enheten for å starte fullskjerm"
+ "Dobbelttrykk ved siden av en app for å flytte den""Greit"
- "Vis for å få mer informasjon."
- "Maksimer"
- "Minimer"
- "Lukk"
- "Tilbake"
- "Håndtak"
- "Fullskjerm"
- "Skrivebordmodus"
- "Delt skjerm"
- "Mer"
- "Svevende"
diff --git a/libs/WindowManager/Shell/res/values-nb/strings_tv.xml b/libs/WindowManager/Shell/res/values-nb/strings_tv.xml
index ca63518df7a5ab96247faa20a6782dd1a02c081b..65ed0b7f5bff5b9e398328f07245f054d3846978 100644
--- a/libs/WindowManager/Shell/res/values-nb/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-nb/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Bilde-i-bilde""(Program uten tittel)"
- "Lukk"
+ "Lukk PIP""Fullskjerm"
- "Flytt"
- "Vis"
- "Skjul"
+ "Flytt BIB"
+ "Vis BIB"
+ "Skjul BIB"" Dobbelttrykk på ""HJEM"" for å åpne kontroller"
- "Bilde-i-bilde-meny."
- "Flytt til venstre"
- "Flytt til høyre"
- "Flytt opp"
- "Flytt ned"
- "Ferdig"
diff --git a/libs/WindowManager/Shell/res/values-ne/strings.xml b/libs/WindowManager/Shell/res/values-ne/strings.xml
index 4b10f5a1a886b03b811314cddfd0172ecb936163..8dfec88cc29ded8acdc3425553c2c586164555d0 100644
--- a/libs/WindowManager/Shell/res/values-ne/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ne/strings.xml
@@ -33,7 +33,6 @@
"अनस्ट्यास गर्नुहोस्""एप विभाजित स्क्रिनमा काम नगर्न सक्छ।""अनुप्रयोगले विभाजित-स्क्रिनलाई समर्थन गर्दैन।"
- "यो एप एउटा विन्डोमा मात्र खोल्न मिल्छ।""यो एपले सहायक प्रदर्शनमा काम नगर्नसक्छ।""अनुप्रयोगले सहायक प्रदर्शनहरूमा लञ्च सुविधालाई समर्थन गर्दैन।""विभाजित-स्क्रिन छुट्याउने"
@@ -73,23 +72,13 @@
"बबल""व्यवस्थापन गर्नुहोस्""बबल हटाइयो।"
- "यो एप अझ राम्रो हेर्न मिल्ने बनाउनका लागि यसलाई रिस्टार्ट गर्न ट्याप गर्नुहोस्।"
+ "यो एप रिस्टार्ट गर्न ट्याप गर्नुहोस् र फुल स्क्रिन मोडमा जानुहोस्।""क्यामेरासम्बन्धी समस्या देखियो?\nसमस्या हल गर्न ट्याप गर्नुहोस्""समस्या हल भएन?\nपहिलेको जस्तै बनाउन ट्याप गर्नुहोस्""क्यामेरासम्बन्धी कुनै पनि समस्या छैन? खारेज गर्न ट्याप गर्नुहोस्।"
- "थप कुरा हेर्नुहोस् र गर्नुहोस्"
- "स्प्लिट स्क्रिन मोड प्रयोग गर्न अर्को एप ड्रयाग एन्ड ड्रप गर्नुहोस्"
- "तपाईं जुन एपको स्थिति मिलाउन चाहनुहुन्छ सोही एपको बाहिर डबल ट्याप गर्नुहोस्"
+ "केही एपहरूले पोर्ट्रेटमा राम्रोसँग काम गर्छन्"
+ "तपाईं स्क्रिनको अधिकतम ठाउँ प्रयोग गर्न चाहनुहुन्छ भने यीमध्ये कुनै विकल्प प्रयोग गरी हेर्नुहोस्"
+ "तपाईं फुल स्क्रिन मोड हेर्न चाहनुहुन्छ भने आफ्नो डिभाइस रोटेट गर्नुहोस्"
+ "तपाईं जुन एपको स्थिति मिलाउन चाहनुहुन्छ सोही एपको छेउमा डबल ट्याप गर्नुहोस्""बुझेँ"
- "थप जानकारी प्राप्त गर्न चाहनुहुन्छ भने एक्स्पान्ड गर्नुहोस्।"
- "ठुलो बनाउनुहोस्"
- "मिनिमाइज गर्नुहोस्"
- "बन्द गर्नुहोस्"
- "पछाडि"
- "ह्यान्डल"
- "फुल स्क्रिन"
- "डेस्कटप मोड"
- "स्प्लिट स्क्रिन"
- "थप"
- "फ्लोट"
diff --git a/libs/WindowManager/Shell/res/values-ne/strings_tv.xml b/libs/WindowManager/Shell/res/values-ne/strings_tv.xml
index 7cbf9e294e7be7beb1a3ff8b0142670728df78a0..d33fed67efb62ed2514ece85cec40846b4bce63c 100644
--- a/libs/WindowManager/Shell/res/values-ne/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-ne/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Picture-in-Picture""(शीर्षकविहीन कार्यक्रम)"
- "बन्द गर्नुहोस्"
+ "PIP लाई बन्द गर्नुहोस्""फुल स्क्रिन"
- "सार्नुहोस्"
- "एक्स्पान्ड गर्नुहोस्"
- "कोल्याप्स गर्नुहोस्"
+ "PIP सार्नुहोस्"
+ "PIP विन्डो एक्स्पान्ड गर्नु…"
+ "PIP विन्डो कोल्याप्स गर्नुहोस्"" कन्ट्रोल मेनु खोल्न "" होम "" बटन दुई पटक थिच्नुहोस्"
- "\"picture-in-picture\" मेनु।"
- "बायाँतिर सार्नुहोस्"
- "दायाँतिर सार्नुहोस्"
- "माथितिर सार्नुहोस्"
- "तलतिर सार्नुहोस्"
- "सम्पन्न भयो"
diff --git a/libs/WindowManager/Shell/res/values-night/colors.xml b/libs/WindowManager/Shell/res/values-night/colors.xml
index 83c4d93982f4ee9ef14dcfe0165f62f332c364bd..5c6bb57a7f1cf8899e7842b3ac8a0c44d4198bf7 100644
--- a/libs/WindowManager/Shell/res/values-night/colors.xml
+++ b/libs/WindowManager/Shell/res/values-night/colors.xml
@@ -15,6 +15,7 @@
-->
+ #ffffff@color/GM2_grey_200
diff --git a/libs/WindowManager/Shell/res/values-nl/strings.xml b/libs/WindowManager/Shell/res/values-nl/strings.xml
index b056483e3b2dfc855edbc0ee923b602bdcd7e1d6..8468b04c66da3bd51f33dfc52df9334f2305f0a1 100644
--- a/libs/WindowManager/Shell/res/values-nl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-nl/strings.xml
@@ -33,7 +33,6 @@
"Niet meer verbergen""De app werkt mogelijk niet met gesplitst scherm.""App biedt geen ondersteuning voor gesplitst scherm."
- "Deze app kan slechts in 1 venster worden geopend.""App werkt mogelijk niet op een secundair scherm.""App kan niet op secundaire displays worden gestart.""Scheiding voor gesplitst scherm"
@@ -73,23 +72,13 @@
"Bubbel""Beheren""Bubbel gesloten."
- "Tik om deze app opnieuw op te starten voor een betere weergave."
+ "Tik om deze app opnieuw te starten en te openen op het volledige scherm.""Cameraproblemen?\nTik om opnieuw passend te maken.""Is dit geen oplossing?\nTik om terug te zetten.""Geen cameraproblemen? Tik om te sluiten."
- "Zie en doe meer"
- "Sleep een andere app hier naartoe om het scherm te splitsen"
- "Dubbeltik naast een app om deze opnieuw te positioneren"
+ "Sommige apps werken het best in de staande stand"
+ "Probeer een van deze opties om optimaal gebruik te maken van je ruimte"
+ "Draai je apparaat om naar volledig scherm te schakelen"
+ "Dubbeltik naast een app om deze opnieuw te positioneren""OK"
- "Uitvouwen voor meer informatie."
- "Maximaliseren"
- "Minimaliseren"
- "Sluiten"
- "Terug"
- "Gebruikersnaam"
- "Volledig scherm"
- "Desktopmodus"
- "Gesplitst scherm"
- "Meer"
- "Zwevend"
diff --git a/libs/WindowManager/Shell/res/values-nl/strings_tv.xml b/libs/WindowManager/Shell/res/values-nl/strings_tv.xml
index 2deaeddc4080d53386070aa86e29b8e12bd51b17..9763c5665ab2e81a03486ca4a5dddbc8f48cd846 100644
--- a/libs/WindowManager/Shell/res/values-nl/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-nl/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Scherm-in-scherm""(Naamloos programma)"
- "Sluiten"
+ "PIP sluiten""Volledig scherm"
- "Verplaatsen"
- "Uitvouwen"
- "Samenvouwen"
+ "SIS verplaatsen"
+ "SIS uitvouwen"
+ "SIS samenvouwen"" Druk twee keer op "" HOME "" voor bedieningselementen"
- "Scherm-in-scherm-menu."
- "Naar links verplaatsen"
- "Naar rechts verplaatsen"
- "Omhoog verplaatsen"
- "Omlaag verplaatsen"
- "Klaar"
diff --git a/libs/WindowManager/Shell/res/values-or/strings.xml b/libs/WindowManager/Shell/res/values-or/strings.xml
index 5fd81f44bf0de499aa12b87312c85dfb31d3886e..a8d8448edf99e1782cdcff9cc7b4e0fd7aeb2ce4 100644
--- a/libs/WindowManager/Shell/res/values-or/strings.xml
+++ b/libs/WindowManager/Shell/res/values-or/strings.xml
@@ -33,7 +33,6 @@
"ଦେଖାନ୍ତୁ""ସ୍ପ୍ଲିଟ୍-ସ୍କ୍ରିନରେ ଆପ୍ କାମ କରିନପାରେ।""ଆପ୍ ସ୍ପ୍ଲିଟ୍-ସ୍କ୍ରୀନକୁ ସପୋର୍ଟ କରେ ନାହିଁ।"
- "ଏହି ଆପକୁ କେବଳ 1ଟି ୱିଣ୍ଡୋରେ ଖୋଲାଯାଇପାରିବ।""ସେକେଣ୍ଡାରୀ ଡିସପ୍ଲେରେ ଆପ୍ କାମ ନକରିପାରେ।""ସେକେଣ୍ଡାରୀ ଡିସପ୍ଲେରେ ଆପ୍ ଲଞ୍ଚ ସପୋର୍ଟ କରେ ନାହିଁ।""ସ୍ପ୍ଲିଟ୍-ସ୍କ୍ରୀନ ବିଭାଜକ"
@@ -73,23 +72,13 @@
"ବବଲ୍""ପରିଚାଳନା କରନ୍ତୁ""ବବଲ୍ ଖାରଜ କରାଯାଇଛି।"
- "ଏକ ଆହୁରି ଭଲ ଭ୍ୟୁ ପାଇଁ ଏହି ଆପ ରିଷ୍ଟାର୍ଟ କରିବାକୁ ଟାପ କରନ୍ତୁ।"
+ "ଏହି ଆପକୁ ରିଷ୍ଟାର୍ଟ କରି ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ୍ କରିବାକୁ ଟାପ୍ କରନ୍ତୁ।""କ୍ୟାମେରାରେ ସମସ୍ୟା ଅଛି?\nପୁଣି ଫିଟ କରିବାକୁ ଟାପ କରନ୍ତୁ""ଏହାର ସମାଧାନ ହୋଇନାହିଁ?\nଫେରିଯିବା ପାଇଁ ଟାପ କରନ୍ତୁ""କ୍ୟାମେରାରେ କିଛି ସମସ୍ୟା ନାହିଁ? ଖାରଜ କରିବାକୁ ଟାପ କରନ୍ତୁ।"
- "ଦେଖନ୍ତୁ ଏବଂ ଆହୁରି ଅନେକ କିଛି କରନ୍ତୁ"
- "ସ୍ପ୍ଲିଟ-ସ୍କ୍ରିନ ପାଇଁ ଅନ୍ୟ ଏକ ଆପକୁ ଡ୍ରାଗ କରନ୍ତୁ"
- "ଏକ ଆପକୁ ରିପୋଜିସନ କରିବା ପାଇଁ ଏହାର ବାହାରେ ଦୁଇଥର-ଟାପ କରନ୍ତୁ"
+ "କିଛି ଆପ ପୋର୍ଟ୍ରେଟରେ ସବୁଠାରୁ ଭଲ କାମ କରେ"
+ "ଆପଣଙ୍କ ସ୍ପେସରୁ ଅଧିକ ଲାଭ ପାଇବାକୁ ଏହି ବିକଳ୍ପଗୁଡ଼ିକ ମଧ୍ୟରୁ ଗୋଟିଏ ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ"
+ "ପୂର୍ଣ୍ଣ-ସ୍କ୍ରିନ ବ୍ୟବହାର କରିବାକୁ ଆପଣଙ୍କ ଡିଭାଇସକୁ ରୋଟେଟ କରନ୍ତୁ"
+ "ଏକ ଆପକୁ ରିପୋଜିସନ କରିବା ପାଇଁ ଏହା ପାଖରେ ଦୁଇଥର-ଟାପ କରନ୍ତୁ""ବୁଝିଗଲି"
- "ଅଧିକ ସୂଚନା ପାଇଁ ବିସ୍ତାର କରନ୍ତୁ।"
- "ବଡ଼ କରନ୍ତୁ"
- "ଛୋଟ କରନ୍ତୁ"
- "ବନ୍ଦ କରନ୍ତୁ"
- "ପଛକୁ ଫେରନ୍ତୁ"
- "ହେଣ୍ଡେଲ"
- "ପୂର୍ଣ୍ଣସ୍କ୍ରିନ"
- "ଡେସ୍କଟପ ମୋଡ"
- "ସ୍ପ୍ଲିଟ ସ୍କ୍ରିନ"
- "ଅଧିକ"
- "ଫ୍ଲୋଟ"
diff --git a/libs/WindowManager/Shell/res/values-or/strings_tv.xml b/libs/WindowManager/Shell/res/values-or/strings_tv.xml
index 0c1d99e4ca71b960c85f02bfc2e6400770824131..e0344855bd1f2498fcf803cc9f39d4f5f81ab469 100644
--- a/libs/WindowManager/Shell/res/values-or/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-or/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"ପିକଚର୍-ଇନ୍-ପିକଚର୍""(କୌଣସି ଟାଇଟଲ୍ ପ୍ରୋଗ୍ରାମ୍ ନାହିଁ)"
- "ବନ୍ଦ କରନ୍ତୁ"
+ "PIP ବନ୍ଦ କରନ୍ତୁ""ପୂର୍ଣ୍ଣ ସ୍କ୍ରୀନ୍"
- "ମୁଭ କରନ୍ତୁ"
- "ବିସ୍ତାର କରନ୍ତୁ"
- "ସଙ୍କୁଚିତ କରନ୍ତୁ"
+ "PIPକୁ ମୁଭ କରନ୍ତୁ"
+ "PIPକୁ ବିସ୍ତାର କରନ୍ତୁ"
+ "PIPକୁ ସଙ୍କୁଚିତ କରନ୍ତୁ"" ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକ ପାଇଁ "" ହୋମ ବଟନ ""କୁ ଦୁଇଥର ଦବାନ୍ତୁ"
- "ପିକଚର-ଇନ-ପିକଚର ମେନୁ।"
- "ବାମକୁ ମୁଭ କରନ୍ତୁ"
- "ଡାହାଣକୁ ମୁଭ କରନ୍ତୁ"
- "ଉପରକୁ ମୁଭ କରନ୍ତୁ"
- "ତଳକୁ ମୁଭ କରନ୍ତୁ"
- "ହୋଇଗଲା"
diff --git a/libs/WindowManager/Shell/res/values-pa/strings.xml b/libs/WindowManager/Shell/res/values-pa/strings.xml
index ada79d195df2fdf02b578c924d22fb07adb5af8a..f99176cb682dcb2ea4edff10c34f6c398522404c 100644
--- a/libs/WindowManager/Shell/res/values-pa/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pa/strings.xml
@@ -33,7 +33,6 @@
"ਅਣਸਟੈਸ਼""ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਐਪ ਸਪਲਿਟ-ਸਕ੍ਰੀਨ ਨਾਲ ਕੰਮ ਨਾ ਕਰੇ।""ਐਪ ਸਪਲਿਟ-ਸਕ੍ਰੀਨ ਨੂੰ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ।"
- "ਇਹ ਐਪ ਸਿਰਫ਼ 1 ਵਿੰਡੋ ਵਿੱਚ ਖੋਲ੍ਹੀ ਜਾ ਸਕਦੀ ਹੈ।""ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਐਪ ਸੈਕੰਡਰੀ ਡਿਸਪਲੇ \'ਤੇ ਕੰਮ ਨਾ ਕਰੇ।""ਐਪ ਸੈਕੰਡਰੀ ਡਿਸਪਲੇਆਂ \'ਤੇ ਲਾਂਚ ਕਰਨ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ""ਸਪਲਿਟ-ਸਕ੍ਰੀਨ ਡਿਵਾਈਡਰ"
@@ -73,23 +72,13 @@
"ਬੁਲਬੁਲਾ""ਪ੍ਰਬੰਧਨ ਕਰੋ""ਬਬਲ ਨੂੰ ਖਾਰਜ ਕੀਤਾ ਗਿਆ।"
- "ਬਿਹਤਰ ਦ੍ਰਿਸ਼ ਲਈ ਇਸ ਐਪ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"
+ "ਇਸ ਐਪ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ ਅਤੇ ਪੂਰੀ ਸਕ੍ਰੀਨ ਮੋਡ \'ਤੇ ਜਾਓ।""ਕੀ ਕੈਮਰੇ ਸੰਬੰਧੀ ਸਮੱਸਿਆਵਾਂ ਹਨ?\nਮੁੜ-ਫਿੱਟ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ""ਕੀ ਇਹ ਠੀਕ ਨਹੀਂ ਹੋਈ?\nਵਾਪਸ ਉਹੀ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ""ਕੀ ਕੈਮਰੇ ਸੰਬੰਧੀ ਕੋਈ ਸਮੱਸਿਆ ਨਹੀਂ ਹੈ? ਖਾਰਜ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ।"
- "ਦੇਖੋ ਅਤੇ ਹੋਰ ਬਹੁਤ ਕੁਝ ਕਰੋ"
- "ਸਪਲਿਟ ਸਕ੍ਰੀਨ ਦੇ ਲਈ ਕਿਸੇ ਹੋਰ ਐਪ ਵਿੱਚ ਘਸੀਟੋ"
- "ਕਿਸੇ ਐਪ ਦੀ ਜਗ੍ਹਾ ਬਦਲਣ ਲਈ ਉਸ ਦੇ ਬਾਹਰ ਡਬਲ ਟੈਪ ਕਰੋ"
+ "ਕੁਝ ਐਪਾਂ ਪੋਰਟਰੇਟ ਵਿੱਚ ਬਿਹਤਰ ਕੰਮ ਕਰਦੀਆਂ ਹਨ"
+ "ਆਪਣੀ ਜਗ੍ਹਾ ਦਾ ਵੱਧ ਤੋਂ ਵੱਧ ਲਾਹਾ ਲੈਣ ਲਈ ਇਨ੍ਹਾਂ ਵਿਕਲਪਾਂ ਵਿੱਚੋਂ ਕੋਈ ਇੱਕ ਵਰਤ ਕੇ ਦੇਖੋ"
+ "ਪੂਰੀ-ਸਕ੍ਰੀਨ ਮੋਡ \'ਤੇ ਜਾਣ ਲਈ ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਘੁਮਾਓ"
+ "ਕਿਸੇ ਐਪ ਦੀ ਜਗ੍ਹਾ ਬਦਲਣ ਲਈ ਉਸ ਦੇ ਅੱਗੇ ਡਬਲ ਟੈਪ ਕਰੋ""ਸਮਝ ਲਿਆ"
- "ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ ਵਿਸਤਾਰ ਕਰੋ।"
- "ਵੱਡਾ ਕਰੋ"
- "ਛੋਟਾ ਕਰੋ"
- "ਬੰਦ ਕਰੋ"
- "ਪਿੱਛੇ"
- "ਹੈਂਡਲ"
- "ਪੂਰੀ-ਸਕ੍ਰੀਨ"
- "ਡੈਸਕਟਾਪ ਮੋਡ"
- "ਸਪਲਿਟ ਸਕ੍ਰੀਨ"
- "ਹੋਰ"
- "ਫ਼ਲੋਟ"
diff --git a/libs/WindowManager/Shell/res/values-pa/strings_tv.xml b/libs/WindowManager/Shell/res/values-pa/strings_tv.xml
index a1edde7387756f99909df2999be2e33d699ec296..9c01ac3f3cc0e28bee0aa9d65fe4ea29dcef4fda 100644
--- a/libs/WindowManager/Shell/res/values-pa/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-pa/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"ਤਸਵੀਰ-ਵਿੱਚ-ਤਸਵੀਰ""(ਸਿਰਲੇਖ-ਰਹਿਤ ਪ੍ਰੋਗਰਾਮ)"
- "ਬੰਦ ਕਰੋ"
+ "PIP ਬੰਦ ਕਰੋ""ਪੂਰੀ ਸਕ੍ਰੀਨ"
- "ਲਿਜਾਓ"
- "ਵਿਸਤਾਰ ਕਰੋ"
- "ਸਮੇਟੋ"
+ "PIP ਨੂੰ ਲਿਜਾਓ"
+ "PIP ਦਾ ਵਿਸਤਾਰ ਕਰੋ"
+ "PIP ਨੂੰ ਸਮੇਟੋ"" ਕੰਟਰੋਲਾਂ ਲਈ "" ਹੋਮ ਬਟਨ "" ਨੂੰ ਦੋ ਵਾਰ ਦਬਾਓ"
- "ਤਸਵੀਰ-ਵਿੱਚ-ਤਸਵੀਰ ਮੀਨੂ।"
- "ਖੱਬੇ ਲਿਜਾਓ"
- "ਸੱਜੇ ਲਿਜਾਓ"
- "ਉੱਪਰ ਲਿਜਾਓ"
- "ਹੇਠਾਂ ਲਿਜਾਓ"
- "ਹੋ ਗਿਆ"
diff --git a/libs/WindowManager/Shell/res/values-pl/strings.xml b/libs/WindowManager/Shell/res/values-pl/strings.xml
index a97fd5c9ddb0c7a17533221ba125f51e708fd54f..f2147c04d3353d38850d8683fb21f28486cbbc72 100644
--- a/libs/WindowManager/Shell/res/values-pl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pl/strings.xml
@@ -33,7 +33,6 @@
"Zabierz ze schowka""Aplikacja może nie działać przy podzielonym ekranie.""Aplikacja nie obsługuje dzielonego ekranu."
- "Ta aplikacja może być otwarta tylko w 1 oknie.""Aplikacja może nie działać na dodatkowym ekranie.""Aplikacja nie obsługuje uruchamiania na dodatkowych ekranach.""Linia dzielenia ekranu"
@@ -73,23 +72,13 @@
"Dymek""Zarządzaj""Zamknięto dymek"
- "Kliknij, aby zrestartować aplikację i zyskać lepszą widoczność."
+ "Kliknij, by uruchomić tę aplikację ponownie i przejść w tryb pełnoekranowy.""Problemy z aparatem?\nKliknij, aby dopasować""Naprawa się nie udała?\nKliknij, aby cofnąć""Brak problemów z aparatem? Kliknij, aby zamknąć"
- "Zobacz i zrób więcej"
- "Przeciągnij drugą aplikację, aby podzielić ekran"
- "Kliknij dwukrotnie poza aplikacją, aby ją przenieść"
+ "Niektóre aplikacje działają najlepiej w orientacji pionowej"
+ "Wypróbuj jedną z tych opcji, aby jak najlepiej wykorzystać miejsce"
+ "Obróć urządzenie, aby przejść do pełnego ekranu"
+ "Kliknij dwukrotnie obok aplikacji, aby ją przenieść""OK"
- "Rozwiń, aby wyświetlić więcej informacji."
- "Maksymalizuj"
- "Minimalizuj"
- "Zamknij"
- "Wstecz"
- "Uchwyt"
- "Pełny ekran"
- "Tryb pulpitu"
- "Podzielony ekran"
- "Więcej"
- "Pływające"
diff --git a/libs/WindowManager/Shell/res/values-pl/strings_tv.xml b/libs/WindowManager/Shell/res/values-pl/strings_tv.xml
index 2bb90addc241a776f75602502e0374f15c83e183..b922e2d5a6baaf91575131f1a4aeb367116ce997 100644
--- a/libs/WindowManager/Shell/res/values-pl/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-pl/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Obraz w obrazie""(Program bez tytułu)"
- "Zamknij"
+ "Zamknij PIP""Pełny ekran"
- "Przenieś"
- "Rozwiń"
- "Zwiń"
+ "Przenieś PIP"
+ "Rozwiń PIP"
+ "Zwiń PIP"" Naciśnij dwukrotnie ""EKRAN GŁÓWNY"", aby wyświetlić ustawienia"
- "Menu funkcji Obraz w obrazie."
- "Przenieś w lewo"
- "Przenieś w prawo"
- "Przenieś w górę"
- "Przenieś w dół"
- "Gotowe"
diff --git a/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml b/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml
index 8edcddff14e2c8eefce53ebc733273b5a62833a3..2efc5543dd8704a766a63d84fb44edc787e54df5 100644
--- a/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pt-rBR/strings.xml
@@ -33,7 +33,6 @@
"Exibir""É possível que o app não funcione com a tela dividida.""O app não é compatível com a divisão de tela."
- "Este app só pode ser aberto em uma única janela.""É possível que o app não funcione em uma tela secundária.""O app não é compatível com a inicialização em telas secundárias.""Divisor de tela"
@@ -73,23 +72,13 @@
"Bolha""Gerenciar""Balão dispensado."
- "Toque para reiniciar o app e atualizar a visualização."
+ "Toque para reiniciar o app e usar tela cheia.""Problemas com a câmera?\nToque para ajustar o enquadramento""O problema não foi corrigido?\nToque para reverter""Não tem problemas com a câmera? Toque para dispensar."
- "Veja e faça mais"
- "Arraste outro app para a tela dividida"
- "Toque duas vezes fora de um app para reposicionar"
+ "Alguns apps funcionam melhor em modo retrato"
+ "Tente uma destas opções para aproveitar seu espaço ao máximo"
+ "Gire o dispositivo para entrar no modo de tela cheia"
+ "Toque duas vezes ao lado de um app para reposicionar""Entendi"
- "Abra para ver mais informações."
- "Maximizar"
- "Minimizar"
- "Fechar"
- "Voltar"
- "Alça"
- "Tela cheia"
- "Modo área de trabalho"
- "Tela dividida"
- "Mais"
- "Ponto flutuante"
diff --git a/libs/WindowManager/Shell/res/values-pt-rBR/strings_tv.xml b/libs/WindowManager/Shell/res/values-pt-rBR/strings_tv.xml
index 14d1c34fd3e8bd799e33f8b2d583356d6f98778a..cc4eb3c32c1f98ceb07cc2dae964af655d9716f4 100644
--- a/libs/WindowManager/Shell/res/values-pt-rBR/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-pt-rBR/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Picture-in-picture""(programa sem título)"
- "Fechar"
+ "Fechar PIP""Tela cheia"
- "Mover"
- "Abrir"
- "Fechar"
+ "Mover picture-in-picture"
+ "Abrir picture-in-picture"
+ "Fechar picture-in-picture"" Pressione o botão ""home"" duas vezes para acessar os controles"
- "Menu do picture-in-picture"
- "Mover para a esquerda"
- "Mover para a direita"
- "Mover para cima"
- "Mover para baixo"
- "Concluído"
diff --git a/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml b/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml
index e0636d42d980a1ca75552353f9dfe1b02759472b..c68a6934dead605ae203c5971bab94227127fa66 100644
--- a/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml
@@ -33,7 +33,6 @@
"Remover do armazenamento""A app pode não funcionar com o ecrã dividido.""A app não é compatível com o ecrã dividido."
- "Esta app só pode ser aberta em 1 janela.""A app pode não funcionar num ecrã secundário.""A app não é compatível com o início em ecrãs secundários.""Divisor do ecrã dividido"
@@ -73,23 +72,13 @@
"Balão""Gerir""Balão ignorado."
- "Toque para reiniciar esta app e ficar com uma melhor visão."
+ "Toque para reiniciar esta app e ficar em ecrã inteiro.""Problemas com a câmara?\nToque aqui para reajustar""Não foi corrigido?\nToque para reverter""Nenhum problema com a câmara? Toque para ignorar."
- "Veja e faça mais"
- "Arraste outra app para usar o ecrã dividido"
- "Toque duas vezes fora de uma app para a reposicionar"
+ "Algumas apps funcionam melhor no modo vertical"
+ "Experimente uma destas opções para aproveitar ao máximo o seu espaço"
+ "Rode o dispositivo para ficar em ecrã inteiro"
+ "Toque duas vezes junto a uma app para a reposicionar""OK"
- "Expandir para obter mais informações"
- "Maximizar"
- "Minimizar"
- "Fechar"
- "Anterior"
- "Indicador"
- "Ecrã inteiro"
- "Modo de ambiente de trabalho"
- "Ecrã dividido"
- "Mais"
- "Flutuar"
diff --git a/libs/WindowManager/Shell/res/values-pt-rPT/strings_tv.xml b/libs/WindowManager/Shell/res/values-pt-rPT/strings_tv.xml
index 1ada4508714ab13eed2ac6891c2e2cab88729e0c..c4ae78d89ba88fc3b1123b4dba3f06f9a68c22b8 100644
--- a/libs/WindowManager/Shell/res/values-pt-rPT/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-pt-rPT/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Ecrã no ecrã""(Sem título do programa)"
- "Fechar"
+ "Fechar PIP""Ecrã inteiro"
- "Mover"
- "Expandir"
- "Reduzir"
+ "Mover Ecrã no ecrã"
+ "Expandir Ecrã no ecrã"
+ "Reduzir Ecrã no ecrã"" Prima duas vezes "" PÁGINA INICIAL "" para controlos"
- "Menu de ecrã no ecrã."
- "Mover para a esquerda"
- "Mover para a direita"
- "Mover para cima"
- "Mover para baixo"
- "Concluído"
diff --git a/libs/WindowManager/Shell/res/values-pt/strings.xml b/libs/WindowManager/Shell/res/values-pt/strings.xml
index 8edcddff14e2c8eefce53ebc733273b5a62833a3..2efc5543dd8704a766a63d84fb44edc787e54df5 100644
--- a/libs/WindowManager/Shell/res/values-pt/strings.xml
+++ b/libs/WindowManager/Shell/res/values-pt/strings.xml
@@ -33,7 +33,6 @@
"Exibir""É possível que o app não funcione com a tela dividida.""O app não é compatível com a divisão de tela."
- "Este app só pode ser aberto em uma única janela.""É possível que o app não funcione em uma tela secundária.""O app não é compatível com a inicialização em telas secundárias.""Divisor de tela"
@@ -73,23 +72,13 @@
"Bolha""Gerenciar""Balão dispensado."
- "Toque para reiniciar o app e atualizar a visualização."
+ "Toque para reiniciar o app e usar tela cheia.""Problemas com a câmera?\nToque para ajustar o enquadramento""O problema não foi corrigido?\nToque para reverter""Não tem problemas com a câmera? Toque para dispensar."
- "Veja e faça mais"
- "Arraste outro app para a tela dividida"
- "Toque duas vezes fora de um app para reposicionar"
+ "Alguns apps funcionam melhor em modo retrato"
+ "Tente uma destas opções para aproveitar seu espaço ao máximo"
+ "Gire o dispositivo para entrar no modo de tela cheia"
+ "Toque duas vezes ao lado de um app para reposicionar""Entendi"
- "Abra para ver mais informações."
- "Maximizar"
- "Minimizar"
- "Fechar"
- "Voltar"
- "Alça"
- "Tela cheia"
- "Modo área de trabalho"
- "Tela dividida"
- "Mais"
- "Ponto flutuante"
diff --git a/libs/WindowManager/Shell/res/values-pt/strings_tv.xml b/libs/WindowManager/Shell/res/values-pt/strings_tv.xml
index 14d1c34fd3e8bd799e33f8b2d583356d6f98778a..cc4eb3c32c1f98ceb07cc2dae964af655d9716f4 100644
--- a/libs/WindowManager/Shell/res/values-pt/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-pt/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Picture-in-picture""(programa sem título)"
- "Fechar"
+ "Fechar PIP""Tela cheia"
- "Mover"
- "Abrir"
- "Fechar"
+ "Mover picture-in-picture"
+ "Abrir picture-in-picture"
+ "Fechar picture-in-picture"" Pressione o botão ""home"" duas vezes para acessar os controles"
- "Menu do picture-in-picture"
- "Mover para a esquerda"
- "Mover para a direita"
- "Mover para cima"
- "Mover para baixo"
- "Concluído"
diff --git a/libs/WindowManager/Shell/res/values-ro/strings.xml b/libs/WindowManager/Shell/res/values-ro/strings.xml
index 9227216ffc1fdc69d68d820a8ed5669df1984268..804d34f980ff73e4a76ee3de4a7902d3294efe2a 100644
--- a/libs/WindowManager/Shell/res/values-ro/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ro/strings.xml
@@ -17,23 +17,22 @@
- "Închide"
- "Extinde"
+ "Închideți"
+ "Extindeți""Setări"
- "Accesează ecranul împărțit"
+ "Accesați ecranul împărțit""Meniu""%s este în modul picture-in-picture"
- "Dacă nu vrei ca %s să folosească această funcție, atinge pentru a deschide setările și dezactiveaz-o."
- "Redă"
- "Întrerupe"
- "Treci la următorul"
- "Treci la cel anterior"
- "Redimensionează"
- "Stochează"
- "Anulează stocarea"
+ "Dacă nu doriți ca %s să utilizeze această funcție, atingeți pentru a deschide setările și dezactivați-o."
+ "Redați"
+ "Întrerupeți"
+ "Treceți la următorul"
+ "Treceți la cel anterior"
+ "Redimensionați"
+ "Stocați"
+ "Anulați stocarea""Este posibil ca aplicația să nu funcționeze cu ecranul împărțit.""Aplicația nu acceptă ecranul împărțit."
- "Aplicația poate fi deschisă într-o singură fereastră.""Este posibil ca aplicația să nu funcționeze pe un ecran secundar.""Aplicația nu acceptă lansare pe ecrane secundare.""Separator pentru ecranul împărțit"
@@ -48,48 +47,38 @@
"Partea de sus: 30%""Partea de jos pe ecran complet""Folosirea modului cu o mână"
- "Pentru a ieși, glisează în sus din partea de jos a ecranului sau atinge oriunde deasupra ferestrei aplicației"
- "Activează modul cu o mână"
- "Ieși din modul cu o mână"
+ "Pentru a ieși, glisați în sus din partea de jos a ecranului sau atingeți oriunde deasupra ferestrei aplicației"
+ "Activați modul cu o mână"
+ "Părăsiți modul cu o mână""Setări pentru baloanele %1$s""Suplimentar"
- "Adaugă înapoi în stivă"
+ "Adăugați înapoi în stivă""%1$s de la %2$s""%1$s de la %2$s și încă %3$d"
- "Mută în stânga sus"
- "Mută în dreapta sus"
- "Mută în stânga jos"
- "Mută în dreapta jos"
+ "Mutați în stânga sus"
+ "Mutați în dreapta sus"
+ "Mutați în stânga jos"
+ "Mutați în dreapta jos""Setări %1$s"
- "Închide balonul"
- "Nu afișa conversația în balon"
+ "Închideți balonul"
+ "Nu afișați conversația în balon""Chat cu baloane"
- "Conversațiile noi apar ca pictograme flotante sau baloane. Atinge pentru a deschide balonul. Trage pentru a-l muta."
- "Controlează oricând baloanele"
- "Atinge Gestionează pentru a dezactiva baloanele din această aplicație"
+ "Conversațiile noi apar ca pictograme flotante sau baloane. Atingeți pentru a deschide balonul. Trageți pentru a-l muta."
+ "Controlați oricând baloanele"
+ "Atingeți Gestionați pentru a dezactiva baloanele din această aplicație""OK""Nu există baloane recente""Baloanele recente și baloanele respinse vor apărea aici""Balon"
- "Gestionează"
+ "Gestionați""Balonul a fost respins."
- "Atinge ca să repornești aplicația pentru o vizualizare mai bună."
- "Ai probleme cu camera foto?\nAtinge pentru a reîncadra"
- "Nu ai remediat problema?\nAtinge pentru a reveni"
- "Nu ai probleme cu camera foto? Atinge pentru a închide."
- "Vezi și fă mai multe"
- "Trage în altă aplicație pentru a folosi ecranul împărțit"
- "Atinge de două ori lângă o aplicație pentru a o repoziționa"
+ "Atingeți ca să reporniți aplicația și să treceți în modul ecran complet."
+ "Aveți probleme cu camera foto?\nAtingeți pentru a reîncadra"
+ "Nu ați remediat problema?\nAtingeți pentru a reveni"
+ "Nu aveți probleme cu camera foto? Atingeți pentru a închide."
+ "Unele aplicații funcționează cel mai bine în orientarea portret"
+ "Încercați una dintre aceste opțiuni pentru a profita din plin de spațiu"
+ "Rotiți dispozitivul pentru a trece în modul ecran complet"
+ "Atingeți de două ori lângă o aplicație pentru a o repoziționa""OK"
- "Extinde pentru mai multe informații"
- "Maximizează"
- "Minimizează"
- "Închide"
- "Înapoi"
- "Ghidaj"
- "Ecran complet"
- "Modul desktop"
- "Ecran împărțit"
- "Mai multe"
- "Flotantă"
diff --git a/libs/WindowManager/Shell/res/values-ro/strings_tv.xml b/libs/WindowManager/Shell/res/values-ro/strings_tv.xml
index b5245ffbf0bc6c29f255d0146e6f8366e9432fae..86a30f49df15fb4e133395399c3be22238eaf72d 100644
--- a/libs/WindowManager/Shell/res/values-ro/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-ro/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Picture-in-picture""(Program fără titlu)"
- "Închide"
+ "Închideți PIP""Ecran complet"
- "Mută"
- "Extinde"
- "Restrânge"
- " Apasă de două ori ""butonul ecran de pornire"" pentru comenzi"
- "Meniu picture-in-picture."
- "Mută la stânga"
- "Mută la dreapta"
- "Mută în sus"
- "Mută în jos"
- "Gata"
+ "Mutați fereastra PIP"
+ "Extindeți fereastra PIP"
+ "Restrângeți fereastra PIP"
+ " Apăsați de două ori ""butonul ecran de pornire"" pentru comenzi"
diff --git a/libs/WindowManager/Shell/res/values-ru/strings.xml b/libs/WindowManager/Shell/res/values-ru/strings.xml
index f5fa1a4758863595563220a64a7b50c9c0764825..95bf1cf11435006b86b05fc3b8a1f52a03942581 100644
--- a/libs/WindowManager/Shell/res/values-ru/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ru/strings.xml
@@ -33,7 +33,6 @@
"Показать""В режиме разделения экрана приложение может работать нестабильно.""Приложение не поддерживает разделение экрана."
- "Это приложение можно открыть только в одном окне.""Приложение может не работать на дополнительном экране""Приложение не поддерживает запуск на дополнительных экранах""Разделитель экрана"
@@ -73,23 +72,13 @@
"Всплывающая подсказка""Настроить""Всплывающий чат закрыт."
- "Нажмите, чтобы перезапустить приложение и настроить удобный для просмотра вид"
+ "Нажмите, чтобы перезапустить приложение и перейти в полноэкранный режим.""Проблемы с камерой?\nНажмите, чтобы исправить.""Не помогло?\nНажмите, чтобы отменить изменения.""Нет проблем с камерой? Нажмите, чтобы закрыть."
- "Выполняйте несколько задач одновременно"
- "Перетащите сюда другое приложение, чтобы использовать разделение экрана."
- "Чтобы переместить приложение, дважды нажмите рядом с ним."
+ "Некоторые приложения лучше работают в вертикальном режиме"
+ "Чтобы эффективно использовать экранное пространство, выполните одно из следующих действий:"
+ "Чтобы перейти в полноэкранный режим, поверните устройство."
+ "Чтобы переместить приложение, нажмите на него дважды.""ОК"
- "Развернуть, чтобы узнать больше."
- "Развернуть"
- "Свернуть"
- "Закрыть"
- "Назад"
- "Маркер"
- "Полноэкранный режим"
- "Режим компьютера"
- "Разделить экран"
- "Ещё"
- "Плавающее окно"
diff --git a/libs/WindowManager/Shell/res/values-ru/strings_tv.xml b/libs/WindowManager/Shell/res/values-ru/strings_tv.xml
index e7f55ec1bc57b336b12262611c16b099b6193521..08623e1e69c595dfe2b860797a034b87c3d09bcc 100644
--- a/libs/WindowManager/Shell/res/values-ru/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-ru/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Картинка в картинке""(Без названия)"
- "Закрыть"
+ "\"Кадр в кадре\" – выйти""Во весь экран"
- "Переместить"
- "Развернуть"
- "Свернуть"
+ "Переместить PIP"
+ "Развернуть PIP"
+ "Свернуть PIP"" Элементы управления: дважды нажмите "" кнопку главного экрана "
- "Меню \"Картинка в картинке\"."
- "Переместить влево"
- "Переместить вправо"
- "Переместить вверх"
- "Переместить вниз"
- "Готово"
diff --git a/libs/WindowManager/Shell/res/values-si/strings.xml b/libs/WindowManager/Shell/res/values-si/strings.xml
index 53e52f28adcf0a178f62abedb7bf3b1d157fdae7..23dd65ad7b312d67e88f2f6cb6ba53b4afdc1e08 100644
--- a/libs/WindowManager/Shell/res/values-si/strings.xml
+++ b/libs/WindowManager/Shell/res/values-si/strings.xml
@@ -33,7 +33,6 @@
"සඟවා තැබීම ඉවත් කරන්න""යෙදුම බෙදුම් තිරය සමග ක්රියා නොකළ හැකිය""යෙදුම බෙදුණු-තිරය සඳහා සහාය නොදක්වයි."
- "මෙම යෙදුම විවෘත කළ හැක්කේ 1 කවුළුවක පමණයි.""යෙදුම ද්විතියික සංදර්ශකයක ක්රියා නොකළ හැකිය.""යෙදුම ද්විතීයික සංදර්ශක මත දියත් කිරීම සඳහා සහාය නොදක්වයි.""බෙදුම්-තිර වෙන්කරණය"
@@ -73,23 +72,13 @@
"බුබුළු""කළමනා කරන්න""බුබුල ඉවත දමා ඇත."
- "වඩා හොඳ දසුනක් ලබා ගැනීම සඳහා මෙම යෙදුම යළි ඇරඹීමට තට්ටු කරන්න."
+ "මෙම යෙදුම යළි ඇරඹීමට සහ පූර්ණ තිරයට යාමට තට්ටු කරන්න.""කැමරා ගැටලුද?\nයළි සවි කිරීමට තට්ටු කරන්න""එය විසඳුවේ නැතිද?\nප්රතිවර්තනය කිරීමට තට්ටු කරන්න""කැමරා ගැටලු නොමැතිද? ඉවත දැමීමට තට්ටු කරන්න"
- "බලන්න සහ තවත් දේ කරන්න"
- "බෙදුම් තිරය සඳහා වෙනත් යෙදුමකට අදින්න"
- "යෙදුමක් නැවත ස්ථානගත කිරීමට පිටතින් දෙවරක් තට්ටු කරන්න"
+ "සමහර යෙදුම් ප්රතිමූර්තිය තුළ හොඳින්ම ක්රියා කරයි"
+ "ඔබගේ ඉඩෙන් උපරිම ප්රයෝජන ගැනීමට මෙම විකල්පවලින් එකක් උත්සාහ කරන්න"
+ "සම්පූර්ණ තිරයට යාමට ඔබගේ උපාංගය කරකවන්න"
+ "එය නැවත ස්ථානගත කිරීමට යෙදුමකට යාබදව දෙවරක් තට්ටු කරන්න""තේරුණා"
- "වැඩිදුර තොරතුරු සඳහා දිග හරින්න"
- "විහිදන්න"
- "කුඩා කරන්න"
- "වසන්න"
- "ආපසු"
- "හැඬලය"
- "පූර්ණ තිරය"
- "ඩෙස්ක්ටොප් ප්රකාරය"
- "බෙදුම් තිරය"
- "තව"
- "පාවෙන"
diff --git a/libs/WindowManager/Shell/res/values-si/strings_tv.xml b/libs/WindowManager/Shell/res/values-si/strings_tv.xml
index 5478ce5d3d40b385d41257f19855dc2c1c5e9bab..fbb0ebba06231181e0128843bfb54ebdab3962aa 100644
--- a/libs/WindowManager/Shell/res/values-si/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-si/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"පින්තූරය-තුළ-පින්තූරය""(මාතෘකාවක් නැති වැඩසටහන)"
- "වසන්න"
+ "PIP වසන්න""සම්පූර්ණ තිරය"
- "ගෙන යන්න"
- "දිග හරින්න"
- "හකුළන්න"
+ "PIP ගෙන යන්න"
+ "PIP දිග හරින්න"
+ "PIP හකුළන්න"" පාලන සඳහා "" මුල් පිටුව "" දෙවරක් ඔබන්න"
- "පින්තූරය තුළ පින්තූරය මෙනුව"
- "වමට ගෙන යන්න"
- "දකුණට ගෙන යන්න"
- "ඉහළට ගෙන යන්න"
- "පහළට ගෙන යන්න"
- "නිමයි"
diff --git a/libs/WindowManager/Shell/res/values-sk/strings.xml b/libs/WindowManager/Shell/res/values-sk/strings.xml
index f004fd472adfcda7bad29ec1f5136e828f7e637d..a231cacefb200afc2285f42dc61cc2861072d8bf 100644
--- a/libs/WindowManager/Shell/res/values-sk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sk/strings.xml
@@ -33,7 +33,6 @@
"Zrušiť skrytie""Aplikácia nemusí fungovať s rozdelenou obrazovkou.""Aplikácia nepodporuje rozdelenú obrazovku."
- "Táto aplikácia môže byť otvorená iba v jednom okne.""Aplikácia nemusí fungovať na sekundárnej obrazovke.""Aplikácia nepodporuje spúšťanie na sekundárnych obrazovkách.""Rozdeľovač obrazovky"
@@ -73,23 +72,13 @@
"Bublina""Spravovať""Bublina bola zavretá."
- "Ak chcete zlepšiť zobrazenie, klepnutím túto aplikáciu reštartujte."
+ "Klepnutím reštartujete túto aplikáciu a prejdete do režimu celej obrazovky.""Problémy s kamerou?\nKlepnutím znova upravte.""Nevyriešilo sa to?\nKlepnutím sa vráťte.""Nemáte problémy s kamerou? Klepnutím zatvoríte."
- "Zobrazte si a zvládnite toho viac"
- "Rozdelenú obrazovku aktivujete presunutím ďalšie aplikácie"
- "Dvojitým klepnutím mimo aplikácie zmeníte jej pozíciu"
+ "Niektoré aplikácie fungujú najlepšie v režime na výšku"
+ "Vyskúšajte jednu z týchto možností a využívajte svoj priestor naplno"
+ "Otočením zariadenia prejdete do režimu celej obrazovky"
+ "Dvojitým klepnutím vedľa aplikácie zmeníte jej pozíciu""Dobre"
- "Po rozbalení sa dozviete viac."
- "Maximalizovať"
- "Minimalizovať"
- "Zavrieť"
- "Späť"
- "Rukoväť"
- "Celá obrazovka"
- "Režim počítača"
- "Rozdelená obrazovka"
- "Viac"
- "Plávajúce"
diff --git a/libs/WindowManager/Shell/res/values-sk/strings_tv.xml b/libs/WindowManager/Shell/res/values-sk/strings_tv.xml
index 1df43afca2da694bac2ae813c2152fd1a5b7ab61..81cb0eafc7593bd19bf524a7167428085d6f51ae 100644
--- a/libs/WindowManager/Shell/res/values-sk/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-sk/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Obraz v obraze""(Program bez názvu)"
- "Zavrieť"
+ "Zavrieť režim PIP""Celá obrazovka"
- "Presunúť"
- "Rozbaliť"
- "Zbaliť"
+ "Presunúť obraz v obraze"
+ "Rozbaliť obraz v obraze"
+ "Zbaliť obraz v obraze"" Ovládanie zobraz. dvoj. stlač. "" TLAČIDLA PLOCHY "
- "Ponuka obrazu v obraze."
- "Posunúť doľava"
- "Posunúť doprava"
- "Posunúť nahor"
- "Posunúť nadol"
- "Hotovo"
diff --git a/libs/WindowManager/Shell/res/values-sl/strings.xml b/libs/WindowManager/Shell/res/values-sl/strings.xml
index c4808059a0c46e952b9cd868bd0805a3274dd6ba..adeaae978eaa9e6d6277e28da4ca9834baae5465 100644
--- a/libs/WindowManager/Shell/res/values-sl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sl/strings.xml
@@ -33,7 +33,6 @@
"Razkrij""Aplikacija morda ne deluje v načinu razdeljenega zaslona.""Aplikacija ne podpira načina razdeljenega zaslona."
- "To aplikacijo je mogoče odpreti samo v enem oknu.""Aplikacija morda ne bo delovala na sekundarnem zaslonu.""Aplikacija ne podpira zagona na sekundarnih zaslonih.""Razdelilnik zaslonov"
@@ -73,23 +72,13 @@
"Mehurček""Upravljanje""Oblaček je bil opuščen."
- "Če želite boljši prikaz, se dotaknite za vnovični zagon te aplikacije."
+ "Dotaknite se za vnovični zagon te aplikacije in preklop v celozaslonski način.""Težave s fotoaparatom?\nDotaknite se za vnovično prilagoditev""To ni odpravilo težave?\nDotaknite se za povrnitev""Nimate težav s fotoaparatom? Dotaknite se za opustitev."
- "Oglejte si in naredite več"
- "Za razdeljeni zaslon povlecite sem še eno aplikacijo."
- "Dvakrat se dotaknite zunaj aplikacije, če jo želite prestaviti."
+ "Nekatere aplikacije najbolje delujejo v navpični postavitvi"
+ "Poskusite eno od teh možnosti za čim boljši izkoristek prostora"
+ "Če želite preklopiti v celozaslonski način, zasukajte napravo."
+ "Dvakrat se dotaknite ob aplikaciji, če jo želite prestaviti.""V redu"
- "Razširitev za več informacij"
- "Maksimiraj"
- "Minimiraj"
- "Zapri"
- "Nazaj"
- "Ročica"
- "Celozaslonsko"
- "Namizni način"
- "Razdeljen zaslon"
- "Več"
- "Lebdeče"
diff --git a/libs/WindowManager/Shell/res/values-sl/strings_tv.xml b/libs/WindowManager/Shell/res/values-sl/strings_tv.xml
index 88fc8325aa01321b1f5537d624fe8b94dde78573..060aaa0ce64734d6cfbb7bdba86fd765233c2d2b 100644
--- a/libs/WindowManager/Shell/res/values-sl/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-sl/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Slika v sliki""(Program brez naslova)"
- "Zapri"
+ "Zapri način PIP""Celozaslonsko"
- "Premakni"
- "Razširi"
- "Strni"
+ "Premakni sliko v sliki"
+ "Razširi sliko v sliki"
+ "Strni sliko v sliki"" Za kontrolnike dvakrat pritisnite gumb za "" ZAČETNI ZASLON "
- "Meni za sliko v sliki"
- "Premakni levo"
- "Premakni desno"
- "Premakni navzgor"
- "Premakni navzdol"
- "Končano"
diff --git a/libs/WindowManager/Shell/res/values-sq/strings.xml b/libs/WindowManager/Shell/res/values-sq/strings.xml
index b59d4db6413e7fa6b00aa14e242913abd86c81ad..2839b4bae7e426d1bdeeb67ab0471b494bf3ffd7 100644
--- a/libs/WindowManager/Shell/res/values-sq/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sq/strings.xml
@@ -33,7 +33,6 @@
"Mos e fshih""Aplikacioni mund të mos funksionojë me ekranin e ndarë.""Aplikacioni nuk mbështet ekranin e ndarë."
- "Ky aplikacion mund të hapet vetëm në 1 dritare.""Aplikacioni mund të mos funksionojë në një ekran dytësor.""Aplikacioni nuk mbështet nisjen në ekrane dytësore.""Ndarësi i ekranit të ndarë"
@@ -73,23 +72,13 @@
"Flluskë""Menaxho""Flluska u hoq."
- "Trokit për të rifilluar këtë aplikacion për një pamje më të mirë."
+ "Trokit për ta rinisur këtë aplikacion dhe për të kaluar në ekranin e plotë.""Ka probleme me kamerën?\nTrokit për ta ripërshtatur""Nuk u rregullua?\nTrokit për ta rikthyer""Nuk ka probleme me kamerën? Trokit për ta shpërfillur."
- "Shiko dhe bëj më shumë"
- "Zvarrite në një aplikacion tjetër për ekranin e ndarë"
- "Trokit dy herë jashtë një aplikacioni për ta ripozicionuar"
+ "Disa aplikacione funksionojnë më mirë në modalitetin vertikal"
+ "Provo një nga këto opsione për ta shfrytëzuar sa më mirë hapësirën"
+ "Rrotullo ekranin për të kaluar në ekran të plotë"
+ "Trokit dy herë pranë një aplikacioni për ta ripozicionuar""E kuptova"
- "Zgjeroje për më shumë informacion."
- "Maksimizo"
- "Minimizo"
- "Mbyll"
- "Pas"
- "Emërtimi"
- "Ekrani i plotë"
- "Modaliteti i desktopit"
- "Ekrani i ndarë"
- "Më shumë"
- "Pluskuese"
diff --git a/libs/WindowManager/Shell/res/values-sq/strings_tv.xml b/libs/WindowManager/Shell/res/values-sq/strings_tv.xml
index 58687e5867fea795b918c2cfbffbc10c71b6a9a8..9bfdb6a3edd8dee372408f00fcf95b6d99f92af5 100644
--- a/libs/WindowManager/Shell/res/values-sq/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-sq/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Figurë brenda figurës""(Program pa titull)"
- "Mbyll"
+ "Mbyll PIP""Ekrani i plotë"
- "Lëviz"
- "Zgjero"
- "Palos"
+ "Zhvendos PIP"
+ "Zgjero PIP"
+ "Palos PIP"" Trokit dy herë "" KREU "" për kontrollet"
- "Menyja e \"Figurës brenda figurës\"."
- "Lëviz majtas"
- "Lëviz djathtas"
- "Lëviz lart"
- "Lëviz poshtë"
- "U krye"
diff --git a/libs/WindowManager/Shell/res/values-sr/strings.xml b/libs/WindowManager/Shell/res/values-sr/strings.xml
index 78d74d74ac3f2694ca8a80701e6b30eff023bc2c..9db6b7c63610f2bc4a670e9f64a68d13df92f478 100644
--- a/libs/WindowManager/Shell/res/values-sr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sr/strings.xml
@@ -33,7 +33,6 @@
"Уклоните из тајне меморије""Апликација можда неће радити са подељеним екраном.""Апликација не подржава подељени екран."
- "Ова апликација може да се отвори само у једном прозору.""Апликација можда неће функционисати на секундарном екрану.""Апликација не подржава покретање на секундарним екранима.""Разделник подељеног екрана"
@@ -73,23 +72,13 @@
"Облачић""Управљајте""Облачић је одбачен."
- "Додирните да бисте рестартовали ову апликацију ради бољег приказа."
+ "Додирните да бисте рестартовали апликацију и прешли у режим целог екрана.""Имате проблема са камером?\nДодирните да бисте поново уклопили""Проблем није решен?\nДодирните да бисте вратили""Немате проблема са камером? Додирните да бисте одбацили."
- "Видите и урадите више"
- "Превуците другу апликацију да бисте користили подељени екран"
- "Двапут додирните изван апликације да бисте променили њену позицију"
+ "Неке апликације најбоље функционишу у усправном режиму"
+ "Испробајте једну од ових опција да бисте на најбољи начин искористили простор"
+ "Ротирајте уређај за приказ преко целог екрана"
+ "Двапут додирните поред апликације да бисте променили њену позицију""Важи"
- "Проширите за још информација."
- "Увећајте"
- "Умањите"
- "Затворите"
- "Назад"
- "Идентификатор"
- "Преко целог екрана"
- "Режим за рачунаре"
- "Подељени екран"
- "Још"
- "Плутајуће"
diff --git a/libs/WindowManager/Shell/res/values-sr/strings_tv.xml b/libs/WindowManager/Shell/res/values-sr/strings_tv.xml
index e850979174a3c2e9448a76cab227b69d3976d0a3..6bc5c87bab48d9be3dc5e40c5559331f83a7a31b 100644
--- a/libs/WindowManager/Shell/res/values-sr/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-sr/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Слика у слици""(Програм без наслова)"
- "Затвори"
+ "Затвори PIP""Цео екран"
- "Премести"
- "Прошири"
- "Скупи"
+ "Премести слику у слици"
+ "Прошири слику у слици"
+ "Скупи слику у слици"" Двапут притисните "" HOME "" за контроле"
- "Мени Слика у слици."
- "Померите налево"
- "Померите надесно"
- "Померите нагоре"
- "Померите надоле"
- "Готово"
diff --git a/libs/WindowManager/Shell/res/values-sv/strings.xml b/libs/WindowManager/Shell/res/values-sv/strings.xml
index cda3040dc0560e8638ce80e3e493979d5710f856..f6bd55423cdccd7f8a65e94e815d55e59d5b3736 100644
--- a/libs/WindowManager/Shell/res/values-sv/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sv/strings.xml
@@ -33,7 +33,6 @@
"Återställ stash""Appen kanske inte fungerar med delad skärm.""Appen har inte stöd för delad skärm."
- "Denna app kan bara vara öppen i ett fönster.""Appen kanske inte fungerar på en sekundär skärm.""Appen kan inte köras på en sekundär skärm.""Avdelare för delad skärm"
@@ -73,23 +72,13 @@
"Bubbla""Hantera""Bubblan ignorerades."
- "Tryck för att starta om appen och få en bättre vy."
+ "Tryck för att starta om appen i helskärmsläge.""Problem med kameran?\nTryck för att anpassa på nytt""Löstes inte problemet?\nTryck för att återställa""Inga problem med kameran? Tryck för att ignorera."
- "Se och gör mer"
- "Dra till en annan app för läget Delad skärm"
- "Tryck snabbt två gånger utanför en app för att flytta den"
+ "Vissa appar fungerar bäst i stående läge"
+ "Testa med ett av dessa alternativ för att få ut mest möjliga av ytan"
+ "Rotera skärmen för att gå över till helskärmsläge"
+ "Tryck snabbt två gånger bredvid en app för att flytta den""OK"
- "Utöka för mer information."
- "Utöka"
- "Minimera"
- "Stäng"
- "Tillbaka"
- "Handtag"
- "Helskärm"
- "Datorläge"
- "Delad skärm"
- "Mer"
- "Svävande"
diff --git a/libs/WindowManager/Shell/res/values-sv/strings_tv.xml b/libs/WindowManager/Shell/res/values-sv/strings_tv.xml
index d3a9c3de66dbdfa9ba3b51c1202776823f150364..b3465ab1db8533e4715addb231f0190e89181e40 100644
--- a/libs/WindowManager/Shell/res/values-sv/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-sv/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Bild-i-bild""(Namnlöst program)"
- "Stäng"
+ "Stäng PIP""Helskärm"
- "Flytta"
- "Utöka"
- "Komprimera"
+ "Flytta BIB"
+ "Utöka bild-i-bild"
+ "Komprimera bild-i-bild"" Tryck snabbt två gånger på "" HEM "" för kontroller"
- "Bild-i-bild-meny."
- "Flytta åt vänster"
- "Flytta åt höger"
- "Flytta uppåt"
- "Flytta nedåt"
- "Klar"
diff --git a/libs/WindowManager/Shell/res/values-sw/strings.xml b/libs/WindowManager/Shell/res/values-sw/strings.xml
index fee34eb28725b36055526c1af200743547e5a8d4..f6e558527ee5b469ea3fa23c105b8596a2214be5 100644
--- a/libs/WindowManager/Shell/res/values-sw/strings.xml
+++ b/libs/WindowManager/Shell/res/values-sw/strings.xml
@@ -33,7 +33,6 @@
"Fichua""Huenda programu isifanye kazi kwenye skrini inayogawanywa.""Programu haiwezi kutumia skrini iliyogawanywa."
- "Programu hii inaweza kufunguliwa katika dirisha 1 pekee.""Huenda programu isifanye kazi kwenye dirisha lingine.""Programu hii haiwezi kufunguliwa kwenye madirisha mengine.""Kitenganishi cha skrini inayogawanywa"
@@ -73,23 +72,13 @@
"Kiputo""Dhibiti""Umeondoa kiputo."
- "Gusa ili uzime kisha uwashe programu hii, ili upate mwonekano bora."
+ "Gusa ili uzime na uwashe programu hii, kisha nenda kwenye skrini nzima.""Je, kuna hitilafu za kamera?\nGusa ili urekebishe""Umeshindwa kurekebisha?\nGusa ili urejeshe nakala ya awali""Je, hakuna hitilafu za kamera? Gusa ili uondoe."
- "Angalia na ufanye zaidi"
- "Buruta ndani programu nyingine ili utumie hali ya skrini iliyogawanywa"
- "Gusa mara mbili nje ya programu ili uihamishe"
+ "Baadhi ya programu hufanya kazi vizuri zaidi zikiwa wima"
+ "Jaribu moja kati ya chaguo hizi ili utumie nafasi ya skrini yako kwa ufanisi"
+ "Zungusha kifaa chako ili uende kwenye hali ya skrini nzima"
+ "Gusa mara mbili karibu na programu ili uihamishe""Nimeelewa"
- "Panua ili upate maelezo zaidi."
- "Panua"
- "Punguza"
- "Funga"
- "Rudi nyuma"
- "Ncha"
- "Skrini nzima"
- "Hali ya Kompyuta ya mezani"
- "Gawa Skrini"
- "Zaidi"
- "Inayoelea"
diff --git a/libs/WindowManager/Shell/res/values-sw/strings_tv.xml b/libs/WindowManager/Shell/res/values-sw/strings_tv.xml
index 7b9a310ff0b64a9d6efaf501fd0ae3d476cc162e..baff49ed821ad290f615be9402f5eb282d01d1c9 100644
--- a/libs/WindowManager/Shell/res/values-sw/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-sw/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Pachika Picha Ndani ya Picha Nyingine""(Programu isiyo na jina)"
- "Funga"
+ "Funga PIP""Skrini nzima"
- "Hamisha"
- "Panua"
- "Kunja"
+ "Kuhamisha PIP"
+ "Panua PIP"
+ "Kunja PIP"" Bonyeza mara mbili kitufe cha "" UKURASA WA KWANZA "" kupata vidhibiti"
- "Menyu ya kipengele cha kupachika picha ndani ya picha nyingine."
- "Sogeza kushoto"
- "Sogeza kulia"
- "Sogeza juu"
- "Sogeza chini"
- "Imemaliza"
diff --git a/libs/WindowManager/Shell/res/values-ta/strings.xml b/libs/WindowManager/Shell/res/values-ta/strings.xml
index 49f128d4477b1b38b64c89128322c7b69b5d944b..d8334adfe5ef5500e4eee995bb47407e1e7f054c 100644
--- a/libs/WindowManager/Shell/res/values-ta/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ta/strings.xml
@@ -33,7 +33,6 @@
"Unstash""திரைப் பிரிப்பு அம்சத்தில் ஆப்ஸ் செயல்படாமல் போகக்கூடும்.""திரையைப் பிரிப்பதைப் ஆப்ஸ் ஆதரிக்கவில்லை."
- "இந்த ஆப்ஸை 1 சாளரத்தில் மட்டுமே திறக்க முடியும்.""இரண்டாம்நிலைத் திரையில் ஆப்ஸ் வேலை செய்யாமல் போகக்கூடும்.""இரண்டாம்நிலைத் திரைகளில் பயன்பாட்டைத் தொடங்க முடியாது.""திரையைப் பிரிக்கும் பிரிப்பான்"
@@ -73,23 +72,13 @@
"பபிள்""நிர்வகி""குமிழ் நிராகரிக்கப்பட்டது."
- "இங்கு தட்டுவதன் மூலம் இந்த ஆப்ஸை மீண்டும் தொடங்கி, ஆப்ஸ் காட்டப்படும் விதத்தை இன்னும் சிறப்பாக்கலாம்."
+ "தட்டுவதன் மூலம் இந்த ஆப்ஸை மீண்டும் தொடங்கலாம், முழுத்திரையில் பார்க்கலாம்.""கேமரா தொடர்பான சிக்கல்களா?\nமீண்டும் பொருத்த தட்டவும்""சிக்கல்கள் சரிசெய்யப்படவில்லையா?\nமாற்றியமைக்க தட்டவும்""கேமரா தொடர்பான சிக்கல்கள் எதுவும் இல்லையா? நிராகரிக்க தட்டவும்."
- "பலவற்றைப் பார்த்தல் மற்றும் செய்தல்"
- "திரைப் பிரிப்புக்கு மற்றொரு ஆப்ஸை இழுக்கலாம்"
- "ஆப்ஸை இடம் மாற்ற அதன் வெளியில் இருமுறை தட்டலாம்"
+ "சில ஆப்ஸ் \'போர்ட்ரெய்ட்டில்\' சிறப்பாகச் செயல்படும்"
+ "ஸ்பேஸ்களிலிருந்து அதிகப் பலன்களைப் பெற இந்த விருப்பங்களில் ஒன்றைப் பயன்படுத்துங்கள்"
+ "முழுத்திரைக்குச் செல்ல உங்கள் சாதனத்தைச் சுழற்றவும்"
+ "ஆப்ஸை இடம் மாற்ற, ஆப்ஸுக்கு அடுத்து இருமுறை தட்டவும்""சரி"
- "கூடுதல் தகவல்களுக்கு விரிவாக்கலாம்."
- "பெரிதாக்கும்"
- "சிறிதாக்கும்"
- "மூடும்"
- "பின்செல்லும்"
- "ஹேண்டில்"
- "முழுத்திரை"
- "டெஸ்க்டாப் பயன்முறை"
- "திரையைப் பிரிக்கும்"
- "கூடுதல் விருப்பத்தேர்வுகள்"
- "மிதக்கும் சாளரம்"
diff --git a/libs/WindowManager/Shell/res/values-ta/strings_tv.xml b/libs/WindowManager/Shell/res/values-ta/strings_tv.xml
index e201401e2e353be1ba72b3dca35a7f3038b01a6e..4439e299c9198eee618c599af5a893514368b60d 100644
--- a/libs/WindowManager/Shell/res/values-ta/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-ta/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"பிக்ச்சர்-இன்-பிக்ச்சர்""(தலைப்பு இல்லை)"
- "மூடுக"
+ "PIPஐ மூடு""முழுத்திரை"
- "நகர்த்து"
- "விரி"
- "சுருக்கு"
+ "PIPபை நகர்த்து"
+ "PIPபை விரிவாக்கு"
+ "PIPபைச் சுருக்கு"" கட்டுப்பாடுகள்: "" முகப்பு "" பட்டனை இருமுறை அழுத்துக"
- "பிக்ச்சர்-இன்-பிக்ச்சர் மெனு."
- "இடப்புறம் நகர்த்து"
- "வலப்புறம் நகர்த்து"
- "மேலே நகர்த்து"
- "கீழே நகர்த்து"
- "முடிந்தது"
diff --git a/libs/WindowManager/Shell/res/values-te/strings.xml b/libs/WindowManager/Shell/res/values-te/strings.xml
index f0c8be5c595748c07436958ecacbf163dcf76a10..7330755500072a5e5d9fe046ecb1bc60a62c977d 100644
--- a/libs/WindowManager/Shell/res/values-te/strings.xml
+++ b/libs/WindowManager/Shell/res/values-te/strings.xml
@@ -28,12 +28,11 @@
"పాజ్ చేయి""దాటవేసి తర్వాత దానికి వెళ్లు""దాటవేసి మునుపటి దానికి వెళ్లు"
- "సైజ్ మార్చు"
+ "పరిమాణం మార్చు""స్టాచ్""ఆన్స్టాచ్""స్క్రీన్ విభజనతో యాప్ పని చేయకపోవచ్చు.""యాప్లో స్క్రీన్ విభజనకు మద్దతు లేదు."
- "ఈ యాప్ను 1 విండోలో మాత్రమే తెరవవచ్చు.""ప్రత్యామ్నాయ డిస్ప్లేలో యాప్ పని చేయకపోవచ్చు.""ప్రత్యామ్నాయ డిస్ప్లేల్లో ప్రారంభానికి యాప్ మద్దతు లేదు.""విభజన స్క్రీన్ విభాగిని"
@@ -73,23 +72,13 @@
"బబుల్""మేనేజ్ చేయండి""బబుల్ విస్మరించబడింది."
- "మెరుగైన వీక్షణ కోసం ఈ యాప్ను రీస్టార్ట్ చేయడానికి ట్యాప్ చేయండి."
+ "ఈ యాప్ను రీస్టార్ట్ చేయడానికి ట్యాప్ చేసి, ఆపై పూర్తి స్క్రీన్లోకి వెళ్లండి.""కెమెరా సమస్యలు ఉన్నాయా?\nరీఫిట్ చేయడానికి ట్యాప్ చేయండి""దాని సమస్యను పరిష్కరించలేదా?\nపూర్వస్థితికి మార్చడానికి ట్యాప్ చేయండి""కెమెరా సమస్యలు లేవా? తీసివేయడానికి ట్యాప్ చేయండి."
- "చూసి, మరిన్ని చేయండి"
- "స్ప్లిట్-స్క్రీన్ కోసం మరొక యాప్లోకి లాగండి"
- "యాప్ స్థానాన్ని మార్చడానికి దాని వెలుపల డబుల్-ట్యాప్ చేయండి"
+ "కొన్ని యాప్లు పోర్ట్రెయిట్లో ఉత్తమంగా పని చేస్తాయి"
+ "మీ ప్రదేశాన్ని ఎక్కువగా ఉపయోగించుకోవడానికి ఈ ఆప్షన్లలో ఒకదాన్ని ట్రై చేయండి"
+ "ఫుల్ స్క్రీన్కు వెళ్లడానికి మీ పరికరాన్ని తిప్పండి"
+ "యాప్ స్థానాన్ని మార్చడానికి దాని పక్కన డబుల్-ట్యాప్ చేయండి""అర్థమైంది"
- "మరింత సమాచారం కోసం విస్తరించండి."
- "గరిష్టీకరించండి"
- "కుదించండి"
- "మూసివేయండి"
- "వెనుకకు"
- "హ్యాండిల్"
- "ఫుల్-స్క్రీన్"
- "డెస్క్టాప్ మోడ్"
- "స్ప్లిట్ స్క్రీన్"
- "మరిన్ని"
- "ఫ్లోట్"
diff --git a/libs/WindowManager/Shell/res/values-te/strings_tv.xml b/libs/WindowManager/Shell/res/values-te/strings_tv.xml
index 6284d90cb11f735dadb676c2ac8f8752f7df0b37..35579346615f567429f939d4d307671cfd7ff480 100644
--- a/libs/WindowManager/Shell/res/values-te/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-te/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"పిక్చర్-ఇన్-పిక్చర్""(శీర్షిక లేని ప్రోగ్రామ్)"
- "మూసివేయండి"
+ "PIPని మూసివేయి""ఫుల్-స్క్రీన్"
- "తరలించండి"
- "విస్తరించండి"
- "కుదించండి"
+ "PIPను తరలించండి"
+ "PIPని విస్తరించండి"
+ "PIPని కుదించండి"" కంట్రోల్స్ కోసం "" HOME "" బటన్ రెండుసార్లు నొక్కండి"
- "పిక్చర్-ఇన్-పిక్చర్ మెనూ."
- "ఎడమ వైపుగా జరపండి"
- "కుడి వైపుగా జరపండి"
- "పైకి జరపండి"
- "కిందికి జరపండి"
- "పూర్తయింది"
diff --git a/libs/WindowManager/Shell/res/values-th/strings.xml b/libs/WindowManager/Shell/res/values-th/strings.xml
index 2437e03777804b796cac92b6e4bfc56918b58874..cfee8ea3242eabb5288ded5f59bfeefb8b9310b7 100644
--- a/libs/WindowManager/Shell/res/values-th/strings.xml
+++ b/libs/WindowManager/Shell/res/values-th/strings.xml
@@ -33,7 +33,6 @@
"เอาออกจากที่เก็บส่วนตัว""แอปอาจใช้ไม่ได้กับโหมดแบ่งหน้าจอ""แอปไม่สนับสนุนการแยกหน้าจอ"
- "แอปนี้เปิดได้ใน 1 หน้าต่างเท่านั้น""แอปอาจไม่ทำงานในจอแสดงผลรอง""แอปไม่รองรับการเรียกใช้ในจอแสดงผลรอง""เส้นแบ่งหน้าจอ"
@@ -73,23 +72,13 @@
"บับเบิล""จัดการ""ปิดบับเบิลแล้ว"
- "แตะเพื่อรีสตาร์ทแอปนี้และรับมุมมองที่ดียิ่งขึ้น"
+ "แตะเพื่อรีสตาร์ทแอปนี้และแสดงแบบเต็มหน้าจอ""หากพบปัญหากับกล้อง\nแตะเพื่อแก้ไข""หากไม่ได้แก้ไข\nแตะเพื่อเปลี่ยนกลับ""หากไม่พบปัญหากับกล้อง แตะเพื่อปิด"
- "รับชมและทำสิ่งต่างๆ ได้มากขึ้น"
- "ลากไปไว้ในแอปอื่นเพื่อแยกหน้าจอ"
- "แตะสองครั้งด้านนอกแอปเพื่อเปลี่ยนตำแหน่ง"
+ "บางแอปทำงานได้ดีที่สุดในแนวตั้ง"
+ "ลองใช้หนึ่งในตัวเลือกเหล่านี้เพื่อให้ได้ประโยชน์สูงสุดจากพื้นที่ว่าง"
+ "หมุนอุปกรณ์ให้แสดงเต็มหน้าจอ"
+ "แตะสองครั้งข้างแอปเพื่อเปลี่ยนตำแหน่ง""รับทราบ"
- "ขยายเพื่อดูข้อมูลเพิ่มเติม"
- "ขยายใหญ่สุด"
- "ย่อ"
- "ปิด"
- "กลับ"
- "แฮนเดิล"
- "เต็มหน้าจอ"
- "โหมดเดสก์ท็อป"
- "แยกหน้าจอ"
- "เพิ่มเติม"
- "ล่องลอย"
diff --git a/libs/WindowManager/Shell/res/values-th/strings_tv.xml b/libs/WindowManager/Shell/res/values-th/strings_tv.xml
index 27cf56c6e154b2f0b3d2361124870e3ffdedf1d0..0a07d157ec6fd2e656d5101b41612b95172078b1 100644
--- a/libs/WindowManager/Shell/res/values-th/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-th/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"การแสดงภาพซ้อนภาพ""(ไม่มีชื่อรายการ)"
- "ปิด"
+ "ปิด PIP""เต็มหน้าจอ"
- "ย้าย"
- "ขยาย"
- "ยุบ"
+ "ย้าย PIP"
+ "ขยาย PIP"
+ "ยุบ PIP"" กดปุ่ม "" หน้าแรก "" สองครั้งเพื่อเปิดการควบคุม"
- "เมนูการแสดงภาพซ้อนภาพ"
- "ย้ายไปทางซ้าย"
- "ย้ายไปทางขวา"
- "ย้ายขึ้น"
- "ย้ายลง"
- "เสร็จ"
diff --git a/libs/WindowManager/Shell/res/values-tl/strings.xml b/libs/WindowManager/Shell/res/values-tl/strings.xml
index 86ef75718b774926919ef367fb26dbb70ab6ee9d..eed624dd5069e7f7292031e0d1e25678732b96fe 100644
--- a/libs/WindowManager/Shell/res/values-tl/strings.xml
+++ b/libs/WindowManager/Shell/res/values-tl/strings.xml
@@ -33,7 +33,6 @@
"I-unstash""Posibleng hindi gumana ang app sa split screen.""Hindi sinusuportahan ng app ang split-screen."
- "Sa 1 window lang puwedeng buksan ang app na ito.""Maaaring hindi gumana ang app sa pangalawang display.""Hindi sinusuportahan ng app ang paglulunsad sa mga pangalawang display.""Divider ng split-screen"
@@ -73,23 +72,13 @@
"Bubble""Pamahalaan""Na-dismiss na ang bubble."
- "I-tap para i-restart ang app na ito para sa mas magandang view."
+ "I-tap para i-restart ang app na ito at mag-full screen.""May mga isyu sa camera?\nI-tap para i-refit""Hindi ito naayos?\nI-tap para i-revert""Walang isyu sa camera? I-tap para i-dismiss."
- "Tumingin at gumawa ng higit pa"
- "Mag-drag ng ibang app para sa split screen"
- "Mag-double tap sa labas ng app para baguhin ang posisyon nito"
+ "May ilang app na pinakamainam gamitin nang naka-portrait"
+ "Subukan ang isa sa mga opsyong ito para masulit ang iyong space"
+ "I-rotate ang iyong device para mag-full screen"
+ "Mag-double tap sa tabi ng isang app para iposisyon ito ulit""OK"
- "I-expand para sa higit pang impormasyon."
- "I-maximize"
- "I-minimize"
- "Isara"
- "Bumalik"
- "Handle"
- "Fullscreen"
- "Desktop Mode"
- "Split Screen"
- "Higit pa"
- "Float"
diff --git a/libs/WindowManager/Shell/res/values-tl/strings_tv.xml b/libs/WindowManager/Shell/res/values-tl/strings_tv.xml
index 4cc050bebe5b648d3f8c95e5519069e5e9748b2a..9a11a38fa492e0cc21e0cc89ec49db64ee1f9285 100644
--- a/libs/WindowManager/Shell/res/values-tl/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-tl/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Picture-in-Picture""(Walang pamagat na programa)"
- "Isara"
+ "Isara ang PIP""Full screen"
- "Ilipat"
- "I-expand"
- "I-collapse"
+ "Ilipat ang PIP"
+ "I-expand ang PIP"
+ "I-collapse ang PIP"" I-double press ang "" HOME "" para sa mga kontrol"
- "Menu ng Picture-in-Picture."
- "Ilipat pakaliwa"
- "Ilipat pakanan"
- "Itaas"
- "Ibaba"
- "Tapos na"
diff --git a/libs/WindowManager/Shell/res/values-tr/strings.xml b/libs/WindowManager/Shell/res/values-tr/strings.xml
index c4060cc795abdfbe183de974ae79db189f1f4d5d..2b4a2d0550f0f5f280f8a62507827c28d75dd599 100644
--- a/libs/WindowManager/Shell/res/values-tr/strings.xml
+++ b/libs/WindowManager/Shell/res/values-tr/strings.xml
@@ -33,7 +33,6 @@
"Depolama""Uygulama bölünmüş ekranda çalışmayabilir.""Uygulama bölünmüş ekranı desteklemiyor."
- "Bu uygulama yalnızca 1 pencerede açılabilir.""Uygulama ikincil ekranda çalışmayabilir.""Uygulama ikincil ekranlarda başlatılmayı desteklemiyor.""Bölünmüş ekran ayırıcı"
@@ -73,23 +72,13 @@
"Baloncuk""Yönet""Balon kapatıldı."
- "Bu uygulamayı yeniden başlatarak daha iyi bir görünüm elde etmek için dokunun."
+ "Bu uygulamayı yeniden başlatmak ve tam ekrana geçmek için dokunun.""Kameranızda sorun mu var?\nDüzeltmek için dokunun""Bu işlem sorunu düzeltmedi mi?\nİşlemi geri almak için dokunun""Kameranızda sorun yok mu? Kapatmak için dokunun."
- "Daha fazlasını görün ve yapın"
- "Bölünmüş ekran için başka bir uygulamayı sürükleyin"
- "Yeniden konumlandırmak için uygulamanın dışına iki kez dokunun"
+ "Bazı uygulamalar dikey modda en iyi performansı gösterir"
+ "Alanınızı en verimli şekilde kullanmak için bu seçeneklerden birini deneyin"
+ "Tam ekrana geçmek için cihazınızı döndürün"
+ "Yeniden konumlandırmak için uygulamanın yanına iki kez dokunun""Anladım"
- "Daha fazla bilgi için genişletin."
- "Ekranı Kapla"
- "Küçült"
- "Kapat"
- "Geri"
- "Herkese açık kullanıcı adı"
- "Tam Ekran"
- "Masaüstü Modu"
- "Bölünmüş Ekran"
- "Daha Fazla"
- "Havada Süzülen"
diff --git a/libs/WindowManager/Shell/res/values-tr/strings_tv.xml b/libs/WindowManager/Shell/res/values-tr/strings_tv.xml
index 69bb608061e4cc146d23b2dd2d6bf51a31d25914..bf4bc6f1fff756d1bb1ab15cfe874d041fba688b 100644
--- a/libs/WindowManager/Shell/res/values-tr/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-tr/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Pencere İçinde Pencere""(Başlıksız program)"
- "Kapat"
+ "PIP\'yi kapat""Tam ekran"
- "Taşı"
- "Genişlet"
- "Daralt"
- " Kontroller için "" ANA SAYFA "" düğmesine iki kez basın"
- "Pencere içinde pencere menüsü."
- "Sola taşı"
- "Sağa taşı"
- "Yukarı taşı"
- "Aşağı taşı"
- "Bitti"
+ "PIP\'yi taşı"
+ "PIP penceresini genişlet"
+ "PIP penceresini daralt"
+ " Kontroller için "" ANA SAYFA ""\'ya iki kez basın"
diff --git a/libs/WindowManager/Shell/res/values-uk/strings.xml b/libs/WindowManager/Shell/res/values-uk/strings.xml
index 166041d6d6d88f5b0e9a44776cdac4abbf4422a0..c3411a837c7839a9f78e57420d74ac87b29af8cc 100644
--- a/libs/WindowManager/Shell/res/values-uk/strings.xml
+++ b/libs/WindowManager/Shell/res/values-uk/strings.xml
@@ -33,7 +33,6 @@
"Показати""Додаток може не працювати в режимі розділеного екрана.""Додаток не підтримує розділення екрана."
- "Цей додаток можна відкрити лише в одному вікні.""Додаток може не працювати на додатковому екрані.""Додаток не підтримує запуск на додаткових екранах.""Розділювач екрана"
@@ -73,23 +72,13 @@
"Спливаюче сповіщення""Налаштувати""Спливаюче сповіщення закрито."
- "Натисніть, щоб перезапустити цей додаток для зручнішого перегляду."
+ "Натисніть, щоб перезапустити додаток і перейти в повноекранний режим.""Проблеми з камерою?\nНатисніть, щоб пристосувати""Проблему не вирішено?\nНатисніть, щоб скасувати зміни""Немає проблем із камерою? Торкніться, щоб закрити."
- "Більше простору та можливостей"
- "Щоб перейти в режим розділення екрана, перетягніть сюди інший додаток"
- "Щоб перемістити додаток, двічі торкніться області поза ним"
+ "Деякі додатки найкраще працюють у вертикальній орієнтації"
+ "Щоб максимально ефективно використовувати місце на екрані, спробуйте виконати одну з наведених нижче дій"
+ "Щоб перейти в повноекранний режим, поверніть пристрій"
+ "Щоб перемістити додаток, двічі торкніться області поруч із ним""ОK"
- "Розгорніть, щоб дізнатися більше."
- "Збільшити"
- "Згорнути"
- "Закрити"
- "Назад"
- "Маркер"
- "На весь екран"
- "Режим комп’ютера"
- "Розділити екран"
- "Більше"
- "Плаваюче вікно"
diff --git a/libs/WindowManager/Shell/res/values-uk/strings_tv.xml b/libs/WindowManager/Shell/res/values-uk/strings_tv.xml
index 81a8285c58cfa89e6f5356b620dd947e25023a71..7e9f54e68f54256c609a5aaa2dccf251cce55b54 100644
--- a/libs/WindowManager/Shell/res/values-uk/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-uk/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Картинка в картинці""(Програма без назви)"
- "Закрити"
+ "Закрити PIP""На весь екран"
- "Перемістити"
- "Розгорнути"
- "Згорнути"
+ "Перемістити картинку в картинці"
+ "Розгорнути картинку в картинці"
+ "Згорнути картинку в картинці"" Відкрити елементи керування: двічі натисніть ""HOME"
- "Меню \"картинка в картинці\""
- "Перемістити ліворуч"
- "Перемістити праворуч"
- "Перемістити вгору"
- "Перемістити вниз"
- "Готово"
diff --git a/libs/WindowManager/Shell/res/values-ur/strings.xml b/libs/WindowManager/Shell/res/values-ur/strings.xml
index ca6a93714cdd07852b3af74983ec66451f6881f7..a31c2be2564315ceab81a18ca1ba151622152128 100644
--- a/libs/WindowManager/Shell/res/values-ur/strings.xml
+++ b/libs/WindowManager/Shell/res/values-ur/strings.xml
@@ -33,7 +33,6 @@
"Unstash""ممکن ہے کہ ایپ اسپلٹ اسکرین کے ساتھ کام نہ کرے۔""ایپ سپلٹ اسکرین کو سپورٹ نہیں کرتی۔"
- "یہ ایپ صرف 1 ونڈو میں کھولی جا سکتی ہے۔""ممکن ہے ایپ ثانوی ڈسپلے پر کام نہ کرے۔""ایپ ثانوی ڈسپلیز پر شروعات کا تعاون نہیں کرتی۔""سپلٹ اسکرین تقسیم کار"
@@ -73,23 +72,13 @@
"بلبلہ""نظم کریں""بلبلہ برخاست کر دیا گیا۔"
- "بہتر منظر کے لیے اس ایپ کو ری اسٹارٹ کرنے کی خاطر تھپتھپائیں۔"
+ "یہ ایپ دوبارہ شروع کرنے کے لیے تھپتھپائیں اور پوری اسکرین پر جائیں۔""کیمرے کے مسائل؟\nدوبارہ فٹ کرنے کیلئے تھپتھپائیں""یہ حل نہیں ہوا؟\nلوٹانے کیلئے تھپتھپائیں""کوئی کیمرے کا مسئلہ نہیں ہے؟ برخاست کرنے کیلئے تھپتھپائیں۔"
- "دیکھیں اور بہت کچھ کریں"
- "اسپلٹ اسکرین کے ليے دوسری ایپ میں گھسیٹیں"
- "کسی ایپ کی پوزیشن تبدیل کرنے کے لیے اس ایپ کے باہر دو بار تھپتھپائیں"
+ "کچھ ایپس پورٹریٹ میں بہترین کام کرتی ہیں"
+ "اپنی اسپیس کا زیادہ سے زیادہ فائدہ اٹھانے کے لیے ان اختیارات میں سے ایک کو آزمائیں"
+ "پوری اسکرین پر جانے کیلئے اپنا آلہ گھمائیں"
+ "کسی ایپ کی پوزیشن تبدیل کرنے کے لیے اس کے آگے دو بار تھپتھپائیں""سمجھ آ گئی"
- "مزید معلومات کے لیے پھیلائیں۔"
- "بڑا کریں"
- "چھوٹا کریں"
- "بند کریں"
- "پیچھے"
- "ہینڈل"
- "مکمل اسکرین"
- "ڈیسک ٹاپ موڈ"
- "اسپلٹ اسکرین"
- "مزید"
- "فلوٹ"
diff --git a/libs/WindowManager/Shell/res/values-ur/strings_tv.xml b/libs/WindowManager/Shell/res/values-ur/strings_tv.xml
index e83885772f2dba404ede425639d8f2cf5a56e18a..c2ef69ff148830655a755099e894a723d32bd9d8 100644
--- a/libs/WindowManager/Shell/res/values-ur/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-ur/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"تصویر میں تصویر""(بلا عنوان پروگرام)"
- "بند کریں"
+ "PIP بند کریں""فُل اسکرین"
- "منتقل کریں"
- "پھیلائیں"
- "سکیڑیں"
+ "PIP کو منتقل کریں"
+ "PIP کو پھیلائیں"
+ "PIP کو سکیڑیں"" کنٹرولز کے لیے ""ہوم "" بٹن کو دو بار دبائیں"
- "تصویر میں تصویر کا مینو۔"
- "دائیں منتقل کریں"
- "بائیں منتقل کریں"
- "اوپر منتقل کریں"
- "نیچے منتقل کریں"
- "ہو گیا"
diff --git a/libs/WindowManager/Shell/res/values-uz/strings.xml b/libs/WindowManager/Shell/res/values-uz/strings.xml
index 8f173d5d1e4bc5a2ee36c33e6bf3d47ea72b28c5..2e3222560dde5148415fb005f8f59418d94fb2ec 100644
--- a/libs/WindowManager/Shell/res/values-uz/strings.xml
+++ b/libs/WindowManager/Shell/res/values-uz/strings.xml
@@ -33,7 +33,6 @@
"Chiqarish""Bu ilova ekranni ikkiga ajratish rejimini dastaklamaydi.""Bu ilova ekranni bo‘lish xususiyatini qo‘llab-quvvatlamaydi."
- "Bu ilovani faqat 1 ta oynada ochish mumkin.""Bu ilova qo‘shimcha ekranda ishlamasligi mumkin.""Bu ilova qo‘shimcha ekranlarda ishga tushmaydi.""Ekranni ikkiga bo‘lish chizig‘i"
@@ -73,23 +72,13 @@
"Pufaklar""Boshqarish""Bulutcha yopildi."
- "Yaxshiroq koʻrish maqsadida bu ilovani qayta ishga tushirish uchun bosing."
+ "Bu ilovani qaytadan ishga tushirish va butun ekranda ochish uchun bosing.""Kamera nosozmi?\nQayta moslash uchun bosing""Tuzatilmadimi?\nQaytarish uchun bosing""Kamera muammosizmi? Yopish uchun bosing."
- "Yana boshqa amallar"
- "Ekranni ikkiga ajratish uchun boshqa ilovani bu yerga torting"
- "Qayta joylash uchun ilova tashqarisiga ikki marta bosing"
+ "Ayrim ilovalar tik holatda ishlashga eng mos"
+ "Muhitdan yanada samarali foydalanish uchun quyidagilardan birini sinang"
+ "Butun ekranda ochish uchun qurilmani buring"
+ "Qayta joylash uchun keyingi ilova ustiga ikki marta bosing""OK"
- "Batafsil axborot olish uchun kengaytiring."
- "Yoyish"
- "Kichraytirish"
- "Yopish"
- "Orqaga"
- "Identifikator"
- "Butun ekran"
- "Desktop rejimi"
- "Ekranni ikkiga ajratish"
- "Yana"
- "Pufakli"
diff --git a/libs/WindowManager/Shell/res/values-uz/strings_tv.xml b/libs/WindowManager/Shell/res/values-uz/strings_tv.xml
index da953356628cff1f2aee5f75f6b433e8d17a3c55..9ab95c80aa25626eb4630f356ba3b5277d233108 100644
--- a/libs/WindowManager/Shell/res/values-uz/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-uz/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Tasvir ustida tasvir""(Nomsiz)"
- "Yopish"
+ "Kadr ichida kadr – chiqish""Butun ekran"
- "Boshqa joyga olish"
- "Yoyish"
- "Yopish"
+ "PIPni siljitish"
+ "PIP funksiyasini yoyish"
+ "PIP funksiyasini yopish"" Boshqaruv uchun ""ASOSIY"" tugmani ikki marta bosing"
- "Tasvir ustida tasvir menyusi."
- "Chapga olish"
- "Oʻngga olish"
- "Tepaga olish"
- "Pastga olish"
- "Tayyor"
diff --git a/libs/WindowManager/Shell/res/values-vi/strings.xml b/libs/WindowManager/Shell/res/values-vi/strings.xml
index 1d5b9d63ee5a1a228903063ae9bc5c7d4c9b47a3..8f3cffecc952da05d663c3e77460028156628117 100644
--- a/libs/WindowManager/Shell/res/values-vi/strings.xml
+++ b/libs/WindowManager/Shell/res/values-vi/strings.xml
@@ -33,7 +33,6 @@
"Hiện""Ứng dụng có thể không hoạt động với tính năng chia đôi màn hình.""Ứng dụng không hỗ trợ chia đôi màn hình."
- "Ứng dụng này chỉ có thể mở 1 cửa sổ.""Ứng dụng có thể không hoạt động trên màn hình phụ.""Ứng dụng không hỗ trợ khởi chạy trên màn hình phụ.""Bộ chia chia đôi màn hình"
@@ -73,23 +72,13 @@
"Bong bóng""Quản lý""Đã đóng bong bóng."
- "Nhấn để khởi động lại ứng dụng này để xem tốt hơn."
+ "Nhấn để khởi động lại ứng dụng này và xem ở chế độ toàn màn hình.""Có vấn đề với máy ảnh?\nHãy nhấn để sửa lỗi""Bạn chưa khắc phục vấn đề?\nHãy nhấn để hủy bỏ""Không có vấn đề với máy ảnh? Hãy nhấn để đóng."
- "Xem và làm được nhiều việc hơn"
- "Kéo vào một ứng dụng khác để chia đôi màn hình"
- "Nhấn đúp bên ngoài ứng dụng để đặt lại vị trí"
+ "Một số ứng dụng hoạt động tốt nhất ở chế độ dọc"
+ "Hãy thử một trong các tuỳ chọn sau để tận dụng không gian"
+ "Xoay thiết bị để chuyển sang chế độ toàn màn hình"
+ "Nhấn đúp vào bên cạnh ứng dụng để đặt lại vị trí""OK"
- "Mở rộng để xem thêm thông tin."
- "Phóng to"
- "Thu nhỏ"
- "Đóng"
- "Quay lại"
- "Xử lý"
- "Toàn màn hình"
- "Chế độ máy tính"
- "Chia đôi màn hình"
- "Tuỳ chọn khác"
- "Nổi"
diff --git a/libs/WindowManager/Shell/res/values-vi/strings_tv.xml b/libs/WindowManager/Shell/res/values-vi/strings_tv.xml
index 1f9260fdcff0356c329aa6f7fa3ce27046f46b74..146376d3cab67d4a524dd27f08aa36800fc40f6b 100644
--- a/libs/WindowManager/Shell/res/values-vi/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-vi/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Hình trong hình""(Không có chương trình tiêu đề)"
- "Đóng"
+ "Đóng PIP""Toàn màn hình"
- "Di chuyển"
- "Mở rộng"
- "Thu gọn"
+ "Di chuyển PIP (Ảnh trong ảnh)"
+ "Mở rộng PIP (Ảnh trong ảnh)"
+ "Thu gọn PIP (Ảnh trong ảnh)"" Nhấn đúp vào nút "" MÀN HÌNH CHÍNH "" để mở trình đơn điều khiển"
- "Trình đơn hình trong hình."
- "Di chuyển sang trái"
- "Di chuyển sang phải"
- "Di chuyển lên"
- "Di chuyển xuống"
- "Xong"
diff --git a/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml b/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
index 87f2973aa6182092b11737a255e2c9016f50b9c1..19a9d371e43523c18aedf1329503b98811007519 100644
--- a/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml
@@ -33,7 +33,6 @@
"取消隐藏""应用可能无法在分屏模式下正常运行。""应用不支持分屏。"
- "此应用只能在 1 个窗口中打开。""应用可能无法在辅显示屏上正常运行。""应用不支持在辅显示屏上启动。""分屏分隔线"
@@ -73,23 +72,13 @@
"气泡""管理""已关闭对话泡。"
- "点按即可重启此应用,获得更好的视图体验。"
+ "点按即可重启此应用并进入全屏模式。""相机有问题?\n点按即可整修""没有解决此问题?\n点按即可恢复""相机没有问题?点按即可忽略。"
- "查看和处理更多任务"
- "拖入另一个应用,即可使用分屏模式"
- "在某个应用外连续点按两次,即可调整它的位置"
+ "某些应用在纵向模式下才能发挥最佳效果"
+ "这些选项都有助于您最大限度地利用屏幕空间,不妨从中择一试试"
+ "旋转设备即可进入全屏模式"
+ "在某个应用旁边连续点按两次,即可调整它的位置""知道了"
- "展开即可了解详情。"
- "最大化"
- "最小化"
- "关闭"
- "返回"
- "处理"
- "全屏"
- "桌面模式"
- "分屏"
- "更多"
- "悬浮"
diff --git a/libs/WindowManager/Shell/res/values-zh-rCN/strings_tv.xml b/libs/WindowManager/Shell/res/values-zh-rCN/strings_tv.xml
index 399d639fe70f28aa2284c9e7eef10d531ed42926..55407d2c699d3c5889a1bb34014d9d49e947cecd 100644
--- a/libs/WindowManager/Shell/res/values-zh-rCN/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rCN/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"画中画""(节目没有标题)"
- "关闭"
+ "关闭画中画""全屏"
- "移动"
- "展开"
- "收起"
+ "移动画中画窗口"
+ "展开 PIP"
+ "收起 PIP"" 按两次""主屏幕""按钮可查看相关控件"
- "画中画菜单。"
- "左移"
- "右移"
- "上移"
- "下移"
- "完成"
diff --git a/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml b/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
index f9b22d226c4f41aa2349dd0a24be2521d2222308..0c40e963f2e4fcd9572b23b268b0490ac589ea10 100644
--- a/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rHK/strings.xml
@@ -33,7 +33,6 @@
"取消保護""應用程式可能無法在分割畫面中運作。""應用程式不支援分割畫面。"
- "此應用程式只可在 1 個視窗中開啟""應用程式可能無法在次要顯示屏上運作。""應用程式無法在次要顯示屏上啟動。""分割畫面分隔線"
@@ -73,23 +72,13 @@
"氣泡""管理""對話氣泡已關閉。"
- "輕按並重新啟動此應用程式,以取得更佳的觀看體驗。"
+ "輕按即可重新開啟此應用程式並放大至全螢幕。""相機有問題?\n輕按即可修正""未能修正問題?\n輕按即可還原""相機冇問題?㩒一下就可以即可閂咗佢。"
- "瀏覽更多內容及執行更多操作"
- "拖入另一個應用程式即可分割螢幕"
- "在應用程式外輕按兩下即可調整位置"
+ "部分應用程式需要使用直向模式才能發揮最佳效果"
+ "請嘗試以下選項,充分運用螢幕的畫面空間"
+ "旋轉裝置方向即可進入全螢幕模式"
+ "在應用程式旁輕按兩下即可調整位置""知道了"
- "展開即可查看詳情。"
- "最大化"
- "最小化"
- "關閉"
- "返去"
- "控點"
- "全螢幕"
- "桌面模式"
- "分割螢幕"
- "更多"
- "浮動"
diff --git a/libs/WindowManager/Shell/res/values-zh-rHK/strings_tv.xml b/libs/WindowManager/Shell/res/values-zh-rHK/strings_tv.xml
index acbc26d033cd8860a060074ddf475f01672843fd..15e278d8ecc2df9f5e8f770524305f391a8f2811 100644
--- a/libs/WindowManager/Shell/res/values-zh-rHK/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rHK/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"畫中畫""(沒有標題的節目)"
- "關閉"
+ "關閉 PIP""全螢幕"
- "移動"
- "展開"
- "收合"
+ "移動畫中畫"
+ "展開畫中畫"
+ "收合畫中畫"" 按兩下"" 主畫面按鈕""即可顯示控制項"
- "畫中畫選單。"
- "向左移"
- "向右移"
- "向上移"
- "向下移"
- "完成"
diff --git a/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml b/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
index 1438e52ccb4a3b3e7f693a098d2d3498b0bdf794..8691352cf94a0100f75f295bea2ac3e0a76853da 100644
--- a/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rTW/strings.xml
@@ -33,7 +33,6 @@
"取消暫時隱藏""應用程式可能無法在分割畫面中運作。""這個應用程式不支援分割畫面。"
- "這個應用程式只能在 1 個視窗中開啟。""應用程式可能無法在次要顯示器上運作。""應用程式無法在次要顯示器上啟動。""分割畫面分隔線"
@@ -73,23 +72,13 @@
"泡泡""管理""已關閉泡泡。"
- "請輕觸並重新啟動此應用程式,取得更良好的觀看體驗。"
+ "輕觸即可重新啟動這個應用程式並進入全螢幕模式。""相機有問題嗎?\n輕觸即可修正""未修正問題嗎?\n輕觸即可還原""相機沒問題嗎?輕觸即可關閉。"
- "瀏覽更多內容及執行更多操作"
- "拖進另一個應用程式即可使用分割畫面模式"
- "在應用程式外輕觸兩下即可調整位置"
+ "某些應用程式在直向模式下才能發揮最佳效果"
+ "請試試這裡的任一方式,以充分運用螢幕畫面的空間"
+ "旋轉裝置方向即可進入全螢幕模式"
+ "在應用程式旁輕觸兩下即可調整位置""我知道了"
- "展開即可查看詳細資訊。"
- "最大化"
- "最小化"
- "關閉"
- "返回"
- "控點"
- "全螢幕"
- "電腦模式"
- "分割畫面"
- "更多"
- "浮動"
diff --git a/libs/WindowManager/Shell/res/values-zh-rTW/strings_tv.xml b/libs/WindowManager/Shell/res/values-zh-rTW/strings_tv.xml
index f8c683ec3a606380d75f934d92b43a2368169724..0b17b31d23d08c899f706b01479f31a11698e6b5 100644
--- a/libs/WindowManager/Shell/res/values-zh-rTW/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-zh-rTW/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"子母畫面""(無標題的節目)"
- "關閉"
+ "關閉子母畫面""全螢幕"
- "移動"
- "展開"
- "收合"
+ "移動子母畫面"
+ "展開子母畫面"
+ "收合子母畫面"" 按兩下""主畫面按鈕""即可顯示控制選項"
- "子母畫面選單。"
- "向左移動"
- "向右移動"
- "向上移動"
- "向下移動"
- "完成"
diff --git a/libs/WindowManager/Shell/res/values-zu/strings.xml b/libs/WindowManager/Shell/res/values-zu/strings.xml
index e9238dc0833a5a1a8fd4a16975228922b93f81f7..44ffbc6afa4509c91232780a905ed7720c978420 100644
--- a/libs/WindowManager/Shell/res/values-zu/strings.xml
+++ b/libs/WindowManager/Shell/res/values-zu/strings.xml
@@ -19,7 +19,7 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Vala""Nweba"
- "Amasethingi"
+ "Izilungiselelo""Faka ukuhlukanisa isikrini""Imenyu""U-%s ungaphakathi kwesithombe esiphakathi kwesithombe"
@@ -33,7 +33,6 @@
"Susa isiteshi""Izinhlelo zokusebenza kungenzeka zingasebenzi ngesikrini esihlukanisiwe.""Uhlelo lokusebenza alusekeli isikrini esihlukanisiwe."
- "Le-app ingavulwa kuphela ewindini eli-1.""Uhlelo lokusebenza kungenzeka lungasebenzi kusibonisi sesibili.""Uhlelo lokusebenza alusekeli ukuqalisa kuzibonisi zesibili.""Isihlukanisi sokuhlukanisa isikrini"
@@ -73,23 +72,13 @@
"Ibhamuza""Phatha""Ibhamuza licashisiwe."
- "Thepha ukuze uqale kabusha le app ukuze ibonakale kangcono."
+ "Thepha ukuze uqale kabusha lolu hlelo lokusebenza uphinde uye kusikrini esigcwele.""Izinkinga zekhamera?\nThepha ukuze uyilinganise kabusha""Akuyilungisanga?\nThepha ukuze ubuyele""Azikho izinkinga zekhamera? Thepha ukuze ucashise."
- "Bona futhi wenze okuningi"
- "Hudula kwenye i-app mayelana nokuhlukanisa isikrini"
- "Thepha kabili ngaphandle kwe-app ukuze uyimise kabusha"
+ "Amanye ama-app asebenza ngcono uma eme ngobude"
+ "Zama enye yalezi zinketho ukuze usebenzise isikhala sakho ngokugcwele"
+ "Zungezisa idivayisi yakho ukuze uye esikrinini esigcwele"
+ "Thepha kabili eduze kwe-app ukuze uyimise kabusha""Ngiyezwa"
- "Nweba ukuze uthole ulwazi olwengeziwe"
- "Khulisa"
- "Nciphisa"
- "Vala"
- "Emuva"
- "Isibambo"
- "Isikrini esigcwele"
- "Imodi Yedeskithophu"
- "Hlukanisa isikrini"
- "Okwengeziwe"
- "Iflowuthi"
diff --git a/libs/WindowManager/Shell/res/values-zu/strings_tv.xml b/libs/WindowManager/Shell/res/values-zu/strings_tv.xml
index 20243a9dfc9c424e0c357ac31c8c8a5d07f00f6d..dad8c8128222966512f3d2084ccb01dba5c78b85 100644
--- a/libs/WindowManager/Shell/res/values-zu/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-zu/strings_tv.xml
@@ -19,16 +19,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
"Isithombe-esithombeni""(Alukho uhlelo lwesihloko)"
- "Vala"
+ "Vala i-PIP""Iskrini esigcwele"
- "Hambisa"
- "Nweba"
- "Goqa"
+ "Hambisa i-PIP"
+ "Nweba i-PIP"
+ "Goqa i-PIP"" Chofoza kabili "" IKHAYA"" mayelana nezilawuli"
- "Imenyu yesithombe-esithombeni"
- "Yisa kwesokunxele"
- "Yisa kwesokudla"
- "Khuphula"
- "Yehlisa"
- "Kwenziwe"
diff --git a/libs/WindowManager/Shell/res/values/attrs.xml b/libs/WindowManager/Shell/res/values/attrs.xml
index 2aad4c1c18051e20da62929dc54f97b28da8f82b..fbb5caa508de82751d7d17ea91195087d763859b 100644
--- a/libs/WindowManager/Shell/res/values/attrs.xml
+++ b/libs/WindowManager/Shell/res/values/attrs.xml
@@ -1,5 +1,5 @@
- #ffffff
+ #000000
+ @color/taskbar_background#59000000#60000000#00000000
@@ -41,6 +42,9 @@
@android:color/system_accent1_100@android:color/system_neutral2_200
+
+ @android:color/system_neutral1_900
+
#E8EAED#5F6368
diff --git a/libs/WindowManager/Shell/res/values/config.xml b/libs/WindowManager/Shell/res/values/config.xml
index 774f6c6379b2c3fbe2f312350bb4f7e7c2c4ac64..76eb0945d9903c5967e60df024293f911f8614fc 100644
--- a/libs/WindowManager/Shell/res/values/config.xml
+++ b/libs/WindowManager/Shell/res/values/config.xml
@@ -105,6 +105,10 @@
1.777778
+
+ 0.5625
+
0x55
diff --git a/libs/WindowManager/Shell/res/values/dimen.xml b/libs/WindowManager/Shell/res/values/dimen.xml
index 3ee20ea95ee5425dfe75f954e4b9270b1e6949fc..9fd16461fa01d3c207964c48761171feffa8cc48 100644
--- a/libs/WindowManager/Shell/res/values/dimen.xml
+++ b/libs/WindowManager/Shell/res/values/dimen.xml
@@ -228,7 +228,7 @@
16dp
- 16dp
+ 24dp28dp
@@ -273,6 +273,66 @@
24dp
+
+ 12dp
+
+
+ 16dp
+
+
+ 8dp
+
+
+ 6dp
+
+
+ 24dp
+
+
+ 28dp
+
+
+ 348dp
+
+
+ 32dp
+
+
+ 32dp
+
+
+ 40dp
+
+
+ 32dp
+
+
+ 24dp
+
+
+ 82dp
+
+
+ 36dp
+
+
+ 18dp
+
+
+ 6dp
+
+
+ 16dp
+
+
+ 8dp
+
+
+ 16dp
+
+
+ 24dp
+
200dp
@@ -298,30 +358,6 @@
-->
48dp
-
- 32dp
-
-
- 24dp
-
-
- 5dp
-
-
- 32dp
-
-
- 8dp
-
-
- 8dp
-
-
- 150dp
-
-
- 120dp
-
20dp
@@ -331,11 +367,19 @@
42dp
-
- 216dp
+
+ 256dp
+
+ 250dp30dp44dp
+
+ 4dp
+
+
+ 20dp
+
diff --git a/libs/WindowManager/Shell/res/values/strings.xml b/libs/WindowManager/Shell/res/values/strings.xml
index 25eddf834f3da54d3ccf2695fec5702cca27d9a7..a201536da25a6f05e34beeb9e1c16ac4b723ad39 100644
--- a/libs/WindowManager/Shell/res/values/strings.xml
+++ b/libs/WindowManager/Shell/res/values/strings.xml
@@ -100,6 +100,15 @@
Bottom full screen
+
+ Split left
+
+ Split right
+
+ Split top
+
+ Split bottom
+
Using one-handed mode
@@ -188,6 +197,35 @@
Expand for more information.
+
+ Restart for a better view?
+
+
+ You can restart the app so it looks better on
+ your screen, but you may lose your progress or any unsaved changes
+
+
+
+ Cancel
+
+
+ Restart
+
+
+ Don\u2019t show again
+
+
+ Double-tap to\nmove this app
+
Maximize
@@ -199,6 +237,8 @@
BackHandle
+
+ App IconFullscreen
@@ -209,4 +249,12 @@
MoreFloat
+
+ Select
+
+ Screenshot
+
+ Close
+
+ Close Menu
diff --git a/libs/WindowManager/Shell/res/values/styles.xml b/libs/WindowManager/Shell/res/values/styles.xml
index a8597210d72e7108b319f6deb90d6c4f9c5d6631..6e1185559a50b3ab7affbe8b0f15b9dd70c8929e 100644
--- a/libs/WindowManager/Shell/res/values/styles.xml
+++ b/libs/WindowManager/Shell/res/values/styles.xml
@@ -37,6 +37,20 @@
4dp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/ProtoLogController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/ProtoLogController.java
index d2760022a01538af7b6983b69c4e6b0cf6d9d617..88525aabe53b3f7e1f2e8c2cb01ddb0d5f977fd8 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/ProtoLogController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/ProtoLogController.java
@@ -84,6 +84,15 @@ public class ProtoLogController implements ShellCommandHandler.ShellCommandActio
String[] groups = Arrays.copyOfRange(args, 1, args.length);
return mShellProtoLog.stopTextLogging(groups, pw) == 0;
}
+ case "save-for-bugreport": {
+ if (!mShellProtoLog.isProtoEnabled()) {
+ pw.println("Logging to proto is not enabled for WMShell.");
+ return false;
+ }
+ mShellProtoLog.stopProtoLog(pw, true /* writeToFile */);
+ mShellProtoLog.startProtoLog(pw);
+ return true;
+ }
default: {
pw.println("Invalid command: " + args[0]);
printShellCommandHelp(pw, "");
@@ -108,5 +117,7 @@ public class ProtoLogController implements ShellCommandHandler.ShellCommandActio
pw.println(prefix + " Enable logcat logging for given groups.");
pw.println(prefix + "disable-text [group...]");
pw.println(prefix + " Disable logcat logging for given groups.");
+ pw.println(prefix + "save-for-bugreport");
+ pw.println(prefix + " Flush proto logging to file, only if it's enabled.");
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/ShellTaskOrganizer.java b/libs/WindowManager/Shell/src/com/android/wm/shell/ShellTaskOrganizer.java
index e58e785850faca020a7ac6d1859333be9a8c44fb..97a9fede22d54cc466b186eeb57dbf2b1035645d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/ShellTaskOrganizer.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/ShellTaskOrganizer.java
@@ -256,12 +256,30 @@ public class ShellTaskOrganizer extends TaskOrganizer implements
}
}
+ /**
+ * Creates a persistent root task in WM for a particular windowing-mode.
+ * @param displayId The display to create the root task on.
+ * @param windowingMode Windowing mode to put the root task in.
+ * @param listener The listener to get the created task callback.
+ */
public void createRootTask(int displayId, int windowingMode, TaskListener listener) {
- ProtoLog.v(WM_SHELL_TASK_ORG, "createRootTask() displayId=%d winMode=%d listener=%s",
+ createRootTask(displayId, windowingMode, listener, false /* removeWithTaskOrganizer */);
+ }
+
+ /**
+ * Creates a persistent root task in WM for a particular windowing-mode.
+ * @param displayId The display to create the root task on.
+ * @param windowingMode Windowing mode to put the root task in.
+ * @param listener The listener to get the created task callback.
+ * @param removeWithTaskOrganizer True if this task should be removed when organizer destroyed.
+ */
+ public void createRootTask(int displayId, int windowingMode, TaskListener listener,
+ boolean removeWithTaskOrganizer) {
+ ProtoLog.v(WM_SHELL_TASK_ORG, "createRootTask() displayId=%d winMode=%d listener=%s" ,
displayId, windowingMode, listener.toString());
final IBinder cookie = new Binder();
setPendingLaunchCookieListener(cookie, listener);
- super.createRootTask(displayId, windowingMode, cookie);
+ super.createRootTask(displayId, windowingMode, cookie, removeWithTaskOrganizer);
}
/**
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java
index cbcd9498fe55e758c3bf4e5556f23a4615869143..aaeef196b6182f5a9b3e23017179a75b3f7d540a 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java
@@ -51,6 +51,7 @@ import android.view.RemoteAnimationTarget;
import android.view.SurfaceControl;
import android.window.BackAnimationAdaptor;
import android.window.BackEvent;
+import android.window.BackMotionEvent;
import android.window.BackNavigationInfo;
import android.window.IBackAnimationRunner;
import android.window.IBackNaviAnimationController;
@@ -81,7 +82,7 @@ public class BackAnimationController implements RemoteCallable= 0
? PROGRESS_THRESHOLD : mProgressThreshold;
progressThreshold = progressThreshold == 0 ? 1 : progressThreshold;
@@ -109,8 +110,8 @@ class TouchTracker {
return createProgressEvent(progress);
}
- BackEvent createProgressEvent(float progress) {
- return new BackEvent(mLatestTouchX, mLatestTouchY, progress, mSwipeEdge, null);
+ BackMotionEvent createProgressEvent(float progress) {
+ return new BackMotionEvent(mLatestTouchX, mLatestTouchY, progress, mSwipeEdge, null);
}
public void setProgressThreshold(float progressThreshold) {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubble.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubble.java
index 09dc68a4cceaa3402be027373d973709fbaabc64..e24c2286013de2ab154355551f12ca1e2b5b2d33 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubble.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubble.java
@@ -21,6 +21,7 @@ import static android.os.AsyncTask.Status.FINISHED;
import static com.android.internal.annotations.VisibleForTesting.Visibility.PRIVATE;
import android.annotation.DimenRes;
+import android.annotation.Hide;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.Notification;
@@ -125,7 +126,7 @@ public class Bubble implements BubbleViewProvider {
private Icon mIcon;
private boolean mIsBubble;
private boolean mIsTextChanged;
- private boolean mIsClearable;
+ private boolean mIsDismissable;
private boolean mShouldSuppressNotificationDot;
private boolean mShouldSuppressNotificationList;
private boolean mShouldSuppressPeek;
@@ -180,7 +181,7 @@ public class Bubble implements BubbleViewProvider {
@VisibleForTesting(visibility = PRIVATE)
public Bubble(@NonNull final String key, @NonNull final ShortcutInfo shortcutInfo,
final int desiredHeight, final int desiredHeightResId, @Nullable final String title,
- int taskId, @Nullable final String locus, Executor mainExecutor,
+ int taskId, @Nullable final String locus, boolean isDismissable, Executor mainExecutor,
final Bubbles.BubbleMetadataFlagListener listener) {
Objects.requireNonNull(key);
Objects.requireNonNull(shortcutInfo);
@@ -189,6 +190,7 @@ public class Bubble implements BubbleViewProvider {
mKey = key;
mGroupKey = null;
mLocusId = locus != null ? new LocusId(locus) : null;
+ mIsDismissable = isDismissable;
mFlags = 0;
mUser = shortcutInfo.getUserHandle();
mPackageName = shortcutInfo.getPackage();
@@ -245,6 +247,11 @@ public class Bubble implements BubbleViewProvider {
return mKey;
}
+ @Hide
+ public boolean isDismissable() {
+ return mIsDismissable;
+ }
+
/**
* @see StatusBarNotification#getGroupKey()
* @return the group key for this bubble, if one exists.
@@ -526,7 +533,7 @@ public class Bubble implements BubbleViewProvider {
mDeleteIntent = entry.getBubbleMetadata().getDeleteIntent();
}
- mIsClearable = entry.isClearable();
+ mIsDismissable = entry.isDismissable();
mShouldSuppressNotificationDot = entry.shouldSuppressNotificationDot();
mShouldSuppressNotificationList = entry.shouldSuppressNotificationList();
mShouldSuppressPeek = entry.shouldSuppressPeek();
@@ -605,7 +612,7 @@ public class Bubble implements BubbleViewProvider {
* Whether this notification should be shown in the shade.
*/
boolean showInShade() {
- return !shouldSuppressNotification() || !mIsClearable;
+ return !shouldSuppressNotification() || !mIsDismissable;
}
/**
@@ -870,7 +877,7 @@ public class Bubble implements BubbleViewProvider {
pw.print(" desiredHeight: "); pw.println(getDesiredHeightString());
pw.print(" suppressNotif: "); pw.println(shouldSuppressNotification());
pw.print(" autoExpand: "); pw.println(shouldAutoExpand());
- pw.print(" isClearable: "); pw.println(mIsClearable);
+ pw.print(" isDismissable: "); pw.println(mIsDismissable);
pw.println(" bubbleMetadataFlagListener null: " + (mBubbleMetadataFlagListener == null));
if (mExpandedView != null) {
mExpandedView.dump(pw);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java
index dd8afff0df2cf32e27803316fa8617ce5a920248..541c0f04b9b9d9a7944e0bdb8d00821d32159b2c 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleController.java
@@ -61,6 +61,7 @@ import android.os.Binder;
import android.os.Handler;
import android.os.RemoteException;
import android.os.ServiceManager;
+import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
import android.service.notification.NotificationListenerService;
@@ -125,6 +126,39 @@ public class BubbleController implements ConfigurationChangeListener {
private static final String SYSTEM_DIALOG_REASON_KEY = "reason";
private static final String SYSTEM_DIALOG_REASON_GESTURE_NAV = "gestureNav";
+ // TODO(b/256873975) Should use proper flag when available to shell/launcher
+ /**
+ * Whether bubbles are showing in the bubble bar from launcher. This is only available
+ * on large screens and {@link BubbleController#isShowingAsBubbleBar()} should be used
+ * to check all conditions that indicate if the bubble bar is in use.
+ */
+ private static final boolean BUBBLE_BAR_ENABLED =
+ SystemProperties.getBoolean("persist.wm.debug.bubble_bar", false);
+
+
+ /**
+ * Common interface to send updates to bubble views.
+ */
+ public interface BubbleViewCallback {
+ /** Called when the provided bubble should be removed. */
+ void removeBubble(Bubble removedBubble);
+ /** Called when the provided bubble should be added. */
+ void addBubble(Bubble addedBubble);
+ /** Called when the provided bubble should be updated. */
+ void updateBubble(Bubble updatedBubble);
+ /** Called when the provided bubble should be selected. */
+ void selectionChanged(BubbleViewProvider selectedBubble);
+ /** Called when the provided bubble's suppression state has changed. */
+ void suppressionChanged(Bubble bubble, boolean isSuppressed);
+ /** Called when the expansion state of bubbles has changed. */
+ void expansionChanged(boolean isExpanded);
+ /**
+ * Called when the order of the bubble list has changed. Depending on the expanded state
+ * the pointer might need to be updated.
+ */
+ void bubbleOrderChanged(List bubbleOrder, boolean updatePointer);
+ }
+
private final Context mContext;
private final BubblesImpl mImpl = new BubblesImpl();
private Bubbles.BubbleExpandListener mExpandListener;
@@ -147,12 +181,8 @@ public class BubbleController implements ConfigurationChangeListener {
// Used to post to main UI thread
private final ShellExecutor mMainExecutor;
private final Handler mMainHandler;
-
private final ShellExecutor mBackgroundExecutor;
- // Whether or not we should show bubbles pinned at the bottom of the screen.
- private boolean mIsBubbleBarEnabled;
-
private BubbleLogger mLogger;
private BubbleData mBubbleData;
@Nullable private BubbleStackView mStackView;
@@ -533,10 +563,10 @@ public class BubbleController implements ConfigurationChangeListener {
mDataRepository.removeBubblesForUser(removedUserId, parentUserId);
}
- // TODO(b/256873975): Should pass this into the constructor once flags are available to shell.
- /** Sets whether the bubble bar is enabled (i.e. bubbles pinned to bottom on large screens). */
- public void setBubbleBarEnabled(boolean enabled) {
- mIsBubbleBarEnabled = enabled;
+ /** Whether bubbles are showing in the bubble bar. */
+ public boolean isShowingAsBubbleBar() {
+ // TODO(b/269670598): should also check that we're in gesture nav
+ return BUBBLE_BAR_ENABLED && mBubblePositioner.isLargeScreen();
}
/** Whether this userId belongs to the current user. */
@@ -605,12 +635,6 @@ public class BubbleController implements ConfigurationChangeListener {
mStackView.setUnbubbleConversationCallback(mSysuiProxy::onUnbubbleConversation);
}
- if (mIsBubbleBarEnabled && mBubblePositioner.isLargeScreen()) {
- mBubblePositioner.setUsePinnedLocation(true);
- } else {
- mBubblePositioner.setUsePinnedLocation(false);
- }
-
addToWindowManagerMaybe();
}
@@ -973,21 +997,59 @@ public class BubbleController implements ConfigurationChangeListener {
}
/**
- * Adds and expands bubble for a specific intent. These bubbles are not backed by a n
- * otification and remain until the user dismisses the bubble or bubble stack. Only one intent
- * bubble is supported at a time.
+ * This method has different behavior depending on:
+ * - if an app bubble exists
+ * - if an app bubble is expanded
+ *
+ * If no app bubble exists, this will add and expand a bubble with the provided intent. The
+ * intent must be explicit (i.e. include a package name or fully qualified component class name)
+ * and the activity for it should be resizable.
+ *
+ * If an app bubble exists, this will toggle the visibility of it, i.e. if the app bubble is
+ * expanded, calling this method will collapse it. If the app bubble is not expanded, calling
+ * this method will expand it.
+ *
+ * These bubbles are not backed by a notification and remain until the user dismisses
+ * the bubble or bubble stack.
+ *
+ * Some notes:
+ * - Only one app bubble is supported at a time
+ * - Calling this method with a different intent than the existing app bubble will do nothing
*
* @param intent the intent to display in the bubble expanded view.
*/
- public void showAppBubble(Intent intent) {
- if (intent == null || intent.getPackage() == null) return;
+ public void showOrHideAppBubble(Intent intent) {
+ if (intent == null || intent.getPackage() == null) {
+ Log.w(TAG, "App bubble failed to show, invalid intent: " + intent
+ + ((intent != null) ? " with package: " + intent.getPackage() : " "));
+ return;
+ }
PackageManager packageManager = getPackageManagerForUser(mContext, mCurrentUserId);
if (!isResizableActivity(intent, packageManager, KEY_APP_BUBBLE)) return;
- Bubble b = new Bubble(intent, UserHandle.of(mCurrentUserId), mMainExecutor);
- b.setShouldAutoExpand(true);
- inflateAndAdd(b, /* suppressFlyout= */ true, /* showInShade= */ false);
+ Bubble existingAppBubble = mBubbleData.getBubbleInStackWithKey(KEY_APP_BUBBLE);
+ if (existingAppBubble != null) {
+ BubbleViewProvider selectedBubble = mBubbleData.getSelectedBubble();
+ if (isStackExpanded()) {
+ if (selectedBubble != null && KEY_APP_BUBBLE.equals(selectedBubble.getKey())) {
+ // App bubble is expanded, lets collapse
+ collapseStack();
+ } else {
+ // App bubble is not selected, select it
+ mBubbleData.setSelectedBubble(existingAppBubble);
+ }
+ } else {
+ // App bubble is not selected, select it & expand
+ mBubbleData.setSelectedBubble(existingAppBubble);
+ mBubbleData.setExpanded(true);
+ }
+ } else {
+ // App bubble does not exist, lets add and expand it
+ Bubble b = new Bubble(intent, UserHandle.of(mCurrentUserId), mMainExecutor);
+ b.setShouldAutoExpand(true);
+ inflateAndAdd(b, /* suppressFlyout= */ true, /* showInShade= */ false);
+ }
}
/**
@@ -1246,6 +1308,58 @@ public class BubbleController implements ConfigurationChangeListener {
});
}
+ private final BubbleViewCallback mBubbleViewCallback = new BubbleViewCallback() {
+ @Override
+ public void removeBubble(Bubble removedBubble) {
+ if (mStackView != null) {
+ mStackView.removeBubble(removedBubble);
+ }
+ }
+
+ @Override
+ public void addBubble(Bubble addedBubble) {
+ if (mStackView != null) {
+ mStackView.addBubble(addedBubble);
+ }
+ }
+
+ @Override
+ public void updateBubble(Bubble updatedBubble) {
+ if (mStackView != null) {
+ mStackView.updateBubble(updatedBubble);
+ }
+ }
+
+ @Override
+ public void bubbleOrderChanged(List bubbleOrder, boolean updatePointer) {
+ if (mStackView != null) {
+ mStackView.updateBubbleOrder(bubbleOrder, updatePointer);
+ }
+ }
+
+ @Override
+ public void suppressionChanged(Bubble bubble, boolean isSuppressed) {
+ if (mStackView != null) {
+ mStackView.setBubbleSuppressed(bubble, isSuppressed);
+ }
+ }
+
+ @Override
+ public void expansionChanged(boolean isExpanded) {
+ if (mStackView != null) {
+ mStackView.setExpanded(isExpanded);
+ }
+ }
+
+ @Override
+ public void selectionChanged(BubbleViewProvider selectedBubble) {
+ if (mStackView != null) {
+ mStackView.setSelectedBubble(selectedBubble);
+ }
+
+ }
+ };
+
@SuppressWarnings("FieldCanBeLocal")
private final BubbleData.Listener mBubbleDataListener = new BubbleData.Listener() {
@@ -1268,7 +1382,8 @@ public class BubbleController implements ConfigurationChangeListener {
// Lazy load overflow bubbles from disk
loadOverflowBubblesFromDisk();
- mStackView.updateOverflowButtonDot();
+ // If bubbles in the overflow have a dot, make sure the overflow shows a dot
+ updateOverflowButtonDot();
// Update bubbles in overflow.
if (mOverflowListener != null) {
@@ -1283,9 +1398,7 @@ public class BubbleController implements ConfigurationChangeListener {
final Bubble bubble = removed.first;
@Bubbles.DismissReason final int reason = removed.second;
- if (mStackView != null) {
- mStackView.removeBubble(bubble);
- }
+ mBubbleViewCallback.removeBubble(bubble);
// Leave the notification in place if we're dismissing due to user switching, or
// because DND is suppressing the bubble. In both of those cases, we need to be able
@@ -1315,49 +1428,47 @@ public class BubbleController implements ConfigurationChangeListener {
}
mDataRepository.removeBubbles(mCurrentUserId, bubblesToBeRemovedFromRepository);
- if (update.addedBubble != null && mStackView != null) {
+ if (update.addedBubble != null) {
mDataRepository.addBubble(mCurrentUserId, update.addedBubble);
- mStackView.addBubble(update.addedBubble);
+ mBubbleViewCallback.addBubble(update.addedBubble);
}
- if (update.updatedBubble != null && mStackView != null) {
- mStackView.updateBubble(update.updatedBubble);
+ if (update.updatedBubble != null) {
+ mBubbleViewCallback.updateBubble(update.updatedBubble);
}
- if (update.suppressedBubble != null && mStackView != null) {
- mStackView.setBubbleSuppressed(update.suppressedBubble, true);
+ if (update.suppressedBubble != null) {
+ mBubbleViewCallback.suppressionChanged(update.suppressedBubble, true);
}
- if (update.unsuppressedBubble != null && mStackView != null) {
- mStackView.setBubbleSuppressed(update.unsuppressedBubble, false);
+ if (update.unsuppressedBubble != null) {
+ mBubbleViewCallback.suppressionChanged(update.unsuppressedBubble, false);
}
boolean collapseStack = update.expandedChanged && !update.expanded;
// At this point, the correct bubbles are inflated in the stack.
// Make sure the order in bubble data is reflected in bubble row.
- if (update.orderChanged && mStackView != null) {
+ if (update.orderChanged) {
mDataRepository.addBubbles(mCurrentUserId, update.bubbles);
// if the stack is going to be collapsed, do not update pointer position
// after reordering
- mStackView.updateBubbleOrder(update.bubbles, !collapseStack);
+ mBubbleViewCallback.bubbleOrderChanged(update.bubbles, !collapseStack);
}
if (collapseStack) {
- mStackView.setExpanded(false);
+ mBubbleViewCallback.expansionChanged(/* expanded= */ false);
mSysuiProxy.requestNotificationShadeTopUi(false, TAG);
}
- if (update.selectionChanged && mStackView != null) {
- mStackView.setSelectedBubble(update.selectedBubble);
+ if (update.selectionChanged) {
+ mBubbleViewCallback.selectionChanged(update.selectedBubble);
}
// Expanding? Apply this last.
if (update.expandedChanged && update.expanded) {
- if (mStackView != null) {
- mStackView.setExpanded(true);
- mSysuiProxy.requestNotificationShadeTopUi(true, TAG);
- }
+ mBubbleViewCallback.expansionChanged(/* expanded= */ true);
+ mSysuiProxy.requestNotificationShadeTopUi(true, TAG);
}
mSysuiProxy.notifyInvalidateNotifications("BubbleData.Listener.applyUpdate");
@@ -1368,6 +1479,19 @@ public class BubbleController implements ConfigurationChangeListener {
}
};
+ private void updateOverflowButtonDot() {
+ BubbleOverflow overflow = mBubbleData.getOverflow();
+ if (overflow == null) return;
+
+ for (Bubble b : mBubbleData.getOverflowBubbles()) {
+ if (b.showDot()) {
+ overflow.setShowDot(true);
+ return;
+ }
+ }
+ overflow.setShowDot(false);
+ }
+
private boolean handleDismissalInterception(BubbleEntry entry,
@Nullable List children, IntConsumer removeCallback) {
if (isSummaryOfBubbles(entry)) {
@@ -1697,9 +1821,9 @@ public class BubbleController implements ConfigurationChangeListener {
}
@Override
- public void showAppBubble(Intent intent) {
+ public void showOrHideAppBubble(Intent intent) {
mMainExecutor.execute(() -> {
- BubbleController.this.showAppBubble(intent);
+ BubbleController.this.showOrHideAppBubble(intent);
});
}
@@ -1813,13 +1937,6 @@ public class BubbleController implements ConfigurationChangeListener {
});
}
- @Override
- public void setBubbleBarEnabled(boolean enabled) {
- mMainExecutor.execute(() -> {
- BubbleController.this.setBubbleBarEnabled(enabled);
- });
- }
-
@Override
public void onNotificationPanelExpandedChanged(boolean expanded) {
mMainExecutor.execute(
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleData.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleData.java
index af31391fec965540ab11d29fce042a1657d578bc..3fd09675a245c22860b02a3e5f7595a0b12961d9 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleData.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleData.java
@@ -17,6 +17,7 @@ package com.android.wm.shell.bubbles;
import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
import static com.android.internal.annotations.VisibleForTesting.Visibility.PRIVATE;
+import static com.android.wm.shell.bubbles.Bubble.KEY_APP_BUBBLE;
import static com.android.wm.shell.bubbles.BubbleDebugConfig.DEBUG_BUBBLE_DATA;
import static com.android.wm.shell.bubbles.BubbleDebugConfig.TAG_BUBBLES;
import static com.android.wm.shell.bubbles.BubbleDebugConfig.TAG_WITH_CLASS_NAME;
@@ -282,7 +283,7 @@ public class BubbleData {
}
boolean isShowingOverflow() {
- return mShowingOverflow && (isExpanded() || mPositioner.showingInTaskbar());
+ return mShowingOverflow && isExpanded();
}
/**
@@ -684,7 +685,8 @@ public class BubbleData {
if (bubble.getPendingIntentCanceled()
|| !(reason == Bubbles.DISMISS_AGED
|| reason == Bubbles.DISMISS_USER_GESTURE
- || reason == Bubbles.DISMISS_RELOAD_FROM_DISK)) {
+ || reason == Bubbles.DISMISS_RELOAD_FROM_DISK)
+ || KEY_APP_BUBBLE.equals(bubble.getKey())) {
return;
}
if (DEBUG_BUBBLE_DATA) {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleDataRepository.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleDataRepository.kt
index 3a5961462c87c5a0d7083a86b555bd6cac7f0bb5..e37c785f15f57481a27c7f6d60e51731423f8083 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleDataRepository.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleDataRepository.kt
@@ -109,7 +109,8 @@ internal class BubbleDataRepository(
b.rawDesiredHeightResId,
b.title,
b.taskId,
- b.locusId?.id
+ b.locusId?.id,
+ b.isDismissable
)
}
}
@@ -205,6 +206,7 @@ internal class BubbleDataRepository(
entity.title,
entity.taskId,
entity.locus,
+ entity.isDismissable,
mainExecutor,
bubbleMetadataFlagListener
)
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleEntry.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleEntry.java
index 5f428269fb06bd81318cffe2e12972714f025891..afe19c4b7363e2ecf6ef2e9d33a27b3319fcb13f 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleEntry.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleEntry.java
@@ -38,18 +38,18 @@ public class BubbleEntry {
private StatusBarNotification mSbn;
private Ranking mRanking;
- private boolean mIsClearable;
+ private boolean mIsDismissable;
private boolean mShouldSuppressNotificationDot;
private boolean mShouldSuppressNotificationList;
private boolean mShouldSuppressPeek;
public BubbleEntry(@NonNull StatusBarNotification sbn,
- Ranking ranking, boolean isClearable, boolean shouldSuppressNotificationDot,
+ Ranking ranking, boolean isDismissable, boolean shouldSuppressNotificationDot,
boolean shouldSuppressNotificationList, boolean shouldSuppressPeek) {
mSbn = sbn;
mRanking = ranking;
- mIsClearable = isClearable;
+ mIsDismissable = isDismissable;
mShouldSuppressNotificationDot = shouldSuppressNotificationDot;
mShouldSuppressNotificationList = shouldSuppressNotificationList;
mShouldSuppressPeek = shouldSuppressPeek;
@@ -115,9 +115,9 @@ public class BubbleEntry {
return mRanking.canBubble();
}
- /** @return true if this notification is clearable. */
- public boolean isClearable() {
- return mIsClearable;
+ /** @return true if this notification can be dismissed. */
+ public boolean isDismissable() {
+ return mIsDismissable;
}
/** @return true if {@link Policy#SUPPRESSED_EFFECT_BADGE} set for this notification. */
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubblePositioner.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubblePositioner.java
index 07c58527a815a6ada289f0abadd0cd6773c0134d..5ea2450114f0856eb931e6214e2c58eb782a9a29 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubblePositioner.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubblePositioner.java
@@ -18,9 +18,6 @@ package com.android.wm.shell.bubbles;
import static android.view.View.LAYOUT_DIRECTION_RTL;
-import static java.lang.annotation.RetentionPolicy.SOURCE;
-
-import android.annotation.IntDef;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
@@ -39,8 +36,6 @@ import androidx.annotation.VisibleForTesting;
import com.android.launcher3.icons.IconNormalizer;
import com.android.wm.shell.R;
-import java.lang.annotation.Retention;
-
/**
* Keeps track of display size, configuration, and specific bubble sizes. One place for all
* placement and positioning calculations to refer to.
@@ -50,15 +45,6 @@ public class BubblePositioner {
? "BubblePositioner"
: BubbleDebugConfig.TAG_BUBBLES;
- @Retention(SOURCE)
- @IntDef({TASKBAR_POSITION_NONE, TASKBAR_POSITION_RIGHT, TASKBAR_POSITION_LEFT,
- TASKBAR_POSITION_BOTTOM})
- @interface TaskbarPosition {}
- public static final int TASKBAR_POSITION_NONE = -1;
- public static final int TASKBAR_POSITION_RIGHT = 0;
- public static final int TASKBAR_POSITION_LEFT = 1;
- public static final int TASKBAR_POSITION_BOTTOM = 2;
-
/** When the bubbles are collapsed in a stack only some of them are shown, this is how many. **/
public static final int NUM_VISIBLE_WHEN_RESTING = 2;
/** Indicates a bubble's height should be the maximum available space. **/
@@ -108,15 +94,9 @@ public class BubblePositioner {
private int mOverflowHeight;
private int mMinimumFlyoutWidthLargeScreen;
- private PointF mPinLocation;
private PointF mRestingStackPosition;
private int[] mPaddings = new int[4];
- private boolean mShowingInTaskbar;
- private @TaskbarPosition int mTaskbarPosition = TASKBAR_POSITION_NONE;
- private int mTaskbarIconSize;
- private int mTaskbarSize;
-
public BubblePositioner(Context context, WindowManager windowManager) {
mContext = context;
mWindowManager = windowManager;
@@ -153,27 +133,11 @@ public class BubblePositioner {
+ " insets: " + insets
+ " isLargeScreen: " + mIsLargeScreen
+ " isSmallTablet: " + mIsSmallTablet
- + " bounds: " + bounds
- + " showingInTaskbar: " + mShowingInTaskbar);
+ + " bounds: " + bounds);
}
updateInternal(mRotation, insets, bounds);
}
- /**
- * Updates position information to account for taskbar state.
- *
- * @param taskbarPosition which position the taskbar is displayed in.
- * @param showingInTaskbar whether the taskbar is being shown.
- */
- public void updateForTaskbar(int iconSize,
- @TaskbarPosition int taskbarPosition, boolean showingInTaskbar, int taskbarSize) {
- mShowingInTaskbar = showingInTaskbar;
- mTaskbarIconSize = iconSize;
- mTaskbarPosition = taskbarPosition;
- mTaskbarSize = taskbarSize;
- update();
- }
-
@VisibleForTesting
public void updateInternal(int rotation, Insets insets, Rect bounds) {
mRotation = rotation;
@@ -232,10 +196,6 @@ public class BubblePositioner {
R.dimen.bubbles_flyout_min_width_large_screen);
mMaxBubbles = calculateMaxBubbles();
-
- if (mShowingInTaskbar) {
- adjustForTaskbar();
- }
}
/**
@@ -260,30 +220,6 @@ public class BubblePositioner {
return mDefaultMaxBubbles;
}
- /**
- * Taskbar insets appear as navigationBar insets, however, unlike navigationBar this should
- * not inset bubbles UI as bubbles floats above the taskbar. This adjust the available space
- * and insets to account for the taskbar.
- */
- // TODO(b/171559950): When the insets are reported correctly we can remove this logic
- private void adjustForTaskbar() {
- // When bar is showing on edges... subtract that inset because we appear on top
- if (mShowingInTaskbar && mTaskbarPosition != TASKBAR_POSITION_BOTTOM) {
- WindowInsets metricInsets = mWindowManager.getCurrentWindowMetrics().getWindowInsets();
- Insets navBarInsets = metricInsets.getInsetsIgnoringVisibility(
- WindowInsets.Type.navigationBars());
- int newInsetLeft = mInsets.left;
- int newInsetRight = mInsets.right;
- if (mTaskbarPosition == TASKBAR_POSITION_LEFT) {
- mPositionRect.left -= navBarInsets.left;
- newInsetLeft -= navBarInsets.left;
- } else if (mTaskbarPosition == TASKBAR_POSITION_RIGHT) {
- mPositionRect.right += navBarInsets.right;
- newInsetRight -= navBarInsets.right;
- }
- mInsets = Insets.of(newInsetLeft, mInsets.top, newInsetRight, mInsets.bottom);
- }
- }
/**
* @return a rect of available screen space accounting for orientation, system bars and cutouts.
@@ -327,14 +263,12 @@ public class BubblePositioner {
* to the left or right side.
*/
public boolean showBubblesVertically() {
- return isLandscape() || mShowingInTaskbar || mIsLargeScreen;
+ return isLandscape() || mIsLargeScreen;
}
/** Size of the bubble. */
public int getBubbleSize() {
- return (mShowingInTaskbar && mTaskbarIconSize > 0)
- ? mTaskbarIconSize
- : mBubbleSize;
+ return mBubbleSize;
}
/** The amount of padding at the top of the screen that the bubbles avoid when being placed. */
@@ -699,9 +633,6 @@ public class BubblePositioner {
/** The position the bubble stack should rest at when collapsed. */
public PointF getRestingPosition() {
- if (mPinLocation != null) {
- return mPinLocation;
- }
if (mRestingStackPosition == null) {
return getDefaultStartPosition();
}
@@ -713,9 +644,6 @@ public class BubblePositioner {
* is being shown.
*/
public PointF getDefaultStartPosition() {
- if (mPinLocation != null) {
- return mPinLocation;
- }
// Start on the left if we're in LTR, right otherwise.
final boolean startOnLeft =
mContext.getResources().getConfiguration().getLayoutDirection()
@@ -730,7 +658,6 @@ public class BubblePositioner {
1 /* default starts with 1 bubble */));
}
-
/**
* Returns the region that the stack position must stay within. This goes slightly off the left
* and right sides of the screen, below the status bar/cutout and above the navigation bar.
@@ -750,39 +677,6 @@ public class BubblePositioner {
return allowableRegion;
}
- /**
- * @return whether the bubble stack is pinned to the taskbar.
- */
- public boolean showingInTaskbar() {
- return mShowingInTaskbar;
- }
-
- /**
- * @return the taskbar position if set.
- */
- public int getTaskbarPosition() {
- return mTaskbarPosition;
- }
-
- public int getTaskbarSize() {
- return mTaskbarSize;
- }
-
- /**
- * In some situations bubbles will be pinned to a specific onscreen location. This sets whether
- * bubbles should be pinned or not.
- */
- public void setUsePinnedLocation(boolean usePinnedLocation) {
- if (usePinnedLocation) {
- mShowingInTaskbar = true;
- mPinLocation = new PointF(mPositionRect.right - mBubbleSize,
- mPositionRect.bottom - mBubbleSize);
- } else {
- mPinLocation = null;
- mShowingInTaskbar = false;
- }
- }
-
/**
* Navigation bar has an area where system gestures can be started from.
*
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java
index f2afefe243bc208513383c4e96ffbe333029ed71..5ecbd6b596b6f741acb42490b20ed434313250d2 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java
@@ -680,8 +680,6 @@ public class BubbleStackView extends FrameLayout
// Re-show the expanded view if we hid it.
showExpandedViewIfNeeded();
- } else if (mPositioner.showingInTaskbar()) {
- mStackAnimationController.snapStackBack();
} else {
// Fling the stack to the edge, and save whether or not it's going to end up on
// the left side of the screen.
@@ -1362,16 +1360,6 @@ public class BubbleStackView extends FrameLayout
updateOverflowVisibility();
}
- void updateOverflowButtonDot() {
- for (Bubble b : mBubbleData.getOverflowBubbles()) {
- if (b.showDot()) {
- mBubbleOverflow.setShowDot(true);
- return;
- }
- }
- mBubbleOverflow.setShowDot(false);
- }
-
/**
* Handle theme changes.
*/
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubbles.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubbles.java
index 465d1abe0a3dfc99d5b6e330f28a2a35bd9eda00..a5deac5a51da88245bc4d28471216752b5844599 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubbles.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/Bubbles.java
@@ -109,13 +109,28 @@ public interface Bubbles {
void expandStackAndSelectBubble(Bubble bubble);
/**
- * Adds and expands bubble that is not notification based, but instead based on an intent from
- * the app. The intent must be explicit (i.e. include a package name or fully qualified
- * component class name) and the activity for it should be resizable.
+ * This method has different behavior depending on:
+ * - if an app bubble exists
+ * - if an app bubble is expanded
*
- * @param intent the intent to populate the bubble.
+ * If no app bubble exists, this will add and expand a bubble with the provided intent. The
+ * intent must be explicit (i.e. include a package name or fully qualified component class name)
+ * and the activity for it should be resizable.
+ *
+ * If an app bubble exists, this will toggle the visibility of it, i.e. if the app bubble is
+ * expanded, calling this method will collapse it. If the app bubble is not expanded, calling
+ * this method will expand it.
+ *
+ * These bubbles are not backed by a notification and remain until the user dismisses
+ * the bubble or bubble stack.
+ *
+ * Some notes:
+ * - Only one app bubble is supported at a time
+ * - Calling this method with a different intent than the existing app bubble will do nothing
+ *
+ * @param intent the intent to display in the bubble expanded view.
*/
- void showAppBubble(Intent intent);
+ void showOrHideAppBubble(Intent intent);
/**
* @return a bubble that matches the provided shortcutId, if one exists.
@@ -242,11 +257,6 @@ public interface Bubbles {
*/
void onUserRemoved(int removedUserId);
- /**
- * Sets whether bubble bar should be enabled or not.
- */
- void setBubbleBarEnabled(boolean enabled);
-
/** Listener to find out about stack expansion / collapse events. */
interface BubbleExpandListener {
/**
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/StackAnimationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/StackAnimationController.java
index 0ee0ea60a1bc755cb2aea1b857c8ed8435060313..5533842f2d8934b9feaa2b9c95f41396d2276b4f 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/StackAnimationController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/animation/StackAnimationController.java
@@ -416,24 +416,10 @@ public class StackAnimationController extends
return destinationRelativeX;
}
- /**
- * Snaps the stack back to the previous resting position.
- */
- public void snapStackBack() {
- if (mLayout == null) {
- return;
- }
- PointF p = getStackPositionAlongNearestHorizontalEdge();
- springStackAfterFling(p.x, p.y);
- }
-
/**
* Where the stack would be if it were snapped to the nearest horizontal edge (left or right).
*/
public PointF getStackPositionAlongNearestHorizontalEdge() {
- if (mPositioner.showingInTaskbar()) {
- return mPositioner.getRestingPosition();
- }
final PointF stackPos = getStackPosition();
final boolean onLeft = mLayout.isFirstChildXLeftOfCenter(stackPos.x);
final RectF bounds = mPositioner.getAllowableStackPositionRegion(getBubbleCount());
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/storage/BubbleEntity.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/storage/BubbleEntity.kt
index 186b9b1efa9a5c72ac10ccf41036948439dbd1a1..9b2e263946057651695c5380976e22c2f3bcc97c 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/storage/BubbleEntity.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/storage/BubbleEntity.kt
@@ -27,5 +27,6 @@ data class BubbleEntity(
@DimenRes val desiredHeightResId: Int,
val title: String? = null,
val taskId: Int,
- val locus: String? = null
+ val locus: String? = null,
+ val isDismissable: Boolean = false
)
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/storage/BubbleXmlHelper.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/storage/BubbleXmlHelper.kt
index f4fa1835b7a52e5ab09e0bd460cfa2275fd031c2..48d8ccf401740b9a466c9ca5cfe1c699689e2e9d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/storage/BubbleXmlHelper.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/storage/BubbleXmlHelper.kt
@@ -43,6 +43,7 @@ private const val ATTR_DESIRED_HEIGHT_RES_ID = "hid"
private const val ATTR_TITLE = "t"
private const val ATTR_TASK_ID = "tid"
private const val ATTR_LOCUS = "l"
+private const val ATTR_DISMISSABLE = "d"
/**
* Writes the bubbles in xml format into given output stream.
@@ -84,6 +85,7 @@ private fun writeXmlEntry(serializer: XmlSerializer, bubble: BubbleEntity) {
bubble.title?.let { serializer.attribute(null, ATTR_TITLE, it) }
serializer.attribute(null, ATTR_TASK_ID, bubble.taskId.toString())
bubble.locus?.let { serializer.attribute(null, ATTR_LOCUS, it) }
+ serializer.attribute(null, ATTR_DISMISSABLE, bubble.isDismissable.toString())
serializer.endTag(null, TAG_BUBBLE)
} catch (e: IOException) {
throw RuntimeException(e)
@@ -142,7 +144,8 @@ private fun readXmlEntry(parser: XmlPullParser): BubbleEntity? {
parser.getAttributeWithName(ATTR_DESIRED_HEIGHT_RES_ID)?.toInt() ?: return null,
parser.getAttributeWithName(ATTR_TITLE),
parser.getAttributeWithName(ATTR_TASK_ID)?.toInt() ?: INVALID_TASK_ID,
- parser.getAttributeWithName(ATTR_LOCUS)
+ parser.getAttributeWithName(ATTR_LOCUS),
+ parser.getAttributeWithName(ATTR_DISMISSABLE)?.toBoolean() ?: false
)
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DevicePostureController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DevicePostureController.java
new file mode 100644
index 0000000000000000000000000000000000000000..8b4ac1a8dc796c20e289d02230af899d2c3058c7
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DevicePostureController.java
@@ -0,0 +1,150 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.wm.shell.common;
+
+import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.content.Context;
+import android.hardware.devicestate.DeviceStateManager;
+import android.util.SparseIntArray;
+
+import com.android.internal.R;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.wm.shell.sysui.ShellInit;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Wrapper class to track the device posture change on Fold-ables.
+ * See also Foldable states and postures for reference.
+ *
+ * Note that most of the implementation here inherits from
+ * {@link com.android.systemui.statusbar.policy.DevicePostureController}.
+ *
+ * Use the {@link TabletopModeController} if you are interested in tabletop mode change only,
+ * which is more common.
+ */
+public class DevicePostureController {
+ @IntDef(prefix = {"DEVICE_POSTURE_"}, value = {
+ DEVICE_POSTURE_UNKNOWN,
+ DEVICE_POSTURE_CLOSED,
+ DEVICE_POSTURE_HALF_OPENED,
+ DEVICE_POSTURE_OPENED,
+ DEVICE_POSTURE_FLIPPED
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface DevicePostureInt {}
+
+ // NOTE: These constants **must** match those defined for Jetpack Sidecar. This is because we
+ // use the Device State -> Jetpack Posture map to translate between the two.
+ public static final int DEVICE_POSTURE_UNKNOWN = 0;
+ public static final int DEVICE_POSTURE_CLOSED = 1;
+ public static final int DEVICE_POSTURE_HALF_OPENED = 2;
+ public static final int DEVICE_POSTURE_OPENED = 3;
+ public static final int DEVICE_POSTURE_FLIPPED = 4;
+
+ private final Context mContext;
+ private final ShellExecutor mMainExecutor;
+ private final List mListeners = new ArrayList<>();
+ private final SparseIntArray mDeviceStateToPostureMap = new SparseIntArray();
+
+ private int mDevicePosture = DEVICE_POSTURE_UNKNOWN;
+
+ public DevicePostureController(
+ Context context, ShellInit shellInit, ShellExecutor mainExecutor) {
+ mContext = context;
+ mMainExecutor = mainExecutor;
+ shellInit.addInitCallback(this::onInit, this);
+ }
+
+ private void onInit() {
+ // Most of this is borrowed from WindowManager/Jetpack/DeviceStateManagerPostureProducer.
+ // Using the sidecar/extension libraries directly brings in a new dependency that it'd be
+ // good to avoid (along with the fact that sidecar is deprecated, and extensions isn't fully
+ // ready yet), and we'd have to make our own layer over the sidecar library anyway to easily
+ // allow the implementation to change, so it was easier to just interface with
+ // DeviceStateManager directly.
+ String[] deviceStatePosturePairs = mContext.getResources()
+ .getStringArray(R.array.config_device_state_postures);
+ for (String deviceStatePosturePair : deviceStatePosturePairs) {
+ String[] deviceStatePostureMapping = deviceStatePosturePair.split(":");
+ if (deviceStatePostureMapping.length != 2) {
+ continue;
+ }
+
+ int deviceState;
+ int posture;
+ try {
+ deviceState = Integer.parseInt(deviceStatePostureMapping[0]);
+ posture = Integer.parseInt(deviceStatePostureMapping[1]);
+ } catch (NumberFormatException e) {
+ continue;
+ }
+
+ mDeviceStateToPostureMap.put(deviceState, posture);
+ }
+
+ final DeviceStateManager deviceStateManager = mContext.getSystemService(
+ DeviceStateManager.class);
+ if (deviceStateManager != null) {
+ deviceStateManager.registerCallback(mMainExecutor, state -> onDevicePostureChanged(
+ mDeviceStateToPostureMap.get(state, DEVICE_POSTURE_UNKNOWN)));
+ }
+ }
+
+ @VisibleForTesting
+ void onDevicePostureChanged(int devicePosture) {
+ if (devicePosture == mDevicePosture) return;
+ mDevicePosture = devicePosture;
+ mListeners.forEach(l -> l.onDevicePostureChanged(mDevicePosture));
+ }
+
+ /**
+ * Register {@link OnDevicePostureChangedListener} for device posture changes.
+ * The listener will receive callback with current device posture upon registration.
+ */
+ public void registerOnDevicePostureChangedListener(
+ @NonNull OnDevicePostureChangedListener listener) {
+ if (mListeners.contains(listener)) return;
+ mListeners.add(listener);
+ listener.onDevicePostureChanged(mDevicePosture);
+ }
+
+ /**
+ * Unregister {@link OnDevicePostureChangedListener} for device posture changes.
+ */
+ public void unregisterOnDevicePostureChangedListener(
+ @NonNull OnDevicePostureChangedListener listener) {
+ mListeners.remove(listener);
+ }
+
+ /**
+ * Listener interface for device posture change.
+ */
+ public interface OnDevicePostureChangedListener {
+ /**
+ * Callback when device posture changes.
+ * See {@link DevicePostureInt} for callback values.
+ */
+ void onDevicePostureChanged(@DevicePostureInt int posture);
+ }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayLayout.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayLayout.java
index 96efeeb0c5ebd2f734d9811088afc80a1726cf32..84840139d1a3d1f000cc1bd52d76f309185474f6 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayLayout.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayLayout.java
@@ -96,8 +96,7 @@ public class DisplayLayout {
/**
* Different from {@link #equals(Object)}, this method compares the basic geometry properties
- * of two {@link DisplayLayout} objects including width, height, rotation, density, cutout and
- * insets.
+ * of two {@link DisplayLayout} objects including width, height, rotation, density, cutout.
* @return {@code true} if the given {@link DisplayLayout} is identical geometry wise.
*/
public boolean isSameGeometry(@NonNull DisplayLayout other) {
@@ -105,8 +104,7 @@ public class DisplayLayout {
&& mHeight == other.mHeight
&& mRotation == other.mRotation
&& mDensityDpi == other.mDensityDpi
- && Objects.equals(mCutout, other.mCutout)
- && Objects.equals(mStableInsets, other.mStableInsets);
+ && Objects.equals(mCutout, other.mCutout);
}
@Override
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/TabletopModeController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/TabletopModeController.java
new file mode 100644
index 0000000000000000000000000000000000000000..ac6e4c2a65211febe8ce51f6a759026b6539e54f
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/TabletopModeController.java
@@ -0,0 +1,254 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.wm.shell.common;
+
+import static android.view.Display.DEFAULT_DISPLAY;
+
+import static com.android.wm.shell.common.DevicePostureController.DEVICE_POSTURE_HALF_OPENED;
+import static com.android.wm.shell.common.DevicePostureController.DEVICE_POSTURE_UNKNOWN;
+import static com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_FOLDABLE;
+
+import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.app.WindowConfiguration;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.os.SystemProperties;
+import android.util.ArraySet;
+import android.view.Surface;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.protolog.common.ProtoLog;
+import com.android.wm.shell.common.annotations.ShellMainThread;
+import com.android.wm.shell.sysui.ShellInit;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Wrapper class to track the tabletop (aka. flex) mode change on Fold-ables.
+ * See also Foldable states and postures for reference.
+ *
+ * Use the {@link DevicePostureController} for more detailed posture changes.
+ */
+public class TabletopModeController implements
+ DevicePostureController.OnDevicePostureChangedListener,
+ DisplayController.OnDisplaysChangedListener {
+ /**
+ * When {@code true}, floating windows like PiP would auto move to the position
+ * specified by {@link #PREFER_TOP_HALF_IN_TABLETOP} when in tabletop mode.
+ */
+ private static final boolean ENABLE_MOVE_FLOATING_WINDOW_IN_TABLETOP =
+ SystemProperties.getBoolean(
+ "persist.wm.debug.enable_move_floating_window_in_tabletop", true);
+
+ /**
+ * Prefer the {@link #PREFERRED_TABLETOP_HALF_TOP} if this flag is enabled,
+ * {@link #PREFERRED_TABLETOP_HALF_BOTTOM} otherwise.
+ * See also {@link #getPreferredHalfInTabletopMode()}.
+ */
+ private static final boolean PREFER_TOP_HALF_IN_TABLETOP =
+ SystemProperties.getBoolean("persist.wm.debug.prefer_top_half_in_tabletop", true);
+
+ private static final long TABLETOP_MODE_DELAY_MILLIS = 1_000;
+
+ @IntDef(prefix = {"PREFERRED_TABLETOP_HALF_"}, value = {
+ PREFERRED_TABLETOP_HALF_TOP,
+ PREFERRED_TABLETOP_HALF_BOTTOM
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface PreferredTabletopHalf {}
+
+ public static final int PREFERRED_TABLETOP_HALF_TOP = 0;
+ public static final int PREFERRED_TABLETOP_HALF_BOTTOM = 1;
+
+ private final Context mContext;
+
+ private final DevicePostureController mDevicePostureController;
+
+ private final DisplayController mDisplayController;
+
+ private final ShellExecutor mMainExecutor;
+
+ private final Set mTabletopModeRotations = new ArraySet<>();
+
+ private final List mListeners = new ArrayList<>();
+
+ @VisibleForTesting
+ final Runnable mOnEnterTabletopModeCallback = () -> {
+ if (isInTabletopMode()) {
+ // We are still in tabletop mode, go ahead.
+ mayBroadcastOnTabletopModeChange(true /* isInTabletopMode */);
+ }
+ };
+
+ @DevicePostureController.DevicePostureInt
+ private int mDevicePosture = DEVICE_POSTURE_UNKNOWN;
+
+ @Surface.Rotation
+ private int mDisplayRotation = WindowConfiguration.ROTATION_UNDEFINED;
+
+ /**
+ * Track the last callback value for {@link OnTabletopModeChangedListener}.
+ * This is to avoid duplicated {@code false} callback to {@link #mListeners}.
+ */
+ private Boolean mLastIsInTabletopModeForCallback;
+
+ public TabletopModeController(Context context,
+ ShellInit shellInit,
+ DevicePostureController postureController,
+ DisplayController displayController,
+ @ShellMainThread ShellExecutor mainExecutor) {
+ mContext = context;
+ mDevicePostureController = postureController;
+ mDisplayController = displayController;
+ mMainExecutor = mainExecutor;
+ shellInit.addInitCallback(this::onInit, this);
+ }
+
+ @VisibleForTesting
+ void onInit() {
+ mDevicePostureController.registerOnDevicePostureChangedListener(this);
+ mDisplayController.addDisplayWindowListener(this);
+ // Aligns with what's in {@link com.android.server.wm.DisplayRotation}.
+ final int[] deviceTabletopRotations = mContext.getResources().getIntArray(
+ com.android.internal.R.array.config_deviceTabletopRotations);
+ if (deviceTabletopRotations == null || deviceTabletopRotations.length == 0) {
+ ProtoLog.e(WM_SHELL_FOLDABLE,
+ "No valid config_deviceTabletopRotations, can not tell"
+ + " tabletop mode in WMShell");
+ return;
+ }
+ for (int angle : deviceTabletopRotations) {
+ switch (angle) {
+ case 0:
+ mTabletopModeRotations.add(Surface.ROTATION_0);
+ break;
+ case 90:
+ mTabletopModeRotations.add(Surface.ROTATION_90);
+ break;
+ case 180:
+ mTabletopModeRotations.add(Surface.ROTATION_180);
+ break;
+ case 270:
+ mTabletopModeRotations.add(Surface.ROTATION_270);
+ break;
+ default:
+ ProtoLog.e(WM_SHELL_FOLDABLE,
+ "Invalid surface rotation angle in "
+ + "config_deviceTabletopRotations: %d",
+ angle);
+ break;
+ }
+ }
+ }
+
+ /**
+ * @return {@code true} if floating windows like PiP would auto move to the position
+ * specified by {@link #getPreferredHalfInTabletopMode()} when in tabletop mode.
+ */
+ public boolean enableMoveFloatingWindowInTabletop() {
+ return ENABLE_MOVE_FLOATING_WINDOW_IN_TABLETOP;
+ }
+
+ /** @return Preferred half for floating windows like PiP when in tabletop mode. */
+ @PreferredTabletopHalf
+ public int getPreferredHalfInTabletopMode() {
+ return PREFER_TOP_HALF_IN_TABLETOP
+ ? PREFERRED_TABLETOP_HALF_TOP
+ : PREFERRED_TABLETOP_HALF_BOTTOM;
+ }
+
+ /** Register {@link OnTabletopModeChangedListener} to listen for tabletop mode change. */
+ public void registerOnTabletopModeChangedListener(
+ @NonNull OnTabletopModeChangedListener listener) {
+ if (listener == null || mListeners.contains(listener)) return;
+ mListeners.add(listener);
+ listener.onTabletopModeChanged(isInTabletopMode());
+ }
+
+ /** Unregister {@link OnTabletopModeChangedListener} for tabletop mode change. */
+ public void unregisterOnTabletopModeChangedListener(
+ @NonNull OnTabletopModeChangedListener listener) {
+ mListeners.remove(listener);
+ }
+
+ @Override
+ public void onDevicePostureChanged(@DevicePostureController.DevicePostureInt int posture) {
+ if (mDevicePosture != posture) {
+ onDevicePostureOrDisplayRotationChanged(posture, mDisplayRotation);
+ }
+ }
+
+ @Override
+ public void onDisplayConfigurationChanged(int displayId, Configuration newConfig) {
+ final int newDisplayRotation = newConfig.windowConfiguration.getDisplayRotation();
+ if (displayId == DEFAULT_DISPLAY && newDisplayRotation != mDisplayRotation) {
+ onDevicePostureOrDisplayRotationChanged(mDevicePosture, newDisplayRotation);
+ }
+ }
+
+ private void onDevicePostureOrDisplayRotationChanged(
+ @DevicePostureController.DevicePostureInt int newPosture,
+ @Surface.Rotation int newDisplayRotation) {
+ final boolean wasInTabletopMode = isInTabletopMode();
+ mDevicePosture = newPosture;
+ mDisplayRotation = newDisplayRotation;
+ final boolean couldBeInTabletopMode = isInTabletopMode();
+ mMainExecutor.removeCallbacks(mOnEnterTabletopModeCallback);
+ if (!wasInTabletopMode && couldBeInTabletopMode) {
+ // May enter tabletop mode, but we need to wait for additional time since this
+ // could be an intermediate state.
+ mMainExecutor.executeDelayed(mOnEnterTabletopModeCallback, TABLETOP_MODE_DELAY_MILLIS);
+ } else {
+ // Cancel entering tabletop mode if any condition's changed.
+ mayBroadcastOnTabletopModeChange(false /* isInTabletopMode */);
+ }
+ }
+
+ private boolean isHalfOpened(@DevicePostureController.DevicePostureInt int posture) {
+ return posture == DEVICE_POSTURE_HALF_OPENED;
+ }
+
+ private boolean isInTabletopMode() {
+ return isHalfOpened(mDevicePosture) && mTabletopModeRotations.contains(mDisplayRotation);
+ }
+
+ private void mayBroadcastOnTabletopModeChange(boolean isInTabletopMode) {
+ if (mLastIsInTabletopModeForCallback == null
+ || mLastIsInTabletopModeForCallback != isInTabletopMode) {
+ mListeners.forEach(l -> l.onTabletopModeChanged(isInTabletopMode));
+ mLastIsInTabletopModeForCallback = isInTabletopMode;
+ }
+ }
+
+ /**
+ * Listener interface for tabletop mode change.
+ */
+ public interface OnTabletopModeChangedListener {
+ /**
+ * Callback when tabletop mode changes. Expect duplicated callbacks with {@code false}.
+ * @param isInTabletopMode {@code true} if enters tabletop mode, {@code false} otherwise.
+ */
+ void onTabletopModeChanged(boolean isInTabletopMode);
+ }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/TaskStackListenerImpl.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/TaskStackListenerImpl.java
index 9e0a48b13413be4ac11e0647fb6d0a728ab722d2..e2106e478bb3dab7b82d2cedf116b8b0caf96a62 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/TaskStackListenerImpl.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/TaskStackListenerImpl.java
@@ -216,7 +216,6 @@ public class TaskStackListenerImpl extends TaskStackListener implements Handler.
args.argi1 = homeTaskVisible ? 1 : 0;
args.argi2 = clearedTask ? 1 : 0;
args.argi3 = wasVisible ? 1 : 0;
- mMainHandler.removeMessages(ON_ACTIVITY_RESTART_ATTEMPT);
mMainHandler.obtainMessage(ON_ACTIVITY_RESTART_ATTEMPT, args).sendToTarget();
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitDecorManager.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitDecorManager.java
index a9d3c9f154cded99d42ffcb1369ffcb001d5e236..bdf0ac2ed30cf0152b44282d312b1bc2212ce0a8 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitDecorManager.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitDecorManager.java
@@ -78,6 +78,7 @@ public class SplitDecorManager extends WindowlessWindowManager {
private final Rect mResizingBounds = new Rect();
private final Rect mTempRect = new Rect();
private ValueAnimator mFadeAnimator;
+ private ValueAnimator mScreenshotAnimator;
private int mIconSize;
private int mOffsetX;
@@ -135,8 +136,17 @@ public class SplitDecorManager extends WindowlessWindowManager {
/** Releases the surfaces for split decor. */
public void release(SurfaceControl.Transaction t) {
- if (mFadeAnimator != null && mFadeAnimator.isRunning()) {
- mFadeAnimator.cancel();
+ if (mFadeAnimator != null) {
+ if (mFadeAnimator.isRunning()) {
+ mFadeAnimator.cancel();
+ }
+ mFadeAnimator = null;
+ }
+ if (mScreenshotAnimator != null) {
+ if (mScreenshotAnimator.isRunning()) {
+ mScreenshotAnimator.cancel();
+ }
+ mScreenshotAnimator = null;
}
if (mViewHost != null) {
mViewHost.release();
@@ -237,17 +247,21 @@ public class SplitDecorManager extends WindowlessWindowManager {
/** Stops showing resizing hint. */
public void onResized(SurfaceControl.Transaction t, Runnable animFinishedCallback) {
+ if (mScreenshotAnimator != null && mScreenshotAnimator.isRunning()) {
+ mScreenshotAnimator.cancel();
+ }
+
if (mScreenshot != null) {
t.setPosition(mScreenshot, mOffsetX, mOffsetY);
final SurfaceControl.Transaction animT = new SurfaceControl.Transaction();
- final ValueAnimator va = ValueAnimator.ofFloat(1, 0);
- va.addUpdateListener(valueAnimator -> {
+ mScreenshotAnimator = ValueAnimator.ofFloat(1, 0);
+ mScreenshotAnimator.addUpdateListener(valueAnimator -> {
final float progress = (float) valueAnimator.getAnimatedValue();
animT.setAlpha(mScreenshot, progress);
animT.apply();
});
- va.addListener(new AnimatorListenerAdapter() {
+ mScreenshotAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
mRunningAnimationCount++;
@@ -266,7 +280,7 @@ public class SplitDecorManager extends WindowlessWindowManager {
}
}
});
- va.start();
+ mScreenshotAnimator.start();
}
if (mResizingIconView == null) {
@@ -292,9 +306,6 @@ public class SplitDecorManager extends WindowlessWindowManager {
});
return;
}
-
- // If fade-in animation is running, cancel it and re-run fade-out one.
- mFadeAnimator.cancel();
}
if (mShown) {
fadeOutDecor(animFinishedCallback);
@@ -310,6 +321,10 @@ public class SplitDecorManager extends WindowlessWindowManager {
/** Screenshot host leash and attach on it if meet some conditions */
public void screenshotIfNeeded(SurfaceControl.Transaction t) {
if (!mShown && mIsResizing && !mOldBounds.equals(mResizingBounds)) {
+ if (mScreenshotAnimator != null && mScreenshotAnimator.isRunning()) {
+ mScreenshotAnimator.cancel();
+ }
+
mTempRect.set(mOldBounds);
mTempRect.offsetTo(0, 0);
mScreenshot = ScreenshotUtils.takeScreenshot(t, mHostLeash, mTempRect,
@@ -322,6 +337,10 @@ public class SplitDecorManager extends WindowlessWindowManager {
if (screenshot == null || !screenshot.isValid()) return;
if (!mShown && mIsResizing && !mOldBounds.equals(mResizingBounds)) {
+ if (mScreenshotAnimator != null && mScreenshotAnimator.isRunning()) {
+ mScreenshotAnimator.cancel();
+ }
+
mScreenshot = screenshot;
t.reparent(screenshot, mHostLeash);
t.setLayer(screenshot, Integer.MAX_VALUE - 1);
@@ -332,6 +351,11 @@ public class SplitDecorManager extends WindowlessWindowManager {
* directly. */
public void fadeOutDecor(Runnable finishedCallback) {
if (mShown) {
+ // If previous animation is running, just cancel it.
+ if (mFadeAnimator != null && mFadeAnimator.isRunning()) {
+ mFadeAnimator.cancel();
+ }
+
startFadeAnimation(false /* show */, true, finishedCallback);
mShown = false;
} else {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java
index 45b234a6398a79625d01a3d9879000ad282c21c1..b4acd60461829237cf027bf8336be68cb333c165 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java
@@ -120,6 +120,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
private int mOrientation;
private int mRotation;
private int mDensity;
+ private int mUiMode;
private final boolean mDimNonImeSide;
private ValueAnimator mDividerFlingAnimator;
@@ -295,10 +296,12 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
final Rect rootBounds = configuration.windowConfiguration.getBounds();
final int orientation = configuration.orientation;
final int density = configuration.densityDpi;
+ final int uiMode = configuration.uiMode;
if (mOrientation == orientation
&& mRotation == rotation
&& mDensity == density
+ && mUiMode == uiMode
&& mRootBounds.equals(rootBounds)) {
return false;
}
@@ -310,6 +313,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
mRootBounds.set(rootBounds);
mRotation = rotation;
mDensity = density;
+ mUiMode = uiMode;
mDividerSnapAlgorithm = getSnapAlgorithm(mContext, mRootBounds, null);
updateDividerConfig(mContext);
initDividerPosition(mTempRect);
@@ -699,19 +703,6 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
return bounds.width() > bounds.height();
}
- /** Reverse the split position. */
- @SplitPosition
- public static int reversePosition(@SplitPosition int position) {
- switch (position) {
- case SPLIT_POSITION_TOP_OR_LEFT:
- return SPLIT_POSITION_BOTTOM_OR_RIGHT;
- case SPLIT_POSITION_BOTTOM_OR_RIGHT:
- return SPLIT_POSITION_TOP_OR_LEFT;
- default:
- return SPLIT_POSITION_UNDEFINED;
- }
- }
-
/**
* Return if this layout is landscape.
*/
@@ -736,6 +727,10 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
getRefBounds2(mTempRect);
t.setPosition(leash2, mTempRect.left, mTempRect.top)
.setWindowCrop(leash2, mTempRect.width(), mTempRect.height());
+ // Make right or bottom side surface always higher than left or top side to avoid weird
+ // animation when dismiss split. e.g. App surface fling above on decor surface.
+ t.setLayer(leash1, 1);
+ t.setLayer(leash2, 2);
if (mImePositionProcessor.adjustSurfaceLayoutForIme(
t, dividerLeash, leash1, leash2, dimLayer1, dimLayer2)) {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitScreenUtils.java b/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitScreenUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..042721c97053bcb121885c222a28fa3080d606c4
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitScreenUtils.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.wm.shell.common.split;
+
+import static com.android.wm.shell.common.split.SplitScreenConstants.CONTROLLED_ACTIVITY_TYPES;
+import static com.android.wm.shell.common.split.SplitScreenConstants.CONTROLLED_WINDOWING_MODES;
+import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_BOTTOM_OR_RIGHT;
+import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_TOP_OR_LEFT;
+import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_UNDEFINED;
+
+import android.annotation.Nullable;
+import android.app.ActivityManager;
+import android.app.PendingIntent;
+import android.content.Intent;
+
+import com.android.internal.util.ArrayUtils;
+import com.android.wm.shell.ShellTaskOrganizer;
+
+/** Helper utility class for split screen components to use. */
+public class SplitScreenUtils {
+ /** Reverse the split position. */
+ @SplitScreenConstants.SplitPosition
+ public static int reverseSplitPosition(@SplitScreenConstants.SplitPosition int position) {
+ switch (position) {
+ case SPLIT_POSITION_TOP_OR_LEFT:
+ return SPLIT_POSITION_BOTTOM_OR_RIGHT;
+ case SPLIT_POSITION_BOTTOM_OR_RIGHT:
+ return SPLIT_POSITION_TOP_OR_LEFT;
+ case SPLIT_POSITION_UNDEFINED:
+ default:
+ return SPLIT_POSITION_UNDEFINED;
+ }
+ }
+
+ /** Returns true if the task is valid for split screen. */
+ public static boolean isValidToSplit(ActivityManager.RunningTaskInfo taskInfo) {
+ return taskInfo != null && taskInfo.supportsMultiWindow
+ && ArrayUtils.contains(CONTROLLED_ACTIVITY_TYPES, taskInfo.getActivityType())
+ && ArrayUtils.contains(CONTROLLED_WINDOWING_MODES, taskInfo.getWindowingMode());
+ }
+
+ /** Retrieve package name from an intent */
+ @Nullable
+ public static String getPackageName(Intent intent) {
+ if (intent == null || intent.getComponent() == null) {
+ return null;
+ }
+ return intent.getComponent().getPackageName();
+ }
+
+ /** Retrieve package name from a PendingIntent */
+ @Nullable
+ public static String getPackageName(PendingIntent pendingIntent) {
+ if (pendingIntent == null || pendingIntent.getIntent() == null) {
+ return null;
+ }
+ return getPackageName(pendingIntent.getIntent());
+ }
+
+ /** Retrieve package name from a taskId */
+ @Nullable
+ public static String getPackageName(int taskId, ShellTaskOrganizer taskOrganizer) {
+ final ActivityManager.RunningTaskInfo taskInfo = taskOrganizer.getRunningTaskInfo(taskId);
+ return taskInfo != null ? getPackageName(taskInfo.baseIntent) : null;
+ }
+
+ /** Returns true if they are the same package. */
+ public static boolean samePackage(String packageName1, String packageName2) {
+ return packageName1 != null && packageName1.equals(packageName2);
+ }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIConfiguration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIConfiguration.java
index 4f33a71b80d50e14803a832969e78098be206309..09d99b204bdba1c071be464a6a13b34bb500afe5 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIConfiguration.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIConfiguration.java
@@ -16,11 +16,12 @@
package com.android.wm.shell.compatui;
+import android.annotation.NonNull;
+import android.app.TaskInfo;
import android.content.Context;
+import android.content.SharedPreferences;
import android.provider.DeviceConfig;
-import androidx.annotation.NonNull;
-
import com.android.wm.shell.R;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.annotations.ShellMainThread;
@@ -34,10 +35,52 @@ import javax.inject.Inject;
@WMSingleton
public class CompatUIConfiguration implements DeviceConfig.OnPropertiesChangedListener {
- static final String KEY_ENABLE_LETTERBOX_RESTART_DIALOG = "enable_letterbox_restart_dialog";
+ private static final String KEY_ENABLE_LETTERBOX_RESTART_DIALOG =
+ "enable_letterbox_restart_confirmation_dialog";
+
+ private static final String KEY_ENABLE_LETTERBOX_REACHABILITY_EDUCATION =
+ "enable_letterbox_education_for_reachability";
+
+ private static final boolean DEFAULT_VALUE_ENABLE_LETTERBOX_RESTART_DIALOG = true;
- static final String KEY_ENABLE_LETTERBOX_REACHABILITY_EDUCATION =
- "enable_letterbox_reachability_education";
+ private static final boolean DEFAULT_VALUE_ENABLE_LETTERBOX_REACHABILITY_EDUCATION = true;
+
+ /**
+ * The name of the {@link SharedPreferences} that holds information about compat ui.
+ */
+ private static final String COMPAT_UI_SHARED_PREFERENCES = "dont_show_restart_dialog";
+
+ /**
+ * The name of the {@link SharedPreferences} that holds which user has seen the Letterbox
+ * Education dialog.
+ */
+ private static final String HAS_SEEN_LETTERBOX_EDUCATION_SHARED_PREFERENCES =
+ "has_seen_letterbox_education";
+
+ /**
+ * Key prefix for the {@link SharedPreferences} entries related to the horizontal
+ * reachability education.
+ */
+ private static final String HAS_SEEN_HORIZONTAL_REACHABILITY_EDUCATION_KEY_PREFIX =
+ "has_seen_horizontal_reachability_education";
+
+ /**
+ * Key prefix for the {@link SharedPreferences} entries related to the vertical reachability
+ * education.
+ */
+ private static final String HAS_SEEN_VERTICAL_REACHABILITY_EDUCATION_KEY_PREFIX =
+ "has_seen_vertical_reachability_education";
+
+ /**
+ * The {@link SharedPreferences} instance for the restart dialog and the reachability
+ * education.
+ */
+ private final SharedPreferences mCompatUISharedPreferences;
+
+ /**
+ * The {@link SharedPreferences} instance for the letterbox education dialog.
+ */
+ private final SharedPreferences mLetterboxEduSharedPreferences;
// Whether the extended restart dialog is enabled
private boolean mIsRestartDialogEnabled;
@@ -64,12 +107,17 @@ public class CompatUIConfiguration implements DeviceConfig.OnPropertiesChangedLi
mIsReachabilityEducationEnabled = context.getResources().getBoolean(
R.bool.config_letterboxIsReachabilityEducationEnabled);
mIsLetterboxRestartDialogAllowed = DeviceConfig.getBoolean(
- DeviceConfig.NAMESPACE_WINDOW_MANAGER, KEY_ENABLE_LETTERBOX_RESTART_DIALOG, false);
+ DeviceConfig.NAMESPACE_WINDOW_MANAGER, KEY_ENABLE_LETTERBOX_RESTART_DIALOG,
+ DEFAULT_VALUE_ENABLE_LETTERBOX_RESTART_DIALOG);
mIsLetterboxReachabilityEducationAllowed = DeviceConfig.getBoolean(
DeviceConfig.NAMESPACE_WINDOW_MANAGER, KEY_ENABLE_LETTERBOX_REACHABILITY_EDUCATION,
- false);
+ DEFAULT_VALUE_ENABLE_LETTERBOX_REACHABILITY_EDUCATION);
DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_APP_COMPAT, mainExecutor,
this);
+ mCompatUISharedPreferences = context.getSharedPreferences(getCompatUISharedPreferenceName(),
+ Context.MODE_PRIVATE);
+ mLetterboxEduSharedPreferences = context.getSharedPreferences(
+ getHasSeenLetterboxEducationSharedPreferencedName(), Context.MODE_PRIVATE);
}
/**
@@ -87,14 +135,6 @@ public class CompatUIConfiguration implements DeviceConfig.OnPropertiesChangedLi
mIsRestartDialogOverrideEnabled = enabled;
}
- /**
- * @return {@value true} if the reachability education is enabled.
- */
- boolean isReachabilityEducationEnabled() {
- return mIsReachabilityEducationOverrideEnabled || (mIsReachabilityEducationEnabled
- && mIsLetterboxReachabilityEducationAllowed);
- }
-
/**
* Enables/Disables the reachability education
*/
@@ -102,18 +142,100 @@ public class CompatUIConfiguration implements DeviceConfig.OnPropertiesChangedLi
mIsReachabilityEducationOverrideEnabled = enabled;
}
+ void setDontShowRestartDialogAgain(TaskInfo taskInfo) {
+ mCompatUISharedPreferences.edit().putBoolean(
+ dontShowAgainRestartKey(taskInfo.userId, taskInfo.topActivity.getPackageName()),
+ true).apply();
+ }
+
+ boolean shouldShowRestartDialogAgain(TaskInfo taskInfo) {
+ return !mCompatUISharedPreferences.getBoolean(dontShowAgainRestartKey(taskInfo.userId,
+ taskInfo.topActivity.getPackageName()), /* default= */ false);
+ }
+
+ void setUserHasSeenHorizontalReachabilityEducation(TaskInfo taskInfo) {
+ mCompatUISharedPreferences.edit().putBoolean(
+ hasSeenHorizontalReachabilityEduKey(taskInfo.userId), true).apply();
+ }
+
+ void setUserHasSeenVerticalReachabilityEducation(TaskInfo taskInfo) {
+ mCompatUISharedPreferences.edit().putBoolean(
+ hasSeenVerticalReachabilityEduKey(taskInfo.userId), true).apply();
+ }
+
+ boolean hasSeenHorizontalReachabilityEducation(@NonNull TaskInfo taskInfo) {
+ return mCompatUISharedPreferences.getBoolean(
+ hasSeenHorizontalReachabilityEduKey(taskInfo.userId), /* default= */false);
+ }
+
+ boolean hasSeenVerticalReachabilityEducation(@NonNull TaskInfo taskInfo) {
+ return mCompatUISharedPreferences.getBoolean(
+ hasSeenVerticalReachabilityEduKey(taskInfo.userId), /* default= */false);
+ }
+
+ boolean shouldShowReachabilityEducation(@NonNull TaskInfo taskInfo) {
+ return isReachabilityEducationEnabled()
+ && (!hasSeenHorizontalReachabilityEducation(taskInfo)
+ || !hasSeenVerticalReachabilityEducation(taskInfo));
+ }
+
+ boolean getHasSeenLetterboxEducation(int userId) {
+ return mLetterboxEduSharedPreferences
+ .getBoolean(dontShowLetterboxEduKey(userId), /* default= */ false);
+ }
+
+ void setSeenLetterboxEducation(int userId) {
+ mLetterboxEduSharedPreferences.edit().putBoolean(dontShowLetterboxEduKey(userId),
+ true).apply();
+ }
+
+ protected String getCompatUISharedPreferenceName() {
+ return COMPAT_UI_SHARED_PREFERENCES;
+ }
+
+ protected String getHasSeenLetterboxEducationSharedPreferencedName() {
+ return HAS_SEEN_LETTERBOX_EDUCATION_SHARED_PREFERENCES;
+ }
+
+ /**
+ * Updates the {@link DeviceConfig} state for the CompatUI
+ * @param properties Contains the complete collection of properties which have changed for a
+ * single namespace. This includes only those which were added, updated,
+ */
@Override
public void onPropertiesChanged(@NonNull DeviceConfig.Properties properties) {
- // TODO(b/263349751): Update flag and default value to true
if (properties.getKeyset().contains(KEY_ENABLE_LETTERBOX_RESTART_DIALOG)) {
mIsLetterboxRestartDialogAllowed = DeviceConfig.getBoolean(
DeviceConfig.NAMESPACE_WINDOW_MANAGER, KEY_ENABLE_LETTERBOX_RESTART_DIALOG,
- false);
+ DEFAULT_VALUE_ENABLE_LETTERBOX_RESTART_DIALOG);
}
+ // TODO(b/263349751): Update flag and default value to true
if (properties.getKeyset().contains(KEY_ENABLE_LETTERBOX_REACHABILITY_EDUCATION)) {
mIsLetterboxReachabilityEducationAllowed = DeviceConfig.getBoolean(
DeviceConfig.NAMESPACE_WINDOW_MANAGER,
- KEY_ENABLE_LETTERBOX_REACHABILITY_EDUCATION, false);
+ KEY_ENABLE_LETTERBOX_REACHABILITY_EDUCATION,
+ DEFAULT_VALUE_ENABLE_LETTERBOX_REACHABILITY_EDUCATION);
}
}
-}
+
+ private boolean isReachabilityEducationEnabled() {
+ return mIsReachabilityEducationOverrideEnabled || (mIsReachabilityEducationEnabled
+ && mIsLetterboxReachabilityEducationAllowed);
+ }
+
+ private static String hasSeenHorizontalReachabilityEduKey(int userId) {
+ return HAS_SEEN_HORIZONTAL_REACHABILITY_EDUCATION_KEY_PREFIX + "@" + userId;
+ }
+
+ private static String hasSeenVerticalReachabilityEduKey(int userId) {
+ return HAS_SEEN_VERTICAL_REACHABILITY_EDUCATION_KEY_PREFIX + "@" + userId;
+ }
+
+ private static String dontShowLetterboxEduKey(int userId) {
+ return String.valueOf(userId);
+ }
+
+ private String dontShowAgainRestartKey(int userId, String packageName) {
+ return packageName + "@" + userId;
+ }
+}
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIController.java
index 6627de58cce350bfc3e7a8d4e70e6a005afe44b0..838e37a905db3eb7fa0d6a3a3ac17164ce0ba5da 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIController.java
@@ -24,6 +24,7 @@ import android.content.res.Configuration;
import android.hardware.display.DisplayManager;
import android.util.ArraySet;
import android.util.Log;
+import android.util.Pair;
import android.util.SparseArray;
import android.view.Display;
import android.view.InsetsSourceControl;
@@ -41,7 +42,6 @@ import com.android.wm.shell.common.DockStateReader;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.SyncTransactionQueue;
import com.android.wm.shell.compatui.CompatUIWindowManager.CompatUIHintsState;
-import com.android.wm.shell.compatui.letterboxedu.LetterboxEduWindowManager;
import com.android.wm.shell.sysui.KeyguardChangeListener;
import com.android.wm.shell.sysui.ShellController;
import com.android.wm.shell.sysui.ShellInit;
@@ -49,6 +49,7 @@ import com.android.wm.shell.transition.Transitions;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.function.Consumer;
@@ -90,6 +91,18 @@ public class CompatUIController implements OnDisplaysChangedListener,
*/
private final SparseArray mActiveCompatLayouts = new SparseArray<>(0);
+ /**
+ * {@link SparseArray} that maps task ids to {@link RestartDialogWindowManager} that are
+ * currently visible
+ */
+ private final SparseArray mTaskIdToRestartDialogWindowManagerMap =
+ new SparseArray<>(0);
+
+ /**
+ * {@link Set} of task ids for which we need to display a restart confirmation dialog
+ */
+ private Set mSetOfTaskIdsShowingRestartDialog = new HashSet<>();
+
/**
* The active Letterbox Education layout if there is one (there can be at most one active).
*
@@ -99,6 +112,12 @@ public class CompatUIController implements OnDisplaysChangedListener,
@Nullable
private LetterboxEduWindowManager mActiveLetterboxEduLayout;
+ /**
+ * The active Reachability UI layout.
+ */
+ @Nullable
+ private ReachabilityEduWindowManager mActiveReachabilityEduLayout;
+
/** Avoid creating display context frequently for non-default display. */
private final SparseArray> mDisplayContextCache = new SparseArray<>(0);
@@ -111,11 +130,12 @@ public class CompatUIController implements OnDisplaysChangedListener,
private final ShellExecutor mMainExecutor;
private final Lazy mTransitionsLazy;
private final DockStateReader mDockStateReader;
-
- private CompatUICallback mCallback;
-
+ private final CompatUIConfiguration mCompatUIConfiguration;
// Only show each hint once automatically in the process life.
private final CompatUIHintsState mCompatUIHintsState;
+ private final CompatUIShellCommandHandler mCompatUIShellCommandHandler;
+
+ private CompatUICallback mCallback;
// Indicates if the keyguard is currently showing, in which case compat UIs shouldn't
// be shown.
@@ -130,7 +150,9 @@ public class CompatUIController implements OnDisplaysChangedListener,
SyncTransactionQueue syncQueue,
ShellExecutor mainExecutor,
Lazy transitionsLazy,
- DockStateReader dockStateReader) {
+ DockStateReader dockStateReader,
+ CompatUIConfiguration compatUIConfiguration,
+ CompatUIShellCommandHandler compatUIShellCommandHandler) {
mContext = context;
mShellController = shellController;
mDisplayController = displayController;
@@ -140,14 +162,17 @@ public class CompatUIController implements OnDisplaysChangedListener,
mMainExecutor = mainExecutor;
mTransitionsLazy = transitionsLazy;
mCompatUIHintsState = new CompatUIHintsState();
- shellInit.addInitCallback(this::onInit, this);
mDockStateReader = dockStateReader;
+ mCompatUIConfiguration = compatUIConfiguration;
+ mCompatUIShellCommandHandler = compatUIShellCommandHandler;
+ shellInit.addInitCallback(this::onInit, this);
}
private void onInit() {
mShellController.addKeyguardChangeListener(this);
mDisplayController.addDisplayWindowListener(this);
mImeController.addPositionProcessor(this);
+ mCompatUIShellCommandHandler.onInit();
}
/** Sets the callback for UI interactions. */
@@ -164,6 +189,9 @@ public class CompatUIController implements OnDisplaysChangedListener,
*/
public void onCompatInfoChanged(TaskInfo taskInfo,
@Nullable ShellTaskOrganizer.TaskListener taskListener) {
+ if (taskInfo != null && !taskInfo.topActivityInSizeCompat) {
+ mSetOfTaskIdsShowingRestartDialog.remove(taskInfo.taskId);
+ }
if (taskInfo.configuration == null || taskListener == null) {
// Null token means the current foreground activity is not in compatibility mode.
removeLayouts(taskInfo.taskId);
@@ -172,6 +200,10 @@ public class CompatUIController implements OnDisplaysChangedListener,
createOrUpdateCompatLayout(taskInfo, taskListener);
createOrUpdateLetterboxEduLayout(taskInfo, taskListener);
+ createOrUpdateRestartDialogLayout(taskInfo, taskListener);
+ if (mCompatUIConfiguration.getHasSeenLetterboxEducation(taskInfo.userId)) {
+ createOrUpdateReachabilityEduLayout(taskInfo, taskListener);
+ }
}
@Override
@@ -278,7 +310,21 @@ public class CompatUIController implements OnDisplaysChangedListener,
ShellTaskOrganizer.TaskListener taskListener) {
return new CompatUIWindowManager(context,
taskInfo, mSyncQueue, mCallback, taskListener,
- mDisplayController.getDisplayLayout(taskInfo.displayId), mCompatUIHintsState);
+ mDisplayController.getDisplayLayout(taskInfo.displayId), mCompatUIHintsState,
+ mCompatUIConfiguration, this::onRestartButtonClicked);
+ }
+
+ private void onRestartButtonClicked(
+ Pair taskInfoState) {
+ if (mCompatUIConfiguration.isRestartDialogEnabled()
+ && mCompatUIConfiguration.shouldShowRestartDialogAgain(
+ taskInfoState.first)) {
+ // We need to show the dialog
+ mSetOfTaskIdsShowingRestartDialog.add(taskInfoState.first.taskId);
+ onCompatInfoChanged(taskInfoState.first, taskInfoState.second);
+ } else {
+ mCallback.onSizeCompatRestartButtonClicked(taskInfoState.first.taskId);
+ }
}
private void createOrUpdateLetterboxEduLayout(TaskInfo taskInfo,
@@ -318,15 +364,112 @@ public class CompatUIController implements OnDisplaysChangedListener,
ShellTaskOrganizer.TaskListener taskListener) {
return new LetterboxEduWindowManager(context, taskInfo,
mSyncQueue, taskListener, mDisplayController.getDisplayLayout(taskInfo.displayId),
- mTransitionsLazy.get(),
- this::onLetterboxEduDismissed,
- mDockStateReader);
+ mTransitionsLazy.get(), this::onLetterboxEduDismissed, mDockStateReader,
+ mCompatUIConfiguration);
}
- private void onLetterboxEduDismissed() {
+ private void onLetterboxEduDismissed(
+ Pair stateInfo) {
mActiveLetterboxEduLayout = null;
+ // We need to update the UI
+ createOrUpdateReachabilityEduLayout(stateInfo.first, stateInfo.second);
+ }
+
+ private void createOrUpdateRestartDialogLayout(TaskInfo taskInfo,
+ ShellTaskOrganizer.TaskListener taskListener) {
+ RestartDialogWindowManager layout =
+ mTaskIdToRestartDialogWindowManagerMap.get(taskInfo.taskId);
+ if (layout != null) {
+ if (layout.needsToBeRecreated(taskInfo, taskListener)) {
+ mTaskIdToRestartDialogWindowManagerMap.remove(taskInfo.taskId);
+ layout.release();
+ } else {
+ layout.setRequestRestartDialog(
+ mSetOfTaskIdsShowingRestartDialog.contains(taskInfo.taskId));
+ // UI already exists, update the UI layout.
+ if (!layout.updateCompatInfo(taskInfo, taskListener,
+ showOnDisplay(layout.getDisplayId()))) {
+ // The layout is no longer eligible to be shown, remove from active layouts.
+ mTaskIdToRestartDialogWindowManagerMap.remove(taskInfo.taskId);
+ }
+ return;
+ }
+ }
+ // Create a new UI layout.
+ final Context context = getOrCreateDisplayContext(taskInfo.displayId);
+ if (context == null) {
+ return;
+ }
+ layout = createRestartDialogWindowManager(context, taskInfo, taskListener);
+ layout.setRequestRestartDialog(
+ mSetOfTaskIdsShowingRestartDialog.contains(taskInfo.taskId));
+ if (layout.createLayout(showOnDisplay(taskInfo.displayId))) {
+ // The new layout is eligible to be shown, add it the active layouts.
+ mTaskIdToRestartDialogWindowManagerMap.put(taskInfo.taskId, layout);
+ }
}
+ @VisibleForTesting
+ RestartDialogWindowManager createRestartDialogWindowManager(Context context, TaskInfo taskInfo,
+ ShellTaskOrganizer.TaskListener taskListener) {
+ return new RestartDialogWindowManager(context, taskInfo, mSyncQueue, taskListener,
+ mDisplayController.getDisplayLayout(taskInfo.displayId), mTransitionsLazy.get(),
+ this::onRestartDialogCallback, this::onRestartDialogDismissCallback,
+ mCompatUIConfiguration);
+ }
+
+ private void onRestartDialogCallback(
+ Pair stateInfo) {
+ mTaskIdToRestartDialogWindowManagerMap.remove(stateInfo.first.taskId);
+ mCallback.onSizeCompatRestartButtonClicked(stateInfo.first.taskId);
+ }
+
+ private void onRestartDialogDismissCallback(
+ Pair stateInfo) {
+ mSetOfTaskIdsShowingRestartDialog.remove(stateInfo.first.taskId);
+ onCompatInfoChanged(stateInfo.first, stateInfo.second);
+ }
+
+ private void createOrUpdateReachabilityEduLayout(TaskInfo taskInfo,
+ ShellTaskOrganizer.TaskListener taskListener) {
+ if (mActiveReachabilityEduLayout != null) {
+ // UI already exists, update the UI layout.
+ if (!mActiveReachabilityEduLayout.updateCompatInfo(taskInfo, taskListener,
+ showOnDisplay(mActiveReachabilityEduLayout.getDisplayId()))) {
+ // The layout is no longer eligible to be shown, remove from active layouts.
+ mActiveReachabilityEduLayout = null;
+ }
+ return;
+ }
+ // Create a new UI layout.
+ final Context context = getOrCreateDisplayContext(taskInfo.displayId);
+ if (context == null) {
+ return;
+ }
+ ReachabilityEduWindowManager newLayout = createReachabilityEduWindowManager(context,
+ taskInfo, taskListener);
+ if (newLayout.createLayout(showOnDisplay(taskInfo.displayId))) {
+ // The new layout is eligible to be shown, make it the active layout.
+ if (mActiveReachabilityEduLayout != null) {
+ // Release the previous layout since at most one can be active.
+ // Since letterbox reachability education is only shown once to the user,
+ // releasing the previous layout is only a precaution.
+ mActiveReachabilityEduLayout.release();
+ }
+ mActiveReachabilityEduLayout = newLayout;
+ }
+ }
+
+ @VisibleForTesting
+ ReachabilityEduWindowManager createReachabilityEduWindowManager(Context context,
+ TaskInfo taskInfo,
+ ShellTaskOrganizer.TaskListener taskListener) {
+ return new ReachabilityEduWindowManager(context, taskInfo, mSyncQueue,
+ taskListener, mDisplayController.getDisplayLayout(taskInfo.displayId),
+ mCompatUIConfiguration, mMainExecutor);
+ }
+
+
private void removeLayouts(int taskId) {
final CompatUIWindowManager layout = mActiveCompatLayouts.get(taskId);
if (layout != null) {
@@ -338,6 +481,19 @@ public class CompatUIController implements OnDisplaysChangedListener,
mActiveLetterboxEduLayout.release();
mActiveLetterboxEduLayout = null;
}
+
+ final RestartDialogWindowManager restartLayout =
+ mTaskIdToRestartDialogWindowManagerMap.get(taskId);
+ if (restartLayout != null) {
+ restartLayout.release();
+ mTaskIdToRestartDialogWindowManagerMap.remove(taskId);
+ mSetOfTaskIdsShowingRestartDialog.remove(taskId);
+ }
+ if (mActiveReachabilityEduLayout != null
+ && mActiveReachabilityEduLayout.getTaskId() == taskId) {
+ mActiveReachabilityEduLayout.release();
+ mActiveReachabilityEduLayout = null;
+ }
}
private Context getOrCreateDisplayContext(int displayId) {
@@ -382,6 +538,17 @@ public class CompatUIController implements OnDisplaysChangedListener,
if (mActiveLetterboxEduLayout != null && condition.test(mActiveLetterboxEduLayout)) {
callback.accept(mActiveLetterboxEduLayout);
}
+ for (int i = 0; i < mTaskIdToRestartDialogWindowManagerMap.size(); i++) {
+ final int taskId = mTaskIdToRestartDialogWindowManagerMap.keyAt(i);
+ final RestartDialogWindowManager layout =
+ mTaskIdToRestartDialogWindowManagerMap.get(taskId);
+ if (layout != null && condition.test(layout)) {
+ callback.accept(layout);
+ }
+ }
+ if (mActiveReachabilityEduLayout != null && condition.test(mActiveReachabilityEduLayout)) {
+ callback.accept(mActiveReachabilityEduLayout);
+ }
}
/** An implementation of {@link OnInsetsChangedListener} for a given display id. */
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUILayout.java b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUILayout.java
index d44b4d8f63b6fb4abeb313ecc58937b2aeaebabd..f65c26ada04dc656ce26fb47198f5942e9750b99 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUILayout.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUILayout.java
@@ -21,6 +21,7 @@ import android.app.TaskInfo;
import android.app.TaskInfo.CameraCompatControlState;
import android.content.Context;
import android.util.AttributeSet;
+import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageButton;
import android.widget.LinearLayout;
@@ -111,6 +112,14 @@ class CompatUILayout extends LinearLayout {
mWindowManager.relayout();
}
+ @Override
+ public boolean onInterceptTouchEvent(MotionEvent ev) {
+ if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+ mWindowManager.relayout();
+ }
+ return super.onInterceptTouchEvent(ev);
+ }
+
@Override
protected void onFinishInflate() {
super.onFinishInflate();
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManager.java b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManager.java
index bce3ec4128e8396e399e3b1ec0fbd89e4596376f..170c0ee91b4086f04a6be9b1944abe50cab268b5 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManager.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManager.java
@@ -21,12 +21,14 @@ import static android.app.TaskInfo.CAMERA_COMPAT_CONTROL_HIDDEN;
import static android.app.TaskInfo.CAMERA_COMPAT_CONTROL_TREATMENT_APPLIED;
import static android.app.TaskInfo.CAMERA_COMPAT_CONTROL_TREATMENT_SUGGESTED;
+import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.TaskInfo;
import android.app.TaskInfo.CameraCompatControlState;
import android.content.Context;
import android.graphics.Rect;
import android.util.Log;
+import android.util.Pair;
import android.view.LayoutInflater;
import android.view.View;
@@ -36,7 +38,8 @@ import com.android.wm.shell.ShellTaskOrganizer;
import com.android.wm.shell.common.DisplayLayout;
import com.android.wm.shell.common.SyncTransactionQueue;
import com.android.wm.shell.compatui.CompatUIController.CompatUICallback;
-import com.android.wm.shell.compatui.letterboxedu.LetterboxEduWindowManager;
+
+import java.util.function.Consumer;
/**
* Window manager for the Size Compat restart button and Camera Compat control.
@@ -50,6 +53,13 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract {
private final CompatUICallback mCallback;
+ private final CompatUIConfiguration mCompatUIConfiguration;
+
+ private final Consumer> mOnRestartButtonClicked;
+
+ @NonNull
+ private TaskInfo mTaskInfo;
+
// Remember the last reported states in case visibility changes due to keyguard or IME updates.
@VisibleForTesting
boolean mHasSizeCompat;
@@ -68,12 +78,16 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract {
CompatUIWindowManager(Context context, TaskInfo taskInfo,
SyncTransactionQueue syncQueue, CompatUICallback callback,
ShellTaskOrganizer.TaskListener taskListener, DisplayLayout displayLayout,
- CompatUIHintsState compatUIHintsState) {
+ CompatUIHintsState compatUIHintsState, CompatUIConfiguration compatUIConfiguration,
+ Consumer> onRestartButtonClicked) {
super(context, taskInfo, syncQueue, taskListener, displayLayout);
+ mTaskInfo = taskInfo;
mCallback = callback;
mHasSizeCompat = taskInfo.topActivityInSizeCompat;
mCameraCompatControlState = taskInfo.cameraCompatControlState;
mCompatUIHintsState = compatUIHintsState;
+ mCompatUIConfiguration = compatUIConfiguration;
+ mOnRestartButtonClicked = onRestartButtonClicked;
}
@Override
@@ -119,6 +133,7 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract {
@Override
public boolean updateCompatInfo(TaskInfo taskInfo, ShellTaskOrganizer.TaskListener taskListener,
boolean canShow) {
+ mTaskInfo = taskInfo;
final boolean prevHasSizeCompat = mHasSizeCompat;
final int prevCameraCompatControlState = mCameraCompatControlState;
mHasSizeCompat = taskInfo.topActivityInSizeCompat;
@@ -138,7 +153,7 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract {
/** Called when the restart button is clicked. */
void onRestartButtonClicked() {
- mCallback.onSizeCompatRestartButtonClicked(mTaskId);
+ mOnRestartButtonClicked.accept(Pair.create(mTaskInfo, getTaskListener()));
}
/** Called when the camera treatment button is clicked. */
@@ -199,8 +214,14 @@ class CompatUIWindowManager extends CompatUIWindowManagerAbstract {
: taskStableBounds.right - taskBounds.left - mLayout.getMeasuredWidth();
final int positionY = taskStableBounds.bottom - taskBounds.top
- mLayout.getMeasuredHeight();
-
+ // To secure a proper visualisation, we hide the layout while updating the position of
+ // the {@link SurfaceControl} it belongs.
+ final int oldVisibility = mLayout.getVisibility();
+ if (oldVisibility == View.VISIBLE) {
+ mLayout.setVisibility(View.GONE);
+ }
updateSurfacePosition(positionX, positionY);
+ mLayout.setVisibility(oldVisibility);
}
private void updateVisibilityOfViews() {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManagerAbstract.java b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManagerAbstract.java
index face24340a4e5b312cef471f98c8a6e1236e9738..346cd940e6782ff0af0798eee4922789cff53190 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManagerAbstract.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/CompatUIWindowManagerAbstract.java
@@ -169,6 +169,10 @@ public abstract class CompatUIWindowManagerAbstract extends WindowlessWindowMana
initSurface(mLeash);
}
+ protected ShellTaskOrganizer.TaskListener getTaskListener() {
+ return mTaskListener;
+ }
+
/** Inits the z-order of the surface. */
private void initSurface(SurfaceControl leash) {
final int z = getZOrder();
@@ -206,7 +210,8 @@ public abstract class CompatUIWindowManagerAbstract extends WindowlessWindowMana
}
View layout = getLayout();
- if (layout == null || prevTaskListener != taskListener) {
+ if (layout == null || prevTaskListener != taskListener
+ || mTaskConfig.uiMode != prevTaskConfig.uiMode) {
// Layout wasn't created yet or TaskListener changed, recreate the layout for new
// surface parent.
release();
@@ -379,7 +384,7 @@ public abstract class CompatUIWindowManagerAbstract extends WindowlessWindowMana
// Cannot be wrap_content as this determines the actual window size
width, height,
TYPE_APPLICATION_OVERLAY,
- FLAG_NOT_FOCUSABLE | FLAG_NOT_TOUCH_MODAL,
+ getWindowManagerLayoutParamsFlags(),
PixelFormat.TRANSLUCENT);
winParams.token = new Binder();
winParams.setTitle(getClass().getSimpleName() + mTaskId);
@@ -387,6 +392,13 @@ public abstract class CompatUIWindowManagerAbstract extends WindowlessWindowMana
return winParams;
}
+ /**
+ * @return Flags to use for the {@link WindowManager} layout
+ */
+ protected int getWindowManagerLayoutParamsFlags() {
+ return FLAG_NOT_FOCUSABLE | FLAG_NOT_TOUCH_MODAL;
+ }
+
protected final String getTag() {
return getClass().getSimpleName();
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/letterboxedu/LetterboxEduDialogActionLayout.java b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/LetterboxEduDialogActionLayout.java
similarity index 95%
rename from libs/WindowManager/Shell/src/com/android/wm/shell/compatui/letterboxedu/LetterboxEduDialogActionLayout.java
rename to libs/WindowManager/Shell/src/com/android/wm/shell/compatui/LetterboxEduDialogActionLayout.java
index 02197f644a39fb49a9004d800c85a5f29ba912c6..9974295123b783fdcf79e1c807122b3d6a556579 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/letterboxedu/LetterboxEduDialogActionLayout.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/LetterboxEduDialogActionLayout.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2022 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.wm.shell.compatui.letterboxedu;
+package com.android.wm.shell.compatui;
import android.content.Context;
import android.content.res.TypedArray;
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/letterboxedu/LetterboxEduDialogLayout.java b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/LetterboxEduDialogLayout.java
similarity index 95%
rename from libs/WindowManager/Shell/src/com/android/wm/shell/compatui/letterboxedu/LetterboxEduDialogLayout.java
rename to libs/WindowManager/Shell/src/com/android/wm/shell/compatui/LetterboxEduDialogLayout.java
index 9232f36cf9397e84144472f7399d8efb0fc144b1..df2f6ce24ebcedfc727b459b7cc86102c1bc943d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/letterboxedu/LetterboxEduDialogLayout.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/LetterboxEduDialogLayout.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2022 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.wm.shell.compatui.letterboxedu;
+package com.android.wm.shell.compatui;
import android.annotation.Nullable;
import android.content.Context;
@@ -26,7 +26,6 @@ import android.widget.TextView;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.android.wm.shell.R;
-import com.android.wm.shell.compatui.DialogContainerSupplier;
/**
* Container for Letterbox Education Dialog and background dim.
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/letterboxedu/LetterboxEduWindowManager.java b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/LetterboxEduWindowManager.java
similarity index 82%
rename from libs/WindowManager/Shell/src/com/android/wm/shell/compatui/letterboxedu/LetterboxEduWindowManager.java
rename to libs/WindowManager/Shell/src/com/android/wm/shell/compatui/LetterboxEduWindowManager.java
index c14c009721a1f70d429f5126edca4dcef034f973..0c21c8ccd68687f09aaf87c75167d1b7d7d1c8a1 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/letterboxedu/LetterboxEduWindowManager.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/LetterboxEduWindowManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2022 The Android Open Source Project
+ * Copyright (C) 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,16 +14,17 @@
* limitations under the License.
*/
-package com.android.wm.shell.compatui.letterboxedu;
+package com.android.wm.shell.compatui;
import static android.provider.Settings.Secure.LAUNCHER_TASKBAR_EDUCATION_SHOWING;
+import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.TaskInfo;
import android.content.Context;
-import android.content.SharedPreferences;
import android.graphics.Rect;
import android.provider.Settings;
+import android.util.Pair;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup.MarginLayoutParams;
@@ -36,14 +37,14 @@ import com.android.wm.shell.ShellTaskOrganizer;
import com.android.wm.shell.common.DisplayLayout;
import com.android.wm.shell.common.DockStateReader;
import com.android.wm.shell.common.SyncTransactionQueue;
-import com.android.wm.shell.compatui.CompatUIWindowManagerAbstract;
-import com.android.wm.shell.compatui.DialogAnimationController;
import com.android.wm.shell.transition.Transitions;
+import java.util.function.Consumer;
+
/**
* Window manager for the Letterbox Education.
*/
-public class LetterboxEduWindowManager extends CompatUIWindowManagerAbstract {
+class LetterboxEduWindowManager extends CompatUIWindowManagerAbstract {
/**
* The Letterbox Education should be the topmost child of the Task in case there can be more
@@ -51,19 +52,6 @@ public class LetterboxEduWindowManager extends CompatUIWindowManagerAbstract {
*/
public static final int Z_ORDER = Integer.MAX_VALUE;
- /**
- * The name of the {@link SharedPreferences} that holds which user has seen the Letterbox
- * Education dialog.
- */
- @VisibleForTesting
- static final String HAS_SEEN_LETTERBOX_EDUCATION_PREF_NAME =
- "has_seen_letterbox_education";
-
- /**
- * The {@link SharedPreferences} instance for {@link #HAS_SEEN_LETTERBOX_EDUCATION_PREF_NAME}.
- */
- private final SharedPreferences mSharedPreferences;
-
private final DialogAnimationController mAnimationController;
private final Transitions mTransitions;
@@ -75,6 +63,10 @@ public class LetterboxEduWindowManager extends CompatUIWindowManagerAbstract {
*/
private final int mUserId;
+ private final Consumer> mOnDismissCallback;
+
+ private final CompatUIConfiguration mCompatUIConfiguration;
+
// Remember the last reported state in case visibility changes due to keyguard or IME updates.
private boolean mEligibleForLetterboxEducation;
@@ -82,7 +74,8 @@ public class LetterboxEduWindowManager extends CompatUIWindowManagerAbstract {
@VisibleForTesting
LetterboxEduDialogLayout mLayout;
- private final Runnable mOnDismissCallback;
+ @NonNull
+ private TaskInfo mTaskInfo;
/**
* The vertical margin between the dialog container and the task stable bounds (excluding
@@ -92,33 +85,35 @@ public class LetterboxEduWindowManager extends CompatUIWindowManagerAbstract {
private final DockStateReader mDockStateReader;
- public LetterboxEduWindowManager(Context context, TaskInfo taskInfo,
+ LetterboxEduWindowManager(Context context, TaskInfo taskInfo,
SyncTransactionQueue syncQueue, ShellTaskOrganizer.TaskListener taskListener,
DisplayLayout displayLayout, Transitions transitions,
- Runnable onDismissCallback, DockStateReader dockStateReader) {
+ Consumer> onDismissCallback,
+ DockStateReader dockStateReader, CompatUIConfiguration compatUIConfiguration) {
this(context, taskInfo, syncQueue, taskListener, displayLayout, transitions,
onDismissCallback,
new DialogAnimationController<>(context, /* tag */ "LetterboxEduWindowManager"),
- dockStateReader);
+ dockStateReader, compatUIConfiguration);
}
@VisibleForTesting
LetterboxEduWindowManager(Context context, TaskInfo taskInfo,
SyncTransactionQueue syncQueue, ShellTaskOrganizer.TaskListener taskListener,
- DisplayLayout displayLayout, Transitions transitions, Runnable onDismissCallback,
+ DisplayLayout displayLayout, Transitions transitions,
+ Consumer> onDismissCallback,
DialogAnimationController animationController,
- DockStateReader dockStateReader) {
+ DockStateReader dockStateReader, CompatUIConfiguration compatUIConfiguration) {
super(context, taskInfo, syncQueue, taskListener, displayLayout);
+ mTaskInfo = taskInfo;
mTransitions = transitions;
mOnDismissCallback = onDismissCallback;
mAnimationController = animationController;
mUserId = taskInfo.userId;
- mEligibleForLetterboxEducation = taskInfo.topActivityEligibleForLetterboxEducation;
- mSharedPreferences = mContext.getSharedPreferences(HAS_SEEN_LETTERBOX_EDUCATION_PREF_NAME,
- Context.MODE_PRIVATE);
mDialogVerticalMargin = (int) mContext.getResources().getDimension(
R.dimen.letterbox_education_dialog_margin);
mDockStateReader = dockStateReader;
+ mCompatUIConfiguration = compatUIConfiguration;
+ mEligibleForLetterboxEducation = taskInfo.topActivityEligibleForLetterboxEducation;
}
@Override
@@ -144,8 +139,8 @@ public class LetterboxEduWindowManager extends CompatUIWindowManagerAbstract {
// the controller will create a new instance of this class since this one isn't eligible).
// - If the layout isn't null then it was previously showing, and we shouldn't check if the
// user has seen the letterbox education before.
- return mEligibleForLetterboxEducation && !isTaskbarEduShowing()
- && (mLayout != null || !getHasSeenLetterboxEducation())
+ return mEligibleForLetterboxEducation && !isTaskbarEduShowing() && (mLayout != null
+ || !mCompatUIConfiguration.getHasSeenLetterboxEducation(mUserId))
&& !mDockStateReader.isDocked();
}
@@ -194,7 +189,6 @@ public class LetterboxEduWindowManager extends CompatUIWindowManagerAbstract {
// Dialog has already been released.
return;
}
- setSeenLetterboxEducation();
mLayout.setDismissOnClickListener(this::onDismiss);
// Focus on the dialog title for accessibility.
mLayout.getDialogTitle().sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
@@ -204,10 +198,11 @@ public class LetterboxEduWindowManager extends CompatUIWindowManagerAbstract {
if (mLayout == null) {
return;
}
+ mCompatUIConfiguration.setSeenLetterboxEducation(mUserId);
mLayout.setDismissOnClickListener(null);
mAnimationController.startExitAnimation(mLayout, () -> {
release();
- mOnDismissCallback.run();
+ mOnDismissCallback.accept(Pair.create(mTaskInfo, getTaskListener()));
});
}
@@ -220,6 +215,7 @@ public class LetterboxEduWindowManager extends CompatUIWindowManagerAbstract {
@Override
public boolean updateCompatInfo(TaskInfo taskInfo, ShellTaskOrganizer.TaskListener taskListener,
boolean canShow) {
+ mTaskInfo = taskInfo;
mEligibleForLetterboxEducation = taskInfo.topActivityEligibleForLetterboxEducation;
return super.updateCompatInfo(taskInfo, taskListener, canShow);
@@ -250,18 +246,6 @@ public class LetterboxEduWindowManager extends CompatUIWindowManagerAbstract {
taskBounds.height());
}
- private boolean getHasSeenLetterboxEducation() {
- return mSharedPreferences.getBoolean(getPrefKey(), /* default= */ false);
- }
-
- private void setSeenLetterboxEducation() {
- mSharedPreferences.edit().putBoolean(getPrefKey(), true).apply();
- }
-
- private String getPrefKey() {
- return String.valueOf(mUserId);
- }
-
@VisibleForTesting
boolean isTaskbarEduShowing() {
return Settings.Secure.getInt(mContext.getContentResolver(),
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/ReachabilityEduLayout.java b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/ReachabilityEduLayout.java
new file mode 100644
index 0000000000000000000000000000000000000000..dc3d1d35fecb72480a9615cca315da6fbdcbb76a
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/ReachabilityEduLayout.java
@@ -0,0 +1,269 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.wm.shell.compatui;
+
+import static android.app.TaskInfo.PROPERTY_VALUE_UNSET;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ObjectAnimator;
+import android.animation.ValueAnimator;
+import android.app.TaskInfo;
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.FrameLayout;
+
+import com.android.wm.shell.R;
+
+import java.util.function.BiConsumer;
+import java.util.function.Function;
+
+/**
+ * Container for reachability education which handles all the show/hide animations.
+ */
+public class ReachabilityEduLayout extends FrameLayout {
+
+ private static final float ALPHA_FULL_TRANSPARENT = 0f;
+
+ private static final float ALPHA_FULL_OPAQUE = 1f;
+
+ private static final long VISIBILITY_ANIMATION_DURATION_MS = 400;
+
+ private static final long MARGINS_ANIMATION_DURATION_MS = 250;
+
+ private static final String ALPHA_PROPERTY_NAME = "alpha";
+
+ private ReachabilityEduWindowManager mWindowManager;
+
+ private View mMoveLeftButton;
+ private View mMoveRightButton;
+ private View mMoveUpButton;
+ private View mMoveDownButton;
+
+ private int mLastLeftMargin = PROPERTY_VALUE_UNSET;
+ private int mLastRightMargin = PROPERTY_VALUE_UNSET;
+ private int mLastTopMargin = PROPERTY_VALUE_UNSET;
+ private int mLastBottomMargin = PROPERTY_VALUE_UNSET;
+
+ public ReachabilityEduLayout(Context context) {
+ this(context, null);
+ }
+
+ public ReachabilityEduLayout(Context context, AttributeSet attrs) {
+ this(context, attrs, 0);
+ }
+
+ public ReachabilityEduLayout(Context context, AttributeSet attrs, int defStyleAttr) {
+ this(context, attrs, defStyleAttr, 0);
+ }
+
+ public ReachabilityEduLayout(Context context, AttributeSet attrs, int defStyleAttr,
+ int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
+ void inject(ReachabilityEduWindowManager windowManager) {
+ mWindowManager = windowManager;
+ }
+
+ void handleVisibility(boolean horizontalEnabled, boolean verticalEnabled,
+ int letterboxVerticalPosition,
+ int letterboxHorizontalPosition, int availableWidth, int availableHeight,
+ CompatUIConfiguration compatUIConfiguration, TaskInfo taskInfo) {
+ hideAllImmediately();
+ if (horizontalEnabled && letterboxHorizontalPosition != PROPERTY_VALUE_UNSET) {
+ handleLetterboxHorizontalPosition(availableWidth, letterboxHorizontalPosition);
+ compatUIConfiguration.setUserHasSeenHorizontalReachabilityEducation(taskInfo);
+ } else if (verticalEnabled && letterboxVerticalPosition != PROPERTY_VALUE_UNSET) {
+ handleLetterboxVerticalPosition(availableHeight, letterboxVerticalPosition);
+ compatUIConfiguration.setUserHasSeenVerticalReachabilityEducation(taskInfo);
+ }
+ }
+
+ void hideAllImmediately() {
+ hideImmediately(mMoveLeftButton);
+ hideImmediately(mMoveRightButton);
+ hideImmediately(mMoveUpButton);
+ hideImmediately(mMoveDownButton);
+ mLastLeftMargin = PROPERTY_VALUE_UNSET;
+ mLastRightMargin = PROPERTY_VALUE_UNSET;
+ mLastTopMargin = PROPERTY_VALUE_UNSET;
+ mLastBottomMargin = PROPERTY_VALUE_UNSET;
+ }
+
+ @Override
+ protected void onFinishInflate() {
+ super.onFinishInflate();
+ mMoveLeftButton = findViewById(R.id.reachability_move_left_button);
+ mMoveRightButton = findViewById(R.id.reachability_move_right_button);
+ mMoveUpButton = findViewById(R.id.reachability_move_up_button);
+ mMoveDownButton = findViewById(R.id.reachability_move_down_button);
+ mMoveLeftButton.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+ mMoveRightButton.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+ mMoveUpButton.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+ mMoveDownButton.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
+ }
+
+ private void hideImmediately(View view) {
+ view.setAlpha(0);
+ view.setVisibility(View.INVISIBLE);
+ }
+
+ private Animator marginAnimator(View view, Function marginSupplier,
+ BiConsumer marginConsumer, int from, int to) {
+ final LayoutParams layoutParams = ((LayoutParams) view.getLayoutParams());
+ ValueAnimator animator = ValueAnimator.ofInt(marginSupplier.apply(layoutParams), from, to);
+ animator.addUpdateListener(valueAnimator -> {
+ marginConsumer.accept(layoutParams, (Integer) valueAnimator.getAnimatedValue());
+ view.requestLayout();
+ });
+ animator.setDuration(MARGINS_ANIMATION_DURATION_MS);
+ return animator;
+ }
+
+ private void handleLetterboxHorizontalPosition(int availableWidth,
+ int letterboxHorizontalPosition) {
+ hideItem(mMoveUpButton);
+ hideItem(mMoveDownButton);
+ mLastTopMargin = PROPERTY_VALUE_UNSET;
+ mLastBottomMargin = PROPERTY_VALUE_UNSET;
+ // We calculate the available space on the left and right
+ final int horizontalGap = availableWidth / 2;
+ final int leftAvailableSpace = letterboxHorizontalPosition * horizontalGap;
+ final int rightAvailableSpace = availableWidth - leftAvailableSpace;
+ // We show the button if we have enough space
+ if (leftAvailableSpace >= mMoveLeftButton.getMeasuredWidth()) {
+ int newLeftMargin = (horizontalGap - mMoveLeftButton.getMeasuredWidth()) / 2;
+ if (mLastLeftMargin == PROPERTY_VALUE_UNSET) {
+ mLastLeftMargin = newLeftMargin;
+ }
+ if (mLastLeftMargin != newLeftMargin) {
+ marginAnimator(mMoveLeftButton, layoutParams -> layoutParams.leftMargin,
+ (layoutParams, margin) -> layoutParams.leftMargin = margin,
+ mLastLeftMargin, newLeftMargin).start();
+ } else {
+ final LayoutParams leftParams = ((LayoutParams) mMoveLeftButton.getLayoutParams());
+ leftParams.leftMargin = mLastLeftMargin;
+ mMoveLeftButton.setLayoutParams(leftParams);
+ }
+ showItem(mMoveLeftButton);
+ } else {
+ hideItem(mMoveLeftButton);
+ mLastLeftMargin = PROPERTY_VALUE_UNSET;
+ }
+ if (rightAvailableSpace >= mMoveRightButton.getMeasuredWidth()) {
+ int newRightMargin = (horizontalGap - mMoveRightButton.getMeasuredWidth()) / 2;
+ if (mLastRightMargin == PROPERTY_VALUE_UNSET) {
+ mLastRightMargin = newRightMargin;
+ }
+ if (mLastRightMargin != newRightMargin) {
+ marginAnimator(mMoveRightButton, layoutParams -> layoutParams.rightMargin,
+ (layoutParams, margin) -> layoutParams.rightMargin = margin,
+ mLastRightMargin, newRightMargin).start();
+ } else {
+ final LayoutParams rightParams =
+ ((LayoutParams) mMoveRightButton.getLayoutParams());
+ rightParams.rightMargin = mLastRightMargin;
+ mMoveRightButton.setLayoutParams(rightParams);
+ }
+ showItem(mMoveRightButton);
+ } else {
+ hideItem(mMoveRightButton);
+ mLastRightMargin = PROPERTY_VALUE_UNSET;
+ }
+ }
+
+ private void handleLetterboxVerticalPosition(int availableHeight,
+ int letterboxVerticalPosition) {
+ hideItem(mMoveLeftButton);
+ hideItem(mMoveRightButton);
+ mLastLeftMargin = PROPERTY_VALUE_UNSET;
+ mLastRightMargin = PROPERTY_VALUE_UNSET;
+ // We calculate the available space on the left and right
+ final int verticalGap = availableHeight / 2;
+ final int topAvailableSpace = letterboxVerticalPosition * verticalGap;
+ final int bottomAvailableSpace = availableHeight - topAvailableSpace;
+ if (topAvailableSpace >= mMoveUpButton.getMeasuredHeight()) {
+ int newTopMargin = (verticalGap - mMoveUpButton.getMeasuredHeight()) / 2;
+ if (mLastTopMargin == PROPERTY_VALUE_UNSET) {
+ mLastTopMargin = newTopMargin;
+ }
+ if (mLastTopMargin != newTopMargin) {
+ marginAnimator(mMoveUpButton, layoutParams -> layoutParams.topMargin,
+ (layoutParams, margin) -> layoutParams.topMargin = margin,
+ mLastTopMargin, newTopMargin).start();
+ } else {
+ final LayoutParams topParams = ((LayoutParams) mMoveUpButton.getLayoutParams());
+ topParams.topMargin = mLastTopMargin;
+ mMoveUpButton.setLayoutParams(topParams);
+ }
+ showItem(mMoveUpButton);
+ } else {
+ hideItem(mMoveUpButton);
+ mLastTopMargin = PROPERTY_VALUE_UNSET;
+ }
+ if (bottomAvailableSpace >= mMoveDownButton.getMeasuredHeight()) {
+ int newBottomMargin = (verticalGap - mMoveDownButton.getMeasuredHeight()) / 2;
+ if (mLastBottomMargin == PROPERTY_VALUE_UNSET) {
+ mLastBottomMargin = newBottomMargin;
+ }
+ if (mLastBottomMargin != newBottomMargin) {
+ marginAnimator(mMoveDownButton, layoutParams -> layoutParams.bottomMargin,
+ (layoutParams, margin) -> layoutParams.bottomMargin = margin,
+ mLastBottomMargin, newBottomMargin).start();
+ } else {
+ final LayoutParams bottomParams =
+ ((LayoutParams) mMoveDownButton.getLayoutParams());
+ bottomParams.bottomMargin = mLastBottomMargin;
+ mMoveDownButton.setLayoutParams(bottomParams);
+ }
+ showItem(mMoveDownButton);
+ } else {
+ hideItem(mMoveDownButton);
+ mLastBottomMargin = PROPERTY_VALUE_UNSET;
+ }
+ }
+
+ private void showItem(View view) {
+ view.setVisibility(View.VISIBLE);
+ ObjectAnimator fadeIn = ObjectAnimator.ofFloat(view, ALPHA_PROPERTY_NAME,
+ ALPHA_FULL_TRANSPARENT, ALPHA_FULL_OPAQUE);
+ fadeIn.setDuration(VISIBILITY_ANIMATION_DURATION_MS);
+ fadeIn.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ view.setVisibility(View.VISIBLE);
+ }
+ });
+ fadeIn.start();
+ }
+
+ private void hideItem(View view) {
+ ObjectAnimator fadeOut = ObjectAnimator.ofFloat(view, ALPHA_PROPERTY_NAME,
+ ALPHA_FULL_OPAQUE, ALPHA_FULL_TRANSPARENT);
+ fadeOut.setDuration(VISIBILITY_ANIMATION_DURATION_MS);
+ fadeOut.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ view.setVisibility(View.INVISIBLE);
+ }
+ });
+ fadeOut.start();
+ }
+
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/ReachabilityEduWindowManager.java b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/ReachabilityEduWindowManager.java
new file mode 100644
index 0000000000000000000000000000000000000000..b6e396d12512424e9b21b3cffca44fe1de923193
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/ReachabilityEduWindowManager.java
@@ -0,0 +1,269 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.wm.shell.compatui;
+
+import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
+import static android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.app.TaskInfo;
+import android.content.Context;
+import android.graphics.Rect;
+import android.os.SystemClock;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.WindowManager;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.wm.shell.R;
+import com.android.wm.shell.ShellTaskOrganizer;
+import com.android.wm.shell.common.DisplayLayout;
+import com.android.wm.shell.common.ShellExecutor;
+import com.android.wm.shell.common.SyncTransactionQueue;
+
+/**
+ * Window manager for the reachability education
+ */
+class ReachabilityEduWindowManager extends CompatUIWindowManagerAbstract {
+
+ /**
+ * The Compat UI should be below the Letterbox Education.
+ */
+ private static final int Z_ORDER = LetterboxEduWindowManager.Z_ORDER - 1;
+
+ // The time to wait before hiding the education
+ private static final long DISAPPEAR_DELAY_MS = 4000L;
+
+ private static final int REACHABILITY_LEFT_OR_UP_POSITION = 0;
+ private static final int REACHABILITY_RIGHT_OR_BOTTOM_POSITION = 2;
+
+ private final CompatUIConfiguration mCompatUIConfiguration;
+
+ private final ShellExecutor mMainExecutor;
+
+ @NonNull
+ private TaskInfo mTaskInfo;
+
+ private boolean mIsActivityLetterboxed;
+
+ private int mLetterboxVerticalPosition;
+
+ private int mLetterboxHorizontalPosition;
+
+ private int mTopActivityLetterboxWidth;
+
+ private int mTopActivityLetterboxHeight;
+
+ private long mNextHideTime = -1L;
+
+ private boolean mForceUpdate = false;
+
+ // We decided to force the visualization of the double-tap animated icons every time the user
+ // double-taps.
+ private boolean mHasUserDoubleTapped;
+
+ // When the size of the letterboxed app changes and the icons are visible
+ // we need to animate them.
+ private boolean mHasLetterboxSizeChanged;
+
+ @Nullable
+ @VisibleForTesting
+ ReachabilityEduLayout mLayout;
+
+ ReachabilityEduWindowManager(Context context, TaskInfo taskInfo,
+ SyncTransactionQueue syncQueue,
+ ShellTaskOrganizer.TaskListener taskListener, DisplayLayout displayLayout,
+ CompatUIConfiguration compatUIConfiguration, ShellExecutor mainExecutor) {
+ super(context, taskInfo, syncQueue, taskListener, displayLayout);
+ mTaskInfo = taskInfo;
+ mIsActivityLetterboxed = taskInfo.isLetterboxDoubleTapEnabled;
+ mLetterboxVerticalPosition = taskInfo.topActivityLetterboxVerticalPosition;
+ mLetterboxHorizontalPosition = taskInfo.topActivityLetterboxHorizontalPosition;
+ mTopActivityLetterboxWidth = taskInfo.topActivityLetterboxWidth;
+ mTopActivityLetterboxHeight = taskInfo.topActivityLetterboxHeight;
+ mCompatUIConfiguration = compatUIConfiguration;
+ mMainExecutor = mainExecutor;
+ }
+
+ @Override
+ protected int getZOrder() {
+ return Z_ORDER;
+ }
+
+ @Override
+ protected @Nullable View getLayout() {
+ return mLayout;
+ }
+
+ @Override
+ protected void removeLayout() {
+ mLayout = null;
+ }
+
+ @Override
+ protected boolean eligibleToShowLayout() {
+ return mIsActivityLetterboxed
+ && (mLetterboxVerticalPosition != -1 || mLetterboxHorizontalPosition != -1);
+ }
+
+ @Override
+ protected View createLayout() {
+ mLayout = inflateLayout();
+ mLayout.inject(this);
+
+ updateVisibilityOfViews();
+
+ return mLayout;
+ }
+
+ @VisibleForTesting
+ ReachabilityEduLayout inflateLayout() {
+ return (ReachabilityEduLayout) LayoutInflater.from(mContext).inflate(
+ R.layout.reachability_ui_layout, null);
+ }
+
+ @Override
+ public boolean updateCompatInfo(TaskInfo taskInfo, ShellTaskOrganizer.TaskListener taskListener,
+ boolean canShow) {
+ mTaskInfo = taskInfo;
+ final boolean prevIsActivityLetterboxed = mIsActivityLetterboxed;
+ final int prevLetterboxVerticalPosition = mLetterboxVerticalPosition;
+ final int prevLetterboxHorizontalPosition = mLetterboxHorizontalPosition;
+ final int prevTopActivityLetterboxWidth = mTopActivityLetterboxWidth;
+ final int prevTopActivityLetterboxHeight = mTopActivityLetterboxHeight;
+ mIsActivityLetterboxed = taskInfo.isLetterboxDoubleTapEnabled;
+ mLetterboxVerticalPosition = taskInfo.topActivityLetterboxVerticalPosition;
+ mLetterboxHorizontalPosition = taskInfo.topActivityLetterboxHorizontalPosition;
+ mTopActivityLetterboxWidth = taskInfo.topActivityLetterboxWidth;
+ mTopActivityLetterboxHeight = taskInfo.topActivityLetterboxHeight;
+ mHasUserDoubleTapped = taskInfo.isFromLetterboxDoubleTap;
+
+ if (!super.updateCompatInfo(taskInfo, taskListener, canShow)) {
+ return false;
+ }
+
+ mHasLetterboxSizeChanged = prevTopActivityLetterboxWidth != mTopActivityLetterboxWidth
+ || prevTopActivityLetterboxHeight != mTopActivityLetterboxHeight;
+
+ if (mHasUserDoubleTapped || prevIsActivityLetterboxed != mIsActivityLetterboxed
+ || prevLetterboxVerticalPosition != mLetterboxVerticalPosition
+ || prevLetterboxHorizontalPosition != mLetterboxHorizontalPosition
+ || prevTopActivityLetterboxWidth != mTopActivityLetterboxWidth
+ || prevTopActivityLetterboxHeight != mTopActivityLetterboxHeight) {
+ updateVisibilityOfViews();
+ }
+
+ return true;
+ }
+
+ void forceUpdate(boolean forceUpdate) {
+ mForceUpdate = forceUpdate;
+ }
+
+ @Override
+ protected void onParentBoundsChanged() {
+ if (mLayout == null) {
+ return;
+ }
+ // Both the layout dimensions and dialog margins depend on the parent bounds.
+ WindowManager.LayoutParams windowLayoutParams = getWindowLayoutParams();
+ mLayout.setLayoutParams(windowLayoutParams);
+ relayout(windowLayoutParams);
+ }
+
+ /** Gets the layout params. */
+ protected WindowManager.LayoutParams getWindowLayoutParams() {
+ View layout = getLayout();
+ if (layout == null) {
+ return new WindowManager.LayoutParams();
+ }
+ // Measure how big the hint is since its size depends on the text size.
+ final Rect taskBounds = getTaskBounds();
+ layout.measure(View.MeasureSpec.makeMeasureSpec(taskBounds.width(),
+ View.MeasureSpec.EXACTLY),
+ View.MeasureSpec.makeMeasureSpec(taskBounds.height(),
+ View.MeasureSpec.EXACTLY));
+ return getWindowLayoutParams(layout.getMeasuredWidth(), layout.getMeasuredHeight());
+ }
+
+ /**
+ * @return Flags to use for the WindowManager layout
+ */
+ @Override
+ protected int getWindowManagerLayoutParamsFlags() {
+ return FLAG_NOT_FOCUSABLE | FLAG_NOT_TOUCHABLE;
+ }
+
+ @Override
+ @VisibleForTesting
+ public void updateSurfacePosition() {
+ if (mLayout == null) {
+ return;
+ }
+ updateSurfacePosition(0, 0);
+ }
+
+ void updateHideTime() {
+ mNextHideTime = SystemClock.uptimeMillis() + DISAPPEAR_DELAY_MS;
+ }
+
+ private void updateVisibilityOfViews() {
+ if (mLayout == null) {
+ return;
+ }
+
+ final boolean eligibleForDisplayHorizontalEducation = mForceUpdate
+ || !mCompatUIConfiguration.hasSeenHorizontalReachabilityEducation(mTaskInfo)
+ || (mHasUserDoubleTapped
+ && (mLetterboxHorizontalPosition == REACHABILITY_LEFT_OR_UP_POSITION
+ || mLetterboxHorizontalPosition == REACHABILITY_RIGHT_OR_BOTTOM_POSITION));
+ final boolean eligibleForDisplayVerticalEducation = mForceUpdate
+ || !mCompatUIConfiguration.hasSeenVerticalReachabilityEducation(mTaskInfo)
+ || (mHasUserDoubleTapped
+ && (mLetterboxVerticalPosition == REACHABILITY_LEFT_OR_UP_POSITION
+ || mLetterboxVerticalPosition == REACHABILITY_RIGHT_OR_BOTTOM_POSITION));
+
+ if (mIsActivityLetterboxed && (eligibleForDisplayHorizontalEducation
+ || eligibleForDisplayVerticalEducation)) {
+ int availableWidth = getTaskBounds().width() - mTopActivityLetterboxWidth;
+ int availableHeight = getTaskBounds().height() - mTopActivityLetterboxHeight;
+ mLayout.handleVisibility(eligibleForDisplayHorizontalEducation,
+ eligibleForDisplayVerticalEducation,
+ mLetterboxVerticalPosition, mLetterboxHorizontalPosition, availableWidth,
+ availableHeight, mCompatUIConfiguration, mTaskInfo);
+ if (!mHasLetterboxSizeChanged) {
+ updateHideTime();
+ mMainExecutor.executeDelayed(this::hideReachability, DISAPPEAR_DELAY_MS);
+ }
+ mHasUserDoubleTapped = false;
+ } else {
+ mLayout.hideAllImmediately();
+ }
+ }
+
+ private void hideReachability() {
+ if (mLayout == null || !shouldHideEducation()) {
+ return;
+ }
+ mLayout.hideAllImmediately();
+ }
+
+ private boolean shouldHideEducation() {
+ return SystemClock.uptimeMillis() >= mNextHideTime;
+ }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/RestartDialogLayout.java b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/RestartDialogLayout.java
new file mode 100644
index 0000000000000000000000000000000000000000..c53e6389331a0321926a70359e29c33b2f04ac51
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/RestartDialogLayout.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2022 The Android Open Source 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.
+ */
+
+package com.android.wm.shell.compatui;
+
+import android.annotation.Nullable;
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.CheckBox;
+import android.widget.TextView;
+
+import androidx.constraintlayout.widget.ConstraintLayout;
+
+import com.android.wm.shell.R;
+
+import java.util.function.Consumer;
+
+/**
+ * Container for a SCM restart confirmation dialog and background dim.
+ */
+public class RestartDialogLayout extends ConstraintLayout implements DialogContainerSupplier {
+
+ private View mDialogContainer;
+ private TextView mDialogTitle;
+ private Drawable mBackgroundDim;
+
+ public RestartDialogLayout(Context context) {
+ this(context, null);
+ }
+
+ public RestartDialogLayout(Context context, AttributeSet attrs) {
+ this(context, attrs, 0);
+ }
+
+ public RestartDialogLayout(Context context, AttributeSet attrs, int defStyleAttr) {
+ this(context, attrs, defStyleAttr, 0);
+ }
+
+ public RestartDialogLayout(Context context, AttributeSet attrs, int defStyleAttr,
+ int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
+ @Override
+ public View getDialogContainerView() {
+ return mDialogContainer;
+ }
+
+ TextView getDialogTitle() {
+ return mDialogTitle;
+ }
+
+ @Override
+ public Drawable getBackgroundDimDrawable() {
+ return mBackgroundDim;
+ }
+
+ /**
+ * Register a callback for the dismiss button and background dim.
+ *
+ * @param callback The callback to register or null if all on click listeners should be removed.
+ */
+ void setDismissOnClickListener(@Nullable Runnable callback) {
+ final OnClickListener listener = callback == null ? null : view -> callback.run();
+ findViewById(R.id.letterbox_restart_dialog_dismiss_button).setOnClickListener(listener);
+ }
+
+ /**
+ * Register a callback for the restart button
+ *
+ * @param callback The callback to register or null if all on click listeners should be removed.
+ */
+ void setRestartOnClickListener(@Nullable Consumer callback) {
+ final CheckBox dontShowAgainCheckbox = findViewById(R.id.letterbox_restart_dialog_checkbox);
+ final OnClickListener listener = callback == null ? null : view -> callback.accept(
+ dontShowAgainCheckbox.isChecked());
+ findViewById(R.id.letterbox_restart_dialog_restart_button).setOnClickListener(listener);
+ }
+
+ @Override
+ protected void onFinishInflate() {
+ super.onFinishInflate();
+ mDialogContainer = findViewById(R.id.letterbox_restart_dialog_container);
+ mDialogTitle = findViewById(R.id.letterbox_restart_dialog_title);
+ mBackgroundDim = getBackground().mutate();
+ // Set the alpha of the background dim to 0 for enter animation.
+ mBackgroundDim.setAlpha(0);
+ // We add a no-op on-click listener to the dialog container so that clicks on it won't
+ // propagate to the listener of the layout (which represents the background dim).
+ mDialogContainer.setOnClickListener(view -> {});
+ }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/RestartDialogWindowManager.java b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/RestartDialogWindowManager.java
new file mode 100644
index 0000000000000000000000000000000000000000..aab123a843ea3472bdff5fc10ee17cc2046c9534
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/compatui/RestartDialogWindowManager.java
@@ -0,0 +1,264 @@
+/*
+ * Copyright (C) 2022 The Android Open Source 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.
+ */
+
+package com.android.wm.shell.compatui;
+
+import static android.provider.Settings.Secure.LAUNCHER_TASKBAR_EDUCATION_SHOWING;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.app.TaskInfo;
+import android.content.Context;
+import android.graphics.Rect;
+import android.provider.Settings;
+import android.util.Pair;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+import android.view.accessibility.AccessibilityEvent;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.wm.shell.R;
+import com.android.wm.shell.ShellTaskOrganizer;
+import com.android.wm.shell.common.DisplayLayout;
+import com.android.wm.shell.common.SyncTransactionQueue;
+import com.android.wm.shell.transition.Transitions;
+
+import java.util.function.Consumer;
+
+/**
+ * Window manager for the Restart Dialog.
+ *
+ * TODO(b/263484314): Create abstraction of RestartDialogWindowManager and LetterboxEduWindowManager
+ */
+class RestartDialogWindowManager extends CompatUIWindowManagerAbstract {
+
+ /**
+ * The restart dialog should be the topmost child of the Task in case there can be more
+ * than one child.
+ */
+ private static final int Z_ORDER = Integer.MAX_VALUE;
+
+ private final DialogAnimationController mAnimationController;
+
+ private final Transitions mTransitions;
+
+ // Remember the last reported state in case visibility changes due to keyguard or IME updates.
+ private boolean mRequestRestartDialog;
+
+ private final Consumer> mOnDismissCallback;
+
+ private final Consumer> mOnRestartCallback;
+
+ private final CompatUIConfiguration mCompatUIConfiguration;
+
+ /**
+ * The vertical margin between the dialog container and the task stable bounds (excluding
+ * insets).
+ */
+ private final int mDialogVerticalMargin;
+
+ @NonNull
+ private TaskInfo mTaskInfo;
+
+ @Nullable
+ @VisibleForTesting
+ RestartDialogLayout mLayout;
+
+ RestartDialogWindowManager(Context context, TaskInfo taskInfo,
+ SyncTransactionQueue syncQueue, ShellTaskOrganizer.TaskListener taskListener,
+ DisplayLayout displayLayout, Transitions transitions,
+ Consumer> onRestartCallback,
+ Consumer> onDismissCallback,
+ CompatUIConfiguration compatUIConfiguration) {
+ this(context, taskInfo, syncQueue, taskListener, displayLayout, transitions,
+ onRestartCallback, onDismissCallback,
+ new DialogAnimationController<>(context, "RestartDialogWindowManager"),
+ compatUIConfiguration);
+ }
+
+ @VisibleForTesting
+ RestartDialogWindowManager(Context context, TaskInfo taskInfo,
+ SyncTransactionQueue syncQueue, ShellTaskOrganizer.TaskListener taskListener,
+ DisplayLayout displayLayout, Transitions transitions,
+ Consumer> onRestartCallback,
+ Consumer> onDismissCallback,
+ DialogAnimationController animationController,
+ CompatUIConfiguration compatUIConfiguration) {
+ super(context, taskInfo, syncQueue, taskListener, displayLayout);
+ mTaskInfo = taskInfo;
+ mTransitions = transitions;
+ mOnDismissCallback = onDismissCallback;
+ mOnRestartCallback = onRestartCallback;
+ mAnimationController = animationController;
+ mDialogVerticalMargin = (int) mContext.getResources().getDimension(
+ R.dimen.letterbox_restart_dialog_margin);
+ mCompatUIConfiguration = compatUIConfiguration;
+ }
+
+ @Override
+ protected int getZOrder() {
+ return Z_ORDER;
+ }
+
+ @Override
+ @Nullable
+ protected View getLayout() {
+ return mLayout;
+ }
+
+ @Override
+ protected void removeLayout() {
+ mLayout = null;
+ }
+
+ @Override
+ protected boolean eligibleToShowLayout() {
+ // We don't show this dialog if the user has explicitly selected so clicking on a checkbox.
+ return mRequestRestartDialog && !isTaskbarEduShowing() && (mLayout != null
+ || mCompatUIConfiguration.shouldShowRestartDialogAgain(mTaskInfo));
+ }
+
+ @Override
+ protected View createLayout() {
+ mLayout = inflateLayout();
+ updateDialogMargins();
+
+ // startEnterAnimation will be called immediately if shell-transitions are disabled.
+ mTransitions.runOnIdle(this::startEnterAnimation);
+
+ return mLayout;
+ }
+
+ void setRequestRestartDialog(boolean enabled) {
+ mRequestRestartDialog = enabled;
+ }
+
+ @Override
+ public boolean updateCompatInfo(TaskInfo taskInfo, ShellTaskOrganizer.TaskListener taskListener,
+ boolean canShow) {
+ mTaskInfo = taskInfo;
+ return super.updateCompatInfo(taskInfo, taskListener, canShow);
+ }
+
+ boolean needsToBeRecreated(TaskInfo taskInfo, ShellTaskOrganizer.TaskListener taskListener) {
+ return taskInfo.configuration.uiMode != mTaskInfo.configuration.uiMode
+ || !getTaskListener().equals(taskListener);
+ }
+
+ private void updateDialogMargins() {
+ if (mLayout == null) {
+ return;
+ }
+ final View dialogContainer = mLayout.getDialogContainerView();
+ ViewGroup.MarginLayoutParams marginParams =
+ (ViewGroup.MarginLayoutParams) dialogContainer.getLayoutParams();
+
+ final Rect taskBounds = getTaskBounds();
+ final Rect taskStableBounds = getTaskStableBounds();
+
+ marginParams.topMargin = taskStableBounds.top - taskBounds.top + mDialogVerticalMargin;
+ marginParams.bottomMargin =
+ taskBounds.bottom - taskStableBounds.bottom + mDialogVerticalMargin;
+ dialogContainer.setLayoutParams(marginParams);
+ }
+
+ private RestartDialogLayout inflateLayout() {
+ return (RestartDialogLayout) LayoutInflater.from(mContext).inflate(
+ R.layout.letterbox_restart_dialog_layout, null);
+ }
+
+ private void startEnterAnimation() {
+ if (mLayout == null) {
+ // Dialog has already been released.
+ return;
+ }
+ mAnimationController.startEnterAnimation(mLayout, /* endCallback= */
+ this::onDialogEnterAnimationEnded);
+ }
+
+ private void onDialogEnterAnimationEnded() {
+ if (mLayout == null) {
+ // Dialog has already been released.
+ return;
+ }
+ mLayout.setDismissOnClickListener(this::onDismiss);
+ mLayout.setRestartOnClickListener(dontShowAgain -> {
+ if (mLayout != null) {
+ mLayout.setDismissOnClickListener(null);
+ mAnimationController.startExitAnimation(mLayout, () -> {
+ release();
+ });
+ }
+ if (dontShowAgain) {
+ mCompatUIConfiguration.setDontShowRestartDialogAgain(mTaskInfo);
+ }
+ mOnRestartCallback.accept(Pair.create(mTaskInfo, getTaskListener()));
+ });
+ // Focus on the dialog title for accessibility.
+ mLayout.getDialogTitle().sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
+ }
+
+ private void onDismiss() {
+ if (mLayout == null) {
+ return;
+ }
+
+ mLayout.setDismissOnClickListener(null);
+ mAnimationController.startExitAnimation(mLayout, () -> {
+ release();
+ mOnDismissCallback.accept(Pair.create(mTaskInfo, getTaskListener()));
+ });
+ }
+
+ @Override
+ public void release() {
+ mAnimationController.cancelAnimation();
+ super.release();
+ }
+
+ @Override
+ protected void onParentBoundsChanged() {
+ if (mLayout == null) {
+ return;
+ }
+ // Both the layout dimensions and dialog margins depend on the parent bounds.
+ WindowManager.LayoutParams windowLayoutParams = getWindowLayoutParams();
+ mLayout.setLayoutParams(windowLayoutParams);
+ updateDialogMargins();
+ relayout(windowLayoutParams);
+ }
+
+ @Override
+ protected void updateSurfacePosition() {
+ // Nothing to do, since the position of the surface is fixed to the top left corner (0,0)
+ // of the task (parent surface), which is the default position of a surface.
+ }
+
+ @Override
+ protected WindowManager.LayoutParams getWindowLayoutParams() {
+ final Rect taskBounds = getTaskBounds();
+ return getWindowLayoutParams(/* width= */ taskBounds.width(), /* height= */
+ taskBounds.height());
+ }
+
+ @VisibleForTesting
+ boolean isTaskbarEduShowing() {
+ return Settings.Secure.getInt(mContext.getContentResolver(),
+ LAUNCHER_TASKBAR_EDUCATION_SHOWING, /* def= */ 0) == 1;
+ }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/TvPipModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/TvPipModule.java
index 8022e9b1cd810db9b8e11f86760d34b6927df26e..b0756a0afe5dc72180813c4ad1b8da25e8cd1122 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/TvPipModule.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/TvPipModule.java
@@ -39,6 +39,7 @@ import com.android.wm.shell.pip.PipTaskOrganizer;
import com.android.wm.shell.pip.PipTransitionController;
import com.android.wm.shell.pip.PipTransitionState;
import com.android.wm.shell.pip.PipUiEventLogger;
+import com.android.wm.shell.pip.phone.PipSizeSpecHandler;
import com.android.wm.shell.pip.tv.TvPipBoundsAlgorithm;
import com.android.wm.shell.pip.tv.TvPipBoundsController;
import com.android.wm.shell.pip.tv.TvPipBoundsState;
@@ -69,6 +70,7 @@ public abstract class TvPipModule {
ShellInit shellInit,
ShellController shellController,
TvPipBoundsState tvPipBoundsState,
+ PipSizeSpecHandler pipSizeSpecHandler,
TvPipBoundsAlgorithm tvPipBoundsAlgorithm,
TvPipBoundsController tvPipBoundsController,
PipAppOpsListener pipAppOpsListener,
@@ -88,6 +90,7 @@ public abstract class TvPipModule {
shellInit,
shellController,
tvPipBoundsState,
+ pipSizeSpecHandler,
tvPipBoundsAlgorithm,
tvPipBoundsController,
pipAppOpsListener,
@@ -127,14 +130,23 @@ public abstract class TvPipModule {
@WMSingleton
@Provides
static TvPipBoundsAlgorithm provideTvPipBoundsAlgorithm(Context context,
- TvPipBoundsState tvPipBoundsState, PipSnapAlgorithm pipSnapAlgorithm) {
- return new TvPipBoundsAlgorithm(context, tvPipBoundsState, pipSnapAlgorithm);
+ TvPipBoundsState tvPipBoundsState, PipSnapAlgorithm pipSnapAlgorithm,
+ PipSizeSpecHandler pipSizeSpecHandler) {
+ return new TvPipBoundsAlgorithm(context, tvPipBoundsState, pipSnapAlgorithm,
+ pipSizeSpecHandler);
}
@WMSingleton
@Provides
- static TvPipBoundsState provideTvPipBoundsState(Context context) {
- return new TvPipBoundsState(context);
+ static TvPipBoundsState provideTvPipBoundsState(Context context,
+ PipSizeSpecHandler pipSizeSpecHandler) {
+ return new TvPipBoundsState(context, pipSizeSpecHandler);
+ }
+
+ @WMSingleton
+ @Provides
+ static PipSizeSpecHandler providePipSizeSpecHelper(Context context) {
+ return new PipSizeSpecHandler(context);
}
// Handler needed for loadDrawableAsync() in PipControlsViewController
@@ -194,6 +206,7 @@ public abstract class TvPipModule {
TvPipMenuController tvPipMenuController,
SyncTransactionQueue syncTransactionQueue,
TvPipBoundsState tvPipBoundsState,
+ PipSizeSpecHandler pipSizeSpecHandler,
PipTransitionState pipTransitionState,
TvPipBoundsAlgorithm tvPipBoundsAlgorithm,
PipAnimationController pipAnimationController,
@@ -205,10 +218,11 @@ public abstract class TvPipModule {
PipUiEventLogger pipUiEventLogger, ShellTaskOrganizer shellTaskOrganizer,
@ShellMainThread ShellExecutor mainExecutor) {
return new TvPipTaskOrganizer(context,
- syncTransactionQueue, pipTransitionState, tvPipBoundsState, tvPipBoundsAlgorithm,
- tvPipMenuController, pipAnimationController, pipSurfaceTransactionHelper,
- pipTransitionController, pipParamsChangedForwarder, splitScreenControllerOptional,
- displayController, pipUiEventLogger, shellTaskOrganizer, mainExecutor);
+ syncTransactionQueue, pipTransitionState, tvPipBoundsState, pipSizeSpecHandler,
+ tvPipBoundsAlgorithm, tvPipMenuController, pipAnimationController,
+ pipSurfaceTransactionHelper, pipTransitionController, pipParamsChangedForwarder,
+ splitScreenControllerOptional, displayController, pipUiEventLogger,
+ shellTaskOrganizer, mainExecutor);
}
@WMSingleton
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java
index 09f5cf1d31e48abea42645edc95486b5f36a420e..ef21c7e9ec0c21caae9faeef082a482ad64aaaf9 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java
@@ -41,6 +41,7 @@ import com.android.wm.shell.back.BackAnimation;
import com.android.wm.shell.back.BackAnimationController;
import com.android.wm.shell.bubbles.BubbleController;
import com.android.wm.shell.bubbles.Bubbles;
+import com.android.wm.shell.common.DevicePostureController;
import com.android.wm.shell.common.DisplayController;
import com.android.wm.shell.common.DisplayImeController;
import com.android.wm.shell.common.DisplayInsetsController;
@@ -50,13 +51,16 @@ import com.android.wm.shell.common.FloatingContentCoordinator;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.SyncTransactionQueue;
import com.android.wm.shell.common.SystemWindows;
+import com.android.wm.shell.common.TabletopModeController;
import com.android.wm.shell.common.TaskStackListenerImpl;
import com.android.wm.shell.common.TransactionPool;
import com.android.wm.shell.common.annotations.ShellAnimationThread;
import com.android.wm.shell.common.annotations.ShellBackgroundThread;
import com.android.wm.shell.common.annotations.ShellMainThread;
import com.android.wm.shell.common.annotations.ShellSplashscreenThread;
+import com.android.wm.shell.compatui.CompatUIConfiguration;
import com.android.wm.shell.compatui.CompatUIController;
+import com.android.wm.shell.compatui.CompatUIShellCommandHandler;
import com.android.wm.shell.desktopmode.DesktopMode;
import com.android.wm.shell.desktopmode.DesktopModeController;
import com.android.wm.shell.desktopmode.DesktopModeStatus;
@@ -156,6 +160,28 @@ public abstract class WMShellBaseModule {
return new DisplayLayout();
}
+ @WMSingleton
+ @Provides
+ static DevicePostureController provideDevicePostureController(
+ Context context,
+ ShellInit shellInit,
+ @ShellMainThread ShellExecutor mainExecutor
+ ) {
+ return new DevicePostureController(context, shellInit, mainExecutor);
+ }
+
+ @WMSingleton
+ @Provides
+ static TabletopModeController provideTabletopModeController(
+ Context context,
+ ShellInit shellInit,
+ DevicePostureController postureController,
+ DisplayController displayController,
+ @ShellMainThread ShellExecutor mainExecutor) {
+ return new TabletopModeController(
+ context, shellInit, postureController, displayController, mainExecutor);
+ }
+
@WMSingleton
@Provides
static DragAndDropController provideDragAndDropController(Context context,
@@ -196,10 +222,11 @@ public abstract class WMShellBaseModule {
DisplayController displayController, DisplayInsetsController displayInsetsController,
DisplayImeController imeController, SyncTransactionQueue syncQueue,
@ShellMainThread ShellExecutor mainExecutor, Lazy transitionsLazy,
- DockStateReader dockStateReader) {
+ DockStateReader dockStateReader, CompatUIConfiguration compatUIConfiguration,
+ CompatUIShellCommandHandler compatUIShellCommandHandler) {
return new CompatUIController(context, shellInit, shellController, displayController,
displayInsetsController, imeController, syncQueue, mainExecutor, transitionsLazy,
- dockStateReader);
+ dockStateReader, compatUIConfiguration, compatUIShellCommandHandler);
}
@WMSingleton
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
index d3b9fa5e628d69d78a3c333dd7d6c60f8c41e058..8f1e074ec1834eae4bc314a6acac96f22022801f 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java
@@ -44,11 +44,13 @@ import com.android.wm.shell.common.FloatingContentCoordinator;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.SyncTransactionQueue;
import com.android.wm.shell.common.SystemWindows;
+import com.android.wm.shell.common.TabletopModeController;
import com.android.wm.shell.common.TaskStackListenerImpl;
import com.android.wm.shell.common.TransactionPool;
import com.android.wm.shell.common.annotations.ShellBackgroundThread;
import com.android.wm.shell.common.annotations.ShellMainThread;
import com.android.wm.shell.desktopmode.DesktopModeController;
+import com.android.wm.shell.desktopmode.DesktopModeStatus;
import com.android.wm.shell.desktopmode.DesktopModeTaskRepository;
import com.android.wm.shell.desktopmode.DesktopTasksController;
import com.android.wm.shell.draganddrop.DragAndDropController;
@@ -76,6 +78,7 @@ import com.android.wm.shell.pip.phone.PhonePipKeepClearAlgorithm;
import com.android.wm.shell.pip.phone.PhonePipMenuController;
import com.android.wm.shell.pip.phone.PipController;
import com.android.wm.shell.pip.phone.PipMotionHelper;
+import com.android.wm.shell.pip.phone.PipSizeSpecHandler;
import com.android.wm.shell.pip.phone.PipTouchHandler;
import com.android.wm.shell.recents.RecentTasksController;
import com.android.wm.shell.splitscreen.SplitScreenController;
@@ -93,6 +96,7 @@ import com.android.wm.shell.unfold.animation.SplitTaskUnfoldAnimator;
import com.android.wm.shell.unfold.animation.UnfoldTaskAnimator;
import com.android.wm.shell.unfold.qualifier.UnfoldShellTransition;
import com.android.wm.shell.unfold.qualifier.UnfoldTransition;
+import com.android.wm.shell.windowdecor.CaptionWindowDecorViewModel;
import com.android.wm.shell.windowdecor.DesktopModeWindowDecorViewModel;
import com.android.wm.shell.windowdecor.WindowDecorViewModel;
@@ -191,8 +195,10 @@ public abstract class WMShellModule {
DisplayController displayController,
SyncTransactionQueue syncQueue,
Optional desktopModeController,
- Optional desktopTasksController) {
- return new DesktopModeWindowDecorViewModel(
+ Optional desktopTasksController,
+ Optional splitScreenController) {
+ if (DesktopModeStatus.isAnyEnabled()) {
+ return new DesktopModeWindowDecorViewModel(
context,
mainHandler,
mainChoreographer,
@@ -200,7 +206,16 @@ public abstract class WMShellModule {
displayController,
syncQueue,
desktopModeController,
- desktopTasksController);
+ desktopTasksController,
+ splitScreenController);
+ }
+ return new CaptionWindowDecorViewModel(
+ context,
+ mainHandler,
+ mainChoreographer,
+ taskOrganizer,
+ displayController,
+ syncQueue);
}
//
@@ -327,6 +342,7 @@ public abstract class WMShellModule {
PipBoundsAlgorithm pipBoundsAlgorithm,
PhonePipKeepClearAlgorithm pipKeepClearAlgorithm,
PipBoundsState pipBoundsState,
+ PipSizeSpecHandler pipSizeSpecHandler,
PipMotionHelper pipMotionHelper,
PipMediaController pipMediaController,
PhonePipMenuController phonePipMenuController,
@@ -338,22 +354,24 @@ public abstract class WMShellModule {
TaskStackListenerImpl taskStackListener,
PipParamsChangedForwarder pipParamsChangedForwarder,
DisplayInsetsController displayInsetsController,
+ TabletopModeController pipTabletopController,
Optional oneHandedController,
@ShellMainThread ShellExecutor mainExecutor) {
return Optional.ofNullable(PipController.create(
context, shellInit, shellCommandHandler, shellController,
displayController, pipAnimationController, pipAppOpsListener, pipBoundsAlgorithm,
- pipKeepClearAlgorithm, pipBoundsState, pipMotionHelper, pipMediaController,
- phonePipMenuController, pipTaskOrganizer, pipTransitionState, pipTouchHandler,
- pipTransitionController, windowManagerShellWrapper, taskStackListener,
- pipParamsChangedForwarder, displayInsetsController, oneHandedController,
- mainExecutor));
+ pipKeepClearAlgorithm, pipBoundsState, pipSizeSpecHandler, pipMotionHelper,
+ pipMediaController, phonePipMenuController, pipTaskOrganizer, pipTransitionState,
+ pipTouchHandler, pipTransitionController, windowManagerShellWrapper,
+ taskStackListener, pipParamsChangedForwarder, displayInsetsController,
+ pipTabletopController, oneHandedController, mainExecutor));
}
@WMSingleton
@Provides
- static PipBoundsState providePipBoundsState(Context context) {
- return new PipBoundsState(context);
+ static PipBoundsState providePipBoundsState(Context context,
+ PipSizeSpecHandler pipSizeSpecHandler) {
+ return new PipBoundsState(context, pipSizeSpecHandler);
}
@WMSingleton
@@ -368,13 +386,20 @@ public abstract class WMShellModule {
return new PhonePipKeepClearAlgorithm(context);
}
+ @WMSingleton
+ @Provides
+ static PipSizeSpecHandler providePipSizeSpecHelper(Context context) {
+ return new PipSizeSpecHandler(context);
+ }
+
@WMSingleton
@Provides
static PipBoundsAlgorithm providesPipBoundsAlgorithm(Context context,
PipBoundsState pipBoundsState, PipSnapAlgorithm pipSnapAlgorithm,
- PhonePipKeepClearAlgorithm pipKeepClearAlgorithm) {
+ PhonePipKeepClearAlgorithm pipKeepClearAlgorithm,
+ PipSizeSpecHandler pipSizeSpecHandler) {
return new PipBoundsAlgorithm(context, pipBoundsState, pipSnapAlgorithm,
- pipKeepClearAlgorithm);
+ pipKeepClearAlgorithm, pipSizeSpecHandler);
}
// Handler is used by Icon.loadDrawableAsync
@@ -398,13 +423,14 @@ public abstract class WMShellModule {
PhonePipMenuController menuPhoneController,
PipBoundsAlgorithm pipBoundsAlgorithm,
PipBoundsState pipBoundsState,
+ PipSizeSpecHandler pipSizeSpecHandler,
PipTaskOrganizer pipTaskOrganizer,
PipMotionHelper pipMotionHelper,
FloatingContentCoordinator floatingContentCoordinator,
PipUiEventLogger pipUiEventLogger,
@ShellMainThread ShellExecutor mainExecutor) {
return new PipTouchHandler(context, shellInit, menuPhoneController, pipBoundsAlgorithm,
- pipBoundsState, pipTaskOrganizer, pipMotionHelper,
+ pipBoundsState, pipSizeSpecHandler, pipTaskOrganizer, pipMotionHelper,
floatingContentCoordinator, pipUiEventLogger, mainExecutor);
}
@@ -420,6 +446,7 @@ public abstract class WMShellModule {
SyncTransactionQueue syncTransactionQueue,
PipTransitionState pipTransitionState,
PipBoundsState pipBoundsState,
+ PipSizeSpecHandler pipSizeSpecHandler,
PipBoundsAlgorithm pipBoundsAlgorithm,
PhonePipMenuController menuPhoneController,
PipAnimationController pipAnimationController,
@@ -431,10 +458,11 @@ public abstract class WMShellModule {
PipUiEventLogger pipUiEventLogger, ShellTaskOrganizer shellTaskOrganizer,
@ShellMainThread ShellExecutor mainExecutor) {
return new PipTaskOrganizer(context,
- syncTransactionQueue, pipTransitionState, pipBoundsState, pipBoundsAlgorithm,
- menuPhoneController, pipAnimationController, pipSurfaceTransactionHelper,
- pipTransitionController, pipParamsChangedForwarder, splitScreenControllerOptional,
- displayController, pipUiEventLogger, shellTaskOrganizer, mainExecutor);
+ syncTransactionQueue, pipTransitionState, pipBoundsState, pipSizeSpecHandler,
+ pipBoundsAlgorithm, menuPhoneController, pipAnimationController,
+ pipSurfaceTransactionHelper, pipTransitionController, pipParamsChangedForwarder,
+ splitScreenControllerOptional, displayController, pipUiEventLogger,
+ shellTaskOrganizer, mainExecutor);
}
@WMSingleton
@@ -449,13 +477,14 @@ public abstract class WMShellModule {
static PipTransitionController providePipTransitionController(Context context,
ShellInit shellInit, ShellTaskOrganizer shellTaskOrganizer, Transitions transitions,
PipAnimationController pipAnimationController, PipBoundsAlgorithm pipBoundsAlgorithm,
- PipBoundsState pipBoundsState, PipTransitionState pipTransitionState,
- PhonePipMenuController pipMenuController,
+ PipBoundsState pipBoundsState, PipSizeSpecHandler pipSizeSpecHandler,
+ PipTransitionState pipTransitionState, PhonePipMenuController pipMenuController,
PipSurfaceTransactionHelper pipSurfaceTransactionHelper,
Optional splitScreenOptional) {
return new PipTransition(context, shellInit, shellTaskOrganizer, transitions,
- pipBoundsState, pipTransitionState, pipMenuController, pipBoundsAlgorithm,
- pipAnimationController, pipSurfaceTransactionHelper, splitScreenOptional);
+ pipBoundsState, pipSizeSpecHandler, pipTransitionState, pipMenuController,
+ pipBoundsAlgorithm, pipAnimationController, pipSurfaceTransactionHelper,
+ splitScreenOptional);
}
@WMSingleton
@@ -533,16 +562,18 @@ public abstract class WMShellModule {
static FullscreenUnfoldTaskAnimator provideFullscreenUnfoldTaskAnimator(
Context context,
UnfoldBackgroundController unfoldBackgroundController,
+ ShellController shellController,
DisplayInsetsController displayInsetsController
) {
return new FullscreenUnfoldTaskAnimator(context, unfoldBackgroundController,
- displayInsetsController);
+ shellController, displayInsetsController);
}
@Provides
static SplitTaskUnfoldAnimator provideSplitTaskUnfoldAnimatorBase(
Context context,
UnfoldBackgroundController backgroundController,
+ ShellController shellController,
@ShellMainThread ShellExecutor executor,
Lazy> splitScreenOptional,
DisplayInsetsController displayInsetsController
@@ -552,7 +583,7 @@ public abstract class WMShellModule {
// controller directly once we refactor ShellTaskOrganizer to not depend on the unfold
// animation controller directly.
return new SplitTaskUnfoldAnimator(context, executor, splitScreenOptional,
- backgroundController, displayInsetsController);
+ shellController, backgroundController, displayInsetsController);
}
@WMSingleton
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java
index f5f3573252ec3f2f56f56b98108845e9992231ca..bc8171058776d22ec4f7b1629d75c84219c0978f 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeController.java
@@ -22,6 +22,7 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
import static android.view.WindowManager.TRANSIT_CHANGE;
+import static android.view.WindowManager.TRANSIT_NONE;
import static android.view.WindowManager.TRANSIT_OPEN;
import static android.view.WindowManager.TRANSIT_TO_FRONT;
@@ -36,6 +37,7 @@ import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
import android.os.IBinder;
+import android.os.RemoteException;
import android.os.UserHandle;
import android.provider.Settings;
import android.util.ArraySet;
@@ -251,18 +253,26 @@ public class DesktopModeController implements RemoteCallable activeTasks = mDesktopModeTaskRepository.getActiveTasks();
ProtoLog.d(WM_SHELL_DESKTOP_MODE, "bringDesktopAppsToFront: tasks=%s", activeTasks.size());
@@ -275,16 +285,11 @@ public class DesktopModeController implements RemoteCallable mDesktopModeTaskRepository.isVisibleTask(info.taskId));
- if (allActiveTasksAreVisible) {
- ProtoLog.d(WM_SHELL_DESKTOP_MODE,
- "bringDesktopAppsToFront: active tasks are already in front, skipping.");
- return wct;
- }
+ moveHomeTaskToFront(wct);
+
ProtoLog.d(WM_SHELL_DESKTOP_MODE,
"bringDesktopAppsToFront: reordering all active tasks to the front");
final List allTasksInZOrder =
@@ -295,7 +300,15 @@ public class DesktopModeController implements RemoteCallable result[0] = controller.getVisibleTaskCount(),
+ true /* blocking */
+ );
+ return result[0];
+ }
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepository.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepository.kt
index 600ccc17ecaaf7a0b444c95e382b1e8e439b3b4d..47342c9f21ee6d04a9ae2e5c0000ce9589d1cb91 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepository.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeTaskRepository.kt
@@ -142,6 +142,13 @@ class DesktopModeTaskRepository {
}
}
+ /**
+ * Get number of tasks that are marked as visible
+ */
+ fun getVisibleTaskCount(): Int {
+ return visibleTasks.size
+ }
+
/**
* Add (or move if it already exists) the task to the top of the ordered list.
*/
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
index 3341470efe4df081fe482d1d8fe810b4c467f8a4..31c5e33f21e32f605f0963c182401e20db17c534 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt
@@ -25,12 +25,15 @@ import android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED
import android.app.WindowConfiguration.WindowingMode
import android.content.Context
import android.os.IBinder
+import android.os.SystemProperties
import android.view.SurfaceControl
import android.view.WindowManager.TRANSIT_CHANGE
+import android.view.WindowManager.TRANSIT_NONE
import android.view.WindowManager.TRANSIT_OPEN
import android.view.WindowManager.TRANSIT_TO_FRONT
import android.window.TransitionInfo
import android.window.TransitionRequestInfo
+import android.window.WindowContainerToken
import android.window.WindowContainerTransaction
import androidx.annotation.BinderThread
import com.android.internal.protolog.common.ProtoLog
@@ -84,19 +87,24 @@ class DesktopTasksController(
fun showDesktopApps() {
ProtoLog.v(WM_SHELL_DESKTOP_MODE, "showDesktopApps")
val wct = WindowContainerTransaction()
-
bringDesktopAppsToFront(wct)
// Execute transaction if there are pending operations
if (!wct.isEmpty) {
if (Transitions.ENABLE_SHELL_TRANSITIONS) {
- transitions.startTransition(TRANSIT_TO_FRONT, wct, null /* handler */)
+ // TODO(b/268662477): add animation for the transition
+ transitions.startTransition(TRANSIT_NONE, wct, null /* handler */)
} else {
shellTaskOrganizer.applyTransaction(wct)
}
}
}
+ /** Get number of tasks that are marked as visible */
+ fun getVisibleTaskCount(): Int {
+ return desktopModeTaskRepository.getVisibleTaskCount()
+ }
+
/** Move a task with given `taskId` to desktop */
fun moveToDesktop(taskId: Int) {
shellTaskOrganizer.getRunningTaskInfo(taskId)?.let { task -> moveToDesktop(task) }
@@ -109,10 +117,7 @@ class DesktopTasksController(
val wct = WindowContainerTransaction()
// Bring other apps to front first
bringDesktopAppsToFront(wct)
-
- wct.setWindowingMode(task.getToken(), WINDOWING_MODE_FREEFORM)
- wct.reorder(task.getToken(), true /* onTop */)
-
+ addMoveToDesktopChanges(wct, task.token)
if (Transitions.ENABLE_SHELL_TRANSITIONS) {
transitions.startTransition(TRANSIT_CHANGE, wct, null /* handler */)
} else {
@@ -130,8 +135,7 @@ class DesktopTasksController(
ProtoLog.v(WM_SHELL_DESKTOP_MODE, "moveToFullscreen: %d", task.taskId)
val wct = WindowContainerTransaction()
- wct.setWindowingMode(task.getToken(), WINDOWING_MODE_FULLSCREEN)
- wct.setBounds(task.getToken(), null)
+ addMoveToFullscreenChanges(wct, task.token)
if (Transitions.ENABLE_SHELL_TRANSITIONS) {
transitions.startTransition(TRANSIT_CHANGE, wct, null /* handler */)
} else {
@@ -151,18 +155,8 @@ class DesktopTasksController(
}
private fun bringDesktopAppsToFront(wct: WindowContainerTransaction) {
- val activeTasks = desktopModeTaskRepository.getActiveTasks()
-
- // Skip if all tasks are already visible
- if (activeTasks.isNotEmpty() && activeTasks.all(desktopModeTaskRepository::isVisibleTask)) {
- ProtoLog.d(
- WM_SHELL_DESKTOP_MODE,
- "bringDesktopAppsToFront: active tasks are already in front, skipping."
- )
- return
- }
-
ProtoLog.v(WM_SHELL_DESKTOP_MODE, "bringDesktopAppsToFront")
+ val activeTasks = desktopModeTaskRepository.getActiveTasks()
// First move home to front and then other tasks on top of it
moveHomeTaskToFront(wct)
@@ -238,8 +232,8 @@ class DesktopTasksController(
" taskId=%d",
task.taskId
)
- return WindowContainerTransaction().apply {
- setWindowingMode(task.token, WINDOWING_MODE_FREEFORM)
+ return WindowContainerTransaction().also { wct ->
+ addMoveToDesktopChanges(wct, task.token)
}
}
}
@@ -255,15 +249,44 @@ class DesktopTasksController(
" taskId=%d",
task.taskId
)
- return WindowContainerTransaction().apply {
- setWindowingMode(task.token, WINDOWING_MODE_FULLSCREEN)
- setBounds(task.token, null)
+ return WindowContainerTransaction().also { wct ->
+ addMoveToFullscreenChanges(wct, task.token)
}
}
}
return null
}
+ private fun addMoveToDesktopChanges(
+ wct: WindowContainerTransaction,
+ token: WindowContainerToken
+ ) {
+ wct.setWindowingMode(token, WINDOWING_MODE_FREEFORM)
+ wct.reorder(token, true /* onTop */)
+ if (isDesktopDensityOverrideSet()) {
+ wct.setDensityDpi(token, getDesktopDensityDpi())
+ }
+ }
+
+ private fun addMoveToFullscreenChanges(
+ wct: WindowContainerTransaction,
+ token: WindowContainerToken
+ ) {
+ wct.setWindowingMode(token, WINDOWING_MODE_FULLSCREEN)
+ wct.setBounds(token, null)
+ if (isDesktopDensityOverrideSet()) {
+ wct.setDensityDpi(token, getFullscreenDensityDpi())
+ }
+ }
+
+ private fun getFullscreenDensityDpi(): Int {
+ return context.resources.displayMetrics.densityDpi
+ }
+
+ private fun getDesktopDensityDpi(): Int {
+ return DESKTOP_DENSITY_OVERRIDE
+ }
+
/** Creates a new instance of the external interface to pass to another process. */
private fun createExternalInterface(): ExternalInterfaceBinder {
return IDesktopModeImpl(this)
@@ -310,5 +333,30 @@ class DesktopTasksController(
Consumer(DesktopTasksController::showDesktopApps)
)
}
+
+ override fun getVisibleTaskCount(): Int {
+ val result = IntArray(1)
+ ExecutorUtils.executeRemoteCallWithTaskPermission(
+ controller,
+ "getVisibleTaskCount",
+ { controller -> result[0] = controller.getVisibleTaskCount() },
+ true /* blocking */
+ )
+ return result[0]
+ }
+ }
+
+ companion object {
+ private val DESKTOP_DENSITY_OVERRIDE =
+ SystemProperties.getInt("persist.wm.debug.desktop_mode_density", 0)
+ private val DESKTOP_DENSITY_ALLOWED_RANGE = (100..1000)
+
+ /**
+ * Check if desktop density override is enabled
+ */
+ @JvmStatic
+ fun isDesktopDensityOverrideSet(): Boolean {
+ return DESKTOP_DENSITY_OVERRIDE in DESKTOP_DENSITY_ALLOWED_RANGE
+ }
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/IDesktopMode.aidl b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/IDesktopMode.aidl
index 5042bd6f2d6596f74fb2b1bc99162d2f60e850ea..d0739e14675fbbfc874e70d67187912f897b934d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/IDesktopMode.aidl
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/IDesktopMode.aidl
@@ -23,4 +23,7 @@ interface IDesktopMode {
/** Show apps on the desktop */
void showDesktopApps();
+
+ /** Get count of visible desktop tasks */
+ int getVisibleTaskCount();
}
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragAndDropConstants.java b/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragAndDropConstants.java
new file mode 100644
index 0000000000000000000000000000000000000000..20da54efd286ecfd2f32cd1f1a9ca42d098d3a92
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragAndDropConstants.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.wm.shell.draganddrop;
+
+/** Constants that can be used by both Shell and other users of the library, e.g. Launcher */
+public class DragAndDropConstants {
+
+ /**
+ * An Intent extra that Launcher can use to specify a region of the screen where Shell should
+ * ignore drag events.
+ */
+ public static final String EXTRA_DISALLOW_HIT_REGION = "DISALLOW_HIT_REGION";
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragAndDropController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragAndDropController.java
index b59fe1818780e345ed0dfb850e56d8e7b3bc7ec8..4cfaae6e51c727b8c6b8f7949bae813cdd325dda 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragAndDropController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragAndDropController.java
@@ -36,6 +36,7 @@ import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_SHOW_FOR_ALL_U
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
import android.content.ClipDescription;
+import android.content.ComponentCallbacks2;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.PixelFormat;
@@ -58,9 +59,9 @@ import com.android.launcher3.icons.IconProvider;
import com.android.wm.shell.R;
import com.android.wm.shell.common.DisplayController;
import com.android.wm.shell.common.ShellExecutor;
+import com.android.wm.shell.common.annotations.ExternalMainThread;
import com.android.wm.shell.protolog.ShellProtoLogGroup;
import com.android.wm.shell.splitscreen.SplitScreenController;
-import com.android.wm.shell.sysui.ConfigurationChangeListener;
import com.android.wm.shell.sysui.ShellController;
import com.android.wm.shell.sysui.ShellInit;
@@ -70,7 +71,7 @@ import java.util.ArrayList;
* Handles the global drag and drop handling for the Shell.
*/
public class DragAndDropController implements DisplayController.OnDisplaysChangedListener,
- View.OnDragListener, ConfigurationChangeListener {
+ View.OnDragListener, ComponentCallbacks2 {
private static final String TAG = DragAndDropController.class.getSimpleName();
@@ -119,7 +120,6 @@ public class DragAndDropController implements DisplayController.OnDisplaysChange
mMainExecutor.executeDelayed(() -> {
mDisplayController.addDisplayWindowListener(this);
}, 0);
- mShellController.addConfigurationChangeListener(this);
}
/**
@@ -180,6 +180,7 @@ public class DragAndDropController implements DisplayController.OnDisplaysChange
try {
wm.addView(rootView, layoutParams);
addDisplayDropTarget(displayId, context, wm, rootView, dragLayout);
+ context.registerComponentCallbacks(this);
} catch (WindowManager.InvalidDisplayException e) {
Slog.w(TAG, "Unable to add view for display id: " + displayId);
}
@@ -209,6 +210,7 @@ public class DragAndDropController implements DisplayController.OnDisplaysChange
if (pd == null) {
return;
}
+ pd.context.unregisterComponentCallbacks(this);
pd.wm.removeViewImmediate(pd.rootView);
mDisplayDropTargets.remove(displayId);
}
@@ -328,18 +330,29 @@ public class DragAndDropController implements DisplayController.OnDisplaysChange
return mimeTypes;
}
+ // Note: Component callbacks are always called on the main thread of the process
+ @ExternalMainThread
@Override
- public void onThemeChanged() {
- for (int i = 0; i < mDisplayDropTargets.size(); i++) {
- mDisplayDropTargets.get(i).dragLayout.onThemeChange();
- }
+ public void onConfigurationChanged(Configuration newConfig) {
+ mMainExecutor.execute(() -> {
+ for (int i = 0; i < mDisplayDropTargets.size(); i++) {
+ mDisplayDropTargets.get(i).dragLayout.onConfigChanged(newConfig);
+ }
+ });
}
+ // Note: Component callbacks are always called on the main thread of the process
+ @ExternalMainThread
@Override
- public void onConfigurationChanged(Configuration newConfig) {
- for (int i = 0; i < mDisplayDropTargets.size(); i++) {
- mDisplayDropTargets.get(i).dragLayout.onConfigChanged(newConfig);
- }
+ public void onTrimMemory(int level) {
+ // Do nothing
+ }
+
+ // Note: Component callbacks are always called on the main thread of the process
+ @ExternalMainThread
+ @Override
+ public void onLowMemory() {
+ // Do nothing
}
private static class PerDisplay {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragAndDropPolicy.java b/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragAndDropPolicy.java
index d93a9012c8f1e8f7cef498da2831fea2033ac5e9..df94b414c092bf9390bf836d78debcb9a04b8b1c 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragAndDropPolicy.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragAndDropPolicy.java
@@ -34,6 +34,7 @@ import static android.content.Intent.EXTRA_USER;
import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_BOTTOM_OR_RIGHT;
import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_TOP_OR_LEFT;
import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_UNDEFINED;
+import static com.android.wm.shell.draganddrop.DragAndDropConstants.EXTRA_DISALLOW_HIT_REGION;
import static com.android.wm.shell.draganddrop.DragAndDropPolicy.Target.TYPE_FULLSCREEN;
import static com.android.wm.shell.draganddrop.DragAndDropPolicy.Target.TYPE_SPLIT_BOTTOM;
import static com.android.wm.shell.draganddrop.DragAndDropPolicy.Target.TYPE_SPLIT_LEFT;
@@ -53,6 +54,7 @@ import android.content.pm.ActivityInfo;
import android.content.pm.LauncherApps;
import android.graphics.Insets;
import android.graphics.Rect;
+import android.graphics.RectF;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.UserHandle;
@@ -86,6 +88,7 @@ public class DragAndDropPolicy {
private final Starter mStarter;
private final SplitScreenController mSplitScreen;
private final ArrayList mTargets = new ArrayList<>();
+ private final RectF mDisallowHitRegion = new RectF();
private InstanceId mLoggerSessionId;
private DragSession mSession;
@@ -111,6 +114,12 @@ public class DragAndDropPolicy {
mSession = new DragSession(mActivityTaskManager, displayLayout, data);
// TODO(b/169894807): Also update the session data with task stack changes
mSession.update();
+ RectF disallowHitRegion = (RectF) mSession.dragData.getExtra(EXTRA_DISALLOW_HIT_REGION);
+ if (disallowHitRegion == null) {
+ mDisallowHitRegion.setEmpty();
+ } else {
+ mDisallowHitRegion.set(disallowHitRegion);
+ }
}
/**
@@ -218,6 +227,9 @@ public class DragAndDropPolicy {
*/
@Nullable
Target getTargetAtLocation(int x, int y) {
+ if (mDisallowHitRegion.contains(x, y)) {
+ return null;
+ }
for (int i = mTargets.size() - 1; i >= 0; i--) {
DragAndDropPolicy.Target t = mTargets.get(i);
if (t.hitRegion.contains(x, y)) {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragLayout.java b/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragLayout.java
index 55378a826385d50c846322cd8ee172c014ef66da..fe42822ab6a1acc65bd05d310cc7613527202310 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragLayout.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/draganddrop/DragLayout.java
@@ -18,10 +18,16 @@ package com.android.wm.shell.draganddrop;
import static android.app.StatusBarManager.DISABLE_NONE;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
+import static android.content.pm.ActivityInfo.CONFIG_ASSETS_PATHS;
+import static android.content.pm.ActivityInfo.CONFIG_UI_MODE;
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_BOTTOM_OR_RIGHT;
import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_TOP_OR_LEFT;
+import static com.android.wm.shell.draganddrop.DragAndDropPolicy.Target.TYPE_SPLIT_BOTTOM;
+import static com.android.wm.shell.draganddrop.DragAndDropPolicy.Target.TYPE_SPLIT_LEFT;
+import static com.android.wm.shell.draganddrop.DragAndDropPolicy.Target.TYPE_SPLIT_RIGHT;
+import static com.android.wm.shell.draganddrop.DragAndDropPolicy.Target.TYPE_SPLIT_TOP;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
@@ -68,6 +74,7 @@ public class DragLayout extends LinearLayout {
private final SplitScreenController mSplitScreenController;
private final IconProvider mIconProvider;
private final StatusBarManager mStatusBarManager;
+ private final Configuration mLastConfiguration = new Configuration();
private DragAndDropPolicy.Target mCurrentTarget = null;
private DropZoneView mDropZoneView1;
@@ -88,6 +95,7 @@ public class DragLayout extends LinearLayout {
mIconProvider = iconProvider;
mPolicy = new DragAndDropPolicy(context, splitScreenController);
mStatusBarManager = context.getSystemService(StatusBarManager.class);
+ mLastConfiguration.setTo(context.getResources().getConfiguration());
mDisplayMargin = context.getResources().getDimensionPixelSize(
R.dimen.drop_layout_display_margin);
@@ -114,7 +122,7 @@ public class DragLayout extends LinearLayout {
@Override
public WindowInsets onApplyWindowInsets(WindowInsets insets) {
- mInsets = insets.getInsets(Type.systemBars() | Type.displayCutout());
+ mInsets = insets.getInsets(Type.tappableElement() | Type.displayCutout());
recomputeDropTargets();
final int orientation = getResources().getConfiguration().orientation;
@@ -128,11 +136,6 @@ public class DragLayout extends LinearLayout {
return super.onApplyWindowInsets(insets);
}
- public void onThemeChange() {
- mDropZoneView1.onThemeChange();
- mDropZoneView2.onThemeChange();
- }
-
public void onConfigChanged(Configuration newConfig) {
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE
&& getOrientation() != HORIZONTAL) {
@@ -143,6 +146,15 @@ public class DragLayout extends LinearLayout {
setOrientation(LinearLayout.VERTICAL);
updateContainerMargins(newConfig.orientation);
}
+
+ final int diff = newConfig.diff(mLastConfiguration);
+ final boolean themeChanged = (diff & CONFIG_ASSETS_PATHS) != 0
+ || (diff & CONFIG_UI_MODE) != 0;
+ if (themeChanged) {
+ mDropZoneView1.onThemeChange();
+ mDropZoneView2.onThemeChange();
+ }
+ mLastConfiguration.setTo(newConfig);
}
private void updateContainerMarginsForSingleTask() {
@@ -315,6 +327,25 @@ public class DragLayout extends LinearLayout {
// Switching between targets
mDropZoneView1.animateSwitch();
mDropZoneView2.animateSwitch();
+ // Announce for accessibility.
+ switch (target.type) {
+ case TYPE_SPLIT_LEFT:
+ mDropZoneView1.announceForAccessibility(
+ mContext.getString(R.string.accessibility_split_left));
+ break;
+ case TYPE_SPLIT_RIGHT:
+ mDropZoneView2.announceForAccessibility(
+ mContext.getString(R.string.accessibility_split_right));
+ break;
+ case TYPE_SPLIT_TOP:
+ mDropZoneView1.announceForAccessibility(
+ mContext.getString(R.string.accessibility_split_top));
+ break;
+ case TYPE_SPLIT_BOTTOM:
+ mDropZoneView2.announceForAccessibility(
+ mContext.getString(R.string.accessibility_split_bottom));
+ break;
+ }
}
mCurrentTarget = target;
}
@@ -346,7 +377,9 @@ public class DragLayout extends LinearLayout {
// Start animating the drop UI out with the drag surface
hide(event, dropCompleteCallback);
- hideDragSurface(dragSurface);
+ if (handledDrop) {
+ hideDragSurface(dragSurface);
+ }
return handledDrop;
}
@@ -424,12 +457,10 @@ public class DragLayout extends LinearLayout {
}
private void animateHighlight(DragAndDropPolicy.Target target) {
- if (target.type == DragAndDropPolicy.Target.TYPE_SPLIT_LEFT
- || target.type == DragAndDropPolicy.Target.TYPE_SPLIT_TOP) {
+ if (target.type == TYPE_SPLIT_LEFT || target.type == TYPE_SPLIT_TOP) {
mDropZoneView1.setShowingHighlight(true);
mDropZoneView2.setShowingHighlight(false);
- } else if (target.type == DragAndDropPolicy.Target.TYPE_SPLIT_RIGHT
- || target.type == DragAndDropPolicy.Target.TYPE_SPLIT_BOTTOM) {
+ } else if (target.type == TYPE_SPLIT_RIGHT || target.type == TYPE_SPLIT_BOTTOM) {
mDropZoneView1.setShowingHighlight(false);
mDropZoneView2.setShowingHighlight(true);
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/fullscreen/FullscreenTaskListener.java b/libs/WindowManager/Shell/src/com/android/wm/shell/fullscreen/FullscreenTaskListener.java
index b9caf62012a61831bf80d0f78b4092a356fcd1a6..d094c229e0f865cc47f323065ed61506a5c574e9 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/fullscreen/FullscreenTaskListener.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/fullscreen/FullscreenTaskListener.java
@@ -108,13 +108,19 @@ public class FullscreenTaskListener implements ShellTaskOrganizer.TaskListener {
}
if (!createdWindowDecor) {
mSyncQueue.runInSync(t -> {
+ if (!leash.isValid()) {
+ // Task vanished before sync completion
+ return;
+ }
// Reset several properties back to fullscreen (PiP, for example, leaves all these
// properties in a bad state).
t.setWindowCrop(leash, null);
t.setPosition(leash, positionInParent.x, positionInParent.y);
t.setAlpha(leash, 1f);
t.setMatrix(leash, 1, 0, 0, 1);
- t.show(leash);
+ if (taskInfo.isVisible) {
+ t.show(leash);
+ }
});
}
}
@@ -134,6 +140,10 @@ public class FullscreenTaskListener implements ShellTaskOrganizer.TaskListener {
final Point positionInParent = state.mTaskInfo.positionInParent;
if (!oldPositionInParent.equals(state.mTaskInfo.positionInParent)) {
mSyncQueue.runInSync(t -> {
+ if (!state.mLeash.isValid()) {
+ // Task vanished before sync completion
+ return;
+ }
t.setPosition(state.mLeash, positionInParent.x, positionInParent.y);
});
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/kidsmode/KidsModeTaskOrganizer.java b/libs/WindowManager/Shell/src/com/android/wm/shell/kidsmode/KidsModeTaskOrganizer.java
index e91987dab972fff918f1b1d067604b9fb9c9cb79..77fe7a869f8e1dc84dff6522a214b6cc4801f76e 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/kidsmode/KidsModeTaskOrganizer.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/kidsmode/KidsModeTaskOrganizer.java
@@ -16,10 +16,14 @@
package com.android.wm.shell.kidsmode;
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
+import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
+import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
+import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE;
import static android.view.Display.DEFAULT_DISPLAY;
import android.app.ActivityManager;
@@ -32,6 +36,7 @@ import android.graphics.Rect;
import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
+import android.view.Display;
import android.view.InsetsSource;
import android.view.InsetsState;
import android.view.SurfaceControl;
@@ -42,6 +47,7 @@ import android.window.WindowContainerTransaction;
import androidx.annotation.NonNull;
+import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
import com.android.wm.shell.ShellTaskOrganizer;
import com.android.wm.shell.common.DisplayController;
@@ -68,7 +74,7 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
private static final String TAG = "KidsModeTaskOrganizer";
private static final int[] CONTROLLED_ACTIVITY_TYPES =
- {ACTIVITY_TYPE_UNDEFINED, ACTIVITY_TYPE_STANDARD};
+ {ACTIVITY_TYPE_UNDEFINED, ACTIVITY_TYPE_STANDARD, ACTIVITY_TYPE_HOME};
private static final int[] CONTROLLED_WINDOWING_MODES =
{WINDOWING_MODE_FULLSCREEN, WINDOWING_MODE_UNDEFINED};
@@ -79,6 +85,12 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
private final DisplayController mDisplayController;
private final DisplayInsetsController mDisplayInsetsController;
+ /**
+ * The value of the {@link R.bool.config_reverseDefaultRotation} property which defines how
+ * {@link Display#getRotation} values are mapped to screen orientations
+ */
+ private final boolean mReverseDefaultRotationEnabled;
+
@VisibleForTesting
ActivityManager.RunningTaskInfo mLaunchRootTask;
@VisibleForTesting
@@ -93,6 +105,8 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
private KidsModeSettingsObserver mKidsModeSettingsObserver;
private boolean mEnabled;
+ private ActivityManager.RunningTaskInfo mHomeTask;
+
private final BroadcastReceiver mUserSwitchIntentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
@@ -165,6 +179,8 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
mDisplayInsetsController = displayInsetsController;
mKidsModeSettingsObserver = kidsModeSettingsObserver;
shellInit.addInitCallback(this::onInit, this);
+ mReverseDefaultRotationEnabled = context.getResources().getBoolean(
+ R.bool.config_reverseDefaultRotation);
}
public KidsModeTaskOrganizer(
@@ -188,6 +204,8 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
mDisplayController = displayController;
mDisplayInsetsController = displayInsetsController;
shellInit.addInitCallback(this::onInit, this);
+ mReverseDefaultRotationEnabled = context.getResources().getBoolean(
+ R.bool.config_reverseDefaultRotation);
}
/**
@@ -219,6 +237,13 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
}
super.onTaskAppeared(taskInfo, leash);
+ // Only allow home to draw under system bars.
+ if (taskInfo.getActivityType() == ACTIVITY_TYPE_HOME) {
+ final WindowContainerTransaction wct = getWindowContainerTransaction();
+ wct.setBounds(taskInfo.token, new Rect(0, 0, mDisplayWidth, mDisplayHeight));
+ mSyncQueue.queue(wct);
+ mHomeTask = taskInfo;
+ }
mSyncQueue.runInSync(t -> {
// Reset several properties back to fullscreen (PiP, for example, leaves all these
// properties in a bad state).
@@ -237,6 +262,11 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
mLaunchRootTask = taskInfo;
}
+ if (mHomeTask != null && mHomeTask.taskId == taskInfo.taskId
+ && !taskInfo.equals(mHomeTask)) {
+ mHomeTask = taskInfo;
+ }
+
super.onTaskInfoChanged(taskInfo);
}
@@ -259,7 +289,17 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
// Needed since many Kids apps aren't optimised to support both orientations and it will be
// hard for kids to understand the app compat mode.
// TODO(229961548): Remove ignoreOrientationRequest exception for Kids Mode once possible.
- setIsIgnoreOrientationRequestDisabled(true);
+ if (mReverseDefaultRotationEnabled) {
+ setOrientationRequestPolicy(/* isIgnoreOrientationRequestDisabled */ true,
+ /* fromOrientations */
+ new int[]{SCREEN_ORIENTATION_LANDSCAPE, SCREEN_ORIENTATION_REVERSE_LANDSCAPE},
+ /* toOrientations */
+ new int[]{SCREEN_ORIENTATION_SENSOR_LANDSCAPE,
+ SCREEN_ORIENTATION_SENSOR_LANDSCAPE});
+ } else {
+ setOrientationRequestPolicy(/* isIgnoreOrientationRequestDisabled */ true,
+ /* fromOrientations */ null, /* toOrientations */ null);
+ }
final DisplayLayout displayLayout = mDisplayController.getDisplayLayout(DEFAULT_DISPLAY);
if (displayLayout != null) {
mDisplayWidth = displayLayout.width();
@@ -280,7 +320,8 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
@VisibleForTesting
void disable() {
- setIsIgnoreOrientationRequestDisabled(false);
+ setOrientationRequestPolicy(/* isIgnoreOrientationRequestDisabled */ false,
+ /* fromOrientations */ null, /* toOrientations */ null);
mDisplayInsetsController.removeInsetsChangedListener(DEFAULT_DISPLAY,
mOnInsetsChangedListener);
mDisplayController.removeDisplayWindowListener(mOnDisplaysChangedListener);
@@ -291,6 +332,13 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
}
mLaunchRootTask = null;
mLaunchRootLeash = null;
+ if (mHomeTask != null && mHomeTask.token != null) {
+ final WindowContainerToken homeToken = mHomeTask.token;
+ final WindowContainerTransaction wct = getWindowContainerTransaction();
+ wct.setBounds(homeToken, null);
+ mSyncQueue.queue(wct);
+ }
+ mHomeTask = null;
unregisterOrganizer();
}
@@ -320,7 +368,7 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
final SurfaceControl rootLeash = mLaunchRootLeash;
mSyncQueue.runInSync(t -> {
t.setPosition(rootLeash, taskBounds.left, taskBounds.top);
- t.setWindowCrop(rootLeash, taskBounds.width(), taskBounds.height());
+ t.setWindowCrop(rootLeash, mDisplayWidth, mDisplayHeight);
});
}
}
@@ -347,11 +395,12 @@ public class KidsModeTaskOrganizer extends ShellTaskOrganizer {
final WindowContainerTransaction wct = getWindowContainerTransaction();
final Rect taskBounds = calculateBounds();
wct.setBounds(mLaunchRootTask.token, taskBounds);
+ wct.setBounds(mHomeTask.token, new Rect(0, 0, mDisplayWidth, mDisplayHeight));
mSyncQueue.queue(wct);
final SurfaceControl finalLeash = mLaunchRootLeash;
mSyncQueue.runInSync(t -> {
t.setPosition(finalLeash, taskBounds.left, taskBounds.top);
- t.setWindowCrop(finalLeash, taskBounds.width(), taskBounds.height());
+ t.setWindowCrop(finalLeash, mDisplayWidth, mDisplayHeight);
});
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/IPip.aidl b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/IPip.aidl
index 2624ee536b5836c731bf20225265800f07ff9f2e..78de5f3e7a1f3185674238563a94e2f5883a4a18 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/IPip.aidl
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/IPip.aidl
@@ -70,4 +70,14 @@ interface IPip {
* Sets the next pip animation type to be the alpha animation.
*/
oneway void setPipAnimationTypeToAlpha() = 5;
+
+ /**
+ * Sets the height and visibility of the Launcher keep clear area.
+ */
+ oneway void setLauncherKeepClearAreaHeight(boolean visible, int height) = 6;
+
+ /**
+ * Sets the app icon size in pixel used by Launcher
+ */
+ oneway void setLauncherAppIconSize(int iconSizePx) = 7;
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java
index 6728c00af51b9d2fafb547cb0d05a5394392e4a5..4c53f607a5f836f21ad13942d1c3e5ce0ae754af 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java
@@ -28,6 +28,7 @@ import android.annotation.IntDef;
import android.annotation.NonNull;
import android.app.TaskInfo;
import android.content.Context;
+import android.content.pm.ActivityInfo;
import android.graphics.Rect;
import android.view.Surface;
import android.view.SurfaceControl;
@@ -35,6 +36,7 @@ import android.window.TaskSnapshot;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.graphics.SfVsyncFrameCallbackProvider;
+import com.android.launcher3.icons.IconProvider;
import com.android.wm.shell.animation.Interpolators;
import com.android.wm.shell.transition.Transitions;
@@ -361,22 +363,28 @@ public class PipAnimationController {
}
void setColorContentOverlay(Context context) {
- final SurfaceControl.Transaction tx =
- mSurfaceControlTransactionFactory.getTransaction();
- if (mContentOverlay != null) {
- mContentOverlay.detach(tx);
- }
- mContentOverlay = new PipContentOverlay.PipColorOverlay(context);
- mContentOverlay.attach(tx, mLeash);
+ reattachContentOverlay(new PipContentOverlay.PipColorOverlay(context));
}
void setSnapshotContentOverlay(TaskSnapshot snapshot, Rect sourceRectHint) {
+ reattachContentOverlay(
+ new PipContentOverlay.PipSnapshotOverlay(snapshot, sourceRectHint));
+ }
+
+ void setAppIconContentOverlay(Context context, Rect bounds, ActivityInfo activityInfo,
+ int appIconSizePx) {
+ reattachContentOverlay(
+ new PipContentOverlay.PipAppIconOverlay(context, bounds,
+ new IconProvider(context).getIcon(activityInfo), appIconSizePx));
+ }
+
+ private void reattachContentOverlay(PipContentOverlay overlay) {
final SurfaceControl.Transaction tx =
mSurfaceControlTransactionFactory.getTransaction();
if (mContentOverlay != null) {
mContentOverlay.detach(tx);
}
- mContentOverlay = new PipContentOverlay.PipSnapshotOverlay(snapshot, sourceRectHint);
+ mContentOverlay = overlay;
mContentOverlay.attach(tx, mLeash);
}
@@ -570,8 +578,9 @@ public class PipAnimationController {
final Rect base = getBaseValue();
final Rect start = getStartValue();
final Rect end = getEndValue();
+ Rect bounds = mRectEvaluator.evaluate(fraction, start, end);
if (mContentOverlay != null) {
- mContentOverlay.onAnimationUpdate(tx, fraction);
+ mContentOverlay.onAnimationUpdate(tx, bounds, fraction);
}
if (rotatedEndRect != null) {
// Animate the bounds in a different orientation. It only happens when
@@ -579,7 +588,6 @@ public class PipAnimationController {
applyRotation(tx, leash, fraction, start, end);
return;
}
- Rect bounds = mRectEvaluator.evaluate(fraction, start, end);
float angle = (1.0f - fraction) * startingAngle;
setCurrentValue(bounds);
if (inScaleTransition() || sourceHintRect == null) {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipBoundsAlgorithm.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipBoundsAlgorithm.java
index cd61dbb5b7d1e23516f75add44294f58e5faad9f..24d0b996a3cb22c9f595b4bedbc987251068a7ca 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipBoundsAlgorithm.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipBoundsAlgorithm.java
@@ -16,24 +16,19 @@
package com.android.wm.shell.pip;
-import static android.util.TypedValue.COMPLEX_UNIT_DIP;
-
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.PictureInPictureParams;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.res.Resources;
-import android.graphics.Point;
-import android.graphics.PointF;
import android.graphics.Rect;
import android.util.DisplayMetrics;
import android.util.Size;
-import android.util.TypedValue;
import android.view.Gravity;
import com.android.wm.shell.R;
-import com.android.wm.shell.common.DisplayLayout;
+import com.android.wm.shell.pip.phone.PipSizeSpecHandler;
import java.io.PrintWriter;
@@ -45,33 +40,29 @@ public class PipBoundsAlgorithm {
private static final String TAG = PipBoundsAlgorithm.class.getSimpleName();
private static final float INVALID_SNAP_FRACTION = -1f;
- private final @NonNull PipBoundsState mPipBoundsState;
+ @NonNull private final PipBoundsState mPipBoundsState;
+ @NonNull protected final PipSizeSpecHandler mPipSizeSpecHandler;
private final PipSnapAlgorithm mSnapAlgorithm;
- private final PipKeepClearAlgorithm mPipKeepClearAlgorithm;
+ private final PipKeepClearAlgorithmInterface mPipKeepClearAlgorithm;
- private float mDefaultSizePercent;
- private float mMinAspectRatioForMinSize;
- private float mMaxAspectRatioForMinSize;
private float mDefaultAspectRatio;
private float mMinAspectRatio;
private float mMaxAspectRatio;
private int mDefaultStackGravity;
- private int mDefaultMinSize;
- private int mOverridableMinSize;
- protected Point mScreenEdgeInsets;
public PipBoundsAlgorithm(Context context, @NonNull PipBoundsState pipBoundsState,
@NonNull PipSnapAlgorithm pipSnapAlgorithm,
- @NonNull PipKeepClearAlgorithm pipKeepClearAlgorithm) {
+ @NonNull PipKeepClearAlgorithmInterface pipKeepClearAlgorithm,
+ @NonNull PipSizeSpecHandler pipSizeSpecHandler) {
mPipBoundsState = pipBoundsState;
mSnapAlgorithm = pipSnapAlgorithm;
mPipKeepClearAlgorithm = pipKeepClearAlgorithm;
+ mPipSizeSpecHandler = pipSizeSpecHandler;
reloadResources(context);
// Initialize the aspect ratio to the default aspect ratio. Don't do this in reload
// resources as it would clobber mAspectRatio when entering PiP from fullscreen which
// triggers a configuration change and the resources to be reloaded.
mPipBoundsState.setAspectRatio(mDefaultAspectRatio);
- mPipBoundsState.setMinEdgeSize(mDefaultMinSize);
}
/**
@@ -83,27 +74,15 @@ public class PipBoundsAlgorithm {
R.dimen.config_pictureInPictureDefaultAspectRatio);
mDefaultStackGravity = res.getInteger(
R.integer.config_defaultPictureInPictureGravity);
- mDefaultMinSize = res.getDimensionPixelSize(
- R.dimen.default_minimal_size_pip_resizable_task);
- mOverridableMinSize = res.getDimensionPixelSize(
- R.dimen.overridable_minimal_size_pip_resizable_task);
final String screenEdgeInsetsDpString = res.getString(
R.string.config_defaultPictureInPictureScreenEdgeInsets);
final Size screenEdgeInsetsDp = !screenEdgeInsetsDpString.isEmpty()
? Size.parseSize(screenEdgeInsetsDpString)
: null;
- mScreenEdgeInsets = screenEdgeInsetsDp == null ? new Point()
- : new Point(dpToPx(screenEdgeInsetsDp.getWidth(), res.getDisplayMetrics()),
- dpToPx(screenEdgeInsetsDp.getHeight(), res.getDisplayMetrics()));
mMinAspectRatio = res.getFloat(
com.android.internal.R.dimen.config_pictureInPictureMinAspectRatio);
mMaxAspectRatio = res.getFloat(
com.android.internal.R.dimen.config_pictureInPictureMaxAspectRatio);
- mDefaultSizePercent = res.getFloat(
- R.dimen.config_pictureInPictureDefaultSizePercent);
- mMaxAspectRatioForMinSize = res.getFloat(
- R.dimen.config_pictureInPictureAspectRatioLimitForMinSize);
- mMinAspectRatioForMinSize = 1f / mMaxAspectRatioForMinSize;
}
/**
@@ -180,8 +159,9 @@ public class PipBoundsAlgorithm {
if (windowLayout.minWidth > 0 && windowLayout.minHeight > 0) {
// If either dimension is smaller than the allowed minimum, adjust them
// according to mOverridableMinSize
- return new Size(Math.max(windowLayout.minWidth, mOverridableMinSize),
- Math.max(windowLayout.minHeight, mOverridableMinSize));
+ return new Size(
+ Math.max(windowLayout.minWidth, mPipSizeSpecHandler.getOverrideMinEdgeSize()),
+ Math.max(windowLayout.minHeight, mPipSizeSpecHandler.getOverrideMinEdgeSize()));
}
return null;
}
@@ -218,7 +198,7 @@ public class PipBoundsAlgorithm {
/**
* @return whether the given {@param aspectRatio} is valid.
*/
- private boolean isValidPictureInPictureAspectRatio(float aspectRatio) {
+ public boolean isValidPictureInPictureAspectRatio(float aspectRatio) {
return Float.compare(mMinAspectRatio, aspectRatio) <= 0
&& Float.compare(aspectRatio, mMaxAspectRatio) <= 0;
}
@@ -243,28 +223,13 @@ public class PipBoundsAlgorithm {
final float snapFraction = mSnapAlgorithm.getSnapFraction(stackBounds,
getMovementBounds(stackBounds), mPipBoundsState.getStashedState());
- final Size overrideMinSize = mPipBoundsState.getOverrideMinSize();
final Size size;
if (useCurrentMinEdgeSize || useCurrentSize) {
- // The default minimum edge size, or the override min edge size if set.
- final int defaultMinEdgeSize = overrideMinSize == null ? mDefaultMinSize
- : mPipBoundsState.getOverrideMinEdgeSize();
- final int minEdgeSize = useCurrentMinEdgeSize ? mPipBoundsState.getMinEdgeSize()
- : defaultMinEdgeSize;
- // Use the existing size but adjusted to the aspect ratio and min edge size.
- size = getSizeForAspectRatio(
- new Size(stackBounds.width(), stackBounds.height()), aspectRatio, minEdgeSize);
+ // Use the existing size but adjusted to the new aspect ratio.
+ size = mPipSizeSpecHandler.getSizeForAspectRatio(
+ new Size(stackBounds.width(), stackBounds.height()), aspectRatio);
} else {
- if (overrideMinSize != null) {
- // The override minimal size is set, use that as the default size making sure it's
- // adjusted to the aspect ratio.
- size = adjustSizeToAspectRatio(overrideMinSize, aspectRatio);
- } else {
- // Calculate the default size using the display size and default min edge size.
- final DisplayLayout displayLayout = mPipBoundsState.getDisplayLayout();
- size = getSizeForAspectRatio(aspectRatio, mDefaultMinSize,
- displayLayout.width(), displayLayout.height());
- }
+ size = mPipSizeSpecHandler.getDefaultSize(aspectRatio);
}
final int left = (int) (stackBounds.centerX() - size.getWidth() / 2f);
@@ -273,18 +238,6 @@ public class PipBoundsAlgorithm {
mSnapAlgorithm.applySnapFraction(stackBounds, getMovementBounds(stackBounds), snapFraction);
}
- /** Adjusts the given size to conform to the given aspect ratio. */
- private Size adjustSizeToAspectRatio(@NonNull Size size, float aspectRatio) {
- final float sizeAspectRatio = size.getWidth() / (float) size.getHeight();
- if (sizeAspectRatio > aspectRatio) {
- // Size is wider, fix the width and increase the height
- return new Size(size.getWidth(), (int) (size.getWidth() / aspectRatio));
- } else {
- // Size is taller, fix the height and adjust the width.
- return new Size((int) (size.getHeight() * aspectRatio), size.getHeight());
- }
- }
-
/**
* @return the default bounds to show the PIP, if a {@param snapFraction} and {@param size} are
* provided, then it will apply the default bounds to the provided snap fraction and size.
@@ -303,17 +256,9 @@ public class PipBoundsAlgorithm {
final Size defaultSize;
final Rect insetBounds = new Rect();
getInsetBounds(insetBounds);
- final DisplayLayout displayLayout = mPipBoundsState.getDisplayLayout();
- final Size overrideMinSize = mPipBoundsState.getOverrideMinSize();
- if (overrideMinSize != null) {
- // The override minimal size is set, use that as the default size making sure it's
- // adjusted to the aspect ratio.
- defaultSize = adjustSizeToAspectRatio(overrideMinSize, mDefaultAspectRatio);
- } else {
- // Calculate the default size using the display size and default min edge size.
- defaultSize = getSizeForAspectRatio(mDefaultAspectRatio,
- mDefaultMinSize, displayLayout.width(), displayLayout.height());
- }
+
+ // Calculate the default size
+ defaultSize = mPipSizeSpecHandler.getDefaultSize(mDefaultAspectRatio);
// Now that we have the default size, apply the snap fraction if valid or position the
// bounds using the default gravity.
@@ -335,12 +280,7 @@ public class PipBoundsAlgorithm {
* Populates the bounds on the screen that the PIP can be visible in.
*/
public void getInsetBounds(Rect outRect) {
- final DisplayLayout displayLayout = mPipBoundsState.getDisplayLayout();
- Rect insets = mPipBoundsState.getDisplayLayout().stableInsets();
- outRect.set(insets.left + mScreenEdgeInsets.x,
- insets.top + mScreenEdgeInsets.y,
- displayLayout.width() - insets.right - mScreenEdgeInsets.x,
- displayLayout.height() - insets.bottom - mScreenEdgeInsets.y);
+ outRect.set(mPipSizeSpecHandler.getInsetBounds());
}
/**
@@ -405,71 +345,11 @@ public class PipBoundsAlgorithm {
mSnapAlgorithm.applySnapFraction(stackBounds, movementBounds, snapFraction);
}
- public int getDefaultMinSize() {
- return mDefaultMinSize;
- }
-
/**
* @return the pixels for a given dp value.
*/
private int dpToPx(float dpValue, DisplayMetrics dm) {
- return (int) TypedValue.applyDimension(COMPLEX_UNIT_DIP, dpValue, dm);
- }
-
- /**
- * @return the size of the PiP at the given aspectRatio, ensuring that the minimum edge
- * is at least minEdgeSize.
- */
- public Size getSizeForAspectRatio(float aspectRatio, float minEdgeSize, int displayWidth,
- int displayHeight) {
- final int smallestDisplaySize = Math.min(displayWidth, displayHeight);
- final int minSize = (int) Math.max(minEdgeSize, smallestDisplaySize * mDefaultSizePercent);
-
- final int width;
- final int height;
- if (aspectRatio <= mMinAspectRatioForMinSize || aspectRatio > mMaxAspectRatioForMinSize) {
- // Beyond these points, we can just use the min size as the shorter edge
- if (aspectRatio <= 1) {
- // Portrait, width is the minimum size
- width = minSize;
- height = Math.round(width / aspectRatio);
- } else {
- // Landscape, height is the minimum size
- height = minSize;
- width = Math.round(height * aspectRatio);
- }
- } else {
- // Within these points, we ensure that the bounds fit within the radius of the limits
- // at the points
- final float widthAtMaxAspectRatioForMinSize = mMaxAspectRatioForMinSize * minSize;
- final float radius = PointF.length(widthAtMaxAspectRatioForMinSize, minSize);
- height = (int) Math.round(Math.sqrt((radius * radius)
- / (aspectRatio * aspectRatio + 1)));
- width = Math.round(height * aspectRatio);
- }
- return new Size(width, height);
- }
-
- /**
- * @return the adjusted size so that it conforms to the given aspectRatio, ensuring that the
- * minimum edge is at least minEdgeSize.
- */
- public Size getSizeForAspectRatio(Size size, float aspectRatio, float minEdgeSize) {
- final int smallestSize = Math.min(size.getWidth(), size.getHeight());
- final int minSize = (int) Math.max(minEdgeSize, smallestSize);
-
- final int width;
- final int height;
- if (aspectRatio <= 1) {
- // Portrait, width is the minimum size.
- width = minSize;
- height = Math.round(width / aspectRatio);
- } else {
- // Landscape, height is the minimum size
- height = minSize;
- width = Math.round(height * aspectRatio);
- }
- return new Size(width, height);
+ return PipUtils.dpToPx(dpValue, dm);
}
/**
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipBoundsState.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipBoundsState.java
index 5376ae372de21d2ceb5dbb462365937422eb5c3d..92cf8cbf643ee019b2c93e8450df2afd76df7684 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipBoundsState.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipBoundsState.java
@@ -37,13 +37,16 @@ import com.android.internal.protolog.common.ProtoLog;
import com.android.internal.util.function.TriConsumer;
import com.android.wm.shell.R;
import com.android.wm.shell.common.DisplayLayout;
+import com.android.wm.shell.pip.phone.PipSizeSpecHandler;
import com.android.wm.shell.protolog.ShellProtoLogGroup;
import java.io.PrintWriter;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.function.Consumer;
@@ -83,13 +86,11 @@ public class PipBoundsState {
private int mStashedState = STASH_TYPE_NONE;
private int mStashOffset;
private @Nullable PipReentryState mPipReentryState;
+ private final LauncherState mLauncherState = new LauncherState();
+ private final @Nullable PipSizeSpecHandler mPipSizeSpecHandler;
private @Nullable ComponentName mLastPipComponentName;
private int mDisplayId = Display.DEFAULT_DISPLAY;
private final @NonNull DisplayLayout mDisplayLayout = new DisplayLayout();
- /** The current minimum edge size of PIP. */
- private int mMinEdgeSize;
- /** The preferred minimum (and default) size specified by apps. */
- private @Nullable Size mOverrideMinSize;
private final @NonNull MotionBoundsState mMotionBoundsState = new MotionBoundsState();
private boolean mIsImeShowing;
private int mImeHeight;
@@ -117,14 +118,21 @@ public class PipBoundsState {
* @see android.view.View#setPreferKeepClearRects
*/
private final Set mUnrestrictedKeepClearAreas = new ArraySet<>();
+ /**
+ * Additional to {@link #mUnrestrictedKeepClearAreas}, allow the caller to append named bounds
+ * as unrestricted keep clear area. Values in this map would be appended to
+ * {@link #getUnrestrictedKeepClearAreas()} and this is meant for internal usage only.
+ */
+ private final Map mNamedUnrestrictedKeepClearAreas = new HashMap<>();
private @Nullable Runnable mOnMinimalSizeChangeCallback;
private @Nullable TriConsumer mOnShelfVisibilityChangeCallback;
private List> mOnPipExclusionBoundsChangeCallbacks = new ArrayList<>();
- public PipBoundsState(@NonNull Context context) {
+ public PipBoundsState(@NonNull Context context, PipSizeSpecHandler pipSizeSpecHandler) {
mContext = context;
reloadResources();
+ mPipSizeSpecHandler = pipSizeSpecHandler;
}
/** Reloads the resources. */
@@ -312,10 +320,10 @@ public class PipBoundsState {
mDisplayLayout.set(displayLayout);
}
- /** Get the display layout. */
+ /** Get a copy of the display layout. */
@NonNull
public DisplayLayout getDisplayLayout() {
- return mDisplayLayout;
+ return new DisplayLayout(mDisplayLayout);
}
@VisibleForTesting
@@ -323,20 +331,10 @@ public class PipBoundsState {
mPipReentryState = null;
}
- /** Set the PIP minimum edge size. */
- public void setMinEdgeSize(int minEdgeSize) {
- mMinEdgeSize = minEdgeSize;
- }
-
- /** Returns the PIP's current minimum edge size. */
- public int getMinEdgeSize() {
- return mMinEdgeSize;
- }
-
/** Sets the preferred size of PIP as specified by the activity in PIP mode. */
public void setOverrideMinSize(@Nullable Size overrideMinSize) {
- final boolean changed = !Objects.equals(overrideMinSize, mOverrideMinSize);
- mOverrideMinSize = overrideMinSize;
+ final boolean changed = !Objects.equals(overrideMinSize, getOverrideMinSize());
+ mPipSizeSpecHandler.setOverrideMinSize(overrideMinSize);
if (changed && mOnMinimalSizeChangeCallback != null) {
mOnMinimalSizeChangeCallback.run();
}
@@ -345,13 +343,12 @@ public class PipBoundsState {
/** Returns the preferred minimal size specified by the activity in PIP. */
@Nullable
public Size getOverrideMinSize() {
- return mOverrideMinSize;
+ return mPipSizeSpecHandler.getOverrideMinSize();
}
/** Returns the minimum edge size of the override minimum size, or 0 if not set. */
public int getOverrideMinEdgeSize() {
- if (mOverrideMinSize == null) return 0;
- return Math.min(mOverrideMinSize.getWidth(), mOverrideMinSize.getHeight());
+ return mPipSizeSpecHandler.getOverrideMinEdgeSize();
}
/** Get the state of the bounds in motion. */
@@ -405,6 +402,16 @@ public class PipBoundsState {
mUnrestrictedKeepClearAreas.addAll(unrestrictedAreas);
}
+ /** Add a named unrestricted keep clear area. */
+ public void addNamedUnrestrictedKeepClearArea(@NonNull String name, Rect unrestrictedArea) {
+ mNamedUnrestrictedKeepClearAreas.put(name, unrestrictedArea);
+ }
+
+ /** Remove a named unrestricted keep clear area. */
+ public void removeNamedUnrestrictedKeepClearArea(@NonNull String name) {
+ mNamedUnrestrictedKeepClearAreas.remove(name);
+ }
+
@NonNull
public Set getRestrictedKeepClearAreas() {
return mRestrictedKeepClearAreas;
@@ -412,7 +419,10 @@ public class PipBoundsState {
@NonNull
public Set getUnrestrictedKeepClearAreas() {
- return mUnrestrictedKeepClearAreas;
+ if (mNamedUnrestrictedKeepClearAreas.isEmpty()) return mUnrestrictedKeepClearAreas;
+ final Set unrestrictedAreas = new ArraySet<>(mUnrestrictedKeepClearAreas);
+ unrestrictedAreas.addAll(mNamedUnrestrictedKeepClearAreas.values());
+ return unrestrictedAreas;
}
/**
@@ -488,6 +498,10 @@ public class PipBoundsState {
mOnPipExclusionBoundsChangeCallbacks.remove(onPipExclusionBoundsChangeCallback);
}
+ public LauncherState getLauncherState() {
+ return mLauncherState;
+ }
+
/** Source of truth for the current bounds of PIP that may be in motion. */
public static class MotionBoundsState {
/** The bounds used when PIP is in motion (e.g. during a drag or animation) */
@@ -540,6 +554,25 @@ public class PipBoundsState {
}
}
+ /** Data class for Launcher state. */
+ public static final class LauncherState {
+ private int mAppIconSizePx;
+
+ public void setAppIconSizePx(int appIconSizePx) {
+ mAppIconSizePx = appIconSizePx;
+ }
+
+ public int getAppIconSizePx() {
+ return mAppIconSizePx;
+ }
+
+ void dump(PrintWriter pw, String prefix) {
+ final String innerPrefix = prefix + " ";
+ pw.println(prefix + LauncherState.class.getSimpleName());
+ pw.println(innerPrefix + "getAppIconSizePx=" + getAppIconSizePx());
+ }
+ }
+
static final class PipReentryState {
private static final String TAG = PipReentryState.class.getSimpleName();
@@ -581,11 +614,8 @@ public class PipBoundsState {
pw.println(innerPrefix + "mLastPipComponentName=" + mLastPipComponentName);
pw.println(innerPrefix + "mAspectRatio=" + mAspectRatio);
pw.println(innerPrefix + "mDisplayId=" + mDisplayId);
- pw.println(innerPrefix + "mDisplayLayout=" + mDisplayLayout);
pw.println(innerPrefix + "mStashedState=" + mStashedState);
pw.println(innerPrefix + "mStashOffset=" + mStashOffset);
- pw.println(innerPrefix + "mMinEdgeSize=" + mMinEdgeSize);
- pw.println(innerPrefix + "mOverrideMinSize=" + mOverrideMinSize);
pw.println(innerPrefix + "mIsImeShowing=" + mIsImeShowing);
pw.println(innerPrefix + "mImeHeight=" + mImeHeight);
pw.println(innerPrefix + "mIsShelfShowing=" + mIsShelfShowing);
@@ -597,6 +627,7 @@ public class PipBoundsState {
} else {
mPipReentryState.dump(pw, innerPrefix);
}
+ mLauncherState.dump(pw, innerPrefix);
mMotionBoundsState.dump(pw, innerPrefix);
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipContentOverlay.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipContentOverlay.java
index 7096a645ef85b40aa3fc67855ddb15f72e356688..9fa57cacb11f5e90b8a1d960d477fcd9545054a2 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipContentOverlay.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipContentOverlay.java
@@ -16,10 +16,18 @@
package com.android.wm.shell.pip;
+import static android.util.TypedValue.COMPLEX_UNIT_DIP;
+
+import android.annotation.Nullable;
import android.content.Context;
import android.content.res.TypedArray;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
import android.graphics.Color;
+import android.graphics.Matrix;
import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.util.TypedValue;
import android.view.SurfaceControl;
import android.view.SurfaceSession;
import android.window.TaskSnapshot;
@@ -28,6 +36,9 @@ import android.window.TaskSnapshot;
* Represents the content overlay used during the entering PiP animation.
*/
public abstract class PipContentOverlay {
+ // Fixed string used in WMShellFlickerTests
+ protected static final String LAYER_NAME = "PipContentOverlay";
+
protected SurfaceControl mLeash;
/** Attaches the internal {@link #mLeash} to the given parent leash. */
@@ -41,13 +52,20 @@ public abstract class PipContentOverlay {
}
}
+ @Nullable
+ public SurfaceControl getLeash() {
+ return mLeash;
+ }
+
/**
* Animates the internal {@link #mLeash} by a given fraction.
* @param atomicTx {@link SurfaceControl.Transaction} to operate, you should not explicitly
* call apply on this transaction, it should be applied on the caller side.
+ * @param currentBounds {@link Rect} of the current animation bounds.
* @param fraction progress of the animation ranged from 0f to 1f.
*/
- public abstract void onAnimationUpdate(SurfaceControl.Transaction atomicTx, float fraction);
+ public abstract void onAnimationUpdate(SurfaceControl.Transaction atomicTx,
+ Rect currentBounds, float fraction);
/**
* Callback when reaches the end of animation on the internal {@link #mLeash}.
@@ -60,13 +78,15 @@ public abstract class PipContentOverlay {
/** A {@link PipContentOverlay} uses solid color. */
public static final class PipColorOverlay extends PipContentOverlay {
+ private static final String TAG = PipColorOverlay.class.getSimpleName();
+
private final Context mContext;
public PipColorOverlay(Context context) {
mContext = context;
mLeash = new SurfaceControl.Builder(new SurfaceSession())
- .setCallsite("PipAnimation")
- .setName(PipColorOverlay.class.getSimpleName())
+ .setCallsite(TAG)
+ .setName(LAYER_NAME)
.setColorLayer()
.build();
}
@@ -82,7 +102,8 @@ public abstract class PipContentOverlay {
}
@Override
- public void onAnimationUpdate(SurfaceControl.Transaction atomicTx, float fraction) {
+ public void onAnimationUpdate(SurfaceControl.Transaction atomicTx,
+ Rect currentBounds, float fraction) {
atomicTx.setAlpha(mLeash, fraction < 0.5f ? 0 : (fraction - 0.5f) * 2);
}
@@ -108,6 +129,8 @@ public abstract class PipContentOverlay {
/** A {@link PipContentOverlay} uses {@link TaskSnapshot}. */
public static final class PipSnapshotOverlay extends PipContentOverlay {
+ private static final String TAG = PipSnapshotOverlay.class.getSimpleName();
+
private final TaskSnapshot mSnapshot;
private final Rect mSourceRectHint;
@@ -115,8 +138,8 @@ public abstract class PipContentOverlay {
mSnapshot = snapshot;
mSourceRectHint = new Rect(sourceRectHint);
mLeash = new SurfaceControl.Builder(new SurfaceSession())
- .setCallsite("PipAnimation")
- .setName(PipSnapshotOverlay.class.getSimpleName())
+ .setCallsite(TAG)
+ .setName(LAYER_NAME)
.build();
}
@@ -137,7 +160,8 @@ public abstract class PipContentOverlay {
}
@Override
- public void onAnimationUpdate(SurfaceControl.Transaction atomicTx, float fraction) {
+ public void onAnimationUpdate(SurfaceControl.Transaction atomicTx,
+ Rect currentBounds, float fraction) {
// Do nothing. Keep the snapshot till animation ends.
}
@@ -146,4 +170,95 @@ public abstract class PipContentOverlay {
atomicTx.remove(mLeash);
}
}
+
+ /** A {@link PipContentOverlay} shows app icon on solid color background. */
+ public static final class PipAppIconOverlay extends PipContentOverlay {
+ private static final String TAG = PipAppIconOverlay.class.getSimpleName();
+ // The maximum size for app icon in pixel.
+ private static final int MAX_APP_ICON_SIZE_DP = 72;
+
+ private final Context mContext;
+ private final int mAppIconSizePx;
+ private final Rect mAppBounds;
+ private final Matrix mTmpTransform = new Matrix();
+ private final float[] mTmpFloat9 = new float[9];
+
+ private Bitmap mBitmap;
+
+ public PipAppIconOverlay(Context context, Rect appBounds,
+ Drawable appIcon, int appIconSizePx) {
+ mContext = context;
+ final int maxAppIconSizePx = (int) TypedValue.applyDimension(COMPLEX_UNIT_DIP,
+ MAX_APP_ICON_SIZE_DP, context.getResources().getDisplayMetrics());
+ mAppIconSizePx = Math.min(maxAppIconSizePx, appIconSizePx);
+ mAppBounds = new Rect(appBounds);
+ mBitmap = Bitmap.createBitmap(appBounds.width(), appBounds.height(),
+ Bitmap.Config.ARGB_8888);
+ prepareAppIconOverlay(appIcon);
+ mLeash = new SurfaceControl.Builder(new SurfaceSession())
+ .setCallsite(TAG)
+ .setName(LAYER_NAME)
+ .build();
+ }
+
+ @Override
+ public void attach(SurfaceControl.Transaction tx, SurfaceControl parentLeash) {
+ tx.show(mLeash);
+ tx.setLayer(mLeash, Integer.MAX_VALUE);
+ tx.setBuffer(mLeash, mBitmap.getHardwareBuffer());
+ tx.reparent(mLeash, parentLeash);
+ tx.apply();
+ }
+
+ @Override
+ public void onAnimationUpdate(SurfaceControl.Transaction atomicTx,
+ Rect currentBounds, float fraction) {
+ mTmpTransform.reset();
+ // Scale back the bitmap with the pivot point at center.
+ mTmpTransform.postScale(
+ (float) mAppBounds.width() / currentBounds.width(),
+ (float) mAppBounds.height() / currentBounds.height(),
+ mAppBounds.centerX(),
+ mAppBounds.centerY());
+ atomicTx.setMatrix(mLeash, mTmpTransform, mTmpFloat9)
+ .setAlpha(mLeash, fraction < 0.5f ? 0 : (fraction - 0.5f) * 2);
+ }
+
+ @Override
+ public void onAnimationEnd(SurfaceControl.Transaction atomicTx, Rect destinationBounds) {
+ atomicTx.remove(mLeash);
+ }
+
+ @Override
+ public void detach(SurfaceControl.Transaction tx) {
+ super.detach(tx);
+ if (mBitmap != null && !mBitmap.isRecycled()) {
+ mBitmap.recycle();
+ }
+ }
+
+ private void prepareAppIconOverlay(Drawable appIcon) {
+ final Canvas canvas = new Canvas();
+ canvas.setBitmap(mBitmap);
+ final TypedArray ta = mContext.obtainStyledAttributes(new int[] {
+ android.R.attr.colorBackground });
+ try {
+ int colorAccent = ta.getColor(0, 0);
+ canvas.drawRGB(
+ Color.red(colorAccent),
+ Color.green(colorAccent),
+ Color.blue(colorAccent));
+ } finally {
+ ta.recycle();
+ }
+ final Rect appIconBounds = new Rect(
+ mAppBounds.centerX() - mAppIconSizePx / 2,
+ mAppBounds.centerY() - mAppIconSizePx / 2,
+ mAppBounds.centerX() + mAppIconSizePx / 2,
+ mAppBounds.centerY() + mAppIconSizePx / 2);
+ appIcon.setBounds(appIconBounds);
+ appIcon.draw(canvas);
+ mBitmap = mBitmap.copy(Bitmap.Config.HARDWARE, false /* mutable */);
+ }
+ }
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipKeepClearAlgorithm.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipKeepClearAlgorithmInterface.java
similarity index 97%
rename from libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipKeepClearAlgorithm.java
rename to libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipKeepClearAlgorithmInterface.java
index e3495e100c62ed53a672d9149899c8ea59a1d4a8..5045cf905ee63fc674ea1b6cb0f9e5f81bc984f0 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipKeepClearAlgorithm.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipKeepClearAlgorithmInterface.java
@@ -24,7 +24,7 @@ import java.util.Set;
* Interface for interacting with keep clear algorithm used to move PiP window out of the way of
* keep clear areas.
*/
-public interface PipKeepClearAlgorithm {
+public interface PipKeepClearAlgorithmInterface {
/**
* Adjust the position of picture in picture window based on the registered keep clear areas.
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java
index 8ba2583757cda95afa19bd9ddec5c2be3ce503bc..c4b5470f461adae6a9956078db26a90ab707e06e 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java
@@ -16,6 +16,7 @@
package com.android.wm.shell.pip;
+import static android.app.ActivityTaskManager.INVALID_TASK_ID;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
@@ -62,6 +63,7 @@ import android.content.res.Configuration;
import android.graphics.Rect;
import android.os.RemoteException;
import android.os.SystemClock;
+import android.os.SystemProperties;
import android.util.Log;
import android.view.Choreographer;
import android.view.Display;
@@ -71,6 +73,7 @@ import android.window.TaskOrganizer;
import android.window.TaskSnapshot;
import android.window.WindowContainerToken;
import android.window.WindowContainerTransaction;
+import android.window.WindowContainerTransactionCallback;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.protolog.common.ProtoLog;
@@ -78,11 +81,13 @@ import com.android.wm.shell.R;
import com.android.wm.shell.ShellTaskOrganizer;
import com.android.wm.shell.animation.Interpolators;
import com.android.wm.shell.common.DisplayController;
+import com.android.wm.shell.common.DisplayLayout;
import com.android.wm.shell.common.ScreenshotUtils;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.SyncTransactionQueue;
import com.android.wm.shell.common.annotations.ShellMainThread;
import com.android.wm.shell.pip.phone.PipMotionHelper;
+import com.android.wm.shell.pip.phone.PipSizeSpecHandler;
import com.android.wm.shell.protolog.ShellProtoLogGroup;
import com.android.wm.shell.splitscreen.SplitScreenController;
import com.android.wm.shell.transition.Transitions;
@@ -125,6 +130,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
private final Context mContext;
private final SyncTransactionQueue mSyncTransactionQueue;
private final PipBoundsState mPipBoundsState;
+ private final PipSizeSpecHandler mPipSizeSpecHandler;
private final PipBoundsAlgorithm mPipBoundsAlgorithm;
private final @NonNull PipMenuController mPipMenuController;
private final PipAnimationController mPipAnimationController;
@@ -139,13 +145,32 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
protected final ShellTaskOrganizer mTaskOrganizer;
protected final ShellExecutor mMainExecutor;
+ // the runnable to execute after WindowContainerTransactions is applied to finish resizing pip
+ private Runnable mPipFinishResizeWCTRunnable;
+
+ private final WindowContainerTransactionCallback mPipFinishResizeWCTCallback =
+ new WindowContainerTransactionCallback() {
+ @Override
+ public void onTransactionReady(int id, SurfaceControl.Transaction t) {
+ t.apply();
+
+ // execute the runnable if non-null after WCT is applied to finish resizing pip
+ if (mPipFinishResizeWCTRunnable != null) {
+ mPipFinishResizeWCTRunnable.run();
+ mPipFinishResizeWCTRunnable = null;
+ }
+ }
+ };
+
// These callbacks are called on the update thread
private final PipAnimationController.PipAnimationCallback mPipAnimationCallback =
new PipAnimationController.PipAnimationCallback() {
+ private boolean mIsCancelled;
@Override
public void onPipAnimationStart(TaskInfo taskInfo,
PipAnimationController.PipTransitionAnimator animator) {
final int direction = animator.getTransitionDirection();
+ mIsCancelled = false;
sendOnPipTransitionStarted(direction);
}
@@ -153,6 +178,10 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
public void onPipAnimationEnd(TaskInfo taskInfo, SurfaceControl.Transaction tx,
PipAnimationController.PipTransitionAnimator animator) {
final int direction = animator.getTransitionDirection();
+ if (mIsCancelled) {
+ sendOnPipTransitionFinished(direction);
+ return;
+ }
final int animationType = animator.getAnimationType();
final Rect destinationBounds = animator.getDestinationBounds();
if (isInPipDirection(direction) && animator.getContentOverlayLeash() != null) {
@@ -191,6 +220,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
public void onPipAnimationCancel(TaskInfo taskInfo,
PipAnimationController.PipTransitionAnimator animator) {
final int direction = animator.getTransitionDirection();
+ mIsCancelled = true;
if (isInPipDirection(direction) && animator.getContentOverlayLeash() != null) {
fadeOutAndRemoveOverlay(animator.getContentOverlayLeash(),
animator::clearContentOverlay, true /* withStartDelay */);
@@ -312,6 +342,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
@NonNull SyncTransactionQueue syncTransactionQueue,
@NonNull PipTransitionState pipTransitionState,
@NonNull PipBoundsState pipBoundsState,
+ @NonNull PipSizeSpecHandler pipSizeSpecHandler,
@NonNull PipBoundsAlgorithm boundsHandler,
@NonNull PipMenuController pipMenuController,
@NonNull PipAnimationController pipAnimationController,
@@ -327,6 +358,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
mSyncTransactionQueue = syncTransactionQueue;
mPipTransitionState = pipTransitionState;
mPipBoundsState = pipBoundsState;
+ mPipSizeSpecHandler = pipSizeSpecHandler;
mPipBoundsAlgorithm = boundsHandler;
mPipMenuController = pipMenuController;
mPipTransitionController = pipTransitionController;
@@ -532,6 +564,15 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
mPipTransitionController.startExitTransition(TRANSIT_EXIT_PIP, wct, destinationBounds);
return;
}
+ if (mSplitScreenOptional.isPresent()) {
+ // If pip activity will reparent to origin task case and if the origin task still under
+ // split root, just exit split screen here to ensure it could expand to fullscreen.
+ SplitScreenController split = mSplitScreenOptional.get();
+ if (split.isTaskInSplitScreen(mTaskInfo.lastParentTaskIdBeforePip)) {
+ split.exitSplitScreen(INVALID_TASK_ID,
+ SplitScreenController.EXIT_REASON_APP_FINISHED);
+ }
+ }
mSyncTransactionQueue.queue(wct);
mSyncTransactionQueue.runInSync(t -> {
// Make sure to grab the latest source hint rect as it could have been
@@ -644,7 +685,6 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
}
mPipUiEventLoggerLogger.setTaskInfo(mTaskInfo);
- mPipUiEventLoggerLogger.log(PipUiEventLogger.PipUiEventEnum.PICTURE_IN_PICTURE_ENTER);
// If the displayId of the task is different than what PipBoundsHandler has, then update
// it. This is possible if we entered PiP on an external display.
@@ -653,6 +693,17 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
mOnDisplayIdChangeCallback.accept(info.displayId);
}
+ // UiEvent logging.
+ final PipUiEventLogger.PipUiEventEnum uiEventEnum;
+ if (isLaunchIntoPipTask()) {
+ uiEventEnum = PipUiEventLogger.PipUiEventEnum.PICTURE_IN_PICTURE_ENTER_CONTENT_PIP;
+ } else if (mPipTransitionState.getInSwipePipToHomeTransition()) {
+ uiEventEnum = PipUiEventLogger.PipUiEventEnum.PICTURE_IN_PICTURE_AUTO_ENTER;
+ } else {
+ uiEventEnum = PipUiEventLogger.PipUiEventEnum.PICTURE_IN_PICTURE_ENTER;
+ }
+ mPipUiEventLoggerLogger.log(uiEventEnum);
+
if (mPipTransitionState.getInSwipePipToHomeTransition()) {
if (!mWaitForFixedRotation) {
onEndOfSwipePipToHomeTransition();
@@ -1145,21 +1196,32 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
final Rect newDestinationBounds = mPipBoundsAlgorithm.getEntryDestinationBounds();
if (newDestinationBounds.equals(currentDestinationBounds)) return;
- if (animator.getAnimationType() == ANIM_TYPE_BOUNDS) {
- if (mWaitForFixedRotation) {
- // The new destination bounds are in next rotation (DisplayLayout has been rotated
- // in computeRotatedBounds). The animation runs in previous rotation so the end
- // bounds need to be transformed.
- final Rect displayBounds = mPipBoundsState.getDisplayBounds();
- final Rect rotatedEndBounds = new Rect(newDestinationBounds);
- rotateBounds(rotatedEndBounds, displayBounds, mNextRotation, mCurrentRotation);
- animator.updateEndValue(rotatedEndBounds);
- } else {
- animator.updateEndValue(newDestinationBounds);
+ updateAnimatorBounds(newDestinationBounds);
+ destinationBoundsOut.set(newDestinationBounds);
+ }
+
+ /**
+ * Directly update the animator bounds.
+ */
+ public void updateAnimatorBounds(Rect bounds) {
+ final PipAnimationController.PipTransitionAnimator animator =
+ mPipAnimationController.getCurrentAnimator();
+ if (animator != null && animator.isRunning()) {
+ if (animator.getAnimationType() == ANIM_TYPE_BOUNDS) {
+ if (mWaitForFixedRotation) {
+ // The new destination bounds are in next rotation (DisplayLayout has been
+ // rotated in computeRotatedBounds). The animation runs in previous rotation so
+ // the end bounds need to be transformed.
+ final Rect displayBounds = mPipBoundsState.getDisplayBounds();
+ final Rect rotatedEndBounds = new Rect(bounds);
+ rotateBounds(rotatedEndBounds, displayBounds, mNextRotation, mCurrentRotation);
+ animator.updateEndValue(rotatedEndBounds);
+ } else {
+ animator.updateEndValue(bounds);
+ }
}
+ animator.setDestinationBounds(bounds);
}
- animator.setDestinationBounds(newDestinationBounds);
- destinationBoundsOut.set(newDestinationBounds);
}
/**
@@ -1168,7 +1230,16 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
protected void applyNewPictureInPictureParams(@NonNull PictureInPictureParams params) {
if (mDeferredTaskInfo != null || PipUtils.aspectRatioChanged(params.getAspectRatioFloat(),
mPictureInPictureParams.getAspectRatioFloat())) {
- mPipParamsChangedForwarder.notifyAspectRatioChanged(params.getAspectRatioFloat());
+ if (mPipBoundsAlgorithm.isValidPictureInPictureAspectRatio(
+ params.getAspectRatioFloat())) {
+ mPipParamsChangedForwarder.notifyAspectRatioChanged(params.getAspectRatioFloat());
+ } else {
+ ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE,
+ "%s: New aspect ratio is not valid."
+ + " hasAspectRatio=%b"
+ + " aspectRatio=%f",
+ TAG, params.hasSetAspectRatio(), params.getAspectRatioFloat());
+ }
}
if (mDeferredTaskInfo != null
|| PipUtils.remoteActionsChanged(params.getActions(),
@@ -1207,8 +1278,23 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
/**
* Animates resizing of the pinned stack given the duration and start bounds.
* This is used when the starting bounds is not the current PiP bounds.
+ *
+ * @param pipFinishResizeWCTRunnable callback to run after window updates are complete
*/
public void scheduleAnimateResizePip(Rect fromBounds, Rect toBounds, int duration,
+ float startingAngle, Consumer updateBoundsCallback,
+ Runnable pipFinishResizeWCTRunnable) {
+ mPipFinishResizeWCTRunnable = pipFinishResizeWCTRunnable;
+ if (mPipFinishResizeWCTRunnable != null) {
+ ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE,
+ "mPipFinishResizeWCTRunnable is set to be called once window updates");
+ }
+
+ scheduleAnimateResizePip(fromBounds, toBounds, duration, startingAngle,
+ updateBoundsCallback);
+ }
+
+ private void scheduleAnimateResizePip(Rect fromBounds, Rect toBounds, int duration,
float startingAngle, Consumer updateBoundsCallback) {
if (mWaitForFixedRotation) {
ProtoLog.d(ShellProtoLogGroup.WM_SHELL_PICTURE_IN_PICTURE,
@@ -1403,7 +1489,6 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
@PipAnimationController.TransitionDirection int direction,
@PipAnimationController.AnimationType int type) {
final Rect preResizeBounds = new Rect(mPipBoundsState.getBounds());
- final boolean isPipTopLeft = isPipTopLeft();
mPipBoundsState.setBounds(destinationBounds);
if (direction == TRANSITION_DIRECTION_REMOVE_STACK) {
removePipImmediately();
@@ -1449,10 +1534,16 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
null /* callback */, false /* withStartDelay */);
});
} else {
- applyFinishBoundsResize(wct, direction, isPipTopLeft);
+ applyFinishBoundsResize(wct, direction, false);
}
} else {
- applyFinishBoundsResize(wct, direction, isPipTopLeft);
+ applyFinishBoundsResize(wct, direction, isPipToTopLeft());
+ // Use sync transaction to apply finish transaction for enter split case.
+ if (direction == TRANSITION_DIRECTION_LEAVE_PIP_TO_SPLIT_SCREEN) {
+ mSyncTransactionQueue.runInSync(t -> {
+ t.merge(tx);
+ });
+ }
}
finishResizeForMenu(destinationBounds);
@@ -1489,7 +1580,10 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
mSurfaceTransactionHelper.round(tx, mLeash, isInPip());
wct.setBounds(mToken, taskBounds);
- wct.setBoundsChangeTransaction(mToken, tx);
+ // Pip to split should use sync transaction to sync split bounds change.
+ if (direction != TRANSITION_DIRECTION_LEAVE_PIP_TO_SPLIT_SCREEN) {
+ wct.setBoundsChangeTransaction(mToken, tx);
+ }
}
/**
@@ -1505,7 +1599,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
mSplitScreenOptional.ifPresent(splitScreenController ->
splitScreenController.enterSplitScreen(mTaskInfo.taskId, wasPipTopLeft, wct));
} else {
- mTaskOrganizer.applyTransaction(wct);
+ mTaskOrganizer.applySyncTransaction(wct, mPipFinishResizeWCTCallback);
}
}
@@ -1520,6 +1614,14 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
return topLeft.contains(mPipBoundsState.getBounds());
}
+ private boolean isPipToTopLeft() {
+ if (!mSplitScreenOptional.isPresent()) {
+ return false;
+ }
+ return mSplitScreenOptional.get().getActivateSplitPosition(mTaskInfo)
+ == SPLIT_POSITION_TOP_OR_LEFT;
+ }
+
/**
* The windowing mode to restore to when resizing out of PIP direction. Defaults to undefined
* and can be overridden to restore to an alternate windowing mode.
@@ -1568,7 +1670,14 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
// Similar to auto-enter-pip transition, we use content overlay when there is no
// source rect hint to enter PiP use bounds animation.
if (sourceHintRect == null) {
- animator.setColorContentOverlay(mContext);
+ if (SystemProperties.getBoolean(
+ "persist.wm.debug.enable_pip_app_icon_overlay", true)) {
+ animator.setAppIconContentOverlay(
+ mContext, currentBounds, mTaskInfo.topActivityInfo,
+ mPipBoundsState.getLauncherState().getAppIconSizePx());
+ } else {
+ animator.setColorContentOverlay(mContext);
+ }
} else {
final TaskSnapshot snapshot = PipUtils.getTaskSnapshot(
mTaskInfo.launchIntoPipHostTaskId, false /* isLowResolution */);
@@ -1594,7 +1703,12 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
private @Nullable Rect computeRotatedBounds(int rotationDelta, int direction,
Rect outDestinationBounds, Rect sourceHintRect) {
if (direction == TRANSITION_DIRECTION_TO_PIP) {
- mPipBoundsState.getDisplayLayout().rotateTo(mContext.getResources(), mNextRotation);
+ DisplayLayout layoutCopy = mPipBoundsState.getDisplayLayout();
+
+ layoutCopy.rotateTo(mContext.getResources(), mNextRotation);
+ mPipBoundsState.setDisplayLayout(layoutCopy);
+ mPipSizeSpecHandler.setDisplayLayout(layoutCopy);
+
final Rect displayBounds = mPipBoundsState.getDisplayBounds();
outDestinationBounds.set(mPipBoundsAlgorithm.getEntryDestinationBounds());
// Transform the destination bounds to current display coordinates.
@@ -1645,8 +1759,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
final Rect topLeft = new Rect();
final Rect bottomRight = new Rect();
mSplitScreenOptional.get().getStageBounds(topLeft, bottomRight);
- final boolean isPipTopLeft = isPipTopLeft();
- destinationBoundsOut.set(isPipTopLeft ? topLeft : bottomRight);
+ destinationBoundsOut.set(isPipToTopLeft() ? topLeft : bottomRight);
return true;
}
@@ -1730,6 +1843,11 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
mSurfaceControlTransactionFactory = factory;
}
+ public boolean isLaunchToSplit(TaskInfo taskInfo) {
+ return mSplitScreenOptional.isPresent()
+ && mSplitScreenOptional.get().isLaunchToSplit(taskInfo);
+ }
+
/**
* Dumps internal states.
*/
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java
index e6c7e101d0789b4f9d72ca000038eeca535383ee..8e7b30eb60d01122d6f071807e28cf29907b5736 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransition.java
@@ -50,6 +50,7 @@ import android.graphics.Matrix;
import android.graphics.Point;
import android.graphics.Rect;
import android.os.IBinder;
+import android.os.SystemProperties;
import android.view.Surface;
import android.view.SurfaceControl;
import android.view.WindowManager;
@@ -64,6 +65,8 @@ import androidx.annotation.Nullable;
import com.android.internal.protolog.common.ProtoLog;
import com.android.wm.shell.R;
import com.android.wm.shell.ShellTaskOrganizer;
+import com.android.wm.shell.common.DisplayLayout;
+import com.android.wm.shell.pip.phone.PipSizeSpecHandler;
import com.android.wm.shell.protolog.ShellProtoLogGroup;
import com.android.wm.shell.splitscreen.SplitScreenController;
import com.android.wm.shell.sysui.ShellInit;
@@ -82,6 +85,7 @@ public class PipTransition extends PipTransitionController {
private final Context mContext;
private final PipTransitionState mPipTransitionState;
+ private final PipSizeSpecHandler mPipSizeSpecHandler;
private final int mEnterExitAnimationDuration;
private final PipSurfaceTransactionHelper mSurfaceTransactionHelper;
private final Optional mSplitScreenOptional;
@@ -112,6 +116,7 @@ public class PipTransition extends PipTransitionController {
@NonNull ShellTaskOrganizer shellTaskOrganizer,
@NonNull Transitions transitions,
PipBoundsState pipBoundsState,
+ PipSizeSpecHandler pipSizeSpecHandler,
PipTransitionState pipTransitionState,
PipMenuController pipMenuController,
PipBoundsAlgorithm pipBoundsAlgorithm,
@@ -122,6 +127,7 @@ public class PipTransition extends PipTransitionController {
pipBoundsAlgorithm, pipAnimationController);
mContext = context;
mPipTransitionState = pipTransitionState;
+ mPipSizeSpecHandler = pipSizeSpecHandler;
mEnterExitAnimationDuration = context.getResources()
.getInteger(R.integer.config_pipResizeAnimationDuration);
mSurfaceTransactionHelper = pipSurfaceTransactionHelper;
@@ -307,7 +313,12 @@ public class PipTransition extends PipTransitionController {
// initial state under the new rotation.
int rotationDelta = deltaRotation(startRotation, endRotation);
if (rotationDelta != Surface.ROTATION_0) {
- mPipBoundsState.getDisplayLayout().rotateTo(mContext.getResources(), endRotation);
+ DisplayLayout layoutCopy = mPipBoundsState.getDisplayLayout();
+
+ layoutCopy.rotateTo(mContext.getResources(), endRotation);
+ mPipBoundsState.setDisplayLayout(layoutCopy);
+ mPipSizeSpecHandler.setDisplayLayout(layoutCopy);
+
final Rect destinationBounds = mPipBoundsAlgorithm.getEntryDestinationBounds();
wct.setBounds(mRequestedEnterTask, destinationBounds);
return true;
@@ -662,8 +673,8 @@ public class PipTransition extends PipTransitionController {
}
// Please file a bug to handle the unexpected transition type.
- throw new IllegalStateException("Entering PIP with unexpected transition type="
- + transitTypeToString(transitType));
+ android.util.Slog.e(TAG, "Found new PIP in transition with mis-matched type="
+ + transitTypeToString(transitType), new Throwable());
}
return false;
}
@@ -792,7 +803,21 @@ public class PipTransition extends PipTransitionController {
if (sourceHintRect == null) {
// We use content overlay when there is no source rect hint to enter PiP use bounds
// animation.
- animator.setColorContentOverlay(mContext);
+ // TODO(b/272819817): cleanup the null-check and extra logging.
+ final boolean hasTopActivityInfo = taskInfo.topActivityInfo != null;
+ if (!hasTopActivityInfo) {
+ ProtoLog.w(ShellProtoLogGroup.WM_SHELL_TRANSITIONS,
+ "%s: TaskInfo.topActivityInfo is null", TAG);
+ }
+ if (SystemProperties.getBoolean(
+ "persist.wm.debug.enable_pip_app_icon_overlay", true)
+ && hasTopActivityInfo) {
+ animator.setAppIconContentOverlay(
+ mContext, currentBounds, taskInfo.topActivityInfo,
+ mPipBoundsState.getLauncherState().getAppIconSizePx());
+ } else {
+ animator.setColorContentOverlay(mContext);
+ }
}
} else if (mOneShotAnimationType == ANIM_TYPE_ALPHA) {
animator = mPipAnimationController.getAnimator(taskInfo, leash, destinationBounds,
@@ -817,7 +842,12 @@ public class PipTransition extends PipTransitionController {
/** Computes destination bounds in old rotation and updates source hint rect if available. */
private void computeEnterPipRotatedBounds(int rotationDelta, int startRotation, int endRotation,
TaskInfo taskInfo, Rect outDestinationBounds, @Nullable Rect outSourceHintRect) {
- mPipBoundsState.getDisplayLayout().rotateTo(mContext.getResources(), endRotation);
+ DisplayLayout layoutCopy = mPipBoundsState.getDisplayLayout();
+
+ layoutCopy.rotateTo(mContext.getResources(), endRotation);
+ mPipBoundsState.setDisplayLayout(layoutCopy);
+ mPipSizeSpecHandler.setDisplayLayout(layoutCopy);
+
final Rect displayBounds = mPipBoundsState.getDisplayBounds();
outDestinationBounds.set(mPipBoundsAlgorithm.getEntryDestinationBounds());
// Transform the destination bounds to current display coordinates.
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransitionState.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransitionState.java
index c6b5ce93fd35f022ad6f5b3704a538c8cfc4baa8..db6138a0891f7d1d8b127523899999e34141b655 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransitionState.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransitionState.java
@@ -93,6 +93,11 @@ public class PipTransitionState {
return hasEnteredPip(mState);
}
+ /** Returns true if activity is currently entering PiP mode. */
+ public boolean isEnteringPip() {
+ return isEnteringPip(mState);
+ }
+
public void setInSwipePipToHomeTransition(boolean inSwipePipToHomeTransition) {
mInSwipePipToHomeTransition = inSwipePipToHomeTransition;
}
@@ -130,6 +135,11 @@ public class PipTransitionState {
return state == ENTERED_PIP;
}
+ /** Returns true if activity is currently entering PiP mode. */
+ public static boolean isEnteringPip(@TransitionState int state) {
+ return state == ENTERING_PIP;
+ }
+
public interface OnPipTransitionStateChangedListener {
void onPipTransitionStateChanged(@TransitionState int oldState,
@TransitionState int newState);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipUiEventLogger.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipUiEventLogger.java
index 513ebba59258c3892c3624e49aee1c098bf03e1a..3e5a19b69a59dae59ade11ca58c5d815296a17f6 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipUiEventLogger.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipUiEventLogger.java
@@ -78,6 +78,12 @@ public class PipUiEventLogger {
@UiEvent(doc = "Activity enters picture-in-picture mode")
PICTURE_IN_PICTURE_ENTER(603),
+ @UiEvent(doc = "Activity enters picture-in-picture mode with auto-enter-pip API")
+ PICTURE_IN_PICTURE_AUTO_ENTER(1313),
+
+ @UiEvent(doc = "Activity enters picture-in-picture mode from content-pip API")
+ PICTURE_IN_PICTURE_ENTER_CONTENT_PIP(1314),
+
@UiEvent(doc = "Expands from picture-in-picture to fullscreen")
PICTURE_IN_PICTURE_EXPAND_TO_FULLSCREEN(604),
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipUtils.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipUtils.java
index fa0061982c45e3a6ddd65f91b116129eee922514..8b98790d34990d60f13d4f84beabb1652d3b05cc 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipUtils.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipUtils.java
@@ -18,6 +18,7 @@ package com.android.wm.shell.pip;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
+import static android.util.TypedValue.COMPLEX_UNIT_DIP;
import android.annotation.Nullable;
import android.app.ActivityTaskManager;
@@ -26,8 +27,10 @@ import android.app.RemoteAction;
import android.content.ComponentName;
import android.content.Context;
import android.os.RemoteException;
+import android.util.DisplayMetrics;
import android.util.Log;
import android.util.Pair;
+import android.util.TypedValue;
import android.window.TaskSnapshot;
import com.android.internal.protolog.common.ProtoLog;
@@ -69,6 +72,13 @@ public class PipUtils {
return new Pair<>(null, 0);
}
+ /**
+ * @return the pixels for a given dp value.
+ */
+ public static int dpToPx(float dpValue, DisplayMetrics dm) {
+ return (int) TypedValue.applyDimension(COMPLEX_UNIT_DIP, dpValue, dm);
+ }
+
/**
* @return true if the aspect ratios differ
*/
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PhonePipKeepClearAlgorithm.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PhonePipKeepClearAlgorithm.java
index 690505e03fce82d81432796d67dc448866070639..ed8dc7ded65483e072b4a6938c3a75dbfa7d981a 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PhonePipKeepClearAlgorithm.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PhonePipKeepClearAlgorithm.java
@@ -26,14 +26,14 @@ import android.view.Gravity;
import com.android.wm.shell.R;
import com.android.wm.shell.pip.PipBoundsAlgorithm;
import com.android.wm.shell.pip.PipBoundsState;
-import com.android.wm.shell.pip.PipKeepClearAlgorithm;
+import com.android.wm.shell.pip.PipKeepClearAlgorithmInterface;
import java.util.Set;
/**
* Calculates the adjusted position that does not occlude keep clear areas.
*/
-public class PhonePipKeepClearAlgorithm implements PipKeepClearAlgorithm {
+public class PhonePipKeepClearAlgorithm implements PipKeepClearAlgorithmInterface {
private boolean mKeepClearAreaGravityEnabled =
SystemProperties.getBoolean(
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PhonePipMenuController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PhonePipMenuController.java
index 281ea530e9e13860c7f9919fa2d8c7f3e866a6e9..431bd7b081423e70bbacc899bcae99dda3e9d9f4 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PhonePipMenuController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PhonePipMenuController.java
@@ -333,6 +333,9 @@ public class PhonePipMenuController implements PipMenuController {
mTmpDestinationRectF.set(destinationBounds);
mMoveTransform.setRectToRect(mTmpSourceRectF, mTmpDestinationRectF, Matrix.ScaleToFit.FILL);
final SurfaceControl surfaceControl = getSurfaceControl();
+ if (surfaceControl == null) {
+ return;
+ }
final SurfaceControl.Transaction menuTx =
mSurfaceControlTransactionFactory.getTransaction();
menuTx.setMatrix(surfaceControl, mMoveTransform, mTmpTransform);
@@ -359,6 +362,9 @@ public class PhonePipMenuController implements PipMenuController {
}
final SurfaceControl surfaceControl = getSurfaceControl();
+ if (surfaceControl == null) {
+ return;
+ }
final SurfaceControl.Transaction menuTx =
mSurfaceControlTransactionFactory.getTransaction();
menuTx.setCrop(surfaceControl, destinationBounds);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java
index 01d81ff4e436d1695b527f498a45818f4ca4a17b..2bd5f1c5817c451bf75e1312f2cb4614123d41e6 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java
@@ -43,11 +43,10 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
+import android.graphics.Point;
import android.graphics.Rect;
import android.os.RemoteException;
import android.os.SystemProperties;
-import android.os.UserHandle;
-import android.os.UserManager;
import android.util.Pair;
import android.util.Size;
import android.view.DisplayInfo;
@@ -73,6 +72,7 @@ import com.android.wm.shell.common.ExternalInterfaceBinder;
import com.android.wm.shell.common.RemoteCallable;
import com.android.wm.shell.common.ShellExecutor;
import com.android.wm.shell.common.SingleInstanceRemoteListener;
+import com.android.wm.shell.common.TabletopModeController;
import com.android.wm.shell.common.TaskStackListenerCallback;
import com.android.wm.shell.common.TaskStackListenerImpl;
import com.android.wm.shell.onehanded.OneHandedController;
@@ -85,7 +85,7 @@ import com.android.wm.shell.pip.PipAnimationController;
import com.android.wm.shell.pip.PipAppOpsListener;
import com.android.wm.shell.pip.PipBoundsAlgorithm;
import com.android.wm.shell.pip.PipBoundsState;
-import com.android.wm.shell.pip.PipKeepClearAlgorithm;
+import com.android.wm.shell.pip.PipKeepClearAlgorithmInterface;
import com.android.wm.shell.pip.PipMediaController;
import com.android.wm.shell.pip.PipParamsChangedForwarder;
import com.android.wm.shell.pip.PipSnapAlgorithm;
@@ -117,11 +117,13 @@ public class PipController implements PipTransitionController.PipTransitionCallb
UserChangeListener {
private static final String TAG = "PipController";
+ private static final String LAUNCHER_KEEP_CLEAR_AREA_TAG = "hotseat";
+
private static final long PIP_KEEP_CLEAR_AREAS_DELAY =
SystemProperties.getLong("persist.wm.debug.pip_keep_clear_areas_delay", 200);
private boolean mEnablePipKeepClearAlgorithm =
- SystemProperties.getBoolean("persist.wm.debug.enable_pip_keep_clear_algorithm", false);
+ SystemProperties.getBoolean("persist.wm.debug.enable_pip_keep_clear_algorithm", true);
@VisibleForTesting
void setEnablePipKeepClearAlgorithm(boolean value) {
@@ -137,14 +139,16 @@ public class PipController implements PipTransitionController.PipTransitionCallb
private PipAppOpsListener mAppOpsListener;
private PipMediaController mMediaController;
private PipBoundsAlgorithm mPipBoundsAlgorithm;
- private PipKeepClearAlgorithm mPipKeepClearAlgorithm;
+ private PipKeepClearAlgorithmInterface mPipKeepClearAlgorithm;
private PipBoundsState mPipBoundsState;
+ private PipSizeSpecHandler mPipSizeSpecHandler;
private PipMotionHelper mPipMotionHelper;
private PipTouchHandler mTouchHandler;
private PipTransitionController mPipTransitionController;
private TaskStackListenerImpl mTaskStackListener;
private PipParamsChangedForwarder mPipParamsChangedForwarder;
private DisplayInsetsController mDisplayInsetsController;
+ private TabletopModeController mTabletopModeController;
private Optional mOneHandedController;
private final ShellCommandHandler mShellCommandHandler;
private final ShellController mShellController;
@@ -157,6 +161,10 @@ public class PipController implements PipTransitionController.PipTransitionCallb
this::onKeepClearAreasChangedCallback;
private void onKeepClearAreasChangedCallback() {
+ if (mIsKeyguardShowingOrAnimating) {
+ // early bail out if the change was caused by keyguard showing up
+ return;
+ }
if (!mEnablePipKeepClearAlgorithm) {
// early bail out if the keep clear areas feature is disabled
return;
@@ -182,14 +190,24 @@ public class PipController implements PipTransitionController.PipTransitionCallb
// early bail out if the keep clear areas feature is disabled
return;
}
- // only move if already in pip, other transitions account for keep clear areas
- if (mPipTransitionState.hasEnteredPip()) {
+ if (mIsKeyguardShowingOrAnimating) {
+ // early bail out if the change was caused by keyguard showing up
+ return;
+ }
+ // only move if we're in PiP or transitioning into PiP
+ if (!mPipTransitionState.shouldBlockResizeRequest()) {
Rect destBounds = mPipKeepClearAlgorithm.adjust(mPipBoundsState,
mPipBoundsAlgorithm);
// only move if the bounds are actually different
- if (destBounds != mPipBoundsState.getBounds()) {
- mPipTaskOrganizer.scheduleAnimateResizePip(destBounds,
- mEnterAnimationDuration, null);
+ if (!destBounds.equals(mPipBoundsState.getBounds())) {
+ if (mPipTransitionState.hasEnteredPip()) {
+ // if already in PiP, schedule separate animation
+ mPipTaskOrganizer.scheduleAnimateResizePip(destBounds,
+ mEnterAnimationDuration, null);
+ } else if (mPipTransitionState.isEnteringPip()) {
+ // while entering PiP we just need to update animator bounds
+ mPipTaskOrganizer.updateAnimatorBounds(destBounds);
+ }
}
}
}
@@ -380,8 +398,9 @@ public class PipController implements PipTransitionController.PipTransitionCallb
PipAnimationController pipAnimationController,
PipAppOpsListener pipAppOpsListener,
PipBoundsAlgorithm pipBoundsAlgorithm,
- PipKeepClearAlgorithm pipKeepClearAlgorithm,
+ PipKeepClearAlgorithmInterface pipKeepClearAlgorithm,
PipBoundsState pipBoundsState,
+ PipSizeSpecHandler pipSizeSpecHandler,
PipMotionHelper pipMotionHelper,
PipMediaController pipMediaController,
PhonePipMenuController phonePipMenuController,
@@ -393,6 +412,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb
TaskStackListenerImpl taskStackListener,
PipParamsChangedForwarder pipParamsChangedForwarder,
DisplayInsetsController displayInsetsController,
+ TabletopModeController pipTabletopController,
Optional oneHandedController,
ShellExecutor mainExecutor) {
if (!context.getPackageManager().hasSystemFeature(FEATURE_PICTURE_IN_PICTURE)) {
@@ -403,11 +423,11 @@ public class PipController implements PipTransitionController.PipTransitionCallb
return new PipController(context, shellInit, shellCommandHandler, shellController,
displayController, pipAnimationController, pipAppOpsListener,
- pipBoundsAlgorithm, pipKeepClearAlgorithm, pipBoundsState, pipMotionHelper,
- pipMediaController, phonePipMenuController, pipTaskOrganizer, pipTransitionState,
- pipTouchHandler, pipTransitionController, windowManagerShellWrapper,
- taskStackListener, pipParamsChangedForwarder, displayInsetsController,
- oneHandedController, mainExecutor)
+ pipBoundsAlgorithm, pipKeepClearAlgorithm, pipBoundsState, pipSizeSpecHandler,
+ pipMotionHelper, pipMediaController, phonePipMenuController, pipTaskOrganizer,
+ pipTransitionState, pipTouchHandler, pipTransitionController,
+ windowManagerShellWrapper, taskStackListener, pipParamsChangedForwarder,
+ displayInsetsController, pipTabletopController, oneHandedController, mainExecutor)
.mImpl;
}
@@ -419,8 +439,9 @@ public class PipController implements PipTransitionController.PipTransitionCallb
PipAnimationController pipAnimationController,
PipAppOpsListener pipAppOpsListener,
PipBoundsAlgorithm pipBoundsAlgorithm,
- PipKeepClearAlgorithm pipKeepClearAlgorithm,
+ PipKeepClearAlgorithmInterface pipKeepClearAlgorithm,
@NonNull PipBoundsState pipBoundsState,
+ PipSizeSpecHandler pipSizeSpecHandler,
PipMotionHelper pipMotionHelper,
PipMediaController pipMediaController,
PhonePipMenuController phonePipMenuController,
@@ -432,6 +453,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb
TaskStackListenerImpl taskStackListener,
PipParamsChangedForwarder pipParamsChangedForwarder,
DisplayInsetsController displayInsetsController,
+ TabletopModeController tabletopModeController,
Optional oneHandedController,
ShellExecutor mainExecutor
) {
@@ -446,6 +468,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb
mPipBoundsAlgorithm = pipBoundsAlgorithm;
mPipKeepClearAlgorithm = pipKeepClearAlgorithm;
mPipBoundsState = pipBoundsState;
+ mPipSizeSpecHandler = pipSizeSpecHandler;
mPipMotionHelper = pipMotionHelper;
mPipTaskOrganizer = pipTaskOrganizer;
mPipTransitionState = pipTransitionState;
@@ -463,6 +486,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb
.getInteger(R.integer.config_pipEnterAnimationDuration);
mPipParamsChangedForwarder = pipParamsChangedForwarder;
mDisplayInsetsController = displayInsetsController;
+ mTabletopModeController = tabletopModeController;
shellInit.addInitCallback(this::onInit, this);
}
@@ -514,7 +538,10 @@ public class PipController implements PipTransitionController.PipTransitionCallb
// Ensure that we have the display info in case we get calls to update the bounds before the
// listener calls back
mPipBoundsState.setDisplayId(mContext.getDisplayId());
- mPipBoundsState.setDisplayLayout(new DisplayLayout(mContext, mContext.getDisplay()));
+
+ DisplayLayout layout = new DisplayLayout(mContext, mContext.getDisplay());
+ mPipSizeSpecHandler.setDisplayLayout(layout);
+ mPipBoundsState.setDisplayLayout(layout);
try {
mWindowManagerShellWrapper.addPinnedStackListener(mPinnedTaskListener);
@@ -565,8 +592,12 @@ public class PipController implements PipTransitionController.PipTransitionCallb
if (task.getWindowingMode() != WINDOWING_MODE_PINNED) {
return;
}
- mTouchHandler.getMotionHelper().expandLeavePip(
- clearedTask /* skipAnimation */);
+ if (mPipTaskOrganizer.isLaunchToSplit(task)) {
+ mTouchHandler.getMotionHelper().expandIntoSplit();
+ } else {
+ mTouchHandler.getMotionHelper().expandLeavePip(
+ clearedTask /* skipAnimation */);
+ }
}
});
@@ -612,13 +643,15 @@ public class PipController implements PipTransitionController.PipTransitionCallb
DisplayLayout pendingLayout =
mDisplayController.getDisplayLayout(mPipBoundsState.getDisplayId());
if (mIsInFixedRotation
+ || mIsKeyguardShowingOrAnimating
|| pendingLayout.rotation()
!= mPipBoundsState.getDisplayLayout().rotation()) {
- // bail out if there is a pending rotation or fixed rotation change
+ // bail out if there is a pending rotation or fixed rotation change or
+ // there's a keyguard present
return;
}
int oldMaxMovementBound = mPipBoundsState.getMovementBounds().bottom;
- onDisplayChanged(
+ onDisplayChangedUncheck(
mDisplayController.getDisplayLayout(mPipBoundsState.getDisplayId()),
false /* saveRestoreSnapFraction */);
int newMaxMovementBound = mPipBoundsState.getMovementBounds().bottom;
@@ -639,6 +672,42 @@ public class PipController implements PipTransitionController.PipTransitionCallb
}
});
+ mTabletopModeController.registerOnTabletopModeChangedListener((isInTabletopMode) -> {
+ if (!mTabletopModeController.enableMoveFloatingWindowInTabletop()) return;
+ final String tag = "tabletop-mode";
+ if (!isInTabletopMode) {
+ mPipBoundsState.removeNamedUnrestrictedKeepClearArea(tag);
+ return;
+ }
+
+ // To prepare for the entry bounds.
+ final Rect displayBounds = mPipBoundsState.getDisplayBounds();
+ if (mTabletopModeController.getPreferredHalfInTabletopMode()
+ == TabletopModeController.PREFERRED_TABLETOP_HALF_TOP) {
+ // Prefer top, avoid the bottom half of the display.
+ mPipBoundsState.addNamedUnrestrictedKeepClearArea(tag, new Rect(
+ displayBounds.left, displayBounds.centerY(),
+ displayBounds.right, displayBounds.bottom));
+ } else {
+ // Prefer bottom, avoid the top half of the display.
+ mPipBoundsState.addNamedUnrestrictedKeepClearArea(tag, new Rect(
+ displayBounds.left, displayBounds.top,
+ displayBounds.right, displayBounds.centerY()));
+ }
+
+ // Try to move the PiP window if we have entered PiP mode.
+ if (mPipTransitionState.hasEnteredPip()) {
+ final Rect pipBounds = mPipBoundsState.getBounds();
+ final Point edgeInsets = mPipSizeSpecHandler.getScreenEdgeInsets();
+ if ((pipBounds.height() + 2 * edgeInsets.y) > (displayBounds.height() / 2)) {
+ // PiP bounds is too big to fit either half, bail early.
+ return;
+ }
+ mMainExecutor.removeCallbacks(mMovePipInResponseToKeepClearAreasChangeCallback);
+ mMainExecutor.execute(mMovePipInResponseToKeepClearAreasChangeCallback);
+ }
+ });
+
mOneHandedController.ifPresent(controller -> {
controller.registerTransitionCallback(
new OneHandedTransitionCallback() {
@@ -688,6 +757,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb
mPipBoundsAlgorithm.onConfigurationChanged(mContext);
mTouchHandler.onConfigurationChanged();
mPipBoundsState.onConfigurationChanged();
+ mPipSizeSpecHandler.onConfigurationChanged();
}
@Override
@@ -704,13 +774,26 @@ public class PipController implements PipTransitionController.PipTransitionCallb
}
private void onDisplayChanged(DisplayLayout layout, boolean saveRestoreSnapFraction) {
- if (mPipBoundsState.getDisplayLayout().isSameGeometry(layout)) {
- return;
+ if (!mPipBoundsState.getDisplayLayout().isSameGeometry(layout)) {
+ PipAnimationController.PipTransitionAnimator animator =
+ mPipAnimationController.getCurrentAnimator();
+ if (animator != null && animator.isRunning()) {
+ // cancel any running animator, as it is using stale display layout information
+ animator.cancel();
+ }
+ onDisplayChangedUncheck(layout, saveRestoreSnapFraction);
}
+ }
+
+ private void onDisplayChangedUncheck(DisplayLayout layout, boolean saveRestoreSnapFraction) {
Runnable updateDisplayLayout = () -> {
final boolean fromRotation = Transitions.ENABLE_SHELL_TRANSITIONS
&& mPipBoundsState.getDisplayLayout().rotation() != layout.rotation();
+
+ // update the internal state of objects subscribed to display changes
+ mPipSizeSpecHandler.setDisplayLayout(layout);
mPipBoundsState.setDisplayLayout(layout);
+
final WindowContainerTransaction wct =
fromRotation ? new WindowContainerTransaction() : null;
updateMovementBounds(null /* toBounds */,
@@ -814,7 +897,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb
@Override
public void onKeyguardVisibilityChanged(boolean visible, boolean occluded,
boolean animatingDismiss) {
- if (!mPipTaskOrganizer.isInPip()) {
+ if (!mPipTransitionState.hasEnteredPip()) {
return;
}
if (visible) {
@@ -851,6 +934,23 @@ public class PipController implements PipTransitionController.PipTransitionCallb
}
}
+ private void setLauncherKeepClearAreaHeight(boolean visible, int height) {
+ if (visible) {
+ Rect rect = new Rect(
+ 0, mPipBoundsState.getDisplayBounds().bottom - height,
+ mPipBoundsState.getDisplayBounds().right,
+ mPipBoundsState.getDisplayBounds().bottom);
+ mPipBoundsState.addNamedUnrestrictedKeepClearArea(LAUNCHER_KEEP_CLEAR_AREA_TAG, rect);
+ } else {
+ mPipBoundsState.removeNamedUnrestrictedKeepClearArea(LAUNCHER_KEEP_CLEAR_AREA_TAG);
+ }
+ updatePipPositionForKeepClearAreas();
+ }
+
+ private void setLauncherAppIconSize(int iconSizePx) {
+ mPipBoundsState.getLauncherState().setAppIconSizePx(iconSizePx);
+ }
+
private void setOnIsInPipStateChangedListener(Consumer callback) {
mOnIsInPipStateChangedListener = callback;
if (mOnIsInPipStateChangedListener != null) {
@@ -1019,7 +1119,11 @@ public class PipController implements PipTransitionController.PipTransitionCallb
private void onDisplayRotationChangedNotInPip(Context context, int toRotation) {
// Update the display layout, note that we have to do this on every rotation even if we
// aren't in PIP since we need to update the display layout to get the right resources
- mPipBoundsState.getDisplayLayout().rotateTo(context.getResources(), toRotation);
+ DisplayLayout layoutCopy = mPipBoundsState.getDisplayLayout();
+
+ layoutCopy.rotateTo(context.getResources(), toRotation);
+ mPipBoundsState.setDisplayLayout(layoutCopy);
+ mPipSizeSpecHandler.setDisplayLayout(layoutCopy);
}
/**
@@ -1056,7 +1160,11 @@ public class PipController implements PipTransitionController.PipTransitionCallb
mPipBoundsState.getStashedState());
// Update the display layout
- mPipBoundsState.getDisplayLayout().rotateTo(context.getResources(), toRotation);
+ DisplayLayout layoutCopy = mPipBoundsState.getDisplayLayout();
+
+ layoutCopy.rotateTo(context.getResources(), toRotation);
+ mPipBoundsState.setDisplayLayout(layoutCopy);
+ mPipSizeSpecHandler.setDisplayLayout(layoutCopy);
// Calculate the stack bounds in the new orientation based on same fraction along the
// rotated movement bounds.
@@ -1082,6 +1190,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb
mPipTaskOrganizer.dump(pw, innerPrefix);
mPipBoundsState.dump(pw, innerPrefix);
mPipInputConsumer.dump(pw, innerPrefix);
+ mPipSizeSpecHandler.dump(pw, innerPrefix);
}
/**
@@ -1190,18 +1299,26 @@ public class PipController implements PipTransitionController.PipTransitionCallb
public void stopSwipePipToHome(int taskId, ComponentName componentName,
Rect destinationBounds, SurfaceControl overlay) {
executeRemoteCallWithTaskPermission(mController, "stopSwipePipToHome",
- (controller) -> {
- controller.stopSwipePipToHome(taskId, componentName, destinationBounds,
- overlay);
- });
+ (controller) -> controller.stopSwipePipToHome(
+ taskId, componentName, destinationBounds, overlay));
}
@Override
public void setShelfHeight(boolean visible, int height) {
executeRemoteCallWithTaskPermission(mController, "setShelfHeight",
- (controller) -> {
- controller.setShelfHeight(visible, height);
- });
+ (controller) -> controller.setShelfHeight(visible, height));
+ }
+
+ @Override
+ public void setLauncherKeepClearAreaHeight(boolean visible, int height) {
+ executeRemoteCallWithTaskPermission(mController, "setLauncherKeepClearAreaHeight",
+ (controller) -> controller.setLauncherKeepClearAreaHeight(visible, height));
+ }
+
+ @Override
+ public void setLauncherAppIconSize(int iconSizePx) {
+ executeRemoteCallWithTaskPermission(mController, "setLauncherAppIconSize",
+ (controller) -> controller.setLauncherAppIconSize(iconSizePx));
}
@Override
@@ -1219,9 +1336,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb
@Override
public void setPipAnimationTypeToAlpha() {
executeRemoteCallWithTaskPermission(mController, "setPipAnimationTypeToAlpha",
- (controller) -> {
- controller.setPinnedStackAnimationType(ANIM_TYPE_ALPHA);
- });
+ (controller) -> controller.setPinnedStackAnimationType(ANIM_TYPE_ALPHA));
}
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipDismissTargetHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipDismissTargetHandler.java
index 7619646804ad3ffc6ccd485476d7060e1f7510fd..9729a4007bac762169d20e85a4e8a1bc76a2bd6a 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipDismissTargetHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipDismissTargetHandler.java
@@ -235,21 +235,14 @@ public class PipDismissTargetHandler implements ViewTreeObserver.OnPreDrawListen
/** Adds the magnetic target view to the WindowManager so it's ready to be animated in. */
public void createOrUpdateDismissTarget() {
- if (!mTargetViewContainer.isAttachedToWindow()) {
+ if (mTargetViewContainer.getParent() == null) {
mTargetViewContainer.cancelAnimators();
mTargetViewContainer.setVisibility(View.INVISIBLE);
mTargetViewContainer.getViewTreeObserver().removeOnPreDrawListener(this);
mHasDismissTargetSurface = false;
- try {
- mWindowManager.addView(mTargetViewContainer, getDismissTargetLayoutParams());
- } catch (IllegalStateException e) {
- // This shouldn't happen, but if the target is already added, just update its layout
- // params.
- mWindowManager.updateViewLayout(
- mTargetViewContainer, getDismissTargetLayoutParams());
- }
+ mWindowManager.addView(mTargetViewContainer, getDismissTargetLayoutParams());
} else {
mWindowManager.updateViewLayout(mTargetViewContainer, getDismissTargetLayoutParams());
}
@@ -306,7 +299,7 @@ public class PipDismissTargetHandler implements ViewTreeObserver.OnPreDrawListen
* Removes the dismiss target and cancels any pending callbacks to show it.
*/
public void cleanUpDismissTarget() {
- if (mTargetViewContainer.isAttachedToWindow()) {
+ if (mTargetViewContainer.getParent() != null) {
mWindowManager.removeViewImmediate(mTargetViewContainer);
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMenuView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMenuView.java
index 979b7c7dc31f4cbf80580fe44235aef4dca0ff26..167c0321d3ad2f9a1aa6bfa494d66b4bf0066f46 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMenuView.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipMenuView.java
@@ -282,7 +282,8 @@ public class PipMenuView extends FrameLayout {
public void onFocusTaskChanged(ActivityManager.RunningTaskInfo taskInfo) {
final boolean isSplitScreen = mSplitScreenControllerOptional.isPresent()
- && mSplitScreenControllerOptional.get().isTaskInSplitScreen(taskInfo.taskId);
+ && mSplitScreenControllerOptional.get().isTaskInSplitScreenForeground(
+ taskInfo.taskId);
mFocusedTaskAllowSplitScreen = isSplitScreen
|| (taskInfo.getWindowingMode() == WINDOWING_MODE_FULLSCREEN
&& taskInfo.supportsMultiWindow
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipResizeGestureHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipResizeGestureHandler.java
index 41ff0b35a0359354fe8c34487ebcd91d0c3eab13..3e83c5fcf9a0818a99986ef1e4d7b680ee489601 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipResizeGestureHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipResizeGestureHandler.java
@@ -580,8 +580,16 @@ public class PipResizeGestureHandler {
final float snapFraction = mPipBoundsAlgorithm.getSnapFraction(
mLastResizeBounds, movementBounds);
mPipBoundsAlgorithm.applySnapFraction(mLastResizeBounds, snapFraction);
+
+ // disable the pinch resizing until the final bounds are updated
+ final boolean prevEnablePinchResize = mEnablePinchResize;
+ mEnablePinchResize = false;
+
mPipTaskOrganizer.scheduleAnimateResizePip(startBounds, mLastResizeBounds,
- PINCH_RESIZE_SNAP_DURATION, mAngle, mUpdateResizeBoundsCallback);
+ PINCH_RESIZE_SNAP_DURATION, mAngle, mUpdateResizeBoundsCallback, () -> {
+ // reset the pinch resizing to its default state
+ mEnablePinchResize = prevEnablePinchResize;
+ });
} else {
mPipTaskOrganizer.scheduleFinishResizePip(mLastResizeBounds,
PipAnimationController.TRANSITION_DIRECTION_USER_RESIZE,
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipSizeSpecHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipSizeSpecHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..ff5138d4bb91543f8caf043189a2f76ec30f7fd0
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipSizeSpecHandler.java
@@ -0,0 +1,530 @@
+/*
+ * Copyright (C) 2022 The Android Open Source 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.
+ */
+
+package com.android.wm.shell.pip.phone;
+
+import static com.android.wm.shell.pip.PipUtils.dpToPx;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Point;
+import android.graphics.PointF;
+import android.graphics.Rect;
+import android.os.SystemProperties;
+import android.util.Size;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.wm.shell.R;
+import com.android.wm.shell.common.DisplayLayout;
+
+import java.io.PrintWriter;
+
+/**
+ * Acts as a source of truth for appropriate size spec for PIP.
+ */
+public class PipSizeSpecHandler {
+ private static final String TAG = PipSizeSpecHandler.class.getSimpleName();
+
+ @NonNull private final DisplayLayout mDisplayLayout = new DisplayLayout();
+
+ @VisibleForTesting
+ final SizeSpecSource mSizeSpecSourceImpl;
+
+ /** The preferred minimum (and default minimum) size specified by apps. */
+ @Nullable private Size mOverrideMinSize;
+ private int mOverridableMinSize;
+
+ /** Used to store values obtained from resource files. */
+ private Point mScreenEdgeInsets;
+ private float mMinAspectRatioForMinSize;
+ private float mMaxAspectRatioForMinSize;
+ private int mDefaultMinSize;
+
+ @NonNull private final Context mContext;
+
+ private interface SizeSpecSource {
+ /** Returns max size allowed for the PIP window */
+ Size getMaxSize(float aspectRatio);
+
+ /** Returns default size for the PIP window */
+ Size getDefaultSize(float aspectRatio);
+
+ /** Returns min size allowed for the PIP window */
+ Size getMinSize(float aspectRatio);
+
+ /** Returns the adjusted size based on current size and target aspect ratio */
+ Size getSizeForAspectRatio(Size size, float aspectRatio);
+
+ /** Updates internal resources on configuration changes */
+ default void reloadResources() {}
+ }
+
+ /**
+ * Determines PIP window size optimized for large screens and aspect ratios close to 1:1
+ */
+ private class SizeSpecLargeScreenOptimizedImpl implements SizeSpecSource {
+ private static final float DEFAULT_OPTIMIZED_ASPECT_RATIO = 9f / 16;
+
+ /** Default and minimum percentages for the PIP size logic. */
+ private final float mDefaultSizePercent;
+ private final float mMinimumSizePercent;
+
+ /** Aspect ratio that the PIP size spec logic optimizes for. */
+ private float mOptimizedAspectRatio;
+
+ private SizeSpecLargeScreenOptimizedImpl() {
+ mDefaultSizePercent = Float.parseFloat(SystemProperties
+ .get("com.android.wm.shell.pip.phone.def_percentage", "0.6"));
+ mMinimumSizePercent = Float.parseFloat(SystemProperties
+ .get("com.android.wm.shell.pip.phone.min_percentage", "0.5"));
+ }
+
+ @Override
+ public void reloadResources() {
+ final Resources res = mContext.getResources();
+
+ mOptimizedAspectRatio = res.getFloat(R.dimen.config_pipLargeScreenOptimizedAspectRatio);
+ // make sure the optimized aspect ratio is valid with a default value to fall back to
+ if (mOptimizedAspectRatio > 1) {
+ mOptimizedAspectRatio = DEFAULT_OPTIMIZED_ASPECT_RATIO;
+ }
+ }
+
+ /**
+ * Calculates the max size of PIP.
+ *
+ * Optimizes for 16:9 aspect ratios, making them take full length of shortest display edge.
+ * As aspect ratio approaches values close to 1:1, the logic does not let PIP occupy the
+ * whole screen. A linear function is used to calculate these sizes.
+ *
+ * @param aspectRatio aspect ratio of the PIP window
+ * @return dimensions of the max size of the PIP
+ */
+ @Override
+ public Size getMaxSize(float aspectRatio) {
+ final int totalHorizontalPadding = getInsetBounds().left
+ + (getDisplayBounds().width() - getInsetBounds().right);
+ final int totalVerticalPadding = getInsetBounds().top
+ + (getDisplayBounds().height() - getInsetBounds().bottom);
+
+ final int shorterLength = (int) (1f * Math.min(
+ getDisplayBounds().width() - totalHorizontalPadding,
+ getDisplayBounds().height() - totalVerticalPadding));
+
+ int maxWidth, maxHeight;
+
+ // use the optimized max sizing logic only within a certain aspect ratio range
+ if (aspectRatio >= mOptimizedAspectRatio && aspectRatio <= 1 / mOptimizedAspectRatio) {
+ // this formula and its derivation is explained in b/198643358#comment16
+ maxWidth = (int) (mOptimizedAspectRatio * shorterLength
+ + shorterLength * (aspectRatio - mOptimizedAspectRatio) / (1
+ + aspectRatio));
+ maxHeight = (int) (maxWidth / aspectRatio);
+ } else {
+ if (aspectRatio > 1f) {
+ maxWidth = shorterLength;
+ maxHeight = (int) (maxWidth / aspectRatio);
+ } else {
+ maxHeight = shorterLength;
+ maxWidth = (int) (maxHeight * aspectRatio);
+ }
+ }
+
+ return new Size(maxWidth, maxHeight);
+ }
+
+ /**
+ * Decreases the dimensions by a percentage relative to max size to get default size.
+ *
+ * @param aspectRatio aspect ratio of the PIP window
+ * @return dimensions of the default size of the PIP
+ */
+ @Override
+ public Size getDefaultSize(float aspectRatio) {
+ Size minSize = this.getMinSize(aspectRatio);
+
+ if (mOverrideMinSize != null) {
+ return minSize;
+ }
+
+ Size maxSize = this.getMaxSize(aspectRatio);
+
+ int defaultWidth = Math.max((int) (maxSize.getWidth() * mDefaultSizePercent),
+ minSize.getWidth());
+ int defaultHeight = Math.max((int) (maxSize.getHeight() * mDefaultSizePercent),
+ minSize.getHeight());
+
+ return new Size(defaultWidth, defaultHeight);
+ }
+
+ /**
+ * Decreases the dimensions by a certain percentage relative to max size to get min size.
+ *
+ * @param aspectRatio aspect ratio of the PIP window
+ * @return dimensions of the min size of the PIP
+ */
+ @Override
+ public Size getMinSize(float aspectRatio) {
+ // if there is an overridden min size provided, return that
+ if (mOverrideMinSize != null) {
+ return adjustOverrideMinSizeToAspectRatio(aspectRatio);
+ }
+
+ Size maxSize = this.getMaxSize(aspectRatio);
+
+ int minWidth = (int) (maxSize.getWidth() * mMinimumSizePercent);
+ int minHeight = (int) (maxSize.getHeight() * mMinimumSizePercent);
+
+ // make sure the calculated min size is not smaller than the allowed default min size
+ if (aspectRatio > 1f) {
+ minHeight = (int) Math.max(minHeight, mDefaultMinSize);
+ minWidth = (int) (minHeight * aspectRatio);
+ } else {
+ minWidth = (int) Math.max(minWidth, mDefaultMinSize);
+ minHeight = (int) (minWidth / aspectRatio);
+ }
+ return new Size(minWidth, minHeight);
+ }
+
+ /**
+ * Returns the size for target aspect ratio making sure new size conforms with the rules.
+ *
+ *
Recalculates the dimensions such that the target aspect ratio is achieved, while
+ * maintaining the same maximum size to current size ratio.
+ *
+ * @param size current size
+ * @param aspectRatio target aspect ratio
+ */
+ @Override
+ public Size getSizeForAspectRatio(Size size, float aspectRatio) {
+ float currAspectRatio = (float) size.getWidth() / size.getHeight();
+
+ // getting the percentage of the max size that current size takes
+ Size currentMaxSize = getMaxSize(currAspectRatio);
+ float currentPercent = (float) size.getWidth() / currentMaxSize.getWidth();
+
+ // getting the max size for the target aspect ratio
+ Size updatedMaxSize = getMaxSize(aspectRatio);
+
+ int width = Math.round(updatedMaxSize.getWidth() * currentPercent);
+ int height = Math.round(updatedMaxSize.getHeight() * currentPercent);
+
+ // adjust the dimensions if below allowed min edge size
+ if (width < getMinEdgeSize() && aspectRatio <= 1) {
+ width = getMinEdgeSize();
+ height = Math.round(width / aspectRatio);
+ } else if (height < getMinEdgeSize() && aspectRatio > 1) {
+ height = getMinEdgeSize();
+ width = Math.round(height * aspectRatio);
+ }
+
+ // reduce the dimensions of the updated size to the calculated percentage
+ return new Size(width, height);
+ }
+ }
+
+ private class SizeSpecDefaultImpl implements SizeSpecSource {
+ private float mDefaultSizePercent;
+ private float mMinimumSizePercent;
+
+ @Override
+ public void reloadResources() {
+ final Resources res = mContext.getResources();
+
+ mMaxAspectRatioForMinSize = res.getFloat(
+ R.dimen.config_pictureInPictureAspectRatioLimitForMinSize);
+ mMinAspectRatioForMinSize = 1f / mMaxAspectRatioForMinSize;
+
+ mDefaultSizePercent = res.getFloat(R.dimen.config_pictureInPictureDefaultSizePercent);
+ mMinimumSizePercent = res.getFraction(R.fraction.config_pipShortestEdgePercent, 1, 1);
+ }
+
+ @Override
+ public Size getMaxSize(float aspectRatio) {
+ final int shorterLength = Math.min(getDisplayBounds().width(),
+ getDisplayBounds().height());
+
+ final int totalHorizontalPadding = getInsetBounds().left
+ + (getDisplayBounds().width() - getInsetBounds().right);
+ final int totalVerticalPadding = getInsetBounds().top
+ + (getDisplayBounds().height() - getInsetBounds().bottom);
+
+ final int maxWidth, maxHeight;
+
+ if (aspectRatio > 1f) {
+ maxWidth = (int) Math.max(getDefaultSize(aspectRatio).getWidth(),
+ shorterLength - totalHorizontalPadding);
+ maxHeight = (int) (maxWidth / aspectRatio);
+ } else {
+ maxHeight = (int) Math.max(getDefaultSize(aspectRatio).getHeight(),
+ shorterLength - totalVerticalPadding);
+ maxWidth = (int) (maxHeight * aspectRatio);
+ }
+
+ return new Size(maxWidth, maxHeight);
+ }
+
+ @Override
+ public Size getDefaultSize(float aspectRatio) {
+ if (mOverrideMinSize != null) {
+ return this.getMinSize(aspectRatio);
+ }
+
+ final int smallestDisplaySize = Math.min(getDisplayBounds().width(),
+ getDisplayBounds().height());
+ final int minSize = (int) Math.max(getMinEdgeSize(),
+ smallestDisplaySize * mDefaultSizePercent);
+
+ final int width;
+ final int height;
+
+ if (aspectRatio <= mMinAspectRatioForMinSize
+ || aspectRatio > mMaxAspectRatioForMinSize) {
+ // Beyond these points, we can just use the min size as the shorter edge
+ if (aspectRatio <= 1) {
+ // Portrait, width is the minimum size
+ width = minSize;
+ height = Math.round(width / aspectRatio);
+ } else {
+ // Landscape, height is the minimum size
+ height = minSize;
+ width = Math.round(height * aspectRatio);
+ }
+ } else {
+ // Within these points, ensure that the bounds fit within the radius of the limits
+ // at the points
+ final float widthAtMaxAspectRatioForMinSize = mMaxAspectRatioForMinSize * minSize;
+ final float radius = PointF.length(widthAtMaxAspectRatioForMinSize, minSize);
+ height = (int) Math.round(Math.sqrt((radius * radius)
+ / (aspectRatio * aspectRatio + 1)));
+ width = Math.round(height * aspectRatio);
+ }
+
+ return new Size(width, height);
+ }
+
+ @Override
+ public Size getMinSize(float aspectRatio) {
+ if (mOverrideMinSize != null) {
+ return adjustOverrideMinSizeToAspectRatio(aspectRatio);
+ }
+
+ final int shorterLength = Math.min(getDisplayBounds().width(),
+ getDisplayBounds().height());
+ final int minWidth, minHeight;
+
+ if (aspectRatio > 1f) {
+ minWidth = (int) Math.min(getDefaultSize(aspectRatio).getWidth(),
+ shorterLength * mMinimumSizePercent);
+ minHeight = (int) (minWidth / aspectRatio);
+ } else {
+ minHeight = (int) Math.min(getDefaultSize(aspectRatio).getHeight(),
+ shorterLength * mMinimumSizePercent);
+ minWidth = (int) (minHeight * aspectRatio);
+ }
+
+ return new Size(minWidth, minHeight);
+ }
+
+ @Override
+ public Size getSizeForAspectRatio(Size size, float aspectRatio) {
+ final int smallestSize = Math.min(size.getWidth(), size.getHeight());
+ final int minSize = Math.max(getMinEdgeSize(), smallestSize);
+
+ final int width;
+ final int height;
+ if (aspectRatio <= 1) {
+ // Portrait, width is the minimum size.
+ width = minSize;
+ height = Math.round(width / aspectRatio);
+ } else {
+ // Landscape, height is the minimum size
+ height = minSize;
+ width = Math.round(height * aspectRatio);
+ }
+
+ return new Size(width, height);
+ }
+ }
+
+ public PipSizeSpecHandler(Context context) {
+ mContext = context;
+
+ boolean enablePipSizeLargeScreen = SystemProperties
+ .getBoolean("persist.wm.debug.enable_pip_size_large_screen", true);
+
+ // choose between two implementations of size spec logic
+ if (enablePipSizeLargeScreen) {
+ mSizeSpecSourceImpl = new SizeSpecLargeScreenOptimizedImpl();
+ } else {
+ mSizeSpecSourceImpl = new SizeSpecDefaultImpl();
+ }
+
+ reloadResources();
+ }
+
+ /** Reloads the resources */
+ public void onConfigurationChanged() {
+ reloadResources();
+ }
+
+ private void reloadResources() {
+ final Resources res = mContext.getResources();
+
+ mDefaultMinSize = res.getDimensionPixelSize(
+ R.dimen.default_minimal_size_pip_resizable_task);
+ mOverridableMinSize = res.getDimensionPixelSize(
+ R.dimen.overridable_minimal_size_pip_resizable_task);
+
+ final String screenEdgeInsetsDpString = res.getString(
+ R.string.config_defaultPictureInPictureScreenEdgeInsets);
+ final Size screenEdgeInsetsDp = !screenEdgeInsetsDpString.isEmpty()
+ ? Size.parseSize(screenEdgeInsetsDpString)
+ : null;
+ mScreenEdgeInsets = screenEdgeInsetsDp == null ? new Point()
+ : new Point(dpToPx(screenEdgeInsetsDp.getWidth(), res.getDisplayMetrics()),
+ dpToPx(screenEdgeInsetsDp.getHeight(), res.getDisplayMetrics()));
+
+ // update the internal resources of the size spec source's stub
+ mSizeSpecSourceImpl.reloadResources();
+ }
+
+ /** Returns the display's bounds. */
+ @NonNull
+ public Rect getDisplayBounds() {
+ return new Rect(0, 0, mDisplayLayout.width(), mDisplayLayout.height());
+ }
+
+ /** Update the display layout. */
+ public void setDisplayLayout(@NonNull DisplayLayout displayLayout) {
+ mDisplayLayout.set(displayLayout);
+ }
+
+ public Point getScreenEdgeInsets() {
+ return mScreenEdgeInsets;
+ }
+
+ /**
+ * Returns the inset bounds the PIP window can be visible in.
+ */
+ public Rect getInsetBounds() {
+ Rect insetBounds = new Rect();
+ Rect insets = mDisplayLayout.stableInsets();
+ insetBounds.set(insets.left + mScreenEdgeInsets.x,
+ insets.top + mScreenEdgeInsets.y,
+ mDisplayLayout.width() - insets.right - mScreenEdgeInsets.x,
+ mDisplayLayout.height() - insets.bottom - mScreenEdgeInsets.y);
+ return insetBounds;
+ }
+
+ /** Sets the preferred size of PIP as specified by the activity in PIP mode. */
+ public void setOverrideMinSize(@Nullable Size overrideMinSize) {
+ mOverrideMinSize = overrideMinSize;
+ }
+
+ /** Returns the preferred minimal size specified by the activity in PIP. */
+ @Nullable
+ public Size getOverrideMinSize() {
+ if (mOverrideMinSize != null
+ && (mOverrideMinSize.getWidth() < mOverridableMinSize
+ || mOverrideMinSize.getHeight() < mOverridableMinSize)) {
+ return new Size(mOverridableMinSize, mOverridableMinSize);
+ }
+
+ return mOverrideMinSize;
+ }
+
+ /** Returns the minimum edge size of the override minimum size, or 0 if not set. */
+ public int getOverrideMinEdgeSize() {
+ if (mOverrideMinSize == null) return 0;
+ return Math.min(getOverrideMinSize().getWidth(), getOverrideMinSize().getHeight());
+ }
+
+ public int getMinEdgeSize() {
+ return mOverrideMinSize == null ? mDefaultMinSize : getOverrideMinEdgeSize();
+ }
+
+ /**
+ * Returns the size for the max size spec.
+ */
+ public Size getMaxSize(float aspectRatio) {
+ return mSizeSpecSourceImpl.getMaxSize(aspectRatio);
+ }
+
+ /**
+ * Returns the size for the default size spec.
+ */
+ public Size getDefaultSize(float aspectRatio) {
+ return mSizeSpecSourceImpl.getDefaultSize(aspectRatio);
+ }
+
+ /**
+ * Returns the size for the min size spec.
+ */
+ public Size getMinSize(float aspectRatio) {
+ return mSizeSpecSourceImpl.getMinSize(aspectRatio);
+ }
+
+ /**
+ * Returns the adjusted size so that it conforms to the given aspectRatio.
+ *
+ * @param size current size
+ * @param aspectRatio target aspect ratio
+ */
+ public Size getSizeForAspectRatio(@NonNull Size size, float aspectRatio) {
+ if (size.equals(mOverrideMinSize)) {
+ return adjustOverrideMinSizeToAspectRatio(aspectRatio);
+ }
+
+ return mSizeSpecSourceImpl.getSizeForAspectRatio(size, aspectRatio);
+ }
+
+ /**
+ * Returns the adjusted overridden min size if it is set; otherwise, returns null.
+ *
+ *
Overridden min size needs to be adjusted in its own way while making sure that the target
+ * aspect ratio is maintained
+ *
+ * @param aspectRatio target aspect ratio
+ */
+ @Nullable
+ @VisibleForTesting
+ Size adjustOverrideMinSizeToAspectRatio(float aspectRatio) {
+ if (mOverrideMinSize == null) {
+ return null;
+ }
+ final Size size = getOverrideMinSize();
+ final float sizeAspectRatio = size.getWidth() / (float) size.getHeight();
+ if (sizeAspectRatio > aspectRatio) {
+ // Size is wider, fix the width and increase the height
+ return new Size(size.getWidth(), (int) (size.getWidth() / aspectRatio));
+ } else {
+ // Size is taller, fix the height and adjust the width.
+ return new Size((int) (size.getHeight() * aspectRatio), size.getHeight());
+ }
+ }
+
+ /** Dumps internal state. */
+ public void dump(PrintWriter pw, String prefix) {
+ final String innerPrefix = prefix + " ";
+ pw.println(prefix + TAG);
+ pw.println(innerPrefix + "mSizeSpecSourceImpl=" + mSizeSpecSourceImpl.toString());
+ pw.println(innerPrefix + "mDisplayLayout=" + mDisplayLayout);
+ pw.println(innerPrefix + "mOverrideMinSize=" + mOverrideMinSize);
+ }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipTouchHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipTouchHandler.java
index 83bc7c0e6e7d985a098540049d664a4776267fd7..466da0e85358a25c2f272ff1d79593ba09fb536d 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipTouchHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipTouchHandler.java
@@ -71,14 +71,20 @@ public class PipTouchHandler {
private static final String TAG = "PipTouchHandler";
private static final float DEFAULT_STASH_VELOCITY_THRESHOLD = 18000.f;
- private static final boolean ENABLE_PIP_KEEP_CLEAR_ALGORITHM =
- SystemProperties.getBoolean("persist.wm.debug.enable_pip_keep_clear_algorithm", false);
+ private boolean mEnablePipKeepClearAlgorithm =
+ SystemProperties.getBoolean("persist.wm.debug.enable_pip_keep_clear_algorithm", true);
+
+ @VisibleForTesting
+ void setEnablePipKeepClearAlgorithm(boolean value) {
+ mEnablePipKeepClearAlgorithm = value;
+ }
// Allow PIP to resize to a slightly bigger state upon touch
private boolean mEnableResize;
private final Context mContext;
private final PipBoundsAlgorithm mPipBoundsAlgorithm;
- private final @NonNull PipBoundsState mPipBoundsState;
+ @NonNull private final PipBoundsState mPipBoundsState;
+ @NonNull private final PipSizeSpecHandler mPipSizeSpecHandler;
private final PipUiEventLogger mPipUiEventLogger;
private final PipDismissTargetHandler mPipDismissTargetHandler;
private final PipTaskOrganizer mPipTaskOrganizer;
@@ -99,7 +105,6 @@ public class PipTouchHandler {
// The reference inset bounds, used to determine the dismiss fraction
private final Rect mInsetBounds = new Rect();
- private int mExpandedShortestEdgeSize;
// Used to workaround an issue where the WM rotation happens before we are notified, allowing
// us to send stale bounds
@@ -120,7 +125,6 @@ public class PipTouchHandler {
private float mSavedSnapFraction = -1f;
private boolean mSendingHoverAccessibilityEvents;
private boolean mMovementWithinDismiss;
- private float mMinimumSizePercent;
// Touch state
private final PipTouchState mTouchState;
@@ -174,6 +178,7 @@ public class PipTouchHandler {
PhonePipMenuController menuController,
PipBoundsAlgorithm pipBoundsAlgorithm,
@NonNull PipBoundsState pipBoundsState,
+ @NonNull PipSizeSpecHandler pipSizeSpecHandler,
PipTaskOrganizer pipTaskOrganizer,
PipMotionHelper pipMotionHelper,
FloatingContentCoordinator floatingContentCoordinator,
@@ -184,6 +189,7 @@ public class PipTouchHandler {
mAccessibilityManager = context.getSystemService(AccessibilityManager.class);
mPipBoundsAlgorithm = pipBoundsAlgorithm;
mPipBoundsState = pipBoundsState;
+ mPipSizeSpecHandler = pipSizeSpecHandler;
mPipTaskOrganizer = pipTaskOrganizer;
mMenuController = menuController;
mPipUiEventLogger = pipUiEventLogger;
@@ -271,10 +277,7 @@ public class PipTouchHandler {
private void reloadResources() {
final Resources res = mContext.getResources();
mBottomOffsetBufferPx = res.getDimensionPixelSize(R.dimen.pip_bottom_offset_buffer);
- mExpandedShortestEdgeSize = res.getDimensionPixelSize(
- R.dimen.pip_expanded_shortest_edge_size);
mImeOffset = res.getDimensionPixelSize(R.dimen.pip_ime_offset);
- mMinimumSizePercent = res.getFraction(R.fraction.config_pipShortestEdgePercent, 1, 1);
mPipDismissTargetHandler.updateMagneticTargetSize();
}
@@ -337,8 +340,10 @@ public class PipTouchHandler {
mMotionHelper.synchronizePinnedStackBounds();
reloadResources();
- // Recreate the dismiss target for the new orientation.
- mPipDismissTargetHandler.createOrUpdateDismissTarget();
+ if (mPipTaskOrganizer.isInPip()) {
+ // Recreate the dismiss target for the new orientation.
+ mPipDismissTargetHandler.createOrUpdateDismissTarget();
+ }
}
public void onImeVisibilityChanged(boolean imeVisible, int imeHeight) {
@@ -405,10 +410,7 @@ public class PipTouchHandler {
// Calculate the expanded size
float aspectRatio = (float) normalBounds.width() / normalBounds.height();
- Point displaySize = new Point();
- mContext.getDisplay().getRealSize(displaySize);
- Size expandedSize = mPipBoundsAlgorithm.getSizeForAspectRatio(
- aspectRatio, mExpandedShortestEdgeSize, displaySize.x, displaySize.y);
+ Size expandedSize = mPipSizeSpecHandler.getDefaultSize(aspectRatio);
mPipBoundsState.setExpandedBounds(
new Rect(0, 0, expandedSize.getWidth(), expandedSize.getHeight()));
Rect expandedMovementBounds = new Rect();
@@ -416,7 +418,7 @@ public class PipTouchHandler {
mPipBoundsState.getExpandedBounds(), insetBounds, expandedMovementBounds,
bottomOffset);
- updatePipSizeConstraints(insetBounds, normalBounds, aspectRatio);
+ updatePipSizeConstraints(normalBounds, aspectRatio);
// The extra offset does not really affect the movement bounds, but are applied based on the
// current state (ime showing, or shelf offset) when we need to actually shift
@@ -430,7 +432,7 @@ public class PipTouchHandler {
if (mTouchState.isUserInteracting() && mTouchState.isDragging()) {
// Defer the update of the current movement bounds until after the user finishes
// touching the screen
- } else if (ENABLE_PIP_KEEP_CLEAR_ALGORITHM) {
+ } else if (mEnablePipKeepClearAlgorithm) {
// Ignore moving PiP if keep clear algorithm is enabled, since IME and shelf height
// now are accounted for in the keep clear algorithm calculations
} else {
@@ -494,14 +496,14 @@ public class PipTouchHandler {
* @param aspectRatio aspect ratio to use for the calculation of min/max size
*/
public void updateMinMaxSize(float aspectRatio) {
- updatePipSizeConstraints(mInsetBounds, mPipBoundsState.getNormalBounds(),
+ updatePipSizeConstraints(mPipBoundsState.getNormalBounds(),
aspectRatio);
}
- private void updatePipSizeConstraints(Rect insetBounds, Rect normalBounds,
+ private void updatePipSizeConstraints(Rect normalBounds,
float aspectRatio) {
if (mPipResizeGestureHandler.isUsingPinchToZoom()) {
- updatePinchResizeSizeConstraints(insetBounds, normalBounds, aspectRatio);
+ updatePinchResizeSizeConstraints(aspectRatio);
} else {
mPipResizeGestureHandler.updateMinSize(normalBounds.width(), normalBounds.height());
mPipResizeGestureHandler.updateMaxSize(mPipBoundsState.getExpandedBounds().width(),
@@ -509,26 +511,13 @@ public class PipTouchHandler {
}
}
- private void updatePinchResizeSizeConstraints(Rect insetBounds, Rect normalBounds,
- float aspectRatio) {
- final int shorterLength = Math.min(mPipBoundsState.getDisplayBounds().width(),
- mPipBoundsState.getDisplayBounds().height());
- final int totalHorizontalPadding = insetBounds.left
- + (mPipBoundsState.getDisplayBounds().width() - insetBounds.right);
- final int totalVerticalPadding = insetBounds.top
- + (mPipBoundsState.getDisplayBounds().height() - insetBounds.bottom);
+ private void updatePinchResizeSizeConstraints(float aspectRatio) {
final int minWidth, minHeight, maxWidth, maxHeight;
- if (aspectRatio > 1f) {
- minWidth = (int) Math.min(normalBounds.width(), shorterLength * mMinimumSizePercent);
- minHeight = (int) (minWidth / aspectRatio);
- maxWidth = (int) Math.max(normalBounds.width(), shorterLength - totalHorizontalPadding);
- maxHeight = (int) (maxWidth / aspectRatio);
- } else {
- minHeight = (int) Math.min(normalBounds.height(), shorterLength * mMinimumSizePercent);
- minWidth = (int) (minHeight * aspectRatio);
- maxHeight = (int) Math.max(normalBounds.height(), shorterLength - totalVerticalPadding);
- maxWidth = (int) (maxHeight * aspectRatio);
- }
+
+ minWidth = mPipSizeSpecHandler.getMinSize(aspectRatio).getWidth();
+ minHeight = mPipSizeSpecHandler.getMinSize(aspectRatio).getHeight();
+ maxWidth = mPipSizeSpecHandler.getMaxSize(aspectRatio).getWidth();
+ maxHeight = mPipSizeSpecHandler.getMaxSize(aspectRatio).getHeight();
mPipResizeGestureHandler.updateMinSize(minWidth, minHeight);
mPipResizeGestureHandler.updateMaxSize(maxWidth, maxHeight);
@@ -1062,11 +1051,6 @@ public class PipTouchHandler {
mPipBoundsAlgorithm.getMovementBounds(mPipBoundsState.getBounds(),
mInsetBounds, mPipBoundsState.getMovementBounds(), mIsImeShowing ? mImeHeight : 0);
mMotionHelper.onMovementBoundsChanged();
-
- boolean isMenuExpanded = mMenuState == MENU_STATE_FULL;
- mPipBoundsState.setMinEdgeSize(
- isMenuExpanded && willResizeMenu() ? mExpandedShortestEdgeSize
- : mPipBoundsAlgorithm.getDefaultMinSize());
}
private Rect getMovementBounds(Rect curBounds) {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipBoundsAlgorithm.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipBoundsAlgorithm.java
index ce34d2f9547dbee34d034ad7ee29dff71e323de2..22feb43ffd62e1e642aff9877a29865ff730cd63 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipBoundsAlgorithm.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipBoundsAlgorithm.java
@@ -39,8 +39,9 @@ import com.android.internal.protolog.common.ProtoLog;
import com.android.wm.shell.R;
import com.android.wm.shell.common.DisplayLayout;
import com.android.wm.shell.pip.PipBoundsAlgorithm;
-import com.android.wm.shell.pip.PipKeepClearAlgorithm;
+import com.android.wm.shell.pip.PipKeepClearAlgorithmInterface;
import com.android.wm.shell.pip.PipSnapAlgorithm;
+import com.android.wm.shell.pip.phone.PipSizeSpecHandler;
import com.android.wm.shell.pip.tv.TvPipKeepClearAlgorithm.Placement;
import com.android.wm.shell.protolog.ShellProtoLogGroup;
@@ -63,9 +64,10 @@ public class TvPipBoundsAlgorithm extends PipBoundsAlgorithm {
public TvPipBoundsAlgorithm(Context context,
@NonNull TvPipBoundsState tvPipBoundsState,
- @NonNull PipSnapAlgorithm pipSnapAlgorithm) {
+ @NonNull PipSnapAlgorithm pipSnapAlgorithm,
+ @NonNull PipSizeSpecHandler pipSizeSpecHandler) {
super(context, tvPipBoundsState, pipSnapAlgorithm,
- new PipKeepClearAlgorithm() {});
+ new PipKeepClearAlgorithmInterface() {}, pipSizeSpecHandler);
this.mTvPipBoundsState = tvPipBoundsState;
this.mKeepClearAlgorithm = new TvPipKeepClearAlgorithm();
reloadResources(context);
@@ -370,7 +372,8 @@ public class TvPipBoundsAlgorithm extends PipBoundsAlgorithm {
if (mTvPipBoundsState.getTvFixedPipOrientation() == ORIENTATION_HORIZONTAL) {
expandedSize = mTvPipBoundsState.getTvExpandedSize();
} else {
- int maxHeight = displayLayout.height() - (2 * mScreenEdgeInsets.y)
+ int maxHeight = displayLayout.height()
+ - (2 * mPipSizeSpecHandler.getScreenEdgeInsets().y)
- pipDecorations.top - pipDecorations.bottom;
float aspectRatioHeight = mFixedExpandedWidthInPx / expandedRatio;
@@ -393,7 +396,8 @@ public class TvPipBoundsAlgorithm extends PipBoundsAlgorithm {
if (mTvPipBoundsState.getTvFixedPipOrientation() == ORIENTATION_VERTICAL) {
expandedSize = mTvPipBoundsState.getTvExpandedSize();
} else {
- int maxWidth = displayLayout.width() - (2 * mScreenEdgeInsets.x)
+ int maxWidth = displayLayout.width()
+ - (2 * mPipSizeSpecHandler.getScreenEdgeInsets().x)
- pipDecorations.left - pipDecorations.right;
float aspectRatioWidth = mFixedExpandedHeightInPx * expandedRatio;
if (maxWidth > aspectRatioWidth) {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipBoundsState.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipBoundsState.java
index ca22882187d8feb50c6b1c3926df7be9846e24af..4e3ee51326c13213c1cbace45cd1f32a8214f1b8 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipBoundsState.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipBoundsState.java
@@ -30,6 +30,7 @@ import android.view.Gravity;
import com.android.wm.shell.pip.PipBoundsAlgorithm;
import com.android.wm.shell.pip.PipBoundsState;
+import com.android.wm.shell.pip.phone.PipSizeSpecHandler;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -64,8 +65,9 @@ public class TvPipBoundsState extends PipBoundsState {
private @NonNull Insets mPipMenuPermanentDecorInsets = Insets.NONE;
private @NonNull Insets mPipMenuTemporaryDecorInsets = Insets.NONE;
- public TvPipBoundsState(@NonNull Context context) {
- super(context);
+ public TvPipBoundsState(@NonNull Context context,
+ @NonNull PipSizeSpecHandler pipSizeSpecHandler) {
+ super(context, pipSizeSpecHandler);
mIsTvExpandedPipSupported = context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_EXPANDED_PICTURE_IN_PICTURE);
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipController.java
index 4e1b0469eb96079d87bb3f20b91f69674140d2ba..6bc666f074e9e4c52c9b94bf8aae7dc2d70b55ae 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipController.java
@@ -50,6 +50,7 @@ import com.android.wm.shell.pip.PipMediaController;
import com.android.wm.shell.pip.PipParamsChangedForwarder;
import com.android.wm.shell.pip.PipTaskOrganizer;
import com.android.wm.shell.pip.PipTransitionController;
+import com.android.wm.shell.pip.phone.PipSizeSpecHandler;
import com.android.wm.shell.protolog.ShellProtoLogGroup;
import com.android.wm.shell.sysui.ConfigurationChangeListener;
import com.android.wm.shell.sysui.ShellController;
@@ -102,6 +103,7 @@ public class TvPipController implements PipTransitionController.PipTransitionCal
private final ShellController mShellController;
private final TvPipBoundsState mTvPipBoundsState;
+ private final PipSizeSpecHandler mPipSizeSpecHandler;
private final TvPipBoundsAlgorithm mTvPipBoundsAlgorithm;
private final TvPipBoundsController mTvPipBoundsController;
private final PipAppOpsListener mAppOpsListener;
@@ -133,6 +135,7 @@ public class TvPipController implements PipTransitionController.PipTransitionCal
ShellInit shellInit,
ShellController shellController,
TvPipBoundsState tvPipBoundsState,
+ PipSizeSpecHandler pipSizeSpecHandler,
TvPipBoundsAlgorithm tvPipBoundsAlgorithm,
TvPipBoundsController tvPipBoundsController,
PipAppOpsListener pipAppOpsListener,
@@ -151,6 +154,7 @@ public class TvPipController implements PipTransitionController.PipTransitionCal
shellInit,
shellController,
tvPipBoundsState,
+ pipSizeSpecHandler,
tvPipBoundsAlgorithm,
tvPipBoundsController,
pipAppOpsListener,
@@ -171,6 +175,7 @@ public class TvPipController implements PipTransitionController.PipTransitionCal
ShellInit shellInit,
ShellController shellController,
TvPipBoundsState tvPipBoundsState,
+ PipSizeSpecHandler pipSizeSpecHandler,
TvPipBoundsAlgorithm tvPipBoundsAlgorithm,
TvPipBoundsController tvPipBoundsController,
PipAppOpsListener pipAppOpsListener,
@@ -189,9 +194,13 @@ public class TvPipController implements PipTransitionController.PipTransitionCal
mShellController = shellController;
mDisplayController = displayController;
+ DisplayLayout layout = new DisplayLayout(context, context.getDisplay());
+
mTvPipBoundsState = tvPipBoundsState;
+ mTvPipBoundsState.setDisplayLayout(layout);
mTvPipBoundsState.setDisplayId(context.getDisplayId());
- mTvPipBoundsState.setDisplayLayout(new DisplayLayout(context, context.getDisplay()));
+ mPipSizeSpecHandler = pipSizeSpecHandler;
+ mPipSizeSpecHandler.setDisplayLayout(layout);
mTvPipBoundsAlgorithm = tvPipBoundsAlgorithm;
mTvPipBoundsController = tvPipBoundsController;
mTvPipBoundsController.setListener(this);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipTaskOrganizer.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipTaskOrganizer.java
index 42fd1aab44f8902152d37970eaeaaeb50c848c4c..be9b9361b3590d6d665c8370e902708bff146d98 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipTaskOrganizer.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/tv/TvPipTaskOrganizer.java
@@ -36,6 +36,7 @@ import com.android.wm.shell.pip.PipTransitionController;
import com.android.wm.shell.pip.PipTransitionState;
import com.android.wm.shell.pip.PipUiEventLogger;
import com.android.wm.shell.pip.PipUtils;
+import com.android.wm.shell.pip.phone.PipSizeSpecHandler;
import com.android.wm.shell.splitscreen.SplitScreenController;
import java.util.Objects;
@@ -50,6 +51,7 @@ public class TvPipTaskOrganizer extends PipTaskOrganizer {
@NonNull SyncTransactionQueue syncTransactionQueue,
@NonNull PipTransitionState pipTransitionState,
@NonNull PipBoundsState pipBoundsState,
+ @NonNull PipSizeSpecHandler pipSizeSpecHandler,
@NonNull PipBoundsAlgorithm boundsHandler,
@NonNull PipMenuController pipMenuController,
@NonNull PipAnimationController pipAnimationController,
@@ -61,10 +63,11 @@ public class TvPipTaskOrganizer extends PipTaskOrganizer {
@NonNull PipUiEventLogger pipUiEventLogger,
@NonNull ShellTaskOrganizer shellTaskOrganizer,
ShellExecutor mainExecutor) {
- super(context, syncTransactionQueue, pipTransitionState, pipBoundsState, boundsHandler,
- pipMenuController, pipAnimationController, surfaceTransactionHelper,
- pipTransitionController, pipParamsChangedForwarder, splitScreenOptional,
- displayController, pipUiEventLogger, shellTaskOrganizer, mainExecutor);
+ super(context, syncTransactionQueue, pipTransitionState, pipBoundsState, pipSizeSpecHandler,
+ boundsHandler, pipMenuController, pipAnimationController,
+ surfaceTransactionHelper, pipTransitionController, pipParamsChangedForwarder,
+ splitScreenOptional, displayController, pipUiEventLogger, shellTaskOrganizer,
+ mainExecutor);
}
@Override
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/protolog/ShellProtoLogGroup.java b/libs/WindowManager/Shell/src/com/android/wm/shell/protolog/ShellProtoLogGroup.java
index 75f9a4c33af911935dd820d74d9a3f10aedf5953..c9b3a1af6507b9abb9481f6561009f149d51b3a7 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/protolog/ShellProtoLogGroup.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/protolog/ShellProtoLogGroup.java
@@ -50,6 +50,8 @@ public enum ShellProtoLogGroup implements IProtoLogGroup {
Consts.TAG_WM_SHELL),
WM_SHELL_FLOATING_APPS(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
Consts.TAG_WM_SHELL),
+ WM_SHELL_FOLDABLE(Consts.ENABLE_DEBUG, Consts.ENABLE_LOG_TO_PROTO_DEBUG, false,
+ Consts.TAG_WM_SHELL),
TEST_GROUP(true, true, false, "WindowManagerShellProtoLogTest");
private final boolean mEnabled;
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java
index 8490f9f156c70d7d4b09f99ed1c59b2730e53d4f..0d9faa3c6f83cf2bceca8d2c9b0e5b395dd27a49 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java
@@ -308,7 +308,6 @@ public class RecentTasksController implements TaskStackListenerCallback,
rawMapping.put(taskInfo.taskId, taskInfo);
}
- boolean desktopModeActive = DesktopModeStatus.isActive(mContext);
ArrayList freeformTasks = new ArrayList<>();
// Pull out the pairs as we iterate back in the list
@@ -320,7 +319,7 @@ public class RecentTasksController implements TaskStackListenerCallback,
continue;
}
- if (desktopModeActive && mDesktopModeTaskRepository.isPresent()
+ if (DesktopModeStatus.isProto2Enabled() && mDesktopModeTaskRepository.isPresent()
&& mDesktopModeTaskRepository.get().isActiveTask(taskInfo.taskId)) {
// Freeform tasks will be added as a separate entry
freeformTasks.add(taskInfo);
@@ -328,7 +327,7 @@ public class RecentTasksController implements TaskStackListenerCallback,
}
final int pairedTaskId = mSplitTasks.get(taskInfo.taskId);
- if (!desktopModeActive && pairedTaskId != INVALID_TASK_ID && rawMapping.contains(
+ if (pairedTaskId != INVALID_TASK_ID && rawMapping.contains(
pairedTaskId)) {
final ActivityManager.RecentTaskInfo pairedTaskInfo = rawMapping.get(pairedTaskId);
rawMapping.remove(pairedTaskId);
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/ISplitScreen.aidl b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/ISplitScreen.aidl
index 56aa742b8626f39ee3cdfa4cd01d8f22922a5c1c..81e118a31b73ffb36578c9c2ab1340e0f2fe63a6 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/ISplitScreen.aidl
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/ISplitScreen.aidl
@@ -122,9 +122,9 @@ interface ISplitScreen {
* Start a pair of intents using legacy transition system.
*/
oneway void startIntentsWithLegacyTransition(in PendingIntent pendingIntent1,
- in Bundle options1, in PendingIntent pendingIntent2, in Bundle options2,
- int splitPosition, float splitRatio, in RemoteAnimationAdapter adapter,
- in InstanceId instanceId) = 18;
+ in ShortcutInfo shortcutInfo1, in Bundle options1, in PendingIntent pendingIntent2,
+ in ShortcutInfo shortcutInfo2, in Bundle options2, int splitPosition, float splitRatio,
+ in RemoteAnimationAdapter adapter, in InstanceId instanceId) = 18;
/**
* Start a pair of intents in one transition.
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenController.java
index 38099fc51d8153bd042dfee8e4fdf2bce0ba89b4..7d5ab8428a3e7b137524290d6657e45d38df1198 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/SplitScreenController.java
@@ -18,6 +18,7 @@ package com.android.wm.shell.splitscreen;
import static android.app.ActivityManager.START_SUCCESS;
import static android.app.ActivityManager.START_TASK_TO_FRONT;
+import static android.app.ActivityTaskManager.INVALID_TASK_ID;
import static android.content.Intent.FLAG_ACTIVITY_MULTIPLE_TASK;
import static android.content.Intent.FLAG_ACTIVITY_NO_USER_ACTION;
import static android.view.Display.DEFAULT_DISPLAY;
@@ -27,7 +28,9 @@ import static com.android.wm.shell.common.ExecutorUtils.executeRemoteCallWithTas
import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_BOTTOM_OR_RIGHT;
import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_TOP_OR_LEFT;
import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_UNDEFINED;
-import static com.android.wm.shell.splitscreen.SplitScreen.STAGE_TYPE_SIDE;
+import static com.android.wm.shell.common.split.SplitScreenUtils.isValidToSplit;
+import static com.android.wm.shell.common.split.SplitScreenUtils.reverseSplitPosition;
+import static com.android.wm.shell.common.split.SplitScreenUtils.samePackage;
import static com.android.wm.shell.splitscreen.SplitScreen.STAGE_TYPE_UNDEFINED;
import static com.android.wm.shell.sysui.ShellSharedConstants.KEY_EXTRA_SHELL_SPLIT_SCREEN;
import static com.android.wm.shell.transition.Transitions.ENABLE_SHELL_TRANSITIONS;
@@ -38,11 +41,9 @@ import android.app.ActivityManager;
import android.app.ActivityOptions;
import android.app.ActivityTaskManager;
import android.app.PendingIntent;
-import android.content.ActivityNotFoundException;
-import android.content.ComponentName;
+import android.app.TaskInfo;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.LauncherApps;
import android.content.pm.ShortcutInfo;
import android.graphics.Rect;
import android.os.Bundle;
@@ -81,13 +82,12 @@ import com.android.wm.shell.common.SingleInstanceRemoteListener;
import com.android.wm.shell.common.SyncTransactionQueue;
import com.android.wm.shell.common.TransactionPool;
import com.android.wm.shell.common.annotations.ExternalThread;
-import com.android.wm.shell.common.split.SplitLayout;
import com.android.wm.shell.common.split.SplitScreenConstants.SplitPosition;
+import com.android.wm.shell.common.split.SplitScreenUtils;
import com.android.wm.shell.draganddrop.DragAndDropController;
import com.android.wm.shell.draganddrop.DragAndDropPolicy;
import com.android.wm.shell.protolog.ShellProtoLogGroup;
import com.android.wm.shell.recents.RecentTasksController;
-import com.android.wm.shell.splitscreen.SplitScreen.StageType;
import com.android.wm.shell.sysui.KeyguardChangeListener;
import com.android.wm.shell.sysui.ShellCommandHandler;
import com.android.wm.shell.sysui.ShellController;
@@ -317,10 +317,6 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
return mStageCoordinator;
}
- public boolean isValidToEnterSplitScreen(@NonNull ActivityManager.RunningTaskInfo taskInfo) {
- return mStageCoordinator.isValidToEnterSplitScreen(taskInfo);
- }
-
@Nullable
public ActivityManager.RunningTaskInfo getTaskInfo(@SplitPosition int splitPosition) {
if (!isSplitScreenVisible() || splitPosition == SPLIT_POSITION_UNDEFINED) {
@@ -331,9 +327,14 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
return mTaskOrganizer.getRunningTaskInfo(taskId);
}
+ /** Check task is under split or not by taskId. */
public boolean isTaskInSplitScreen(int taskId) {
- return isSplitScreenVisible()
- && mStageCoordinator.getStageOfTask(taskId) != STAGE_TYPE_UNDEFINED;
+ return mStageCoordinator.getStageOfTask(taskId) != STAGE_TYPE_UNDEFINED;
+ }
+
+ /** Check split is foreground and task is under split or not by taskId. */
+ public boolean isTaskInSplitScreenForeground(int taskId) {
+ return isTaskInSplitScreen(taskId) && isSplitScreenVisible();
}
public @SplitPosition int getSplitPosition(int taskId) {
@@ -341,8 +342,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
}
public boolean moveToSideStage(int taskId, @SplitPosition int sideStagePosition) {
- return moveToStage(taskId, STAGE_TYPE_SIDE, sideStagePosition,
- new WindowContainerTransaction());
+ return moveToStage(taskId, sideStagePosition, new WindowContainerTransaction());
}
/**
@@ -353,13 +353,13 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
mStageCoordinator.updateSurfaces(transaction);
}
- private boolean moveToStage(int taskId, @StageType int stageType,
- @SplitPosition int stagePosition, WindowContainerTransaction wct) {
+ private boolean moveToStage(int taskId, @SplitPosition int stagePosition,
+ WindowContainerTransaction wct) {
final ActivityManager.RunningTaskInfo task = mTaskOrganizer.getRunningTaskInfo(taskId);
if (task == null) {
throw new IllegalArgumentException("Unknown taskId" + taskId);
}
- return mStageCoordinator.moveToStage(task, stageType, stagePosition, wct);
+ return mStageCoordinator.moveToStage(task, stagePosition, wct);
}
public boolean removeFromSideStage(int taskId) {
@@ -384,10 +384,9 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
}
public void enterSplitScreen(int taskId, boolean leftOrTop, WindowContainerTransaction wct) {
- final int stageType = isSplitScreenVisible() ? STAGE_TYPE_UNDEFINED : STAGE_TYPE_SIDE;
final int stagePosition =
leftOrTop ? SPLIT_POSITION_TOP_OR_LEFT : SPLIT_POSITION_BOTTOM_OR_RIGHT;
- moveToStage(taskId, stageType, stagePosition, wct);
+ moveToStage(taskId, stagePosition, wct);
}
public void exitSplitScreen(int toTopTaskId, @ExitReason int exitReason) {
@@ -424,6 +423,19 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
mStageCoordinator.goToFullscreenFromSplit();
}
+ /** Move the specified task to fullscreen, regardless of focus state. */
+ public void moveTaskToFullscreen(int taskId) {
+ mStageCoordinator.moveTaskToFullscreen(taskId);
+ }
+
+ public boolean isLaunchToSplit(TaskInfo taskInfo) {
+ return mStageCoordinator.isLaunchToSplit(taskInfo);
+ }
+
+ public int getActivateSplitPosition(TaskInfo taskInfo) {
+ return mStageCoordinator.getActivateSplitPosition(taskInfo);
+ }
+
public void startTask(int taskId, @SplitPosition int position, @Nullable Bundle options) {
final int[] result = new int[1];
IRemoteAnimationRunner wrapper = new IRemoteAnimationRunner.Stub() {
@@ -479,39 +491,54 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
@Override
public void startShortcut(String packageName, String shortcutId, @SplitPosition int position,
@Nullable Bundle options, UserHandle user) {
- IRemoteAnimationRunner wrapper = new IRemoteAnimationRunner.Stub() {
- @Override
- public void onAnimationStart(@WindowManager.TransitionOldType int transit,
- RemoteAnimationTarget[] apps,
- RemoteAnimationTarget[] wallpapers,
- RemoteAnimationTarget[] nonApps,
- final IRemoteAnimationFinishedCallback finishedCallback) {
- try {
- finishedCallback.onAnimationFinished();
- } catch (RemoteException e) {
- Slog.e(TAG, "Failed to invoke onAnimationFinished", e);
- }
- final WindowContainerTransaction evictWct = new WindowContainerTransaction();
- mStageCoordinator.prepareEvictNonOpeningChildTasks(position, apps, evictWct);
- mSyncQueue.queue(evictWct);
+ if (options == null) options = new Bundle();
+ final ActivityOptions activityOptions = ActivityOptions.fromBundle(options);
+
+ if (samePackage(packageName, getPackageName(reverseSplitPosition(position)))) {
+ if (supportMultiInstancesSplit(packageName)) {
+ activityOptions.setApplyMultipleTaskFlagForShortcut(true);
+ ProtoLog.v(ShellProtoLogGroup.WM_SHELL_SPLIT_SCREEN, "Adding MULTIPLE_TASK");
+ } else if (isSplitScreenVisible()) {
+ mStageCoordinator.switchSplitPosition("startShortcut");
+ return;
+ } else {
+ ProtoLog.v(ShellProtoLogGroup.WM_SHELL_SPLIT_SCREEN,
+ "Cancel entering split as not supporting multi-instances");
+ Toast.makeText(mContext, R.string.dock_multi_instances_not_supported_text,
+ Toast.LENGTH_SHORT).show();
+ return;
}
- @Override
- public void onAnimationCancelled(boolean isKeyguardOccluded) {
+ }
+
+ mStageCoordinator.startShortcut(packageName, shortcutId, position,
+ activityOptions.toBundle(), user);
+ }
+
+ void startShortcutAndTaskWithLegacyTransition(ShortcutInfo shortcutInfo,
+ @Nullable Bundle options1, int taskId, @Nullable Bundle options2,
+ @SplitPosition int splitPosition, float splitRatio, RemoteAnimationAdapter adapter,
+ InstanceId instanceId) {
+ if (options1 == null) options1 = new Bundle();
+ final ActivityOptions activityOptions = ActivityOptions.fromBundle(options1);
+
+ final String packageName1 = shortcutInfo.getPackage();
+ final String packageName2 = SplitScreenUtils.getPackageName(taskId, mTaskOrganizer);
+ if (samePackage(packageName1, packageName2)) {
+ if (supportMultiInstancesSplit(shortcutInfo.getPackage())) {
+ activityOptions.setApplyMultipleTaskFlagForShortcut(true);
+ ProtoLog.v(ShellProtoLogGroup.WM_SHELL_SPLIT_SCREEN, "Adding MULTIPLE_TASK");
+ } else {
+ taskId = INVALID_TASK_ID;
+ ProtoLog.v(ShellProtoLogGroup.WM_SHELL_SPLIT_SCREEN,
+ "Cancel entering split as not supporting multi-instances");
+ Toast.makeText(mContext, R.string.dock_multi_instances_not_supported_text,
+ Toast.LENGTH_SHORT).show();
}
- };
- options = mStageCoordinator.resolveStartStage(STAGE_TYPE_UNDEFINED, position, options,
- null /* wct */);
- RemoteAnimationAdapter wrappedAdapter = new RemoteAnimationAdapter(wrapper,
- 0 /* duration */, 0 /* statusBarTransitionDelay */);
- ActivityOptions activityOptions = ActivityOptions.fromBundle(options);
- activityOptions.update(ActivityOptions.makeRemoteAnimation(wrappedAdapter));
- try {
- LauncherApps launcherApps = mContext.getSystemService(LauncherApps.class);
- launcherApps.startShortcut(packageName, shortcutId, null /* sourceBounds */,
- activityOptions.toBundle(), user);
- } catch (ActivityNotFoundException e) {
- Slog.e(TAG, "Failed to launch shortcut", e);
}
+
+ mStageCoordinator.startShortcutAndTaskWithLegacyTransition(shortcutInfo,
+ activityOptions.toBundle(), taskId, options2, splitPosition, splitRatio, adapter,
+ instanceId);
}
/**
@@ -529,23 +556,19 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
@SplitPosition int splitPosition, float splitRatio, RemoteAnimationAdapter adapter,
InstanceId instanceId) {
Intent fillInIntent = null;
- if (launchSameAppAdjacently(pendingIntent, taskId)) {
- if (supportMultiInstancesSplit(pendingIntent.getIntent().getComponent())) {
+ final String packageName1 = SplitScreenUtils.getPackageName(pendingIntent);
+ final String packageName2 = SplitScreenUtils.getPackageName(taskId, mTaskOrganizer);
+ if (samePackage(packageName1, packageName2)) {
+ if (supportMultiInstancesSplit(packageName1)) {
fillInIntent = new Intent();
fillInIntent.addFlags(FLAG_ACTIVITY_MULTIPLE_TASK);
ProtoLog.v(ShellProtoLogGroup.WM_SHELL_SPLIT_SCREEN, "Adding MULTIPLE_TASK");
} else {
- try {
- adapter.getRunner().onAnimationCancelled(false /* isKeyguardOccluded */);
- ActivityTaskManager.getService().startActivityFromRecents(taskId, options2);
- } catch (RemoteException e) {
- Slog.e(TAG, "Error starting remote animation", e);
- }
+ taskId = INVALID_TASK_ID;
ProtoLog.v(ShellProtoLogGroup.WM_SHELL_SPLIT_SCREEN,
"Cancel entering split as not supporting multi-instances");
Toast.makeText(mContext, R.string.dock_multi_instances_not_supported_text,
Toast.LENGTH_SHORT).show();
- return;
}
}
mStageCoordinator.startIntentAndTaskWithLegacyTransition(pendingIntent, fillInIntent,
@@ -556,8 +579,10 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
int taskId, @Nullable Bundle options2, @SplitPosition int splitPosition,
float splitRatio, @Nullable RemoteTransition remoteTransition, InstanceId instanceId) {
Intent fillInIntent = null;
- if (launchSameAppAdjacently(pendingIntent, taskId)) {
- if (supportMultiInstancesSplit(pendingIntent.getIntent().getComponent())) {
+ final String packageName1 = SplitScreenUtils.getPackageName(pendingIntent);
+ final String packageName2 = SplitScreenUtils.getPackageName(taskId, mTaskOrganizer);
+ if (samePackage(packageName1, packageName2)) {
+ if (supportMultiInstancesSplit(packageName1)) {
fillInIntent = new Intent();
fillInIntent.addFlags(FLAG_ACTIVITY_MULTIPLE_TASK);
ProtoLog.v(ShellProtoLogGroup.WM_SHELL_SPLIT_SCREEN, "Adding MULTIPLE_TASK");
@@ -573,35 +598,32 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
}
private void startIntentsWithLegacyTransition(PendingIntent pendingIntent1,
- @Nullable Bundle options1, PendingIntent pendingIntent2,
- @Nullable Bundle options2, @SplitPosition int splitPosition,
- float splitRatio, RemoteAnimationAdapter adapter, InstanceId instanceId) {
+ @Nullable ShortcutInfo shortcutInfo1, @Nullable Bundle options1,
+ PendingIntent pendingIntent2, @Nullable ShortcutInfo shortcutInfo2,
+ @Nullable Bundle options2, @SplitPosition int splitPosition, float splitRatio,
+ RemoteAnimationAdapter adapter, InstanceId instanceId) {
Intent fillInIntent1 = null;
Intent fillInIntent2 = null;
- if (launchSameAppAdjacently(pendingIntent1, pendingIntent2)) {
- if (supportMultiInstancesSplit(pendingIntent1.getIntent().getComponent())) {
+ final String packageName1 = SplitScreenUtils.getPackageName(pendingIntent1);
+ final String packageName2 = SplitScreenUtils.getPackageName(pendingIntent2);
+ if (samePackage(packageName1, packageName2)) {
+ if (supportMultiInstancesSplit(packageName1)) {
fillInIntent1 = new Intent();
fillInIntent1.addFlags(FLAG_ACTIVITY_MULTIPLE_TASK);
fillInIntent2 = new Intent();
fillInIntent2.addFlags(FLAG_ACTIVITY_MULTIPLE_TASK);
ProtoLog.v(ShellProtoLogGroup.WM_SHELL_SPLIT_SCREEN, "Adding MULTIPLE_TASK");
} else {
- try {
- adapter.getRunner().onAnimationCancelled(false /* isKeyguardOccluded */);
- pendingIntent1.send();
- } catch (RemoteException | PendingIntent.CanceledException e) {
- Slog.e(TAG, "Error starting remote animation", e);
- }
+ pendingIntent2 = null;
ProtoLog.v(ShellProtoLogGroup.WM_SHELL_SPLIT_SCREEN,
"Cancel entering split as not supporting multi-instances");
Toast.makeText(mContext, R.string.dock_multi_instances_not_supported_text,
Toast.LENGTH_SHORT).show();
- return;
}
}
- mStageCoordinator.startIntentsWithLegacyTransition(pendingIntent1, fillInIntent1, options1,
- pendingIntent2, fillInIntent2, options2, splitPosition, splitRatio, adapter,
- instanceId);
+ mStageCoordinator.startIntentsWithLegacyTransition(pendingIntent1, fillInIntent1,
+ shortcutInfo1, options1, pendingIntent2, fillInIntent2, shortcutInfo2, options2,
+ splitPosition, splitRatio, adapter, instanceId);
}
@Override
@@ -613,13 +635,15 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
if (fillInIntent == null) fillInIntent = new Intent();
fillInIntent.addFlags(FLAG_ACTIVITY_NO_USER_ACTION);
- if (launchSameAppAdjacently(position, intent)) {
- final ComponentName launching = intent.getIntent().getComponent();
- if (supportMultiInstancesSplit(launching)) {
+ final String packageName1 = SplitScreenUtils.getPackageName(intent);
+ final String packageName2 = getPackageName(reverseSplitPosition(position));
+ if (SplitScreenUtils.samePackage(packageName1, packageName2)) {
+ if (supportMultiInstancesSplit(packageName1)) {
// To prevent accumulating large number of instances in the background, reuse task
// in the background with priority.
final ActivityManager.RecentTaskInfo taskInfo = mRecentTasksOptional
- .map(recentTasks -> recentTasks.findTaskInBackground(launching))
+ .map(recentTasks -> recentTasks.findTaskInBackground(
+ intent.getIntent().getComponent()))
.orElse(null);
if (taskInfo != null) {
startTask(taskInfo.taskId, position, options);
@@ -647,63 +671,32 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
mStageCoordinator.startIntent(intent, fillInIntent, position, options);
}
+ /** Retrieve package name of a specific split position if split screen is activated, otherwise
+ * returns the package name of the top running task. */
@Nullable
- private String getPackageName(Intent intent) {
- if (intent == null || intent.getComponent() == null) {
- return null;
- }
- return intent.getComponent().getPackageName();
- }
-
- private boolean launchSameAppAdjacently(@SplitPosition int position,
- PendingIntent pendingIntent) {
- ActivityManager.RunningTaskInfo adjacentTaskInfo = null;
+ private String getPackageName(@SplitPosition int position) {
+ ActivityManager.RunningTaskInfo taskInfo;
if (isSplitScreenVisible()) {
- adjacentTaskInfo = getTaskInfo(SplitLayout.reversePosition(position));
+ taskInfo = getTaskInfo(position);
} else {
- adjacentTaskInfo = mRecentTasksOptional
- .map(recentTasks -> recentTasks.getTopRunningTask()).orElse(null);
- if (!isValidToEnterSplitScreen(adjacentTaskInfo)) {
- return false;
+ taskInfo = mRecentTasksOptional
+ .map(recentTasks -> recentTasks.getTopRunningTask())
+ .orElse(null);
+ if (!isValidToSplit(taskInfo)) {
+ return null;
}
}
- if (adjacentTaskInfo == null) {
- return false;
- }
-
- final String targetPackageName = getPackageName(pendingIntent.getIntent());
- final String adjacentPackageName = getPackageName(adjacentTaskInfo.baseIntent);
- return targetPackageName != null && targetPackageName.equals(adjacentPackageName);
- }
-
- private boolean launchSameAppAdjacently(PendingIntent pendingIntent, int taskId) {
- final ActivityManager.RunningTaskInfo adjacentTaskInfo =
- mTaskOrganizer.getRunningTaskInfo(taskId);
- if (adjacentTaskInfo == null) {
- return false;
- }
- final String targetPackageName = getPackageName(pendingIntent.getIntent());
- final String adjacentPackageName = getPackageName(adjacentTaskInfo.baseIntent);
- return targetPackageName != null && targetPackageName.equals(adjacentPackageName);
- }
-
- private boolean launchSameAppAdjacently(PendingIntent pendingIntent1,
- PendingIntent pendingIntent2) {
- final String targetPackageName = getPackageName(pendingIntent1.getIntent());
- final String adjacentPackageName = getPackageName(pendingIntent2.getIntent());
- return targetPackageName != null && targetPackageName.equals(adjacentPackageName);
+ return taskInfo != null ? SplitScreenUtils.getPackageName(taskInfo.baseIntent) : null;
}
@VisibleForTesting
- /** Returns {@code true} if the component supports multi-instances split. */
- boolean supportMultiInstancesSplit(@Nullable ComponentName launching) {
- if (launching == null) return false;
-
- final String packageName = launching.getPackageName();
- for (int i = 0; i < mAppsSupportMultiInstances.length; i++) {
- if (mAppsSupportMultiInstances[i].equals(packageName)) {
- return true;
+ boolean supportMultiInstancesSplit(String packageName) {
+ if (packageName != null) {
+ for (int i = 0; i < mAppsSupportMultiInstances.length; i++) {
+ if (mAppsSupportMultiInstances[i].equals(packageName)) {
+ return true;
+ }
}
}
@@ -1022,7 +1015,7 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
InstanceId instanceId) {
executeRemoteCallWithTaskPermission(mController,
"startShortcutAndTaskWithLegacyTransition", (controller) ->
- controller.mStageCoordinator.startShortcutAndTaskWithLegacyTransition(
+ controller.startShortcutAndTaskWithLegacyTransition(
shortcutInfo, options1, taskId, options2, splitPosition,
splitRatio, adapter, instanceId));
}
@@ -1060,13 +1053,14 @@ public class SplitScreenController implements DragAndDropPolicy.Starter,
@Override
public void startIntentsWithLegacyTransition(PendingIntent pendingIntent1,
- @Nullable Bundle options1, PendingIntent pendingIntent2, @Nullable Bundle options2,
- @SplitPosition int splitPosition, float splitRatio, RemoteAnimationAdapter adapter,
- InstanceId instanceId) {
+ @Nullable ShortcutInfo shortcutInfo1, @Nullable Bundle options1,
+ PendingIntent pendingIntent2, @Nullable ShortcutInfo shortcutInfo2,
+ @Nullable Bundle options2, @SplitPosition int splitPosition, float splitRatio,
+ RemoteAnimationAdapter adapter, InstanceId instanceId) {
executeRemoteCallWithTaskPermission(mController, "startIntentsWithLegacyTransition",
(controller) ->
- controller.startIntentsWithLegacyTransition(
- pendingIntent1, options1, pendingIntent2, options2, splitPosition,
+ controller.startIntentsWithLegacyTransition(pendingIntent1, shortcutInfo1,
+ options1, pendingIntent2, shortcutInfo2, options2, splitPosition,
splitRatio, adapter, instanceId)
);
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
index 8ddc3c04d991ba41af89282b7a35755c8ac1febb..77939c7c69645c86f197f02b02d26c7a254ed2b4 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageCoordinator.java
@@ -36,12 +36,11 @@ import static android.window.TransitionInfo.FLAG_IS_DISPLAY;
import static android.window.WindowContainerTransaction.HierarchyOp.HIERARCHY_OP_TYPE_REORDER;
import static com.android.wm.shell.common.split.SplitLayout.PARALLAX_ALIGN_CENTER;
-import static com.android.wm.shell.common.split.SplitScreenConstants.CONTROLLED_ACTIVITY_TYPES;
-import static com.android.wm.shell.common.split.SplitScreenConstants.CONTROLLED_WINDOWING_MODES;
import static com.android.wm.shell.common.split.SplitScreenConstants.FLAG_IS_DIVIDER_BAR;
import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_BOTTOM_OR_RIGHT;
import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_TOP_OR_LEFT;
import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_UNDEFINED;
+import static com.android.wm.shell.common.split.SplitScreenUtils.reverseSplitPosition;
import static com.android.wm.shell.splitscreen.SplitScreen.STAGE_TYPE_MAIN;
import static com.android.wm.shell.splitscreen.SplitScreen.STAGE_TYPE_SIDE;
import static com.android.wm.shell.splitscreen.SplitScreen.STAGE_TYPE_UNDEFINED;
@@ -75,9 +74,12 @@ import android.app.ActivityManager;
import android.app.ActivityOptions;
import android.app.IActivityTaskManager;
import android.app.PendingIntent;
+import android.app.TaskInfo;
import android.app.WindowConfiguration;
+import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.LauncherApps;
import android.content.pm.ShortcutInfo;
import android.content.res.Configuration;
import android.graphics.Rect;
@@ -87,6 +89,7 @@ import android.os.Debug;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.ServiceManager;
+import android.os.UserHandle;
import android.util.Log;
import android.util.Slog;
import android.view.Choreographer;
@@ -122,6 +125,7 @@ import com.android.wm.shell.common.SyncTransactionQueue;
import com.android.wm.shell.common.TransactionPool;
import com.android.wm.shell.common.split.SplitLayout;
import com.android.wm.shell.common.split.SplitScreenConstants.SplitPosition;
+import com.android.wm.shell.common.split.SplitScreenUtils;
import com.android.wm.shell.common.split.SplitWindowManager;
import com.android.wm.shell.protolog.ShellProtoLogGroup;
import com.android.wm.shell.recents.RecentTasksController;
@@ -200,12 +204,43 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
// and exit, since exit itself can trigger a number of changes that update the stages.
private boolean mShouldUpdateRecents;
private boolean mExitSplitScreenOnHide;
- private boolean mIsSplitEntering;
+ private boolean mIsDividerRemoteAnimating;
private boolean mIsDropEntering;
private boolean mIsExiting;
+ private boolean mIsRootTranslucent;
private DefaultMixedHandler mMixedHandler;
private final Toast mSplitUnsupportedToast;
+ private SplitRequest mSplitRequest;
+
+ class SplitRequest {
+ @SplitPosition
+ int mActivatePosition;
+ int mActivateTaskId;
+ int mActivateTaskId2;
+ Intent mStartIntent;
+ Intent mStartIntent2;
+
+ SplitRequest(int taskId, Intent startIntent, int position) {
+ mActivateTaskId = taskId;
+ mStartIntent = startIntent;
+ mActivatePosition = position;
+ }
+ SplitRequest(Intent startIntent, int position) {
+ mStartIntent = startIntent;
+ mActivatePosition = position;
+ }
+ SplitRequest(Intent startIntent, Intent startIntent2, int position) {
+ mStartIntent = startIntent;
+ mStartIntent2 = startIntent2;
+ mActivatePosition = position;
+ }
+ SplitRequest(int taskId1, int taskId2, int position) {
+ mActivateTaskId = taskId1;
+ mActivateTaskId2 = taskId2;
+ mActivatePosition = position;
+ }
+ }
private final SplitWindowManager.ParentContainerCallbacks mParentContainerCallbacks =
new SplitWindowManager.ParentContainerCallbacks() {
@@ -364,49 +399,43 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
return STAGE_TYPE_UNDEFINED;
}
- boolean moveToStage(ActivityManager.RunningTaskInfo task, @StageType int stageType,
- @SplitPosition int stagePosition, WindowContainerTransaction wct) {
+ boolean moveToStage(ActivityManager.RunningTaskInfo task, @SplitPosition int stagePosition,
+ WindowContainerTransaction wct) {
StageTaskListener targetStage;
int sideStagePosition;
- if (stageType == STAGE_TYPE_MAIN) {
- targetStage = mMainStage;
- sideStagePosition = SplitLayout.reversePosition(stagePosition);
- } else if (stageType == STAGE_TYPE_SIDE) {
+ if (isSplitScreenVisible()) {
+ // If the split screen is foreground, retrieves target stage based on position.
+ targetStage = stagePosition == mSideStagePosition ? mSideStage : mMainStage;
+ sideStagePosition = mSideStagePosition;
+ } else {
targetStage = mSideStage;
sideStagePosition = stagePosition;
- } else {
- if (isSplitScreenVisible()) {
- // If the split screen is activated, retrieves target stage based on position.
- targetStage = stagePosition == mSideStagePosition ? mSideStage : mMainStage;
- sideStagePosition = mSideStagePosition;
- } else {
- // Exit split if it running background.
- exitSplitScreen(null /* childrenToTop */, EXIT_REASON_RECREATE_SPLIT);
-
- targetStage = mSideStage;
- sideStagePosition = stagePosition;
- }
}
- setSideStagePosition(sideStagePosition, wct);
- final WindowContainerTransaction evictWct = new WindowContainerTransaction();
- targetStage.evictAllChildren(evictWct);
- targetStage.addTask(task, wct);
-
- if (ENABLE_SHELL_TRANSITIONS) {
- prepareEnterSplitScreen(wct);
- mSplitTransitions.startEnterTransition(TRANSIT_SPLIT_SCREEN_OPEN_TO_SIDE, wct,
- null, this, null /* consumedCallback */, (finishWct, finishT) -> {
- if (!evictWct.isEmpty()) {
- finishWct.merge(evictWct, true);
- }
- } /* finishedCallback */);
+ if (!isSplitActive()) {
+ mSplitLayout.init();
+ prepareEnterSplitScreen(wct, task, stagePosition);
+ mSyncQueue.queue(wct);
+ mSyncQueue.runInSync(t -> {
+ updateSurfaceBounds(mSplitLayout, t, false /* applyResizingOffset */);
+ });
} else {
- if (!evictWct.isEmpty()) {
- wct.merge(evictWct, true /* transfer */);
+ setSideStagePosition(sideStagePosition, wct);
+ targetStage.addTask(task, wct);
+ targetStage.evictAllChildren(wct);
+ if (!isSplitScreenVisible()) {
+ final StageTaskListener anotherStage = targetStage == mMainStage
+ ? mSideStage : mMainStage;
+ anotherStage.reparentTopTask(wct);
+ anotherStage.evictAllChildren(wct);
+ wct.reorder(mRootTaskInfo.token, true);
}
- mTaskOrganizer.applyTransaction(wct);
+ setRootForceTranslucent(false, wct);
+ mSyncQueue.queue(wct);
}
+
+ // Due to drag already pip task entering split by this method so need to reset flag here.
+ mIsDropEntering = false;
return true;
}
@@ -428,6 +457,81 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
return mLogger;
}
+ void startShortcut(String packageName, String shortcutId, @SplitPosition int position,
+ Bundle options, UserHandle user) {
+ final boolean isEnteringSplit = !isSplitActive();
+
+ IRemoteAnimationRunner wrapper = new IRemoteAnimationRunner.Stub() {
+ @Override
+ public void onAnimationStart(@WindowManager.TransitionOldType int transit,
+ RemoteAnimationTarget[] apps,
+ RemoteAnimationTarget[] wallpapers,
+ RemoteAnimationTarget[] nonApps,
+ final IRemoteAnimationFinishedCallback finishedCallback) {
+ boolean openingToSide = false;
+ if (apps != null) {
+ for (int i = 0; i < apps.length; ++i) {
+ if (apps[i].mode == MODE_OPENING
+ && mSideStage.containsTask(apps[i].taskId)) {
+ openingToSide = true;
+ break;
+ }
+ }
+ } else if (mSideStage.getChildCount() != 0) {
+ // There are chances the entering app transition got canceled by performing
+ // rotation transition. Checks if there is any child task existed in split
+ // screen before fallback to cancel entering flow.
+ openingToSide = true;
+ }
+
+ if (isEnteringSplit && !openingToSide) {
+ mMainExecutor.execute(() -> exitSplitScreen(
+ mSideStage.getChildCount() == 0 ? mMainStage : mSideStage,
+ EXIT_REASON_UNKNOWN));
+ }
+
+ if (finishedCallback != null) {
+ try {
+ finishedCallback.onAnimationFinished();
+ } catch (RemoteException e) {
+ Slog.e(TAG, "Error finishing legacy transition: ", e);
+ }
+ }
+
+ if (!isEnteringSplit && apps != null) {
+ final WindowContainerTransaction evictWct = new WindowContainerTransaction();
+ prepareEvictNonOpeningChildTasks(position, apps, evictWct);
+ mSyncQueue.queue(evictWct);
+ }
+ }
+ @Override
+ public void onAnimationCancelled(boolean isKeyguardOccluded) {
+ if (isEnteringSplit) {
+ mMainExecutor.execute(() -> exitSplitScreen(
+ mSideStage.getChildCount() == 0 ? mMainStage : mSideStage,
+ EXIT_REASON_UNKNOWN));
+ }
+ }
+ };
+ options = resolveStartStage(STAGE_TYPE_UNDEFINED, position, options,
+ null /* wct */);
+ RemoteAnimationAdapter wrappedAdapter = new RemoteAnimationAdapter(wrapper,
+ 0 /* duration */, 0 /* statusBarTransitionDelay */);
+ ActivityOptions activityOptions = ActivityOptions.fromBundle(options);
+ // Flag this as a no-user-action launch to prevent sending user leaving event to the current
+ // top activity since it's going to be put into another side of the split. This prevents the
+ // current top activity from going into pip mode due to user leaving event.
+ activityOptions.setApplyNoUserActionFlagForShortcut(true);
+ activityOptions.update(ActivityOptions.makeRemoteAnimation(wrappedAdapter));
+ try {
+ LauncherApps launcherApps = mContext.getSystemService(LauncherApps.class);
+ launcherApps.startShortcut(packageName, shortcutId, null /* sourceBounds */,
+ activityOptions.toBundle(), user);
+ } catch (ActivityNotFoundException e) {
+ Slog.e(TAG, "Failed to launch shortcut", e);
+ }
+ }
+
/** Launches an activity into split. */
void startIntent(PendingIntent intent, Intent fillInIntent, @SplitPosition int position,
@Nullable Bundle options) {
@@ -477,9 +581,14 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
break;
}
}
+ } else if (mSideStage.getChildCount() != 0) {
+ // There are chances the entering app transition got canceled by performing
+ // rotation transition. Checks if there is any child task existed in split
+ // screen before fallback to cancel entering flow.
+ openingToSide = true;
}
- if (isEnteringSplit && !openingToSide) {
+ if (isEnteringSplit && !openingToSide && apps != null) {
mMainExecutor.execute(() -> exitSplitScreen(
mSideStage.getChildCount() == 0 ? mMainStage : mSideStage,
EXIT_REASON_UNKNOWN));
@@ -503,7 +612,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
}
- if (!isEnteringSplit && openingToSide) {
+ if (!isEnteringSplit && apps != null) {
final WindowContainerTransaction evictWct = new WindowContainerTransaction();
prepareEvictNonOpeningChildTasks(position, apps, evictWct);
mSyncQueue.queue(evictWct);
@@ -519,7 +628,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
if (isEnteringSplit && mLogger.isEnterRequestedByDrag()) {
updateWindowBounds(mSplitLayout, wct);
}
-
+ mSplitRequest = new SplitRequest(intent.getIntent(), position);
wct.sendPendingIntent(intent, fillInIntent, options);
mSyncQueue.queue(transition, WindowManager.TRANSIT_OPEN, wct);
}
@@ -585,7 +694,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
mSplitLayout.setDivideRatio(splitRatio);
updateWindowBounds(mSplitLayout, wct);
wct.reorder(mRootTaskInfo.token, true);
- wct.setForceTranslucent(mRootTaskInfo.token, false);
+ setRootForceTranslucent(false, wct);
// Make sure the launch options will put tasks in the corresponding split roots
mainOptions = mainOptions != null ? mainOptions : new Bundle();
@@ -605,25 +714,54 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
float splitRatio, RemoteAnimationAdapter adapter, InstanceId instanceId) {
final WindowContainerTransaction wct = new WindowContainerTransaction();
if (options1 == null) options1 = new Bundle();
+ if (taskId2 == INVALID_TASK_ID) {
+ // Launching a solo task.
+ // Exit split first if this task under split roots.
+ if (mMainStage.containsTask(taskId1) || mSideStage.containsTask(taskId1)) {
+ exitSplitScreen(null /* childrenToTop */, EXIT_REASON_RECREATE_SPLIT);
+ }
+ ActivityOptions activityOptions = ActivityOptions.fromBundle(options1);
+ activityOptions.update(ActivityOptions.makeRemoteAnimation(adapter));
+ options1 = activityOptions.toBundle();
+ addActivityOptions(options1, null /* launchTarget */);
+ wct.startTask(taskId1, options1);
+ mSyncQueue.queue(wct);
+ return;
+ }
+
addActivityOptions(options1, mSideStage);
wct.startTask(taskId1, options1);
-
+ mSplitRequest = new SplitRequest(taskId1, taskId2, splitPosition);
startWithLegacyTransition(wct, taskId2, options2, splitPosition, splitRatio, adapter,
instanceId);
}
/** Starts a pair of intents using legacy transition. */
void startIntentsWithLegacyTransition(PendingIntent pendingIntent1, Intent fillInIntent1,
- @Nullable Bundle options1, PendingIntent pendingIntent2, Intent fillInIntent2,
- @Nullable Bundle options2, @SplitPosition int splitPosition, float splitRatio,
- RemoteAnimationAdapter adapter, InstanceId instanceId) {
+ @Nullable ShortcutInfo shortcutInfo1, @Nullable Bundle options1,
+ @Nullable PendingIntent pendingIntent2, Intent fillInIntent2,
+ @Nullable ShortcutInfo shortcutInfo2, @Nullable Bundle options2,
+ @SplitPosition int splitPosition, float splitRatio, RemoteAnimationAdapter adapter,
+ InstanceId instanceId) {
final WindowContainerTransaction wct = new WindowContainerTransaction();
if (options1 == null) options1 = new Bundle();
- addActivityOptions(options1, mSideStage);
- wct.sendPendingIntent(pendingIntent1, fillInIntent1, options1);
+ if (pendingIntent2 == null) {
+ // Launching a solo intent or shortcut as fullscreen.
+ launchAsFullscreenWithRemoteAnimation(pendingIntent1, fillInIntent1, shortcutInfo1,
+ options1, adapter, wct);
+ return;
+ }
- startWithLegacyTransition(wct, pendingIntent2, fillInIntent2, options2, splitPosition,
- splitRatio, adapter, instanceId);
+ addActivityOptions(options1, mSideStage);
+ if (shortcutInfo1 != null) {
+ wct.startShortcut(mContext.getPackageName(), shortcutInfo1, options1);
+ } else {
+ wct.sendPendingIntent(pendingIntent1, fillInIntent1, options1);
+ mSplitRequest = new SplitRequest(pendingIntent1.getIntent(),
+ pendingIntent2 != null ? pendingIntent2.getIntent() : null, splitPosition);
+ }
+ startWithLegacyTransition(wct, pendingIntent2, fillInIntent2, shortcutInfo2, options2,
+ splitPosition, splitRatio, adapter, instanceId);
}
void startIntentAndTaskWithLegacyTransition(PendingIntent pendingIntent, Intent fillInIntent,
@@ -632,9 +770,16 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
InstanceId instanceId) {
final WindowContainerTransaction wct = new WindowContainerTransaction();
if (options1 == null) options1 = new Bundle();
+ if (taskId == INVALID_TASK_ID) {
+ // Launching a solo intent as fullscreen.
+ launchAsFullscreenWithRemoteAnimation(pendingIntent, fillInIntent, null, options1,
+ adapter, wct);
+ return;
+ }
+
addActivityOptions(options1, mSideStage);
wct.sendPendingIntent(pendingIntent, fillInIntent, options1);
-
+ mSplitRequest = new SplitRequest(taskId, pendingIntent.getIntent(), splitPosition);
startWithLegacyTransition(wct, taskId, options2, splitPosition, splitRatio, adapter,
instanceId);
}
@@ -646,27 +791,76 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
InstanceId instanceId) {
final WindowContainerTransaction wct = new WindowContainerTransaction();
if (options1 == null) options1 = new Bundle();
+ if (taskId == INVALID_TASK_ID) {
+ // Launching a solo shortcut as fullscreen.
+ launchAsFullscreenWithRemoteAnimation(null, null, shortcutInfo, options1, adapter, wct);
+ return;
+ }
+
addActivityOptions(options1, mSideStage);
wct.startShortcut(mContext.getPackageName(), shortcutInfo, options1);
-
startWithLegacyTransition(wct, taskId, options2, splitPosition, splitRatio, adapter,
instanceId);
}
+ private void launchAsFullscreenWithRemoteAnimation(@Nullable PendingIntent pendingIntent,
+ @Nullable Intent fillInIntent, @Nullable ShortcutInfo shortcutInfo,
+ @Nullable Bundle options, RemoteAnimationAdapter adapter,
+ WindowContainerTransaction wct) {
+ LegacyTransitions.ILegacyTransition transition =
+ (transit, apps, wallpapers, nonApps, finishedCallback, t) -> {
+ if (apps == null || apps.length == 0) {
+ onRemoteAnimationFinished(apps);
+ t.apply();
+ try {
+ adapter.getRunner().onAnimationCancelled(mKeyguardShowing);
+ } catch (RemoteException e) {
+ Slog.e(TAG, "Error starting remote animation", e);
+ }
+ return;
+ }
+
+ for (int i = 0; i < apps.length; ++i) {
+ if (apps[i].mode == MODE_OPENING) {
+ t.show(apps[i].leash);
+ }
+ }
+ t.apply();
+
+ try {
+ adapter.getRunner().onAnimationStart(
+ transit, apps, wallpapers, nonApps, finishedCallback);
+ } catch (RemoteException e) {
+ Slog.e(TAG, "Error starting remote animation", e);
+ }
+ };
+
+ addActivityOptions(options, null /* launchTarget */);
+ if (shortcutInfo != null) {
+ wct.startShortcut(mContext.getPackageName(), shortcutInfo, options);
+ } else if (pendingIntent != null) {
+ wct.sendPendingIntent(pendingIntent, fillInIntent, options);
+ } else {
+ Slog.e(TAG, "Pending intent and shortcut are null is invalid case.");
+ }
+ mSyncQueue.queue(transition, WindowManager.TRANSIT_OPEN, wct);
+ }
+
private void startWithLegacyTransition(WindowContainerTransaction wct,
@Nullable PendingIntent mainPendingIntent, @Nullable Intent mainFillInIntent,
- @Nullable Bundle mainOptions, @SplitPosition int sidePosition, float splitRatio,
- RemoteAnimationAdapter adapter, InstanceId instanceId) {
+ @Nullable ShortcutInfo mainShortcutInfo, @Nullable Bundle mainOptions,
+ @SplitPosition int sidePosition, float splitRatio, RemoteAnimationAdapter adapter,
+ InstanceId instanceId) {
startWithLegacyTransition(wct, INVALID_TASK_ID, mainPendingIntent, mainFillInIntent,
- mainOptions, sidePosition, splitRatio, adapter, instanceId);
+ mainShortcutInfo, mainOptions, sidePosition, splitRatio, adapter, instanceId);
}
private void startWithLegacyTransition(WindowContainerTransaction wct, int mainTaskId,
@Nullable Bundle mainOptions, @SplitPosition int sidePosition, float splitRatio,
RemoteAnimationAdapter adapter, InstanceId instanceId) {
startWithLegacyTransition(wct, mainTaskId, null /* mainPendingIntent */,
- null /* mainFillInIntent */, mainOptions, sidePosition, splitRatio, adapter,
- instanceId);
+ null /* mainFillInIntent */, null /* mainShortcutInfo */, mainOptions, sidePosition,
+ splitRatio, adapter, instanceId);
}
/**
@@ -676,8 +870,9 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
*/
private void startWithLegacyTransition(WindowContainerTransaction wct, int mainTaskId,
@Nullable PendingIntent mainPendingIntent, @Nullable Intent mainFillInIntent,
- @Nullable Bundle mainOptions, @SplitPosition int sidePosition, float splitRatio,
- RemoteAnimationAdapter adapter, InstanceId instanceId) {
+ @Nullable ShortcutInfo mainShortcutInfo, @Nullable Bundle options,
+ @SplitPosition int sidePosition, float splitRatio, RemoteAnimationAdapter adapter,
+ InstanceId instanceId) {
if (!isSplitScreenVisible()) {
exitSplitScreen(null /* childrenToTop */, EXIT_REASON_RECREATE_SPLIT);
}
@@ -694,8 +889,46 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
// Set false to avoid record new bounds with old task still on top;
mShouldUpdateRecents = false;
- mIsSplitEntering = true;
+ mIsDividerRemoteAnimating = true;
+ if (mSplitRequest == null) {
+ mSplitRequest = new SplitRequest(mainTaskId,
+ mainPendingIntent != null ? mainPendingIntent.getIntent() : null,
+ sidePosition);
+ }
+ setSideStagePosition(sidePosition, wct);
+ if (!mMainStage.isActive()) {
+ mMainStage.activate(wct, false /* reparent */);
+ }
+ if (options == null) options = new Bundle();
+ addActivityOptions(options, mMainStage);
+
+ updateWindowBounds(mSplitLayout, wct);
+ wct.reorder(mRootTaskInfo.token, true);
+ setRootForceTranslucent(false, wct);
+
+ // TODO(b/268008375): Merge APIs to start a split pair into one.
+ if (mainTaskId != INVALID_TASK_ID) {
+ options = wrapAsSplitRemoteAnimation(adapter, options);
+ wct.startTask(mainTaskId, options);
+ mSyncQueue.queue(wct);
+ } else {
+ if (mainShortcutInfo != null) {
+ wct.startShortcut(mContext.getPackageName(), mainShortcutInfo, options);
+ } else {
+ wct.sendPendingIntent(mainPendingIntent, mainFillInIntent, options);
+ }
+ mSyncQueue.queue(wrapAsSplitRemoteAnimation(adapter), WindowManager.TRANSIT_OPEN, wct);
+ }
+
+ mSyncQueue.runInSync(t -> {
+ setDividerVisibility(true, t);
+ });
+
+ setEnterInstanceId(instanceId);
+ }
+
+ private Bundle wrapAsSplitRemoteAnimation(RemoteAnimationAdapter adapter, Bundle options) {
final WindowContainerTransaction evictWct = new WindowContainerTransaction();
if (isSplitScreenVisible()) {
mMainStage.evictAllChildren(evictWct);
@@ -713,7 +946,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
new IRemoteAnimationFinishedCallback.Stub() {
@Override
public void onAnimationFinished() throws RemoteException {
- onRemoteAnimationFinishedOrCancelled(false /* cancel */, evictWct);
+ onRemoteAnimationFinishedOrCancelled(evictWct);
finishedCallback.onAnimationFinished();
}
};
@@ -729,7 +962,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
@Override
public void onAnimationCancelled(boolean isKeyguardOccluded) {
- onRemoteAnimationFinishedOrCancelled(true /* cancel */, evictWct);
+ onRemoteAnimationFinishedOrCancelled(evictWct);
try {
adapter.getRunner().onAnimationCancelled(isKeyguardOccluded);
} catch (RemoteException e) {
@@ -739,37 +972,57 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
};
RemoteAnimationAdapter wrappedAdapter = new RemoteAnimationAdapter(
wrapper, adapter.getDuration(), adapter.getStatusBarTransitionDelay());
+ ActivityOptions activityOptions = ActivityOptions.fromBundle(options);
+ activityOptions.update(ActivityOptions.makeRemoteAnimation(wrappedAdapter));
+ return activityOptions.toBundle();
+ }
+
+ private LegacyTransitions.ILegacyTransition wrapAsSplitRemoteAnimation(
+ RemoteAnimationAdapter adapter) {
+ LegacyTransitions.ILegacyTransition transition =
+ (transit, apps, wallpapers, nonApps, finishedCallback, t) -> {
+ if (apps == null || apps.length == 0) {
+ onRemoteAnimationFinished(apps);
+ t.apply();
+ try {
+ adapter.getRunner().onAnimationCancelled(mKeyguardShowing);
+ } catch (RemoteException e) {
+ Slog.e(TAG, "Error starting remote animation", e);
+ }
+ return;
+ }
- if (mainOptions == null) {
- mainOptions = ActivityOptions.makeRemoteAnimation(wrappedAdapter).toBundle();
- } else {
- ActivityOptions mainActivityOptions = ActivityOptions.fromBundle(mainOptions);
- mainActivityOptions.update(ActivityOptions.makeRemoteAnimation(wrappedAdapter));
- mainOptions = mainActivityOptions.toBundle();
- }
-
- setSideStagePosition(sidePosition, wct);
- if (!mMainStage.isActive()) {
- mMainStage.activate(wct, false /* reparent */);
- }
-
- if (mainOptions == null) mainOptions = new Bundle();
- addActivityOptions(mainOptions, mMainStage);
- updateWindowBounds(mSplitLayout, wct);
- if (mainTaskId == INVALID_TASK_ID) {
- wct.sendPendingIntent(mainPendingIntent, mainFillInIntent, mainOptions);
- } else {
- wct.startTask(mainTaskId, mainOptions);
- }
- wct.reorder(mRootTaskInfo.token, true);
- wct.setForceTranslucent(mRootTaskInfo.token, false);
+ // Wrap the divider bar into non-apps target to animate together.
+ nonApps = ArrayUtils.appendElement(RemoteAnimationTarget.class, nonApps,
+ getDividerBarLegacyTarget());
- mSyncQueue.queue(wct);
- mSyncQueue.runInSync(t -> {
- setDividerVisibility(true, t);
- });
+ for (int i = 0; i < apps.length; ++i) {
+ if (apps[i].mode == MODE_OPENING) {
+ t.show(apps[i].leash);
+ // Reset the surface position of the opening app to prevent offset.
+ t.setPosition(apps[i].leash, 0, 0);
+ }
+ }
+ t.apply();
+
+ IRemoteAnimationFinishedCallback wrapCallback =
+ new IRemoteAnimationFinishedCallback.Stub() {
+ @Override
+ public void onAnimationFinished() throws RemoteException {
+ onRemoteAnimationFinished(apps);
+ finishedCallback.onAnimationFinished();
+ }
+ };
+ Transitions.setRunningRemoteTransitionDelegate(adapter.getCallingApplication());
+ try {
+ adapter.getRunner().onAnimationStart(
+ transit, apps, wallpapers, nonApps, wrapCallback);
+ } catch (RemoteException e) {
+ Slog.e(TAG, "Error starting remote animation", e);
+ }
+ };
- setEnterInstanceId(instanceId);
+ return transition;
}
private void setEnterInstanceId(InstanceId instanceId) {
@@ -778,14 +1031,14 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
}
}
- private void onRemoteAnimationFinishedOrCancelled(boolean cancel,
- WindowContainerTransaction evictWct) {
- mIsSplitEntering = false;
+ private void onRemoteAnimationFinishedOrCancelled(WindowContainerTransaction evictWct) {
+ mIsDividerRemoteAnimating = false;
mShouldUpdateRecents = true;
+ mSplitRequest = null;
// If any stage has no child after animation finished, it means that split will display
// nothing, such status will happen if task and intent is same app but not support
// multi-instance, we should exit split and expand that app as full screen.
- if (!cancel && (mMainStage.getChildCount() == 0 || mSideStage.getChildCount() == 0)) {
+ if (mMainStage.getChildCount() == 0 || mSideStage.getChildCount() == 0) {
mMainExecutor.execute(() ->
exitSplitScreen(mMainStage.getChildCount() == 0
? mSideStage : mMainStage, EXIT_REASON_UNKNOWN));
@@ -798,6 +1051,27 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
}
}
+ private void onRemoteAnimationFinished(RemoteAnimationTarget[] apps) {
+ mIsDividerRemoteAnimating = false;
+ mShouldUpdateRecents = true;
+ mSplitRequest = null;
+ // If any stage has no child after finished animation, that side of the split will display
+ // nothing. This might happen if starting the same app on the both sides while not
+ // supporting multi-instance. Exit the split screen and expand that app to full screen.
+ if (mMainStage.getChildCount() == 0 || mSideStage.getChildCount() == 0) {
+ mMainExecutor.execute(() -> exitSplitScreen(mMainStage.getChildCount() == 0
+ ? mSideStage : mMainStage, EXIT_REASON_UNKNOWN));
+ mSplitUnsupportedToast.show();
+ return;
+ }
+
+ final WindowContainerTransaction evictWct = new WindowContainerTransaction();
+ prepareEvictNonOpeningChildTasks(SPLIT_POSITION_TOP_OR_LEFT, apps, evictWct);
+ prepareEvictNonOpeningChildTasks(SPLIT_POSITION_BOTTOM_OR_RIGHT, apps, evictWct);
+ mSyncQueue.queue(evictWct);
+ }
+
+
/**
* Collects all the current child tasks of a specific split and prepares transaction to evict
* them to display.
@@ -859,7 +1133,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
case STAGE_TYPE_MAIN: {
if (position != SPLIT_POSITION_UNDEFINED) {
// Set the side stage opposite of what we want to the main stage.
- setSideStagePosition(SplitLayout.reversePosition(position), wct);
+ setSideStagePosition(reverseSplitPosition(position), wct);
} else {
position = getMainStagePosition();
}
@@ -883,7 +1157,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
@SplitPosition
int getMainStagePosition() {
- return SplitLayout.reversePosition(mSideStagePosition);
+ return reverseSplitPosition(mSideStagePosition);
}
int getTaskId(@SplitPosition int splitPosition) {
@@ -910,7 +1184,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
mSplitLayout.splitSwitching(t, topLeftStage.mRootLeash, bottomRightStage.mRootLeash,
insets -> {
WindowContainerTransaction wct = new WindowContainerTransaction();
- setSideStagePosition(SplitLayout.reversePosition(mSideStagePosition), wct);
+ setSideStagePosition(reverseSplitPosition(mSideStagePosition), wct);
mSyncQueue.queue(wct);
mSyncQueue.runInSync(st -> {
updateSurfaceBounds(mSplitLayout, st, false /* applyResizingOffset */);
@@ -1045,13 +1319,14 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
}
});
mShouldUpdateRecents = false;
- mIsSplitEntering = false;
+ mIsDividerRemoteAnimating = false;
mSplitLayout.getInvisibleBounds(mTempRect1);
if (childrenToTop == null || childrenToTop.getTopVisibleChildTaskId() == INVALID_TASK_ID) {
mSideStage.removeAllTasks(wct, false /* toTop */);
mMainStage.deactivate(wct, false /* toTop */);
wct.reorder(mRootTaskInfo.token, false /* onTop */);
+ setRootForceTranslucent(true, wct);
wct.setBounds(mSideStage.mRootTaskInfo.token, mTempRect1);
onTransitionAnimationComplete();
} else {
@@ -1083,6 +1358,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
mMainStage.deactivate(finishedWCT, childrenToTop == mMainStage /* toTop */);
mSideStage.removeAllTasks(finishedWCT, childrenToTop == mSideStage /* toTop */);
finishedWCT.reorder(mRootTaskInfo.token, false /* toTop */);
+ setRootForceTranslucent(true, finishedWCT);
finishedWCT.setBounds(mSideStage.mRootTaskInfo.token, mTempRect1);
mSyncQueue.queue(finishedWCT);
mSyncQueue.runInSync(at -> {
@@ -1194,7 +1470,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
mMainStage.activate(wct, true /* includingTopTask */);
updateWindowBounds(mSplitLayout, wct);
wct.reorder(mRootTaskInfo.token, true);
- wct.setForceTranslucent(mRootTaskInfo.token, false);
+ setRootForceTranslucent(false, wct);
}
void finishEnterSplitScreen(SurfaceControl.Transaction t) {
@@ -1228,8 +1504,10 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
return SPLIT_POSITION_UNDEFINED;
}
- private void addActivityOptions(Bundle opts, StageTaskListener stage) {
- opts.putParcelable(KEY_LAUNCH_ROOT_TASK_TOKEN, stage.mRootTaskInfo.token);
+ private void addActivityOptions(Bundle opts, @Nullable StageTaskListener launchTarget) {
+ if (launchTarget != null) {
+ opts.putParcelable(KEY_LAUNCH_ROOT_TASK_TOKEN, launchTarget.mRootTaskInfo.token);
+ }
// Put BAL flags to avoid activity start aborted. Otherwise, flows like shortcut to split
// will be canceled.
opts.putBoolean(KEY_PENDING_INTENT_BACKGROUND_ACTIVITY_ALLOWED, true);
@@ -1374,7 +1652,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
&& !ENABLE_SHELL_TRANSITIONS) {
// Clear the divider remote animating flag as the divider will be re-rendered to apply
// the new rotation config.
- mIsSplitEntering = false;
+ mIsDividerRemoteAnimating = false;
mSplitLayout.update(null /* t */);
onLayoutSizeChanged(mSplitLayout);
}
@@ -1396,6 +1674,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
mRootTaskInfo = null;
mRootTaskLeash = null;
+ mIsRootTranslucent = false;
}
@@ -1414,7 +1693,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
// Make the stages adjacent to each other so they occlude what's behind them.
wct.setAdjacentRoots(mMainStage.mRootTaskInfo.token, mSideStage.mRootTaskInfo.token);
wct.setLaunchAdjacentFlagRoot(mSideStage.mRootTaskInfo.token);
- wct.setForceTranslucent(mRootTaskInfo.token, true);
+ setRootForceTranslucent(true, wct);
mSplitLayout.getInvisibleBounds(mTempRect1);
wct.setBounds(mSideStage.mRootTaskInfo.token, mTempRect1);
mSyncQueue.queue(wct);
@@ -1424,9 +1703,9 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
}
void onChildTaskAppeared(StageListenerImpl stageListener, int taskId) {
+ // Handle entering split screen while there is a split pair running in the background.
if (stageListener == mSideStageListener && !isSplitScreenVisible() && isSplitActive()
- && !mIsSplitEntering) {
- // Handle entring split case here if split already running background.
+ && mSplitRequest == null) {
if (mIsDropEntering) {
mSplitLayout.resetDividerPosition();
} else {
@@ -1438,7 +1717,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
mSideStage.evictOtherChildren(wct, taskId);
updateWindowBounds(mSplitLayout, wct);
wct.reorder(mRootTaskInfo.token, true);
- wct.setForceTranslucent(mRootTaskInfo.token, false);
+ setRootForceTranslucent(false, wct);
mSyncQueue.queue(wct);
mSyncQueue.runInSync(t -> {
@@ -1462,7 +1741,20 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
mDisplayInsetsController.removeInsetsChangedListener(mDisplayId, mSplitLayout);
}
+ private void setRootForceTranslucent(boolean translucent, WindowContainerTransaction wct) {
+ if (mIsRootTranslucent == translucent) return;
+
+ mIsRootTranslucent = translucent;
+ wct.setForceTranslucent(mRootTaskInfo.token, translucent);
+ }
+
private void onStageVisibilityChanged(StageListenerImpl stageListener) {
+ // If split didn't active, just ignore this callback because we should already did these
+ // on #applyExitSplitScreen.
+ if (!isSplitActive()) {
+ return;
+ }
+
final boolean sideStageVisible = mSideStageListener.mVisible;
final boolean mainStageVisible = mMainStageListener.mVisible;
@@ -1471,24 +1763,26 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
return;
}
+ // Check if it needs to dismiss split screen when both stage invisible.
+ if (!mainStageVisible && mExitSplitScreenOnHide) {
+ exitSplitScreen(null /* childrenToTop */, EXIT_REASON_RETURN_HOME);
+ return;
+ }
+
final WindowContainerTransaction wct = new WindowContainerTransaction();
if (!mainStageVisible) {
+ // Split entering background.
wct.setReparentLeafTaskIfRelaunch(mRootTaskInfo.token,
true /* setReparentLeafTaskIfRelaunch */);
- wct.setForceTranslucent(mRootTaskInfo.token, true);
- // Both stages are not visible, check if it needs to dismiss split screen.
- if (mExitSplitScreenOnHide) {
- exitSplitScreen(null /* childrenToTop */, EXIT_REASON_RETURN_HOME);
- }
+ setRootForceTranslucent(true, wct);
} else {
wct.setReparentLeafTaskIfRelaunch(mRootTaskInfo.token,
false /* setReparentLeafTaskIfRelaunch */);
- wct.setForceTranslucent(mRootTaskInfo.token, false);
+ setRootForceTranslucent(false, wct);
}
+
mSyncQueue.queue(wct);
- mSyncQueue.runInSync(t -> {
- setDividerVisibility(mainStageVisible, t);
- });
+ setDividerVisibility(mainStageVisible, null);
}
private void setDividerVisibility(boolean visible, @Nullable SurfaceControl.Transaction t) {
@@ -1511,7 +1805,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
mDividerVisible = visible;
sendSplitVisibilityChanged();
- if (mIsSplitEntering) {
+ if (mIsDividerRemoteAnimating) {
ProtoLog.d(ShellProtoLogGroup.WM_SHELL_SPLIT_SCREEN,
" Skip animating divider bar due to it's remote animating.");
return;
@@ -1531,7 +1825,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
" Skip animating divider bar due to divider leash not ready.");
return;
}
- if (mIsSplitEntering) {
+ if (mIsDividerRemoteAnimating) {
ProtoLog.d(ShellProtoLogGroup.WM_SHELL_SPLIT_SCREEN,
" Skip animating divider bar due to it's remote animating.");
return;
@@ -1570,6 +1864,10 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
@Override
public void onAnimationEnd(Animator animation) {
+ if (dividerLeash != null && dividerLeash.isValid()) {
+ transaction.setAlpha(dividerLeash, 1);
+ transaction.apply();
+ }
mTransactionPool.release(transaction);
mDividerFadeInAnimator = null;
}
@@ -1595,14 +1893,15 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
mSplitLayout.flingDividerToDismiss(
mSideStagePosition != SPLIT_POSITION_BOTTOM_OR_RIGHT,
EXIT_REASON_APP_FINISHED);
- } else if (!isSplitScreenVisible() && !mIsSplitEntering) {
+ } else if (!isSplitScreenVisible() && mSplitRequest == null) {
+ // Dismiss split screen in the background once any sides of the split become empty.
exitSplitScreen(null /* childrenToTop */, EXIT_REASON_APP_FINISHED);
}
} else if (isSideStage && hasChildren && !mMainStage.isActive()) {
mSplitLayout.init();
final WindowContainerTransaction wct = new WindowContainerTransaction();
- if (mLogger.isEnterRequestedByDrag()) {
+ if (mIsDropEntering) {
prepareEnterSplitScreen(wct);
} else {
// TODO (b/238697912) : Add the validation to prevent entering non-recovered status
@@ -1611,7 +1910,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
mMainStage.activate(wct, true /* includingTopTask */);
updateWindowBounds(mSplitLayout, wct);
wct.reorder(mRootTaskInfo.token, true);
- wct.setForceTranslucent(mRootTaskInfo.token, false);
+ setRootForceTranslucent(false, wct);
}
mSyncQueue.queue(wct);
@@ -1627,6 +1926,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
}
if (mMainStageListener.mHasChildren && mSideStageListener.mHasChildren) {
mShouldUpdateRecents = true;
+ mSplitRequest = null;
updateRecentTasksSplitPair();
if (!mLogger.hasStartedSession()) {
@@ -1641,12 +1941,6 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
}
}
- boolean isValidToEnterSplitScreen(@NonNull ActivityManager.RunningTaskInfo taskInfo) {
- return taskInfo.supportsMultiWindow
- && ArrayUtils.contains(CONTROLLED_ACTIVITY_TYPES, taskInfo.getActivityType())
- && ArrayUtils.contains(CONTROLLED_WINDOWING_MODES, taskInfo.getWindowingMode());
- }
-
@Override
public void onSnappedToDismiss(boolean bottomOrRight, int reason) {
final boolean mainStageToTop =
@@ -2185,6 +2479,47 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler,
mSplitLayout.flingDividerToDismiss(!leftOrTop, EXIT_REASON_FULLSCREEN_SHORTCUT);
}
+ /** Move the specified task to fullscreen, regardless of focus state. */
+ public void moveTaskToFullscreen(int taskId) {
+ boolean leftOrTop;
+ if (mMainStage.containsTask(taskId)) {
+ leftOrTop = (mSideStagePosition == SPLIT_POSITION_TOP_OR_LEFT);
+ } else if (mSideStage.containsTask(taskId)) {
+ leftOrTop = (mSideStagePosition == SPLIT_POSITION_BOTTOM_OR_RIGHT);
+ } else {
+ return;
+ }
+ mSplitLayout.flingDividerToDismiss(!leftOrTop, EXIT_REASON_FULLSCREEN_SHORTCUT);
+
+ }
+
+ boolean isLaunchToSplit(TaskInfo taskInfo) {
+ return getActivateSplitPosition(taskInfo) != SPLIT_POSITION_UNDEFINED;
+ }
+
+ int getActivateSplitPosition(TaskInfo taskInfo) {
+ if (mSplitRequest == null || taskInfo == null) {
+ return SPLIT_POSITION_UNDEFINED;
+ }
+ if (mSplitRequest.mActivateTaskId != 0
+ && mSplitRequest.mActivateTaskId2 == taskInfo.taskId) {
+ return mSplitRequest.mActivatePosition;
+ }
+ if (mSplitRequest.mActivateTaskId == taskInfo.taskId) {
+ return mSplitRequest.mActivatePosition;
+ }
+ final String packageName1 = SplitScreenUtils.getPackageName(mSplitRequest.mStartIntent);
+ final String basePackageName = SplitScreenUtils.getPackageName(taskInfo.baseIntent);
+ if (packageName1 != null && packageName1.equals(basePackageName)) {
+ return mSplitRequest.mActivatePosition;
+ }
+ final String packageName2 = SplitScreenUtils.getPackageName(mSplitRequest.mStartIntent2);
+ if (packageName2 != null && packageName2.equals(basePackageName)) {
+ return mSplitRequest.mActivatePosition;
+ }
+ return SPLIT_POSITION_UNDEFINED;
+ }
+
/** Synchronize split-screen state with transition and make appropriate preparations. */
public void prepareDismissAnimation(@StageType int toStage, @ExitReason int dismissReason,
@NonNull TransitionInfo info, @NonNull SurfaceControl.Transaction t,
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageTaskListener.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageTaskListener.java
index a841b7f96d3c5fa6765f18dba19aafafee2f6d1e..ead0bcd15c73b864fb2b3884a2852e585f05ed25 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageTaskListener.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/StageTaskListener.java
@@ -220,12 +220,20 @@ class StageTaskListener implements ShellTaskOrganizer.TaskListener {
mCallbacks.onNoLongerSupportMultiWindow();
return;
}
- mChildrenTaskInfo.put(taskInfo.taskId, taskInfo);
+ if (taskInfo.topActivity == null && mChildrenTaskInfo.contains(taskInfo.taskId)
+ && mChildrenTaskInfo.get(taskInfo.taskId).topActivity != null) {
+ // If top activity become null, it means the task is about to vanish, we use this
+ // signal to remove it from children list earlier for smooth dismiss transition.
+ mChildrenTaskInfo.remove(taskInfo.taskId);
+ mChildrenLeashes.remove(taskInfo.taskId);
+ } else {
+ mChildrenTaskInfo.put(taskInfo.taskId, taskInfo);
+ }
mCallbacks.onChildTaskStatusChanged(taskInfo.taskId, true /* present */,
taskInfo.isVisible);
- if (!ENABLE_SHELL_TRANSITIONS) {
- updateChildTaskSurface(
- taskInfo, mChildrenLeashes.get(taskInfo.taskId), false /* firstAppeared */);
+ if (!ENABLE_SHELL_TRANSITIONS && mChildrenLeashes.contains(taskInfo.taskId)) {
+ updateChildTaskSurface(taskInfo, mChildrenLeashes.get(taskInfo.taskId),
+ false /* firstAppeared */);
}
} else {
throw new IllegalArgumentException(this + "\n Unknown task: " + taskInfo
@@ -259,9 +267,6 @@ class StageTaskListener implements ShellTaskOrganizer.TaskListener {
return;
}
sendStatusChanged();
- } else {
- throw new IllegalArgumentException(this + "\n Unknown task: " + taskInfo
- + "\n mRootTaskInfo: " + mRootTaskInfo);
}
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/UnfoldBackgroundController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/UnfoldBackgroundController.java
index 86ca292399cbdd151987fae3215059c681e5060a..fe0a3fb7b9dc3c2104fb30fe412b901a9dccfaab 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/UnfoldBackgroundController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/UnfoldBackgroundController.java
@@ -79,7 +79,7 @@ public class UnfoldBackgroundController {
}
private float[] getBackgroundColor(Context context) {
- int colorInt = context.getResources().getColor(R.color.taskbar_background);
+ int colorInt = context.getResources().getColor(R.color.unfold_background);
return new float[]{
(float) red(colorInt) / 255.0F,
(float) green(colorInt) / 255.0F,
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/animation/FullscreenUnfoldTaskAnimator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/animation/FullscreenUnfoldTaskAnimator.java
index eab82f00e9627950dd1751d3b8b5bdec15e27e2d..e0f3fcd932c212187cf6638a7eddc683235b7970 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/animation/FullscreenUnfoldTaskAnimator.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/animation/FullscreenUnfoldTaskAnimator.java
@@ -26,8 +26,10 @@ import android.animation.TypeEvaluator;
import android.annotation.NonNull;
import android.app.TaskInfo;
import android.content.Context;
+import android.content.res.Configuration;
import android.graphics.Matrix;
import android.graphics.Rect;
+import android.os.Trace;
import android.util.SparseArray;
import android.view.InsetsSource;
import android.view.InsetsState;
@@ -36,6 +38,8 @@ import android.view.SurfaceControl.Transaction;
import com.android.internal.policy.ScreenDecorationsUtils;
import com.android.wm.shell.common.DisplayInsetsController;
+import com.android.wm.shell.sysui.ConfigurationChangeListener;
+import com.android.wm.shell.sysui.ShellController;
import com.android.wm.shell.unfold.UnfoldAnimationController;
import com.android.wm.shell.unfold.UnfoldBackgroundController;
@@ -51,7 +55,7 @@ import com.android.wm.shell.unfold.UnfoldBackgroundController;
* instances of FullscreenUnfoldTaskAnimator.
*/
public class FullscreenUnfoldTaskAnimator implements UnfoldTaskAnimator,
- DisplayInsetsController.OnInsetsChangedListener {
+ DisplayInsetsController.OnInsetsChangedListener, ConfigurationChangeListener {
private static final float[] FLOAT_9 = new float[9];
private static final TypeEvaluator RECT_EVALUATOR = new RectEvaluator(new Rect());
@@ -63,17 +67,21 @@ public class FullscreenUnfoldTaskAnimator implements UnfoldTaskAnimator,
private final SparseArray mAnimationContextByTaskId = new SparseArray<>();
private final int mExpandedTaskBarHeight;
- private final float mWindowCornerRadiusPx;
private final DisplayInsetsController mDisplayInsetsController;
private final UnfoldBackgroundController mBackgroundController;
+ private final Context mContext;
+ private final ShellController mShellController;
private InsetsSource mTaskbarInsetsSource;
+ private float mWindowCornerRadiusPx;
public FullscreenUnfoldTaskAnimator(Context context,
@NonNull UnfoldBackgroundController backgroundController,
- DisplayInsetsController displayInsetsController) {
+ ShellController shellController, DisplayInsetsController displayInsetsController) {
+ mContext = context;
mDisplayInsetsController = displayInsetsController;
mBackgroundController = backgroundController;
+ mShellController = shellController;
mExpandedTaskBarHeight = context.getResources().getDimensionPixelSize(
com.android.internal.R.dimen.taskbar_frame_height);
mWindowCornerRadiusPx = ScreenDecorationsUtils.getWindowCornerRadius(context);
@@ -81,6 +89,14 @@ public class FullscreenUnfoldTaskAnimator implements UnfoldTaskAnimator,
public void init() {
mDisplayInsetsController.addInsetsChangedListener(DEFAULT_DISPLAY, this);
+ mShellController.addConfigurationChangeListener(this);
+ }
+
+ @Override
+ public void onConfigurationChanged(Configuration newConfiguration) {
+ Trace.beginSection("FullscreenUnfoldTaskAnimator#onConfigurationChanged");
+ mWindowCornerRadiusPx = ScreenDecorationsUtils.getWindowCornerRadius(mContext);
+ Trace.endSection();
}
@Override
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/animation/SplitTaskUnfoldAnimator.java b/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/animation/SplitTaskUnfoldAnimator.java
index 6e10ebe94c5d38ea4e27d5b698bf69f9a00b2eff..addd0a6012c444aac9897349dd4ec9bad76fd078 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/animation/SplitTaskUnfoldAnimator.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/unfold/animation/SplitTaskUnfoldAnimator.java
@@ -28,8 +28,10 @@ import android.animation.RectEvaluator;
import android.animation.TypeEvaluator;
import android.app.TaskInfo;
import android.content.Context;
+import android.content.res.Configuration;
import android.graphics.Insets;
import android.graphics.Rect;
+import android.os.Trace;
import android.util.SparseArray;
import android.view.InsetsSource;
import android.view.InsetsState;
@@ -42,6 +44,8 @@ import com.android.wm.shell.common.split.SplitScreenConstants.SplitPosition;
import com.android.wm.shell.splitscreen.SplitScreen;
import com.android.wm.shell.splitscreen.SplitScreen.SplitScreenListener;
import com.android.wm.shell.splitscreen.SplitScreenController;
+import com.android.wm.shell.sysui.ConfigurationChangeListener;
+import com.android.wm.shell.sysui.ShellController;
import com.android.wm.shell.unfold.UnfoldAnimationController;
import com.android.wm.shell.unfold.UnfoldBackgroundController;
@@ -62,16 +66,18 @@ import dagger.Lazy;
* They use independent instances of SplitTaskUnfoldAnimator.
*/
public class SplitTaskUnfoldAnimator implements UnfoldTaskAnimator,
- DisplayInsetsController.OnInsetsChangedListener, SplitScreenListener {
+ DisplayInsetsController.OnInsetsChangedListener, SplitScreenListener,
+ ConfigurationChangeListener {
private static final TypeEvaluator RECT_EVALUATOR = new RectEvaluator(new Rect());
private static final float CROPPING_START_MARGIN_FRACTION = 0.05f;
+ private final Context mContext;
private final Executor mExecutor;
private final DisplayInsetsController mDisplayInsetsController;
private final SparseArray mAnimationContextByTaskId = new SparseArray<>();
private final int mExpandedTaskBarHeight;
- private final float mWindowCornerRadiusPx;
+ private final ShellController mShellController;
private final Lazy> mSplitScreenController;
private final UnfoldBackgroundController mUnfoldBackgroundController;
@@ -79,6 +85,7 @@ public class SplitTaskUnfoldAnimator implements UnfoldTaskAnimator,
private final Rect mSideStageBounds = new Rect();
private final Rect mRootStageBounds = new Rect();
+ private float mWindowCornerRadiusPx;
private InsetsSource mTaskbarInsetsSource;
@SplitPosition
@@ -88,10 +95,12 @@ public class SplitTaskUnfoldAnimator implements UnfoldTaskAnimator,
public SplitTaskUnfoldAnimator(Context context, Executor executor,
Lazy> splitScreenController,
- UnfoldBackgroundController unfoldBackgroundController,
+ ShellController shellController, UnfoldBackgroundController unfoldBackgroundController,
DisplayInsetsController displayInsetsController) {
mDisplayInsetsController = displayInsetsController;
mExecutor = executor;
+ mContext = context;
+ mShellController = shellController;
mUnfoldBackgroundController = unfoldBackgroundController;
mSplitScreenController = splitScreenController;
mExpandedTaskBarHeight = context.getResources().getDimensionPixelSize(
@@ -103,6 +112,14 @@ public class SplitTaskUnfoldAnimator implements UnfoldTaskAnimator,
@Override
public void init() {
mDisplayInsetsController.addInsetsChangedListener(DEFAULT_DISPLAY, this);
+ mShellController.addConfigurationChangeListener(this);
+ }
+
+ @Override
+ public void onConfigurationChanged(Configuration newConfiguration) {
+ Trace.beginSection("SplitTaskUnfoldAnimator#onConfigurationChanged");
+ mWindowCornerRadiusPx = ScreenDecorationsUtils.getWindowCornerRadius(mContext);
+ Trace.endSection();
}
/**
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java
new file mode 100644
index 0000000000000000000000000000000000000000..6b7ca421f5ed49c880cbb986a23d35afe680d9c8
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java
@@ -0,0 +1,276 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.wm.shell.windowdecor;
+
+import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
+
+import android.app.ActivityManager.RunningTaskInfo;
+import android.content.Context;
+import android.os.Handler;
+import android.util.SparseArray;
+import android.view.Choreographer;
+import android.view.MotionEvent;
+import android.view.SurfaceControl;
+import android.view.View;
+import android.window.WindowContainerToken;
+import android.window.WindowContainerTransaction;
+
+import com.android.wm.shell.R;
+import com.android.wm.shell.ShellTaskOrganizer;
+import com.android.wm.shell.common.DisplayController;
+import com.android.wm.shell.common.SyncTransactionQueue;
+import com.android.wm.shell.freeform.FreeformTaskTransitionStarter;
+import com.android.wm.shell.transition.Transitions;
+
+/**
+ * View model for the window decoration with a caption and shadows. Works with
+ * {@link CaptionWindowDecoration}.
+ */
+public class CaptionWindowDecorViewModel implements WindowDecorViewModel {
+ private final ShellTaskOrganizer mTaskOrganizer;
+ private final Context mContext;
+ private final Handler mMainHandler;
+ private final Choreographer mMainChoreographer;
+ private final DisplayController mDisplayController;
+ private final SyncTransactionQueue mSyncQueue;
+ private TaskOperations mTaskOperations;
+
+ private final SparseArray mWindowDecorByTaskId = new SparseArray<>();
+
+ public CaptionWindowDecorViewModel(
+ Context context,
+ Handler mainHandler,
+ Choreographer mainChoreographer,
+ ShellTaskOrganizer taskOrganizer,
+ DisplayController displayController,
+ SyncTransactionQueue syncQueue) {
+ mContext = context;
+ mMainHandler = mainHandler;
+ mMainChoreographer = mainChoreographer;
+ mTaskOrganizer = taskOrganizer;
+ mDisplayController = displayController;
+ mSyncQueue = syncQueue;
+ if (!Transitions.ENABLE_SHELL_TRANSITIONS) {
+ mTaskOperations = new TaskOperations(null, mContext, mSyncQueue);
+ }
+ }
+
+ @Override
+ public void setFreeformTaskTransitionStarter(FreeformTaskTransitionStarter transitionStarter) {
+ mTaskOperations = new TaskOperations(transitionStarter, mContext, mSyncQueue);
+ }
+
+ @Override
+ public boolean onTaskOpening(
+ RunningTaskInfo taskInfo,
+ SurfaceControl taskSurface,
+ SurfaceControl.Transaction startT,
+ SurfaceControl.Transaction finishT) {
+ if (!shouldShowWindowDecor(taskInfo)) return false;
+ createWindowDecoration(taskInfo, taskSurface, startT, finishT);
+ return true;
+ }
+
+ @Override
+ public void onTaskInfoChanged(RunningTaskInfo taskInfo) {
+ final CaptionWindowDecoration decoration = mWindowDecorByTaskId.get(taskInfo.taskId);
+
+ if (decoration == null) return;
+
+ decoration.relayout(taskInfo);
+ setupCaptionColor(taskInfo, decoration);
+ }
+
+ @Override
+ public void onTaskChanging(
+ RunningTaskInfo taskInfo,
+ SurfaceControl taskSurface,
+ SurfaceControl.Transaction startT,
+ SurfaceControl.Transaction finishT) {
+ final CaptionWindowDecoration decoration = mWindowDecorByTaskId.get(taskInfo.taskId);
+
+ if (!shouldShowWindowDecor(taskInfo)) {
+ if (decoration != null) {
+ destroyWindowDecoration(taskInfo);
+ }
+ return;
+ }
+
+ if (decoration == null) {
+ createWindowDecoration(taskInfo, taskSurface, startT, finishT);
+ } else {
+ decoration.relayout(taskInfo, startT, finishT);
+ }
+ }
+
+ @Override
+ public void onTaskClosing(
+ RunningTaskInfo taskInfo,
+ SurfaceControl.Transaction startT,
+ SurfaceControl.Transaction finishT) {
+ final CaptionWindowDecoration decoration = mWindowDecorByTaskId.get(taskInfo.taskId);
+ if (decoration == null) return;
+
+ decoration.relayout(taskInfo, startT, finishT);
+ }
+
+ @Override
+ public void destroyWindowDecoration(RunningTaskInfo taskInfo) {
+ final CaptionWindowDecoration decoration =
+ mWindowDecorByTaskId.removeReturnOld(taskInfo.taskId);
+ if (decoration == null) return;
+
+ decoration.close();
+ }
+
+ private void setupCaptionColor(RunningTaskInfo taskInfo, CaptionWindowDecoration decoration) {
+ final int statusBarColor = taskInfo.taskDescription.getStatusBarColor();
+ decoration.setCaptionColor(statusBarColor);
+ }
+
+ private boolean shouldShowWindowDecor(RunningTaskInfo taskInfo) {
+ return taskInfo.getWindowingMode() == WINDOWING_MODE_FREEFORM
+ || (taskInfo.getActivityType() == ACTIVITY_TYPE_STANDARD
+ && taskInfo.configuration.windowConfiguration.getDisplayWindowingMode()
+ == WINDOWING_MODE_FREEFORM);
+ }
+
+ private void createWindowDecoration(
+ RunningTaskInfo taskInfo,
+ SurfaceControl taskSurface,
+ SurfaceControl.Transaction startT,
+ SurfaceControl.Transaction finishT) {
+ final CaptionWindowDecoration oldDecoration = mWindowDecorByTaskId.get(taskInfo.taskId);
+ if (oldDecoration != null) {
+ // close the old decoration if it exists to avoid two window decorations being added
+ oldDecoration.close();
+ }
+ final CaptionWindowDecoration windowDecoration =
+ new CaptionWindowDecoration(
+ mContext,
+ mDisplayController,
+ mTaskOrganizer,
+ taskInfo,
+ taskSurface,
+ mMainHandler,
+ mMainChoreographer,
+ mSyncQueue);
+ mWindowDecorByTaskId.put(taskInfo.taskId, windowDecoration);
+
+ final TaskPositioner taskPositioner =
+ new TaskPositioner(mTaskOrganizer, windowDecoration, mDisplayController);
+ final CaptionTouchEventListener touchEventListener =
+ new CaptionTouchEventListener(taskInfo, taskPositioner);
+ windowDecoration.setCaptionListeners(touchEventListener, touchEventListener);
+ windowDecoration.setDragPositioningCallback(taskPositioner);
+ windowDecoration.setDragDetector(touchEventListener.mDragDetector);
+ windowDecoration.relayout(taskInfo, startT, finishT);
+ setupCaptionColor(taskInfo, windowDecoration);
+ }
+
+ private class CaptionTouchEventListener implements
+ View.OnClickListener, View.OnTouchListener, DragDetector.MotionEventHandler {
+
+ private final int mTaskId;
+ private final WindowContainerToken mTaskToken;
+ private final DragPositioningCallback mDragPositioningCallback;
+ private final DragDetector mDragDetector;
+
+ private int mDragPointerId = -1;
+ private boolean mIsDragging;
+
+ private CaptionTouchEventListener(
+ RunningTaskInfo taskInfo,
+ DragPositioningCallback dragPositioningCallback) {
+ mTaskId = taskInfo.taskId;
+ mTaskToken = taskInfo.token;
+ mDragPositioningCallback = dragPositioningCallback;
+ mDragDetector = new DragDetector(this);
+ }
+
+ @Override
+ public void onClick(View v) {
+ final int id = v.getId();
+ if (id == R.id.close_window) {
+ mTaskOperations.closeTask(mTaskToken);
+ } else if (id == R.id.back_button) {
+ mTaskOperations.injectBackKey();
+ } else if (id == R.id.minimize_window) {
+ mTaskOperations.minimizeTask(mTaskToken);
+ } else if (id == R.id.maximize_window) {
+ RunningTaskInfo taskInfo = mTaskOrganizer.getRunningTaskInfo(mTaskId);
+ mTaskOperations.maximizeTask(taskInfo);
+ }
+ }
+
+ @Override
+ public boolean onTouch(View v, MotionEvent e) {
+ if (v.getId() != R.id.caption) {
+ return false;
+ }
+ if (e.getAction() == MotionEvent.ACTION_DOWN) {
+ final RunningTaskInfo taskInfo = mTaskOrganizer.getRunningTaskInfo(mTaskId);
+ if (!taskInfo.isFocused) {
+ final WindowContainerTransaction wct = new WindowContainerTransaction();
+ wct.reorder(mTaskToken, true /* onTop */);
+ mSyncQueue.queue(wct);
+ }
+ }
+ return mDragDetector.onMotionEvent(e);
+ }
+
+ /**
+ * @param e {@link MotionEvent} to process
+ * @return {@code true} if a drag is happening; or {@code false} if it is not
+ */
+ @Override
+ public boolean handleMotionEvent(MotionEvent e) {
+ final RunningTaskInfo taskInfo = mTaskOrganizer.getRunningTaskInfo(mTaskId);
+ if (taskInfo.getWindowingMode() == WINDOWING_MODE_FULLSCREEN) {
+ return false;
+ }
+ switch (e.getActionMasked()) {
+ case MotionEvent.ACTION_DOWN: {
+ mDragPointerId = e.getPointerId(0);
+ mDragPositioningCallback.onDragPositioningStart(
+ 0 /* ctrlType */, e.getRawX(0), e.getRawY(0));
+ mIsDragging = false;
+ return false;
+ }
+ case MotionEvent.ACTION_MOVE: {
+ int dragPointerIdx = e.findPointerIndex(mDragPointerId);
+ mDragPositioningCallback.onDragPositioningMove(
+ e.getRawX(dragPointerIdx), e.getRawY(dragPointerIdx));
+ mIsDragging = true;
+ return true;
+ }
+ case MotionEvent.ACTION_UP:
+ case MotionEvent.ACTION_CANCEL: {
+ int dragPointerIdx = e.findPointerIndex(mDragPointerId);
+ mDragPositioningCallback.onDragPositioningEnd(
+ e.getRawX(dragPointerIdx), e.getRawY(dragPointerIdx));
+ final boolean wasDragging = mIsDragging;
+ mIsDragging = false;
+ return wasDragging;
+ }
+ }
+ return true;
+ }
+ }
+}
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java
new file mode 100644
index 0000000000000000000000000000000000000000..060dc4e05b46257fc2cb8a2b431200bbb7d4496d
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecoration.java
@@ -0,0 +1,231 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.wm.shell.windowdecor;
+
+import android.app.ActivityManager.RunningTaskInfo;
+import android.app.WindowConfiguration;
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.graphics.Color;
+import android.graphics.drawable.GradientDrawable;
+import android.graphics.drawable.VectorDrawable;
+import android.os.Handler;
+import android.view.Choreographer;
+import android.view.SurfaceControl;
+import android.view.View;
+import android.view.ViewConfiguration;
+import android.window.WindowContainerTransaction;
+
+import com.android.wm.shell.R;
+import com.android.wm.shell.ShellTaskOrganizer;
+import com.android.wm.shell.common.DisplayController;
+import com.android.wm.shell.common.SyncTransactionQueue;
+
+/**
+ * Defines visuals and behaviors of a window decoration of a caption bar and shadows. It works with
+ * {@link CaptionWindowDecorViewModel}. The caption bar contains a back button, minimize button,
+ * maximize button and close button.
+ */
+public class CaptionWindowDecoration extends WindowDecoration {
+ private final Handler mHandler;
+ private final Choreographer mChoreographer;
+ private final SyncTransactionQueue mSyncQueue;
+
+ private View.OnClickListener mOnCaptionButtonClickListener;
+ private View.OnTouchListener mOnCaptionTouchListener;
+ private DragPositioningCallback mDragPositioningCallback;
+ private DragResizeInputListener mDragResizeListener;
+ private DragDetector mDragDetector;
+
+ private RelayoutParams mRelayoutParams = new RelayoutParams();
+ private final RelayoutResult mResult =
+ new RelayoutResult<>();
+
+ CaptionWindowDecoration(
+ Context context,
+ DisplayController displayController,
+ ShellTaskOrganizer taskOrganizer,
+ RunningTaskInfo taskInfo,
+ SurfaceControl taskSurface,
+ Handler handler,
+ Choreographer choreographer,
+ SyncTransactionQueue syncQueue) {
+ super(context, displayController, taskOrganizer, taskInfo, taskSurface);
+
+ mHandler = handler;
+ mChoreographer = choreographer;
+ mSyncQueue = syncQueue;
+ }
+
+ void setCaptionListeners(
+ View.OnClickListener onCaptionButtonClickListener,
+ View.OnTouchListener onCaptionTouchListener) {
+ mOnCaptionButtonClickListener = onCaptionButtonClickListener;
+ mOnCaptionTouchListener = onCaptionTouchListener;
+ }
+
+ void setDragPositioningCallback(DragPositioningCallback dragPositioningCallback) {
+ mDragPositioningCallback = dragPositioningCallback;
+ }
+
+ void setDragDetector(DragDetector dragDetector) {
+ mDragDetector = dragDetector;
+ mDragDetector.setTouchSlop(ViewConfiguration.get(mContext).getScaledTouchSlop());
+ }
+
+ @Override
+ void relayout(RunningTaskInfo taskInfo) {
+ final SurfaceControl.Transaction t = new SurfaceControl.Transaction();
+ relayout(taskInfo, t, t);
+ mSyncQueue.runInSync(transaction -> {
+ transaction.merge(t);
+ t.close();
+ });
+ }
+
+ void relayout(RunningTaskInfo taskInfo,
+ SurfaceControl.Transaction startT, SurfaceControl.Transaction finishT) {
+ final int shadowRadiusID = taskInfo.isFocused
+ ? R.dimen.freeform_decor_shadow_focused_thickness
+ : R.dimen.freeform_decor_shadow_unfocused_thickness;
+ final boolean isFreeform =
+ taskInfo.getWindowingMode() == WindowConfiguration.WINDOWING_MODE_FREEFORM;
+ final boolean isDragResizeable = isFreeform && taskInfo.isResizeable;
+
+ final WindowDecorLinearLayout oldRootView = mResult.mRootView;
+ final SurfaceControl oldDecorationSurface = mDecorationContainerSurface;
+ final WindowContainerTransaction wct = new WindowContainerTransaction();
+
+ final int outsetLeftId = R.dimen.freeform_resize_handle;
+ final int outsetTopId = R.dimen.freeform_resize_handle;
+ final int outsetRightId = R.dimen.freeform_resize_handle;
+ final int outsetBottomId = R.dimen.freeform_resize_handle;
+
+ mRelayoutParams.reset();
+ mRelayoutParams.mRunningTaskInfo = taskInfo;
+ mRelayoutParams.mLayoutResId = R.layout.caption_window_decor;
+ mRelayoutParams.mCaptionHeightId = R.dimen.freeform_decor_caption_height;
+ mRelayoutParams.mShadowRadiusId = shadowRadiusID;
+ if (isDragResizeable) {
+ mRelayoutParams.setOutsets(outsetLeftId, outsetTopId, outsetRightId, outsetBottomId);
+ }
+
+ relayout(mRelayoutParams, startT, finishT, wct, oldRootView, mResult);
+ // After this line, mTaskInfo is up-to-date and should be used instead of taskInfo
+
+ mTaskOrganizer.applyTransaction(wct);
+
+ if (mResult.mRootView == null) {
+ // This means something blocks the window decor from showing, e.g. the task is hidden.
+ // Nothing is set up in this case including the decoration surface.
+ return;
+ }
+ if (oldRootView != mResult.mRootView) {
+ setupRootView();
+ }
+
+ if (!isDragResizeable) {
+ closeDragResizeListener();
+ return;
+ }
+
+ if (oldDecorationSurface != mDecorationContainerSurface || mDragResizeListener == null) {
+ closeDragResizeListener();
+ mDragResizeListener = new DragResizeInputListener(
+ mContext,
+ mHandler,
+ mChoreographer,
+ mDisplay.getDisplayId(),
+ mDecorationContainerSurface,
+ mDragPositioningCallback);
+ }
+
+ final int touchSlop = ViewConfiguration.get(mResult.mRootView.getContext())
+ .getScaledTouchSlop();
+ mDragDetector.setTouchSlop(touchSlop);
+
+ final int resize_handle = mResult.mRootView.getResources()
+ .getDimensionPixelSize(R.dimen.freeform_resize_handle);
+ final int resize_corner = mResult.mRootView.getResources()
+ .getDimensionPixelSize(R.dimen.freeform_resize_corner);
+ mDragResizeListener.setGeometry(
+ mResult.mWidth, mResult.mHeight, resize_handle, resize_corner, touchSlop);
+ }
+
+ /**
+ * Sets up listeners when a new root view is created.
+ */
+ private void setupRootView() {
+ final View caption = mResult.mRootView.findViewById(R.id.caption);
+ caption.setOnTouchListener(mOnCaptionTouchListener);
+ final View close = caption.findViewById(R.id.close_window);
+ close.setOnClickListener(mOnCaptionButtonClickListener);
+ final View back = caption.findViewById(R.id.back_button);
+ back.setOnClickListener(mOnCaptionButtonClickListener);
+ final View minimize = caption.findViewById(R.id.minimize_window);
+ minimize.setOnClickListener(mOnCaptionButtonClickListener);
+ final View maximize = caption.findViewById(R.id.maximize_window);
+ maximize.setOnClickListener(mOnCaptionButtonClickListener);
+ }
+
+ void setCaptionColor(int captionColor) {
+ if (mResult.mRootView == null) {
+ return;
+ }
+
+ final View caption = mResult.mRootView.findViewById(R.id.caption);
+ final GradientDrawable captionDrawable = (GradientDrawable) caption.getBackground();
+ captionDrawable.setColor(captionColor);
+
+ final int buttonTintColorRes =
+ Color.valueOf(captionColor).luminance() < 0.5
+ ? R.color.decor_button_light_color
+ : R.color.decor_button_dark_color;
+ final ColorStateList buttonTintColor =
+ caption.getResources().getColorStateList(buttonTintColorRes, null /* theme */);
+
+ final View back = caption.findViewById(R.id.back_button);
+ final VectorDrawable backBackground = (VectorDrawable) back.getBackground();
+ backBackground.setTintList(buttonTintColor);
+
+ final View minimize = caption.findViewById(R.id.minimize_window);
+ final VectorDrawable minimizeBackground = (VectorDrawable) minimize.getBackground();
+ minimizeBackground.setTintList(buttonTintColor);
+
+ final View maximize = caption.findViewById(R.id.maximize_window);
+ final VectorDrawable maximizeBackground = (VectorDrawable) maximize.getBackground();
+ maximizeBackground.setTintList(buttonTintColor);
+
+ final View close = caption.findViewById(R.id.close_window);
+ final VectorDrawable closeBackground = (VectorDrawable) close.getBackground();
+ closeBackground.setTintList(buttonTintColor);
+ }
+
+ private void closeDragResizeListener() {
+ if (mDragResizeListener == null) {
+ return;
+ }
+ mDragResizeListener.close();
+ mDragResizeListener = null;
+ }
+
+ @Override
+ public void close() {
+ closeDragResizeListener();
+ super.close();
+ }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java
index 00aab673336924ac75a07ac0bde2a870a25783ea..dee5f8fa74d87eea4453882111c70ce1b067b21b 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java
@@ -20,29 +20,27 @@ import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
+import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_BOTTOM_OR_RIGHT;
+import static com.android.wm.shell.common.split.SplitScreenConstants.SPLIT_POSITION_TOP_OR_LEFT;
+
import android.app.ActivityManager;
import android.app.ActivityManager.RunningTaskInfo;
import android.app.ActivityTaskManager;
import android.content.Context;
+import android.graphics.Rect;
import android.hardware.input.InputManager;
import android.os.Handler;
import android.os.Looper;
-import android.os.SystemClock;
-import android.util.Log;
import android.util.SparseArray;
import android.view.Choreographer;
import android.view.InputChannel;
-import android.view.InputDevice;
import android.view.InputEvent;
import android.view.InputEventReceiver;
import android.view.InputMonitor;
-import android.view.KeyCharacterMap;
-import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SurfaceControl;
import android.view.View;
import android.window.WindowContainerToken;
-import android.window.WindowContainerTransaction;
import androidx.annotation.Nullable;
@@ -55,7 +53,7 @@ import com.android.wm.shell.desktopmode.DesktopModeController;
import com.android.wm.shell.desktopmode.DesktopModeStatus;
import com.android.wm.shell.desktopmode.DesktopTasksController;
import com.android.wm.shell.freeform.FreeformTaskTransitionStarter;
-import com.android.wm.shell.transition.Transitions;
+import com.android.wm.shell.splitscreen.SplitScreenController;
import java.util.Optional;
@@ -74,9 +72,8 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
private final Choreographer mMainChoreographer;
private final DisplayController mDisplayController;
private final SyncTransactionQueue mSyncQueue;
- private FreeformTaskTransitionStarter mTransitionStarter;
- private Optional mDesktopModeController;
- private Optional mDesktopTasksController;
+ private final Optional mDesktopModeController;
+ private final Optional mDesktopTasksController;
private boolean mTransitionDragActive;
private SparseArray mEventReceiversByDisplay = new SparseArray<>();
@@ -84,7 +81,10 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
private final SparseArray mWindowDecorByTaskId =
new SparseArray<>();
private final DragStartListenerImpl mDragStartListener = new DragStartListenerImpl();
- private InputMonitorFactory mInputMonitorFactory;
+ private final InputMonitorFactory mInputMonitorFactory;
+ private TaskOperations mTaskOperations;
+
+ private Optional mSplitScreenController;
public DesktopModeWindowDecorViewModel(
Context context,
@@ -94,7 +94,8 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
DisplayController displayController,
SyncTransactionQueue syncQueue,
Optional desktopModeController,
- Optional desktopTasksController) {
+ Optional desktopTasksController,
+ Optional splitScreenController) {
this(
context,
mainHandler,
@@ -104,6 +105,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
syncQueue,
desktopModeController,
desktopTasksController,
+ splitScreenController,
new DesktopModeWindowDecoration.Factory(),
new InputMonitorFactory());
}
@@ -118,6 +120,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
SyncTransactionQueue syncQueue,
Optional desktopModeController,
Optional desktopTasksController,
+ Optional splitScreenController,
DesktopModeWindowDecoration.Factory desktopModeWindowDecorFactory,
InputMonitorFactory inputMonitorFactory) {
mContext = context;
@@ -126,6 +129,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
mActivityTaskManager = mContext.getSystemService(ActivityTaskManager.class);
mTaskOrganizer = taskOrganizer;
mDisplayController = displayController;
+ mSplitScreenController = splitScreenController;
mSyncQueue = syncQueue;
mDesktopModeController = desktopModeController;
mDesktopTasksController = desktopTasksController;
@@ -136,7 +140,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
@Override
public void setFreeformTaskTransitionStarter(FreeformTaskTransitionStarter transitionStarter) {
- mTransitionStarter = transitionStarter;
+ mTaskOperations = new TaskOperations(transitionStarter, mContext, mSyncQueue);
}
@Override
@@ -162,6 +166,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
}
decoration.relayout(taskInfo);
+ setupCaptionColor(taskInfo, decoration);
}
@Override
@@ -204,46 +209,49 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
if (decoration == null) return;
decoration.close();
- int displayId = taskInfo.displayId;
+ final int displayId = taskInfo.displayId;
if (mEventReceiversByDisplay.contains(displayId)) {
removeTaskFromEventReceiver(displayId);
}
}
- private class CaptionTouchEventListener implements
- View.OnClickListener, View.OnTouchListener {
+ private class DesktopModeTouchEventListener implements
+ View.OnClickListener, View.OnTouchListener, DragDetector.MotionEventHandler {
private final int mTaskId;
private final WindowContainerToken mTaskToken;
- private final DragResizeCallback mDragResizeCallback;
+ private final DragPositioningCallback mDragPositioningCallback;
private final DragDetector mDragDetector;
+ private boolean mIsDragging;
private int mDragPointerId = -1;
- private CaptionTouchEventListener(
+ private DesktopModeTouchEventListener(
RunningTaskInfo taskInfo,
- DragResizeCallback dragResizeCallback,
- DragDetector dragDetector) {
+ DragPositioningCallback dragPositioningCallback) {
mTaskId = taskInfo.taskId;
mTaskToken = taskInfo.token;
- mDragResizeCallback = dragResizeCallback;
- mDragDetector = dragDetector;
+ mDragPositioningCallback = dragPositioningCallback;
+ mDragDetector = new DragDetector(this);
}
@Override
public void onClick(View v) {
- DesktopModeWindowDecoration decoration = mWindowDecorByTaskId.get(mTaskId);
+ final DesktopModeWindowDecoration decoration = mWindowDecorByTaskId.get(mTaskId);
final int id = v.getId();
- if (id == R.id.close_window) {
- WindowContainerTransaction wct = new WindowContainerTransaction();
- wct.removeTask(mTaskToken);
- if (Transitions.ENABLE_SHELL_TRANSITIONS) {
- mTransitionStarter.startRemoveTransition(wct);
- } else {
- mSyncQueue.queue(wct);
+ if (id == R.id.close_window || id == R.id.close_button) {
+ mTaskOperations.closeTask(mTaskToken);
+ if (mSplitScreenController.isPresent()
+ && mSplitScreenController.get().isSplitScreenVisible()) {
+ int remainingTaskPosition = mTaskId == mSplitScreenController.get()
+ .getTaskInfo(SPLIT_POSITION_TOP_OR_LEFT).taskId
+ ? SPLIT_POSITION_BOTTOM_OR_RIGHT : SPLIT_POSITION_TOP_OR_LEFT;
+ ActivityManager.RunningTaskInfo remainingTask = mSplitScreenController.get()
+ .getTaskInfo(remainingTaskPosition);
+ mSplitScreenController.get().moveTaskToFullscreen(remainingTask.taskId);
}
} else if (id == R.id.back_button) {
- injectBackKey();
+ mTaskOperations.injectBackKey();
} else if (id == R.id.caption_handle) {
decoration.createHandleMenu();
} else if (id == R.id.desktop_button) {
@@ -255,106 +263,72 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
mDesktopTasksController.ifPresent(c -> c.moveToFullscreen(mTaskId));
decoration.closeHandleMenu();
decoration.setButtonVisibility(false);
- }
- }
-
- private void injectBackKey() {
- sendBackEvent(KeyEvent.ACTION_DOWN);
- sendBackEvent(KeyEvent.ACTION_UP);
- }
-
- private void sendBackEvent(int action) {
- final long when = SystemClock.uptimeMillis();
- final KeyEvent ev = new KeyEvent(when, when, action, KeyEvent.KEYCODE_BACK,
- 0 /* repeat */, 0 /* metaState */, KeyCharacterMap.VIRTUAL_KEYBOARD,
- 0 /* scancode */, KeyEvent.FLAG_FROM_SYSTEM | KeyEvent.FLAG_VIRTUAL_HARD_KEY,
- InputDevice.SOURCE_KEYBOARD);
-
- ev.setDisplayId(mContext.getDisplay().getDisplayId());
- if (!InputManager.getInstance()
- .injectInputEvent(ev, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC)) {
- Log.e(TAG, "Inject input event fail");
+ } else if (id == R.id.collapse_menu_button) {
+ decoration.closeHandleMenu();
}
}
@Override
public boolean onTouch(View v, MotionEvent e) {
- boolean isDrag = false;
- int id = v.getId();
+ final int id = v.getId();
if (id != R.id.caption_handle && id != R.id.desktop_mode_caption) {
return false;
}
- if (id == R.id.caption_handle) {
- isDrag = mDragDetector.detectDragEvent(e);
- handleEventForMove(e);
- }
- if (e.getAction() != MotionEvent.ACTION_DOWN) {
- return isDrag;
- }
- RunningTaskInfo taskInfo = mTaskOrganizer.getRunningTaskInfo(mTaskId);
- if (taskInfo.isFocused) {
- return isDrag;
- }
- WindowContainerTransaction wct = new WindowContainerTransaction();
- wct.reorder(mTaskToken, true /* onTop */);
- mSyncQueue.queue(wct);
- return true;
+ return mDragDetector.onMotionEvent(e);
}
/**
* @param e {@link MotionEvent} to process
- * @return {@code true} if a drag is happening; or {@code false} if it is not
+ * @return {@code true} if the motion event is handled.
*/
- private void handleEventForMove(MotionEvent e) {
- RunningTaskInfo taskInfo = mTaskOrganizer.getRunningTaskInfo(mTaskId);
+ @Override
+ public boolean handleMotionEvent(MotionEvent e) {
+ final RunningTaskInfo taskInfo = mTaskOrganizer.getRunningTaskInfo(mTaskId);
if (DesktopModeStatus.isProto2Enabled()
&& taskInfo.getWindowingMode() == WINDOWING_MODE_FULLSCREEN) {
- return;
+ return false;
}
if (DesktopModeStatus.isProto1Enabled() && mDesktopModeController.isPresent()
- && mDesktopModeController.get().getDisplayAreaWindowingMode(
- taskInfo.displayId)
+ && mDesktopModeController.get().getDisplayAreaWindowingMode(taskInfo.displayId)
== WINDOWING_MODE_FULLSCREEN) {
- return;
+ return false;
}
switch (e.getActionMasked()) {
case MotionEvent.ACTION_DOWN: {
mDragPointerId = e.getPointerId(0);
- mDragResizeCallback.onDragResizeStart(
+ mDragPositioningCallback.onDragPositioningStart(
0 /* ctrlType */, e.getRawX(0), e.getRawY(0));
- break;
+ mIsDragging = false;
+ return false;
}
case MotionEvent.ACTION_MOVE: {
- int dragPointerIdx = e.findPointerIndex(mDragPointerId);
- mDragResizeCallback.onDragResizeMove(
+ final int dragPointerIdx = e.findPointerIndex(mDragPointerId);
+ mDragPositioningCallback.onDragPositioningMove(
e.getRawX(dragPointerIdx), e.getRawY(dragPointerIdx));
- break;
+ mIsDragging = true;
+ return true;
}
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL: {
- int dragPointerIdx = e.findPointerIndex(mDragPointerId);
- int statusBarHeight = mDisplayController.getDisplayLayout(taskInfo.displayId)
- .stableInsets().top;
- mDragResizeCallback.onDragResizeEnd(
+ final int dragPointerIdx = e.findPointerIndex(mDragPointerId);
+ final int statusBarHeight = mDisplayController
+ .getDisplayLayout(taskInfo.displayId).stableInsets().top;
+ mDragPositioningCallback.onDragPositioningEnd(
e.getRawX(dragPointerIdx), e.getRawY(dragPointerIdx));
if (e.getRawY(dragPointerIdx) <= statusBarHeight) {
- if (DesktopModeStatus.isProto2Enabled()) {
- if (taskInfo.getWindowingMode() == WINDOWING_MODE_FREEFORM) {
- // Switch a single task to fullscreen
- mDesktopTasksController.ifPresent(
- c -> c.moveToFullscreen(taskInfo));
- }
- } else if (DesktopModeStatus.isProto1Enabled()) {
- if (DesktopModeStatus.isActive(mContext)) {
- // Turn off desktop mode
- mDesktopModeController.ifPresent(
- c -> c.setDesktopModeActive(false));
- }
+ if (DesktopModeStatus.isProto2Enabled()
+ && taskInfo.getWindowingMode() == WINDOWING_MODE_FREEFORM) {
+ // Switch a single task to fullscreen
+ mDesktopTasksController.ifPresent(
+ c -> c.moveToFullscreen(taskInfo));
}
}
- break;
+ final boolean wasDragging = mIsDragging;
+ mIsDragging = false;
+ return wasDragging;
}
}
+ return true;
}
}
@@ -408,7 +382,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
*/
private void incrementEventReceiverTasks(int displayId) {
if (mEventReceiversByDisplay.contains(displayId)) {
- EventReceiver eventReceiver = mEventReceiversByDisplay.get(displayId);
+ final EventReceiver eventReceiver = mEventReceiversByDisplay.get(displayId);
eventReceiver.incrementTaskNumber();
} else {
createInputChannel(displayId);
@@ -418,7 +392,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
// If all tasks on this display are gone, we don't need to monitor its input.
private void removeTaskFromEventReceiver(int displayId) {
if (!mEventReceiversByDisplay.contains(displayId)) return;
- EventReceiver eventReceiver = mEventReceiversByDisplay.get(displayId);
+ final EventReceiver eventReceiver = mEventReceiversByDisplay.get(displayId);
if (eventReceiver == null) return;
eventReceiver.decrementTaskNumber();
if (eventReceiver.getTasksOnDisplay() == 0) {
@@ -432,18 +406,14 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
* @param ev the {@link MotionEvent} received by {@link EventReceiver}
*/
private void handleReceivedMotionEvent(MotionEvent ev, InputMonitor inputMonitor) {
+ final DesktopModeWindowDecoration relevantDecor = getRelevantWindowDecor(ev);
if (DesktopModeStatus.isProto2Enabled()) {
- DesktopModeWindowDecoration focusedDecor = getFocusedDecor();
- if (focusedDecor == null
- || focusedDecor.mTaskInfo.getWindowingMode() != WINDOWING_MODE_FREEFORM) {
- handleCaptionThroughStatusBar(ev);
- }
- } else if (DesktopModeStatus.isProto1Enabled()) {
- if (!DesktopModeStatus.isActive(mContext)) {
- handleCaptionThroughStatusBar(ev);
+ if (relevantDecor == null
+ || relevantDecor.mTaskInfo.getWindowingMode() != WINDOWING_MODE_FREEFORM) {
+ handleCaptionThroughStatusBar(ev, relevantDecor);
}
}
- handleEventOutsideFocusedCaption(ev);
+ handleEventOutsideFocusedCaption(ev, relevantDecor);
// Prevent status bar from reacting to a caption drag.
if (DesktopModeStatus.isProto2Enabled()) {
if (mTransitionDragActive) {
@@ -457,16 +427,16 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
}
// If an UP/CANCEL action is received outside of caption bounds, turn off handle menu
- private void handleEventOutsideFocusedCaption(MotionEvent ev) {
- int action = ev.getActionMasked();
+ private void handleEventOutsideFocusedCaption(MotionEvent ev,
+ DesktopModeWindowDecoration relevantDecor) {
+ final int action = ev.getActionMasked();
if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) {
- DesktopModeWindowDecoration focusedDecor = getFocusedDecor();
- if (focusedDecor == null) {
+ if (relevantDecor == null) {
return;
}
if (!mTransitionDragActive) {
- focusedDecor.closeHandleMenuIfNeeded(ev);
+ relevantDecor.closeHandleMenuIfNeeded(ev);
}
}
}
@@ -476,42 +446,38 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
* Perform caption actions if not able to through normal means.
* Turn on desktop mode if handle is dragged below status bar.
*/
- private void handleCaptionThroughStatusBar(MotionEvent ev) {
+ private void handleCaptionThroughStatusBar(MotionEvent ev,
+ DesktopModeWindowDecoration relevantDecor) {
switch (ev.getActionMasked()) {
case MotionEvent.ACTION_DOWN: {
// Begin drag through status bar if applicable.
- DesktopModeWindowDecoration focusedDecor = getFocusedDecor();
- if (focusedDecor != null) {
+ if (relevantDecor != null) {
boolean dragFromStatusBarAllowed = false;
if (DesktopModeStatus.isProto2Enabled()) {
// In proto2 any full screen task can be dragged to freeform
- dragFromStatusBarAllowed = focusedDecor.mTaskInfo.getWindowingMode()
+ dragFromStatusBarAllowed = relevantDecor.mTaskInfo.getWindowingMode()
== WINDOWING_MODE_FULLSCREEN;
- } else if (DesktopModeStatus.isProto1Enabled()) {
- // In proto1 task can be dragged to freeform when not in desktop mode
- dragFromStatusBarAllowed = !DesktopModeStatus.isActive(mContext);
}
- if (dragFromStatusBarAllowed && focusedDecor.checkTouchEventInHandle(ev)) {
+ if (dragFromStatusBarAllowed && relevantDecor.checkTouchEventInHandle(ev)) {
mTransitionDragActive = true;
}
}
break;
}
case MotionEvent.ACTION_UP: {
- DesktopModeWindowDecoration focusedDecor = getFocusedDecor();
- if (focusedDecor == null) {
+ if (relevantDecor == null) {
mTransitionDragActive = false;
return;
}
if (mTransitionDragActive) {
mTransitionDragActive = false;
- int statusBarHeight = mDisplayController
- .getDisplayLayout(focusedDecor.mTaskInfo.displayId).stableInsets().top;
+ final int statusBarHeight = mDisplayController
+ .getDisplayLayout(relevantDecor.mTaskInfo.displayId).stableInsets().top;
if (ev.getY() > statusBarHeight) {
if (DesktopModeStatus.isProto2Enabled()) {
mDesktopTasksController.ifPresent(
- c -> c.moveToDesktop(focusedDecor.mTaskInfo));
+ c -> c.moveToDesktop(relevantDecor.mTaskInfo));
} else if (DesktopModeStatus.isProto1Enabled()) {
mDesktopModeController.ifPresent(c -> c.setDesktopModeActive(true));
}
@@ -519,7 +485,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
return;
}
}
- focusedDecor.checkClickEvent(ev);
+ relevantDecor.checkClickEvent(ev);
break;
}
case MotionEvent.ACTION_CANCEL: {
@@ -528,12 +494,44 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
}
}
+ @Nullable
+ private DesktopModeWindowDecoration getRelevantWindowDecor(MotionEvent ev) {
+ if (mSplitScreenController.isPresent()
+ && mSplitScreenController.get().isSplitScreenVisible()) {
+ // We can't look at focused task here as only one task will have focus.
+ return getSplitScreenDecor(ev);
+ } else {
+ return getFocusedDecor();
+ }
+ }
+
+ @Nullable
+ private DesktopModeWindowDecoration getSplitScreenDecor(MotionEvent ev) {
+ ActivityManager.RunningTaskInfo topOrLeftTask =
+ mSplitScreenController.get().getTaskInfo(SPLIT_POSITION_TOP_OR_LEFT);
+ ActivityManager.RunningTaskInfo bottomOrRightTask =
+ mSplitScreenController.get().getTaskInfo(SPLIT_POSITION_BOTTOM_OR_RIGHT);
+ if (topOrLeftTask != null && topOrLeftTask.getConfiguration()
+ .windowConfiguration.getBounds().contains((int) ev.getX(), (int) ev.getY())) {
+ return mWindowDecorByTaskId.get(topOrLeftTask.taskId);
+ } else if (bottomOrRightTask != null && bottomOrRightTask.getConfiguration()
+ .windowConfiguration.getBounds().contains((int) ev.getX(), (int) ev.getY())) {
+ Rect bottomOrRightBounds = bottomOrRightTask.getConfiguration().windowConfiguration
+ .getBounds();
+ ev.offsetLocation(-bottomOrRightBounds.left, -bottomOrRightBounds.top);
+ return mWindowDecorByTaskId.get(bottomOrRightTask.taskId);
+ } else {
+ return null;
+ }
+
+ }
+
@Nullable
private DesktopModeWindowDecoration getFocusedDecor() {
- int size = mWindowDecorByTaskId.size();
+ final int size = mWindowDecorByTaskId.size();
DesktopModeWindowDecoration focusedDecor = null;
for (int i = 0; i < size; i++) {
- DesktopModeWindowDecoration decor = mWindowDecorByTaskId.valueAt(i);
+ final DesktopModeWindowDecoration decor = mWindowDecorByTaskId.valueAt(i);
if (decor != null && decor.isFocused()) {
focusedDecor = decor;
break;
@@ -543,24 +541,31 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
}
private void createInputChannel(int displayId) {
- InputManager inputManager = InputManager.getInstance();
- InputMonitor inputMonitor =
+ final InputManager inputManager = InputManager.getInstance();
+ final InputMonitor inputMonitor =
mInputMonitorFactory.create(inputManager, mContext);
- EventReceiver eventReceiver = new EventReceiver(inputMonitor,
+ final EventReceiver eventReceiver = new EventReceiver(inputMonitor,
inputMonitor.getInputChannel(), Looper.myLooper());
mEventReceiversByDisplay.put(displayId, eventReceiver);
}
private void disposeInputChannel(int displayId) {
- EventReceiver eventReceiver = mEventReceiversByDisplay.removeReturnOld(displayId);
+ final EventReceiver eventReceiver = mEventReceiversByDisplay.removeReturnOld(displayId);
if (eventReceiver != null) {
eventReceiver.dispose();
}
}
+ private void setupCaptionColor(RunningTaskInfo taskInfo,
+ DesktopModeWindowDecoration decoration) {
+ if (taskInfo == null || taskInfo.taskDescription == null) return;
+ final int statusBarColor = taskInfo.taskDescription.getStatusBarColor();
+ decoration.setCaptionColor(statusBarColor);
+ }
+
private boolean shouldShowWindowDecor(RunningTaskInfo taskInfo) {
if (taskInfo.getWindowingMode() == WINDOWING_MODE_FREEFORM) return true;
- return DesktopModeStatus.isAnyEnabled()
+ return DesktopModeStatus.isProto2Enabled()
&& taskInfo.getActivityType() == ACTIVITY_TYPE_STANDARD
&& mDisplayController.getDisplayContext(taskInfo.displayId)
.getResources().getConfiguration().smallestScreenWidthDp >= 600;
@@ -571,7 +576,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
SurfaceControl taskSurface,
SurfaceControl.Transaction startT,
SurfaceControl.Transaction finishT) {
- DesktopModeWindowDecoration oldDecoration = mWindowDecorByTaskId.get(taskInfo.taskId);
+ final DesktopModeWindowDecoration oldDecoration = mWindowDecorByTaskId.get(taskInfo.taskId);
if (oldDecoration != null) {
// close the old decoration if it exists to avoid two window decorations being added
oldDecoration.close();
@@ -588,14 +593,16 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel {
mSyncQueue);
mWindowDecorByTaskId.put(taskInfo.taskId, windowDecoration);
- TaskPositioner taskPositioner =
- new TaskPositioner(mTaskOrganizer, windowDecoration, mDragStartListener);
- CaptionTouchEventListener touchEventListener =
- new CaptionTouchEventListener(
- taskInfo, taskPositioner, windowDecoration.getDragDetector());
+ final TaskPositioner taskPositioner =
+ new TaskPositioner(mTaskOrganizer, windowDecoration, mDisplayController,
+ mDragStartListener);
+ final DesktopModeTouchEventListener touchEventListener =
+ new DesktopModeTouchEventListener(taskInfo, taskPositioner);
windowDecoration.setCaptionListeners(touchEventListener, touchEventListener);
- windowDecoration.setDragResizeCallback(taskPositioner);
+ windowDecoration.setDragPositioningCallback(taskPositioner);
+ windowDecoration.setDragDetector(touchEventListener.mDragDetector);
windowDecoration.relayout(taskInfo, startT, finishT);
+ setupCaptionColor(taskInfo, windowDecoration);
incrementEventReceiverTasks(taskInfo.displayId);
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java
index 9c2beb9c4b2b957d023d2a378b04561f3998deb8..3c0ef965f4f56ffcb05769dc7d120e84a3a6619c 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java
@@ -20,19 +20,26 @@ import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
import android.app.ActivityManager;
import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
import android.content.res.ColorStateList;
+import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.Point;
import android.graphics.PointF;
-import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.VectorDrawable;
import android.os.Handler;
+import android.util.Log;
import android.view.Choreographer;
import android.view.MotionEvent;
import android.view.SurfaceControl;
import android.view.View;
import android.view.ViewConfiguration;
+import android.widget.ImageView;
+import android.widget.TextView;
import android.window.WindowContainerTransaction;
import com.android.wm.shell.R;
@@ -40,6 +47,7 @@ import com.android.wm.shell.ShellTaskOrganizer;
import com.android.wm.shell.common.DisplayController;
import com.android.wm.shell.common.SyncTransactionQueue;
import com.android.wm.shell.desktopmode.DesktopModeStatus;
+import com.android.wm.shell.desktopmode.DesktopTasksController;
/**
* Defines visuals and behaviors of a window decoration of a caption bar and shadows. It works with
@@ -49,25 +57,28 @@ import com.android.wm.shell.desktopmode.DesktopModeStatus;
* The shadow's thickness is 20dp when the window is in focus and 5dp when the window isn't.
*/
public class DesktopModeWindowDecoration extends WindowDecoration {
+ private static final String TAG = "DesktopModeWindowDecoration";
private final Handler mHandler;
private final Choreographer mChoreographer;
private final SyncTransactionQueue mSyncQueue;
private View.OnClickListener mOnCaptionButtonClickListener;
private View.OnTouchListener mOnCaptionTouchListener;
- private DragResizeCallback mDragResizeCallback;
-
+ private DragPositioningCallback mDragPositioningCallback;
private DragResizeInputListener mDragResizeListener;
+ private DragDetector mDragDetector;
private RelayoutParams mRelayoutParams = new RelayoutParams();
+ private final int mCaptionMenuHeightId = R.dimen.freeform_decor_caption_menu_height;
private final WindowDecoration.RelayoutResult mResult =
new WindowDecoration.RelayoutResult<>();
private boolean mDesktopActive;
-
- private DragDetector mDragDetector;
-
private AdditionalWindow mHandleMenu;
+ private final int mHandleMenuWidthId = R.dimen.freeform_decor_caption_menu_width;
+ private final int mHandleMenuShadowRadiusId = R.dimen.caption_menu_shadow_radius;
+ private final int mHandleMenuCornerRadiusId = R.dimen.caption_menu_corner_radius;
+ private PointF mHandleMenuPosition = new PointF();
DesktopModeWindowDecoration(
Context context,
@@ -84,7 +95,17 @@ public class DesktopModeWindowDecoration extends WindowDecoration {
transaction.merge(t);
t.close();
@@ -335,10 +406,17 @@ public class DesktopModeWindowDecoration extends WindowDecoration= x
+ && v.getTop() <= y && v.getBottom() >= y;
+ }
+
@Override
public void close() {
closeDragResizeListener();
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragDetector.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragDetector.java
index 0abe8ab2e30b1278d77096882479cb6025e7f8e4..65b5a7a17afe85ab78a36c53521b30d4a707996b 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragDetector.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragDetector.java
@@ -16,6 +16,7 @@
package com.android.wm.shell.windowdecor;
+import static android.view.InputDevice.SOURCE_TOUCHSCREEN;
import static android.view.MotionEvent.ACTION_CANCEL;
import static android.view.MotionEvent.ACTION_DOWN;
import static android.view.MotionEvent.ACTION_MOVE;
@@ -25,63 +26,91 @@ import android.graphics.PointF;
import android.view.MotionEvent;
/**
- * A detector for touch inputs that differentiates between drag and click inputs.
+ * A detector for touch inputs that differentiates between drag and click inputs. It receives a flow
+ * of {@link MotionEvent} and generates a new flow of motion events with slop in consideration to
+ * the event handler. In particular, it always passes down, up and cancel events. It'll pass move
+ * events only when there is at least one move event that's beyond the slop threshold. For the
+ * purpose of convenience it also passes all events of other actions.
+ *
* All touch events must be passed through this class to track a drag event.
*/
-public class DragDetector {
+class DragDetector {
+ private final MotionEventHandler mEventHandler;
+
+ private final PointF mInputDownPoint = new PointF();
private int mTouchSlop;
- private PointF mInputDownPoint;
private boolean mIsDragEvent;
private int mDragPointerId;
- public DragDetector(int touchSlop) {
- mTouchSlop = touchSlop;
- mInputDownPoint = new PointF();
- mIsDragEvent = false;
- mDragPointerId = -1;
+
+ private boolean mResultOfDownAction;
+
+ DragDetector(MotionEventHandler eventHandler) {
+ resetState();
+ mEventHandler = eventHandler;
}
/**
- * Determine if {@link MotionEvent} is part of a drag event.
- * @return {@code true} if this is a drag event, {@code false} if not
- */
- public boolean detectDragEvent(MotionEvent ev) {
- switch (ev.getAction()) {
+ * The receiver of the {@link MotionEvent} flow.
+ *
+ * @return the result returned by {@link #mEventHandler}, or the result when
+ * {@link #mEventHandler} handles the previous down event if the event shouldn't be passed
+ */
+ boolean onMotionEvent(MotionEvent ev) {
+ final boolean isTouchScreen =
+ (ev.getSource() & SOURCE_TOUCHSCREEN) == SOURCE_TOUCHSCREEN;
+ if (!isTouchScreen) {
+ // Only touches generate noisy moves, so mouse/trackpad events don't need to filtered
+ // to take the slop threshold into consideration.
+ return mEventHandler.handleMotionEvent(ev);
+ }
+ switch (ev.getActionMasked()) {
case ACTION_DOWN: {
mDragPointerId = ev.getPointerId(0);
float rawX = ev.getRawX(0);
float rawY = ev.getRawY(0);
mInputDownPoint.set(rawX, rawY);
- return false;
+ mResultOfDownAction = mEventHandler.handleMotionEvent(ev);
+ return mResultOfDownAction;
}
case ACTION_MOVE: {
if (!mIsDragEvent) {
int dragPointerIndex = ev.findPointerIndex(mDragPointerId);
float dx = ev.getRawX(dragPointerIndex) - mInputDownPoint.x;
float dy = ev.getRawY(dragPointerIndex) - mInputDownPoint.y;
- if (Math.hypot(dx, dy) > mTouchSlop) {
- mIsDragEvent = true;
- }
+ // Touches generate noisy moves, so only once the move is past the touch
+ // slop threshold should it be considered a drag.
+ mIsDragEvent = Math.hypot(dx, dy) > mTouchSlop;
+ }
+ // The event handler should only be notified about 'move' events if a drag has been
+ // detected.
+ if (mIsDragEvent) {
+ return mEventHandler.handleMotionEvent(ev);
+ } else {
+ return mResultOfDownAction;
}
- return mIsDragEvent;
- }
- case ACTION_UP: {
- boolean result = mIsDragEvent;
- mIsDragEvent = false;
- mInputDownPoint.set(0, 0);
- mDragPointerId = -1;
- return result;
}
+ case ACTION_UP:
case ACTION_CANCEL: {
- mIsDragEvent = false;
- mInputDownPoint.set(0, 0);
- mDragPointerId = -1;
- return false;
+ resetState();
+ return mEventHandler.handleMotionEvent(ev);
}
+ default:
+ return mEventHandler.handleMotionEvent(ev);
}
- return mIsDragEvent;
}
- public void setTouchSlop(int touchSlop) {
+ void setTouchSlop(int touchSlop) {
mTouchSlop = touchSlop;
}
+
+ private void resetState() {
+ mIsDragEvent = false;
+ mInputDownPoint.set(0, 0);
+ mDragPointerId = -1;
+ mResultOfDownAction = false;
+ }
+
+ interface MotionEventHandler {
+ boolean handleMotionEvent(MotionEvent ev);
+ }
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeCallback.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragPositioningCallback.java
similarity index 76%
rename from libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeCallback.java
rename to libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragPositioningCallback.java
index ee160a15df198b24a3ef9d60ca807946051417c8..0191c609a8b2eedc5800461227b4ae49f9626a0e 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeCallback.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragPositioningCallback.java
@@ -19,28 +19,28 @@ package com.android.wm.shell.windowdecor;
/**
* Callback called when receiving drag-resize or drag-move related input events.
*/
-public interface DragResizeCallback {
+public interface DragPositioningCallback {
/**
- * Called when a drag resize starts.
+ * Called when a drag-resize or drag-move starts.
*
* @param ctrlType {@link TaskPositioner.CtrlType} indicating the direction of resizing, use
* {@code 0} to indicate it's a move
- * @param x x coordinate in window decoration coordinate system where the drag resize starts
- * @param y y coordinate in window decoration coordinate system where the drag resize starts
+ * @param x x coordinate in window decoration coordinate system where the drag starts
+ * @param y y coordinate in window decoration coordinate system where the drag starts
*/
- void onDragResizeStart(@TaskPositioner.CtrlType int ctrlType, float x, float y);
+ void onDragPositioningStart(@TaskPositioner.CtrlType int ctrlType, float x, float y);
/**
- * Called when the pointer moves during a drag resize.
+ * Called when the pointer moves during a drag-resize or drag-move.
* @param x x coordinate in window decoration coordinate system of the new pointer location
* @param y y coordinate in window decoration coordinate system of the new pointer location
*/
- void onDragResizeMove(float x, float y);
+ void onDragPositioningMove(float x, float y);
/**
- * Called when a drag resize stops.
+ * Called when a drag-resize or drag-move stops.
* @param x x coordinate in window decoration coordinate system where the drag resize stops
* @param y y coordinate in window decoration coordinate system where the drag resize stops
*/
- void onDragResizeEnd(float x, float y);
+ void onDragPositioningEnd(float x, float y);
}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java
index d3f1332f622473028c767cb0845a27d257ee51ad..81c4176b0f3986cf00ad3eb56da79bdb7cd2e9ca 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DragResizeInputListener.java
@@ -48,7 +48,6 @@ import com.android.internal.view.BaseIWindow;
* Task edges are for resizing with a mouse.
* Task corners are for resizing with touch input.
*/
-// TODO(b/251270585): investigate how to pass taps in corners to the tasks
class DragResizeInputListener implements AutoCloseable {
private static final String TAG = "DragResizeInputListener";
@@ -63,7 +62,7 @@ class DragResizeInputListener implements AutoCloseable {
private final SurfaceControl mDecorationSurface;
private final InputChannel mInputChannel;
private final TaskResizeInputEventReceiver mInputEventReceiver;
- private final com.android.wm.shell.windowdecor.DragResizeCallback mCallback;
+ private final DragPositioningCallback mCallback;
private int mWidth;
private int mHeight;
@@ -84,7 +83,7 @@ class DragResizeInputListener implements AutoCloseable {
Choreographer choreographer,
int displayId,
SurfaceControl decorationSurface,
- DragResizeCallback callback) {
+ DragPositioningCallback callback) {
mInputManager = context.getSystemService(InputManager.class);
mHandler = handler;
mChoreographer = choreographer;
@@ -115,7 +114,8 @@ class DragResizeInputListener implements AutoCloseable {
mInputEventReceiver = new TaskResizeInputEventReceiver(
mInputChannel, mHandler, mChoreographer);
mCallback = callback;
- mDragDetector = new DragDetector(ViewConfiguration.get(context).getScaledTouchSlop());
+ mDragDetector = new DragDetector(mInputEventReceiver);
+ mDragDetector.setTouchSlop(ViewConfiguration.get(context).getScaledTouchSlop());
}
/**
@@ -215,6 +215,7 @@ class DragResizeInputListener implements AutoCloseable {
@Override
public void close() {
+ mInputEventReceiver.dispose();
mInputChannel.dispose();
try {
mWindowSession.remove(mFakeWindow);
@@ -223,12 +224,12 @@ class DragResizeInputListener implements AutoCloseable {
}
}
- private class TaskResizeInputEventReceiver extends InputEventReceiver {
+ private class TaskResizeInputEventReceiver extends InputEventReceiver
+ implements DragDetector.MotionEventHandler {
private final Choreographer mChoreographer;
private final Runnable mConsumeBatchEventRunnable;
private boolean mConsumeBatchEventScheduled;
private boolean mShouldHandleEvents;
- private boolean mDragging;
private TaskResizeInputEventReceiver(
InputChannel inputChannel, Handler handler, Choreographer choreographer) {
@@ -270,15 +271,15 @@ class DragResizeInputListener implements AutoCloseable {
if (!(inputEvent instanceof MotionEvent)) {
return false;
}
+ return mDragDetector.onMotionEvent((MotionEvent) inputEvent);
+ }
- MotionEvent e = (MotionEvent) inputEvent;
+ @Override
+ public boolean handleMotionEvent(MotionEvent e) {
boolean result = false;
// Check if this is a touch event vs mouse event.
// Touch events are tracked in four corners. Other events are tracked in resize edges.
boolean isTouch = (e.getSource() & SOURCE_TOUCHSCREEN) == SOURCE_TOUCHSCREEN;
- if (isTouch) {
- mDragging = mDragDetector.detectDragEvent(e);
- }
switch (e.getActionMasked()) {
case MotionEvent.ACTION_DOWN: {
float x = e.getX(0);
@@ -293,7 +294,7 @@ class DragResizeInputListener implements AutoCloseable {
float rawX = e.getRawX(0);
float rawY = e.getRawY(0);
int ctrlType = calculateCtrlType(isTouch, x, y);
- mCallback.onDragResizeStart(ctrlType, rawX, rawY);
+ mCallback.onDragPositioningStart(ctrlType, rawX, rawY);
result = true;
}
break;
@@ -305,24 +306,17 @@ class DragResizeInputListener implements AutoCloseable {
int dragPointerIndex = e.findPointerIndex(mDragPointerId);
float rawX = e.getRawX(dragPointerIndex);
float rawY = e.getRawY(dragPointerIndex);
- if (!isTouch) {
- // For all other types allow immediate dragging.
- mDragging = true;
- }
- if (mDragging) {
- mCallback.onDragResizeMove(rawX, rawY);
- result = true;
- }
+ mCallback.onDragPositioningMove(rawX, rawY);
+ result = true;
break;
}
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL: {
- if (mShouldHandleEvents && mDragging) {
+ if (mShouldHandleEvents) {
int dragPointerIndex = e.findPointerIndex(mDragPointerId);
- mCallback.onDragResizeEnd(
+ mCallback.onDragPositioningEnd(
e.getRawX(dragPointerIndex), e.getRawY(dragPointerIndex));
}
- mDragging = false;
mShouldHandleEvents = false;
mDragPointerId = -1;
result = true;
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/TaskOperations.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/TaskOperations.java
new file mode 100644
index 0000000000000000000000000000000000000000..aea3404643040418ced95bf8b00d8b165beb74c1
--- /dev/null
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/TaskOperations.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2023 The Android Open Source 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.
+ */
+
+package com.android.wm.shell.windowdecor;
+
+import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
+import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
+import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
+
+import android.app.ActivityManager.RunningTaskInfo;
+import android.content.Context;
+import android.hardware.input.InputManager;
+import android.os.SystemClock;
+import android.util.Log;
+import android.view.InputDevice;
+import android.view.KeyCharacterMap;
+import android.view.KeyEvent;
+import android.window.WindowContainerToken;
+import android.window.WindowContainerTransaction;
+
+import com.android.wm.shell.common.SyncTransactionQueue;
+import com.android.wm.shell.freeform.FreeformTaskTransitionStarter;
+import com.android.wm.shell.transition.Transitions;
+
+/**
+ * Utility class to handle task operations performed on a window decoration.
+ */
+class TaskOperations {
+ private static final String TAG = "TaskOperations";
+
+ private final FreeformTaskTransitionStarter mTransitionStarter;
+ private final Context mContext;
+ private final SyncTransactionQueue mSyncQueue;
+
+ TaskOperations(FreeformTaskTransitionStarter transitionStarter, Context context,
+ SyncTransactionQueue syncQueue) {
+ mTransitionStarter = transitionStarter;
+ mContext = context;
+ mSyncQueue = syncQueue;
+ }
+
+ void injectBackKey() {
+ sendBackEvent(KeyEvent.ACTION_DOWN);
+ sendBackEvent(KeyEvent.ACTION_UP);
+ }
+
+ private void sendBackEvent(int action) {
+ final long when = SystemClock.uptimeMillis();
+ final KeyEvent ev = new KeyEvent(when, when, action, KeyEvent.KEYCODE_BACK,
+ 0 /* repeat */, 0 /* metaState */, KeyCharacterMap.VIRTUAL_KEYBOARD,
+ 0 /* scancode */, KeyEvent.FLAG_FROM_SYSTEM | KeyEvent.FLAG_VIRTUAL_HARD_KEY,
+ InputDevice.SOURCE_KEYBOARD);
+
+ ev.setDisplayId(mContext.getDisplay().getDisplayId());
+ if (!InputManager.getInstance()
+ .injectInputEvent(ev, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC)) {
+ Log.e(TAG, "Inject input event fail");
+ }
+ }
+
+ void closeTask(WindowContainerToken taskToken) {
+ WindowContainerTransaction wct = new WindowContainerTransaction();
+ wct.removeTask(taskToken);
+ if (Transitions.ENABLE_SHELL_TRANSITIONS) {
+ mTransitionStarter.startRemoveTransition(wct);
+ } else {
+ mSyncQueue.queue(wct);
+ }
+ }
+
+ void minimizeTask(WindowContainerToken taskToken) {
+ WindowContainerTransaction wct = new WindowContainerTransaction();
+ wct.reorder(taskToken, false);
+ if (Transitions.ENABLE_SHELL_TRANSITIONS) {
+ mTransitionStarter.startMinimizedModeTransition(wct);
+ } else {
+ mSyncQueue.queue(wct);
+ }
+ }
+
+ void maximizeTask(RunningTaskInfo taskInfo) {
+ WindowContainerTransaction wct = new WindowContainerTransaction();
+ int targetWindowingMode = taskInfo.getWindowingMode() != WINDOWING_MODE_FULLSCREEN
+ ? WINDOWING_MODE_FULLSCREEN : WINDOWING_MODE_FREEFORM;
+ int displayWindowingMode =
+ taskInfo.configuration.windowConfiguration.getDisplayWindowingMode();
+ wct.setWindowingMode(taskInfo.token,
+ targetWindowingMode == displayWindowingMode
+ ? WINDOWING_MODE_UNDEFINED : targetWindowingMode);
+ if (targetWindowingMode == WINDOWING_MODE_FULLSCREEN) {
+ wct.setBounds(taskInfo.token, null);
+ }
+ if (Transitions.ENABLE_SHELL_TRANSITIONS) {
+ mTransitionStarter.startWindowingModeTransition(targetWindowingMode, wct);
+ } else {
+ mSyncQueue.queue(wct);
+ }
+ }
+}
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/TaskPositioner.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/TaskPositioner.java
index a49a300995e6be200157dfc2857f1ec642c7683f..0bce3acecb3c8c0693bf896fcd06618812517afb 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/TaskPositioner.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/TaskPositioner.java
@@ -19,11 +19,13 @@ package com.android.wm.shell.windowdecor;
import android.annotation.IntDef;
import android.graphics.PointF;
import android.graphics.Rect;
+import android.util.DisplayMetrics;
import android.window.WindowContainerTransaction;
import com.android.wm.shell.ShellTaskOrganizer;
+import com.android.wm.shell.common.DisplayController;
-class TaskPositioner implements DragResizeCallback {
+class TaskPositioner implements DragPositioningCallback {
@IntDef({CTRL_TYPE_UNDEFINED, CTRL_TYPE_LEFT, CTRL_TYPE_RIGHT, CTRL_TYPE_TOP, CTRL_TYPE_BOTTOM})
@interface CtrlType {}
@@ -35,92 +37,154 @@ class TaskPositioner implements DragResizeCallback {
static final int CTRL_TYPE_BOTTOM = 8;
private final ShellTaskOrganizer mTaskOrganizer;
+ private final DisplayController mDisplayController;
private final WindowDecoration mWindowDecoration;
+ private final Rect mTempBounds = new Rect();
private final Rect mTaskBoundsAtDragStart = new Rect();
- private final PointF mResizeStartPoint = new PointF();
- private final Rect mResizeTaskBounds = new Rect();
- // Whether the |dragResizing| hint should be sent with the next bounds change WCT.
- // Used to optimized fluid resizing of freeform tasks.
- private boolean mPendingDragResizeHint = false;
+ private final PointF mRepositionStartPoint = new PointF();
+ private final Rect mRepositionTaskBounds = new Rect();
+ private boolean mHasMoved = false;
private int mCtrlType;
private DragStartListener mDragStartListener;
TaskPositioner(ShellTaskOrganizer taskOrganizer, WindowDecoration windowDecoration,
- DragStartListener dragStartListener) {
+ DisplayController displayController) {
+ this(taskOrganizer, windowDecoration, displayController, dragStartListener -> {});
+ }
+
+ TaskPositioner(ShellTaskOrganizer taskOrganizer, WindowDecoration windowDecoration,
+ DisplayController displayController, DragStartListener dragStartListener) {
mTaskOrganizer = taskOrganizer;
mWindowDecoration = windowDecoration;
+ mDisplayController = displayController;
mDragStartListener = dragStartListener;
}
@Override
- public void onDragResizeStart(int ctrlType, float x, float y) {
- if (ctrlType != CTRL_TYPE_UNDEFINED) {
- // The task is being resized, send the |dragResizing| hint to core with the first
- // bounds-change wct.
- mPendingDragResizeHint = true;
- }
+ public void onDragPositioningStart(int ctrlType, float x, float y) {
+ mHasMoved = false;
mDragStartListener.onDragStart(mWindowDecoration.mTaskInfo.taskId);
mCtrlType = ctrlType;
mTaskBoundsAtDragStart.set(
mWindowDecoration.mTaskInfo.configuration.windowConfiguration.getBounds());
- mResizeStartPoint.set(x, y);
+ mRepositionStartPoint.set(x, y);
}
@Override
- public void onDragResizeMove(float x, float y) {
+ public void onDragPositioningMove(float x, float y) {
final WindowContainerTransaction wct = new WindowContainerTransaction();
if (changeBounds(wct, x, y)) {
- if (mPendingDragResizeHint) {
+ // The task is being resized, send the |dragResizing| hint to core with the first
+ // bounds-change wct.
+ if (!mHasMoved && mCtrlType != CTRL_TYPE_UNDEFINED) {
// This is the first bounds change since drag resize operation started.
wct.setDragResizing(mWindowDecoration.mTaskInfo.token, true /* dragResizing */);
- mPendingDragResizeHint = false;
}
mTaskOrganizer.applyTransaction(wct);
+ mHasMoved = true;
}
}
@Override
- public void onDragResizeEnd(float x, float y) {
- final WindowContainerTransaction wct = new WindowContainerTransaction();
- wct.setDragResizing(mWindowDecoration.mTaskInfo.token, false /* dragResizing */);
- changeBounds(wct, x, y);
- mTaskOrganizer.applyTransaction(wct);
+ public void onDragPositioningEnd(float x, float y) {
+ // |mHasMoved| being false means there is no real change to the task bounds in WM core, so
+ // we don't need a WCT to finish it.
+ if (mHasMoved) {
+ final WindowContainerTransaction wct = new WindowContainerTransaction();
+ wct.setDragResizing(mWindowDecoration.mTaskInfo.token, false /* dragResizing */);
+ changeBounds(wct, x, y);
+ mTaskOrganizer.applyTransaction(wct);
+ }
- mCtrlType = 0;
+ mCtrlType = CTRL_TYPE_UNDEFINED;
mTaskBoundsAtDragStart.setEmpty();
- mResizeStartPoint.set(0, 0);
- mPendingDragResizeHint = false;
+ mRepositionStartPoint.set(0, 0);
+ mHasMoved = false;
}
private boolean changeBounds(WindowContainerTransaction wct, float x, float y) {
- float deltaX = x - mResizeStartPoint.x;
- mResizeTaskBounds.set(mTaskBoundsAtDragStart);
+ // |mRepositionTaskBounds| is the bounds last reported if |mHasMoved| is true. If it's not
+ // true, we can compare it against |mTaskBoundsAtDragStart|.
+ final int oldLeft = mHasMoved ? mRepositionTaskBounds.left : mTaskBoundsAtDragStart.left;
+ final int oldTop = mHasMoved ? mRepositionTaskBounds.top : mTaskBoundsAtDragStart.top;
+ final int oldRight = mHasMoved ? mRepositionTaskBounds.right : mTaskBoundsAtDragStart.right;
+ final int oldBottom =
+ mHasMoved ? mRepositionTaskBounds.bottom : mTaskBoundsAtDragStart.bottom;
+
+ final float deltaX = x - mRepositionStartPoint.x;
+ final float deltaY = y - mRepositionStartPoint.y;
+ mRepositionTaskBounds.set(mTaskBoundsAtDragStart);
+
+ final Rect stableBounds = mTempBounds;
+ // Make sure the new resizing destination in any direction falls within the stable bounds.
+ // If not, set the bounds back to the old location that was valid to avoid conflicts with
+ // some regions such as the gesture area.
+ mDisplayController.getDisplayLayout(mWindowDecoration.mDisplay.getDisplayId())
+ .getStableBounds(stableBounds);
if ((mCtrlType & CTRL_TYPE_LEFT) != 0) {
- mResizeTaskBounds.left += deltaX;
+ final int candidateLeft = mRepositionTaskBounds.left + (int) deltaX;
+ mRepositionTaskBounds.left = (candidateLeft > stableBounds.left)
+ ? candidateLeft : oldLeft;
}
if ((mCtrlType & CTRL_TYPE_RIGHT) != 0) {
- mResizeTaskBounds.right += deltaX;
+ final int candidateRight = mRepositionTaskBounds.right + (int) deltaX;
+ mRepositionTaskBounds.right = (candidateRight < stableBounds.right)
+ ? candidateRight : oldRight;
}
- float deltaY = y - mResizeStartPoint.y;
if ((mCtrlType & CTRL_TYPE_TOP) != 0) {
- mResizeTaskBounds.top += deltaY;
+ final int candidateTop = mRepositionTaskBounds.top + (int) deltaY;
+ mRepositionTaskBounds.top = (candidateTop > stableBounds.top)
+ ? candidateTop : oldTop;
}
if ((mCtrlType & CTRL_TYPE_BOTTOM) != 0) {
- mResizeTaskBounds.bottom += deltaY;
+ final int candidateBottom = mRepositionTaskBounds.bottom + (int) deltaY;
+ mRepositionTaskBounds.bottom = (candidateBottom < stableBounds.bottom)
+ ? candidateBottom : oldBottom;
}
- if (mCtrlType == 0) {
- mResizeTaskBounds.offset((int) deltaX, (int) deltaY);
+ if (mCtrlType == CTRL_TYPE_UNDEFINED) {
+ mRepositionTaskBounds.offset((int) deltaX, (int) deltaY);
}
- if (!mResizeTaskBounds.isEmpty()) {
- wct.setBounds(mWindowDecoration.mTaskInfo.token, mResizeTaskBounds);
- return true;
+ // If width or height are negative or less than the minimum width or height, revert the
+ // respective bounds to use previous bound dimensions.
+ if (mRepositionTaskBounds.width() < getMinWidth()) {
+ mRepositionTaskBounds.right = oldRight;
+ mRepositionTaskBounds.left = oldLeft;
+ }
+ if (mRepositionTaskBounds.height() < getMinHeight()) {
+ mRepositionTaskBounds.top = oldTop;
+ mRepositionTaskBounds.bottom = oldBottom;
+ }
+ // If there are no changes to the bounds after checking new bounds against minimum width
+ // and height, do not set bounds and return false
+ if (oldLeft == mRepositionTaskBounds.left && oldTop == mRepositionTaskBounds.top
+ && oldRight == mRepositionTaskBounds.right
+ && oldBottom == mRepositionTaskBounds.bottom) {
+ return false;
}
- return false;
+
+ wct.setBounds(mWindowDecoration.mTaskInfo.token, mRepositionTaskBounds);
+ return true;
+ }
+
+ private float getMinWidth() {
+ return mWindowDecoration.mTaskInfo.minWidth < 0 ? getDefaultMinSize()
+ : mWindowDecoration.mTaskInfo.minWidth;
+ }
+
+ private float getMinHeight() {
+ return mWindowDecoration.mTaskInfo.minHeight < 0 ? getDefaultMinSize()
+ : mWindowDecoration.mTaskInfo.minHeight;
+ }
+
+ private float getDefaultMinSize() {
+ float density = mDisplayController.getDisplayLayout(mWindowDecoration.mTaskInfo.displayId)
+ .densityDpi() * DisplayMetrics.DENSITY_DEFAULT_SCALE;
+ return mWindowDecoration.mTaskInfo.defaultMinSize * density;
}
interface DragStartListener {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecorViewModel.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecorViewModel.java
index 907977c661f8ba5ffa8c66a395739e4d72b28075..3734487e8f4b752a0bd6b01e5f2ef298a5a1aeff 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecorViewModel.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecorViewModel.java
@@ -29,7 +29,8 @@ import com.android.wm.shell.freeform.FreeformTaskTransitionStarter;
*/
public interface WindowDecorViewModel {
/**
- * Sets the transition starter that starts freeform task transitions.
+ * Sets the transition starter that starts freeform task transitions. Only called when
+ * {@link com.android.wm.shell.transition.Transitions#ENABLE_SHELL_TRANSITIONS} is {@code true}.
*
* @param transitionStarter the transition starter that starts freeform task transitions
*/
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java
index 7f85988d137723f2353bfb5d2bcddb990aadee23..f8e6ecc4499a564412b31b1d5fd7de9b846f166b 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration.java
@@ -131,7 +131,17 @@ public abstract class WindowDecoration
mSurfaceControlViewHostFactory = surfaceControlViewHostFactory;
mDisplay = mDisplayController.getDisplay(mTaskInfo.displayId);
- mDecorWindowContext = mContext.createConfigurationContext(mTaskInfo.getConfiguration());
+ mDecorWindowContext = mContext.createConfigurationContext(
+ getConfigurationWithOverrides(mTaskInfo));
+ }
+
+ /**
+ * Get {@link Configuration} from supplied {@link RunningTaskInfo}.
+ *
+ * Allows values to be overridden before returning the configuration.
+ */
+ protected Configuration getConfigurationWithOverrides(RunningTaskInfo taskInfo) {
+ return taskInfo.getConfiguration();
}
/**
@@ -165,7 +175,7 @@ public abstract class WindowDecoration
outResult.mRootView = rootView;
rootView = null; // Clear it just in case we use it accidentally
- final Configuration taskConfig = mTaskInfo.getConfiguration();
+ final Configuration taskConfig = getConfigurationWithOverrides(mTaskInfo);
if (oldTaskConfig.densityDpi != taskConfig.densityDpi
|| mDisplay == null
|| mDisplay.getDisplayId() != mTaskInfo.displayId) {
@@ -252,9 +262,7 @@ public abstract class WindowDecoration
}
final int captionHeight = loadDimensionPixelSize(resources, params.mCaptionHeightId);
- final int captionWidth = params.mCaptionWidthId == Resources.ID_NULL
- ? taskBounds.width()
- : loadDimensionPixelSize(resources, params.mCaptionWidthId);
+ final int captionWidth = taskBounds.width();
startT.setPosition(
mCaptionContainerSurface,
@@ -393,10 +401,12 @@ public abstract class WindowDecoration
* @param yPos y position of new window
* @param width width of new window
* @param height height of new window
- * @return
+ * @param shadowRadius radius of the shadow of the new window
+ * @param cornerRadius radius of the corners of the new window
+ * @return the {@link AdditionalWindow} that was added.
*/
- AdditionalWindow addWindow(int layoutId, String namePrefix,
- SurfaceControl.Transaction t, int xPos, int yPos, int width, int height) {
+ AdditionalWindow addWindow(int layoutId, String namePrefix, SurfaceControl.Transaction t,
+ int xPos, int yPos, int width, int height, int shadowRadius, int cornerRadius) {
final SurfaceControl.Builder builder = mSurfaceControlBuilderSupplier.get();
SurfaceControl windowSurfaceControl = builder
.setName(namePrefix + " of Task=" + mTaskInfo.taskId)
@@ -405,9 +415,10 @@ public abstract class WindowDecoration
.build();
View v = LayoutInflater.from(mDecorWindowContext).inflate(layoutId, null);
- t.setPosition(
- windowSurfaceControl, xPos, yPos)
+ t.setPosition(windowSurfaceControl, xPos, yPos)
.setWindowCrop(windowSurfaceControl, width, height)
+ .setShadowRadius(windowSurfaceControl, shadowRadius)
+ .setCornerRadius(windowSurfaceControl, cornerRadius)
.show(windowSurfaceControl);
final WindowManager.LayoutParams lp =
new WindowManager.LayoutParams(width, height,
diff --git a/libs/WindowManager/Shell/tests/unittest/AndroidManifest.xml b/libs/WindowManager/Shell/tests/unittest/AndroidManifest.xml
index fac04614d9451977ab2b43ed005d17b19bfc5ac2..47a116be1b66d35670ee54dc3daab30629140da7 100644
--- a/libs/WindowManager/Shell/tests/unittest/AndroidManifest.xml
+++ b/libs/WindowManager/Shell/tests/unittest/AndroidManifest.xml
@@ -20,6 +20,7 @@
package="com.android.wm.shell.tests">
+
diff --git a/libs/WindowManager/Shell/tests/unittest/res/values/dimen.xml b/libs/WindowManager/Shell/tests/unittest/res/values/dimen.xml
index 8949a75d1a154d54ff17d25ddefa763836f4c8fd..aa1b24189274dc43babaa35526a1fb807ae2a50b 100644
--- a/libs/WindowManager/Shell/tests/unittest/res/values/dimen.xml
+++ b/libs/WindowManager/Shell/tests/unittest/res/values/dimen.xml
@@ -17,11 +17,13 @@
32dp
- 216dp
+ 216dp10dp20dp30dp40dp5dp10dp
+ 4dp
+ 20dp
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TaskViewTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TaskViewTest.java
index ff1d2990a82a478048cc487afbd7001234a56d31..d5bb901259bdfad0fc5a5ca29f70a362de87fde5 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TaskViewTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/TaskViewTest.java
@@ -28,9 +28,11 @@ import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -82,13 +84,14 @@ public class TaskViewTest extends ShellTestCase {
@Mock
SyncTransactionQueue mSyncQueue;
@Mock
- TaskViewTransitions mTaskViewTransitions;
+ Transitions mTransitions;
SurfaceSession mSession;
SurfaceControl mLeash;
Context mContext;
TaskView mTaskView;
+ TaskViewTransitions mTaskViewTransitions;
@Before
public void setUp() {
@@ -118,6 +121,10 @@ public class TaskViewTest extends ShellTestCase {
return null;
}).when(mSyncQueue).runInSync(any());
+ if (Transitions.ENABLE_SHELL_TRANSITIONS) {
+ doReturn(true).when(mTransitions).isRegistered();
+ }
+ mTaskViewTransitions = spy(new TaskViewTransitions(mTransitions));
mTaskView = new TaskView(mContext, mOrganizer, mTaskViewTransitions, mSyncQueue);
mTaskView.setListener(mExecutor, mViewListener);
}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java
index 2e328b0736dddc3278ce06c531d49453210b4ace..2754496a6f3f5afbb6133ee5c373a6b4eb7b39b0 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java
@@ -53,6 +53,7 @@ import android.view.MotionEvent;
import android.view.RemoteAnimationTarget;
import android.view.SurfaceControl;
import android.window.BackEvent;
+import android.window.BackMotionEvent;
import android.window.BackNavigationInfo;
import android.window.IBackNaviAnimationController;
import android.window.IOnBackInvokedCallback;
@@ -246,10 +247,11 @@ public class BackAnimationControllerTest extends ShellTestCase {
// Check that back start and progress is dispatched when first move.
doMotionEvent(MotionEvent.ACTION_MOVE, 100);
simulateRemoteAnimationStart(BackNavigationInfo.TYPE_RETURN_TO_HOME, animationTarget);
- ArgumentCaptor backEventCaptor = ArgumentCaptor.forClass(BackEvent.class);
+ ArgumentCaptor backEventCaptor =
+ ArgumentCaptor.forClass(BackMotionEvent.class);
verify(mIOnBackInvokedCallback).onBackStarted(backEventCaptor.capture());
assertEquals(animationTarget, backEventCaptor.getValue().getDepartingAnimationTarget());
- verify(mIOnBackInvokedCallback, atLeastOnce()).onBackProgressed(any(BackEvent.class));
+ verify(mIOnBackInvokedCallback, atLeastOnce()).onBackProgressed(any(BackMotionEvent.class));
// Check that back invocation is dispatched.
mController.setTriggerBack(true); // Fake trigger back
@@ -271,17 +273,18 @@ public class BackAnimationControllerTest extends ShellTestCase {
RemoteAnimationTarget animationTarget = createAnimationTarget();
IOnBackInvokedCallback appCallback = mock(IOnBackInvokedCallback.class);
- ArgumentCaptor backEventCaptor = ArgumentCaptor.forClass(BackEvent.class);
+ ArgumentCaptor backEventCaptor =
+ ArgumentCaptor.forClass(BackMotionEvent.class);
createNavigationInfo(animationTarget, null, null,
BackNavigationInfo.TYPE_RETURN_TO_HOME, appCallback, false);
triggerBackGesture();
- verify(appCallback, never()).onBackStarted(any(BackEvent.class));
+ verify(appCallback, never()).onBackStarted(any(BackMotionEvent.class));
verify(appCallback, never()).onBackProgressed(backEventCaptor.capture());
verify(appCallback, times(1)).onBackInvoked();
- verify(mIOnBackInvokedCallback, never()).onBackStarted(any(BackEvent.class));
+ verify(mIOnBackInvokedCallback, never()).onBackStarted(any(BackMotionEvent.class));
verify(mIOnBackInvokedCallback, never()).onBackProgressed(backEventCaptor.capture());
verify(mIOnBackInvokedCallback, never()).onBackInvoked();
}
@@ -314,7 +317,7 @@ public class BackAnimationControllerTest extends ShellTestCase {
doMotionEvent(MotionEvent.ACTION_DOWN, 0);
doMotionEvent(MotionEvent.ACTION_MOVE, 100);
simulateRemoteAnimationStart(BackNavigationInfo.TYPE_RETURN_TO_HOME, animationTarget);
- verify(mIOnBackInvokedCallback).onBackStarted(any(BackEvent.class));
+ verify(mIOnBackInvokedCallback).onBackStarted(any(BackMotionEvent.class));
}
@Test
@@ -333,7 +336,7 @@ public class BackAnimationControllerTest extends ShellTestCase {
doMotionEvent(MotionEvent.ACTION_DOWN, 0);
doMotionEvent(MotionEvent.ACTION_MOVE, 100);
simulateRemoteAnimationStart(BackNavigationInfo.TYPE_RETURN_TO_HOME, animationTarget);
- verify(mIOnBackInvokedCallback).onBackStarted(any(BackEvent.class));
+ verify(mIOnBackInvokedCallback).onBackStarted(any(BackMotionEvent.class));
}
@@ -349,7 +352,7 @@ public class BackAnimationControllerTest extends ShellTestCase {
// Check that back start and progress is dispatched when first move.
doMotionEvent(MotionEvent.ACTION_MOVE, 100);
simulateRemoteAnimationStart(BackNavigationInfo.TYPE_RETURN_TO_HOME, animationTarget);
- verify(mIOnBackInvokedCallback).onBackStarted(any(BackEvent.class));
+ verify(mIOnBackInvokedCallback).onBackStarted(any(BackMotionEvent.class));
// Check that back invocation is dispatched.
mController.setTriggerBack(true); // Fake trigger back
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/TouchTrackerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/TouchTrackerTest.java
index 3aefc3f03a8aa550dad14ecc249b18343a82642a..ba9c159bad284e0196337f22edb8ebdec460ff1e 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/TouchTrackerTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/TouchTrackerTest.java
@@ -19,6 +19,7 @@ package com.android.wm.shell.back;
import static org.junit.Assert.assertEquals;
import android.window.BackEvent;
+import android.window.BackMotionEvent;
import org.junit.Before;
import org.junit.Test;
@@ -38,7 +39,7 @@ public class TouchTrackerTest {
@Test
public void generatesProgress_onStart() {
mTouchTracker.setGestureStartLocation(INITIAL_X_LEFT_EDGE, 0, BackEvent.EDGE_LEFT);
- BackEvent event = mTouchTracker.createStartEvent(null);
+ BackMotionEvent event = mTouchTracker.createStartEvent(null);
assertEquals(event.getProgress(), 0f, 0f);
}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleDataTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleDataTest.java
index e6711aca19c105fab4a85cd86a09afa74064a060..8b025cd7c246fa58af103e57ccbca2f189e0e9f3 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleDataTest.java
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/BubbleDataTest.java
@@ -16,6 +16,8 @@
package com.android.wm.shell.bubbles;
+import static com.android.wm.shell.bubbles.Bubble.KEY_APP_BUBBLE;
+
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage;
@@ -32,6 +34,7 @@ import static org.mockito.Mockito.when;
import android.app.Notification;
import android.app.PendingIntent;
+import android.content.Intent;
import android.content.LocusId;
import android.graphics.drawable.Icon;
import android.os.Bundle;
@@ -94,6 +97,7 @@ public class BubbleDataTest extends ShellTestCase {
private Bubble mBubbleInterruptive;
private Bubble mBubbleDismissed;
private Bubble mBubbleLocusId;
+ private Bubble mAppBubble;
private BubbleData mBubbleData;
private TestableBubblePositioner mPositioner;
@@ -178,6 +182,11 @@ public class BubbleDataTest extends ShellTestCase {
mBubbleMetadataFlagListener,
mPendingIntentCanceledListener,
mMainExecutor);
+
+ Intent appBubbleIntent = new Intent(mContext, BubblesTestActivity.class);
+ appBubbleIntent.setPackage(mContext.getPackageName());
+ mAppBubble = new Bubble(appBubbleIntent, new UserHandle(1), mMainExecutor);
+
mPositioner = new TestableBubblePositioner(mContext,
mock(WindowManager.class));
mBubbleData = new BubbleData(getContext(), mBubbleLogger, mPositioner,
@@ -1089,6 +1098,18 @@ public class BubbleDataTest extends ShellTestCase {
assertOverflowChangedTo(ImmutableList.of());
}
+ @Test
+ public void test_removeAppBubble_skipsOverflow() {
+ mBubbleData.notificationEntryUpdated(mAppBubble, true /* suppressFlyout*/,
+ false /* showInShade */);
+ assertThat(mBubbleData.getBubbleInStackWithKey(KEY_APP_BUBBLE)).isEqualTo(mAppBubble);
+
+ mBubbleData.dismissBubbleWithKey(KEY_APP_BUBBLE, Bubbles.DISMISS_USER_GESTURE);
+
+ assertThat(mBubbleData.getOverflowBubbleWithKey(KEY_APP_BUBBLE)).isNull();
+ assertThat(mBubbleData.getBubbleInStackWithKey(KEY_APP_BUBBLE)).isNull();
+ }
+
private void verifyUpdateReceived() {
verify(mListener).applyUpdate(mUpdateCaptor.capture());
reset(mListener);
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/storage/BubblePersistentRepositoryTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/storage/BubblePersistentRepositoryTest.kt
index 1636c5f731333f12fb9ffa6ff6491928354d1f9d..0a31338a7c81fd4ccb9cf2ed0d6286b18ca3ac94 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/storage/BubblePersistentRepositoryTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/storage/BubblePersistentRepositoryTest.kt
@@ -21,7 +21,6 @@ import android.testing.AndroidTestingRunner
import android.util.SparseArray
import androidx.test.filters.SmallTest
import com.android.wm.shell.ShellTestCase
-import com.android.wm.shell.bubbles.storage.BubbleXmlHelperTest.Companion.sparseArraysEqual
import junit.framework.Assert.assertEquals
import junit.framework.Assert.assertNotNull
import junit.framework.Assert.assertTrue
@@ -36,7 +35,8 @@ class BubblePersistentRepositoryTest : ShellTestCase() {
// user, package, shortcut, notification key, height, res-height, title, taskId, locusId
private val user0Bubbles = listOf(
- BubbleEntity(0, "com.example.messenger", "shortcut-1", "0k1", 120, 0, null, 1, null),
+ BubbleEntity(0, "com.example.messenger", "shortcut-1", "0k1", 120, 0, null, 1, null,
+ true),
BubbleEntity(10, "com.example.chat", "alice and bob", "0k2", 0, 16537428, "title", 2,
null),
BubbleEntity(0, "com.example.messenger", "shortcut-2", "0k3", 120, 0, null,
@@ -44,7 +44,8 @@ class BubblePersistentRepositoryTest : ShellTestCase() {
)
private val user1Bubbles = listOf(
- BubbleEntity(1, "com.example.messenger", "shortcut-1", "1k1", 120, 0, null, 3, null),
+ BubbleEntity(1, "com.example.messenger", "shortcut-1", "1k1", 120, 0, null, 3, null,
+ true),
BubbleEntity(12, "com.example.chat", "alice and bob", "1k2", 0, 16537428, "title", 4,
null),
BubbleEntity(1, "com.example.messenger", "shortcut-2", "1k3", 120, 0, null,
@@ -76,6 +77,6 @@ class BubblePersistentRepositoryTest : ShellTestCase() {
assertEquals(actual.size(), 0)
repository.persistsToDisk(bubbles)
- assertTrue(sparseArraysEqual(bubbles, repository.readFromDisk()))
+ assertTrue(bubbles.contentEquals(repository.readFromDisk()))
}
}
diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/storage/BubbleXmlHelperTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/storage/BubbleXmlHelperTest.kt
index 4ab9f87dbbf6e0888ff8dff55e9068b59ffc9bb3..3bfbcd26a5777b8ee40e442daa4c3d2702f40080 100644
--- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/storage/BubbleXmlHelperTest.kt
+++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/bubbles/storage/BubbleXmlHelperTest.kt
@@ -34,7 +34,8 @@ import java.io.ByteArrayOutputStream
class BubbleXmlHelperTest : ShellTestCase() {
private val user0Bubbles = listOf(
- BubbleEntity(0, "com.example.messenger", "shortcut-1", "0k1", 120, 0, null, 1),
+ BubbleEntity(0, "com.example.messenger", "shortcut-1", "0k1", 120, 0, null, 1,
+ isDismissable = true),
BubbleEntity(10, "com.example.chat", "alice and bob", "0k2", 0, 16537428, "title", 2,
null),
BubbleEntity(0, "com.example.messenger", "shortcut-2", "0k3", 120, 0, null,
@@ -42,7 +43,8 @@ class BubbleXmlHelperTest : ShellTestCase() {
)
private val user1Bubbles = listOf(
- BubbleEntity(1, "com.example.messenger", "shortcut-1", "1k1", 120, 0, null, 3),
+ BubbleEntity(1, "com.example.messenger", "shortcut-1", "1k1", 120, 0, null, 3,
+ isDismissable = true),
BubbleEntity(12, "com.example.chat", "alice and bob", "1k2", 0, 16537428, "title", 4,
null),
BubbleEntity(1, "com.example.messenger", "shortcut-2", "1k3", 120, 0, null,
@@ -51,28 +53,6 @@ class BubbleXmlHelperTest : ShellTestCase() {
private val bubbles = SparseArray